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