{"_id":"purejsimage","_rev":"17-38b34d0605155fab709c59e2ce4847dc","name":"purejsimage","dist-tags":{"latest":"0.17.0"},"versions":{"0.1.0":{"name":"purejsimage","version":"0.1.0","keywords":["image","image-processing","jpeg","png","webp","avif","bmp","tiff","gif","serverless","lambda"],"author":{"name":"Aaron Decker"},"license":"MIT","_id":"purejsimage@0.1.0","maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"homepage":"https://github.com/a-r-d/PureJsImage#readme","bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"dist":{"shasum":"8707d8a05dd8022c82102acc2efa942078bfeb8f","tarball":"https://registry.npmjs.org/purejsimage/-/purejsimage-0.1.0.tgz","fileCount":155,"integrity":"sha512-Py0EkHGscDl8ZshSzMAJttrRPa13SP61BkFpvSkLlKQE144hVthlaFcXuFz2P3r7GhznWdYScutsyE08mG3Unw==","signatures":[{"sig":"MEYCIQDzSvdCCHuevSL7tYRHOTzMnRj1rs16Mpmv4BuqNR5McQIhAOzeSsSm+/pygmSPu8EqWFWSFpvODO9vFfdJ5BvcFJ+9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1445726},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"46113c741c9a76405565a44881b20ce56cfff80f","scripts":{"lint":"biome lint .","test":"vitest run","bench":"node benchmark/run.ts","build":"node scripts/clean-dist.ts && tsc -p tsconfig.build.json","check":"npm run typecheck && npm run build && npm run lint && npm run format:check && npm test","format":"biome format --write .","prepack":"npm run check","bench:bmp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile bmp","typecheck":"tsc --noEmit","bench:jimp":"node benchmark/run.ts --engines jimp","bench:tiff":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile tiff","bench:webp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile webp","test:watch":"vitest","bench:smoke":"node benchmark/run.ts --engines jimp --profile smoke --runs 1 --warmups 0","format:check":"biome format .","bench:avif:b2":"node --expose-gc benchmark/avif/run-b2.ts","fixtures:avif":"node benchmark/avif/prepare-corpus.ts","bench:bmp:jimp":"node benchmark/run.ts --engines jimp --profile bmp","bench:tiff:jimp":"node benchmark/run.ts --engines jimp --profile tiff","fixtures:verify":"node benchmark/scripts/verify-corpus.ts","results:combine":"node benchmark/scripts/combine-results.ts","fixtures:prepare":"node benchmark/scripts/prepare-corpus.ts","bench:avif:inspect":"node benchmark/avif/inspect-bitstreams.ts","bench:avif:reference":"node benchmark/avif/run-reference.ts"},"_npmUser":{"name":"a-r-d","email":"aaron@ard.ninja"},"repository":{"url":"git+https://github.com/a-r-d/PureJsImage.git","type":"git"},"_npmVersion":"11.13.0","description":"Low-memory, dependency-free image processing in pure TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jimp":"1.6.0","pngjs":"7.0.0","bmp-ts":"^1.0.9","omggif":"1.0.10","vitest":"4.1.10","jpeg-js":"0.4.4","typescript":"7.0.2","@types/node":"26.1.2","exif-parser":"0.1.12","@types/pngjs":"6.0.5","@types/omggif":"1.0.5","@biomejs/biome":"2.5.7","image-dimensions":"2.5.1","@stacksjs/ts-avif":"0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/purejsimage_0.1.0_1786082993198_0.891758782680282","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"purejsimage","version":"0.2.0","keywords":["image","image-processing","jpeg","png","webp","avif","bmp","tiff","gif","heif","heic","serverless","lambda"],"author":{"name":"Aaron Decker"},"license":"MIT","_id":"purejsimage@0.2.0","maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"homepage":"https://github.com/a-r-d/PureJsImage#readme","bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"dist":{"shasum":"bd232646192aaa889b89b19a40453c687e8aaa6a","tarball":"https://registry.npmjs.org/purejsimage/-/purejsimage-0.2.0.tgz","fileCount":231,"integrity":"sha512-uVsb4XqtuBWYdhYuRFR0FfL81Z7Of5Dfb0tHviPmnC+qSI5aHykYETZUe1/uST5/w8o86KGt7OxVyrfEmoWXIg==","signatures":[{"sig":"MEYCIQDWFH+6ymMMoY2OonsgfwM08HcTtYXBHI/4Gehh5Q7hTQIhAJLGD6kW/Fv4K2GdzmcKcqcIuvw3WjSTAUXmrKLKrlr2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1858821},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./codecs/all":{"types":"./dist/codec-entries/all.d.ts","import":"./dist/codec-entries/all.js","default":"./dist/codec-entries/all.js"},"./codecs/bmp":{"types":"./dist/codec-entries/bmp.d.ts","import":"./dist/codec-entries/bmp.js","default":"./dist/codec-entries/bmp.js"},"./codecs/gif":{"types":"./dist/codec-entries/gif.d.ts","import":"./dist/codec-entries/gif.js","default":"./dist/codec-entries/gif.js"},"./codecs/png":{"types":"./dist/codec-entries/png.d.ts","import":"./dist/codec-entries/png.js","default":"./dist/codec-entries/png.js"},"./codecs/avif":{"types":"./dist/codec-entries/avif.d.ts","import":"./dist/codec-entries/avif.js","default":"./dist/codec-entries/avif.js"},"./codecs/heif":{"types":"./dist/codec-entries/heif.d.ts","import":"./dist/codec-entries/heif.js","default":"./dist/codec-entries/heif.js"},"./codecs/jpeg":{"types":"./dist/codec-entries/jpeg.d.ts","import":"./dist/codec-entries/jpeg.js","default":"./dist/codec-entries/jpeg.js"},"./codecs/tiff":{"types":"./dist/codec-entries/tiff.d.ts","import":"./dist/codec-entries/tiff.js","default":"./dist/codec-entries/tiff.js"},"./codecs/webp":{"types":"./dist/codec-entries/webp.d.ts","import":"./dist/codec-entries/webp.js","default":"./dist/codec-entries/webp.js"}},"gitHead":"110f18323bb88f5b0f72b746ab42d52c045bd6a0","scripts":{"lint":"biome lint .","test":"vitest run","bench":"node benchmark/run.ts","build":"node scripts/clean-dist.ts && tsc -p tsconfig.build.json","check":"npm run typecheck && npm run build && npm run lint && npm run format:check && npm test","format":"biome format --write .","prepack":"npm run check","bench:bmp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile bmp","typecheck":"tsc --noEmit","bench:heif":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif","bench:jimp":"node benchmark/run.ts --engines jimp","bench:tiff":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile tiff","bench:webp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile webp","test:watch":"vitest","bench:smoke":"node benchmark/run.ts --engines jimp --profile smoke --runs 1 --warmups 0","format:check":"biome format .","bench:avif:b2":"node --expose-gc benchmark/avif/run-b2.ts","fixtures:avif":"node benchmark/avif/prepare-corpus.ts","fixtures:heif":"node benchmark/heif/verify-corpus.ts","bench:bmp:jimp":"node benchmark/run.ts --engines jimp --profile bmp","bench:heif:cold":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif --runs 3 --warmups 0","bench:heif:warm":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif --runs 3 --warmups 1","bench:tiff:jimp":"node benchmark/run.ts --engines jimp --profile tiff","fixtures:verify":"node benchmark/scripts/verify-corpus.ts","results:combine":"node benchmark/scripts/combine-results.ts","fixtures:prepare":"node benchmark/scripts/prepare-corpus.ts","bench:avif:inspect":"node benchmark/avif/inspect-bitstreams.ts","bench:avif:reference":"node benchmark/avif/run-reference.ts"},"_npmUser":{"name":"a-r-d","email":"aaron@ard.ninja"},"repository":{"url":"git+https://github.com/a-r-d/PureJsImage.git","type":"git"},"_npmVersion":"11.13.0","description":"Low-memory, dependency-free image processing in pure TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jimp":"1.6.0","pngjs":"7.0.0","bmp-ts":"^1.0.9","omggif":"1.0.10","vitest":"4.1.10","jpeg-js":"0.4.4","typescript":"7.0.2","@types/node":"26.1.2","exif-parser":"0.1.12","@types/pngjs":"6.0.5","@types/omggif":"1.0.5","@biomejs/biome":"2.5.7","image-dimensions":"2.5.1","@stacksjs/ts-avif":"0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/purejsimage_0.2.0_1786122142373_0.05272087180590401","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"purejsimage","version":"0.3.0","keywords":["image","image-processing","jpeg","png","webp","avif","bmp","tiff","gif","heif","heic","serverless","lambda"],"author":{"name":"Aaron Decker"},"license":"MIT","_id":"purejsimage@0.3.0","maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"homepage":"https://github.com/a-r-d/PureJsImage#readme","bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"dist":{"shasum":"c32633c20936fc43069854afd8d6ac2cad95354b","tarball":"https://registry.npmjs.org/purejsimage/-/purejsimage-0.3.0.tgz","fileCount":235,"integrity":"sha512-qUDXKkh5Q6aRpsR2Z0QsX/B8zTx3HGtY5QwtWQBi6gOh6ftuGMULSC3JZbOJOtMLPAptJSSdDO9Jj17qI1B4Lw==","signatures":[{"sig":"MEYCIQDQwyxLXEbopY5rrBFeXVoMMCMBjhhLjimBe169heLSDgIhALWR88u0TPfvOeJ2Z6GJYx/ZT1ncFdf7S2MAzPTub1f5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1969871},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./codecs/all":{"types":"./dist/codec-entries/all.d.ts","import":"./dist/codec-entries/all.js","default":"./dist/codec-entries/all.js"},"./codecs/bmp":{"types":"./dist/codec-entries/bmp.d.ts","import":"./dist/codec-entries/bmp.js","default":"./dist/codec-entries/bmp.js"},"./codecs/gif":{"types":"./dist/codec-entries/gif.d.ts","import":"./dist/codec-entries/gif.js","default":"./dist/codec-entries/gif.js"},"./codecs/png":{"types":"./dist/codec-entries/png.d.ts","import":"./dist/codec-entries/png.js","default":"./dist/codec-entries/png.js"},"./codecs/avif":{"types":"./dist/codec-entries/avif.d.ts","import":"./dist/codec-entries/avif.js","default":"./dist/codec-entries/avif.js"},"./codecs/heif":{"types":"./dist/codec-entries/heif.d.ts","import":"./dist/codec-entries/heif.js","default":"./dist/codec-entries/heif.js"},"./codecs/jpeg":{"types":"./dist/codec-entries/jpeg.d.ts","import":"./dist/codec-entries/jpeg.js","default":"./dist/codec-entries/jpeg.js"},"./codecs/tiff":{"types":"./dist/codec-entries/tiff.d.ts","import":"./dist/codec-entries/tiff.js","default":"./dist/codec-entries/tiff.js"},"./codecs/webp":{"types":"./dist/codec-entries/webp.d.ts","import":"./dist/codec-entries/webp.js","default":"./dist/codec-entries/webp.js"}},"gitHead":"27a3e549a3edb2698c1173fb3df110640f527061","scripts":{"lint":"biome lint .","test":"vitest run","bench":"node benchmark/run.ts","build":"node scripts/clean-dist.ts && tsc -p tsconfig.build.json","check":"npm run typecheck && npm run build && npm run lint && npm run format:check && npm test","format":"biome format --write .","prepack":"npm run check","bench:bmp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile bmp","typecheck":"tsc --noEmit","bench:heif":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif","bench:jimp":"node benchmark/run.ts --engines jimp","bench:tiff":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile tiff","bench:webp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile webp","test:watch":"vitest","bench:smoke":"node benchmark/run.ts --engines jimp --profile smoke --runs 1 --warmups 0","format:check":"biome format .","bench:avif:b2":"node --expose-gc benchmark/avif/run-b2.ts","fixtures:avif":"node benchmark/avif/prepare-corpus.ts","fixtures:heif":"node benchmark/heif/verify-corpus.ts","fixtures:jpeg":"node benchmark/jpeg/verify-corpus.ts","bench:bmp:jimp":"node benchmark/run.ts --engines jimp --profile bmp","bench:heif:cold":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif --runs 3 --warmups 0","bench:heif:warm":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif --runs 3 --warmups 1","bench:tiff:jimp":"node benchmark/run.ts --engines jimp --profile tiff","fixtures:verify":"node benchmark/scripts/verify-corpus.ts","results:combine":"node benchmark/scripts/combine-results.ts","fixtures:prepare":"node benchmark/scripts/prepare-corpus.ts","bench:jpeg:encode":"npm run build && node --expose-gc benchmark/jpeg/encode-probe.ts","bench:avif:inspect":"node benchmark/avif/inspect-bitstreams.ts","bench:avif:reference":"node benchmark/avif/run-reference.ts"},"_npmUser":{"name":"a-r-d","email":"aaron@ard.ninja"},"repository":{"url":"git+https://github.com/a-r-d/PureJsImage.git","type":"git"},"_npmVersion":"11.13.0","description":"Low-memory, dependency-free image processing in pure TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jimp":"1.6.0","pngjs":"7.0.0","bmp-ts":"^1.0.9","omggif":"1.0.10","vitest":"4.1.10","jpeg-js":"0.4.4","typescript":"7.0.2","@types/node":"26.1.2","exif-parser":"0.1.12","@types/pngjs":"6.0.5","@types/omggif":"1.0.5","@biomejs/biome":"2.5.7","image-dimensions":"2.5.1","@stacksjs/ts-avif":"0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/purejsimage_0.3.0_1786127528293_0.3862457944860118","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"purejsimage","version":"0.4.0","keywords":["image","image-processing","jpeg","png","webp","avif","bmp","tiff","gif","heif","heic","serverless","lambda"],"author":{"name":"Aaron Decker"},"license":"MIT","_id":"purejsimage@0.4.0","maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"homepage":"https://github.com/a-r-d/PureJsImage#readme","bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"dist":{"shasum":"9a32be00a782a54613824df50fc80a4b6fdf4104","tarball":"https://registry.npmjs.org/purejsimage/-/purejsimage-0.4.0.tgz","fileCount":240,"integrity":"sha512-AbB8ZHYu9ztFSBVsv0bHIAkUJgfEPc1iq0+0XufhESYtFM4fldGE+y2r4YPkiqCet+EHLcMqM42M7VepEa7jtA==","signatures":[{"sig":"MEYCIQCiiRfKiDILECDpwPDzWZR6d1akriBbAx6MjtoxYpX0RwIhANbMuDsDC5PaSrVDhHZErtu0KNBD/65XcXeV1nJu5rkf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2130847},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./codecs/all":{"types":"./dist/codec-entries/all.d.ts","import":"./dist/codec-entries/all.js","default":"./dist/codec-entries/all.js"},"./codecs/bmp":{"types":"./dist/codec-entries/bmp.d.ts","import":"./dist/codec-entries/bmp.js","default":"./dist/codec-entries/bmp.js"},"./codecs/gif":{"types":"./dist/codec-entries/gif.d.ts","import":"./dist/codec-entries/gif.js","default":"./dist/codec-entries/gif.js"},"./codecs/png":{"types":"./dist/codec-entries/png.d.ts","import":"./dist/codec-entries/png.js","default":"./dist/codec-entries/png.js"},"./codecs/avif":{"types":"./dist/codec-entries/avif.d.ts","import":"./dist/codec-entries/avif.js","default":"./dist/codec-entries/avif.js"},"./codecs/heif":{"types":"./dist/codec-entries/heif.d.ts","import":"./dist/codec-entries/heif.js","default":"./dist/codec-entries/heif.js"},"./codecs/jpeg":{"types":"./dist/codec-entries/jpeg.d.ts","import":"./dist/codec-entries/jpeg.js","default":"./dist/codec-entries/jpeg.js"},"./codecs/tiff":{"types":"./dist/codec-entries/tiff.d.ts","import":"./dist/codec-entries/tiff.js","default":"./dist/codec-entries/tiff.js"},"./codecs/webp":{"types":"./dist/codec-entries/webp.d.ts","import":"./dist/codec-entries/webp.js","default":"./dist/codec-entries/webp.js"}},"gitHead":"0f2701648f8fe0a6a16c5ccbbf67efce105e384a","scripts":{"lint":"biome lint .","size":"node scripts/measure-bundle-size.ts","test":"vitest run","bench":"node benchmark/run.ts","build":"node scripts/clean-dist.ts && tsc -p tsconfig.build.json","check":"npm run typecheck && npm run build && npm run lint && npm run format:check && npm test && npm run test:hostile-source","format":"biome format --write .","prepack":"npm run check","bench:bmp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile bmp","typecheck":"tsc --noEmit","bench:heif":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif","bench:jimp":"node benchmark/run.ts --engines jimp","bench:tiff":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile tiff","bench:webp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile webp","test:watch":"vitest","bench:smoke":"node benchmark/run.ts --engines jimp --profile smoke --runs 1 --warmups 0","format:check":"biome format .","bench:avif:b2":"node --expose-gc benchmark/avif/run-b2.ts","fixtures:avif":"node benchmark/avif/prepare-corpus.ts","fixtures:heif":"node benchmark/heif/verify-corpus.ts","fixtures:jpeg":"node benchmark/jpeg/verify-corpus.ts","bench:bmp:jimp":"node benchmark/run.ts --engines jimp --profile bmp","bench:heif:cold":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif --runs 3 --warmups 0","bench:heif:warm":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif --runs 3 --warmups 1","bench:tiff:jimp":"node benchmark/run.ts --engines jimp --profile tiff","fixtures:verify":"node benchmark/scripts/verify-corpus.ts","results:combine":"node benchmark/scripts/combine-results.ts","fixtures:prepare":"node benchmark/scripts/prepare-corpus.ts","bench:jpeg:encode":"npm run build && node --expose-gc benchmark/jpeg/encode-probe.ts","bench:avif:inspect":"node benchmark/avif/inspect-bitstreams.ts","test:hostile-source":"PUREJSIMAGE_HOSTILE_SOURCE=1 vitest run","bench:avif:reference":"node benchmark/avif/run-reference.ts"},"_npmUser":{"name":"a-r-d","email":"aaron@ard.ninja"},"repository":{"url":"git+https://github.com/a-r-d/PureJsImage.git","type":"git"},"_npmVersion":"11.13.0","description":"Low-memory, dependency-free image processing in pure TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jimp":"1.6.0","pngjs":"7.0.0","bmp-ts":"^1.0.9","omggif":"1.0.10","vitest":"4.1.10","esbuild":"0.28.1","jpeg-js":"0.4.4","typescript":"7.0.2","@types/node":"26.1.2","exif-parser":"0.1.12","@types/pngjs":"6.0.5","@types/omggif":"1.0.5","@biomejs/biome":"2.5.7","image-dimensions":"2.5.1","@stacksjs/ts-avif":"0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/purejsimage_0.4.0_1786161422689_0.0632036820989641","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"purejsimage","version":"0.5.0","keywords":["image","image-processing","jpeg","png","webp","avif","bmp","tiff","gif","heif","heic","serverless","lambda"],"author":{"name":"Aaron Decker"},"license":"MIT","_id":"purejsimage@0.5.0","maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"homepage":"https://github.com/a-r-d/PureJsImage#readme","bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"dist":{"shasum":"07e30b10dd5094801340061bec90da9959c584b2","tarball":"https://registry.npmjs.org/purejsimage/-/purejsimage-0.5.0.tgz","fileCount":248,"integrity":"sha512-Fn4sXUVSjU4Wq0K3ux4Sos2ASkNS3dQvU/fFcCJn2dFF/4Nu72Op8WqyjML1DdbE3M9jynqVNSv7vQbFJi8Odg==","signatures":[{"sig":"MEQCIGVpbtELeYpr2xDUUTlc6knse54tTCrx9KbO/A7qICVVAiBDNvxwxyPAuCHa6ztBOUAUU+OvVYI4UOru9vIU6uWR8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2253078},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./codecs/all":{"types":"./dist/codec-entries/all.d.ts","import":"./dist/codec-entries/all.js","default":"./dist/codec-entries/all.js"},"./codecs/bmp":{"types":"./dist/codec-entries/bmp.d.ts","import":"./dist/codec-entries/bmp.js","default":"./dist/codec-entries/bmp.js"},"./codecs/gif":{"types":"./dist/codec-entries/gif.d.ts","import":"./dist/codec-entries/gif.js","default":"./dist/codec-entries/gif.js"},"./codecs/ico":{"types":"./dist/codec-entries/ico.d.ts","import":"./dist/codec-entries/ico.js","default":"./dist/codec-entries/ico.js"},"./codecs/png":{"types":"./dist/codec-entries/png.d.ts","import":"./dist/codec-entries/png.js","default":"./dist/codec-entries/png.js"},"./codecs/avif":{"types":"./dist/codec-entries/avif.d.ts","import":"./dist/codec-entries/avif.js","default":"./dist/codec-entries/avif.js"},"./codecs/heif":{"types":"./dist/codec-entries/heif.d.ts","import":"./dist/codec-entries/heif.js","default":"./dist/codec-entries/heif.js"},"./codecs/jpeg":{"types":"./dist/codec-entries/jpeg.d.ts","import":"./dist/codec-entries/jpeg.js","default":"./dist/codec-entries/jpeg.js"},"./codecs/tiff":{"types":"./dist/codec-entries/tiff.d.ts","import":"./dist/codec-entries/tiff.js","default":"./dist/codec-entries/tiff.js"},"./codecs/webp":{"types":"./dist/codec-entries/webp.d.ts","import":"./dist/codec-entries/webp.js","default":"./dist/codec-entries/webp.js"}},"gitHead":"45c89c37e2e06807452df93505fd1c4a7f6625be","scripts":{"lint":"biome lint .","size":"node scripts/measure-bundle-size.ts","test":"vitest run","bench":"node benchmark/run.ts","build":"node scripts/clean-dist.ts && tsc -p tsconfig.build.json","check":"npm run typecheck && npm run build && npm run lint && npm run format:check && npm test && npm run test:hostile-source","format":"biome format --write .","prepack":"npm run check","bench:bmp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile bmp","bench:ico":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile ico","typecheck":"tsc --noEmit","bench:heif":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif","bench:jimp":"node benchmark/run.ts --engines jimp","bench:tiff":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile tiff","bench:webp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile webp","test:watch":"vitest","bench:smoke":"node benchmark/run.ts --engines jimp --profile smoke --runs 1 --warmups 0","fixtures:ico":"node benchmark/ico/verify-corpus.ts","format:check":"biome format .","bench:avif:b2":"node --expose-gc benchmark/avif/run-b2.ts","fixtures:avif":"node benchmark/avif/prepare-corpus.ts","fixtures:heif":"node benchmark/heif/verify-corpus.ts","fixtures:jpeg":"node benchmark/jpeg/verify-corpus.ts","bench:bmp:jimp":"node benchmark/run.ts --engines jimp --profile bmp","bench:heif:cold":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif --runs 3 --warmups 0","bench:heif:warm":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif --runs 3 --warmups 1","bench:tiff:jimp":"node benchmark/run.ts --engines jimp --profile tiff","fixtures:verify":"node benchmark/scripts/verify-corpus.ts","results:combine":"node benchmark/scripts/combine-results.ts","fixtures:prepare":"node benchmark/scripts/prepare-corpus.ts","bench:jpeg:encode":"npm run build && node --expose-gc benchmark/jpeg/encode-probe.ts","bench:avif:inspect":"node benchmark/avif/inspect-bitstreams.ts","test:hostile-source":"PUREJSIMAGE_HOSTILE_SOURCE=1 vitest run","bench:avif:reference":"node benchmark/avif/run-reference.ts"},"_npmUser":{"name":"a-r-d","email":"aaron@ard.ninja"},"repository":{"url":"git+https://github.com/a-r-d/PureJsImage.git","type":"git"},"_npmVersion":"11.13.0","description":"Low-memory, dependency-free image processing in pure TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jimp":"1.6.0","pngjs":"7.0.0","bmp-ts":"^1.0.9","omggif":"1.0.10","vitest":"4.1.10","esbuild":"0.28.1","jpeg-js":"0.4.4","typescript":"7.0.2","@types/node":"26.1.2","exif-parser":"0.1.12","@types/pngjs":"6.0.5","@types/omggif":"1.0.5","@biomejs/biome":"2.5.7","image-dimensions":"2.5.1","@stacksjs/ts-avif":"0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/purejsimage_0.5.0_1786163459308_0.5409351012876413","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"purejsimage","version":"0.6.0","keywords":["image","image-processing","jpeg","jpeg2000","jp2","png","webp","avif","bmp","tiff","gif","heif","heic","serverless","lambda"],"author":{"name":"Aaron Decker"},"license":"MIT","_id":"purejsimage@0.6.0","maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"homepage":"https://github.com/a-r-d/PureJsImage#readme","bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"dist":{"shasum":"fcf6e65b0cb2885e77b0b5af5c000d6e5c13b403","tarball":"https://registry.npmjs.org/purejsimage/-/purejsimage-0.6.0.tgz","fileCount":276,"integrity":"sha512-SLQFHRfr1u08+P53ieO1SGyV+V06LnGNzHxeC5VxZvOzJNqx16Fu3TTlaMOMteJmuUmeeiJSXsgQ0JSuEdayXw==","signatures":[{"sig":"MEYCIQCzI3efiatxAa8xaarcr+qMg9WIUeFkPvS2fzGRbEpd7wIhAKThJObBwUvrbgYvSoOuGVy43LsPZoZgnlcz8RKP5/mu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2525682},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./codecs/all":{"types":"./dist/codec-entries/all.d.ts","import":"./dist/codec-entries/all.js","default":"./dist/codec-entries/all.js"},"./codecs/bmp":{"types":"./dist/codec-entries/bmp.d.ts","import":"./dist/codec-entries/bmp.js","default":"./dist/codec-entries/bmp.js"},"./codecs/gif":{"types":"./dist/codec-entries/gif.d.ts","import":"./dist/codec-entries/gif.js","default":"./dist/codec-entries/gif.js"},"./codecs/ico":{"types":"./dist/codec-entries/ico.d.ts","import":"./dist/codec-entries/ico.js","default":"./dist/codec-entries/ico.js"},"./codecs/png":{"types":"./dist/codec-entries/png.d.ts","import":"./dist/codec-entries/png.js","default":"./dist/codec-entries/png.js"},"./codecs/avif":{"types":"./dist/codec-entries/avif.d.ts","import":"./dist/codec-entries/avif.js","default":"./dist/codec-entries/avif.js"},"./codecs/heif":{"types":"./dist/codec-entries/heif.d.ts","import":"./dist/codec-entries/heif.js","default":"./dist/codec-entries/heif.js"},"./codecs/jpeg":{"types":"./dist/codec-entries/jpeg.d.ts","import":"./dist/codec-entries/jpeg.js","default":"./dist/codec-entries/jpeg.js"},"./codecs/tiff":{"types":"./dist/codec-entries/tiff.d.ts","import":"./dist/codec-entries/tiff.js","default":"./dist/codec-entries/tiff.js"},"./codecs/webp":{"types":"./dist/codec-entries/webp.d.ts","import":"./dist/codec-entries/webp.js","default":"./dist/codec-entries/webp.js"},"./codecs/jpeg2000":{"types":"./dist/codec-entries/jpeg2000.d.ts","import":"./dist/codec-entries/jpeg2000.js","default":"./dist/codec-entries/jpeg2000.js"}},"gitHead":"3366bbf4bcaa0a7998b580567f62b2a5d007cae8","scripts":{"lint":"biome lint .","size":"node scripts/measure-bundle-size.ts","test":"vitest run","bench":"node benchmark/run.ts","build":"node scripts/clean-dist.ts && tsc -p tsconfig.build.json","check":"npm run typecheck && npm run build && npm run lint && npm run format:check && npm test && npm run test:hostile-source","format":"biome format --write .","prepack":"npm run check","bench:bmp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile bmp","bench:ico":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile ico","typecheck":"tsc --noEmit","bench:heif":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif","bench:jimp":"node benchmark/run.ts --engines jimp","bench:tiff":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile tiff","bench:webp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile webp","test:watch":"vitest","bench:smoke":"node benchmark/run.ts --engines jimp --profile smoke --runs 1 --warmups 0","fixtures:ico":"node benchmark/ico/verify-corpus.ts","format:check":"biome format .","fuzz:release":"PUREJSIMAGE_FUZZ_RELEASE=1 PUREJSIMAGE_FUZZ_CASES=512 PUREJSIMAGE_FUZZ_SEED=1592598566 PUREJSIMAGE_FUZZ_CRASH_DIR=artifacts/fuzz-crashes vitest run tests/corruption-fuzz.test.ts","bench:avif:b2":"node --expose-gc benchmark/avif/run-b2.ts","fixtures:avif":"node benchmark/avif/prepare-corpus.ts","fixtures:heif":"node benchmark/heif/verify-corpus.ts","fixtures:jpeg":"node benchmark/jpeg/verify-corpus.ts","bench:bmp:jimp":"node benchmark/run.ts --engines jimp --profile bmp","bench:heif:cold":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif --runs 3 --warmups 0","bench:heif:warm":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif --runs 3 --warmups 1","bench:tiff:jimp":"node benchmark/run.ts --engines jimp --profile tiff","fixtures:verify":"node benchmark/scripts/verify-corpus.ts","results:combine":"node benchmark/scripts/combine-results.ts","bench:transforms":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile transforms","fixtures:prepare":"node benchmark/scripts/prepare-corpus.ts","bench:jpeg:encode":"npm run build && node --expose-gc benchmark/jpeg/encode-probe.ts","fixtures:jpeg2000":"node benchmark/jpeg2000/verify-corpus.ts","bench:avif:inspect":"node benchmark/avif/inspect-bitstreams.ts","bench:jpeg2000:rss":"node benchmark/jpeg2000/run-rss.ts","test:hostile-source":"PUREJSIMAGE_HOSTILE_SOURCE=1 vitest run","bench:avif:reference":"node benchmark/avif/run-reference.ts","bench:transforms:compare":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines jimp,purejsimage --profile transforms-comparable"},"_npmUser":{"name":"a-r-d","email":"aaron@ard.ninja"},"repository":{"url":"git+https://github.com/a-r-d/PureJsImage.git","type":"git"},"_npmVersion":"11.13.0","description":"Low-memory, dependency-free image processing in pure TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jimp":"1.6.0","pngjs":"7.0.0","bmp-ts":"^1.0.9","omggif":"1.0.10","vitest":"4.1.10","esbuild":"0.28.1","jpeg-js":"0.4.4","typescript":"7.0.2","@types/node":"26.1.2","exif-parser":"0.1.12","@types/pngjs":"6.0.5","@types/omggif":"1.0.5","@biomejs/biome":"2.5.7","image-dimensions":"2.5.1","@stacksjs/ts-avif":"0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/purejsimage_0.6.0_1786208114318_0.7285511051997053","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"purejsimage","version":"0.7.0","keywords":["image","image-processing","jpeg","jpeg2000","jp2","png","webp","avif","bmp","tiff","gif","heif","heic","browser","serverless","lambda"],"author":{"name":"Aaron Decker"},"license":"MIT","_id":"purejsimage@0.7.0","maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"homepage":"https://github.com/a-r-d/PureJsImage#readme","bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"dist":{"shasum":"a26ea6b363578b304e920375b7cabce8cb650e5e","tarball":"https://registry.npmjs.org/purejsimage/-/purejsimage-0.7.0.tgz","fileCount":328,"integrity":"sha512-1FkBXdD6O3ua7fDAYRNL+HneiF0SqPrfAyIHeIkGqc7sjjaNacRCGEkUprpPw0MLMjtaDRr7H/kqCBKcgLzYZg==","signatures":[{"sig":"MEUCIQCx3GT04qATqtwzuCZFj8nSLhZhUa8RQxvih/dX4aVfyQIgCqLUWbqXUfmgGfElJm07cKUhqMekMx0rjk8rlK2RHG4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3200953},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/browser.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js","default":"./dist/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js","default":"./dist/browser.js"},"./codecs/all":{"types":"./dist/codec-entries/all.d.ts","import":"./dist/codec-entries/all.js","default":"./dist/codec-entries/all.js"},"./codecs/bmp":{"types":"./dist/codec-entries/bmp.d.ts","import":"./dist/codec-entries/bmp.js","default":"./dist/codec-entries/bmp.js"},"./codecs/gif":{"types":"./dist/codec-entries/gif.d.ts","import":"./dist/codec-entries/gif.js","default":"./dist/codec-entries/gif.js"},"./codecs/ico":{"types":"./dist/codec-entries/ico.d.ts","import":"./dist/codec-entries/ico.js","default":"./dist/codec-entries/ico.js"},"./codecs/png":{"types":"./dist/codec-entries/png.d.ts","import":"./dist/codec-entries/png.js","default":"./dist/codec-entries/png.js"},"./codecs/avif":{"types":"./dist/codec-entries/avif.d.ts","import":"./dist/codec-entries/avif.js","default":"./dist/codec-entries/avif.js"},"./codecs/heif":{"types":"./dist/codec-entries/heif.d.ts","import":"./dist/codec-entries/heif.js","default":"./dist/codec-entries/heif.js"},"./codecs/jpeg":{"types":"./dist/codec-entries/jpeg.d.ts","import":"./dist/codec-entries/jpeg.js","default":"./dist/codec-entries/jpeg.js"},"./codecs/tiff":{"types":"./dist/codec-entries/tiff.d.ts","import":"./dist/codec-entries/tiff.js","default":"./dist/codec-entries/tiff.js"},"./codecs/webp":{"types":"./dist/codec-entries/webp.d.ts","import":"./dist/codec-entries/webp.js","default":"./dist/codec-entries/webp.js"},"./codecs/jpeg2000":{"types":"./dist/codec-entries/jpeg2000.d.ts","import":"./dist/codec-entries/jpeg2000.js","default":"./dist/codec-entries/jpeg2000.js"}},"gitHead":"3cfa7dd4dd559ac48fab2b02337d1ac41a8d0df3","scripts":{"lint":"biome lint .","size":"npm run build && node scripts/measure-bundle-size.ts","test":"vitest run","bench":"node benchmark/run.ts","build":"node scripts/clean-dist.ts && tsc -p tsconfig.build.json","check":"npm run capabilities:check && npm run typecheck && npm run size && npm run browser:check && npm run lint && npm run format:check && npm test && npm run test:hostile-source","format":"biome format --write .","prepack":"npm run check","bench:bmp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile bmp","bench:ico":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile ico","typecheck":"tsc --noEmit","bench:heif":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif","bench:jimp":"node benchmark/run.ts --engines jimp","bench:tiff":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile tiff","bench:webp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile webp","test:watch":"vitest","bench:smoke":"node benchmark/run.ts --engines jimp --profile smoke --runs 1 --warmups 0","browser:test":"playwright test","fixtures:ico":"node benchmark/ico/verify-corpus.ts","format:check":"biome format .","fuzz:release":"PUREJSIMAGE_FUZZ_RELEASE=1 PUREJSIMAGE_FUZZ_CASES=512 PUREJSIMAGE_FUZZ_SEED=1592598566 PUREJSIMAGE_FUZZ_CRASH_DIR=artifacts/fuzz-crashes vitest run tests/corruption-fuzz.test.ts","bench:avif:b2":"node --expose-gc benchmark/avif/run-b2.ts","browser:bench":"PUREJSIMAGE_WRITE_BROWSER_BENCHMARK=1 playwright test browser-tests/benchmark.pw.ts --project=chromium","browser:check":"tsc -p tsconfig.browser.json && node scripts/check-browser-build.ts","fixtures:avif":"node benchmark/avif/prepare-corpus.ts","fixtures:heif":"node benchmark/heif/verify-corpus.ts && node benchmark/heif/compatibility/verify.ts","fixtures:jpeg":"node benchmark/jpeg/verify-corpus.ts && vitest run tests/jpeg-reference-fixtures.test.ts tests/jpeg-reference-parity.test.ts","bench:bmp:jimp":"node benchmark/run.ts --engines jimp --profile bmp","bench:heif:cold":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif --runs 3 --warmups 0","bench:heif:warm":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile heif --runs 3 --warmups 1","bench:tiff:jimp":"node benchmark/run.ts --engines jimp --profile tiff","fixtures:verify":"node benchmark/scripts/verify-corpus.ts","results:combine":"node benchmark/scripts/combine-results.ts","bench:transforms":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile transforms","fixtures:prepare":"node benchmark/scripts/prepare-corpus.ts","bench:competitors":"npm run build && node benchmark/run.ts --engines purejsimage,jimp,sharp,sharp-single-thread,image-js --profile competitors","bench:jpeg:encode":"npm run build && node --expose-gc benchmark/jpeg/encode-probe.ts","fixtures:jpeg2000":"node benchmark/jpeg2000/verify-corpus.ts","bench:avif:inspect":"node benchmark/avif/inspect-bitstreams.ts","bench:jpeg2000:rss":"node benchmark/jpeg2000/run-rss.ts","capabilities:check":"node scripts/render-capabilities.ts --check","test:hostile-source":"PUREJSIMAGE_HOSTILE_SOURCE=1 vitest run","bench:avif:reference":"node benchmark/avif/run-reference.ts","bench:jpeg:region-rss":"node benchmark/jpeg/run-region-rss.ts","bench:jpeg:upsampling":"node benchmark/jpeg/run-upsampling.ts","capabilities:generate":"node scripts/render-capabilities.ts && biome format --write docs/capabilities.json tests/generated/capability-expectations.json","fixtures:avif:qmatrix":"node benchmark/avif/verify-qmatrix-fixtures.ts","fixtures:heif:prepare":"node benchmark/heif/compatibility/prepare.ts","fixtures:jpeg:prepare":"node benchmark/jpeg/prepare-reference-fixtures.ts","bench:jpeg:scaled-idct":"node benchmark/jpeg/run-scaled-idct.ts","bench:competitors:charts":"node benchmark/scripts/render-competitor-charts.ts","bench:transforms:compare":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines jimp,purejsimage --profile transforms-comparable","report:heif:compatibility":"node benchmark/heif/compatibility/run.ts --write","fixtures:avif:post-filters":"node benchmark/avif/verify-post-filters.ts","fixtures:avif:qmatrix:prepare":"node benchmark/avif/prepare-qmatrix-fixtures.ts"},"_npmUser":{"name":"a-r-d","email":"aaron@ard.ninja"},"overrides":{"image-js":{"skia-canvas":"0.0.0"}},"repository":{"url":"git+https://github.com/a-r-d/PureJsImage.git","type":"git"},"_npmVersion":"11.13.0","description":"Low-memory, dependency-free image processing for Node.js and modern browsers","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jimp":"1.6.0","pngjs":"7.0.0","sharp":"0.35.3","bmp-ts":"^1.0.9","omggif":"1.0.10","vitest":"4.1.10","esbuild":"0.28.1","jpeg-js":"0.4.4","image-js":"1.7.0","typescript":"7.0.2","@types/node":"26.1.2","exif-parser":"0.1.12","@jsquash/png":"3.1.1","@types/pngjs":"6.0.5","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@types/omggif":"1.0.5","@biomejs/biome":"2.5.7","@playwright/test":"1.62.1","image-dimensions":"2.5.1","@stacksjs/ts-avif":"0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/purejsimage_0.7.0_1786235641525_0.9874657752946647","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"purejsimage","version":"0.8.0","keywords":["image","image-processing","jpeg","jpeg2000","jp2","png","webp","avif","bmp","tiff","gif","heif","heic","browser","serverless","lambda"],"author":{"name":"Aaron Decker"},"license":"MIT","_id":"purejsimage@0.8.0","maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"homepage":"https://github.com/a-r-d/PureJsImage#readme","bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"dist":{"shasum":"892aac23b8ae0d0667aee91ce6597c0da16b557e","tarball":"https://registry.npmjs.org/purejsimage/-/purejsimage-0.8.0.tgz","fileCount":188,"integrity":"sha512-zUKyAr+MWe8lyY4BIyuDg2Vz1jUmfWgIdEEXngVs5/ZYbSbvyfqcHgGt/eJh2E1y+yIH5tT3r4nVAxjjX6cbuw==","signatures":[{"sig":"MEUCIQCtFn0fk0nerYQ7TaZeOIdcAnD2z8SCXu07YUczlJxKnAIgPHb4Hsp+8Q2zVPwgFZ+RiJ1zAGr8kU5PK2ZfHWKIrzs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1859820},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/browser.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js","default":"./dist/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js","default":"./dist/browser.js"},"./codecs/all":{"types":"./dist/codec-entries/all.d.ts","import":"./dist/codec-entries/all.js","default":"./dist/codec-entries/all.js"},"./codecs/bmp":{"types":"./dist/codec-entries/bmp.d.ts","import":"./dist/codec-entries/bmp.js","default":"./dist/codec-entries/bmp.js"},"./codecs/gif":{"types":"./dist/codec-entries/gif.d.ts","import":"./dist/codec-entries/gif.js","default":"./dist/codec-entries/gif.js"},"./codecs/ico":{"types":"./dist/codec-entries/ico.d.ts","import":"./dist/codec-entries/ico.js","default":"./dist/codec-entries/ico.js"},"./codecs/png":{"types":"./dist/codec-entries/png.d.ts","import":"./dist/codec-entries/png.js","default":"./dist/codec-entries/png.js"},"./codecs/avif":{"types":"./dist/codec-entries/avif.d.ts","import":"./dist/codec-entries/avif.js","default":"./dist/codec-entries/avif.js"},"./codecs/jpeg":{"types":"./dist/codec-entries/jpeg.d.ts","import":"./dist/codec-entries/jpeg.js","default":"./dist/codec-entries/jpeg.js"},"./codecs/tiff":{"types":"./dist/codec-entries/tiff.d.ts","import":"./dist/codec-entries/tiff.js","default":"./dist/codec-entries/tiff.js"},"./codecs/webp":{"types":"./dist/codec-entries/webp.d.ts","import":"./dist/codec-entries/webp.js","default":"./dist/codec-entries/webp.js"},"./codecs/jpeg2000":{"types":"./dist/codec-entries/jpeg2000.d.ts","import":"./dist/codec-entries/jpeg2000.js","default":"./dist/codec-entries/jpeg2000.js"},"./accelerators/wasm/png":{"node":"./dist/accelerator-entries/wasm-png-node.js","types":"./dist/accelerator-entries/wasm-png-node.d.ts","import":"./dist/accelerator-entries/wasm-png-node.js","browser":"./dist/accelerator-entries/wasm-png-browser.js","default":"./dist/accelerator-entries/wasm-png-node.js"},"./accelerators/wasm/jpeg":{"node":"./dist/accelerator-entries/wasm-jpeg-node.js","types":"./dist/accelerator-entries/wasm-jpeg-node.d.ts","import":"./dist/accelerator-entries/wasm-jpeg-node.js","browser":"./dist/accelerator-entries/wasm-jpeg-browser.js","default":"./dist/accelerator-entries/wasm-jpeg-node.js"},"./codecs/experimental/heic":{"types":"./dist/codec-entries/experimental/heic.d.ts","import":"./dist/codec-entries/experimental/heic.js","default":"./dist/codec-entries/experimental/heic.js"}},"gitHead":"dd4164c2b89de4f3cb8568eb657214097bb036bd","scripts":{"lint":"biome lint .","size":"npm run build && node scripts/measure-bundle-size.ts","test":"vitest run","bench":"node benchmark/run.ts","build":"node scripts/clean-dist.ts && tsc -p tsconfig.build.json && node scripts/copy-wasm-artifacts.ts","check":"npm run capabilities:check && npm run docs:build && npm run typecheck && npm run size && npm run package:types && npm run browser:check && npm run lint && npm run format:check && npm test && npm run test:hostile-source","format":"biome format --write .","prepack":"npm run check","bench:bmp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile bmp","bench:ico":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile ico","typecheck":"tsc --noEmit","bench:heif":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif","bench:jimp":"node benchmark/run.ts --engines jimp","bench:tiff":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile tiff","bench:webp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile webp","docs:build":"node scripts/build-docs-site.ts","test:watch":"vitest","bench:smoke":"node benchmark/run.ts --engines jimp --profile smoke --runs 1 --warmups 0","browser:test":"playwright test","fixtures:ico":"node benchmark/ico/verify-corpus.ts","format:check":"biome format .","fuzz:release":"PUREJSIMAGE_FUZZ_RELEASE=1 PUREJSIMAGE_FUZZ_CASES=512 PUREJSIMAGE_FUZZ_SEED=1592598566 PUREJSIMAGE_FUZZ_CRASH_DIR=artifacts/fuzz-crashes vitest run tests/corruption-fuzz.test.ts","bench:avif:b2":"node --expose-gc benchmark/avif/run-b2.ts","browser:bench":"PUREJSIMAGE_WRITE_BROWSER_BENCHMARK=1 playwright test browser-tests/benchmark.pw.ts --project=chromium","browser:check":"tsc -p tsconfig.browser.json && node scripts/check-browser-build.ts","corpus:imazen":"node scripts/validate-imazen-corpus.ts","fixtures:avif":"node benchmark/avif/prepare-corpus.ts","fixtures:heif":"node benchmark/heif/verify-corpus.ts && node benchmark/heif/compatibility/verify.ts","fixtures:jpeg":"node benchmark/jpeg/verify-corpus.ts && vitest run tests/jpeg-reference-fixtures.test.ts tests/jpeg-reference-parity.test.ts","package:types":"node scripts/check-package-types.ts","bench:bmp:jimp":"node benchmark/run.ts --engines jimp --profile bmp","bench:png:wasm":"node benchmark/png/run-wasm.ts","wasm:build:png":"node scripts/build-wasm-png.ts","bench:heif:cold":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 0","bench:heif:warm":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 1","bench:jpeg:wasm":"npm run build && node benchmark/jpeg/run-wasm-decoder.ts","bench:tiff:jimp":"node benchmark/run.ts --engines jimp --profile tiff","corpus:exercise":"node scripts/exercise-corpus.ts","fixtures:verify":"node benchmark/scripts/verify-corpus.ts","results:combine":"node benchmark/scripts/combine-results.ts","wasm:build:jpeg":"node scripts/build-wasm-jpeg.ts","bench:lambda:run":"node benchmark/aws-lambda/run.ts","bench:transforms":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile transforms","fixtures:prepare":"node benchmark/scripts/prepare-corpus.ts","bench:competitors":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm,jimp,sharp,sharp-single-thread,image-js,jsquash --profile competitors","bench:jpeg:encode":"npm run build && node --expose-gc benchmark/jpeg/encode-probe.ts","fixtures:jpeg2000":"node benchmark/jpeg2000/verify-corpus.ts","bench:avif:inspect":"node benchmark/avif/inspect-bitstreams.ts","bench:jpeg2000:rss":"node benchmark/jpeg2000/run-rss.ts","capabilities:check":"node scripts/render-capabilities.ts --check","bench:lambda:assets":"npm run build && npm run fixtures:prepare -- tundra-4000x3000 rgba-gradient-4000x3000 && node benchmark/aws-lambda/build-assets.ts","bench:lambda:deploy":"npm run bench:lambda:assets && node benchmark/aws-lambda/stage-assets.ts && cdk deploy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --require-approval never --method direct","test:hostile-source":"PUREJSIMAGE_HOSTILE_SOURCE=1 vitest run","bench:avif:reference":"node benchmark/avif/run-reference.ts","bench:lambda:destroy":"cdk destroy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --force && node benchmark/aws-lambda/stage-assets.ts --cleanup","bench:jpeg:region-rss":"node benchmark/jpeg/run-region-rss.ts","bench:jpeg:upsampling":"node benchmark/jpeg/run-upsampling.ts","capabilities:generate":"node scripts/render-capabilities.ts && biome format --write docs/capabilities.json tests/generated/capability-expectations.json","fixtures:avif:qmatrix":"node benchmark/avif/verify-qmatrix-fixtures.ts","fixtures:heif:prepare":"node benchmark/heif/compatibility/prepare.ts","fixtures:jpeg:prepare":"node benchmark/jpeg/prepare-reference-fixtures.ts","bench:jpeg:progressive":"npm run build && node benchmark/jpeg/run-progressive-encode.ts","bench:jpeg:scaled-idct":"node benchmark/jpeg/run-scaled-idct.ts","bench:jpeg:wasm:encode":"npm run build && node benchmark/jpeg/run-wasm-encoder.ts","bench:competitors:charts":"node benchmark/scripts/render-competitor-charts.ts","bench:transforms:compare":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines jimp,purejsimage --profile transforms-comparable","bench:lambda:run:arm-wasm":"node benchmark/aws-lambda/run-arm-wasm.ts","report:heif:compatibility":"node benchmark/heif/compatibility/run.ts --write","fixtures:avif:post-filters":"node benchmark/avif/verify-post-filters.ts","fixtures:avif:qmatrix:prepare":"node benchmark/avif/prepare-qmatrix-fixtures.ts"},"_npmUser":{"name":"a-r-d","email":"aaron@ard.ninja"},"overrides":{"image-js":{"skia-canvas":"0.0.0"}},"repository":{"url":"git+https://github.com/a-r-d/PureJsImage.git","type":"git"},"_npmVersion":"11.13.0","description":"Low-memory, dependency-free image processing for Node.js and modern browsers","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jimp":"1.6.0","pngjs":"7.0.0","sharp":"0.35.3","bmp-ts":"^1.0.9","omggif":"1.0.10","vitest":"4.1.10","aws-cdk":"2.1135.1","esbuild":"0.28.1","jpeg-js":"0.4.4","archiver":"8.0.0","image-js":"1.7.0","constructs":"10.8.1","typescript":"7.0.2","@types/node":"26.1.2","aws-cdk-lib":"2.263.0","exif-parser":"0.1.12","@jsquash/png":"3.1.1","@types/pngjs":"6.0.5","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@types/omggif":"1.0.5","@biomejs/biome":"2.5.7","@jsquash/resize":"2.1.1","@types/archiver":"8.0.0","@playwright/test":"1.62.1","image-dimensions":"2.5.1","@stacksjs/ts-avif":"0.1.3","@aws-sdk/client-s3":"3.1106.0","@aws-sdk/client-lambda":"3.1106.0"},"_npmOperationalInternal":{"tmp":"tmp/purejsimage_0.8.0_1786331455756_0.1603716141984346","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"purejsimage","version":"0.9.0","keywords":["image","image-processing","jpeg","jpeg2000","jp2","png","webp","avif","bmp","tiff","gif","heif","heic","browser","serverless","lambda"],"author":{"name":"Aaron Decker"},"license":"MIT","_id":"purejsimage@0.9.0","maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"homepage":"https://github.com/a-r-d/PureJsImage#readme","bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"dist":{"shasum":"79902b75c08a3a1a74ad694d6cbdb35ddd96ff00","tarball":"https://registry.npmjs.org/purejsimage/-/purejsimage-0.9.0.tgz","fileCount":238,"integrity":"sha512-JYS2eiYE1nYnK2tNLxdJ4/85vjF7kBB1ysnzm1cL3omrD/pMfrm7XXFKlbOCtI7pcHj8V9yjrncW3AEiTwlvrQ==","signatures":[{"sig":"MEUCIQDzNPPS5lb5pjD6SrDAwe8XgjvHRF2hig9tcHEk7dFudwIgJTf2U669y0b32Set3InA/j8wWDe0Sg4l9o+ludPqfnU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2423470},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/browser.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js","default":"./dist/index.js"},"./tiff":{"types":"./dist/tiff/index.d.ts","import":"./dist/tiff/index.js","default":"./dist/tiff/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js","default":"./dist/browser.js"},"./pathology":{"types":"./dist/pathology/index.d.ts","import":"./dist/pathology/index.js","default":"./dist/pathology/index.js"},"./codecs/all":{"types":"./dist/codec-entries/all.d.ts","import":"./dist/codec-entries/all.js","default":"./dist/codec-entries/all.js"},"./codecs/bmp":{"types":"./dist/codec-entries/bmp.d.ts","import":"./dist/codec-entries/bmp.js","default":"./dist/codec-entries/bmp.js"},"./codecs/gif":{"types":"./dist/codec-entries/gif.d.ts","import":"./dist/codec-entries/gif.js","default":"./dist/codec-entries/gif.js"},"./codecs/ico":{"types":"./dist/codec-entries/ico.d.ts","import":"./dist/codec-entries/ico.js","default":"./dist/codec-entries/ico.js"},"./codecs/png":{"types":"./dist/codec-entries/png.d.ts","import":"./dist/codec-entries/png.js","default":"./dist/codec-entries/png.js"},"./scientific":{"types":"./dist/scientific/index.d.ts","import":"./dist/scientific/index.js","default":"./dist/scientific/index.js"},"./codecs/avif":{"types":"./dist/codec-entries/avif.d.ts","import":"./dist/codec-entries/avif.js","default":"./dist/codec-entries/avif.js"},"./codecs/jpeg":{"types":"./dist/codec-entries/jpeg.d.ts","import":"./dist/codec-entries/jpeg.js","default":"./dist/codec-entries/jpeg.js"},"./codecs/tiff":{"types":"./dist/codec-entries/tiff.d.ts","import":"./dist/codec-entries/tiff.js","default":"./dist/codec-entries/tiff.js"},"./codecs/webp":{"types":"./dist/codec-entries/webp.d.ts","import":"./dist/codec-entries/webp.js","default":"./dist/codec-entries/webp.js"},"./codecs/jpeg2000":{"types":"./dist/codec-entries/jpeg2000.d.ts","import":"./dist/codec-entries/jpeg2000.js","default":"./dist/codec-entries/jpeg2000.js"},"./compression/zstd":{"types":"./dist/compression/zstd/index.d.ts","import":"./dist/compression/zstd/index.js","default":"./dist/compression/zstd/index.js"},"./sources/http-range":{"types":"./dist/sources/http-range.d.ts","import":"./dist/sources/http-range.js","default":"./dist/sources/http-range.js"},"./accelerators/wasm/png":{"node":"./dist/accelerator-entries/wasm-png-node.js","types":"./dist/accelerator-entries/wasm-png-node.d.ts","import":"./dist/accelerator-entries/wasm-png-node.js","browser":"./dist/accelerator-entries/wasm-png-browser.js","default":"./dist/accelerator-entries/wasm-png-node.js"},"./accelerators/wasm/jpeg":{"node":"./dist/accelerator-entries/wasm-jpeg-node.js","types":"./dist/accelerator-entries/wasm-jpeg-node.d.ts","import":"./dist/accelerator-entries/wasm-jpeg-node.js","browser":"./dist/accelerator-entries/wasm-jpeg-browser.js","default":"./dist/accelerator-entries/wasm-jpeg-node.js"},"./codecs/experimental/heic":{"types":"./dist/codec-entries/experimental/heic.d.ts","import":"./dist/codec-entries/experimental/heic.js","default":"./dist/codec-entries/experimental/heic.js"}},"gitHead":"d9bc3cf564541c9c74cd6fdaca987dc644cc2b12","scripts":{"lint":"biome lint .","size":"npm run build && node scripts/measure-bundle-size.ts","test":"vitest run","bench":"node benchmark/run.ts","build":"node scripts/clean-dist.ts && tsc -p tsconfig.build.json && node scripts/copy-wasm-artifacts.ts","check":"npm run capabilities:check && npm run comparison:check && npm run docs:build && npm run typecheck && npm run size && npm run package:types && npm run profile:example:check && npm run browser:check && npm run lint && npm run format:check && npm test && npm run test:hostile-source","format":"biome format --write .","prepack":"npm run check","bench:bmp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile bmp","bench:ico":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile ico","typecheck":"tsc --noEmit","bench:heif":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif","bench:jimp":"node benchmark/run.ts --engines jimp","bench:tiff":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile tiff","bench:webp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile webp","bench:zstd":"node --expose-gc benchmark/scripts/run-zstd.ts","docs:build":"node scripts/build-docs-site.ts","test:watch":"vitest","bench:smoke":"node benchmark/run.ts --engines jimp --profile smoke --runs 1 --warmups 0","browser:test":"playwright test","fixtures:ico":"node benchmark/ico/verify-corpus.ts","format:check":"biome format .","fuzz:release":"PUREJSIMAGE_FUZZ_RELEASE=1 PUREJSIMAGE_FUZZ_CASES=512 PUREJSIMAGE_FUZZ_SEED=1592598566 PUREJSIMAGE_FUZZ_CRASH_DIR=artifacts/fuzz-crashes vitest run tests/corruption-fuzz.test.ts","bench:avif:b2":"node --expose-gc benchmark/avif/run-b2.ts","browser:bench":"PUREJSIMAGE_WRITE_BROWSER_BENCHMARK=1 playwright test browser-tests/benchmark.pw.ts --project=chromium","browser:check":"tsc -p tsconfig.browser.json && node scripts/check-browser-build.ts","corpus:imazen":"node scripts/validate-imazen-corpus.ts","fixtures:avif":"node benchmark/avif/prepare-corpus.ts","fixtures:heif":"node benchmark/heif/verify-corpus.ts && node benchmark/heif/compatibility/verify.ts","fixtures:jpeg":"node benchmark/jpeg/verify-corpus.ts && vitest run tests/jpeg-reference-fixtures.test.ts tests/jpeg-reference-parity.test.ts","package:types":"node scripts/check-package-types.ts","bench:bmp:jimp":"node benchmark/run.ts --engines jimp --profile bmp","bench:png:wasm":"node benchmark/png/run-wasm.ts","wasm:build:png":"node scripts/build-wasm-png.ts","bench:heif:cold":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 0","bench:heif:warm":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 1","bench:jpeg:wasm":"npm run build && node benchmark/jpeg/run-wasm-decoder.ts","bench:tiff:jimp":"node benchmark/run.ts --engines jimp --profile tiff","corpus:exercise":"node scripts/exercise-corpus.ts","fixtures:verify":"node benchmark/scripts/verify-corpus.ts","results:combine":"node benchmark/scripts/combine-results.ts","wasm:build:jpeg":"node scripts/build-wasm-jpeg.ts","bench:lambda:run":"node benchmark/aws-lambda/run.ts","bench:transforms":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile transforms","comparison:check":"node scripts/render-library-comparison.ts --check","fixtures:prepare":"node benchmark/scripts/prepare-corpus.ts","bench:avif:memory":"node benchmark/avif/run-memory.ts","bench:competitors":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm,jimp,sharp,sharp-single-thread,image-js,jsquash --profile competitors","bench:jpeg:encode":"npm run build && node --expose-gc benchmark/jpeg/encode-probe.ts","fixtures:jpeg2000":"node benchmark/jpeg2000/verify-corpus.ts","bench:avif:inspect":"node benchmark/avif/inspect-bitstreams.ts","bench:jpeg2000:rss":"node benchmark/jpeg2000/run-rss.ts","capabilities:check":"node scripts/render-capabilities.ts --check","corpus:tiff:matrix":"node scripts/analyze-tiff-dependencies.ts","bench:lambda:assets":"npm run build && npm run fixtures:prepare -- tundra-4000x3000 rgba-gradient-4000x3000 && node benchmark/aws-lambda/build-assets.ts","bench:lambda:deploy":"npm run bench:lambda:assets && node benchmark/aws-lambda/stage-assets.ts && cdk deploy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --require-approval never --method direct","comparison:generate":"node scripts/render-library-comparison.ts","fixtures:avif:color":"node benchmark/avif/verify-color-fixtures.ts","fixtures:avif:tiles":"node benchmark/avif/verify-tiled-lossless-fixture.ts && node benchmark/avif/verify-lossy-multitile-fixture.ts","test:hostile-source":"PUREJSIMAGE_HOSTILE_SOURCE=1 vitest run","bench:avif:reference":"node benchmark/avif/run-reference.ts","bench:lambda:destroy":"cdk destroy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --force && node benchmark/aws-lambda/stage-assets.ts --cleanup","fixtures:tiff:encode":"npm run build && node benchmark/scripts/verify-tiff-encode.ts","bench:jpeg:region-rss":"node benchmark/jpeg/run-region-rss.ts","bench:jpeg:upsampling":"node benchmark/jpeg/run-upsampling.ts","capabilities:generate":"node scripts/render-capabilities.ts && biome format --write docs/capabilities.json tests/generated/capability-expectations.json","fixtures:avif:intrabc":"node benchmark/avif/verify-intrabc-fixture.ts","fixtures:avif:layered":"node benchmark/avif/verify-layered-fixture.ts","fixtures:avif:qmatrix":"node benchmark/avif/verify-qmatrix-fixtures.ts","fixtures:heif:prepare":"node benchmark/heif/compatibility/prepare.ts","fixtures:jpeg:prepare":"node benchmark/jpeg/prepare-reference-fixtures.ts","profile:example:check":"node scripts/check-external-tiff-profile.ts && tsc -p examples/tiff-profile-leica/tsconfig.json","bench:jpeg:progressive":"npm run build && node benchmark/jpeg/run-progressive-encode.ts","bench:jpeg:scaled-idct":"node benchmark/jpeg/run-scaled-idct.ts","bench:jpeg:wasm:encode":"npm run build && node benchmark/jpeg/run-wasm-encoder.ts","fixtures:avif:high-bit":"node benchmark/avif/verify-high-bit-expanded-fixtures.ts","fixtures:avif:superres":"node benchmark/avif/verify-superres-fixture.ts","corpus:tiff:competitors":"node scripts/compare-tiff-competitors.ts","fixtures:avif:auxiliary":"node benchmark/avif/verify-auxiliary-fixtures.ts","bench:avif:compatibility":"node benchmark/avif/run-compatibility-survey.ts","bench:competitors:charts":"node benchmark/scripts/render-competitor-charts.ts","bench:transforms:compare":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines jimp,purejsimage --profile transforms-comparable","fixtures:avif:q0:prepare":"node benchmark/avif/prepare-q0-fixtures.ts","bench:avif:memory:scaling":"node benchmark/avif/run-memory-scaling.ts","bench:lambda:run:arm-wasm":"node benchmark/aws-lambda/run-arm-wasm.ts","report:heif:compatibility":"node benchmark/heif/compatibility/run.ts --write","fixtures:avif:post-filters":"node benchmark/avif/verify-post-filters.ts","fixtures:avif:rows:prepare":"node benchmark/avif/prepare-row-fixture.ts","fixtures:avif:alpha:prepare":"node benchmark/avif/prepare-alpha-fixtures.ts","fixtures:avif:tiles:prepare":"node benchmark/avif/prepare-tiled-lossless-fixture.ts && node benchmark/avif/prepare-lossy-multitile-fixture.ts","fixtures:avif:qmatrix:prepare":"node benchmark/avif/prepare-qmatrix-fixtures.ts","fixtures:avif:high-bit:prepare":"node benchmark/avif/prepare-high-bit-lossless-fixtures.ts && node benchmark/avif/prepare-high-bit-expanded-fixtures.ts","fixtures:avif:superres:prepare":"node benchmark/avif/prepare-superres-fixture.ts","fixtures:avif:auxiliary:prepare":"node benchmark/avif/prepare-auxiliary-fixtures.ts","fixtures:avif:nonstill-sequence":"node benchmark/avif/verify-nonstill-sequence-fixture.ts","bench:avif:compatibility:prepare":"node benchmark/avif/prepare-compatibility-survey.ts","fixtures:avif:rows:alpha:prepare":"node benchmark/avif/prepare-row-alpha-fixture.ts","fixtures:avif:common-photo-syntax":"node benchmark/avif/verify-common-photo-syntax-fixtures.ts","fixtures:avif:still-picture-entropy":"node benchmark/avif/verify-still-picture-entropy-fixtures.ts","fixtures:avif:clean-aperture:prepare":"node benchmark/avif/prepare-clean-aperture-fixture.ts"},"_npmUser":{"name":"a-r-d","email":"aaron@ard.ninja"},"overrides":{"image-js":{"skia-canvas":"0.0.0"}},"repository":{"url":"git+https://github.com/a-r-d/PureJsImage.git","type":"git"},"_npmVersion":"11.13.0","description":"Low-memory, dependency-free image processing for Node.js and modern browsers","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jimp":"1.6.0","lerc":"^4.2.0","tiff":"7.1.3","pngjs":"7.0.0","sharp":"0.35.3","utif2":"4.1.0","bmp-ts":"^1.0.9","omggif":"1.0.10","vitest":"4.1.10","aws-cdk":"2.1135.1","esbuild":"0.28.1","geotiff":"^3.0.5","jpeg-js":"0.4.4","archiver":"8.0.0","image-js":"1.7.0","constructs":"10.8.1","typescript":"7.0.2","@types/node":"26.1.2","aws-cdk-lib":"2.263.0","exif-parser":"0.1.12","@jsquash/png":"3.1.1","@types/pngjs":"6.0.5","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@types/omggif":"1.0.5","@biomejs/biome":"2.5.7","@jsquash/resize":"2.1.1","@types/archiver":"8.0.0","@playwright/test":"1.62.1","image-dimensions":"2.5.1","@stacksjs/ts-avif":"0.1.3","@aws-sdk/client-s3":"3.1106.0","@aws-sdk/client-lambda":"3.1106.0"},"_npmOperationalInternal":{"tmp":"tmp/purejsimage_0.9.0_1786404842034_0.8003602631707112","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"purejsimage","version":"0.10.0","keywords":["image","image-codecs","image-processing","typescript","low-memory","zero-dependency","nodejs","browser","serverless","aws-lambda","jpeg","jpeg-xl","jpegxl","jpeg2000","jp2","png","webp","avif","bmp","tiff","gif","hdr","qoi","netpbm","tga","heif","heic","geotiff","ome-tiff","gsf","envi","fits","mrc","ccp4","cbf","imgcif","cryo-em","x-ray-diffraction","hyperspectral","afm","scientific-imaging","whole-slide-image"],"author":{"name":"Aaron Decker"},"license":"MIT","_id":"purejsimage@0.10.0","maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"homepage":"https://purejsimage.com/","bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"dist":{"shasum":"251c6b8dbcd4c27a27883a302d042f6c13e4d6f0","tarball":"https://registry.npmjs.org/purejsimage/-/purejsimage-0.10.0.tgz","fileCount":398,"integrity":"sha512-61kekgp4drzmsufXoTa53sMtk4WGNkeKeNiqwjvACDmyLWtBQdWdFfZfFAxSLziPAYXLlhMJRsquDg5SSOv+Rg==","signatures":[{"sig":"MEYCIQCtfvpQg4R4/QSS6nt+9IJXsjGzS3i2Yylx4jUms7DmkAIhAKR8jdfhSm8gRR57zsJHsbbyKIPuPUnNKvpWp9MF26gb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4051129},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/browser.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js","default":"./dist/index.js"},"./tiff":{"types":"./dist/tiff/index.d.ts","import":"./dist/tiff/index.js","default":"./dist/tiff/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js","default":"./dist/browser.js"},"./analysis":{"types":"./dist/analysis/index.d.ts","import":"./dist/analysis/index.js","default":"./dist/analysis/index.js"},"./pathology":{"types":"./dist/pathology/index.d.ts","import":"./dist/pathology/index.js","default":"./dist/pathology/index.js"},"./codecs/all":{"types":"./dist/codec-entries/all.d.ts","import":"./dist/codec-entries/all.js","default":"./dist/codec-entries/all.js"},"./codecs/bmp":{"types":"./dist/codec-entries/bmp.d.ts","import":"./dist/codec-entries/bmp.js","default":"./dist/codec-entries/bmp.js"},"./codecs/gif":{"types":"./dist/codec-entries/gif.d.ts","import":"./dist/codec-entries/gif.js","default":"./dist/codec-entries/gif.js"},"./codecs/hdr":{"types":"./dist/codec-entries/hdr.d.ts","import":"./dist/codec-entries/hdr.js","default":"./dist/codec-entries/hdr.js"},"./codecs/ico":{"types":"./dist/codec-entries/ico.d.ts","import":"./dist/codec-entries/ico.js","default":"./dist/codec-entries/ico.js"},"./codecs/png":{"types":"./dist/codec-entries/png.d.ts","import":"./dist/codec-entries/png.js","default":"./dist/codec-entries/png.js"},"./codecs/qoi":{"types":"./dist/codec-entries/qoi.d.ts","import":"./dist/codec-entries/qoi.js","default":"./dist/codec-entries/qoi.js"},"./codecs/tga":{"types":"./dist/codec-entries/tga.d.ts","import":"./dist/codec-entries/tga.js","default":"./dist/codec-entries/tga.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./operations":{"types":"./dist/operations/index.d.ts","import":"./dist/operations/index.js","default":"./dist/operations/index.js"},"./scientific":{"types":"./dist/scientific/index.d.ts","import":"./dist/scientific/index.js","default":"./dist/scientific/index.js"},"./codecs/avif":{"types":"./dist/codec-entries/avif.d.ts","import":"./dist/codec-entries/avif.js","default":"./dist/codec-entries/avif.js"},"./codecs/jpeg":{"types":"./dist/codec-entries/jpeg.d.ts","import":"./dist/codec-entries/jpeg.js","default":"./dist/codec-entries/jpeg.js"},"./codecs/tiff":{"types":"./dist/codec-entries/tiff.d.ts","import":"./dist/codec-entries/tiff.js","default":"./dist/codec-entries/tiff.js"},"./codecs/webp":{"types":"./dist/codec-entries/webp.d.ts","import":"./dist/codec-entries/webp.js","default":"./dist/codec-entries/webp.js"},"./analysis/roi":{"types":"./dist/analysis/roi-entry.d.ts","import":"./dist/analysis/roi-entry.js","default":"./dist/analysis/roi-entry.js"},"./codecs/jpegxl":{"types":"./dist/codec-entries/jpegxl.d.ts","import":"./dist/codec-entries/jpegxl.js","default":"./dist/codec-entries/jpegxl.js"},"./codecs/netpbm":{"types":"./dist/codec-entries/netpbm.d.ts","import":"./dist/codec-entries/netpbm.js","default":"./dist/codec-entries/netpbm.js"},"./codecs/jpeg2000":{"types":"./dist/codec-entries/jpeg2000.d.ts","import":"./dist/codec-entries/jpeg2000.js","default":"./dist/codec-entries/jpeg2000.js"},"./scientific/node":{"types":"./dist/scientific/node.d.ts","import":"./dist/scientific/node.js","default":"./dist/scientific/node.js"},"./analysis/project":{"types":"./dist/analysis/project-entry.d.ts","import":"./dist/analysis/project-entry.js","default":"./dist/analysis/project-entry.js"},"./analysis/results":{"types":"./dist/analysis/results.d.ts","import":"./dist/analysis/results.js","default":"./dist/analysis/results.js"},"./analysis/runtime":{"types":"./dist/analysis/runtime.d.ts","import":"./dist/analysis/runtime.js","default":"./dist/analysis/runtime.js"},"./compression/zstd":{"types":"./dist/compression/zstd/index.d.ts","import":"./dist/compression/zstd/index.js","default":"./dist/compression/zstd/index.js"},"./scientific/browser":{"types":"./dist/scientific/browser.d.ts","import":"./dist/scientific/browser.js","default":"./dist/scientific/browser.js"},"./sources/http-range":{"types":"./dist/sources/http-range.d.ts","import":"./dist/sources/http-range.js","default":"./dist/sources/http-range.js"},"./accelerators/wasm/png":{"node":"./dist/accelerator-entries/wasm-png-node.js","types":"./dist/accelerator-entries/wasm-png-node.d.ts","import":"./dist/accelerator-entries/wasm-png-node.js","browser":"./dist/accelerator-entries/wasm-png-browser.js","default":"./dist/accelerator-entries/wasm-png-node.js"},"./accelerators/wasm/jpeg":{"node":"./dist/accelerator-entries/wasm-jpeg-node.js","types":"./dist/accelerator-entries/wasm-jpeg-node.d.ts","import":"./dist/accelerator-entries/wasm-jpeg-node.js","browser":"./dist/accelerator-entries/wasm-jpeg-browser.js","default":"./dist/accelerator-entries/wasm-jpeg-node.js"},"./scientific/readers/all":{"types":"./dist/scientific/readers/all.d.ts","import":"./dist/scientific/readers/all.js","default":"./dist/scientific/readers/all.js"},"./scientific/readers/cbf":{"types":"./dist/scientific/readers/cbf.d.ts","import":"./dist/scientific/readers/cbf.js","default":"./dist/scientific/readers/cbf.js"},"./scientific/readers/gsf":{"types":"./dist/scientific/readers/gsf.d.ts","import":"./dist/scientific/readers/gsf.js","default":"./dist/scientific/readers/gsf.js"},"./scientific/readers/mrc":{"types":"./dist/scientific/readers/mrc.d.ts","import":"./dist/scientific/readers/mrc.js","default":"./dist/scientific/readers/mrc.js"},"./scientific/readers/envi":{"types":"./dist/scientific/readers/envi.d.ts","import":"./dist/scientific/readers/envi.js","default":"./dist/scientific/readers/envi.js"},"./scientific/readers/fits":{"types":"./dist/scientific/readers/fits.d.ts","import":"./dist/scientific/readers/fits.js","default":"./dist/scientific/readers/fits.js"},"./codecs/experimental/heic":{"types":"./dist/codec-entries/experimental/heic.d.ts","import":"./dist/codec-entries/experimental/heic.js","default":"./dist/codec-entries/experimental/heic.js"},"./scientific/readers/ome-tiff":{"types":"./dist/scientific/readers/ome-tiff.d.ts","import":"./dist/scientific/readers/ome-tiff.js","default":"./dist/scientific/readers/ome-tiff.js"},"./scientific/readers/aperio-svs":{"types":"./dist/scientific/readers/aperio-svs.d.ts","import":"./dist/scientific/readers/aperio-svs.js","default":"./dist/scientific/readers/aperio-svs.js"}},"gitHead":"04d6f7e31c5304c4c6c1deed65df16bc7a7f60a7","scripts":{"lint":"biome lint .","size":"npm run build && node scripts/measure-bundle-size.ts","test":"vitest run","bench":"node benchmark/run.ts","build":"node scripts/clean-dist.ts && tsc -p tsconfig.build.json && node scripts/copy-wasm-artifacts.ts","check":"npm run capabilities:check && npm run comparison:check && npm run analysis:api:check && npm run docs:build && npm run typecheck && npm run size && npm run package:types && npm run profile:example:check && npm run platform:example:check && npm run browser:check && npm run lint && npm run format:check && npm test && npm run test:hostile-source","format":"biome format --write .","prepack":"npm run check","docs:dev":"astro dev --root docs-astro","bench:bmp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile bmp","bench:ico":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile ico","typecheck":"tsc --noEmit","bench:heif":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif","bench:jimp":"node benchmark/run.ts --engines jimp","bench:tiff":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile tiff","bench:webp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile webp","bench:zstd":"node --expose-gc benchmark/scripts/run-zstd.ts","docs:build":"node scripts/build-docs-site.ts","test:watch":"vitest","bench:smoke":"node benchmark/run.ts --engines jimp --profile smoke --runs 1 --warmups 0","browser:test":"playwright test","docs:preview":"astro preview --root docs-astro","fixtures:ico":"node benchmark/ico/verify-corpus.ts","format:check":"biome format .","fuzz:release":"PUREJSIMAGE_FUZZ_RELEASE=1 PUREJSIMAGE_FUZZ_CASES=512 PUREJSIMAGE_FUZZ_SEED=1592598566 PUREJSIMAGE_FUZZ_CRASH_DIR=artifacts/fuzz-crashes vitest run tests/corruption-fuzz.test.ts","bench:avif:b2":"node --expose-gc benchmark/avif/run-b2.ts","browser:bench":"PUREJSIMAGE_WRITE_BROWSER_BENCHMARK=1 playwright test browser-tests/benchmark.pw.ts --project=chromium","browser:check":"tsc -p tsconfig.browser.json && node scripts/check-browser-build.ts","corpus:imazen":"node scripts/validate-imazen-corpus.ts","fixtures:avif":"node benchmark/avif/prepare-corpus.ts","fixtures:heif":"node benchmark/heif/verify-corpus.ts && node benchmark/heif/compatibility/verify.ts","fixtures:jpeg":"node benchmark/jpeg/verify-corpus.ts && vitest run tests/jpeg-reference-fixtures.test.ts tests/jpeg-reference-parity.test.ts","package:types":"node scripts/check-package-types.ts","bench:bmp:jimp":"node benchmark/run.ts --engines jimp --profile bmp","bench:png:wasm":"node benchmark/png/run-wasm.ts","wasm:build:png":"node scripts/build-wasm-png.ts","bench:heif:cold":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 0","bench:heif:warm":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 1","bench:jpeg:wasm":"npm run build && node benchmark/jpeg/run-wasm-decoder.ts","bench:tiff:jimp":"node benchmark/run.ts --engines jimp --profile tiff","corpus:exercise":"node scripts/exercise-corpus.ts","fixtures:verify":"node benchmark/scripts/verify-corpus.ts","results:combine":"node benchmark/scripts/combine-results.ts","wasm:build:jpeg":"node scripts/build-wasm-jpeg.ts","bench:lambda:run":"node benchmark/aws-lambda/run.ts","bench:transforms":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile transforms","comparison:check":"node scripts/render-library-comparison.ts --check","fixtures:prepare":"node benchmark/scripts/prepare-corpus.ts","bench:avif:imazen":"node benchmark/avif/run-imazen-compatibility-survey.ts","bench:avif:memory":"node benchmark/avif/run-memory.ts","bench:competitors":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm,jimp,sharp,sharp-single-thread,image-js,jsquash --profile competitors","bench:jpeg:encode":"npm run build && node --expose-gc benchmark/jpeg/encode-probe.ts","fixtures:jpeg2000":"node benchmark/jpeg2000/verify-corpus.ts","analysis:api:check":"node scripts/check-analysis-api-manifest.ts","bench:avif:inspect":"node benchmark/avif/inspect-bitstreams.ts","bench:jpeg2000:rss":"node benchmark/jpeg2000/run-rss.ts","bench:small-codecs":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile small-codecs","capabilities:check":"node scripts/render-capabilities.ts --check","corpus:tiff:matrix":"node scripts/analyze-tiff-dependencies.ts","fixtures:avif:imir":"node benchmark/avif/verify-mirror-fixtures.ts","bench:jpegxl:memory":"node benchmark/jpegxl/run-memory.ts","bench:lambda:assets":"npm run build && npm run fixtures:prepare -- tundra-4000x3000 rgba-gradient-4000x3000 && node benchmark/aws-lambda/build-assets.ts","bench:lambda:deploy":"npm run bench:lambda:assets && node benchmark/aws-lambda/stage-assets.ts && cdk deploy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --require-approval never --method direct","comparison:generate":"node scripts/render-library-comparison.ts","fixtures:avif:alpha":"node benchmark/avif/verify-auxiliary-fixtures.ts","fixtures:avif:color":"node benchmark/avif/verify-color-fixtures.ts","fixtures:avif:tiles":"node benchmark/avif/verify-tiled-lossless-fixture.ts && node benchmark/avif/verify-lossy-multitile-fixture.ts","test:hostile-source":"PUREJSIMAGE_HOSTILE_SOURCE=1 vitest run","bench:analysis:tiles":"node benchmark/scientific/run-tile-runtime.ts","bench:avif:reference":"node benchmark/avif/run-reference.ts","bench:lambda:destroy":"cdk destroy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --force && node benchmark/aws-lambda/stage-assets.ts --cleanup","fixtures:cbf:prepare":"node benchmark/cbf/prepare-compatibility-sample.ts","fixtures:mrc:prepare":"node benchmark/mrc/prepare-official-sample.ts","fixtures:tiff:encode":"npm run build && node benchmark/scripts/verify-tiff-encode.ts","analysis:api:generate":"node scripts/check-analysis-api-manifest.ts --write","bench:jpeg:region-rss":"node benchmark/jpeg/run-region-rss.ts","bench:jpeg:upsampling":"node benchmark/jpeg/run-upsampling.ts","capabilities:generate":"node scripts/render-capabilities.ts && biome format --write docs-astro/public/capabilities.json tests/generated/capability-expectations.json","fixtures:avif:intrabc":"node benchmark/avif/verify-intrabc-fixture.ts","fixtures:avif:layered":"node benchmark/avif/verify-layered-fixture.ts","fixtures:avif:qmatrix":"node benchmark/avif/verify-qmatrix-fixtures.ts","fixtures:heif:prepare":"node benchmark/heif/compatibility/prepare.ts","fixtures:jpeg:prepare":"node benchmark/jpeg/prepare-reference-fixtures.ts","fixtures:small-codecs":"node benchmark/small-codecs/prepare-benchmark-corpus.ts","profile:example:check":"node scripts/check-external-tiff-profile.ts && tsc -p examples/tiff-profile-leica/tsconfig.json","bench:jpeg:progressive":"npm run build && node benchmark/jpeg/run-progressive-encode.ts","bench:jpeg:scaled-idct":"node benchmark/jpeg/run-scaled-idct.ts","bench:jpeg:wasm:encode":"npm run build && node benchmark/jpeg/run-wasm-encoder.ts","fixtures:avif:high-bit":"node benchmark/avif/verify-high-bit-expanded-fixtures.ts","fixtures:avif:superres":"node benchmark/avif/verify-superres-fixture.ts","platform:example:check":"node scripts/check-external-application-platform.ts && tsc -p examples/scientific-application-platform/tsconfig.json","corpus:tiff:competitors":"node scripts/compare-tiff-competitors.ts","fixtures:avif:auxiliary":"node benchmark/avif/verify-auxiliary-fixtures.ts","fixtures:jpegxl:prepare":"node benchmark/jpegxl/prepare-corpus.ts","bench:avif:compatibility":"node benchmark/avif/run-compatibility-survey.ts","bench:competitors:charts":"node benchmark/scripts/render-competitor-charts.ts","bench:transforms:compare":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines jimp,purejsimage --profile transforms-comparable","demo:scientific:generate":"node scripts/generate-scientific-demo-data.ts","fixtures:avif:film-grain":"node benchmark/avif/verify-film-grain-fixture.ts","fixtures:avif:q0:prepare":"node benchmark/avif/prepare-q0-fixtures.ts","bench:avif:imazen:prepare":"node benchmark/avif/prepare-imazen-compatibility-survey.ts","bench:avif:memory:scaling":"node benchmark/avif/run-memory-scaling.ts","bench:lambda:run:arm-wasm":"node benchmark/aws-lambda/run-arm-wasm.ts","report:heif:compatibility":"node benchmark/heif/compatibility/run.ts --write","bench:application-platform":"node benchmark/scientific/run-application-platform.ts","fixtures:avif:imir:prepare":"node benchmark/avif/prepare-mirror-fixtures.ts","fixtures:avif:post-filters":"node benchmark/avif/verify-post-filters.ts","fixtures:avif:rows:prepare":"node benchmark/avif/prepare-row-fixture.ts","fixtures:avif:segmentation":"node benchmark/avif/verify-segmentation-fixture.ts","fixtures:tga:compatibility":"node benchmark/small-codecs/prepare-tga-compatibility.ts","fixtures:avif:alpha:prepare":"node benchmark/avif/prepare-alpha-fixtures.ts","fixtures:avif:tiles:prepare":"node benchmark/avif/prepare-tiled-lossless-fixture.ts && node benchmark/avif/prepare-lossy-multitile-fixture.ts","bench:analysis:gaussian-blur":"node benchmark/scientific/run-analysis-gaussian-blur.ts","fixtures:avif:layered:prepare":"node benchmark/avif/prepare-dependent-layer-fixture.ts","fixtures:avif:qmatrix:prepare":"node benchmark/avif/prepare-qmatrix-fixtures.ts","bench:scientific:numeric-tiles":"node benchmark/scientific/run-numeric-tiles.ts","fixtures:avif:high-bit:prepare":"node benchmark/avif/prepare-high-bit-lossless-fixtures.ts && node benchmark/avif/prepare-high-bit-expanded-fixtures.ts","fixtures:avif:superres:prepare":"node benchmark/avif/prepare-superres-fixture.ts","fixtures:avif:auxiliary:prepare":"node benchmark/avif/prepare-auxiliary-fixtures.ts","fixtures:avif:nonstill-sequence":"node benchmark/avif/verify-nonstill-sequence-fixture.ts","bench:avif:compatibility:prepare":"node benchmark/avif/prepare-compatibility-survey.ts","fixtures:avif:film-grain:prepare":"node benchmark/avif/prepare-film-grain-fixture.ts","fixtures:avif:rows:alpha:prepare":"node benchmark/avif/prepare-row-alpha-fixture.ts","fixtures:avif:common-photo-syntax":"node benchmark/avif/verify-common-photo-syntax-fixtures.ts","bench:analysis:connected-components":"node benchmark/scientific/run-connected-components.ts","fixtures:avif:still-picture-entropy":"node benchmark/avif/verify-still-picture-entropy-fixtures.ts","fixtures:avif:clean-aperture:prepare":"node benchmark/avif/prepare-clean-aperture-fixture.ts"},"_npmUser":{"name":"a-r-d","email":"aaron@ard.ninja"},"overrides":{"image-js":{"skia-canvas":"0.0.0"}},"repository":{"url":"git+https://github.com/a-r-d/PureJsImage.git","type":"git"},"_npmVersion":"11.13.0","description":"First-party image codecs and low-memory raster processing in strict TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jimp":"1.6.0","lerc":"^4.2.0","tiff":"7.1.3","astro":"^7.2.0","pngjs":"7.0.0","react":"^19.2.8","sharp":"0.35.3","utif2":"4.1.0","bmp-ts":"^1.0.9","omggif":"1.0.10","vitest":"4.1.10","aws-cdk":"2.1135.1","esbuild":"0.28.1","geotiff":"^3.0.5","jpeg-js":"0.4.4","archiver":"8.0.0","image-js":"1.7.0","react-dom":"^19.2.8","constructs":"10.8.1","typescript":"7.0.2","@types/node":"26.1.2","aws-cdk-lib":"2.263.0","exif-parser":"0.1.12","@jsquash/png":"3.1.1","@types/pngjs":"6.0.5","@types/react":"^19.2.18","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@types/omggif":"1.0.5","@astrojs/react":"^6.0.2","@biomejs/biome":"2.5.7","@jsquash/resize":"2.1.1","@types/archiver":"8.0.0","@playwright/test":"1.62.1","@types/react-dom":"^19.2.4","image-dimensions":"2.5.1","@stacksjs/ts-avif":"0.1.3","@aws-sdk/client-s3":"3.1106.0","@aws-sdk/client-lambda":"3.1106.0"},"_npmOperationalInternal":{"tmp":"tmp/purejsimage_0.10.0_1786665384618_0.5365476503148829","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"purejsimage","version":"0.11.0","keywords":["image","image-codecs","image-processing","typescript","low-memory","zero-dependency","nodejs","browser","serverless","aws-lambda","jpeg","jpeg-xl","jpegxl","jpeg2000","jp2","png","webp","avif","bmp","tiff","gif","hdr","qoi","netpbm","tga","heif","heic","geotiff","ome-tiff","gsf","envi","fits","mrc","ccp4","cbf","imgcif","cryo-em","x-ray-diffraction","hyperspectral","afm","scientific-imaging","whole-slide-image"],"author":{"name":"Aaron Decker"},"license":"MIT","_id":"purejsimage@0.11.0","maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"homepage":"https://purejsimage.com/","bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"dist":{"shasum":"46cd71d4dbcf78aa4906cc1f43286e8822ec8ac6","tarball":"https://registry.npmjs.org/purejsimage/-/purejsimage-0.11.0.tgz","fileCount":494,"integrity":"sha512-l/mwUTX237c+oYyEyXc2FGZJ+11ZdtgP4pni3n/5S0jOaCK1ghXLEeLBIWfC2+Yb0MBhn2jEfkDnvSwmRrp15Q==","signatures":[{"sig":"MEUCIQDM8Z/iATRkQQPM3WiLXsFLJsR9qPLD9cAt34pXPoxPbQIgP+PHEX8RrX6JSWEJr9kOyWno/zRB904CurQLm2oX4v4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5009248},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/browser.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js","default":"./dist/index.js"},"./tiff":{"types":"./dist/tiff/index.d.ts","import":"./dist/tiff/index.js","default":"./dist/tiff/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js","default":"./dist/browser.js"},"./analysis":{"types":"./dist/analysis/index.d.ts","import":"./dist/analysis/index.js","default":"./dist/analysis/index.js"},"./pathology":{"types":"./dist/pathology/index.d.ts","import":"./dist/pathology/index.js","default":"./dist/pathology/index.js"},"./codecs/all":{"types":"./dist/codec-entries/all.d.ts","import":"./dist/codec-entries/all.js","default":"./dist/codec-entries/all.js"},"./codecs/bmp":{"types":"./dist/codec-entries/bmp.d.ts","import":"./dist/codec-entries/bmp.js","default":"./dist/codec-entries/bmp.js"},"./codecs/gif":{"types":"./dist/codec-entries/gif.d.ts","import":"./dist/codec-entries/gif.js","default":"./dist/codec-entries/gif.js"},"./codecs/hdr":{"types":"./dist/codec-entries/hdr.d.ts","import":"./dist/codec-entries/hdr.js","default":"./dist/codec-entries/hdr.js"},"./codecs/ico":{"types":"./dist/codec-entries/ico.d.ts","import":"./dist/codec-entries/ico.js","default":"./dist/codec-entries/ico.js"},"./codecs/png":{"types":"./dist/codec-entries/png.d.ts","import":"./dist/codec-entries/png.js","default":"./dist/codec-entries/png.js"},"./codecs/qoi":{"types":"./dist/codec-entries/qoi.d.ts","import":"./dist/codec-entries/qoi.js","default":"./dist/codec-entries/qoi.js"},"./codecs/tga":{"types":"./dist/codec-entries/tga.d.ts","import":"./dist/codec-entries/tga.js","default":"./dist/codec-entries/tga.js"},"./codecs/web":{"types":"./dist/codec-entries/web.d.ts","import":"./dist/codec-entries/web.js","default":"./dist/codec-entries/web.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./operations":{"types":"./dist/operations/index.d.ts","import":"./dist/operations/index.js","default":"./dist/operations/index.js"},"./scientific":{"types":"./dist/scientific/index.d.ts","import":"./dist/scientific/index.js","default":"./dist/scientific/index.js"},"./codecs/avif":{"types":"./dist/codec-entries/avif.d.ts","import":"./dist/codec-entries/avif.js","default":"./dist/codec-entries/avif.js"},"./codecs/jpeg":{"types":"./dist/codec-entries/jpeg.d.ts","import":"./dist/codec-entries/jpeg.js","default":"./dist/codec-entries/jpeg.js"},"./codecs/tiff":{"types":"./dist/codec-entries/tiff.d.ts","import":"./dist/codec-entries/tiff.js","default":"./dist/codec-entries/tiff.js"},"./codecs/webp":{"types":"./dist/codec-entries/webp.d.ts","import":"./dist/codec-entries/webp.js","default":"./dist/codec-entries/webp.js"},"./analysis/roi":{"types":"./dist/analysis/roi-entry.d.ts","import":"./dist/analysis/roi-entry.js","default":"./dist/analysis/roi-entry.js"},"./codecs/jpegxl":{"types":"./dist/codec-entries/jpegxl.d.ts","import":"./dist/codec-entries/jpegxl.js","default":"./dist/codec-entries/jpegxl.js"},"./codecs/netpbm":{"types":"./dist/codec-entries/netpbm.d.ts","import":"./dist/codec-entries/netpbm.js","default":"./dist/codec-entries/netpbm.js"},"./codecs/jpeg2000":{"types":"./dist/codec-entries/jpeg2000.d.ts","import":"./dist/codec-entries/jpeg2000.js","default":"./dist/codec-entries/jpeg2000.js"},"./scientific/node":{"types":"./dist/scientific/node.d.ts","import":"./dist/scientific/node.js","default":"./dist/scientific/node.js"},"./analysis/project":{"types":"./dist/analysis/project-entry.d.ts","import":"./dist/analysis/project-entry.js","default":"./dist/analysis/project-entry.js"},"./analysis/results":{"types":"./dist/analysis/results.d.ts","import":"./dist/analysis/results.js","default":"./dist/analysis/results.js"},"./analysis/runtime":{"types":"./dist/analysis/runtime.d.ts","import":"./dist/analysis/runtime.js","default":"./dist/analysis/runtime.js"},"./compression/zstd":{"types":"./dist/compression/zstd/index.d.ts","import":"./dist/compression/zstd/index.js","default":"./dist/compression/zstd/index.js"},"./scientific/browser":{"types":"./dist/scientific/browser.d.ts","import":"./dist/scientific/browser.js","default":"./dist/scientific/browser.js"},"./sources/http-range":{"types":"./dist/sources/http-range.d.ts","import":"./dist/sources/http-range.js","default":"./dist/sources/http-range.js"},"./accelerators/wasm/png":{"node":"./dist/accelerator-entries/wasm-png-node.js","types":"./dist/accelerator-entries/wasm-png-node.d.ts","import":"./dist/accelerator-entries/wasm-png-node.js","browser":"./dist/accelerator-entries/wasm-png-browser.js","default":"./dist/accelerator-entries/wasm-png-node.js"},"./accelerators/wasm/jpeg":{"node":"./dist/accelerator-entries/wasm-jpeg-node.js","types":"./dist/accelerator-entries/wasm-jpeg-node.d.ts","import":"./dist/accelerator-entries/wasm-jpeg-node.js","browser":"./dist/accelerator-entries/wasm-jpeg-browser.js","default":"./dist/accelerator-entries/wasm-jpeg-node.js"},"./scientific/readers/all":{"types":"./dist/scientific/readers/all.d.ts","import":"./dist/scientific/readers/all.js","default":"./dist/scientific/readers/all.js"},"./scientific/readers/bmp":{"types":"./dist/scientific/readers/bmp.d.ts","import":"./dist/scientific/readers/bmp.js","default":"./dist/scientific/readers/bmp.js"},"./scientific/readers/cbf":{"types":"./dist/scientific/readers/cbf.d.ts","import":"./dist/scientific/readers/cbf.js","default":"./dist/scientific/readers/cbf.js"},"./scientific/readers/gsf":{"types":"./dist/scientific/readers/gsf.d.ts","import":"./dist/scientific/readers/gsf.js","default":"./dist/scientific/readers/gsf.js"},"./scientific/readers/jp2":{"types":"./dist/scientific/readers/jp2.d.ts","import":"./dist/scientific/readers/jp2.js","default":"./dist/scientific/readers/jp2.js"},"./scientific/readers/mib":{"types":"./dist/scientific/readers/mib.d.ts","import":"./dist/scientific/readers/mib.js","default":"./dist/scientific/readers/mib.js"},"./scientific/readers/mrc":{"types":"./dist/scientific/readers/mrc.d.ts","import":"./dist/scientific/readers/mrc.js","default":"./dist/scientific/readers/mrc.js"},"./scientific/readers/npy":{"types":"./dist/scientific/readers/npy.d.ts","import":"./dist/scientific/readers/npy.js","default":"./dist/scientific/readers/npy.js"},"./scientific/readers/png":{"types":"./dist/scientific/readers/png.d.ts","import":"./dist/scientific/readers/png.js","default":"./dist/scientific/readers/png.js"},"./scientific/readers/rpl":{"types":"./dist/scientific/readers/rpl.d.ts","import":"./dist/scientific/readers/rpl.js","default":"./dist/scientific/readers/rpl.js"},"./scientific/readers/x3p":{"types":"./dist/scientific/readers/x3p.d.ts","import":"./dist/scientific/readers/x3p.js","default":"./dist/scientific/readers/x3p.js"},"./scientific/readers/emsa":{"types":"./dist/scientific/readers/emsa.d.ts","import":"./dist/scientific/readers/emsa.js","default":"./dist/scientific/readers/emsa.js"},"./scientific/readers/envi":{"types":"./dist/scientific/readers/envi.d.ts","import":"./dist/scientific/readers/envi.js","default":"./dist/scientific/readers/envi.js"},"./scientific/readers/fits":{"types":"./dist/scientific/readers/fits.d.ts","import":"./dist/scientific/readers/fits.js","default":"./dist/scientific/readers/fits.js"},"./scientific/readers/jpeg":{"types":"./dist/scientific/readers/jpeg.d.ts","import":"./dist/scientific/readers/jpeg.js","default":"./dist/scientific/readers/jpeg.js"},"./scientific/readers/nrrd":{"types":"./dist/scientific/readers/nrrd.d.ts","import":"./dist/scientific/readers/nrrd.js","default":"./dist/scientific/readers/nrrd.js"},"./scientific/readers/tiff":{"types":"./dist/scientific/readers/tiff.d.ts","import":"./dist/scientific/readers/tiff.js","default":"./dist/scientific/readers/tiff.js"},"./scientific/readers/webp":{"types":"./dist/scientific/readers/webp.d.ts","import":"./dist/scientific/readers/webp.js","default":"./dist/scientific/readers/webp.js"},"./codecs/experimental/heic":{"types":"./dist/codec-entries/experimental/heic.d.ts","import":"./dist/codec-entries/experimental/heic.js","default":"./dist/codec-entries/experimental/heic.js"},"./scientific/readers/nifti":{"types":"./dist/scientific/readers/nifti.d.ts","import":"./dist/scientific/readers/nifti.js","default":"./dist/scientific/readers/nifti.js"},"./scientific/readers/tia-emi":{"types":"./dist/scientific/readers/tia-emi.d.ts","import":"./dist/scientific/readers/tia-emi.js","default":"./dist/scientific/readers/tia-emi.js"},"./scientific/readers/tia-ser":{"types":"./dist/scientific/readers/tia-ser.d.ts","import":"./dist/scientific/readers/tia-ser.js","default":"./dist/scientific/readers/tia-ser.js"},"./scientific/readers/ncem-emd":{"types":"./dist/scientific/readers/ncem-emd.d.ts","import":"./dist/scientific/readers/ncem-emd.js","default":"./dist/scientific/readers/ncem-emd.js"},"./scientific/readers/ome-tiff":{"types":"./dist/scientific/readers/ome-tiff.d.ts","import":"./dist/scientific/readers/ome-tiff.js","default":"./dist/scientific/readers/ome-tiff.js"},"./scientific/readers/blockfile":{"types":"./dist/scientific/readers/blockfile.d.ts","import":"./dist/scientific/readers/blockfile.js","default":"./dist/scientific/readers/blockfile.js"},"./scientific/readers/ebsd-text":{"types":"./dist/scientific/readers/ebsd-text.d.ts","import":"./dist/scientific/readers/ebsd-text.js","default":"./dist/scientific/readers/ebsd-text.js"},"./scientific/readers/velox-emd":{"types":"./dist/scientific/readers/velox-emd.d.ts","import":"./dist/scientific/readers/velox-emd.js","default":"./dist/scientific/readers/velox-emd.js"},"./scientific/readers/aperio-svs":{"types":"./dist/scientific/readers/aperio-svs.d.ts","import":"./dist/scientific/readers/aperio-svs.js","default":"./dist/scientific/readers/aperio-svs.js"},"./scientific/readers/meta-image":{"types":"./dist/scientific/readers/meta-image.d.ts","import":"./dist/scientific/readers/meta-image.js","default":"./dist/scientific/readers/meta-image.js"},"./scientific/readers/nanonis-sxm":{"types":"./dist/scientific/readers/nanonis-sxm.d.ts","import":"./dist/scientific/readers/nanonis-sxm.js","default":"./dist/scientific/readers/nanonis-sxm.js"},"./scientific/readers/digital-surf":{"types":"./dist/scientific/readers/digital-surf.d.ts","import":"./dist/scientific/readers/digital-surf.js","default":"./dist/scientific/readers/digital-surf.js"},"./scientific/readers/igor-binary-wave":{"types":"./dist/scientific/readers/igor-binary-wave.d.ts","import":"./dist/scientific/readers/igor-binary-wave.js","default":"./dist/scientific/readers/igor-binary-wave.js"},"./scientific/readers/digital-micrograph":{"types":"./dist/scientific/readers/digital-micrograph.d.ts","import":"./dist/scientific/readers/digital-micrograph.js","default":"./dist/scientific/readers/digital-micrograph.js"}},"gitHead":"dd40716e1f622ec9c7fcffcd4bf79c0e30a9b399","scripts":{"lint":"biome lint .","size":"npm run build && node scripts/measure-bundle-size.ts && npm run package-metrics:generate && node scripts/measure-bundle-size.ts && npm run package-metrics:generate","test":"vitest run","bench":"node benchmark/run.ts","build":"node scripts/clean-dist.ts && tsc -p tsconfig.build.json && node scripts/copy-wasm-artifacts.ts","check":"npm run capabilities:check && npm run comparison:check && npm run analysis:api:check && npm run size:check && npm run package-metrics:check && npm run documentation:check && npm run docs:build && npm run typecheck && npm run package:types && npm run profile:example:check && npm run platform:example:check && npm run browser:check && npm run lint && npm run format:check && npm test","format":"biome format --write .","prepack":"npm run check","docs:dev":"astro dev --root docs-astro","bench:bmp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile bmp","bench:ico":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile ico","typecheck":"tsc --noEmit","bench:heif":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif","bench:jimp":"node benchmark/run.ts --engines jimp","bench:tiff":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile tiff","bench:webp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile webp","bench:zstd":"node --expose-gc benchmark/scripts/run-zstd.ts","docs:build":"node scripts/build-docs-site.ts","size:check":"npm run build && node scripts/measure-bundle-size.ts --check","test:watch":"vitest","bench:smoke":"node benchmark/run.ts --engines jimp --profile smoke --runs 1 --warmups 0","browser:test":"playwright test","docs:preview":"astro preview --root docs-astro","fixtures:ico":"node benchmark/ico/verify-corpus.ts","format:check":"biome format .","fuzz:release":"PUREJSIMAGE_FUZZ_RELEASE=1 PUREJSIMAGE_FUZZ_CASES=512 PUREJSIMAGE_FUZZ_SEED=1592598566 PUREJSIMAGE_FUZZ_CRASH_DIR=artifacts/fuzz-crashes vitest run tests/corruption-fuzz.test.ts","bench:avif:b2":"node --expose-gc benchmark/avif/run-b2.ts","browser:bench":"PUREJSIMAGE_WRITE_BROWSER_BENCHMARK=1 playwright test browser-tests/benchmark.pw.ts --project=chromium","browser:check":"tsc -p tsconfig.browser.json && node scripts/check-browser-build.ts","corpus:imazen":"node scripts/validate-imazen-corpus.ts","fixtures:avif":"node benchmark/avif/prepare-corpus.ts","fixtures:hdf5":"node benchmark/hdf5/verify-corpus.ts","fixtures:heif":"node benchmark/heif/verify-corpus.ts && node benchmark/heif/compatibility/verify.ts","fixtures:jpeg":"node benchmark/jpeg/verify-corpus.ts && vitest run tests/jpeg-reference-fixtures.test.ts tests/jpeg-reference-parity.test.ts","package:types":"node scripts/check-package-types.ts","bench:bmp:jimp":"node benchmark/run.ts --engines jimp --profile bmp","bench:png:wasm":"node benchmark/png/run-wasm.ts","wasm:build:png":"node scripts/build-wasm-png.ts","bench:heif:cold":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 0","bench:heif:warm":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 1","bench:jpeg:wasm":"npm run build && node benchmark/jpeg/run-wasm-decoder.ts","bench:tiff:jimp":"node benchmark/run.ts --engines jimp --profile tiff","corpus:exercise":"node scripts/exercise-corpus.ts","fixtures:verify":"node benchmark/scripts/verify-corpus.ts","results:combine":"node benchmark/scripts/combine-results.ts","wasm:build:jpeg":"node scripts/build-wasm-jpeg.ts","bench:lambda:run":"node benchmark/aws-lambda/run.ts","bench:transforms":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile transforms","bench:web-codecs":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm,jimp,sharp,sharp-single-thread,image-js,jsquash --profile web-codecs","comparison:check":"node scripts/render-library-comparison.ts --check","fixtures:prepare":"node benchmark/scripts/prepare-corpus.ts","fixtures:tia-emi":"node benchmark/tia-ser/verify-emi-corpus.ts","fixtures:tia-ser":"node benchmark/tia-ser/verify-corpus.ts","bench:avif:imazen":"node benchmark/avif/run-imazen-compatibility-survey.ts","bench:avif:memory":"node benchmark/avif/run-memory.ts","bench:competitors":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm,jimp,sharp,sharp-single-thread,image-js,jsquash --profile competitors","bench:jpeg:encode":"npm run build && node --expose-gc benchmark/jpeg/encode-probe.ts","bench:viewers:cog":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=cog playwright test -c playwright.viewers.config.ts --project=chromium","fixtures:jpeg2000":"node benchmark/jpeg2000/verify-corpus.ts","fixtures:ncem-emd":"node benchmark/ncem-emd/verify-corpus.ts","analysis:api:check":"node scripts/check-analysis-api-manifest.ts","bench:avif:inspect":"node benchmark/avif/inspect-bitstreams.ts","bench:jpeg2000:rss":"node benchmark/jpeg2000/run-rss.ts","bench:small-codecs":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile small-codecs","capabilities:check":"node scripts/render-capabilities.ts --check","corpus:tiff:matrix":"node scripts/analyze-tiff-dependencies.ts","fixtures:avif:imir":"node benchmark/avif/verify-mirror-fixtures.ts","fixtures:velox-emd":"node benchmark/velox-emd/verify-corpus.ts","bench:jpegxl:memory":"node benchmark/jpegxl/run-memory.ts","bench:lambda:assets":"npm run build && npm run fixtures:prepare -- tundra-4000x3000 rgba-gradient-4000x3000 && node benchmark/aws-lambda/build-assets.ts","bench:lambda:deploy":"npm run bench:lambda:assets && node benchmark/aws-lambda/stage-assets.ts && cdk deploy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --require-approval never --method direct","bench:results:index":"node benchmark/scripts/build-result-index.ts","bench:stable-codecs":"npm run build && node benchmark/stable-codecs/run.ts","bench:viewers:smoke":"npm run bench:viewers:prepare && playwright test -c playwright.viewers.config.ts --project=chromium","comparison:generate":"node scripts/render-library-comparison.ts","documentation:check":"npm run benchmark:public:check && node scripts/render-documentation.ts --check","documentation:write":"npm run benchmark:public:write && node scripts/render-documentation.ts --write && biome format --write docs-astro/src/data/documentation-data.json","fixtures:avif:alpha":"node benchmark/avif/verify-auxiliary-fixtures.ts","fixtures:avif:color":"node benchmark/avif/verify-color-fixtures.ts","fixtures:avif:tiles":"node benchmark/avif/verify-tiled-lossless-fixture.ts && node benchmark/avif/verify-lossy-multitile-fixture.ts","bench:analysis:tiles":"node benchmark/scientific/run-tile-runtime.ts","bench:avif:reference":"node benchmark/avif/run-reference.ts","bench:lambda:destroy":"cdk destroy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --force && node benchmark/aws-lambda/stage-assets.ts --cleanup","bench:viewers:charts":"node benchmark/viewers/render-charts.ts","fixtures:cbf:prepare":"node benchmark/cbf/prepare-compatibility-sample.ts","fixtures:mrc:prepare":"node benchmark/mrc/prepare-official-sample.ts","fixtures:tiff:encode":"npm run build && node benchmark/scripts/verify-tiff-encode.ts","analysis:api:generate":"node scripts/check-analysis-api-manifest.ts --write","bench:jpeg:region-rss":"node benchmark/jpeg/run-region-rss.ts","bench:jpeg:upsampling":"node benchmark/jpeg/run-upsampling.ts","bench:scientific:full":"node benchmark/scientific-readers/run.ts --profile full --runs 3 --warmups 1","bench:viewers:prepare":"npm install --prefix benchmark/viewers --ignore-scripts --no-fund --no-audit","bench:viewers:volumes":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=volumes playwright test -c playwright.viewers.config.ts --project=chromium","capabilities:generate":"node scripts/render-capabilities.ts && biome format --write docs-astro/public/capabilities.json tests/generated/capability-expectations.json","fixtures:avif:intrabc":"node benchmark/avif/verify-intrabc-fixture.ts","fixtures:avif:layered":"node benchmark/avif/verify-layered-fixture.ts","fixtures:avif:qmatrix":"node benchmark/avif/verify-qmatrix-fixtures.ts","fixtures:hdf5:prepare":"node benchmark/hdf5/prepare-corpus.ts","fixtures:heif:prepare":"node benchmark/heif/compatibility/prepare.ts","fixtures:jpeg:prepare":"node benchmark/jpeg/prepare-reference-fixtures.ts","fixtures:small-codecs":"node benchmark/small-codecs/prepare-benchmark-corpus.ts","package-metrics:check":"node scripts/render-package-metrics.ts --check","profile:example:check":"node scripts/check-external-tiff-profile.ts && tsc -p examples/tiff-profile-leica/tsconfig.json","bench:jpeg:progressive":"npm run build && node benchmark/jpeg/run-progressive-encode.ts","bench:jpeg:scaled-idct":"node benchmark/jpeg/run-scaled-idct.ts","bench:jpeg:wasm:encode":"npm run build && node benchmark/jpeg/run-wasm-encoder.ts","bench:scientific:range":"node benchmark/scientific-readers/run.ts --profile range --runs 3 --warmups 1","bench:scientific:smoke":"node benchmark/scientific-readers/run.ts --profile smoke --runs 1 --warmups 0","bench:viewers:ome-tiff":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=ome-tiff playwright test -c playwright.viewers.config.ts --project=chromium","benchmark:public:check":"node scripts/render-public-benchmark-results.ts --check","benchmark:public:write":"node scripts/render-public-benchmark-results.ts --write","fixtures:avif:high-bit":"node benchmark/avif/verify-high-bit-expanded-fixtures.ts","fixtures:avif:superres":"node benchmark/avif/verify-superres-fixture.ts","platform:example:check":"node scripts/check-external-application-platform.ts && tsc -p examples/scientific-application-platform/tsconfig.json","bench:web-codecs:charts":"node benchmark/scripts/render-competitor-charts.ts --profile web-codecs","corpus:tiff:competitors":"node scripts/compare-tiff-competitors.ts","fixtures:avif:auxiliary":"node benchmark/avif/verify-auxiliary-fixtures.ts","fixtures:jpegxl:prepare":"node benchmark/jpegxl/prepare-corpus.ts","bench:avif:compatibility":"node benchmark/avif/run-compatibility-survey.ts","bench:competitors:charts":"node benchmark/scripts/render-competitor-charts.ts","bench:scientific:scaling":"node benchmark/scientific-readers/run.ts --profile scaling --runs 9 --warmups 1 --timeout-ms 300000","bench:transforms:compare":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines jimp,purejsimage --profile transforms-comparable","demo:scientific:generate":"node scripts/generate-scientific-demo-data.ts","fixtures:avif:film-grain":"node benchmark/avif/verify-film-grain-fixture.ts","fixtures:avif:q0:prepare":"node benchmark/avif/prepare-q0-fixtures.ts","fixtures:tia-emi:prepare":"node benchmark/tia-ser/prepare-emi-corpus.ts","fixtures:tia-ser:prepare":"node benchmark/tia-ser/prepare-corpus.ts","package-metrics:generate":"node scripts/render-package-metrics.ts && biome format --write benchmark/generated/package-metrics.json docs-astro/src/data/package-metrics.json","bench:avif:imazen:prepare":"node benchmark/avif/prepare-imazen-compatibility-survey.ts","bench:avif:memory:scaling":"node benchmark/avif/run-memory-scaling.ts","bench:lambda:run:arm-wasm":"node benchmark/aws-lambda/run-arm-wasm.ts","bench:scientific:baseline":"node benchmark/scientific-readers/run.ts --profile baseline --runs 3 --warmups 1","bench:viewers:correctness":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=smoke playwright test -c playwright.viewers.config.ts --project=firefox --project=webkit","fixtures:ncem-emd:prepare":"node benchmark/ncem-emd/prepare-corpus.ts","report:heif:compatibility":"node benchmark/heif/compatibility/run.ts --write","bench:application-platform":"node benchmark/scientific/run-application-platform.ts","fixtures:avif:imir:prepare":"node benchmark/avif/prepare-mirror-fixtures.ts","fixtures:avif:post-filters":"node benchmark/avif/verify-post-filters.ts","fixtures:avif:rows:prepare":"node benchmark/avif/prepare-row-fixture.ts","fixtures:avif:segmentation":"node benchmark/avif/verify-segmentation-fixture.ts","fixtures:tga:compatibility":"node benchmark/small-codecs/prepare-tga-compatibility.ts","fixtures:velox-emd:prepare":"node benchmark/velox-emd/prepare-corpus.ts","fixtures:avif:alpha:prepare":"node benchmark/avif/prepare-alpha-fixtures.ts","fixtures:avif:tiles:prepare":"node benchmark/avif/prepare-tiled-lossless-fixture.ts && node benchmark/avif/prepare-lossy-multitile-fixture.ts","fixtures:digital-micrograph":"node benchmark/digital-micrograph/verify-corpus.ts","bench:analysis:gaussian-blur":"node benchmark/scientific/run-analysis-gaussian-blur.ts","fixtures:avif:layered:prepare":"node benchmark/avif/prepare-dependent-layer-fixture.ts","fixtures:avif:qmatrix:prepare":"node benchmark/avif/prepare-qmatrix-fixtures.ts","bench:scientific:numeric-tiles":"node benchmark/scientific/run-numeric-tiles.ts","fixtures:avif:high-bit:prepare":"node benchmark/avif/prepare-high-bit-lossless-fixtures.ts && node benchmark/avif/prepare-high-bit-expanded-fixtures.ts","fixtures:avif:superres:prepare":"node benchmark/avif/prepare-superres-fixture.ts","bench:scientific:competitors:js":"node benchmark/scientific-readers/run-competitors.ts --profile smoke --runs 1 --warmups 0","fixtures:avif:auxiliary:prepare":"node benchmark/avif/prepare-auxiliary-fixtures.ts","fixtures:avif:nonstill-sequence":"node benchmark/avif/verify-nonstill-sequence-fixture.ts","fixtures:scientific-interchange":"node benchmark/scientific-interchange/verify-corpus.ts","bench:avif:compatibility:prepare":"node benchmark/avif/prepare-compatibility-survey.ts","fixtures:avif:film-grain:prepare":"node benchmark/avif/prepare-film-grain-fixture.ts","fixtures:avif:rows:alpha:prepare":"node benchmark/avif/prepare-row-alpha-fixture.ts","fixtures:avif:common-photo-syntax":"node benchmark/avif/verify-common-photo-syntax-fixtures.ts","fixtures:digital-micrograph:remote":"node benchmark/digital-micrograph/verify-semantic-corpus.ts","bench:analysis:connected-components":"node benchmark/scientific/run-connected-components.ts","fixtures:avif:still-picture-entropy":"node benchmark/avif/verify-still-picture-entropy-fixtures.ts","fixtures:digital-micrograph:prepare":"node benchmark/digital-micrograph/prepare-corpus.ts","bench:scientific:competitors:browser":"playwright test browser-tests/scientific-competitors.pw.ts --project=chromium","bench:scientific:competitors:prepare":"npm install --prefix benchmark/competitors-js --no-fund --no-audit && node benchmark/scientific-readers/prepare-competitors.ts","fixtures:avif:clean-aperture:prepare":"node benchmark/avif/prepare-clean-aperture-fixture.ts","bench:scientific:competitors:baseline":"node benchmark/scientific-readers/run-competitors.ts --profile baseline --runs 9 --warmups 1 --timeout-ms 300000","fixtures:scientific-interchange:prepare":"node benchmark/scientific-interchange/prepare-corpus.ts"},"_npmUser":{"name":"a-r-d","email":"aaron@ard.ninja"},"overrides":{"image-js":{"skia-canvas":"0.0.0"}},"repository":{"url":"git+https://github.com/a-r-d/PureJsImage.git","type":"git"},"_npmVersion":"11.13.0","description":"Portable image codecs and low-memory raster processing in strict TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jimp":"1.6.0","lerc":"^4.2.0","tiff":"7.1.3","astro":"^7.2.0","npyjs":"^1.2.0","pngjs":"7.0.0","react":"^19.2.8","sharp":"0.35.3","utif2":"4.1.0","bmp-ts":"^1.0.9","h5wasm":"^0.10.3","omggif":"1.0.10","vitest":"4.1.10","aws-cdk":"2.1135.1","esbuild":"0.28.1","geotiff":"^3.0.5","jpeg-js":"0.4.4","archiver":"8.0.0","image-js":"1.7.0","react-dom":"^19.2.8","constructs":"10.8.1","typescript":"7.0.2","@types/node":"26.1.2","aws-cdk-lib":"2.263.0","exif-parser":"0.1.12","@jsquash/png":"3.1.1","@types/pngjs":"6.0.5","@types/react":"^19.2.18","@deck.gl/core":"^9.3.10","@hms-dbmi/viv":"^0.22.1","@jsquash/avif":"^2.1.1","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@types/omggif":"1.0.5","openseadragon":"^6.1.0","@astrojs/react":"^6.0.2","@biomejs/biome":"2.5.7","@niivue/niivue":"^0.69.0","@vivjs/loaders":"^0.22.1","@cogeotiff/core":"^9.5.0","@jsquash/resize":"2.1.1","@types/archiver":"8.0.0","nifti-reader-js":"^0.8.0","@astrojs/sitemap":"^3.7.3","@playwright/test":"1.62.1","@types/react-dom":"^19.2.4","image-dimensions":"2.5.1","@stacksjs/ts-avif":"0.1.3","@aws-sdk/client-s3":"3.1106.0","@itk-wasm/image-io":"^1.6.1","@cornerstonejs/core":"^5.8.1","@aws-sdk/client-lambda":"3.1106.0","@cornerstonejs/nifti-volume-loader":"^5.8.1"},"_npmOperationalInternal":{"tmp":"tmp/purejsimage_0.11.0_1786917430944_0.036059932597950484","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"purejsimage","version":"0.12.0","keywords":["image","image-codecs","image-processing","typescript","low-memory","zero-dependency","nodejs","browser","serverless","aws-lambda","jpeg","jpeg-xl","jpegxl","jpeg2000","jp2","png","webp","avif","bmp","tiff","gif","hdr","qoi","netpbm","tga","heif","heic","geotiff","ome-tiff","gsf","envi","fits","mrc","ccp4","cbf","imgcif","cryo-em","x-ray-diffraction","hyperspectral","afm","dicom","scientific-imaging","whole-slide-image"],"author":{"name":"Aaron Decker"},"license":"MIT","_id":"purejsimage@0.12.0","maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"homepage":"https://purejsimage.com/","bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"dist":{"shasum":"3103654edde1ef856c6873101f60706e3bb7fa77","tarball":"https://registry.npmjs.org/purejsimage/-/purejsimage-0.12.0.tgz","fileCount":548,"integrity":"sha512-fR8Utz4BBqs5CtTfncnWw5vhw8J5WiigaJyNCcqArpdeU+LhiYzW8ujTzbsp/1Wz9Vl8Utn6oUhyvmoTiV8qoQ==","signatures":[{"sig":"MEYCIQC7g0RUtEdBAoZ4DDlK8Bj6YiGvok3pn7Zeu/KQMxFcvgIhAKp/af5ADMnS17lRVhzquJxzks964h7qHz8QLs7X0SPx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5910767},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/browser.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js","default":"./dist/index.js"},"./tiff":{"types":"./dist/tiff/index.d.ts","import":"./dist/tiff/index.js","default":"./dist/tiff/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js","default":"./dist/browser.js"},"./analysis":{"types":"./dist/analysis/index.d.ts","import":"./dist/analysis/index.js","default":"./dist/analysis/index.js"},"./pathology":{"types":"./dist/pathology/index.d.ts","import":"./dist/pathology/index.js","default":"./dist/pathology/index.js"},"./codecs/all":{"types":"./dist/codec-entries/all.d.ts","import":"./dist/codec-entries/all.js","default":"./dist/codec-entries/all.js"},"./codecs/bmp":{"types":"./dist/codec-entries/bmp.d.ts","import":"./dist/codec-entries/bmp.js","default":"./dist/codec-entries/bmp.js"},"./codecs/gif":{"types":"./dist/codec-entries/gif.d.ts","import":"./dist/codec-entries/gif.js","default":"./dist/codec-entries/gif.js"},"./codecs/hdr":{"types":"./dist/codec-entries/hdr.d.ts","import":"./dist/codec-entries/hdr.js","default":"./dist/codec-entries/hdr.js"},"./codecs/ico":{"types":"./dist/codec-entries/ico.d.ts","import":"./dist/codec-entries/ico.js","default":"./dist/codec-entries/ico.js"},"./codecs/png":{"types":"./dist/codec-entries/png.d.ts","import":"./dist/codec-entries/png.js","default":"./dist/codec-entries/png.js"},"./codecs/qoi":{"types":"./dist/codec-entries/qoi.d.ts","import":"./dist/codec-entries/qoi.js","default":"./dist/codec-entries/qoi.js"},"./codecs/tga":{"types":"./dist/codec-entries/tga.d.ts","import":"./dist/codec-entries/tga.js","default":"./dist/codec-entries/tga.js"},"./codecs/web":{"types":"./dist/codec-entries/web.d.ts","import":"./dist/codec-entries/web.js","default":"./dist/codec-entries/web.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./operations":{"types":"./dist/operations/index.d.ts","import":"./dist/operations/index.js","default":"./dist/operations/index.js"},"./scientific":{"types":"./dist/scientific/index.d.ts","import":"./dist/scientific/index.js","default":"./dist/scientific/index.js"},"./codecs/avif":{"types":"./dist/codec-entries/avif.d.ts","import":"./dist/codec-entries/avif.js","default":"./dist/codec-entries/avif.js"},"./codecs/jpeg":{"types":"./dist/codec-entries/jpeg.d.ts","import":"./dist/codec-entries/jpeg.js","default":"./dist/codec-entries/jpeg.js"},"./codecs/tiff":{"types":"./dist/codec-entries/tiff.d.ts","import":"./dist/codec-entries/tiff.js","default":"./dist/codec-entries/tiff.js"},"./codecs/webp":{"types":"./dist/codec-entries/webp.d.ts","import":"./dist/codec-entries/webp.js","default":"./dist/codec-entries/webp.js"},"./analysis/roi":{"types":"./dist/analysis/roi-entry.d.ts","import":"./dist/analysis/roi-entry.js","default":"./dist/analysis/roi-entry.js"},"./codecs/jpegxl":{"types":"./dist/codec-entries/jpegxl.d.ts","import":"./dist/codec-entries/jpegxl.js","default":"./dist/codec-entries/jpegxl.js"},"./codecs/netpbm":{"types":"./dist/codec-entries/netpbm.d.ts","import":"./dist/codec-entries/netpbm.js","default":"./dist/codec-entries/netpbm.js"},"./codecs/jpeg2000":{"types":"./dist/codec-entries/jpeg2000.d.ts","import":"./dist/codec-entries/jpeg2000.js","default":"./dist/codec-entries/jpeg2000.js"},"./scientific/node":{"types":"./dist/scientific/node.d.ts","import":"./dist/scientific/node.js","default":"./dist/scientific/node.js"},"./analysis/project":{"types":"./dist/analysis/project-entry.d.ts","import":"./dist/analysis/project-entry.js","default":"./dist/analysis/project-entry.js"},"./analysis/results":{"types":"./dist/analysis/results.d.ts","import":"./dist/analysis/results.js","default":"./dist/analysis/results.js"},"./analysis/runtime":{"types":"./dist/analysis/runtime.d.ts","import":"./dist/analysis/runtime.js","default":"./dist/analysis/runtime.js"},"./compression/zstd":{"types":"./dist/compression/zstd/index.d.ts","import":"./dist/compression/zstd/index.js","default":"./dist/compression/zstd/index.js"},"./scientific/browser":{"types":"./dist/scientific/browser.d.ts","import":"./dist/scientific/browser.js","default":"./dist/scientific/browser.js"},"./sources/http-range":{"types":"./dist/sources/http-range.d.ts","import":"./dist/sources/http-range.js","default":"./dist/sources/http-range.js"},"./accelerators/wasm/png":{"node":"./dist/accelerator-entries/wasm-png-node.js","types":"./dist/accelerator-entries/wasm-png-node.d.ts","import":"./dist/accelerator-entries/wasm-png-node.js","browser":"./dist/accelerator-entries/wasm-png-browser.js","default":"./dist/accelerator-entries/wasm-png-node.js"},"./accelerators/wasm/jpeg":{"node":"./dist/accelerator-entries/wasm-jpeg-node.js","types":"./dist/accelerator-entries/wasm-jpeg-node.d.ts","import":"./dist/accelerator-entries/wasm-jpeg-node.js","browser":"./dist/accelerator-entries/wasm-jpeg-browser.js","default":"./dist/accelerator-entries/wasm-jpeg-node.js"},"./scientific/readers/all":{"types":"./dist/scientific/readers/all.d.ts","import":"./dist/scientific/readers/all.js","default":"./dist/scientific/readers/all.js"},"./scientific/readers/bmp":{"types":"./dist/scientific/readers/bmp.d.ts","import":"./dist/scientific/readers/bmp.js","default":"./dist/scientific/readers/bmp.js"},"./scientific/readers/cbf":{"types":"./dist/scientific/readers/cbf.d.ts","import":"./dist/scientific/readers/cbf.js","default":"./dist/scientific/readers/cbf.js"},"./scientific/readers/gsf":{"types":"./dist/scientific/readers/gsf.d.ts","import":"./dist/scientific/readers/gsf.js","default":"./dist/scientific/readers/gsf.js"},"./scientific/readers/jp2":{"types":"./dist/scientific/readers/jp2.d.ts","import":"./dist/scientific/readers/jp2.js","default":"./dist/scientific/readers/jp2.js"},"./scientific/readers/mib":{"types":"./dist/scientific/readers/mib.d.ts","import":"./dist/scientific/readers/mib.js","default":"./dist/scientific/readers/mib.js"},"./scientific/readers/mrc":{"types":"./dist/scientific/readers/mrc.d.ts","import":"./dist/scientific/readers/mrc.js","default":"./dist/scientific/readers/mrc.js"},"./scientific/readers/npy":{"types":"./dist/scientific/readers/npy.d.ts","import":"./dist/scientific/readers/npy.js","default":"./dist/scientific/readers/npy.js"},"./scientific/readers/png":{"types":"./dist/scientific/readers/png.d.ts","import":"./dist/scientific/readers/png.js","default":"./dist/scientific/readers/png.js"},"./scientific/readers/rpl":{"types":"./dist/scientific/readers/rpl.d.ts","import":"./dist/scientific/readers/rpl.js","default":"./dist/scientific/readers/rpl.js"},"./scientific/readers/x3p":{"types":"./dist/scientific/readers/x3p.d.ts","import":"./dist/scientific/readers/x3p.js","default":"./dist/scientific/readers/x3p.js"},"./scientific/readers/emsa":{"types":"./dist/scientific/readers/emsa.d.ts","import":"./dist/scientific/readers/emsa.js","default":"./dist/scientific/readers/emsa.js"},"./scientific/readers/envi":{"types":"./dist/scientific/readers/envi.d.ts","import":"./dist/scientific/readers/envi.js","default":"./dist/scientific/readers/envi.js"},"./scientific/readers/fits":{"types":"./dist/scientific/readers/fits.d.ts","import":"./dist/scientific/readers/fits.js","default":"./dist/scientific/readers/fits.js"},"./scientific/readers/jpeg":{"types":"./dist/scientific/readers/jpeg.d.ts","import":"./dist/scientific/readers/jpeg.js","default":"./dist/scientific/readers/jpeg.js"},"./scientific/readers/nrrd":{"types":"./dist/scientific/readers/nrrd.d.ts","import":"./dist/scientific/readers/nrrd.js","default":"./dist/scientific/readers/nrrd.js"},"./scientific/readers/tiff":{"types":"./dist/scientific/readers/tiff.d.ts","import":"./dist/scientific/readers/tiff.js","default":"./dist/scientific/readers/tiff.js"},"./scientific/readers/webp":{"types":"./dist/scientific/readers/webp.d.ts","import":"./dist/scientific/readers/webp.js","default":"./dist/scientific/readers/webp.js"},"./codecs/experimental/heic":{"types":"./dist/codec-entries/experimental/heic.d.ts","import":"./dist/codec-entries/experimental/heic.js","default":"./dist/codec-entries/experimental/heic.js"},"./scientific/readers/dicom":{"types":"./dist/scientific/readers/dicom.d.ts","import":"./dist/scientific/readers/dicom.js","default":"./dist/scientific/readers/dicom.js"},"./scientific/readers/nifti":{"types":"./dist/scientific/readers/nifti.d.ts","import":"./dist/scientific/readers/nifti.js","default":"./dist/scientific/readers/nifti.js"},"./scientific/readers/tia-emi":{"types":"./dist/scientific/readers/tia-emi.d.ts","import":"./dist/scientific/readers/tia-emi.js","default":"./dist/scientific/readers/tia-emi.js"},"./scientific/readers/tia-ser":{"types":"./dist/scientific/readers/tia-ser.d.ts","import":"./dist/scientific/readers/tia-ser.js","default":"./dist/scientific/readers/tia-ser.js"},"./scientific/readers/ncem-emd":{"types":"./dist/scientific/readers/ncem-emd.d.ts","import":"./dist/scientific/readers/ncem-emd.js","default":"./dist/scientific/readers/ncem-emd.js"},"./scientific/readers/ome-tiff":{"types":"./dist/scientific/readers/ome-tiff.d.ts","import":"./dist/scientific/readers/ome-tiff.js","default":"./dist/scientific/readers/ome-tiff.js"},"./scientific/readers/ome-zarr":{"types":"./dist/scientific/readers/ome-zarr.d.ts","import":"./dist/scientific/readers/ome-zarr.js","default":"./dist/scientific/readers/ome-zarr.js"},"./scientific/readers/blockfile":{"types":"./dist/scientific/readers/blockfile.d.ts","import":"./dist/scientific/readers/blockfile.js","default":"./dist/scientific/readers/blockfile.js"},"./scientific/readers/ebsd-text":{"types":"./dist/scientific/readers/ebsd-text.d.ts","import":"./dist/scientific/readers/ebsd-text.js","default":"./dist/scientific/readers/ebsd-text.js"},"./scientific/readers/velox-emd":{"types":"./dist/scientific/readers/velox-emd.d.ts","import":"./dist/scientific/readers/velox-emd.js","default":"./dist/scientific/readers/velox-emd.js"},"./scientific/readers/aperio-svs":{"types":"./dist/scientific/readers/aperio-svs.d.ts","import":"./dist/scientific/readers/aperio-svs.js","default":"./dist/scientific/readers/aperio-svs.js"},"./scientific/readers/meta-image":{"types":"./dist/scientific/readers/meta-image.d.ts","import":"./dist/scientific/readers/meta-image.js","default":"./dist/scientific/readers/meta-image.js"},"./scientific/readers/nanonis-sxm":{"types":"./dist/scientific/readers/nanonis-sxm.d.ts","import":"./dist/scientific/readers/nanonis-sxm.js","default":"./dist/scientific/readers/nanonis-sxm.js"},"./scientific/readers/digital-surf":{"types":"./dist/scientific/readers/digital-surf.d.ts","import":"./dist/scientific/readers/digital-surf.js","default":"./dist/scientific/readers/digital-surf.js"},"./scientific/readers/igor-binary-wave":{"types":"./dist/scientific/readers/igor-binary-wave.d.ts","import":"./dist/scientific/readers/igor-binary-wave.js","default":"./dist/scientific/readers/igor-binary-wave.js"},"./scientific/readers/digital-micrograph":{"types":"./dist/scientific/readers/digital-micrograph.d.ts","import":"./dist/scientific/readers/digital-micrograph.js","default":"./dist/scientific/readers/digital-micrograph.js"}},"gitHead":"2915fd1b4059958b726cc811ea3bc64b6b282498","scripts":{"lint":"biome lint .","size":"npm run build && node scripts/measure-bundle-size.ts && npm run package-metrics:generate && node scripts/measure-bundle-size.ts && npm run package-metrics:generate","test":"vitest run","bench":"node benchmark/run.ts","build":"node scripts/clean-dist.ts && tsc -p tsconfig.build.json && node scripts/copy-wasm-artifacts.ts","check":"npm run capabilities:check && npm run comparison:check && npm run analysis:api:check && npm run size:check && npm run package-metrics:check && npm run documentation:check && npm run docs:build && npm run typecheck && npm run package:types && npm run profile:example:check && npm run platform:example:check && npm run browser:check && npm run lint && npm run format:check && npm run dicom:dictionary:check && npm test","format":"biome format --write .","prepack":"npm run check","docs:dev":"astro dev --root docs-astro","bench:bmp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile bmp","bench:ico":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile ico","typecheck":"tsc --noEmit","bench:heif":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif","bench:jimp":"node benchmark/run.ts --engines jimp","bench:tiff":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile tiff","bench:webp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile webp","bench:zstd":"node --expose-gc benchmark/scripts/run-zstd.ts","docs:build":"node scripts/build-docs-site.ts","size:check":"npm run build && node scripts/measure-bundle-size.ts --check","test:watch":"vitest","bench:smoke":"node benchmark/run.ts --engines jimp --profile smoke --runs 1 --warmups 0","browser:test":"playwright test","docs:preview":"astro preview --root docs-astro","fixtures:ico":"node benchmark/ico/verify-corpus.ts","format:check":"biome format .","fuzz:release":"PUREJSIMAGE_FUZZ_RELEASE=1 PUREJSIMAGE_FUZZ_CASES=512 PUREJSIMAGE_FUZZ_SEED=1592598566 PUREJSIMAGE_FUZZ_CRASH_DIR=artifacts/fuzz-crashes vitest run tests/corruption-fuzz.test.ts","bench:avif:b2":"node --expose-gc benchmark/avif/run-b2.ts","browser:bench":"PUREJSIMAGE_WRITE_BROWSER_BENCHMARK=1 playwright test browser-tests/benchmark.pw.ts --project=chromium","browser:check":"tsc -p tsconfig.browser.json && node scripts/check-browser-build.ts","corpus:imazen":"node scripts/validate-imazen-corpus.ts","fixtures:avif":"node benchmark/avif/prepare-corpus.ts","fixtures:hdf5":"node benchmark/hdf5/verify-corpus.ts","fixtures:heif":"node benchmark/heif/verify-corpus.ts && node benchmark/heif/compatibility/verify.ts","fixtures:jpeg":"node benchmark/jpeg/verify-corpus.ts && vitest run tests/jpeg-reference-fixtures.test.ts tests/jpeg-reference-parity.test.ts","package:types":"node scripts/check-package-types.ts","bench:bmp:jimp":"node benchmark/run.ts --engines jimp --profile bmp","bench:png:wasm":"node benchmark/png/run-wasm.ts","wasm:build:png":"node scripts/build-wasm-png.ts","bench:heif:cold":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 0","bench:heif:warm":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 1","bench:hillclimb":"node benchmark/hillclimb/run.ts","bench:jpeg:wasm":"npm run build && node benchmark/jpeg/run-wasm-decoder.ts","bench:tiff:jimp":"node benchmark/run.ts --engines jimp --profile tiff","corpus:exercise":"node scripts/exercise-corpus.ts","fixtures:verify":"node benchmark/scripts/verify-corpus.ts","results:combine":"node benchmark/scripts/combine-results.ts","wasm:build:jpeg":"node scripts/build-wasm-jpeg.ts","bench:lambda:run":"node benchmark/aws-lambda/run.ts","bench:transforms":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile transforms","bench:web-codecs":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm,jimp,sharp,sharp-single-thread,image-js,jsquash --profile web-codecs","comparison:check":"node scripts/render-library-comparison.ts --check","fixtures:prepare":"node benchmark/scripts/prepare-corpus.ts","fixtures:tia-emi":"node benchmark/tia-ser/verify-emi-corpus.ts","fixtures:tia-ser":"node benchmark/tia-ser/verify-corpus.ts","bench:avif:imazen":"node benchmark/avif/run-imazen-compatibility-survey.ts","bench:avif:memory":"node benchmark/avif/run-memory.ts","bench:competitors":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm,jimp,sharp,sharp-single-thread,image-js,jsquash --profile competitors","bench:jpeg:encode":"npm run build && node --expose-gc benchmark/jpeg/encode-probe.ts","bench:viewers:cog":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=cog playwright test -c playwright.viewers.config.ts --project=chromium","fixtures:jpeg2000":"node benchmark/jpeg2000/verify-corpus.ts","fixtures:ncem-emd":"node benchmark/ncem-emd/verify-corpus.ts","analysis:api:check":"node scripts/check-analysis-api-manifest.ts","bench:avif:inspect":"node benchmark/avif/inspect-bitstreams.ts","bench:cog:viewport":"node benchmark/cog/run-viewport.ts","bench:jpeg2000:rss":"node benchmark/jpeg2000/run-rss.ts","bench:small-codecs":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile small-codecs","capabilities:check":"node scripts/render-capabilities.ts --check && node scripts/render-tiff-cog-support.ts --check","corpus:tiff:matrix":"node scripts/analyze-tiff-dependencies.ts","fixtures:avif:imir":"node benchmark/avif/verify-mirror-fixtures.ts","fixtures:velox-emd":"node benchmark/velox-emd/verify-corpus.ts","bench:jpegxl:memory":"node benchmark/jpegxl/run-memory.ts","bench:lambda:assets":"npm run build && npm run fixtures:prepare -- tundra-4000x3000 rgba-gradient-4000x3000 && node benchmark/aws-lambda/build-assets.ts","bench:lambda:deploy":"npm run bench:lambda:assets && node benchmark/aws-lambda/stage-assets.ts && cdk deploy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --require-approval never --method direct","bench:results:index":"node benchmark/scripts/build-result-index.ts","bench:stable-codecs":"npm run build && node benchmark/stable-codecs/run.ts","bench:viewers:smoke":"npm run bench:viewers:prepare && playwright test -c playwright.viewers.config.ts --project=chromium","comparison:generate":"node scripts/render-library-comparison.ts","documentation:check":"npm run benchmark:public:check && node scripts/render-documentation.ts --check","documentation:write":"npm run benchmark:public:write && node scripts/render-documentation.ts --write && biome format --write docs-astro/src/data/documentation-data.json","fixtures:avif:alpha":"node benchmark/avif/verify-auxiliary-fixtures.ts","fixtures:avif:color":"node benchmark/avif/verify-color-fixtures.ts","fixtures:avif:tiles":"node benchmark/avif/verify-tiled-lossless-fixture.ts && node benchmark/avif/verify-lossy-multitile-fixture.ts","bench:analysis:tiles":"node benchmark/scientific/run-tile-runtime.ts","bench:avif:reference":"node benchmark/avif/run-reference.ts","bench:lambda:destroy":"cdk destroy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --force && node benchmark/aws-lambda/stage-assets.ts --cleanup","bench:viewers:charts":"node benchmark/viewers/render-charts.ts","fixtures:cbf:prepare":"node benchmark/cbf/prepare-compatibility-sample.ts","fixtures:cog:prepare":"node scripts/generate-cog-fixtures.ts && biome format --write tests/fixtures/cog/manifest.json","fixtures:mrc:prepare":"node benchmark/mrc/prepare-official-sample.ts","fixtures:tiff:encode":"npm run build && node benchmark/scripts/verify-tiff-encode.ts","analysis:api:generate":"node scripts/check-analysis-api-manifest.ts --write","bench:jpeg:region-rss":"node benchmark/jpeg/run-region-rss.ts","bench:jpeg:upsampling":"node benchmark/jpeg/run-upsampling.ts","bench:scientific:full":"node benchmark/scientific-readers/run.ts --profile full --runs 3 --warmups 1","bench:viewers:prepare":"npm install --prefix benchmark/viewers --ignore-scripts --no-fund --no-audit","bench:viewers:volumes":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=volumes playwright test -c playwright.viewers.config.ts --project=chromium","capabilities:generate":"node scripts/render-capabilities.ts && node scripts/render-tiff-cog-support.ts && biome format --write docs-astro/public/capabilities.json tests/generated/capability-expectations.json","fixtures:avif:intrabc":"node benchmark/avif/verify-intrabc-fixture.ts","fixtures:avif:layered":"node benchmark/avif/verify-layered-fixture.ts","fixtures:avif:qmatrix":"node benchmark/avif/verify-qmatrix-fixtures.ts","fixtures:hdf5:prepare":"node benchmark/hdf5/prepare-corpus.ts","fixtures:heif:prepare":"node benchmark/heif/compatibility/prepare.ts","fixtures:jpeg:prepare":"node benchmark/jpeg/prepare-reference-fixtures.ts","fixtures:small-codecs":"node benchmark/small-codecs/prepare-benchmark-corpus.ts","package-metrics:check":"node scripts/render-package-metrics.ts --check","profile:example:check":"node scripts/check-external-tiff-profile.ts && tsc -p examples/tiff-profile-leica/tsconfig.json","bench:jpeg:progressive":"npm run build && node benchmark/jpeg/run-progressive-encode.ts","bench:jpeg:scaled-idct":"node benchmark/jpeg/run-scaled-idct.ts","bench:jpeg:wasm:encode":"npm run build && node benchmark/jpeg/run-wasm-encoder.ts","bench:scientific:range":"node benchmark/scientific-readers/run.ts --profile range --runs 3 --warmups 1","bench:scientific:smoke":"node benchmark/scientific-readers/run.ts --profile smoke --runs 1 --warmups 0","bench:viewers:ome-tiff":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=ome-tiff playwright test -c playwright.viewers.config.ts --project=chromium","benchmark:public:check":"node scripts/render-public-benchmark-results.ts --check","benchmark:public:write":"node scripts/render-public-benchmark-results.ts --write","dicom:dictionary:check":"node scripts/dicom/generate-dictionary.ts --check","fixtures:avif:high-bit":"node benchmark/avif/verify-high-bit-expanded-fixtures.ts","fixtures:avif:superres":"node benchmark/avif/verify-superres-fixture.ts","platform:example:check":"node scripts/check-external-application-platform.ts && tsc -p examples/scientific-application-platform/tsconfig.json","bench:web-codecs:charts":"node benchmark/scripts/render-competitor-charts.ts --profile web-codecs","corpus:tiff:competitors":"node scripts/compare-tiff-competitors.ts","fixtures:avif:auxiliary":"node benchmark/avif/verify-auxiliary-fixtures.ts","fixtures:jpegxl:prepare":"node benchmark/jpegxl/prepare-corpus.ts","bench:avif:compatibility":"node benchmark/avif/run-compatibility-survey.ts","bench:competitors:charts":"node benchmark/scripts/render-competitor-charts.ts","bench:scientific:scaling":"node benchmark/scientific-readers/run.ts --profile scaling --runs 9 --warmups 1 --timeout-ms 300000","bench:transforms:compare":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines jimp,purejsimage --profile transforms-comparable","demo:scientific:generate":"node scripts/generate-scientific-demo-data.ts","fixtures:avif:film-grain":"node benchmark/avif/verify-film-grain-fixture.ts","fixtures:avif:q0:prepare":"node benchmark/avif/prepare-q0-fixtures.ts","fixtures:tia-emi:prepare":"node benchmark/tia-ser/prepare-emi-corpus.ts","fixtures:tia-ser:prepare":"node benchmark/tia-ser/prepare-corpus.ts","package-metrics:generate":"node scripts/render-package-metrics.ts && biome format --write benchmark/generated/package-metrics.json docs-astro/src/data/package-metrics.json","bench:avif:imazen:prepare":"node benchmark/avif/prepare-imazen-compatibility-survey.ts","bench:avif:memory:scaling":"node benchmark/avif/run-memory-scaling.ts","bench:lambda:run:arm-wasm":"node benchmark/aws-lambda/run-arm-wasm.ts","bench:scientific:baseline":"node benchmark/scientific-readers/run.ts --profile baseline --runs 3 --warmups 1","bench:viewers:correctness":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=smoke playwright test -c playwright.viewers.config.ts --project=firefox --project=webkit","dicom:dictionary:generate":"node scripts/dicom/generate-dictionary.ts","fixtures:ncem-emd:prepare":"node benchmark/ncem-emd/prepare-corpus.ts","report:heif:compatibility":"node benchmark/heif/compatibility/run.ts --write","bench:application-platform":"node benchmark/scientific/run-application-platform.ts","fixtures:avif:imir:prepare":"node benchmark/avif/prepare-mirror-fixtures.ts","fixtures:avif:post-filters":"node benchmark/avif/verify-post-filters.ts","fixtures:avif:rows:prepare":"node benchmark/avif/prepare-row-fixture.ts","fixtures:avif:segmentation":"node benchmark/avif/verify-segmentation-fixture.ts","fixtures:tga:compatibility":"node benchmark/small-codecs/prepare-tga-compatibility.ts","fixtures:velox-emd:prepare":"node benchmark/velox-emd/prepare-corpus.ts","fixtures:avif:alpha:prepare":"node benchmark/avif/prepare-alpha-fixtures.ts","fixtures:avif:tiles:prepare":"node benchmark/avif/prepare-tiled-lossless-fixture.ts && node benchmark/avif/prepare-lossy-multitile-fixture.ts","fixtures:digital-micrograph":"node benchmark/digital-micrograph/verify-corpus.ts","bench:analysis:gaussian-blur":"node benchmark/scientific/run-analysis-gaussian-blur.ts","fixtures:avif:layered:prepare":"node benchmark/avif/prepare-dependent-layer-fixture.ts","fixtures:avif:qmatrix:prepare":"node benchmark/avif/prepare-qmatrix-fixtures.ts","bench:scientific:numeric-tiles":"node benchmark/scientific/run-numeric-tiles.ts","fixtures:avif:high-bit:prepare":"node benchmark/avif/prepare-high-bit-lossless-fixtures.ts && node benchmark/avif/prepare-high-bit-expanded-fixtures.ts","fixtures:avif:superres:prepare":"node benchmark/avif/prepare-superres-fixture.ts","bench:scientific:competitors:js":"node benchmark/scientific-readers/run-competitors.ts --profile smoke --runs 1 --warmups 0","fixtures:avif:auxiliary:prepare":"node benchmark/avif/prepare-auxiliary-fixtures.ts","fixtures:avif:nonstill-sequence":"node benchmark/avif/verify-nonstill-sequence-fixture.ts","fixtures:scientific-interchange":"node benchmark/scientific-interchange/verify-corpus.ts","bench:avif:compatibility:prepare":"node benchmark/avif/prepare-compatibility-survey.ts","fixtures:avif:film-grain:prepare":"node benchmark/avif/prepare-film-grain-fixture.ts","fixtures:avif:rows:alpha:prepare":"node benchmark/avif/prepare-row-alpha-fixture.ts","fixtures:avif:common-photo-syntax":"node benchmark/avif/verify-common-photo-syntax-fixtures.ts","fixtures:digital-micrograph:remote":"node benchmark/digital-micrograph/verify-semantic-corpus.ts","bench:analysis:connected-components":"node benchmark/scientific/run-connected-components.ts","fixtures:avif:still-picture-entropy":"node benchmark/avif/verify-still-picture-entropy-fixtures.ts","fixtures:digital-micrograph:prepare":"node benchmark/digital-micrograph/prepare-corpus.ts","bench:scientific:competitors:browser":"playwright test browser-tests/scientific-competitors.pw.ts --project=chromium","bench:scientific:competitors:prepare":"npm install --prefix benchmark/competitors-js --no-fund --no-audit && node benchmark/scientific-readers/prepare-competitors.ts","fixtures:avif:clean-aperture:prepare":"node benchmark/avif/prepare-clean-aperture-fixture.ts","bench:scientific:competitors:baseline":"node benchmark/scientific-readers/run-competitors.ts --profile baseline --runs 9 --warmups 1 --timeout-ms 300000","fixtures:scientific-interchange:prepare":"node benchmark/scientific-interchange/prepare-corpus.ts"},"_npmUser":{"name":"a-r-d","email":"aaron@ard.ninja"},"overrides":{"image-js":{"skia-canvas":"0.0.0"}},"repository":{"url":"git+https://github.com/a-r-d/PureJsImage.git","type":"git"},"_npmVersion":"11.13.0","description":"Portable image codecs and low-memory raster processing in strict TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jimp":"1.6.0","lerc":"^4.2.0","tiff":"7.1.3","astro":"^7.2.0","npyjs":"^1.2.0","pngjs":"7.0.0","react":"^19.2.8","sharp":"0.35.3","utif2":"4.1.0","bmp-ts":"^1.0.9","h5wasm":"^0.10.3","omggif":"1.0.10","vitest":"4.1.10","aws-cdk":"2.1135.1","esbuild":"0.28.1","geotiff":"^3.0.5","jpeg-js":"0.4.4","archiver":"8.0.0","image-js":"1.7.0","react-dom":"^19.2.8","constructs":"10.8.1","typescript":"7.0.2","@types/node":"26.1.2","aws-cdk-lib":"2.263.0","exif-parser":"0.1.12","@jsquash/png":"3.1.1","@types/pngjs":"6.0.5","@types/react":"^19.2.18","@deck.gl/core":"^9.3.10","@hms-dbmi/viv":"^0.22.1","@jsquash/avif":"^2.1.1","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@types/omggif":"1.0.5","openseadragon":"^6.1.0","@astrojs/react":"^6.0.2","@biomejs/biome":"2.5.7","@niivue/niivue":"^0.69.0","@vivjs/loaders":"^0.22.1","@cogeotiff/core":"^9.5.0","@jsquash/resize":"2.1.1","@types/archiver":"8.0.0","nifti-reader-js":"^0.8.0","@astrojs/sitemap":"^3.7.3","@playwright/test":"1.62.1","@types/react-dom":"^19.2.4","image-dimensions":"2.5.1","@stacksjs/ts-avif":"0.1.3","@aws-sdk/client-s3":"3.1106.0","@itk-wasm/image-io":"^1.6.1","@cornerstonejs/core":"^5.8.1","@aws-sdk/client-lambda":"3.1106.0","@cornerstonejs/nifti-volume-loader":"^5.8.1"},"_npmOperationalInternal":{"tmp":"tmp/purejsimage_0.12.0_1787099500382_0.5872411726708153","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"purejsimage","version":"0.13.0","keywords":["image","image-codecs","image-processing","typescript","low-memory","zero-dependency","nodejs","browser","serverless","aws-lambda","jpeg","jpeg-xl","jpegxl","jpeg2000","jp2","png","webp","avif","bmp","tiff","gif","hdr","qoi","netpbm","tga","heif","heic","geotiff","ome-tiff","gsf","envi","fits","mrc","ccp4","cbf","imgcif","cryo-em","x-ray-diffraction","hyperspectral","afm","dicom","scientific-imaging","whole-slide-image"],"author":{"name":"Aaron Decker"},"license":"MIT","_id":"purejsimage@0.13.0","maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"homepage":"https://purejsimage.com/","bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"dist":{"shasum":"12b846ed457d54d6cb19b8cf6f80076d18df6110","tarball":"https://registry.npmjs.org/purejsimage/-/purejsimage-0.13.0.tgz","fileCount":548,"integrity":"sha512-6EXEYRoI11F5D6RxmHfOanSkga5XQj4c7LV2SEZOz3UfqXxkhx22xgwEg0DHwQBSgFZs9+6KzSD3OMKpmh5rGg==","signatures":[{"sig":"MEUCIDkBRj1twPKHAhgajWU82oWuK2aNT5EouhsIwAXgOwLtAiEAsOYaXKOQzwNUlgl4Z12DBtje79cBL+rqN3a6C3gORcQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5927481},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/browser.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js","default":"./dist/index.js"},"./tiff":{"types":"./dist/tiff/index.d.ts","import":"./dist/tiff/index.js","default":"./dist/tiff/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js","default":"./dist/browser.js"},"./analysis":{"types":"./dist/analysis/index.d.ts","import":"./dist/analysis/index.js","default":"./dist/analysis/index.js"},"./pathology":{"types":"./dist/pathology/index.d.ts","import":"./dist/pathology/index.js","default":"./dist/pathology/index.js"},"./codecs/all":{"types":"./dist/codec-entries/all.d.ts","import":"./dist/codec-entries/all.js","default":"./dist/codec-entries/all.js"},"./codecs/bmp":{"types":"./dist/codec-entries/bmp.d.ts","import":"./dist/codec-entries/bmp.js","default":"./dist/codec-entries/bmp.js"},"./codecs/gif":{"types":"./dist/codec-entries/gif.d.ts","import":"./dist/codec-entries/gif.js","default":"./dist/codec-entries/gif.js"},"./codecs/hdr":{"types":"./dist/codec-entries/hdr.d.ts","import":"./dist/codec-entries/hdr.js","default":"./dist/codec-entries/hdr.js"},"./codecs/ico":{"types":"./dist/codec-entries/ico.d.ts","import":"./dist/codec-entries/ico.js","default":"./dist/codec-entries/ico.js"},"./codecs/png":{"types":"./dist/codec-entries/png.d.ts","import":"./dist/codec-entries/png.js","default":"./dist/codec-entries/png.js"},"./codecs/qoi":{"types":"./dist/codec-entries/qoi.d.ts","import":"./dist/codec-entries/qoi.js","default":"./dist/codec-entries/qoi.js"},"./codecs/tga":{"types":"./dist/codec-entries/tga.d.ts","import":"./dist/codec-entries/tga.js","default":"./dist/codec-entries/tga.js"},"./codecs/web":{"types":"./dist/codec-entries/web.d.ts","import":"./dist/codec-entries/web.js","default":"./dist/codec-entries/web.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./operations":{"types":"./dist/operations/index.d.ts","import":"./dist/operations/index.js","default":"./dist/operations/index.js"},"./scientific":{"types":"./dist/scientific/index.d.ts","import":"./dist/scientific/index.js","default":"./dist/scientific/index.js"},"./codecs/avif":{"types":"./dist/codec-entries/avif.d.ts","import":"./dist/codec-entries/avif.js","default":"./dist/codec-entries/avif.js"},"./codecs/jpeg":{"types":"./dist/codec-entries/jpeg.d.ts","import":"./dist/codec-entries/jpeg.js","default":"./dist/codec-entries/jpeg.js"},"./codecs/tiff":{"types":"./dist/codec-entries/tiff.d.ts","import":"./dist/codec-entries/tiff.js","default":"./dist/codec-entries/tiff.js"},"./codecs/webp":{"types":"./dist/codec-entries/webp.d.ts","import":"./dist/codec-entries/webp.js","default":"./dist/codec-entries/webp.js"},"./analysis/roi":{"types":"./dist/analysis/roi-entry.d.ts","import":"./dist/analysis/roi-entry.js","default":"./dist/analysis/roi-entry.js"},"./codecs/jpegxl":{"types":"./dist/codec-entries/jpegxl.d.ts","import":"./dist/codec-entries/jpegxl.js","default":"./dist/codec-entries/jpegxl.js"},"./codecs/netpbm":{"types":"./dist/codec-entries/netpbm.d.ts","import":"./dist/codec-entries/netpbm.js","default":"./dist/codec-entries/netpbm.js"},"./codecs/jpeg2000":{"types":"./dist/codec-entries/jpeg2000.d.ts","import":"./dist/codec-entries/jpeg2000.js","default":"./dist/codec-entries/jpeg2000.js"},"./scientific/node":{"types":"./dist/scientific/node.d.ts","import":"./dist/scientific/node.js","default":"./dist/scientific/node.js"},"./analysis/project":{"types":"./dist/analysis/project-entry.d.ts","import":"./dist/analysis/project-entry.js","default":"./dist/analysis/project-entry.js"},"./analysis/results":{"types":"./dist/analysis/results.d.ts","import":"./dist/analysis/results.js","default":"./dist/analysis/results.js"},"./analysis/runtime":{"types":"./dist/analysis/runtime.d.ts","import":"./dist/analysis/runtime.js","default":"./dist/analysis/runtime.js"},"./compression/zstd":{"types":"./dist/compression/zstd/index.d.ts","import":"./dist/compression/zstd/index.js","default":"./dist/compression/zstd/index.js"},"./scientific/browser":{"types":"./dist/scientific/browser.d.ts","import":"./dist/scientific/browser.js","default":"./dist/scientific/browser.js"},"./sources/http-range":{"types":"./dist/sources/http-range.d.ts","import":"./dist/sources/http-range.js","default":"./dist/sources/http-range.js"},"./accelerators/wasm/png":{"node":"./dist/accelerator-entries/wasm-png-node.js","types":"./dist/accelerator-entries/wasm-png-node.d.ts","import":"./dist/accelerator-entries/wasm-png-node.js","browser":"./dist/accelerator-entries/wasm-png-browser.js","default":"./dist/accelerator-entries/wasm-png-node.js"},"./accelerators/wasm/jpeg":{"node":"./dist/accelerator-entries/wasm-jpeg-node.js","types":"./dist/accelerator-entries/wasm-jpeg-node.d.ts","import":"./dist/accelerator-entries/wasm-jpeg-node.js","browser":"./dist/accelerator-entries/wasm-jpeg-browser.js","default":"./dist/accelerator-entries/wasm-jpeg-node.js"},"./scientific/readers/all":{"types":"./dist/scientific/readers/all.d.ts","import":"./dist/scientific/readers/all.js","default":"./dist/scientific/readers/all.js"},"./scientific/readers/bmp":{"types":"./dist/scientific/readers/bmp.d.ts","import":"./dist/scientific/readers/bmp.js","default":"./dist/scientific/readers/bmp.js"},"./scientific/readers/cbf":{"types":"./dist/scientific/readers/cbf.d.ts","import":"./dist/scientific/readers/cbf.js","default":"./dist/scientific/readers/cbf.js"},"./scientific/readers/gsf":{"types":"./dist/scientific/readers/gsf.d.ts","import":"./dist/scientific/readers/gsf.js","default":"./dist/scientific/readers/gsf.js"},"./scientific/readers/jp2":{"types":"./dist/scientific/readers/jp2.d.ts","import":"./dist/scientific/readers/jp2.js","default":"./dist/scientific/readers/jp2.js"},"./scientific/readers/mib":{"types":"./dist/scientific/readers/mib.d.ts","import":"./dist/scientific/readers/mib.js","default":"./dist/scientific/readers/mib.js"},"./scientific/readers/mrc":{"types":"./dist/scientific/readers/mrc.d.ts","import":"./dist/scientific/readers/mrc.js","default":"./dist/scientific/readers/mrc.js"},"./scientific/readers/npy":{"types":"./dist/scientific/readers/npy.d.ts","import":"./dist/scientific/readers/npy.js","default":"./dist/scientific/readers/npy.js"},"./scientific/readers/png":{"types":"./dist/scientific/readers/png.d.ts","import":"./dist/scientific/readers/png.js","default":"./dist/scientific/readers/png.js"},"./scientific/readers/rpl":{"types":"./dist/scientific/readers/rpl.d.ts","import":"./dist/scientific/readers/rpl.js","default":"./dist/scientific/readers/rpl.js"},"./scientific/readers/x3p":{"types":"./dist/scientific/readers/x3p.d.ts","import":"./dist/scientific/readers/x3p.js","default":"./dist/scientific/readers/x3p.js"},"./scientific/readers/emsa":{"types":"./dist/scientific/readers/emsa.d.ts","import":"./dist/scientific/readers/emsa.js","default":"./dist/scientific/readers/emsa.js"},"./scientific/readers/envi":{"types":"./dist/scientific/readers/envi.d.ts","import":"./dist/scientific/readers/envi.js","default":"./dist/scientific/readers/envi.js"},"./scientific/readers/fits":{"types":"./dist/scientific/readers/fits.d.ts","import":"./dist/scientific/readers/fits.js","default":"./dist/scientific/readers/fits.js"},"./scientific/readers/jpeg":{"types":"./dist/scientific/readers/jpeg.d.ts","import":"./dist/scientific/readers/jpeg.js","default":"./dist/scientific/readers/jpeg.js"},"./scientific/readers/nrrd":{"types":"./dist/scientific/readers/nrrd.d.ts","import":"./dist/scientific/readers/nrrd.js","default":"./dist/scientific/readers/nrrd.js"},"./scientific/readers/tiff":{"types":"./dist/scientific/readers/tiff.d.ts","import":"./dist/scientific/readers/tiff.js","default":"./dist/scientific/readers/tiff.js"},"./scientific/readers/webp":{"types":"./dist/scientific/readers/webp.d.ts","import":"./dist/scientific/readers/webp.js","default":"./dist/scientific/readers/webp.js"},"./codecs/experimental/heic":{"types":"./dist/codec-entries/experimental/heic.d.ts","import":"./dist/codec-entries/experimental/heic.js","default":"./dist/codec-entries/experimental/heic.js"},"./scientific/readers/dicom":{"types":"./dist/scientific/readers/dicom.d.ts","import":"./dist/scientific/readers/dicom.js","default":"./dist/scientific/readers/dicom.js"},"./scientific/readers/nifti":{"types":"./dist/scientific/readers/nifti.d.ts","import":"./dist/scientific/readers/nifti.js","default":"./dist/scientific/readers/nifti.js"},"./scientific/readers/tia-emi":{"types":"./dist/scientific/readers/tia-emi.d.ts","import":"./dist/scientific/readers/tia-emi.js","default":"./dist/scientific/readers/tia-emi.js"},"./scientific/readers/tia-ser":{"types":"./dist/scientific/readers/tia-ser.d.ts","import":"./dist/scientific/readers/tia-ser.js","default":"./dist/scientific/readers/tia-ser.js"},"./scientific/readers/ncem-emd":{"types":"./dist/scientific/readers/ncem-emd.d.ts","import":"./dist/scientific/readers/ncem-emd.js","default":"./dist/scientific/readers/ncem-emd.js"},"./scientific/readers/ome-tiff":{"types":"./dist/scientific/readers/ome-tiff.d.ts","import":"./dist/scientific/readers/ome-tiff.js","default":"./dist/scientific/readers/ome-tiff.js"},"./scientific/readers/ome-zarr":{"types":"./dist/scientific/readers/ome-zarr.d.ts","import":"./dist/scientific/readers/ome-zarr.js","default":"./dist/scientific/readers/ome-zarr.js"},"./scientific/readers/blockfile":{"types":"./dist/scientific/readers/blockfile.d.ts","import":"./dist/scientific/readers/blockfile.js","default":"./dist/scientific/readers/blockfile.js"},"./scientific/readers/ebsd-text":{"types":"./dist/scientific/readers/ebsd-text.d.ts","import":"./dist/scientific/readers/ebsd-text.js","default":"./dist/scientific/readers/ebsd-text.js"},"./scientific/readers/velox-emd":{"types":"./dist/scientific/readers/velox-emd.d.ts","import":"./dist/scientific/readers/velox-emd.js","default":"./dist/scientific/readers/velox-emd.js"},"./scientific/readers/aperio-svs":{"types":"./dist/scientific/readers/aperio-svs.d.ts","import":"./dist/scientific/readers/aperio-svs.js","default":"./dist/scientific/readers/aperio-svs.js"},"./scientific/readers/meta-image":{"types":"./dist/scientific/readers/meta-image.d.ts","import":"./dist/scientific/readers/meta-image.js","default":"./dist/scientific/readers/meta-image.js"},"./scientific/readers/nanonis-sxm":{"types":"./dist/scientific/readers/nanonis-sxm.d.ts","import":"./dist/scientific/readers/nanonis-sxm.js","default":"./dist/scientific/readers/nanonis-sxm.js"},"./scientific/readers/digital-surf":{"types":"./dist/scientific/readers/digital-surf.d.ts","import":"./dist/scientific/readers/digital-surf.js","default":"./dist/scientific/readers/digital-surf.js"},"./scientific/readers/igor-binary-wave":{"types":"./dist/scientific/readers/igor-binary-wave.d.ts","import":"./dist/scientific/readers/igor-binary-wave.js","default":"./dist/scientific/readers/igor-binary-wave.js"},"./scientific/readers/digital-micrograph":{"types":"./dist/scientific/readers/digital-micrograph.d.ts","import":"./dist/scientific/readers/digital-micrograph.js","default":"./dist/scientific/readers/digital-micrograph.js"}},"gitHead":"d8e274cacd14d8e9dc8ee6eea2529894be29e4ae","scripts":{"lint":"biome lint .","size":"npm run build && node scripts/measure-bundle-size.ts && npm run package-metrics:generate && node scripts/measure-bundle-size.ts && npm run package-metrics:generate","test":"vitest run","bench":"node benchmark/run.ts","build":"node scripts/clean-dist.ts && tsc -p tsconfig.build.json && node scripts/copy-wasm-artifacts.ts","check":"npm run capabilities:check && npm run comparison:check && npm run analysis:api:check && npm run size:check && npm run package-metrics:check && npm run documentation:check && npm run docs:build && npm run typecheck && npm run package:types && npm run profile:example:check && npm run platform:example:check && npm run browser:check && npm run lint && npm run format:check && npm run dicom:dictionary:check && npm test","format":"biome format --write .","prepack":"npm run check","docs:dev":"astro dev --root docs-astro","bench:bmp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile bmp","bench:ico":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile ico","typecheck":"tsc --noEmit","bench:heif":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif","bench:jimp":"node benchmark/run.ts --engines jimp","bench:tiff":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile tiff","bench:webp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile webp","bench:zstd":"node --expose-gc benchmark/scripts/run-zstd.ts","docs:build":"node scripts/build-docs-site.ts","size:check":"npm run build && node scripts/measure-bundle-size.ts --check","test:watch":"vitest","bench:smoke":"node benchmark/run.ts --engines jimp --profile smoke --runs 1 --warmups 0","browser:test":"playwright test","docs:preview":"astro preview --root docs-astro","fixtures:ico":"node benchmark/ico/verify-corpus.ts","format:check":"biome format .","fuzz:release":"PUREJSIMAGE_FUZZ_RELEASE=1 PUREJSIMAGE_FUZZ_CASES=512 PUREJSIMAGE_FUZZ_SEED=1592598566 PUREJSIMAGE_FUZZ_CRASH_DIR=artifacts/fuzz-crashes vitest run tests/corruption-fuzz.test.ts","bench:avif:b2":"node --expose-gc benchmark/avif/run-b2.ts","browser:bench":"PUREJSIMAGE_WRITE_BROWSER_BENCHMARK=1 playwright test browser-tests/benchmark.pw.ts --project=chromium","browser:check":"tsc -p tsconfig.browser.json && node scripts/check-browser-build.ts","corpus:imazen":"node scripts/validate-imazen-corpus.ts","fixtures:avif":"node benchmark/avif/prepare-corpus.ts","fixtures:hdf5":"node benchmark/hdf5/verify-corpus.ts","fixtures:heif":"node benchmark/heif/verify-corpus.ts && node benchmark/heif/compatibility/verify.ts","fixtures:jpeg":"node benchmark/jpeg/verify-corpus.ts && vitest run tests/jpeg-reference-fixtures.test.ts tests/jpeg-reference-parity.test.ts","package:types":"node scripts/check-package-types.ts","bench:bmp:jimp":"node benchmark/run.ts --engines jimp --profile bmp","bench:png:wasm":"node benchmark/png/run-wasm.ts","wasm:build:png":"node scripts/build-wasm-png.ts","bench:heif:cold":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 0","bench:heif:warm":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 1","bench:hillclimb":"node benchmark/hillclimb/run.ts","bench:jpeg:wasm":"npm run build && node benchmark/jpeg/run-wasm-decoder.ts","bench:tiff:jimp":"node benchmark/run.ts --engines jimp --profile tiff","corpus:exercise":"node scripts/exercise-corpus.ts","fixtures:verify":"node benchmark/scripts/verify-corpus.ts","results:combine":"node benchmark/scripts/combine-results.ts","wasm:build:jpeg":"node scripts/build-wasm-jpeg.ts","bench:lambda:run":"node benchmark/aws-lambda/run.ts","bench:transforms":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile transforms","bench:web-codecs":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm,jimp,sharp,sharp-single-thread,image-js,jsquash --profile web-codecs","comparison:check":"node scripts/render-library-comparison.ts --check","fixtures:prepare":"node benchmark/scripts/prepare-corpus.ts","fixtures:tia-emi":"node benchmark/tia-ser/verify-emi-corpus.ts","fixtures:tia-ser":"node benchmark/tia-ser/verify-corpus.ts","bench:avif:imazen":"node benchmark/avif/run-imazen-compatibility-survey.ts","bench:avif:memory":"node benchmark/avif/run-memory.ts","bench:competitors":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm,jimp,sharp,sharp-single-thread,image-js,jsquash --profile competitors","bench:jpeg:encode":"npm run build && node --expose-gc benchmark/jpeg/encode-probe.ts","bench:viewers:cog":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=cog playwright test -c playwright.viewers.config.ts --project=chromium","fixtures:jpeg2000":"node benchmark/jpeg2000/verify-corpus.ts","fixtures:ncem-emd":"node benchmark/ncem-emd/verify-corpus.ts","analysis:api:check":"node scripts/check-analysis-api-manifest.ts","bench:avif:inspect":"node benchmark/avif/inspect-bitstreams.ts","bench:cog:viewport":"node benchmark/cog/run-viewport.ts","bench:jpeg2000:rss":"node benchmark/jpeg2000/run-rss.ts","bench:small-codecs":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile small-codecs","capabilities:check":"node scripts/render-capabilities.ts --check && node scripts/render-tiff-cog-support.ts --check","corpus:tiff:matrix":"node scripts/analyze-tiff-dependencies.ts","fixtures:avif:imir":"node benchmark/avif/verify-mirror-fixtures.ts","fixtures:velox-emd":"node benchmark/velox-emd/verify-corpus.ts","bench:jpegxl:memory":"node benchmark/jpegxl/run-memory.ts","bench:lambda:assets":"npm run build && npm run fixtures:prepare -- tundra-4000x3000 rgba-gradient-4000x3000 && node benchmark/aws-lambda/build-assets.ts","bench:lambda:deploy":"npm run bench:lambda:assets && node benchmark/aws-lambda/stage-assets.ts && cdk deploy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --require-approval never --method direct","bench:results:index":"node benchmark/scripts/build-result-index.ts","bench:stable-codecs":"npm run build && node benchmark/stable-codecs/run.ts","bench:viewers:smoke":"npm run bench:viewers:prepare && playwright test -c playwright.viewers.config.ts --project=chromium","comparison:generate":"node scripts/render-library-comparison.ts","documentation:check":"npm run benchmark:public:check && node scripts/render-documentation.ts --check","documentation:write":"npm run benchmark:public:write && node scripts/render-documentation.ts --write && biome format --write docs-astro/src/data/documentation-data.json","fixtures:avif:alpha":"node benchmark/avif/verify-auxiliary-fixtures.ts","fixtures:avif:color":"node benchmark/avif/verify-color-fixtures.ts","fixtures:avif:tiles":"node benchmark/avif/verify-tiled-lossless-fixture.ts && node benchmark/avif/verify-lossy-multitile-fixture.ts","bench:analysis:tiles":"node benchmark/scientific/run-tile-runtime.ts","bench:avif:reference":"node benchmark/avif/run-reference.ts","bench:lambda:destroy":"cdk destroy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --force && node benchmark/aws-lambda/stage-assets.ts --cleanup","bench:viewers:charts":"node benchmark/viewers/render-charts.ts","fixtures:cbf:prepare":"node benchmark/cbf/prepare-compatibility-sample.ts","fixtures:cog:prepare":"node scripts/generate-cog-fixtures.ts && biome format --write tests/fixtures/cog/manifest.json","fixtures:mrc:prepare":"node benchmark/mrc/prepare-official-sample.ts","fixtures:tiff:encode":"npm run build && node benchmark/scripts/verify-tiff-encode.ts","analysis:api:generate":"node scripts/check-analysis-api-manifest.ts --write","bench:jpeg:region-rss":"node benchmark/jpeg/run-region-rss.ts","bench:jpeg:upsampling":"node benchmark/jpeg/run-upsampling.ts","bench:scientific:full":"node benchmark/scientific-readers/run.ts --profile full --runs 3 --warmups 1","bench:viewers:prepare":"npm install --prefix benchmark/viewers --ignore-scripts --no-fund --no-audit","bench:viewers:volumes":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=volumes playwright test -c playwright.viewers.config.ts --project=chromium","capabilities:generate":"node scripts/render-capabilities.ts && node scripts/render-tiff-cog-support.ts && biome format --write docs-astro/public/capabilities.json tests/generated/capability-expectations.json","fixtures:avif:intrabc":"node benchmark/avif/verify-intrabc-fixture.ts","fixtures:avif:layered":"node benchmark/avif/verify-layered-fixture.ts","fixtures:avif:qmatrix":"node benchmark/avif/verify-qmatrix-fixtures.ts","fixtures:hdf5:prepare":"node benchmark/hdf5/prepare-corpus.ts","fixtures:heif:prepare":"node benchmark/heif/compatibility/prepare.ts","fixtures:jpeg:prepare":"node benchmark/jpeg/prepare-reference-fixtures.ts","fixtures:small-codecs":"node benchmark/small-codecs/prepare-benchmark-corpus.ts","package-metrics:check":"node scripts/render-package-metrics.ts --check","profile:example:check":"node scripts/check-external-tiff-profile.ts && tsc -p examples/tiff-profile-leica/tsconfig.json","bench:jpeg:progressive":"npm run build && node benchmark/jpeg/run-progressive-encode.ts","bench:jpeg:scaled-idct":"node benchmark/jpeg/run-scaled-idct.ts","bench:jpeg:wasm:encode":"npm run build && node benchmark/jpeg/run-wasm-encoder.ts","bench:scientific:range":"node benchmark/scientific-readers/run.ts --profile range --runs 3 --warmups 1","bench:scientific:smoke":"node benchmark/scientific-readers/run.ts --profile smoke --runs 1 --warmups 0","bench:viewers:ome-tiff":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=ome-tiff playwright test -c playwright.viewers.config.ts --project=chromium","benchmark:public:check":"node scripts/render-public-benchmark-results.ts --check","benchmark:public:write":"node scripts/render-public-benchmark-results.ts --write","dicom:dictionary:check":"node scripts/dicom/generate-dictionary.ts --check","fixtures:avif:high-bit":"node benchmark/avif/verify-high-bit-expanded-fixtures.ts","fixtures:avif:superres":"node benchmark/avif/verify-superres-fixture.ts","platform:example:check":"node scripts/check-external-application-platform.ts && tsc -p examples/scientific-application-platform/tsconfig.json","bench:web-codecs:charts":"node benchmark/scripts/render-competitor-charts.ts --profile web-codecs","corpus:tiff:competitors":"node scripts/compare-tiff-competitors.ts","fixtures:avif:auxiliary":"node benchmark/avif/verify-auxiliary-fixtures.ts","fixtures:jpegxl:prepare":"node benchmark/jpegxl/prepare-corpus.ts","bench:avif:compatibility":"node benchmark/avif/run-compatibility-survey.ts","bench:competitors:charts":"node benchmark/scripts/render-competitor-charts.ts","bench:scientific:scaling":"node benchmark/scientific-readers/run.ts --profile scaling --runs 9 --warmups 1 --timeout-ms 300000","bench:transforms:compare":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines jimp,purejsimage --profile transforms-comparable","demo:scientific:generate":"node scripts/generate-scientific-demo-data.ts","fixtures:avif:film-grain":"node benchmark/avif/verify-film-grain-fixture.ts","fixtures:avif:q0:prepare":"node benchmark/avif/prepare-q0-fixtures.ts","fixtures:tia-emi:prepare":"node benchmark/tia-ser/prepare-emi-corpus.ts","fixtures:tia-ser:prepare":"node benchmark/tia-ser/prepare-corpus.ts","package-metrics:generate":"node scripts/render-package-metrics.ts && biome format --write benchmark/generated/package-metrics.json docs-astro/src/data/package-metrics.json","bench:avif:imazen:prepare":"node benchmark/avif/prepare-imazen-compatibility-survey.ts","bench:avif:memory:scaling":"node benchmark/avif/run-memory-scaling.ts","bench:lambda:run:arm-wasm":"node benchmark/aws-lambda/run-arm-wasm.ts","bench:scientific:baseline":"node benchmark/scientific-readers/run.ts --profile baseline --runs 3 --warmups 1","bench:viewers:correctness":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=smoke playwright test -c playwright.viewers.config.ts --project=firefox --project=webkit","dicom:dictionary:generate":"node scripts/dicom/generate-dictionary.ts","fixtures:ncem-emd:prepare":"node benchmark/ncem-emd/prepare-corpus.ts","report:heif:compatibility":"node benchmark/heif/compatibility/run.ts --write","bench:application-platform":"node benchmark/scientific/run-application-platform.ts","fixtures:avif:imir:prepare":"node benchmark/avif/prepare-mirror-fixtures.ts","fixtures:avif:post-filters":"node benchmark/avif/verify-post-filters.ts","fixtures:avif:rows:prepare":"node benchmark/avif/prepare-row-fixture.ts","fixtures:avif:segmentation":"node benchmark/avif/verify-segmentation-fixture.ts","fixtures:tga:compatibility":"node benchmark/small-codecs/prepare-tga-compatibility.ts","fixtures:velox-emd:prepare":"node benchmark/velox-emd/prepare-corpus.ts","fixtures:avif:alpha:prepare":"node benchmark/avif/prepare-alpha-fixtures.ts","fixtures:avif:tiles:prepare":"node benchmark/avif/prepare-tiled-lossless-fixture.ts && node benchmark/avif/prepare-lossy-multitile-fixture.ts","fixtures:digital-micrograph":"node benchmark/digital-micrograph/verify-corpus.ts","bench:analysis:gaussian-blur":"node benchmark/scientific/run-analysis-gaussian-blur.ts","fixtures:avif:layered:prepare":"node benchmark/avif/prepare-dependent-layer-fixture.ts","fixtures:avif:qmatrix:prepare":"node benchmark/avif/prepare-qmatrix-fixtures.ts","bench:scientific:numeric-tiles":"node benchmark/scientific/run-numeric-tiles.ts","fixtures:avif:high-bit:prepare":"node benchmark/avif/prepare-high-bit-lossless-fixtures.ts && node benchmark/avif/prepare-high-bit-expanded-fixtures.ts","fixtures:avif:superres:prepare":"node benchmark/avif/prepare-superres-fixture.ts","bench:scientific:competitors:js":"node benchmark/scientific-readers/run-competitors.ts --profile smoke --runs 1 --warmups 0","fixtures:avif:auxiliary:prepare":"node benchmark/avif/prepare-auxiliary-fixtures.ts","fixtures:avif:nonstill-sequence":"node benchmark/avif/verify-nonstill-sequence-fixture.ts","fixtures:scientific-interchange":"node benchmark/scientific-interchange/verify-corpus.ts","bench:avif:compatibility:prepare":"node benchmark/avif/prepare-compatibility-survey.ts","fixtures:avif:film-grain:prepare":"node benchmark/avif/prepare-film-grain-fixture.ts","fixtures:avif:rows:alpha:prepare":"node benchmark/avif/prepare-row-alpha-fixture.ts","fixtures:avif:common-photo-syntax":"node benchmark/avif/verify-common-photo-syntax-fixtures.ts","fixtures:digital-micrograph:remote":"node benchmark/digital-micrograph/verify-semantic-corpus.ts","bench:analysis:connected-components":"node benchmark/scientific/run-connected-components.ts","fixtures:avif:still-picture-entropy":"node benchmark/avif/verify-still-picture-entropy-fixtures.ts","fixtures:digital-micrograph:prepare":"node benchmark/digital-micrograph/prepare-corpus.ts","bench:scientific:competitors:browser":"playwright test browser-tests/scientific-competitors.pw.ts --project=chromium","bench:scientific:competitors:prepare":"npm install --prefix benchmark/competitors-js --no-fund --no-audit && node benchmark/scientific-readers/prepare-competitors.ts","fixtures:avif:clean-aperture:prepare":"node benchmark/avif/prepare-clean-aperture-fixture.ts","bench:scientific:competitors:baseline":"node benchmark/scientific-readers/run-competitors.ts --profile baseline --runs 9 --warmups 1 --timeout-ms 300000","fixtures:scientific-interchange:prepare":"node benchmark/scientific-interchange/prepare-corpus.ts"},"_npmUser":{"name":"a-r-d","email":"aaron@ard.ninja"},"overrides":{"image-js":{"skia-canvas":"0.0.0"}},"repository":{"url":"git+https://github.com/a-r-d/PureJsImage.git","type":"git"},"_npmVersion":"11.13.0","description":"Portable image codecs and low-memory raster processing in strict TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jimp":"1.6.0","lerc":"^4.2.0","tiff":"7.1.3","astro":"^7.2.0","npyjs":"^1.2.0","pngjs":"7.0.0","react":"^19.2.8","sharp":"0.35.3","utif2":"4.1.0","bmp-ts":"^1.0.9","h5wasm":"^0.10.3","omggif":"1.0.10","vitest":"4.1.10","aws-cdk":"2.1135.1","esbuild":"0.28.1","geotiff":"^3.0.5","jpeg-js":"0.4.4","archiver":"8.0.0","image-js":"1.7.0","react-dom":"^19.2.8","constructs":"10.8.1","typescript":"7.0.2","@types/node":"26.1.2","aws-cdk-lib":"2.263.0","exif-parser":"0.1.12","@jsquash/png":"3.1.1","@types/pngjs":"6.0.5","@types/react":"^19.2.18","@deck.gl/core":"^9.3.10","@hms-dbmi/viv":"^0.22.1","@jsquash/avif":"^2.1.1","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@types/omggif":"1.0.5","openseadragon":"^6.1.0","@astrojs/react":"^6.0.2","@biomejs/biome":"2.5.7","@niivue/niivue":"^0.69.0","@vivjs/loaders":"^0.22.1","@cogeotiff/core":"^9.5.0","@jsquash/resize":"2.1.1","@types/archiver":"8.0.0","nifti-reader-js":"^0.8.0","@astrojs/sitemap":"^3.7.3","@playwright/test":"1.62.1","@types/react-dom":"^19.2.4","image-dimensions":"2.5.1","@stacksjs/ts-avif":"0.1.3","@aws-sdk/client-s3":"3.1106.0","@itk-wasm/image-io":"^1.6.1","@cornerstonejs/core":"^5.8.1","@aws-sdk/client-lambda":"3.1106.0","@cornerstonejs/nifti-volume-loader":"^5.8.1"},"_npmOperationalInternal":{"tmp":"tmp/purejsimage_0.13.0_1787158710009_0.4998326540639031","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"purejsimage","version":"0.14.0","keywords":["image","image-codecs","image-processing","typescript","low-memory","zero-dependency","nodejs","browser","serverless","aws-lambda","jpeg","jpeg-xl","jpegxl","jpeg2000","jp2","png","webp","avif","bmp","tiff","gif","hdr","qoi","netpbm","tga","heif","heic","geotiff","ome-tiff","gsf","envi","fits","mrc","ccp4","cbf","imgcif","cryo-em","x-ray-diffraction","hyperspectral","afm","dicom","scientific-imaging","whole-slide-image"],"author":{"name":"Aaron Decker"},"license":"MIT","_id":"purejsimage@0.14.0","maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"homepage":"https://purejsimage.com/","bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"dist":{"shasum":"4c623ee4e0c6ac86a84e8dce8f883b04b1a7ae03","tarball":"https://registry.npmjs.org/purejsimage/-/purejsimage-0.14.0.tgz","fileCount":556,"integrity":"sha512-+O9TUMQhtaU/WLr+hAqcMCaylRQcy0RdXBBrwhZgvQwPi0BzFl0XCU5lictM0+za5TIwU98+OHii3y2HrJN+Vw==","signatures":[{"sig":"MEUCIQDuRcvs22EH+6M++4H5IC7A3/zWp8nnQwvtMv+gwqXyLwIgK2W8g6XyzlEldz082qXrNorrzg9BbOviMqkJUhCnTQg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6005280},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/browser.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js","default":"./dist/index.js"},"./tiff":{"types":"./dist/tiff/index.d.ts","import":"./dist/tiff/index.js","default":"./dist/tiff/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js","default":"./dist/browser.js"},"./analysis":{"types":"./dist/analysis/index.d.ts","import":"./dist/analysis/index.js","default":"./dist/analysis/index.js"},"./pathology":{"types":"./dist/pathology/index.d.ts","import":"./dist/pathology/index.js","default":"./dist/pathology/index.js"},"./codecs/all":{"types":"./dist/codec-entries/all.d.ts","import":"./dist/codec-entries/all.js","default":"./dist/codec-entries/all.js"},"./codecs/bmp":{"types":"./dist/codec-entries/bmp.d.ts","import":"./dist/codec-entries/bmp.js","default":"./dist/codec-entries/bmp.js"},"./codecs/gif":{"types":"./dist/codec-entries/gif.d.ts","import":"./dist/codec-entries/gif.js","default":"./dist/codec-entries/gif.js"},"./codecs/hdr":{"types":"./dist/codec-entries/hdr.d.ts","import":"./dist/codec-entries/hdr.js","default":"./dist/codec-entries/hdr.js"},"./codecs/ico":{"types":"./dist/codec-entries/ico.d.ts","import":"./dist/codec-entries/ico.js","default":"./dist/codec-entries/ico.js"},"./codecs/png":{"types":"./dist/codec-entries/png.d.ts","import":"./dist/codec-entries/png.js","default":"./dist/codec-entries/png.js"},"./codecs/qoi":{"types":"./dist/codec-entries/qoi.d.ts","import":"./dist/codec-entries/qoi.js","default":"./dist/codec-entries/qoi.js"},"./codecs/tga":{"types":"./dist/codec-entries/tga.d.ts","import":"./dist/codec-entries/tga.js","default":"./dist/codec-entries/tga.js"},"./codecs/web":{"types":"./dist/codec-entries/web.d.ts","import":"./dist/codec-entries/web.js","default":"./dist/codec-entries/web.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./operations":{"types":"./dist/operations/index.d.ts","import":"./dist/operations/index.js","default":"./dist/operations/index.js"},"./scientific":{"types":"./dist/scientific/index.d.ts","import":"./dist/scientific/index.js","default":"./dist/scientific/index.js"},"./codecs/avif":{"types":"./dist/codec-entries/avif.d.ts","import":"./dist/codec-entries/avif.js","default":"./dist/codec-entries/avif.js"},"./codecs/jpeg":{"types":"./dist/codec-entries/jpeg.d.ts","import":"./dist/codec-entries/jpeg.js","default":"./dist/codec-entries/jpeg.js"},"./codecs/tiff":{"types":"./dist/codec-entries/tiff.d.ts","import":"./dist/codec-entries/tiff.js","default":"./dist/codec-entries/tiff.js"},"./codecs/webp":{"types":"./dist/codec-entries/webp.d.ts","import":"./dist/codec-entries/webp.js","default":"./dist/codec-entries/webp.js"},"./analysis/roi":{"types":"./dist/analysis/roi-entry.d.ts","import":"./dist/analysis/roi-entry.js","default":"./dist/analysis/roi-entry.js"},"./codecs/jpegxl":{"types":"./dist/codec-entries/jpegxl.d.ts","import":"./dist/codec-entries/jpegxl.js","default":"./dist/codec-entries/jpegxl.js"},"./codecs/netpbm":{"types":"./dist/codec-entries/netpbm.d.ts","import":"./dist/codec-entries/netpbm.js","default":"./dist/codec-entries/netpbm.js"},"./codecs/jpeg2000":{"types":"./dist/codec-entries/jpeg2000.d.ts","import":"./dist/codec-entries/jpeg2000.js","default":"./dist/codec-entries/jpeg2000.js"},"./scientific/node":{"types":"./dist/scientific/node.d.ts","import":"./dist/scientific/node.js","default":"./dist/scientific/node.js"},"./analysis/project":{"types":"./dist/analysis/project-entry.d.ts","import":"./dist/analysis/project-entry.js","default":"./dist/analysis/project-entry.js"},"./analysis/results":{"types":"./dist/analysis/results.d.ts","import":"./dist/analysis/results.js","default":"./dist/analysis/results.js"},"./analysis/runtime":{"types":"./dist/analysis/runtime.d.ts","import":"./dist/analysis/runtime.js","default":"./dist/analysis/runtime.js"},"./compression/zstd":{"types":"./dist/compression/zstd/index.d.ts","import":"./dist/compression/zstd/index.js","default":"./dist/compression/zstd/index.js"},"./scientific/browser":{"types":"./dist/scientific/browser.d.ts","import":"./dist/scientific/browser.js","default":"./dist/scientific/browser.js"},"./sources/http-range":{"types":"./dist/sources/http-range.d.ts","import":"./dist/sources/http-range.js","default":"./dist/sources/http-range.js"},"./accelerators/wasm/png":{"node":"./dist/accelerator-entries/wasm-png-node.js","types":"./dist/accelerator-entries/wasm-png-node.d.ts","import":"./dist/accelerator-entries/wasm-png-node.js","browser":"./dist/accelerator-entries/wasm-png-browser.js","default":"./dist/accelerator-entries/wasm-png-node.js"},"./accelerators/wasm/jpeg":{"node":"./dist/accelerator-entries/wasm-jpeg-node.js","types":"./dist/accelerator-entries/wasm-jpeg-node.d.ts","import":"./dist/accelerator-entries/wasm-jpeg-node.js","browser":"./dist/accelerator-entries/wasm-jpeg-browser.js","default":"./dist/accelerator-entries/wasm-jpeg-node.js"},"./scientific/readers/all":{"types":"./dist/scientific/readers/all.d.ts","import":"./dist/scientific/readers/all.js","default":"./dist/scientific/readers/all.js"},"./scientific/readers/bmp":{"types":"./dist/scientific/readers/bmp.d.ts","import":"./dist/scientific/readers/bmp.js","default":"./dist/scientific/readers/bmp.js"},"./scientific/readers/cbf":{"types":"./dist/scientific/readers/cbf.d.ts","import":"./dist/scientific/readers/cbf.js","default":"./dist/scientific/readers/cbf.js"},"./scientific/readers/gsf":{"types":"./dist/scientific/readers/gsf.d.ts","import":"./dist/scientific/readers/gsf.js","default":"./dist/scientific/readers/gsf.js"},"./scientific/readers/jp2":{"types":"./dist/scientific/readers/jp2.d.ts","import":"./dist/scientific/readers/jp2.js","default":"./dist/scientific/readers/jp2.js"},"./scientific/readers/mib":{"types":"./dist/scientific/readers/mib.d.ts","import":"./dist/scientific/readers/mib.js","default":"./dist/scientific/readers/mib.js"},"./scientific/readers/mrc":{"types":"./dist/scientific/readers/mrc.d.ts","import":"./dist/scientific/readers/mrc.js","default":"./dist/scientific/readers/mrc.js"},"./scientific/readers/npy":{"types":"./dist/scientific/readers/npy.d.ts","import":"./dist/scientific/readers/npy.js","default":"./dist/scientific/readers/npy.js"},"./scientific/readers/png":{"types":"./dist/scientific/readers/png.d.ts","import":"./dist/scientific/readers/png.js","default":"./dist/scientific/readers/png.js"},"./scientific/readers/rpl":{"types":"./dist/scientific/readers/rpl.d.ts","import":"./dist/scientific/readers/rpl.js","default":"./dist/scientific/readers/rpl.js"},"./scientific/readers/x3p":{"types":"./dist/scientific/readers/x3p.d.ts","import":"./dist/scientific/readers/x3p.js","default":"./dist/scientific/readers/x3p.js"},"./scientific/readers/emsa":{"types":"./dist/scientific/readers/emsa.d.ts","import":"./dist/scientific/readers/emsa.js","default":"./dist/scientific/readers/emsa.js"},"./scientific/readers/envi":{"types":"./dist/scientific/readers/envi.d.ts","import":"./dist/scientific/readers/envi.js","default":"./dist/scientific/readers/envi.js"},"./scientific/readers/fits":{"types":"./dist/scientific/readers/fits.d.ts","import":"./dist/scientific/readers/fits.js","default":"./dist/scientific/readers/fits.js"},"./scientific/readers/jpeg":{"types":"./dist/scientific/readers/jpeg.d.ts","import":"./dist/scientific/readers/jpeg.js","default":"./dist/scientific/readers/jpeg.js"},"./scientific/readers/nrrd":{"types":"./dist/scientific/readers/nrrd.d.ts","import":"./dist/scientific/readers/nrrd.js","default":"./dist/scientific/readers/nrrd.js"},"./scientific/readers/tiff":{"types":"./dist/scientific/readers/tiff.d.ts","import":"./dist/scientific/readers/tiff.js","default":"./dist/scientific/readers/tiff.js"},"./scientific/readers/webp":{"types":"./dist/scientific/readers/webp.d.ts","import":"./dist/scientific/readers/webp.js","default":"./dist/scientific/readers/webp.js"},"./codecs/experimental/heic":{"types":"./dist/codec-entries/experimental/heic.d.ts","import":"./dist/codec-entries/experimental/heic.js","default":"./dist/codec-entries/experimental/heic.js"},"./scientific/readers/dicom":{"types":"./dist/scientific/readers/dicom.d.ts","import":"./dist/scientific/readers/dicom.js","default":"./dist/scientific/readers/dicom.js"},"./scientific/readers/nifti":{"types":"./dist/scientific/readers/nifti.d.ts","import":"./dist/scientific/readers/nifti.js","default":"./dist/scientific/readers/nifti.js"},"./scientific/readers/tia-emi":{"types":"./dist/scientific/readers/tia-emi.d.ts","import":"./dist/scientific/readers/tia-emi.js","default":"./dist/scientific/readers/tia-emi.js"},"./scientific/readers/tia-ser":{"types":"./dist/scientific/readers/tia-ser.d.ts","import":"./dist/scientific/readers/tia-ser.js","default":"./dist/scientific/readers/tia-ser.js"},"./scientific/readers/ncem-emd":{"types":"./dist/scientific/readers/ncem-emd.d.ts","import":"./dist/scientific/readers/ncem-emd.js","default":"./dist/scientific/readers/ncem-emd.js"},"./scientific/readers/ome-tiff":{"types":"./dist/scientific/readers/ome-tiff.d.ts","import":"./dist/scientific/readers/ome-tiff.js","default":"./dist/scientific/readers/ome-tiff.js"},"./scientific/readers/ome-zarr":{"types":"./dist/scientific/readers/ome-zarr.d.ts","import":"./dist/scientific/readers/ome-zarr.js","default":"./dist/scientific/readers/ome-zarr.js"},"./scientific/readers/blockfile":{"types":"./dist/scientific/readers/blockfile.d.ts","import":"./dist/scientific/readers/blockfile.js","default":"./dist/scientific/readers/blockfile.js"},"./scientific/readers/ebsd-text":{"types":"./dist/scientific/readers/ebsd-text.d.ts","import":"./dist/scientific/readers/ebsd-text.js","default":"./dist/scientific/readers/ebsd-text.js"},"./scientific/readers/velox-emd":{"types":"./dist/scientific/readers/velox-emd.d.ts","import":"./dist/scientific/readers/velox-emd.js","default":"./dist/scientific/readers/velox-emd.js"},"./scientific/readers/aperio-svs":{"types":"./dist/scientific/readers/aperio-svs.d.ts","import":"./dist/scientific/readers/aperio-svs.js","default":"./dist/scientific/readers/aperio-svs.js"},"./scientific/readers/meta-image":{"types":"./dist/scientific/readers/meta-image.d.ts","import":"./dist/scientific/readers/meta-image.js","default":"./dist/scientific/readers/meta-image.js"},"./scientific/readers/nanonis-sxm":{"types":"./dist/scientific/readers/nanonis-sxm.d.ts","import":"./dist/scientific/readers/nanonis-sxm.js","default":"./dist/scientific/readers/nanonis-sxm.js"},"./scientific/readers/digital-surf":{"types":"./dist/scientific/readers/digital-surf.d.ts","import":"./dist/scientific/readers/digital-surf.js","default":"./dist/scientific/readers/digital-surf.js"},"./scientific/readers/igor-binary-wave":{"types":"./dist/scientific/readers/igor-binary-wave.d.ts","import":"./dist/scientific/readers/igor-binary-wave.js","default":"./dist/scientific/readers/igor-binary-wave.js"},"./scientific/readers/digital-micrograph":{"types":"./dist/scientific/readers/digital-micrograph.d.ts","import":"./dist/scientific/readers/digital-micrograph.js","default":"./dist/scientific/readers/digital-micrograph.js"}},"gitHead":"3737a99f95f2e2547729becb31e58b31f88ec699","scripts":{"lint":"biome lint .","size":"npm run build && node scripts/measure-bundle-size.ts && npm run package-metrics:generate && node scripts/measure-bundle-size.ts && npm run package-metrics:generate","test":"vitest run","bench":"node benchmark/run.ts","build":"node scripts/clean-dist.ts && tsc -p tsconfig.build.json && node scripts/copy-wasm-artifacts.ts","check":"npm run capabilities:check && npm run comparison:check && npm run analysis:api:check && npm run size:check && npm run package-metrics:check && npm run documentation:check && npm run docs:build && npm run typecheck && npm run package:types && npm run profile:example:check && npm run platform:example:check && npm run browser:check && npm run lint && npm run format:check && npm run dicom:dictionary:check && npm test","format":"biome format --write .","prepack":"npm run check","docs:dev":"astro dev --root docs-astro","bench:bmp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile bmp","bench:ico":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile ico","typecheck":"tsc --noEmit","bench:heif":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif","bench:jimp":"node benchmark/run.ts --engines jimp","bench:tiff":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile tiff","bench:webp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile webp","bench:zstd":"node --expose-gc benchmark/scripts/run-zstd.ts","docs:build":"node scripts/build-docs-site.ts","size:check":"npm run build && node scripts/measure-bundle-size.ts --check","test:watch":"vitest","bench:smoke":"node benchmark/run.ts --engines jimp --profile smoke --runs 1 --warmups 0","browser:test":"playwright test","docs:preview":"astro preview --root docs-astro","fixtures:ico":"node benchmark/ico/verify-corpus.ts","format:check":"biome format .","fuzz:release":"PUREJSIMAGE_FUZZ_RELEASE=1 PUREJSIMAGE_FUZZ_CASES=512 PUREJSIMAGE_FUZZ_SEED=1592598566 PUREJSIMAGE_FUZZ_CRASH_DIR=artifacts/fuzz-crashes vitest run tests/corruption-fuzz.test.ts","bench:avif:b2":"node --expose-gc benchmark/avif/run-b2.ts","browser:bench":"PUREJSIMAGE_WRITE_BROWSER_BENCHMARK=1 playwright test browser-tests/benchmark.pw.ts --project=chromium","browser:check":"tsc -p tsconfig.browser.json && node scripts/check-browser-build.ts","corpus:imazen":"node scripts/validate-imazen-corpus.ts","fixtures:avif":"node benchmark/avif/prepare-corpus.ts","fixtures:hdf5":"node benchmark/hdf5/verify-corpus.ts","fixtures:heif":"node benchmark/heif/verify-corpus.ts && node benchmark/heif/compatibility/verify.ts","fixtures:jpeg":"node benchmark/jpeg/verify-corpus.ts && vitest run tests/jpeg-reference-fixtures.test.ts tests/jpeg-reference-parity.test.ts","package:types":"node scripts/check-package-types.ts","bench:bmp:jimp":"node benchmark/run.ts --engines jimp --profile bmp","bench:png:wasm":"node benchmark/png/run-wasm.ts","wasm:build:png":"node scripts/build-wasm-png.ts","bench:heif:cold":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 0","bench:heif:warm":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 1","bench:hillclimb":"node benchmark/hillclimb/run.ts","bench:jpeg:wasm":"npm run build && node benchmark/jpeg/run-wasm-decoder.ts","bench:tiff:jimp":"node benchmark/run.ts --engines jimp --profile tiff","corpus:exercise":"node scripts/exercise-corpus.ts","fixtures:verify":"node benchmark/scripts/verify-corpus.ts","results:combine":"node benchmark/scripts/combine-results.ts","wasm:build:jpeg":"node scripts/build-wasm-jpeg.ts","bench:lambda:run":"node benchmark/aws-lambda/run.ts","bench:transforms":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile transforms","bench:web-codecs":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm,jimp,sharp,sharp-single-thread,image-js,jsquash --profile web-codecs","comparison:check":"node scripts/render-library-comparison.ts --check","fixtures:prepare":"node benchmark/scripts/prepare-corpus.ts","fixtures:tia-emi":"node benchmark/tia-ser/verify-emi-corpus.ts","fixtures:tia-ser":"node benchmark/tia-ser/verify-corpus.ts","bench:avif:imazen":"node benchmark/avif/run-imazen-compatibility-survey.ts","bench:avif:memory":"node benchmark/avif/run-memory.ts","bench:competitors":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm,jimp,sharp,sharp-single-thread,image-js,jsquash --profile competitors","bench:jpeg:encode":"npm run build && node --expose-gc benchmark/jpeg/encode-probe.ts","bench:viewers:cog":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=cog playwright test -c playwright.viewers.config.ts --project=chromium","fixtures:jpeg2000":"node benchmark/jpeg2000/verify-corpus.ts","fixtures:ncem-emd":"node benchmark/ncem-emd/verify-corpus.ts","analysis:api:check":"node scripts/check-analysis-api-manifest.ts","bench:avif:inspect":"node benchmark/avif/inspect-bitstreams.ts","bench:cog:viewport":"node benchmark/cog/run-viewport.ts","bench:jpeg2000:rss":"node benchmark/jpeg2000/run-rss.ts","bench:small-codecs":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile small-codecs","capabilities:check":"node scripts/render-capabilities.ts --check && node scripts/render-tiff-cog-support.ts --check","corpus:tiff:matrix":"node scripts/analyze-tiff-dependencies.ts","fixtures:avif:imir":"node benchmark/avif/verify-mirror-fixtures.ts","fixtures:velox-emd":"node benchmark/velox-emd/verify-corpus.ts","bench:jpegxl:memory":"node benchmark/jpegxl/run-memory.ts","bench:lambda:assets":"npm run build && npm run fixtures:prepare -- tundra-4000x3000 rgba-gradient-4000x3000 && node benchmark/aws-lambda/build-assets.ts","bench:lambda:deploy":"npm run bench:lambda:assets && node benchmark/aws-lambda/stage-assets.ts && cdk deploy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --require-approval never --method direct","bench:results:index":"node benchmark/scripts/build-result-index.ts","bench:stable-codecs":"npm run build && node benchmark/stable-codecs/run.ts","bench:viewers:smoke":"npm run bench:viewers:prepare && playwright test -c playwright.viewers.config.ts --project=chromium","comparison:generate":"node scripts/render-library-comparison.ts","documentation:check":"npm run benchmark:public:check && node scripts/render-documentation.ts --check","documentation:write":"npm run benchmark:public:write && node scripts/render-documentation.ts --write && biome format --write docs-astro/src/data/documentation-data.json","fixtures:avif:alpha":"node benchmark/avif/verify-auxiliary-fixtures.ts","fixtures:avif:color":"node benchmark/avif/verify-color-fixtures.ts","fixtures:avif:tiles":"node benchmark/avif/verify-tiled-lossless-fixture.ts && node benchmark/avif/verify-lossy-multitile-fixture.ts","bench:analysis:tiles":"node benchmark/scientific/run-tile-runtime.ts","bench:avif:reference":"node benchmark/avif/run-reference.ts","bench:lambda:destroy":"cdk destroy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --force && node benchmark/aws-lambda/stage-assets.ts --cleanup","bench:viewers:charts":"node benchmark/viewers/render-charts.ts","fixtures:cbf:prepare":"node benchmark/cbf/prepare-compatibility-sample.ts","fixtures:cog:prepare":"node scripts/generate-cog-fixtures.ts && biome format --write tests/fixtures/cog/manifest.json","fixtures:mrc:prepare":"node benchmark/mrc/prepare-official-sample.ts","fixtures:tiff:encode":"npm run build && node benchmark/scripts/verify-tiff-encode.ts","analysis:api:generate":"node scripts/check-analysis-api-manifest.ts --write","bench:jpeg:region-rss":"node benchmark/jpeg/run-region-rss.ts","bench:jpeg:upsampling":"node benchmark/jpeg/run-upsampling.ts","bench:scientific:full":"node benchmark/scientific-readers/run.ts --profile full --runs 3 --warmups 1","bench:viewers:prepare":"npm install --prefix benchmark/viewers --ignore-scripts --no-fund --no-audit","bench:viewers:volumes":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=volumes playwright test -c playwright.viewers.config.ts --project=chromium","capabilities:generate":"node scripts/render-capabilities.ts && node scripts/render-tiff-cog-support.ts && biome format --write docs-astro/public/capabilities.json tests/generated/capability-expectations.json","fixtures:avif:intrabc":"node benchmark/avif/verify-intrabc-fixture.ts","fixtures:avif:layered":"node benchmark/avif/verify-layered-fixture.ts","fixtures:avif:qmatrix":"node benchmark/avif/verify-qmatrix-fixtures.ts","fixtures:hdf5:prepare":"node benchmark/hdf5/prepare-corpus.ts","fixtures:heif:prepare":"node benchmark/heif/compatibility/prepare.ts","fixtures:jpeg:prepare":"node benchmark/jpeg/prepare-reference-fixtures.ts","fixtures:small-codecs":"node benchmark/small-codecs/prepare-benchmark-corpus.ts","package-metrics:check":"node scripts/render-package-metrics.ts --check","profile:example:check":"node scripts/check-external-tiff-profile.ts && tsc -p examples/tiff-profile-leica/tsconfig.json","bench:jpeg:progressive":"npm run build && node benchmark/jpeg/run-progressive-encode.ts","bench:jpeg:scaled-idct":"node benchmark/jpeg/run-scaled-idct.ts","bench:jpeg:wasm:encode":"npm run build && node benchmark/jpeg/run-wasm-encoder.ts","bench:scientific:range":"node benchmark/scientific-readers/run.ts --profile range --runs 3 --warmups 1","bench:scientific:smoke":"node benchmark/scientific-readers/run.ts --profile smoke --runs 1 --warmups 0","bench:viewers:ome-tiff":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=ome-tiff playwright test -c playwright.viewers.config.ts --project=chromium","benchmark:public:check":"node scripts/render-public-benchmark-results.ts --check","benchmark:public:write":"node scripts/render-public-benchmark-results.ts --write","dicom:dictionary:check":"node scripts/dicom/generate-dictionary.ts --check","fixtures:avif:high-bit":"node benchmark/avif/verify-high-bit-expanded-fixtures.ts","fixtures:avif:superres":"node benchmark/avif/verify-superres-fixture.ts","platform:example:check":"node scripts/check-external-application-platform.ts && tsc -p examples/scientific-application-platform/tsconfig.json","bench:web-codecs:charts":"node benchmark/scripts/render-competitor-charts.ts --profile web-codecs","corpus:tiff:competitors":"node scripts/compare-tiff-competitors.ts","fixtures:avif:auxiliary":"node benchmark/avif/verify-auxiliary-fixtures.ts","fixtures:jpegxl:prepare":"node benchmark/jpegxl/prepare-corpus.ts","bench:avif:compatibility":"node benchmark/avif/run-compatibility-survey.ts","bench:competitors:charts":"node benchmark/scripts/render-competitor-charts.ts","bench:scientific:scaling":"node benchmark/scientific-readers/run.ts --profile scaling --runs 9 --warmups 1 --timeout-ms 300000","bench:transforms:compare":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines jimp,purejsimage --profile transforms-comparable","demo:scientific:generate":"node scripts/generate-scientific-demo-data.ts","fixtures:avif:film-grain":"node benchmark/avif/verify-film-grain-fixture.ts","fixtures:avif:q0:prepare":"node benchmark/avif/prepare-q0-fixtures.ts","fixtures:tia-emi:prepare":"node benchmark/tia-ser/prepare-emi-corpus.ts","fixtures:tia-ser:prepare":"node benchmark/tia-ser/prepare-corpus.ts","package-metrics:generate":"node scripts/render-package-metrics.ts && biome format --write benchmark/generated/package-metrics.json docs-astro/src/data/package-metrics.json","bench:avif:imazen:prepare":"node benchmark/avif/prepare-imazen-compatibility-survey.ts","bench:avif:memory:scaling":"node benchmark/avif/run-memory-scaling.ts","bench:lambda:run:arm-wasm":"node benchmark/aws-lambda/run-arm-wasm.ts","bench:scientific:baseline":"node benchmark/scientific-readers/run.ts --profile baseline --runs 3 --warmups 1","bench:viewers:correctness":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=smoke playwright test -c playwright.viewers.config.ts --project=firefox --project=webkit","dicom:dictionary:generate":"node scripts/dicom/generate-dictionary.ts","fixtures:ncem-emd:prepare":"node benchmark/ncem-emd/prepare-corpus.ts","report:heif:compatibility":"node benchmark/heif/compatibility/run.ts --write","bench:application-platform":"node benchmark/scientific/run-application-platform.ts","fixtures:avif:imir:prepare":"node benchmark/avif/prepare-mirror-fixtures.ts","fixtures:avif:post-filters":"node benchmark/avif/verify-post-filters.ts","fixtures:avif:rows:prepare":"node benchmark/avif/prepare-row-fixture.ts","fixtures:avif:segmentation":"node benchmark/avif/verify-segmentation-fixture.ts","fixtures:tga:compatibility":"node benchmark/small-codecs/prepare-tga-compatibility.ts","fixtures:velox-emd:prepare":"node benchmark/velox-emd/prepare-corpus.ts","fixtures:avif:alpha:prepare":"node benchmark/avif/prepare-alpha-fixtures.ts","fixtures:avif:tiles:prepare":"node benchmark/avif/prepare-tiled-lossless-fixture.ts && node benchmark/avif/prepare-lossy-multitile-fixture.ts","fixtures:digital-micrograph":"node benchmark/digital-micrograph/verify-corpus.ts","bench:analysis:gaussian-blur":"node benchmark/scientific/run-analysis-gaussian-blur.ts","fixtures:avif:layered:prepare":"node benchmark/avif/prepare-dependent-layer-fixture.ts","fixtures:avif:qmatrix:prepare":"node benchmark/avif/prepare-qmatrix-fixtures.ts","bench:scientific:numeric-tiles":"node benchmark/scientific/run-numeric-tiles.ts","fixtures:avif:high-bit:prepare":"node benchmark/avif/prepare-high-bit-lossless-fixtures.ts && node benchmark/avif/prepare-high-bit-expanded-fixtures.ts","fixtures:avif:superres:prepare":"node benchmark/avif/prepare-superres-fixture.ts","bench:scientific:competitors:js":"node benchmark/scientific-readers/run-competitors.ts --profile smoke --runs 1 --warmups 0","fixtures:avif:auxiliary:prepare":"node benchmark/avif/prepare-auxiliary-fixtures.ts","fixtures:avif:nonstill-sequence":"node benchmark/avif/verify-nonstill-sequence-fixture.ts","fixtures:scientific-interchange":"node benchmark/scientific-interchange/verify-corpus.ts","bench:avif:compatibility:prepare":"node benchmark/avif/prepare-compatibility-survey.ts","fixtures:avif:film-grain:prepare":"node benchmark/avif/prepare-film-grain-fixture.ts","fixtures:avif:rows:alpha:prepare":"node benchmark/avif/prepare-row-alpha-fixture.ts","fixtures:avif:common-photo-syntax":"node benchmark/avif/verify-common-photo-syntax-fixtures.ts","fixtures:digital-micrograph:remote":"node benchmark/digital-micrograph/verify-semantic-corpus.ts","bench:analysis:connected-components":"node benchmark/scientific/run-connected-components.ts","fixtures:avif:still-picture-entropy":"node benchmark/avif/verify-still-picture-entropy-fixtures.ts","fixtures:digital-micrograph:prepare":"node benchmark/digital-micrograph/prepare-corpus.ts","bench:scientific:competitors:browser":"playwright test browser-tests/scientific-competitors.pw.ts --project=chromium","bench:scientific:competitors:prepare":"npm install --prefix benchmark/competitors-js --no-fund --no-audit && node benchmark/scientific-readers/prepare-competitors.ts","fixtures:avif:clean-aperture:prepare":"node benchmark/avif/prepare-clean-aperture-fixture.ts","bench:scientific:competitors:baseline":"node benchmark/scientific-readers/run-competitors.ts --profile baseline --runs 9 --warmups 1 --timeout-ms 300000","fixtures:scientific-interchange:prepare":"node benchmark/scientific-interchange/prepare-corpus.ts"},"_npmUser":{"name":"a-r-d","email":"aaron@ard.ninja"},"overrides":{"image-js":{"skia-canvas":"0.0.0"}},"repository":{"url":"git+https://github.com/a-r-d/PureJsImage.git","type":"git"},"_npmVersion":"11.13.0","description":"Portable image codecs and low-memory raster processing in strict TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jimp":"1.6.0","lerc":"^4.2.0","tiff":"7.1.3","astro":"^7.2.0","npyjs":"^1.2.0","pngjs":"7.0.0","react":"^19.2.8","sharp":"0.35.3","utif2":"4.1.0","bmp-ts":"^1.0.9","h5wasm":"^0.10.3","omggif":"1.0.10","vitest":"4.1.10","aws-cdk":"2.1135.1","esbuild":"0.28.1","geotiff":"^3.0.5","jpeg-js":"0.4.4","archiver":"8.0.0","image-js":"1.7.0","react-dom":"^19.2.8","constructs":"10.8.1","typescript":"7.0.2","@types/node":"26.1.2","aws-cdk-lib":"2.263.0","exif-parser":"0.1.12","@jsquash/png":"3.1.1","@types/pngjs":"6.0.5","@types/react":"^19.2.18","@deck.gl/core":"^9.3.10","@hms-dbmi/viv":"^0.22.1","@jsquash/avif":"^2.1.1","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@types/omggif":"1.0.5","openseadragon":"^6.1.0","@astrojs/react":"^6.0.2","@biomejs/biome":"2.5.7","@niivue/niivue":"^0.69.0","@vivjs/loaders":"^0.22.1","@cogeotiff/core":"^9.5.0","@jsquash/resize":"2.1.1","@types/archiver":"8.0.0","nifti-reader-js":"^0.8.0","@astrojs/sitemap":"^3.7.3","@playwright/test":"1.62.1","@types/react-dom":"^19.2.4","image-dimensions":"2.5.1","@stacksjs/ts-avif":"0.1.3","@aws-sdk/client-s3":"3.1106.0","@itk-wasm/image-io":"^1.6.1","@cornerstonejs/core":"^5.8.1","@aws-sdk/client-lambda":"3.1106.0","@cornerstonejs/nifti-volume-loader":"^5.8.1"},"_npmOperationalInternal":{"tmp":"tmp/purejsimage_0.14.0_1787199131564_0.6927115451940256","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"purejsimage","version":"0.15.0","keywords":["image","image-codecs","image-processing","typescript","low-memory","zero-dependency","nodejs","browser","serverless","aws-lambda","jpeg","jpeg-xl","jpegxl","jpeg2000","jp2","png","webp","avif","bmp","tiff","gif","hdr","qoi","netpbm","tga","heif","heic","geotiff","ome-tiff","gsf","envi","fits","mrc","ccp4","cbf","imgcif","cryo-em","x-ray-diffraction","hyperspectral","afm","dicom","scientific-imaging","whole-slide-image"],"author":{"name":"Aaron Decker"},"license":"MIT","_id":"purejsimage@0.15.0","maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"homepage":"https://purejsimage.com/","bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"dist":{"shasum":"41460895e3d3ab9981c460bd66174660caa80a00","tarball":"https://registry.npmjs.org/purejsimage/-/purejsimage-0.15.0.tgz","fileCount":558,"integrity":"sha512-xCw+LGwAuUoxeqBFoDhPtuns0fDSUYJKCGYlkvmEfCpMw3Jvey65wYzYSHGrSg5RUWkLlVmQaI5Up2Xb+bs1SA==","signatures":[{"sig":"MEYCIQCb41p9ZxxbW70oqu4RJBzT29bu+f3xwo15ulOzljiJuQIhAIyxMWOR7ncyjR1jq0STEGblGCY17RhOZj9rV3c+ppVO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6068559},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/browser.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js","default":"./dist/index.js"},"./tiff":{"types":"./dist/tiff/index.d.ts","import":"./dist/tiff/index.js","default":"./dist/tiff/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js","default":"./dist/browser.js"},"./analysis":{"types":"./dist/analysis/index.d.ts","import":"./dist/analysis/index.js","default":"./dist/analysis/index.js"},"./pathology":{"types":"./dist/pathology/index.d.ts","import":"./dist/pathology/index.js","default":"./dist/pathology/index.js"},"./codecs/all":{"types":"./dist/codec-entries/all.d.ts","import":"./dist/codec-entries/all.js","default":"./dist/codec-entries/all.js"},"./codecs/bmp":{"types":"./dist/codec-entries/bmp.d.ts","import":"./dist/codec-entries/bmp.js","default":"./dist/codec-entries/bmp.js"},"./codecs/gif":{"types":"./dist/codec-entries/gif.d.ts","import":"./dist/codec-entries/gif.js","default":"./dist/codec-entries/gif.js"},"./codecs/hdr":{"types":"./dist/codec-entries/hdr.d.ts","import":"./dist/codec-entries/hdr.js","default":"./dist/codec-entries/hdr.js"},"./codecs/ico":{"types":"./dist/codec-entries/ico.d.ts","import":"./dist/codec-entries/ico.js","default":"./dist/codec-entries/ico.js"},"./codecs/png":{"types":"./dist/codec-entries/png.d.ts","import":"./dist/codec-entries/png.js","default":"./dist/codec-entries/png.js"},"./codecs/qoi":{"types":"./dist/codec-entries/qoi.d.ts","import":"./dist/codec-entries/qoi.js","default":"./dist/codec-entries/qoi.js"},"./codecs/tga":{"types":"./dist/codec-entries/tga.d.ts","import":"./dist/codec-entries/tga.js","default":"./dist/codec-entries/tga.js"},"./codecs/web":{"types":"./dist/codec-entries/web.d.ts","import":"./dist/codec-entries/web.js","default":"./dist/codec-entries/web.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./operations":{"types":"./dist/operations/index.d.ts","import":"./dist/operations/index.js","default":"./dist/operations/index.js"},"./scientific":{"types":"./dist/scientific/index.d.ts","import":"./dist/scientific/index.js","default":"./dist/scientific/index.js"},"./codecs/avif":{"types":"./dist/codec-entries/avif.d.ts","import":"./dist/codec-entries/avif.js","default":"./dist/codec-entries/avif.js"},"./codecs/jpeg":{"types":"./dist/codec-entries/jpeg.d.ts","import":"./dist/codec-entries/jpeg.js","default":"./dist/codec-entries/jpeg.js"},"./codecs/tiff":{"types":"./dist/codec-entries/tiff.d.ts","import":"./dist/codec-entries/tiff.js","default":"./dist/codec-entries/tiff.js"},"./codecs/webp":{"types":"./dist/codec-entries/webp.d.ts","import":"./dist/codec-entries/webp.js","default":"./dist/codec-entries/webp.js"},"./analysis/roi":{"types":"./dist/analysis/roi-entry.d.ts","import":"./dist/analysis/roi-entry.js","default":"./dist/analysis/roi-entry.js"},"./codecs/jpegxl":{"types":"./dist/codec-entries/jpegxl.d.ts","import":"./dist/codec-entries/jpegxl.js","default":"./dist/codec-entries/jpegxl.js"},"./codecs/netpbm":{"types":"./dist/codec-entries/netpbm.d.ts","import":"./dist/codec-entries/netpbm.js","default":"./dist/codec-entries/netpbm.js"},"./codecs/jpeg2000":{"types":"./dist/codec-entries/jpeg2000.d.ts","import":"./dist/codec-entries/jpeg2000.js","default":"./dist/codec-entries/jpeg2000.js"},"./scientific/node":{"types":"./dist/scientific/node.d.ts","import":"./dist/scientific/node.js","default":"./dist/scientific/node.js"},"./analysis/project":{"types":"./dist/analysis/project-entry.d.ts","import":"./dist/analysis/project-entry.js","default":"./dist/analysis/project-entry.js"},"./analysis/results":{"types":"./dist/analysis/results.d.ts","import":"./dist/analysis/results.js","default":"./dist/analysis/results.js"},"./analysis/runtime":{"types":"./dist/analysis/runtime.d.ts","import":"./dist/analysis/runtime.js","default":"./dist/analysis/runtime.js"},"./compression/zstd":{"types":"./dist/compression/zstd/index.d.ts","import":"./dist/compression/zstd/index.js","default":"./dist/compression/zstd/index.js"},"./scientific/browser":{"types":"./dist/scientific/browser.d.ts","import":"./dist/scientific/browser.js","default":"./dist/scientific/browser.js"},"./sources/http-range":{"types":"./dist/sources/http-range.d.ts","import":"./dist/sources/http-range.js","default":"./dist/sources/http-range.js"},"./accelerators/wasm/png":{"node":"./dist/accelerator-entries/wasm-png-node.js","types":"./dist/accelerator-entries/wasm-png-node.d.ts","import":"./dist/accelerator-entries/wasm-png-node.js","browser":"./dist/accelerator-entries/wasm-png-browser.js","default":"./dist/accelerator-entries/wasm-png-node.js"},"./accelerators/wasm/jpeg":{"node":"./dist/accelerator-entries/wasm-jpeg-node.js","types":"./dist/accelerator-entries/wasm-jpeg-node.d.ts","import":"./dist/accelerator-entries/wasm-jpeg-node.js","browser":"./dist/accelerator-entries/wasm-jpeg-browser.js","default":"./dist/accelerator-entries/wasm-jpeg-node.js"},"./scientific/readers/all":{"types":"./dist/scientific/readers/all.d.ts","import":"./dist/scientific/readers/all.js","default":"./dist/scientific/readers/all.js"},"./scientific/readers/bmp":{"types":"./dist/scientific/readers/bmp.d.ts","import":"./dist/scientific/readers/bmp.js","default":"./dist/scientific/readers/bmp.js"},"./scientific/readers/cbf":{"types":"./dist/scientific/readers/cbf.d.ts","import":"./dist/scientific/readers/cbf.js","default":"./dist/scientific/readers/cbf.js"},"./scientific/readers/gsf":{"types":"./dist/scientific/readers/gsf.d.ts","import":"./dist/scientific/readers/gsf.js","default":"./dist/scientific/readers/gsf.js"},"./scientific/readers/jp2":{"types":"./dist/scientific/readers/jp2.d.ts","import":"./dist/scientific/readers/jp2.js","default":"./dist/scientific/readers/jp2.js"},"./scientific/readers/mib":{"types":"./dist/scientific/readers/mib.d.ts","import":"./dist/scientific/readers/mib.js","default":"./dist/scientific/readers/mib.js"},"./scientific/readers/mrc":{"types":"./dist/scientific/readers/mrc.d.ts","import":"./dist/scientific/readers/mrc.js","default":"./dist/scientific/readers/mrc.js"},"./scientific/readers/npy":{"types":"./dist/scientific/readers/npy.d.ts","import":"./dist/scientific/readers/npy.js","default":"./dist/scientific/readers/npy.js"},"./scientific/readers/png":{"types":"./dist/scientific/readers/png.d.ts","import":"./dist/scientific/readers/png.js","default":"./dist/scientific/readers/png.js"},"./scientific/readers/rpl":{"types":"./dist/scientific/readers/rpl.d.ts","import":"./dist/scientific/readers/rpl.js","default":"./dist/scientific/readers/rpl.js"},"./scientific/readers/x3p":{"types":"./dist/scientific/readers/x3p.d.ts","import":"./dist/scientific/readers/x3p.js","default":"./dist/scientific/readers/x3p.js"},"./scientific/readers/emsa":{"types":"./dist/scientific/readers/emsa.d.ts","import":"./dist/scientific/readers/emsa.js","default":"./dist/scientific/readers/emsa.js"},"./scientific/readers/envi":{"types":"./dist/scientific/readers/envi.d.ts","import":"./dist/scientific/readers/envi.js","default":"./dist/scientific/readers/envi.js"},"./scientific/readers/fits":{"types":"./dist/scientific/readers/fits.d.ts","import":"./dist/scientific/readers/fits.js","default":"./dist/scientific/readers/fits.js"},"./scientific/readers/jpeg":{"types":"./dist/scientific/readers/jpeg.d.ts","import":"./dist/scientific/readers/jpeg.js","default":"./dist/scientific/readers/jpeg.js"},"./scientific/readers/nrrd":{"types":"./dist/scientific/readers/nrrd.d.ts","import":"./dist/scientific/readers/nrrd.js","default":"./dist/scientific/readers/nrrd.js"},"./scientific/readers/tiff":{"types":"./dist/scientific/readers/tiff.d.ts","import":"./dist/scientific/readers/tiff.js","default":"./dist/scientific/readers/tiff.js"},"./scientific/readers/webp":{"types":"./dist/scientific/readers/webp.d.ts","import":"./dist/scientific/readers/webp.js","default":"./dist/scientific/readers/webp.js"},"./codecs/experimental/heic":{"types":"./dist/codec-entries/experimental/heic.d.ts","import":"./dist/codec-entries/experimental/heic.js","default":"./dist/codec-entries/experimental/heic.js"},"./scientific/readers/dicom":{"types":"./dist/scientific/readers/dicom.d.ts","import":"./dist/scientific/readers/dicom.js","default":"./dist/scientific/readers/dicom.js"},"./scientific/readers/nifti":{"types":"./dist/scientific/readers/nifti.d.ts","import":"./dist/scientific/readers/nifti.js","default":"./dist/scientific/readers/nifti.js"},"./scientific/readers/tia-emi":{"types":"./dist/scientific/readers/tia-emi.d.ts","import":"./dist/scientific/readers/tia-emi.js","default":"./dist/scientific/readers/tia-emi.js"},"./scientific/readers/tia-ser":{"types":"./dist/scientific/readers/tia-ser.d.ts","import":"./dist/scientific/readers/tia-ser.js","default":"./dist/scientific/readers/tia-ser.js"},"./scientific/readers/ncem-emd":{"types":"./dist/scientific/readers/ncem-emd.d.ts","import":"./dist/scientific/readers/ncem-emd.js","default":"./dist/scientific/readers/ncem-emd.js"},"./scientific/readers/ome-tiff":{"types":"./dist/scientific/readers/ome-tiff.d.ts","import":"./dist/scientific/readers/ome-tiff.js","default":"./dist/scientific/readers/ome-tiff.js"},"./scientific/readers/ome-zarr":{"types":"./dist/scientific/readers/ome-zarr.d.ts","import":"./dist/scientific/readers/ome-zarr.js","default":"./dist/scientific/readers/ome-zarr.js"},"./scientific/readers/blockfile":{"types":"./dist/scientific/readers/blockfile.d.ts","import":"./dist/scientific/readers/blockfile.js","default":"./dist/scientific/readers/blockfile.js"},"./scientific/readers/ebsd-text":{"types":"./dist/scientific/readers/ebsd-text.d.ts","import":"./dist/scientific/readers/ebsd-text.js","default":"./dist/scientific/readers/ebsd-text.js"},"./scientific/readers/velox-emd":{"types":"./dist/scientific/readers/velox-emd.d.ts","import":"./dist/scientific/readers/velox-emd.js","default":"./dist/scientific/readers/velox-emd.js"},"./scientific/readers/aperio-svs":{"types":"./dist/scientific/readers/aperio-svs.d.ts","import":"./dist/scientific/readers/aperio-svs.js","default":"./dist/scientific/readers/aperio-svs.js"},"./scientific/readers/meta-image":{"types":"./dist/scientific/readers/meta-image.d.ts","import":"./dist/scientific/readers/meta-image.js","default":"./dist/scientific/readers/meta-image.js"},"./scientific/readers/nanonis-sxm":{"types":"./dist/scientific/readers/nanonis-sxm.d.ts","import":"./dist/scientific/readers/nanonis-sxm.js","default":"./dist/scientific/readers/nanonis-sxm.js"},"./scientific/readers/digital-surf":{"types":"./dist/scientific/readers/digital-surf.d.ts","import":"./dist/scientific/readers/digital-surf.js","default":"./dist/scientific/readers/digital-surf.js"},"./scientific/readers/igor-binary-wave":{"types":"./dist/scientific/readers/igor-binary-wave.d.ts","import":"./dist/scientific/readers/igor-binary-wave.js","default":"./dist/scientific/readers/igor-binary-wave.js"},"./scientific/readers/digital-micrograph":{"types":"./dist/scientific/readers/digital-micrograph.d.ts","import":"./dist/scientific/readers/digital-micrograph.js","default":"./dist/scientific/readers/digital-micrograph.js"}},"gitHead":"ed32313c43746bd484af328c71e30d243464bbb8","scripts":{"lint":"biome lint .","size":"npm run build && node scripts/measure-bundle-size.ts && npm run package-metrics:generate && node scripts/measure-bundle-size.ts && npm run package-metrics:generate","test":"vitest run","bench":"node benchmark/run.ts","build":"node scripts/clean-dist.ts && tsc -p tsconfig.build.json && node scripts/copy-wasm-artifacts.ts","check":"npm run capabilities:check && npm run comparison:check && npm run analysis:api:check && npm run size:check && npm run package-metrics:check && npm run documentation:check && npm run docs:build && npm run typecheck && npm run package:types && npm run profile:example:check && npm run platform:example:check && npm run browser:check && npm run lint && npm run format:check && npm run dicom:dictionary:check && npm test","format":"biome format --write .","prepack":"npm run check","docs:dev":"astro dev --root docs-astro","bench:bmp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile bmp","bench:ico":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile ico","typecheck":"tsc --noEmit","bench:heif":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif","bench:jimp":"node benchmark/run.ts --engines jimp","bench:tiff":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile tiff","bench:webp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile webp","bench:zstd":"node --expose-gc benchmark/scripts/run-zstd.ts","docs:build":"node scripts/build-docs-site.ts","size:check":"npm run build && node scripts/measure-bundle-size.ts --check","test:watch":"vitest","bench:smoke":"node benchmark/run.ts --engines jimp --profile smoke --runs 1 --warmups 0","browser:test":"playwright test","docs:preview":"astro preview --root docs-astro","fixtures:ico":"node benchmark/ico/verify-corpus.ts","format:check":"biome format .","fuzz:release":"PUREJSIMAGE_FUZZ_RELEASE=1 PUREJSIMAGE_FUZZ_CASES=512 PUREJSIMAGE_FUZZ_SEED=1592598566 PUREJSIMAGE_FUZZ_CRASH_DIR=artifacts/fuzz-crashes vitest run tests/corruption-fuzz.test.ts","bench:avif:b2":"node --expose-gc benchmark/avif/run-b2.ts","browser:bench":"PUREJSIMAGE_WRITE_BROWSER_BENCHMARK=1 playwright test browser-tests/benchmark.pw.ts --project=chromium","browser:check":"tsc -p tsconfig.browser.json && node scripts/check-browser-build.ts","corpus:imazen":"node scripts/validate-imazen-corpus.ts","fixtures:avif":"node benchmark/avif/prepare-corpus.ts","fixtures:hdf5":"node benchmark/hdf5/verify-corpus.ts","fixtures:heif":"node benchmark/heif/verify-corpus.ts && node benchmark/heif/compatibility/verify.ts","fixtures:jpeg":"node benchmark/jpeg/verify-corpus.ts && vitest run tests/jpeg-reference-fixtures.test.ts tests/jpeg-reference-parity.test.ts","package:types":"node scripts/check-package-types.ts","bench:bmp:jimp":"node benchmark/run.ts --engines jimp --profile bmp","bench:png:wasm":"node benchmark/png/run-wasm.ts","wasm:build:png":"node scripts/build-wasm-png.ts","bench:heif:cold":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 0","bench:heif:warm":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 1","bench:hillclimb":"node benchmark/hillclimb/run.ts","bench:jpeg:wasm":"npm run build && node benchmark/jpeg/run-wasm-decoder.ts","bench:tiff:jimp":"node benchmark/run.ts --engines jimp --profile tiff","compat:ome-zarr":"node benchmark/ome-zarr/run-compatibility.ts","corpus:exercise":"node scripts/exercise-corpus.ts","fixtures:verify":"node benchmark/scripts/verify-corpus.ts","results:combine":"node benchmark/scripts/combine-results.ts","wasm:build:jpeg":"node scripts/build-wasm-jpeg.ts","bench:lambda:run":"node benchmark/aws-lambda/run.ts","bench:transforms":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile transforms","bench:web-codecs":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm,jimp,sharp,sharp-single-thread,image-js,jsquash --profile web-codecs","comparison:check":"node scripts/render-library-comparison.ts --check","fixtures:prepare":"node benchmark/scripts/prepare-corpus.ts","fixtures:tia-emi":"node benchmark/tia-ser/verify-emi-corpus.ts","fixtures:tia-ser":"node benchmark/tia-ser/verify-corpus.ts","bench:avif:imazen":"node benchmark/avif/run-imazen-compatibility-survey.ts","bench:avif:memory":"node benchmark/avif/run-memory.ts","bench:competitors":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm,jimp,sharp,sharp-single-thread,image-js,jsquash --profile competitors","bench:jpeg:encode":"npm run build && node --expose-gc benchmark/jpeg/encode-probe.ts","bench:viewers:cog":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=cog playwright test -c playwright.viewers.config.ts --project=chromium","fixtures:jpeg2000":"node benchmark/jpeg2000/verify-corpus.ts","fixtures:ncem-emd":"node benchmark/ncem-emd/verify-corpus.ts","analysis:api:check":"node scripts/check-analysis-api-manifest.ts","bench:avif:inspect":"node benchmark/avif/inspect-bitstreams.ts","bench:cog:viewport":"node benchmark/cog/run-viewport.ts","bench:jpeg2000:rss":"node benchmark/jpeg2000/run-rss.ts","bench:small-codecs":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile small-codecs","capabilities:check":"node scripts/render-capabilities.ts --check && node scripts/render-tiff-cog-support.ts --check","corpus:tiff:matrix":"node scripts/analyze-tiff-dependencies.ts","fixtures:avif:imir":"node benchmark/avif/verify-mirror-fixtures.ts","fixtures:velox-emd":"node benchmark/velox-emd/verify-corpus.ts","bench:jpegxl:memory":"node benchmark/jpegxl/run-memory.ts","bench:lambda:assets":"npm run build && npm run fixtures:prepare -- tundra-4000x3000 rgba-gradient-4000x3000 && node benchmark/aws-lambda/build-assets.ts","bench:lambda:deploy":"npm run bench:lambda:assets && node benchmark/aws-lambda/stage-assets.ts && cdk deploy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --require-approval never --method direct","bench:results:index":"node benchmark/scripts/build-result-index.ts","bench:stable-codecs":"npm run build && node benchmark/stable-codecs/run.ts","bench:viewers:smoke":"npm run bench:viewers:prepare && playwright test -c playwright.viewers.config.ts --project=chromium","comparison:generate":"node scripts/render-library-comparison.ts","documentation:check":"npm run benchmark:public:check && node scripts/render-documentation.ts --check","documentation:write":"npm run benchmark:public:write && node scripts/render-documentation.ts --write && biome format --write docs-astro/src/data/documentation-data.json","fixtures:avif:alpha":"node benchmark/avif/verify-auxiliary-fixtures.ts","fixtures:avif:color":"node benchmark/avif/verify-color-fixtures.ts","fixtures:avif:tiles":"node benchmark/avif/verify-tiled-lossless-fixture.ts && node benchmark/avif/verify-lossy-multitile-fixture.ts","bench:analysis:tiles":"node benchmark/scientific/run-tile-runtime.ts","bench:avif:reference":"node benchmark/avif/run-reference.ts","bench:lambda:destroy":"cdk destroy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --force && node benchmark/aws-lambda/stage-assets.ts --cleanup","bench:viewers:charts":"node benchmark/viewers/render-charts.ts","fixtures:cbf:prepare":"node benchmark/cbf/prepare-compatibility-sample.ts","fixtures:cog:prepare":"node scripts/generate-cog-fixtures.ts && biome format --write tests/fixtures/cog/manifest.json","fixtures:mrc:prepare":"node benchmark/mrc/prepare-official-sample.ts","fixtures:tiff:encode":"npm run build && node benchmark/scripts/verify-tiff-encode.ts","analysis:api:generate":"node scripts/check-analysis-api-manifest.ts --write","bench:jpeg:region-rss":"node benchmark/jpeg/run-region-rss.ts","bench:jpeg:upsampling":"node benchmark/jpeg/run-upsampling.ts","bench:scientific:full":"node benchmark/scientific-readers/run.ts --profile full --runs 3 --warmups 1","bench:viewers:prepare":"npm install --prefix benchmark/viewers --ignore-scripts --no-fund --no-audit","bench:viewers:volumes":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=volumes playwright test -c playwright.viewers.config.ts --project=chromium","capabilities:generate":"node scripts/render-capabilities.ts && node scripts/render-tiff-cog-support.ts && biome format --write docs-astro/public/capabilities.json tests/generated/capability-expectations.json","fixtures:avif:intrabc":"node benchmark/avif/verify-intrabc-fixture.ts","fixtures:avif:layered":"node benchmark/avif/verify-layered-fixture.ts","fixtures:avif:qmatrix":"node benchmark/avif/verify-qmatrix-fixtures.ts","fixtures:hdf5:prepare":"node benchmark/hdf5/prepare-corpus.ts","fixtures:heif:prepare":"node benchmark/heif/compatibility/prepare.ts","fixtures:jpeg:prepare":"node benchmark/jpeg/prepare-reference-fixtures.ts","fixtures:small-codecs":"node benchmark/small-codecs/prepare-benchmark-corpus.ts","package-metrics:check":"node scripts/render-package-metrics.ts --check","profile:example:check":"node scripts/check-external-tiff-profile.ts && tsc -p examples/tiff-profile-leica/tsconfig.json","bench:jpeg:progressive":"npm run build && node benchmark/jpeg/run-progressive-encode.ts","bench:jpeg:scaled-idct":"node benchmark/jpeg/run-scaled-idct.ts","bench:jpeg:wasm:encode":"npm run build && node benchmark/jpeg/run-wasm-encoder.ts","bench:scientific:range":"node benchmark/scientific-readers/run.ts --profile range --runs 3 --warmups 1","bench:scientific:smoke":"node benchmark/scientific-readers/run.ts --profile smoke --runs 1 --warmups 0","bench:viewers:ome-tiff":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=ome-tiff playwright test -c playwright.viewers.config.ts --project=chromium","benchmark:public:check":"node scripts/render-public-benchmark-results.ts --check","benchmark:public:write":"node scripts/render-public-benchmark-results.ts --write","dicom:dictionary:check":"node scripts/dicom/generate-dictionary.ts --check","fixtures:avif:high-bit":"node benchmark/avif/verify-high-bit-expanded-fixtures.ts","fixtures:avif:superres":"node benchmark/avif/verify-superres-fixture.ts","platform:example:check":"node scripts/check-external-application-platform.ts && tsc -p examples/scientific-application-platform/tsconfig.json","bench:web-codecs:charts":"node benchmark/scripts/render-competitor-charts.ts --profile web-codecs","corpus:tiff:competitors":"node scripts/compare-tiff-competitors.ts","fixtures:avif:auxiliary":"node benchmark/avif/verify-auxiliary-fixtures.ts","fixtures:jpegxl:prepare":"node benchmark/jpegxl/prepare-corpus.ts","bench:avif:compatibility":"node benchmark/avif/run-compatibility-survey.ts","bench:competitors:charts":"node benchmark/scripts/render-competitor-charts.ts","bench:scientific:scaling":"node benchmark/scientific-readers/run.ts --profile scaling --runs 9 --warmups 1 --timeout-ms 300000","bench:transforms:compare":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines jimp,purejsimage --profile transforms-comparable","demo:scientific:generate":"node scripts/generate-scientific-demo-data.ts","fixtures:avif:film-grain":"node benchmark/avif/verify-film-grain-fixture.ts","fixtures:avif:q0:prepare":"node benchmark/avif/prepare-q0-fixtures.ts","fixtures:tia-emi:prepare":"node benchmark/tia-ser/prepare-emi-corpus.ts","fixtures:tia-ser:prepare":"node benchmark/tia-ser/prepare-corpus.ts","package-metrics:generate":"node scripts/render-package-metrics.ts && biome format --write benchmark/generated/package-metrics.json docs-astro/src/data/package-metrics.json","bench:avif:imazen:prepare":"node benchmark/avif/prepare-imazen-compatibility-survey.ts","bench:avif:memory:scaling":"node benchmark/avif/run-memory-scaling.ts","bench:lambda:run:arm-wasm":"node benchmark/aws-lambda/run-arm-wasm.ts","bench:scientific:baseline":"node benchmark/scientific-readers/run.ts --profile baseline --runs 3 --warmups 1","bench:viewers:correctness":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=smoke playwright test -c playwright.viewers.config.ts --project=firefox --project=webkit","dicom:dictionary:generate":"node scripts/dicom/generate-dictionary.ts","fixtures:ncem-emd:prepare":"node benchmark/ncem-emd/prepare-corpus.ts","report:heif:compatibility":"node benchmark/heif/compatibility/run.ts --write","bench:application-platform":"node benchmark/scientific/run-application-platform.ts","fixtures:avif:imir:prepare":"node benchmark/avif/prepare-mirror-fixtures.ts","fixtures:avif:post-filters":"node benchmark/avif/verify-post-filters.ts","fixtures:avif:rows:prepare":"node benchmark/avif/prepare-row-fixture.ts","fixtures:avif:segmentation":"node benchmark/avif/verify-segmentation-fixture.ts","fixtures:tga:compatibility":"node benchmark/small-codecs/prepare-tga-compatibility.ts","fixtures:velox-emd:prepare":"node benchmark/velox-emd/prepare-corpus.ts","compat:ome-zarr:conformance":"node scripts/run-ome-zarr-conformance.ts","fixtures:avif:alpha:prepare":"node benchmark/avif/prepare-alpha-fixtures.ts","fixtures:avif:tiles:prepare":"node benchmark/avif/prepare-tiled-lossless-fixture.ts && node benchmark/avif/prepare-lossy-multitile-fixture.ts","fixtures:digital-micrograph":"node benchmark/digital-micrograph/verify-corpus.ts","bench:analysis:gaussian-blur":"node benchmark/scientific/run-analysis-gaussian-blur.ts","fixtures:avif:layered:prepare":"node benchmark/avif/prepare-dependent-layer-fixture.ts","fixtures:avif:qmatrix:prepare":"node benchmark/avif/prepare-qmatrix-fixtures.ts","bench:scientific:numeric-tiles":"node benchmark/scientific/run-numeric-tiles.ts","fixtures:avif:high-bit:prepare":"node benchmark/avif/prepare-high-bit-lossless-fixtures.ts && node benchmark/avif/prepare-high-bit-expanded-fixtures.ts","fixtures:avif:superres:prepare":"node benchmark/avif/prepare-superres-fixture.ts","bench:scientific:competitors:js":"node benchmark/scientific-readers/run-competitors.ts --profile smoke --runs 1 --warmups 0","fixtures:avif:auxiliary:prepare":"node benchmark/avif/prepare-auxiliary-fixtures.ts","fixtures:avif:nonstill-sequence":"node benchmark/avif/verify-nonstill-sequence-fixture.ts","fixtures:scientific-interchange":"node benchmark/scientific-interchange/verify-corpus.ts","bench:avif:compatibility:prepare":"node benchmark/avif/prepare-compatibility-survey.ts","fixtures:avif:film-grain:prepare":"node benchmark/avif/prepare-film-grain-fixture.ts","fixtures:avif:rows:alpha:prepare":"node benchmark/avif/prepare-row-alpha-fixture.ts","fixtures:avif:common-photo-syntax":"node benchmark/avif/verify-common-photo-syntax-fixtures.ts","fixtures:digital-micrograph:remote":"node benchmark/digital-micrograph/verify-semantic-corpus.ts","bench:analysis:connected-components":"node benchmark/scientific/run-connected-components.ts","fixtures:avif:still-picture-entropy":"node benchmark/avif/verify-still-picture-entropy-fixtures.ts","fixtures:digital-micrograph:prepare":"node benchmark/digital-micrograph/prepare-corpus.ts","bench:scientific:competitors:browser":"playwright test browser-tests/scientific-competitors.pw.ts --project=chromium","bench:scientific:competitors:prepare":"npm install --prefix benchmark/competitors-js --no-fund --no-audit && node benchmark/scientific-readers/prepare-competitors.ts","fixtures:avif:clean-aperture:prepare":"node benchmark/avif/prepare-clean-aperture-fixture.ts","bench:scientific:competitors:baseline":"node benchmark/scientific-readers/run-competitors.ts --profile baseline --runs 9 --warmups 1 --timeout-ms 300000","fixtures:scientific-interchange:prepare":"node benchmark/scientific-interchange/prepare-corpus.ts"},"_npmUser":{"name":"a-r-d","email":"aaron@ard.ninja"},"overrides":{"image-js":{"skia-canvas":"0.0.0"}},"repository":{"url":"git+https://github.com/a-r-d/PureJsImage.git","type":"git"},"_npmVersion":"11.13.0","description":"Portable image codecs and low-memory raster processing in strict TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jimp":"1.6.0","lerc":"^4.2.0","tiff":"7.1.3","astro":"^7.2.0","npyjs":"^1.2.0","pngjs":"7.0.0","react":"^19.2.8","sharp":"0.35.3","utif2":"4.1.0","bmp-ts":"^1.0.9","h5wasm":"^0.10.3","omggif":"1.0.10","vitest":"4.1.10","aws-cdk":"2.1135.1","esbuild":"0.28.1","geotiff":"^3.0.5","jpeg-js":"0.4.4","archiver":"8.0.0","image-js":"1.7.0","react-dom":"^19.2.8","constructs":"10.8.1","typescript":"7.0.2","@types/node":"26.1.2","aws-cdk-lib":"2.263.0","exif-parser":"0.1.12","@jsquash/png":"3.1.1","@types/pngjs":"6.0.5","@types/react":"^19.2.18","@deck.gl/core":"^9.3.10","@hms-dbmi/viv":"^0.22.1","@jsquash/avif":"^2.1.1","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@types/omggif":"1.0.5","openseadragon":"^6.1.0","@astrojs/react":"^6.0.2","@biomejs/biome":"2.5.7","@niivue/niivue":"^0.69.0","@vivjs/loaders":"^0.22.1","@cogeotiff/core":"^9.5.0","@jsquash/resize":"2.1.1","@types/archiver":"8.0.0","nifti-reader-js":"^0.8.0","@astrojs/sitemap":"^3.7.3","@playwright/test":"1.62.1","@types/react-dom":"^19.2.4","image-dimensions":"2.5.1","@stacksjs/ts-avif":"0.1.3","@aws-sdk/client-s3":"3.1106.0","@itk-wasm/image-io":"^1.6.1","@cornerstonejs/core":"^5.8.1","@aws-sdk/client-lambda":"3.1106.0","@cornerstonejs/nifti-volume-loader":"^5.8.1"},"_npmOperationalInternal":{"tmp":"tmp/purejsimage_0.15.0_1787261719311_0.019553174463986966","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"purejsimage","version":"0.16.0","keywords":["image","image-codecs","image-processing","typescript","low-memory","zero-dependency","nodejs","browser","serverless","aws-lambda","jpeg","jpeg-xl","jpegxl","jpeg2000","jp2","png","webp","avif","bmp","tiff","gif","hdr","qoi","netpbm","tga","heif","heic","geotiff","netcdf","cf-conventions","ome-tiff","gsf","envi","fits","mrc","ccp4","cbf","imgcif","cryo-em","x-ray-diffraction","hyperspectral","afm","dicom","scientific-imaging","whole-slide-image"],"author":{"name":"Aaron Decker"},"license":"MIT","_id":"purejsimage@0.16.0","maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"homepage":"https://purejsimage.com/","bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"dist":{"shasum":"d4dd009bec50d4a0632cace5ba95d0e0940ef4ab","tarball":"https://registry.npmjs.org/purejsimage/-/purejsimage-0.16.0.tgz","fileCount":636,"integrity":"sha512-J+Zo3LIXnQOne7JUeO23aQCee/5wkSqppOa7PZbKj5+PeYYesZHeZi2QiJk9kkETNJXfwWvTnZpXU3QXdF+BCA==","signatures":[{"sig":"MEUCIAp3k4fUETBmgcmAvHIDxZJdenu+Q06tDemoTh22Tk1YAiEAmkMmKA4RD0CqFXkrx4K5W/lIzbfxaUhSIyYr3DJmoq0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6599177},"main":"./dist/index.js","type":"module","_from":"file:/Users/ard/projects/PureJsImage/purejsimage-0.16.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/browser.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js","default":"./dist/index.js"},"./geo":{"types":"./dist/geo/index.d.ts","import":"./dist/geo/index.js","default":"./dist/geo/index.js"},"./tiff":{"types":"./dist/tiff/index.d.ts","import":"./dist/tiff/index.js","default":"./dist/tiff/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js","default":"./dist/browser.js"},"./analysis":{"types":"./dist/analysis/index.d.ts","import":"./dist/analysis/index.js","default":"./dist/analysis/index.js"},"./pathology":{"types":"./dist/pathology/index.d.ts","import":"./dist/pathology/index.js","default":"./dist/pathology/index.js"},"./codecs/all":{"types":"./dist/codec-entries/all.d.ts","import":"./dist/codec-entries/all.js","default":"./dist/codec-entries/all.js"},"./codecs/bmp":{"types":"./dist/codec-entries/bmp.d.ts","import":"./dist/codec-entries/bmp.js","default":"./dist/codec-entries/bmp.js"},"./codecs/gif":{"types":"./dist/codec-entries/gif.d.ts","import":"./dist/codec-entries/gif.js","default":"./dist/codec-entries/gif.js"},"./codecs/hdr":{"types":"./dist/codec-entries/hdr.d.ts","import":"./dist/codec-entries/hdr.js","default":"./dist/codec-entries/hdr.js"},"./codecs/ico":{"types":"./dist/codec-entries/ico.d.ts","import":"./dist/codec-entries/ico.js","default":"./dist/codec-entries/ico.js"},"./codecs/png":{"types":"./dist/codec-entries/png.d.ts","import":"./dist/codec-entries/png.js","default":"./dist/codec-entries/png.js"},"./codecs/qoi":{"types":"./dist/codec-entries/qoi.d.ts","import":"./dist/codec-entries/qoi.js","default":"./dist/codec-entries/qoi.js"},"./codecs/tga":{"types":"./dist/codec-entries/tga.d.ts","import":"./dist/codec-entries/tga.js","default":"./dist/codec-entries/tga.js"},"./codecs/web":{"types":"./dist/codec-entries/web.d.ts","import":"./dist/codec-entries/web.js","default":"./dist/codec-entries/web.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./operations":{"types":"./dist/operations/index.d.ts","import":"./dist/operations/index.js","default":"./dist/operations/index.js"},"./scientific":{"types":"./dist/scientific/index.d.ts","import":"./dist/scientific/index.js","default":"./dist/scientific/index.js"},"./codecs/avif":{"types":"./dist/codec-entries/avif.d.ts","import":"./dist/codec-entries/avif.js","default":"./dist/codec-entries/avif.js"},"./codecs/jpeg":{"types":"./dist/codec-entries/jpeg.d.ts","import":"./dist/codec-entries/jpeg.js","default":"./dist/codec-entries/jpeg.js"},"./codecs/tiff":{"types":"./dist/codec-entries/tiff.d.ts","import":"./dist/codec-entries/tiff.js","default":"./dist/codec-entries/tiff.js"},"./codecs/webp":{"types":"./dist/codec-entries/webp.d.ts","import":"./dist/codec-entries/webp.js","default":"./dist/codec-entries/webp.js"},"./geo/browser":{"types":"./dist/geo/browser.d.ts","import":"./dist/geo/browser.js","default":"./dist/geo/browser.js"},"./geo/readers":{"types":"./dist/geo/readers/index.d.ts","import":"./dist/geo/readers/index.js","default":"./dist/geo/readers/index.js"},"./analysis/roi":{"types":"./dist/analysis/roi-entry.d.ts","import":"./dist/analysis/roi-entry.js","default":"./dist/analysis/roi-entry.js"},"./codecs/jpegxl":{"types":"./dist/codec-entries/jpegxl.d.ts","import":"./dist/codec-entries/jpegxl.js","default":"./dist/codec-entries/jpegxl.js"},"./codecs/netpbm":{"types":"./dist/codec-entries/netpbm.d.ts","import":"./dist/codec-entries/netpbm.js","default":"./dist/codec-entries/netpbm.js"},"./codecs/jpeg2000":{"types":"./dist/codec-entries/jpeg2000.d.ts","import":"./dist/codec-entries/jpeg2000.js","default":"./dist/codec-entries/jpeg2000.js"},"./geo/readers/all":{"types":"./dist/geo/readers/all.d.ts","import":"./dist/geo/readers/all.js","default":"./dist/geo/readers/all.js"},"./scientific/node":{"types":"./dist/scientific/node.d.ts","import":"./dist/scientific/node.js","default":"./dist/scientific/node.js"},"./analysis/project":{"types":"./dist/analysis/project-entry.d.ts","import":"./dist/analysis/project-entry.js","default":"./dist/analysis/project-entry.js"},"./analysis/results":{"types":"./dist/analysis/results.d.ts","import":"./dist/analysis/results.js","default":"./dist/analysis/results.js"},"./analysis/runtime":{"types":"./dist/analysis/runtime.d.ts","import":"./dist/analysis/runtime.js","default":"./dist/analysis/runtime.js"},"./compression/zstd":{"types":"./dist/compression/zstd/index.d.ts","import":"./dist/compression/zstd/index.js","default":"./dist/compression/zstd/index.js"},"./geo/readers/envi":{"types":"./dist/geo/readers/envi.d.ts","import":"./dist/geo/readers/envi.js","default":"./dist/geo/readers/envi.js"},"./geo/readers/netcdf":{"types":"./dist/geo/readers/netcdf.d.ts","import":"./dist/geo/readers/netcdf.js","default":"./dist/geo/readers/netcdf.js"},"./scientific/browser":{"types":"./dist/scientific/browser.d.ts","import":"./dist/scientific/browser.js","default":"./dist/scientific/browser.js"},"./sources/http-range":{"types":"./dist/sources/http-range.d.ts","import":"./dist/sources/http-range.js","default":"./dist/sources/http-range.js"},"./geo/readers/geotiff":{"types":"./dist/geo/readers/geotiff.d.ts","import":"./dist/geo/readers/geotiff.js","default":"./dist/geo/readers/geotiff.js"},"./geo/readers/geozarr":{"types":"./dist/geo/readers/geozarr/index.d.ts","import":"./dist/geo/readers/geozarr/index.js","default":"./dist/geo/readers/geozarr/index.js"},"./geo/readers/srtm-hgt":{"types":"./dist/geo/readers/srtm-hgt.d.ts","import":"./dist/geo/readers/srtm-hgt.js","default":"./dist/geo/readers/srtm-hgt.js"},"./accelerators/wasm/png":{"node":"./dist/accelerator-entries/wasm-png-node.js","types":"./dist/accelerator-entries/wasm-png-node.d.ts","import":"./dist/accelerator-entries/wasm-png-node.js","browser":"./dist/accelerator-entries/wasm-png-browser.js","default":"./dist/accelerator-entries/wasm-png-node.js"},"./accelerators/wasm/jpeg":{"node":"./dist/accelerator-entries/wasm-jpeg-node.js","types":"./dist/accelerator-entries/wasm-jpeg-node.d.ts","import":"./dist/accelerator-entries/wasm-jpeg-node.js","browser":"./dist/accelerator-entries/wasm-jpeg-browser.js","default":"./dist/accelerator-entries/wasm-jpeg-node.js"},"./geo/readers/world-file":{"types":"./dist/geo/readers/world-file.d.ts","import":"./dist/geo/readers/world-file.js","default":"./dist/geo/readers/world-file.js"},"./scientific/readers/all":{"types":"./dist/scientific/readers/all.d.ts","import":"./dist/scientific/readers/all.js","default":"./dist/scientific/readers/all.js"},"./scientific/readers/bmp":{"types":"./dist/scientific/readers/bmp.d.ts","import":"./dist/scientific/readers/bmp.js","default":"./dist/scientific/readers/bmp.js"},"./scientific/readers/cbf":{"types":"./dist/scientific/readers/cbf.d.ts","import":"./dist/scientific/readers/cbf.js","default":"./dist/scientific/readers/cbf.js"},"./scientific/readers/gsf":{"types":"./dist/scientific/readers/gsf.d.ts","import":"./dist/scientific/readers/gsf.js","default":"./dist/scientific/readers/gsf.js"},"./scientific/readers/jp2":{"types":"./dist/scientific/readers/jp2.d.ts","import":"./dist/scientific/readers/jp2.js","default":"./dist/scientific/readers/jp2.js"},"./scientific/readers/mib":{"types":"./dist/scientific/readers/mib.d.ts","import":"./dist/scientific/readers/mib.js","default":"./dist/scientific/readers/mib.js"},"./scientific/readers/mrc":{"types":"./dist/scientific/readers/mrc.d.ts","import":"./dist/scientific/readers/mrc.js","default":"./dist/scientific/readers/mrc.js"},"./scientific/readers/npy":{"types":"./dist/scientific/readers/npy.d.ts","import":"./dist/scientific/readers/npy.js","default":"./dist/scientific/readers/npy.js"},"./scientific/readers/png":{"types":"./dist/scientific/readers/png.d.ts","import":"./dist/scientific/readers/png.js","default":"./dist/scientific/readers/png.js"},"./scientific/readers/rpl":{"types":"./dist/scientific/readers/rpl.d.ts","import":"./dist/scientific/readers/rpl.js","default":"./dist/scientific/readers/rpl.js"},"./scientific/readers/x3p":{"types":"./dist/scientific/readers/x3p.d.ts","import":"./dist/scientific/readers/x3p.js","default":"./dist/scientific/readers/x3p.js"},"./geo/conventions/geozarr":{"types":"./dist/geo/conventions/geozarr/index.d.ts","import":"./dist/geo/conventions/geozarr/index.js","default":"./dist/geo/conventions/geozarr/index.js"},"./scientific/readers/emsa":{"types":"./dist/scientific/readers/emsa.d.ts","import":"./dist/scientific/readers/emsa.js","default":"./dist/scientific/readers/emsa.js"},"./scientific/readers/envi":{"types":"./dist/scientific/readers/envi.d.ts","import":"./dist/scientific/readers/envi.js","default":"./dist/scientific/readers/envi.js"},"./scientific/readers/fits":{"types":"./dist/scientific/readers/fits.d.ts","import":"./dist/scientific/readers/fits.js","default":"./dist/scientific/readers/fits.js"},"./scientific/readers/jpeg":{"types":"./dist/scientific/readers/jpeg.d.ts","import":"./dist/scientific/readers/jpeg.js","default":"./dist/scientific/readers/jpeg.js"},"./scientific/readers/nrrd":{"types":"./dist/scientific/readers/nrrd.d.ts","import":"./dist/scientific/readers/nrrd.js","default":"./dist/scientific/readers/nrrd.js"},"./scientific/readers/tiff":{"types":"./dist/scientific/readers/tiff.d.ts","import":"./dist/scientific/readers/tiff.js","default":"./dist/scientific/readers/tiff.js"},"./scientific/readers/webp":{"types":"./dist/scientific/readers/webp.d.ts","import":"./dist/scientific/readers/webp.js","default":"./dist/scientific/readers/webp.js"},"./codecs/experimental/heic":{"types":"./dist/codec-entries/experimental/heic.d.ts","import":"./dist/codec-entries/experimental/heic.js","default":"./dist/codec-entries/experimental/heic.js"},"./geo/readers/geozarr/node":{"types":"./dist/geo/readers/geozarr/node.d.ts","import":"./dist/geo/readers/geozarr/node.js","default":"./dist/geo/readers/geozarr/node.js"},"./scientific/readers/dicom":{"types":"./dist/scientific/readers/dicom.d.ts","import":"./dist/scientific/readers/dicom.js","default":"./dist/scientific/readers/dicom.js"},"./scientific/readers/nifti":{"types":"./dist/scientific/readers/nifti.d.ts","import":"./dist/scientific/readers/nifti.js","default":"./dist/scientific/readers/nifti.js"},"./scientific/readers/tia-emi":{"types":"./dist/scientific/readers/tia-emi.d.ts","import":"./dist/scientific/readers/tia-emi.js","default":"./dist/scientific/readers/tia-emi.js"},"./scientific/readers/tia-ser":{"types":"./dist/scientific/readers/tia-ser.d.ts","import":"./dist/scientific/readers/tia-ser.js","default":"./dist/scientific/readers/tia-ser.js"},"./geo/readers/esri-ascii-grid":{"types":"./dist/geo/readers/esri-ascii-grid.d.ts","import":"./dist/geo/readers/esri-ascii-grid.js","default":"./dist/geo/readers/esri-ascii-grid.js"},"./geo/readers/world-file/node":{"types":"./dist/geo/readers/world-file-node.d.ts","import":"./dist/geo/readers/world-file-node.js","default":"./dist/geo/readers/world-file-node.js"},"./scientific/readers/ncem-emd":{"types":"./dist/scientific/readers/ncem-emd.d.ts","import":"./dist/scientific/readers/ncem-emd.js","default":"./dist/scientific/readers/ncem-emd.js"},"./scientific/readers/ome-tiff":{"types":"./dist/scientific/readers/ome-tiff.d.ts","import":"./dist/scientific/readers/ome-tiff.js","default":"./dist/scientific/readers/ome-tiff.js"},"./scientific/readers/ome-zarr":{"types":"./dist/scientific/readers/ome-zarr.d.ts","import":"./dist/scientific/readers/ome-zarr.js","default":"./dist/scientific/readers/ome-zarr.js"},"./scientific/readers/blockfile":{"types":"./dist/scientific/readers/blockfile.d.ts","import":"./dist/scientific/readers/blockfile.js","default":"./dist/scientific/readers/blockfile.js"},"./scientific/readers/ebsd-text":{"types":"./dist/scientific/readers/ebsd-text.d.ts","import":"./dist/scientific/readers/ebsd-text.js","default":"./dist/scientific/readers/ebsd-text.js"},"./scientific/readers/velox-emd":{"types":"./dist/scientific/readers/velox-emd.d.ts","import":"./dist/scientific/readers/velox-emd.js","default":"./dist/scientific/readers/velox-emd.js"},"./scientific/readers/aperio-svs":{"types":"./dist/scientific/readers/aperio-svs.d.ts","import":"./dist/scientific/readers/aperio-svs.js","default":"./dist/scientific/readers/aperio-svs.js"},"./scientific/readers/meta-image":{"types":"./dist/scientific/readers/meta-image.d.ts","import":"./dist/scientific/readers/meta-image.js","default":"./dist/scientific/readers/meta-image.js"},"./scientific/readers/nanonis-sxm":{"types":"./dist/scientific/readers/nanonis-sxm.d.ts","import":"./dist/scientific/readers/nanonis-sxm.js","default":"./dist/scientific/readers/nanonis-sxm.js"},"./scientific/readers/digital-surf":{"types":"./dist/scientific/readers/digital-surf.d.ts","import":"./dist/scientific/readers/digital-surf.js","default":"./dist/scientific/readers/digital-surf.js"},"./scientific/readers/igor-binary-wave":{"types":"./dist/scientific/readers/igor-binary-wave.d.ts","import":"./dist/scientific/readers/igor-binary-wave.js","default":"./dist/scientific/readers/igor-binary-wave.js"},"./scientific/readers/digital-micrograph":{"types":"./dist/scientific/readers/digital-micrograph.d.ts","import":"./dist/scientific/readers/digital-micrograph.js","default":"./dist/scientific/readers/digital-micrograph.js"}},"scripts":{"lint":"biome lint .","size":"npm run build && node scripts/measure-bundle-size.ts && npm run package-metrics:generate && node scripts/measure-bundle-size.ts && npm run package-metrics:generate","test":"vitest run","bench":"node benchmark/run.ts","build":"node scripts/clean-dist.ts && tsc -p tsconfig.build.json && node scripts/copy-wasm-artifacts.ts","check":"npm run capabilities:check && npm run bench:geo:check && npm run comparison:check && npm run analysis:api:check && npm run size:check && npm run package-metrics:check && npm run documentation:check && npm run docs:build && npm run typecheck && npm run package:types && npm run profile:example:check && npm run platform:example:check && npm run browser:check && npm run lint && npm run format:check && npm run dicom:dictionary:check && npm test","format":"biome format --write .","prepack":"npm run check","docs:dev":"astro dev --root docs-astro","bench:bmp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile bmp","bench:geo":"node benchmark/geo/run.ts","bench:ico":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile ico","typecheck":"tsc --noEmit","bench:heif":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif","bench:jimp":"node benchmark/run.ts --engines jimp","bench:tiff":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile tiff","bench:webp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile webp","bench:zstd":"node --expose-gc benchmark/scripts/run-zstd.ts","docs:build":"node scripts/build-docs-site.ts","size:check":"npm run build && node scripts/measure-bundle-size.ts --check","test:watch":"vitest","bench:smoke":"node benchmark/run.ts --engines jimp --profile smoke --runs 1 --warmups 0","browser:test":"playwright test","docs:preview":"astro preview --root docs-astro","fixtures:ico":"node benchmark/ico/verify-corpus.ts","format:check":"biome format .","fuzz:release":"PUREJSIMAGE_FUZZ_RELEASE=1 PUREJSIMAGE_FUZZ_CASES=512 PUREJSIMAGE_FUZZ_SEED=1592598566 PUREJSIMAGE_FUZZ_CRASH_DIR=artifacts/fuzz-crashes vitest run tests/corruption-fuzz.test.ts","bench:avif:b2":"node --expose-gc benchmark/avif/run-b2.ts","browser:bench":"PUREJSIMAGE_WRITE_BROWSER_BENCHMARK=1 playwright test browser-tests/benchmark.pw.ts --project=chromium","browser:check":"tsc -p tsconfig.browser.json && node scripts/check-browser-build.ts","corpus:imazen":"node scripts/validate-imazen-corpus.ts","fixtures:avif":"node benchmark/avif/prepare-corpus.ts","fixtures:hdf5":"node benchmark/hdf5/verify-corpus.ts","fixtures:heif":"node benchmark/heif/verify-corpus.ts && node benchmark/heif/compatibility/verify.ts","fixtures:jpeg":"node benchmark/jpeg/verify-corpus.ts && vitest run tests/jpeg-reference-fixtures.test.ts tests/jpeg-reference-parity.test.ts","package:types":"node scripts/check-package-types.ts","bench:bmp:jimp":"node benchmark/run.ts --engines jimp --profile bmp","bench:png:wasm":"node benchmark/png/run-wasm.ts","wasm:build:png":"node scripts/build-wasm-png.ts","bench:geo:check":"node benchmark/geo/run.ts","bench:geo:write":"node benchmark/geo/run.ts --write && biome format --write benchmark/generated/geo-benchmark.json","bench:heif:cold":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 0","bench:heif:warm":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 1","bench:hillclimb":"node benchmark/hillclimb/run.ts","bench:jpeg:wasm":"npm run build && node benchmark/jpeg/run-wasm-decoder.ts","bench:tiff:jimp":"node benchmark/run.ts --engines jimp --profile tiff","compat:ome-zarr":"node benchmark/ome-zarr/run-compatibility.ts","corpus:exercise":"node scripts/exercise-corpus.ts","fixtures:verify":"node benchmark/scripts/verify-corpus.ts","results:combine":"node benchmark/scripts/combine-results.ts","wasm:build:jpeg":"node scripts/build-wasm-jpeg.ts","bench:lambda:run":"node benchmark/aws-lambda/run.ts","bench:transforms":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile transforms","bench:web-codecs":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm,jimp,sharp,sharp-single-thread,image-js,jsquash --profile web-codecs","comparison:check":"node scripts/render-library-comparison.ts --check","fixtures:prepare":"node benchmark/scripts/prepare-corpus.ts","fixtures:tia-emi":"node benchmark/tia-ser/verify-emi-corpus.ts","fixtures:tia-ser":"node benchmark/tia-ser/verify-corpus.ts","bench:avif:imazen":"node benchmark/avif/run-imazen-compatibility-survey.ts","bench:avif:memory":"node benchmark/avif/run-memory.ts","bench:competitors":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm,jimp,sharp,sharp-single-thread,image-js,jsquash --profile competitors","bench:jpeg:encode":"npm run build && node --expose-gc benchmark/jpeg/encode-probe.ts","bench:viewers:cog":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=cog playwright test -c playwright.viewers.config.ts --project=chromium","fixtures:jpeg2000":"node benchmark/jpeg2000/verify-corpus.ts","fixtures:ncem-emd":"node benchmark/ncem-emd/verify-corpus.ts","analysis:api:check":"node scripts/check-analysis-api-manifest.ts","bench:avif:inspect":"node benchmark/avif/inspect-bitstreams.ts","bench:cog:viewport":"node benchmark/cog/run-viewport.ts","bench:jpeg2000:rss":"node benchmark/jpeg2000/run-rss.ts","bench:small-codecs":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile small-codecs","capabilities:check":"node scripts/render-capabilities.ts --check && node scripts/render-tiff-cog-support.ts --check && node scripts/render-geo-capabilities.ts --check","corpus:tiff:matrix":"node scripts/analyze-tiff-dependencies.ts","fixtures:avif:imir":"node benchmark/avif/verify-mirror-fixtures.ts","fixtures:velox-emd":"node benchmark/velox-emd/verify-corpus.ts","bench:jpegxl:memory":"node benchmark/jpegxl/run-memory.ts","bench:lambda:assets":"npm run build && npm run fixtures:prepare -- tundra-4000x3000 rgba-gradient-4000x3000 && node benchmark/aws-lambda/build-assets.ts","bench:lambda:deploy":"npm run bench:lambda:assets && node benchmark/aws-lambda/stage-assets.ts && cdk deploy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --require-approval never --method direct","bench:results:index":"node benchmark/scripts/build-result-index.ts","bench:stable-codecs":"npm run build && node benchmark/stable-codecs/run.ts","bench:viewers:smoke":"npm run bench:viewers:prepare && playwright test -c playwright.viewers.config.ts --project=chromium","comparison:generate":"node scripts/render-library-comparison.ts","documentation:check":"npm run benchmark:public:check && node scripts/render-documentation.ts --check","documentation:write":"npm run benchmark:public:write && node scripts/render-documentation.ts --write && biome format --write docs-astro/src/data/documentation-data.json","fixtures:avif:alpha":"node benchmark/avif/verify-auxiliary-fixtures.ts","fixtures:avif:color":"node benchmark/avif/verify-color-fixtures.ts","fixtures:avif:tiles":"node benchmark/avif/verify-tiled-lossless-fixture.ts && node benchmark/avif/verify-lossy-multitile-fixture.ts","bench:analysis:tiles":"node benchmark/scientific/run-tile-runtime.ts","bench:avif:reference":"node benchmark/avif/run-reference.ts","bench:lambda:destroy":"cdk destroy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --force && node benchmark/aws-lambda/stage-assets.ts --cleanup","bench:viewers:charts":"node benchmark/viewers/render-charts.ts","fixtures:cbf:prepare":"node benchmark/cbf/prepare-compatibility-sample.ts","fixtures:cog:prepare":"node scripts/generate-cog-fixtures.ts && biome format --write tests/fixtures/cog/manifest.json","fixtures:mrc:prepare":"node benchmark/mrc/prepare-official-sample.ts","fixtures:tiff:encode":"npm run build && node benchmark/scripts/verify-tiff-encode.ts","analysis:api:generate":"node scripts/check-analysis-api-manifest.ts --write","bench:jpeg:region-rss":"node benchmark/jpeg/run-region-rss.ts","bench:jpeg:upsampling":"node benchmark/jpeg/run-upsampling.ts","bench:scientific:full":"node benchmark/scientific-readers/run.ts --profile full --runs 3 --warmups 1","bench:viewers:prepare":"npm install --prefix benchmark/viewers --ignore-scripts --no-fund --no-audit","bench:viewers:volumes":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=volumes playwright test -c playwright.viewers.config.ts --project=chromium","capabilities:generate":"node scripts/render-capabilities.ts && node scripts/render-tiff-cog-support.ts && node scripts/render-geo-capabilities.ts && biome format --write docs-astro/public/capabilities.json docs-astro/public/geo-capabilities.json docs-astro/src/data/geo-capabilities.json tests/generated/capability-expectations.json tests/generated/geo-capability-expectations.json","fixtures:avif:intrabc":"node benchmark/avif/verify-intrabc-fixture.ts","fixtures:avif:layered":"node benchmark/avif/verify-layered-fixture.ts","fixtures:avif:qmatrix":"node benchmark/avif/verify-qmatrix-fixtures.ts","fixtures:hdf5:prepare":"node benchmark/hdf5/prepare-corpus.ts","fixtures:heif:prepare":"node benchmark/heif/compatibility/prepare.ts","fixtures:jpeg:prepare":"node benchmark/jpeg/prepare-reference-fixtures.ts","fixtures:small-codecs":"node benchmark/small-codecs/prepare-benchmark-corpus.ts","package-metrics:check":"node scripts/render-package-metrics.ts --check","profile:example:check":"node scripts/check-external-tiff-profile.ts && tsc -p examples/tiff-profile-leica/tsconfig.json","bench:jpeg:progressive":"npm run build && node benchmark/jpeg/run-progressive-encode.ts","bench:jpeg:scaled-idct":"node benchmark/jpeg/run-scaled-idct.ts","bench:jpeg:wasm:encode":"npm run build && node benchmark/jpeg/run-wasm-encoder.ts","bench:scientific:range":"node benchmark/scientific-readers/run.ts --profile range --runs 3 --warmups 1","bench:scientific:smoke":"node benchmark/scientific-readers/run.ts --profile smoke --runs 1 --warmups 0","bench:viewers:ome-tiff":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=ome-tiff playwright test -c playwright.viewers.config.ts --project=chromium","benchmark:public:check":"node scripts/render-public-benchmark-results.ts --check","benchmark:public:write":"node scripts/render-public-benchmark-results.ts --write","dicom:dictionary:check":"node scripts/dicom/generate-dictionary.ts --check","fixtures:avif:high-bit":"node benchmark/avif/verify-high-bit-expanded-fixtures.ts","fixtures:avif:superres":"node benchmark/avif/verify-superres-fixture.ts","platform:example:check":"node scripts/check-external-application-platform.ts && tsc -p examples/scientific-application-platform/tsconfig.json","bench:web-codecs:charts":"node benchmark/scripts/render-competitor-charts.ts --profile web-codecs","corpus:tiff:competitors":"node scripts/compare-tiff-competitors.ts","fixtures:avif:auxiliary":"node benchmark/avif/verify-auxiliary-fixtures.ts","fixtures:jpegxl:prepare":"node benchmark/jpegxl/prepare-corpus.ts","bench:avif:compatibility":"node benchmark/avif/run-compatibility-survey.ts","bench:competitors:charts":"node benchmark/scripts/render-competitor-charts.ts","bench:scientific:scaling":"node benchmark/scientific-readers/run.ts --profile scaling --runs 9 --warmups 1 --timeout-ms 300000","bench:transforms:compare":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines jimp,purejsimage --profile transforms-comparable","demo:scientific:generate":"node scripts/generate-scientific-demo-data.ts","fixtures:avif:film-grain":"node benchmark/avif/verify-film-grain-fixture.ts","fixtures:avif:q0:prepare":"node benchmark/avif/prepare-q0-fixtures.ts","fixtures:tia-emi:prepare":"node benchmark/tia-ser/prepare-emi-corpus.ts","fixtures:tia-ser:prepare":"node benchmark/tia-ser/prepare-corpus.ts","package-metrics:generate":"node scripts/render-package-metrics.ts && biome format --write benchmark/generated/package-metrics.json docs-astro/src/data/package-metrics.json","bench:avif:imazen:prepare":"node benchmark/avif/prepare-imazen-compatibility-survey.ts","bench:avif:memory:scaling":"node benchmark/avif/run-memory-scaling.ts","bench:lambda:run:arm-wasm":"node benchmark/aws-lambda/run-arm-wasm.ts","bench:scientific:baseline":"node benchmark/scientific-readers/run.ts --profile baseline --runs 3 --warmups 1","bench:viewers:correctness":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=smoke playwright test -c playwright.viewers.config.ts --project=firefox --project=webkit","dicom:dictionary:generate":"node scripts/dicom/generate-dictionary.ts","fixtures:ncem-emd:prepare":"node benchmark/ncem-emd/prepare-corpus.ts","report:heif:compatibility":"node benchmark/heif/compatibility/run.ts --write","bench:application-platform":"node benchmark/scientific/run-application-platform.ts","fixtures:avif:imir:prepare":"node benchmark/avif/prepare-mirror-fixtures.ts","fixtures:avif:post-filters":"node benchmark/avif/verify-post-filters.ts","fixtures:avif:rows:prepare":"node benchmark/avif/prepare-row-fixture.ts","fixtures:avif:segmentation":"node benchmark/avif/verify-segmentation-fixture.ts","fixtures:tga:compatibility":"node benchmark/small-codecs/prepare-tga-compatibility.ts","fixtures:velox-emd:prepare":"node benchmark/velox-emd/prepare-corpus.ts","compat:ome-zarr:conformance":"node scripts/run-ome-zarr-conformance.ts","fixtures:avif:alpha:prepare":"node benchmark/avif/prepare-alpha-fixtures.ts","fixtures:avif:tiles:prepare":"node benchmark/avif/prepare-tiled-lossless-fixture.ts && node benchmark/avif/prepare-lossy-multitile-fixture.ts","fixtures:digital-micrograph":"node benchmark/digital-micrograph/verify-corpus.ts","bench:analysis:gaussian-blur":"node benchmark/scientific/run-analysis-gaussian-blur.ts","fixtures:avif:layered:prepare":"node benchmark/avif/prepare-dependent-layer-fixture.ts","fixtures:avif:qmatrix:prepare":"node benchmark/avif/prepare-qmatrix-fixtures.ts","bench:scientific:numeric-tiles":"node benchmark/scientific/run-numeric-tiles.ts","fixtures:avif:high-bit:prepare":"node benchmark/avif/prepare-high-bit-lossless-fixtures.ts && node benchmark/avif/prepare-high-bit-expanded-fixtures.ts","fixtures:avif:superres:prepare":"node benchmark/avif/prepare-superres-fixture.ts","bench:scientific:competitors:js":"node benchmark/scientific-readers/run-competitors.ts --profile smoke --runs 1 --warmups 0","fixtures:avif:auxiliary:prepare":"node benchmark/avif/prepare-auxiliary-fixtures.ts","fixtures:avif:nonstill-sequence":"node benchmark/avif/verify-nonstill-sequence-fixture.ts","fixtures:scientific-interchange":"node benchmark/scientific-interchange/verify-corpus.ts","bench:avif:compatibility:prepare":"node benchmark/avif/prepare-compatibility-survey.ts","fixtures:avif:film-grain:prepare":"node benchmark/avif/prepare-film-grain-fixture.ts","fixtures:avif:rows:alpha:prepare":"node benchmark/avif/prepare-row-alpha-fixture.ts","fixtures:avif:common-photo-syntax":"node benchmark/avif/verify-common-photo-syntax-fixtures.ts","fixtures:digital-micrograph:remote":"node benchmark/digital-micrograph/verify-semantic-corpus.ts","bench:analysis:connected-components":"node benchmark/scientific/run-connected-components.ts","fixtures:avif:still-picture-entropy":"node benchmark/avif/verify-still-picture-entropy-fixtures.ts","fixtures:digital-micrograph:prepare":"node benchmark/digital-micrograph/prepare-corpus.ts","bench:scientific:competitors:browser":"playwright test browser-tests/scientific-competitors.pw.ts --project=chromium","bench:scientific:competitors:prepare":"npm install --prefix benchmark/competitors-js --no-fund --no-audit && node benchmark/scientific-readers/prepare-competitors.ts","fixtures:avif:clean-aperture:prepare":"node benchmark/avif/prepare-clean-aperture-fixture.ts","bench:scientific:competitors:baseline":"node benchmark/scientific-readers/run-competitors.ts --profile baseline --runs 9 --warmups 1 --timeout-ms 300000","fixtures:scientific-interchange:prepare":"node benchmark/scientific-interchange/prepare-corpus.ts"},"_npmUser":{"name":"a-r-d","email":"aaron@ard.ninja"},"_resolved":"/Users/ard/projects/PureJsImage/purejsimage-0.16.0.tgz","overrides":{"image-js":{"skia-canvas":"0.0.0"}},"_integrity":"sha512-J+Zo3LIXnQOne7JUeO23aQCee/5wkSqppOa7PZbKj5+PeYYesZHeZi2QiJk9kkETNJXfwWvTnZpXU3QXdF+BCA==","repository":{"url":"git+https://github.com/a-r-d/PureJsImage.git","type":"git"},"_npmVersion":"11.13.0","description":"Portable image codecs and low-memory raster processing in strict TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jimp":"1.6.0","lerc":"^4.2.0","tiff":"7.1.3","astro":"^7.2.0","npyjs":"^1.2.0","pngjs":"7.0.0","react":"^19.2.8","sharp":"0.35.3","utif2":"4.1.0","bmp-ts":"^1.0.9","h5wasm":"^0.10.3","omggif":"1.0.10","vitest":"4.1.10","aws-cdk":"2.1135.1","esbuild":"0.28.1","geotiff":"^3.0.5","jpeg-js":"0.4.4","archiver":"8.0.0","image-js":"1.7.0","react-dom":"^19.2.8","constructs":"10.8.1","typescript":"7.0.2","@types/node":"26.1.2","aws-cdk-lib":"2.263.0","exif-parser":"0.1.12","@jsquash/png":"3.1.1","@types/pngjs":"6.0.5","@types/react":"^19.2.18","@deck.gl/core":"^9.3.10","@hms-dbmi/viv":"^0.22.1","@jsquash/avif":"^2.1.1","@jsquash/jpeg":"1.6.0","@jsquash/webp":"1.5.0","@types/omggif":"1.0.5","openseadragon":"^6.1.0","@astrojs/react":"^6.0.2","@biomejs/biome":"2.5.7","@niivue/niivue":"^0.69.0","@vivjs/loaders":"^0.22.1","@cogeotiff/core":"^9.5.0","@jsquash/resize":"2.1.1","@types/archiver":"8.0.0","nifti-reader-js":"^0.8.0","@astrojs/sitemap":"^3.7.3","@playwright/test":"1.62.1","@types/react-dom":"^19.2.4","image-dimensions":"2.5.1","@stacksjs/ts-avif":"0.1.3","@aws-sdk/client-s3":"3.1106.0","@itk-wasm/image-io":"^1.6.1","@cornerstonejs/core":"^5.8.1","@aws-sdk/client-lambda":"3.1106.0","@cornerstonejs/nifti-volume-loader":"^5.8.1"},"_npmOperationalInternal":{"tmp":"tmp/purejsimage_0.16.0_1787365892356_0.26085618113051723","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"purejsimage","version":"0.17.0","description":"Portable image codecs and low-memory raster processing in strict TypeScript","keywords":["image","image-codecs","image-processing","typescript","low-memory","zero-dependency","nodejs","browser","serverless","aws-lambda","jpeg","jpeg-xl","jpegxl","jpeg2000","jp2","png","webp","avif","bmp","tiff","gif","hdr","qoi","netpbm","tga","heif","heic","geotiff","netcdf","cf-conventions","ome-tiff","gsf","envi","fits","mrc","ccp4","cbf","imgcif","cryo-em","x-ray-diffraction","hyperspectral","afm","dicom","scientific-imaging","whole-slide-image"],"license":"MIT","author":{"name":"Aaron Decker"},"repository":{"type":"git","url":"git+https://github.com/a-r-d/PureJsImage.git"},"bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"homepage":"https://purejsimage.com/","type":"module","sideEffects":false,"main":"./dist/index.js","module":"./dist/index.js","browser":"./dist/browser.js","types":"./dist/index.d.ts","exports":{".":{"browser":"./dist/browser.js","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js","default":"./dist/browser.js"},"./tiff":{"types":"./dist/tiff/index.d.ts","import":"./dist/tiff/index.js","default":"./dist/tiff/index.js"},"./scientific":{"types":"./dist/scientific/index.d.ts","import":"./dist/scientific/index.js","default":"./dist/scientific/index.js"},"./scientific/node":{"types":"./dist/scientific/node.d.ts","import":"./dist/scientific/node.js","default":"./dist/scientific/node.js"},"./scientific/browser":{"types":"./dist/scientific/browser.d.ts","import":"./dist/scientific/browser.js","default":"./dist/scientific/browser.js"},"./scientific/readers/gsf":{"types":"./dist/scientific/readers/gsf.d.ts","import":"./dist/scientific/readers/gsf.js","default":"./dist/scientific/readers/gsf.js"},"./scientific/readers/envi":{"types":"./dist/scientific/readers/envi.d.ts","import":"./dist/scientific/readers/envi.js","default":"./dist/scientific/readers/envi.js"},"./scientific/readers/fits":{"types":"./dist/scientific/readers/fits.d.ts","import":"./dist/scientific/readers/fits.js","default":"./dist/scientific/readers/fits.js"},"./scientific/readers/mrc":{"types":"./dist/scientific/readers/mrc.d.ts","import":"./dist/scientific/readers/mrc.js","default":"./dist/scientific/readers/mrc.js"},"./scientific/readers/cbf":{"types":"./dist/scientific/readers/cbf.d.ts","import":"./dist/scientific/readers/cbf.js","default":"./dist/scientific/readers/cbf.js"},"./scientific/readers/dicom":{"types":"./dist/scientific/readers/dicom.d.ts","import":"./dist/scientific/readers/dicom.js","default":"./dist/scientific/readers/dicom.js"},"./scientific/readers/digital-micrograph":{"types":"./dist/scientific/readers/digital-micrograph.d.ts","import":"./dist/scientific/readers/digital-micrograph.js","default":"./dist/scientific/readers/digital-micrograph.js"},"./scientific/readers/digital-surf":{"types":"./dist/scientific/readers/digital-surf.d.ts","import":"./dist/scientific/readers/digital-surf.js","default":"./dist/scientific/readers/digital-surf.js"},"./scientific/readers/igor-binary-wave":{"types":"./dist/scientific/readers/igor-binary-wave.d.ts","import":"./dist/scientific/readers/igor-binary-wave.js","default":"./dist/scientific/readers/igor-binary-wave.js"},"./scientific/readers/nanonis-sxm":{"types":"./dist/scientific/readers/nanonis-sxm.d.ts","import":"./dist/scientific/readers/nanonis-sxm.js","default":"./dist/scientific/readers/nanonis-sxm.js"},"./scientific/readers/x3p":{"types":"./dist/scientific/readers/x3p.d.ts","import":"./dist/scientific/readers/x3p.js","default":"./dist/scientific/readers/x3p.js"},"./scientific/readers/rpl":{"types":"./dist/scientific/readers/rpl.d.ts","import":"./dist/scientific/readers/rpl.js","default":"./dist/scientific/readers/rpl.js"},"./scientific/readers/emsa":{"types":"./dist/scientific/readers/emsa.d.ts","import":"./dist/scientific/readers/emsa.js","default":"./dist/scientific/readers/emsa.js"},"./scientific/readers/nrrd":{"types":"./dist/scientific/readers/nrrd.d.ts","import":"./dist/scientific/readers/nrrd.js","default":"./dist/scientific/readers/nrrd.js"},"./scientific/readers/meta-image":{"types":"./dist/scientific/readers/meta-image.d.ts","import":"./dist/scientific/readers/meta-image.js","default":"./dist/scientific/readers/meta-image.js"},"./scientific/readers/nifti":{"types":"./dist/scientific/readers/nifti.d.ts","import":"./dist/scientific/readers/nifti.js","default":"./dist/scientific/readers/nifti.js"},"./scientific/readers/npy":{"types":"./dist/scientific/readers/npy.d.ts","import":"./dist/scientific/readers/npy.js","default":"./dist/scientific/readers/npy.js"},"./scientific/readers/blockfile":{"types":"./dist/scientific/readers/blockfile.d.ts","import":"./dist/scientific/readers/blockfile.js","default":"./dist/scientific/readers/blockfile.js"},"./scientific/readers/mib":{"types":"./dist/scientific/readers/mib.d.ts","import":"./dist/scientific/readers/mib.js","default":"./dist/scientific/readers/mib.js"},"./scientific/readers/ebsd-text":{"types":"./dist/scientific/readers/ebsd-text.d.ts","import":"./dist/scientific/readers/ebsd-text.js","default":"./dist/scientific/readers/ebsd-text.js"},"./scientific/readers/tia-ser":{"types":"./dist/scientific/readers/tia-ser.d.ts","import":"./dist/scientific/readers/tia-ser.js","default":"./dist/scientific/readers/tia-ser.js"},"./scientific/readers/tia-emi":{"types":"./dist/scientific/readers/tia-emi.d.ts","import":"./dist/scientific/readers/tia-emi.js","default":"./dist/scientific/readers/tia-emi.js"},"./scientific/readers/ncem-emd":{"types":"./dist/scientific/readers/ncem-emd.d.ts","import":"./dist/scientific/readers/ncem-emd.js","default":"./dist/scientific/readers/ncem-emd.js"},"./scientific/readers/velox-emd":{"types":"./dist/scientific/readers/velox-emd.d.ts","import":"./dist/scientific/readers/velox-emd.js","default":"./dist/scientific/readers/velox-emd.js"},"./scientific/readers/tiff":{"types":"./dist/scientific/readers/tiff.d.ts","import":"./dist/scientific/readers/tiff.js","default":"./dist/scientific/readers/tiff.js"},"./scientific/readers/ome-tiff":{"types":"./dist/scientific/readers/ome-tiff.d.ts","import":"./dist/scientific/readers/ome-tiff.js","default":"./dist/scientific/readers/ome-tiff.js"},"./scientific/readers/ome-zarr":{"types":"./dist/scientific/readers/ome-zarr.d.ts","import":"./dist/scientific/readers/ome-zarr.js","default":"./dist/scientific/readers/ome-zarr.js"},"./scientific/readers/aperio-svs":{"types":"./dist/scientific/readers/aperio-svs.d.ts","import":"./dist/scientific/readers/aperio-svs.js","default":"./dist/scientific/readers/aperio-svs.js"},"./scientific/readers/png":{"types":"./dist/scientific/readers/png.d.ts","import":"./dist/scientific/readers/png.js","default":"./dist/scientific/readers/png.js"},"./scientific/readers/jpeg":{"types":"./dist/scientific/readers/jpeg.d.ts","import":"./dist/scientific/readers/jpeg.js","default":"./dist/scientific/readers/jpeg.js"},"./scientific/readers/webp":{"types":"./dist/scientific/readers/webp.d.ts","import":"./dist/scientific/readers/webp.js","default":"./dist/scientific/readers/webp.js"},"./scientific/readers/bmp":{"types":"./dist/scientific/readers/bmp.d.ts","import":"./dist/scientific/readers/bmp.js","default":"./dist/scientific/readers/bmp.js"},"./scientific/readers/jp2":{"types":"./dist/scientific/readers/jp2.d.ts","import":"./dist/scientific/readers/jp2.js","default":"./dist/scientific/readers/jp2.js"},"./scientific/readers/all":{"types":"./dist/scientific/readers/all.d.ts","import":"./dist/scientific/readers/all.js","default":"./dist/scientific/readers/all.js"},"./geo":{"types":"./dist/geo/index.d.ts","import":"./dist/geo/index.js","default":"./dist/geo/index.js"},"./geo/browser":{"types":"./dist/geo/browser.d.ts","import":"./dist/geo/browser.js","default":"./dist/geo/browser.js"},"./geo/readers":{"types":"./dist/geo/readers/index.d.ts","import":"./dist/geo/readers/index.js","default":"./dist/geo/readers/index.js"},"./geo/readers/all":{"types":"./dist/geo/readers/all.d.ts","import":"./dist/geo/readers/all.js","default":"./dist/geo/readers/all.js"},"./geo/readers/geotiff":{"types":"./dist/geo/readers/geotiff.d.ts","import":"./dist/geo/readers/geotiff.js","default":"./dist/geo/readers/geotiff.js"},"./geo/readers/geozarr":{"types":"./dist/geo/readers/geozarr/index.d.ts","import":"./dist/geo/readers/geozarr/index.js","default":"./dist/geo/readers/geozarr/index.js"},"./geo/readers/geozarr/node":{"types":"./dist/geo/readers/geozarr/node.d.ts","import":"./dist/geo/readers/geozarr/node.js","default":"./dist/geo/readers/geozarr/node.js"},"./geo/readers/world-file":{"types":"./dist/geo/readers/world-file.d.ts","import":"./dist/geo/readers/world-file.js","default":"./dist/geo/readers/world-file.js"},"./geo/readers/world-file/node":{"types":"./dist/geo/readers/world-file-node.d.ts","import":"./dist/geo/readers/world-file-node.js","default":"./dist/geo/readers/world-file-node.js"},"./geo/readers/envi":{"types":"./dist/geo/readers/envi.d.ts","import":"./dist/geo/readers/envi.js","default":"./dist/geo/readers/envi.js"},"./geo/readers/esri-ascii-grid":{"types":"./dist/geo/readers/esri-ascii-grid.d.ts","import":"./dist/geo/readers/esri-ascii-grid.js","default":"./dist/geo/readers/esri-ascii-grid.js"},"./geo/readers/srtm-hgt":{"types":"./dist/geo/readers/srtm-hgt.d.ts","import":"./dist/geo/readers/srtm-hgt.js","default":"./dist/geo/readers/srtm-hgt.js"},"./geo/readers/netcdf":{"types":"./dist/geo/readers/netcdf.d.ts","import":"./dist/geo/readers/netcdf.js","default":"./dist/geo/readers/netcdf.js"},"./geo/conventions/geozarr":{"types":"./dist/geo/conventions/geozarr/index.d.ts","import":"./dist/geo/conventions/geozarr/index.js","default":"./dist/geo/conventions/geozarr/index.js"},"./operations":{"types":"./dist/operations/index.d.ts","import":"./dist/operations/index.js","default":"./dist/operations/index.js"},"./analysis":{"types":"./dist/analysis/index.d.ts","import":"./dist/analysis/index.js","default":"./dist/analysis/index.js"},"./analysis/results":{"types":"./dist/analysis/results.d.ts","import":"./dist/analysis/results.js","default":"./dist/analysis/results.js"},"./analysis/roi":{"types":"./dist/analysis/roi-entry.d.ts","import":"./dist/analysis/roi-entry.js","default":"./dist/analysis/roi-entry.js"},"./analysis/runtime":{"types":"./dist/analysis/runtime.d.ts","import":"./dist/analysis/runtime.js","default":"./dist/analysis/runtime.js"},"./analysis/project":{"types":"./dist/analysis/project-entry.d.ts","import":"./dist/analysis/project-entry.js","default":"./dist/analysis/project-entry.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./pathology":{"types":"./dist/pathology/index.d.ts","import":"./dist/pathology/index.js","default":"./dist/pathology/index.js"},"./sources/http-range":{"types":"./dist/sources/http-range.d.ts","import":"./dist/sources/http-range.js","default":"./dist/sources/http-range.js"},"./compression/zstd":{"types":"./dist/compression/zstd/index.d.ts","import":"./dist/compression/zstd/index.js","default":"./dist/compression/zstd/index.js"},"./accelerators/wasm/jpeg":{"browser":"./dist/accelerator-entries/wasm-jpeg-browser.js","types":"./dist/accelerator-entries/wasm-jpeg-node.d.ts","node":"./dist/accelerator-entries/wasm-jpeg-node.js","import":"./dist/accelerator-entries/wasm-jpeg-node.js","default":"./dist/accelerator-entries/wasm-jpeg-node.js"},"./accelerators/wasm/png":{"browser":"./dist/accelerator-entries/wasm-png-browser.js","types":"./dist/accelerator-entries/wasm-png-node.d.ts","node":"./dist/accelerator-entries/wasm-png-node.js","import":"./dist/accelerator-entries/wasm-png-node.js","default":"./dist/accelerator-entries/wasm-png-node.js"},"./accelerators/wasm/webp":{"browser":"./dist/accelerator-entries/wasm-webp-browser.js","types":"./dist/accelerator-entries/wasm-webp-node.d.ts","node":"./dist/accelerator-entries/wasm-webp-node.js","import":"./dist/accelerator-entries/wasm-webp-node.js","default":"./dist/accelerator-entries/wasm-webp-node.js"},"./codecs/all":{"types":"./dist/codec-entries/all.d.ts","import":"./dist/codec-entries/all.js","default":"./dist/codec-entries/all.js"},"./codecs/web":{"types":"./dist/codec-entries/web.d.ts","import":"./dist/codec-entries/web.js","default":"./dist/codec-entries/web.js"},"./codecs/avif":{"types":"./dist/codec-entries/avif.d.ts","import":"./dist/codec-entries/avif.js","default":"./dist/codec-entries/avif.js"},"./codecs/bmp":{"types":"./dist/codec-entries/bmp.d.ts","import":"./dist/codec-entries/bmp.js","default":"./dist/codec-entries/bmp.js"},"./codecs/hdr":{"types":"./dist/codec-entries/hdr.d.ts","import":"./dist/codec-entries/hdr.js","default":"./dist/codec-entries/hdr.js"},"./codecs/gif":{"types":"./dist/codec-entries/gif.d.ts","import":"./dist/codec-entries/gif.js","default":"./dist/codec-entries/gif.js"},"./codecs/experimental/heic":{"types":"./dist/codec-entries/experimental/heic.d.ts","import":"./dist/codec-entries/experimental/heic.js","default":"./dist/codec-entries/experimental/heic.js"},"./codecs/ico":{"types":"./dist/codec-entries/ico.d.ts","import":"./dist/codec-entries/ico.js","default":"./dist/codec-entries/ico.js"},"./codecs/jpeg":{"types":"./dist/codec-entries/jpeg.d.ts","import":"./dist/codec-entries/jpeg.js","default":"./dist/codec-entries/jpeg.js"},"./codecs/jpeg2000":{"types":"./dist/codec-entries/jpeg2000.d.ts","import":"./dist/codec-entries/jpeg2000.js","default":"./dist/codec-entries/jpeg2000.js"},"./codecs/jpegxl":{"types":"./dist/codec-entries/jpegxl.d.ts","import":"./dist/codec-entries/jpegxl.js","default":"./dist/codec-entries/jpegxl.js"},"./codecs/netpbm":{"types":"./dist/codec-entries/netpbm.d.ts","import":"./dist/codec-entries/netpbm.js","default":"./dist/codec-entries/netpbm.js"},"./codecs/png":{"types":"./dist/codec-entries/png.d.ts","import":"./dist/codec-entries/png.js","default":"./dist/codec-entries/png.js"},"./codecs/qoi":{"types":"./dist/codec-entries/qoi.d.ts","import":"./dist/codec-entries/qoi.js","default":"./dist/codec-entries/qoi.js"},"./codecs/tiff":{"types":"./dist/codec-entries/tiff.d.ts","import":"./dist/codec-entries/tiff.js","default":"./dist/codec-entries/tiff.js"},"./codecs/tga":{"types":"./dist/codec-entries/tga.d.ts","import":"./dist/codec-entries/tga.js","default":"./dist/codec-entries/tga.js"},"./codecs/webp":{"types":"./dist/codec-entries/webp.d.ts","import":"./dist/codec-entries/webp.js","default":"./dist/codec-entries/webp.js"}},"publishConfig":{"access":"public"},"engines":{"node":">=22"},"scripts":{"check":"npm run capabilities:check && npm run bench:geo:check && npm run comparison:check && npm run analysis:api:check && npm run size:check && npm run package-metrics:check && npm run documentation:check && npm run docs:build && npm run typecheck && npm run package:types && npm run profile:example:check && npm run platform:example:check && npm run browser:check && npm run lint && npm run format:check && npm run dicom:dictionary:check && npm test","build":"node scripts/clean-dist.ts && tsc -p tsconfig.build.json && node scripts/copy-wasm-artifacts.ts","browser:check":"tsc -p tsconfig.browser.json && node scripts/check-browser-build.ts","package:types":"node scripts/check-package-types.ts","profile:example:check":"node scripts/check-external-tiff-profile.ts && tsc -p examples/tiff-profile-leica/tsconfig.json","platform:example:check":"node scripts/check-external-application-platform.ts && tsc -p examples/scientific-application-platform/tsconfig.json","browser:test":"playwright test","browser:bench":"PUREJSIMAGE_WRITE_BROWSER_BENCHMARK=1 playwright test browser-tests/benchmark.pw.ts --project=chromium","bench:geo":"node benchmark/geo/run.ts","bench:geo:check":"node benchmark/geo/run.ts","bench:geo:write":"node benchmark/geo/run.ts --write && biome format --write benchmark/generated/geo-benchmark.json","wasm:build:jpeg":"node scripts/build-wasm-jpeg.ts","wasm:build:png":"node scripts/build-wasm-png.ts","wasm:build:webp":"node scripts/build-wasm-webp.ts","typecheck":"tsc --noEmit","lint":"biome lint .","format":"biome format --write .","format:check":"biome format .","capabilities:generate":"node scripts/render-capabilities.ts && node scripts/render-tiff-cog-support.ts && node scripts/render-geo-capabilities.ts && biome format --write docs-astro/public/capabilities.json docs-astro/public/geo-capabilities.json docs-astro/src/data/geo-capabilities.json tests/generated/capability-expectations.json tests/generated/geo-capability-expectations.json","capabilities:check":"node scripts/render-capabilities.ts --check && node scripts/render-tiff-cog-support.ts --check && node scripts/render-geo-capabilities.ts --check","comparison:generate":"node scripts/render-library-comparison.ts","comparison:check":"node scripts/render-library-comparison.ts --check","analysis:api:generate":"node scripts/check-analysis-api-manifest.ts --write","analysis:api:check":"node scripts/check-analysis-api-manifest.ts","package-metrics:generate":"node scripts/render-package-metrics.ts && biome format --write benchmark/generated/package-metrics.json docs-astro/src/data/package-metrics.json","package-metrics:check":"node scripts/render-package-metrics.ts --check","benchmark:public:write":"node scripts/render-public-benchmark-results.ts --write","benchmark:public:check":"node scripts/render-public-benchmark-results.ts --check","documentation:write":"npm run benchmark:public:write && node scripts/render-documentation.ts --write && biome format --write docs-astro/src/data/documentation-data.json","documentation:check":"npm run benchmark:public:check && node scripts/render-documentation.ts --check","docs:dev":"astro dev --root docs-astro","docs:build":"node scripts/build-docs-site.ts","docs:preview":"astro preview --root docs-astro","indexnow:prepare":"node scripts/indexnow.ts prepare","indexnow:submit":"node scripts/indexnow.ts submit","demo:scientific:generate":"node scripts/generate-scientific-demo-data.ts","dicom:dictionary:generate":"node scripts/dicom/generate-dictionary.ts","dicom:dictionary:check":"node scripts/dicom/generate-dictionary.ts --check","size":"npm run build && node scripts/measure-bundle-size.ts && npm run package-metrics:generate && node scripts/measure-bundle-size.ts && npm run package-metrics:generate","size:check":"npm run build && node scripts/measure-bundle-size.ts --check","test":"vitest run","test:watch":"vitest","prepack":"npm run check","fixtures:prepare":"node benchmark/scripts/prepare-corpus.ts","fixtures:cog:prepare":"node scripts/generate-cog-fixtures.ts && biome format --write tests/fixtures/cog/manifest.json","fixtures:verify":"node benchmark/scripts/verify-corpus.ts","fixtures:digital-micrograph":"node benchmark/digital-micrograph/verify-corpus.ts","fixtures:digital-micrograph:prepare":"node benchmark/digital-micrograph/prepare-corpus.ts","fixtures:digital-micrograph:remote":"node benchmark/digital-micrograph/verify-semantic-corpus.ts","fixtures:tia-ser":"node benchmark/tia-ser/verify-corpus.ts","fixtures:scientific-interchange":"node benchmark/scientific-interchange/verify-corpus.ts","fixtures:scientific-interchange:prepare":"node benchmark/scientific-interchange/prepare-corpus.ts","fixtures:tia-ser:prepare":"node benchmark/tia-ser/prepare-corpus.ts","fixtures:tia-emi":"node benchmark/tia-ser/verify-emi-corpus.ts","fixtures:tia-emi:prepare":"node benchmark/tia-ser/prepare-emi-corpus.ts","fixtures:hdf5":"node benchmark/hdf5/verify-corpus.ts","fixtures:hdf5:prepare":"node benchmark/hdf5/prepare-corpus.ts","fixtures:ncem-emd":"node benchmark/ncem-emd/verify-corpus.ts","fixtures:ncem-emd:prepare":"node benchmark/ncem-emd/prepare-corpus.ts","fixtures:velox-emd":"node benchmark/velox-emd/verify-corpus.ts","fixtures:velox-emd:prepare":"node benchmark/velox-emd/prepare-corpus.ts","fixtures:avif":"node benchmark/avif/prepare-corpus.ts","fixtures:avif:alpha":"node benchmark/avif/verify-auxiliary-fixtures.ts","fixtures:avif:alpha:prepare":"node benchmark/avif/prepare-alpha-fixtures.ts","fixtures:avif:auxiliary":"node benchmark/avif/verify-auxiliary-fixtures.ts","fixtures:avif:auxiliary:prepare":"node benchmark/avif/prepare-auxiliary-fixtures.ts","fixtures:avif:color":"node benchmark/avif/verify-color-fixtures.ts","fixtures:avif:clean-aperture:prepare":"node benchmark/avif/prepare-clean-aperture-fixture.ts","fixtures:avif:q0:prepare":"node benchmark/avif/prepare-q0-fixtures.ts","fixtures:avif:rows:prepare":"node benchmark/avif/prepare-row-fixture.ts","fixtures:avif:rows:alpha:prepare":"node benchmark/avif/prepare-row-alpha-fixture.ts","fixtures:avif:high-bit":"node benchmark/avif/verify-high-bit-expanded-fixtures.ts","fixtures:avif:high-bit:prepare":"node benchmark/avif/prepare-high-bit-lossless-fixtures.ts && node benchmark/avif/prepare-high-bit-expanded-fixtures.ts","fixtures:avif:tiles":"node benchmark/avif/verify-tiled-lossless-fixture.ts && node benchmark/avif/verify-lossy-multitile-fixture.ts","fixtures:avif:tiles:prepare":"node benchmark/avif/prepare-tiled-lossless-fixture.ts && node benchmark/avif/prepare-lossy-multitile-fixture.ts","fixtures:avif:superres":"node benchmark/avif/verify-superres-fixture.ts","fixtures:avif:superres:prepare":"node benchmark/avif/prepare-superres-fixture.ts","fixtures:avif:film-grain":"node benchmark/avif/verify-film-grain-fixture.ts","fixtures:avif:film-grain:prepare":"node benchmark/avif/prepare-film-grain-fixture.ts","fixtures:avif:intrabc":"node benchmark/avif/verify-intrabc-fixture.ts","fixtures:avif:imir":"node benchmark/avif/verify-mirror-fixtures.ts","fixtures:avif:imir:prepare":"node benchmark/avif/prepare-mirror-fixtures.ts","fixtures:avif:common-photo-syntax":"node benchmark/avif/verify-common-photo-syntax-fixtures.ts","fixtures:avif:nonstill-sequence":"node benchmark/avif/verify-nonstill-sequence-fixture.ts","fixtures:avif:still-picture-entropy":"node benchmark/avif/verify-still-picture-entropy-fixtures.ts","fixtures:avif:layered":"node benchmark/avif/verify-layered-fixture.ts","fixtures:avif:layered:prepare":"node benchmark/avif/prepare-dependent-layer-fixture.ts","fixtures:avif:post-filters":"node benchmark/avif/verify-post-filters.ts","fixtures:avif:qmatrix":"node benchmark/avif/verify-qmatrix-fixtures.ts","fixtures:avif:segmentation":"node benchmark/avif/verify-segmentation-fixture.ts","fixtures:avif:qmatrix:prepare":"node benchmark/avif/prepare-qmatrix-fixtures.ts","fixtures:heif:prepare":"node benchmark/heif/compatibility/prepare.ts","fixtures:heif":"node benchmark/heif/verify-corpus.ts && node benchmark/heif/compatibility/verify.ts","fixtures:ico":"node benchmark/ico/verify-corpus.ts","fixtures:jpeg":"node benchmark/jpeg/verify-corpus.ts && vitest run tests/jpeg-reference-fixtures.test.ts tests/jpeg-reference-parity.test.ts","fixtures:jpeg:prepare":"node benchmark/jpeg/prepare-reference-fixtures.ts","fixtures:jpeg2000":"node benchmark/jpeg2000/verify-corpus.ts","fixtures:jpegxl:prepare":"node benchmark/jpegxl/prepare-corpus.ts","fixtures:mrc:prepare":"node benchmark/mrc/prepare-official-sample.ts","fixtures:cbf:prepare":"node benchmark/cbf/prepare-compatibility-sample.ts","fixtures:tiff:encode":"npm run build && node benchmark/scripts/verify-tiff-encode.ts","fixtures:small-codecs":"node benchmark/small-codecs/prepare-benchmark-corpus.ts","fixtures:tga:compatibility":"node benchmark/small-codecs/prepare-tga-compatibility.ts","fuzz:release":"PUREJSIMAGE_FUZZ_RELEASE=1 PUREJSIMAGE_FUZZ_CASES=512 PUREJSIMAGE_FUZZ_SEED=1592598566 PUREJSIMAGE_FUZZ_CRASH_DIR=artifacts/fuzz-crashes vitest run tests/corruption-fuzz.test.ts","corpus:exercise":"node scripts/exercise-corpus.ts","corpus:imazen":"node scripts/validate-imazen-corpus.ts","corpus:imazen:wasm":"node scripts/validate-webp-wasm-corpus.ts","corpus:imazen:jpeg-wasm":"node scripts/validate-webp-wasm-corpus.ts --format jpeg","corpus:imazen:png-wasm":"node scripts/validate-webp-wasm-corpus.ts --format png","corpus:imazen:webp-wasm":"node scripts/validate-webp-wasm-corpus.ts","corpus:tiff:matrix":"node scripts/analyze-tiff-dependencies.ts","corpus:tiff:competitors":"node scripts/compare-tiff-competitors.ts","results:combine":"node benchmark/scripts/combine-results.ts","bench":"node benchmark/run.ts","bench:jimp":"node benchmark/run.ts --engines jimp","bench:competitors":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm,jimp,sharp,sharp-single-thread,image-js,jsquash --profile competitors","bench:competitors:charts":"node benchmark/scripts/render-competitor-charts.ts","bench:web-codecs":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm,jimp,sharp,sharp-single-thread,image-js,jsquash --profile web-codecs","bench:web-codecs:charts":"node benchmark/scripts/render-competitor-charts.ts --profile web-codecs","bench:stable-codecs":"npm run build && node benchmark/stable-codecs/run.ts","bench:results:index":"node benchmark/scripts/build-result-index.ts","bench:hillclimb":"node benchmark/hillclimb/run.ts","bench:smoke":"node benchmark/run.ts --engines jimp --profile smoke --runs 1 --warmups 0","bench:bmp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile bmp","bench:bmp:jimp":"node benchmark/run.ts --engines jimp --profile bmp","bench:small-codecs":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile small-codecs","bench:tiff":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile tiff","bench:cog:viewport":"node benchmark/cog/run-viewport.ts","bench:tiff:jimp":"node benchmark/run.ts --engines jimp --profile tiff","bench:transforms":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile transforms","bench:transforms:compare":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines jimp,purejsimage --profile transforms-comparable","bench:webp":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile webp","bench:zstd":"node --expose-gc benchmark/scripts/run-zstd.ts","bench:scientific:numeric-tiles":"node benchmark/scientific/run-numeric-tiles.ts","compat:ome-zarr":"node benchmark/ome-zarr/run-compatibility.ts","compat:ome-zarr:conformance":"node scripts/run-ome-zarr-conformance.ts","bench:scientific:smoke":"node benchmark/scientific-readers/run.ts --profile smoke --runs 1 --warmups 0","bench:scientific:baseline":"node benchmark/scientific-readers/run.ts --profile baseline --runs 3 --warmups 1","bench:scientific:range":"node benchmark/scientific-readers/run.ts --profile range --runs 3 --warmups 1","bench:scientific:scaling":"node benchmark/scientific-readers/run.ts --profile scaling --runs 9 --warmups 1 --timeout-ms 300000","bench:scientific:full":"node benchmark/scientific-readers/run.ts --profile full --runs 3 --warmups 1","bench:scientific:competitors:prepare":"npm install --prefix benchmark/competitors-js --no-fund --no-audit && node benchmark/scientific-readers/prepare-competitors.ts","bench:scientific:competitors:js":"node benchmark/scientific-readers/run-competitors.ts --profile smoke --runs 1 --warmups 0","bench:scientific:competitors:baseline":"node benchmark/scientific-readers/run-competitors.ts --profile baseline --runs 9 --warmups 1 --timeout-ms 300000","bench:scientific:competitors:browser":"playwright test browser-tests/scientific-competitors.pw.ts --project=chromium","bench:viewers:prepare":"npm install --prefix benchmark/viewers --ignore-scripts --no-fund --no-audit","bench:viewers:smoke":"npm run bench:viewers:prepare && playwright test -c playwright.viewers.config.ts --project=chromium","bench:viewers:ome-tiff":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=ome-tiff playwright test -c playwright.viewers.config.ts --project=chromium","bench:viewers:volumes":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=volumes playwright test -c playwright.viewers.config.ts --project=chromium","bench:viewers:cog":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=cog playwright test -c playwright.viewers.config.ts --project=chromium","bench:viewers:correctness":"npm run bench:viewers:prepare && PUREJSIMAGE_VIEWER_PROFILE=smoke playwright test -c playwright.viewers.config.ts --project=firefox --project=webkit","bench:viewers:charts":"node benchmark/viewers/render-charts.ts","bench:analysis:tiles":"node benchmark/scientific/run-tile-runtime.ts","bench:analysis:gaussian-blur":"node benchmark/scientific/run-analysis-gaussian-blur.ts","bench:analysis:connected-components":"node benchmark/scientific/run-connected-components.ts","bench:application-platform":"node benchmark/scientific/run-application-platform.ts","bench:avif:inspect":"node benchmark/avif/inspect-bitstreams.ts","bench:avif:b2":"node --expose-gc benchmark/avif/run-b2.ts","bench:avif:memory":"node benchmark/avif/run-memory.ts","bench:avif:memory:scaling":"node benchmark/avif/run-memory-scaling.ts","bench:avif:compatibility":"node benchmark/avif/run-compatibility-survey.ts","bench:avif:compatibility:prepare":"node benchmark/avif/prepare-compatibility-survey.ts","bench:avif:imazen":"node benchmark/avif/run-imazen-compatibility-survey.ts","bench:avif:imazen:prepare":"node benchmark/avif/prepare-imazen-compatibility-survey.ts","bench:avif:reference":"node benchmark/avif/run-reference.ts","bench:jpegxl:memory":"node benchmark/jpegxl/run-memory.ts","bench:heif":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif","bench:heif:cold":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 0","bench:heif:warm":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage-experimental-heic --profile heif --runs 3 --warmups 1","report:heif:compatibility":"node benchmark/heif/compatibility/run.ts --write","bench:ico":"npm run build && PUREJSIMAGE_ENTRY=./dist/index.js node benchmark/run.ts --engines purejsimage --profile ico","bench:jpeg:encode":"npm run build && node --expose-gc benchmark/jpeg/encode-probe.ts","bench:jpeg:progressive":"npm run build && node benchmark/jpeg/run-progressive-encode.ts","bench:jpeg:scaled-idct":"node benchmark/jpeg/run-scaled-idct.ts","bench:jpeg:region-rss":"node benchmark/jpeg/run-region-rss.ts","bench:jpeg:upsampling":"node benchmark/jpeg/run-upsampling.ts","bench:jpeg:wasm":"npm run build && node benchmark/jpeg/run-wasm-decoder.ts","bench:jpeg:wasm:encode":"npm run build && node benchmark/jpeg/run-wasm-encoder.ts","bench:png:wasm":"node benchmark/png/run-wasm.ts","bench:webp:wasm":"npm run build && node benchmark/run.ts --engines purejsimage,purejsimage-wasm --profile webp","bench:jpeg2000:rss":"node benchmark/jpeg2000/run-rss.ts","bench:lambda:assets":"npm run build && npm run fixtures:prepare -- tundra-4000x3000 rgba-gradient-4000x3000 && node benchmark/aws-lambda/build-assets.ts","bench:lambda:deploy":"npm run bench:lambda:assets && node benchmark/aws-lambda/stage-assets.ts && cdk deploy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --require-approval never --method direct","bench:lambda:run":"node benchmark/aws-lambda/run.ts","bench:lambda:run:arm-wasm":"node benchmark/aws-lambda/run-arm-wasm.ts","bench:lambda:destroy":"cdk destroy --app \"node benchmark/aws-lambda/stack.ts\" PureJsImageLambdaBenchmark --force && node benchmark/aws-lambda/stage-assets.ts --cleanup"},"overrides":{"image-js":{"skia-canvas":"0.0.0"}},"devDependencies":{"@astrojs/react":"^6.0.2","@astrojs/sitemap":"^3.7.3","@aws-sdk/client-lambda":"3.1106.0","@aws-sdk/client-s3":"3.1106.0","@biomejs/biome":"2.5.7","@cogeotiff/core":"^9.5.0","@cornerstonejs/core":"^5.8.1","@cornerstonejs/nifti-volume-loader":"^5.8.1","@deck.gl/core":"^9.3.10","@hms-dbmi/viv":"^0.22.1","@itk-wasm/image-io":"^1.6.1","@jsquash/avif":"^2.1.1","@jsquash/jpeg":"1.6.0","@jsquash/png":"3.1.1","@jsquash/resize":"2.1.1","@jsquash/webp":"1.5.0","@niivue/niivue":"^0.69.0","@playwright/test":"1.62.1","@stacksjs/ts-avif":"0.1.3","@types/archiver":"8.0.0","@types/node":"26.1.2","@types/omggif":"1.0.5","@types/pngjs":"6.0.5","@types/react":"^19.2.18","@types/react-dom":"^19.2.4","@vivjs/loaders":"^0.22.1","archiver":"8.0.0","astro":"^7.2.0","aws-cdk":"2.1135.1","aws-cdk-lib":"2.263.0","bmp-ts":"^1.0.9","constructs":"10.8.1","esbuild":"0.28.1","exif-parser":"0.1.12","geotiff":"^3.0.5","h5wasm":"^0.10.3","image-dimensions":"2.5.1","image-js":"1.7.0","jimp":"1.6.0","jpeg-js":"0.4.4","lerc":"^4.2.0","nifti-reader-js":"^0.8.0","npyjs":"^1.2.0","omggif":"1.0.10","openseadragon":"^6.1.0","pngjs":"7.0.0","react":"^19.2.8","react-dom":"^19.2.8","sharp":"0.35.3","tiff":"7.1.3","typescript":"7.0.2","utif2":"4.1.0","vitest":"4.1.10"},"gitHead":"a54e64572e51e85cc194246a14edadf479698af7","_id":"purejsimage@0.17.0","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-u/A6tC4FYCRqL61QMAHiTEwKByh17txytXalgAjKhv84lFQfDNVaRc8H816dLqsTpm5MaEz9pd7UzHc0qaaJ8A==","shasum":"257830630ade3c28ab41b55a4e9179a9501b5b92","tarball":"https://registry.npmjs.org/purejsimage/-/purejsimage-0.17.0.tgz","fileCount":650,"unpackedSize":6657702,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFJtjcsEEM4LOadvuAFvBIKFidsg6syIxbIRSJ2VLsd1AiAekGkdTVSNgvAq+SyDV//7d4ndqBIEV4UqC1vSB8MvIw=="}]},"_npmUser":{"name":"a-r-d","email":"aaron@ard.ninja"},"directories":{},"maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/purejsimage_0.17.0_1787610742908_0.34037981592125277"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-07T06:09:53.008Z","modified":"2026-08-24T22:32:23.276Z","0.1.0":"2026-08-07T06:09:53.388Z","0.2.0":"2026-08-07T17:02:22.522Z","0.3.0":"2026-08-07T18:32:08.509Z","0.4.0":"2026-08-08T03:57:02.845Z","0.5.0":"2026-08-08T04:30:59.546Z","0.6.0":"2026-08-08T16:55:14.469Z","0.7.0":"2026-08-09T00:34:01.681Z","0.8.0":"2026-08-10T03:10:55.927Z","0.9.0":"2026-08-10T23:34:02.261Z","0.10.0":"2026-08-13T23:56:24.791Z","0.11.0":"2026-08-16T21:57:11.135Z","0.12.0":"2026-08-19T00:31:40.567Z","0.13.0":"2026-08-19T16:58:30.238Z","0.14.0":"2026-08-20T04:12:11.824Z","0.15.0":"2026-08-20T21:35:19.522Z","0.16.0":"2026-08-22T02:31:32.606Z","0.17.0":"2026-08-24T22:32:23.125Z"},"bugs":{"url":"https://github.com/a-r-d/PureJsImage/issues"},"author":{"name":"Aaron Decker"},"license":"MIT","homepage":"https://purejsimage.com/","keywords":["image","image-codecs","image-processing","typescript","low-memory","zero-dependency","nodejs","browser","serverless","aws-lambda","jpeg","jpeg-xl","jpegxl","jpeg2000","jp2","png","webp","avif","bmp","tiff","gif","hdr","qoi","netpbm","tga","heif","heic","geotiff","netcdf","cf-conventions","ome-tiff","gsf","envi","fits","mrc","ccp4","cbf","imgcif","cryo-em","x-ray-diffraction","hyperspectral","afm","dicom","scientific-imaging","whole-slide-image"],"repository":{"type":"git","url":"git+https://github.com/a-r-d/PureJsImage.git"},"description":"Portable image codecs and low-memory raster processing in strict TypeScript","maintainers":[{"name":"a-r-d","email":"aaron@ard.ninja"}],"readme":"<div align=\"center\">\n\n<img src=\"docs-astro/public/assets/readme/brand-mark.svg\" width=\"36\" height=\"36\" alt=\"PureJsImage 3-by-3 brand mark\">\n\n<h1>PureJsImage</h1>\n\n<p><strong font-size=\"font-size: 20px\">Zero-runtime-dependency image processing in strict TypeScript</strong></p>\n\n<p>Portable image codecs · native scientific rasters · optional explicit WASM acceleration</p>\n\n<p>\n  <a href=\"https://www.npmjs.com/package/purejsimage\"><img alt=\"npm version\" src=\"https://img.shields.io/npm/v/purejsimage?style=for-the-badge&amp;logo=npm&amp;logoColor=white&amp;color=cb3837\"></a>\n  <a href=\"https://github.com/a-r-d/PureJsImage/actions/workflows/ci.yml\"><img alt=\"CI status\" src=\"https://img.shields.io/github/actions/workflow/status/a-r-d/PureJsImage/ci.yml?branch=main&amp;style=for-the-badge&amp;logo=githubactions&amp;logoColor=white&amp;label=CI\"></a>\n  <a href=\"https://github.com/a-r-d/PureJsImage/blob/main/package.json\"><img alt=\"Zero runtime dependencies\" src=\"https://img.shields.io/badge/runtime_dependencies-0-2ea44f?style=for-the-badge\"></a>\n  <a href=\"https://github.com/a-r-d/PureJsImage/blob/main/LICENSE\"><img alt=\"MIT license\" src=\"https://img.shields.io/npm/l/purejsimage?style=for-the-badge&amp;color=blue\"></a>\n</p>\n\n<p>\n  <a href=\"https://purejsimage.com/\">Documentation</a> ·\n  <a href=\"https://purejsimage.com/demo/\"><strong>Image demo</strong></a> ·\n  <a href=\"https://purejsimage.com/scientific/\"><strong>Scientific explorer</strong></a> ·\n  <a href=\"https://purejsimage.com/wsi/\"><strong>Whole-slide demo</strong></a> ·\n  <a href=\"https://purejsimage.com/ome-zarr/\"><strong>OME-Zarr demo</strong></a> ·\n  <a href=\"https://lab.purejsimage.com/\"><strong>PureJsImage Lab</strong></a>\n</p>\n\n<p >\n  <blockquote style=\"font-size:20px;\">Sometimes the wrong tool for the job is the right one 😉</blockquote>\n</p>\n\n<p><a href=\"https://ard.ninja/blog/2026-08-20-why-i-started-building-purejsimage/\">Why I started building PureJsImage</a></p>\n</div>\n\n<p align=\"center\">\n  <a href=\"https://purejsimage.com/wsi/\">\n    <img src=\"docs-astro/public/assets/readme/whole-slide-viewer.jpg\" alt=\"Whole-slide viewer showing a 131,472 × 51,113 pathology slide from a 1.98 GiB Aperio SVS file after fetching 11.4 MiB, 0.562% of the source, for the displayed viewport\" width=\"100%\">\n  </a>\n</p>\n<p align=\"center\"><em>Measured HTTP Range session from the live browser viewer: only the visible pyramid tiles were read.</em></p>\n\n<p align=\"center\">\n  <a href=\"https://purejsimage.com/ome-zarr/\">\n    <img src=\"docs-astro/public/assets/ome-zarr-open-graph.png\" alt=\"PureJsImage OME-Zarr feature tour showing the viewer, active channels, and live fetched-byte counter\" width=\"78%\">\n  </a>\n</p>\n<p align=\"center\"><em>Try the synthetic same-origin Feature Tour, or open one of the multi-gigabyte public whole-slide stores.</em></p>\n\n## What PureJsImage is best at\n\n- **Low peak memory usage** - bounded rows, scanlines, strips, and tiles avoid source-sized RGBA working sets where formats permit it.\n- **Portable across Node.js and modern browsers** - strict TypeScript runs without native addons or system executables.\n- **Zero dependencies** - the published package has no runtime dependency tree. You can also easily tree-shake our exports.\n- **Native scientific raster processing** - direct-range reads and native-precision data avoid forcing scientific samples through RGBA.\n- **Benchmarks that check correctness** - ordinary codec and scientific-reader suites measure speed, peak RSS, output validity, source I/O, and package footprint.\n- **Optional WASM accelerators** - explicit JPEG, PNG, and WebP accelerator imports never load or activate automatically.\n- **HUGE tested compatibility matrix** - we used the Imazen image corpus to cover a huge range of real files. PureJsImage can open more format variations than nearly any other JS image library we compared.\n- **Benchmaxxed performance** - we painstakingly hillclimbed performance metrics vs other JS image libraries. Most of the hot loops have been unrolled. We are still slower than Sharp but mostly faster than anything else that is pure JS.\n\nPureJsImage provides portable image codecs and low-memory raster workflows for Node.js\nand modern browsers. The permanent reference engine is strict TypeScript with no runtime dependency\ntree, native addon, system executable, or implicit WebAssembly download. Optional JPEG,\nPNG, and WebP WASM accelerators use separate imports and explicit registration.\n\nLow memory is a primary product requirement. PureJsImage exists to avoid the source-sized RGBA\nworking sets that make common JavaScript image pipelines expensive or unsafe in constrained\nenvironments such as AWS Lambda. Codecs push crops and resize toward decode, retain bounded rows or\ntiles where their structure permits it, and label full-frame fallbacks explicitly.\n\n<!-- documentation:summary:start -->\n<!-- Generated by scripts/render-documentation.ts. Do not edit this block. -->\n## Current package surface\n\nPureJsImage 0.17.0 is a zero-runtime-dependency strict TypeScript image-processing package for Node.js and modern browsers. The default path uses portable TypeScript implementations; optional JPEG, PNG, and WebP WASM accelerators require explicit registration.\n\n**14 stable ordinary codecs:** JPEG, PNG, WebP, BMP, TIFF, GIF, ICO, JPEG 2000 / JP2, AVIF, JPEG XL, Radiance HDR / RGBE, QOI, Netpbm and PFM, TGA / TARGA.\n\n**Experimental:** HEIF / HEIC (experimental) remains a separate explicit import, is excluded from `allCodecs`, and carries the documented HEVC/H.265 patent notice.\n\n**33 scientific readers:** Common raster and whole-slide (9); Electron microscopy (7); AFM, SPM, and surface metrology (5); Medical and volume interchange (5); Spectroscopy and detector interchange (6); Raw numeric interchange (1). Direct-range readers request selected source spans, and specialized scientific readers retain native numeric precision instead of forcing data through RGBA.\n\n| Current measured surface | Minified JS | gzip | Brotli |\n| --- | ---: | ---: | ---: |\n| Core API | 62.6 KiB | 19.6 KiB | 17.3 KiB |\n| Common web codecs | 612.5 KiB | 226.0 KiB | 189.4 KiB |\n| All stable codecs | 875.4 KiB | 307.8 KiB | 253.8 KiB |\n| Scientific platform | 162.5 KiB | 46.8 KiB | 39.8 KiB |\n| All scientific readers | 1233.9 KiB | 356.9 KiB | 284.7 KiB |\n| Geo raster platform | 136.9 KiB | 37.1 KiB | 31.7 KiB |\n| All Geo readers | 612.5 KiB | 185.4 KiB | 150.1 KiB |\n\nThe extracted npm package is 6.3 MiB with 1 production package. This is unpacked size, not the compressed npm tarball.\n<!-- documentation:summary:end -->\n\n## Install\n\n```sh\nnpm install purejsimage\n```\n\nPureJsImage requires Node.js 22 or newer. Browser applications import the core API from\n`purejsimage/browser`. Public APIs are pre-1.0 and may still receive breaking refinements.\n\n## Ordinary image pipeline\n\nRegister only the codecs an application needs:\n\n```ts\nimport { createImageLibrary } from \"purejsimage\";\nimport { jpegCodec } from \"purejsimage/codecs/jpeg\";\nimport { pngCodec } from \"purejsimage/codecs/png\";\n\nconst images = createImageLibrary({ codecs: [jpegCodec, pngCodec] });\nconst image = await images.open(\"input.jpg\");\n\nawait image\n  .autoOrient()\n  .resize({ width: 1200, withoutEnlargement: true })\n  .jpeg({ quality: 80, background: \"#ffffff\" })\n  .toFile(\"output.jpg\");\n```\n\nNode orientation and rotation use lazy chunked memory by default. They do not open temporary files.\nThis default is portable and was 20–28% faster than file storage across the measured orientation\nand arbitrary-rotation cases.\n\nApplications can opt into temporary files when reducing Node process RSS matters more than runtime\nor filesystem portability:\n\n```ts\nconst images = createImageLibrary([jpegCodec, pngCodec], { temporaryFiles: true });\n```\n\nThe opt-in path stores about one padded decoded frame under `os.tmpdir()`. In the measured\n4000x3000 RGBA orientation case, file storage reduced peak process RSS from 147.69 MiB to 90.90 MiB\nand increased median runtime from 654.72 ms to 820.48 ms. A `tmpfs` still consumes host memory even\nthough its pages are outside process RSS. PureJsImage probes file creation, writing, reading, and\ntruncation before consuming image rows. Failed setup or later file writes, including `ENOSPC`, move\nthe spool to chunked memory and preserve output. An error that prevents recovery of bytes already\nwritten to the file is reported as a structured `ImageError`.\n\nUse `purejsimage/browser` with `File`, `Blob`, `Uint8Array`, or an explicit `ImageSource` in a\nbrowser. For the common web formats, register the prebuilt JPEG, PNG, WebP, and AVIF group:\n\n```ts\nimport { createImageLibrary } from \"purejsimage\";\nimport { allWebCodecs } from \"purejsimage/codecs/web\";\n\nconst webImages = createImageLibrary(allWebCodecs);\n```\n\nTIFF remains an explicit `purejsimage/codecs/tiff` import because including it would substantially\nincrease the web-focused bundle. Use `purejsimage/codecs/all` only when the complete stable codec\naggregate is appropriate.\n\n## Scientific datasets\n\nScientific readers preserve labeled axes, calibration, native sample types, and the ability to read\nonly the parts you need. Numeric data becomes display pixels only when an application explicitly\nchooses a range, palette, slice, or projection.\n\n<p align=\"center\">\n  <a href=\"https://purejsimage.com/scientific/\">\n    <img src=\"docs-astro/public/assets/readme/scientific-explorer.jpg\" alt=\"Scientific explorer rendering native ENVI hyperspectral samples in the local browser with band selection and percentile display-range controls\" width=\"100%\">\n  </a>\n</p>\n<p align=\"center\"><em>The explorer maps native samples to display pixels in the tab. It does not write an RGB conversion of the cube.</em></p>\n\n```ts\nimport { FileSource } from \"purejsimage\";\nimport { createScientificLibrary } from \"purejsimage/scientific\";\nimport { omeTiffReader } from \"purejsimage/scientific/readers/ome-tiff\";\n\nconst science = createScientificLibrary({ readers: [omeTiffReader] });\nconst document = await science.open({\n  primary: {\n    id: \"input\",\n    name: \"input.ome.tif\",\n    source: await FileSource.open(\"input.ome.tif\"),\n  },\n});\nconst dataset = await document.openDataset(document.datasets[0].id);\n```\n\nOrdinary GeoTIFFs opened through `tiffReader` expose a typed\n`dataset.descriptor.spatialReference` with CRS identity/citation, pixel-to-model affine, inverse\nwhen invertible, model bounds, pixel interpretation, nodata, and JSON-safe GeoTIFF evidence.\n`readPlane()` regions remain raster pixel coordinates.\n\nFor Cloud Optimized GeoTIFF workflows, `inspectCog()` reports container, IFD/SubIFD, tile,\noverview, compression, and sample layout plus likely structural issues. The checked\n[COG compatibility matrix](docs/tiff-cog-compatibility.md) distinguishes display-only compression\nfrom native scientific-raster support and includes the simulated-range viewport benchmark.\n\nGeoTIFF and GeoZarr are also available as lazy `GeoRasterDataset` readers under\n`purejsimage/geo/readers`. The GeoZarr reader supports v2 and v3 metadata, regular chunks, supported\nv3 shards, multiscales, HTTP stores, local directories, and ZIP stores without adding another Zarr\ndecoder. Band, time, vertical, ensemble, and custom dimensions remain selectable axes.\nWorld-file TIFF, JPEG, and PNG images, georeferenced ENVI, Esri ASCII Grid, and SRTM HGT use the same\ngeo contract while retaining each format's honest region-read limits.\nClassic NetCDF CDF-1 and CDF-2 files with regular rectilinear CF coordinates are available through\n`purejsimage/geo/readers/netcdf`. Time and vertical dimensions remain selectable. CDF-5,\nHDF5-backed NetCDF4, irregular coordinate lookup, and curvilinear grids are reported explicitly.\n\n<!-- geo-capabilities:readme:start -->\n<!-- Generated from capabilities/geo-manifest.json. Do not edit directly. -->\n### Geographic raster compatibility\n\n| Format | Local | Remote | Region | Multiscale | Reprojection | Write |\n| --- | --- | --- | --- | --- | --- | --- |\n| GeoTIFF | Tested | Tested | Tested | Tested | Tested | Out of scope |\n| COG behavior | Tested | Tested | Tested | Tested | Tested | Out of scope |\n| GeoZarr | Tested | Tested | Tested | Tested | Tested | Out of scope |\n| Image plus world file | Tested | Tested | Fixture-limited | Unavailable | Tested | Out of scope |\n| ENVI | Tested | Fixture-limited | Tested | Unavailable | Tested | Out of scope |\n| Esri ASCII Grid | Tested | Fixture-limited | Fixture-limited | Unavailable | Fixture-limited | Out of scope |\n| SRTM HGT | Tested | Fixture-limited | Tested | Unavailable | Tested | Out of scope |\n| Classic NetCDF / CF | Tested | Tested | Tested | Unavailable | Fixture-limited | Out of scope |\n\n“Fixture-limited” is implemented behavior with a narrow current corpus. “Metadata only” does not\nclaim the related pixel operation. See the [complete generated geo evidence table](docs/generated/geo-compatibility.md)\nand the [machine-readable manifest](docs-astro/public/geo-capabilities.json).\n<!-- geo-capabilities:readme:end -->\n\nDirect-range readers can request only the source spans needed for metadata, a native-precision\nregion, a spectrum, a volume plane, or a whole-slide tile. This includes workflows across DM3 and\nDM4, TIA SER and EMI, NCEM and Velox EMD, NIfTI, NRRD, MRC, OME-TIFF, Aperio SVS, AFM and surface\nmetrology, and 4D-STEM data.\n\nThe live Scientific Raster Explorer currently wires only its smaller demo set. It does not claim\nto open every package reader. Applications and PureJsImage Lab can register the explicit reader\nexports they need.\n\n[Scientific format reference →](https://purejsimage.com/scientific-formats/) ·\n[Scientific API reference →](https://purejsimage.com/api/#scientific) ·\n[Scientific application guide →](docs/application-platform.md) ·\n[OME-Zarr reader and validation policy →](docs/scientific-ome-zarr.md) ·\n[OME-Zarr public compatibility evidence →](docs/generated/ome-zarr-compatibility.md) ·\n[Geo raster architecture →](docs/geo-architecture.md) ·\n[GeoZarr reader →](docs/geozarr-reader.md) ·\n[Contained geo formats →](docs/geo-contained-formats.md) ·\n[Classic NetCDF and CF grids →](docs/netcdf-cf.md) ·\n[Native numeric tile contract →](docs/scientific-numeric-tiles.md) ·\n[Bounded raster analysis →](docs/bounded-raster-analysis.md)\n\n## Support boundaries\n\n<!-- capabilities:readme:start -->\n### Stable ordinary codecs\n\n| Format | Read | Write |\n| --- | --- | --- |\n| JPEG | Yes | Yes |\n| PNG | Yes | Yes |\n| WebP | Yes | Yes |\n| BMP | Yes | Yes |\n| TIFF | Yes | Yes |\n| GIF | Static / explicit frame 0 | No |\n| ICO | Yes | No |\n| JPEG 2000 / JP2 | Yes | No |\n| AVIF | Yes | Limited |\n| JPEG XL | Limited | No |\n| Radiance HDR / RGBE | Yes | Yes |\n| QOI | Yes | Yes |\n| Netpbm and PFM | Yes | Yes |\n| TGA / TARGA | Yes | Yes |\n\n### Experimental codecs\n\n| Format | Read | Write |\n| --- | --- | --- |\n| HEIF / HEIC (experimental) | Experimental | No |\n\n“Limited” means PureJsImage supports a useful subset and clearly rejects files\noutside it.\n“Experimental” means the codec is excluded from `allCodecs` and requires an\nexplicit direct import and registration.\n\n[See the exact codec support matrix →](https://purejsimage.com/codecs/)\n\nDetailed codec compatibility roadmaps:\n[JPEG](https://github.com/a-r-d/PureJsImage/blob/main/jpeg-codec-support.md),\n[PNG](https://github.com/a-r-d/PureJsImage/blob/main/png-codec-support.md),\n[WebP](https://github.com/a-r-d/PureJsImage/blob/main/webp-codec-support.md),\n[BMP](https://github.com/a-r-d/PureJsImage/blob/main/bmp-codec-support.md),\n[TIFF](https://github.com/a-r-d/PureJsImage/blob/main/tiff-codec-support.md),\n[GIF](https://github.com/a-r-d/PureJsImage/blob/main/gif-codec-support.md),\n[ICO](https://github.com/a-r-d/PureJsImage/blob/main/ico-codec-support.md),\n[JPEG 2000 / JP2](https://github.com/a-r-d/PureJsImage/blob/main/jpeg2000-codec-support.md),\n[AVIF](https://github.com/a-r-d/PureJsImage/blob/main/avif-codec-support.md),\n[JPEG XL](https://github.com/a-r-d/PureJsImage/blob/main/jpegxl-codec-support.md),\n[Radiance HDR / RGBE](https://github.com/a-r-d/PureJsImage/blob/main/hdr-codec-support.md),\n[QOI](https://github.com/a-r-d/PureJsImage/blob/main/qoi-codec-support.md),\n[Netpbm and PFM](https://github.com/a-r-d/PureJsImage/blob/main/netpbm-codec-support.md),\n[TGA / TARGA](https://github.com/a-r-d/PureJsImage/blob/main/tga-codec-support.md),\nand [HEIF / HEIC (experimental)](https://github.com/a-r-d/PureJsImage/blob/main/heif-codec-support.md).\n<!-- capabilities:readme:end -->\n\n<!-- package-metrics:scientific-readers:start -->\n<!-- Generated by scripts/render-package-metrics.ts. Do not edit this block. -->\n### Scientific reader package surface\n\nThe package currently exposes **33 scientific readers** through explicit purejsimage/scientific/readers/* exports. This family summary is generated from the scientific reader inventory in capabilities/manifest.json, the package exports, and src/scientific/readers/all.ts.\n\n| Reader family | Count | Representative formats |\n| --- | ---: | --- |\n| [Common raster and whole-slide](https://purejsimage.com/scientific-formats/#common-raster-whole-slide) | 9 | PNG, JPEG, WebP, BMP, JPEG 2000 / JP2, TIFF, OME-TIFF, OME-Zarr, Aperio SVS |\n| [Electron microscopy](https://purejsimage.com/scientific-formats/#electron-microscopy) | 7 | Gatan DigitalMicrograph, FEI/Thermo TIA SER, FEI/Thermo TIA EMI, NCEM EMD 0.2, FEI/Thermo Velox EMD, NanoMegas ASTAR blockfile, Quantum Detectors Merlin MIB |\n| [AFM, SPM, and surface metrology](https://purejsimage.com/scientific-formats/#afm-spm-surface-metrology) | 5 | Gwyddion Simple Field, Nanonis SXM, Igor Binary Wave v5, Digital Surf SUR/PRO, X3P surface exchange |\n| [Medical and volume interchange](https://purejsimage.com/scientific-formats/#medical-volume-interchange) | 5 | MRC/CCP4, NRRD, MetaImage MHD/MHA, NIfTI-1/2, DICOM Part 10 Image |\n| [Spectroscopy and detector interchange](https://purejsimage.com/scientific-formats/#spectroscopy-detector-interchange) | 6 | ENVI, FITS, CBF/imgCIF, Lispix RPL/RAW, EMSA/MAS spectrum, ANG/CTF orientation map |\n| [Raw numeric interchange](https://purejsimage.com/scientific-formats/#raw-numeric-interchange) | 1 | NumPy NPY |\n\nThe complete per-reader imports and support boundaries remain on the [scientific format reference](https://purejsimage.com/scientific-formats/), the [API reference](https://purejsimage.com/api/#scientific), and the machine-readable [capability manifest](capabilities/manifest.json).\n\nThe live browser explorer currently wires the smaller demo set: Gwyddion Simple Field (`purejsimage/scientific/readers/gsf`), ENVI (`purejsimage/scientific/readers/envi`), FITS (`purejsimage/scientific/readers/fits`), MRC/CCP4 (`purejsimage/scientific/readers/mrc`), CBF/imgCIF (`purejsimage/scientific/readers/cbf`). The explorer does **not** claim to open every reader in the package surface; applications can register any explicit reader export.\n\nThe raster APIs preserve native numeric data instead of forcing every source through RGB. The full reader surface includes scientific images and volumes, spectroscopy and instrument data, microscopy and whole-slide data, surface and metrology formats, and ordinary image adapters.\n<!-- package-metrics:scientific-readers:end -->\n\nExperimental HEIF/HEIC is available only from `purejsimage/codecs/experimental/heic`. It remains\nexcluded from `allCodecs` because HEIC commonly carries HEVC/H.265 content that may be subject to\nthird-party patent rights. The project’s MIT license grants no third-party patent rights; users and\ndistributors must evaluate their own licensing obligations.\n\n<!-- documentation:benchmarks:start -->\n<!-- Generated by scripts/render-documentation.ts. Do not edit this block. -->\n## Current benchmark snapshots\n\n**Web codec benchmarks (2026-08-24):** 122 validated passes, 25 explicit unsupported rows, and no invalid outputs or errors across JPEG, PNG, WebP, TIFF, and AVIF workflows. On the 24-megapixel northstar photo pipeline, the TypeScript path used 84.7% less absolute peak RSS than Jimp (181.8 MiB versus 1189.1 MiB).\n\n**Scientific readers (2026-08-17):** 43 correctness and startup workflows passed across 31 readers in that snapshot. The separate medium/large scaling profile validated 13 representative workloads; 6 met the under-10% CV publication threshold and the remaining rows stay visible as noisy. Results report first usable block, selected-operation time, absolute peak RSS, source requests and bytes, overfetch, import/initialization, and emitted-block correctness without collapsing formats into one winner score.\n\n> Ordinary and scientific reports use separately fingerprinted harnesses. No cross-section speed or memory ratio is claimed.\n\n<p align=\"center\">\n  <a href=\"https://purejsimage.com/performance/#web-codec-benchmarks\">\n    <img src=\"docs-astro/public/assets/readme/web-codec-speed.svg\" alt=\"Web codec benchmark speed chart. Lower wall time is better. The chart includes validated shared JPEG, PNG, WebP, TIFF, and AVIF workloads. Sharp is native libvips and is not presented as pure JavaScript.\" width=\"100%\">\n  </a>\n</p>\n<p align=\"center\"><em>Median wall time from the current validated web codec benchmark snapshot.</em></p>\n\n<p align=\"center\">\n  <a href=\"https://purejsimage.com/performance/#web-codec-benchmarks\">\n    <img src=\"docs-astro/public/assets/readme/web-codec-memory.svg\" alt=\"Web codec benchmark peak RSS chart. Lower peak RSS is better. The chart includes validated shared JPEG, PNG, WebP, TIFF, and AVIF workloads. Sharp is native libvips and is not presented as pure JavaScript.\" width=\"100%\">\n  </a>\n</p>\n<p align=\"center\"><em>Absolute process peak RSS from the current validated web codec benchmark snapshot.</em></p>\n\n[Web codec benchmarks](https://purejsimage.com/performance/#web-codec-benchmarks) · [Scientific methodology and report](https://purejsimage.com/performance/#scientific-readers) · [Benchmark harness](benchmark/README.md) · [Generated result index](benchmark/results/public/index.json)\n<!-- documentation:benchmarks:end -->\n\nHistorical AWS Lambda measurements remain useful for memory-tier and CPU-allocation context, but are\nkept separate from current local benchmark headlines. See the\n[performance page](https://purejsimage.com/performance/#lambda) for dates, architecture, and exact\nartifacts.\n\n<!-- package-metrics:bundle:start -->\n<!-- Generated by scripts/render-package-metrics.ts. Do not edit this block. -->\n### Bundle size and npm package size\n\nGenerated for purejsimage 0.17.0. The README keeps only the major entry points; the complete per-codec, per-reader, competitor, gzip, Brotli, installed-package, and WASM measurements are on the performance page and in the machine-readable artifact.\n\n| Surface | Import | Minified JS | gzip | Brotli |\n| --- | --- | ---: | ---: | ---: |\n| Core API | `purejsimage` | 62.6 KiB | 19.6 KiB | 17.3 KiB |\n| Core + common web codecs | `purejsimage/codecs/web` | 612.5 KiB | 226.0 KiB | 189.4 KiB |\n| Core + all stable codecs | `purejsimage/codecs/all` | 875.4 KiB | 307.8 KiB | 253.8 KiB |\n| Core + scientific platform | `purejsimage/scientific` | 162.5 KiB | 46.8 KiB | 39.8 KiB |\n| Scientific readers: all | `purejsimage/scientific/readers/all` | 1233.9 KiB | 356.9 KiB | 284.7 KiB |\n\nThe extracted npm package is 6.3 MiB and has 1 production package. The eight optional JPEG, PNG, and WebP accelerator assets total 175.7 KiB raw WASM and are loaded only through explicit accelerator imports.\n\n[Complete size and footprint tables →](https://purejsimage.com/performance/#package-footprint) · [Machine-readable package metrics](benchmark/generated/package-metrics.json)\n<!-- package-metrics:bundle:end -->\n\n## Evidence and methodology\n\n- [Benchmark methodology and current charts](https://purejsimage.com/performance/)\n- [Date-stamped benchmark results and indexes](benchmark/results/)\n- [Machine-readable package metrics](benchmark/generated/package-metrics.json)\n- [Capability manifest](capabilities/manifest.json)\n- [Pinned benchmark corpus](benchmark/corpus/manifest.json)\n- [Detailed benchmark harness guide](benchmark/README.md)\n\n<!-- library-comparison:readme:start -->\n<!-- Generated by scripts/render-library-comparison.ts. Do not edit this block. -->\n### Historical TIFF conformance comparison\n\nThe checked 2026-08-13 snapshot compared documented TIFF capabilities separately from independent RGBA output. PureJsImage decoded 104/106 comparable display cases; 57 were exact and 47 had pixel differences. “Oracle unavailable” means the independent Sharp/ImageMagick path could not produce ground truth, not that an engine failed. Current performance headlines come from the newer generated benchmark index above.\n\n[Full grouped capability matrix, methods, sources, and per-library results](https://purejsimage.com/tiff-comparison/)\n<!-- library-comparison:readme:end -->\n\n## Why PureJsImage?\n\n- Low-memory execution is the main goal: avoid source-sized bitmaps and duplicate full-frame buffers\n  wherever codec structure permits bounded rows, tiles, regions, or coefficient storage.\n- Strict TypeScript codecs remain the portable production and fallback path.\n- Zero runtime dependencies simplify browser, serverless, edge, air-gapped, and restricted builds.\n- Bounded rows, tiles, regions, and source reads are used where the format permits them.\n- Unsupported syntax fails explicitly instead of producing plausible corruption.\n- Validation, quality oracles, peak RSS, source I/O, and package footprint remain part of the\n  benchmark contract.\n\nIf native libvips is deployable and throughput is the primary constraint, use\n[Sharp](https://sharp.pixelplumbing.com/). PureJsImage is aimed at workflows where portable source,\nbrowser parity, explicit dependency boundaries, native scientific data, or lower-memory JavaScript\nexecution matter.\n\n## Citation\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.22071814.svg)](https://doi.org/10.5281/zenodo.22071814)\n\nUse the metadata in [`CITATION.cff`](CITATION.cff) to cite PureJsImage. The file records the current\nsoftware release, author, source repository, npm package, license, and project keywords in Citation\nFile Format 1.2.0. The DOI for release 0.16.0 is\n[`10.5281/zenodo.22071815`](https://doi.org/10.5281/zenodo.22071815). Use\n[`10.5281/zenodo.22071814`](https://doi.org/10.5281/zenodo.22071814) to cite the project across all\nversions.\n\n## Development\n\n```sh\nnpm install\nnpm run check\n```\n\nRead [CONTRIBUTING.md](CONTRIBUTING.md), the [architecture](project-spec.md), and the\n[roadmap](ROADMAP.md) before larger changes.\n\n## Special thanks\n\nThanks to [Imazen](https://github.com/imazen) for the real-world image corpus used in compatibility\nand (especially) TIFF validation.\n\nThanks to [PgRust](https://malisper.me/how-we-made-postgres-hundreds-of-times-faster-the-query-engine/) for inspiring me to do this work.\n","readmeFilename":"README.md"}