@adnsistemas/pdf-lib 2.8.0 → 2.9.0

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 (753) hide show
  1. package/README.md +7 -2
  2. package/cjs/api/PDFDocument.d.ts +3 -0
  3. package/cjs/api/PDFDocument.d.ts.map +1 -1
  4. package/cjs/api/PDFDocument.js +22 -15
  5. package/cjs/api/PDFDocument.js.map +1 -1
  6. package/cjs/api/PDFFont.d.ts.map +1 -1
  7. package/cjs/api/PDFFont.js +4 -2
  8. package/cjs/api/PDFFont.js.map +1 -1
  9. package/cjs/api/PDFPage.d.ts.map +1 -1
  10. package/cjs/api/PDFPage.js +5 -4
  11. package/cjs/api/PDFPage.js.map +1 -1
  12. package/cjs/api/form/PDFButton.d.ts +3 -0
  13. package/cjs/api/form/PDFButton.d.ts.map +1 -1
  14. package/cjs/api/form/PDFButton.js +6 -1
  15. package/cjs/api/form/PDFButton.js.map +1 -1
  16. package/cjs/api/form/PDFCheckBox.d.ts +3 -0
  17. package/cjs/api/form/PDFCheckBox.d.ts.map +1 -1
  18. package/cjs/api/form/PDFCheckBox.js +6 -1
  19. package/cjs/api/form/PDFCheckBox.js.map +1 -1
  20. package/cjs/api/form/PDFDropdown.d.ts +3 -0
  21. package/cjs/api/form/PDFDropdown.d.ts.map +1 -1
  22. package/cjs/api/form/PDFDropdown.js +6 -1
  23. package/cjs/api/form/PDFDropdown.js.map +1 -1
  24. package/cjs/api/form/PDFField.d.ts +3 -0
  25. package/cjs/api/form/PDFField.d.ts.map +1 -1
  26. package/cjs/api/form/PDFField.js +5 -0
  27. package/cjs/api/form/PDFField.js.map +1 -1
  28. package/cjs/api/form/PDFForm.d.ts.map +1 -1
  29. package/cjs/api/form/PDFForm.js +24 -22
  30. package/cjs/api/form/PDFForm.js.map +1 -1
  31. package/cjs/api/form/PDFOptionList.d.ts +3 -0
  32. package/cjs/api/form/PDFOptionList.d.ts.map +1 -1
  33. package/cjs/api/form/PDFOptionList.js +6 -1
  34. package/cjs/api/form/PDFOptionList.js.map +1 -1
  35. package/cjs/api/form/PDFRadioGroup.d.ts +3 -0
  36. package/cjs/api/form/PDFRadioGroup.d.ts.map +1 -1
  37. package/cjs/api/form/PDFRadioGroup.js +7 -2
  38. package/cjs/api/form/PDFRadioGroup.js.map +1 -1
  39. package/cjs/api/form/PDFSignature.d.ts +3 -0
  40. package/cjs/api/form/PDFSignature.d.ts.map +1 -1
  41. package/cjs/api/form/PDFSignature.js +5 -0
  42. package/cjs/api/form/PDFSignature.js.map +1 -1
  43. package/cjs/api/form/PDFTextField.d.ts +3 -0
  44. package/cjs/api/form/PDFTextField.d.ts.map +1 -1
  45. package/cjs/api/form/PDFTextField.js +6 -1
  46. package/cjs/api/form/PDFTextField.js.map +1 -1
  47. package/cjs/api/objects.d.ts +61 -0
  48. package/cjs/api/objects.d.ts.map +1 -1
  49. package/cjs/api/objects.js +97 -4
  50. package/cjs/api/objects.js.map +1 -1
  51. package/cjs/api/operators.d.ts +28 -24
  52. package/cjs/api/operators.d.ts.map +1 -1
  53. package/cjs/api/operators.js +33 -29
  54. package/cjs/api/operators.js.map +1 -1
  55. package/cjs/api/snapshot/DefaultDocumentSnapshot.d.ts +3 -0
  56. package/cjs/api/snapshot/DefaultDocumentSnapshot.d.ts.map +1 -1
  57. package/cjs/api/snapshot/DefaultDocumentSnapshot.js +5 -0
  58. package/cjs/api/snapshot/DefaultDocumentSnapshot.js.map +1 -1
  59. package/cjs/api/snapshot/DocumentSnapshot.d.ts +2 -0
  60. package/cjs/api/snapshot/DocumentSnapshot.d.ts.map +1 -1
  61. package/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts +3 -0
  62. package/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts.map +1 -1
  63. package/cjs/api/snapshot/IncrementalDocumentSnapshot.js +5 -0
  64. package/cjs/api/snapshot/IncrementalDocumentSnapshot.js.map +1 -1
  65. package/cjs/core/PDFContext.d.ts +1 -1
  66. package/cjs/core/PDFContext.d.ts.map +1 -1
  67. package/cjs/core/PDFContext.js +33 -35
  68. package/cjs/core/PDFContext.js.map +1 -1
  69. package/cjs/core/PDFObjectCopier.d.ts.map +1 -1
  70. package/cjs/core/PDFObjectCopier.js +6 -9
  71. package/cjs/core/PDFObjectCopier.js.map +1 -1
  72. package/cjs/core/acroform/PDFAcroButton.d.ts.map +1 -1
  73. package/cjs/core/acroform/PDFAcroButton.js +7 -3
  74. package/cjs/core/acroform/PDFAcroButton.js.map +1 -1
  75. package/cjs/core/acroform/PDFAcroCheckBox.d.ts +3 -0
  76. package/cjs/core/acroform/PDFAcroCheckBox.d.ts.map +1 -1
  77. package/cjs/core/acroform/PDFAcroCheckBox.js +6 -1
  78. package/cjs/core/acroform/PDFAcroCheckBox.js.map +1 -1
  79. package/cjs/core/acroform/PDFAcroChoice.d.ts.map +1 -1
  80. package/cjs/core/acroform/PDFAcroChoice.js +22 -9
  81. package/cjs/core/acroform/PDFAcroChoice.js.map +1 -1
  82. package/cjs/core/acroform/PDFAcroComboBox.d.ts +3 -0
  83. package/cjs/core/acroform/PDFAcroComboBox.d.ts.map +1 -1
  84. package/cjs/core/acroform/PDFAcroComboBox.js +5 -0
  85. package/cjs/core/acroform/PDFAcroComboBox.js.map +1 -1
  86. package/cjs/core/acroform/PDFAcroField.d.ts +3 -0
  87. package/cjs/core/acroform/PDFAcroField.d.ts.map +1 -1
  88. package/cjs/core/acroform/PDFAcroField.js +9 -4
  89. package/cjs/core/acroform/PDFAcroField.js.map +1 -1
  90. package/cjs/core/acroform/PDFAcroForm.d.ts +3 -0
  91. package/cjs/core/acroform/PDFAcroForm.d.ts.map +1 -1
  92. package/cjs/core/acroform/PDFAcroForm.js +7 -4
  93. package/cjs/core/acroform/PDFAcroForm.js.map +1 -1
  94. package/cjs/core/acroform/PDFAcroListBox.d.ts +3 -0
  95. package/cjs/core/acroform/PDFAcroListBox.d.ts.map +1 -1
  96. package/cjs/core/acroform/PDFAcroListBox.js +5 -0
  97. package/cjs/core/acroform/PDFAcroListBox.js.map +1 -1
  98. package/cjs/core/acroform/PDFAcroNonTerminal.d.ts +3 -0
  99. package/cjs/core/acroform/PDFAcroNonTerminal.d.ts.map +1 -1
  100. package/cjs/core/acroform/PDFAcroNonTerminal.js +5 -0
  101. package/cjs/core/acroform/PDFAcroNonTerminal.js.map +1 -1
  102. package/cjs/core/acroform/PDFAcroPushButton.d.ts +3 -0
  103. package/cjs/core/acroform/PDFAcroPushButton.d.ts.map +1 -1
  104. package/cjs/core/acroform/PDFAcroPushButton.js +5 -0
  105. package/cjs/core/acroform/PDFAcroPushButton.js.map +1 -1
  106. package/cjs/core/acroform/PDFAcroRadioButton.d.ts +3 -0
  107. package/cjs/core/acroform/PDFAcroRadioButton.d.ts.map +1 -1
  108. package/cjs/core/acroform/PDFAcroRadioButton.js +6 -1
  109. package/cjs/core/acroform/PDFAcroRadioButton.js.map +1 -1
  110. package/cjs/core/acroform/PDFAcroSignature.d.ts +3 -0
  111. package/cjs/core/acroform/PDFAcroSignature.d.ts.map +1 -1
  112. package/cjs/core/acroform/PDFAcroSignature.js +5 -0
  113. package/cjs/core/acroform/PDFAcroSignature.js.map +1 -1
  114. package/cjs/core/acroform/PDFAcroText.d.ts +3 -0
  115. package/cjs/core/acroform/PDFAcroText.d.ts.map +1 -1
  116. package/cjs/core/acroform/PDFAcroText.js +9 -5
  117. package/cjs/core/acroform/PDFAcroText.js.map +1 -1
  118. package/cjs/core/acroform/utils.d.ts.map +1 -1
  119. package/cjs/core/acroform/utils.js +11 -7
  120. package/cjs/core/acroform/utils.js.map +1 -1
  121. package/cjs/core/annotation/AppearanceCharacteristics.d.ts.map +1 -1
  122. package/cjs/core/annotation/AppearanceCharacteristics.js +12 -11
  123. package/cjs/core/annotation/AppearanceCharacteristics.js.map +1 -1
  124. package/cjs/core/annotation/BorderStyle.d.ts.map +1 -1
  125. package/cjs/core/annotation/BorderStyle.js +2 -2
  126. package/cjs/core/annotation/BorderStyle.js.map +1 -1
  127. package/cjs/core/annotation/PDFAnnotation.d.ts.map +1 -1
  128. package/cjs/core/annotation/PDFAnnotation.js +4 -3
  129. package/cjs/core/annotation/PDFAnnotation.js.map +1 -1
  130. package/cjs/core/annotation/PDFWidgetAnnotation.d.ts.map +1 -1
  131. package/cjs/core/annotation/PDFWidgetAnnotation.js +8 -9
  132. package/cjs/core/annotation/PDFWidgetAnnotation.js.map +1 -1
  133. package/cjs/core/crypto.d.ts +3 -0
  134. package/cjs/core/crypto.d.ts.map +1 -1
  135. package/cjs/core/crypto.js +10 -5
  136. package/cjs/core/crypto.js.map +1 -1
  137. package/cjs/core/embedders/PDFPageEmbedder.d.ts.map +1 -1
  138. package/cjs/core/embedders/PDFPageEmbedder.js +3 -4
  139. package/cjs/core/embedders/PDFPageEmbedder.js.map +1 -1
  140. package/cjs/core/embedders/StandardFontEmbedder.d.ts +3 -0
  141. package/cjs/core/embedders/StandardFontEmbedder.d.ts.map +1 -1
  142. package/cjs/core/embedders/StandardFontEmbedder.js +5 -0
  143. package/cjs/core/embedders/StandardFontEmbedder.js.map +1 -1
  144. package/cjs/core/interactive/ViewerPreferences.d.ts.map +1 -1
  145. package/cjs/core/interactive/ViewerPreferences.js +5 -6
  146. package/cjs/core/interactive/ViewerPreferences.js.map +1 -1
  147. package/cjs/core/objects/PDFArray.d.ts +3 -0
  148. package/cjs/core/objects/PDFArray.d.ts.map +1 -1
  149. package/cjs/core/objects/PDFArray.js +6 -1
  150. package/cjs/core/objects/PDFArray.js.map +1 -1
  151. package/cjs/core/objects/PDFBool.d.ts +3 -0
  152. package/cjs/core/objects/PDFBool.d.ts.map +1 -1
  153. package/cjs/core/objects/PDFBool.js +5 -0
  154. package/cjs/core/objects/PDFBool.js.map +1 -1
  155. package/cjs/core/objects/PDFDict.d.ts +3 -0
  156. package/cjs/core/objects/PDFDict.d.ts.map +1 -1
  157. package/cjs/core/objects/PDFDict.js +5 -0
  158. package/cjs/core/objects/PDFDict.js.map +1 -1
  159. package/cjs/core/objects/PDFHexString.d.ts +3 -0
  160. package/cjs/core/objects/PDFHexString.d.ts.map +1 -1
  161. package/cjs/core/objects/PDFHexString.js +5 -0
  162. package/cjs/core/objects/PDFHexString.js.map +1 -1
  163. package/cjs/core/objects/PDFInvalidObject.d.ts +3 -0
  164. package/cjs/core/objects/PDFInvalidObject.d.ts.map +1 -1
  165. package/cjs/core/objects/PDFInvalidObject.js +5 -0
  166. package/cjs/core/objects/PDFInvalidObject.js.map +1 -1
  167. package/cjs/core/objects/PDFName.d.ts +3 -0
  168. package/cjs/core/objects/PDFName.d.ts.map +1 -1
  169. package/cjs/core/objects/PDFName.js +5 -0
  170. package/cjs/core/objects/PDFName.js.map +1 -1
  171. package/cjs/core/objects/PDFNull.d.ts +3 -0
  172. package/cjs/core/objects/PDFNull.d.ts.map +1 -1
  173. package/cjs/core/objects/PDFNull.js +5 -0
  174. package/cjs/core/objects/PDFNull.js.map +1 -1
  175. package/cjs/core/objects/PDFNumber.d.ts +3 -0
  176. package/cjs/core/objects/PDFNumber.d.ts.map +1 -1
  177. package/cjs/core/objects/PDFNumber.js +5 -0
  178. package/cjs/core/objects/PDFNumber.js.map +1 -1
  179. package/cjs/core/objects/PDFObject.d.ts +3 -0
  180. package/cjs/core/objects/PDFObject.d.ts.map +1 -1
  181. package/cjs/core/objects/PDFObject.js +5 -0
  182. package/cjs/core/objects/PDFObject.js.map +1 -1
  183. package/cjs/core/objects/PDFRawStream.d.ts +3 -0
  184. package/cjs/core/objects/PDFRawStream.d.ts.map +1 -1
  185. package/cjs/core/objects/PDFRawStream.js +5 -0
  186. package/cjs/core/objects/PDFRawStream.js.map +1 -1
  187. package/cjs/core/objects/PDFRef.d.ts +3 -0
  188. package/cjs/core/objects/PDFRef.d.ts.map +1 -1
  189. package/cjs/core/objects/PDFRef.js +5 -0
  190. package/cjs/core/objects/PDFRef.js.map +1 -1
  191. package/cjs/core/objects/PDFStream.d.ts +3 -0
  192. package/cjs/core/objects/PDFStream.d.ts.map +1 -1
  193. package/cjs/core/objects/PDFStream.js +5 -0
  194. package/cjs/core/objects/PDFStream.js.map +1 -1
  195. package/cjs/core/objects/PDFString.d.ts +3 -0
  196. package/cjs/core/objects/PDFString.d.ts.map +1 -1
  197. package/cjs/core/objects/PDFString.js +5 -0
  198. package/cjs/core/objects/PDFString.js.map +1 -1
  199. package/cjs/core/operators/PDFOperator.d.ts.map +1 -1
  200. package/cjs/core/operators/PDFOperator.js +9 -4
  201. package/cjs/core/operators/PDFOperator.js.map +1 -1
  202. package/cjs/core/parser/PDFObjectParser.d.ts.map +1 -1
  203. package/cjs/core/parser/PDFObjectParser.js +2 -1
  204. package/cjs/core/parser/PDFObjectParser.js.map +1 -1
  205. package/cjs/core/parser/PDFParser.d.ts.map +1 -1
  206. package/cjs/core/parser/PDFParser.js +8 -7
  207. package/cjs/core/parser/PDFParser.js.map +1 -1
  208. package/cjs/core/parser/PDFXRefStreamParser.d.ts.map +1 -1
  209. package/cjs/core/parser/PDFXRefStreamParser.js +8 -3
  210. package/cjs/core/parser/PDFXRefStreamParser.js.map +1 -1
  211. package/cjs/core/streams/decode.d.ts.map +1 -1
  212. package/cjs/core/streams/decode.js +5 -5
  213. package/cjs/core/streams/decode.js.map +1 -1
  214. package/cjs/core/structures/PDFCatalog.d.ts +3 -0
  215. package/cjs/core/structures/PDFCatalog.d.ts.map +1 -1
  216. package/cjs/core/structures/PDFCatalog.js +5 -0
  217. package/cjs/core/structures/PDFCatalog.js.map +1 -1
  218. package/cjs/core/structures/PDFContentStream.d.ts +3 -0
  219. package/cjs/core/structures/PDFContentStream.d.ts.map +1 -1
  220. package/cjs/core/structures/PDFContentStream.js +5 -0
  221. package/cjs/core/structures/PDFContentStream.js.map +1 -1
  222. package/cjs/core/structures/PDFObjectStream.d.ts +3 -0
  223. package/cjs/core/structures/PDFObjectStream.d.ts.map +1 -1
  224. package/cjs/core/structures/PDFObjectStream.js +5 -0
  225. package/cjs/core/structures/PDFObjectStream.js.map +1 -1
  226. package/cjs/core/structures/PDFPageLeaf.d.ts +3 -0
  227. package/cjs/core/structures/PDFPageLeaf.d.ts.map +1 -1
  228. package/cjs/core/structures/PDFPageLeaf.js +7 -3
  229. package/cjs/core/structures/PDFPageLeaf.js.map +1 -1
  230. package/cjs/core/structures/PDFPageTree.d.ts +3 -0
  231. package/cjs/core/structures/PDFPageTree.d.ts.map +1 -1
  232. package/cjs/core/structures/PDFPageTree.js +11 -7
  233. package/cjs/core/structures/PDFPageTree.js.map +1 -1
  234. package/cjs/core/writers/PDFStreamWriter.d.ts +3 -0
  235. package/cjs/core/writers/PDFStreamWriter.d.ts.map +1 -1
  236. package/cjs/core/writers/PDFStreamWriter.js +12 -13
  237. package/cjs/core/writers/PDFStreamWriter.js.map +1 -1
  238. package/cjs/core/writers/PDFWriter.d.ts +3 -0
  239. package/cjs/core/writers/PDFWriter.d.ts.map +1 -1
  240. package/cjs/core/writers/PDFWriter.js +16 -10
  241. package/cjs/core/writers/PDFWriter.js.map +1 -1
  242. package/cjs/utils/elements/Arc.d.ts +3 -0
  243. package/cjs/utils/elements/Arc.d.ts.map +1 -1
  244. package/cjs/utils/elements/Arc.js +6 -1
  245. package/cjs/utils/elements/Arc.js.map +1 -1
  246. package/cjs/utils/elements/Circle.d.ts +3 -0
  247. package/cjs/utils/elements/Circle.d.ts.map +1 -1
  248. package/cjs/utils/elements/Circle.js +6 -1
  249. package/cjs/utils/elements/Circle.js.map +1 -1
  250. package/cjs/utils/elements/Ellipse.d.ts +3 -0
  251. package/cjs/utils/elements/Ellipse.d.ts.map +1 -1
  252. package/cjs/utils/elements/Ellipse.js +6 -1
  253. package/cjs/utils/elements/Ellipse.js.map +1 -1
  254. package/cjs/utils/elements/GraphElement.d.ts +2 -0
  255. package/cjs/utils/elements/GraphElement.d.ts.map +1 -1
  256. package/cjs/utils/elements/GraphElement.js.map +1 -1
  257. package/cjs/utils/elements/Line.d.ts +3 -0
  258. package/cjs/utils/elements/Line.d.ts.map +1 -1
  259. package/cjs/utils/elements/Line.js +6 -1
  260. package/cjs/utils/elements/Line.js.map +1 -1
  261. package/cjs/utils/elements/Plot.d.ts +3 -0
  262. package/cjs/utils/elements/Plot.d.ts.map +1 -1
  263. package/cjs/utils/elements/Plot.js +9 -2
  264. package/cjs/utils/elements/Plot.js.map +1 -1
  265. package/cjs/utils/elements/Point.d.ts +3 -0
  266. package/cjs/utils/elements/Point.d.ts.map +1 -1
  267. package/cjs/utils/elements/Point.js +6 -1
  268. package/cjs/utils/elements/Point.js.map +1 -1
  269. package/cjs/utils/elements/Rectangle.d.ts +3 -0
  270. package/cjs/utils/elements/Rectangle.d.ts.map +1 -1
  271. package/cjs/utils/elements/Rectangle.js +6 -1
  272. package/cjs/utils/elements/Rectangle.js.map +1 -1
  273. package/cjs/utils/elements/Segment.d.ts +3 -0
  274. package/cjs/utils/elements/Segment.d.ts.map +1 -1
  275. package/cjs/utils/elements/Segment.js +8 -4
  276. package/cjs/utils/elements/Segment.js.map +1 -1
  277. package/cjs/utils/intersections.d.ts.map +1 -1
  278. package/cjs/utils/intersections.js +32 -35
  279. package/cjs/utils/intersections.js.map +1 -1
  280. package/dist/pdf-lib.esm.js +4797 -4482
  281. package/dist/pdf-lib.esm.js.map +1 -1
  282. package/dist/pdf-lib.esm.min.js +3 -3
  283. package/dist/pdf-lib.esm.min.js.map +1 -1
  284. package/dist/pdf-lib.js +4797 -4481
  285. package/dist/pdf-lib.js.map +1 -1
  286. package/dist/pdf-lib.min.js +3 -3
  287. package/dist/pdf-lib.min.js.map +1 -1
  288. package/es/api/PDFDocument.d.ts +3 -0
  289. package/es/api/PDFDocument.d.ts.map +1 -1
  290. package/es/api/PDFDocument.js +23 -16
  291. package/es/api/PDFDocument.js.map +1 -1
  292. package/es/api/PDFFont.d.ts.map +1 -1
  293. package/es/api/PDFFont.js +4 -2
  294. package/es/api/PDFFont.js.map +1 -1
  295. package/es/api/PDFPage.d.ts.map +1 -1
  296. package/es/api/PDFPage.js +6 -5
  297. package/es/api/PDFPage.js.map +1 -1
  298. package/es/api/form/PDFButton.d.ts +3 -0
  299. package/es/api/form/PDFButton.d.ts.map +1 -1
  300. package/es/api/form/PDFButton.js +7 -2
  301. package/es/api/form/PDFButton.js.map +1 -1
  302. package/es/api/form/PDFCheckBox.d.ts +3 -0
  303. package/es/api/form/PDFCheckBox.d.ts.map +1 -1
  304. package/es/api/form/PDFCheckBox.js +7 -2
  305. package/es/api/form/PDFCheckBox.js.map +1 -1
  306. package/es/api/form/PDFDropdown.d.ts +3 -0
  307. package/es/api/form/PDFDropdown.d.ts.map +1 -1
  308. package/es/api/form/PDFDropdown.js +7 -2
  309. package/es/api/form/PDFDropdown.js.map +1 -1
  310. package/es/api/form/PDFField.d.ts +3 -0
  311. package/es/api/form/PDFField.d.ts.map +1 -1
  312. package/es/api/form/PDFField.js +5 -0
  313. package/es/api/form/PDFField.js.map +1 -1
  314. package/es/api/form/PDFForm.d.ts.map +1 -1
  315. package/es/api/form/PDFForm.js +25 -23
  316. package/es/api/form/PDFForm.js.map +1 -1
  317. package/es/api/form/PDFOptionList.d.ts +3 -0
  318. package/es/api/form/PDFOptionList.d.ts.map +1 -1
  319. package/es/api/form/PDFOptionList.js +7 -2
  320. package/es/api/form/PDFOptionList.js.map +1 -1
  321. package/es/api/form/PDFRadioGroup.d.ts +3 -0
  322. package/es/api/form/PDFRadioGroup.d.ts.map +1 -1
  323. package/es/api/form/PDFRadioGroup.js +8 -3
  324. package/es/api/form/PDFRadioGroup.js.map +1 -1
  325. package/es/api/form/PDFSignature.d.ts +3 -0
  326. package/es/api/form/PDFSignature.d.ts.map +1 -1
  327. package/es/api/form/PDFSignature.js +5 -0
  328. package/es/api/form/PDFSignature.js.map +1 -1
  329. package/es/api/form/PDFTextField.d.ts +3 -0
  330. package/es/api/form/PDFTextField.d.ts.map +1 -1
  331. package/es/api/form/PDFTextField.js +7 -2
  332. package/es/api/form/PDFTextField.js.map +1 -1
  333. package/es/api/objects.d.ts +61 -0
  334. package/es/api/objects.d.ts.map +1 -1
  335. package/es/api/objects.js +95 -3
  336. package/es/api/objects.js.map +1 -1
  337. package/es/api/operators.d.ts +28 -24
  338. package/es/api/operators.d.ts.map +1 -1
  339. package/es/api/operators.js +32 -28
  340. package/es/api/operators.js.map +1 -1
  341. package/es/api/snapshot/DefaultDocumentSnapshot.d.ts +3 -0
  342. package/es/api/snapshot/DefaultDocumentSnapshot.d.ts.map +1 -1
  343. package/es/api/snapshot/DefaultDocumentSnapshot.js +5 -0
  344. package/es/api/snapshot/DefaultDocumentSnapshot.js.map +1 -1
  345. package/es/api/snapshot/DocumentSnapshot.d.ts +2 -0
  346. package/es/api/snapshot/DocumentSnapshot.d.ts.map +1 -1
  347. package/es/api/snapshot/IncrementalDocumentSnapshot.d.ts +3 -0
  348. package/es/api/snapshot/IncrementalDocumentSnapshot.d.ts.map +1 -1
  349. package/es/api/snapshot/IncrementalDocumentSnapshot.js +5 -0
  350. package/es/api/snapshot/IncrementalDocumentSnapshot.js.map +1 -1
  351. package/es/core/PDFContext.d.ts +1 -1
  352. package/es/core/PDFContext.d.ts.map +1 -1
  353. package/es/core/PDFContext.js +33 -35
  354. package/es/core/PDFContext.js.map +1 -1
  355. package/es/core/PDFObjectCopier.d.ts.map +1 -1
  356. package/es/core/PDFObjectCopier.js +6 -9
  357. package/es/core/PDFObjectCopier.js.map +1 -1
  358. package/es/core/acroform/PDFAcroButton.d.ts.map +1 -1
  359. package/es/core/acroform/PDFAcroButton.js +7 -3
  360. package/es/core/acroform/PDFAcroButton.js.map +1 -1
  361. package/es/core/acroform/PDFAcroCheckBox.d.ts +3 -0
  362. package/es/core/acroform/PDFAcroCheckBox.d.ts.map +1 -1
  363. package/es/core/acroform/PDFAcroCheckBox.js +6 -1
  364. package/es/core/acroform/PDFAcroCheckBox.js.map +1 -1
  365. package/es/core/acroform/PDFAcroChoice.d.ts.map +1 -1
  366. package/es/core/acroform/PDFAcroChoice.js +22 -9
  367. package/es/core/acroform/PDFAcroChoice.js.map +1 -1
  368. package/es/core/acroform/PDFAcroComboBox.d.ts +3 -0
  369. package/es/core/acroform/PDFAcroComboBox.d.ts.map +1 -1
  370. package/es/core/acroform/PDFAcroComboBox.js +5 -0
  371. package/es/core/acroform/PDFAcroComboBox.js.map +1 -1
  372. package/es/core/acroform/PDFAcroField.d.ts +3 -0
  373. package/es/core/acroform/PDFAcroField.d.ts.map +1 -1
  374. package/es/core/acroform/PDFAcroField.js +9 -4
  375. package/es/core/acroform/PDFAcroField.js.map +1 -1
  376. package/es/core/acroform/PDFAcroForm.d.ts +3 -0
  377. package/es/core/acroform/PDFAcroForm.d.ts.map +1 -1
  378. package/es/core/acroform/PDFAcroForm.js +7 -4
  379. package/es/core/acroform/PDFAcroForm.js.map +1 -1
  380. package/es/core/acroform/PDFAcroListBox.d.ts +3 -0
  381. package/es/core/acroform/PDFAcroListBox.d.ts.map +1 -1
  382. package/es/core/acroform/PDFAcroListBox.js +5 -0
  383. package/es/core/acroform/PDFAcroListBox.js.map +1 -1
  384. package/es/core/acroform/PDFAcroNonTerminal.d.ts +3 -0
  385. package/es/core/acroform/PDFAcroNonTerminal.d.ts.map +1 -1
  386. package/es/core/acroform/PDFAcroNonTerminal.js +5 -0
  387. package/es/core/acroform/PDFAcroNonTerminal.js.map +1 -1
  388. package/es/core/acroform/PDFAcroPushButton.d.ts +3 -0
  389. package/es/core/acroform/PDFAcroPushButton.d.ts.map +1 -1
  390. package/es/core/acroform/PDFAcroPushButton.js +5 -0
  391. package/es/core/acroform/PDFAcroPushButton.js.map +1 -1
  392. package/es/core/acroform/PDFAcroRadioButton.d.ts +3 -0
  393. package/es/core/acroform/PDFAcroRadioButton.d.ts.map +1 -1
  394. package/es/core/acroform/PDFAcroRadioButton.js +6 -1
  395. package/es/core/acroform/PDFAcroRadioButton.js.map +1 -1
  396. package/es/core/acroform/PDFAcroSignature.d.ts +3 -0
  397. package/es/core/acroform/PDFAcroSignature.d.ts.map +1 -1
  398. package/es/core/acroform/PDFAcroSignature.js +5 -0
  399. package/es/core/acroform/PDFAcroSignature.js.map +1 -1
  400. package/es/core/acroform/PDFAcroText.d.ts +3 -0
  401. package/es/core/acroform/PDFAcroText.d.ts.map +1 -1
  402. package/es/core/acroform/PDFAcroText.js +9 -5
  403. package/es/core/acroform/PDFAcroText.js.map +1 -1
  404. package/es/core/acroform/utils.d.ts.map +1 -1
  405. package/es/core/acroform/utils.js +11 -7
  406. package/es/core/acroform/utils.js.map +1 -1
  407. package/es/core/annotation/AppearanceCharacteristics.d.ts.map +1 -1
  408. package/es/core/annotation/AppearanceCharacteristics.js +12 -11
  409. package/es/core/annotation/AppearanceCharacteristics.js.map +1 -1
  410. package/es/core/annotation/BorderStyle.d.ts.map +1 -1
  411. package/es/core/annotation/BorderStyle.js +2 -2
  412. package/es/core/annotation/BorderStyle.js.map +1 -1
  413. package/es/core/annotation/PDFAnnotation.d.ts.map +1 -1
  414. package/es/core/annotation/PDFAnnotation.js +4 -3
  415. package/es/core/annotation/PDFAnnotation.js.map +1 -1
  416. package/es/core/annotation/PDFWidgetAnnotation.d.ts.map +1 -1
  417. package/es/core/annotation/PDFWidgetAnnotation.js +8 -9
  418. package/es/core/annotation/PDFWidgetAnnotation.js.map +1 -1
  419. package/es/core/crypto.d.ts +3 -0
  420. package/es/core/crypto.d.ts.map +1 -1
  421. package/es/core/crypto.js +10 -5
  422. package/es/core/crypto.js.map +1 -1
  423. package/es/core/embedders/PDFPageEmbedder.d.ts.map +1 -1
  424. package/es/core/embedders/PDFPageEmbedder.js +3 -4
  425. package/es/core/embedders/PDFPageEmbedder.js.map +1 -1
  426. package/es/core/embedders/StandardFontEmbedder.d.ts +3 -0
  427. package/es/core/embedders/StandardFontEmbedder.d.ts.map +1 -1
  428. package/es/core/embedders/StandardFontEmbedder.js +5 -0
  429. package/es/core/embedders/StandardFontEmbedder.js.map +1 -1
  430. package/es/core/interactive/ViewerPreferences.d.ts.map +1 -1
  431. package/es/core/interactive/ViewerPreferences.js +5 -6
  432. package/es/core/interactive/ViewerPreferences.js.map +1 -1
  433. package/es/core/objects/PDFArray.d.ts +3 -0
  434. package/es/core/objects/PDFArray.d.ts.map +1 -1
  435. package/es/core/objects/PDFArray.js +6 -1
  436. package/es/core/objects/PDFArray.js.map +1 -1
  437. package/es/core/objects/PDFBool.d.ts +3 -0
  438. package/es/core/objects/PDFBool.d.ts.map +1 -1
  439. package/es/core/objects/PDFBool.js +5 -0
  440. package/es/core/objects/PDFBool.js.map +1 -1
  441. package/es/core/objects/PDFDict.d.ts +3 -0
  442. package/es/core/objects/PDFDict.d.ts.map +1 -1
  443. package/es/core/objects/PDFDict.js +5 -0
  444. package/es/core/objects/PDFDict.js.map +1 -1
  445. package/es/core/objects/PDFHexString.d.ts +3 -0
  446. package/es/core/objects/PDFHexString.d.ts.map +1 -1
  447. package/es/core/objects/PDFHexString.js +5 -0
  448. package/es/core/objects/PDFHexString.js.map +1 -1
  449. package/es/core/objects/PDFInvalidObject.d.ts +3 -0
  450. package/es/core/objects/PDFInvalidObject.d.ts.map +1 -1
  451. package/es/core/objects/PDFInvalidObject.js +5 -0
  452. package/es/core/objects/PDFInvalidObject.js.map +1 -1
  453. package/es/core/objects/PDFName.d.ts +3 -0
  454. package/es/core/objects/PDFName.d.ts.map +1 -1
  455. package/es/core/objects/PDFName.js +5 -0
  456. package/es/core/objects/PDFName.js.map +1 -1
  457. package/es/core/objects/PDFNull.d.ts +3 -0
  458. package/es/core/objects/PDFNull.d.ts.map +1 -1
  459. package/es/core/objects/PDFNull.js +5 -0
  460. package/es/core/objects/PDFNull.js.map +1 -1
  461. package/es/core/objects/PDFNumber.d.ts +3 -0
  462. package/es/core/objects/PDFNumber.d.ts.map +1 -1
  463. package/es/core/objects/PDFNumber.js +5 -0
  464. package/es/core/objects/PDFNumber.js.map +1 -1
  465. package/es/core/objects/PDFObject.d.ts +3 -0
  466. package/es/core/objects/PDFObject.d.ts.map +1 -1
  467. package/es/core/objects/PDFObject.js +5 -0
  468. package/es/core/objects/PDFObject.js.map +1 -1
  469. package/es/core/objects/PDFRawStream.d.ts +3 -0
  470. package/es/core/objects/PDFRawStream.d.ts.map +1 -1
  471. package/es/core/objects/PDFRawStream.js +5 -0
  472. package/es/core/objects/PDFRawStream.js.map +1 -1
  473. package/es/core/objects/PDFRef.d.ts +3 -0
  474. package/es/core/objects/PDFRef.d.ts.map +1 -1
  475. package/es/core/objects/PDFRef.js +5 -0
  476. package/es/core/objects/PDFRef.js.map +1 -1
  477. package/es/core/objects/PDFStream.d.ts +3 -0
  478. package/es/core/objects/PDFStream.d.ts.map +1 -1
  479. package/es/core/objects/PDFStream.js +5 -0
  480. package/es/core/objects/PDFStream.js.map +1 -1
  481. package/es/core/objects/PDFString.d.ts +3 -0
  482. package/es/core/objects/PDFString.d.ts.map +1 -1
  483. package/es/core/objects/PDFString.js +5 -0
  484. package/es/core/objects/PDFString.js.map +1 -1
  485. package/es/core/operators/PDFOperator.d.ts.map +1 -1
  486. package/es/core/operators/PDFOperator.js +9 -4
  487. package/es/core/operators/PDFOperator.js.map +1 -1
  488. package/es/core/parser/PDFObjectParser.d.ts.map +1 -1
  489. package/es/core/parser/PDFObjectParser.js +2 -1
  490. package/es/core/parser/PDFObjectParser.js.map +1 -1
  491. package/es/core/parser/PDFParser.d.ts.map +1 -1
  492. package/es/core/parser/PDFParser.js +8 -7
  493. package/es/core/parser/PDFParser.js.map +1 -1
  494. package/es/core/parser/PDFXRefStreamParser.d.ts.map +1 -1
  495. package/es/core/parser/PDFXRefStreamParser.js +8 -3
  496. package/es/core/parser/PDFXRefStreamParser.js.map +1 -1
  497. package/es/core/streams/decode.d.ts.map +1 -1
  498. package/es/core/streams/decode.js +5 -5
  499. package/es/core/streams/decode.js.map +1 -1
  500. package/es/core/structures/PDFCatalog.d.ts +3 -0
  501. package/es/core/structures/PDFCatalog.d.ts.map +1 -1
  502. package/es/core/structures/PDFCatalog.js +5 -0
  503. package/es/core/structures/PDFCatalog.js.map +1 -1
  504. package/es/core/structures/PDFContentStream.d.ts +3 -0
  505. package/es/core/structures/PDFContentStream.d.ts.map +1 -1
  506. package/es/core/structures/PDFContentStream.js +5 -0
  507. package/es/core/structures/PDFContentStream.js.map +1 -1
  508. package/es/core/structures/PDFObjectStream.d.ts +3 -0
  509. package/es/core/structures/PDFObjectStream.d.ts.map +1 -1
  510. package/es/core/structures/PDFObjectStream.js +5 -0
  511. package/es/core/structures/PDFObjectStream.js.map +1 -1
  512. package/es/core/structures/PDFPageLeaf.d.ts +3 -0
  513. package/es/core/structures/PDFPageLeaf.d.ts.map +1 -1
  514. package/es/core/structures/PDFPageLeaf.js +7 -3
  515. package/es/core/structures/PDFPageLeaf.js.map +1 -1
  516. package/es/core/structures/PDFPageTree.d.ts +3 -0
  517. package/es/core/structures/PDFPageTree.d.ts.map +1 -1
  518. package/es/core/structures/PDFPageTree.js +11 -7
  519. package/es/core/structures/PDFPageTree.js.map +1 -1
  520. package/es/core/writers/PDFStreamWriter.d.ts +3 -0
  521. package/es/core/writers/PDFStreamWriter.d.ts.map +1 -1
  522. package/es/core/writers/PDFStreamWriter.js +12 -13
  523. package/es/core/writers/PDFStreamWriter.js.map +1 -1
  524. package/es/core/writers/PDFWriter.d.ts +3 -0
  525. package/es/core/writers/PDFWriter.d.ts.map +1 -1
  526. package/es/core/writers/PDFWriter.js +17 -11
  527. package/es/core/writers/PDFWriter.js.map +1 -1
  528. package/es/utils/elements/Arc.d.ts +3 -0
  529. package/es/utils/elements/Arc.d.ts.map +1 -1
  530. package/es/utils/elements/Arc.js +6 -1
  531. package/es/utils/elements/Arc.js.map +1 -1
  532. package/es/utils/elements/Circle.d.ts +3 -0
  533. package/es/utils/elements/Circle.d.ts.map +1 -1
  534. package/es/utils/elements/Circle.js +6 -1
  535. package/es/utils/elements/Circle.js.map +1 -1
  536. package/es/utils/elements/Ellipse.d.ts +3 -0
  537. package/es/utils/elements/Ellipse.d.ts.map +1 -1
  538. package/es/utils/elements/Ellipse.js +6 -1
  539. package/es/utils/elements/Ellipse.js.map +1 -1
  540. package/es/utils/elements/GraphElement.d.ts +2 -0
  541. package/es/utils/elements/GraphElement.d.ts.map +1 -1
  542. package/es/utils/elements/GraphElement.js.map +1 -1
  543. package/es/utils/elements/Line.d.ts +3 -0
  544. package/es/utils/elements/Line.d.ts.map +1 -1
  545. package/es/utils/elements/Line.js +6 -1
  546. package/es/utils/elements/Line.js.map +1 -1
  547. package/es/utils/elements/Plot.d.ts +3 -0
  548. package/es/utils/elements/Plot.d.ts.map +1 -1
  549. package/es/utils/elements/Plot.js +9 -2
  550. package/es/utils/elements/Plot.js.map +1 -1
  551. package/es/utils/elements/Point.d.ts +3 -0
  552. package/es/utils/elements/Point.d.ts.map +1 -1
  553. package/es/utils/elements/Point.js +6 -1
  554. package/es/utils/elements/Point.js.map +1 -1
  555. package/es/utils/elements/Rectangle.d.ts +3 -0
  556. package/es/utils/elements/Rectangle.d.ts.map +1 -1
  557. package/es/utils/elements/Rectangle.js +6 -1
  558. package/es/utils/elements/Rectangle.js.map +1 -1
  559. package/es/utils/elements/Segment.d.ts +3 -0
  560. package/es/utils/elements/Segment.d.ts.map +1 -1
  561. package/es/utils/elements/Segment.js +8 -4
  562. package/es/utils/elements/Segment.js.map +1 -1
  563. package/es/utils/intersections.d.ts.map +1 -1
  564. package/es/utils/intersections.js +32 -35
  565. package/es/utils/intersections.js.map +1 -1
  566. package/package.json +1 -1
  567. package/src/api/PDFDocument.ts +41 -36
  568. package/src/api/PDFFont.ts +5 -3
  569. package/src/api/PDFPage.ts +10 -6
  570. package/src/api/form/PDFButton.ts +10 -8
  571. package/src/api/form/PDFCheckBox.ts +7 -2
  572. package/src/api/form/PDFDropdown.ts +9 -3
  573. package/src/api/form/PDFField.ts +5 -0
  574. package/src/api/form/PDFForm.ts +53 -34
  575. package/src/api/form/PDFOptionList.ts +9 -3
  576. package/src/api/form/PDFRadioGroup.ts +8 -3
  577. package/src/api/form/PDFSignature.ts +5 -0
  578. package/src/api/form/PDFTextField.ts +9 -3
  579. package/src/api/objects.ts +90 -3
  580. package/src/api/operators.ts +32 -28
  581. package/src/api/snapshot/DefaultDocumentSnapshot.ts +6 -0
  582. package/src/api/snapshot/DocumentSnapshot.ts +3 -0
  583. package/src/api/snapshot/IncrementalDocumentSnapshot.ts +6 -0
  584. package/src/core/PDFContext.ts +53 -39
  585. package/src/core/PDFObjectCopier.ts +6 -5
  586. package/src/core/acroform/PDFAcroButton.ts +20 -10
  587. package/src/core/acroform/PDFAcroCheckBox.ts +6 -1
  588. package/src/core/acroform/PDFAcroChoice.ts +43 -17
  589. package/src/core/acroform/PDFAcroComboBox.ts +5 -0
  590. package/src/core/acroform/PDFAcroField.ts +14 -5
  591. package/src/core/acroform/PDFAcroForm.ts +7 -3
  592. package/src/core/acroform/PDFAcroListBox.ts +5 -0
  593. package/src/core/acroform/PDFAcroNonTerminal.ts +5 -0
  594. package/src/core/acroform/PDFAcroPushButton.ts +5 -0
  595. package/src/core/acroform/PDFAcroRadioButton.ts +6 -1
  596. package/src/core/acroform/PDFAcroSignature.ts +5 -0
  597. package/src/core/acroform/PDFAcroText.ts +12 -3
  598. package/src/core/acroform/utils.ts +16 -7
  599. package/src/core/annotation/AppearanceCharacteristics.ts +23 -8
  600. package/src/core/annotation/BorderStyle.ts +2 -1
  601. package/src/core/annotation/PDFAnnotation.ts +7 -2
  602. package/src/core/annotation/PDFWidgetAnnotation.ts +13 -8
  603. package/src/core/crypto.ts +13 -5
  604. package/src/core/embedders/PDFPageEmbedder.ts +5 -4
  605. package/src/core/embedders/StandardFontEmbedder.ts +5 -0
  606. package/src/core/interactive/ViewerPreferences.ts +9 -4
  607. package/src/core/objects/PDFArray.ts +7 -2
  608. package/src/core/objects/PDFBool.ts +5 -0
  609. package/src/core/objects/PDFDict.ts +5 -0
  610. package/src/core/objects/PDFHexString.ts +5 -0
  611. package/src/core/objects/PDFInvalidObject.ts +5 -0
  612. package/src/core/objects/PDFName.ts +5 -0
  613. package/src/core/objects/PDFNull.ts +5 -0
  614. package/src/core/objects/PDFNumber.ts +5 -0
  615. package/src/core/objects/PDFObject.ts +6 -0
  616. package/src/core/objects/PDFRawStream.ts +5 -0
  617. package/src/core/objects/PDFRef.ts +5 -0
  618. package/src/core/objects/PDFStream.ts +5 -0
  619. package/src/core/objects/PDFString.ts +5 -0
  620. package/src/core/operators/PDFOperator.ts +11 -5
  621. package/src/core/parser/PDFObjectParser.ts +3 -2
  622. package/src/core/parser/PDFParser.ts +13 -8
  623. package/src/core/parser/PDFXRefStreamParser.ts +9 -4
  624. package/src/core/streams/decode.ts +10 -9
  625. package/src/core/structures/PDFCatalog.ts +5 -0
  626. package/src/core/structures/PDFContentStream.ts +5 -0
  627. package/src/core/structures/PDFObjectStream.ts +5 -0
  628. package/src/core/structures/PDFPageLeaf.ts +9 -4
  629. package/src/core/structures/PDFPageTree.ts +28 -13
  630. package/src/core/writers/PDFStreamWriter.ts +12 -12
  631. package/src/core/writers/PDFWriter.ts +22 -14
  632. package/src/utils/elements/Arc.ts +9 -4
  633. package/src/utils/elements/Circle.ts +8 -3
  634. package/src/utils/elements/Ellipse.ts +9 -4
  635. package/src/utils/elements/GraphElement.ts +3 -0
  636. package/src/utils/elements/Line.ts +12 -4
  637. package/src/utils/elements/Plot.ts +9 -2
  638. package/src/utils/elements/Point.ts +7 -2
  639. package/src/utils/elements/Rectangle.ts +8 -3
  640. package/src/utils/elements/Segment.ts +10 -6
  641. package/src/utils/intersections.ts +81 -51
  642. package/ts3.4/cjs/api/PDFDocument.d.ts +3 -0
  643. package/ts3.4/cjs/api/form/PDFButton.d.ts +3 -0
  644. package/ts3.4/cjs/api/form/PDFCheckBox.d.ts +3 -0
  645. package/ts3.4/cjs/api/form/PDFDropdown.d.ts +3 -0
  646. package/ts3.4/cjs/api/form/PDFField.d.ts +3 -0
  647. package/ts3.4/cjs/api/form/PDFOptionList.d.ts +3 -0
  648. package/ts3.4/cjs/api/form/PDFRadioGroup.d.ts +3 -0
  649. package/ts3.4/cjs/api/form/PDFSignature.d.ts +3 -0
  650. package/ts3.4/cjs/api/form/PDFTextField.d.ts +3 -0
  651. package/ts3.4/cjs/api/objects.d.ts +61 -0
  652. package/ts3.4/cjs/api/operators.d.ts +28 -24
  653. package/ts3.4/cjs/api/snapshot/DefaultDocumentSnapshot.d.ts +3 -0
  654. package/ts3.4/cjs/api/snapshot/DocumentSnapshot.d.ts +2 -0
  655. package/ts3.4/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts +3 -0
  656. package/ts3.4/cjs/core/PDFContext.d.ts +1 -1
  657. package/ts3.4/cjs/core/acroform/PDFAcroCheckBox.d.ts +3 -0
  658. package/ts3.4/cjs/core/acroform/PDFAcroComboBox.d.ts +3 -0
  659. package/ts3.4/cjs/core/acroform/PDFAcroField.d.ts +3 -0
  660. package/ts3.4/cjs/core/acroform/PDFAcroForm.d.ts +3 -0
  661. package/ts3.4/cjs/core/acroform/PDFAcroListBox.d.ts +3 -0
  662. package/ts3.4/cjs/core/acroform/PDFAcroNonTerminal.d.ts +3 -0
  663. package/ts3.4/cjs/core/acroform/PDFAcroPushButton.d.ts +3 -0
  664. package/ts3.4/cjs/core/acroform/PDFAcroRadioButton.d.ts +3 -0
  665. package/ts3.4/cjs/core/acroform/PDFAcroSignature.d.ts +3 -0
  666. package/ts3.4/cjs/core/acroform/PDFAcroText.d.ts +3 -0
  667. package/ts3.4/cjs/core/crypto.d.ts +3 -0
  668. package/ts3.4/cjs/core/embedders/StandardFontEmbedder.d.ts +3 -0
  669. package/ts3.4/cjs/core/objects/PDFArray.d.ts +3 -0
  670. package/ts3.4/cjs/core/objects/PDFBool.d.ts +3 -0
  671. package/ts3.4/cjs/core/objects/PDFDict.d.ts +3 -0
  672. package/ts3.4/cjs/core/objects/PDFHexString.d.ts +3 -0
  673. package/ts3.4/cjs/core/objects/PDFInvalidObject.d.ts +3 -0
  674. package/ts3.4/cjs/core/objects/PDFName.d.ts +3 -0
  675. package/ts3.4/cjs/core/objects/PDFNull.d.ts +3 -0
  676. package/ts3.4/cjs/core/objects/PDFNumber.d.ts +3 -0
  677. package/ts3.4/cjs/core/objects/PDFObject.d.ts +3 -0
  678. package/ts3.4/cjs/core/objects/PDFRawStream.d.ts +3 -0
  679. package/ts3.4/cjs/core/objects/PDFRef.d.ts +3 -0
  680. package/ts3.4/cjs/core/objects/PDFStream.d.ts +3 -0
  681. package/ts3.4/cjs/core/objects/PDFString.d.ts +3 -0
  682. package/ts3.4/cjs/core/structures/PDFCatalog.d.ts +3 -0
  683. package/ts3.4/cjs/core/structures/PDFContentStream.d.ts +3 -0
  684. package/ts3.4/cjs/core/structures/PDFObjectStream.d.ts +3 -0
  685. package/ts3.4/cjs/core/structures/PDFPageLeaf.d.ts +3 -0
  686. package/ts3.4/cjs/core/structures/PDFPageTree.d.ts +3 -0
  687. package/ts3.4/cjs/core/writers/PDFStreamWriter.d.ts +3 -0
  688. package/ts3.4/cjs/core/writers/PDFWriter.d.ts +3 -0
  689. package/ts3.4/cjs/utils/elements/Arc.d.ts +3 -0
  690. package/ts3.4/cjs/utils/elements/Circle.d.ts +3 -0
  691. package/ts3.4/cjs/utils/elements/Ellipse.d.ts +3 -0
  692. package/ts3.4/cjs/utils/elements/GraphElement.d.ts +2 -0
  693. package/ts3.4/cjs/utils/elements/Line.d.ts +3 -0
  694. package/ts3.4/cjs/utils/elements/Plot.d.ts +3 -0
  695. package/ts3.4/cjs/utils/elements/Point.d.ts +3 -0
  696. package/ts3.4/cjs/utils/elements/Rectangle.d.ts +3 -0
  697. package/ts3.4/cjs/utils/elements/Segment.d.ts +3 -0
  698. package/ts3.4/es/api/PDFDocument.d.ts +3 -0
  699. package/ts3.4/es/api/form/PDFButton.d.ts +3 -0
  700. package/ts3.4/es/api/form/PDFCheckBox.d.ts +3 -0
  701. package/ts3.4/es/api/form/PDFDropdown.d.ts +3 -0
  702. package/ts3.4/es/api/form/PDFField.d.ts +3 -0
  703. package/ts3.4/es/api/form/PDFOptionList.d.ts +3 -0
  704. package/ts3.4/es/api/form/PDFRadioGroup.d.ts +3 -0
  705. package/ts3.4/es/api/form/PDFSignature.d.ts +3 -0
  706. package/ts3.4/es/api/form/PDFTextField.d.ts +3 -0
  707. package/ts3.4/es/api/objects.d.ts +61 -0
  708. package/ts3.4/es/api/operators.d.ts +28 -24
  709. package/ts3.4/es/api/snapshot/DefaultDocumentSnapshot.d.ts +3 -0
  710. package/ts3.4/es/api/snapshot/DocumentSnapshot.d.ts +2 -0
  711. package/ts3.4/es/api/snapshot/IncrementalDocumentSnapshot.d.ts +3 -0
  712. package/ts3.4/es/core/PDFContext.d.ts +1 -1
  713. package/ts3.4/es/core/acroform/PDFAcroCheckBox.d.ts +3 -0
  714. package/ts3.4/es/core/acroform/PDFAcroComboBox.d.ts +3 -0
  715. package/ts3.4/es/core/acroform/PDFAcroField.d.ts +3 -0
  716. package/ts3.4/es/core/acroform/PDFAcroForm.d.ts +3 -0
  717. package/ts3.4/es/core/acroform/PDFAcroListBox.d.ts +3 -0
  718. package/ts3.4/es/core/acroform/PDFAcroNonTerminal.d.ts +3 -0
  719. package/ts3.4/es/core/acroform/PDFAcroPushButton.d.ts +3 -0
  720. package/ts3.4/es/core/acroform/PDFAcroRadioButton.d.ts +3 -0
  721. package/ts3.4/es/core/acroform/PDFAcroSignature.d.ts +3 -0
  722. package/ts3.4/es/core/acroform/PDFAcroText.d.ts +3 -0
  723. package/ts3.4/es/core/crypto.d.ts +3 -0
  724. package/ts3.4/es/core/embedders/StandardFontEmbedder.d.ts +3 -0
  725. package/ts3.4/es/core/objects/PDFArray.d.ts +3 -0
  726. package/ts3.4/es/core/objects/PDFBool.d.ts +3 -0
  727. package/ts3.4/es/core/objects/PDFDict.d.ts +3 -0
  728. package/ts3.4/es/core/objects/PDFHexString.d.ts +3 -0
  729. package/ts3.4/es/core/objects/PDFInvalidObject.d.ts +3 -0
  730. package/ts3.4/es/core/objects/PDFName.d.ts +3 -0
  731. package/ts3.4/es/core/objects/PDFNull.d.ts +3 -0
  732. package/ts3.4/es/core/objects/PDFNumber.d.ts +3 -0
  733. package/ts3.4/es/core/objects/PDFObject.d.ts +3 -0
  734. package/ts3.4/es/core/objects/PDFRawStream.d.ts +3 -0
  735. package/ts3.4/es/core/objects/PDFRef.d.ts +3 -0
  736. package/ts3.4/es/core/objects/PDFStream.d.ts +3 -0
  737. package/ts3.4/es/core/objects/PDFString.d.ts +3 -0
  738. package/ts3.4/es/core/structures/PDFCatalog.d.ts +3 -0
  739. package/ts3.4/es/core/structures/PDFContentStream.d.ts +3 -0
  740. package/ts3.4/es/core/structures/PDFObjectStream.d.ts +3 -0
  741. package/ts3.4/es/core/structures/PDFPageLeaf.d.ts +3 -0
  742. package/ts3.4/es/core/structures/PDFPageTree.d.ts +3 -0
  743. package/ts3.4/es/core/writers/PDFStreamWriter.d.ts +3 -0
  744. package/ts3.4/es/core/writers/PDFWriter.d.ts +3 -0
  745. package/ts3.4/es/utils/elements/Arc.d.ts +3 -0
  746. package/ts3.4/es/utils/elements/Circle.d.ts +3 -0
  747. package/ts3.4/es/utils/elements/Ellipse.d.ts +3 -0
  748. package/ts3.4/es/utils/elements/GraphElement.d.ts +2 -0
  749. package/ts3.4/es/utils/elements/Line.d.ts +3 -0
  750. package/ts3.4/es/utils/elements/Plot.d.ts +3 -0
  751. package/ts3.4/es/utils/elements/Point.d.ts +3 -0
  752. package/ts3.4/es/utils/elements/Rectangle.d.ts +3 -0
  753. package/ts3.4/es/utils/elements/Segment.d.ts +3 -0
