@adnsistemas/pdf-lib 1.18.0 → 2.4.2

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 (1543) hide show
  1. package/README.md +71 -36
  2. package/cjs/api/PDFDocument.d.ts +44 -11
  3. package/cjs/api/PDFDocument.d.ts.map +1 -1
  4. package/cjs/api/PDFDocument.js +599 -609
  5. package/cjs/api/PDFDocument.js.map +1 -1
  6. package/cjs/api/PDFDocumentOptions.d.ts +4 -2
  7. package/cjs/api/PDFDocumentOptions.d.ts.map +1 -1
  8. package/cjs/api/PDFEmbeddedFile.d.ts +9 -4
  9. package/cjs/api/PDFEmbeddedFile.d.ts.map +1 -1
  10. package/cjs/api/PDFEmbeddedFile.js +54 -59
  11. package/cjs/api/PDFEmbeddedFile.js.map +1 -1
  12. package/cjs/api/PDFEmbeddedPage.d.ts +3 -3
  13. package/cjs/api/PDFEmbeddedPage.d.ts.map +1 -1
  14. package/cjs/api/PDFEmbeddedPage.js +35 -46
  15. package/cjs/api/PDFEmbeddedPage.js.map +1 -1
  16. package/cjs/api/PDFFont.d.ts +4 -4
  17. package/cjs/api/PDFFont.d.ts.map +1 -1
  18. package/cjs/api/PDFFont.js +47 -57
  19. package/cjs/api/PDFFont.js.map +1 -1
  20. package/cjs/api/PDFImage.d.ts +4 -4
  21. package/cjs/api/PDFImage.d.ts.map +1 -1
  22. package/cjs/api/PDFImage.js +50 -62
  23. package/cjs/api/PDFImage.js.map +1 -1
  24. package/cjs/api/PDFJavaScript.d.ts +4 -4
  25. package/cjs/api/PDFJavaScript.d.ts.map +1 -1
  26. package/cjs/api/PDFJavaScript.js +38 -50
  27. package/cjs/api/PDFJavaScript.js.map +1 -1
  28. package/cjs/api/PDFPage.d.ts +33 -9
  29. package/cjs/api/PDFPage.d.ts.map +1 -1
  30. package/cjs/api/PDFPage.js +478 -431
  31. package/cjs/api/PDFPage.js.map +1 -1
  32. package/cjs/api/PDFPageOptions.d.ts +35 -12
  33. package/cjs/api/PDFPageOptions.d.ts.map +1 -1
  34. package/cjs/api/PDFPageOptions.js.map +1 -1
  35. package/cjs/api/PDFSvg.d.ts +7 -0
  36. package/cjs/api/PDFSvg.d.ts.map +1 -0
  37. package/cjs/api/PDFSvg.js +10 -0
  38. package/cjs/api/PDFSvg.js.map +1 -0
  39. package/cjs/api/colors.d.ts +6 -2
  40. package/cjs/api/colors.d.ts.map +1 -1
  41. package/cjs/api/colors.js +51 -43
  42. package/cjs/api/colors.js.map +1 -1
  43. package/cjs/api/errors.js +73 -130
  44. package/cjs/api/errors.js.map +1 -1
  45. package/cjs/api/form/PDFButton.d.ts +8 -8
  46. package/cjs/api/form/PDFButton.d.ts.map +1 -1
  47. package/cjs/api/form/PDFButton.js +68 -72
  48. package/cjs/api/form/PDFButton.js.map +1 -1
  49. package/cjs/api/form/PDFCheckBox.d.ts +5 -5
  50. package/cjs/api/form/PDFCheckBox.d.ts.map +1 -1
  51. package/cjs/api/form/PDFCheckBox.js +64 -69
  52. package/cjs/api/form/PDFCheckBox.js.map +1 -1
  53. package/cjs/api/form/PDFDropdown.d.ts +6 -6
  54. package/cjs/api/form/PDFDropdown.d.ts.map +1 -1
  55. package/cjs/api/form/PDFDropdown.js +126 -132
  56. package/cjs/api/form/PDFDropdown.js.map +1 -1
  57. package/cjs/api/form/PDFField.d.ts +7 -7
  58. package/cjs/api/form/PDFField.d.ts.map +1 -1
  59. package/cjs/api/form/PDFField.js +118 -123
  60. package/cjs/api/form/PDFField.js.map +1 -1
  61. package/cjs/api/form/PDFForm.d.ts +11 -11
  62. package/cjs/api/form/PDFForm.d.ts.map +1 -1
  63. package/cjs/api/form/PDFForm.js +226 -221
  64. package/cjs/api/form/PDFForm.js.map +1 -1
  65. package/cjs/api/form/PDFOptionList.d.ts +6 -6
  66. package/cjs/api/form/PDFOptionList.d.ts.map +1 -1
  67. package/cjs/api/form/PDFOptionList.js +115 -121
  68. package/cjs/api/form/PDFOptionList.js.map +1 -1
  69. package/cjs/api/form/PDFRadioGroup.d.ts +5 -5
  70. package/cjs/api/form/PDFRadioGroup.d.ts.map +1 -1
  71. package/cjs/api/form/PDFRadioGroup.js +98 -101
  72. package/cjs/api/form/PDFRadioGroup.js.map +1 -1
  73. package/cjs/api/form/PDFSignature.d.ts +3 -3
  74. package/cjs/api/form/PDFSignature.d.ts.map +1 -1
  75. package/cjs/api/form/PDFSignature.js +25 -28
  76. package/cjs/api/form/PDFSignature.js.map +1 -1
  77. package/cjs/api/form/PDFTextField.d.ts +8 -8
  78. package/cjs/api/form/PDFTextField.d.ts.map +1 -1
  79. package/cjs/api/form/PDFTextField.js +136 -141
  80. package/cjs/api/form/PDFTextField.js.map +1 -1
  81. package/cjs/api/form/appearances.d.ts +21 -21
  82. package/cjs/api/form/appearances.d.ts.map +1 -1
  83. package/cjs/api/form/appearances.js +257 -219
  84. package/cjs/api/form/appearances.js.map +1 -1
  85. package/cjs/api/form/index.d.ts +10 -10
  86. package/cjs/api/form/index.d.ts.map +1 -1
  87. package/cjs/api/form/index.js +11 -10
  88. package/cjs/api/form/index.js.map +1 -1
  89. package/cjs/api/image/index.d.ts +1 -1
  90. package/cjs/api/image/index.d.ts.map +1 -1
  91. package/cjs/api/image/index.js +1 -1
  92. package/cjs/api/image/index.js.map +1 -1
  93. package/cjs/api/index.d.ts +22 -21
  94. package/cjs/api/index.d.ts.map +1 -1
  95. package/cjs/api/index.js +30 -27
  96. package/cjs/api/index.js.map +1 -1
  97. package/cjs/api/objects.d.ts +1 -1
  98. package/cjs/api/objects.d.ts.map +1 -1
  99. package/cjs/api/objects.js +7 -10
  100. package/cjs/api/objects.js.map +1 -1
  101. package/cjs/api/operations.d.ts +27 -13
  102. package/cjs/api/operations.d.ts.map +1 -1
  103. package/cjs/api/operations.js +373 -363
  104. package/cjs/api/operations.js.map +1 -1
  105. package/cjs/api/operators.d.ts +6 -1
  106. package/cjs/api/operators.d.ts.map +1 -1
  107. package/cjs/api/operators.js +169 -183
  108. package/cjs/api/operators.js.map +1 -1
  109. package/cjs/api/rotations.d.ts +2 -2
  110. package/cjs/api/rotations.d.ts.map +1 -1
  111. package/cjs/api/rotations.js +30 -30
  112. package/cjs/api/rotations.js.map +1 -1
  113. package/cjs/api/snapshot/DefaultDocumentSnapshot.d.ts +1 -1
  114. package/cjs/api/snapshot/DefaultDocumentSnapshot.d.ts.map +1 -1
  115. package/cjs/api/snapshot/DefaultDocumentSnapshot.js +13 -14
  116. package/cjs/api/snapshot/DefaultDocumentSnapshot.js.map +1 -1
  117. package/cjs/api/snapshot/DocumentSnapshot.d.ts +1 -1
  118. package/cjs/api/snapshot/DocumentSnapshot.d.ts.map +1 -1
  119. package/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts +1 -1
  120. package/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts.map +1 -1
  121. package/cjs/api/snapshot/IncrementalDocumentSnapshot.js +17 -22
  122. package/cjs/api/snapshot/IncrementalDocumentSnapshot.js.map +1 -1
  123. package/cjs/api/snapshot/index.js +1 -1
  124. package/cjs/api/svg.d.ts +76 -0
  125. package/cjs/api/svg.d.ts.map +1 -0
  126. package/cjs/api/svg.js +749 -0
  127. package/cjs/api/svg.js.map +1 -0
  128. package/cjs/api/svgPath.d.ts +1 -1
  129. package/cjs/api/svgPath.d.ts.map +1 -1
  130. package/cjs/api/svgPath.js +115 -118
  131. package/cjs/api/svgPath.js.map +1 -1
  132. package/cjs/api/text/index.d.ts +2 -2
  133. package/cjs/api/text/index.d.ts.map +1 -1
  134. package/cjs/api/text/index.js +1 -1
  135. package/cjs/api/text/index.js.map +1 -1
  136. package/cjs/api/text/layout.d.ts +3 -3
  137. package/cjs/api/text/layout.d.ts.map +1 -1
  138. package/cjs/api/text/layout.js +87 -88
  139. package/cjs/api/text/layout.js.map +1 -1
  140. package/cjs/core/PDFContext.d.ts +39 -19
  141. package/cjs/core/PDFContext.d.ts.map +1 -1
  142. package/cjs/core/PDFContext.js +131 -103
  143. package/cjs/core/PDFContext.js.map +1 -1
  144. package/cjs/core/PDFObjectCopier.d.ts +2 -2
  145. package/cjs/core/PDFObjectCopier.d.ts.map +1 -1
  146. package/cjs/core/PDFObjectCopier.js +58 -62
  147. package/cjs/core/PDFObjectCopier.js.map +1 -1
  148. package/cjs/core/acroform/PDFAcroButton.d.ts +7 -7
  149. package/cjs/core/acroform/PDFAcroButton.d.ts.map +1 -1
  150. package/cjs/core/acroform/PDFAcroButton.js +42 -47
  151. package/cjs/core/acroform/PDFAcroButton.js.map +1 -1
  152. package/cjs/core/acroform/PDFAcroCheckBox.d.ts +5 -5
  153. package/cjs/core/acroform/PDFAcroCheckBox.d.ts.map +1 -1
  154. package/cjs/core/acroform/PDFAcroCheckBox.js +28 -35
  155. package/cjs/core/acroform/PDFAcroCheckBox.js.map +1 -1
  156. package/cjs/core/acroform/PDFAcroChoice.d.ts +4 -4
  157. package/cjs/core/acroform/PDFAcroChoice.d.ts.map +1 -1
  158. package/cjs/core/acroform/PDFAcroChoice.js +47 -60
  159. package/cjs/core/acroform/PDFAcroChoice.js.map +1 -1
  160. package/cjs/core/acroform/PDFAcroComboBox.d.ts +4 -4
  161. package/cjs/core/acroform/PDFAcroComboBox.d.ts.map +1 -1
  162. package/cjs/core/acroform/PDFAcroComboBox.js +15 -22
  163. package/cjs/core/acroform/PDFAcroComboBox.js.map +1 -1
  164. package/cjs/core/acroform/PDFAcroField.d.ts +8 -8
  165. package/cjs/core/acroform/PDFAcroField.d.ts.map +1 -1
  166. package/cjs/core/acroform/PDFAcroField.js +80 -81
  167. package/cjs/core/acroform/PDFAcroField.js.map +1 -1
  168. package/cjs/core/acroform/PDFAcroForm.d.ts +5 -5
  169. package/cjs/core/acroform/PDFAcroForm.d.ts.map +1 -1
  170. package/cjs/core/acroform/PDFAcroForm.js +46 -47
  171. package/cjs/core/acroform/PDFAcroForm.js.map +1 -1
  172. package/cjs/core/acroform/PDFAcroListBox.d.ts +4 -4
  173. package/cjs/core/acroform/PDFAcroListBox.d.ts.map +1 -1
  174. package/cjs/core/acroform/PDFAcroListBox.js +13 -20
  175. package/cjs/core/acroform/PDFAcroListBox.js.map +1 -1
  176. package/cjs/core/acroform/PDFAcroNonTerminal.d.ts +4 -4
  177. package/cjs/core/acroform/PDFAcroNonTerminal.d.ts.map +1 -1
  178. package/cjs/core/acroform/PDFAcroNonTerminal.js +18 -25
  179. package/cjs/core/acroform/PDFAcroNonTerminal.js.map +1 -1
  180. package/cjs/core/acroform/PDFAcroPushButton.d.ts +4 -4
  181. package/cjs/core/acroform/PDFAcroPushButton.d.ts.map +1 -1
  182. package/cjs/core/acroform/PDFAcroPushButton.js +15 -22
  183. package/cjs/core/acroform/PDFAcroPushButton.js.map +1 -1
  184. package/cjs/core/acroform/PDFAcroRadioButton.d.ts +5 -5
  185. package/cjs/core/acroform/PDFAcroRadioButton.d.ts.map +1 -1
  186. package/cjs/core/acroform/PDFAcroRadioButton.js +33 -40
  187. package/cjs/core/acroform/PDFAcroRadioButton.js.map +1 -1
  188. package/cjs/core/acroform/PDFAcroSignature.d.ts +3 -3
  189. package/cjs/core/acroform/PDFAcroSignature.d.ts.map +1 -1
  190. package/cjs/core/acroform/PDFAcroSignature.js +5 -12
  191. package/cjs/core/acroform/PDFAcroSignature.js.map +1 -1
  192. package/cjs/core/acroform/PDFAcroTerminal.d.ts +5 -5
  193. package/cjs/core/acroform/PDFAcroTerminal.d.ts.map +1 -1
  194. package/cjs/core/acroform/PDFAcroTerminal.js +28 -35
  195. package/cjs/core/acroform/PDFAcroTerminal.js.map +1 -1
  196. package/cjs/core/acroform/PDFAcroText.d.ts +7 -7
  197. package/cjs/core/acroform/PDFAcroText.d.ts.map +1 -1
  198. package/cjs/core/acroform/PDFAcroText.js +40 -45
  199. package/cjs/core/acroform/PDFAcroText.js.map +1 -1
  200. package/cjs/core/acroform/flags.js +1 -1
  201. package/cjs/core/acroform/flags.js.map +1 -1
  202. package/cjs/core/acroform/index.d.ts +15 -15
  203. package/cjs/core/acroform/index.d.ts.map +1 -1
  204. package/cjs/core/acroform/index.js +15 -14
  205. package/cjs/core/acroform/index.js.map +1 -1
  206. package/cjs/core/acroform/utils.d.ts +5 -5
  207. package/cjs/core/acroform/utils.d.ts.map +1 -1
  208. package/cjs/core/acroform/utils.js +48 -48
  209. package/cjs/core/acroform/utils.js.map +1 -1
  210. package/cjs/core/annotation/AppearanceCharacteristics.d.ts +5 -5
  211. package/cjs/core/annotation/AppearanceCharacteristics.d.ts.map +1 -1
  212. package/cjs/core/annotation/AppearanceCharacteristics.js +61 -64
  213. package/cjs/core/annotation/AppearanceCharacteristics.js.map +1 -1
  214. package/cjs/core/annotation/BorderStyle.d.ts +2 -2
  215. package/cjs/core/annotation/BorderStyle.d.ts.map +1 -1
  216. package/cjs/core/annotation/BorderStyle.js +15 -16
  217. package/cjs/core/annotation/BorderStyle.js.map +1 -1
  218. package/cjs/core/annotation/PDFAnnotation.d.ts +6 -6
  219. package/cjs/core/annotation/PDFAnnotation.d.ts.map +1 -1
  220. package/cjs/core/annotation/PDFAnnotation.js +76 -77
  221. package/cjs/core/annotation/PDFAnnotation.js.map +1 -1
  222. package/cjs/core/annotation/PDFWidgetAnnotation.d.ts +9 -9
  223. package/cjs/core/annotation/PDFWidgetAnnotation.d.ts.map +1 -1
  224. package/cjs/core/annotation/PDFWidgetAnnotation.js +60 -67
  225. package/cjs/core/annotation/PDFWidgetAnnotation.js.map +1 -1
  226. package/cjs/core/annotation/flags.js +1 -1
  227. package/cjs/core/annotation/flags.js.map +1 -1
  228. package/cjs/core/annotation/index.d.ts +4 -4
  229. package/cjs/core/annotation/index.d.ts.map +1 -1
  230. package/cjs/core/annotation/index.js +5 -4
  231. package/cjs/core/annotation/index.js.map +1 -1
  232. package/cjs/core/crypto.d.ts +96 -0
  233. package/cjs/core/crypto.d.ts.map +1 -0
  234. package/cjs/core/crypto.js +1623 -0
  235. package/cjs/core/crypto.js.map +1 -0
  236. package/cjs/core/document/PDFCrossRefSection.d.ts +1 -1
  237. package/cjs/core/document/PDFCrossRefSection.d.ts.map +1 -1
  238. package/cjs/core/document/PDFCrossRefSection.js +62 -65
  239. package/cjs/core/document/PDFCrossRefSection.js.map +1 -1
  240. package/cjs/core/document/PDFHeader.d.ts +1 -0
  241. package/cjs/core/document/PDFHeader.d.ts.map +1 -1
  242. package/cjs/core/document/PDFHeader.js +21 -21
  243. package/cjs/core/document/PDFHeader.js.map +1 -1
  244. package/cjs/core/document/PDFTrailer.js +16 -19
  245. package/cjs/core/document/PDFTrailer.js.map +1 -1
  246. package/cjs/core/document/PDFTrailerDict.d.ts +1 -1
  247. package/cjs/core/document/PDFTrailerDict.d.ts.map +1 -1
  248. package/cjs/core/document/PDFTrailerDict.js +14 -15
  249. package/cjs/core/document/PDFTrailerDict.js.map +1 -1
  250. package/cjs/core/embedders/CMap.d.ts +2 -2
  251. package/cjs/core/embedders/CMap.d.ts.map +1 -1
  252. package/cjs/core/embedders/CMap.js +41 -28
  253. package/cjs/core/embedders/CMap.js.map +1 -1
  254. package/cjs/core/embedders/CustomFontEmbedder.d.ts +5 -5
  255. package/cjs/core/embedders/CustomFontEmbedder.d.ts.map +1 -1
  256. package/cjs/core/embedders/CustomFontEmbedder.js +133 -178
  257. package/cjs/core/embedders/CustomFontEmbedder.js.map +1 -1
  258. package/cjs/core/embedders/CustomFontSubsetEmbedder.d.ts +3 -3
  259. package/cjs/core/embedders/CustomFontSubsetEmbedder.d.ts.map +1 -1
  260. package/cjs/core/embedders/CustomFontSubsetEmbedder.js +38 -49
  261. package/cjs/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
  262. package/cjs/core/embedders/FileEmbedder.d.ts +3 -2
  263. package/cjs/core/embedders/FileEmbedder.d.ts.map +1 -1
  264. package/cjs/core/embedders/FileEmbedder.js +44 -48
  265. package/cjs/core/embedders/FileEmbedder.js.map +1 -1
  266. package/cjs/core/embedders/FontFlags.d.ts +1 -1
  267. package/cjs/core/embedders/FontFlags.d.ts.map +1 -1
  268. package/cjs/core/embedders/FontFlags.js +7 -6
  269. package/cjs/core/embedders/FontFlags.js.map +1 -1
  270. package/cjs/core/embedders/JavaScriptEmbedder.d.ts +2 -2
  271. package/cjs/core/embedders/JavaScriptEmbedder.d.ts.map +1 -1
  272. package/cjs/core/embedders/JavaScriptEmbedder.js +22 -27
  273. package/cjs/core/embedders/JavaScriptEmbedder.js.map +1 -1
  274. package/cjs/core/embedders/JpegEmbedder.d.ts +2 -2
  275. package/cjs/core/embedders/JpegEmbedder.d.ts.map +1 -1
  276. package/cjs/core/embedders/JpegEmbedder.js +66 -73
  277. package/cjs/core/embedders/JpegEmbedder.js.map +1 -1
  278. package/cjs/core/embedders/PDFPageEmbedder.d.ts +4 -4
  279. package/cjs/core/embedders/PDFPageEmbedder.d.ts.map +1 -1
  280. package/cjs/core/embedders/PDFPageEmbedder.js +64 -65
  281. package/cjs/core/embedders/PDFPageEmbedder.js.map +1 -1
  282. package/cjs/core/embedders/PngEmbedder.d.ts +2 -2
  283. package/cjs/core/embedders/PngEmbedder.d.ts.map +1 -1
  284. package/cjs/core/embedders/PngEmbedder.js +33 -41
  285. package/cjs/core/embedders/PngEmbedder.js.map +1 -1
  286. package/cjs/core/embedders/StandardFontEmbedder.d.ts +4 -4
  287. package/cjs/core/embedders/StandardFontEmbedder.d.ts.map +1 -1
  288. package/cjs/core/embedders/StandardFontEmbedder.js +53 -51
  289. package/cjs/core/embedders/StandardFontEmbedder.js.map +1 -1
  290. package/cjs/core/errors.d.ts +1 -1
  291. package/cjs/core/errors.d.ts.map +1 -1
  292. package/cjs/core/errors.js +147 -260
  293. package/cjs/core/errors.js.map +1 -1
  294. package/cjs/core/index.d.ts +48 -47
  295. package/cjs/core/index.d.ts.map +1 -1
  296. package/cjs/core/index.js +47 -44
  297. package/cjs/core/index.js.map +1 -1
  298. package/cjs/core/interactive/ViewerPreferences.d.ts +8 -8
  299. package/cjs/core/interactive/ViewerPreferences.d.ts.map +1 -1
  300. package/cjs/core/interactive/ViewerPreferences.js +135 -138
  301. package/cjs/core/interactive/ViewerPreferences.js.map +1 -1
  302. package/cjs/core/objects/PDFArray.d.ts +12 -12
  303. package/cjs/core/objects/PDFArray.d.ts.map +1 -1
  304. package/cjs/core/objects/PDFArray.js +72 -81
  305. package/cjs/core/objects/PDFArray.js.map +1 -1
  306. package/cjs/core/objects/PDFBool.d.ts +1 -1
  307. package/cjs/core/objects/PDFBool.d.ts.map +1 -1
  308. package/cjs/core/objects/PDFBool.js +22 -26
  309. package/cjs/core/objects/PDFBool.js.map +1 -1
  310. package/cjs/core/objects/PDFDict.d.ts +13 -12
  311. package/cjs/core/objects/PDFDict.d.ts.map +1 -1
  312. package/cjs/core/objects/PDFDict.js +76 -88
  313. package/cjs/core/objects/PDFDict.js.map +1 -1
  314. package/cjs/core/objects/PDFHexString.d.ts +2 -1
  315. package/cjs/core/objects/PDFHexString.d.ts.map +1 -1
  316. package/cjs/core/objects/PDFHexString.js +50 -52
  317. package/cjs/core/objects/PDFHexString.js.map +1 -1
  318. package/cjs/core/objects/PDFInvalidObject.d.ts +1 -1
  319. package/cjs/core/objects/PDFInvalidObject.d.ts.map +1 -1
  320. package/cjs/core/objects/PDFInvalidObject.js +19 -22
  321. package/cjs/core/objects/PDFInvalidObject.js.map +1 -1
  322. package/cjs/core/objects/PDFName.d.ts +1 -1
  323. package/cjs/core/objects/PDFName.d.ts.map +1 -1
  324. package/cjs/core/objects/PDFName.js +84 -92
  325. package/cjs/core/objects/PDFName.js.map +1 -1
  326. package/cjs/core/objects/PDFNull.d.ts +1 -1
  327. package/cjs/core/objects/PDFNull.d.ts.map +1 -1
  328. package/cjs/core/objects/PDFNull.js +15 -20
  329. package/cjs/core/objects/PDFNull.js.map +1 -1
  330. package/cjs/core/objects/PDFNumber.d.ts +1 -1
  331. package/cjs/core/objects/PDFNumber.d.ts.map +1 -1
  332. package/cjs/core/objects/PDFNumber.js +23 -26
  333. package/cjs/core/objects/PDFNumber.js.map +1 -1
  334. package/cjs/core/objects/PDFObject.d.ts +1 -1
  335. package/cjs/core/objects/PDFObject.d.ts.map +1 -1
  336. package/cjs/core/objects/PDFObject.js +13 -16
  337. package/cjs/core/objects/PDFObject.js.map +1 -1
  338. package/cjs/core/objects/PDFRawStream.d.ts +8 -5
  339. package/cjs/core/objects/PDFRawStream.d.ts.map +1 -1
  340. package/cjs/core/objects/PDFRawStream.js +24 -25
  341. package/cjs/core/objects/PDFRawStream.js.map +1 -1
  342. package/cjs/core/objects/PDFRef.d.ts +1 -1
  343. package/cjs/core/objects/PDFRef.d.ts.map +1 -1
  344. package/cjs/core/objects/PDFRef.js +31 -36
  345. package/cjs/core/objects/PDFRef.js.map +1 -1
  346. package/cjs/core/objects/PDFStream.d.ts +4 -3
  347. package/cjs/core/objects/PDFStream.d.ts.map +1 -1
  348. package/cjs/core/objects/PDFStream.js +35 -35
  349. package/cjs/core/objects/PDFStream.js.map +1 -1
  350. package/cjs/core/objects/PDFString.d.ts +1 -1
  351. package/cjs/core/objects/PDFString.d.ts.map +1 -1
  352. package/cjs/core/objects/PDFString.js +55 -58
  353. package/cjs/core/objects/PDFString.js.map +1 -1
  354. package/cjs/core/operators/PDFOperator.d.ts +9 -9
  355. package/cjs/core/operators/PDFOperator.d.ts.map +1 -1
  356. package/cjs/core/operators/PDFOperator.js +29 -32
  357. package/cjs/core/operators/PDFOperator.js.map +1 -1
  358. package/cjs/core/parser/BaseParser.d.ts +1 -1
  359. package/cjs/core/parser/BaseParser.d.ts.map +1 -1
  360. package/cjs/core/parser/BaseParser.js +40 -42
  361. package/cjs/core/parser/BaseParser.js.map +1 -1
  362. package/cjs/core/parser/ByteStream.d.ts +1 -1
  363. package/cjs/core/parser/ByteStream.d.ts.map +1 -1
  364. package/cjs/core/parser/ByteStream.js +30 -33
  365. package/cjs/core/parser/ByteStream.js.map +1 -1
  366. package/cjs/core/parser/PDFObjectParser.d.ts +23 -21
  367. package/cjs/core/parser/PDFObjectParser.d.ts.map +1 -1
  368. package/cjs/core/parser/PDFObjectParser.js +96 -88
  369. package/cjs/core/parser/PDFObjectParser.js.map +1 -1
  370. package/cjs/core/parser/PDFObjectStreamParser.d.ts +3 -3
  371. package/cjs/core/parser/PDFObjectStreamParser.d.ts.map +1 -1
  372. package/cjs/core/parser/PDFObjectStreamParser.js +42 -60
  373. package/cjs/core/parser/PDFObjectStreamParser.js.map +1 -1
  374. package/cjs/core/parser/PDFParser.d.ts +6 -4
  375. package/cjs/core/parser/PDFParser.d.ts.map +1 -1
  376. package/cjs/core/parser/PDFParser.js +169 -217
  377. package/cjs/core/parser/PDFParser.js.map +1 -1
  378. package/cjs/core/parser/PDFXRefStreamParser.d.ts +2 -2
  379. package/cjs/core/parser/PDFXRefStreamParser.d.ts.map +1 -1
  380. package/cjs/core/parser/PDFXRefStreamParser.js +38 -41
  381. package/cjs/core/parser/PDFXRefStreamParser.js.map +1 -1
  382. package/cjs/core/security/PDFSecurity.d.ts +75 -0
  383. package/cjs/core/security/PDFSecurity.d.ts.map +1 -0
  384. package/cjs/core/security/PDFSecurity.js +406 -0
  385. package/cjs/core/security/PDFSecurity.js.map +1 -0
  386. package/cjs/core/streams/Ascii85Stream.d.ts +2 -2
  387. package/cjs/core/streams/Ascii85Stream.d.ts.map +1 -1
  388. package/cjs/core/streams/Ascii85Stream.js +21 -26
  389. package/cjs/core/streams/Ascii85Stream.js.map +1 -1
  390. package/cjs/core/streams/AsciiHexStream.d.ts +2 -2
  391. package/cjs/core/streams/AsciiHexStream.d.ts.map +1 -1
  392. package/cjs/core/streams/AsciiHexStream.js +19 -22
  393. package/cjs/core/streams/AsciiHexStream.js.map +1 -1
  394. package/cjs/core/streams/DecodeStream.d.ts +1 -1
  395. package/cjs/core/streams/DecodeStream.d.ts.map +1 -1
  396. package/cjs/core/streams/DecodeStream.js +54 -61
  397. package/cjs/core/streams/DecodeStream.js.map +1 -1
  398. package/cjs/core/streams/DecryptStream.d.ts +13 -0
  399. package/cjs/core/streams/DecryptStream.d.ts.map +1 -0
  400. package/cjs/core/streams/DecryptStream.js +39 -0
  401. package/cjs/core/streams/DecryptStream.js.map +1 -0
  402. package/cjs/core/streams/FlateStream.d.ts +2 -2
  403. package/cjs/core/streams/FlateStream.d.ts.map +1 -1
  404. package/cjs/core/streams/FlateStream.js +82 -84
  405. package/cjs/core/streams/FlateStream.js.map +1 -1
  406. package/cjs/core/streams/LZWStream.d.ts +3 -3
  407. package/cjs/core/streams/LZWStream.d.ts.map +1 -1
  408. package/cjs/core/streams/LZWStream.js +42 -45
  409. package/cjs/core/streams/LZWStream.js.map +1 -1
  410. package/cjs/core/streams/RunLengthStream.d.ts +2 -2
  411. package/cjs/core/streams/RunLengthStream.d.ts.map +1 -1
  412. package/cjs/core/streams/RunLengthStream.js +16 -19
  413. package/cjs/core/streams/RunLengthStream.js.map +1 -1
  414. package/cjs/core/streams/Stream.js +45 -56
  415. package/cjs/core/streams/Stream.js.map +1 -1
  416. package/cjs/core/streams/decode.d.ts +3 -3
  417. package/cjs/core/streams/decode.d.ts.map +1 -1
  418. package/cjs/core/streams/decode.js +25 -22
  419. package/cjs/core/streams/decode.js.map +1 -1
  420. package/cjs/core/structures/PDFCatalog.d.ts +5 -5
  421. package/cjs/core/structures/PDFCatalog.d.ts.map +1 -1
  422. package/cjs/core/structures/PDFCatalog.js +40 -47
  423. package/cjs/core/structures/PDFCatalog.js.map +1 -1
  424. package/cjs/core/structures/PDFContentStream.d.ts +4 -4
  425. package/cjs/core/structures/PDFContentStream.d.ts.map +1 -1
  426. package/cjs/core/structures/PDFContentStream.js +31 -43
  427. package/cjs/core/structures/PDFContentStream.js.map +1 -1
  428. package/cjs/core/structures/PDFCrossRefStream.d.ts +6 -6
  429. package/cjs/core/structures/PDFCrossRefStream.d.ts.map +1 -1
  430. package/cjs/core/structures/PDFCrossRefStream.js +92 -100
  431. package/cjs/core/structures/PDFCrossRefStream.js.map +1 -1
  432. package/cjs/core/structures/PDFFlateStream.d.ts +5 -4
  433. package/cjs/core/structures/PDFFlateStream.d.ts.map +1 -1
  434. package/cjs/core/structures/PDFFlateStream.js +24 -24
  435. package/cjs/core/structures/PDFFlateStream.js.map +1 -1
  436. package/cjs/core/structures/PDFObjectStream.d.ts +5 -5
  437. package/cjs/core/structures/PDFObjectStream.d.ts.map +1 -1
  438. package/cjs/core/structures/PDFObjectStream.js +49 -56
  439. package/cjs/core/structures/PDFObjectStream.js.map +1 -1
  440. package/cjs/core/structures/PDFPageLeaf.d.ts +9 -9
  441. package/cjs/core/structures/PDFPageLeaf.d.ts.map +1 -1
  442. package/cjs/core/structures/PDFPageLeaf.js +126 -133
  443. package/cjs/core/structures/PDFPageLeaf.js.map +1 -1
  444. package/cjs/core/structures/PDFPageTree.d.ts +8 -8
  445. package/cjs/core/structures/PDFPageTree.d.ts.map +1 -1
  446. package/cjs/core/structures/PDFPageTree.js +67 -75
  447. package/cjs/core/structures/PDFPageTree.js.map +1 -1
  448. package/cjs/core/syntax/Delimiters.js +2 -2
  449. package/cjs/core/syntax/Delimiters.js.map +1 -1
  450. package/cjs/core/syntax/Irregular.js +5 -5
  451. package/cjs/core/syntax/Irregular.js.map +1 -1
  452. package/cjs/core/syntax/Keywords.d.ts +1 -1
  453. package/cjs/core/syntax/Keywords.d.ts.map +1 -1
  454. package/cjs/core/syntax/Keywords.js +14 -14
  455. package/cjs/core/syntax/Keywords.js.map +1 -1
  456. package/cjs/core/syntax/Numeric.js +3 -3
  457. package/cjs/core/syntax/Numeric.js.map +1 -1
  458. package/cjs/core/syntax/Whitespace.js +2 -2
  459. package/cjs/core/syntax/Whitespace.js.map +1 -1
  460. package/cjs/core/writers/PDFStreamWriter.d.ts +7 -7
  461. package/cjs/core/writers/PDFStreamWriter.d.ts.map +1 -1
  462. package/cjs/core/writers/PDFStreamWriter.js +102 -126
  463. package/cjs/core/writers/PDFStreamWriter.js.map +1 -1
  464. package/cjs/core/writers/PDFWriter.d.ts +15 -10
  465. package/cjs/core/writers/PDFWriter.d.ts.map +1 -1
  466. package/cjs/core/writers/PDFWriter.js +116 -142
  467. package/cjs/core/writers/PDFWriter.js.map +1 -1
  468. package/cjs/index.d.ts +4 -4
  469. package/cjs/index.d.ts.map +1 -1
  470. package/cjs/index.js +5 -5
  471. package/cjs/index.js.map +1 -1
  472. package/cjs/types/index.d.ts +25 -1
  473. package/cjs/types/index.d.ts.map +1 -1
  474. package/cjs/types/matrix.d.ts +8 -1
  475. package/cjs/types/matrix.d.ts.map +1 -1
  476. package/cjs/utils/Cache.js +10 -11
  477. package/cjs/utils/Cache.js.map +1 -1
  478. package/cjs/utils/arrays.d.ts +3 -1
  479. package/cjs/utils/arrays.d.ts.map +1 -1
  480. package/cjs/utils/arrays.js +97 -64
  481. package/cjs/utils/arrays.js.map +1 -1
  482. package/cjs/utils/async.d.ts.map +1 -1
  483. package/cjs/utils/async.js +4 -5
  484. package/cjs/utils/async.js.map +1 -1
  485. package/cjs/utils/base64.d.ts.map +1 -1
  486. package/cjs/utils/base64.js +29 -26
  487. package/cjs/utils/base64.js.map +1 -1
  488. package/cjs/utils/elements/Arc.d.ts +23 -0
  489. package/cjs/utils/elements/Arc.d.ts.map +1 -0
  490. package/cjs/utils/elements/Arc.js +78 -0
  491. package/cjs/utils/elements/Arc.js.map +1 -0
  492. package/cjs/utils/elements/Circle.d.ts +15 -0
  493. package/cjs/utils/elements/Circle.d.ts.map +1 -0
  494. package/cjs/utils/elements/Circle.js +41 -0
  495. package/cjs/utils/elements/Circle.js.map +1 -0
  496. package/cjs/utils/elements/Ellipse.d.ts +21 -0
  497. package/cjs/utils/elements/Ellipse.d.ts.map +1 -0
  498. package/cjs/utils/elements/Ellipse.js +91 -0
  499. package/cjs/utils/elements/Ellipse.js.map +1 -0
  500. package/cjs/utils/elements/GraphElement.d.ts +7 -0
  501. package/cjs/utils/elements/GraphElement.d.ts.map +1 -0
  502. package/cjs/utils/elements/GraphElement.js +11 -0
  503. package/cjs/utils/elements/GraphElement.js.map +1 -0
  504. package/cjs/utils/elements/Line.d.ts +24 -0
  505. package/cjs/utils/elements/Line.d.ts.map +1 -0
  506. package/cjs/utils/elements/Line.js +72 -0
  507. package/cjs/utils/elements/Line.js.map +1 -0
  508. package/cjs/utils/elements/Plot.d.ts +12 -0
  509. package/cjs/utils/elements/Plot.d.ts.map +1 -0
  510. package/cjs/utils/elements/Plot.js +46 -0
  511. package/cjs/utils/elements/Plot.js.map +1 -0
  512. package/cjs/utils/elements/Point.d.ts +19 -0
  513. package/cjs/utils/elements/Point.d.ts.map +1 -0
  514. package/cjs/utils/elements/Point.js +32 -0
  515. package/cjs/utils/elements/Point.js.map +1 -0
  516. package/cjs/utils/elements/Rectangle.d.ts +22 -0
  517. package/cjs/utils/elements/Rectangle.d.ts.map +1 -0
  518. package/cjs/utils/elements/Rectangle.js +58 -0
  519. package/cjs/utils/elements/Rectangle.js.map +1 -0
  520. package/cjs/utils/elements/Segment.d.ts +20 -0
  521. package/cjs/utils/elements/Segment.d.ts.map +1 -0
  522. package/cjs/utils/elements/Segment.js +80 -0
  523. package/cjs/utils/elements/Segment.js.map +1 -0
  524. package/cjs/utils/elements/index.d.ts +10 -0
  525. package/cjs/utils/elements/index.d.ts.map +1 -0
  526. package/cjs/utils/elements/index.js +25 -0
  527. package/cjs/utils/elements/index.js.map +1 -0
  528. package/cjs/utils/errors.js +2 -1
  529. package/cjs/utils/errors.js.map +1 -1
  530. package/cjs/utils/index.d.ts +11 -11
  531. package/cjs/utils/index.d.ts.map +1 -1
  532. package/cjs/utils/index.js +3 -2
  533. package/cjs/utils/index.js.map +1 -1
  534. package/cjs/utils/intersections.d.ts +10 -0
  535. package/cjs/utils/intersections.d.ts.map +1 -0
  536. package/cjs/utils/intersections.js +253 -0
  537. package/cjs/utils/intersections.js.map +1 -0
  538. package/cjs/utils/maths.d.ts +46 -0
  539. package/cjs/utils/maths.d.ts.map +1 -0
  540. package/cjs/utils/maths.js +89 -0
  541. package/cjs/utils/maths.js.map +1 -0
  542. package/cjs/utils/numbers.js +12 -9
  543. package/cjs/utils/numbers.js.map +1 -1
  544. package/cjs/utils/objects.js +8 -7
  545. package/cjs/utils/objects.js.map +1 -1
  546. package/cjs/utils/pdfDocEncoding.js +52 -51
  547. package/cjs/utils/pdfDocEncoding.js.map +1 -1
  548. package/cjs/utils/png.js +22 -23
  549. package/cjs/utils/png.js.map +1 -1
  550. package/cjs/utils/rng.js +7 -8
  551. package/cjs/utils/rng.js.map +1 -1
  552. package/cjs/utils/strings.d.ts +1 -0
  553. package/cjs/utils/strings.d.ts.map +1 -1
  554. package/cjs/utils/strings.js +88 -70
  555. package/cjs/utils/strings.js.map +1 -1
  556. package/cjs/utils/unicode.js +51 -64
  557. package/cjs/utils/unicode.js.map +1 -1
  558. package/cjs/utils/validators.d.ts +2 -2
  559. package/cjs/utils/validators.d.ts.map +1 -1
  560. package/cjs/utils/validators.js +84 -67
  561. package/cjs/utils/validators.js.map +1 -1
  562. package/dist/pdf-lib.esm.js +16231 -31855
  563. package/dist/pdf-lib.esm.js.map +1 -1
  564. package/dist/pdf-lib.esm.min.js +16 -13
  565. package/dist/pdf-lib.esm.min.js.map +1 -1
  566. package/dist/pdf-lib.js +16370 -32042
  567. package/dist/pdf-lib.js.map +1 -1
  568. package/dist/pdf-lib.min.js +16 -13
  569. package/dist/pdf-lib.min.js.map +1 -1
  570. package/es/api/Embeddable.js +1 -0
  571. package/es/api/PDFDocument.d.ts +44 -11
  572. package/es/api/PDFDocument.d.ts.map +1 -1
  573. package/es/api/PDFDocument.js +580 -591
  574. package/es/api/PDFDocument.js.map +1 -1
  575. package/es/api/PDFDocumentOptions.d.ts +4 -2
  576. package/es/api/PDFDocumentOptions.d.ts.map +1 -1
  577. package/es/api/PDFEmbeddedFile.d.ts +9 -4
  578. package/es/api/PDFEmbeddedFile.d.ts.map +1 -1
  579. package/es/api/PDFEmbeddedFile.js +54 -60
  580. package/es/api/PDFEmbeddedFile.js.map +1 -1
  581. package/es/api/PDFEmbeddedPage.d.ts +3 -3
  582. package/es/api/PDFEmbeddedPage.d.ts.map +1 -1
  583. package/es/api/PDFEmbeddedPage.js +31 -43
  584. package/es/api/PDFEmbeddedPage.js.map +1 -1
  585. package/es/api/PDFFont.d.ts +4 -4
  586. package/es/api/PDFFont.d.ts.map +1 -1
  587. package/es/api/PDFFont.js +38 -49
  588. package/es/api/PDFFont.js.map +1 -1
  589. package/es/api/PDFImage.d.ts +4 -4
  590. package/es/api/PDFImage.d.ts.map +1 -1
  591. package/es/api/PDFImage.js +44 -57
  592. package/es/api/PDFImage.js.map +1 -1
  593. package/es/api/PDFJavaScript.d.ts +4 -4
  594. package/es/api/PDFJavaScript.d.ts.map +1 -1
  595. package/es/api/PDFJavaScript.js +38 -51
  596. package/es/api/PDFJavaScript.js.map +1 -1
  597. package/es/api/PDFPage.d.ts +33 -9
  598. package/es/api/PDFPage.d.ts.map +1 -1
  599. package/es/api/PDFPage.js +311 -266
  600. package/es/api/PDFPage.js.map +1 -1
  601. package/es/api/PDFPageOptions.d.ts +35 -12
  602. package/es/api/PDFPageOptions.d.ts.map +1 -1
  603. package/es/api/PDFPageOptions.js.map +1 -1
  604. package/es/api/PDFSvg.d.ts +7 -0
  605. package/es/api/PDFSvg.d.ts.map +1 -0
  606. package/es/api/PDFSvg.js +7 -0
  607. package/es/api/PDFSvg.js.map +1 -0
  608. package/es/api/colors.d.ts +6 -2
  609. package/es/api/colors.d.ts.map +1 -1
  610. package/es/api/colors.js +33 -34
  611. package/es/api/colors.js.map +1 -1
  612. package/es/api/errors.js +73 -144
  613. package/es/api/errors.js.map +1 -1
  614. package/es/api/form/PDFButton.d.ts +8 -8
  615. package/es/api/form/PDFButton.d.ts.map +1 -1
  616. package/es/api/form/PDFButton.js +56 -62
  617. package/es/api/form/PDFButton.js.map +1 -1
  618. package/es/api/form/PDFCheckBox.d.ts +5 -5
  619. package/es/api/form/PDFCheckBox.d.ts.map +1 -1
  620. package/es/api/form/PDFCheckBox.js +55 -62
  621. package/es/api/form/PDFCheckBox.js.map +1 -1
  622. package/es/api/form/PDFDropdown.d.ts +6 -6
  623. package/es/api/form/PDFDropdown.d.ts.map +1 -1
  624. package/es/api/form/PDFDropdown.js +110 -118
  625. package/es/api/form/PDFDropdown.js.map +1 -1
  626. package/es/api/form/PDFField.d.ts +7 -7
  627. package/es/api/form/PDFField.d.ts.map +1 -1
  628. package/es/api/form/PDFField.js +98 -106
  629. package/es/api/form/PDFField.js.map +1 -1
  630. package/es/api/form/PDFForm.d.ts +11 -11
  631. package/es/api/form/PDFForm.d.ts.map +1 -1
  632. package/es/api/form/PDFForm.js +203 -200
  633. package/es/api/form/PDFForm.js.map +1 -1
  634. package/es/api/form/PDFOptionList.d.ts +6 -6
  635. package/es/api/form/PDFOptionList.d.ts.map +1 -1
  636. package/es/api/form/PDFOptionList.js +98 -106
  637. package/es/api/form/PDFOptionList.js.map +1 -1
  638. package/es/api/form/PDFRadioGroup.d.ts +5 -5
  639. package/es/api/form/PDFRadioGroup.d.ts.map +1 -1
  640. package/es/api/form/PDFRadioGroup.js +86 -91
  641. package/es/api/form/PDFRadioGroup.js.map +1 -1
  642. package/es/api/form/PDFSignature.d.ts +3 -3
  643. package/es/api/form/PDFSignature.d.ts.map +1 -1
  644. package/es/api/form/PDFSignature.js +23 -28
  645. package/es/api/form/PDFSignature.js.map +1 -1
  646. package/es/api/form/PDFTextField.d.ts +8 -8
  647. package/es/api/form/PDFTextField.d.ts.map +1 -1
  648. package/es/api/form/PDFTextField.js +121 -128
  649. package/es/api/form/PDFTextField.js.map +1 -1
  650. package/es/api/form/appearances.d.ts +21 -21
  651. package/es/api/form/appearances.d.ts.map +1 -1
  652. package/es/api/form/appearances.js +245 -214
  653. package/es/api/form/appearances.js.map +1 -1
  654. package/es/api/form/index.d.ts +10 -10
  655. package/es/api/form/index.d.ts.map +1 -1
  656. package/es/api/form/index.js +10 -10
  657. package/es/api/form/index.js.map +1 -1
  658. package/es/api/image/index.d.ts +1 -1
  659. package/es/api/image/index.d.ts.map +1 -1
  660. package/es/api/image/index.js +1 -1
  661. package/es/api/image/index.js.map +1 -1
  662. package/es/api/index.d.ts +22 -21
  663. package/es/api/index.d.ts.map +1 -1
  664. package/es/api/index.js +21 -20
  665. package/es/api/index.js.map +1 -1
  666. package/es/api/objects.d.ts +1 -1
  667. package/es/api/objects.d.ts.map +1 -1
  668. package/es/api/objects.js +4 -10
  669. package/es/api/objects.js.map +1 -1
  670. package/es/api/operations.d.ts +27 -13
  671. package/es/api/operations.d.ts.map +1 -1
  672. package/es/api/operations.js +266 -272
  673. package/es/api/operations.js.map +1 -1
  674. package/es/api/operators.d.ts +6 -1
  675. package/es/api/operators.d.ts.map +1 -1
  676. package/es/api/operators.js +114 -182
  677. package/es/api/operators.js.map +1 -1
  678. package/es/api/rotations.d.ts +2 -2
  679. package/es/api/rotations.d.ts.map +1 -1
  680. package/es/api/rotations.js +19 -28
  681. package/es/api/rotations.js.map +1 -1
  682. package/es/api/sizes.js +1 -1
  683. package/es/api/sizes.js.map +1 -1
  684. package/es/api/snapshot/DefaultDocumentSnapshot.d.ts +1 -1
  685. package/es/api/snapshot/DefaultDocumentSnapshot.d.ts.map +1 -1
  686. package/es/api/snapshot/DefaultDocumentSnapshot.js +14 -16
  687. package/es/api/snapshot/DefaultDocumentSnapshot.js.map +1 -1
  688. package/es/api/snapshot/DocumentSnapshot.d.ts +1 -1
  689. package/es/api/snapshot/DocumentSnapshot.d.ts.map +1 -1
  690. package/es/api/snapshot/DocumentSnapshot.js +1 -0
  691. package/es/api/snapshot/IncrementalDocumentSnapshot.d.ts +1 -1
  692. package/es/api/snapshot/IncrementalDocumentSnapshot.d.ts.map +1 -1
  693. package/es/api/snapshot/IncrementalDocumentSnapshot.js +17 -23
  694. package/es/api/snapshot/IncrementalDocumentSnapshot.js.map +1 -1
  695. package/es/api/snapshot/index.js +3 -3
  696. package/es/api/svg.d.ts +76 -0
  697. package/es/api/svg.d.ts.map +1 -0
  698. package/es/api/svg.js +742 -0
  699. package/es/api/svg.js.map +1 -0
  700. package/es/api/svgPath.d.ts +1 -1
  701. package/es/api/svgPath.d.ts.map +1 -1
  702. package/es/api/svgPath.js +104 -108
  703. package/es/api/svgPath.js.map +1 -1
  704. package/es/api/text/index.d.ts +2 -2
  705. package/es/api/text/index.d.ts.map +1 -1
  706. package/es/api/text/index.js +2 -2
  707. package/es/api/text/index.js.map +1 -1
  708. package/es/api/text/layout.d.ts +3 -3
  709. package/es/api/text/layout.d.ts.map +1 -1
  710. package/es/api/text/layout.js +84 -88
  711. package/es/api/text/layout.js.map +1 -1
  712. package/es/core/PDFContext.d.ts +39 -19
  713. package/es/core/PDFContext.d.ts.map +1 -1
  714. package/es/core/PDFContext.js +128 -101
  715. package/es/core/PDFContext.js.map +1 -1
  716. package/es/core/PDFObjectCopier.d.ts +2 -2
  717. package/es/core/PDFObjectCopier.d.ts.map +1 -1
  718. package/es/core/PDFObjectCopier.js +57 -61
  719. package/es/core/PDFObjectCopier.js.map +1 -1
  720. package/es/core/acroform/PDFAcroButton.d.ts +7 -7
  721. package/es/core/acroform/PDFAcroButton.d.ts.map +1 -1
  722. package/es/core/acroform/PDFAcroButton.js +41 -47
  723. package/es/core/acroform/PDFAcroButton.js.map +1 -1
  724. package/es/core/acroform/PDFAcroCheckBox.d.ts +5 -5
  725. package/es/core/acroform/PDFAcroCheckBox.d.ts.map +1 -1
  726. package/es/core/acroform/PDFAcroCheckBox.js +27 -35
  727. package/es/core/acroform/PDFAcroCheckBox.js.map +1 -1
  728. package/es/core/acroform/PDFAcroChoice.d.ts +4 -4
  729. package/es/core/acroform/PDFAcroChoice.d.ts.map +1 -1
  730. package/es/core/acroform/PDFAcroChoice.js +46 -60
  731. package/es/core/acroform/PDFAcroChoice.js.map +1 -1
  732. package/es/core/acroform/PDFAcroComboBox.d.ts +4 -4
  733. package/es/core/acroform/PDFAcroComboBox.d.ts.map +1 -1
  734. package/es/core/acroform/PDFAcroComboBox.js +14 -22
  735. package/es/core/acroform/PDFAcroComboBox.js.map +1 -1
  736. package/es/core/acroform/PDFAcroField.d.ts +8 -8
  737. package/es/core/acroform/PDFAcroField.d.ts.map +1 -1
  738. package/es/core/acroform/PDFAcroField.js +79 -80
  739. package/es/core/acroform/PDFAcroField.js.map +1 -1
  740. package/es/core/acroform/PDFAcroForm.d.ts +5 -5
  741. package/es/core/acroform/PDFAcroForm.d.ts.map +1 -1
  742. package/es/core/acroform/PDFAcroForm.js +43 -44
  743. package/es/core/acroform/PDFAcroForm.js.map +1 -1
  744. package/es/core/acroform/PDFAcroListBox.d.ts +4 -4
  745. package/es/core/acroform/PDFAcroListBox.d.ts.map +1 -1
  746. package/es/core/acroform/PDFAcroListBox.js +12 -20
  747. package/es/core/acroform/PDFAcroListBox.js.map +1 -1
  748. package/es/core/acroform/PDFAcroNonTerminal.d.ts +4 -4
  749. package/es/core/acroform/PDFAcroNonTerminal.d.ts.map +1 -1
  750. package/es/core/acroform/PDFAcroNonTerminal.js +17 -25
  751. package/es/core/acroform/PDFAcroNonTerminal.js.map +1 -1
  752. package/es/core/acroform/PDFAcroPushButton.d.ts +4 -4
  753. package/es/core/acroform/PDFAcroPushButton.d.ts.map +1 -1
  754. package/es/core/acroform/PDFAcroPushButton.js +14 -22
  755. package/es/core/acroform/PDFAcroPushButton.js.map +1 -1
  756. package/es/core/acroform/PDFAcroRadioButton.d.ts +5 -5
  757. package/es/core/acroform/PDFAcroRadioButton.d.ts.map +1 -1
  758. package/es/core/acroform/PDFAcroRadioButton.js +32 -40
  759. package/es/core/acroform/PDFAcroRadioButton.js.map +1 -1
  760. package/es/core/acroform/PDFAcroSignature.d.ts +3 -3
  761. package/es/core/acroform/PDFAcroSignature.d.ts.map +1 -1
  762. package/es/core/acroform/PDFAcroSignature.js +4 -12
  763. package/es/core/acroform/PDFAcroSignature.js.map +1 -1
  764. package/es/core/acroform/PDFAcroTerminal.d.ts +5 -5
  765. package/es/core/acroform/PDFAcroTerminal.d.ts.map +1 -1
  766. package/es/core/acroform/PDFAcroTerminal.js +27 -35
  767. package/es/core/acroform/PDFAcroTerminal.js.map +1 -1
  768. package/es/core/acroform/PDFAcroText.d.ts +7 -7
  769. package/es/core/acroform/PDFAcroText.d.ts.map +1 -1
  770. package/es/core/acroform/PDFAcroText.js +39 -45
  771. package/es/core/acroform/PDFAcroText.js.map +1 -1
  772. package/es/core/acroform/flags.js +1 -1
  773. package/es/core/acroform/flags.js.map +1 -1
  774. package/es/core/acroform/index.d.ts +15 -15
  775. package/es/core/acroform/index.d.ts.map +1 -1
  776. package/es/core/acroform/index.js +15 -15
  777. package/es/core/acroform/index.js.map +1 -1
  778. package/es/core/acroform/utils.d.ts +5 -5
  779. package/es/core/acroform/utils.d.ts.map +1 -1
  780. package/es/core/acroform/utils.js +44 -46
  781. package/es/core/acroform/utils.js.map +1 -1
  782. package/es/core/annotation/AppearanceCharacteristics.d.ts +5 -5
  783. package/es/core/annotation/AppearanceCharacteristics.d.ts.map +1 -1
  784. package/es/core/annotation/AppearanceCharacteristics.js +60 -63
  785. package/es/core/annotation/AppearanceCharacteristics.js.map +1 -1
  786. package/es/core/annotation/BorderStyle.d.ts +2 -2
  787. package/es/core/annotation/BorderStyle.d.ts.map +1 -1
  788. package/es/core/annotation/BorderStyle.js +14 -15
  789. package/es/core/annotation/BorderStyle.js.map +1 -1
  790. package/es/core/annotation/PDFAnnotation.d.ts +6 -6
  791. package/es/core/annotation/PDFAnnotation.d.ts.map +1 -1
  792. package/es/core/annotation/PDFAnnotation.js +75 -76
  793. package/es/core/annotation/PDFAnnotation.js.map +1 -1
  794. package/es/core/annotation/PDFWidgetAnnotation.d.ts +9 -9
  795. package/es/core/annotation/PDFWidgetAnnotation.d.ts.map +1 -1
  796. package/es/core/annotation/PDFWidgetAnnotation.js +59 -67
  797. package/es/core/annotation/PDFWidgetAnnotation.js.map +1 -1
  798. package/es/core/annotation/flags.js +1 -1
  799. package/es/core/annotation/flags.js.map +1 -1
  800. package/es/core/annotation/index.d.ts +4 -4
  801. package/es/core/annotation/index.d.ts.map +1 -1
  802. package/es/core/annotation/index.js +4 -4
  803. package/es/core/annotation/index.js.map +1 -1
  804. package/es/core/crypto.d.ts +96 -0
  805. package/es/core/crypto.d.ts.map +1 -0
  806. package/es/core/crypto.js +1609 -0
  807. package/es/core/crypto.js.map +1 -0
  808. package/es/core/document/PDFCrossRefSection.d.ts +1 -1
  809. package/es/core/document/PDFCrossRefSection.d.ts.map +1 -1
  810. package/es/core/document/PDFCrossRefSection.js +55 -58
  811. package/es/core/document/PDFCrossRefSection.js.map +1 -1
  812. package/es/core/document/PDFHeader.d.ts +1 -0
  813. package/es/core/document/PDFHeader.d.ts.map +1 -1
  814. package/es/core/document/PDFHeader.js +18 -18
  815. package/es/core/document/PDFHeader.js.map +1 -1
  816. package/es/core/document/PDFTrailer.js +14 -17
  817. package/es/core/document/PDFTrailer.js.map +1 -1
  818. package/es/core/document/PDFTrailerDict.d.ts +1 -1
  819. package/es/core/document/PDFTrailerDict.d.ts.map +1 -1
  820. package/es/core/document/PDFTrailerDict.js +13 -14
  821. package/es/core/document/PDFTrailerDict.js.map +1 -1
  822. package/es/core/embedders/CMap.d.ts +2 -2
  823. package/es/core/embedders/CMap.d.ts.map +1 -1
  824. package/es/core/embedders/CMap.js +38 -26
  825. package/es/core/embedders/CMap.js.map +1 -1
  826. package/es/core/embedders/CustomFontEmbedder.d.ts +5 -5
  827. package/es/core/embedders/CustomFontEmbedder.d.ts.map +1 -1
  828. package/es/core/embedders/CustomFontEmbedder.js +132 -177
  829. package/es/core/embedders/CustomFontEmbedder.js.map +1 -1
  830. package/es/core/embedders/CustomFontSubsetEmbedder.d.ts +3 -3
  831. package/es/core/embedders/CustomFontSubsetEmbedder.d.ts.map +1 -1
  832. package/es/core/embedders/CustomFontSubsetEmbedder.js +37 -48
  833. package/es/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
  834. package/es/core/embedders/FileEmbedder.d.ts +3 -2
  835. package/es/core/embedders/FileEmbedder.d.ts.map +1 -1
  836. package/es/core/embedders/FileEmbedder.js +44 -48
  837. package/es/core/embedders/FileEmbedder.js.map +1 -1
  838. package/es/core/embedders/FontFlags.d.ts +1 -1
  839. package/es/core/embedders/FontFlags.d.ts.map +1 -1
  840. package/es/core/embedders/FontFlags.js +6 -6
  841. package/es/core/embedders/FontFlags.js.map +1 -1
  842. package/es/core/embedders/JavaScriptEmbedder.d.ts +2 -2
  843. package/es/core/embedders/JavaScriptEmbedder.d.ts.map +1 -1
  844. package/es/core/embedders/JavaScriptEmbedder.js +22 -27
  845. package/es/core/embedders/JavaScriptEmbedder.js.map +1 -1
  846. package/es/core/embedders/JpegEmbedder.d.ts +2 -2
  847. package/es/core/embedders/JpegEmbedder.d.ts.map +1 -1
  848. package/es/core/embedders/JpegEmbedder.js +66 -73
  849. package/es/core/embedders/JpegEmbedder.js.map +1 -1
  850. package/es/core/embedders/PDFPageEmbedder.d.ts +4 -4
  851. package/es/core/embedders/PDFPageEmbedder.d.ts.map +1 -1
  852. package/es/core/embedders/PDFPageEmbedder.js +63 -64
  853. package/es/core/embedders/PDFPageEmbedder.js.map +1 -1
  854. package/es/core/embedders/PngEmbedder.d.ts +2 -2
  855. package/es/core/embedders/PngEmbedder.d.ts.map +1 -1
  856. package/es/core/embedders/PngEmbedder.js +33 -41
  857. package/es/core/embedders/PngEmbedder.js.map +1 -1
  858. package/es/core/embedders/StandardFontEmbedder.d.ts +4 -4
  859. package/es/core/embedders/StandardFontEmbedder.d.ts.map +1 -1
  860. package/es/core/embedders/StandardFontEmbedder.js +50 -48
  861. package/es/core/embedders/StandardFontEmbedder.js.map +1 -1
  862. package/es/core/errors.d.ts +1 -1
  863. package/es/core/errors.d.ts.map +1 -1
  864. package/es/core/errors.js +175 -316
  865. package/es/core/errors.js.map +1 -1
  866. package/es/core/index.d.ts +48 -47
  867. package/es/core/index.d.ts.map +1 -1
  868. package/es/core/index.js +48 -47
  869. package/es/core/index.js.map +1 -1
  870. package/es/core/interactive/ViewerPreferences.d.ts +8 -8
  871. package/es/core/interactive/ViewerPreferences.d.ts.map +1 -1
  872. package/es/core/interactive/ViewerPreferences.js +127 -130
  873. package/es/core/interactive/ViewerPreferences.js.map +1 -1
  874. package/es/core/objects/PDFArray.d.ts +12 -12
  875. package/es/core/objects/PDFArray.d.ts.map +1 -1
  876. package/es/core/objects/PDFArray.js +71 -81
  877. package/es/core/objects/PDFArray.js.map +1 -1
  878. package/es/core/objects/PDFBool.d.ts +1 -1
  879. package/es/core/objects/PDFBool.d.ts.map +1 -1
  880. package/es/core/objects/PDFBool.js +21 -26
  881. package/es/core/objects/PDFBool.js.map +1 -1
  882. package/es/core/objects/PDFDict.d.ts +13 -12
  883. package/es/core/objects/PDFDict.d.ts.map +1 -1
  884. package/es/core/objects/PDFDict.js +75 -88
  885. package/es/core/objects/PDFDict.js.map +1 -1
  886. package/es/core/objects/PDFHexString.d.ts +2 -1
  887. package/es/core/objects/PDFHexString.d.ts.map +1 -1
  888. package/es/core/objects/PDFHexString.js +45 -48
  889. package/es/core/objects/PDFHexString.js.map +1 -1
  890. package/es/core/objects/PDFInvalidObject.d.ts +1 -1
  891. package/es/core/objects/PDFInvalidObject.d.ts.map +1 -1
  892. package/es/core/objects/PDFInvalidObject.js +18 -22
  893. package/es/core/objects/PDFInvalidObject.js.map +1 -1
  894. package/es/core/objects/PDFName.d.ts +1 -1
  895. package/es/core/objects/PDFName.d.ts.map +1 -1
  896. package/es/core/objects/PDFName.js +83 -92
  897. package/es/core/objects/PDFName.js.map +1 -1
  898. package/es/core/objects/PDFNull.d.ts +1 -1
  899. package/es/core/objects/PDFNull.d.ts.map +1 -1
  900. package/es/core/objects/PDFNull.js +14 -20
  901. package/es/core/objects/PDFNull.js.map +1 -1
  902. package/es/core/objects/PDFNumber.d.ts +1 -1
  903. package/es/core/objects/PDFNumber.d.ts.map +1 -1
  904. package/es/core/objects/PDFNumber.js +22 -26
  905. package/es/core/objects/PDFNumber.js.map +1 -1
  906. package/es/core/objects/PDFObject.d.ts +1 -1
  907. package/es/core/objects/PDFObject.d.ts.map +1 -1
  908. package/es/core/objects/PDFObject.js +13 -16
  909. package/es/core/objects/PDFObject.js.map +1 -1
  910. package/es/core/objects/PDFRawStream.d.ts +8 -5
  911. package/es/core/objects/PDFRawStream.d.ts.map +1 -1
  912. package/es/core/objects/PDFRawStream.js +22 -24
  913. package/es/core/objects/PDFRawStream.js.map +1 -1
  914. package/es/core/objects/PDFRef.d.ts +1 -1
  915. package/es/core/objects/PDFRef.d.ts.map +1 -1
  916. package/es/core/objects/PDFRef.js +30 -36
  917. package/es/core/objects/PDFRef.js.map +1 -1
  918. package/es/core/objects/PDFStream.d.ts +4 -3
  919. package/es/core/objects/PDFStream.d.ts.map +1 -1
  920. package/es/core/objects/PDFStream.js +34 -35
  921. package/es/core/objects/PDFStream.js.map +1 -1
  922. package/es/core/objects/PDFString.d.ts +1 -1
  923. package/es/core/objects/PDFString.d.ts.map +1 -1
  924. package/es/core/objects/PDFString.js +50 -54
  925. package/es/core/objects/PDFString.js.map +1 -1
  926. package/es/core/operators/PDFOperator.d.ts +9 -9
  927. package/es/core/operators/PDFOperator.d.ts.map +1 -1
  928. package/es/core/operators/PDFOperator.js +26 -29
  929. package/es/core/operators/PDFOperator.js.map +1 -1
  930. package/es/core/parser/BaseParser.d.ts +1 -1
  931. package/es/core/parser/BaseParser.d.ts.map +1 -1
  932. package/es/core/parser/BaseParser.js +36 -38
  933. package/es/core/parser/BaseParser.js.map +1 -1
  934. package/es/core/parser/ByteStream.d.ts +1 -1
  935. package/es/core/parser/ByteStream.d.ts.map +1 -1
  936. package/es/core/parser/ByteStream.js +29 -32
  937. package/es/core/parser/ByteStream.js.map +1 -1
  938. package/es/core/parser/PDFObjectParser.d.ts +23 -21
  939. package/es/core/parser/PDFObjectParser.d.ts.map +1 -1
  940. package/es/core/parser/PDFObjectParser.js +92 -85
  941. package/es/core/parser/PDFObjectParser.js.map +1 -1
  942. package/es/core/parser/PDFObjectStreamParser.d.ts +3 -3
  943. package/es/core/parser/PDFObjectStreamParser.d.ts.map +1 -1
  944. package/es/core/parser/PDFObjectStreamParser.js +42 -60
  945. package/es/core/parser/PDFObjectStreamParser.js.map +1 -1
  946. package/es/core/parser/PDFParser.d.ts +6 -4
  947. package/es/core/parser/PDFParser.d.ts.map +1 -1
  948. package/es/core/parser/PDFParser.js +169 -217
  949. package/es/core/parser/PDFParser.js.map +1 -1
  950. package/es/core/parser/PDFXRefStreamParser.d.ts +2 -2
  951. package/es/core/parser/PDFXRefStreamParser.d.ts.map +1 -1
  952. package/es/core/parser/PDFXRefStreamParser.js +37 -40
  953. package/es/core/parser/PDFXRefStreamParser.js.map +1 -1
  954. package/es/core/security/PDFSecurity.d.ts +75 -0
  955. package/es/core/security/PDFSecurity.d.ts.map +1 -0
  956. package/es/core/security/PDFSecurity.js +403 -0
  957. package/es/core/security/PDFSecurity.js.map +1 -0
  958. package/es/core/streams/Ascii85Stream.d.ts +2 -2
  959. package/es/core/streams/Ascii85Stream.d.ts.map +1 -1
  960. package/es/core/streams/Ascii85Stream.js +20 -26
  961. package/es/core/streams/Ascii85Stream.js.map +1 -1
  962. package/es/core/streams/AsciiHexStream.d.ts +2 -2
  963. package/es/core/streams/AsciiHexStream.d.ts.map +1 -1
  964. package/es/core/streams/AsciiHexStream.js +18 -22
  965. package/es/core/streams/AsciiHexStream.js.map +1 -1
  966. package/es/core/streams/DecodeStream.d.ts +1 -1
  967. package/es/core/streams/DecodeStream.d.ts.map +1 -1
  968. package/es/core/streams/DecodeStream.js +53 -60
  969. package/es/core/streams/DecodeStream.js.map +1 -1
  970. package/es/core/streams/DecryptStream.d.ts +13 -0
  971. package/es/core/streams/DecryptStream.d.ts.map +1 -0
  972. package/es/core/streams/DecryptStream.js +36 -0
  973. package/es/core/streams/DecryptStream.js.map +1 -0
  974. package/es/core/streams/FlateStream.d.ts +2 -2
  975. package/es/core/streams/FlateStream.d.ts.map +1 -1
  976. package/es/core/streams/FlateStream.js +81 -84
  977. package/es/core/streams/FlateStream.js.map +1 -1
  978. package/es/core/streams/LZWStream.d.ts +3 -3
  979. package/es/core/streams/LZWStream.d.ts.map +1 -1
  980. package/es/core/streams/LZWStream.js +41 -45
  981. package/es/core/streams/LZWStream.js.map +1 -1
  982. package/es/core/streams/RunLengthStream.d.ts +2 -2
  983. package/es/core/streams/RunLengthStream.d.ts.map +1 -1
  984. package/es/core/streams/RunLengthStream.js +15 -19
  985. package/es/core/streams/RunLengthStream.js.map +1 -1
  986. package/es/core/streams/Stream.js +45 -56
  987. package/es/core/streams/Stream.js.map +1 -1
  988. package/es/core/streams/decode.d.ts +3 -3
  989. package/es/core/streams/decode.d.ts.map +1 -1
  990. package/es/core/streams/decode.js +23 -21
  991. package/es/core/streams/decode.js.map +1 -1
  992. package/es/core/structures/PDFCatalog.d.ts +5 -5
  993. package/es/core/structures/PDFCatalog.d.ts.map +1 -1
  994. package/es/core/structures/PDFCatalog.js +39 -47
  995. package/es/core/structures/PDFCatalog.js.map +1 -1
  996. package/es/core/structures/PDFContentStream.d.ts +4 -4
  997. package/es/core/structures/PDFContentStream.d.ts.map +1 -1
  998. package/es/core/structures/PDFContentStream.js +30 -43
  999. package/es/core/structures/PDFContentStream.js.map +1 -1
  1000. package/es/core/structures/PDFCrossRefStream.d.ts +6 -6
  1001. package/es/core/structures/PDFCrossRefStream.d.ts.map +1 -1
  1002. package/es/core/structures/PDFCrossRefStream.js +91 -100
  1003. package/es/core/structures/PDFCrossRefStream.js.map +1 -1
  1004. package/es/core/structures/PDFFlateStream.d.ts +5 -4
  1005. package/es/core/structures/PDFFlateStream.d.ts.map +1 -1
  1006. package/es/core/structures/PDFFlateStream.js +22 -23
  1007. package/es/core/structures/PDFFlateStream.js.map +1 -1
  1008. package/es/core/structures/PDFObjectStream.d.ts +5 -5
  1009. package/es/core/structures/PDFObjectStream.d.ts.map +1 -1
  1010. package/es/core/structures/PDFObjectStream.js +46 -54
  1011. package/es/core/structures/PDFObjectStream.js.map +1 -1
  1012. package/es/core/structures/PDFPageLeaf.d.ts +9 -9
  1013. package/es/core/structures/PDFPageLeaf.d.ts.map +1 -1
  1014. package/es/core/structures/PDFPageLeaf.js +125 -133
  1015. package/es/core/structures/PDFPageLeaf.js.map +1 -1
  1016. package/es/core/structures/PDFPageTree.d.ts +8 -8
  1017. package/es/core/structures/PDFPageTree.d.ts.map +1 -1
  1018. package/es/core/structures/PDFPageTree.js +66 -75
  1019. package/es/core/structures/PDFPageTree.js.map +1 -1
  1020. package/es/core/syntax/Delimiters.js +2 -2
  1021. package/es/core/syntax/Delimiters.js.map +1 -1
  1022. package/es/core/syntax/Irregular.js +5 -5
  1023. package/es/core/syntax/Irregular.js.map +1 -1
  1024. package/es/core/syntax/Keywords.d.ts +1 -1
  1025. package/es/core/syntax/Keywords.d.ts.map +1 -1
  1026. package/es/core/syntax/Keywords.js +14 -15
  1027. package/es/core/syntax/Keywords.js.map +1 -1
  1028. package/es/core/syntax/Numeric.js +5 -5
  1029. package/es/core/syntax/Numeric.js.map +1 -1
  1030. package/es/core/syntax/Whitespace.js +2 -2
  1031. package/es/core/syntax/Whitespace.js.map +1 -1
  1032. package/es/core/writers/PDFStreamWriter.d.ts +7 -7
  1033. package/es/core/writers/PDFStreamWriter.d.ts.map +1 -1
  1034. package/es/core/writers/PDFStreamWriter.js +102 -126
  1035. package/es/core/writers/PDFStreamWriter.js.map +1 -1
  1036. package/es/core/writers/PDFWriter.d.ts +15 -10
  1037. package/es/core/writers/PDFWriter.d.ts.map +1 -1
  1038. package/es/core/writers/PDFWriter.js +116 -142
  1039. package/es/core/writers/PDFWriter.js.map +1 -1
  1040. package/es/index.d.ts +4 -4
  1041. package/es/index.d.ts.map +1 -1
  1042. package/es/index.js +4 -4
  1043. package/es/index.js.map +1 -1
  1044. package/es/package.json +3 -0
  1045. package/es/types/fontkit.js +1 -0
  1046. package/es/types/index.d.ts +25 -1
  1047. package/es/types/index.d.ts.map +1 -1
  1048. package/es/types/index.js +1 -0
  1049. package/es/types/matrix.d.ts +8 -1
  1050. package/es/types/matrix.d.ts.map +1 -1
  1051. package/es/types/matrix.js +1 -1
  1052. package/es/types/matrix.js.map +1 -1
  1053. package/es/utils/Cache.js +10 -11
  1054. package/es/utils/Cache.js.map +1 -1
  1055. package/es/utils/arrays.d.ts +3 -1
  1056. package/es/utils/arrays.d.ts.map +1 -1
  1057. package/es/utils/arrays.js +78 -60
  1058. package/es/utils/arrays.js.map +1 -1
  1059. package/es/utils/async.d.ts.map +1 -1
  1060. package/es/utils/async.js +3 -5
  1061. package/es/utils/async.js.map +1 -1
  1062. package/es/utils/base64.d.ts.map +1 -1
  1063. package/es/utils/base64.js +24 -24
  1064. package/es/utils/base64.js.map +1 -1
  1065. package/es/utils/elements/Arc.d.ts +23 -0
  1066. package/es/utils/elements/Arc.d.ts.map +1 -0
  1067. package/es/utils/elements/Arc.js +74 -0
  1068. package/es/utils/elements/Arc.js.map +1 -0
  1069. package/es/utils/elements/Circle.d.ts +15 -0
  1070. package/es/utils/elements/Circle.d.ts.map +1 -0
  1071. package/es/utils/elements/Circle.js +37 -0
  1072. package/es/utils/elements/Circle.js.map +1 -0
  1073. package/es/utils/elements/Ellipse.d.ts +21 -0
  1074. package/es/utils/elements/Ellipse.d.ts.map +1 -0
  1075. package/es/utils/elements/Ellipse.js +87 -0
  1076. package/es/utils/elements/Ellipse.js.map +1 -0
  1077. package/es/utils/elements/GraphElement.d.ts +7 -0
  1078. package/es/utils/elements/GraphElement.d.ts.map +1 -0
  1079. package/es/utils/elements/GraphElement.js +8 -0
  1080. package/es/utils/elements/GraphElement.js.map +1 -0
  1081. package/es/utils/elements/Line.d.ts +24 -0
  1082. package/es/utils/elements/Line.d.ts.map +1 -0
  1083. package/es/utils/elements/Line.js +68 -0
  1084. package/es/utils/elements/Line.js.map +1 -0
  1085. package/es/utils/elements/Plot.d.ts +12 -0
  1086. package/es/utils/elements/Plot.d.ts.map +1 -0
  1087. package/es/utils/elements/Plot.js +42 -0
  1088. package/es/utils/elements/Plot.js.map +1 -0
  1089. package/es/utils/elements/Point.d.ts +19 -0
  1090. package/es/utils/elements/Point.d.ts.map +1 -0
  1091. package/es/utils/elements/Point.js +28 -0
  1092. package/es/utils/elements/Point.js.map +1 -0
  1093. package/es/utils/elements/Rectangle.d.ts +22 -0
  1094. package/es/utils/elements/Rectangle.d.ts.map +1 -0
  1095. package/es/utils/elements/Rectangle.js +54 -0
  1096. package/es/utils/elements/Rectangle.js.map +1 -0
  1097. package/es/utils/elements/Segment.d.ts +20 -0
  1098. package/es/utils/elements/Segment.d.ts.map +1 -0
  1099. package/es/utils/elements/Segment.js +76 -0
  1100. package/es/utils/elements/Segment.js.map +1 -0
  1101. package/es/utils/elements/index.d.ts +10 -0
  1102. package/es/utils/elements/index.d.ts.map +1 -0
  1103. package/es/utils/elements/index.js +10 -0
  1104. package/es/utils/elements/index.js.map +1 -0
  1105. package/es/utils/errors.js +1 -1
  1106. package/es/utils/errors.js.map +1 -1
  1107. package/es/utils/index.d.ts +11 -11
  1108. package/es/utils/index.d.ts.map +1 -1
  1109. package/es/utils/index.js +11 -11
  1110. package/es/utils/index.js.map +1 -1
  1111. package/es/utils/intersections.d.ts +10 -0
  1112. package/es/utils/intersections.d.ts.map +1 -0
  1113. package/es/utils/intersections.js +243 -0
  1114. package/es/utils/intersections.js.map +1 -0
  1115. package/es/utils/maths.d.ts +46 -0
  1116. package/es/utils/maths.d.ts.map +1 -0
  1117. package/es/utils/maths.js +69 -0
  1118. package/es/utils/maths.js.map +1 -0
  1119. package/es/utils/numbers.js +9 -9
  1120. package/es/utils/numbers.js.map +1 -1
  1121. package/es/utils/objects.js +4 -6
  1122. package/es/utils/objects.js.map +1 -1
  1123. package/es/utils/pdfDocEncoding.js +7 -7
  1124. package/es/utils/pdfDocEncoding.js.map +1 -1
  1125. package/es/utils/png.js +20 -22
  1126. package/es/utils/png.js.map +1 -1
  1127. package/es/utils/rng.js +7 -9
  1128. package/es/utils/rng.js.map +1 -1
  1129. package/es/utils/strings.d.ts +1 -0
  1130. package/es/utils/strings.d.ts.map +1 -1
  1131. package/es/utils/strings.js +66 -68
  1132. package/es/utils/strings.js.map +1 -1
  1133. package/es/utils/unicode.js +42 -63
  1134. package/es/utils/unicode.js.map +1 -1
  1135. package/es/utils/validators.d.ts +2 -2
  1136. package/es/utils/validators.d.ts.map +1 -1
  1137. package/es/utils/validators.js +38 -38
  1138. package/es/utils/validators.js.map +1 -1
  1139. package/package.json +70 -39
  1140. package/src/api/PDFDocument.ts +248 -22
  1141. package/src/api/PDFDocumentOptions.ts +4 -2
  1142. package/src/api/PDFEmbeddedFile.ts +12 -4
  1143. package/src/api/PDFEmbeddedPage.ts +4 -4
  1144. package/src/api/PDFFont.ts +4 -4
  1145. package/src/api/PDFImage.ts +4 -4
  1146. package/src/api/PDFJavaScript.ts +4 -4
  1147. package/src/api/PDFPage.ts +93 -20
  1148. package/src/api/PDFPageOptions.ts +34 -12
  1149. package/src/api/PDFSvg.ts +10 -0
  1150. package/src/api/colors.ts +27 -19
  1151. package/src/api/form/PDFButton.ts +11 -11
  1152. package/src/api/form/PDFCheckBox.ts +8 -8
  1153. package/src/api/form/PDFDropdown.ts +9 -9
  1154. package/src/api/form/PDFField.ts +7 -7
  1155. package/src/api/form/PDFForm.ts +56 -46
  1156. package/src/api/form/PDFOptionList.ts +9 -9
  1157. package/src/api/form/PDFRadioGroup.ts +8 -8
  1158. package/src/api/form/PDFSignature.ts +4 -4
  1159. package/src/api/form/PDFTextField.ts +15 -15
  1160. package/src/api/form/appearances.ts +41 -49
  1161. package/src/api/form/index.ts +10 -10
  1162. package/src/api/image/index.ts +1 -1
  1163. package/src/api/index.ts +1 -0
  1164. package/src/api/objects.ts +1 -1
  1165. package/src/api/operations.ts +198 -142
  1166. package/src/api/operators.ts +10 -3
  1167. package/src/api/rotations.ts +7 -9
  1168. package/src/api/svg.ts +1074 -0
  1169. package/src/api/svgPath.ts +2 -4
  1170. package/src/api/text/index.ts +2 -2
  1171. package/src/api/text/layout.ts +5 -5
  1172. package/src/core/PDFContext.ts +94 -19
  1173. package/src/core/PDFObjectCopier.ts +8 -8
  1174. package/src/core/acroform/PDFAcroButton.ts +8 -8
  1175. package/src/core/acroform/PDFAcroCheckBox.ts +6 -6
  1176. package/src/core/acroform/PDFAcroChoice.ts +7 -10
  1177. package/src/core/acroform/PDFAcroComboBox.ts +5 -5
  1178. package/src/core/acroform/PDFAcroField.ts +12 -12
  1179. package/src/core/acroform/PDFAcroForm.ts +8 -11
  1180. package/src/core/acroform/PDFAcroListBox.ts +4 -4
  1181. package/src/core/acroform/PDFAcroNonTerminal.ts +5 -5
  1182. package/src/core/acroform/PDFAcroPushButton.ts +5 -5
  1183. package/src/core/acroform/PDFAcroRadioButton.ts +7 -7
  1184. package/src/core/acroform/PDFAcroSignature.ts +3 -3
  1185. package/src/core/acroform/PDFAcroTerminal.ts +6 -6
  1186. package/src/core/acroform/PDFAcroText.ts +8 -8
  1187. package/src/core/acroform/index.ts +15 -15
  1188. package/src/core/acroform/utils.ts +20 -20
  1189. package/src/core/annotation/AppearanceCharacteristics.ts +6 -6
  1190. package/src/core/annotation/BorderStyle.ts +3 -3
  1191. package/src/core/annotation/PDFAnnotation.ts +6 -6
  1192. package/src/core/annotation/PDFWidgetAnnotation.ts +9 -9
  1193. package/src/core/annotation/index.ts +4 -4
  1194. package/src/core/crypto.ts +1997 -0
  1195. package/src/core/document/PDFCrossRefSection.ts +4 -4
  1196. package/src/core/document/PDFHeader.ts +6 -2
  1197. package/src/core/document/PDFTrailer.ts +2 -2
  1198. package/src/core/document/PDFTrailerDict.ts +2 -2
  1199. package/src/core/embedders/CMap.ts +3 -3
  1200. package/src/core/embedders/CustomFontEmbedder.ts +9 -9
  1201. package/src/core/embedders/CustomFontSubsetEmbedder.ts +10 -4
  1202. package/src/core/embedders/FileEmbedder.ts +8 -4
  1203. package/src/core/embedders/FontFlags.ts +1 -1
  1204. package/src/core/embedders/JavaScriptEmbedder.ts +3 -3
  1205. package/src/core/embedders/JpegEmbedder.ts +2 -2
  1206. package/src/core/embedders/PDFPageEmbedder.ts +24 -22
  1207. package/src/core/embedders/PngEmbedder.ts +3 -3
  1208. package/src/core/embedders/StandardFontEmbedder.ts +10 -5
  1209. package/src/core/errors.ts +15 -13
  1210. package/src/core/index.ts +52 -47
  1211. package/src/core/interactive/ViewerPreferences.ts +7 -7
  1212. package/src/core/objects/PDFArray.ts +22 -22
  1213. package/src/core/objects/PDFBool.ts +3 -3
  1214. package/src/core/objects/PDFDict.ts +14 -12
  1215. package/src/core/objects/PDFHexString.ts +8 -4
  1216. package/src/core/objects/PDFInvalidObject.ts +1 -1
  1217. package/src/core/objects/PDFName.ts +6 -6
  1218. package/src/core/objects/PDFNull.ts +2 -2
  1219. package/src/core/objects/PDFNumber.ts +3 -3
  1220. package/src/core/objects/PDFObject.ts +2 -2
  1221. package/src/core/objects/PDFRawStream.ts +24 -10
  1222. package/src/core/objects/PDFRef.ts +4 -4
  1223. package/src/core/objects/PDFStream.ts +14 -7
  1224. package/src/core/objects/PDFString.ts +4 -4
  1225. package/src/core/operators/PDFOperator.ts +10 -10
  1226. package/src/core/parser/BaseParser.ts +6 -6
  1227. package/src/core/parser/ByteStream.ts +4 -4
  1228. package/src/core/parser/PDFObjectParser.ts +78 -41
  1229. package/src/core/parser/PDFObjectStreamParser.ts +9 -9
  1230. package/src/core/parser/PDFParser.ts +43 -23
  1231. package/src/core/parser/PDFXRefStreamParser.ts +9 -9
  1232. package/src/core/security/PDFSecurity.ts +685 -0
  1233. package/src/core/streams/Ascii85Stream.ts +2 -2
  1234. package/src/core/streams/AsciiHexStream.ts +2 -2
  1235. package/src/core/streams/DecodeStream.ts +2 -2
  1236. package/src/core/streams/DecryptStream.ts +56 -0
  1237. package/src/core/streams/FlateStream.ts +3 -2
  1238. package/src/core/streams/LZWStream.ts +3 -3
  1239. package/src/core/streams/RunLengthStream.ts +2 -2
  1240. package/src/core/streams/decode.ts +23 -18
  1241. package/src/core/structures/PDFCatalog.ts +6 -6
  1242. package/src/core/structures/PDFContentStream.ts +5 -5
  1243. package/src/core/structures/PDFCrossRefStream.ts +6 -6
  1244. package/src/core/structures/PDFFlateStream.ts +10 -6
  1245. package/src/core/structures/PDFObjectStream.ts +8 -8
  1246. package/src/core/structures/PDFPageLeaf.ts +9 -9
  1247. package/src/core/structures/PDFPageTree.ts +8 -8
  1248. package/src/core/syntax/Delimiters.ts +1 -1
  1249. package/src/core/syntax/Irregular.ts +3 -3
  1250. package/src/core/syntax/Keywords.ts +1 -1
  1251. package/src/core/syntax/Numeric.ts +1 -1
  1252. package/src/core/syntax/Whitespace.ts +1 -1
  1253. package/src/core/writers/PDFStreamWriter.ts +12 -1
  1254. package/src/core/writers/PDFWriter.ts +22 -13
  1255. package/src/index.ts +4 -4
  1256. package/src/types/index.ts +38 -1
  1257. package/src/utils/arrays.ts +33 -2
  1258. package/src/utils/base64.ts +2 -1
  1259. package/src/utils/elements/Arc.ts +107 -0
  1260. package/src/utils/elements/Circle.ts +55 -0
  1261. package/src/utils/elements/Ellipse.ts +135 -0
  1262. package/src/utils/elements/GraphElement.ts +14 -0
  1263. package/src/utils/elements/Line.ts +85 -0
  1264. package/src/utils/elements/Plot.ts +50 -0
  1265. package/src/utils/elements/Point.ts +37 -0
  1266. package/src/utils/elements/Rectangle.ts +65 -0
  1267. package/src/utils/elements/Segment.ts +92 -0
  1268. package/src/utils/elements/index.ts +9 -0
  1269. package/src/utils/index.ts +11 -11
  1270. package/src/utils/intersections.ts +280 -0
  1271. package/src/utils/maths.ts +108 -0
  1272. package/src/utils/pdfDocEncoding.ts +1 -1
  1273. package/src/utils/png.ts +1 -1
  1274. package/src/utils/strings.ts +11 -1
  1275. package/src/utils/unicode.ts +1 -1
  1276. package/src/utils/validators.ts +1 -1
  1277. package/ts3.4/cjs/api/PDFDocument.d.ts +52 -13
  1278. package/ts3.4/cjs/api/PDFDocumentOptions.d.ts +4 -2
  1279. package/ts3.4/cjs/api/PDFEmbeddedFile.d.ts +9 -4
  1280. package/ts3.4/cjs/api/PDFEmbeddedPage.d.ts +3 -3
  1281. package/ts3.4/cjs/api/PDFFont.d.ts +4 -4
  1282. package/ts3.4/cjs/api/PDFImage.d.ts +4 -4
  1283. package/ts3.4/cjs/api/PDFJavaScript.d.ts +4 -4
  1284. package/ts3.4/cjs/api/PDFPage.d.ts +36 -9
  1285. package/ts3.4/cjs/api/PDFPageOptions.d.ts +35 -12
  1286. package/ts3.4/cjs/api/PDFSvg.d.ts +7 -0
  1287. package/ts3.4/cjs/api/colors.d.ts +6 -2
  1288. package/ts3.4/cjs/api/form/PDFButton.d.ts +8 -8
  1289. package/ts3.4/cjs/api/form/PDFCheckBox.d.ts +5 -5
  1290. package/ts3.4/cjs/api/form/PDFDropdown.d.ts +6 -6
  1291. package/ts3.4/cjs/api/form/PDFField.d.ts +7 -7
  1292. package/ts3.4/cjs/api/form/PDFForm.d.ts +11 -11
  1293. package/ts3.4/cjs/api/form/PDFOptionList.d.ts +6 -6
  1294. package/ts3.4/cjs/api/form/PDFRadioGroup.d.ts +5 -5
  1295. package/ts3.4/cjs/api/form/PDFSignature.d.ts +3 -3
  1296. package/ts3.4/cjs/api/form/PDFTextField.d.ts +8 -8
  1297. package/ts3.4/cjs/api/form/appearances.d.ts +21 -21
  1298. package/ts3.4/cjs/api/form/index.d.ts +10 -10
  1299. package/ts3.4/cjs/api/image/index.d.ts +1 -1
  1300. package/ts3.4/cjs/api/index.d.ts +22 -21
  1301. package/ts3.4/cjs/api/objects.d.ts +1 -1
  1302. package/ts3.4/cjs/api/operations.d.ts +27 -13
  1303. package/ts3.4/cjs/api/operators.d.ts +6 -1
  1304. package/ts3.4/cjs/api/rotations.d.ts +2 -2
  1305. package/ts3.4/cjs/api/sizes.d.ts +200 -50
  1306. package/ts3.4/cjs/api/snapshot/DefaultDocumentSnapshot.d.ts +1 -1
  1307. package/ts3.4/cjs/api/snapshot/DocumentSnapshot.d.ts +1 -1
  1308. package/ts3.4/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts +1 -1
  1309. package/ts3.4/cjs/api/svg.d.ts +76 -0
  1310. package/ts3.4/cjs/api/svgPath.d.ts +1 -1
  1311. package/ts3.4/cjs/api/text/index.d.ts +2 -2
  1312. package/ts3.4/cjs/api/text/layout.d.ts +3 -3
  1313. package/ts3.4/cjs/core/PDFContext.d.ts +43 -20
  1314. package/ts3.4/cjs/core/PDFObjectCopier.d.ts +2 -2
  1315. package/ts3.4/cjs/core/acroform/PDFAcroButton.d.ts +7 -7
  1316. package/ts3.4/cjs/core/acroform/PDFAcroCheckBox.d.ts +5 -5
  1317. package/ts3.4/cjs/core/acroform/PDFAcroChoice.d.ts +4 -4
  1318. package/ts3.4/cjs/core/acroform/PDFAcroComboBox.d.ts +4 -4
  1319. package/ts3.4/cjs/core/acroform/PDFAcroField.d.ts +8 -8
  1320. package/ts3.4/cjs/core/acroform/PDFAcroForm.d.ts +13 -7
  1321. package/ts3.4/cjs/core/acroform/PDFAcroListBox.d.ts +4 -4
  1322. package/ts3.4/cjs/core/acroform/PDFAcroNonTerminal.d.ts +4 -4
  1323. package/ts3.4/cjs/core/acroform/PDFAcroPushButton.d.ts +4 -4
  1324. package/ts3.4/cjs/core/acroform/PDFAcroRadioButton.d.ts +5 -5
  1325. package/ts3.4/cjs/core/acroform/PDFAcroSignature.d.ts +3 -3
  1326. package/ts3.4/cjs/core/acroform/PDFAcroTerminal.d.ts +5 -5
  1327. package/ts3.4/cjs/core/acroform/PDFAcroText.d.ts +7 -7
  1328. package/ts3.4/cjs/core/acroform/index.d.ts +15 -15
  1329. package/ts3.4/cjs/core/acroform/utils.d.ts +8 -5
  1330. package/ts3.4/cjs/core/annotation/AppearanceCharacteristics.d.ts +5 -5
  1331. package/ts3.4/cjs/core/annotation/BorderStyle.d.ts +2 -2
  1332. package/ts3.4/cjs/core/annotation/PDFAnnotation.d.ts +6 -6
  1333. package/ts3.4/cjs/core/annotation/PDFWidgetAnnotation.d.ts +9 -9
  1334. package/ts3.4/cjs/core/annotation/index.d.ts +4 -4
  1335. package/ts3.4/cjs/core/crypto.d.ts +96 -0
  1336. package/ts3.4/cjs/core/document/PDFCrossRefSection.d.ts +1 -1
  1337. package/ts3.4/cjs/core/document/PDFHeader.d.ts +1 -0
  1338. package/ts3.4/cjs/core/document/PDFTrailerDict.d.ts +1 -1
  1339. package/ts3.4/cjs/core/embedders/CMap.d.ts +2 -2
  1340. package/ts3.4/cjs/core/embedders/CustomFontEmbedder.d.ts +5 -5
  1341. package/ts3.4/cjs/core/embedders/CustomFontSubsetEmbedder.d.ts +3 -3
  1342. package/ts3.4/cjs/core/embedders/FileEmbedder.d.ts +3 -2
  1343. package/ts3.4/cjs/core/embedders/FontFlags.d.ts +1 -1
  1344. package/ts3.4/cjs/core/embedders/JavaScriptEmbedder.d.ts +2 -2
  1345. package/ts3.4/cjs/core/embedders/JpegEmbedder.d.ts +2 -2
  1346. package/ts3.4/cjs/core/embedders/PDFPageEmbedder.d.ts +4 -4
  1347. package/ts3.4/cjs/core/embedders/PngEmbedder.d.ts +2 -2
  1348. package/ts3.4/cjs/core/embedders/StandardFontEmbedder.d.ts +4 -4
  1349. package/ts3.4/cjs/core/errors.d.ts +1 -1
  1350. package/ts3.4/cjs/core/index.d.ts +48 -47
  1351. package/ts3.4/cjs/core/interactive/ViewerPreferences.d.ts +8 -8
  1352. package/ts3.4/cjs/core/objects/PDFArray.d.ts +12 -12
  1353. package/ts3.4/cjs/core/objects/PDFBool.d.ts +1 -1
  1354. package/ts3.4/cjs/core/objects/PDFDict.d.ts +17 -13
  1355. package/ts3.4/cjs/core/objects/PDFHexString.d.ts +2 -1
  1356. package/ts3.4/cjs/core/objects/PDFInvalidObject.d.ts +1 -1
  1357. package/ts3.4/cjs/core/objects/PDFName.d.ts +1 -1
  1358. package/ts3.4/cjs/core/objects/PDFNull.d.ts +1 -1
  1359. package/ts3.4/cjs/core/objects/PDFNumber.d.ts +1 -1
  1360. package/ts3.4/cjs/core/objects/PDFObject.d.ts +1 -1
  1361. package/ts3.4/cjs/core/objects/PDFRawStream.d.ts +8 -5
  1362. package/ts3.4/cjs/core/objects/PDFRef.d.ts +1 -1
  1363. package/ts3.4/cjs/core/objects/PDFStream.d.ts +4 -3
  1364. package/ts3.4/cjs/core/objects/PDFString.d.ts +1 -1
  1365. package/ts3.4/cjs/core/operators/PDFOperator.d.ts +9 -9
  1366. package/ts3.4/cjs/core/parser/BaseParser.d.ts +1 -1
  1367. package/ts3.4/cjs/core/parser/ByteStream.d.ts +1 -1
  1368. package/ts3.4/cjs/core/parser/PDFObjectParser.d.ts +23 -21
  1369. package/ts3.4/cjs/core/parser/PDFObjectStreamParser.d.ts +3 -3
  1370. package/ts3.4/cjs/core/parser/PDFParser.d.ts +6 -4
  1371. package/ts3.4/cjs/core/parser/PDFXRefStreamParser.d.ts +2 -2
  1372. package/ts3.4/cjs/core/security/PDFSecurity.d.ts +75 -0
  1373. package/ts3.4/cjs/core/streams/Ascii85Stream.d.ts +2 -2
  1374. package/ts3.4/cjs/core/streams/AsciiHexStream.d.ts +2 -2
  1375. package/ts3.4/cjs/core/streams/DecodeStream.d.ts +1 -1
  1376. package/ts3.4/cjs/core/streams/DecryptStream.d.ts +13 -0
  1377. package/ts3.4/cjs/core/streams/FlateStream.d.ts +2 -2
  1378. package/ts3.4/cjs/core/streams/LZWStream.d.ts +3 -3
  1379. package/ts3.4/cjs/core/streams/RunLengthStream.d.ts +2 -2
  1380. package/ts3.4/cjs/core/streams/decode.d.ts +3 -3
  1381. package/ts3.4/cjs/core/structures/PDFCatalog.d.ts +5 -5
  1382. package/ts3.4/cjs/core/structures/PDFContentStream.d.ts +4 -4
  1383. package/ts3.4/cjs/core/structures/PDFCrossRefStream.d.ts +10 -6
  1384. package/ts3.4/cjs/core/structures/PDFFlateStream.d.ts +5 -4
  1385. package/ts3.4/cjs/core/structures/PDFObjectStream.d.ts +8 -5
  1386. package/ts3.4/cjs/core/structures/PDFPageLeaf.d.ts +9 -9
  1387. package/ts3.4/cjs/core/structures/PDFPageTree.d.ts +8 -8
  1388. package/ts3.4/cjs/core/syntax/Keywords.d.ts +1 -1
  1389. package/ts3.4/cjs/core/writers/PDFStreamWriter.d.ts +11 -8
  1390. package/ts3.4/cjs/core/writers/PDFWriter.d.ts +19 -11
  1391. package/ts3.4/cjs/index.d.ts +4 -4
  1392. package/ts3.4/cjs/types/index.d.ts +25 -1
  1393. package/ts3.4/cjs/types/matrix.d.ts +8 -1
  1394. package/ts3.4/cjs/utils/arrays.d.ts +3 -1
  1395. package/ts3.4/cjs/utils/elements/Arc.d.ts +23 -0
  1396. package/ts3.4/cjs/utils/elements/Circle.d.ts +15 -0
  1397. package/ts3.4/cjs/utils/elements/Ellipse.d.ts +21 -0
  1398. package/ts3.4/cjs/utils/elements/GraphElement.d.ts +7 -0
  1399. package/ts3.4/cjs/utils/elements/Line.d.ts +24 -0
  1400. package/ts3.4/cjs/utils/elements/Plot.d.ts +12 -0
  1401. package/ts3.4/cjs/utils/elements/Point.d.ts +19 -0
  1402. package/ts3.4/cjs/utils/elements/Rectangle.d.ts +22 -0
  1403. package/ts3.4/cjs/utils/elements/Segment.d.ts +20 -0
  1404. package/ts3.4/cjs/utils/elements/index.d.ts +10 -0
  1405. package/ts3.4/cjs/utils/index.d.ts +11 -11
  1406. package/ts3.4/cjs/utils/intersections.d.ts +10 -0
  1407. package/ts3.4/cjs/utils/maths.d.ts +46 -0
  1408. package/ts3.4/cjs/utils/strings.d.ts +5 -1
  1409. package/ts3.4/cjs/utils/validators.d.ts +5 -2
  1410. package/ts3.4/es/api/PDFDocument.d.ts +52 -13
  1411. package/ts3.4/es/api/PDFDocumentOptions.d.ts +4 -2
  1412. package/ts3.4/es/api/PDFEmbeddedFile.d.ts +9 -4
  1413. package/ts3.4/es/api/PDFEmbeddedPage.d.ts +3 -3
  1414. package/ts3.4/es/api/PDFFont.d.ts +4 -4
  1415. package/ts3.4/es/api/PDFImage.d.ts +4 -4
  1416. package/ts3.4/es/api/PDFJavaScript.d.ts +4 -4
  1417. package/ts3.4/es/api/PDFPage.d.ts +36 -9
  1418. package/ts3.4/es/api/PDFPageOptions.d.ts +35 -12
  1419. package/ts3.4/es/api/PDFSvg.d.ts +7 -0
  1420. package/ts3.4/es/api/colors.d.ts +6 -2
  1421. package/ts3.4/es/api/form/PDFButton.d.ts +8 -8
  1422. package/ts3.4/es/api/form/PDFCheckBox.d.ts +5 -5
  1423. package/ts3.4/es/api/form/PDFDropdown.d.ts +6 -6
  1424. package/ts3.4/es/api/form/PDFField.d.ts +7 -7
  1425. package/ts3.4/es/api/form/PDFForm.d.ts +11 -11
  1426. package/ts3.4/es/api/form/PDFOptionList.d.ts +6 -6
  1427. package/ts3.4/es/api/form/PDFRadioGroup.d.ts +5 -5
  1428. package/ts3.4/es/api/form/PDFSignature.d.ts +3 -3
  1429. package/ts3.4/es/api/form/PDFTextField.d.ts +8 -8
  1430. package/ts3.4/es/api/form/appearances.d.ts +21 -21
  1431. package/ts3.4/es/api/form/index.d.ts +10 -10
  1432. package/ts3.4/es/api/image/index.d.ts +1 -1
  1433. package/ts3.4/es/api/index.d.ts +22 -21
  1434. package/ts3.4/es/api/objects.d.ts +1 -1
  1435. package/ts3.4/es/api/operations.d.ts +27 -13
  1436. package/ts3.4/es/api/operators.d.ts +6 -1
  1437. package/ts3.4/es/api/rotations.d.ts +2 -2
  1438. package/ts3.4/es/api/sizes.d.ts +200 -50
  1439. package/ts3.4/es/api/snapshot/DefaultDocumentSnapshot.d.ts +1 -1
  1440. package/ts3.4/es/api/snapshot/DocumentSnapshot.d.ts +1 -1
  1441. package/ts3.4/es/api/snapshot/IncrementalDocumentSnapshot.d.ts +1 -1
  1442. package/ts3.4/es/api/svg.d.ts +76 -0
  1443. package/ts3.4/es/api/svgPath.d.ts +1 -1
  1444. package/ts3.4/es/api/text/index.d.ts +2 -2
  1445. package/ts3.4/es/api/text/layout.d.ts +3 -3
  1446. package/ts3.4/es/core/PDFContext.d.ts +43 -20
  1447. package/ts3.4/es/core/PDFObjectCopier.d.ts +2 -2
  1448. package/ts3.4/es/core/acroform/PDFAcroButton.d.ts +7 -7
  1449. package/ts3.4/es/core/acroform/PDFAcroCheckBox.d.ts +5 -5
  1450. package/ts3.4/es/core/acroform/PDFAcroChoice.d.ts +4 -4
  1451. package/ts3.4/es/core/acroform/PDFAcroComboBox.d.ts +4 -4
  1452. package/ts3.4/es/core/acroform/PDFAcroField.d.ts +8 -8
  1453. package/ts3.4/es/core/acroform/PDFAcroForm.d.ts +13 -7
  1454. package/ts3.4/es/core/acroform/PDFAcroListBox.d.ts +4 -4
  1455. package/ts3.4/es/core/acroform/PDFAcroNonTerminal.d.ts +4 -4
  1456. package/ts3.4/es/core/acroform/PDFAcroPushButton.d.ts +4 -4
  1457. package/ts3.4/es/core/acroform/PDFAcroRadioButton.d.ts +5 -5
  1458. package/ts3.4/es/core/acroform/PDFAcroSignature.d.ts +3 -3
  1459. package/ts3.4/es/core/acroform/PDFAcroTerminal.d.ts +5 -5
  1460. package/ts3.4/es/core/acroform/PDFAcroText.d.ts +7 -7
  1461. package/ts3.4/es/core/acroform/index.d.ts +15 -15
  1462. package/ts3.4/es/core/acroform/utils.d.ts +8 -5
  1463. package/ts3.4/es/core/annotation/AppearanceCharacteristics.d.ts +5 -5
  1464. package/ts3.4/es/core/annotation/BorderStyle.d.ts +2 -2
  1465. package/ts3.4/es/core/annotation/PDFAnnotation.d.ts +6 -6
  1466. package/ts3.4/es/core/annotation/PDFWidgetAnnotation.d.ts +9 -9
  1467. package/ts3.4/es/core/annotation/index.d.ts +4 -4
  1468. package/ts3.4/es/core/crypto.d.ts +96 -0
  1469. package/ts3.4/es/core/document/PDFCrossRefSection.d.ts +1 -1
  1470. package/ts3.4/es/core/document/PDFHeader.d.ts +1 -0
  1471. package/ts3.4/es/core/document/PDFTrailerDict.d.ts +1 -1
  1472. package/ts3.4/es/core/embedders/CMap.d.ts +2 -2
  1473. package/ts3.4/es/core/embedders/CustomFontEmbedder.d.ts +5 -5
  1474. package/ts3.4/es/core/embedders/CustomFontSubsetEmbedder.d.ts +3 -3
  1475. package/ts3.4/es/core/embedders/FileEmbedder.d.ts +3 -2
  1476. package/ts3.4/es/core/embedders/FontFlags.d.ts +1 -1
  1477. package/ts3.4/es/core/embedders/JavaScriptEmbedder.d.ts +2 -2
  1478. package/ts3.4/es/core/embedders/JpegEmbedder.d.ts +2 -2
  1479. package/ts3.4/es/core/embedders/PDFPageEmbedder.d.ts +4 -4
  1480. package/ts3.4/es/core/embedders/PngEmbedder.d.ts +2 -2
  1481. package/ts3.4/es/core/embedders/StandardFontEmbedder.d.ts +4 -4
  1482. package/ts3.4/es/core/errors.d.ts +1 -1
  1483. package/ts3.4/es/core/index.d.ts +48 -47
  1484. package/ts3.4/es/core/interactive/ViewerPreferences.d.ts +8 -8
  1485. package/ts3.4/es/core/objects/PDFArray.d.ts +12 -12
  1486. package/ts3.4/es/core/objects/PDFBool.d.ts +1 -1
  1487. package/ts3.4/es/core/objects/PDFDict.d.ts +17 -13
  1488. package/ts3.4/es/core/objects/PDFHexString.d.ts +2 -1
  1489. package/ts3.4/es/core/objects/PDFInvalidObject.d.ts +1 -1
  1490. package/ts3.4/es/core/objects/PDFName.d.ts +1 -1
  1491. package/ts3.4/es/core/objects/PDFNull.d.ts +1 -1
  1492. package/ts3.4/es/core/objects/PDFNumber.d.ts +1 -1
  1493. package/ts3.4/es/core/objects/PDFObject.d.ts +1 -1
  1494. package/ts3.4/es/core/objects/PDFRawStream.d.ts +8 -5
  1495. package/ts3.4/es/core/objects/PDFRef.d.ts +1 -1
  1496. package/ts3.4/es/core/objects/PDFStream.d.ts +4 -3
  1497. package/ts3.4/es/core/objects/PDFString.d.ts +1 -1
  1498. package/ts3.4/es/core/operators/PDFOperator.d.ts +9 -9
  1499. package/ts3.4/es/core/parser/BaseParser.d.ts +1 -1
  1500. package/ts3.4/es/core/parser/ByteStream.d.ts +1 -1
  1501. package/ts3.4/es/core/parser/PDFObjectParser.d.ts +23 -21
  1502. package/ts3.4/es/core/parser/PDFObjectStreamParser.d.ts +3 -3
  1503. package/ts3.4/es/core/parser/PDFParser.d.ts +6 -4
  1504. package/ts3.4/es/core/parser/PDFXRefStreamParser.d.ts +2 -2
  1505. package/ts3.4/es/core/security/PDFSecurity.d.ts +75 -0
  1506. package/ts3.4/es/core/streams/Ascii85Stream.d.ts +2 -2
  1507. package/ts3.4/es/core/streams/AsciiHexStream.d.ts +2 -2
  1508. package/ts3.4/es/core/streams/DecodeStream.d.ts +1 -1
  1509. package/ts3.4/es/core/streams/DecryptStream.d.ts +13 -0
  1510. package/ts3.4/es/core/streams/FlateStream.d.ts +2 -2
  1511. package/ts3.4/es/core/streams/LZWStream.d.ts +3 -3
  1512. package/ts3.4/es/core/streams/RunLengthStream.d.ts +2 -2
  1513. package/ts3.4/es/core/streams/decode.d.ts +3 -3
  1514. package/ts3.4/es/core/structures/PDFCatalog.d.ts +5 -5
  1515. package/ts3.4/es/core/structures/PDFContentStream.d.ts +4 -4
  1516. package/ts3.4/es/core/structures/PDFCrossRefStream.d.ts +10 -6
  1517. package/ts3.4/es/core/structures/PDFFlateStream.d.ts +5 -4
  1518. package/ts3.4/es/core/structures/PDFObjectStream.d.ts +8 -5
  1519. package/ts3.4/es/core/structures/PDFPageLeaf.d.ts +9 -9
  1520. package/ts3.4/es/core/structures/PDFPageTree.d.ts +8 -8
  1521. package/ts3.4/es/core/syntax/Keywords.d.ts +1 -1
  1522. package/ts3.4/es/core/writers/PDFStreamWriter.d.ts +11 -8
  1523. package/ts3.4/es/core/writers/PDFWriter.d.ts +19 -11
  1524. package/ts3.4/es/index.d.ts +4 -4
  1525. package/ts3.4/es/types/index.d.ts +25 -1
  1526. package/ts3.4/es/types/matrix.d.ts +8 -1
  1527. package/ts3.4/es/utils/arrays.d.ts +3 -1
  1528. package/ts3.4/es/utils/elements/Arc.d.ts +23 -0
  1529. package/ts3.4/es/utils/elements/Circle.d.ts +15 -0
  1530. package/ts3.4/es/utils/elements/Ellipse.d.ts +21 -0
  1531. package/ts3.4/es/utils/elements/GraphElement.d.ts +7 -0
  1532. package/ts3.4/es/utils/elements/Line.d.ts +24 -0
  1533. package/ts3.4/es/utils/elements/Plot.d.ts +12 -0
  1534. package/ts3.4/es/utils/elements/Point.d.ts +19 -0
  1535. package/ts3.4/es/utils/elements/Rectangle.d.ts +22 -0
  1536. package/ts3.4/es/utils/elements/Segment.d.ts +20 -0
  1537. package/ts3.4/es/utils/elements/index.d.ts +10 -0
  1538. package/ts3.4/es/utils/index.d.ts +11 -11
  1539. package/ts3.4/es/utils/intersections.d.ts +10 -0
  1540. package/ts3.4/es/utils/maths.d.ts +46 -0
  1541. package/ts3.4/es/utils/strings.d.ts +5 -1
  1542. package/ts3.4/es/utils/validators.d.ts +5 -2
  1543. package/yarn.lock +0 -4446
