ag-psd 30.1.1 → 31.0.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 (285) hide show
  1. package/.v8-cache/v24.13.1-x64-cf738c9d/017325ac +0 -0
  2. package/.v8-cache/v24.13.1-x64-cf738c9d/01e5e61b +0 -0
  3. package/.v8-cache/v24.13.1-x64-cf738c9d/043c7b90 +0 -0
  4. package/.v8-cache/v24.13.1-x64-cf738c9d/05135617 +0 -0
  5. package/.v8-cache/v24.13.1-x64-cf738c9d/059f8558 +0 -0
  6. package/.v8-cache/v24.13.1-x64-cf738c9d/06423db9 +0 -0
  7. package/.v8-cache/v24.13.1-x64-cf738c9d/06e765df +0 -0
  8. package/.v8-cache/v24.13.1-x64-cf738c9d/0706ecb8 +0 -0
  9. package/.v8-cache/v24.13.1-x64-cf738c9d/0930679d +0 -0
  10. package/.v8-cache/v24.13.1-x64-cf738c9d/09519a62 +0 -0
  11. package/.v8-cache/v24.13.1-x64-cf738c9d/0a6607b0 +0 -0
  12. package/.v8-cache/v24.13.1-x64-cf738c9d/0ad8fa6e +0 -0
  13. package/.v8-cache/v24.13.1-x64-cf738c9d/0d390e10 +0 -0
  14. package/.v8-cache/v24.13.1-x64-cf738c9d/0db754a7 +0 -0
  15. package/.v8-cache/v24.13.1-x64-cf738c9d/0dfa7b16 +0 -0
  16. package/.v8-cache/v24.13.1-x64-cf738c9d/0e9e09db +0 -0
  17. package/.v8-cache/v24.13.1-x64-cf738c9d/1130885f +0 -0
  18. package/.v8-cache/v24.13.1-x64-cf738c9d/1222cb8c +0 -0
  19. package/.v8-cache/v24.13.1-x64-cf738c9d/15e2c039 +0 -0
  20. package/.v8-cache/v24.13.1-x64-cf738c9d/15f0e479 +0 -0
  21. package/.v8-cache/v24.13.1-x64-cf738c9d/1a2d469d +0 -0
  22. package/.v8-cache/v24.13.1-x64-cf738c9d/1b300c82 +0 -0
  23. package/.v8-cache/v24.13.1-x64-cf738c9d/1bc3d370 +0 -0
  24. package/.v8-cache/v24.13.1-x64-cf738c9d/1e44e5af +0 -0
  25. package/.v8-cache/v24.13.1-x64-cf738c9d/1efa10a1 +0 -0
  26. package/.v8-cache/v24.13.1-x64-cf738c9d/1f6c8743 +0 -0
  27. package/.v8-cache/v24.13.1-x64-cf738c9d/20477c23 +0 -0
  28. package/.v8-cache/v24.13.1-x64-cf738c9d/20b27e40 +0 -0
  29. package/.v8-cache/v24.13.1-x64-cf738c9d/20dfa422 +0 -0
  30. package/.v8-cache/v24.13.1-x64-cf738c9d/257c62ba +0 -0
  31. package/.v8-cache/v24.13.1-x64-cf738c9d/25d60154 +0 -0
  32. package/.v8-cache/v24.13.1-x64-cf738c9d/26f822f3 +0 -0
  33. package/.v8-cache/v24.13.1-x64-cf738c9d/2a19133e +0 -0
  34. package/.v8-cache/v24.13.1-x64-cf738c9d/2a1e2a8d +0 -0
  35. package/.v8-cache/v24.13.1-x64-cf738c9d/2b02fded +0 -0
  36. package/.v8-cache/v24.13.1-x64-cf738c9d/2b069ee0 +0 -0
  37. package/.v8-cache/v24.13.1-x64-cf738c9d/2c76dc0d +0 -0
  38. package/.v8-cache/v24.13.1-x64-cf738c9d/2de09439 +0 -0
  39. package/.v8-cache/v24.13.1-x64-cf738c9d/2deb286a +0 -0
  40. package/.v8-cache/v24.13.1-x64-cf738c9d/2e44f5f0 +0 -0
  41. package/.v8-cache/v24.13.1-x64-cf738c9d/2fb229a9 +0 -0
  42. package/.v8-cache/v24.13.1-x64-cf738c9d/3144b401 +0 -0
  43. package/.v8-cache/v24.13.1-x64-cf738c9d/32018e44 +0 -0
  44. package/.v8-cache/v24.13.1-x64-cf738c9d/341402c3 +0 -0
  45. package/.v8-cache/v24.13.1-x64-cf738c9d/34e0fa2e +0 -0
  46. package/.v8-cache/v24.13.1-x64-cf738c9d/37481985 +0 -0
  47. package/.v8-cache/v24.13.1-x64-cf738c9d/3bbf643e +0 -0
  48. package/.v8-cache/v24.13.1-x64-cf738c9d/3ceff89e +0 -0
  49. package/.v8-cache/v24.13.1-x64-cf738c9d/404f5cdc +0 -0
  50. package/.v8-cache/v24.13.1-x64-cf738c9d/4087aa2b +0 -0
  51. package/.v8-cache/v24.13.1-x64-cf738c9d/4376c1f9 +0 -0
  52. package/.v8-cache/v24.13.1-x64-cf738c9d/44903df4 +0 -0
  53. package/.v8-cache/v24.13.1-x64-cf738c9d/44d58dc8 +0 -0
  54. package/.v8-cache/v24.13.1-x64-cf738c9d/4511bacf +0 -0
  55. package/.v8-cache/v24.13.1-x64-cf738c9d/47da0ce8 +0 -0
  56. package/.v8-cache/v24.13.1-x64-cf738c9d/48cd54a9 +0 -0
  57. package/.v8-cache/v24.13.1-x64-cf738c9d/49d22b79 +0 -0
  58. package/.v8-cache/v24.13.1-x64-cf738c9d/4d938476 +0 -0
  59. package/.v8-cache/v24.13.1-x64-cf738c9d/4ec6d390 +0 -0
  60. package/.v8-cache/v24.13.1-x64-cf738c9d/4f5702bd +0 -0
  61. package/.v8-cache/v24.13.1-x64-cf738c9d/514cc428 +0 -0
  62. package/.v8-cache/v24.13.1-x64-cf738c9d/557d3b42 +0 -0
  63. package/.v8-cache/v24.13.1-x64-cf738c9d/56abbff7 +0 -0
  64. package/.v8-cache/v24.13.1-x64-cf738c9d/57b540ee +0 -0
  65. package/.v8-cache/v24.13.1-x64-cf738c9d/57d3380b +0 -0
  66. package/.v8-cache/v24.13.1-x64-cf738c9d/5e20c081 +0 -0
  67. package/.v8-cache/v24.13.1-x64-cf738c9d/6024ce3f +0 -0
  68. package/.v8-cache/v24.13.1-x64-cf738c9d/61735b23 +0 -0
  69. package/.v8-cache/v24.13.1-x64-cf738c9d/63dbdb75 +0 -0
  70. package/.v8-cache/v24.13.1-x64-cf738c9d/651c4ada +0 -0
  71. package/.v8-cache/v24.13.1-x64-cf738c9d/652a0d59 +0 -0
  72. package/.v8-cache/v24.13.1-x64-cf738c9d/6a0e89ee +0 -0
  73. package/.v8-cache/v24.13.1-x64-cf738c9d/6af33b91 +0 -0
  74. package/.v8-cache/v24.13.1-x64-cf738c9d/6c2562d2 +0 -0
  75. package/.v8-cache/v24.13.1-x64-cf738c9d/6cbfc0ec +0 -0
  76. package/.v8-cache/v24.13.1-x64-cf738c9d/6dae0cfa +0 -0
  77. package/.v8-cache/v24.13.1-x64-cf738c9d/6e2529ce +0 -0
  78. package/.v8-cache/v24.13.1-x64-cf738c9d/6f08372c +0 -0
  79. package/.v8-cache/v24.13.1-x64-cf738c9d/7100ee08 +0 -0
  80. package/.v8-cache/v24.13.1-x64-cf738c9d/71df9cb3 +0 -0
  81. package/.v8-cache/v24.13.1-x64-cf738c9d/72e1d543 +0 -0
  82. package/.v8-cache/v24.13.1-x64-cf738c9d/75519c80 +0 -0
  83. package/.v8-cache/v24.13.1-x64-cf738c9d/75e41e43 +0 -0
  84. package/.v8-cache/v24.13.1-x64-cf738c9d/79bf115c +0 -0
  85. package/.v8-cache/v24.13.1-x64-cf738c9d/7a39347c +0 -0
  86. package/.v8-cache/v24.13.1-x64-cf738c9d/7b83e3d3 +0 -0
  87. package/.v8-cache/v24.13.1-x64-cf738c9d/7cd71bc5 +0 -0
  88. package/.v8-cache/v24.13.1-x64-cf738c9d/7da78512 +0 -0
  89. package/.v8-cache/v24.13.1-x64-cf738c9d/7ea06cea +0 -0
  90. package/.v8-cache/v24.13.1-x64-cf738c9d/82c3b573 +0 -0
  91. package/.v8-cache/v24.13.1-x64-cf738c9d/84c186e4 +0 -0
  92. package/.v8-cache/v24.13.1-x64-cf738c9d/8568576b +0 -0
  93. package/.v8-cache/v24.13.1-x64-cf738c9d/8607bd36 +0 -0
  94. package/.v8-cache/v24.13.1-x64-cf738c9d/87372817 +0 -0
  95. package/.v8-cache/v24.13.1-x64-cf738c9d/87cf2209 +0 -0
  96. package/.v8-cache/v24.13.1-x64-cf738c9d/882aaa05 +0 -0
  97. package/.v8-cache/v24.13.1-x64-cf738c9d/8a4d3de8 +0 -0
  98. package/.v8-cache/v24.13.1-x64-cf738c9d/8e223473 +0 -0
  99. package/.v8-cache/v24.13.1-x64-cf738c9d/92b7aefd +0 -0
  100. package/.v8-cache/v24.13.1-x64-cf738c9d/932f0770 +0 -0
  101. package/.v8-cache/v24.13.1-x64-cf738c9d/937c03a1 +0 -0
  102. package/.v8-cache/v24.13.1-x64-cf738c9d/991e4758 +0 -0
  103. package/.v8-cache/v24.13.1-x64-cf738c9d/9af658fb +0 -0
  104. package/.v8-cache/v24.13.1-x64-cf738c9d/9ed80ba5 +0 -0
  105. package/.v8-cache/v24.13.1-x64-cf738c9d/9f0dc993 +0 -0
  106. package/.v8-cache/v24.13.1-x64-cf738c9d/a19c0c4f +0 -0
  107. package/.v8-cache/v24.13.1-x64-cf738c9d/a6409d95 +0 -0
  108. package/.v8-cache/v24.13.1-x64-cf738c9d/a79a40bb +0 -0
  109. package/.v8-cache/v24.13.1-x64-cf738c9d/a7e80865 +0 -0
  110. package/.v8-cache/v24.13.1-x64-cf738c9d/ac9802c6 +0 -0
  111. package/.v8-cache/v24.13.1-x64-cf738c9d/acc36e66 +0 -0
  112. package/.v8-cache/v24.13.1-x64-cf738c9d/ad11e2dc +0 -0
  113. package/.v8-cache/v24.13.1-x64-cf738c9d/b0c8fcd8 +0 -0
  114. package/.v8-cache/v24.13.1-x64-cf738c9d/b1762958 +0 -0
  115. package/.v8-cache/v24.13.1-x64-cf738c9d/b3c2fab7 +0 -0
  116. package/.v8-cache/v24.13.1-x64-cf738c9d/b5b3329b +0 -0
  117. package/.v8-cache/v24.13.1-x64-cf738c9d/b69ed3a3 +0 -0
  118. package/.v8-cache/v24.13.1-x64-cf738c9d/b806679e +0 -0
  119. package/.v8-cache/v24.13.1-x64-cf738c9d/bc1cdd48 +0 -0
  120. package/.v8-cache/v24.13.1-x64-cf738c9d/bc7ebd1d +0 -0
  121. package/.v8-cache/v24.13.1-x64-cf738c9d/bdff1628 +0 -0
  122. package/.v8-cache/v24.13.1-x64-cf738c9d/c0b789d2 +0 -0
  123. package/.v8-cache/v24.13.1-x64-cf738c9d/c314aece +0 -0
  124. package/.v8-cache/v24.13.1-x64-cf738c9d/c399a5dc +0 -0
  125. package/.v8-cache/v24.13.1-x64-cf738c9d/c681cbc8 +0 -0
  126. package/.v8-cache/v24.13.1-x64-cf738c9d/c6834ffc +0 -0
  127. package/.v8-cache/v24.13.1-x64-cf738c9d/c6f12ed5 +0 -0
  128. package/.v8-cache/v24.13.1-x64-cf738c9d/cb0f0a3d +0 -0
  129. package/.v8-cache/v24.13.1-x64-cf738c9d/cbcb7c95 +0 -0
  130. package/.v8-cache/v24.13.1-x64-cf738c9d/cdd9107c +0 -0
  131. package/.v8-cache/v24.13.1-x64-cf738c9d/cdf2c4a3 +0 -0
  132. package/.v8-cache/v24.13.1-x64-cf738c9d/cfc49f4f +0 -0
  133. package/.v8-cache/v24.13.1-x64-cf738c9d/cff9434a +0 -0
  134. package/.v8-cache/v24.13.1-x64-cf738c9d/d02dd6f7 +0 -0
  135. package/.v8-cache/v24.13.1-x64-cf738c9d/d0507bf3 +0 -0
  136. package/.v8-cache/v24.13.1-x64-cf738c9d/d60fce19 +0 -0
  137. package/.v8-cache/v24.13.1-x64-cf738c9d/d733d619 +0 -0
  138. package/.v8-cache/v24.13.1-x64-cf738c9d/d75b7803 +0 -0
  139. package/.v8-cache/v24.13.1-x64-cf738c9d/dc86f000 +0 -0
  140. package/.v8-cache/v24.13.1-x64-cf738c9d/de74e659 +0 -0
  141. package/.v8-cache/v24.13.1-x64-cf738c9d/defa4f7f +0 -0
  142. package/.v8-cache/v24.13.1-x64-cf738c9d/e03e2acd +0 -0
  143. package/.v8-cache/v24.13.1-x64-cf738c9d/e0e3f52c +0 -0
  144. package/.v8-cache/v24.13.1-x64-cf738c9d/e158d332 +0 -0
  145. package/.v8-cache/v24.13.1-x64-cf738c9d/e6735171 +0 -0
  146. package/.v8-cache/v24.13.1-x64-cf738c9d/e6745c2b +0 -0
  147. package/.v8-cache/v24.13.1-x64-cf738c9d/e6b99945 +0 -0
  148. package/.v8-cache/v24.13.1-x64-cf738c9d/e6d8ceb8 +0 -0
  149. package/.v8-cache/v24.13.1-x64-cf738c9d/e7ffec37 +0 -0
  150. package/.v8-cache/v24.13.1-x64-cf738c9d/ea33b6de +0 -0
  151. package/.v8-cache/v24.13.1-x64-cf738c9d/eaafa3c4 +0 -0
  152. package/.v8-cache/v24.13.1-x64-cf738c9d/ebb50fca +0 -0
  153. package/.v8-cache/v24.13.1-x64-cf738c9d/ec805f2e +0 -0
  154. package/.v8-cache/v24.13.1-x64-cf738c9d/edaef8f1 +0 -0
  155. package/.v8-cache/v24.13.1-x64-cf738c9d/ee4401c8 +0 -0
  156. package/.v8-cache/v24.13.1-x64-cf738c9d/eeeebdfe +0 -0
  157. package/.v8-cache/v24.13.1-x64-cf738c9d/f3d51676 +0 -0
  158. package/.v8-cache/v24.13.1-x64-cf738c9d/f7b50a75 +0 -0
  159. package/.v8-cache/v24.13.1-x64-cf738c9d/fa58ca72 +0 -0
  160. package/.v8-cache/v24.13.1-x64-cf738c9d/fbca6276 +0 -0
  161. package/.v8-cache/v24.13.1-x64-cf738c9d/fc97d72d +0 -0
  162. package/.v8-cache/v24.13.1-x64-cf738c9d/fd0a2987 +0 -0
  163. package/CHANGELOG.md +9 -0
  164. package/README.md +65 -1
  165. package/README_PSD.md +1 -1
  166. package/TODO.md +2 -0
  167. package/dist/abr.d.ts +196 -196
  168. package/dist/abr.js +364 -378
  169. package/dist/abr.js.map +1 -1
  170. package/dist/additionalInfo.d.ts +26 -26
  171. package/dist/additionalInfo.js +3478 -3516
  172. package/dist/additionalInfo.js.map +1 -1
  173. package/dist/ase.d.ts +32 -32
  174. package/dist/ase.js +81 -82
  175. package/dist/ase.js.map +1 -1
  176. package/dist/bundle.js +12380 -12445
  177. package/dist/csh.d.ts +10 -10
  178. package/dist/csh.js +35 -47
  179. package/dist/csh.js.map +1 -1
  180. package/dist/descriptor.d.ts +601 -601
  181. package/dist/descriptor.js +2003 -2038
  182. package/dist/descriptor.js.map +1 -1
  183. package/dist/effectsHelpers.d.ts +5 -5
  184. package/dist/effectsHelpers.js +286 -308
  185. package/dist/effectsHelpers.js.map +1 -1
  186. package/dist/engineData.d.ts +2 -2
  187. package/dist/engineData.js +334 -341
  188. package/dist/engineData.js.map +1 -1
  189. package/dist/engineData2.d.ts +2 -2
  190. package/dist/engineData2.js +409 -411
  191. package/dist/engineData2.js.map +1 -1
  192. package/dist/helpers.d.ts +74 -74
  193. package/dist/helpers.js +353 -348
  194. package/dist/helpers.js.map +1 -1
  195. package/dist/imageResources.d.ts +17 -17
  196. package/dist/imageResources.js +1040 -1079
  197. package/dist/imageResources.js.map +1 -1
  198. package/dist/index.d.ts +20 -22
  199. package/dist/index.js +61 -56
  200. package/dist/index.js.map +1 -1
  201. package/dist/initializeCanvas.d.ts +1 -1
  202. package/dist/initializeCanvas.js +9 -10
  203. package/dist/initializeCanvas.js.map +1 -1
  204. package/dist/jpeg.d.ts +1 -1
  205. package/dist/jpeg.js +1020 -1021
  206. package/dist/jpeg.js.map +1 -1
  207. package/dist/psd.d.ts +1877 -1873
  208. package/dist/psd.js +45 -45
  209. package/dist/psd.js.map +1 -1
  210. package/dist/psdReader.d.ts +52 -45
  211. package/dist/psdReader.js +1385 -1293
  212. package/dist/psdReader.js.map +1 -1
  213. package/dist/psdWriter.d.ts +34 -33
  214. package/dist/psdWriter.js +834 -805
  215. package/dist/psdWriter.js.map +1 -1
  216. package/dist/text.d.ts +179 -179
  217. package/dist/text.js +552 -577
  218. package/dist/text.js.map +1 -1
  219. package/dist/utf8.d.ts +4 -6
  220. package/dist/utf8.js +156 -157
  221. package/dist/utf8.js.map +1 -1
  222. package/dist-es/abr.d.ts +196 -196
  223. package/dist-es/abr.js +364 -374
  224. package/dist-es/abr.js.map +1 -1
  225. package/dist-es/additionalInfo.d.ts +26 -26
  226. package/dist-es/additionalInfo.js +3478 -3510
  227. package/dist-es/additionalInfo.js.map +1 -1
  228. package/dist-es/ase.d.ts +32 -32
  229. package/dist-es/ase.js +81 -78
  230. package/dist-es/ase.js.map +1 -1
  231. package/dist-es/csh.d.ts +10 -10
  232. package/dist-es/csh.js +35 -43
  233. package/dist-es/csh.js.map +1 -1
  234. package/dist-es/descriptor.d.ts +601 -601
  235. package/dist-es/descriptor.js +2003 -2005
  236. package/dist-es/descriptor.js.map +1 -1
  237. package/dist-es/effectsHelpers.d.ts +5 -5
  238. package/dist-es/effectsHelpers.js +286 -303
  239. package/dist-es/effectsHelpers.js.map +1 -1
  240. package/dist-es/engineData.d.ts +2 -2
  241. package/dist-es/engineData.js +334 -336
  242. package/dist-es/engineData.js.map +1 -1
  243. package/dist-es/engineData2.d.ts +2 -2
  244. package/dist-es/engineData2.js +409 -407
  245. package/dist-es/engineData2.js.map +1 -1
  246. package/dist-es/helpers.d.ts +74 -74
  247. package/dist-es/helpers.js +353 -330
  248. package/dist-es/helpers.js.map +1 -1
  249. package/dist-es/imageResources.d.ts +17 -17
  250. package/dist-es/imageResources.js +1040 -1076
  251. package/dist-es/imageResources.js.map +1 -1
  252. package/dist-es/index.d.ts +20 -22
  253. package/dist-es/index.js +61 -33
  254. package/dist-es/index.js.map +1 -1
  255. package/dist-es/initializeCanvas.d.ts +1 -1
  256. package/dist-es/initializeCanvas.js +9 -6
  257. package/dist-es/initializeCanvas.js.map +1 -1
  258. package/dist-es/jpeg.d.ts +1 -1
  259. package/dist-es/jpeg.js +1020 -1017
  260. package/dist-es/jpeg.js.map +1 -1
  261. package/dist-es/psd.d.ts +1877 -1873
  262. package/dist-es/psd.js +45 -42
  263. package/dist-es/psd.js.map +1 -1
  264. package/dist-es/psdReader.d.ts +52 -45
  265. package/dist-es/psdReader.js +1385 -1255
  266. package/dist-es/psdReader.js.map +1 -1
  267. package/dist-es/psdWriter.d.ts +34 -33
  268. package/dist-es/psdWriter.js +834 -776
  269. package/dist-es/psdWriter.js.map +1 -1
  270. package/dist-es/text.d.ts +179 -179
  271. package/dist-es/text.js +552 -572
  272. package/dist-es/text.js.map +1 -1
  273. package/dist-es/utf8.d.ts +4 -6
  274. package/dist-es/utf8.js +156 -150
  275. package/dist-es/utf8.js.map +1 -1
  276. package/package.json +4 -3
  277. package/publish.js +24 -0
  278. package/src/additionalInfo.ts +15 -11
  279. package/src/helpers.ts +13 -3
  280. package/src/index.ts +4 -6
  281. package/src/psd.ts +4 -0
  282. package/src/psdReader.ts +136 -43
  283. package/src/psdWriter.ts +118 -24
  284. package/tsconfig-es6.json +2 -1
  285. package/tsconfig.json +5 -3
