@pdfme/pdf-lib 5.4.0-dev.63 → 5.4.0-dev.66

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 (487) hide show
  1. package/dist/cjs/src/api/PDFDocument.js +3 -11
  2. package/dist/cjs/src/api/PDFDocument.js.map +1 -1
  3. package/dist/cjs/src/api/PDFEmbeddedFile.js.map +1 -1
  4. package/dist/cjs/src/api/PDFEmbeddedPage.js.map +1 -1
  5. package/dist/cjs/src/api/PDFFont.js.map +1 -1
  6. package/dist/cjs/src/api/PDFJavaScript.js.map +1 -1
  7. package/dist/cjs/src/api/PDFPage.js +16 -42
  8. package/dist/cjs/src/api/PDFPage.js.map +1 -1
  9. package/dist/cjs/src/api/colors.js.map +1 -1
  10. package/dist/cjs/src/api/errors.js.map +1 -1
  11. package/dist/cjs/src/api/form/PDFButton.js +1 -3
  12. package/dist/cjs/src/api/form/PDFButton.js.map +1 -1
  13. package/dist/cjs/src/api/form/PDFCheckBox.js +1 -3
  14. package/dist/cjs/src/api/form/PDFCheckBox.js.map +1 -1
  15. package/dist/cjs/src/api/form/PDFDropdown.js +1 -3
  16. package/dist/cjs/src/api/form/PDFDropdown.js.map +1 -1
  17. package/dist/cjs/src/api/form/PDFField.js +4 -10
  18. package/dist/cjs/src/api/form/PDFField.js.map +1 -1
  19. package/dist/cjs/src/api/form/PDFForm.js +1 -3
  20. package/dist/cjs/src/api/form/PDFForm.js.map +1 -1
  21. package/dist/cjs/src/api/form/PDFOptionList.js.map +1 -1
  22. package/dist/cjs/src/api/form/PDFRadioGroup.js +1 -3
  23. package/dist/cjs/src/api/form/PDFRadioGroup.js.map +1 -1
  24. package/dist/cjs/src/api/form/PDFSignature.js +1 -3
  25. package/dist/cjs/src/api/form/PDFSignature.js.map +1 -1
  26. package/dist/cjs/src/api/form/PDFTextField.js.map +1 -1
  27. package/dist/cjs/src/api/form/appearances.js.map +1 -1
  28. package/dist/cjs/src/api/operations.js.map +1 -1
  29. package/dist/cjs/src/api/operators.js +1 -5
  30. package/dist/cjs/src/api/operators.js.map +1 -1
  31. package/dist/cjs/src/api/rotations.js.map +1 -1
  32. package/dist/cjs/src/api/svg.js +25 -23
  33. package/dist/cjs/src/api/svg.js.map +1 -1
  34. package/dist/cjs/src/api/svgPath.js +1 -2
  35. package/dist/cjs/src/api/svgPath.js.map +1 -1
  36. package/dist/cjs/src/api/text/layout.js.map +1 -1
  37. package/dist/cjs/src/core/PDFContext.js.map +1 -1
  38. package/dist/cjs/src/core/PDFObjectCopier.js.map +1 -1
  39. package/dist/cjs/src/core/acroform/PDFAcroButton.js +1 -2
  40. package/dist/cjs/src/core/acroform/PDFAcroButton.js.map +1 -1
  41. package/dist/cjs/src/core/acroform/PDFAcroCheckBox.js.map +1 -1
  42. package/dist/cjs/src/core/acroform/PDFAcroChoice.js.map +1 -1
  43. package/dist/cjs/src/core/acroform/PDFAcroComboBox.js.map +1 -1
  44. package/dist/cjs/src/core/acroform/PDFAcroField.js.map +1 -1
  45. package/dist/cjs/src/core/acroform/PDFAcroForm.js.map +1 -1
  46. package/dist/cjs/src/core/acroform/PDFAcroListBox.js.map +1 -1
  47. package/dist/cjs/src/core/acroform/PDFAcroNonTerminal.js.map +1 -1
  48. package/dist/cjs/src/core/acroform/PDFAcroPushButton.js.map +1 -1
  49. package/dist/cjs/src/core/acroform/PDFAcroRadioButton.js.map +1 -1
  50. package/dist/cjs/src/core/acroform/PDFAcroSignature.js.map +1 -1
  51. package/dist/cjs/src/core/acroform/PDFAcroTerminal.js.map +1 -1
  52. package/dist/cjs/src/core/acroform/utils.js.map +1 -1
  53. package/dist/cjs/src/core/annotation/PDFWidgetAnnotation.js.map +1 -1
  54. package/dist/cjs/src/core/crypto.js +122 -179
  55. package/dist/cjs/src/core/crypto.js.map +1 -1
  56. package/dist/cjs/src/core/document/PDFCrossRefSection.js.map +1 -1
  57. package/dist/cjs/src/core/document/PDFHeader.js.map +1 -1
  58. package/dist/cjs/src/core/document/PDFTrailer.js.map +1 -1
  59. package/dist/cjs/src/core/embedders/CMap.js.map +1 -1
  60. package/dist/cjs/src/core/embedders/CustomFontEmbedder.js +1 -2
  61. package/dist/cjs/src/core/embedders/CustomFontEmbedder.js.map +1 -1
  62. package/dist/cjs/src/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
  63. package/dist/cjs/src/core/embedders/FileEmbedder.js +3 -7
  64. package/dist/cjs/src/core/embedders/FileEmbedder.js.map +1 -1
  65. package/dist/cjs/src/core/embedders/JpegEmbedder.js +1 -3
  66. package/dist/cjs/src/core/embedders/JpegEmbedder.js.map +1 -1
  67. package/dist/cjs/src/core/embedders/PDFPageEmbedder.js +11 -7
  68. package/dist/cjs/src/core/embedders/PDFPageEmbedder.js.map +1 -1
  69. package/dist/cjs/src/core/embedders/StandardFontEmbedder.js.map +1 -1
  70. package/dist/cjs/src/core/errors.js +1 -3
  71. package/dist/cjs/src/core/errors.js.map +1 -1
  72. package/dist/cjs/src/core/index.js.map +1 -1
  73. package/dist/cjs/src/core/interactive/ViewerPreferences.js.map +1 -1
  74. package/dist/cjs/src/core/objects/PDFArray.js.map +1 -1
  75. package/dist/cjs/src/core/objects/PDFDict.js.map +1 -1
  76. package/dist/cjs/src/core/objects/PDFName.js +1 -3
  77. package/dist/cjs/src/core/objects/PDFName.js.map +1 -1
  78. package/dist/cjs/src/core/objects/PDFRawStream.js.map +1 -1
  79. package/dist/cjs/src/core/objects/PDFRef.js.map +1 -1
  80. package/dist/cjs/src/core/objects/PDFStream.js.map +1 -1
  81. package/dist/cjs/src/core/operators/PDFOperator.js.map +1 -1
  82. package/dist/cjs/src/core/parser/PDFObjectParser.js +1 -2
  83. package/dist/cjs/src/core/parser/PDFObjectParser.js.map +1 -1
  84. package/dist/cjs/src/core/parser/PDFObjectStreamParser.js.map +1 -1
  85. package/dist/cjs/src/core/parser/PDFParser.js +1 -2
  86. package/dist/cjs/src/core/parser/PDFParser.js.map +1 -1
  87. package/dist/cjs/src/core/parser/PDFXRefStreamParser.js.map +1 -1
  88. package/dist/cjs/src/core/streams/Ascii85Stream.js.map +1 -1
  89. package/dist/cjs/src/core/streams/DecryptStream.js.map +1 -1
  90. package/dist/cjs/src/core/streams/FlateStream.js.map +1 -1
  91. package/dist/cjs/src/core/streams/LZWStream.js.map +1 -1
  92. package/dist/cjs/src/core/streams/Stream.js.map +1 -1
  93. package/dist/cjs/src/core/streams/decode.js +1 -1
  94. package/dist/cjs/src/core/streams/decode.js.map +1 -1
  95. package/dist/cjs/src/core/structures/PDFCatalog.js.map +1 -1
  96. package/dist/cjs/src/core/structures/PDFCrossRefStream.js.map +1 -1
  97. package/dist/cjs/src/core/structures/PDFFlateStream.js.map +1 -1
  98. package/dist/cjs/src/core/structures/PDFObjectStream.js +1 -4
  99. package/dist/cjs/src/core/structures/PDFObjectStream.js.map +1 -1
  100. package/dist/cjs/src/core/structures/PDFPageLeaf.js +1 -6
  101. package/dist/cjs/src/core/structures/PDFPageLeaf.js.map +1 -1
  102. package/dist/cjs/src/core/structures/PDFPageTree.js +1 -1
  103. package/dist/cjs/src/core/structures/PDFPageTree.js.map +1 -1
  104. package/dist/cjs/src/core/syntax/Keywords.js +4 -30
  105. package/dist/cjs/src/core/syntax/Keywords.js.map +1 -1
  106. package/dist/cjs/src/core/writers/PDFStreamWriter.js.map +1 -1
  107. package/dist/cjs/src/core/writers/PDFWriter.js.map +1 -1
  108. package/dist/cjs/src/types/matrix.js.map +1 -1
  109. package/dist/cjs/src/utils/arrays.js +2 -5
  110. package/dist/cjs/src/utils/arrays.js.map +1 -1
  111. package/dist/cjs/src/utils/base64.js.map +1 -1
  112. package/dist/cjs/src/utils/elements/Arc.js +3 -6
  113. package/dist/cjs/src/utils/elements/Arc.js.map +1 -1
  114. package/dist/cjs/src/utils/elements/Circle.js.map +1 -1
  115. package/dist/cjs/src/utils/elements/Ellipse.js +1 -1
  116. package/dist/cjs/src/utils/elements/Ellipse.js.map +1 -1
  117. package/dist/cjs/src/utils/elements/Line.js +1 -3
  118. package/dist/cjs/src/utils/elements/Line.js.map +1 -1
  119. package/dist/cjs/src/utils/elements/Segment.js +1 -2
  120. package/dist/cjs/src/utils/elements/Segment.js.map +1 -1
  121. package/dist/cjs/src/utils/intersections.js.map +1 -1
  122. package/dist/cjs/src/utils/maths.js.map +1 -1
  123. package/dist/cjs/src/utils/strings.js.map +1 -1
  124. package/dist/cjs/src/utils/unicode.js.map +1 -1
  125. package/dist/cjs/src/utils/validators.js.map +1 -1
  126. package/dist/esm/src/api/PDFDocument.js +3 -11
  127. package/dist/esm/src/api/PDFDocument.js.map +1 -1
  128. package/dist/esm/src/api/PDFEmbeddedFile.js.map +1 -1
  129. package/dist/esm/src/api/PDFEmbeddedPage.js.map +1 -1
  130. package/dist/esm/src/api/PDFFont.js +1 -1
  131. package/dist/esm/src/api/PDFFont.js.map +1 -1
  132. package/dist/esm/src/api/PDFJavaScript.js.map +1 -1
  133. package/dist/esm/src/api/PDFPage.js +16 -42
  134. package/dist/esm/src/api/PDFPage.js.map +1 -1
  135. package/dist/esm/src/api/colors.js.map +1 -1
  136. package/dist/esm/src/api/errors.js.map +1 -1
  137. package/dist/esm/src/api/form/PDFButton.js +3 -5
  138. package/dist/esm/src/api/form/PDFButton.js.map +1 -1
  139. package/dist/esm/src/api/form/PDFCheckBox.js +3 -5
  140. package/dist/esm/src/api/form/PDFCheckBox.js.map +1 -1
  141. package/dist/esm/src/api/form/PDFDropdown.js +2 -4
  142. package/dist/esm/src/api/form/PDFDropdown.js.map +1 -1
  143. package/dist/esm/src/api/form/PDFField.js +4 -10
  144. package/dist/esm/src/api/form/PDFField.js.map +1 -1
  145. package/dist/esm/src/api/form/PDFForm.js +2 -4
  146. package/dist/esm/src/api/form/PDFForm.js.map +1 -1
  147. package/dist/esm/src/api/form/PDFOptionList.js +2 -2
  148. package/dist/esm/src/api/form/PDFOptionList.js.map +1 -1
  149. package/dist/esm/src/api/form/PDFRadioGroup.js +2 -4
  150. package/dist/esm/src/api/form/PDFRadioGroup.js.map +1 -1
  151. package/dist/esm/src/api/form/PDFSignature.js +1 -3
  152. package/dist/esm/src/api/form/PDFSignature.js.map +1 -1
  153. package/dist/esm/src/api/form/PDFTextField.js +2 -2
  154. package/dist/esm/src/api/form/PDFTextField.js.map +1 -1
  155. package/dist/esm/src/api/form/appearances.js +1 -1
  156. package/dist/esm/src/api/form/appearances.js.map +1 -1
  157. package/dist/esm/src/api/operations.js.map +1 -1
  158. package/dist/esm/src/api/operators.js +2 -6
  159. package/dist/esm/src/api/operators.js.map +1 -1
  160. package/dist/esm/src/api/rotations.js.map +1 -1
  161. package/dist/esm/src/api/svg.js +26 -24
  162. package/dist/esm/src/api/svg.js.map +1 -1
  163. package/dist/esm/src/api/svgPath.js +2 -3
  164. package/dist/esm/src/api/svgPath.js.map +1 -1
  165. package/dist/esm/src/api/text/layout.js +1 -1
  166. package/dist/esm/src/api/text/layout.js.map +1 -1
  167. package/dist/esm/src/core/PDFContext.js.map +1 -1
  168. package/dist/esm/src/core/PDFObjectCopier.js.map +1 -1
  169. package/dist/esm/src/core/acroform/PDFAcroButton.js +1 -2
  170. package/dist/esm/src/core/acroform/PDFAcroButton.js.map +1 -1
  171. package/dist/esm/src/core/acroform/PDFAcroCheckBox.js.map +1 -1
  172. package/dist/esm/src/core/acroform/PDFAcroChoice.js.map +1 -1
  173. package/dist/esm/src/core/acroform/PDFAcroComboBox.js.map +1 -1
  174. package/dist/esm/src/core/acroform/PDFAcroField.js.map +1 -1
  175. package/dist/esm/src/core/acroform/PDFAcroForm.js.map +1 -1
  176. package/dist/esm/src/core/acroform/PDFAcroListBox.js.map +1 -1
  177. package/dist/esm/src/core/acroform/PDFAcroNonTerminal.js.map +1 -1
  178. package/dist/esm/src/core/acroform/PDFAcroPushButton.js.map +1 -1
  179. package/dist/esm/src/core/acroform/PDFAcroRadioButton.js.map +1 -1
  180. package/dist/esm/src/core/acroform/PDFAcroSignature.js.map +1 -1
  181. package/dist/esm/src/core/acroform/PDFAcroTerminal.js.map +1 -1
  182. package/dist/esm/src/core/acroform/utils.js.map +1 -1
  183. package/dist/esm/src/core/annotation/PDFWidgetAnnotation.js.map +1 -1
  184. package/dist/esm/src/core/crypto.js +122 -179
  185. package/dist/esm/src/core/crypto.js.map +1 -1
  186. package/dist/esm/src/core/document/PDFCrossRefSection.js.map +1 -1
  187. package/dist/esm/src/core/document/PDFHeader.js.map +1 -1
  188. package/dist/esm/src/core/document/PDFTrailer.js.map +1 -1
  189. package/dist/esm/src/core/embedders/CMap.js +1 -1
  190. package/dist/esm/src/core/embedders/CMap.js.map +1 -1
  191. package/dist/esm/src/core/embedders/CustomFontEmbedder.js +2 -3
  192. package/dist/esm/src/core/embedders/CustomFontEmbedder.js.map +1 -1
  193. package/dist/esm/src/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
  194. package/dist/esm/src/core/embedders/FileEmbedder.js +3 -7
  195. package/dist/esm/src/core/embedders/FileEmbedder.js.map +1 -1
  196. package/dist/esm/src/core/embedders/JpegEmbedder.js +1 -3
  197. package/dist/esm/src/core/embedders/JpegEmbedder.js.map +1 -1
  198. package/dist/esm/src/core/embedders/PDFPageEmbedder.js +12 -8
  199. package/dist/esm/src/core/embedders/PDFPageEmbedder.js.map +1 -1
  200. package/dist/esm/src/core/embedders/StandardFontEmbedder.js +1 -1
  201. package/dist/esm/src/core/embedders/StandardFontEmbedder.js.map +1 -1
  202. package/dist/esm/src/core/errors.js +1 -3
  203. package/dist/esm/src/core/errors.js.map +1 -1
  204. package/dist/esm/src/core/index.js +2 -2
  205. package/dist/esm/src/core/index.js.map +1 -1
  206. package/dist/esm/src/core/interactive/ViewerPreferences.js +1 -1
  207. package/dist/esm/src/core/interactive/ViewerPreferences.js.map +1 -1
  208. package/dist/esm/src/core/objects/PDFArray.js.map +1 -1
  209. package/dist/esm/src/core/objects/PDFDict.js.map +1 -1
  210. package/dist/esm/src/core/objects/PDFName.js +2 -4
  211. package/dist/esm/src/core/objects/PDFName.js.map +1 -1
  212. package/dist/esm/src/core/objects/PDFRawStream.js.map +1 -1
  213. package/dist/esm/src/core/objects/PDFRef.js.map +1 -1
  214. package/dist/esm/src/core/objects/PDFStream.js.map +1 -1
  215. package/dist/esm/src/core/operators/PDFOperator.js.map +1 -1
  216. package/dist/esm/src/core/parser/PDFObjectParser.js +1 -2
  217. package/dist/esm/src/core/parser/PDFObjectParser.js.map +1 -1
  218. package/dist/esm/src/core/parser/PDFObjectStreamParser.js.map +1 -1
  219. package/dist/esm/src/core/parser/PDFParser.js +1 -2
  220. package/dist/esm/src/core/parser/PDFParser.js.map +1 -1
  221. package/dist/esm/src/core/parser/PDFXRefStreamParser.js.map +1 -1
  222. package/dist/esm/src/core/streams/Ascii85Stream.js.map +1 -1
  223. package/dist/esm/src/core/streams/DecryptStream.js.map +1 -1
  224. package/dist/esm/src/core/streams/FlateStream.js.map +1 -1
  225. package/dist/esm/src/core/streams/LZWStream.js.map +1 -1
  226. package/dist/esm/src/core/streams/Stream.js.map +1 -1
  227. package/dist/esm/src/core/streams/decode.js +1 -1
  228. package/dist/esm/src/core/streams/decode.js.map +1 -1
  229. package/dist/esm/src/core/structures/PDFCatalog.js.map +1 -1
  230. package/dist/esm/src/core/structures/PDFCrossRefStream.js.map +1 -1
  231. package/dist/esm/src/core/structures/PDFFlateStream.js.map +1 -1
  232. package/dist/esm/src/core/structures/PDFObjectStream.js +1 -4
  233. package/dist/esm/src/core/structures/PDFObjectStream.js.map +1 -1
  234. package/dist/esm/src/core/structures/PDFPageLeaf.js +1 -6
  235. package/dist/esm/src/core/structures/PDFPageLeaf.js.map +1 -1
  236. package/dist/esm/src/core/structures/PDFPageTree.js +1 -1
  237. package/dist/esm/src/core/structures/PDFPageTree.js.map +1 -1
  238. package/dist/esm/src/core/syntax/Keywords.js +4 -30
  239. package/dist/esm/src/core/syntax/Keywords.js.map +1 -1
  240. package/dist/esm/src/core/writers/PDFStreamWriter.js.map +1 -1
  241. package/dist/esm/src/core/writers/PDFWriter.js.map +1 -1
  242. package/dist/esm/src/types/matrix.js.map +1 -1
  243. package/dist/esm/src/utils/arrays.js +2 -5
  244. package/dist/esm/src/utils/arrays.js.map +1 -1
  245. package/dist/esm/src/utils/base64.js.map +1 -1
  246. package/dist/esm/src/utils/elements/Arc.js +3 -6
  247. package/dist/esm/src/utils/elements/Arc.js.map +1 -1
  248. package/dist/esm/src/utils/elements/Circle.js +1 -1
  249. package/dist/esm/src/utils/elements/Circle.js.map +1 -1
  250. package/dist/esm/src/utils/elements/Ellipse.js +1 -1
  251. package/dist/esm/src/utils/elements/Ellipse.js.map +1 -1
  252. package/dist/esm/src/utils/elements/Line.js +1 -3
  253. package/dist/esm/src/utils/elements/Line.js.map +1 -1
  254. package/dist/esm/src/utils/elements/Segment.js +2 -3
  255. package/dist/esm/src/utils/elements/Segment.js.map +1 -1
  256. package/dist/esm/src/utils/intersections.js.map +1 -1
  257. package/dist/esm/src/utils/maths.js.map +1 -1
  258. package/dist/esm/src/utils/strings.js.map +1 -1
  259. package/dist/esm/src/utils/unicode.js.map +1 -1
  260. package/dist/esm/src/utils/validators.js.map +1 -1
  261. package/dist/node/src/api/PDFDocument.js +3 -11
  262. package/dist/node/src/api/PDFDocument.js.map +1 -1
  263. package/dist/node/src/api/PDFEmbeddedFile.js.map +1 -1
  264. package/dist/node/src/api/PDFEmbeddedPage.js.map +1 -1
  265. package/dist/node/src/api/PDFFont.js.map +1 -1
  266. package/dist/node/src/api/PDFJavaScript.js.map +1 -1
  267. package/dist/node/src/api/PDFPage.js +16 -42
  268. package/dist/node/src/api/PDFPage.js.map +1 -1
  269. package/dist/node/src/api/colors.js.map +1 -1
  270. package/dist/node/src/api/errors.js.map +1 -1
  271. package/dist/node/src/api/form/PDFButton.js +1 -3
  272. package/dist/node/src/api/form/PDFButton.js.map +1 -1
  273. package/dist/node/src/api/form/PDFCheckBox.js +1 -3
  274. package/dist/node/src/api/form/PDFCheckBox.js.map +1 -1
  275. package/dist/node/src/api/form/PDFDropdown.js +1 -3
  276. package/dist/node/src/api/form/PDFDropdown.js.map +1 -1
  277. package/dist/node/src/api/form/PDFField.js +4 -10
  278. package/dist/node/src/api/form/PDFField.js.map +1 -1
  279. package/dist/node/src/api/form/PDFForm.js +1 -3
  280. package/dist/node/src/api/form/PDFForm.js.map +1 -1
  281. package/dist/node/src/api/form/PDFOptionList.js.map +1 -1
  282. package/dist/node/src/api/form/PDFRadioGroup.js +1 -3
  283. package/dist/node/src/api/form/PDFRadioGroup.js.map +1 -1
  284. package/dist/node/src/api/form/PDFSignature.js +1 -3
  285. package/dist/node/src/api/form/PDFSignature.js.map +1 -1
  286. package/dist/node/src/api/form/PDFTextField.js.map +1 -1
  287. package/dist/node/src/api/form/appearances.js.map +1 -1
  288. package/dist/node/src/api/operations.js.map +1 -1
  289. package/dist/node/src/api/operators.js +1 -5
  290. package/dist/node/src/api/operators.js.map +1 -1
  291. package/dist/node/src/api/rotations.js.map +1 -1
  292. package/dist/node/src/api/svg.js +25 -23
  293. package/dist/node/src/api/svg.js.map +1 -1
  294. package/dist/node/src/api/svgPath.js +1 -2
  295. package/dist/node/src/api/svgPath.js.map +1 -1
  296. package/dist/node/src/api/text/layout.js.map +1 -1
  297. package/dist/node/src/core/PDFContext.js.map +1 -1
  298. package/dist/node/src/core/PDFObjectCopier.js.map +1 -1
  299. package/dist/node/src/core/acroform/PDFAcroButton.js +1 -2
  300. package/dist/node/src/core/acroform/PDFAcroButton.js.map +1 -1
  301. package/dist/node/src/core/acroform/PDFAcroCheckBox.js.map +1 -1
  302. package/dist/node/src/core/acroform/PDFAcroChoice.js.map +1 -1
  303. package/dist/node/src/core/acroform/PDFAcroComboBox.js.map +1 -1
  304. package/dist/node/src/core/acroform/PDFAcroField.js.map +1 -1
  305. package/dist/node/src/core/acroform/PDFAcroForm.js.map +1 -1
  306. package/dist/node/src/core/acroform/PDFAcroListBox.js.map +1 -1
  307. package/dist/node/src/core/acroform/PDFAcroNonTerminal.js.map +1 -1
  308. package/dist/node/src/core/acroform/PDFAcroPushButton.js.map +1 -1
  309. package/dist/node/src/core/acroform/PDFAcroRadioButton.js.map +1 -1
  310. package/dist/node/src/core/acroform/PDFAcroSignature.js.map +1 -1
  311. package/dist/node/src/core/acroform/PDFAcroTerminal.js.map +1 -1
  312. package/dist/node/src/core/acroform/utils.js.map +1 -1
  313. package/dist/node/src/core/annotation/PDFWidgetAnnotation.js.map +1 -1
  314. package/dist/node/src/core/crypto.js +122 -179
  315. package/dist/node/src/core/crypto.js.map +1 -1
  316. package/dist/node/src/core/document/PDFCrossRefSection.js.map +1 -1
  317. package/dist/node/src/core/document/PDFHeader.js.map +1 -1
  318. package/dist/node/src/core/document/PDFTrailer.js.map +1 -1
  319. package/dist/node/src/core/embedders/CMap.js.map +1 -1
  320. package/dist/node/src/core/embedders/CustomFontEmbedder.js +1 -2
  321. package/dist/node/src/core/embedders/CustomFontEmbedder.js.map +1 -1
  322. package/dist/node/src/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
  323. package/dist/node/src/core/embedders/FileEmbedder.js +3 -7
  324. package/dist/node/src/core/embedders/FileEmbedder.js.map +1 -1
  325. package/dist/node/src/core/embedders/JpegEmbedder.js +1 -3
  326. package/dist/node/src/core/embedders/JpegEmbedder.js.map +1 -1
  327. package/dist/node/src/core/embedders/PDFPageEmbedder.js +11 -7
  328. package/dist/node/src/core/embedders/PDFPageEmbedder.js.map +1 -1
  329. package/dist/node/src/core/embedders/StandardFontEmbedder.js.map +1 -1
  330. package/dist/node/src/core/errors.js +1 -3
  331. package/dist/node/src/core/errors.js.map +1 -1
  332. package/dist/node/src/core/index.js.map +1 -1
  333. package/dist/node/src/core/interactive/ViewerPreferences.js.map +1 -1
  334. package/dist/node/src/core/objects/PDFArray.js.map +1 -1
  335. package/dist/node/src/core/objects/PDFDict.js.map +1 -1
  336. package/dist/node/src/core/objects/PDFName.js +1 -3
  337. package/dist/node/src/core/objects/PDFName.js.map +1 -1
  338. package/dist/node/src/core/objects/PDFRawStream.js.map +1 -1
  339. package/dist/node/src/core/objects/PDFRef.js.map +1 -1
  340. package/dist/node/src/core/objects/PDFStream.js.map +1 -1
  341. package/dist/node/src/core/operators/PDFOperator.js.map +1 -1
  342. package/dist/node/src/core/parser/PDFObjectParser.js +1 -2
  343. package/dist/node/src/core/parser/PDFObjectParser.js.map +1 -1
  344. package/dist/node/src/core/parser/PDFObjectStreamParser.js.map +1 -1
  345. package/dist/node/src/core/parser/PDFParser.js +1 -2
  346. package/dist/node/src/core/parser/PDFParser.js.map +1 -1
  347. package/dist/node/src/core/parser/PDFXRefStreamParser.js.map +1 -1
  348. package/dist/node/src/core/streams/Ascii85Stream.js.map +1 -1
  349. package/dist/node/src/core/streams/DecryptStream.js.map +1 -1
  350. package/dist/node/src/core/streams/FlateStream.js.map +1 -1
  351. package/dist/node/src/core/streams/LZWStream.js.map +1 -1
  352. package/dist/node/src/core/streams/Stream.js.map +1 -1
  353. package/dist/node/src/core/streams/decode.js +1 -1
  354. package/dist/node/src/core/streams/decode.js.map +1 -1
  355. package/dist/node/src/core/structures/PDFCatalog.js.map +1 -1
  356. package/dist/node/src/core/structures/PDFCrossRefStream.js.map +1 -1
  357. package/dist/node/src/core/structures/PDFFlateStream.js.map +1 -1
  358. package/dist/node/src/core/structures/PDFObjectStream.js +1 -4
  359. package/dist/node/src/core/structures/PDFObjectStream.js.map +1 -1
  360. package/dist/node/src/core/structures/PDFPageLeaf.js +1 -6
  361. package/dist/node/src/core/structures/PDFPageLeaf.js.map +1 -1
  362. package/dist/node/src/core/structures/PDFPageTree.js +1 -1
  363. package/dist/node/src/core/structures/PDFPageTree.js.map +1 -1
  364. package/dist/node/src/core/syntax/Keywords.js +4 -30
  365. package/dist/node/src/core/syntax/Keywords.js.map +1 -1
  366. package/dist/node/src/core/writers/PDFStreamWriter.js.map +1 -1
  367. package/dist/node/src/core/writers/PDFWriter.js.map +1 -1
  368. package/dist/node/src/types/matrix.js.map +1 -1
  369. package/dist/node/src/utils/arrays.js +2 -5
  370. package/dist/node/src/utils/arrays.js.map +1 -1
  371. package/dist/node/src/utils/base64.js.map +1 -1
  372. package/dist/node/src/utils/elements/Arc.js +3 -6
  373. package/dist/node/src/utils/elements/Arc.js.map +1 -1
  374. package/dist/node/src/utils/elements/Circle.js.map +1 -1
  375. package/dist/node/src/utils/elements/Ellipse.js +1 -1
  376. package/dist/node/src/utils/elements/Ellipse.js.map +1 -1
  377. package/dist/node/src/utils/elements/Line.js +1 -3
  378. package/dist/node/src/utils/elements/Line.js.map +1 -1
  379. package/dist/node/src/utils/elements/Segment.js +1 -2
  380. package/dist/node/src/utils/elements/Segment.js.map +1 -1
  381. package/dist/node/src/utils/intersections.js.map +1 -1
  382. package/dist/node/src/utils/maths.js.map +1 -1
  383. package/dist/node/src/utils/strings.js.map +1 -1
  384. package/dist/node/src/utils/unicode.js.map +1 -1
  385. package/dist/node/src/utils/validators.js.map +1 -1
  386. package/dist/types/src/api/form/PDFField.d.ts +1 -1
  387. package/dist/types/src/core/index.d.ts +2 -2
  388. package/dist/types/src/core/streams/decode.d.ts +1 -1
  389. package/dist/types/src/core/writers/PDFWriter.d.ts +1 -4
  390. package/dist/types/src/types/matrix.d.ts +1 -8
  391. package/package.json +1 -1
  392. package/src/api/PDFDocument.ts +11 -44
  393. package/src/api/PDFEmbeddedFile.ts +1 -4
  394. package/src/api/PDFEmbeddedPage.ts +1 -5
  395. package/src/api/PDFFont.ts +1 -6
  396. package/src/api/PDFJavaScript.ts +2 -9
  397. package/src/api/PDFPage.ts +26 -93
  398. package/src/api/PDFPageOptions.ts +4 -4
  399. package/src/api/colors.ts +1 -6
  400. package/src/api/errors.ts +1 -2
  401. package/src/api/form/PDFButton.ts +9 -34
  402. package/src/api/form/PDFCheckBox.ts +4 -19
  403. package/src/api/form/PDFDropdown.ts +6 -21
  404. package/src/api/form/PDFField.ts +11 -41
  405. package/src/api/form/PDFForm.ts +11 -29
  406. package/src/api/form/PDFOptionList.ts +5 -21
  407. package/src/api/form/PDFRadioGroup.ts +6 -22
  408. package/src/api/form/PDFSignature.ts +4 -13
  409. package/src/api/form/PDFTextField.ts +5 -20
  410. package/src/api/form/appearances.ts +33 -33
  411. package/src/api/operations.ts +23 -25
  412. package/src/api/operators.ts +11 -43
  413. package/src/api/rotations.ts +1 -4
  414. package/src/api/svg.ts +145 -195
  415. package/src/api/svgPath.ts +5 -32
  416. package/src/api/text/layout.ts +3 -18
  417. package/src/core/PDFContext.ts +10 -36
  418. package/src/core/PDFObjectCopier.ts +1 -2
  419. package/src/core/acroform/PDFAcroButton.ts +3 -13
  420. package/src/core/acroform/PDFAcroCheckBox.ts +1 -2
  421. package/src/core/acroform/PDFAcroChoice.ts +2 -9
  422. package/src/core/acroform/PDFAcroComboBox.ts +1 -2
  423. package/src/core/acroform/PDFAcroField.ts +1 -2
  424. package/src/core/acroform/PDFAcroForm.ts +2 -5
  425. package/src/core/acroform/PDFAcroListBox.ts +1 -2
  426. package/src/core/acroform/PDFAcroNonTerminal.ts +1 -2
  427. package/src/core/acroform/PDFAcroPushButton.ts +1 -2
  428. package/src/core/acroform/PDFAcroRadioButton.ts +1 -2
  429. package/src/core/acroform/PDFAcroSignature.ts +1 -2
  430. package/src/core/acroform/PDFAcroTerminal.ts +1 -2
  431. package/src/core/acroform/utils.ts +3 -9
  432. package/src/core/annotation/PDFWidgetAnnotation.ts +1 -2
  433. package/src/core/crypto.ts +143 -287
  434. package/src/core/document/PDFCrossRefSection.ts +3 -15
  435. package/src/core/document/PDFHeader.ts +1 -2
  436. package/src/core/document/PDFTrailer.ts +1 -2
  437. package/src/core/embedders/CMap.ts +1 -6
  438. package/src/core/embedders/CustomFontEmbedder.ts +4 -16
  439. package/src/core/embedders/CustomFontSubsetEmbedder.ts +2 -13
  440. package/src/core/embedders/FileEmbedder.ts +5 -23
  441. package/src/core/embedders/JpegEmbedder.ts +2 -11
  442. package/src/core/embedders/PDFPageEmbedder.ts +12 -14
  443. package/src/core/embedders/StandardFontEmbedder.ts +3 -12
  444. package/src/core/errors.ts +1 -3
  445. package/src/core/index.ts +2 -8
  446. package/src/core/interactive/ViewerPreferences.ts +4 -18
  447. package/src/core/objects/PDFArray.ts +2 -8
  448. package/src/core/objects/PDFDict.ts +3 -11
  449. package/src/core/objects/PDFName.ts +2 -9
  450. package/src/core/objects/PDFRawStream.ts +3 -10
  451. package/src/core/objects/PDFRef.ts +1 -5
  452. package/src/core/objects/PDFStream.ts +2 -8
  453. package/src/core/operators/PDFOperator.ts +2 -9
  454. package/src/core/parser/PDFObjectParser.ts +5 -14
  455. package/src/core/parser/PDFObjectStreamParser.ts +2 -4
  456. package/src/core/parser/PDFParser.ts +5 -21
  457. package/src/core/parser/PDFXRefStreamParser.ts +1 -2
  458. package/src/core/streams/Ascii85Stream.ts +1 -2
  459. package/src/core/streams/DecryptStream.ts +2 -9
  460. package/src/core/streams/FlateStream.ts +4 -14
  461. package/src/core/streams/LZWStream.ts +2 -9
  462. package/src/core/streams/Stream.ts +2 -8
  463. package/src/core/streams/decode.ts +2 -10
  464. package/src/core/structures/PDFCatalog.ts +2 -6
  465. package/src/core/structures/PDFCrossRefStream.ts +2 -10
  466. package/src/core/structures/PDFFlateStream.ts +1 -4
  467. package/src/core/structures/PDFObjectStream.ts +4 -14
  468. package/src/core/structures/PDFPageLeaf.ts +9 -28
  469. package/src/core/structures/PDFPageTree.ts +2 -5
  470. package/src/core/syntax/Keywords.ts +4 -30
  471. package/src/core/writers/PDFStreamWriter.ts +2 -11
  472. package/src/core/writers/PDFWriter.ts +2 -6
  473. package/src/types/fontkit.ts +3 -16
  474. package/src/types/index.ts +6 -14
  475. package/src/types/matrix.ts +1 -8
  476. package/src/utils/arrays.ts +3 -8
  477. package/src/utils/base64.ts +2 -4
  478. package/src/utils/elements/Arc.ts +5 -15
  479. package/src/utils/elements/Circle.ts +1 -9
  480. package/src/utils/elements/Ellipse.ts +6 -24
  481. package/src/utils/elements/Line.ts +1 -3
  482. package/src/utils/elements/Segment.ts +3 -14
  483. package/src/utils/intersections.ts +20 -65
  484. package/src/utils/maths.ts +10 -22
  485. package/src/utils/strings.ts +6 -16
  486. package/src/utils/unicode.ts +9 -22
  487. package/src/utils/validators.ts +9 -45
