{"_id":"@alberteinshutoin/lazy-image-wasm","_rev":"10-28447d69bf4b33844bdec19a6d0cd571","name":"@alberteinshutoin/lazy-image-wasm","dist-tags":{"latest":"1.4.2"},"versions":{"0.16.0":{"name":"@alberteinshutoin/lazy-image-wasm","version":"0.16.0","license":"MIT","_id":"@alberteinshutoin/lazy-image-wasm@0.16.0","maintainers":[{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"}],"homepage":"https://github.com/albert-einshutoin/lazy-image#readme","bugs":{"url":"https://github.com/albert-einshutoin/lazy-image/issues"},"dist":{"shasum":"b20091f18d97e34ff9f79d63347307838f94980f","tarball":"https://registry.npmjs.org/@alberteinshutoin/lazy-image-wasm/-/lazy-image-wasm-0.16.0.tgz","fileCount":11,"integrity":"sha512-AXX8L3AxI23QYpFwy+GXuufGxjPwD6pg1u0AKocMfxZLav5j8lplKvq4szC6Q6g1sXecshQvyut3o1GzrCXNAQ==","signatures":[{"sig":"MEUCIBHXp7xKd8y5ASAr23Fb3SbL14zgVweThnFFgNPBlSh7AiEAowmuz0pI4WpHrXd1ixStgVDFLuEviM4Rtbv7uJ2Dpfs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alberteinshutoin%2flazy-image-wasm@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25353},"type":"module","engines":{"node":">= 18"},"exports":{"./edge":{"types":"./edge.d.ts","import":"./edge.js"},"./shared":{"types":"./shared.d.ts","import":"./shared.js"},"./worker":{"types":"./worker.d.ts","import":"./worker.js"},"./browser":{"types":"./browser.d.ts","import":"./browser.js"}},"gitHead":"01977f2fe78c414d980cb80074c6b80d1c28bd29","scripts":{"test":"node test/run.mjs"},"_npmUser":{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"},"repository":{"url":"git+https://github.com/albert-einshutoin/lazy-image.git","type":"git"},"_npmVersion":"10.8.2","description":"Browser and Edge upload-preflight optimizer for lazy-image policy APIs","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@jsquash/png":"3.1.1","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@jsquash/resize":"2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lazy-image-wasm_0.16.0_1780755834867_0.7259364251032037","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@alberteinshutoin/lazy-image-wasm","version":"1.0.0","license":"MIT","_id":"@alberteinshutoin/lazy-image-wasm@1.0.0","maintainers":[{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"}],"homepage":"https://github.com/albert-einshutoin/lazy-image#readme","bugs":{"url":"https://github.com/albert-einshutoin/lazy-image/issues"},"dist":{"shasum":"351b18ad57a731f956adae122f44c01a42883b5b","tarball":"https://registry.npmjs.org/@alberteinshutoin/lazy-image-wasm/-/lazy-image-wasm-1.0.0.tgz","fileCount":12,"integrity":"sha512-z7FgOt7Ma9qw6Lzwc2FOxfEjhqshxyUZKbKepxcM/j6pZ6nHEqMETHqhqd1+8U24JWi4KU5ZGmS6hkGSQDcmbA==","signatures":[{"sig":"MEUCIQCJ1l/jpXHu5d66cmu+/Cibc3LGR79fFNNNwgroLS0/DgIgPipTdpv7qquqF+kQjkqzJUwIItGMI+HCubUzFQpy/hs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alberteinshutoin%2flazy-image-wasm@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31381},"type":"module","engines":{"node":">= 22"},"exports":{"./edge":{"types":"./edge.d.ts","import":"./edge.js"},"./shared":{"types":"./shared.d.ts","import":"./shared.js"},"./worker":{"types":"./worker.d.ts","import":"./worker.js"},"./browser":{"types":"./browser.d.ts","import":"./browser.js"}},"gitHead":"542b5a663507ea5b2191c974bf6b9d34b19a7fed","scripts":{"test":"node test/run.mjs"},"_npmUser":{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"},"repository":{"url":"git+https://github.com/albert-einshutoin/lazy-image.git","type":"git"},"_npmVersion":"10.9.8","description":"Browser and Edge upload-preflight optimizer for lazy-image policy APIs","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@jsquash/png":"3.1.1","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@jsquash/resize":"2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lazy-image-wasm_1.0.0_1787502519273_0.7614218636462415","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alberteinshutoin/lazy-image-wasm","version":"1.0.1","license":"MIT","_id":"@alberteinshutoin/lazy-image-wasm@1.0.1","maintainers":[{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"}],"homepage":"https://github.com/albert-einshutoin/lazy-image#readme","bugs":{"url":"https://github.com/albert-einshutoin/lazy-image/issues"},"dist":{"shasum":"60a35dfb3c6a2c7b5281ad3143baee559868b890","tarball":"https://registry.npmjs.org/@alberteinshutoin/lazy-image-wasm/-/lazy-image-wasm-1.0.1.tgz","fileCount":12,"integrity":"sha512-nxTYwNV5aVDd8/NJRmvaLkg7VM7sRI8m6EIc0U9o+eww6L4BDP0lpcSSSBgHj4H5gD0sz/1xl3RsEXl57I4ZEg==","signatures":[{"sig":"MEYCIQCBqp43xe35er7FU4eNko3Zx8Ndn7845GlrUCVVGpMRzwIhAOBY0E/Ec4Lg9vegXceE4KsGglGOpNLJfliLsH77Dk8I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alberteinshutoin%2flazy-image-wasm@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31381},"type":"module","engines":{"node":">= 22"},"exports":{"./edge":{"types":"./edge.d.ts","import":"./edge.js"},"./shared":{"types":"./shared.d.ts","import":"./shared.js"},"./worker":{"types":"./worker.d.ts","import":"./worker.js"},"./browser":{"types":"./browser.d.ts","import":"./browser.js"}},"gitHead":"99ce79e328cfb17b8ce385b0c4e391484b221b05","scripts":{"test":"node test/run.mjs"},"_npmUser":{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"},"repository":{"url":"git+https://github.com/albert-einshutoin/lazy-image.git","type":"git"},"_npmVersion":"10.9.8","description":"Browser and Edge upload-preflight optimizer for lazy-image policy APIs","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@jsquash/png":"3.1.1","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@jsquash/resize":"2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lazy-image-wasm_1.0.1_1787837382950_0.6165625689374576","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@alberteinshutoin/lazy-image-wasm","version":"1.1.0","license":"MIT","_id":"@alberteinshutoin/lazy-image-wasm@1.1.0","maintainers":[{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"}],"homepage":"https://github.com/albert-einshutoin/lazy-image#readme","bugs":{"url":"https://github.com/albert-einshutoin/lazy-image/issues"},"dist":{"shasum":"7fcfc89cae7079fe71db59c2f2e3ccac70279c12","tarball":"https://registry.npmjs.org/@alberteinshutoin/lazy-image-wasm/-/lazy-image-wasm-1.1.0.tgz","fileCount":12,"integrity":"sha512-SHOx5uEdUXd95njh9cAnUZaPi9j+q6erK8KVoSaTTtbhFWOe4Nv2KTx1OlXV0RtzuzHo+1kpJFDO5CyJM3ECxA==","signatures":[{"sig":"MEQCIEh4pcfmGfUJh11y7Ua1FEb8s7H/Z2uH7KSWrqxEVwZIAiAXjMnJ1z+sik1EpVUKxtRBMpK68oB/93wUKE+YzlNsIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alberteinshutoin%2flazy-image-wasm@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31381},"type":"module","engines":{"node":">= 22"},"exports":{"./edge":{"types":"./edge.d.ts","import":"./edge.js"},"./shared":{"types":"./shared.d.ts","import":"./shared.js"},"./worker":{"types":"./worker.d.ts","import":"./worker.js"},"./browser":{"types":"./browser.d.ts","import":"./browser.js"}},"gitHead":"9ffcdfceb7d05c2c7e0f824807678a05041521f7","scripts":{"test":"node test/run.mjs"},"_npmUser":{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"},"repository":{"url":"git+https://github.com/albert-einshutoin/lazy-image.git","type":"git"},"_npmVersion":"10.9.8","description":"Browser and Edge upload-preflight optimizer for lazy-image policy APIs","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@jsquash/png":"3.1.1","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@jsquash/resize":"2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lazy-image-wasm_1.1.0_1788285541940_0.17876577758844747","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@alberteinshutoin/lazy-image-wasm","version":"1.2.0","license":"MIT","_id":"@alberteinshutoin/lazy-image-wasm@1.2.0","maintainers":[{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"}],"homepage":"https://github.com/albert-einshutoin/lazy-image#readme","bugs":{"url":"https://github.com/albert-einshutoin/lazy-image/issues"},"dist":{"shasum":"db7ee2f8c6ae47a645b19fba17a39b5d40862c58","tarball":"https://registry.npmjs.org/@alberteinshutoin/lazy-image-wasm/-/lazy-image-wasm-1.2.0.tgz","fileCount":12,"integrity":"sha512-rVT77PhHm0Miaa0EdSr9c2NFCVGofVn2Qz+HCHv4eVw9c9cO6pYcuiCLWv0CtOVeGJEG1jMOkhs9Tx/Jodmhnw==","signatures":[{"sig":"MEQCIDmaH00O+yuBcSEXDebv+/IeCO+rIDx08tg0jHzd7dvoAiB0rEhD4zWYOlLmfeoXKufnF2Ih6VtVCCwyjQ0PCCbK/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alberteinshutoin%2flazy-image-wasm@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31381},"type":"module","engines":{"node":">= 22"},"exports":{"./edge":{"types":"./edge.d.ts","import":"./edge.js"},"./shared":{"types":"./shared.d.ts","import":"./shared.js"},"./worker":{"types":"./worker.d.ts","import":"./worker.js"},"./browser":{"types":"./browser.d.ts","import":"./browser.js"}},"gitHead":"584d4b54dadaa4c208ede35e3295b3c65f0798f3","scripts":{"test":"node test/run.mjs"},"_npmUser":{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"},"repository":{"url":"git+https://github.com/albert-einshutoin/lazy-image.git","type":"git"},"_npmVersion":"10.9.8","description":"Browser and Edge upload-preflight optimizer for lazy-image policy APIs","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@jsquash/png":"3.1.1","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@jsquash/resize":"2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lazy-image-wasm_1.2.0_1788537243609_0.8021400436094481","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@alberteinshutoin/lazy-image-wasm","version":"1.3.0","license":"MIT","_id":"@alberteinshutoin/lazy-image-wasm@1.3.0","maintainers":[{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"}],"homepage":"https://github.com/albert-einshutoin/lazy-image#readme","bugs":{"url":"https://github.com/albert-einshutoin/lazy-image/issues"},"dist":{"shasum":"e4f424796dc5129cd9e1016672728e7ada3f975f","tarball":"https://registry.npmjs.org/@alberteinshutoin/lazy-image-wasm/-/lazy-image-wasm-1.3.0.tgz","fileCount":12,"integrity":"sha512-T1j9TluMOFFZxU1kGIQihOZWR+g6LQKzwSTo3lbjODrN4PgWNjd86ZOnXavUCp4zg3K+bMXowkUO4iSmcYo8CA==","signatures":[{"sig":"MEUCIGZCxwoDVj9gE0QVyB1yrmoWcqfW+V9ClJfxMR3l7RjUAiEAnSmELGbe4cjcjS03VsMtttm04LpybVyCwoL+HLABU+A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCTKsXZDp0h2/bCCQVrgF6hTJi3DX9Um2O05WDOjSnGLwIgPmma5um3Uo1PT7rdr/FPQTMHr+HaYRZpNiAo0mEVQoo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alberteinshutoin%2flazy-image-wasm@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31381},"type":"module","engines":{"node":">= 22"},"exports":{"./edge":{"types":"./edge.d.ts","import":"./edge.js"},"./shared":{"types":"./shared.d.ts","import":"./shared.js"},"./worker":{"types":"./worker.d.ts","import":"./worker.js"},"./browser":{"types":"./browser.d.ts","import":"./browser.js"}},"gitHead":"8d302653811a56b5da20ba53ed056bf695380eae","scripts":{"test":"node test/run.mjs"},"_npmUser":{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"},"repository":{"url":"git+https://github.com/albert-einshutoin/lazy-image.git","type":"git"},"_npmVersion":"10.9.8","description":"Browser and Edge upload-preflight optimizer for lazy-image policy APIs","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@jsquash/png":"3.1.1","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@jsquash/resize":"2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lazy-image-wasm_1.3.0_1789085028302_0.21017232913999995","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@alberteinshutoin/lazy-image-wasm","version":"1.3.1","license":"MIT","_id":"@alberteinshutoin/lazy-image-wasm@1.3.1","maintainers":[{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"}],"homepage":"https://github.com/albert-einshutoin/lazy-image#readme","bugs":{"url":"https://github.com/albert-einshutoin/lazy-image/issues"},"dist":{"shasum":"f94e2b811688050b69d718d571ceb157e4aa3620","tarball":"https://registry.npmjs.org/@alberteinshutoin/lazy-image-wasm/-/lazy-image-wasm-1.3.1.tgz","fileCount":12,"integrity":"sha512-80yry+i323threLO1+cl4BkxBIknDBWPgRiQ08Jt3Z98cUfJNZV5WKKCrsfwpcd8fCKC7EhuaDkXrLAxXsxcOw==","signatures":[{"sig":"MEQCID6YFhjsYL4irEee4fzaPT+3I3+mD8C3VLJkT60IDCBxAiBlFxNuGxHA0vnxg3WqUqf30HVF2fasRjpRZLJgVYNz9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIF3p8Lw0lX57Uo14pm1eJ3jdvULfRulqPmDLNYNwzluRAiEA1xGsf/jaDa3lKWBn8NHfbkWknYOuL7hO3xvtohenAiM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alberteinshutoin%2flazy-image-wasm@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31381},"type":"module","engines":{"node":">= 22"},"exports":{"./edge":{"types":"./edge.d.ts","import":"./edge.js"},"./shared":{"types":"./shared.d.ts","import":"./shared.js"},"./worker":{"types":"./worker.d.ts","import":"./worker.js"},"./browser":{"types":"./browser.d.ts","import":"./browser.js"}},"gitHead":"ec3601e03495c77203c94c0bc84f2b52da6e89ae","scripts":{"test":"node test/run.mjs"},"_npmUser":{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"},"repository":{"url":"git+https://github.com/albert-einshutoin/lazy-image.git","type":"git"},"_npmVersion":"10.9.8","description":"Browser and Edge upload-preflight optimizer for lazy-image policy APIs","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@jsquash/png":"3.1.1","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@jsquash/resize":"2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lazy-image-wasm_1.3.1_1790185588076_0.1302736127727251","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@alberteinshutoin/lazy-image-wasm","version":"1.4.0","license":"MIT","_id":"@alberteinshutoin/lazy-image-wasm@1.4.0","maintainers":[{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"}],"homepage":"https://github.com/albert-einshutoin/lazy-image#readme","bugs":{"url":"https://github.com/albert-einshutoin/lazy-image/issues"},"dist":{"shasum":"a0e3dded9e8ff5582f058307d59397772add23fa","tarball":"https://registry.npmjs.org/@alberteinshutoin/lazy-image-wasm/-/lazy-image-wasm-1.4.0.tgz","fileCount":12,"integrity":"sha512-R3xpMJr3rBv+LsyfpggixCZvktlS3XRvLi542x4JgbrvvBP3NH/xip3TJSze4fGDQIfj7hWplLeKUlHPCnidew==","signatures":[{"sig":"MEUCIHxZN6oswcKCOQZO9/iC4fiLj9Czog8imz2EwyYVx3pCAiEA7mV6J3otmlBh95Rwb6TUwAkFgKt3THoYYEckkhxaXak=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBGScIC/Ofe1jTt58wgTn1SjekKwlChIjlj4G9lgtXfVAiEA8zs6M0rirNqgmIcx4J1V49ByaCuvleCHtQDuTNV/3a8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alberteinshutoin%2flazy-image-wasm@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37262},"type":"module","engines":{"node":">= 22"},"exports":{"./edge":{"types":"./edge.d.ts","import":"./edge.js"},"./shared":{"types":"./shared.d.ts","import":"./shared.js"},"./worker":{"types":"./worker.d.ts","import":"./worker.js"},"./browser":{"types":"./browser.d.ts","import":"./browser.js"}},"gitHead":"a14f7fb346502c32fcc52e9ec380877abddfa683","scripts":{"test":"node test/run.mjs"},"_npmUser":{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"},"repository":{"url":"git+https://github.com/albert-einshutoin/lazy-image.git","type":"git"},"_npmVersion":"10.9.8","description":"Browser and Edge upload-preflight optimizer for lazy-image policy APIs","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@jsquash/png":"3.1.1","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@jsquash/resize":"2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lazy-image-wasm_1.4.0_1790321506881_0.3441190607504123","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@alberteinshutoin/lazy-image-wasm","version":"1.4.1","license":"MIT","_id":"@alberteinshutoin/lazy-image-wasm@1.4.1","maintainers":[{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"}],"homepage":"https://github.com/albert-einshutoin/lazy-image#readme","bugs":{"url":"https://github.com/albert-einshutoin/lazy-image/issues"},"dist":{"shasum":"88f0788151476c25f69b682b3a986b668be95f12","tarball":"https://registry.npmjs.org/@alberteinshutoin/lazy-image-wasm/-/lazy-image-wasm-1.4.1.tgz","fileCount":12,"integrity":"sha512-HOQteokY2kEkLgmRwmvq7t4VeCJn3aVgNRpsr+UjuK2WYnqBRE4jIN+m3bDYWs5pux+1LTkAa5N/1+N63jnmKw==","signatures":[{"sig":"MEUCID2zlaRfSRztUb3LUFo5iwyHvtbMxoIpQEEfaIh1bdMqAiEA5AHRyBcz9kGIYA0Ko5AuauPkuZ15T7q9v4Wbn6EdvR4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDyROtH5ukm9HhJIb0uamvbg6jsA11Ixcc1I4GAD4juqQIgcE6CHJhny4yfcpUoT4bgFWgD9x6G0/EmidONjYpue7o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alberteinshutoin%2flazy-image-wasm@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37262},"type":"module","engines":{"node":">= 22"},"exports":{"./edge":{"types":"./edge.d.ts","import":"./edge.js"},"./shared":{"types":"./shared.d.ts","import":"./shared.js"},"./worker":{"types":"./worker.d.ts","import":"./worker.js"},"./browser":{"types":"./browser.d.ts","import":"./browser.js"}},"gitHead":"3ab052ebc223dcf096e2ed21498e964db2035200","scripts":{"test":"node test/run.mjs"},"_npmUser":{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"},"repository":{"url":"git+https://github.com/albert-einshutoin/lazy-image.git","type":"git"},"_npmVersion":"10.9.8","description":"Browser and Edge upload-preflight optimizer for lazy-image policy APIs","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@jsquash/png":"3.1.1","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@jsquash/resize":"2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lazy-image-wasm_1.4.1_1790437439226_0.6331688882161268","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"_id":"@alberteinshutoin/lazy-image-wasm@1.4.2","bugs":{"url":"https://github.com/albert-einshutoin/lazy-image/issues"},"dist":{"shasum":"8dbed08f9362ba012d2f90095fc56a15565a98c9","tarball":"https://registry.npmjs.org/@alberteinshutoin/lazy-image-wasm/-/lazy-image-wasm-1.4.2.tgz","fileCount":12,"integrity":"sha512-4wuB8Qb8vVujLpsTJo6/powKdrM9uBf/GT4wXVeb+6hKpUaOiPn//E/M24agsg3qAmHebDKOKAxhUO/l5TxgDg==","signatures":[{"sig":"MEUCIEOUcpOp/R8mGxSzld5ASfldaTnzuAQsV+Q6leTd4vroAiEAzZCuskxOyMy+uO7j0V2y+YB9YeJ7N2PQtB9xtVc5Nio=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFMSTaVoWZx+XnyseSwbgr3Riw2sDVuMqrBp6X+iPc9MAiEAhyHHPrBuziOwqhPSvCUFkU/pLsde/ZnI7XXPPzTqSVk="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alberteinshutoin%2flazy-image-wasm@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37262},"name":"@alberteinshutoin/lazy-image-wasm","type":"module","engines":{"node":">= 22"},"exports":{"./edge":{"types":"./edge.d.ts","import":"./edge.js"},"./shared":{"types":"./shared.d.ts","import":"./shared.js"},"./worker":{"types":"./worker.d.ts","import":"./worker.js"},"./browser":{"types":"./browser.d.ts","import":"./browser.js"}},"gitHead":"57a5126731b9e3c22f3d5867d9ba0a9dbf9ddfc1","license":"MIT","scripts":{"test":"node test/run.mjs"},"version":"1.4.2","_npmUser":{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"},"homepage":"https://github.com/albert-einshutoin/lazy-image#readme","repository":{"url":"git+https://github.com/albert-einshutoin/lazy-image.git","type":"git"},"_npmVersion":"10.9.9","description":"Browser and Edge upload-preflight optimizer for lazy-image policy APIs","directories":{},"maintainers":[{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"}],"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"@jsquash/png":"3.1.1","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@jsquash/resize":"2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/lazy-image-wasm_1.4.2_1790927939619_0.22995568346505246"}}},"time":{"created":"2026-06-06T14:23:54.727Z","modified":"2026-10-02T07:59:00.096Z","0.16.0":"2026-06-06T14:23:55.012Z","1.0.0":"2026-08-23T16:28:39.446Z","1.0.1":"2026-08-27T13:29:43.088Z","1.1.0":"2026-09-01T17:59:02.088Z","1.2.0":"2026-09-04T15:54:03.756Z","1.3.0":"2026-09-11T00:03:48.390Z","1.3.1":"2026-09-23T17:46:28.160Z","1.4.0":"2026-09-25T07:31:46.971Z","1.4.1":"2026-09-26T15:43:59.324Z","1.4.2":"2026-10-02T07:58:59.702Z"},"bugs":{"url":"https://github.com/albert-einshutoin/lazy-image/issues"},"license":"MIT","homepage":"https://github.com/albert-einshutoin/lazy-image#readme","repository":{"url":"git+https://github.com/albert-einshutoin/lazy-image.git","type":"git"},"description":"Browser and Edge upload-preflight optimizer for lazy-image policy APIs","maintainers":[{"name":"alberteinshutoin","email":"einstein.4s.1110@gmail.com"}],"readme":"# @alberteinshutoin/lazy-image-wasm\n\nBrowser and Edge upload-preflight optimizer for lazy-image policy APIs.\n\nThis package is the first Wasm MVP. It uses jSquash Wasm codecs as the low-level\nbrowser/V8 codec adapter while lazy-image owns the upload policy, target-byte\nsearch, metrics, and structured errors.\n\n## Browser\n\n```js\nimport { optimizeUpload } from '@alberteinshutoin/lazy-image-wasm/browser';\n\nconst result = await optimizeUpload(file, {\n  format: 'webp',\n  maxWidth: 1600,\n  maxHeight: 1600,\n  targetBytes: 350_000,\n  output: 'blob',\n});\n```\n\n## Edge\n\nEdge runtimes often need explicit Wasm module loading. Pass compiled\n`WebAssembly.Module`, `ArrayBuffer`, or `Uint8Array` values via `wasmModules`.\n\n```js\nimport { createUploadOptimizer } from '@alberteinshutoin/lazy-image-wasm/edge';\n\nconst optimizer = await createUploadOptimizer({ wasmModules });\nconst result = await optimizer.optimizeUpload(new Uint8Array(await request.arrayBuffer()), {\n  format: 'jpeg',\n  maxWidth: 1200,\n  maxHeight: 1200,\n  targetBytes: 250_000,\n});\n```\n\n### Example (Cloudflare Workers / V8 isolate)\n\n`examples/edge.mjs` (shipped in this package) is a small runtime-safe pattern:\nit caches one optimizer per isolate, reads `@jsquash` Wasm bindings from\n`env.JSQUASH_*` keys, and maps caller-correctable `LazyImageWasmError` values\nto HTTP 400. Wasm errors use the native package categories\n(`UserError`, `CodecError`, `ResourceLimit`, `InternalBug`); see\n[`docs/WASM_PACKAGE_API.md`](https://github.com/albert-einshutoin/lazy-image/blob/main/docs/WASM_PACKAGE_API.md#errors) for the\ncross-package code table.\n\nCopy the file into your Worker project and change its relative imports to the\npackage specifiers (`@alberteinshutoin/lazy-image-wasm/edge` and\n`@alberteinshutoin/lazy-image-wasm/shared`), then wire it up:\n\n```js\nimport { handleOptimizeRequest } from './lazy-image-edge.mjs';\n\nexport default {\n  async fetch(request, env) {\n    return handleOptimizeRequest(request, env);\n  },\n};\n```\n\nYour deployment must provide the codec Wasm as bindings named\n`JSQUASH_JPEG_DECODER`, `JSQUASH_JPEG_ENCODER`, `JSQUASH_PNG_DECODER`,\n`JSQUASH_RESIZE`, `JSQUASH_WEBP_DECODER`, and `JSQUASH_WEBP_ENCODER`\n(`WebAssembly.Module`, `ArrayBuffer`, or `Uint8Array` values).\n\n### Edge and browser constraints\n\n- Supported formats stay limited to `jpeg` and `webp` output, and input is currently\n  `jpeg` / `png` / `webp`.\n- No filesystem, native filesystem APIs, or Node built-ins are available.\n- In a browser module Worker, the published codecs can resolve deployed Wasm\n  files themselves as described below. Edge isolates in the verified workerd\n  setup use `wasmModules` with static `WebAssembly.Module` imports.\n- If you use `output: 'blob'` in runtimes that do not expose `Blob`, the API returns\n  an error and you should request `arrayBuffer` or `uint8Array` instead.\n\nBundle considerations:\n\n- Keep this package behind lazy-loading where possible and avoid eagerly shipping the\n  full browser/resize codec set for pages that do not optimize uploads.\n- Run `npm run test:bench:wasm` locally and inspect generated artifacts to decide\n  whether full `resize`/`webp` codec loading is justified for your target flow.\n- For browser/Edge evidence, collect both bundle/gzip size and encode-metrics before\n  publishing any performance claim.\n\n## Worker\n\nThe package can use the codecs' normal Wasm loader in a\nChrome module Worker. Install the package and a bundler, then put the Worker\nbundle and the **unchanged** published codec Wasm files at the same URL level.\nThe codec loader resolves Wasm with `new URL(..., import.meta.url)`; the tested\nesbuild ESM bundle emits those URLs relative to `worker.js`.\n\n```bash\nnpm install @alberteinshutoin/lazy-image-wasm@1.4.2\nnpm install --save-dev esbuild@0.25.10\n./node_modules/.bin/esbuild worker.mjs --bundle --format=esm --platform=browser --target=es2022 --outfile=dist/worker.js\nfind node_modules/@jsquash/{jpeg,png,resize,webp} -name '*.wasm' -exec cp {} dist/ \\;\n```\n\n`worker.mjs`:\n\n```js\nimport { createUploadWorkerHandler } from '@alberteinshutoin/lazy-image-wasm/worker';\n\nself.addEventListener('message', createUploadWorkerHandler());\n```\n\nPut the page in `dist/index.html` and serve `dist/` as the HTTP document root\n(for example, `python3 -m http.server 8080 --directory dist`). Then\n`dist/worker.js` is available at `/worker.js` and the copied Wasm files at\n`/<name>.wasm`. Call the Worker from that page:\n\n```js\nconst file = document.querySelector('input[type=file]').files[0];\nconst worker = new Worker('/worker.js', { type: 'module' });\nworker.onmessage = ({ data }) => {\n  if (!data.ok) {\n    console.error(data.error.code, data.error.message, data.error.recoveryHint);\n    return;\n  }\n  const output = new Blob([data.result.data], { type: 'image/webp' });\n  // Use or upload output.\n};\nworker.postMessage({ id: 1, input: await file.arrayBuffer(), options: {\n  format: 'webp', maxWidth: 1600, maxHeight: 1600, targetBytes: 500_000,\n  output: 'arrayBuffer',\n} });\n```\n\nServe the generated JS as JavaScript and `.wasm` as `application/wasm` over\nHTTP(S). In the tested Chrome 153.0.8010.53 setup, the JPEG→WebP path fetched\n`mozjpeg_dec.wasm`, `squoosh_resize_bg.wasm`, and **`webp_enc_simd.wasm`**;\nPNG→JPEG additionally fetched `squoosh_png_bg.wasm` and `mozjpeg_enc.wasm`.\nThe copy command places all nine published codec Wasm files, allowing other\nsupported paths and codec variants to resolve. Missing required Wasm fails\nimage processing. The reproducible HTTP server, exact asset hashes, and output\nchecks for v1.3.1 are in [the browser verification record](https://github.com/albert-einshutoin/lazy-image/blob/main/docs/history/WASM_1.3.1_BROWSER_DEFAULT_VERIFICATION.md).\n\nIf the Worker returns `E131` for JPEG decoding, inspect its `message` and\n`recoveryHint` before changing the image. In the setup above, confirm\n`dist/mozjpeg_dec.wasm` exists, then use Chrome DevTools **Network** to check\nthe `.wasm` request URL and HTTP status. The response must contain Wasm bytes,\nnot a 404 page or HTML. If Wasm delivery is correct, check the JPEG for\ncorruption or a codec processing failure. `E503` during resizing follows the\nsame check for `squoosh_resize_bg.wasm`. `E300` during WebP encoding follows\nthe same check for the variant actually requested (`webp_enc_simd.wasm` in the\nverified Chrome setup). The error does **not** claim an HTTP status or URL it\ncannot observe; Network provides that evidence. The Worker returns the same\n`code`, `category`, `recoverable`, `message`, and `recoveryHint` as the direct\nAPI.\n\n`wasmModules` remains available for explicit injection when a runtime needs\nstatic module bindings, as in the Edge example above. The previously tested\nChrome injection setup is a separate loading mode.\n\nThe MVP supports JPEG, PNG, and WebP input; JPEG and WebP output; metadata\nstripping by default; best-effort and strict target-byte policies; and metrics\ncompatible with the native lazy-image vocabulary where possible. Resize policies\nsupport `inside`, `cover`, and `fill`; `limits.timeoutMs` is enforced between\ninput, decode, resize, and encode stages as a best-effort checkpoint.\n","readmeFilename":"README.md"}