ag-psd 30.1.0 → 30.2.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.
- package/.v8-cache/v24.13.1-x64-cf738c9d/009dd0f9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/00b1f5b3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/00c6cb60 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/012a5efb +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0139d484 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/017325ac +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0177a40e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/01b3f3f4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/01bdeed3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/01f7b9de +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0236a758 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/02a30dfa +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/031f460b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0333d7ea +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/034093e8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/039f982e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/04176846 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/043c7b90 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/04b14496 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/04d897f8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/04e05fdc +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/05135617 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0561f0be +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/056407a9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0585b7bb +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/059f8558 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/061ebf08 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/063a346e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/064f1d49 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/06ba9920 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/06cc3e45 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/07041e8e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0706ecb8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/079604d9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/08974114 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/092e59e1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/09310bc7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/09f3c2a8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/09fc8723 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/09feaf7d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0a1ba216 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0a49cac0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0aa8bbea +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0ab1f804 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0aba29f8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0b8c6a90 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0bdcb794 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0c4430ac +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0c9093b8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0d34de12 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0d38cfd1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0d70b7b0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0d87ffc1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0dad9f05 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0db754a7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0e15ac0b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0e41911c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0e897f0a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0ec2e273 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0f0a2045 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/0fa99ede +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/106347f0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1065c98c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/10a8a753 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1130885f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/119193a0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/11b78352 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/12673319 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/12804b67 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/12beb862 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1307c983 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/13aac3d1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/14015561 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/14cc39f9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1527d78f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/15453dd8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/15c2367e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/15c56ccd +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/15cdfde8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/15f0e479 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/15fa490d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/16335fd7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/16b272b6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/16b8f2ef +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1736ded7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/18b392e3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/18ff51f0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/190065fe +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1952de1c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1984fc07 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/198cbb75 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/19f197ad +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1a1a9288 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1a706b3a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1adc81af +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1ba735e4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1bfd6921 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1c0093b3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1c5927f8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1cb18bda +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1cd3fbd2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1cf4fa03 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1cf76c75 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1d25c7c3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1dfadf76 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1e01f894 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1e380a67 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1e45c155 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1ee5b179 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1f18235c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1f73dfa6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1fb8f4f3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/1ff009c0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/20477c23 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/205c8d02 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/20dfa422 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/213b633e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/21499fa6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2199f144 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/21bbd1a3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/21c45924 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2202150b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2227a346 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/225be800 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2279b968 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/227b9002 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/22b26067 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2345c812 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/235d70e1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/23ec1c98 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/23fa616f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/24011fb1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/24827a8b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/248ec463 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/24962a7d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/249d7114 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/24a17b0e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/24b9377d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/24fd2500 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/25457eb9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2629d78c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2669ca76 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/26f5e7e4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/274aed80 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2751ff58 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/27fb2f1a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/28cdd8c1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/28ffbc1d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/29251634 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/292ec490 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/294ed662 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/298ea736 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/29a97453 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2a19133e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2a3698c0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2b009cbc +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2b069ee0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2b0e69c4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2b1ee578 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2c13aee1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2c9c08f1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2d3d90e6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2dac7892 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2dbff7fb +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2de09439 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2e0a55d8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2e370869 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2e44f5f0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2f6fabd1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/2fb229a9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/31300574 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3144b401 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/317ae0d4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3201dcd0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/320dd8dd +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3294059a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/32e3b62d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/330fd82d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3322d88a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3348c916 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3348e276 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/336576f5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/33764eac +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/339314da +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/340f9315 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/342c77d2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/347b6177 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/34b6fd2d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/34c54738 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/34cb7184 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/356622b9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/35fef963 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3603e10e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/36185631 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3634e753 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/36ae29db +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/37481985 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/37742c37 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3820c8c0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/387fb0ff +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/38e9bdfd +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/394a60fb +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/39714119 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/399c1ab6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/39e0ae03 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/39f6ef83 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3ab47fb5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3b1cee61 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3b4063c0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3b489018 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3bb077a9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3c9ec024 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3d4e7bc3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3d8e182d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3df413b6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3dfbce0f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3e51b96f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3eca45f7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3ed4ad9f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3f0830f9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3f144a4d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3f4a10a4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3f4c8384 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3f71ab30 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3fb24e11 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/3fb61831 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/400e6cf6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/40765571 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/409c7c13 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/40c82fae +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/411e98e3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4217fe8d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/42686149 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/42856082 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/42d38f49 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/42e206b2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4352d5f1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/437a9e59 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/43964317 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/43e12804 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/43fdeeec +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4446168f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/44795769 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/447f0340 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4511bacf +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/45543795 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/455e7876 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/45e61dc2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/45ec2e66 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/45fa217d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4638c1db +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/463dd272 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/46b235d2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/46b5351a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/46d1f5b9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4710b21d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/474c8493 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/490172a9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/49726501 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4995c0b1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/49d22b79 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/49f938d6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/49ff164c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4a183420 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4ab9082a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4ac3fb9e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4ace1785 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4aed9772 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4b1199d5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4b356f9b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4b3da816 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4c1d2edf +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4ca5a788 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4cbda706 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4ce607f0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4d365bf4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4d495a5d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4d730019 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4e1d2a71 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4ef2a13d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4f5702bd +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4fc36e57 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/4feb5610 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/501e77a5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/505db7d5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/50ad7efb +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/514cc428 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/51a39ff2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/51d30dd4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/51f49f29 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/521513e1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/523d6845 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/528e7353 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/532d1925 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/533f1f72 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/534e6847 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/535532ea +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/537a1162 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5428aebe +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/54326f6e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5478a1e3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/54d564f4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5590be3b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/55cba4b4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/55d54880 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/55e129df +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/56094390 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/56193de5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/56292b7c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/564fad02 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/56ef5751 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/578dce6e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/57d3380b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/57eba46b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5842e92c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5851fcad +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/58b3dc20 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/590c3151 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/597241c0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/59a01bfc +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/59dade53 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5a00835c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5a6e8a36 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5a94b2d4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5aa233d1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5aaed4b5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5ac52fda +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5b058fc0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5b9982e1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5bf0ebb3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5c067259 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5c519b2e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5c58cf52 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5c860b06 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5ca35af7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5cc2a5f2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5dbf0efa +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5dcf8815 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5df98dff +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5e0084dd +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5e0ade49 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5e3254b7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5e3d9351 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5ef36bb9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/5f7e2d51 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6003d22a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6024ce3f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/603d1a09 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6099b85c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/60c098f5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/61735b23 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/61baeade +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/61eaf84a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/61f394a9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/63b7b86c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/63dbdb75 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/642efab6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/64576716 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/64feda57 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6727e91e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/676dd1c7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6785b651 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/680f87b7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/684fc8f0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/68b405be +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6934e31c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/69ebf1f8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6a4adaa4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6ab75ab9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6aedce9c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6b22f01c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6b6ea009 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6b964097 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6bebb7f2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6c2dc97b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6c323752 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6c419a62 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6c8191df +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6cbfc0ec +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6d0ed167 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6d38b642 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6e07c342 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6ee04204 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6f08372c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/6ff27b81 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/70a89c43 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7100ee08 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/711557af +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/71df9cb3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/71e82eb3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/721bcb05 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/73353274 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/73a7e632 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/73eb8d30 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/745708c8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/745a3f3f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7480f11b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/74ba3a2a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/750e2446 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/755be999 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/75d38e6f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/75e41e43 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/76098d14 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/767481d0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/768ba9a5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7695e4ef +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/76acfbad +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/77b3177e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/77e1cf2d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/77fc558f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/782e025a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/79348a96 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7999ceb5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/79cb00a3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/79d1fd4f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/79e9b74f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/79fbbd38 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7a49530a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7a7e7427 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7ae33d88 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7bace88a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7bb47bcb +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7bc2abb7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7c5571fd +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7c85800f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7ca4a550 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7d30017d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7dc31703 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7dc41c02 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7df6f53b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7e0c196c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7ea06cea +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7eb7072b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7f05c6bd +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7f1a5577 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7f33fee5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7f8ed7c6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/7fe0e38a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/802505aa +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8050e4de +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/807976df +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/80eb87a8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/80f57bae +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/813658cd +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/81576ef6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/817f3f23 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/823b7456 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/825036eb +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/827728c6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8355397b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8405c894 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/84be2a1f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/84c0614e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/851e3a3d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8568576b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/85b22357 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/85d87999 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/862d95a0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/863b37e7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8688c78e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/86f29b9c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8721b262 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/87372817 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/87486dd9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/877ba975 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/87815309 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/87cf2209 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8860e0d2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8867ad36 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8881536d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/88f399e4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8909e62b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/89d161f1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/89df437d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8a0422da +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8a0d857e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8a3f3a1c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8a7beab5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8a9de363 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8ac7c507 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8b02de67 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8c1780f5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8c2e23c4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8c35505b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8c842f00 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8ccefbfd +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8cd2f7f5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8d6f2d62 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8d8378fb +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8de50400 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8ee4e5aa +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8f19f1de +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8f7edf28 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8fc31d85 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8fde8b3a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8fe80334 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/8ffe9d57 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/90071ef9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/903a4bb6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/90844771 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/90f6f6bf +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/90f9b5fe +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/90fca974 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/912cdd18 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9139eed6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9193c92b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/91ad8cbd +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/91bef22e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9257d0ef +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/925f6c1c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/932f0770 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/93d1898a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/93d40c73 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/947e284a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9487bf0b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/94ff362e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/95045a9e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/957fe9a8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/95b0d444 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9754e44f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/97725d49 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9779e811 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/97b2bbde +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9914411b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9934c131 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/99ae9d9d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9a829968 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9a879959 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9ae44aeb +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9b052f8a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9b0b0a85 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9b37b511 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9b489257 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9b599cfd +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9c516c0d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9c57e9fb +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9c8e932f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9d5899b0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9e44e752 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9e700c38 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9ed20890 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9ed80ba5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/9f31e885 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a01ad988 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a038e1c6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a054b701 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a0c45d7e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a156a552 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a1704c20 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a20e8d0d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a23f6312 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a28c9a6e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a2b26ae5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a2f3e3bd +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a329e7f2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a33e7cec +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a33fd10a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a3863874 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a3c3d444 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a3dac76a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a4610c62 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a4f1e349 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a52e9465 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a54946ab +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a59de33d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a621f48c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a6643a14 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a6748667 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a71680c9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a741626b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a79a40bb +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a7e80865 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a84bb8a8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/a8b08033 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/aa55d7ae +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/aaa1cacc +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ab0dca28 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ab8acc36 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ab904af9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ac65aea2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ac8e683e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/acafde5a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/acc36e66 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/adbb59d4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ae733a80 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/af61c24b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/afe43898 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b09da533 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b09f6c72 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b0a4cf3f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b0c9765d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b0ebcd80 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b10f835a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b11838e7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b1387b41 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b16865d3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b189a7f9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b1f3b076 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b22c223f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b2feaa00 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b3a6c531 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b3c2fab7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b4312d40 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b43ffb33 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b468f772 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b51de2d5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b52c0115 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b52d8a11 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b53e2053 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b5da2388 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b69ed3a3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b71dff43 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b7d39291 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b831da0f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b877c965 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b89ea4a8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b8bce506 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b8cddc1e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b918c238 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b91a27f4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/b9b8683e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ba4a953e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ba9eb6f6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/bab0ab08 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/bb13d80d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/bb39d88f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/bb670cca +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/bb771b62 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/bb822c27 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/bb82cac9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/bbab69fa +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/bc038f08 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/bca8d4e0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/bd1335d4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/bdc97c9e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/bdff1628 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/be235b31 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/be50dd51 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/be613c21 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/bf45892f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/bf6130ff +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/bf836239 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/bfcff297 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c0b789d2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c195fd89 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c1f269f7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c2254bb3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c2bd6730 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c314aece +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c33c2aa8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c4053fa6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c471f274 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c4cfcc74 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c4fb2446 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c5850517 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c6023a8e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c67edaca +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c694546d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c6b149df +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c6be9b35 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c6d587af +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c71aa102 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c78311fc +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c78cdc5c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c830c057 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c857ade6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c863f7f0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/c987c99d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/caa1d7ed +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/cc28d401 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/cc2fce0a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/cc5a5d99 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ccd0bbc3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/cd9559de +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ce23b596 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ce2d8321 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ce41c404 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/cee21910 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/cefcae6a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/cf57e0e4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/cfc49f4f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/cfe58471 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/cff9434a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d0250ad2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d02dd6f7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d0507bf3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d0566353 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d078d90c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d089df65 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d0c678c2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d0cc0a90 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d11193a4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d1361d27 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d1385879 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d14ad268 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d156db90 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d169f713 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d1749d4d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d1bbe640 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d247c094 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d2669cbd +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d2f890e2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d3141599 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d324b6b9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d340a85c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d3446c23 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d354c66c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d371b748 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d3782cec +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d4359216 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d462f4c1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d47ab838 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d4a032a1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d50a5380 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d52796e4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d616784e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d65a0463 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d6cd18fa +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d6e08a91 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d72a4a2a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d74b7025 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d7723939 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d7d7317a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d7e8c85c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d7ff2df5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d8d03a3f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d8e695f3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d907092d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d93904b7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d97861bc +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/d9844a1f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/da597b1c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/da6779d2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/da98dfd4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/dab50408 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/dae56480 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/db007bb9 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/dc86f000 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/dcd928a5 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/dd7f0187 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/de6ad39d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/de74e659 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/de8a4a0e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/defd1f27 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/df03018c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/df3204a7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e0040528 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e021b2f2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e0357dd1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e03e2acd +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e0cb7de8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e11f9dfb +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e1462058 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e15267d7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e158d332 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e1616ae8 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e2210767 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e232108b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e24bbefe +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e25926db +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e26c8da2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e3b505c0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e3c62c17 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e42cea44 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e440f416 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e46d0e12 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e46df96c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e50b7476 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e5a3e062 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e6150736 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e6381699 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e6735171 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e6745c2b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e69a71f1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e6b99945 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e6e52474 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e7094c15 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e745da28 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e75354fd +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e76c5b05 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e7ffa8e0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e83f7a76 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e8b287c3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e8c0d4c4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/e8d24ab7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ea0c093a +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ea7fb92f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/eb64b5cd +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ec139485 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ec3b7323 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ec52b361 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ec78b82f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ecc029f4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ecff06c1 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ed0bd7bb +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/edd7edbc +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/eeeebdfe +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f020f5bb +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f172e4e2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f1b3b480 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f2aaf71b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f313ac1d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f40eb761 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f4468094 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f45935dc +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f4599b90 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f46cec47 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f58007fa +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f5975606 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f59beb2e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f6062e44 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f6aa419b +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f6c5f0ab +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f6fc9c2e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f7639b46 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f7c8f5b4 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f7fdd15c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f80ff713 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f858e63e +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f8c03da6 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f925bc46 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f9759b03 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/f9ade3cd +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/faad30b7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/fbca6276 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/fc2213f2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/fc35d6bb +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/fc5a7fb3 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/fc76c4a0 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/fc97d72d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/fd0a2987 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/fd548eb2 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/fd70478c +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/fd7e8217 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/fdb12365 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/fe85d215 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/fe87f03f +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/fea2f346 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/fedd4c35 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ff2d0778 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ff7c87a7 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ff930c42 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ff967e9d +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/ffe90523 +0 -0
- package/.v8-cache/v24.13.1-x64-cf738c9d/fff715f6 +0 -0
- package/CHANGELOG.md +6 -0
- package/README.md +1 -1
- package/README_PSD.md +1 -1
- package/dist/abr.js +43 -56
- package/dist/abr.js.map +1 -1
- package/dist/additionalInfo.js +770 -808
- package/dist/additionalInfo.js.map +1 -1
- package/dist/ase.js +21 -21
- package/dist/ase.js.map +1 -1
- package/dist/bundle.js +2599 -2779
- package/dist/csh.js +18 -29
- package/dist/csh.js.map +1 -1
- package/dist/descriptor.js +234 -269
- package/dist/descriptor.js.map +1 -1
- package/dist/effectsHelpers.js +91 -112
- package/dist/effectsHelpers.js.map +1 -1
- package/dist/engineData.js +45 -51
- package/dist/engineData.js.map +1 -1
- package/dist/engineData2.js +8 -9
- package/dist/engineData2.js.map +1 -1
- package/dist/helpers.js +75 -81
- package/dist/helpers.js.map +1 -1
- package/dist/imageResources.js +342 -381
- package/dist/imageResources.js.map +1 -1
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/initializeCanvas.js +2 -2
- package/dist/initializeCanvas.js.map +1 -1
- package/dist/jpeg.js +279 -279
- package/dist/jpeg.js.map +1 -1
- package/dist/psdReader.d.ts +1 -1
- package/dist/psdReader.js +343 -348
- package/dist/psdReader.js.map +1 -1
- package/dist/psdWriter.d.ts +2 -1
- package/dist/psdWriter.js +225 -206
- package/dist/psdWriter.js.map +1 -1
- package/dist/text.js +98 -122
- package/dist/text.js.map +1 -1
- package/dist/utf8.js +22 -22
- package/dist/utf8.js.map +1 -1
- package/dist-es/abr.js +41 -54
- package/dist-es/abr.js.map +1 -1
- package/dist-es/additionalInfo.js +765 -803
- package/dist-es/additionalInfo.js.map +1 -1
- package/dist-es/ase.js +20 -20
- package/dist-es/ase.js.map +1 -1
- package/dist-es/csh.js +16 -27
- package/dist-es/csh.js.map +1 -1
- package/dist-es/descriptor.js +284 -319
- package/dist-es/descriptor.js.map +1 -1
- package/dist-es/effectsHelpers.js +88 -109
- package/dist-es/effectsHelpers.js.map +1 -1
- package/dist-es/engineData.js +45 -51
- package/dist-es/engineData.js.map +1 -1
- package/dist-es/engineData2.js +8 -9
- package/dist-es/engineData2.js.map +1 -1
- package/dist-es/helpers.js +79 -85
- package/dist-es/helpers.js.map +1 -1
- package/dist-es/imageResources.js +338 -377
- package/dist-es/imageResources.js.map +1 -1
- package/dist-es/index.js +4 -4
- package/dist-es/index.js.map +1 -1
- package/dist-es/jpeg.js +279 -279
- package/dist-es/jpeg.js.map +1 -1
- package/dist-es/psdReader.d.ts +1 -1
- package/dist-es/psdReader.js +340 -345
- package/dist-es/psdReader.js.map +1 -1
- package/dist-es/psdWriter.d.ts +2 -1
- package/dist-es/psdWriter.js +220 -202
- package/dist-es/psdWriter.js.map +1 -1
- package/dist-es/text.js +98 -122
- package/dist-es/text.js.map +1 -1
- package/dist-es/utf8.js +22 -22
- package/dist-es/utf8.js.map +1 -1
- package/package.json +1 -1
- package/publish.js +24 -0
- package/src/additionalInfo.ts +15 -11
- package/src/psdReader.ts +9 -2
- package/src/psdWriter.ts +76 -1
- package/tsconfig.json +4 -3
package/dist/psdReader.js
CHANGED
|
@@ -12,23 +12,23 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.readPattern = exports.readColor = exports.readSection = exports.readDataRLE = exports.readDataZip = exports.createImageDataBitDepth = exports.readAdditionalLayerInfo = exports.readGlobalLayerMaskInfo = exports.decodeLayerImageData = exports.readLayerInfo = exports.readPsd = exports.checkSignature = exports.skipBytes = exports.readAsciiString = exports.readUnicodeStringWithLengthLE = exports.readUnicodeStringWithLength = exports.readUnicodeString = exports.readPascalString = exports.validSignatureAt = exports.readSignature = exports.readBytes = exports.readFixedPointPath32 = exports.readFixedPoint32 = exports.readFloat64 = exports.readFloat32 = exports.readUint32 = exports.readInt32LE = exports.readInt32 = exports.readUint16LE = exports.readUint16 = exports.readInt16 = exports.peekUint8 = exports.readUint8 = exports.warnOrThrow = exports.createReader = exports.supportedColorModes = void 0;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
const pako_1 = require("pako");
|
|
16
|
+
const helpers_1 = require("./helpers");
|
|
17
|
+
const additionalInfo_1 = require("./additionalInfo");
|
|
18
|
+
const imageResources_1 = require("./imageResources");
|
|
19
19
|
exports.supportedColorModes = [0 /* ColorMode.Bitmap */, 1 /* ColorMode.Grayscale */, 3 /* ColorMode.RGB */, 2 /* ColorMode.Indexed */];
|
|
20
|
-
|
|
20
|
+
const colorModes = ['bitmap', 'grayscale', 'indexed', 'RGB', 'CMYK', 'multichannel', 'duotone', 'lab'];
|
|
21
21
|
function setupGrayscale(data) {
|
|
22
|
-
|
|
23
|
-
for (
|
|
24
|
-
|
|
22
|
+
const size = data.width * data.height * 4;
|
|
23
|
+
for (let i = 0; i < size; i += 4) {
|
|
24
|
+
const c = data.data[i];
|
|
25
25
|
data.data[i + 1] = c;
|
|
26
26
|
data.data[i + 2] = c;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
function createReader(buffer, offset, length) {
|
|
30
|
-
|
|
31
|
-
return { view
|
|
30
|
+
const view = new DataView(buffer, offset, length);
|
|
31
|
+
return { view, offset: 0, strict: false, debug: false, large: false, globalAlpha: false, log: console.log };
|
|
32
32
|
}
|
|
33
33
|
exports.createReader = createReader;
|
|
34
34
|
function warnOrThrow(reader, message) {
|
|
@@ -98,15 +98,15 @@ function readFixedPointPath32(reader) {
|
|
|
98
98
|
}
|
|
99
99
|
exports.readFixedPointPath32 = readFixedPointPath32;
|
|
100
100
|
function readBytes(reader, length) {
|
|
101
|
-
|
|
101
|
+
const start = reader.view.byteOffset + reader.offset;
|
|
102
102
|
reader.offset += length;
|
|
103
103
|
if ((start + length) > reader.view.buffer.byteLength) {
|
|
104
104
|
// fix for broken PSD files that are missing part of file at the end
|
|
105
105
|
warnOrThrow(reader, 'Reading bytes exceeding buffer length');
|
|
106
106
|
if (length > (100 * 1024 * 1024))
|
|
107
107
|
throw new Error('Reading past end of file'); // limit to 100MB
|
|
108
|
-
|
|
109
|
-
|
|
108
|
+
const result = new Uint8Array(length);
|
|
109
|
+
const len = Math.min(length, reader.view.byteLength - start);
|
|
110
110
|
if (len > 0)
|
|
111
111
|
result.set(new Uint8Array(reader.view.buffer, start, len));
|
|
112
112
|
return result;
|
|
@@ -121,7 +121,7 @@ function readSignature(reader) {
|
|
|
121
121
|
}
|
|
122
122
|
exports.readSignature = readSignature;
|
|
123
123
|
function validSignatureAt(reader, offset) {
|
|
124
|
-
|
|
124
|
+
const sig = String.fromCharCode(reader.view.getUint8(offset))
|
|
125
125
|
+ String.fromCharCode(reader.view.getUint8(offset + 1))
|
|
126
126
|
+ String.fromCharCode(reader.view.getUint8(offset + 2))
|
|
127
127
|
+ String.fromCharCode(reader.view.getUint8(offset + 3));
|
|
@@ -129,8 +129,8 @@ function validSignatureAt(reader, offset) {
|
|
|
129
129
|
}
|
|
130
130
|
exports.validSignatureAt = validSignatureAt;
|
|
131
131
|
function readPascalString(reader, padTo) {
|
|
132
|
-
|
|
133
|
-
|
|
132
|
+
let length = readUint8(reader);
|
|
133
|
+
const text = length ? readShortString(reader, length) : '';
|
|
134
134
|
while (++length % padTo) { // starts with length + 1 so we count the size byte too
|
|
135
135
|
reader.offset++;
|
|
136
136
|
}
|
|
@@ -138,14 +138,14 @@ function readPascalString(reader, padTo) {
|
|
|
138
138
|
}
|
|
139
139
|
exports.readPascalString = readPascalString;
|
|
140
140
|
function readUnicodeString(reader) {
|
|
141
|
-
|
|
141
|
+
const length = readUint32(reader);
|
|
142
142
|
return readUnicodeStringWithLength(reader, length);
|
|
143
143
|
}
|
|
144
144
|
exports.readUnicodeString = readUnicodeString;
|
|
145
145
|
function readUnicodeStringWithLength(reader, length) {
|
|
146
|
-
|
|
146
|
+
let text = '';
|
|
147
147
|
while (length--) {
|
|
148
|
-
|
|
148
|
+
const value = readUint16(reader);
|
|
149
149
|
if (value || length > 0) { // remove trailing \0
|
|
150
150
|
text += String.fromCharCode(value);
|
|
151
151
|
}
|
|
@@ -154,9 +154,9 @@ function readUnicodeStringWithLength(reader, length) {
|
|
|
154
154
|
}
|
|
155
155
|
exports.readUnicodeStringWithLength = readUnicodeStringWithLength;
|
|
156
156
|
function readUnicodeStringWithLengthLE(reader, length) {
|
|
157
|
-
|
|
157
|
+
let text = '';
|
|
158
158
|
while (length--) {
|
|
159
|
-
|
|
159
|
+
const value = readUint16LE(reader);
|
|
160
160
|
if (value || length > 0) { // remove trailing \0
|
|
161
161
|
text += String.fromCharCode(value);
|
|
162
162
|
}
|
|
@@ -165,7 +165,7 @@ function readUnicodeStringWithLengthLE(reader, length) {
|
|
|
165
165
|
}
|
|
166
166
|
exports.readUnicodeStringWithLengthLE = readUnicodeStringWithLengthLE;
|
|
167
167
|
function readAsciiString(reader, length) {
|
|
168
|
-
|
|
168
|
+
let text = '';
|
|
169
169
|
while (length--) {
|
|
170
170
|
text += String.fromCharCode(readUint8(reader));
|
|
171
171
|
}
|
|
@@ -177,17 +177,17 @@ function skipBytes(reader, count) {
|
|
|
177
177
|
}
|
|
178
178
|
exports.skipBytes = skipBytes;
|
|
179
179
|
function checkSignature(reader, a, b) {
|
|
180
|
-
|
|
181
|
-
|
|
180
|
+
const offset = reader.offset;
|
|
181
|
+
const signature = readSignature(reader);
|
|
182
182
|
if (signature !== a && signature !== b) {
|
|
183
|
-
throw new Error(
|
|
183
|
+
throw new Error(`Invalid signature: '${signature}' at 0x${offset.toString(16)}`);
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
186
|
exports.checkSignature = checkSignature;
|
|
187
187
|
function readShortString(reader, length) {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
for (
|
|
188
|
+
const buffer = readBytes(reader, length);
|
|
189
|
+
let result = '';
|
|
190
|
+
for (let i = 0; i < buffer.length; i++) {
|
|
191
191
|
result += String.fromCharCode(buffer[i]);
|
|
192
192
|
}
|
|
193
193
|
return result;
|
|
@@ -195,35 +195,34 @@ function readShortString(reader, length) {
|
|
|
195
195
|
function isValidSignature(sig) {
|
|
196
196
|
return sig === '8BIM' || sig === 'MeSa' || sig === 'AgHg' || sig === 'PHUT' || sig === 'DCSR';
|
|
197
197
|
}
|
|
198
|
-
function readPsd(reader, readOptions) {
|
|
198
|
+
function readPsd(reader, readOptions = {}) {
|
|
199
199
|
var _a;
|
|
200
|
-
if (readOptions === void 0) { readOptions = {}; }
|
|
201
200
|
// header
|
|
202
201
|
checkSignature(reader, '8BPS');
|
|
203
|
-
|
|
202
|
+
const version = readUint16(reader);
|
|
204
203
|
if (version !== 1 && version !== 2)
|
|
205
|
-
throw new Error(
|
|
204
|
+
throw new Error(`Invalid PSD file version: ${version}`);
|
|
206
205
|
skipBytes(reader, 6);
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
206
|
+
const channels = readUint16(reader);
|
|
207
|
+
const height = readUint32(reader);
|
|
208
|
+
const width = readUint32(reader);
|
|
209
|
+
const bitsPerChannel = readUint16(reader);
|
|
210
|
+
const colorMode = readUint16(reader);
|
|
211
|
+
const maxSize = version === 1 ? 30000 : 300000;
|
|
213
212
|
if (width > maxSize || height > maxSize)
|
|
214
|
-
throw new Error(
|
|
213
|
+
throw new Error(`Invalid size: ${width}x${height}`);
|
|
215
214
|
if (channels > 16)
|
|
216
|
-
throw new Error(
|
|
215
|
+
throw new Error(`Invalid channel count: ${channels}`);
|
|
217
216
|
if (![1, 8, 16, 32].includes(bitsPerChannel))
|
|
218
|
-
throw new Error(
|
|
217
|
+
throw new Error(`Invalid bitsPerChannel: ${bitsPerChannel}`);
|
|
219
218
|
if (exports.supportedColorModes.indexOf(colorMode) === -1)
|
|
220
|
-
throw new Error(
|
|
221
|
-
|
|
219
|
+
throw new Error(`Color mode not supported: ${(_a = colorModes[colorMode]) !== null && _a !== void 0 ? _a : colorMode}`);
|
|
220
|
+
const psd = { width, height, channels, bitsPerChannel, colorMode };
|
|
222
221
|
Object.assign(reader, readOptions);
|
|
223
222
|
reader.large = version === 2;
|
|
224
223
|
reader.globalAlpha = false;
|
|
225
224
|
// color mode data
|
|
226
|
-
readSection(reader, 1,
|
|
225
|
+
readSection(reader, 1, left => {
|
|
227
226
|
if (!left())
|
|
228
227
|
return;
|
|
229
228
|
if (colorMode === 2 /* ColorMode.Indexed */) {
|
|
@@ -231,11 +230,11 @@ function readPsd(reader, readOptions) {
|
|
|
231
230
|
if (left() != 768)
|
|
232
231
|
throw new Error('Invalid color palette size');
|
|
233
232
|
psd.palette = [];
|
|
234
|
-
for (
|
|
233
|
+
for (let i = 0; i < 256; i++)
|
|
235
234
|
psd.palette.push({ r: readUint8(reader), g: 0, b: 0 });
|
|
236
|
-
for (
|
|
235
|
+
for (let i = 0; i < 256; i++)
|
|
237
236
|
psd.palette[i].g = readUint8(reader);
|
|
238
|
-
for (
|
|
237
|
+
for (let i = 0; i < 256; i++)
|
|
239
238
|
psd.palette[i].b = readUint8(reader);
|
|
240
239
|
}
|
|
241
240
|
else {
|
|
@@ -245,15 +244,15 @@ function readPsd(reader, readOptions) {
|
|
|
245
244
|
skipBytes(reader, left());
|
|
246
245
|
});
|
|
247
246
|
// image resources
|
|
248
|
-
|
|
249
|
-
readSection(reader, 1,
|
|
250
|
-
|
|
247
|
+
const imageResources = {};
|
|
248
|
+
readSection(reader, 1, left => {
|
|
249
|
+
while (left() > 0) {
|
|
251
250
|
realignWithSignature(reader, isValidSignature);
|
|
252
|
-
|
|
251
|
+
const id = readUint16(reader);
|
|
253
252
|
readPascalString(reader, 2); // name
|
|
254
|
-
readSection(reader, 2,
|
|
255
|
-
|
|
256
|
-
|
|
253
|
+
readSection(reader, 2, left => {
|
|
254
|
+
const handler = imageResources_1.resourceHandlersMap[id];
|
|
255
|
+
const skip = id === 1036 && !!reader.skipThumbnail;
|
|
257
256
|
if (handler && !skip) {
|
|
258
257
|
try {
|
|
259
258
|
handler.read(reader, imageResources, left);
|
|
@@ -269,24 +268,21 @@ function readPsd(reader, readOptions) {
|
|
|
269
268
|
skipBytes(reader, left());
|
|
270
269
|
}
|
|
271
270
|
});
|
|
272
|
-
};
|
|
273
|
-
while (left() > 0) {
|
|
274
|
-
_loop_1();
|
|
275
271
|
}
|
|
276
272
|
});
|
|
277
|
-
|
|
273
|
+
const { layersGroup, layerGroupsEnabledId } = imageResources, rest = __rest(imageResources, ["layersGroup", "layerGroupsEnabledId"]);
|
|
278
274
|
if (Object.keys(rest)) {
|
|
279
275
|
psd.imageResources = rest;
|
|
280
276
|
}
|
|
281
277
|
// layer and mask info
|
|
282
|
-
readSection(reader, 1,
|
|
283
|
-
readSection(reader, 2,
|
|
278
|
+
readSection(reader, 1, left => {
|
|
279
|
+
readSection(reader, 2, left => {
|
|
284
280
|
readLayerInfo(reader, psd, imageResources);
|
|
285
281
|
skipBytes(reader, left());
|
|
286
282
|
}, undefined, reader.large);
|
|
287
283
|
// SAI does not include this section
|
|
288
284
|
if (left() > 0) {
|
|
289
|
-
|
|
285
|
+
const globalLayerMaskInfo = readGlobalLayerMaskInfo(reader);
|
|
290
286
|
if (globalLayerMaskInfo)
|
|
291
287
|
psd.globalLayerMaskInfo = globalLayerMaskInfo;
|
|
292
288
|
}
|
|
@@ -310,8 +306,8 @@ function readPsd(reader, readOptions) {
|
|
|
310
306
|
}
|
|
311
307
|
}
|
|
312
308
|
}, undefined, reader.large);
|
|
313
|
-
|
|
314
|
-
|
|
309
|
+
const hasChildren = psd.children && psd.children.length;
|
|
310
|
+
const skipComposite = reader.skipCompositeImageData && (reader.skipLayerImageData || hasChildren);
|
|
315
311
|
if (!skipComposite) {
|
|
316
312
|
readImageData(reader, psd);
|
|
317
313
|
}
|
|
@@ -323,16 +319,16 @@ function readPsd(reader, readOptions) {
|
|
|
323
319
|
exports.readPsd = readPsd;
|
|
324
320
|
function readLayerInfo(reader, psd, imageResources) {
|
|
325
321
|
var _a, _b;
|
|
326
|
-
|
|
327
|
-
|
|
322
|
+
const { layersGroup = [], layerGroupsEnabledId = [] } = imageResources;
|
|
323
|
+
let layerCount = readInt16(reader);
|
|
328
324
|
if (layerCount < 0) {
|
|
329
325
|
reader.globalAlpha = true;
|
|
330
326
|
layerCount = -layerCount;
|
|
331
327
|
}
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
for (
|
|
335
|
-
|
|
328
|
+
const layers = [];
|
|
329
|
+
const layerChannels = [];
|
|
330
|
+
for (let i = 0; i < layerCount; i++) {
|
|
331
|
+
const { layer, channels } = readLayerRecord(reader, psd, imageResources);
|
|
336
332
|
if (layersGroup[i] !== undefined)
|
|
337
333
|
layer.linkGroup = layersGroup[i];
|
|
338
334
|
if (layerGroupsEnabledId[i] !== undefined)
|
|
@@ -340,15 +336,15 @@ function readLayerInfo(reader, psd, imageResources) {
|
|
|
340
336
|
layers.push(layer);
|
|
341
337
|
layerChannels.push(channels);
|
|
342
338
|
}
|
|
343
|
-
for (
|
|
339
|
+
for (let i = 0; i < layerCount; i++) {
|
|
344
340
|
readLayerChannelImageData(reader, psd, layers[i], layerChannels[i]);
|
|
345
341
|
}
|
|
346
342
|
if (!psd.children)
|
|
347
343
|
psd.children = [];
|
|
348
|
-
|
|
349
|
-
for (
|
|
350
|
-
|
|
351
|
-
|
|
344
|
+
const stack = [psd];
|
|
345
|
+
for (let i = layers.length - 1; i >= 0; i--) {
|
|
346
|
+
const l = layers[i];
|
|
347
|
+
const type = l.sectionDivider ? l.sectionDivider.type : 0 /* SectionDividerType.Other */;
|
|
352
348
|
if (type === 1 /* SectionDividerType.OpenFolder */ || type === 2 /* SectionDividerType.ClosedFolder */) {
|
|
353
349
|
l.opened = type === 1 /* SectionDividerType.OpenFolder */;
|
|
354
350
|
l.children = [];
|
|
@@ -372,31 +368,31 @@ function readLayerInfo(reader, psd, imageResources) {
|
|
|
372
368
|
}
|
|
373
369
|
exports.readLayerInfo = readLayerInfo;
|
|
374
370
|
function readLayerRecord(reader, psd, imageResources) {
|
|
375
|
-
|
|
371
|
+
const layer = {};
|
|
376
372
|
layer.top = readInt32(reader);
|
|
377
373
|
layer.left = readInt32(reader);
|
|
378
374
|
layer.bottom = readInt32(reader);
|
|
379
375
|
layer.right = readInt32(reader);
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
for (
|
|
383
|
-
|
|
384
|
-
|
|
376
|
+
const channelCount = readUint16(reader);
|
|
377
|
+
const channels = [];
|
|
378
|
+
for (let i = 0; i < channelCount; i++) {
|
|
379
|
+
let id = readInt16(reader);
|
|
380
|
+
let length = readUint32(reader);
|
|
385
381
|
if (reader.large) {
|
|
386
|
-
if (
|
|
382
|
+
if (length !== 0)
|
|
387
383
|
throw new Error('Sizes larger than 4GB are not supported');
|
|
388
|
-
|
|
384
|
+
length = readUint32(reader);
|
|
389
385
|
}
|
|
390
|
-
channels.push({ id
|
|
386
|
+
channels.push({ id, length });
|
|
391
387
|
}
|
|
392
388
|
checkSignature(reader, '8BIM');
|
|
393
|
-
|
|
389
|
+
const blendMode = readSignature(reader);
|
|
394
390
|
if (!helpers_1.toBlendMode[blendMode])
|
|
395
|
-
throw new Error(
|
|
391
|
+
throw new Error(`Invalid blend mode: '${blendMode}'`);
|
|
396
392
|
layer.blendMode = helpers_1.toBlendMode[blendMode];
|
|
397
393
|
layer.opacity = readUint8(reader) / 0xff;
|
|
398
394
|
layer.clipping = readUint8(reader) === 1;
|
|
399
|
-
|
|
395
|
+
const flags = readUint8(reader);
|
|
400
396
|
layer.transparencyProtected = (flags & 0x01) !== 0;
|
|
401
397
|
layer.hidden = (flags & 0x02) !== 0;
|
|
402
398
|
if (flags & 0x20)
|
|
@@ -406,9 +402,9 @@ function readLayerRecord(reader, psd, imageResources) {
|
|
|
406
402
|
// 0x10 - pixel data irrelevant to appearance of document
|
|
407
403
|
// 0x20 - effects/filters panel is expanded
|
|
408
404
|
skipBytes(reader, 1);
|
|
409
|
-
readSection(reader, 1,
|
|
405
|
+
readSection(reader, 1, left => {
|
|
410
406
|
readLayerMaskData(reader, layer);
|
|
411
|
-
|
|
407
|
+
const blendingRanges = readLayerBlendingRanges(reader);
|
|
412
408
|
if (blendingRanges)
|
|
413
409
|
layer.blendingRanges = blendingRanges;
|
|
414
410
|
layer.name = readPascalString(reader, 1); // should be padded to 4, but is not sometimes
|
|
@@ -419,27 +415,27 @@ function readLayerRecord(reader, psd, imageResources) {
|
|
|
419
415
|
readAdditionalLayerInfo(reader, layer, psd, imageResources);
|
|
420
416
|
skipBytes(reader, left());
|
|
421
417
|
});
|
|
422
|
-
return { layer
|
|
418
|
+
return { layer, channels };
|
|
423
419
|
}
|
|
424
420
|
function readLayerMaskData(reader, layer) {
|
|
425
|
-
return readSection(reader, 1,
|
|
421
|
+
return readSection(reader, 1, left => {
|
|
426
422
|
if (!left())
|
|
427
423
|
return undefined;
|
|
428
|
-
|
|
424
|
+
const mask = {};
|
|
429
425
|
layer.mask = mask;
|
|
430
426
|
mask.top = readInt32(reader);
|
|
431
427
|
mask.left = readInt32(reader);
|
|
432
428
|
mask.bottom = readInt32(reader);
|
|
433
429
|
mask.right = readInt32(reader);
|
|
434
430
|
mask.defaultColor = readUint8(reader);
|
|
435
|
-
|
|
431
|
+
const flags = readUint8(reader);
|
|
436
432
|
mask.positionRelativeToLayer = (flags & 1 /* LayerMaskFlags.PositionRelativeToLayer */) !== 0;
|
|
437
433
|
mask.disabled = (flags & 2 /* LayerMaskFlags.LayerMaskDisabled */) !== 0;
|
|
438
434
|
mask.fromVectorData = (flags & 8 /* LayerMaskFlags.LayerMaskFromRenderingOtherData */) !== 0;
|
|
439
435
|
if (left() >= 18) {
|
|
440
|
-
|
|
436
|
+
const realMask = {};
|
|
441
437
|
layer.realMask = realMask;
|
|
442
|
-
|
|
438
|
+
const realFlags = readUint8(reader);
|
|
443
439
|
realMask.positionRelativeToLayer = (realFlags & 1 /* LayerMaskFlags.PositionRelativeToLayer */) !== 0;
|
|
444
440
|
realMask.disabled = (realFlags & 2 /* LayerMaskFlags.LayerMaskDisabled */) !== 0;
|
|
445
441
|
realMask.fromVectorData = (realFlags & 8 /* LayerMaskFlags.LayerMaskFromRenderingOtherData */) !== 0;
|
|
@@ -450,7 +446,7 @@ function readLayerMaskData(reader, layer) {
|
|
|
450
446
|
realMask.right = readInt32(reader);
|
|
451
447
|
}
|
|
452
448
|
if (flags & 16 /* LayerMaskFlags.MaskHasParametersAppliedToIt */) {
|
|
453
|
-
|
|
449
|
+
const params = readUint8(reader);
|
|
454
450
|
if (params & 1 /* MaskParams.UserMaskDensity */)
|
|
455
451
|
mask.userMaskDensity = readUint8(reader) / 0xff;
|
|
456
452
|
if (params & 2 /* MaskParams.UserMaskFeather */)
|
|
@@ -467,28 +463,27 @@ function readBlendingRange(reader) {
|
|
|
467
463
|
return [readUint8(reader), readUint8(reader), readUint8(reader), readUint8(reader)];
|
|
468
464
|
}
|
|
469
465
|
function readLayerBlendingRanges(reader) {
|
|
470
|
-
return readSection(reader, 1,
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
466
|
+
return readSection(reader, 1, left => {
|
|
467
|
+
const compositeGrayBlendSource = readBlendingRange(reader);
|
|
468
|
+
const compositeGraphBlendDestinationRange = readBlendingRange(reader);
|
|
469
|
+
const ranges = [];
|
|
474
470
|
while (left() > 0) {
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
ranges.push({ sourceRange
|
|
471
|
+
const sourceRange = readBlendingRange(reader);
|
|
472
|
+
const destRange = readBlendingRange(reader);
|
|
473
|
+
ranges.push({ sourceRange, destRange });
|
|
478
474
|
}
|
|
479
|
-
return { compositeGrayBlendSource
|
|
475
|
+
return { compositeGrayBlendSource, compositeGraphBlendDestinationRange, ranges };
|
|
480
476
|
});
|
|
481
477
|
}
|
|
482
478
|
function readLayerChannelImageData(reader, psd, layer, channels) {
|
|
483
479
|
if (reader.skipLayerImageData)
|
|
484
480
|
return;
|
|
485
|
-
|
|
486
|
-
layer.rawData = { colorMode
|
|
487
|
-
for (
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
var data = undefined;
|
|
481
|
+
const { colorMode = 3 /* ColorMode.RGB */, bitsPerChannel = 8 } = psd;
|
|
482
|
+
layer.rawData = { colorMode, bitsPerChannel, channels: [], large: reader.large };
|
|
483
|
+
for (const channel of channels) {
|
|
484
|
+
const start = reader.offset;
|
|
485
|
+
let compression = 0 /* Compression.RawData */;
|
|
486
|
+
let data = undefined;
|
|
492
487
|
if (channel.length === 1)
|
|
493
488
|
throw new Error('Invalid channel length');
|
|
494
489
|
if (channel.length) {
|
|
@@ -504,37 +499,36 @@ function readLayerChannelImageData(reader, psd, layer, channels) {
|
|
|
504
499
|
compression = readUint16(reader);
|
|
505
500
|
}
|
|
506
501
|
if (compression > 3)
|
|
507
|
-
throw new Error(
|
|
502
|
+
throw new Error(`Invalid compression: ${compression}`);
|
|
508
503
|
if (channel.length > 2) {
|
|
509
504
|
data = readBytes(reader, channel.length - 2);
|
|
510
505
|
}
|
|
511
506
|
}
|
|
512
507
|
reader.offset = start + channel.length;
|
|
513
|
-
layer.rawData.channels.push({ id: channel.id, compression
|
|
508
|
+
layer.rawData.channels.push({ id: channel.id, compression, data });
|
|
514
509
|
}
|
|
515
510
|
if (!reader.useRawData) {
|
|
516
511
|
decodeLayerImageData(layer, !!reader.useImageData, !!reader.throwForMissingFeatures);
|
|
517
512
|
}
|
|
518
513
|
}
|
|
519
|
-
function resetAlpha(
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
for (var p = offset; p < length; p = (p + step) | 0) {
|
|
514
|
+
function resetAlpha({ data }, cmyk) {
|
|
515
|
+
const alpha = (data instanceof Float32Array) ? 1.0 : ((data instanceof Uint16Array) ? 0xffff : 0xff);
|
|
516
|
+
const offset = (cmyk ? 4 : 3) | 0;
|
|
517
|
+
const length = data.length | 0;
|
|
518
|
+
const step = (cmyk ? 5 : 4) | 0;
|
|
519
|
+
for (let p = offset; p < length; p = (p + step) | 0) {
|
|
526
520
|
data[p] = alpha;
|
|
527
521
|
}
|
|
528
522
|
}
|
|
529
523
|
function decodeLayerImageData(layer, useImageData, throwForMissingFeatures) {
|
|
530
524
|
if (!layer.rawData)
|
|
531
525
|
return;
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
526
|
+
const { colorMode, bitsPerChannel, channels, large } = layer.rawData;
|
|
527
|
+
const layerWidth = (layer.right || 0) - (layer.left || 0);
|
|
528
|
+
const layerHeight = (layer.bottom || 0) - (layer.top || 0);
|
|
529
|
+
const cmyk = colorMode === 4 /* ColorMode.CMYK */;
|
|
530
|
+
let imageData;
|
|
531
|
+
let initializedAlpha = false;
|
|
538
532
|
if (layerWidth && layerHeight) {
|
|
539
533
|
if (cmyk) {
|
|
540
534
|
if (bitsPerChannel !== 8)
|
|
@@ -549,21 +543,20 @@ function decodeLayerImageData(layer, useImageData, throwForMissingFeatures) {
|
|
|
549
543
|
layer.imageDataRaw = [];
|
|
550
544
|
layer.imageDataRawCompression = [];
|
|
551
545
|
}
|
|
552
|
-
for (
|
|
553
|
-
var _b = channels_2[_i], id = _b.id, compression = _b.compression, data = _b.data;
|
|
546
|
+
for (const { id, compression, data } of channels) {
|
|
554
547
|
if (!data)
|
|
555
548
|
continue;
|
|
556
|
-
|
|
549
|
+
const dataReader = createReader(data.buffer, data.byteOffset, data.byteLength);
|
|
557
550
|
if (id === -2 /* ChannelID.UserMask */ || id === -3 /* ChannelID.RealUserMask */) {
|
|
558
|
-
|
|
551
|
+
const mask = id === -2 /* ChannelID.UserMask */ ? layer.mask : layer.realMask;
|
|
559
552
|
if (!mask)
|
|
560
|
-
throw new Error(
|
|
561
|
-
|
|
562
|
-
|
|
553
|
+
throw new Error(`Missing layer ${id === -2 /* ChannelID.UserMask */ ? 'mask' : 'real mask'} data`);
|
|
554
|
+
const maskWidth = (mask.right || 0) - (mask.left || 0);
|
|
555
|
+
const maskHeight = (mask.bottom || 0) - (mask.top || 0);
|
|
563
556
|
if (maskWidth < 0 || maskHeight < 0 || maskWidth > 30000 || maskHeight > 30000)
|
|
564
557
|
throw new Error('Invalid mask size');
|
|
565
558
|
if (maskWidth && maskHeight) {
|
|
566
|
-
|
|
559
|
+
const maskData = createImageDataBitDepth(maskWidth, maskHeight, bitsPerChannel);
|
|
567
560
|
readData(dataReader, data.byteLength, maskData, compression, maskWidth, maskHeight, bitsPerChannel, 0, large, 4);
|
|
568
561
|
if (helpers_1.RAW_IMAGE_DATA) { // TODO: use layer.rawData instead
|
|
569
562
|
if (id === -2 /* ChannelID.UserMask */) {
|
|
@@ -586,12 +579,12 @@ function decodeLayerImageData(layer, useImageData, throwForMissingFeatures) {
|
|
|
586
579
|
}
|
|
587
580
|
}
|
|
588
581
|
else {
|
|
589
|
-
|
|
590
|
-
|
|
582
|
+
const offset = (0, helpers_1.offsetForChannel)(id, cmyk);
|
|
583
|
+
let targetData = imageData;
|
|
591
584
|
if (offset < 0) {
|
|
592
585
|
targetData = undefined;
|
|
593
586
|
if (throwForMissingFeatures) {
|
|
594
|
-
throw new Error(
|
|
587
|
+
throw new Error(`Channel not supported: ${id}`);
|
|
595
588
|
}
|
|
596
589
|
}
|
|
597
590
|
readData(dataReader, data.byteLength, targetData, compression, layerWidth, layerHeight, bitsPerChannel, offset, large, cmyk ? 5 : 4);
|
|
@@ -611,7 +604,7 @@ function decodeLayerImageData(layer, useImageData, throwForMissingFeatures) {
|
|
|
611
604
|
if (!initializedAlpha)
|
|
612
605
|
resetAlpha(imageData, cmyk);
|
|
613
606
|
if (cmyk) {
|
|
614
|
-
|
|
607
|
+
const cmykData = imageData;
|
|
615
608
|
imageData = (0, helpers_1.createImageData)(cmykData.width, cmykData.height);
|
|
616
609
|
cmykToRgb(cmykData, imageData, false);
|
|
617
610
|
}
|
|
@@ -630,9 +623,9 @@ function readData(reader, length, pixels, compression, width, height, bitDepth,
|
|
|
630
623
|
return;
|
|
631
624
|
if (compression === 0 /* Compression.RawData */) {
|
|
632
625
|
if (length !== (width * height * Math.floor(bitDepth / 8))) {
|
|
633
|
-
reader.log(
|
|
626
|
+
reader.log(`Invalid length (${length}, ${width * height * Math.floor(bitDepth / 8)})`);
|
|
634
627
|
}
|
|
635
|
-
|
|
628
|
+
const data = readBytes(reader, length);
|
|
636
629
|
readDataRaw(data, pixels, bitDepth, step, offset);
|
|
637
630
|
}
|
|
638
631
|
else if (compression === 1 /* Compression.RleCompressed */) {
|
|
@@ -640,40 +633,39 @@ function readData(reader, length, pixels, compression, width, height, bitDepth,
|
|
|
640
633
|
readDataRLE(reader, pixels, width, height, bitDepth, step, [offset], large);
|
|
641
634
|
}
|
|
642
635
|
else if (compression === 2 /* Compression.ZipWithoutPrediction */) {
|
|
643
|
-
|
|
636
|
+
const data = readBytes(reader, length);
|
|
644
637
|
readDataZip(data, pixels, width, height, bitDepth, step, offset, false);
|
|
645
638
|
}
|
|
646
639
|
else if (compression === 3 /* Compression.ZipWithPrediction */) {
|
|
647
|
-
|
|
640
|
+
const data = readBytes(reader, length);
|
|
648
641
|
readDataZip(data, pixels, width, height, bitDepth, step, offset, true);
|
|
649
642
|
}
|
|
650
643
|
else {
|
|
651
|
-
throw new Error(
|
|
644
|
+
throw new Error(`Invalid Compression type: ${compression}`);
|
|
652
645
|
}
|
|
653
646
|
}
|
|
654
647
|
function readGlobalLayerMaskInfo(reader) {
|
|
655
|
-
return readSection(reader, 1,
|
|
648
|
+
return readSection(reader, 1, left => {
|
|
656
649
|
if (!left())
|
|
657
650
|
return undefined;
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
651
|
+
const overlayColorSpace = readUint16(reader);
|
|
652
|
+
const colorSpace1 = readUint16(reader);
|
|
653
|
+
const colorSpace2 = readUint16(reader);
|
|
654
|
+
const colorSpace3 = readUint16(reader);
|
|
655
|
+
const colorSpace4 = readUint16(reader);
|
|
656
|
+
const opacity = readUint16(reader) / 0xff;
|
|
657
|
+
const kind = readUint8(reader);
|
|
665
658
|
skipBytes(reader, left()); // 3 bytes of padding ?
|
|
666
|
-
return { overlayColorSpace
|
|
659
|
+
return { overlayColorSpace, colorSpace1, colorSpace2, colorSpace3, colorSpace4, opacity, kind };
|
|
667
660
|
});
|
|
668
661
|
}
|
|
669
662
|
exports.readGlobalLayerMaskInfo = readGlobalLayerMaskInfo;
|
|
670
|
-
|
|
663
|
+
const fixOffsets = [0, 1, -1, 2, -2, 3, -3, 4, -4];
|
|
671
664
|
function realignWithSignature(reader, isValid) {
|
|
672
|
-
|
|
673
|
-
|
|
665
|
+
const sigOffset = reader.offset;
|
|
666
|
+
let sig = '';
|
|
674
667
|
// attempt to fix broken document by realigning with the signature
|
|
675
|
-
for (
|
|
676
|
-
var offset = fixOffsets_1[_i];
|
|
668
|
+
for (const offset of fixOffsets) {
|
|
677
669
|
try {
|
|
678
670
|
reader.offset = sigOffset + offset;
|
|
679
671
|
sig = readSignature(reader);
|
|
@@ -683,7 +675,7 @@ function realignWithSignature(reader, isValid) {
|
|
|
683
675
|
break;
|
|
684
676
|
}
|
|
685
677
|
if (!isValid(sig)) {
|
|
686
|
-
throw new Error(
|
|
678
|
+
throw new Error(`Invalid signature: '${sig}' at 0x${(sigOffset).toString(16)}`);
|
|
687
679
|
}
|
|
688
680
|
return sig;
|
|
689
681
|
}
|
|
@@ -691,12 +683,12 @@ function isValidAdditionalInfoSignature(sig) {
|
|
|
691
683
|
return sig === '8BIM' || sig === '8B64';
|
|
692
684
|
}
|
|
693
685
|
function readAdditionalLayerInfo(reader, target, psd, imageResources) {
|
|
694
|
-
|
|
695
|
-
|
|
686
|
+
const sig = realignWithSignature(reader, isValidAdditionalInfoSignature);
|
|
687
|
+
const key = readSignature(reader);
|
|
696
688
|
// `largeAdditionalInfoKeys` fallback, because some keys don't have 8B64 signature even when they are 64bit
|
|
697
|
-
|
|
698
|
-
readSection(reader, 2,
|
|
699
|
-
|
|
689
|
+
const u64 = sig === '8B64' || (reader.large && helpers_1.largeAdditionalInfoKeys.indexOf(key) !== -1);
|
|
690
|
+
readSection(reader, 2, left => {
|
|
691
|
+
const handler = additionalInfo_1.infoHandlersMap[key];
|
|
700
692
|
if (handler) {
|
|
701
693
|
try {
|
|
702
694
|
handler.read(reader, target, left, psd, imageResources);
|
|
@@ -707,52 +699,51 @@ function readAdditionalLayerInfo(reader, target, psd, imageResources) {
|
|
|
707
699
|
}
|
|
708
700
|
}
|
|
709
701
|
else {
|
|
710
|
-
reader.logMissingFeatures && reader.log(
|
|
702
|
+
reader.logMissingFeatures && reader.log(`Unhandled additional info: ${key}`);
|
|
711
703
|
skipBytes(reader, left());
|
|
712
704
|
}
|
|
713
705
|
if (left()) {
|
|
714
|
-
reader.logMissingFeatures && reader.log(
|
|
706
|
+
reader.logMissingFeatures && reader.log(`Unread ${left()} bytes left for additional info: ${key}`);
|
|
715
707
|
skipBytes(reader, left());
|
|
716
708
|
}
|
|
717
709
|
}, false, u64);
|
|
718
710
|
}
|
|
719
711
|
exports.readAdditionalLayerInfo = readAdditionalLayerInfo;
|
|
720
|
-
function createImageDataBitDepth(width, height, bitDepth, channels) {
|
|
721
|
-
if (channels === void 0) { channels = 4; }
|
|
712
|
+
function createImageDataBitDepth(width, height, bitDepth, channels = 4) {
|
|
722
713
|
if (bitDepth === 1 || bitDepth === 8) {
|
|
723
714
|
if (channels === 4) {
|
|
724
715
|
return (0, helpers_1.createImageData)(width, height);
|
|
725
716
|
}
|
|
726
717
|
else {
|
|
727
|
-
return { width
|
|
718
|
+
return { width, height, data: new Uint8ClampedArray(width * height * channels) };
|
|
728
719
|
}
|
|
729
720
|
}
|
|
730
721
|
else if (bitDepth === 16) {
|
|
731
|
-
return { width
|
|
722
|
+
return { width, height, data: new Uint16Array(width * height * channels) };
|
|
732
723
|
}
|
|
733
724
|
else if (bitDepth === 32) {
|
|
734
|
-
return { width
|
|
725
|
+
return { width, height, data: new Float32Array(width * height * channels) };
|
|
735
726
|
}
|
|
736
727
|
else {
|
|
737
|
-
throw new Error(
|
|
728
|
+
throw new Error(`Invalid bitDepth (${bitDepth})`);
|
|
738
729
|
}
|
|
739
730
|
}
|
|
740
731
|
exports.createImageDataBitDepth = createImageDataBitDepth;
|
|
741
732
|
function readImageData(reader, psd) {
|
|
742
733
|
var _a;
|
|
743
|
-
|
|
744
|
-
|
|
734
|
+
const compression = readUint16(reader);
|
|
735
|
+
const bitsPerChannel = (_a = psd.bitsPerChannel) !== null && _a !== void 0 ? _a : 8;
|
|
745
736
|
if (exports.supportedColorModes.indexOf(psd.colorMode) === -1)
|
|
746
|
-
throw new Error(
|
|
737
|
+
throw new Error(`Color mode not supported: ${psd.colorMode}`);
|
|
747
738
|
if (compression !== 0 /* Compression.RawData */ && compression !== 1 /* Compression.RleCompressed */)
|
|
748
|
-
throw new Error(
|
|
749
|
-
|
|
739
|
+
throw new Error(`Compression type not supported: ${compression}`);
|
|
740
|
+
const imageData = createImageDataBitDepth(psd.width, psd.height, bitsPerChannel);
|
|
750
741
|
(0, helpers_1.resetImageData)(imageData);
|
|
751
742
|
switch (psd.colorMode) {
|
|
752
743
|
case 0 /* ColorMode.Bitmap */: {
|
|
753
744
|
if (bitsPerChannel !== 1)
|
|
754
745
|
throw new Error('Invalid bitsPerChannel for bitmap color mode');
|
|
755
|
-
|
|
746
|
+
let bytes;
|
|
756
747
|
if (compression === 0 /* Compression.RawData */) {
|
|
757
748
|
bytes = readBytes(reader, Math.ceil(psd.width / 8) * psd.height);
|
|
758
749
|
}
|
|
@@ -761,16 +752,16 @@ function readImageData(reader, psd) {
|
|
|
761
752
|
readDataRLE(reader, { data: bytes, width: psd.width, height: psd.height }, psd.width, psd.height, 8, 1, [0], reader.large);
|
|
762
753
|
}
|
|
763
754
|
else {
|
|
764
|
-
throw new Error(
|
|
755
|
+
throw new Error(`Bitmap compression not supported: ${compression}`);
|
|
765
756
|
}
|
|
766
757
|
(0, helpers_1.decodeBitmap)(bytes, imageData.data, psd.width, psd.height);
|
|
767
758
|
break;
|
|
768
759
|
}
|
|
769
760
|
case 3 /* ColorMode.RGB */:
|
|
770
761
|
case 1 /* ColorMode.Grayscale */: {
|
|
771
|
-
|
|
762
|
+
const channels = psd.colorMode === 1 /* ColorMode.Grayscale */ ? [0] : [0, 1, 2];
|
|
772
763
|
if (psd.channels && psd.channels > 3) {
|
|
773
|
-
for (
|
|
764
|
+
for (let i = 3; i < psd.channels; i++) {
|
|
774
765
|
// TODO: store these channels in additional image data
|
|
775
766
|
channels.push(i);
|
|
776
767
|
}
|
|
@@ -779,13 +770,13 @@ function readImageData(reader, psd) {
|
|
|
779
770
|
channels.push(3);
|
|
780
771
|
}
|
|
781
772
|
if (compression === 0 /* Compression.RawData */) {
|
|
782
|
-
for (
|
|
783
|
-
|
|
773
|
+
for (let i = 0; i < channels.length; i++) {
|
|
774
|
+
const data = readBytes(reader, psd.width * psd.height * Math.floor(bitsPerChannel / 8));
|
|
784
775
|
readDataRaw(data, imageData, bitsPerChannel, 4, channels[i]);
|
|
785
776
|
}
|
|
786
777
|
}
|
|
787
778
|
else if (compression === 1 /* Compression.RleCompressed */) {
|
|
788
|
-
|
|
779
|
+
const start = reader.offset;
|
|
789
780
|
readDataRLE(reader, imageData, psd.width, psd.height, bitsPerChannel, 4, channels, reader.large);
|
|
790
781
|
if (helpers_1.RAW_IMAGE_DATA)
|
|
791
782
|
psd.imageDataRaw = new Uint8Array(reader.view.buffer, reader.view.byteOffset + start, reader.offset - start);
|
|
@@ -803,10 +794,10 @@ function readImageData(reader, psd) {
|
|
|
803
794
|
if (!psd.palette)
|
|
804
795
|
throw new Error('Missing color palette');
|
|
805
796
|
if (compression === 0 /* Compression.RawData */) {
|
|
806
|
-
throw new Error(
|
|
797
|
+
throw new Error(`Not implemented`);
|
|
807
798
|
}
|
|
808
799
|
else if (compression === 1 /* Compression.RleCompressed */) {
|
|
809
|
-
|
|
800
|
+
const indexedImageData = {
|
|
810
801
|
width: imageData.width,
|
|
811
802
|
height: imageData.height,
|
|
812
803
|
data: new Uint8Array(imageData.width * imageData.height),
|
|
@@ -815,7 +806,7 @@ function readImageData(reader, psd) {
|
|
|
815
806
|
indexedToRgb(indexedImageData, imageData, psd.palette);
|
|
816
807
|
}
|
|
817
808
|
else {
|
|
818
|
-
throw new Error(
|
|
809
|
+
throw new Error(`Not implemented`);
|
|
819
810
|
}
|
|
820
811
|
break;
|
|
821
812
|
}
|
|
@@ -823,48 +814,48 @@ function readImageData(reader, psd) {
|
|
|
823
814
|
if (bitsPerChannel !== 8)
|
|
824
815
|
throw new Error('bitsPerChannel Not supproted');
|
|
825
816
|
if (psd.channels !== 4)
|
|
826
|
-
throw new Error(
|
|
827
|
-
|
|
817
|
+
throw new Error(`Invalid channel count`);
|
|
818
|
+
const channels = [0, 1, 2, 3];
|
|
828
819
|
if (reader.globalAlpha)
|
|
829
820
|
channels.push(4);
|
|
830
821
|
if (compression === 0 /* Compression.RawData */) {
|
|
831
|
-
throw new Error(
|
|
822
|
+
throw new Error(`Not implemented`);
|
|
832
823
|
// TODO: ...
|
|
833
824
|
// for (let i = 0; i < channels.length; i++) {
|
|
834
825
|
// readDataRaw(reader, imageData, channels[i], psd.width, psd.height);
|
|
835
826
|
// }
|
|
836
827
|
}
|
|
837
828
|
else if (compression === 1 /* Compression.RleCompressed */) {
|
|
838
|
-
|
|
829
|
+
const cmykImageData = {
|
|
839
830
|
width: imageData.width,
|
|
840
831
|
height: imageData.height,
|
|
841
832
|
data: new Uint8Array(imageData.width * imageData.height * 5),
|
|
842
833
|
};
|
|
843
|
-
|
|
834
|
+
const start = reader.offset;
|
|
844
835
|
readDataRLE(reader, cmykImageData, psd.width, psd.height, bitsPerChannel, 5, channels, reader.large);
|
|
845
836
|
cmykToRgb(cmykImageData, imageData, true);
|
|
846
837
|
if (helpers_1.RAW_IMAGE_DATA)
|
|
847
838
|
psd.imageDataRaw = new Uint8Array(reader.view.buffer, reader.view.byteOffset + start, reader.offset - start);
|
|
848
839
|
}
|
|
849
840
|
else {
|
|
850
|
-
throw new Error(
|
|
841
|
+
throw new Error(`Not implemented`);
|
|
851
842
|
}
|
|
852
843
|
break;
|
|
853
844
|
}
|
|
854
|
-
default: throw new Error(
|
|
845
|
+
default: throw new Error(`Color mode not supported: ${psd.colorMode}`);
|
|
855
846
|
}
|
|
856
847
|
// remove weird white matte
|
|
857
848
|
if (reader.globalAlpha) {
|
|
858
849
|
if (psd.bitsPerChannel !== 8)
|
|
859
850
|
throw new Error('bitsPerChannel Not supproted');
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
for (
|
|
863
|
-
|
|
851
|
+
const p = imageData.data;
|
|
852
|
+
const size = imageData.width * imageData.height * 4;
|
|
853
|
+
for (let i = 0; i < size; i += 4) {
|
|
854
|
+
const pa = p[i + 3];
|
|
864
855
|
if (pa != 0 && pa != 255) {
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
856
|
+
const a = pa / 255;
|
|
857
|
+
const ra = 1 / a;
|
|
858
|
+
const invA = 255 * (1 - ra);
|
|
868
859
|
p[i + 0] = p[i + 0] * ra + invA;
|
|
869
860
|
p[i + 1] = p[i + 1] * ra + invA;
|
|
870
861
|
p[i + 2] = p[i + 2] * ra + invA;
|
|
@@ -879,14 +870,14 @@ function readImageData(reader, psd) {
|
|
|
879
870
|
}
|
|
880
871
|
}
|
|
881
872
|
function cmykToRgb(cmyk, rgb, reverseAlpha) {
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
for (
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
873
|
+
const size = rgb.width * rgb.height * 4;
|
|
874
|
+
const srcData = cmyk.data;
|
|
875
|
+
const dstData = rgb.data;
|
|
876
|
+
for (let src = 0, dst = 0; dst < size; src += 5, dst += 4) {
|
|
877
|
+
const c = srcData[src];
|
|
878
|
+
const m = srcData[src + 1];
|
|
879
|
+
const y = srcData[src + 2];
|
|
880
|
+
const k = srcData[src + 3];
|
|
890
881
|
dstData[dst] = ((((c * k) | 0) / 255) | 0);
|
|
891
882
|
dstData[dst + 1] = ((((m * k) | 0) / 255) | 0);
|
|
892
883
|
dstData[dst + 2] = ((((y * k) | 0) / 255) | 0);
|
|
@@ -904,11 +895,11 @@ function cmykToRgb(cmyk, rgb, reverseAlpha) {
|
|
|
904
895
|
// }
|
|
905
896
|
}
|
|
906
897
|
function indexedToRgb(indexed, rgb, palette) {
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
for (
|
|
911
|
-
|
|
898
|
+
const size = indexed.width * indexed.height;
|
|
899
|
+
const srcData = indexed.data;
|
|
900
|
+
const dstData = rgb.data;
|
|
901
|
+
for (let src = 0, dst = 0; src < size; src++, dst += 4) {
|
|
902
|
+
const c = palette[srcData[src]];
|
|
912
903
|
dstData[dst + 0] = c.r;
|
|
913
904
|
dstData[dst + 1] = c.g;
|
|
914
905
|
dstData[dst + 2] = c.b;
|
|
@@ -925,8 +916,15 @@ function bytesToArray(bytes, bitDepth) {
|
|
|
925
916
|
return bytes;
|
|
926
917
|
}
|
|
927
918
|
else if (bitDepth === 16) {
|
|
919
|
+
// PSD files store 16-bit channel data in big-endian byte order.
|
|
920
|
+
// Swap each pair of bytes so that Uint16Array (native-endian) reads the correct values.
|
|
921
|
+
for (let i = 0; i < bytes.byteLength; i += 2) {
|
|
922
|
+
const tmp = bytes[i];
|
|
923
|
+
bytes[i] = bytes[i + 1];
|
|
924
|
+
bytes[i + 1] = tmp;
|
|
925
|
+
}
|
|
928
926
|
if (bytes.byteOffset % 2) {
|
|
929
|
-
|
|
927
|
+
const result = new Uint16Array(bytes.byteLength / 2);
|
|
930
928
|
new Uint8Array(result.buffer, result.byteOffset, result.byteLength).set(bytes);
|
|
931
929
|
return result;
|
|
932
930
|
}
|
|
@@ -936,7 +934,7 @@ function bytesToArray(bytes, bitDepth) {
|
|
|
936
934
|
}
|
|
937
935
|
else if (bitDepth === 32) {
|
|
938
936
|
if (bytes.byteOffset % 4) {
|
|
939
|
-
|
|
937
|
+
const result = new Float32Array(bytes.byteLength / 4);
|
|
940
938
|
new Uint8Array(result.buffer, result.byteOffset, result.byteLength).set(bytes);
|
|
941
939
|
return result;
|
|
942
940
|
}
|
|
@@ -945,47 +943,47 @@ function bytesToArray(bytes, bitDepth) {
|
|
|
945
943
|
}
|
|
946
944
|
}
|
|
947
945
|
else {
|
|
948
|
-
throw new Error(
|
|
946
|
+
throw new Error(`Invalid bitDepth (${bitDepth})`);
|
|
949
947
|
}
|
|
950
948
|
}
|
|
951
949
|
function copyChannelToPixelData(pixelData, channel, offset, step) {
|
|
952
950
|
verifyCompatible(pixelData.data, channel);
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
for (
|
|
951
|
+
const size = pixelData.width * pixelData.height;
|
|
952
|
+
const data = pixelData.data;
|
|
953
|
+
for (let i = 0, p = offset | 0; i < size; i++, p = (p + step) | 0) {
|
|
956
954
|
data[p] = channel[i];
|
|
957
955
|
}
|
|
958
956
|
}
|
|
959
957
|
function readDataRaw(buffer, pixelData, bitDepth, step, offset) {
|
|
960
958
|
if (bitDepth == 32) {
|
|
961
|
-
for (
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
959
|
+
for (let i = 0; i < buffer.byteLength; i += 4) {
|
|
960
|
+
const a = buffer[i + 0];
|
|
961
|
+
const b = buffer[i + 1];
|
|
962
|
+
const c = buffer[i + 2];
|
|
963
|
+
const d = buffer[i + 3];
|
|
966
964
|
buffer[i + 0] = d;
|
|
967
965
|
buffer[i + 1] = c;
|
|
968
966
|
buffer[i + 2] = b;
|
|
969
967
|
buffer[i + 3] = a;
|
|
970
968
|
}
|
|
971
969
|
}
|
|
972
|
-
|
|
970
|
+
const array = bytesToArray(buffer, bitDepth);
|
|
973
971
|
if (pixelData && offset < step) {
|
|
974
972
|
copyChannelToPixelData(pixelData, array, offset, step);
|
|
975
973
|
}
|
|
976
974
|
}
|
|
977
975
|
function decodePredicted(data, width, height, mod) {
|
|
978
|
-
for (
|
|
979
|
-
|
|
980
|
-
for (
|
|
976
|
+
for (let y = 0; y < height; y++) {
|
|
977
|
+
const offset = y * width;
|
|
978
|
+
for (let x = 1, o = offset + 1; x < width; x++, o++) {
|
|
981
979
|
data[o] = (data[o - 1] + data[o]) % mod;
|
|
982
980
|
}
|
|
983
981
|
}
|
|
984
982
|
}
|
|
985
983
|
function readDataZip(compressed, pixelData, width, height, bitDepth, step, offset, prediction) {
|
|
986
|
-
|
|
984
|
+
const decompressed = (0, pako_1.inflate)(compressed);
|
|
987
985
|
if (pixelData && offset < step) {
|
|
988
|
-
|
|
986
|
+
const array = bytesToArray(decompressed, bitDepth);
|
|
989
987
|
if (bitDepth === 8) {
|
|
990
988
|
if (prediction)
|
|
991
989
|
decodePredicted(decompressed, width, height, 0x100);
|
|
@@ -999,14 +997,14 @@ function readDataZip(compressed, pixelData, width, height, bitDepth, step, offse
|
|
|
999
997
|
else if (bitDepth === 32) {
|
|
1000
998
|
if (prediction)
|
|
1001
999
|
decodePredicted(decompressed, width * 4, height, 0x100);
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
for (
|
|
1005
|
-
|
|
1006
|
-
for (
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1000
|
+
let di = offset;
|
|
1001
|
+
const dst = new Uint32Array(pixelData.data.buffer, pixelData.data.byteOffset, pixelData.data.length);
|
|
1002
|
+
for (let y = 0; y < height; y++) {
|
|
1003
|
+
let a = width * 4 * y;
|
|
1004
|
+
for (let x = 0; x < width; x++, a++, di += step) {
|
|
1005
|
+
const b = a + width;
|
|
1006
|
+
const c = b + width;
|
|
1007
|
+
const d = c + width;
|
|
1010
1008
|
dst[di] = ((decompressed[a] << 24) | (decompressed[b] << 16) | (decompressed[c] << 8) | decompressed[d]) >>> 0;
|
|
1011
1009
|
}
|
|
1012
1010
|
}
|
|
@@ -1017,52 +1015,51 @@ function readDataZip(compressed, pixelData, width, height, bitDepth, step, offse
|
|
|
1017
1015
|
}
|
|
1018
1016
|
}
|
|
1019
1017
|
exports.readDataZip = readDataZip;
|
|
1020
|
-
function readDataRLE(reader, pixelData, width, height,
|
|
1021
|
-
|
|
1022
|
-
|
|
1018
|
+
function readDataRLE(reader, pixelData, width, height, _bitDepth, step, offsets, large) {
|
|
1019
|
+
const data = pixelData && pixelData.data;
|
|
1020
|
+
let lengths;
|
|
1023
1021
|
if (large) {
|
|
1024
1022
|
lengths = new Uint32Array(offsets.length * height);
|
|
1025
|
-
for (
|
|
1026
|
-
for (
|
|
1023
|
+
for (let o = 0, li = 0; o < offsets.length; o++) {
|
|
1024
|
+
for (let y = 0; y < height; y++, li++) {
|
|
1027
1025
|
lengths[li] = readUint32(reader);
|
|
1028
1026
|
}
|
|
1029
1027
|
}
|
|
1030
1028
|
}
|
|
1031
1029
|
else {
|
|
1032
1030
|
lengths = new Uint16Array(offsets.length * height);
|
|
1033
|
-
for (
|
|
1034
|
-
for (
|
|
1031
|
+
for (let o = 0, li = 0; o < offsets.length; o++) {
|
|
1032
|
+
for (let y = 0; y < height; y++, li++) {
|
|
1035
1033
|
lengths[li] = readUint16(reader);
|
|
1036
1034
|
}
|
|
1037
1035
|
}
|
|
1038
1036
|
}
|
|
1039
|
-
if (bitDepth !== 1 && bitDepth !== 8)
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
var extra = c > extraLimit || offset > extraLimit;
|
|
1037
|
+
// if (bitDepth !== 1 && bitDepth !== 8) throw new Error(`Invalid bit depth (${bitDepth})`);
|
|
1038
|
+
const extraLimit = (step - 1) | 0; // 3 for rgb, 4 for cmyk
|
|
1039
|
+
for (let c = 0, li = 0; c < offsets.length; c++) {
|
|
1040
|
+
const offset = offsets[c] | 0;
|
|
1041
|
+
const extra = c > extraLimit || offset > extraLimit;
|
|
1045
1042
|
if (!data || extra) {
|
|
1046
|
-
for (
|
|
1043
|
+
for (let y = 0; y < height; y++, li++) {
|
|
1047
1044
|
skipBytes(reader, lengths[li]);
|
|
1048
1045
|
}
|
|
1049
1046
|
}
|
|
1050
1047
|
else {
|
|
1051
|
-
for (
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
for (
|
|
1055
|
-
|
|
1048
|
+
for (let y = 0, p = offset | 0; y < height; y++, li++) {
|
|
1049
|
+
const length = lengths[li];
|
|
1050
|
+
const buffer = readBytes(reader, length);
|
|
1051
|
+
for (let i = 0, x = 0; i < length; i++) {
|
|
1052
|
+
let header = buffer[i];
|
|
1056
1053
|
if (header > 128) {
|
|
1057
|
-
|
|
1054
|
+
const value = buffer[++i];
|
|
1058
1055
|
header = (256 - header) | 0;
|
|
1059
|
-
for (
|
|
1056
|
+
for (let j = 0; j <= header && x < width; j = (j + 1) | 0, x = (x + 1) | 0) {
|
|
1060
1057
|
data[p] = value;
|
|
1061
1058
|
p = (p + step) | 0;
|
|
1062
1059
|
}
|
|
1063
1060
|
}
|
|
1064
1061
|
else if (header < 128) {
|
|
1065
|
-
for (
|
|
1062
|
+
for (let j = 0; j <= header && x < width; j = (j + 1) | 0, x = (x + 1) | 0) {
|
|
1066
1063
|
data[p] = buffer[++i];
|
|
1067
1064
|
p = (p + step) | 0;
|
|
1068
1065
|
}
|
|
@@ -1078,10 +1075,8 @@ function readDataRLE(reader, pixelData, width, height, bitDepth, step, offsets,
|
|
|
1078
1075
|
}
|
|
1079
1076
|
}
|
|
1080
1077
|
exports.readDataRLE = readDataRLE;
|
|
1081
|
-
function readSection(reader, round, func, skipEmpty, eightBytes) {
|
|
1082
|
-
|
|
1083
|
-
if (eightBytes === void 0) { eightBytes = false; }
|
|
1084
|
-
var length = readUint32(reader);
|
|
1078
|
+
function readSection(reader, round, func, skipEmpty = true, eightBytes = false) {
|
|
1079
|
+
let length = readUint32(reader);
|
|
1085
1080
|
if (eightBytes) {
|
|
1086
1081
|
if (length !== 0)
|
|
1087
1082
|
throw new Error('Sizes larger than 4GB are not supported');
|
|
@@ -1089,16 +1084,16 @@ function readSection(reader, round, func, skipEmpty, eightBytes) {
|
|
|
1089
1084
|
}
|
|
1090
1085
|
if (length <= 0 && skipEmpty)
|
|
1091
1086
|
return undefined;
|
|
1092
|
-
|
|
1087
|
+
let end = reader.offset + length;
|
|
1093
1088
|
if (end > reader.view.byteLength)
|
|
1094
1089
|
throw new Error('Section exceeds file size');
|
|
1095
|
-
|
|
1090
|
+
const result = func(() => end - reader.offset);
|
|
1096
1091
|
if (reader.offset !== end) {
|
|
1097
1092
|
if (reader.offset > end) {
|
|
1098
1093
|
warnOrThrow(reader, 'Exceeded section limits');
|
|
1099
1094
|
}
|
|
1100
1095
|
else {
|
|
1101
|
-
warnOrThrow(reader,
|
|
1096
|
+
warnOrThrow(reader, `Unread section data`); // : ${end - reader.offset} bytes at 0x${reader.offset.toString(16)}`);
|
|
1102
1097
|
}
|
|
1103
1098
|
}
|
|
1104
1099
|
while (length % round) {
|
|
@@ -1111,42 +1106,42 @@ function readSection(reader, round, func, skipEmpty, eightBytes) {
|
|
|
1111
1106
|
}
|
|
1112
1107
|
exports.readSection = readSection;
|
|
1113
1108
|
function readColor(reader) {
|
|
1114
|
-
|
|
1109
|
+
const colorSpace = readUint16(reader);
|
|
1115
1110
|
switch (colorSpace) {
|
|
1116
1111
|
case 0 /* ColorSpace.RGB */: {
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1112
|
+
const r = readUint16(reader) / 257;
|
|
1113
|
+
const g = readUint16(reader) / 257;
|
|
1114
|
+
const b = readUint16(reader) / 257;
|
|
1120
1115
|
skipBytes(reader, 2);
|
|
1121
|
-
return { r
|
|
1116
|
+
return { r, g, b };
|
|
1122
1117
|
}
|
|
1123
1118
|
case 1 /* ColorSpace.HSB */: {
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1119
|
+
const h = readUint16(reader) / 0xffff;
|
|
1120
|
+
const s = readUint16(reader) / 0xffff;
|
|
1121
|
+
const b = readUint16(reader) / 0xffff;
|
|
1127
1122
|
skipBytes(reader, 2);
|
|
1128
|
-
return { h
|
|
1123
|
+
return { h, s, b };
|
|
1129
1124
|
}
|
|
1130
1125
|
case 2 /* ColorSpace.CMYK */: {
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
return { c
|
|
1126
|
+
const c = readUint16(reader) / 257;
|
|
1127
|
+
const m = readUint16(reader) / 257;
|
|
1128
|
+
const y = readUint16(reader) / 257;
|
|
1129
|
+
const k = readUint16(reader) / 257;
|
|
1130
|
+
return { c, m, y, k };
|
|
1136
1131
|
}
|
|
1137
1132
|
case 7 /* ColorSpace.Lab */: {
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1133
|
+
const l = readInt16(reader) / 10000;
|
|
1134
|
+
const ta = readInt16(reader);
|
|
1135
|
+
const tb = readInt16(reader);
|
|
1136
|
+
const a = ta < 0 ? (ta / 12800) : (ta / 12700);
|
|
1137
|
+
const b = tb < 0 ? (tb / 12800) : (tb / 12700);
|
|
1143
1138
|
skipBytes(reader, 2);
|
|
1144
|
-
return { l
|
|
1139
|
+
return { l, a, b };
|
|
1145
1140
|
}
|
|
1146
1141
|
case 8 /* ColorSpace.Grayscale */: {
|
|
1147
|
-
|
|
1142
|
+
const k = readUint16(reader) * 255 / 10000;
|
|
1148
1143
|
skipBytes(reader, 6);
|
|
1149
|
-
return { k
|
|
1144
|
+
return { k };
|
|
1150
1145
|
}
|
|
1151
1146
|
default:
|
|
1152
1147
|
throw new Error('Invalid color space');
|
|
@@ -1154,25 +1149,25 @@ function readColor(reader) {
|
|
|
1154
1149
|
}
|
|
1155
1150
|
exports.readColor = readColor;
|
|
1156
1151
|
function readPattern(reader) {
|
|
1157
|
-
|
|
1152
|
+
let length = readUint32(reader);
|
|
1158
1153
|
while (length % 4)
|
|
1159
1154
|
length++;
|
|
1160
|
-
|
|
1161
|
-
|
|
1155
|
+
const end = reader.offset + length;
|
|
1156
|
+
const version = readUint32(reader);
|
|
1162
1157
|
if (version !== 1)
|
|
1163
|
-
throw new Error(
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1158
|
+
throw new Error(`Invalid pattern version: ${version}`);
|
|
1159
|
+
const colorMode = readUint32(reader);
|
|
1160
|
+
const x = readInt16(reader);
|
|
1161
|
+
const y = readInt16(reader);
|
|
1167
1162
|
// we only support RGB and grayscale for now
|
|
1168
1163
|
if (colorMode !== 3 /* ColorMode.RGB */ && colorMode !== 1 /* ColorMode.Grayscale */ && colorMode !== 2 /* ColorMode.Indexed */) {
|
|
1169
|
-
throw new Error(
|
|
1164
|
+
throw new Error(`Unsupported pattern color mode: ${colorMode}`);
|
|
1170
1165
|
}
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1166
|
+
let name = readUnicodeString(reader);
|
|
1167
|
+
const id = readPascalString(reader, 1);
|
|
1168
|
+
const palette = [];
|
|
1174
1169
|
if (colorMode === 2 /* ColorMode.Indexed */) {
|
|
1175
|
-
for (
|
|
1170
|
+
for (let i = 0; i < 256; i++) {
|
|
1176
1171
|
palette.push({
|
|
1177
1172
|
r: readUint8(reader),
|
|
1178
1173
|
g: readUint8(reader),
|
|
@@ -1182,58 +1177,58 @@ function readPattern(reader) {
|
|
|
1182
1177
|
skipBytes(reader, 4); // no idea what this is
|
|
1183
1178
|
}
|
|
1184
1179
|
// virtual memory array list
|
|
1185
|
-
|
|
1180
|
+
const version2 = readUint32(reader);
|
|
1186
1181
|
if (version2 !== 3)
|
|
1187
|
-
throw new Error(
|
|
1182
|
+
throw new Error(`Invalid pattern VMAL version: ${version2}`);
|
|
1188
1183
|
readUint32(reader); // length
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
for (
|
|
1184
|
+
const top = readUint32(reader);
|
|
1185
|
+
const left = readUint32(reader);
|
|
1186
|
+
const bottom = readUint32(reader);
|
|
1187
|
+
const right = readUint32(reader);
|
|
1188
|
+
const channelsCount = readUint32(reader);
|
|
1189
|
+
const width = right - left;
|
|
1190
|
+
const height = bottom - top;
|
|
1191
|
+
const data = new Uint8Array(width * height * 4);
|
|
1192
|
+
for (let i = 3; i < data.byteLength; i += 4) {
|
|
1198
1193
|
data[i] = 255;
|
|
1199
1194
|
}
|
|
1200
|
-
for (
|
|
1201
|
-
|
|
1195
|
+
for (let i = 0, ch = 0; i < (channelsCount + 2); i++) {
|
|
1196
|
+
const has = readUint32(reader);
|
|
1202
1197
|
if (!has)
|
|
1203
1198
|
continue;
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1199
|
+
const length = readUint32(reader);
|
|
1200
|
+
const pixelDepth = readUint32(reader);
|
|
1201
|
+
const ctop = readUint32(reader);
|
|
1202
|
+
const cleft = readUint32(reader);
|
|
1203
|
+
const cbottom = readUint32(reader);
|
|
1204
|
+
const cright = readUint32(reader);
|
|
1205
|
+
const pixelDepth2 = readUint16(reader);
|
|
1206
|
+
const compressionMode = readUint8(reader); // 0 - raw, 1 - rle
|
|
1207
|
+
const dataLength = length - (4 + 16 + 2 + 1);
|
|
1208
|
+
const cdata = readBytes(reader, dataLength);
|
|
1214
1209
|
if (pixelDepth !== 8 || pixelDepth2 !== 8) {
|
|
1215
1210
|
throw new Error('16bit pixel depth not supported for patterns');
|
|
1216
1211
|
}
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1212
|
+
const w = cright - cleft;
|
|
1213
|
+
const h = cbottom - ctop;
|
|
1214
|
+
const ox = cleft - left;
|
|
1215
|
+
const oy = ctop - top;
|
|
1221
1216
|
if (compressionMode === 0) {
|
|
1222
1217
|
if (colorMode === 3 /* ColorMode.RGB */ && ch < 3) {
|
|
1223
|
-
for (
|
|
1224
|
-
for (
|
|
1225
|
-
|
|
1226
|
-
|
|
1218
|
+
for (let y = 0; y < h; y++) {
|
|
1219
|
+
for (let x = 0; x < w; x++) {
|
|
1220
|
+
const src = x + y * w;
|
|
1221
|
+
const dst = (ox + x + (y + oy) * width) * 4;
|
|
1227
1222
|
data[dst + ch] = cdata[src];
|
|
1228
1223
|
}
|
|
1229
1224
|
}
|
|
1230
1225
|
}
|
|
1231
1226
|
if (colorMode === 1 /* ColorMode.Grayscale */ && ch < 1) {
|
|
1232
|
-
for (
|
|
1233
|
-
for (
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1227
|
+
for (let y = 0; y < h; y++) {
|
|
1228
|
+
for (let x = 0; x < w; x++) {
|
|
1229
|
+
const src = x + y * w;
|
|
1230
|
+
const dst = (ox + x + (y + oy) * width) * 4;
|
|
1231
|
+
const value = cdata[src];
|
|
1237
1232
|
data[dst + 0] = value;
|
|
1238
1233
|
data[dst + 1] = value;
|
|
1239
1234
|
data[dst + 2] = value;
|
|
@@ -1246,9 +1241,9 @@ function readPattern(reader) {
|
|
|
1246
1241
|
}
|
|
1247
1242
|
}
|
|
1248
1243
|
else if (compressionMode === 1) {
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1244
|
+
const pixelData = { data, width, height };
|
|
1245
|
+
const tempData = { data: new Uint8Array(w * h), width: w, height: h };
|
|
1246
|
+
const cdataReader = createReader(cdata.buffer, cdata.byteOffset, cdata.byteLength);
|
|
1252
1247
|
if (colorMode === 3 /* ColorMode.RGB */ && ch < 3) {
|
|
1253
1248
|
readDataRLE(cdataReader, tempData, w, h, 8, 1, [0], false);
|
|
1254
1249
|
copyChannelToRGBA(tempData, pixelData, ox, oy, ch);
|
|
@@ -1269,18 +1264,18 @@ function readPattern(reader) {
|
|
|
1269
1264
|
ch++;
|
|
1270
1265
|
}
|
|
1271
1266
|
reader.offset = end;
|
|
1272
|
-
return { id
|
|
1267
|
+
return { id, name, x, y, bounds: { x: left, y: top, w: width, h: height }, data };
|
|
1273
1268
|
}
|
|
1274
1269
|
exports.readPattern = readPattern;
|
|
1275
1270
|
function copyChannelToRGBA(srcData, dstData, ox, oy, offset) {
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
for (
|
|
1280
|
-
for (
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1271
|
+
const w = srcData.width;
|
|
1272
|
+
const h = srcData.height;
|
|
1273
|
+
const width = dstData.width;
|
|
1274
|
+
for (let y = 0; y < h; y++) {
|
|
1275
|
+
for (let x = 0; x < w; x++) {
|
|
1276
|
+
const src = x + y * w;
|
|
1277
|
+
const dst = (ox + x + (y + oy) * width) * 4;
|
|
1278
|
+
const value = srcData.data[src];
|
|
1284
1279
|
dstData.data[dst + offset] = value;
|
|
1285
1280
|
}
|
|
1286
1281
|
}
|