@@ -19,11 +19,7 @@ export default class Ellipse extends GraphElement {
19
19
  B: Point;
20
20
  C: Point;
21
21
 
22
- constructor(
23
- A: Point = new Point(),
24
- B: Point = new Point(),
25
- C: Point = new Point(),
26
- ) {
22
+ constructor(A: Point = new Point(), B: Point = new Point(), C: Point = new Point()) {
27
23
  super();
28
24
  this.A = A;
29
25
  this.B = B;
@@ -75,10 +71,7 @@ export default class Ellipse extends GraphElement {
75
71
  return (
76
72
  isEqual(eltA, a) &&
77
73
  isEqual(eltB, b) &&
78
- isEqual(
79
- rotation + (Math.PI % Math.PI),
80
- eltRotation + (Math.PI % Math.PI),
81
- )
74
+ isEqual(rotation + (Math.PI % Math.PI), eltRotation + (Math.PI % Math.PI))
82
75
  );
83
76
  }
84
77
  // If the small axis is different
@@ -87,10 +80,7 @@ export default class Ellipse extends GraphElement {
87
80
  return (
88
81
  isEqual(eltA, b) &&
89
82
  isEqual(eltB, a) &&
90
- isEqual(
91
- rotation + (Math.PI % Math.PI),
92
- eltRotation + (((3 * Math.PI) / 2) % Math.PI),
93
- )
83
+ isEqual(rotation + (Math.PI % Math.PI), eltRotation + (((3 * Math.PI) / 2) % Math.PI))
94
84
  );
95
85
  }
96
86
  }
@@ -100,14 +90,8 @@ export default class Ellipse extends GraphElement {
100
90
  const { x: cx, y: cy } = this.center().toCoords();
101
91
  const teta = this.rotation();
102
92
  return isEqual(
103
- Math.pow(
104
- ((x - cx) * Math.cos(teta) + (y - cy) * Math.sin(teta)) / this.a(),
105
- 2,
106
- ) +
107
- Math.pow(
108
- ((x - cx) * Math.sin(teta) - (y - cy) * Math.cos(teta)) / this.b(),
109
- 2,
110
- ),
93
+ Math.pow(((x - cx) * Math.cos(teta) + (y - cy) * Math.sin(teta)) / this.a(), 2) +
94
+ Math.pow(((x - cx) * Math.sin(teta) - (y - cy) * Math.cos(teta)) / this.b(), 2),
111
95
  1,
112
96
  );
113
97
  }
@@ -128,8 +112,6 @@ export default class Ellipse extends GraphElement {
128
112
  const a = this.a();
129
113
  const b = this.b();
130
114
  const excentricity = Math.sqrt(Math.abs(a * a - b * b)) / Math.max(a, b);
131
- return (
132
- Math.min(a, b) / Math.sqrt(1 - Math.pow(excentricity * Math.cos(teta), 2))
133
- );
115
+ return Math.min(a, b) / Math.sqrt(1 - Math.pow(excentricity * Math.cos(teta), 2));
134
116
  }
135
117
  }
@@ -64,9 +64,7 @@ export default class Line extends GraphElement {
64
64
  includes(P: Point) {
65
65
  const { x, y } = P.toCoords();
66
66
  const vect = this.dirVect();
67
- return isEqual(vect.x, 0)
68
- ? isEqual(this.origin().toCoords().x, x)
69
- : isEqual(this.y(x), y);
67
+ return isEqual(vect.x, 0) ? isEqual(this.origin().toCoords().x, x) : isEqual(this.y(x), y);
70
68
  }
71
69
 
72
70
  /** This is used to standarsize type Segment | HalfLine | Line */
@@ -1,12 +1,4 @@
1
- import {
2
- distance,
3
- isColinear,
4
- norm,
5
- scalar,
6
- vector,
7
- plus,
8
- times,
9
- } from '../maths';
1
+ import { distance, isColinear, norm, scalar, vector, plus, times } from '../maths';
10
2
 
11
3
  import GraphElement from './GraphElement';
12
4
  import Line from './Line';
@@ -46,8 +38,7 @@ export default class Segment extends GraphElement {
46
38
  const destE = element.destination();
47
39
  return (
48
40
  element instanceof Segment &&
49
- ((o.isEqual(oE) && dest.isEqual(destE)) ||
50
- (o.isEqual(destE) && dest.isEqual(oE)))
41
+ ((o.isEqual(oE) && dest.isEqual(destE)) || (o.isEqual(destE) && dest.isEqual(oE)))
51
42
  );
52
43
  }
53
44
 
@@ -70,9 +61,7 @@ export default class Segment extends GraphElement {
70
61
  }
71
62
 
72
63
  middle() {
73
- const mid = new Point(
74
- plus(this.origin().toCoords(), times(this.dirVect(), 0.5)),
75
- );
64
+ const mid = new Point(plus(this.origin().toCoords(), times(this.dirVect(), 0.5)));
76
65
  return mid;
77
66
  }
78
67
 
@@ -19,66 +19,44 @@ import {
19
19
  rotate,
20
20
  } from './maths';
21
21
 
22
- export function intersections(
23
- A: GraphicElement,
24
- B: GraphicElement,
25
- ): Coordinates[] {
22
+ export function intersections(A: GraphicElement, B: GraphicElement): Coordinates[] {
26
23
  if (A instanceof Point || B instanceof Point) return [];
27
24
  else if (A instanceof Text || B instanceof Text) return [];
28
25
  else if (A instanceof Image || B instanceof Image) return [];
29
26
  // TODO: calculate the coords of the intersection: https://www.emathzone.com/tutorials/geometry/intersection-of-line-and-ellipse.html
30
27
  else if (A instanceof Line) return intersectionsLine(A, B);
31
28
  else if (A instanceof Segment) {
32
- return intersectionsLine(A.getLine(), B).filter((P) =>
33
- A.includes(new Point(P)),
34
- );
29
+ return intersectionsLine(A.getLine(), B).filter((P) => A.includes(new Point(P)));
35
30
  } else if (A instanceof Circle) return intersectionsCircle(A, B);
36
31
  else if (A instanceof Arc) {
37
- return intersectionsCircle(A.getCircle(), B).filter((P) =>
38
- A.includes(new Point(P)),
39
- );
32
+ return intersectionsCircle(A.getCircle(), B).filter((P) => A.includes(new Point(P)));
40
33
  } else if (A instanceof Plot) return intersectionsPlot(A, B);
41
34
  else if (A instanceof Rectangle) return intersectionsRectangle(A, B);
42
35
  else if (A instanceof Ellipse) return intersectionsEllipse(A, B);
43
36
  return A;
44
37
  }
45
38
 
46
- export function intersection(
47
- A: GraphicElement,
48
- B: GraphicElement,
49
- ): Coordinates | undefined {
39
+ export function intersection(A: GraphicElement, B: GraphicElement): Coordinates | undefined {
50
40
  return intersections(A, B)[0];
51
41
  }
52
42
 
53
- function intersectionsLine(
54
- A: Line,
55
- B: Exclude<GraphicElement, Text | Point>,
56
- ): Coordinates[] {
43
+ function intersectionsLine(A: Line, B: Exclude<GraphicElement, Text | Point>): Coordinates[] {
57
44
  if (B instanceof Line) return intersectionLine(A, B);
58
45
  else if (B instanceof Segment) {
59
- return intersectionLine(A, B.getLine()).filter((P) =>
60
- B.includes(new Point(P)),
61
- );
46
+ return intersectionLine(A, B.getLine()).filter((P) => B.includes(new Point(P)));
62
47
  } else if (B instanceof Circle) return intersectionCircleLine(B, A);
63
48
  else if (B instanceof Arc) {
64
- return intersectionsCircle(B.getCircle(), A).filter((P) =>
65
- B.includes(new Point(P)),
66
- );
49
+ return intersectionsCircle(B.getCircle(), A).filter((P) => B.includes(new Point(P)));
67
50
  } else if (B instanceof Plot) return intersectionsPlot(B, A);
68
51
  else if (B instanceof Rectangle) return intersectionsRectangle(B, A);
69
52
  else if (B instanceof Ellipse) return intersectionsEllipse(B, A);
70
53
  return B;
71
54
  }
72
55
 
73
- function intersectionsEllipse(
74
- A: Ellipse,
75
- B: Exclude<GraphicElement, Text | Point>,
76
- ): Coordinates[] {
56
+ function intersectionsEllipse(A: Ellipse, B: Exclude<GraphicElement, Text | Point>): Coordinates[] {
77
57
  if (B instanceof Line) return intersectionsLineAndEllipse(A, B);
78
58
  else if (B instanceof Segment) {
79
- return intersectionsEllipse(A, B.getLine()).filter((P) =>
80
- B.includes(new Point(P)),
81
- );
59
+ return intersectionsEllipse(A, B.getLine()).filter((P) => B.includes(new Point(P)));
82
60
  }
83
61
  // TODO:
84
62
  // else if (B instanceof Circle) return intersectionEllipseCircle(B, A)
@@ -87,9 +65,7 @@ function intersectionsEllipse(
87
65
  // else if (B instanceof Ellipse) return intersectionEllipseEllipse(B, A)
88
66
  else if (B instanceof Ellipse) return [];
89
67
  else if (B instanceof Arc) {
90
- return intersectionsEllipse(A, B.getCircle()).filter((P) =>
91
- B.includes(new Point(P)),
92
- );
68
+ return intersectionsEllipse(A, B.getCircle()).filter((P) => B.includes(new Point(P)));
93
69
  } else if (B instanceof Plot) return intersectionsPlot(B, A);
94
70
  else if (B instanceof Rectangle) return intersectionsRectangle(B, A);
95
71
  return B;
@@ -112,17 +88,10 @@ function intersectionsLineAndEllipse(A: Ellipse, B: Line): Coordinates[] {
112
88
  const p2X = isLineParallel2YAxis ? B.origin().toCoords().x : 2;
113
89
  const p2 = { x: p2X, y: p2Y };
114
90
 
115
- const p1Normalized = rotate(
116
- { x: p1.x - center.x, y: p1.y - center.y },
117
- -rotation,
118
- );
119
- const p2Normalized = rotate(
120
- { x: p2.x - center.x, y: p2.y - center.y },
121
- -rotation,
122
- );
91
+ const p1Normalized = rotate({ x: p1.x - center.x, y: p1.y - center.y }, -rotation);
92
+ const p2Normalized = rotate({ x: p2.x - center.x, y: p2.y - center.y }, -rotation);
123
93
 
124
- const angular =
125
- (p1Normalized.y - p2Normalized.y) / (p1Normalized.x - p2Normalized.x);
94
+ const angular = (p1Normalized.y - p2Normalized.y) / (p1Normalized.x - p2Normalized.x);
126
95
  const linear = p1Normalized.y - angular * p1Normalized.x;
127
96
 
128
97
  const lineY = (x: number) => angular * x + linear;
@@ -184,10 +153,8 @@ export function intersectionLine(A: Line, B: Line): Coordinates[] {
184
153
  const { x: vx, y: vy } = B.dirVect();
185
154
  const { x: xA, y: yA } = A.origin().toCoords();
186
155
  const { x: xB, y: yB } = B.origin().toCoords();
187
- const x =
188
- (ux * (vx * (yA - yB) + vy * xB) - uy * vx * xA) / (ux * vy - uy * vx);
189
- const y =
190
- (uy * (vy * (xA - xB) + vx * yB) - ux * vy * yA) / (uy * vx - ux * vy);
156
+ const x = (ux * (vx * (yA - yB) + vy * xB) - uy * vx * xA) / (ux * vy - uy * vx);
157
+ const y = (uy * (vy * (xA - xB) + vx * yB) - ux * vy * yA) / (uy * vx - ux * vy);
191
158
  return [{ x, y }];
192
159
  }
193
160
  }
@@ -195,18 +162,13 @@ export function intersectionLine(A: Line, B: Line): Coordinates[] {
195
162
  function intersectionsPlot(A: Plot, B: GraphicElement): Coordinates[] {
196
163
  const points = A.getPoints().map((pt) => new Point(pt));
197
164
  const head = points.pop();
198
- const segments = points.map(
199
- (pt, i) => new Segment(pt, points[i + 1] || head),
200
- );
165
+ const segments = points.map((pt, i) => new Segment(pt, points[i + 1] || head));
201
166
  // @ts-ignore
202
167
  const inters = segments.map((s) => intersections(s, B)).flat();
203
168
  return inters;
204
169
  }
205
170
 
206
- function intersectionsRectangle(
207
- A: Rectangle,
208
- B: GraphicElement,
209
- ): Coordinates[] {
171
+ function intersectionsRectangle(A: Rectangle, B: GraphicElement): Coordinates[] {
210
172
  const P1 = A.getCoords();
211
173
  const P3 = A.getEnd();
212
174
  const P2 = { x: P1.x, y: P3.y };
@@ -251,20 +213,13 @@ export function intersectionCircle(A: Circle, B: Circle): Coordinates[] {
251
213
  }
252
214
  }
253
215
 
254
- function intersectionsCircle(
255
- A: Circle,
256
- B: Exclude<GraphicElement, Text | Point>,
257
- ): Coordinates[] {
216
+ function intersectionsCircle(A: Circle, B: Exclude<GraphicElement, Text | Point>): Coordinates[] {
258
217
  if (B instanceof Circle) return intersectionCircle(A, B);
259
218
  else if (B instanceof Line) return intersectionCircleLine(A, B);
260
219
  else if (B instanceof Segment) {
261
- return intersectionCircleLine(A, B.getLine()).filter((P) =>
262
- B.includes(new Point(P)),
263
- );
220
+ return intersectionCircleLine(A, B.getLine()).filter((P) => B.includes(new Point(P)));
264
221
  } else if (B instanceof Arc) {
265
- return intersectionCircle(A, B.getCircle()).filter((P) =>
266
- B.includes(new Point(P)),
267
- );
222
+ return intersectionCircle(A, B.getCircle()).filter((P) => B.includes(new Point(P)));
268
223
  } else if (B instanceof Plot) return intersectionsPlot(B, A);
269
224
  else if (B instanceof Rectangle) return intersectionsRectangle(B, A);
270
225
  else if (B instanceof Ellipse) return intersectionsEllipse(B, A);
@@ -7,12 +7,10 @@ export const FLOAT_APPROXIMATION = 0.000001;
7
7
  /** Calculates the distance between 2 points */
8
8
  export const distance = (A: Point, B: Point) => norm(vector(A, B));
9
9
 
10
- export const distanceCoords = (A: Coordinates, B: Coordinates) =>
11
- norm(minus(B, A));
10
+ export const distanceCoords = (A: Coordinates, B: Coordinates) => norm(minus(B, A));
12
11
 
13
12
  /** Calculates the distance denoted by a vector */
14
- export const norm = (vect: Coordinates) =>
15
- Math.sqrt(vect.x * vect.x + vect.y * vect.y);
13
+ export const norm = (vect: Coordinates) => Math.sqrt(vect.x * vect.x + vect.y * vect.y);
16
14
 
17
15
  /** Calculates the orthogonal vector of provided vector */
18
16
  export const orthogonal = ({ x, y }: Coordinates): Coordinates => ({
@@ -21,10 +19,8 @@ export const orthogonal = ({ x, y }: Coordinates): Coordinates => ({
21
19
  });
22
20
 
23
21
  /** Check if 2 vectors are proportional */
24
- export const isColinear = (
25
- { x: ux, y: uy }: Coordinates,
26
- { x: vx, y: vy }: Coordinates,
27
- ): boolean => isEqual(ux * vy, uy * vx);
22
+ export const isColinear = ({ x: ux, y: uy }: Coordinates, { x: vx, y: vy }: Coordinates): boolean =>
23
+ isEqual(ux * vy, uy * vx);
28
24
 
29
25
  /** Check if 2 floating values can be considered equals */
30
26
  export const isEqual = (a: number, b: number): boolean =>
@@ -35,10 +31,8 @@ export const isProportional = (a: number, b: number): boolean =>
35
31
  isEqual((Math.abs(a) + FLOAT_APPROXIMATION / 10) % b, 0);
36
32
 
37
33
  /** Calculate the scalar product between 2 vectors */
38
- export const scalar = (
39
- { x: ux, y: uy }: Coordinates,
40
- { x: vx, y: vy }: Coordinates,
41
- ): number => ux * vx + uy * vy;
34
+ export const scalar = ({ x: ux, y: uy }: Coordinates, { x: vx, y: vy }: Coordinates): number =>
35
+ ux * vx + uy * vy;
42
36
 
43
37
  /** Calculate the sum of 2 vectors */
44
38
  export const plus = (
@@ -53,12 +47,10 @@ export const times = ({ x, y }: Coordinates, k = 1): Coordinates => ({
53
47
  });
54
48
 
55
49
  /** Calculate the difference of 2 vectors */
56
- export const minus = (u: Coordinates, v: Coordinates): Coordinates =>
57
- plus(u, times(v, -1));
50
+ export const minus = (u: Coordinates, v: Coordinates): Coordinates => plus(u, times(v, -1));
58
51
 
59
52
  /** Returns the vector between 2 points. */
60
- export const vector = (A: Point, B: Point): Coordinates =>
61
- minus(B.toCoords(), A.toCoords());
53
+ export const vector = (A: Point, B: Point): Coordinates => minus(B.toCoords(), A.toCoords());
62
54
 
63
55
  /**
64
56
  * Returns the angle between the vector and the horizontal axis (Ox).
@@ -92,12 +84,8 @@ export const angle = (u: Coordinates, v: Coordinates, previousAngle = 0) => {
92
84
  /** Returns the angle between the lines (BA) and (BC) in radian
93
85
  * @returns {number} the angle in radian, between -Pi and Pi
94
86
  */
95
- export const angleABC = (
96
- A: Point,
97
- B: Point,
98
- C: Point,
99
- previousAngle = 0,
100
- ): number => angle(vector(B, A), vector(B, C), previousAngle);
87
+ export const angleABC = (A: Point, B: Point, C: Point, previousAngle = 0): number =>
88
+ angle(vector(B, A), vector(B, C), previousAngle);
101
89
 
102
90
  /** Rotate the vector by an angle in radian */
103
91
  export const rotate = (vect: Coordinates, teta: number): Coordinates => {
@@ -25,11 +25,7 @@ export const stringAsByteArray = (str: string): Uint8Array => {
25
25
  return buffer;
26
26
  };
27
27
 
28
- export const copyStringIntoBuffer = (
29
- str: string,
30
- buffer: Uint8Array,
31
- offset: number,
32
- ): number => {
28
+ export const copyStringIntoBuffer = (str: string, buffer: Uint8Array, offset: number): number => {
33
29
  const length = str.length;
34
30
  for (let idx = 0; idx < length; idx++) {
35
31
  buffer[offset++] = str.charCodeAt(idx);
@@ -40,8 +36,7 @@ export const copyStringIntoBuffer = (
40
36
  export const addRandomSuffix = (prefix: string, suffixLength = 4) =>
41
37
  `${prefix}-${Math.floor(Math.random() * 10 ** suffixLength)}`;
42
38
 
43
- export const escapeRegExp = (str: string) =>
44
- str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
39
+ export const escapeRegExp = (str: string) => str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
45
40
 
46
41
  export const cleanText = (text: string) =>
47
42
  text.replace(/\t|\u0085|\u2028|\u2029/g, ' ').replace(/[\b\v]/g, '');
@@ -54,8 +49,7 @@ export const isNewlineChar = (text: string) => /^[\n\f\r\u000B]$/.test(text);
54
49
 
55
50
  export const lineSplit = (text: string) => text.split(/[\n\f\r\u000B]/);
56
51
 
57
- export const mergeLines = (text: string) =>
58
- text.replace(/[\n\f\r\u000B]/g, ' ');
52
+ export const mergeLines = (text: string) => text.replace(/[\n\f\r\u000B]/g, ' ');
59
53
 
60
54
  // JavaScript's String.charAt() method doesn work on strings containing UTF-16
61
55
  // characters (with high and low surrogate pairs), such as 💩 (poo emoji). This
@@ -145,8 +139,7 @@ export const breakTextIntoLines = (
145
139
  };
146
140
 
147
141
  // See section "7.9.4 Dates" of the PDF specification
148
- const dateRegex =
149
- /^D:(\d\d\d\d)(\d\d)?(\d\d)?(\d\d)?(\d\d)?(\d\d)?([+\-Z])?(\d\d)?'?(\d\d)?'?$/;
142
+ const dateRegex = /^D:(\d\d\d\d)(\d\d)?(\d\d)?(\d\d)?(\d\d)?(\d\d)?([+\-Z])?(\d\d)?'?(\d\d)?'?$/;
150
143
 
151
144
  export const parseDate = (dateStr: string): Date | undefined => {
152
145
  const match = dateStr.match(dateRegex);
@@ -167,11 +160,8 @@ export const parseDate = (dateStr: string): Date | undefined => {
167
160
  ] = match;
168
161
 
169
162
  // http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15
170
- const tzOffset =
171
- offsetSign === 'Z' ? 'Z' : `${offsetSign}${offsetHours}:${offsetMins}`;
172
- const date = new Date(
173
- `${year}-${month}-${day}T${hours}:${mins}:${secs}${tzOffset}`,
174
- );
163
+ const tzOffset = offsetSign === 'Z' ? 'Z' : `${offsetSign}${offsetHours}:${offsetMins}`;
164
+ const date = new Date(`${year}-${month}-${day}T${hours}:${mins}:${secs}${tzOffset}`);
175
165
 
176
166
  return date;
177
167
  };
@@ -200,10 +200,7 @@ export const utf8Encode = (input: string, byteOrderMark = true): Uint8Array => {
200
200
  * - [3] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length#Description
201
201
  *
202
202
  */
203
- export const utf16Encode = (
204
- input: string,
205
- byteOrderMark = true,
206
- ): Uint16Array => {
203
+ export const utf16Encode = (input: string, byteOrderMark = true): Uint16Array => {
207
204
  const encoded = [];
208
205
 
209
206
  if (byteOrderMark) encoded.push(0xfeff);
@@ -238,8 +235,7 @@ export const utf16Encode = (
238
235
  *
239
236
  * Reference: https://en.wikipedia.org/wiki/UTF-16#Description
240
237
  */
241
- export const isWithinBMP = (codePoint: number) =>
242
- codePoint >= 0 && codePoint <= 0xffff;
238
+ export const isWithinBMP = (codePoint: number) => codePoint >= 0 && codePoint <= 0xffff;
243
239
 
244
240
  /**
245
241
  * Returns `true` if the given `codePoint` is valid and must be represented
@@ -248,8 +244,7 @@ export const isWithinBMP = (codePoint: number) =>
248
244
  *
249
245
  * Reference: https://en.wikipedia.org/wiki/UTF-16#Description
250
246
  */
251
- export const hasSurrogates = (codePoint: number) =>
252
- codePoint >= 0x010000 && codePoint <= 0x10ffff;
247
+ export const hasSurrogates = (codePoint: number) => codePoint >= 0x010000 && codePoint <= 0x10ffff;
253
248
 
254
249
  // From Unicode 3.0 spec, section 3.7:
255
250
  // http://unicode.org/versions/Unicode3.0.0/ch03.pdf
@@ -258,8 +253,7 @@ export const highSurrogate = (codePoint: number) =>
258
253
 
259
254
  // From Unicode 3.0 spec, section 3.7:
260
255
  // http://unicode.org/versions/Unicode3.0.0/ch03.pdf
261
- export const lowSurrogate = (codePoint: number) =>
262
- ((codePoint - 0x10000) % 0x400) + 0xdc00;
256
+ export const lowSurrogate = (codePoint: number) => ((codePoint - 0x10000) % 0x400) + 0xdc00;
263
257
 
264
258
  enum ByteOrder {
265
259
  BigEndian = 'BigEndian',
@@ -280,10 +274,7 @@ const REPLACEMENT = '�'.codePointAt(0)!;
280
274
  * at the start of the encoding. (default `true`)
281
275
  * @returns The decoded string.
282
276
  */
283
- export const utf16Decode = (
284
- input: Uint8Array,
285
- byteOrderMark = true,
286
- ): string => {
277
+ export const utf16Decode = (input: Uint8Array, byteOrderMark = true): string => {
287
278
  // Need at least 2 bytes of data in UTF-16 encodings
288
279
  if (input.length <= 1) return String.fromCodePoint(REPLACEMENT);
289
280
 
@@ -332,8 +323,7 @@ export const utf16Decode = (
332
323
  *
333
324
  * Reference: https://en.wikipedia.org/wiki/UTF-16#Description
334
325
  */
335
- const isHighSurrogate = (codePoint: number) =>
336
- codePoint >= 0xd800 && codePoint <= 0xdbff;
326
+ const isHighSurrogate = (codePoint: number) => codePoint >= 0xd800 && codePoint <= 0xdbff;
337
327
 
338
328
  /**
339
329
  * Returns `true` if the given `codePoint` is a low surrogate.
@@ -341,8 +331,7 @@ const isHighSurrogate = (codePoint: number) =>
341
331
  *
342
332
  * Reference: https://en.wikipedia.org/wiki/UTF-16#Description
343
333
  */
344
- const isLowSurrogate = (codePoint: number) =>
345
- codePoint >= 0xdc00 && codePoint <= 0xdfff;
334
+ const isLowSurrogate = (codePoint: number) => codePoint >= 0xdc00 && codePoint <= 0xdfff;
346
335
 
347
336
  /**
348
337
  * Decodes the given utf-16 values first and second using the specified
@@ -376,11 +365,9 @@ const readBOM = (bytes: Uint8Array): ByteOrder => (
376
365
  : ByteOrder.BigEndian
377
366
  );
378
367
 
379
- const hasUtf16BigEndianBOM = (bytes: Uint8Array) =>
380
- bytes[0] === 0xfe && bytes[1] === 0xff;
368
+ const hasUtf16BigEndianBOM = (bytes: Uint8Array) => bytes[0] === 0xfe && bytes[1] === 0xff;
381
369
 
382
- const hasUtf16LittleEndianBOM = (bytes: Uint8Array) =>
383
- bytes[0] === 0xff && bytes[1] === 0xfe;
370
+ const hasUtf16LittleEndianBOM = (bytes: Uint8Array) => bytes[0] === 0xff && bytes[1] === 0xfe;
384
371
 
385
372
  export const hasUtf16BOM = (bytes: Uint8Array) =>
386
373
  hasUtf16BigEndianBOM(bytes) || hasUtf16LittleEndianBOM(bytes);
@@ -15,11 +15,7 @@ const formatValue = (value: any) => {
15
15
  else return value;
16
16
  };
17
17
 
18
- export const createValueErrorMsg = (
19
- value: any,
20
- valueName: string,
21
- values: Primitive[],
22
- ) => {
18
+ export const createValueErrorMsg = (value: any, valueName: string, values: Primitive[]) => {
23
19
  const allowedValues = new Array(values.length);
24
20
 
25
21
  for (let idx = 0, len = values.length; idx < len; idx++) {
@@ -117,11 +113,7 @@ export const isType = (value: any, type: TypeDescriptor) => {
117
113
  return value instanceof (type as [Function, string])[0];
118
114
  };
119
115
 
120
- export const createTypeErrorMsg = (
121
- value: any,
122
- valueName: string,
123
- types: TypeDescriptor[],
124
- ) => {
116
+ export const createTypeErrorMsg = (value: any, valueName: string, types: TypeDescriptor[]) => {
125
117
  const allowedTypes = new Array(types.length);
126
118
 
127
119
  for (let idx = 0, len = types.length; idx < len; idx++) {
@@ -145,41 +137,24 @@ export const createTypeErrorMsg = (
145
137
  return `${backtick(valueName)} must be of type ${joinedTypes}, but was actually of type ${backtick(getType(value))}`;
146
138
  };
147
139
 
148
- export const assertIs = (
149
- value: any,
150
- valueName: string,
151
- types: TypeDescriptor[],
152
- ) => {
140
+ export const assertIs = (value: any, valueName: string, types: TypeDescriptor[]) => {
153
141
  for (let idx = 0, len = types.length; idx < len; idx++) {
154
142
  if (isType(value, types[idx])) return;
155
143
  }
156
144
  throw new TypeError(createTypeErrorMsg(value, valueName, types));
157
145
  };
158
146
 
159
- export const assertOrUndefined = (
160
- value: any,
161
- valueName: string,
162
- types: TypeDescriptor[],
163
- ) => {
147
+ export const assertOrUndefined = (value: any, valueName: string, types: TypeDescriptor[]) => {
164
148
  assertIs(value, valueName, types.concat('undefined'));
165
149
  };
166
150
 
167
- export const assertEachIs = (
168
- values: any[],
169
- valueName: string,
170
- types: TypeDescriptor[],
171
- ) => {
151
+ export const assertEachIs = (values: any[], valueName: string, types: TypeDescriptor[]) => {
172
152
  for (let idx = 0, len = values.length; idx < len; idx++) {
173
153
  assertIs(values[idx], valueName, types);
174
154
  }
175
155
  };
176
156
 
177
- export const assertRange = (
178
- value: any,
179
- valueName: string,
180
- min: number,
181
- max: number,
182
- ) => {
157
+ export const assertRange = (value: any, valueName: string, min: number, max: number) => {
183
158
  assertIs(value, valueName, ['number']);
184
159
  assertIs(min, 'min', ['number']);
185
160
  assertIs(max, 'max', ['number']);
@@ -190,21 +165,12 @@ export const assertRange = (
190
165
  }
191
166
  };
192
167
 
193
- export const assertRangeOrUndefined = (
194
- value: any,
195
- valueName: string,
196
- min: number,
197
- max: number,
198
- ) => {
168
+ export const assertRangeOrUndefined = (value: any, valueName: string, min: number, max: number) => {
199
169
  assertIs(value, valueName, ['number', 'undefined']);
200
170
  if (typeof value === 'number') assertRange(value, valueName, min, max);
201
171
  };
202
172
 
203
- export const assertMultiple = (
204
- value: any,
205
- valueName: string,
206
- multiplier: number,
207
- ) => {
173
+ export const assertMultiple = (value: any, valueName: string, multiplier: number) => {
208
174
  assertIs(value, valueName, ['number']);
209
175
  if (value % multiplier !== 0) {
210
176
  // prettier-ignore
@@ -214,9 +180,7 @@ export const assertMultiple = (
214
180
 
215
181
  export const assertInteger = (value: any, valueName: string) => {
216
182
  if (!Number.isInteger(value)) {
217
- throw new Error(
218
- `${backtick(valueName)} must be an integer, but was actually ${value}`,
219
- );
183
+ throw new Error(`${backtick(valueName)} must be an integer, but was actually ${value}`);
220
184
  }
221
185
  };
222
186