@@ -1,65 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var errors_1 = require("./errors");
5
- var PDFEmbeddedPage_1 = tslib_1.__importDefault(require("./PDFEmbeddedPage"));
6
- var PDFFont_1 = tslib_1.__importDefault(require("./PDFFont"));
7
- var PDFImage_1 = tslib_1.__importDefault(require("./PDFImage"));
8
- var PDFPage_1 = tslib_1.__importDefault(require("./PDFPage"));
9
- var PDFForm_1 = tslib_1.__importDefault(require("./form/PDFForm"));
10
- var sizes_1 = require("./sizes");
11
- var core_1 = require("../core");
12
- var PDFDocumentOptions_1 = require("./PDFDocumentOptions");
13
- var utils_1 = require("../utils");
14
- var FileEmbedder_1 = tslib_1.__importStar(require("../core/embedders/FileEmbedder"));
15
- var PDFEmbeddedFile_1 = tslib_1.__importDefault(require("./PDFEmbeddedFile"));
16
- var PDFJavaScript_1 = tslib_1.__importDefault(require("./PDFJavaScript"));
17
- var JavaScriptEmbedder_1 = tslib_1.__importDefault(require("../core/embedders/JavaScriptEmbedder"));
18
- var snapshot_1 = require("./snapshot");
3
+ const tslib_1 = require("tslib");
4
+ const node_html_better_parser_1 = require("node-html-better-parser");
5
+ const errors_1 = require("./errors");
6
+ const PDFEmbeddedPage_1 = tslib_1.__importDefault(require("./PDFEmbeddedPage"));
7
+ const PDFFont_1 = tslib_1.__importDefault(require("./PDFFont"));
8
+ const PDFImage_1 = tslib_1.__importDefault(require("./PDFImage"));
9
+ const PDFPage_1 = tslib_1.__importDefault(require("./PDFPage"));
10
+ const PDFForm_1 = tslib_1.__importDefault(require("./form/PDFForm"));
11
+ const sizes_1 = require("./sizes");
12
+ const core_1 = require("../core");
13
+ const PDFDocumentOptions_1 = require("src/api/PDFDocumentOptions");
14
+ const utils_1 = require("src/utils");
15
+ const FileEmbedder_1 = tslib_1.__importStar(require("src/core/embedders/FileEmbedder"));
16
+ const PDFEmbeddedFile_1 = tslib_1.__importDefault(require("src/api/PDFEmbeddedFile"));
17
+ const PDFJavaScript_1 = tslib_1.__importDefault(require("src/api/PDFJavaScript"));
18
+ const JavaScriptEmbedder_1 = tslib_1.__importDefault(require("src/core/embedders/JavaScriptEmbedder"));
19
+ const crypto_1 = require("../core/crypto");
20
+ const PDFSvg_1 = tslib_1.__importDefault(require("./PDFSvg"));
21
+ const PDFSecurity_1 = tslib_1.__importDefault(require("../core/security/PDFSecurity"));
22
+ const snapshot_1 = require("./snapshot");
19
23
  /**
20
24
  * Represents a PDF document.
21
25
  */