@@ -42,6 +42,7 @@ import {
42
42
  PDFWidgetAnnotation,
43
43
  } from '../../core';
44
44
  import { assertIs, Cache, assertOrUndefined } from '../../utils';
45
+ import { isPDFInstance, PDFClasses } from '../objects';
45
46
 
46
47
  export interface FlattenOptions {
47
48
  updateFieldAppearances: boolean;
@@ -202,7 +203,7 @@ export default class PDFForm {
202
203
  getButton(name: string): PDFButton {
203
204
  assertIs(name, 'name', ['string']);
204
205
  const field = this.getField(name);
205
- if (field instanceof PDFButton) return field;
206
+ if (isPDFInstance(field, PDFClasses.PDFButton)) return field as PDFButton;
206
207
  throw new UnexpectedFieldTypeError(name, PDFButton, field);
207
208
  }
208
209
 
@@ -222,7 +223,8 @@ export default class PDFForm {
222
223
  getCheckBox(name: string): PDFCheckBox {
223
224
  assertIs(name, 'name', ['string']);
224
225
  const field = this.getField(name);
225
- if (field instanceof PDFCheckBox) return field;
226
+ if (isPDFInstance(field, PDFClasses.PDFCheckBox))
227
+ return field as PDFCheckBox;
226
228
  throw new UnexpectedFieldTypeError(name, PDFCheckBox, field);
227
229
  }
228
230
 
@@ -243,7 +245,8 @@ export default class PDFForm {
243
245
  getDropdown(name: string): PDFDropdown {
244
246
  assertIs(name, 'name', ['string']);
245
247
  const field = this.getField(name);
246
- if (field instanceof PDFDropdown) return field;
248
+ if (isPDFInstance(field, PDFClasses.PDFDropdown))
249
+ return field as PDFDropdown;
247
250
  throw new UnexpectedFieldTypeError(name, PDFDropdown, field);
248
251
  }
249
252
 
@@ -264,7 +267,8 @@ export default class PDFForm {
264
267
  getOptionList(name: string): PDFOptionList {
265
268
  assertIs(name, 'name', ['string']);
266
269
  const field = this.getField(name);
267
- if (field instanceof PDFOptionList) return field;
270
+ if (isPDFInstance(field, PDFClasses.PDFOptionList))
271
+ return field as PDFOptionList;
268
272
  throw new UnexpectedFieldTypeError(name, PDFOptionList, field);
269
273
  }
270
274
 
@@ -285,7 +289,8 @@ export default class PDFForm {
285
289
  getRadioGroup(name: string): PDFRadioGroup {
286
290
  assertIs(name, 'name', ['string']);
287
291
  const field = this.getField(name);
288
- if (field instanceof PDFRadioGroup) return field;
292
+ if (isPDFInstance(field, PDFClasses.PDFRadioGroup))
293
+ return field as PDFRadioGroup;
289
294
  throw new UnexpectedFieldTypeError(name, PDFRadioGroup, field);
290
295
  }
291
296
 
@@ -304,7 +309,8 @@ export default class PDFForm {
304
309
  getSignature(name: string): PDFSignature {
305
310
  assertIs(name, 'name', ['string']);
306
311
  const field = this.getField(name);
307
- if (field instanceof PDFSignature) return field;
312
+ if (isPDFInstance(field, PDFClasses.PDFSignature))
313
+ return field as PDFSignature;
308
314
  throw new UnexpectedFieldTypeError(name, PDFSignature, field);
309
315
  }
310
316
 
@@ -324,7 +330,8 @@ export default class PDFForm {
324
330
  getTextField(name: string): PDFTextField {
325
331
  assertIs(name, 'name', ['string']);
326
332
  const field = this.getField(name);
327
- if (field instanceof PDFTextField) return field;
333
+ if (isPDFInstance(field, PDFClasses.PDFTextField))
334
+ return field as PDFTextField;
328
335
  throw new UnexpectedFieldTypeError(name, PDFTextField, field);
329
336
  }
330
337
 
@@ -606,8 +613,8 @@ export default class PDFForm {
606
613
  const kidsCount = fieldKids.size();
607
614
  for (let childIndex = 0; childIndex < kidsCount; childIndex++) {
608
615
  const child = fieldKids.get(childIndex);
609
- if (child instanceof PDFRef) {
610
- this.doc.context.delete(child);
616
+ if (isPDFInstance(child, PDFClasses.PDFRef)) {
617
+ this.doc.context.delete(child as PDFRef);
611
618
  }
612
619
  }
613
620
  this.doc.context.delete(field.ref);
@@ -731,26 +738,33 @@ export default class PDFForm {
731
738
  ): PDFRef {
732
739
  let refOrDict = widget.getNormalAppearance();
733
740
 
734
- if (field instanceof PDFCheckBox || field instanceof PDFRadioGroup) {
735
- if (refOrDict instanceof PDFRef) {
741
+ if (
742
+ isPDFInstance(field, PDFClasses.PDFCheckBox) ||
743
+ isPDFInstance(field, PDFClasses.PDFRadioGroup)
744
+ ) {
745
+ if (isPDFInstance(refOrDict, PDFClasses.PDFRef)) {
736
746
  refOrDict = this.doc.context.lookup(refOrDict, PDFDict);
737
747
  }
738
- if (refOrDict instanceof PDFDict) {
739
- const value = field.acroField.getValue();
740
- const ref = refOrDict.get(value) ?? refOrDict.get(PDFName.of('Off'));
741
-
742
- if (ref instanceof PDFRef) {
743
- refOrDict = ref;
748
+ if (isPDFInstance(refOrDict, PDFClasses.PDFDict)) {
749
+ const value = (
750
+ field as PDFCheckBox | PDFRadioGroup
751
+ ).acroField.getValue();
752
+ const ref =
753
+ (refOrDict as PDFDict).get(value) ??
754
+ (refOrDict as PDFDict).get(PDFName.of('Off'));
755
+
756
+ if (isPDFInstance(ref, PDFClasses.PDFRef)) {
757
+ refOrDict = ref as PDFRef;
744
758
  }
745
759
  }
746
760
  }
747
761
 
748
- if (!(refOrDict instanceof PDFRef)) {
762
+ if (!isPDFInstance(refOrDict, PDFClasses.PDFRef)) {
749
763
  const name = field.getName();
750
764
  throw new Error(`Failed to extract appearance ref for: ${name}`);
751
765
  }
752
766
 
753
- return refOrDict;
767
+ return refOrDict as PDFRef;
754
768
  }
755
769
 
756
770
  private findOrCreateNonTerminals(partialNames: string[]) {
@@ -781,15 +795,15 @@ export default class PDFForm {
781
795
  partialName: string,
782
796
  parent: PDFAcroForm | PDFAcroNonTerminal,
783
797
  ): [PDFAcroNonTerminal, PDFRef] | undefined {
784
- const fields =
785
- parent instanceof PDFAcroForm
786
- ? this.acroForm.getFields()
787
- : createPDFAcroFields(parent.Kids());
798
+ const fields = isPDFInstance(parent, PDFClasses.PDFAcroForm)
799
+ ? this.acroForm.getFields()
800
+ : createPDFAcroFields((parent as PDFAcroNonTerminal).Kids());
788
801
 
789
802
  for (let idx = 0, len = fields.length; idx < len; idx++) {
790
803
  const [field, ref] = fields[idx];
791
804
  if (field.getPartialName() === partialName) {
792
- if (field instanceof PDFAcroNonTerminal) return [field, ref];
805
+ if (isPDFInstance(field, PDFClasses.PDFAcroNonTerminal))
806
+ return [field as PDFAcroNonTerminal, ref];
793
807
  throw new FieldAlreadyExistsError(partialName);
794
808
  }
795
809
  }
@@ -806,16 +820,21 @@ const convertToPDFField = (
806
820
  ref: PDFRef,
807
821
  doc: PDFDocument,
808
822
  ): PDFField | undefined => {
809
- if (field instanceof PDFAcroPushButton) return PDFButton.of(field, ref, doc);
810
- if (field instanceof PDFAcroCheckBox) return PDFCheckBox.of(field, ref, doc);
811
- if (field instanceof PDFAcroComboBox) return PDFDropdown.of(field, ref, doc);
812
- if (field instanceof PDFAcroListBox) return PDFOptionList.of(field, ref, doc);
813
- if (field instanceof PDFAcroText) return PDFTextField.of(field, ref, doc);
814
- if (field instanceof PDFAcroRadioButton) {
815
- return PDFRadioGroup.of(field, ref, doc);
816
- }
817
- if (field instanceof PDFAcroSignature) {
818
- return PDFSignature.of(field, ref, doc);
823
+ if (isPDFInstance(field, PDFClasses.PDFAcroPushButton))
824
+ return PDFButton.of(field as PDFAcroPushButton, ref, doc);
825
+ if (isPDFInstance(field, PDFClasses.PDFAcroCheckBox))
826
+ return PDFCheckBox.of(field as PDFAcroCheckBox, ref, doc);
827
+ if (isPDFInstance(field, PDFClasses.PDFAcroComboBox))
828
+ return PDFDropdown.of(field as PDFAcroComboBox, ref, doc);
829
+ if (isPDFInstance(field, PDFClasses.PDFAcroListBox))
830
+ return PDFOptionList.of(field as PDFAcroListBox, ref, doc);
831
+ if (isPDFInstance(field, PDFClasses.PDFAcroText))
832
+ return PDFTextField.of(field as PDFAcroText, ref, doc);
833
+ if (isPDFInstance(field, PDFClasses.PDFAcroRadioButton)) {
834
+ return PDFRadioGroup.of(field as PDFAcroRadioButton, ref, doc);
835
+ }
836
+ if (isPDFInstance(field, PDFClasses.PDFAcroSignature)) {
837
+ return PDFSignature.of(field as PDFAcroSignature, ref, doc);
819
838
  }
820
839
  return undefined;
821
840
  };
@@ -17,7 +17,6 @@ import {
17
17
  PDFRef,
18
18
  PDFHexString,
19
19
  PDFString,
20
- PDFStream,
21
20
  PDFAcroListBox,
22
21
  AcroChoiceFlags,
23
22
  PDFWidgetAnnotation,
@@ -28,6 +27,7 @@ import {
28
27
  assertOrUndefined,
29
28
  assertPositive,
30
29
  } from '../../utils';
30
+ import { isPDFInstance, PDFClasses } from '../objects';
31
31
 
32
32
  /**
33
33
  * Represents an option list field of a [[PDFForm]].
@@ -41,6 +41,10 @@ import {
41
41
  * more than one option (see [[PDFOptionList.isMultiselect]]).
42
42
  */
43
43
  export default class PDFOptionList extends PDFField {
44
+ static className = () => PDFClasses.PDFOptionList;
45
+ myClass(): PDFClasses {
46
+ return PDFClasses.PDFOptionList;
47
+ }
44
48
  /**
45
49
  * > **NOTE:** You probably don't want to call this method directly. Instead,
46
50
  * > consider using the [[PDFForm.getOptionList]] method, which will create
@@ -498,8 +502,10 @@ export default class PDFOptionList extends PDFField {
498
502
  const widgets = this.acroField.getWidgets();
499
503
  for (let idx = 0, len = widgets.length; idx < len; idx++) {
500
504
  const widget = widgets[idx];
501
- const hasAppearances =
502
- widget.getAppearances()?.normal instanceof PDFStream;
505
+ const hasAppearances = isPDFInstance(
506
+ widget.getAppearances()?.normal,
507
+ PDFClasses.PDFStream,
508
+ );
503
509
  if (!hasAppearances) return true;
504
510
  }
505
511
 
@@ -22,6 +22,7 @@ import {
22
22
  AcroButtonFlags,
23
23
  } from '../../core';
24
24
  import { assertIs, assertOrUndefined, assertIsOneOf } from '../../utils';
25
+ import { isPDFInstance, PDFClasses } from '../objects';
25
26
 
26
27
  /**
27
28
  * Represents a radio group field of a [[PDFForm]].
@@ -41,6 +42,10 @@ import { assertIs, assertOrUndefined, assertIsOneOf } from '../../utils';
41
42
  * [[PDFRadioGroup.isMutuallyExclusive]]).
42
43
  */
43
44
  export default class PDFRadioGroup extends PDFField {
45
+ static className = () => PDFClasses.PDFRadioGroup;
46
+ myClass(): PDFClasses {
47
+ return PDFClasses.PDFRadioGroup;
48
+ }
44
49
  /**
45
50
  * > **NOTE:** You probably don't want to call this method directly. Instead,
46
51
  * > consider using the [[PDFForm.getOptionList]] method, which will create an
@@ -405,8 +410,8 @@ export default class PDFRadioGroup extends PDFField {
405
410
  const state = widget.getAppearanceState();
406
411
  const normal = widget.getAppearances()?.normal;
407
412
 
408
- if (!(normal instanceof PDFDict)) return true;
409
- if (state && !normal.has(state)) return true;
413
+ if (!isPDFInstance(normal, PDFClasses.PDFDict)) return true;
414
+ if (state && !(normal as PDFDict).has(state)) return true;
410
415
  }
411
416
 
412
417
  return false;
@@ -426,7 +431,7 @@ export default class PDFRadioGroup extends PDFField {
426
431
 
427
432
  // rg.updateAppearances((field: any, widget: any) => {
428
433
  // assert(field === rg);
429
- // assert(widget instanceof PDFWidgetAnnotation);
434
+ // assert(isPDFInstance(widget, PDFClasses.PDFWidgetAnnotation));
430
435
  // return { on: [...rectangle, ...circle], off: [...rectangle, ...circle] };
431
436
  // });
432
437
 
@@ -3,6 +3,7 @@ import PDFField from './PDFField';
3
3
 
4
4
  import { PDFRef, PDFAcroSignature } from '../../core';
5
5
  import { assertIs } from '../../utils';
6
+ import { PDFClasses } from '../objects';
6
7
 
7
8
  /**
8
9
  * Represents a signature field of a [[PDFForm]].
@@ -12,6 +13,10 @@ import { assertIs } from '../../utils';
12
13
  * reading the contents of existing digital signatures.
13
14
  */
14
15
  export default class PDFSignature extends PDFField {
16
+ static className = () => PDFClasses.PDFSignature;
17
+ myClass(): PDFClasses {
18
+ return PDFClasses.PDFSignature;
19
+ }
15
20
  /**
16
21
  * > **NOTE:** You probably don't want to call this method directly. Instead,
17
22
  * > consider using the [[PDFForm.getSignature]] method, which will create an
@@ -24,7 +24,6 @@ import { TextAlignment } from '../text/alignment';
24
24
  import {
25
25
  PDFHexString,
26
26
  PDFRef,
27
- PDFStream,
28
27
  PDFAcroText,
29
28
  AcroTextFlags,
30
29
  PDFWidgetAnnotation,
@@ -36,6 +35,7 @@ import {
36
35
  assertPositive,
37
36
  assertRangeOrUndefined,
38
37
  } from '../../utils';
38
+ import { isPDFInstance, PDFClasses } from '../objects';
39
39
 
40
40
  /**
41
41
  * Represents a text field of a [[PDFForm]].
@@ -47,6 +47,10 @@ import {
47
47
  * to be entered (see [[PDFTextField.isMultiline]]).
48
48
  */
49
49
  export default class PDFTextField extends PDFField {
50
+ static className = () => PDFClasses.PDFTextField;
51
+ myClass(): PDFClasses {
52
+ return PDFClasses.PDFTextField;
53
+ }
50
54
  /**
51
55
  * > **NOTE:** You probably don't want to call this method directly. Instead,
52
56
  * > consider using the [[PDFForm.getTextField]] method, which will create an
@@ -760,8 +764,10 @@ export default class PDFTextField extends PDFField {
760
764
  const widgets = this.acroField.getWidgets();
761
765
  for (let idx = 0, len = widgets.length; idx < len; idx++) {
762
766
  const widget = widgets[idx];
763
- const hasAppearances =
764
- widget.getAppearances()?.normal instanceof PDFStream;
767
+ const hasAppearances = isPDFInstance(
768
+ widget.getAppearances()?.normal,
769
+ PDFClasses.PDFStream,
770
+ );
765
771
  if (!hasAppearances) return true;
766
772
  }
767
773
 
@@ -1,10 +1,97 @@
1
1
  import { PDFName, PDFNumber } from '../core';
2
2
 
3
3
  export const asPDFName = (name: string | PDFName) =>
4
- name instanceof PDFName ? name : PDFName.of(name);
4
+ typeof name !== 'string' ? name : PDFName.of(name);
5
5
 
6
6
  export const asPDFNumber = (num: number | PDFNumber) =>
7
- num instanceof PDFNumber ? num : PDFNumber.of(num);
7
+ typeof num !== 'number' ? num : PDFNumber.of(num);
8
8
 
9
9
  export const asNumber = (num: number | PDFNumber) =>
10
- num instanceof PDFNumber ? num.asNumber() : num;
10
+ typeof num !== 'number' ? num.asNumber() : num;
11
+
12
+ export enum PDFClasses {
13
+ PDFDict = 'PDFDict',
14
+ PDFObject = 'PDFObject',
15
+ PDFNumber = 'PDFNumber',
16
+ PDFName = 'PDFName',
17
+ PDFStream = 'PDFStream',
18
+ PDFWriter = 'PDFWriter',
19
+ PDFStreamWriter = 'PDFStreamWriter',
20
+ PDFString = 'PDFString',
21
+ PDFHexString = 'PDFHexString',
22
+ PDFDocument = 'PDFDocument',
23
+ PDFPageLeaf = 'PDFPageLeaf',
24
+ StandardFontEmbedder = 'StandardFontEmbedder',
25
+ PDFArray = 'PDFArray',
26
+ PDFButton = 'PDFButton',
27
+ PDFCheckBox = 'PDFCheckBox',
28
+ PDFDropdown = 'PDFDropdown',
29
+ PDFOptionList = 'PDFOptionList',
30
+ PDFRadioGroup = 'PDFRadioGroup',
31
+ PDFSignature = 'PDFSignature',
32
+ PDFTextField = 'PDFTextField',
33
+ PDFField = 'PDFField',
34
+ PDFRef = 'PDFRef',
35
+ PDFAcroForm = 'PDFAcroForm',
36
+ PDFAcroField = 'PDFAcroField',
37
+ PDFAcroNonTerminal = 'PDFAcroNonTerminal',
38
+ PDFAcroPushButton = 'PDFAcroPushButton',
39
+ PDFAcroCheckBox = 'PDFAcroCheckBox',
40
+ PDFAcroComboBox = 'PDFAcroComboBox',
41
+ PDFAcroListBox = 'PDFAcroListBox',
42
+ PDFAcroText = 'PDFAcroText',
43
+ PDFAcroRadioButton = 'PDFAcroRadioButton',
44
+ PDFAcroSignature = 'PDFAcroSignature',
45
+ AESBaseCipher = 'AESBaseCipher',
46
+ PDFBool = 'PDFBool',
47
+ PDFRawStream = 'PDFRawStream',
48
+ PDFContentStream = 'PDFContentStream',
49
+ Segment = 'Segment',
50
+ Rectangle = 'Rectangle',
51
+ Arc = 'Arc',
52
+ Circle = 'Circle',
53
+ Ellipse = 'Ellipse',
54
+ Line = 'Line',
55
+ Plot = 'Plot',
56
+ Point = 'Point',
57
+ PDFPageTree = 'PDFPageTree',
58
+ PDFInvalidObject = 'PDFInvalidObject',
59
+ PDFCatalog = 'PDFCatalog',
60
+ DefaultDocumentSnapshot = 'DefaultDocumentSnapshot',
61
+ PDFObjectStream = 'PDFObjectStream',
62
+ IncrementalDocumentSnapshot = 'IncrementalDocumentSnapshot',
63
+ PDFNull = 'PDFNull',
64
+ }
65
+
66
+ /**
67
+ * Replaces instanceof operator by a "secure function" that uses clases internal identification.
68
+ * This allows complex environments, where objects comes from different library instances, to work as expected.
69
+ * @param {any} object Object to which compare the classname.
70
+ * @param {PDFClasses | typeof PDFClass} className Class name object is expected to be an instanca (or subclass instance)
71
+ * @returns {boolean}
72
+ */
73
+ export const isPDFInstance = (object: any, className: PDFClasses): boolean => {
74
+ if (!object) return false;
75
+ if (!object.myClass) return false; // it's not an object from this library
76
+ if (typeof className === 'function') {
77
+ // is a constructor (PDFnNumber, PDFDict, etc)
78
+ try {
79
+ return isPDFInstance(object, (className as any).className());
80
+ } catch (error) {
81
+ return false;
82
+ }
83
+ }
84
+ if (object.myClass() === className) return true;
85
+ // not a perfect match, check superclasses
86
+ let proto = Object.getPrototypeOf(object);
87
+ while (proto && proto.constructor.className) {
88
+ try {
89
+ if (proto.constructor.className() === className) return true;
90
+ proto = Object.getPrototypeOf(proto);
91
+ } catch (error) {
92
+ return false;
93
+ }
94
+ }
95
+ // not the class, nor a subclass
96
+ return false;
97
+ };
@@ -1,3 +1,35 @@
1
+ /** =============== There is a circular dependency ===============
2
+ * To avoid inclusion "undefined" elementos, enums are declared before
3
+ * imports.
4
+ */
5
+ export enum LineCapStyle {
6
+ Butt = 0,
7
+ Round = 1,
8
+ Projecting = 2,
9
+ }
10
+
11
+ export enum LineJoinStyle {
12
+ Miter = 0,
13
+ Round = 1,
14
+ Bevel = 2,
15
+ }
16
+
17
+ export enum FillRule {
18
+ NonZero = 'f',
19
+ EvenOdd = 'f*',
20
+ }
21
+
22
+ export enum TextRenderingMode {
23
+ Fill = 0,
24
+ Outline = 1,
25
+ FillAndOutline = 2,
26
+ Invisible = 3,
27
+ FillAndClip = 4,
28
+ OutlineAndClip = 5,
29
+ FillAndOutlineAndClip = 6,
30
+ Clip = 7,
31
+ }
32
+
1
33
  import { asNumber, asPDFName, asPDFNumber } from './objects';
2
34
  import { degreesToRadians } from './rotations';
3
35
  import {
@@ -86,21 +118,9 @@ export const setDashPattern = (
86
118
 
87
119
  export const restoreDashPattern = () => setDashPattern([], 0);
88
120
 
89
- export enum LineCapStyle {
90
- Butt = 0,
91
- Round = 1,
92
- Projecting = 2,
93
- }
94
-
95
121
  export const setLineCap = (style: LineCapStyle) =>
96
122
  PDFOperator.of(Ops.SetLineCapStyle, [asPDFNumber(style)]);
97
123
 
98
- export enum LineJoinStyle {
99
- Miter = 0,
100
- Round = 1,
101
- Bevel = 2,
102
- }
103
-
104
124
  export const setLineJoin = (style: LineJoinStyle) =>
105
125
  PDFOperator.of(Ops.SetLineJoinStyle, [asPDFNumber(style)]);
106
126
 
@@ -185,11 +205,6 @@ export const square = (xPos: number, yPos: number, size: number) =>
185
205
 
186
206
  export const stroke = () => PDFOperator.of(Ops.StrokePath);
187
207
 
188
- export enum FillRule {
189
- NonZero = 'f',
190
- EvenOdd = 'f*',
191
- }
192
-
193
208
  export const fill = () => PDFOperator.of(Ops.FillNonZero);
194
209
 
195
210
  export const fillEvenOdd = () => PDFOperator.of(Ops.FillEvenOdd);
@@ -236,17 +251,6 @@ export const setLineHeight = (lineHeight: number | PDFNumber) =>
236
251
  export const setTextRise = (rise: number | PDFNumber) =>
237
252
  PDFOperator.of(Ops.SetTextRise, [asPDFNumber(rise)]);
238
253
 
239
- export enum TextRenderingMode {
240
- Fill = 0,
241
- Outline = 1,
242
- FillAndOutline = 2,
243
- Invisible = 3,
244
- FillAndClip = 4,
245
- OutlineAndClip = 5,
246
- FillAndOutlineAndClip = 6,
247
- Clip = 7,
248
- }
249
-
250
254
  export const setTextRenderingMode = (mode: TextRenderingMode) =>
251
255
  PDFOperator.of(Ops.SetTextRenderingMode, [asPDFNumber(mode)]);
252
256
 
@@ -1,7 +1,13 @@
1
1
  import type { PDFObject, PDFRef } from '../../core';
2
+ import { PDFClasses } from '../objects';
2
3
  import type { DocumentSnapshot } from './DocumentSnapshot';
3
4
 
4
5
  export class DefaultDocumentSnapshot implements DocumentSnapshot {
6
+ static className = () => PDFClasses.DefaultDocumentSnapshot;
7
+ myClass(): PDFClasses {
8
+ return PDFClasses.DefaultDocumentSnapshot;
9
+ }
10
+
5
11
  pdfSize = 0;
6
12
  prevStartXRef = 0;
7
13
  deletedCount = 0;
@@ -1,10 +1,13 @@
1
1
  import type { PDFObject, PDFRef } from '../../core';
2
+ import { PDFClasses } from '../objects';
2
3
 
3
4
  export interface DocumentSnapshot {
4
5
  pdfSize: number;
5
6
  prevStartXRef: number;
6
7
  deletedCount: number;
7
8
 
9
+ myClass: () => PDFClasses;
10
+
8
11
  shouldSave: (objectNumber: number) => boolean;
9
12
 
10
13
  markRefForSave: (ref: PDFRef) => void;
@@ -1,4 +1,5 @@
1
1
  import type { PDFContext, PDFObject, PDFRef } from '../../core';
2
+ import { PDFClasses } from '../objects';
2
3
  import type { DocumentSnapshot } from './DocumentSnapshot';
3
4
 
4
5
  export class IncrementalDocumentSnapshot implements DocumentSnapshot {
@@ -26,6 +27,11 @@ export class IncrementalDocumentSnapshot implements DocumentSnapshot {
26
27
  this.context = context;
27
28
  }
28
29
 
30
+ static className = () => PDFClasses.IncrementalDocumentSnapshot;
31
+ myClass(): PDFClasses {
32
+ return PDFClasses.IncrementalDocumentSnapshot;
33
+ }
34
+
29
35
  shouldSave(objectNumber: number): boolean {
30
36
  if (objectNumber > this.lastObjectNumber) return true;
31
37
  return this.changedObjects.has(objectNumber);