package/dist/helpers.js CHANGED
@@ -1,349 +1,354 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initializeCanvas = exports.createImageData = exports.createCanvas = exports.createCanvasFromData = exports.writeDataZipWithoutPrediction = exports.writeDataRLE = exports.writeDataRaw = exports.decodeBitmap = exports.imageDataToCanvas = exports.resetImageData = exports.hasAlpha = exports.clamp = exports.offsetForChannel = exports.MaskParams = exports.LayerMaskFlags = exports.ColorSpace = exports.createEnum = exports.revMap = exports.largeAdditionalInfoKeys = exports.layerColors = exports.toBlendMode = exports.fromBlendMode = exports.RAW_IMAGE_DATA = exports.MOCK_HANDLERS = void 0;
4
- var pako_1 = require("pako");
5
- var jpeg_1 = require("./jpeg");
6
- exports.MOCK_HANDLERS = false;
7
- exports.RAW_IMAGE_DATA = false;
8
- exports.fromBlendMode = {};
9
- exports.toBlendMode = {
10
- 'pass': 'pass through',
11
- 'norm': 'normal',
12
- 'diss': 'dissolve',
13
- 'dark': 'darken',
14
- 'mul ': 'multiply',
15
- 'idiv': 'color burn',
16
- 'lbrn': 'linear burn',
17
- 'dkCl': 'darker color',
18
- 'lite': 'lighten',
19
- 'scrn': 'screen',
20
- 'div ': 'color dodge',
21
- 'lddg': 'linear dodge',
22
- 'lgCl': 'lighter color',
23
- 'over': 'overlay',
24
- 'sLit': 'soft light',
25
- 'hLit': 'hard light',
26
- 'vLit': 'vivid light',
27
- 'lLit': 'linear light',
28
- 'pLit': 'pin light',
29
- 'hMix': 'hard mix',
30
- 'diff': 'difference',
31
- 'smud': 'exclusion',
32
- 'fsub': 'subtract',
33
- 'fdiv': 'divide',
34
- 'hue ': 'hue',
35
- 'sat ': 'saturation',
36
- 'colr': 'color',
37
- 'lum ': 'luminosity',
38
- };
39
- Object.keys(exports.toBlendMode).forEach(function (key) { return exports.fromBlendMode[exports.toBlendMode[key]] = key; });
40
- exports.layerColors = [
41
- 'none', 'red', 'orange', 'yellow', 'green', 'blue', 'violet', 'gray'
42
- ];
43
- exports.largeAdditionalInfoKeys = [
44
- // from documentation
45
- 'LMsk', 'Lr16', 'Lr32', 'Layr', 'Mt16', 'Mt32', 'Mtrn', 'Alph', 'FMsk', 'lnk2', 'FEid', 'FXid', 'PxSD',
46
- // from guessing
47
- 'cinf',
48
- ];
49
- function revMap(map) {
50
- var result = {};
51
- Object.keys(map).forEach(function (key) { return result[map[key]] = key; });
52
- return result;
53
- }
54
- exports.revMap = revMap;
55
- function createEnum(prefix, def, map) {
56
- var rev = revMap(map);
57
- var decode = function (val) {
58
- var value = val.split('.')[1];
59
- if (value && !rev[value])
60
- throw new Error("Unrecognized value for enum: '".concat(val, "'"));
61
- return rev[value] || def;
62
- };
63
- var encode = function (val) {
64
- if (val && !map[val])
65
- throw new Error("Invalid value for enum: '".concat(val, "'"));
66
- return "".concat(prefix, ".").concat(map[val] || map[def]);
67
- };
68
- return { decode: decode, encode: encode };
69
- }
70
- exports.createEnum = createEnum;
71
- var ColorSpace;
72
- (function (ColorSpace) {
73
- ColorSpace[ColorSpace["RGB"] = 0] = "RGB";
74
- ColorSpace[ColorSpace["HSB"] = 1] = "HSB";
75
- ColorSpace[ColorSpace["CMYK"] = 2] = "CMYK";
76
- ColorSpace[ColorSpace["Lab"] = 7] = "Lab";
77
- ColorSpace[ColorSpace["Grayscale"] = 8] = "Grayscale";
78
- })(ColorSpace = exports.ColorSpace || (exports.ColorSpace = {}));
79
- var LayerMaskFlags;
80
- (function (LayerMaskFlags) {
81
- LayerMaskFlags[LayerMaskFlags["PositionRelativeToLayer"] = 1] = "PositionRelativeToLayer";
82
- LayerMaskFlags[LayerMaskFlags["LayerMaskDisabled"] = 2] = "LayerMaskDisabled";
83
- LayerMaskFlags[LayerMaskFlags["InvertLayerMaskWhenBlending"] = 4] = "InvertLayerMaskWhenBlending";
84
- LayerMaskFlags[LayerMaskFlags["LayerMaskFromRenderingOtherData"] = 8] = "LayerMaskFromRenderingOtherData";
85
- LayerMaskFlags[LayerMaskFlags["MaskHasParametersAppliedToIt"] = 16] = "MaskHasParametersAppliedToIt";
86
- })(LayerMaskFlags = exports.LayerMaskFlags || (exports.LayerMaskFlags = {}));
87
- var MaskParams;
88
- (function (MaskParams) {
89
- MaskParams[MaskParams["UserMaskDensity"] = 1] = "UserMaskDensity";
90
- MaskParams[MaskParams["UserMaskFeather"] = 2] = "UserMaskFeather";
91
- MaskParams[MaskParams["VectorMaskDensity"] = 4] = "VectorMaskDensity";
92
- MaskParams[MaskParams["VectorMaskFeather"] = 8] = "VectorMaskFeather";
93
- })(MaskParams = exports.MaskParams || (exports.MaskParams = {}));
94
- function offsetForChannel(channelId, cmyk) {
95
- switch (channelId) {
96
- case 0 /* ChannelID.Color0 */: return 0;
97
- case 1 /* ChannelID.Color1 */: return 1;
98
- case 2 /* ChannelID.Color2 */: return 2;
99
- case 3 /* ChannelID.Color3 */: return cmyk ? 3 : channelId + 1;
100
- case -1 /* ChannelID.Transparency */: return cmyk ? 4 : 3;
101
- default: return channelId + 1;
102
- }
103
- }
104
- exports.offsetForChannel = offsetForChannel;
105
- function clamp(value, min, max) {
106
- return value < min ? min : (value > max ? max : value);
107
- }
108
- exports.clamp = clamp;
109
- function hasAlpha(data) {
110
- var size = data.width * data.height * 4;
111
- for (var i = 3; i < size; i += 4) {
112
- if (data.data[i] !== 255) {
113
- return true;
114
- }
115
- }
116
- return false;
117
- }
118
- exports.hasAlpha = hasAlpha;
119
- function resetImageData(_a) {
120
- var data = _a.data;
121
- var alpha = (data instanceof Float32Array) ? 1.0 : ((data instanceof Uint16Array) ? 0xffff : 0xff);
122
- for (var p = 0, size = data.length | 0; p < size; p = (p + 4) | 0) {
123
- data[p + 0] = 0;
124
- data[p + 1] = 0;
125
- data[p + 2] = 0;
126
- data[p + 3] = alpha;
127
- }
128
- }
129
- exports.resetImageData = resetImageData;
130
- function imageDataToCanvas(pixelData) {
131
- var canvas = (0, exports.createCanvas)(pixelData.width, pixelData.height);
132
- var imageData;
133
- if (pixelData.data instanceof Uint8ClampedArray) {
134
- imageData = pixelData;
135
- }
136
- else {
137
- imageData = (0, exports.createImageData)(pixelData.width, pixelData.height);
138
- var src = pixelData.data;
139
- var dst = imageData.data;
140
- if (src instanceof Float32Array) {
141
- for (var i = 0, size = src.length; i < size; i += 4) {
142
- dst[i + 0] = Math.round(Math.pow(src[i + 0], 1.0 / 2.2) * 255);
143
- dst[i + 1] = Math.round(Math.pow(src[i + 1], 1.0 / 2.2) * 255);
144
- dst[i + 2] = Math.round(Math.pow(src[i + 2], 1.0 / 2.2) * 255);
145
- dst[i + 3] = Math.round(src[i + 3] * 255);
146
- }
147
- }
148
- else {
149
- var shift = (src instanceof Uint16Array) ? 8 : 0;
150
- for (var i = 0, size = src.length; i < size; i++) {
151
- dst[i] = src[i] >>> shift;
152
- }
153
- }
154
- }
155
- canvas.getContext('2d').putImageData(imageData, 0, 0);
156
- return canvas;
157
- }
158
- exports.imageDataToCanvas = imageDataToCanvas;
159
- function decodeBitmap(input, output, width, height) {
160
- if (!(input instanceof Uint8Array || input instanceof Uint8ClampedArray))
161
- throw new Error('Invalid bit depth');
162
- for (var y = 0, p = 0, o = 0; y < height; y++) {
163
- for (var x = 0; x < width;) {
164
- var b = input[o++];
165
- for (var i = 0; i < 8 && x < width; i++, x++, p += 4) {
166
- var v = b & 0x80 ? 0 : 255;
167
- b = b << 1;
168
- output[p + 0] = v;
169
- output[p + 1] = v;
170
- output[p + 2] = v;
171
- output[p + 3] = 255;
172
- }
173
- }
174
- }
175
- }
176
- exports.decodeBitmap = decodeBitmap;
177
- function writeDataRaw(data, offset, width, height) {
178
- if (!width || !height)
179
- return undefined;
180
- var array = new Uint8Array(width * height);
181
- for (var i = 0; i < array.length; i++) {
182
- array[i] = data.data[i * 4 + offset];
183
- }
184
- return array;
185
- }
186
- exports.writeDataRaw = writeDataRaw;
187
- function writeDataRLE(buffer, _a, offsets, large) {
188
- var data = _a.data, width = _a.width, height = _a.height;
189
- if (!width || !height)
190
- return undefined;
191
- var stride = (4 * width) | 0;
192
- var ol = 0;
193
- var o = (offsets.length * (large ? 4 : 2) * height) | 0;
194
- for (var _i = 0, offsets_1 = offsets; _i < offsets_1.length; _i++) {
195
- var offset = offsets_1[_i];
196
- for (var y = 0, p = offset | 0; y < height; y++) {
197
- var strideStart = (y * stride) | 0;
198
- var strideEnd = (strideStart + stride) | 0;
199
- var lastIndex = (strideEnd + offset - 4) | 0;
200
- var lastIndex2 = (lastIndex - 4) | 0;
201
- var startOffset = o;
202
- for (p = (strideStart + offset) | 0; p < strideEnd; p = (p + 4) | 0) {
203
- if (p < lastIndex2) {
204
- var value1 = data[p];
205
- p = (p + 4) | 0;
206
- var value2 = data[p];
207
- p = (p + 4) | 0;
208
- var value3 = data[p];
209
- if (value1 === value2 && value1 === value3) {
210
- var count = 3;
211
- while (count < 128 && p < lastIndex && data[(p + 4) | 0] === value1) {
212
- count = (count + 1) | 0;
213
- p = (p + 4) | 0;
214
- }
215
- buffer[o++] = 1 - count;
216
- buffer[o++] = value1;
217
- }
218
- else {
219
- var countIndex = o;
220
- var writeLast = true;
221
- var count = 1;
222
- buffer[o++] = 0;
223
- buffer[o++] = value1;
224
- while (p < lastIndex && count < 128) {
225
- p = (p + 4) | 0;
226
- value1 = value2;
227
- value2 = value3;
228
- value3 = data[p];
229
- if (value1 === value2 && value1 === value3) {
230
- p = (p - 12) | 0;
231
- writeLast = false;
232
- break;
233
- }
234
- else {
235
- count++;
236
- buffer[o++] = value1;
237
- }
238
- }
239
- if (writeLast) {
240
- if (count < 127) {
241
- buffer[o++] = value2;
242
- buffer[o++] = value3;
243
- count += 2;
244
- }
245
- else if (count < 128) {
246
- buffer[o++] = value2;
247
- count++;
248
- p = (p - 4) | 0;
249
- }
250
- else {
251
- p = (p - 8) | 0;
252
- }
253
- }
254
- buffer[countIndex] = count - 1;
255
- }
256
- }
257
- else if (p === lastIndex) {
258
- buffer[o++] = 0;
259
- buffer[o++] = data[p];
260
- }
261
- else { // p === lastIndex2
262
- buffer[o++] = 1;
263
- buffer[o++] = data[p];
264
- p = (p + 4) | 0;
265
- buffer[o++] = data[p];
266
- }
267
- }
268
- var length_1 = o - startOffset;
269
- if (large) {
270
- buffer[ol++] = (length_1 >> 24) & 0xff;
271
- buffer[ol++] = (length_1 >> 16) & 0xff;
272
- }
273
- buffer[ol++] = (length_1 >> 8) & 0xff;
274
- buffer[ol++] = length_1 & 0xff;
275
- }
276
- }
277
- return buffer.slice(0, o);
278
- }
279
- exports.writeDataRLE = writeDataRLE;
280
- function writeDataZipWithoutPrediction(_a, offsets) {
281
- var data = _a.data, width = _a.width, height = _a.height;
282
- var size = width * height;
283
- var channel = new Uint8Array(size);
284
- var buffers = [];
285
- var totalLength = 0;
286
- for (var _i = 0, offsets_2 = offsets; _i < offsets_2.length; _i++) {
287
- var offset = offsets_2[_i];
288
- for (var i = 0, o = offset; i < size; i++, o += 4) {
289
- channel[i] = data[o];
290
- }
291
- var buffer = (0, pako_1.deflate)(channel);
292
- buffers.push(buffer);
293
- totalLength += buffer.byteLength;
294
- }
295
- if (buffers.length > 0) {
296
- var buffer = new Uint8Array(totalLength);
297
- var offset = 0;
298
- for (var _b = 0, buffers_1 = buffers; _b < buffers_1.length; _b++) {
299
- var b = buffers_1[_b];
300
- buffer.set(b, offset);
301
- offset += b.byteLength;
302
- }
303
- return buffer;
304
- }
305
- else {
306
- return buffers[0];
307
- }
308
- }
309
- exports.writeDataZipWithoutPrediction = writeDataZipWithoutPrediction;
310
- function createCanvasFromData(data) {
311
- var canvas = (0, exports.createCanvas)(100, 100);
312
- try {
313
- var context_1 = canvas.getContext('2d');
314
- var imageData = (0, jpeg_1.decodeJpeg)(data, function (w, h) { return context_1.createImageData(w, h); });
315
- canvas.width = imageData.width;
316
- canvas.height = imageData.height;
317
- context_1.putImageData(imageData, 0, 0);
318
- }
319
- catch (e) {
320
- console.error('JPEG decompression error', e.message);
321
- }
322
- return canvas;
323
- }
324
- exports.createCanvasFromData = createCanvasFromData;
325
- var createCanvas = function () {
326
- throw new Error('Canvas not initialized, use initializeCanvas method to set up createCanvas method');
327
- };
328
- exports.createCanvas = createCanvas;
329
- var tempCanvas = undefined;
330
- var createImageData = function (width, height) {
331
- if (!tempCanvas)
332
- tempCanvas = (0, exports.createCanvas)(1, 1);
333
- return tempCanvas.getContext('2d').createImageData(width, height);
334
- };
335
- exports.createImageData = createImageData;
336
- if (typeof document !== 'undefined') {
337
- exports.createCanvas = function (width, height) {
338
- var canvas = document.createElement('canvas');
339
- canvas.width = width;
340
- canvas.height = height;
341
- return canvas;
342
- };
343
- }
344
- function initializeCanvas(createCanvasMethod, createImageDataMethod) {
345
- exports.createCanvas = createCanvasMethod;
346
- exports.createImageData = createImageDataMethod || exports.createImageData;
347
- }
348
- exports.initializeCanvas = initializeCanvas;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createImageData = exports.createCanvas = exports.MaskParams = exports.LayerMaskFlags = exports.ColorSpace = exports.largeAdditionalInfoKeys = exports.layerColors = exports.toBlendMode = exports.fromBlendMode = exports.RAW_IMAGE_DATA = exports.MOCK_HANDLERS = void 0;
4
+ exports.revMap = revMap;
5
+ exports.createEnum = createEnum;
6
+ exports.offsetForChannel = offsetForChannel;
7
+ exports.clamp = clamp;
8
+ exports.hasAlpha = hasAlpha;
9
+ exports.resetImageData = resetImageData;
10
+ exports.imageDataToCanvas = imageDataToCanvas;
11
+ exports.decodeBitmap = decodeBitmap;
12
+ exports.writeDataRaw = writeDataRaw;
13
+ exports.writeDataRLE = writeDataRLE;
14
+ exports.writeDataZipWithoutPrediction = writeDataZipWithoutPrediction;
15
+ exports.createCanvasFromData = createCanvasFromData;
16
+ exports.initializeCanvas = initializeCanvas;
17
+ const pako_1 = require("pako");
18
+ const jpeg_1 = require("./jpeg");
19
+ exports.MOCK_HANDLERS = false;
20
+ exports.RAW_IMAGE_DATA = false;
21
+ exports.fromBlendMode = {};
22
+ exports.toBlendMode = {
23
+ 'pass': 'pass through',
24
+ 'norm': 'normal',
25
+ 'diss': 'dissolve',
26
+ 'dark': 'darken',
27
+ 'mul ': 'multiply',
28
+ 'idiv': 'color burn',
29
+ 'lbrn': 'linear burn',
30
+ 'dkCl': 'darker color',
31
+ 'lite': 'lighten',
32
+ 'scrn': 'screen',
33
+ 'div ': 'color dodge',
34
+ 'lddg': 'linear dodge',
35
+ 'lgCl': 'lighter color',
36
+ 'over': 'overlay',
37
+ 'sLit': 'soft light',
38
+ 'hLit': 'hard light',
39
+ 'vLit': 'vivid light',
40
+ 'lLit': 'linear light',
41
+ 'pLit': 'pin light',
42
+ 'hMix': 'hard mix',
43
+ 'diff': 'difference',
44
+ 'smud': 'exclusion',
45
+ 'fsub': 'subtract',
46
+ 'fdiv': 'divide',
47
+ 'hue ': 'hue',
48
+ 'sat ': 'saturation',
49
+ 'colr': 'color',
50
+ 'lum ': 'luminosity',
51
+ };
52
+ Object.keys(exports.toBlendMode).forEach(key => exports.fromBlendMode[exports.toBlendMode[key]] = key);
53
+ exports.layerColors = [
54
+ 'none', 'red', 'orange', 'yellow', 'green', 'blue', 'violet', 'gray'
55
+ ];
56
+ exports.largeAdditionalInfoKeys = [
57
+ // from documentation
58
+ 'LMsk', 'Lr16', 'Lr32', 'Layr', 'Mt16', 'Mt32', 'Mtrn', 'Alph', 'FMsk', 'lnk2', 'FEid', 'FXid', 'PxSD',
59
+ // from guessing
60
+ 'cinf',
61
+ ];
62
+ function revMap(map) {
63
+ const result = {};
64
+ Object.keys(map).forEach(key => result[map[key]] = key);
65
+ return result;
66
+ }
67
+ function createEnum(prefix, def, map) {
68
+ const rev = revMap(map);
69
+ const decode = (val) => {
70
+ const value = val.split('.')[1];
71
+ if (value && !rev[value]) {
72
+ // Photoshop 2026 writes the long-form enum value instead of the historical 4-char code
73
+ // (the map VALUE, e.g. 'BlnM.Nrml'). Two long-form shapes occur:
74
+ // - single-word modes use the map KEY verbatim: 'BlnM.normal'
75
+ // - multi-word modes use a camelCase id whose map key is space-separated:
76
+ // 'BlnM.colorBurn' -> 'color burn'; normalize camelCase before giving up.
77
+ if (Object.prototype.hasOwnProperty.call(map, value))
78
+ return value;
79
+ const spaced = value.replace(/([A-Z])/g, ' $1').toLowerCase();
80
+ if (Object.prototype.hasOwnProperty.call(map, spaced))
81
+ return spaced;
82
+ throw new Error(`Unrecognized value for enum: '${val}'`);
83
+ }
84
+ return rev[value] || def;
85
+ };
86
+ const encode = (val) => {
87
+ if (val && !map[val])
88
+ throw new Error(`Invalid value for enum: '${val}'`);
89
+ return `${prefix}.${map[val] || map[def]}`;
90
+ };
91
+ return { decode, encode };
92
+ }
93
+ var ColorSpace;
94
+ (function (ColorSpace) {
95
+ ColorSpace[ColorSpace["RGB"] = 0] = "RGB";
96
+ ColorSpace[ColorSpace["HSB"] = 1] = "HSB";
97
+ ColorSpace[ColorSpace["CMYK"] = 2] = "CMYK";
98
+ ColorSpace[ColorSpace["Lab"] = 7] = "Lab";
99
+ ColorSpace[ColorSpace["Grayscale"] = 8] = "Grayscale";
100
+ })(ColorSpace || (exports.ColorSpace = ColorSpace = {}));
101
+ var LayerMaskFlags;
102
+ (function (LayerMaskFlags) {
103
+ LayerMaskFlags[LayerMaskFlags["PositionRelativeToLayer"] = 1] = "PositionRelativeToLayer";
104
+ LayerMaskFlags[LayerMaskFlags["LayerMaskDisabled"] = 2] = "LayerMaskDisabled";
105
+ LayerMaskFlags[LayerMaskFlags["InvertLayerMaskWhenBlending"] = 4] = "InvertLayerMaskWhenBlending";
106
+ LayerMaskFlags[LayerMaskFlags["LayerMaskFromRenderingOtherData"] = 8] = "LayerMaskFromRenderingOtherData";
107
+ LayerMaskFlags[LayerMaskFlags["MaskHasParametersAppliedToIt"] = 16] = "MaskHasParametersAppliedToIt";
108
+ })(LayerMaskFlags || (exports.LayerMaskFlags = LayerMaskFlags = {}));
109
+ var MaskParams;
110
+ (function (MaskParams) {
111
+ MaskParams[MaskParams["UserMaskDensity"] = 1] = "UserMaskDensity";
112
+ MaskParams[MaskParams["UserMaskFeather"] = 2] = "UserMaskFeather";
113
+ MaskParams[MaskParams["VectorMaskDensity"] = 4] = "VectorMaskDensity";
114
+ MaskParams[MaskParams["VectorMaskFeather"] = 8] = "VectorMaskFeather";
115
+ })(MaskParams || (exports.MaskParams = MaskParams = {}));
116
+ function offsetForChannel(channelId, cmyk) {
117
+ switch (channelId) {
118
+ case 0 /* ChannelID.Color0 */: return 0;
119
+ case 1 /* ChannelID.Color1 */: return 1;
120
+ case 2 /* ChannelID.Color2 */: return 2;
121
+ case 3 /* ChannelID.Color3 */: return cmyk ? 3 : channelId + 1;
122
+ case -1 /* ChannelID.Transparency */: return cmyk ? 4 : 3;
123
+ default: return channelId + 1;
124
+ }
125
+ }
126
+ function clamp(value, min, max) {
127
+ return value < min ? min : (value > max ? max : value);
128
+ }
129
+ function hasAlpha(data) {
130
+ const size = data.width * data.height * 4;
131
+ for (let i = 3; i < size; i += 4) {
132
+ if (data.data[i] !== 255) {
133
+ return true;
134
+ }
135
+ }
136
+ return false;
137
+ }
138
+ function resetImageData({ data }) {
139
+ const alpha = (data instanceof Float32Array) ? 1.0 : ((data instanceof Uint16Array) ? 0xffff : 0xff);
140
+ for (let p = 0, size = data.length | 0; p < size; p = (p + 4) | 0) {
141
+ data[p + 0] = 0;
142
+ data[p + 1] = 0;
143
+ data[p + 2] = 0;
144
+ data[p + 3] = alpha;
145
+ }
146
+ }
147
+ function imageDataToCanvas(pixelData) {
148
+ const canvas = (0, exports.createCanvas)(pixelData.width, pixelData.height);
149
+ let imageData;
150
+ if (pixelData.data instanceof Uint8ClampedArray) {
151
+ imageData = pixelData;
152
+ }
153
+ else {
154
+ imageData = (0, exports.createImageData)(pixelData.width, pixelData.height);
155
+ const src = pixelData.data;
156
+ const dst = imageData.data;
157
+ if (src instanceof Float32Array) {
158
+ for (let i = 0, size = src.length; i < size; i += 4) {
159
+ dst[i + 0] = Math.round(Math.pow(src[i + 0], 1.0 / 2.2) * 255);
160
+ dst[i + 1] = Math.round(Math.pow(src[i + 1], 1.0 / 2.2) * 255);
161
+ dst[i + 2] = Math.round(Math.pow(src[i + 2], 1.0 / 2.2) * 255);
162
+ dst[i + 3] = Math.round(src[i + 3] * 255);
163
+ }
164
+ }
165
+ else {
166
+ const shift = (src instanceof Uint16Array) ? 8 : 0;
167
+ for (let i = 0, size = src.length; i < size; i++) {
168
+ dst[i] = src[i] >>> shift;
169
+ }
170
+ }
171
+ }
172
+ canvas.getContext('2d').putImageData(imageData, 0, 0);
173
+ return canvas;
174
+ }
175
+ function decodeBitmap(input, output, width, height) {
176
+ if (!(input instanceof Uint8Array || input instanceof Uint8ClampedArray))
177
+ throw new Error('Invalid bit depth');
178
+ for (let y = 0, p = 0, o = 0; y < height; y++) {
179
+ for (let x = 0; x < width;) {
180
+ let b = input[o++];
181
+ for (let i = 0; i < 8 && x < width; i++, x++, p += 4) {
182
+ const v = b & 0x80 ? 0 : 255;
183
+ b = b << 1;
184
+ output[p + 0] = v;
185
+ output[p + 1] = v;
186
+ output[p + 2] = v;
187
+ output[p + 3] = 255;
188
+ }
189
+ }
190
+ }
191
+ }
192
+ function writeDataRaw(data, offset, width, height) {
193
+ if (!width || !height)
194
+ return undefined;
195
+ const array = new Uint8Array(width * height);
196
+ for (let i = 0; i < array.length; i++) {
197
+ array[i] = data.data[i * 4 + offset];
198
+ }
199
+ return array;
200
+ }
201
+ function writeDataRLE(buffer, { data, width, height }, offsets, large) {
202
+ if (!width || !height)
203
+ return undefined;
204
+ const stride = (4 * width) | 0;
205
+ let ol = 0;
206
+ let o = (offsets.length * (large ? 4 : 2) * height) | 0;
207
+ for (const offset of offsets) {
208
+ for (let y = 0, p = offset | 0; y < height; y++) {
209
+ const strideStart = (y * stride) | 0;
210
+ const strideEnd = (strideStart + stride) | 0;
211
+ const lastIndex = (strideEnd + offset - 4) | 0;
212
+ const lastIndex2 = (lastIndex - 4) | 0;
213
+ const startOffset = o;
214
+ for (p = (strideStart + offset) | 0; p < strideEnd; p = (p + 4) | 0) {
215
+ if (p < lastIndex2) {
216
+ let value1 = data[p];
217
+ p = (p + 4) | 0;
218
+ let value2 = data[p];
219
+ p = (p + 4) | 0;
220
+ let value3 = data[p];
221
+ if (value1 === value2 && value1 === value3) {
222
+ let count = 3;
223
+ while (count < 128 && p < lastIndex && data[(p + 4) | 0] === value1) {
224
+ count = (count + 1) | 0;
225
+ p = (p + 4) | 0;
226
+ }
227
+ buffer[o++] = 1 - count;
228
+ buffer[o++] = value1;
229
+ }
230
+ else {
231
+ const countIndex = o;
232
+ let writeLast = true;
233
+ let count = 1;
234
+ buffer[o++] = 0;
235
+ buffer[o++] = value1;
236
+ while (p < lastIndex && count < 128) {
237
+ p = (p + 4) | 0;
238
+ value1 = value2;
239
+ value2 = value3;
240
+ value3 = data[p];
241
+ if (value1 === value2 && value1 === value3) {
242
+ p = (p - 12) | 0;
243
+ writeLast = false;
244
+ break;
245
+ }
246
+ else {
247
+ count++;
248
+ buffer[o++] = value1;
249
+ }
250
+ }
251
+ if (writeLast) {
252
+ if (count < 127) {
253
+ buffer[o++] = value2;
254
+ buffer[o++] = value3;
255
+ count += 2;
256
+ }
257
+ else if (count < 128) {
258
+ buffer[o++] = value2;
259
+ count++;
260
+ p = (p - 4) | 0;
261
+ }
262
+ else {
263
+ p = (p - 8) | 0;
264
+ }
265
+ }
266
+ buffer[countIndex] = count - 1;
267
+ }
268
+ }
269
+ else if (p === lastIndex) {
270
+ buffer[o++] = 0;
271
+ buffer[o++] = data[p];
272
+ }
273
+ else { // p === lastIndex2
274
+ buffer[o++] = 1;
275
+ buffer[o++] = data[p];
276
+ p = (p + 4) | 0;
277
+ buffer[o++] = data[p];
278
+ }
279
+ }
280
+ const length = o - startOffset;
281
+ if (large) {
282
+ buffer[ol++] = (length >> 24) & 0xff;
283
+ buffer[ol++] = (length >> 16) & 0xff;
284
+ }
285
+ buffer[ol++] = (length >> 8) & 0xff;
286
+ buffer[ol++] = length & 0xff;
287
+ }
288
+ }
289
+ return buffer.slice(0, o);
290
+ }
291
+ function writeDataZipWithoutPrediction({ data, width, height }, offsets) {
292
+ const size = width * height;
293
+ const channel = new Uint8Array(size);
294
+ const buffers = [];
295
+ let totalLength = 0;
296
+ for (const offset of offsets) {
297
+ for (let i = 0, o = offset; i < size; i++, o += 4) {
298
+ channel[i] = data[o];
299
+ }
300
+ const buffer = (0, pako_1.deflate)(channel);
301
+ buffers.push(buffer);
302
+ totalLength += buffer.byteLength;
303
+ }
304
+ if (buffers.length > 0) {
305
+ const buffer = new Uint8Array(totalLength);
306
+ let offset = 0;
307
+ for (const b of buffers) {
308
+ buffer.set(b, offset);
309
+ offset += b.byteLength;
310
+ }
311
+ return buffer;
312
+ }
313
+ else {
314
+ return buffers[0];
315
+ }
316
+ }
317
+ function createCanvasFromData(data) {
318
+ const canvas = (0, exports.createCanvas)(100, 100);
319
+ try {
320
+ const context = canvas.getContext('2d');
321
+ const imageData = (0, jpeg_1.decodeJpeg)(data, (w, h) => context.createImageData(w, h));
322
+ canvas.width = imageData.width;
323
+ canvas.height = imageData.height;
324
+ context.putImageData(imageData, 0, 0);
325
+ }
326
+ catch (e) {
327
+ console.error('JPEG decompression error', e.message);
328
+ }
329
+ return canvas;
330
+ }
331
+ let createCanvas = () => {
332
+ throw new Error('Canvas not initialized, use initializeCanvas method to set up createCanvas method');
333
+ };
334
+ exports.createCanvas = createCanvas;
335
+ let tempCanvas = undefined;
336
+ let createImageData = (width, height) => {
337
+ if (!tempCanvas)
338
+ tempCanvas = (0, exports.createCanvas)(1, 1);
339
+ return tempCanvas.getContext('2d').createImageData(width, height);
340
+ };
341
+ exports.createImageData = createImageData;
342
+ if (typeof document !== 'undefined') {
343
+ exports.createCanvas = (width, height) => {
344
+ const canvas = document.createElement('canvas');
345
+ canvas.width = width;
346
+ canvas.height = height;
347
+ return canvas;
348
+ };
349
+ }
350
+ function initializeCanvas(createCanvasMethod, createImageDataMethod) {
351
+ exports.createCanvas = createCanvasMethod;
352
+ exports.createImageData = createImageDataMethod || exports.createImageData;
353
+ }
349
354
  //# sourceMappingURL=helpers.js.map