22
- var PDFDocument = /** @class */ (function () {
23
- function PDFDocument(context, ignoreEncryption, updateMetadata) {
24
- var _this = this;
25
- /** The default word breaks used in PDFPage.drawText */
26
- this.defaultWordBreaks = [' '];
27
- this.computePages = function () {
28
- var pages = [];
29
- _this.catalog.Pages().traverse(function (node, ref) {
30
- if (node instanceof core_1.PDFPageLeaf) {
31
- var page = _this.pageMap.get(node);
32
- if (!page) {
33
- page = PDFPage_1.default.of(node, ref, _this);
34
- _this.pageMap.set(node, page);
35
- }
36
- pages.push(page);
37
- }
38
- });
39
- return pages;
40
- };
41
- this.getOrCreateForm = function () {
42
- var acroForm = _this.catalog.getOrCreateAcroForm();
43
- return PDFForm_1.default.of(acroForm, _this);
44
- };
45
- utils_1.assertIs(context, 'context', [[core_1.PDFContext, 'PDFContext']]);
46
- utils_1.assertIs(ignoreEncryption, 'ignoreEncryption', ['boolean']);
47
- this.context = context;
48
- this.catalog = context.lookup(context.trailerInfo.Root);
49
- this.isEncrypted = !!context.lookup(context.trailerInfo.Encrypt);
50
- this.pageCache = utils_1.Cache.populatedBy(this.computePages);
51
- this.pageMap = new Map();
52
- this.formCache = utils_1.Cache.populatedBy(this.getOrCreateForm);
53
- this.fonts = [];
54
- this.images = [];
55
- this.embeddedPages = [];
56
- this.embeddedFiles = [];
57
- this.javaScripts = [];
58
- if (!ignoreEncryption && this.isEncrypted)
59
- throw new errors_1.EncryptedPDFError();
60
- if (updateMetadata)
61
- this.updateInfoDict();
62
- }
26
+ class PDFDocument {
63
27
  /**
64
28
  * Load an existing [[PDFDocument]]. The input data can be provided in
65
29
  * multiple formats:
@@ -112,50 +76,95 @@ var PDFDocument = /** @class */ (function () {
112
76
  * @param options The options to be used when loading the document.
113
77
  * @returns Resolves with a document loaded from the input.
114
78
  */
115
- PDFDocument.load = function (pdf, options) {
116
- if (options === void 0) { options = {}; }
117
- return tslib_1.__awaiter(this, void 0, void 0, function () {
118
- var _a, ignoreEncryption, _b, parseSpeed, _c, throwOnInvalidObject, _d, updateMetadata, _e, capNumbers, _f, forIncrementalUpdate, bytes, context, pdfDoc;
119
- return tslib_1.__generator(this, function (_g) {
120
- switch (_g.label) {
121
- case 0:
122
- _a = options.ignoreEncryption, ignoreEncryption = _a === void 0 ? false : _a, _b = options.parseSpeed, parseSpeed = _b === void 0 ? PDFDocumentOptions_1.ParseSpeeds.Slow : _b, _c = options.throwOnInvalidObject, throwOnInvalidObject = _c === void 0 ? false : _c, _d = options.updateMetadata, updateMetadata = _d === void 0 ? true : _d, _e = options.capNumbers, capNumbers = _e === void 0 ? false : _e, _f = options.forIncrementalUpdate, forIncrementalUpdate = _f === void 0 ? false : _f;
123
- utils_1.assertIs(pdf, 'pdf', ['string', Uint8Array, ArrayBuffer]);
124
- utils_1.assertIs(ignoreEncryption, 'ignoreEncryption', ['boolean']);
125
- utils_1.assertIs(parseSpeed, 'parseSpeed', ['number']);
126
- utils_1.assertIs(throwOnInvalidObject, 'throwOnInvalidObject', ['boolean']);
127
- utils_1.assertIs(forIncrementalUpdate, 'forIncrementalUpdate', ['boolean']);
128
- bytes = utils_1.toUint8Array(pdf);
129
- return [4 /*yield*/, core_1.PDFParser.forBytesWithOptions(bytes, parseSpeed, throwOnInvalidObject, capNumbers, forIncrementalUpdate).parseDocument()];
130
- case 1:
131
- context = _g.sent();
132
- pdfDoc = new PDFDocument(context, ignoreEncryption, updateMetadata);
133
- if (forIncrementalUpdate)
134
- pdfDoc.takeSnapshot();
135
- return [2 /*return*/, pdfDoc];
136
- }
137
- });
79
+ static load(pdf, options = {}) {
80
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
81
+ const { ignoreEncryption = false, parseSpeed = PDFDocumentOptions_1.ParseSpeeds.Slow, throwOnInvalidObject = false, warnOnInvalidObjects = false, updateMetadata = true, capNumbers = false, password, forIncrementalUpdate = false, } = options;
82
+ (0, utils_1.assertIs)(pdf, 'pdf', ['string', Uint8Array, ArrayBuffer]);
83
+ (0, utils_1.assertIs)(ignoreEncryption, 'ignoreEncryption', ['boolean']);
84
+ (0, utils_1.assertIs)(parseSpeed, 'parseSpeed', ['number']);
85
+ (0, utils_1.assertIs)(throwOnInvalidObject, 'throwOnInvalidObject', ['boolean']);
86
+ (0, utils_1.assertIs)(warnOnInvalidObjects, 'warnOnInvalidObjects', ['boolean']);
87
+ (0, utils_1.assertIs)(password, 'password', ['string', 'undefined']);
88
+ (0, utils_1.assertIs)(forIncrementalUpdate, 'forIncrementalUpdate', ['boolean']);
89
+ const bytes = (0, utils_1.toUint8Array)(pdf);
90
+ const context = yield core_1.PDFParser.forBytesWithOptions(bytes, parseSpeed, throwOnInvalidObject, undefined, capNumbers, undefined, forIncrementalUpdate).parseDocument();
91
+ if (!!context.lookup(context.trailerInfo.Encrypt) &&
92
+ password !== undefined) {
93
+ // Decrypt
94
+ const fileIds = context.lookup(context.trailerInfo.ID, core_1.PDFArray);
95
+ const encryptDict = context.lookup(context.trailerInfo.Encrypt, core_1.PDFDict);
96
+ const decryptedContext = yield core_1.PDFParser.forBytesWithOptions(bytes, parseSpeed, throwOnInvalidObject, warnOnInvalidObjects, capNumbers, new crypto_1.CipherTransformFactory(encryptDict, fileIds.get(0).asBytes(), password), forIncrementalUpdate).parseDocument();
97
+ const pdfDoc = new PDFDocument(decryptedContext, true, updateMetadata);
98
+ if (forIncrementalUpdate)
99
+ pdfDoc.takeSnapshot();
100
+ return pdfDoc;
101
+ }
102
+ else {
103
+ const pdfDoc = new PDFDocument(context, ignoreEncryption, updateMetadata);
104
+ if (forIncrementalUpdate)
105
+ pdfDoc.takeSnapshot();
106
+ return pdfDoc;
107
+ }
138
108
  });
139
- };
109
+ }
140
110
  /**
141
111
  * Create a new [[PDFDocument]].
142
112
  * @returns Resolves with the newly created document.
143
113
  */
144
- PDFDocument.create = function (options) {
145
- if (options === void 0) { options = {}; }
146
- return tslib_1.__awaiter(this, void 0, void 0, function () {
147
- var _a, updateMetadata, context, pageTree, pageTreeRef, catalog;
148
- return tslib_1.__generator(this, function (_b) {
149
- _a = options.updateMetadata, updateMetadata = _a === void 0 ? true : _a;
150
- context = core_1.PDFContext.create();
151
- pageTree = core_1.PDFPageTree.withContext(context);
152
- pageTreeRef = context.register(pageTree);
153
- catalog = core_1.PDFCatalog.withContextAndPages(context, pageTreeRef);
154
- context.trailerInfo.Root = context.register(catalog);
155
- return [2 /*return*/, new PDFDocument(context, false, updateMetadata)];
156
- });
114
+ static create(options = {}) {
115
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
116
+ const { updateMetadata = true } = options;
117
+ const context = core_1.PDFContext.create();
118
+ const pageTree = core_1.PDFPageTree.withContext(context);
119
+ const pageTreeRef = context.register(pageTree);
120
+ const catalog = core_1.PDFCatalog.withContextAndPages(context, pageTreeRef);
121
+ context.trailerInfo.Root = context.register(catalog);
122
+ return new PDFDocument(context, false, updateMetadata);
157
123
  });
158
- };
124
+ }
125
+ constructor(context, ignoreEncryption, updateMetadata) {
126
+ /** The default word breaks used in PDFPage.drawText */
127
+ this.defaultWordBreaks = [' '];
128
+ this.computePages = () => {
129
+ const pages = [];
130
+ this.catalog.Pages().traverse((node, ref) => {
131
+ if (node instanceof core_1.PDFPageLeaf) {
132
+ let page = this.pageMap.get(node);
133
+ if (!page) {
134
+ page = PDFPage_1.default.of(node, ref, this);
135
+ this.pageMap.set(node, page);
136
+ }
137
+ pages.push(page);
138
+ }
139
+ });
140
+ return pages;
141
+ };
142
+ this.getOrCreateForm = () => {
143
+ const acroForm = this.catalog.getOrCreateAcroForm();
144
+ return PDFForm_1.default.of(acroForm, this);
145
+ };
146
+ (0, utils_1.assertIs)(context, 'context', [[core_1.PDFContext, 'PDFContext']]);
147
+ (0, utils_1.assertIs)(ignoreEncryption, 'ignoreEncryption', ['boolean']);
148
+ this.context = context;
149
+ this.catalog = context.lookup(context.trailerInfo.Root);
150
+ if (!!context.lookup(context.trailerInfo.Encrypt) && context.isDecrypted) {
151
+ // context.delete(context.trailerInfo.Encrypt);
152
+ delete context.trailerInfo.Encrypt;
153
+ }
154
+ this.isEncrypted = !!context.lookup(context.trailerInfo.Encrypt);
155
+ this.pageCache = utils_1.Cache.populatedBy(this.computePages);
156
+ this.pageMap = new Map();
157
+ this.formCache = utils_1.Cache.populatedBy(this.getOrCreateForm);
158
+ this.fonts = [];
159
+ this.images = [];
160
+ this.embeddedPages = [];
161
+ this.embeddedFiles = [];
162
+ this.javaScripts = [];
163
+ if (!ignoreEncryption && this.isEncrypted)
164
+ throw new errors_1.EncryptedPDFError();
165
+ if (updateMetadata)
166
+ this.updateInfoDict();
167
+ }
159
168
  /**
160
169
  * Register a fontkit instance. This must be done before custom fonts can
161
170
  * be embedded. See [here](https://github.com/Hopding/pdf-lib/tree/master#fontkit-installation)
@@ -174,9 +183,9 @@ var PDFDocument = /** @class */ (function () {
174
183
  *
175
184
  * @param fontkit The fontkit instance to be registered.
176
185
  */
177
- PDFDocument.prototype.registerFontkit = function (fontkit) {
186
+ registerFontkit(fontkit) {
178
187
  this.fontkit = fontkit;
179
- };
188
+ }
180
189
  /**
181
190
  * Get the [[PDFForm]] containing all interactive fields for this document.
182
191
  * For example:
@@ -191,14 +200,14 @@ var PDFDocument = /** @class */ (function () {
191
200
  * ```
192
201
  * @returns The form for this document.
193
202
  */
194
- PDFDocument.prototype.getForm = function () {
195
- var form = this.formCache.access();
203
+ getForm() {
204
+ const form = this.formCache.access();
196
205
  if (form.hasXFA()) {
197
206
  console.warn('Removing XFA form data as pdf-lib does not support reading or writing XFA');
198
207
  form.deleteXFA();
199
208
  }
200
209
  return form;
201
- };
210
+ }
202
211
  /**
203
212
  * Get this document's title metadata. The title appears in the
204
213
  * "Document Properties" section of most PDF readers. For example:
@@ -207,13 +216,13 @@ var PDFDocument = /** @class */ (function () {
207
216
  * ```
208
217
  * @returns A string containing the title of this document, if it has one.
209
218
  */
210
- PDFDocument.prototype.getTitle = function () {
211
- var title = this.getInfoDict().lookup(core_1.PDFName.Title);
219
+ getTitle() {
220
+ const title = this.getInfoDict().lookup(core_1.PDFName.Title);
212
221
  if (!title)
213
222
  return undefined;
214
223
  assertIsLiteralOrHexString(title);
215
224
  return title.decodeText();
216
- };
225
+ }
217
226
  /**
218
227
  * Get this document's author metadata. The author appears in the
219
228
  * "Document Properties" section of most PDF readers. For example:
@@ -222,13 +231,13 @@ var PDFDocument = /** @class */ (function () {
222
231
  * ```
223
232
  * @returns A string containing the author of this document, if it has one.
224
233
  */
225
- PDFDocument.prototype.getAuthor = function () {
226
- var author = this.getInfoDict().lookup(core_1.PDFName.Author);
234
+ getAuthor() {
235
+ const author = this.getInfoDict().lookup(core_1.PDFName.Author);
227
236
  if (!author)
228
237
  return undefined;
229
238
  assertIsLiteralOrHexString(author);
230
239
  return author.decodeText();
231
- };
240
+ }
232
241
  /**
233
242
  * Get this document's subject metadata. The subject appears in the
234
243
  * "Document Properties" section of most PDF readers. For example:
@@ -237,13 +246,13 @@ var PDFDocument = /** @class */ (function () {
237
246
  * ```
238
247
  * @returns A string containing the subject of this document, if it has one.
239
248
  */
240
- PDFDocument.prototype.getSubject = function () {
241
- var subject = this.getInfoDict().lookup(core_1.PDFName.Subject);
249
+ getSubject() {
250
+ const subject = this.getInfoDict().lookup(core_1.PDFName.Subject);
242
251
  if (!subject)
243
252
  return undefined;
244
253
  assertIsLiteralOrHexString(subject);
245
254
  return subject.decodeText();
246
- };
255
+ }
247
256
  /**
248
257
  * Get this document's keywords metadata. The keywords appear in the
249
258
  * "Document Properties" section of most PDF readers. For example:
@@ -252,13 +261,13 @@ var PDFDocument = /** @class */ (function () {
252
261
  * ```
253
262
  * @returns A string containing the keywords of this document, if it has any.
254
263
  */
255
- PDFDocument.prototype.getKeywords = function () {
256
- var keywords = this.getInfoDict().lookup(core_1.PDFName.Keywords);
264
+ getKeywords() {
265
+ const keywords = this.getInfoDict().lookup(core_1.PDFName.Keywords);
257
266
  if (!keywords)
258
267
  return undefined;
259
268
  assertIsLiteralOrHexString(keywords);
260
269
  return keywords.decodeText();
261
- };
270
+ }
262
271
  /**
263
272
  * Get this document's creator metadata. The creator appears in the
264
273
  * "Document Properties" section of most PDF readers. For example:
@@ -267,13 +276,13 @@ var PDFDocument = /** @class */ (function () {
267
276
  * ```
268
277
  * @returns A string containing the creator of this document, if it has one.
269
278
  */
270
- PDFDocument.prototype.getCreator = function () {
271
- var creator = this.getInfoDict().lookup(core_1.PDFName.Creator);
279
+ getCreator() {
280
+ const creator = this.getInfoDict().lookup(core_1.PDFName.Creator);
272
281
  if (!creator)
273
282
  return undefined;
274
283
  assertIsLiteralOrHexString(creator);
275
284
  return creator.decodeText();
276
- };
285
+ }
277
286
  /**
278
287
  * Get this document's producer metadata. The producer appears in the
279
288
  * "Document Properties" section of most PDF readers. For example:
@@ -282,13 +291,29 @@ var PDFDocument = /** @class */ (function () {
282
291
  * ```
283
292
  * @returns A string containing the producer of this document, if it has one.
284
293
  */
285
- PDFDocument.prototype.getProducer = function () {
286
- var producer = this.getInfoDict().lookup(core_1.PDFName.Producer);
294
+ getProducer() {
295
+ const producer = this.getInfoDict().lookup(core_1.PDFName.Producer);
287
296
  if (!producer)
288
297
  return undefined;
289
298
  assertIsLiteralOrHexString(producer);
290
299
  return producer.decodeText();
291
- };
300
+ }
301
+ /**
302
+ * Get this document's language metadata. The language appears in the
303
+ * "Document Properties" section of most PDF readers. For example:
304
+ * ```js
305
+ * const language = pdfDoc.getLanguage()
306
+ * ```
307
+ * @returns A string containing the RFC 3066 _Language-Tag_ of this document,
308
+ * if it has one.
309
+ */
310
+ getLanguage() {
311
+ const language = this.catalog.get(core_1.PDFName.of('Lang'));
312
+ if (!language)
313
+ return undefined;
314
+ assertIsLiteralOrHexString(language);
315
+ return language.decodeText();
316
+ }
292
317
  /**
293
318
  * Get this document's creation date metadata. The creation date appears in
294
319
  * the "Document Properties" section of most PDF readers. For example:
@@ -298,13 +323,13 @@ var PDFDocument = /** @class */ (function () {
298
323
  * @returns A Date containing the creation date of this document,
299
324
  * if it has one.
300
325
  */
301
- PDFDocument.prototype.getCreationDate = function () {
302
- var creationDate = this.getInfoDict().lookup(core_1.PDFName.CreationDate);
326
+ getCreationDate() {
327
+ const creationDate = this.getInfoDict().lookup(core_1.PDFName.CreationDate);
303
328
  if (!creationDate)
304
329
  return undefined;
305
330
  assertIsLiteralOrHexString(creationDate);
306
331
  return creationDate.decodeDate();
307
- };
332
+ }
308
333
  /**
309
334
  * Get this document's modification date metadata. The modification date
310
335
  * appears in the "Document Properties" section of most PDF readers.
@@ -315,13 +340,13 @@ var PDFDocument = /** @class */ (function () {
315
340
  * @returns A Date containing the modification date of this document,
316
341
  * if it has one.
317
342
  */
318
- PDFDocument.prototype.getModificationDate = function () {
319
- var modificationDate = this.getInfoDict().lookup(core_1.PDFName.ModDate);
343
+ getModificationDate() {
344
+ const modificationDate = this.getInfoDict().lookup(core_1.PDFName.ModDate);
320
345
  if (!modificationDate)
321
346
  return undefined;
322
347
  assertIsLiteralOrHexString(modificationDate);
323
348
  return modificationDate.decodeDate();
324
- };
349
+ }
325
350
  /**
326
351
  * Set this document's title metadata. The title will appear in the
327
352
  * "Document Properties" section of most PDF readers. For example:
@@ -339,16 +364,16 @@ var PDFDocument = /** @class */ (function () {
339
364
  * @param title The title of this document.
340
365
  * @param options The options to be used when setting the title.
341
366
  */
342
- PDFDocument.prototype.setTitle = function (title, options) {
343
- utils_1.assertIs(title, 'title', ['string']);
344
- var key = core_1.PDFName.of('Title');
367
+ setTitle(title, options) {
368
+ (0, utils_1.assertIs)(title, 'title', ['string']);
369
+ const key = core_1.PDFName.of('Title');
345
370
  this.getInfoDict().set(key, core_1.PDFHexString.fromText(title));
346
371
  // Indicate that readers should display the title rather than the filename
347
372
  if (options === null || options === void 0 ? void 0 : options.showInWindowTitleBar) {
348
- var prefs = this.catalog.getOrCreateViewerPreferences();
373
+ const prefs = this.catalog.getOrCreateViewerPreferences();
349
374
  prefs.setDisplayDocTitle(true);
350
375
  }
351
- };
376
+ }
352
377
  /**
353
378
  * Set this document's author metadata. The author will appear in the
354
379
  * "Document Properties" section of most PDF readers. For example:
@@ -357,11 +382,11 @@ var PDFDocument = /** @class */ (function () {
357
382
  * ```
358
383
  * @param author The author of this document.
359
384
  */
360
- PDFDocument.prototype.setAuthor = function (author) {
361
- utils_1.assertIs(author, 'author', ['string']);
362
- var key = core_1.PDFName.of('Author');
385
+ setAuthor(author) {
386
+ (0, utils_1.assertIs)(author, 'author', ['string']);
387
+ const key = core_1.PDFName.of('Author');
363
388
  this.getInfoDict().set(key, core_1.PDFHexString.fromText(author));
364
- };
389
+ }
365
390
  /**
366
391
  * Set this document's subject metadata. The subject will appear in the
367
392
  * "Document Properties" section of most PDF readers. For example:
@@ -370,11 +395,11 @@ var PDFDocument = /** @class */ (function () {
370
395
  * ```
371
396
  * @param subject The subject of this document.
372
397
  */
373
- PDFDocument.prototype.setSubject = function (subject) {
374
- utils_1.assertIs(subject, 'author', ['string']);
375
- var key = core_1.PDFName.of('Subject');
398
+ setSubject(subject) {
399
+ (0, utils_1.assertIs)(subject, 'author', ['string']);
400
+ const key = core_1.PDFName.of('Subject');
376
401
  this.getInfoDict().set(key, core_1.PDFHexString.fromText(subject));
377
- };
402
+ }
378
403
  /**
379
404
  * Set this document's keyword metadata. These keywords will appear in the
380
405
  * "Document Properties" section of most PDF readers. For example:
@@ -383,11 +408,11 @@ var PDFDocument = /** @class */ (function () {
383
408
  * ```
384
409
  * @param keywords An array of keywords associated with this document.
385
410
  */
386
- PDFDocument.prototype.setKeywords = function (keywords) {
387
- utils_1.assertIs(keywords, 'keywords', [Array]);
388
- var key = core_1.PDFName.of('Keywords');
411
+ setKeywords(keywords) {
412
+ (0, utils_1.assertIs)(keywords, 'keywords', [Array]);
413
+ const key = core_1.PDFName.of('Keywords');
389
414
  this.getInfoDict().set(key, core_1.PDFHexString.fromText(keywords.join(' ')));
390
- };
415
+ }
391
416
  /**
392
417
  * Set this document's creator metadata. The creator will appear in the
393
418
  * "Document Properties" section of most PDF readers. For example:
@@ -396,11 +421,11 @@ var PDFDocument = /** @class */ (function () {
396
421
  * ```
397
422
  * @param creator The creator of this document.
398
423
  */
399
- PDFDocument.prototype.setCreator = function (creator) {
400
- utils_1.assertIs(creator, 'creator', ['string']);
401
- var key = core_1.PDFName.of('Creator');
424
+ setCreator(creator) {
425
+ (0, utils_1.assertIs)(creator, 'creator', ['string']);
426
+ const key = core_1.PDFName.of('Creator');
402
427
  this.getInfoDict().set(key, core_1.PDFHexString.fromText(creator));
403
- };
428
+ }
404
429
  /**
405
430
  * Set this document's producer metadata. The producer will appear in the
406
431
  * "Document Properties" section of most PDF readers. For example:
@@ -409,11 +434,11 @@ var PDFDocument = /** @class */ (function () {
409
434
  * ```
410
435
  * @param producer The producer of this document.
411
436
  */
412
- PDFDocument.prototype.setProducer = function (producer) {
413
- utils_1.assertIs(producer, 'creator', ['string']);
414
- var key = core_1.PDFName.of('Producer');
437
+ setProducer(producer) {
438
+ (0, utils_1.assertIs)(producer, 'creator', ['string']);
439
+ const key = core_1.PDFName.of('Producer');
415
440
  this.getInfoDict().set(key, core_1.PDFHexString.fromText(producer));
416
- };
441
+ }
417
442
  /**
418
443
  * Set this document's language metadata. The language will appear in the
419
444
  * "Document Properties" section of some PDF readers. For example:
@@ -424,11 +449,11 @@ var PDFDocument = /** @class */ (function () {
424
449
  * @param language An RFC 3066 _Language-Tag_ denoting the language of this
425
450
  * document, or an empty string if the language is unknown.
426
451
  */
427
- PDFDocument.prototype.setLanguage = function (language) {
428
- utils_1.assertIs(language, 'language', ['string']);
429
- var key = core_1.PDFName.of('Lang');
452
+ setLanguage(language) {
453
+ (0, utils_1.assertIs)(language, 'language', ['string']);
454
+ const key = core_1.PDFName.of('Lang');
430
455
  this.catalog.set(key, core_1.PDFString.of(language));
431
- };
456
+ }
432
457
  /**
433
458
  * Set this document's creation date metadata. The creation date will appear
434
459
  * in the "Document Properties" section of most PDF readers. For example:
@@ -437,11 +462,11 @@ var PDFDocument = /** @class */ (function () {
437
462
  * ```
438
463
  * @param creationDate The date this document was created.
439
464
  */
440
- PDFDocument.prototype.setCreationDate = function (creationDate) {
441
- utils_1.assertIs(creationDate, 'creationDate', [[Date, 'Date']]);
442
- var key = core_1.PDFName.of('CreationDate');
465
+ setCreationDate(creationDate) {
466
+ (0, utils_1.assertIs)(creationDate, 'creationDate', [[Date, 'Date']]);
467
+ const key = core_1.PDFName.of('CreationDate');
443
468
  this.getInfoDict().set(key, core_1.PDFString.fromDate(creationDate));
444
- };
469
+ }
445
470
  /**
446
471
  * Set this document's modification date metadata. The modification date will
447
472
  * appear in the "Document Properties" section of most PDF readers. For
@@ -451,11 +476,11 @@ var PDFDocument = /** @class */ (function () {
451
476
  * ```
452
477
  * @param modificationDate The date this document was last modified.
453
478
  */
454
- PDFDocument.prototype.setModificationDate = function (modificationDate) {
455
- utils_1.assertIs(modificationDate, 'modificationDate', [[Date, 'Date']]);
456
- var key = core_1.PDFName.of('ModDate');
479
+ setModificationDate(modificationDate) {
480
+ (0, utils_1.assertIs)(modificationDate, 'modificationDate', [[Date, 'Date']]);
481
+ const key = core_1.PDFName.of('ModDate');
457
482
  this.getInfoDict().set(key, core_1.PDFString.fromDate(modificationDate));
458
- };
483
+ }
459
484
  /**
460
485
  * Get the number of pages contained in this document. For example:
461
486
  * ```js
@@ -463,11 +488,11 @@ var PDFDocument = /** @class */ (function () {
463
488
  * ```
464
489
  * @returns The number of pages in this document.
465
490
  */
466
- PDFDocument.prototype.getPageCount = function () {
491
+ getPageCount() {
467
492
  if (this.pageCount === undefined)
468
493
  this.pageCount = this.getPages().length;
469
494
  return this.pageCount;
470
- };
495
+ }
471
496
  /**
472
497
  * Get an array of all the pages contained in this document. The pages are
473
498
  * stored in the array in the same order that they are rendered in the
@@ -480,9 +505,9 @@ var PDFDocument = /** @class */ (function () {
480
505
  * ```
481
506
  * @returns An array of all the pages contained in this document.
482
507
  */
483
- PDFDocument.prototype.getPages = function () {
508
+ getPages() {
484
509
  return this.pageCache.access();
485
- };
510
+ }
486
511
  /**
487
512
  * Get the page rendered at a particular `index` of the document. For example:
488
513
  * ```js
@@ -492,11 +517,11 @@ var PDFDocument = /** @class */ (function () {
492
517
  * ```
493
518
  * @returns The [[PDFPage]] rendered at the given `index` of the document.
494
519
  */
495
- PDFDocument.prototype.getPage = function (index) {
496
- var pages = this.getPages();
497
- utils_1.assertRange(index, 'index', 0, pages.length - 1);
520
+ getPage(index) {
521
+ const pages = this.getPages();
522
+ (0, utils_1.assertRange)(index, 'index', 0, pages.length - 1);
498
523
  return pages[index];
499
- };
524
+ }
500
525
  /**
501
526
  * Get an array of indices for all the pages contained in this document. The
502
527
  * array will contain a range of integers from
@@ -512,9 +537,9 @@ var PDFDocument = /** @class */ (function () {
512
537
  * ```
513
538
  * @returns An array of indices for all pages contained in this document.
514
539
  */
515
- PDFDocument.prototype.getPageIndices = function () {
516
- return utils_1.range(0, this.getPageCount());
517
- };
540
+ getPageIndices() {
541
+ return (0, utils_1.range)(0, this.getPageCount());
542
+ }
518
543
  /**
519
544
  * Remove the page at a given index from this document. For example:
520
545
  * ```js
@@ -526,14 +551,14 @@ var PDFDocument = /** @class */ (function () {
526
551
  * in the document.
527
552
  * @param index The index of the page to be removed.
528
553
  */
529
- PDFDocument.prototype.removePage = function (index) {
530
- var pageCount = this.getPageCount();
554
+ removePage(index) {
555
+ const pageCount = this.getPageCount();
531
556
  if (this.pageCount === 0)
532
557
  throw new errors_1.RemovePageFromEmptyDocumentError();
533
- utils_1.assertRange(index, 'index', 0, pageCount - 1);
558
+ (0, utils_1.assertRange)(index, 'index', 0, pageCount - 1);
534
559
  this.catalog.removeLeafNode(index);
535
560
  this.pageCount = pageCount - 1;
536
- };
561
+ }
537
562
  /**
538
563
  * Add a page to the end of this document. This method accepts three
539
564
  * different value types for the `page` parameter:
@@ -565,10 +590,10 @@ var PDFDocument = /** @class */ (function () {
565
590
  * @param page Optionally, the desired dimensions or existing page.
566
591
  * @returns The newly created (or existing) page.
567
592
  */
568
- PDFDocument.prototype.addPage = function (page) {
569
- utils_1.assertIs(page, 'page', ['undefined', [PDFPage_1.default, 'PDFPage'], Array]);
593
+ addPage(page) {
594
+ (0, utils_1.assertIs)(page, 'page', ['undefined', [PDFPage_1.default, 'PDFPage'], Array]);
570
595
  return this.insertPage(this.getPageCount(), page);
571
- };
596
+ }
572
597
  /**
573
598
  * Insert a page at a given index within this document. This method accepts
574
599
  * three different value types for the `page` parameter:
@@ -601,25 +626,25 @@ var PDFDocument = /** @class */ (function () {
601
626
  * @param page Optionally, the desired dimensions or existing page.
602
627
  * @returns The newly created (or existing) page.
603
628
  */
604
- PDFDocument.prototype.insertPage = function (index, page) {
605
- var pageCount = this.getPageCount();
606
- utils_1.assertRange(index, 'index', 0, pageCount);
607
- utils_1.assertIs(page, 'page', ['undefined', [PDFPage_1.default, 'PDFPage'], Array]);
629
+ insertPage(index, page) {
630
+ const pageCount = this.getPageCount();
631
+ (0, utils_1.assertRange)(index, 'index', 0, pageCount);
632
+ (0, utils_1.assertIs)(page, 'page', ['undefined', [PDFPage_1.default, 'PDFPage'], Array]);
608
633
  if (!page || Array.isArray(page)) {
609
- var dims = Array.isArray(page) ? page : sizes_1.PageSizes.A4;
634
+ const dims = Array.isArray(page) ? page : sizes_1.PageSizes.A4;
610
635
  page = PDFPage_1.default.create(this);
611
- page.setSize.apply(page, dims);
636
+ page.setSize(...dims);
612
637
  }
613
638
  else if (page.doc !== this) {
614
639
  throw new errors_1.ForeignPageError();
615
640
  }
616
- var parentRef = this.catalog.insertLeafNode(page.ref, index);
641
+ const parentRef = this.catalog.insertLeafNode(page.ref, index);
617
642
  page.node.setParent(parentRef);
618
643
  this.pageMap.set(page.node, page);
619
644
  this.pageCache.invalidate();
620
645
  this.pageCount = pageCount + 1;
621
646
  return page;
622
- };
647
+ }
623
648
  /**
624
649
  * Copy pages from a source document into this document. Allows pages to be
625
650
  * copied between different [[PDFDocument]] instances. For example:
@@ -638,31 +663,21 @@ var PDFDocument = /** @class */ (function () {
638
663
  * @param indices The indices of the pages that should be copied.
639
664
  * @returns Resolves with an array of pages copied into this document.
640
665
  */
641
- PDFDocument.prototype.copyPages = function (srcDoc, indices) {
642
- return tslib_1.__awaiter(this, void 0, void 0, function () {
643
- var copier, srcPages, copiedPages, idx, len, srcPage, copiedPage, ref;
644
- return tslib_1.__generator(this, function (_a) {
645
- switch (_a.label) {
646
- case 0:
647
- utils_1.assertIs(srcDoc, 'srcDoc', [[PDFDocument, 'PDFDocument']]);
648
- utils_1.assertIs(indices, 'indices', [Array]);
649
- return [4 /*yield*/, srcDoc.flush()];
650
- case 1:
651
- _a.sent();
652
- copier = core_1.PDFObjectCopier.for(srcDoc.context, this.context);
653
- srcPages = srcDoc.getPages();
654
- copiedPages = new Array(indices.length);
655
- for (idx = 0, len = indices.length; idx < len; idx++) {
656
- srcPage = srcPages[indices[idx]];
657
- copiedPage = copier.copy(srcPage.node);
658
- ref = this.context.register(copiedPage);
659
- copiedPages[idx] = PDFPage_1.default.of(copiedPage, ref, this);
660
- }
661
- return [2 /*return*/, copiedPages];
662
- }
663
- });
666
+ copyPages(srcDoc, indices) {
667
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
668
+ (0, utils_1.assertIs)(srcDoc, 'srcDoc', [[PDFDocument, 'PDFDocument']]);
669
+ (0, utils_1.assertIs)(indices, 'indices', [Array]);
670
+ yield srcDoc.flush();
671
+ const copier = core_1.PDFObjectCopier.for(srcDoc.context, this.context);
672
+ const srcPages = srcDoc.getPages();
673
+ // Copy each page in a separate thread
674
+ const copiedPages = indices
675
+ .map((i) => srcPages[i])
676
+ .map((page) => tslib_1.__awaiter(this, void 0, void 0, function* () { return copier.copy(page.node); }))
677
+ .map((p) => p.then((copy) => PDFPage_1.default.of(copy, this.context.register(copy), this)));
678
+ return Promise.all(copiedPages);
664
679
  });
665
- };
680
+ }
666
681
  /**
667
682
  * Get a copy of this document.
668
683
  *
@@ -677,47 +692,41 @@ var PDFDocument = /** @class */ (function () {
677
692
  *
678
693
  * @returns Resolves with a copy this document.
679
694
  */
680
- PDFDocument.prototype.copy = function () {
681
- return tslib_1.__awaiter(this, void 0, void 0, function () {
682
- var pdfCopy, contentPages, idx, len;
683
- return tslib_1.__generator(this, function (_a) {
684
- switch (_a.label) {
685
- case 0: return [4 /*yield*/, PDFDocument.create()];
686
- case 1:
687
- pdfCopy = _a.sent();
688
- return [4 /*yield*/, pdfCopy.copyPages(this, this.getPageIndices())];
689
- case 2:
690
- contentPages = _a.sent();
691
- for (idx = 0, len = contentPages.length; idx < len; idx++) {
692
- pdfCopy.addPage(contentPages[idx]);
693
- }
694
- if (this.getAuthor() !== undefined) {
695
- pdfCopy.setAuthor(this.getAuthor());
696
- }
697
- if (this.getCreationDate() !== undefined) {
698
- pdfCopy.setCreationDate(this.getCreationDate());
699
- }
700
- if (this.getCreator() !== undefined) {
701
- pdfCopy.setCreator(this.getCreator());
702
- }
703
- if (this.getModificationDate() !== undefined) {
704
- pdfCopy.setModificationDate(this.getModificationDate());
705
- }
706
- if (this.getProducer() !== undefined) {
707
- pdfCopy.setProducer(this.getProducer());
708
- }
709
- if (this.getSubject() !== undefined) {
710
- pdfCopy.setSubject(this.getSubject());
711
- }
712
- if (this.getTitle() !== undefined) {
713
- pdfCopy.setTitle(this.getTitle());
714
- }
715
- pdfCopy.defaultWordBreaks = this.defaultWordBreaks;
716
- return [2 /*return*/, pdfCopy];
717
- }
718
- });
695
+ copy() {
696
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
697
+ const pdfCopy = yield PDFDocument.create();
698
+ const contentPages = yield pdfCopy.copyPages(this, this.getPageIndices());
699
+ for (let idx = 0, len = contentPages.length; idx < len; idx++) {
700
+ pdfCopy.addPage(contentPages[idx]);
701
+ }
702
+ if (this.getAuthor() !== undefined) {
703
+ pdfCopy.setAuthor(this.getAuthor());
704
+ }
705
+ if (this.getCreationDate() !== undefined) {
706
+ pdfCopy.setCreationDate(this.getCreationDate());
707
+ }
708
+ if (this.getCreator() !== undefined) {
709
+ pdfCopy.setCreator(this.getCreator());
710
+ }
711
+ if (this.getLanguage() !== undefined) {
712
+ pdfCopy.setLanguage(this.getLanguage());
713
+ }
714
+ if (this.getModificationDate() !== undefined) {
715
+ pdfCopy.setModificationDate(this.getModificationDate());
716
+ }
717
+ if (this.getProducer() !== undefined) {
718
+ pdfCopy.setProducer(this.getProducer());
719
+ }
720
+ if (this.getSubject() !== undefined) {
721
+ pdfCopy.setSubject(this.getSubject());
722
+ }
723
+ if (this.getTitle() !== undefined) {
724
+ pdfCopy.setTitle(this.getTitle());
725
+ }
726
+ pdfCopy.defaultWordBreaks = this.defaultWordBreaks;
727
+ return pdfCopy;
719
728
  });
720
- };
729
+ }
721
730
  /**
722
731
  * Add JavaScript to this document. The supplied `script` is executed when the
723
732
  * document is opened. The `script` can be used to perform some operation
@@ -742,14 +751,14 @@ var PDFDocument = /** @class */ (function () {
742
751
  * @param name The name of the script. Must be unique per document.
743
752
  * @param script The JavaScript to execute.
744
753
  */
745
- PDFDocument.prototype.addJavaScript = function (name, script) {
746
- utils_1.assertIs(name, 'name', ['string']);
747
- utils_1.assertIs(script, 'script', ['string']);
748
- var embedder = JavaScriptEmbedder_1.default.for(script, name);
749
- var ref = this.context.nextRef();
750
- var javaScript = PDFJavaScript_1.default.of(ref, this, embedder);
754
+ addJavaScript(name, script) {
755
+ (0, utils_1.assertIs)(name, 'name', ['string']);
756
+ (0, utils_1.assertIs)(script, 'script', ['string']);
757
+ const embedder = JavaScriptEmbedder_1.default.for(script, name);
758
+ const ref = this.context.nextRef();
759
+ const javaScript = PDFJavaScript_1.default.of(ref, this, embedder);
751
760
  this.javaScripts.push(javaScript);
752
- };
761
+ }
753
762
  /**
754
763
  * Add an attachment to this document. Attachments are visible in the
755
764
  * "Attachments" panel of Adobe Acrobat and some other PDF readers. Any
@@ -805,29 +814,116 @@ var PDFDocument = /** @class */ (function () {
805
814
  * @param name The name of the file to be attached.
806
815
  * @returns Resolves when the attachment is complete.
807
816
  */
808
- PDFDocument.prototype.attach = function (attachment, name, options) {
809
- if (options === void 0) { options = {}; }
810
- return tslib_1.__awaiter(this, void 0, void 0, function () {
811
- var bytes, embedder, ref, embeddedFile;
812
- return tslib_1.__generator(this, function (_a) {
813
- utils_1.assertIs(attachment, 'attachment', ['string', Uint8Array, ArrayBuffer]);
814
- utils_1.assertIs(name, 'name', ['string']);
815
- utils_1.assertOrUndefined(options.mimeType, 'mimeType', ['string']);
816
- utils_1.assertOrUndefined(options.description, 'description', ['string']);
817
- utils_1.assertOrUndefined(options.creationDate, 'options.creationDate', [Date]);
818
- utils_1.assertOrUndefined(options.modificationDate, 'options.modificationDate', [
819
- Date,
820
- ]);
821
- utils_1.assertIsOneOfOrUndefined(options.afRelationship, 'options.afRelationship', FileEmbedder_1.AFRelationship);
822
- bytes = utils_1.toUint8Array(attachment);
823
- embedder = FileEmbedder_1.default.for(bytes, name, options);
824
- ref = this.context.nextRef();
825
- embeddedFile = PDFEmbeddedFile_1.default.of(ref, this, embedder);
826
- this.embeddedFiles.push(embeddedFile);
827
- return [2 /*return*/];
828
- });
817
+ attach(attachment, name, options = {}) {
818
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
819
+ (0, utils_1.assertIs)(attachment, 'attachment', ['string', Uint8Array, ArrayBuffer]);
820
+ (0, utils_1.assertIs)(name, 'name', ['string']);
821
+ (0, utils_1.assertOrUndefined)(options.mimeType, 'mimeType', ['string']);
822
+ (0, utils_1.assertOrUndefined)(options.description, 'description', ['string']);
823
+ (0, utils_1.assertOrUndefined)(options.creationDate, 'options.creationDate', [Date]);
824
+ (0, utils_1.assertOrUndefined)(options.modificationDate, 'options.modificationDate', [
825
+ Date,
826
+ ]);
827
+ (0, utils_1.assertIsOneOfOrUndefined)(options.afRelationship, 'options.afRelationship', FileEmbedder_1.AFRelationship);
828
+ const bytes = (0, utils_1.toUint8Array)(attachment);
829
+ const embedder = FileEmbedder_1.default.for(bytes, name, options);
830
+ const ref = this.context.nextRef();
831
+ const embeddedFile = PDFEmbeddedFile_1.default.of(ref, this, embedder);
832
+ this.embeddedFiles.push(embeddedFile);
829
833
  });
830
- };
834
+ }
835
+ getRawAttachments() {
836
+ if (!this.catalog.has(core_1.PDFName.of('Names')))
837
+ return [];
838
+ const Names = this.catalog.lookup(core_1.PDFName.of('Names'), core_1.PDFDict);
839
+ if (!Names.has(core_1.PDFName.of('EmbeddedFiles')))
840
+ return [];
841
+ const EmbeddedFiles = Names.lookup(core_1.PDFName.of('EmbeddedFiles'), core_1.PDFDict);
842
+ if (!EmbeddedFiles.has(core_1.PDFName.of('Names')))
843
+ return [];
844
+ const EFNames = EmbeddedFiles.lookup(core_1.PDFName.of('Names'), core_1.PDFArray);
845
+ const rawAttachments = [];
846
+ for (let idx = 0, len = EFNames.size(); idx < len; idx += 2) {
847
+ const fileName = EFNames.lookup(idx);
848
+ const fileSpec = EFNames.lookup(idx + 1, core_1.PDFDict);
849
+ rawAttachments.push({ fileName, fileSpec });
850
+ }
851
+ return rawAttachments;
852
+ }
853
+ getSavedAttachments() {
854
+ const rawAttachments = this.getRawAttachments();
855
+ return rawAttachments.flatMap(({ fileName, fileSpec }) => {
856
+ const efDict = fileSpec.lookup(core_1.PDFName.of('EF'));
857
+ if (!(efDict instanceof core_1.PDFDict))
858
+ return [];
859
+ const stream = efDict.lookup(core_1.PDFName.of('F'));
860
+ if (!(stream instanceof core_1.PDFStream))
861
+ return [];
862
+ const afr = fileSpec.lookup(core_1.PDFName.of('AFRelationship'));
863
+ const afRelationship = afr instanceof core_1.PDFName
864
+ ? afr.toString().slice(1) // Remove leading slash
865
+ : afr instanceof core_1.PDFString
866
+ ? afr.decodeText()
867
+ : undefined;
868
+ const embeddedFileDict = stream.dict;
869
+ const subtype = embeddedFileDict.lookup(core_1.PDFName.of('Subtype'));
870
+ const mimeType = subtype instanceof core_1.PDFName
871
+ ? subtype.toString().slice(1)
872
+ : subtype instanceof core_1.PDFString
873
+ ? subtype.decodeText()
874
+ : undefined;
875
+ const paramsDict = embeddedFileDict.lookup(core_1.PDFName.of('Params'), core_1.PDFDict);
876
+ let creationDate;
877
+ let modificationDate;
878
+ if (paramsDict instanceof core_1.PDFDict) {
879
+ const creationDateRaw = paramsDict.lookup(core_1.PDFName.of('CreationDate'));
880
+ const modDateRaw = paramsDict.lookup(core_1.PDFName.of('ModDate'));
881
+ if (creationDateRaw instanceof core_1.PDFString) {
882
+ creationDate = creationDateRaw.decodeDate();
883
+ }
884
+ if (modDateRaw instanceof core_1.PDFString) {
885
+ modificationDate = modDateRaw.decodeDate();
886
+ }
887
+ }
888
+ const description = fileSpec.lookup(core_1.PDFName.of('Desc')).decodeText();
889
+ return [
890
+ {
891
+ name: fileName.decodeText(),
892
+ data: (0, core_1.decodePDFRawStream)(stream).decode(),
893
+ mimeType: mimeType === null || mimeType === void 0 ? void 0 : mimeType.replace(/#([0-9A-Fa-f]{2})/g, (_, hex) => String.fromCharCode(parseInt(hex, 16))),
894
+ afRelationship: afRelationship,
895
+ description,
896
+ creationDate,
897
+ modificationDate,
898
+ },
899
+ ];
900
+ });
901
+ }
902
+ getUnsavedAttachments() {
903
+ const attachments = this.embeddedFiles.map((file) => {
904
+ const embedder = file.getEmbedder();
905
+ return {
906
+ name: embedder.fileName,
907
+ data: embedder.getFileData(),
908
+ description: embedder.options.description,
909
+ mimeType: embedder.options.mimeType,
910
+ afRelationship: embedder.options.afRelationship,
911
+ creationDate: embedder.options.creationDate,
912
+ modificationDate: embedder.options.modificationDate,
913
+ };
914
+ });
915
+ return attachments;
916
+ }
917
+ /**
918
+ * Get all attachments that are embedded in this document.
919
+ *
920
+ * @returns Array of attachments with name and data
921
+ */
922
+ getAttachments() {
923
+ const savedAttachments = this.getSavedAttachments();
924
+ const unsavedAttachments = this.getUnsavedAttachments();
925
+ return [...savedAttachments, ...unsavedAttachments];
926
+ }
831
927
  /**
832
928
  * Embed a font into this document. The input data can be provided in multiple
833
929
  * formats:
@@ -863,45 +959,31 @@ var PDFDocument = /** @class */ (function () {
863
959
  * @param options The options to be used when embedding the font.
864
960
  * @returns Resolves with the embedded font.
865
961
  */
866
- PDFDocument.prototype.embedFont = function (font, options) {
867
- if (options === void 0) { options = {}; }
868
- return tslib_1.__awaiter(this, void 0, void 0, function () {
869
- var _a, subset, customName, features, embedder, bytes, fontkit, _b, ref, pdfFont;
870
- return tslib_1.__generator(this, function (_c) {
871
- switch (_c.label) {
872
- case 0:
873
- _a = options.subset, subset = _a === void 0 ? false : _a, customName = options.customName, features = options.features;
874
- utils_1.assertIs(font, 'font', ['string', Uint8Array, ArrayBuffer]);
875
- utils_1.assertIs(subset, 'subset', ['boolean']);
876
- if (!utils_1.isStandardFont(font)) return [3 /*break*/, 1];
877
- embedder = core_1.StandardFontEmbedder.for(font, customName);
878
- return [3 /*break*/, 7];
879
- case 1:
880
- if (!utils_1.canBeConvertedToUint8Array(font)) return [3 /*break*/, 6];
881
- bytes = utils_1.toUint8Array(font);
882
- fontkit = this.assertFontkit();
883
- if (!subset) return [3 /*break*/, 3];
884
- return [4 /*yield*/, core_1.CustomFontSubsetEmbedder.for(fontkit, bytes, customName, features)];
885
- case 2:
886
- _b = _c.sent();
887
- return [3 /*break*/, 5];
888
- case 3: return [4 /*yield*/, core_1.CustomFontEmbedder.for(fontkit, bytes, customName, features)];
889
- case 4:
890
- _b = _c.sent();
891
- _c.label = 5;
892
- case 5:
893
- embedder = _b;
894
- return [3 /*break*/, 7];
895
- case 6: throw new TypeError('`font` must be one of `StandardFonts | string | Uint8Array | ArrayBuffer`');
896
- case 7:
897
- ref = this.context.nextRef();
898
- pdfFont = PDFFont_1.default.of(ref, this, embedder);
899
- this.fonts.push(pdfFont);
900
- return [2 /*return*/, pdfFont];
901
- }
902
- });
962
+ embedFont(font, options = {}) {
963
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
964
+ const { subset = false, customName, features } = options;
965
+ (0, utils_1.assertIs)(font, 'font', ['string', Uint8Array, ArrayBuffer]);
966
+ (0, utils_1.assertIs)(subset, 'subset', ['boolean']);
967
+ let embedder;
968
+ if ((0, utils_1.isStandardFont)(font)) {
969
+ embedder = core_1.StandardFontEmbedder.for(font, customName);
970
+ }
971
+ else if ((0, utils_1.canBeConvertedToUint8Array)(font)) {
972
+ const bytes = (0, utils_1.toUint8Array)(font);
973
+ const fontkit = this.assertFontkit();
974
+ embedder = subset
975
+ ? yield core_1.CustomFontSubsetEmbedder.for(fontkit, bytes, customName, features)
976
+ : yield core_1.CustomFontEmbedder.for(fontkit, bytes, customName, features);
977
+ }
978
+ else {
979
+ throw new TypeError('`font` must be one of `StandardFonts | string | Uint8Array | ArrayBuffer`');
980
+ }
981
+ const ref = this.context.nextRef();
982
+ const pdfFont = PDFFont_1.default.of(ref, this, embedder);
983
+ this.fonts.push(pdfFont);
984
+ return pdfFont;
903
985
  });
904
- };
986
+ }
905
987
  /**
906
988
  * Embed a standard font into this document.
907
989
  * For example:
@@ -913,17 +995,17 @@ var PDFDocument = /** @class */ (function () {
913
995
  * @param customName The name to be used when embedding the font.
914
996
  * @returns The embedded font.
915
997
  */
916
- PDFDocument.prototype.embedStandardFont = function (font, customName) {
917
- utils_1.assertIs(font, 'font', ['string']);
918
- if (!utils_1.isStandardFont(font)) {
998
+ embedStandardFont(font, customName) {
999
+ (0, utils_1.assertIs)(font, 'font', ['string']);
1000
+ if (!(0, utils_1.isStandardFont)(font)) {
919
1001
  throw new TypeError('`font` must be one of type `StandardFonts`');
920
1002
  }
921
- var embedder = core_1.StandardFontEmbedder.for(font, customName);
922
- var ref = this.context.nextRef();
923
- var pdfFont = PDFFont_1.default.of(ref, this, embedder);
1003
+ const embedder = core_1.StandardFontEmbedder.for(font, customName);
1004
+ const ref = this.context.nextRef();
1005
+ const pdfFont = PDFFont_1.default.of(ref, this, embedder);
924
1006
  this.fonts.push(pdfFont);
925
1007
  return pdfFont;
926
- };
1008
+ }
927
1009
  /**
928
1010
  * Embed a JPEG image into this document. The input data can be provided in
929
1011
  * multiple formats:
@@ -954,25 +1036,17 @@ var PDFDocument = /** @class */ (function () {
954
1036
  * @param jpg The input data for a JPEG image.
955
1037
  * @returns Resolves with the embedded image.
956
1038
  */
957
- PDFDocument.prototype.embedJpg = function (jpg) {
958
- return tslib_1.__awaiter(this, void 0, void 0, function () {
959
- var bytes, embedder, ref, pdfImage;
960
- return tslib_1.__generator(this, function (_a) {
961
- switch (_a.label) {
962
- case 0:
963
- utils_1.assertIs(jpg, 'jpg', ['string', Uint8Array, ArrayBuffer]);
964
- bytes = utils_1.toUint8Array(jpg);
965
- return [4 /*yield*/, core_1.JpegEmbedder.for(bytes)];
966
- case 1:
967
- embedder = _a.sent();
968
- ref = this.context.nextRef();
969
- pdfImage = PDFImage_1.default.of(ref, this, embedder);
970
- this.images.push(pdfImage);
971
- return [2 /*return*/, pdfImage];
972
- }
973
- });
1039
+ embedJpg(jpg) {
1040
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1041
+ (0, utils_1.assertIs)(jpg, 'jpg', ['string', Uint8Array, ArrayBuffer]);
1042
+ const bytes = (0, utils_1.toUint8Array)(jpg);
1043
+ const embedder = yield core_1.JpegEmbedder.for(bytes);
1044
+ const ref = this.context.nextRef();
1045
+ const pdfImage = PDFImage_1.default.of(ref, this, embedder);
1046
+ this.images.push(pdfImage);
1047
+ return pdfImage;
974
1048
  });
975
- };
1049
+ }
976
1050
  /**
977
1051
  * Embed a PNG image into this document. The input data can be provided in
978
1052
  * multiple formats:
@@ -1003,25 +1077,47 @@ var PDFDocument = /** @class */ (function () {
1003
1077
  * @param png The input data for a PNG image.
1004
1078
  * @returns Resolves with the embedded image.
1005
1079
  */
1006
- PDFDocument.prototype.embedPng = function (png) {
1007
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1008
- var bytes, embedder, ref, pdfImage;
1009
- return tslib_1.__generator(this, function (_a) {
1010
- switch (_a.label) {
1011
- case 0:
1012
- utils_1.assertIs(png, 'png', ['string', Uint8Array, ArrayBuffer]);
1013
- bytes = utils_1.toUint8Array(png);
1014
- return [4 /*yield*/, core_1.PngEmbedder.for(bytes)];
1015
- case 1:
1016
- embedder = _a.sent();
1017
- ref = this.context.nextRef();
1018
- pdfImage = PDFImage_1.default.of(ref, this, embedder);
1019
- this.images.push(pdfImage);
1020
- return [2 /*return*/, pdfImage];
1080
+ embedPng(png) {
1081
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1082
+ (0, utils_1.assertIs)(png, 'png', ['string', Uint8Array, ArrayBuffer]);
1083
+ const bytes = (0, utils_1.toUint8Array)(png);
1084
+ const embedder = yield core_1.PngEmbedder.for(bytes);
1085
+ const ref = this.context.nextRef();
1086
+ const pdfImage = PDFImage_1.default.of(ref, this, embedder);
1087
+ this.images.push(pdfImage);
1088
+ return pdfImage;
1089
+ });
1090
+ }
1091
+ embedSvg(svg) {
1092
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1093
+ if (!svg)
1094
+ return new PDFSvg_1.default(svg);
1095
+ const parsedSvg = (0, node_html_better_parser_1.parse)(svg);
1096
+ const findImages = (element) => {
1097
+ if (element.tagName === 'image')
1098
+ return [element];
1099
+ else {
1100
+ return element.childNodes
1101
+ .map((child) => child.nodeType === node_html_better_parser_1.NodeType.ELEMENT_NODE ? findImages(child) : [])
1102
+ .flat();
1021
1103
  }
1022
- });
1104
+ };
1105
+ const images = findImages(parsedSvg);
1106
+ const imagesDict = {};
1107
+ yield Promise.all(images.map((image) => tslib_1.__awaiter(this, void 0, void 0, function* () {
1108
+ var _a;
1109
+ const href = (_a = image.attributes.href) !== null && _a !== void 0 ? _a : image.attributes['xlink:href'];
1110
+ if (!href || imagesDict[href])
1111
+ return;
1112
+ const isPng = href.match(/\.png(\?|$)|^data:image\/png;base64/gim);
1113
+ const pdfImage = isPng
1114
+ ? yield this.embedPng(href)
1115
+ : yield this.embedJpg(href);
1116
+ imagesDict[href] = pdfImage;
1117
+ })));
1118
+ return new PDFSvg_1.default(svg, imagesDict);
1023
1119
  });
1024
- };
1120
+ }
1025
1121
  /**
1026
1122
  * Embed one or more PDF pages into this document.
1027
1123
  *
@@ -1042,35 +1138,20 @@ var PDFDocument = /** @class */ (function () {
1042
1138
  * @param indices The indices of the pages that should be embedded.
1043
1139
  * @returns Resolves with an array of the embedded pages.
1044
1140
  */
1045
- PDFDocument.prototype.embedPdf = function (pdf, indices) {
1046
- if (indices === void 0) { indices = [0]; }
1047
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1048
- var srcDoc, _a, srcPages;
1049
- return tslib_1.__generator(this, function (_b) {
1050
- switch (_b.label) {
1051
- case 0:
1052
- utils_1.assertIs(pdf, 'pdf', [
1053
- 'string',
1054
- Uint8Array,
1055
- ArrayBuffer,
1056
- [PDFDocument, 'PDFDocument'],
1057
- ]);
1058
- utils_1.assertIs(indices, 'indices', [Array]);
1059
- if (!(pdf instanceof PDFDocument)) return [3 /*break*/, 1];
1060
- _a = pdf;
1061
- return [3 /*break*/, 3];
1062
- case 1: return [4 /*yield*/, PDFDocument.load(pdf)];
1063
- case 2:
1064
- _a = _b.sent();
1065
- _b.label = 3;
1066
- case 3:
1067
- srcDoc = _a;
1068
- srcPages = utils_1.pluckIndices(srcDoc.getPages(), indices);
1069
- return [2 /*return*/, this.embedPages(srcPages)];
1070
- }
1071
- });
1141
+ embedPdf(pdf, indices = [0]) {
1142
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1143
+ (0, utils_1.assertIs)(pdf, 'pdf', [
1144
+ 'string',
1145
+ Uint8Array,
1146
+ ArrayBuffer,
1147
+ [PDFDocument, 'PDFDocument'],
1148
+ ]);
1149
+ (0, utils_1.assertIs)(indices, 'indices', [Array]);
1150
+ const srcDoc = pdf instanceof PDFDocument ? pdf : yield PDFDocument.load(pdf);
1151
+ const srcPages = (0, utils_1.pluckIndices)(srcDoc.getPages(), indices);
1152
+ return this.embedPages(srcPages);
1072
1153
  });
1073
- };
1154
+ }
1074
1155
  /**
1075
1156
  * Embed a single PDF page into this document.
1076
1157
  *
@@ -1103,21 +1184,13 @@ var PDFDocument = /** @class */ (function () {
1103
1184
  * page anywhere it is drawn.
1104
1185
  * @returns Resolves with the embedded pdf page.
1105
1186
  */
1106
- PDFDocument.prototype.embedPage = function (page, boundingBox, transformationMatrix) {
1107
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1108
- var embeddedPage;
1109
- return tslib_1.__generator(this, function (_a) {
1110
- switch (_a.label) {
1111
- case 0:
1112
- utils_1.assertIs(page, 'page', [[PDFPage_1.default, 'PDFPage']]);
1113
- return [4 /*yield*/, this.embedPages([page], [boundingBox], [transformationMatrix])];
1114
- case 1:
1115
- embeddedPage = (_a.sent())[0];
1116
- return [2 /*return*/, embeddedPage];
1117
- }
1118
- });
1187
+ embedPage(page, boundingBox, transformationMatrix) {
1188
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1189
+ (0, utils_1.assertIs)(page, 'page', [[PDFPage_1.default, 'PDFPage']]);
1190
+ const [embeddedPage] = yield this.embedPages([page], [boundingBox], [transformationMatrix]);
1191
+ return embeddedPage;
1119
1192
  });
1120
- };
1193
+ }
1121
1194
  /**
1122
1195
  * Embed one or more PDF pages into this document.
1123
1196
  *
@@ -1146,53 +1219,38 @@ var PDFDocument = /** @class */ (function () {
1146
1219
  * (each page's transformation will apply anywhere it is drawn).
1147
1220
  * @returns Resolves with an array of the embedded pdf pages.
1148
1221
  */
1149
- PDFDocument.prototype.embedPages = function (pages, boundingBoxes, transformationMatrices) {
1150
- if (boundingBoxes === void 0) { boundingBoxes = []; }
1151
- if (transformationMatrices === void 0) { transformationMatrices = []; }
1152
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1153
- var idx, len, currPage, nextPage, context, maybeCopyPage, embeddedPages, idx, len, page, box, matrix, embedder, ref;
1154
- var _a;
1155
- return tslib_1.__generator(this, function (_b) {
1156
- switch (_b.label) {
1157
- case 0:
1158
- if (pages.length === 0)
1159
- return [2 /*return*/, []];
1160
- // Assert all pages have the same context
1161
- for (idx = 0, len = pages.length - 1; idx < len; idx++) {
1162
- currPage = pages[idx];
1163
- nextPage = pages[idx + 1];
1164
- if (currPage.node.context !== nextPage.node.context) {
1165
- throw new core_1.PageEmbeddingMismatchedContextError();
1166
- }
1167
- }
1168
- context = pages[0].node.context;
1169
- maybeCopyPage = context === this.context
1170
- ? function (p) { return p; }
1171
- : core_1.PDFObjectCopier.for(context, this.context).copy;
1172
- embeddedPages = new Array(pages.length);
1173
- idx = 0, len = pages.length;
1174
- _b.label = 1;
1175
- case 1:
1176
- if (!(idx < len)) return [3 /*break*/, 4];
1177
- page = maybeCopyPage(pages[idx].node);
1178
- box = boundingBoxes[idx];
1179
- matrix = transformationMatrices[idx];
1180
- return [4 /*yield*/, core_1.PDFPageEmbedder.for(page, box, matrix)];
1181
- case 2:
1182
- embedder = _b.sent();
1183
- ref = this.context.nextRef();
1184
- embeddedPages[idx] = PDFEmbeddedPage_1.default.of(ref, this, embedder);
1185
- _b.label = 3;
1186
- case 3:
1187
- idx++;
1188
- return [3 /*break*/, 1];
1189
- case 4:
1190
- (_a = this.embeddedPages).push.apply(_a, embeddedPages);
1191
- return [2 /*return*/, embeddedPages];
1222
+ embedPages(pages, boundingBoxes = [], transformationMatrices = []) {
1223
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1224
+ if (pages.length === 0)
1225
+ return [];
1226
+ // Assert all pages have the same context
1227
+ for (let idx = 0, len = pages.length - 1; idx < len; idx++) {
1228
+ const currPage = pages[idx];
1229
+ const nextPage = pages[idx + 1];
1230
+ if (currPage.node.context !== nextPage.node.context) {
1231
+ throw new core_1.PageEmbeddingMismatchedContextError();
1192
1232
  }
1193
- });
1233
+ }
1234
+ const context = pages[0].node.context;
1235
+ const maybeCopyPage = context === this.context
1236
+ ? (p) => p
1237
+ : core_1.PDFObjectCopier.for(context, this.context).copy;
1238
+ const embeddedPages = new Array(pages.length);
1239
+ for (let idx = 0, len = pages.length; idx < len; idx++) {
1240
+ const page = maybeCopyPage(pages[idx].node);
1241
+ const box = boundingBoxes[idx];
1242
+ const matrix = transformationMatrices[idx];
1243
+ const embedder = yield core_1.PDFPageEmbedder.for(page, box, matrix);
1244
+ const ref = this.context.nextRef();
1245
+ embeddedPages[idx] = PDFEmbeddedPage_1.default.of(ref, this, embedder);
1246
+ }
1247
+ this.embeddedPages.push(...embeddedPages);
1248
+ return embeddedPages;
1194
1249
  });
1195
- };
1250
+ }
1251
+ encrypt(options) {
1252
+ this.context.security = PDFSecurity_1.default.create(this.context, options).encrypt();
1253
+ }
1196
1254
  /**
1197
1255
  * > **NOTE:** You shouldn't need to call this method directly. The [[save]]
1198
1256
  * > and [[saveAsBase64]] methods will automatically ensure that all embedded
@@ -1203,30 +1261,15 @@ var PDFDocument = /** @class */ (function () {
1203
1261
  *
1204
1262
  * @returns Resolves when the flush is complete.
1205
1263
  */
1206
- PDFDocument.prototype.flush = function () {
1207
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1208
- return tslib_1.__generator(this, function (_a) {
1209
- switch (_a.label) {
1210
- case 0: return [4 /*yield*/, this.embedAll(this.fonts)];
1211
- case 1:
1212
- _a.sent();
1213
- return [4 /*yield*/, this.embedAll(this.images)];
1214
- case 2:
1215
- _a.sent();
1216
- return [4 /*yield*/, this.embedAll(this.embeddedPages)];
1217
- case 3:
1218
- _a.sent();
1219
- return [4 /*yield*/, this.embedAll(this.embeddedFiles)];
1220
- case 4:
1221
- _a.sent();
1222
- return [4 /*yield*/, this.embedAll(this.javaScripts)];
1223
- case 5:
1224
- _a.sent();
1225
- return [2 /*return*/];
1226
- }
1227
- });
1264
+ flush() {
1265
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1266
+ yield this.embedAll(this.fonts);
1267
+ yield this.embedAll(this.images);
1268
+ yield this.embedAll(this.embeddedPages);
1269
+ yield this.embedAll(this.embeddedFiles);
1270
+ yield this.embedAll(this.javaScripts);
1228
1271
  });
1229
- };
1272
+ }
1230
1273
  /**
1231
1274
  * Serialize this document to an array of bytes making up a PDF file.
1232
1275
  * For example:
@@ -1243,42 +1286,32 @@ var PDFDocument = /** @class */ (function () {
1243
1286
  * @param options The options to be used when saving the document.
1244
1287
  * @returns Resolves with the bytes of the serialized document.
1245
1288
  */
1246
- PDFDocument.prototype.save = function (options) {
1247
- if (options === void 0) { options = {}; }
1248
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1249
- var _a, useObjectStreams, _b, objectsPerTick, _c, rewrite, incrementalUpdate, Writer, increment, result;
1250
- return tslib_1.__generator(this, function (_d) {
1251
- switch (_d.label) {
1252
- case 0:
1253
- _a = options.useObjectStreams, useObjectStreams = _a === void 0 ? true : _a, _b = options.objectsPerTick, objectsPerTick = _b === void 0 ? 50 : _b, _c = options.rewrite, rewrite = _c === void 0 ? false : _c;
1254
- utils_1.assertIs(useObjectStreams, 'useObjectStreams', ['boolean']);
1255
- utils_1.assertIs(objectsPerTick, 'objectsPerTick', ['number']);
1256
- utils_1.assertIs(rewrite, 'rewrite', ['boolean']);
1257
- incrementalUpdate = !rewrite &&
1258
- this.context.pdfFileDetails.originalBytes &&
1259
- this.context.snapshot;
1260
- if (incrementalUpdate) {
1261
- options.addDefaultPage = false;
1262
- options.updateFieldAppearances = false;
1263
- }
1264
- return [4 /*yield*/, this.prepareForSave(options)];
1265
- case 1:
1266
- _d.sent();
1267
- Writer = useObjectStreams ? core_1.PDFStreamWriter : core_1.PDFWriter;
1268
- if (!incrementalUpdate) return [3 /*break*/, 3];
1269
- return [4 /*yield*/, Writer.forContextWithSnapshot(this.context, objectsPerTick, this.context.snapshot).serializeToBuffer()];
1270
- case 2:
1271
- increment = _d.sent();
1272
- result = new Uint8Array(this.context.pdfFileDetails.originalBytes.byteLength +
1273
- increment.byteLength);
1274
- result.set(this.context.pdfFileDetails.originalBytes);
1275
- result.set(increment, this.context.pdfFileDetails.originalBytes.byteLength);
1276
- return [2 /*return*/, result];
1277
- case 3: return [2 /*return*/, Writer.forContext(this.context, objectsPerTick).serializeToBuffer()];
1278
- }
1279
- });
1289
+ save(options = {}) {
1290
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1291
+ const { useObjectStreams = true, objectsPerTick = 50, rewrite = false, } = options;
1292
+ (0, utils_1.assertIs)(useObjectStreams, 'useObjectStreams', ['boolean']);
1293
+ (0, utils_1.assertIs)(objectsPerTick, 'objectsPerTick', ['number']);
1294
+ (0, utils_1.assertIs)(rewrite, 'rewrite', ['boolean']);
1295
+ const incrementalUpdate = !rewrite &&
1296
+ this.context.pdfFileDetails.originalBytes &&
1297
+ this.context.snapshot;
1298
+ if (incrementalUpdate) {
1299
+ options.addDefaultPage = false;
1300
+ options.updateFieldAppearances = false;
1301
+ }
1302
+ yield this.prepareForSave(options);
1303
+ const Writer = useObjectStreams ? core_1.PDFStreamWriter : core_1.PDFWriter;
1304
+ if (incrementalUpdate) {
1305
+ const increment = yield Writer.forContextWithSnapshot(this.context, objectsPerTick, this.context.snapshot).serializeToBuffer();
1306
+ const result = new Uint8Array(this.context.pdfFileDetails.originalBytes.byteLength +
1307
+ increment.byteLength);
1308
+ result.set(this.context.pdfFileDetails.originalBytes);
1309
+ result.set(increment, this.context.pdfFileDetails.originalBytes.byteLength);
1310
+ return result;
1311
+ }
1312
+ return Writer.forContext(this.context, objectsPerTick).serializeToBuffer();
1280
1313
  });
1281
- };
1314
+ }
1282
1315
  /**
1283
1316
  * Serialize only the changes to this document to an array of bytes making up a PDF file.
1284
1317
  * For example:
@@ -1296,27 +1329,18 @@ var PDFDocument = /** @class */ (function () {
1296
1329
  * @param options The options to be used when saving the document.
1297
1330
  * @returns Resolves with the bytes of the serialized document.
1298
1331
  */
1299
- PDFDocument.prototype.saveIncremental = function (snapshot, options) {
1300
- if (options === void 0) { options = {}; }
1301
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1302
- var _a, objectsPerTick, saveOptions, Writer;
1303
- return tslib_1.__generator(this, function (_b) {
1304
- switch (_b.label) {
1305
- case 0:
1306
- _a = options.objectsPerTick, objectsPerTick = _a === void 0 ? 50 : _a;
1307
- utils_1.assertIs(objectsPerTick, 'objectsPerTick', ['number']);
1308
- saveOptions = tslib_1.__assign(tslib_1.__assign({}, options), { addDefaultPage: false, updateFieldAppearances: false });
1309
- return [4 /*yield*/, this.prepareForSave(saveOptions)];
1310
- case 1:
1311
- _b.sent();
1312
- Writer = this.context.pdfFileDetails.useObjectStreams
1313
- ? core_1.PDFStreamWriter
1314
- : core_1.PDFWriter;
1315
- return [2 /*return*/, Writer.forContextWithSnapshot(this.context, objectsPerTick, snapshot).serializeToBuffer()];
1316
- }
1317
- });
1332
+ saveIncremental(snapshot, options = {}) {
1333
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1334
+ const { objectsPerTick = 50 } = options;
1335
+ (0, utils_1.assertIs)(objectsPerTick, 'objectsPerTick', ['number']);
1336
+ const saveOptions = Object.assign(Object.assign({}, options), { addDefaultPage: false, updateFieldAppearances: false });
1337
+ yield this.prepareForSave(saveOptions);
1338
+ const Writer = this.context.pdfFileDetails.useObjectStreams
1339
+ ? core_1.PDFStreamWriter
1340
+ : core_1.PDFWriter;
1341
+ return Writer.forContextWithSnapshot(this.context, objectsPerTick, snapshot).serializeToBuffer();
1318
1342
  });
1319
- };
1343
+ }
1320
1344
  /**
1321
1345
  * Serialize this document to a base64 encoded string or data URI making up a
1322
1346
  * PDF file. For example:
@@ -1332,117 +1356,83 @@ var PDFDocument = /** @class */ (function () {
1332
1356
  * @returns Resolves with a base64 encoded string or data URI of the
1333
1357
  * serialized document.
1334
1358
  */
1335
- PDFDocument.prototype.saveAsBase64 = function (options) {
1336
- if (options === void 0) { options = {}; }
1337
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1338
- var _a, dataUri, otherOptions, bytes, base64;
1339
- return tslib_1.__generator(this, function (_b) {
1340
- switch (_b.label) {
1341
- case 0:
1342
- _a = options.dataUri, dataUri = _a === void 0 ? false : _a, otherOptions = tslib_1.__rest(options, ["dataUri"]);
1343
- utils_1.assertIs(dataUri, 'dataUri', ['boolean']);
1344
- return [4 /*yield*/, this.save(otherOptions)];
1345
- case 1:
1346
- bytes = _b.sent();
1347
- base64 = utils_1.encodeToBase64(bytes);
1348
- return [2 /*return*/, dataUri ? "data:application/pdf;base64," + base64 : base64];
1349
- }
1350
- });
1359
+ saveAsBase64(options = {}) {
1360
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1361
+ const { dataUri = false } = options, otherOptions = tslib_1.__rest(options, ["dataUri"]);
1362
+ (0, utils_1.assertIs)(dataUri, 'dataUri', ['boolean']);
1363
+ const bytes = yield this.save(otherOptions);
1364
+ const base64 = (0, utils_1.encodeToBase64)(bytes);
1365
+ return dataUri ? `data:application/pdf;base64,${base64}` : base64;
1351
1366
  });
1352
- };
1353
- PDFDocument.prototype.findPageForAnnotationRef = function (ref) {
1354
- var pages = this.getPages();
1355
- for (var idx = 0, len = pages.length; idx < len; idx++) {
1356
- var page = pages[idx];
1357
- var annotations = page.node.Annots();
1367
+ }
1368
+ findPageForAnnotationRef(ref) {
1369
+ const pages = this.getPages();
1370
+ for (let idx = 0, len = pages.length; idx < len; idx++) {
1371
+ const page = pages[idx];
1372
+ const annotations = page.node.Annots();
1358
1373
  if ((annotations === null || annotations === void 0 ? void 0 : annotations.indexOf(ref)) !== undefined) {
1359
1374
  return page;
1360
1375
  }
1361
1376
  }
1362
1377
  return undefined;
1363
- };
1364
- PDFDocument.prototype.takeSnapshot = function () {
1365
- var indirectObjects = [];
1366
- var snapshot = new snapshot_1.IncrementalDocumentSnapshot(this.context.largestObjectNumber, indirectObjects, this.context.pdfFileDetails.pdfSize, this.context.pdfFileDetails.prevStartXRef, this.context);
1378
+ }
1379
+ takeSnapshot() {
1380
+ const indirectObjects = [];
1381
+ const snapshot = new snapshot_1.IncrementalDocumentSnapshot(this.context.largestObjectNumber, indirectObjects, this.context.pdfFileDetails.pdfSize, this.context.pdfFileDetails.prevStartXRef, this.context);
1367
1382
  if (!this.context.snapshot && this.context.pdfFileDetails.originalBytes) {
1368
1383
  this.context.snapshot = snapshot;
1369
1384
  this.catalog.registerChange();
1370
1385
  }
1371
1386
  return snapshot;
1372
- };
1373
- PDFDocument.prototype.prepareForSave = function (options) {
1374
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1375
- var _a, addDefaultPage, _b, updateFieldAppearances, form;
1376
- return tslib_1.__generator(this, function (_c) {
1377
- switch (_c.label) {
1378
- case 0:
1379
- _a = options.addDefaultPage, addDefaultPage = _a === void 0 ? true : _a, _b = options.updateFieldAppearances, updateFieldAppearances = _b === void 0 ? true : _b;
1380
- utils_1.assertIs(addDefaultPage, 'addDefaultPage', ['boolean']);
1381
- utils_1.assertIs(updateFieldAppearances, 'updateFieldAppearances', ['boolean']);
1382
- if (addDefaultPage && this.getPageCount() === 0)
1383
- this.addPage();
1384
- if (updateFieldAppearances) {
1385
- form = this.formCache.getValue();
1386
- if (form)
1387
- form.updateFieldAppearances();
1388
- }
1389
- return [4 /*yield*/, this.flush()];
1390
- case 1:
1391
- _c.sent();
1392
- return [2 /*return*/];
1393
- }
1394
- });
1387
+ }
1388
+ prepareForSave(options) {
1389
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1390
+ const { addDefaultPage = true, updateFieldAppearances = true } = options;
1391
+ (0, utils_1.assertIs)(addDefaultPage, 'addDefaultPage', ['boolean']);
1392
+ (0, utils_1.assertIs)(updateFieldAppearances, 'updateFieldAppearances', ['boolean']);
1393
+ if (addDefaultPage && this.getPageCount() === 0)
1394
+ this.addPage();
1395
+ if (updateFieldAppearances) {
1396
+ const form = this.formCache.getValue();
1397
+ if (form)
1398
+ form.updateFieldAppearances();
1399
+ }
1400
+ yield this.flush();
1395
1401
  });
1396
- };
1397
- PDFDocument.prototype.embedAll = function (embeddables) {
1398
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1399
- var idx, len;
1400
- return tslib_1.__generator(this, function (_a) {
1401
- switch (_a.label) {
1402
- case 0:
1403
- idx = 0, len = embeddables.length;
1404
- _a.label = 1;
1405
- case 1:
1406
- if (!(idx < len)) return [3 /*break*/, 4];
1407
- return [4 /*yield*/, embeddables[idx].embed()];
1408
- case 2:
1409
- _a.sent();
1410
- _a.label = 3;
1411
- case 3:
1412
- idx++;
1413
- return [3 /*break*/, 1];
1414
- case 4: return [2 /*return*/];
1415
- }
1416
- });
1402
+ }
1403
+ embedAll(embeddables) {
1404
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1405
+ for (let idx = 0, len = embeddables.length; idx < len; idx++) {
1406
+ yield embeddables[idx].embed();
1407
+ }
1417
1408
  });
1418
- };
1419
- PDFDocument.prototype.updateInfoDict = function () {
1420
- var pdfLib = "pdf-lib (https://github.com/Hopding/pdf-lib)";
1421
- var now = new Date();
1422
- var info = this.getInfoDict();
1409
+ }
1410
+ updateInfoDict() {
1411
+ const pdfLib = 'pdf-lib (https://github.com/Hopding/pdf-lib)';
1412
+ const now = new Date();
1413
+ const info = this.getInfoDict();
1423
1414
  this.setProducer(pdfLib);
1424
1415
  this.setModificationDate(now);
1425
1416
  if (!info.get(core_1.PDFName.of('Creator')))
1426
1417
  this.setCreator(pdfLib);
1427
1418
  if (!info.get(core_1.PDFName.of('CreationDate')))
1428
1419
  this.setCreationDate(now);
1429
- };
1430
- PDFDocument.prototype.getInfoDict = function () {
1431
- var existingInfo = this.context.lookup(this.context.trailerInfo.Info);
1420
+ }
1421
+ getInfoDict() {
1422
+ const existingInfo = this.context.lookup(this.context.trailerInfo.Info);
1432
1423
  if (existingInfo instanceof core_1.PDFDict) {
1433
1424
  return existingInfo;
1434
1425
  }
1435
- var newInfo = this.context.obj({});
1426
+ const newInfo = this.context.obj({});
1436
1427
  this.context.trailerInfo.Info = this.context.register(newInfo);
1437
1428
  return newInfo;
1438
- };
1439
- PDFDocument.prototype.assertFontkit = function () {
1429
+ }
1430
+ assertFontkit() {
1440
1431
  if (!this.fontkit)
1441
1432
  throw new errors_1.FontkitNotRegisteredError();
1442
1433
  return this.fontkit;
1443
- };
1444
- return PDFDocument;
1445
- }());
1434
+ }
1435
+ }
1446
1436
  exports.default = PDFDocument;
1447
1437
  /* tslint:disable-next-line only-arrow-functions */
1448
1438
  function assertIsLiteralOrHexString(pdfObject) {