{"_id":"ipx-nightly","_rev":"63-1e33750d7146ad94104112eb3b2539c8","name":"ipx-nightly","dist-tags":{"latest":"4.0.0-20260926-075029-e450892"},"versions":{"0.0.0":{"name":"ipx-nightly","version":"0.0.0","_id":"ipx-nightly@0.0.0","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"dist":{"shasum":"20f3ff48761ae7f948bf389959e4d2f4b8da1992","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-0.0.0.tgz","fileCount":1,"integrity":"sha512-qBmWL9kWs3kdqK8rr/ljHoF4vzbo2v7l6FU5lpUmQVmb+GuIuMMI4I0mjzcySZrtzo+UISk8e6cOekxYzxiBiA==","signatures":[{"sig":"MEYCIQCIhG33iRej7D3grSfMgEk6mceryQK+B3HL9F+PxTRnQgIhAI3umfpbytwpv8gjShsgYmNEwuWP6jFlR3Gn1sPHyKfe","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"_npmVersion":"9.5.1","directories":{},"_nodeVersion":"18.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_0.0.0_1699614790833_0.519651037940754","host":"s3://npm-registry-packages"}},"2.0.3-1699616123.c6fb05c":{"name":"ipx-nightly","version":"2.0.3-1699616123.c6fb05c","license":"MIT","_id":"ipx-nightly@2.0.3-1699616123.c6fb05c","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"b25624de3cd1555efd96c7afacc1a1a520cd9ded","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-2.0.3-1699616123.c6fb05c.tgz","fileCount":16,"integrity":"sha512-N9uctF0r4/FniYGI1lu+qQf8K8mcPArzOdaOXr2Rs8bCX6WMHZz7pnFAiioz+w24+RTgPMV0+y8lCTKiQQicxg==","signatures":[{"sig":"MEQCICtBoKdN1226wRTx/ZUsWb0Hp6VMRf/OMLPR1cUrSRkJAiBPxqIxVa4iKSNLRaAU5sACr5Bk0rIiDAczyCMU1xLXEw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@2.0.3-1699616123.c6fb05c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78852},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"82ca82a1d4ffd717c3d30ec71f423be09ae7c818","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint --ext .ts . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint --ext .ts . --fix && prettier -w src test","prerelease":"pnpm test && pnpm build && changelogen --release --prerelease --push --publish --publishTag next-2"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"9.8.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"18.18.2","dependencies":{"h3":"^1.8.2","ufo":"^1.3.1","xss":"^1.0.14","defu":"^6.1.3","etag":"^1.8.1","svgo":"^3.0.3","citty":"^0.1.4","destr":"^2.0.2","pathe":"^1.1.1","sharp":"^0.32.6","ofetch":"^1.3.3","consola":"^3.2.3","listhen":"^1.5.5","unstorage":"^1.9.0","image-meta":"^0.2.0","@fastify/accept-negotiator":"^1.1.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.10.2","devDependencies":{"jiti":"^1.21.0","eslint":"^8.53.0","vitest":"^0.34.6","unbuild":"^2.0.0","prettier":"^3.0.3","typescript":"^5.2.2","@types/etag":"^1.8.2","changelogen":"^0.5.5","serve-handler":"^6.1.5","eslint-config-unjs":"^0.2.1","@vitest/coverage-v8":"^0.34.6","@types/is-valid-path":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_2.0.3-1699616123.c6fb05c_1699616130394_0.17687227871080258","host":"s3://npm-registry-packages"}},"2.1.0-1699616271.675ab59":{"name":"ipx-nightly","version":"2.1.0-1699616271.675ab59","license":"MIT","_id":"ipx-nightly@2.1.0-1699616271.675ab59","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"b6d0881704dc2cc4743638a31cb427f2f0fe56ac","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-2.1.0-1699616271.675ab59.tgz","fileCount":16,"integrity":"sha512-oA2Cq/PLxzOqTkhMbG0dRxiIFesc/i6cGJ1UzMfLUYxvZ5dzMzFJvfXMtK+AjXFdKpIL2jIbef2lNkow7hTMYQ==","signatures":[{"sig":"MEYCIQDVAPsx4/Oq40Kp7IAgJYefxT8Ys1q1jSu6TNz0gHmOZAIhAPVdXd2/GnyTKdjku+AN/QQgPZhHH87ypWS1lQR94IxG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@2.1.0-1699616271.675ab59","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78920},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"6e2ef5624ae6d36cf6babcc9d826ff83152db79c","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint --ext .ts . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint --ext .ts . --fix && prettier -w src test","prerelease":"pnpm test && pnpm build && changelogen --release --prerelease --push --publish --publishTag next-2"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"9.8.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"18.18.2","dependencies":{"h3":"^1.8.2","ufo":"^1.3.1","xss":"^1.0.14","defu":"^6.1.3","etag":"^1.8.1","svgo":"^3.0.3","citty":"^0.1.4","destr":"^2.0.2","pathe":"^1.1.1","sharp":"npm:sharp@0.33.0-alpha.10","ofetch":"^1.3.3","consola":"^3.2.3","listhen":"^1.5.5","unstorage":"^1.9.0","image-meta":"^0.2.0","@fastify/accept-negotiator":"^1.1.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.10.2","devDependencies":{"jiti":"^1.21.0","eslint":"^8.53.0","vitest":"^0.34.6","unbuild":"^2.0.0","prettier":"^3.0.3","typescript":"^5.2.2","@types/etag":"^1.8.2","changelogen":"^0.5.5","serve-handler":"^6.1.5","eslint-config-unjs":"^0.2.1","@vitest/coverage-v8":"^0.34.6","@types/is-valid-path":"^0.1.1","@img/sharp-darwin-arm64":"0.33.0-alpha.11"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_2.1.0-1699616271.675ab59_1699616278580_0.6802304255462375","host":"s3://npm-registry-packages"}},"2.1.0-1699617961.675ab59":{"name":"ipx-nightly","version":"2.1.0-1699617961.675ab59","license":"MIT","_id":"ipx-nightly@2.1.0-1699617961.675ab59","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"b5c596bde04b430c792f39b3726b4a0f3960ab48","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-2.1.0-1699617961.675ab59.tgz","fileCount":16,"integrity":"sha512-VsJiKcy4BLuBGoDEmmawq57iv0s/1fNQs+wLyUhpD7zqHcdXxyqpM31vw4/ziFxOxG1GIjnvIzgJO4fKjo81MA==","signatures":[{"sig":"MEUCIEHqf++LJe0+bJDM4ydBflv37sjwaCbgIBy016CvnLcdAiEAq+marZj77Cf7+QjmmKO7fCASiJ2InU8jEbuulIM2crQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@2.1.0-1699617961.675ab59","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78870},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"eda68f16e7ecc37abbd5a337f824819b5a36f429","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint --ext .ts . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint --ext .ts . --fix && prettier -w src test","prerelease":"pnpm test && pnpm build && changelogen --release --prerelease --push --publish --publishTag next-2"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"9.8.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"18.18.2","dependencies":{"h3":"^1.8.2","ufo":"^1.3.1","xss":"^1.0.14","defu":"^6.1.3","etag":"^1.8.1","svgo":"^3.0.3","citty":"^0.1.4","destr":"^2.0.2","pathe":"^1.1.1","sharp":"npm:sharp@0.33.0-alpha.11","ofetch":"^1.3.3","consola":"^3.2.3","listhen":"^1.5.5","unstorage":"^1.9.0","image-meta":"^0.2.0","@fastify/accept-negotiator":"^1.1.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.10.2","devDependencies":{"jiti":"^1.21.0","eslint":"^8.53.0","vitest":"^0.34.6","unbuild":"^2.0.0","prettier":"^3.0.3","typescript":"^5.2.2","@types/etag":"^1.8.2","changelogen":"^0.5.5","serve-handler":"^6.1.5","eslint-config-unjs":"^0.2.1","@vitest/coverage-v8":"^0.34.6","@types/is-valid-path":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_2.1.0-1699617961.675ab59_1699617970043_0.8983650939786418","host":"s3://npm-registry-packages"}},"2.1.0-1699618238.675ab59":{"name":"ipx-nightly","version":"2.1.0-1699618238.675ab59","license":"MIT","_id":"ipx-nightly@2.1.0-1699618238.675ab59","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"33226c06c0fa4400fa9505b295379ee493098b4b","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-2.1.0-1699618238.675ab59.tgz","fileCount":16,"integrity":"sha512-3lFKmZpy+D9h2w6NVxPeRjh2yrkoTc8OGHykyHJmtSwFWpO7BJ2TXx9aIcYnIXQ1QptpmepbtwM2I3jDkCgfuA==","signatures":[{"sig":"MEUCIHtkCK7zU0njIYmn8X5EbkPlxzXYmdXTXjX1tR1WJnqZAiEAkuwdu7nrLJYEr/zwovwz1oT6gSSi9shCK7u/n+Ms8y4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@2.1.0-1699618238.675ab59","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78870},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"9dcb0bee91e535e0b9b3dc8b6ed24f7e08b2fd27","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint --ext .ts . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint --ext .ts . --fix && prettier -w src test","prerelease":"pnpm test && pnpm build && changelogen --release --prerelease --push --publish --publishTag next-2"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"9.8.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"18.18.2","dependencies":{"h3":"^1.8.2","ufo":"^1.3.1","xss":"^1.0.14","defu":"^6.1.3","etag":"^1.8.1","svgo":"^3.0.3","citty":"^0.1.4","destr":"^2.0.2","pathe":"^1.1.1","sharp":"npm:sharp@0.33.0-alpha.11","ofetch":"^1.3.3","consola":"^3.2.3","listhen":"^1.5.5","unstorage":"^1.9.0","image-meta":"^0.2.0","@fastify/accept-negotiator":"^1.1.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.10.2","devDependencies":{"jiti":"^1.21.0","eslint":"^8.53.0","vitest":"^0.34.6","unbuild":"^2.0.0","prettier":"^3.0.3","typescript":"^5.2.2","@types/etag":"^1.8.2","changelogen":"^0.5.5","serve-handler":"^6.1.5","eslint-config-unjs":"^0.2.1","@vitest/coverage-v8":"^0.34.6","@types/is-valid-path":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_2.1.0-1699618238.675ab59_1699618248604_0.9796291297571866","host":"s3://npm-registry-packages"}},"2.1.1-1705019186.c31c3ae":{"name":"ipx-nightly","version":"2.1.1-1705019186.c31c3ae","license":"MIT","_id":"ipx-nightly@2.1.1-1705019186.c31c3ae","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"83fcd99b910b8b4fbac0deebdcec557c45dc14d9","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-2.1.1-1705019186.c31c3ae.tgz","fileCount":16,"integrity":"sha512-nnM1n7TwRGapbSeMASxQsKl0OShiCMXHppJDCeEQFneK+S3EZ9bZM/IbACE1hC/iEI8l6GFyDmrZL8GKSBhGuw==","signatures":[{"sig":"MEYCIQCvgDlXPsiSzXf6C8Sy/VX6602b8+PreDusIEnH3JWIYgIhAOjev01RrdJKp2+BHfyioxRc6GjJKZ/b0gT8jKvvXGLy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@2.1.1-1705019186.c31c3ae","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":80899},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"4de06c91eb526c30b801ed9f7f88ef9d15645dc3","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint --ext .ts . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint --ext .ts . --fix && prettier -w src test","prerelease":"pnpm test && pnpm build && changelogen --release --prerelease --push --publish --publishTag next-2"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.2.3","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"18.19.0","dependencies":{"h3":"^1.10.0","ufo":"^1.3.2","xss":"^1.0.14","defu":"^6.1.4","etag":"^1.8.1","svgo":"^3.2.0","citty":"^0.1.5","destr":"^2.0.2","pathe":"^1.1.2","sharp":"^0.33.1","ofetch":"^1.3.3","consola":"^3.2.3","listhen":"^1.5.6","unstorage":"^1.10.1","image-meta":"^0.2.0","@fastify/accept-negotiator":"^1.1.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.10.5","devDependencies":{"jiti":"^1.21.0","eslint":"^8.56.0","vitest":"^1.1.3","unbuild":"^2.0.0","prettier":"^3.1.1","typescript":"^5.3.3","@types/etag":"^1.8.3","changelogen":"^0.5.5","serve-handler":"^6.1.5","eslint-config-unjs":"^0.2.1","@vitest/coverage-v8":"^1.1.3","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_2.1.1-1705019186.c31c3ae_1705019194175_0.7321174275860778","host":"s3://npm-registry-packages"}},"3.0.0-1705019392.624b9db":{"name":"ipx-nightly","version":"3.0.0-1705019392.624b9db","license":"MIT","_id":"ipx-nightly@3.0.0-1705019392.624b9db","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"500ac65576df7c5af45faf770c00199cada20cb4","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.0-1705019392.624b9db.tgz","fileCount":16,"integrity":"sha512-hsFumuEN6dQjVRGHk2JhF2AALq22/m81Ll5icswWpEd05Pngr5lcy1E38cB7hyBc98bK5c6Zyo7aWBFZowZQEw==","signatures":[{"sig":"MEUCIQCFHRwPT9N3dv9gaZEEfxKXyRAAXQY8361F+jaqY1MS3QIgWu/zA5zcC5AwFwx9bu5BFcO4MufIx1ncfENVxeMuTPw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.0-1705019392.624b9db","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":80899},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"624b9db13d6248952aa923898b70867d51ed8415","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint --ext .ts . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint --ext .ts . --fix && prettier -w src test","prerelease":"pnpm test && pnpm build && changelogen --release --prerelease --push --publish --publishTag latest"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.2.3","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"18.19.0","dependencies":{"h3":"^1.10.0","ufo":"^1.3.2","xss":"^1.0.14","defu":"^6.1.4","etag":"^1.8.1","svgo":"^3.2.0","citty":"^0.1.5","destr":"^2.0.2","pathe":"^1.1.2","sharp":"^0.33.1","ofetch":"^1.3.3","consola":"^3.2.3","listhen":"^1.5.6","unstorage":"^1.10.1","image-meta":"^0.2.0","@fastify/accept-negotiator":"^1.1.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.10.5","devDependencies":{"jiti":"^1.21.0","eslint":"^8.56.0","vitest":"^1.1.3","unbuild":"^2.0.0","prettier":"^3.1.1","typescript":"^5.3.3","@types/etag":"^1.8.3","changelogen":"^0.5.5","serve-handler":"^6.1.5","eslint-config-unjs":"^0.2.1","@vitest/coverage-v8":"^1.1.3","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.0-1705019392.624b9db_1705019399207_0.13397300070165175","host":"s3://npm-registry-packages"}},"3.0.2-20250321-102954-e307855":{"name":"ipx-nightly","version":"3.0.2-20250321-102954-e307855","license":"MIT","_id":"ipx-nightly@3.0.2-20250321-102954-e307855","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"3f4e06b63e6e74c62e12e9f655bf245812826dfc","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.2-20250321-102954-e307855.tgz","fileCount":16,"integrity":"sha512-g0rPy+UDZMbHBzydDgitE96waLQRZQBJ+UUaON0xeMOQYxUU538NqnXZKd7GmwVVx//aouEGOAfEEpjqMO/rdQ==","signatures":[{"sig":"MEQCIDpnmkXBfMFVJb3QXDeMx1ygHyU1xeWwQ4bcMKNuzJjfAiAYYiD+/kzUPQqBSk+RVDVndIynNP6CpKUJmcuQSNkwbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.2-20250321-102954-e307855","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":81266},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"e307855719fa0c236a1127348fe048c1ab95ee91","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test","prerelease":"pnpm test && pnpm build && changelogen --release --prerelease --push --publish --publishTag latest"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"h3":"^1.15.1","ufo":"^1.5.4","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^3.3.2","citty":"^0.1.6","destr":"^2.0.3","pathe":"^2.0.3","sharp":"^0.33.5","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.15.0","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.6.5","devDependencies":{"jiti":"^2.4.2","eslint":"^9.22.0","vitest":"^3.0.9","unbuild":"^3.5.0","prettier":"^3.5.3","typescript":"^5.8.2","@types/etag":"^1.8.3","changelogen":"^0.6.1","serve-handler":"^6.1.6","eslint-config-unjs":"^0.4.2","@vitest/coverage-v8":"^3.0.9","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.2-20250321-102954-e307855_1742553003004_0.44873434466726425","host":"s3://npm-registry-packages-npm-production"}},"3.0.2-20250321-103850-b9aba99":{"name":"ipx-nightly","version":"3.0.2-20250321-103850-b9aba99","license":"MIT","_id":"ipx-nightly@3.0.2-20250321-103850-b9aba99","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"d3a18ee9a7572a14e3ac3f12a0d84ad3a5de2d7d","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.2-20250321-103850-b9aba99.tgz","fileCount":16,"integrity":"sha512-zY5DiyGN47mnlW1Zo2lXid2CxF+7fssB7k4cxD9C8BeMi3qmLjccmh+PJtoawIlVR7NJhmAwA35BtxW0nqOanw==","signatures":[{"sig":"MEUCIQDBC4Vato5us5lOq/rdGT4utrjhSL4ghK7yku+58o1FLQIge1z8XGOFYQdxxENx4nAKvUgKle40GNzrJXfGZy2PkPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.2-20250321-103850-b9aba99","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":81759},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"b9aba998f246bedae9c9b1dbea23994a93bacce7","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test","prerelease":"pnpm test && pnpm build && changelogen --release --prerelease --push --publish --publishTag latest"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"h3":"^1.15.1","ufo":"^1.5.4","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^3.3.2","citty":"^0.1.6","destr":"^2.0.3","pathe":"^2.0.3","sharp":"^0.33.5","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.15.0","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.6.5","devDependencies":{"jiti":"^2.4.2","eslint":"^9.22.0","vitest":"^3.0.9","unbuild":"^3.5.0","prettier":"^3.5.3","typescript":"^5.8.2","@types/etag":"^1.8.3","changelogen":"^0.6.1","serve-handler":"^6.1.6","eslint-config-unjs":"^0.4.2","@vitest/coverage-v8":"^3.0.9","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.2-20250321-103850-b9aba99_1742553537873_0.21605897234939442","host":"s3://npm-registry-packages-npm-production"}},"3.0.2-20250321-105333-9414e40":{"name":"ipx-nightly","version":"3.0.2-20250321-105333-9414e40","license":"MIT","_id":"ipx-nightly@3.0.2-20250321-105333-9414e40","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"7e3f3b12518abdfa74c658ca017ed503d1a2e50b","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.2-20250321-105333-9414e40.tgz","fileCount":16,"integrity":"sha512-rdW9D1JrDYdRUhiWo4JAM8Lt9X24awOAX+IIoJwwSFciM6kQP3dDii2fGfdBpt1X4Ht7WHMvYxnaTgnifAPUhw==","signatures":[{"sig":"MEQCIHm2ZmICKUSGbdvwoKYcq5RD/92nL4qmNaCSN3B+KXr7AiA7wFKLEQhFgKC5nxsbAom6dzpH28f4ymzsepm26m9BUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.2-20250321-105333-9414e40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111926},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"9414e40df0cfe129696c48675f564c1197612021","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test","prerelease":"pnpm test && pnpm build && changelogen --release --push --publish --publishTag latest"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"h3":"^1.15.1","ufo":"^1.5.4","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^3.3.2","citty":"^0.1.6","destr":"^2.0.3","pathe":"^2.0.3","sharp":"^0.33.5","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.15.0","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.6.5","devDependencies":{"jiti":"^2.4.2","eslint":"^9.22.0","vitest":"^3.0.9","unbuild":"^3.5.0","prettier":"^3.5.3","typescript":"^5.8.2","@types/etag":"^1.8.3","changelogen":"^0.6.1","serve-handler":"^6.1.6","eslint-config-unjs":"^0.4.2","@vitest/coverage-v8":"^3.0.9","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.2-20250321-105333-9414e40_1742554422192_0.36938024583808304","host":"s3://npm-registry-packages-npm-production"}},"3.0.4-20250321-105654-af698d0":{"name":"ipx-nightly","version":"3.0.4-20250321-105654-af698d0","license":"MIT","_id":"ipx-nightly@3.0.4-20250321-105654-af698d0","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"8f391cfbcbc3db674b0da7bb4042450eb32bb11f","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.4-20250321-105654-af698d0.tgz","fileCount":16,"integrity":"sha512-0oew7gUpaSfpPLon1C5YyOYqL8UI2Bow4JQGJQS61E6xI/I80ZMA5LS2zNZd4HzJHLwZ9H0agEmUBWK13EvmAQ==","signatures":[{"sig":"MEQCIC5N/KdknuBy0vtVUn1ysFe2LtrDb6gCMtfUFKHlJDcWAiBoKFXgZ5XwpfT6TJ37hRxBu4dhjlZZW/uKfzO8cRZGcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.4-20250321-105654-af698d0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111819},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"af698d08e6c96e3e551d03a07c045234980b54ff","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"h3":"^1.15.1","ufo":"^1.5.4","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^3.3.2","citty":"^0.1.6","destr":"^2.0.3","pathe":"^2.0.3","sharp":"^0.33.5","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.15.0","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.6.5","devDependencies":{"jiti":"^2.4.2","eslint":"^9.22.0","vitest":"^3.0.9","unbuild":"^3.5.0","prettier":"^3.5.3","typescript":"^5.8.2","@types/etag":"^1.8.3","changelogen":"^0.6.1","serve-handler":"^6.1.6","eslint-config-unjs":"^0.4.2","@vitest/coverage-v8":"^3.0.9","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.4-20250321-105654-af698d0_1742554622793_0.6810231790221799","host":"s3://npm-registry-packages-npm-production"}},"3.0.4-20250513-163235-0f322f8":{"name":"ipx-nightly","version":"3.0.4-20250513-163235-0f322f8","license":"MIT","_id":"ipx-nightly@3.0.4-20250513-163235-0f322f8","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"134ae35ad26b9e39d542c9cef6088ca9559876a7","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.4-20250513-163235-0f322f8.tgz","fileCount":16,"integrity":"sha512-EWbzuXLMs7TRTzlG207Jf7OoX7ey8CgUeffuoRd1LOdb6xNvLlcBytlVcrDlidQtxDuuPRMBucSkCuyadxEzYg==","signatures":[{"sig":"MEUCIQCn3HS8O9yxEoFBJBlGuTR4ixjEo8qwalgAbrAo7oBy/wIgFy5jvQj6XgY1/0I/VkC6adSneMPNkF9LBAPsHA8jSmA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.4-20250513-163235-0f322f8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111865},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"0f322f8a2b3348135155b8c91ffa50ca99eadd9c","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.1","dependencies":{"h3":"^1.15.1","ufo":"^1.5.4","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^3.3.2","citty":"^0.1.6","destr":"^2.0.3","pathe":"^2.0.3","sharp":"^0.33.5","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.15.0","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.6.5","devDependencies":{"jiti":"^2.4.2","eslint":"^9.22.0","vitest":"^3.0.9","unbuild":"^3.5.0","prettier":"^3.5.3","typescript":"^5.8.2","@types/etag":"^1.8.3","changelogen":"^0.6.1","serve-handler":"^6.1.6","eslint-config-unjs":"^0.4.2","@vitest/coverage-v8":"^3.0.9","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.4-20250513-163235-0f322f8_1747153965600_0.984950980301913","host":"s3://npm-registry-packages-npm-production"}},"3.0.4-20250627-011018-0f322f8":{"name":"ipx-nightly","version":"3.0.4-20250627-011018-0f322f8","license":"MIT","_id":"ipx-nightly@3.0.4-20250627-011018-0f322f8","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"596be7517b83535c796d1189cc6f35e12aa35064","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.4-20250627-011018-0f322f8.tgz","fileCount":16,"integrity":"sha512-gqB9YzGXBYKxxJVyB3hxxfCXrSRdstP2lS7OPdGsUmnJZKQV7eTt0puO22DnitBYtQPkM9sHDJVCJgLfoOzBnQ==","signatures":[{"sig":"MEUCIQDWO82JqE9g6xe1oxiRFA8vKlnXIVgsUg8DlyYM15v6sgIgTMEq64+jFTtzuizSqTxbTBXHiMG4cIps/kT/eF8QU7o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.4-20250627-011018-0f322f8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111865},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"1d1cfeaeac6a465b2f3d57f87f3e0a5be852c35c","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test"},"_npmUser":{"name":"pi0","actor":{"name":"pi0","type":"user","email":"pyapar@gmail.com"},"email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.2","dependencies":{"h3":"^1.15.1","ufo":"^1.5.4","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^3.3.2","citty":"^0.1.6","destr":"^2.0.3","pathe":"^2.0.3","sharp":"^0.33.5","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.15.0","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.6.5","devDependencies":{"jiti":"^2.4.2","eslint":"^9.22.0","vitest":"^3.0.9","unbuild":"^3.5.0","prettier":"^3.5.3","typescript":"^5.8.2","@types/etag":"^1.8.3","changelogen":"^0.6.1","serve-handler":"^6.1.6","eslint-config-unjs":"^0.4.2","@vitest/coverage-v8":"^3.0.9","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.4-20250627-011018-0f322f8_1750986627403_0.8703712467796265","host":"s3://npm-registry-packages-npm-production"}},"3.0.4-20250703-010418-0f322f8":{"name":"ipx-nightly","version":"3.0.4-20250703-010418-0f322f8","license":"MIT","_id":"ipx-nightly@3.0.4-20250703-010418-0f322f8","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"880b43c2dfaecc89c0ba4e677db8751b5cf46736","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.4-20250703-010418-0f322f8.tgz","fileCount":16,"integrity":"sha512-Gu99BWCd+3+zktIBXqkOJaR3DN+y6NA5gobr0yoy9hNQ7lMsqasRWKVMLnGAVcAbLY8XgK090slJNe0uSdldOg==","signatures":[{"sig":"MEUCIQD5H2M/mZypmx1NQ+gqeBL94ljIT9+pHkw3zheKisMrPAIgMVzg0x2uAbcTOsXhwVuaE9ZOpTDu5a67jgv9aQReFU8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.4-20250703-010418-0f322f8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111866},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"70278c9da95daa1c8a8bc996c078d51c15c899a1","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test"},"_npmUser":{"name":"pi0","actor":{"name":"pi0","type":"user","email":"pyapar@gmail.com"},"email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.3","dependencies":{"h3":"^1.15.3","ufo":"^1.6.1","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^3.3.2","citty":"^0.1.6","destr":"^2.0.5","pathe":"^2.0.3","sharp":"^0.34.2","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.16.0","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.12.4","devDependencies":{"jiti":"^2.4.2","eslint":"^9.30.1","vitest":"^3.2.4","unbuild":"^3.5.0","prettier":"^3.6.2","typescript":"^5.8.3","@types/etag":"^1.8.4","changelogen":"^0.6.1","serve-handler":"^6.1.6","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.4-20250703-010418-0f322f8_1751504667927_0.3798156773014214","host":"s3://npm-registry-packages-npm-production"}},"3.0.4-20250723-092812-0f322f8":{"name":"ipx-nightly","version":"3.0.4-20250723-092812-0f322f8","license":"MIT","_id":"ipx-nightly@3.0.4-20250723-092812-0f322f8","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"a9e59fe6731f5578b2bc7a8f0013b569ea0dc27e","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.4-20250723-092812-0f322f8.tgz","fileCount":16,"integrity":"sha512-ZBCZyymHaZFrEAsp4y7haeKUjKkg8aDGHmocDygT2ey74CcYVT2knfT9/ksi9rSk1cGcOHqUl4TyFWexlfINYA==","signatures":[{"sig":"MEQCIBRMct0QGsHGkF80EsA3dmtOqxFdEvWxUuJFS7Io4hPRAiBJe2XZbB/9tMllmMWsSe4MmYBe2/QsylL41VpbABpVsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.4-20250723-092812-0f322f8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111866},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"4cbff76af2eeb4084d1263ca649632669eeb5924","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.3","dependencies":{"h3":"^1.15.3","ufo":"^1.6.1","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^3.3.2","citty":"^0.1.6","destr":"^2.0.5","pathe":"^2.0.3","sharp":"^0.34.3","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.16.1","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.13.1","devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","vitest":"^3.2.4","unbuild":"^3.5.0","prettier":"^3.6.2","typescript":"^5.8.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","serve-handler":"^6.1.6","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.4-20250723-092812-0f322f8_1753262902577_0.9532502907949278","host":"s3://npm-registry-packages-npm-production"}},"3.0.4-20250723-110935-8225271":{"name":"ipx-nightly","version":"3.0.4-20250723-110935-8225271","license":"MIT","_id":"ipx-nightly@3.0.4-20250723-110935-8225271","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"250935a895c718faa739666af06d928ed22cf26a","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.4-20250723-110935-8225271.tgz","fileCount":16,"integrity":"sha512-tautAsuevZPDapUvVY2SjUIxXKzsqf6i1rOeYWI7vkKm8d9PX/acoyFXW65Ouv2ZDx20YWhhW3/peVQEEq6VTA==","signatures":[{"sig":"MEQCIF6EB8Buts1bBpj4/GMt7KU8ClMZlxV6tJ9D26B7RSmiAiAhr8dZkdaA73QYShLU6Pj9EYj5TkOHWWk7WJww05cs/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.4-20250723-110935-8225271","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111868},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"8225271130a9b89e0a00683c239224ebd80edc54","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"h3":"^1.15.3","ufo":"^1.6.1","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^3.3.2","citty":"^0.1.6","destr":"^2.0.5","pathe":"^2.0.3","sharp":"^0.34.3","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.16.1","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.13.1","devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","vitest":"^3.2.4","unbuild":"^3.5.0","prettier":"^3.6.2","typescript":"^5.8.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","serve-handler":"^6.1.6","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.4-20250723-110935-8225271_1753268984927_0.611953613043128","host":"s3://npm-registry-packages-npm-production"}},"3.0.4-20250723-111022-5428f66":{"name":"ipx-nightly","version":"3.0.4-20250723-111022-5428f66","license":"MIT","_id":"ipx-nightly@3.0.4-20250723-111022-5428f66","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"c5fe38d608947fd52aaccca28c21d03c61cc9d7e","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.4-20250723-111022-5428f66.tgz","fileCount":16,"integrity":"sha512-V2Lr91vTM3kB+ROoXp5rlZhMfT+J/ZSonnFdrxt93AunWFvr5W/vsfvySgT7WWcXp7YRlBEikNV91zULMYBw6w==","signatures":[{"sig":"MEUCID7WCkqFPVualSgk6dwNarRchVQa+4/z+6OojkLdPuebAiEAwJ8CHR1LkUkANppP3N8RIUdiA7KTbEpbAjhpIrHePhs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.4-20250723-111022-5428f66","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111868},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"5428f66fe81ecb30733fe07a10bc117878ee3752","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"h3":"^1.15.3","ufo":"^1.6.1","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^3.3.2","citty":"^0.1.6","destr":"^2.0.5","pathe":"^2.0.3","sharp":"^0.34.3","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.16.1","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.13.1","devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","vitest":"^3.2.4","unbuild":"^3.5.0","prettier":"^3.6.2","typescript":"^5.8.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","serve-handler":"^6.1.6","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.4-20250723-111022-5428f66_1753269031435_0.4728812125770696","host":"s3://npm-registry-packages-npm-production"}},"3.0.4-20250723-111208-2dfec2d":{"name":"ipx-nightly","version":"3.0.4-20250723-111208-2dfec2d","license":"MIT","_id":"ipx-nightly@3.0.4-20250723-111208-2dfec2d","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"dec6fd3c8038fdb213e6c42527b8506c912d6f2c","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.4-20250723-111208-2dfec2d.tgz","fileCount":16,"integrity":"sha512-PTyhXWGOVAz3D3aMPTzpFSWJHpqe0sQAr9Zu6r/pMq4tEY+oC7Tvdot5Aa+gzqforawes/qPF27ZjYYxhMgEqg==","signatures":[{"sig":"MEYCIQDYdrZSQp0yQ+7tZ9bw9gZbucC02tJQ2DQd70gmts2DfQIhAMeICNTxH9DRKHSqkADagsXqssbIkCegbBTccWZDNFq+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.4-20250723-111208-2dfec2d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111868},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"2dfec2db95ae37c924620fa6d5c52b6a41351bc1","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"h3":"^1.15.3","ufo":"^1.6.1","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^3.3.2","citty":"^0.1.6","destr":"^2.0.5","pathe":"^2.0.3","sharp":"^0.34.3","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.16.1","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.13.1","devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","vitest":"^3.2.4","unbuild":"^3.5.0","prettier":"^3.6.2","typescript":"^5.8.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","serve-handler":"^6.1.6","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.4-20250723-111208-2dfec2d_1753269137017_0.6637194625712024","host":"s3://npm-registry-packages-npm-production"}},"3.0.4-20250723-111212-b56caf8":{"name":"ipx-nightly","version":"3.0.4-20250723-111212-b56caf8","license":"MIT","_id":"ipx-nightly@3.0.4-20250723-111212-b56caf8","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"2126d36068940b095d70a0dc2acde34a7b198110","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.4-20250723-111212-b56caf8.tgz","fileCount":16,"integrity":"sha512-bxhBTLNYilcNtpUM5FFWPuQzTdPY1QQmPmC+mbf6nOJYR3Cec6d4j+ucbEErAFGbN+9o9ZuwCkeDpAl1nZWAXA==","signatures":[{"sig":"MEYCIQCItio6DHvF/ROf908fLsPWFXqT7JjTmefzNGxpAwC3GQIhAKffbDtACrh4Ht4IvCix7YOXtdTedK9JS9WJYoew9fvf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.4-20250723-111212-b56caf8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111868},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"b56caf8ab72466b68767d8616c4676a81415eaeb","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.3","dependencies":{"h3":"^1.15.3","ufo":"^1.6.1","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^3.3.2","citty":"^0.1.6","destr":"^2.0.5","pathe":"^2.0.3","sharp":"^0.34.3","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.16.1","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.13.1","devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","vitest":"^3.2.4","unbuild":"^3.5.0","prettier":"^3.6.2","typescript":"^5.8.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","serve-handler":"^6.1.6","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.4-20250723-111212-b56caf8_1753269141203_0.5204599975399546","host":"s3://npm-registry-packages-npm-production"}},"3.0.4-20250723-111604-058abdd":{"name":"ipx-nightly","version":"3.0.4-20250723-111604-058abdd","license":"MIT","_id":"ipx-nightly@3.0.4-20250723-111604-058abdd","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"69734e4303b1c757fc781866387ce85ecae810a0","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.4-20250723-111604-058abdd.tgz","fileCount":16,"integrity":"sha512-QQliLdFFtirq+0C3W5fGCFSq3sAORhYIKJWCF/H7sfNWATi6wSGmaF1shjAEP7s7SvYgh5qBv+cxUu7lzn3ZNQ==","signatures":[{"sig":"MEUCIBQ4fNU+jIRVJUGzPxJRX8zBggns7DlCxJqqqRAHKEWeAiEAovsDSVqrx1Bav/lqQd1XtcwPaYOYJB2z/6D6EdgzK98=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.4-20250723-111604-058abdd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111868},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"058abdde659353377784c7a2fceb1ba294277543","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.3","dependencies":{"h3":"^1.15.3","ufo":"^1.6.1","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^3.3.2","citty":"^0.1.6","destr":"^2.0.5","pathe":"^2.0.3","sharp":"^0.34.3","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.16.1","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.13.1","devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","vitest":"^3.2.4","unbuild":"^3.5.0","prettier":"^3.6.2","typescript":"^5.8.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","serve-handler":"^6.1.6","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.4-20250723-111604-058abdd_1753269373470_0.9632781683392113","host":"s3://npm-registry-packages-npm-production"}},"3.0.4-20250723-113112-058abdd":{"name":"ipx-nightly","version":"3.0.4-20250723-113112-058abdd","license":"MIT","_id":"ipx-nightly@3.0.4-20250723-113112-058abdd","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"33f4c94a29e392ba41e48a1e9969a171169218a2","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.4-20250723-113112-058abdd.tgz","fileCount":16,"integrity":"sha512-UI+WRMpR41v2TkSaPOah6qiozBKMi4puCOfdEPvm98FbP937/qUF2Ed+vNcn3xPIoksBZVFgiJ/8Bl/YpWjnVg==","signatures":[{"sig":"MEYCIQCw4Lvb7fQU+sonqPI81LXqjtG4HecMhpaL7qB1GNsoNAIhAKbjZ/OTUOHikttVgnnTZNTOOgKx6VBckvJrkEnJJt3o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.4-20250723-113112-058abdd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111856},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"36aac6b17a36e4de887aa9ded383427f75bab6ff","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"h3":"^1.15.3","ufo":"^1.6.1","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^4.0.0","citty":"^0.1.6","destr":"^2.0.5","pathe":"^2.0.3","sharp":"^0.34.3","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.16.1","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.13.1","devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","vitest":"^3.2.4","unbuild":"^3.5.0","prettier":"^3.6.2","typescript":"^5.8.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","serve-handler":"^6.1.6","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.4-20250723-113112-058abdd_1753270280485_0.6401647144935769","host":"s3://npm-registry-packages-npm-production"}},"3.0.4-20250723-113453-335710e":{"name":"ipx-nightly","version":"3.0.4-20250723-113453-335710e","license":"MIT","_id":"ipx-nightly@3.0.4-20250723-113453-335710e","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"bb832576f99c16fbf12fb6056de079647a055595","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.4-20250723-113453-335710e.tgz","fileCount":16,"integrity":"sha512-hEtoIhX1JHHviA56kjkOKxDYCA+eX9v5fa3RyaDPVDPxtm8stISTKL49ai7iXQzY2oiN4baM1Mo27D6eC1lp6Q==","signatures":[{"sig":"MEUCICAJGdXdzgE7QFp6LNxCX5zxJ9Rril9ziiSxIx80PrBjAiEAiFjzue2MI/qjG9E6gO1/ZNRoxyLm6lIjLVglYrkmAK8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.4-20250723-113453-335710e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111856},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"335710eb1c7b1e6524a2ba636325d8e87c11905e","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.3","dependencies":{"h3":"^1.15.3","ufo":"^1.6.1","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^4.0.0","citty":"^0.1.6","destr":"^2.0.5","pathe":"^2.0.3","sharp":"^0.34.3","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.16.1","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.13.1","devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","vitest":"^3.2.4","unbuild":"^3.5.0","prettier":"^3.6.2","typescript":"^5.8.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","serve-handler":"^6.1.6","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.4-20250723-113453-335710e_1753270502618_0.24466803565591322","host":"s3://npm-registry-packages-npm-production"}},"3.0.4-20250723-113809-aa94ce2":{"name":"ipx-nightly","version":"3.0.4-20250723-113809-aa94ce2","license":"MIT","_id":"ipx-nightly@3.0.4-20250723-113809-aa94ce2","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"e16857104ec6f69a38d0578538bf97225c6dece3","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.4-20250723-113809-aa94ce2.tgz","fileCount":16,"integrity":"sha512-dNE+ZbCDmKMEmw4YArhAVvHORSHj5r0JzxBOcBcMb++oQLEGwwRkzOMgxYBuVEcU+sXG6H/KEOYrH5HVU4uBCQ==","signatures":[{"sig":"MEUCIAUMhTfX1ALr4NdbIJ7IlsDE56L93VyIrYPZUk1pgFAVAiEAr8YJlszbvkF1+2jZErFRIB6ut/M/WTZS85gIKK8/Ay0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.4-20250723-113809-aa94ce2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111856},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"aa94ce294392291955d43a959846a1b3ee54bc19","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"h3":"^1.15.3","ufo":"^1.6.1","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^4.0.0","citty":"^0.1.6","destr":"^2.0.5","pathe":"^2.0.3","sharp":"^0.34.3","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.16.1","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.13.1","devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","vitest":"^3.2.4","unbuild":"^3.5.0","prettier":"^3.6.2","typescript":"^5.8.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","serve-handler":"^6.1.6","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.4-20250723-113809-aa94ce2_1753270698405_0.2418673161428342","host":"s3://npm-registry-packages-npm-production"}},"3.0.4-20250723-113927-aa94ce2":{"name":"ipx-nightly","version":"3.0.4-20250723-113927-aa94ce2","license":"MIT","_id":"ipx-nightly@3.0.4-20250723-113927-aa94ce2","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"be40bf5af48e4cb0cf38554b3b06981074dc3e6c","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.0.4-20250723-113927-aa94ce2.tgz","fileCount":16,"integrity":"sha512-JWEXf9Mp4dvx/ymvS8q8S0yW699Jlcoys/4Hxhl8MBZI2T+mYgvlprhwi2qUMi65TJj6F8eUNRNV438x5nfCcQ==","signatures":[{"sig":"MEUCIFouU7yzJZj7BWQbyH8NsCk71XZlNSEiJDgje47qGb9xAiEAwZt6qju5A2GWBWH6Mra+J1iODM3NfX2gsYlLhSU0Bxk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.0.4-20250723-113927-aa94ce2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111856},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"aa94ce294392291955d43a959846a1b3ee54bc19","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.3","dependencies":{"h3":"^1.15.3","ufo":"^1.6.1","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^4.0.0","citty":"^0.1.6","destr":"^2.0.5","pathe":"^2.0.3","sharp":"^0.34.3","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.16.1","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.13.1","devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","vitest":"^3.2.4","unbuild":"^3.5.0","prettier":"^3.6.2","typescript":"^5.8.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","serve-handler":"^6.1.6","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.0.4-20250723-113927-aa94ce2_1753270777175_0.3037590066825131","host":"s3://npm-registry-packages-npm-production"}},"3.1.1-20250724-165712-81693dd":{"name":"ipx-nightly","version":"3.1.1-20250724-165712-81693dd","license":"MIT","_id":"ipx-nightly@3.1.1-20250724-165712-81693dd","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"27a993a61a3d49628e73e5ef278349cbafdb0ab4","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.1.1-20250724-165712-81693dd.tgz","fileCount":16,"integrity":"sha512-jl4GjnW+KMYUHCJyNLfYC35iSP4R/4GE8ahiUVK8F8yXVr9YWfKMf9ItCJJbTtyiW6aCB8wksZnGsQuBFfjA0w==","signatures":[{"sig":"MEUCIQCZqKyLHmLl9vfeHsfI5Dp+OEMB0brhK+TAUeMV4RTZYwIgZDE5OrnV9Q8Qb46XENoLolWMRxy1LFVhu4wXUUVpwKo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.1.1-20250724-165712-81693dd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111868},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"81693ddbfc062cc922e4e2406e8427ab4e3ad214","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"h3":"^1.15.3","ufo":"^1.6.1","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^4.0.0","citty":"^0.1.6","destr":"^2.0.5","pathe":"^2.0.3","sharp":"^0.34.3","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.16.1","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.13.1","devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","vitest":"^3.2.4","unbuild":"^3.5.0","prettier":"^3.6.2","typescript":"^5.8.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","serve-handler":"^6.1.6","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.1.1-20250724-165712-81693dd_1753376240737_0.3915025050664491","host":"s3://npm-registry-packages-npm-production"}},"3.2.0-20250730-173703-3679ee6":{"name":"ipx-nightly","version":"3.2.0-20250730-173703-3679ee6","license":"MIT","_id":"ipx-nightly@3.2.0-20250730-173703-3679ee6","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"d4eb907dfe80e6dac9d6a5aa4fa6816539a10999","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.2.0-20250730-173703-3679ee6.tgz","fileCount":16,"integrity":"sha512-EByzkwnOdaZIh/32LGCrPkFWrPKwnfsCtCT4SOlrN1C68ByULW2NR7+BPLVa2ivrvQimFKKVrdm4veId0iSCSw==","signatures":[{"sig":"MEYCIQDUKyduQDd+ea4G/GCnuplva7WKJSkhJiJlgo9f+AfW3wIhAIDh85rOzwgQGb99NxQbad9GryYnschslxyLizSuE7LH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.2.0-20250730-173703-3679ee6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105898},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"3679ee62b16b215b345cc007bfc26cf0c842a3c4","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"h3":"^1.15.3","ufo":"^1.6.1","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^4.0.0","citty":"^0.1.6","destr":"^2.0.5","pathe":"^2.0.3","sharp":"^0.34.3","ofetch":"^1.4.1","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.16.1","image-meta":"^0.2.1","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.13.1","devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","vitest":"^3.2.4","unbuild":"^3.5.0","prettier":"^3.6.2","typescript":"^5.8.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","serve-handler":"^6.1.6","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.2.0-20250730-173703-3679ee6_1753897031833_0.5115494907880291","host":"s3://npm-registry-packages-npm-production"}},"3.2.0-20251031-095427-c897029":{"name":"ipx-nightly","version":"3.2.0-20251031-095427-c897029","license":"MIT","_id":"ipx-nightly@3.2.0-20251031-095427-c897029","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx-nightly":"bin/ipx.mjs"},"dist":{"shasum":"305e8b1bd0dc2298e83268c536d1a0c5e0e65e65","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-3.2.0-20251031-095427-c897029.tgz","fileCount":16,"integrity":"sha512-E31/RE1uGK8TV9dKaseV/1O9DQFKeiqWZvYVgevPgUWu8F5/UITUXqdyqQptJSMvPr3rzqBvl6Gy4HlzkIekxw==","signatures":[{"sig":"MEUCIDZo4cXmrOdNz6/Mz8kWvY9/eO5jTpnBx8eQ+4FH7F+TAiEA2d4Pl+K9Lic2AiPf4Vl/GHQ0eUPl2y0q3Qt89sLBf0s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@3.2.0-20251031-095427-c897029","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105898},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"c89702978d314f7b66d80e1b15e7ad074224a39a","scripts":{"dev":"listhen -w playground","ipx":"jiti ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && vitest run --coverage","build":"unbuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && changelogen --release --push && npm publish","lint:fix":"eslint . --fix && prettier -w src test"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"10.8.2","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"h3":"^1.15.4","ufo":"^1.6.1","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","svgo":"^4.0.0","citty":"^0.1.6","destr":"^2.0.5","pathe":"^2.0.3","sharp":"^0.34.4","ofetch":"^1.5.0","consola":"^3.4.2","listhen":"^1.9.0","unstorage":"^1.17.1","image-meta":"^0.2.2","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.20.0","devDependencies":{"jiti":"^2.6.1","eslint":"^9.38.0","vitest":"^4.0.5","unbuild":"^3.6.1","prettier":"^3.6.2","typescript":"^5.9.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","serve-handler":"^6.1.6","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^4.0.5","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_3.2.0-20251031-095427-c897029_1761904476884_0.6775294568756751","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20251204-175340-c88b6db":{"name":"ipx-nightly","version":"4.0.0-20251204-175340-c88b6db","license":"MIT","_id":"ipx-nightly@4.0.0-20251204-175340-c88b6db","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"765f97d21672842254f7be68d2009b7e23691e14","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20251204-175340-c88b6db.tgz","fileCount":8,"integrity":"sha512-27Vb7J4W5uOW58pZO6WbCbZj5r6acdE+7LuD10FYPF63fNF8halNGAa6zqVAbMcMJTPxgWbXCJAltSaBfNMLOQ==","signatures":[{"sig":"MEYCIQC7QJllHmBRwxjSNk4592O7nq76xL6+si3gR+EqgWm/MgIhAICSlVMEiY2pVz9Em3zfJachUM5SZs1q3GMNhpZNnUPU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20251204-175340-c88b6db","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49680},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs"},"gitHead":"c88b6dbe00ceb61a758231b3b5fb4f69ba1d8940","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"11.6.4","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"h3":"^2.0.1-rc.5","ufo":"^1.6.1","xss":"^1.0.15","defu":"^6.1.4","etag":"^1.8.1","srvx":"^0.9.7","svgo":"^4.0.0","citty":"^0.1.6","destr":"^2.0.5","pathe":"^2.0.3","sharp":"^0.34.5","ofetch":"^1.5.1","consola":"^3.4.2","unstorage":"^1.17.3","image-meta":"^0.2.2","@fastify/accept-negotiator":"^2.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.24.0","devDependencies":{"automd":"^0.4.2","eslint":"^9.39.1","obuild":"^0.4.4","vitest":"^4.0.15","prettier":"^3.7.4","typescript":"^5.9.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","serve-handler":"^6.1.6","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^4.0.15","@types/is-valid-path":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20251204-175340-c88b6db_1764870831286_0.37595973583880293","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20251204-192716-1db481c":{"name":"ipx-nightly","version":"4.0.0-20251204-192716-1db481c","license":"MIT","_id":"ipx-nightly@4.0.0-20251204-192716-1db481c","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"0a6925e6c9e2ae26d307782c491ae3dce13a5f6f","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20251204-192716-1db481c.tgz","fileCount":21,"integrity":"sha512-BwK/YpdfZx1GBv6Ra7ZeyTmX4DxY1r/sNDi4WnyYRt8bl9MRAuM5r5mJT3+jbwIFdIIidDOPeLvLQkrBscfUkw==","signatures":[{"sig":"MEUCIH7hzvwoYOpYFJjk4NY9QmzJjfeJzGsV/ydUVEBiRqkJAiEA1JJKRaHUpOpaUxRChjhWrvGVNT5NlMVEXcz0lcbjsnw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20251204-192716-1db481c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1206994},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"1db481c692dee938fbdd77f4811179c2b1afb377","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"11.6.4","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","dependencies":{"srvx":"^0.9.7","pathe":"^2.0.3","sharp":"^0.34.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.24.0","devDependencies":{"h3":"^2.0.1-rc.5","ufo":"^1.6.1","etag":"^1.8.1","svgo":"^4.0.0","automd":"^0.4.2","eslint":"^9.39.1","obuild":"^0.4.7","vitest":"^4.0.15","prettier":"^3.7.4","unstorage":"^1.17.3","image-meta":"^0.2.2","oxc-minify":"^0.101.0","typescript":"^5.9.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^4.0.15","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20251204-192716-1db481c_1764876446206_0.47487780116640765","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20251204-195016-2b2252d":{"name":"ipx-nightly","version":"4.0.0-20251204-195016-2b2252d","license":"MIT","_id":"ipx-nightly@4.0.0-20251204-195016-2b2252d","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"9efec5878134dda90cfa2c0da782a444ff4abec9","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20251204-195016-2b2252d.tgz","fileCount":21,"integrity":"sha512-Pc+2UfQ+MtXiQXdMPKDXeSnDPNtOYMyLP+CgUn9YqyFHiAmuhGOJcat6VfTUeaNqz8kk61OLBhtP0n9vuZ9SqA==","signatures":[{"sig":"MEUCIQC7k0LmDFYxcC+WSMleix6Jbc3+sWiG+PBXRwS3Nd9o7AIge56YsHieBWFjoiHuCmmLppFZrGm56kRMbUNDpeJdDEc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20251204-195016-2b2252d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1207365},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"2b2252d24051b87d68c2557400f2b6ea9af4b6f9","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"11.6.4","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","dependencies":{"srvx":"^0.9.7","pathe":"^2.0.3","sharp":"^0.34.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.24.0","devDependencies":{"h3":"^2.0.1-rc.5","ufo":"^1.6.1","etag":"^1.8.1","svgo":"^4.0.0","automd":"^0.4.2","eslint":"^9.39.1","obuild":"^0.4.7","vitest":"^4.0.15","prettier":"^3.7.4","unstorage":"^1.17.3","image-meta":"^0.2.2","oxc-minify":"^0.101.0","typescript":"^5.9.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^4.0.15","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20251204-195016-2b2252d_1764877826857_0.11203804593720146","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-alpha.1":{"name":"ipx-nightly","version":"4.0.0-alpha.1","license":"MIT","_id":"ipx-nightly@4.0.0-alpha.1","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"cf2af75b2cfaaacfaa6c0577c098875e32c276b7","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-alpha.1.tgz","fileCount":21,"integrity":"sha512-UmWcZRPo1erMpkjAL7qYPL9shcvRpua9bpLbJL/p/Nt4T4pBKFBtPMWXxwCA9wZL+CzTQxlelmUxoeA/BA/jsg==","signatures":[{"sig":"MEYCIQDJhLHlzGCtSLIcLxju/2xq2eBYY6E7vMwbxFKsGIYTJAIhAK5F+uIThuWZWxfv9j1E5ewePU+CjCXM12JwwKsqzdt/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-alpha.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1207349},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"3189d0e3e253e7a580c284f42ece5af07b75fba8","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"11.6.4","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","dependencies":{"srvx":"^0.9.7","pathe":"^2.0.3","sharp":"^0.34.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.24.0","devDependencies":{"h3":"^2.0.1-rc.5","ufo":"^1.6.1","etag":"^1.8.1","svgo":"^4.0.0","automd":"^0.4.2","eslint":"^9.39.1","obuild":"^0.4.7","vitest":"^4.0.15","prettier":"^3.7.4","unstorage":"^1.17.3","image-meta":"^0.2.2","oxc-minify":"^0.101.0","typescript":"^5.9.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^4.0.15","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-alpha.1_1764878341202_0.2613537263862078","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260626-073827-0e4c88b":{"name":"ipx-nightly","version":"4.0.0-20260626-073827-0e4c88b","license":"MIT","_id":"ipx-nightly@4.0.0-20260626-073827-0e4c88b","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"cbafe56375c5af6be55c9232739c1184c63f9c86","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260626-073827-0e4c88b.tgz","fileCount":23,"integrity":"sha512-ENLwz6XTcCJgWWeBoLoUx3slwNCAKDOHtUjCpz38njf3fJmPFC39KgJq9KWdP/d+KiylIVyH+rrd2KraUd1DuA==","signatures":[{"sig":"MEUCIQCNw9TifnryuPUcE/H6xaGVwgLG8WNu+aKlZiztVYZehQIgdu2Xix0KaMO1Z1Q3wsFO/czVJfshXVgQKfBYapmHTxg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260626-073827-0e4c88b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1513042},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"0e4c88b49cacf543c800968bf12496954e7f2cd3","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"11.17.0","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.17.0","dependencies":{"srvx":"^0.11.17","pathe":"^2.0.3","sharp":"^0.35.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.9.0","devDependencies":{"h3":"2.0.1-rc.22","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.1","automd":"^0.4.3","eslint":"^10.5.0","obuild":"^0.4.37","vitest":"^4.1.9","prettier":"^3.8.4","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":"^0.137.0","typescript":"^6.0.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.9","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260626-073827-0e4c88b_1782459520478_0.2658911963630992","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260626-074735-86b0b12":{"name":"ipx-nightly","version":"4.0.0-20260626-074735-86b0b12","license":"MIT","_id":"ipx-nightly@4.0.0-20260626-074735-86b0b12","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"ec23fd385625fe5ef7089a02d0b939d2885a35a6","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260626-074735-86b0b12.tgz","fileCount":23,"integrity":"sha512-WSuwZe7jSRF593cDMD1Yl4PfLk3l12PpiYonxhMuRykmavMopf7A6gT0vzh8qWtrr0C0AzAEUsOuIikgfphMfA==","signatures":[{"sig":"MEUCIQC/LFNr1EPS/Dq8mpwrrJh9EBRJqYVpUsq3XIEajM1JCAIgZuRKjB8OFrzvOKfjn7i1WKDm3FpYi4fBDbbPWkskeUI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260626-074735-86b0b12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1513099},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"86b0b1270dde112715d8780160210b600497b700","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"11.17.0","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.17.0","dependencies":{"srvx":"^0.11.17","pathe":"^2.0.3","sharp":"^0.35.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.9.0","devDependencies":{"h3":"2.0.1-rc.22","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.1","automd":"^0.4.3","eslint":"^10.5.0","obuild":"^0.4.37","vitest":"^4.1.9","prettier":"^3.8.4","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":"^0.137.0","typescript":"^6.0.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.9","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260626-074735-86b0b12_1782460068505_0.03589148275321352","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-alpha.2":{"name":"ipx-nightly","version":"4.0.0-alpha.2","license":"MIT","_id":"ipx-nightly@4.0.0-alpha.2","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"fdd4697734703523158b6baf297bff67fd61ddf7","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-alpha.2.tgz","fileCount":23,"integrity":"sha512-jiy5lGDspbCpibplFgRePKZxgal+kVqlZrXh3gd27XP11gXnGLxP831rh5ldp6n67RNTxPlDnjTqE/OjsMIr2g==","signatures":[{"sig":"MEUCIAKx5bj/ZqiJtznFDSDyw6rRRAr3vVMwI9mHFNDEB9RmAiEA4zB5tgIzwwhdluujkGehzyrdCm1SYU4jaQM4RoT9UR4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-alpha.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1513083},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"d51b720301494e9623aabd6a6a0519af81720026","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"11.17.0","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.17.0","dependencies":{"srvx":"^0.11.17","pathe":"^2.0.3","sharp":"^0.35.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.9.0","devDependencies":{"h3":"2.0.1-rc.22","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.1","automd":"^0.4.3","eslint":"^10.5.0","obuild":"^0.4.37","vitest":"^4.1.9","prettier":"^3.8.4","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":"^0.137.0","typescript":"^6.0.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.9","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-alpha.2_1782460424414_0.6448400628047037","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260726-190427-5b1ea5e":{"name":"ipx-nightly","version":"4.0.0-20260726-190427-5b1ea5e","license":"MIT","_id":"ipx-nightly@4.0.0-20260726-190427-5b1ea5e","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"84848e1b48fcb45233b6b424ca9833df291f1401","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260726-190427-5b1ea5e.tgz","fileCount":23,"integrity":"sha512-sF5JRAgdry0Vw2HwAWmBT+Tjn5JCrVD7VObaZIdWp6YYW7pZOgbxO1s8sWIEyDFva1M16sQ5j8cpCtV0UHQ3xQ==","signatures":[{"sig":"MEYCIQCQFAdMhtA45Xt4bRMOSKjDvpl4DfJt6+mwLG63nVrnkAIhAMBGYnqoE/wpoW50zbJxisU3yKvfZmY7fkFRewcElkiC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260726-190427-5b1ea5e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1515158},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"70acd53a938835e16495199e4270a6fad83941ce","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","pathe":"^2.0.3","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260726-190427-5b1ea5e_1785092680846_0.756107104019885","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260726-193108-50becb0":{"name":"ipx-nightly","version":"4.0.0-20260726-193108-50becb0","license":"MIT","_id":"ipx-nightly@4.0.0-20260726-193108-50becb0","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"19fd0f2560acb613a9b9fb6fff47dc64cb3db047","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260726-193108-50becb0.tgz","fileCount":23,"integrity":"sha512-VJD2/LQJEdK2rnfAxbhtZmYT913HD91+1ctpaDj4pCxRIUDgy/Am9wWmWJ4AX5SlrulevMOwwWIOJbmj8HyBhA==","signatures":[{"sig":"MEUCIQCEeX6Zum6MP8dhayPUJy5OIF0TdhVqUhKJ+ZJSw2eYcQIgQAGQsNwwwhnBBgbea9qNZlTSU464pBIGprqJG6kF3mo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260726-193108-50becb0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1515449},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"50becb0a6fc584cf4c0f7448c10596d646cecb56","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","pathe":"^2.0.3","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260726-193108-50becb0_1785094282542_0.5465985288175257","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260726-193533-28def87":{"name":"ipx-nightly","version":"4.0.0-20260726-193533-28def87","license":"MIT","_id":"ipx-nightly@4.0.0-20260726-193533-28def87","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"9ae5a8a633a2a3723ce216c94c5ad9514519e0a0","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260726-193533-28def87.tgz","fileCount":23,"integrity":"sha512-HTl4v3PpoS/Iy9qTlFkuh9dKh4J4BIv+ZS5C4PK5ZCRMhy3wH2jMEOnpdy9P/pWUVSGLH165zPyDEku2nvSVug==","signatures":[{"sig":"MEQCIBVKQoBgOECeJJmSYyZxDPHv8AFX6Fn89fWMGiASGUdZAiBab/hM22gdDiHZobwMUiJeM6Nn7iqvv9orpn1DpHiOcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260726-193533-28def87","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1515472},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"28def870c15fc021eb4eaefb2cae3ec3d3949092","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","pathe":"^2.0.3","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260726-193533-28def87_1785094546567_0.32278991128982315","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260726-195356-27ac7e3":{"name":"ipx-nightly","version":"4.0.0-20260726-195356-27ac7e3","license":"MIT","_id":"ipx-nightly@4.0.0-20260726-195356-27ac7e3","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"180cc7f1f0662e470ddc124d3cc7561a50838967","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260726-195356-27ac7e3.tgz","fileCount":23,"integrity":"sha512-Fu1eR8NzFRsmFAqYHCNI5qcV6rhZzUq5/iRT2jB1NQFOtaiclOWp9Zw7Cr+9Pu0ueaUC8gon1hzU2LlEccMOJg==","signatures":[{"sig":"MEQCIBOuOGrMxmgIPcVZ6S7eqCLQnvV8W1Q7IDAlyjdZE5XFAiAQQTBApV0DUqBTHBrbTZ3QpHIHvSUQsGRoWVKtMjb8fQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260726-195356-27ac7e3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1515520},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"27ac7e3c30d9e750371d5082cff3ec61ccbe8f7b","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","pathe":"^2.0.3","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260726-195356-27ac7e3_1785095648496_0.37501280468528564","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260726-204524-f946dfc":{"name":"ipx-nightly","version":"4.0.0-20260726-204524-f946dfc","license":"MIT","_id":"ipx-nightly@4.0.0-20260726-204524-f946dfc","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"4f5b20f3a34a5a093173e03fa4cddd0c863c7df4","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260726-204524-f946dfc.tgz","fileCount":23,"integrity":"sha512-zRWcGiK9m2aDUxv8+KtRsyykLwGI0TvPgEOwe6dV/ep/RAT6Kxp5IqEYV+t4K4wWjJHe8spli6E7Rc/YjgQ0cw==","signatures":[{"sig":"MEUCICASPF4lXNnGgulIvnDyOvSC9n/rF9jDXF4jg7R1xgQnAiEA1Qk6nHfQi6Ln4zAJZoLxTdGi48fvyvQWM2FXmwZVmUU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260726-204524-f946dfc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1523230},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"f946dfc60d613c28f347b9d0f64dbb9297c0d144","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","pathe":"^2.0.3","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260726-204524-f946dfc_1785098736085_0.6386038531902967","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260726-211020-84ff786":{"name":"ipx-nightly","version":"4.0.0-20260726-211020-84ff786","license":"MIT","_id":"ipx-nightly@4.0.0-20260726-211020-84ff786","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"7068086e3a5579eaee5157052d0793dd369b7763","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260726-211020-84ff786.tgz","fileCount":25,"integrity":"sha512-xu7zfiTbZpQvJfMHtePpQQniklx2YCD/2c5yLwqDsJygBsSEnjP7ZXpyslF7lkmlHOJudyidfndZf6Q9lMB6CA==","signatures":[{"sig":"MEUCIDlB1FLI/6EZqeCCbhvQryG761yFcNQPcjeY6AhBnGouAiEAiPPJhHxjTbtK2UPKgPNIWrz4KfzqqbwSkXxZ1AaHVW0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260726-211020-84ff786","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1529918},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"84ff7863953d8e2374bf61f41244adbbb8c031e1","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","pathe":"^2.0.3","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260726-211020-84ff786_1785100231729_0.647941629732556","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260726-220357-30e92fb":{"name":"ipx-nightly","version":"4.0.0-20260726-220357-30e92fb","license":"MIT","_id":"ipx-nightly@4.0.0-20260726-220357-30e92fb","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"3dfced21ea4f3e34a3412ccf4cf7b4d2f30c3316","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260726-220357-30e92fb.tgz","fileCount":25,"integrity":"sha512-KSxjXWxpY3NnB20OvdmshP4Uvaj0fCyUAb61MN8TV3YOd+U2zbLCtaOWoHX7bSEu5Ay00rVWtEXU1ddpO2zp8Q==","signatures":[{"sig":"MEUCIB6fpoKPDHDUdnYoTwDgcYJuDe37FCtCoaew6b6jbB2VAiEAnaUCk+rJroi/M2aylq3ZN31L8Lo54kWI0nvskmbrIAo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260726-220357-30e92fb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1540882},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"30e92fb6d504aaad6750d1bd638c0129d93e8873","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","pathe":"^2.0.3","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260726-220357-30e92fb_1785103450665_0.5649409415682489","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260726-223634-52d0000":{"name":"ipx-nightly","version":"4.0.0-20260726-223634-52d0000","license":"MIT","_id":"ipx-nightly@4.0.0-20260726-223634-52d0000","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"9d02cc715fdc470372425e25109993292827fcbd","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260726-223634-52d0000.tgz","fileCount":25,"integrity":"sha512-jGoxFUTYTIu+S3JPgsO9pUYVGwz0U/4LcIAGZSF9Qi5xKp+2Cl9zWpNP804r1ZYJiIcY4FZzV1ba0x4xVaLZcg==","signatures":[{"sig":"MEUCIQCxmg9j0XH6waHSwIr/GRbHCO7BGiMNRifswyPNMQFySAIgNXVQgaFJSblU2dWdQGxYOylQ3bjG9MRlmEvqr9XYjs0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260726-223634-52d0000","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1545655},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"52d00001015683f2abaef11f03f1398a8ab53a47","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","pathe":"^2.0.3","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260726-223634-52d0000_1785105408029_0.07219929865248575","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260726-225842-97e6eb7":{"name":"ipx-nightly","version":"4.0.0-20260726-225842-97e6eb7","license":"MIT","_id":"ipx-nightly@4.0.0-20260726-225842-97e6eb7","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"50e9992c30106713c9601865fb4b8f161886699c","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260726-225842-97e6eb7.tgz","fileCount":25,"integrity":"sha512-TOjiLuhm565QhzscsGRWnuLxEE8RsbkdpCKYlapLj516UPO0lVbJx7fhpZmjuPvyVANyeKzUabE3F4OH3r/cTA==","signatures":[{"sig":"MEYCIQDXz7ObPU77ZokRDahiX7WOO0unEwAGs8NY301e7u414QIhANudJMCrFaNH04x5X9rvoyzJ7upcl3EqKfwxHKVw7kNv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260726-225842-97e6eb7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1548961},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"97e6eb74b55f30c80086742946106e2d0109c5af","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","pathe":"^2.0.3","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260726-225842-97e6eb7_1785106736377_0.21019642493606505","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260727-083457-e8fe081":{"name":"ipx-nightly","version":"4.0.0-20260727-083457-e8fe081","license":"MIT","_id":"ipx-nightly@4.0.0-20260727-083457-e8fe081","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"48f9b225738467e21f680787b02563704ba1b9a8","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260727-083457-e8fe081.tgz","fileCount":25,"integrity":"sha512-58UtA2e1CwGC3+GgZrflgAktMMCcijppc//q9dMxrGdW6nizy0RYYwYi1wfeTKMeUuc6hiuIJur3FSei3FfLmA==","signatures":[{"sig":"MEQCIASthLe7k9tOTcSZLDsd5KeG7/MvOvCIdSNmbzAB6XkQAiAVJ2pn05jIpHifQV04VUT1IdYDwthINqP6RGas/P7rMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260727-083457-e8fe081","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1558090},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"e8fe0812c4a0f536295d8e10a1ebaf1065e40c57","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","pathe":"^2.0.3","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260727-083457-e8fe081_1785141309677_0.15210421971661736","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260727-084145-b4357f9":{"name":"ipx-nightly","version":"4.0.0-20260727-084145-b4357f9","license":"MIT","_id":"ipx-nightly@4.0.0-20260727-084145-b4357f9","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"e8b923503f10757b60182b8834740ae3df90008e","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260727-084145-b4357f9.tgz","fileCount":25,"integrity":"sha512-mtOjWorybsHdw1ynl2YSGt5nMS1xE6NyqnW6tG7rdIwXtn6aW46+WthVQKfoEgkQ/HhH66RciA+xwpzFX7ltzQ==","signatures":[{"sig":"MEYCIQD7a9dvFPO160DW2RUCOingx+SzcJ0Ocflw0YVVL4MoegIhAOj9eCQlm0InVa2bNaz9fVQJFbNm4qzrjYsjIkF6MvbC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260727-084145-b4357f9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1558090},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"b4357f9850054c5b5a48a975a475ab241a0403a2","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test","test:types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","pathe":"^2.0.3","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260727-084145-b4357f9_1785141720414_0.9300479342668069","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260727-092930-5204d9c":{"name":"ipx-nightly","version":"4.0.0-20260727-092930-5204d9c","license":"MIT","_id":"ipx-nightly@4.0.0-20260727-092930-5204d9c","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"0dd819f558185b518ba83de51e10c3808548d4c7","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260727-092930-5204d9c.tgz","fileCount":25,"integrity":"sha512-He93MeBKfilg2oeclyj6iq1PTsHcqc57OjL4jjx8SVLwEOtENqA1qWgN+EXdJHeXWTO154SRwWvwnGqddlbY6A==","signatures":[{"sig":"MEYCIQDH7u613NpbBNdqX+zYY2HOabLP/w+1r1tLt1ETotzejgIhAOuIFZ5EZGeq08SP2ZOzBj6vo2MdSp977w8/8fHkRQJc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260727-092930-5204d9c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1560227},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"5204d9c5b9d6773bc9d81a458419cf44622c4ad8","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","pathe":"^2.0.3","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260727-092930-5204d9c_1785144581985_0.7241812209936473","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260727-093545-b30a407":{"name":"ipx-nightly","version":"4.0.0-20260727-093545-b30a407","license":"MIT","_id":"ipx-nightly@4.0.0-20260727-093545-b30a407","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"a74b0629557b70b80710789c5ad147c9fd33c031","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260727-093545-b30a407.tgz","fileCount":25,"integrity":"sha512-gR4zdHuCGlGhMd6MezDC2pyWGGg+8Dc9tYoDonwyAkji4dVBW/BRcd4Cggh+CW32fl7dDX5U2+Ywpd8QGalS4Q==","signatures":[{"sig":"MEQCID1/5AUTvvaUzl+Xyr4Mo9n3K6f032DAM79cUgNqGy1yAiA50+tmIjwz/6xd+dstAvMzp4vJr2N27HLD7vGEIJ/ifg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260727-093545-b30a407","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1562692},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"b30a407b9716cd058b2f9e64371d8ec34bc7f2da","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","pathe":"^2.0.3","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260727-093545-b30a407_1785144959581_0.6894949914436681","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260728-093133-23946ed":{"name":"ipx-nightly","version":"4.0.0-20260728-093133-23946ed","license":"MIT","_id":"ipx-nightly@4.0.0-20260728-093133-23946ed","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"78a6cdb88f66a7b31065f01a51de2ac896235a1d","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260728-093133-23946ed.tgz","fileCount":25,"integrity":"sha512-+1BNompg7N2SIVxavgWMtUmLQjTU4EG9De7FqzCiwVNVA76VSyHWrfKrZLPdN6FCwuXAknC58sSoBfqRqaQUiw==","signatures":[{"sig":"MEYCIQCO4yOt+RUYWSXdKoBu8Dlet9+TmCovqsJUvn/0kQRIIwIhAJhgqb9zTKQHp41XR8TsnSPXAqm7B0GIWumzOKxa5nC6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260728-093133-23946ed","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1562693},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"23946ed155ecd032efffa0cd8cb78003ad038e1e","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag latest --push","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","pathe":"^2.0.3","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260728-093133-23946ed_1785231107101_0.7269782966703182","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260728-093324-b30a407":{"name":"ipx-nightly","version":"4.0.0-20260728-093324-b30a407","license":"MIT","_id":"ipx-nightly@4.0.0-20260728-093324-b30a407","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"a3e0591ff555962df4fe6b71dfb1a7a878fd8c9a","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260728-093324-b30a407.tgz","fileCount":25,"integrity":"sha512-c/n7CPJ3p8Cp8F8NMYqIyIFsr3Ej3rpoqCNh9hqTYFU7f2gZWExfmw5DoSfrYmq+wenq19WL/aWWW80K7Dc42Q==","signatures":[{"sig":"MEYCIQDoc1y3AVns/NTPhHurOPQGvmYF4XRgJm7AnBYoCGAVFAIhAOYXoSnxaNFNOwKqWRZZAtVfgbBEtcRH+1C2NYvUEW0n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260728-093324-b30a407","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1562692},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"b30a407b9716cd058b2f9e64371d8ec34bc7f2da","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --publish --publishTag alpha --push","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","pathe":"^2.0.3","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260728-093324-b30a407_1785231216077_0.37783036496828193","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260728-112405-933b0d6":{"name":"ipx-nightly","version":"4.0.0-20260728-112405-933b0d6","license":"MIT","_id":"ipx-nightly@4.0.0-20260728-112405-933b0d6","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"4df4ce64fbac0b3aad851605a1241cdc906e79fb","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260728-112405-933b0d6.tgz","fileCount":25,"integrity":"sha512-l/r7e/ibmQAiB0Rmpj+ahFaYEEKkC/S4/7Bh6Stm42qgbAL5ybJwOohnncjGU6Nrvsnzl/Q1qhkP/ezMTO6FWA==","signatures":[{"sig":"MEYCIQCEXVxemfAXPiOPNcvFt2AFJhEcqz0FMV8KEz9NqE2owgIhALerlOd5cS7CbZeQXwSUVBICj8FhdYvCsC8vmL9ong1y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260728-112405-933b0d6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1575275},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"933b0d67aa449fdf1ba441c46c040dab99c0b5dd","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --push && npm publish --tag latest","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260728-112405-933b0d6_1785237858291_0.6475550704404622","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260728-113322-c7227fb":{"name":"ipx-nightly","version":"4.0.0-20260728-113322-c7227fb","license":"MIT","_id":"ipx-nightly@4.0.0-20260728-113322-c7227fb","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"1e202a9f11adb1c0e3e1456d1adbcfb0d8b2b86d","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260728-113322-c7227fb.tgz","fileCount":25,"integrity":"sha512-D26rpucGOHk9YFOFNyWcFKOLYtSiK5tRJtYcar4sC48q6d6DM4uwHDZMuP51RNlAENGhfaufIyWdKX60BI9qsA==","signatures":[{"sig":"MEYCIQCOaLYAyzQ4IiUtRJKjqICvuKWu+4FEN6xhXp423snK9wIhAIbvtOwlnNVH546mGLoKikJbVPJJEjohd+pkKANZ4Rpe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260728-113322-c7227fb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1575471},"type":"module","types":"./dist/index.d.mts","engines":{"node":"^20.16.0 || >=22.3.0"},"exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"c7227fb68748cdba3e88cf55bd1ee3b42dba5152","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --push && npm publish --tag latest","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260728-113322-c7227fb_1785238413871_0.5938504038418488","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260728-113557-8ddca9b":{"name":"ipx-nightly","version":"4.0.0-20260728-113557-8ddca9b","license":"MIT","_id":"ipx-nightly@4.0.0-20260728-113557-8ddca9b","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"4316b0ab13451a55900f7a5cd646b3d0e00713dd","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260728-113557-8ddca9b.tgz","fileCount":25,"integrity":"sha512-UaZJlqqMSPBwjmrMvsR+sT/KDydsvkqlD30zL9xFqkrJNA57Bx1V7xP7fzHiUb+VsM2Jx3iHHGfzcvm9/VCBWQ==","signatures":[{"sig":"MEUCIQDztNXaXMQTM3ddHXqLdLeYpUCJk3HofhnG4B9iIqsaCgIgaWQzB80HyFV2/ri48K1SdZECDh54icqAV/FW+ecr9UU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260728-113557-8ddca9b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1575471},"type":"module","types":"./dist/index.d.mts","engines":{"node":"^20.16.0 || >=22.3.0"},"exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"8ddca9b0dbcd53a0cc298c1c21b7b107a374e483","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --push && npm publish --tag latest","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260728-113557-8ddca9b_1785238569900_0.15123749661647912","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-beta.1":{"name":"ipx-nightly","version":"4.0.0-beta.1","license":"MIT","_id":"ipx-nightly@4.0.0-beta.1","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"090af04b31942785bcd0a91f45b3027ca176c4f1","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-beta.1.tgz","fileCount":25,"integrity":"sha512-uPgSmUOcL9kQHS9eAWF8jYSGDEWiWqCodkm+w99IvB/5Ltr2XgBxkNRdm0QAIWJGEp6qh8lkvZTf+0cqwQALdA==","signatures":[{"sig":"MEUCIQDxCQcg3lxFm7N+j1Uan56BY+y5n7uMrOnsbGIFmbtjegIgUEJS545ZAeFDpLCdbwsgXlDIyh1r1G2tnBoORGswiuo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1575454},"type":"module","types":"./dist/index.d.mts","engines":{"node":"^20.16.0 || >=22.3.0"},"exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"0c580635fa88dbedb8b663bde124b152826002e8","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --push && npm publish --tag latest","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-beta.1_1785239619859_0.3651015865194043","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260728-124902-25cd8aa":{"name":"ipx-nightly","version":"4.0.0-20260728-124902-25cd8aa","license":"MIT","_id":"ipx-nightly@4.0.0-20260728-124902-25cd8aa","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"b14b44c084cab6b1c4785a256a21646255b848da","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260728-124902-25cd8aa.tgz","fileCount":25,"integrity":"sha512-Vk5+eJ0sPtHDHHapM+SLAqeOL+Ce41rOJwyMF6PVIHarBMMOxHD/dMmjKIaS8cJwFVskJttmMaV+oda1uLfhCw==","signatures":[{"sig":"MEUCIAaWmMqEZcwGFbcEFiqxAzEBBDJaqqH2RRVBv2Y2CD6oAiEArQoGCoMLYbi0irEQfF0MCxydUjH1cdKsxMLzMXGKkas=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260728-124902-25cd8aa","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1575585},"type":"module","types":"./dist/index.d.mts","engines":{"node":"^20.16.0 || >=22.3.0"},"exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"25cd8aa2d2037e2d0def563251ec89391e991d29","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --push && npm publish --tag latest","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260728-124902-25cd8aa_1785242956510_0.48606002872241505","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260728-132107-de8b0ab":{"name":"ipx-nightly","version":"4.0.0-20260728-132107-de8b0ab","license":"MIT","_id":"ipx-nightly@4.0.0-20260728-132107-de8b0ab","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"0925ce811b678d5ac98fac02cf41733c59e52bf9","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260728-132107-de8b0ab.tgz","fileCount":25,"integrity":"sha512-b1XdznRNCbKZgz2mGid1uOKH0g1+XQtK2/9c+8Yzop5vKQt7sYTGzOr1FNhR4avnCNTQv7Iz7NEPntQ+xbMSBw==","signatures":[{"sig":"MEUCIQDj92Hu4nLyGKVgiD3jhE+YxWyGSJ/YwsJuuthlUO6vWgIgEB9Yhze221YHukcg9VJs5TYr0Q/bCy+JytwiVzHmr+k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260728-132107-de8b0ab","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1576151},"type":"module","types":"./dist/index.d.mts","engines":{"node":"^20.16.0 || >=22.3.0"},"exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"de8b0abb8ef51ff3d3ea087f8c4f145726f0b6ca","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --push && npm publish --tag latest","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.0.1","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"srvx":"^0.12.4","sharp":"^0.35.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.17.0","devDependencies":{"h3":"2.0.1-rc.26","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.0.2","automd":"^0.4.3","eslint":"^10.8.0","obuild":"^0.4.38","vitest":"^4.1.10","prettier":"^3.9.6","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":">=0.141.0","typescript":"^6","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.10","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.0.1"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260728-132107-de8b0ab_1785244880364_0.0034477401015522435","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260922-202552-8ae6ce8":{"name":"ipx-nightly","version":"4.0.0-20260922-202552-8ae6ce8","license":"MIT","_id":"ipx-nightly@4.0.0-20260922-202552-8ae6ce8","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"923ef6b1296aaf256af02fec88cc5121185be6b6","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260922-202552-8ae6ce8.tgz","fileCount":25,"integrity":"sha512-MgxL70Kz9Ukz+6Ny4iFVqqlyI8U02PMMVUEnwU+jnL2Wh6VX3p6myI0NyBfpo+uTYd7HAm7zvi9Q14LYFHQzEg==","signatures":[{"sig":"MEQCIDiX2pbFSUNRsuFwiwCQ+RQzZ2xejqRPTmqaEzI2FAWvAiAWITRkgbCBY0+hCHurijPzYifo+7cpMRlDPY/6KZiN0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCOVjEcUm++5PJM7/RTT2oiIUO036XAOQv1env8KjUYPQIhAK+B0oJL7JINp1tJFlwowFaxU9S+zMWGW9WnGHK+ZHtd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260922-202552-8ae6ce8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1584173},"type":"module","types":"./dist/index.d.mts","engines":{"node":"^20.16.0 || >=22.3.0"},"exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"8ae6ce8292e39db8f587de4de91b45a73cc1fe58","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --push && npm publish --tag latest","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.1.0","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"srvx":"^1.0.5","sharp":"^0.35.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.25.0","devDependencies":{"h3":"2.0.1-rc.32","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.1.0","automd":"^0.4.3","eslint":"^10.11.0","obuild":"^0.4.40","vitest":"^5.0.1","prettier":"^3.9.8","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":"^0.151.0","typescript":"^6.0.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^5.0.1","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.1.0"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260922-202552-8ae6ce8_1790108953743_0.7822283822208558","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260922-202913-8ae6ce8":{"name":"ipx-nightly","version":"4.0.0-20260922-202913-8ae6ce8","license":"MIT","_id":"ipx-nightly@4.0.0-20260922-202913-8ae6ce8","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"502acb212988f5265864f74b90fbba017a45d094","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260922-202913-8ae6ce8.tgz","fileCount":25,"integrity":"sha512-PjvryFGtfgPeSS2oPSGA846sCNrmW+3d0TkMBtAYsuX517MSsnNA3Q83xkoZny+vA2+4zM3YC+WV92q2W9DYqw==","signatures":[{"sig":"MEUCIQCJtCgddULEQdFyeN8SmbBPUu+XHTvHS9xMYhnK7LsBbwIgRZNMEEdU2wIbjUNSpDtOde7sRcyifyKzDOVO69MbM6g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIASqkiT+uCTfBvx5wyqnrtGW4ZAwMV1Nmg7FXfh7iJHkAiEAsNW4+K0eWr2S+BcgHIK8V2GP1wZ5MOPOW95xZ/wUNzw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260922-202913-8ae6ce8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1584173},"type":"module","types":"./dist/index.d.mts","engines":{"node":"^20.16.0 || >=22.3.0"},"exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"f7060ed4a79f96977b00f62f1ef28cf9a26050c6","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --push && npm publish --tag latest","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.1.0","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"srvx":"^1.0.5","sharp":"^0.35.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.25.0","readmeFilename":"README.md","devDependencies":{"h3":"2.0.1-rc.32","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.1.0","automd":"^0.4.3","eslint":"^10.11.0","obuild":"^0.4.40","vitest":"^5.0.1","prettier":"^3.9.8","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":"^0.151.0","typescript":"^6.0.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^5.0.1","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.1.0"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260922-202913-8ae6ce8_1790109019465_0.9078079417469929","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260922-202936-8ae6ce8":{"name":"ipx-nightly","version":"4.0.0-20260922-202936-8ae6ce8","license":"MIT","_id":"ipx-nightly@4.0.0-20260922-202936-8ae6ce8","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"0c711f07c3b29cf6040019a4b4cd25e6d2da46b6","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260922-202936-8ae6ce8.tgz","fileCount":25,"integrity":"sha512-VzxqHvVgyrmKVbrAtg6/pPmY2gacL0xcGD8uSF4AV26uA1oJUQa+dmAAkYIIKcQ9J2byjPCR52qFnpkn+RjiNA==","signatures":[{"sig":"MEUCIQDjvDWVkONhlMihVY50jHyFhw2+8pqqlFM9pwLx2uwDNgIgaFBuKfZR/VzBpy51S16u7ODjTCGPfAsEtEaWtECrb0Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBgeL5CM8DaEfBU9eqhJ8va8BbElpfpovT7guvuLVdtLAiEAqvM2VuAbThpT9LioUbx3DCj81O+C/mnCb8MWa3g0dGI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260922-202936-8ae6ce8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1584173},"type":"module","types":"./dist/index.d.mts","engines":{"node":"^20.16.0 || >=22.3.0"},"exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"962eb831fbde512bc77e4eccede4a5c2ee816c8b","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --push && npm publish --tag latest","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.1.0","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"srvx":"^1.0.5","sharp":"^0.35.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.27.0","devDependencies":{"h3":"2.0.1-rc.32","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.1.0","automd":"^0.4.3","eslint":"^10.11.0","obuild":"^0.4.40","vitest":"^5.0.1","prettier":"^3.9.8","unstorage":"^1.17.5","image-meta":"^0.2.2","oxc-minify":"^0.151.0","typescript":"^6.0.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^5.0.1","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.1.0"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260922-202936-8ae6ce8_1790109044054_0.5551366958669057","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260925-213316-52bba3a":{"name":"ipx-nightly","version":"4.0.0-20260925-213316-52bba3a","license":"MIT","_id":"ipx-nightly@4.0.0-20260925-213316-52bba3a","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"7a93e80222d76a6aed8bc1b3a04d13c641bd9f81","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260925-213316-52bba3a.tgz","fileCount":25,"integrity":"sha512-DlWKVHzREEBqhc6wu5AKijtuEfCmZpcyDvR7QmndnrLNIdsgVtXng3zeYzJ/lCAtpXuI7i0IGZ1k9q7IDcde7g==","signatures":[{"sig":"MEQCIDZSaD6VlH+sEk7TRa9ZpV1fBnho9byJ+qmgdpw8GNrSAiBzosXURl5Yym93sw0q67NaTm+Ix3MqfR+I2ULoN2N/+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD5JzX+Jhz0675TX35nzWRdd6RiOOnLJi48ZSAq44yGBgIgDzt8XJzB40sqPXkI39gxYRvBWAxi5KRXrRs+Mbe2OdQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260925-213316-52bba3a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1589168},"type":"module","types":"./dist/index.d.mts","engines":{"node":"^20.16.0 || >=22.3.0"},"exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"52bba3af6c266e7f3d1e28b360ab9f56ccedfe64","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --push && npm publish --tag latest","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.1.0","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"srvx":"^1.0.5","sharp":"^0.35.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.27.0","readmeFilename":"README.md","devDependencies":{"h3":"2.0.1-rc.32","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.1.0","automd":"^0.4.3","eslint":"^10.11.0","obuild":"^0.4.40","vitest":"^5.0.1","prettier":"^3.9.9","unstorage":"^1.17.5","image-meta":"^0.3.0","oxc-minify":"^0.151.0","typescript":"^6.0.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^5.0.1","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.1.0"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260925-213316-52bba3a_1790372132801_0.8135145244244655","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260925-213437-f413eda":{"name":"ipx-nightly","version":"4.0.0-20260925-213437-f413eda","license":"MIT","_id":"ipx-nightly@4.0.0-20260925-213437-f413eda","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"fcc30ca950e02d44de684c9aa8fdaadfb22144c0","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260925-213437-f413eda.tgz","fileCount":25,"integrity":"sha512-VYCiekFqX3LYRPVACKaTOfV57cXkGILNGIjV0WiN8Abm0fQzTzolXauaKKi2c281HH2HwMUkINTF7pzIheKC9g==","signatures":[{"sig":"MEQCICcWquAC4LdSwo1iCTZNcpkyO38IQ6/KtpPe58OzYGTdAiBzGSsoJNfOcOSzfRhn5dj0aeXNdQdd9xpfc+GuGjTpKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH5qhv0dvDGCdINo/Hzi0d5MN7W1FDeECATn6TvKNxLgAiBwfQppf7Y5DJSxEfw5tvMVFtqLIduSniG7eEU9zOPjgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260925-213437-f413eda","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1590132},"type":"module","types":"./dist/index.d.mts","engines":{"node":"^20.16.0 || >=22.3.0"},"exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"f413eda96e064a0ade7d525cbe3bfeb147e979f1","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --push && npm publish --tag latest","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.1.0","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"srvx":"^1.0.5","sharp":"^0.35.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.27.0","devDependencies":{"h3":"2.0.1-rc.32","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.1.0","automd":"^0.4.3","eslint":"^10.11.0","obuild":"^0.4.40","vitest":"^5.0.1","prettier":"^3.9.9","unstorage":"^1.17.5","image-meta":"^0.3.0","oxc-minify":"^0.151.0","typescript":"^6.0.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^5.0.1","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.1.0"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260925-213437-f413eda_1790372277740_0.8676498406696684","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260925-230245-613eca3":{"name":"ipx-nightly","version":"4.0.0-20260925-230245-613eca3","license":"MIT","_id":"ipx-nightly@4.0.0-20260925-230245-613eca3","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"ff7117d446dd7fd7c04e297ec8c64d806d1b824e","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260925-230245-613eca3.tgz","fileCount":25,"integrity":"sha512-aQZwjd6AaJZy/vr/vW++ZTtIHGWgwun1lCJPbU8dIpW9WibfLAnpoNSfmVxQWfLXZ8pdn+0oeAC1K8xzM1aIxA==","signatures":[{"sig":"MEUCIQC8U8g1eY5Ti5hbt7gSxqrdxD2colFMt5ctHGA486KLdAIgR2vDtM10JlnXNqlBz/xR/RCW928iBDGfM0looYV3AMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDy+7Y+QDS42BAIJIC2pCi0VVUsZcyu+w4rqv4NyTDE/AiEA1pEH7FgvxTvtJ19YAKO7akbSLNZurV1m+R+TQWUjAnU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260925-230245-613eca3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1590635},"type":"module","types":"./dist/index.d.mts","engines":{"node":"^20.16.0 || >=22.3.0"},"exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"613eca312d00e8b6c31e38684fa9785d3a92c548","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --push && npm publish --tag latest","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.1.0","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"srvx":"^1.0.5","sharp":"^0.35.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.27.0","devDependencies":{"h3":"2.0.1-rc.32","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.1.0","automd":"^0.4.3","eslint":"^10.11.0","obuild":"^0.4.40","vitest":"^5.0.1","prettier":"^3.9.9","unstorage":"^1.17.5","image-meta":"^0.3.0","oxc-minify":"^0.151.0","typescript":"^6.0.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^5.0.1","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.1.0"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260925-230245-613eca3_1790377477226_0.9590644249696665","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260926-074857-613eca3":{"name":"ipx-nightly","version":"4.0.0-20260926-074857-613eca3","license":"MIT","_id":"ipx-nightly@4.0.0-20260926-074857-613eca3","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/unjs/ipx#readme","bugs":{"url":"https://github.com/unjs/ipx/issues"},"bin":{"ipx":"dist/cli.mjs"},"dist":{"shasum":"998d2773646c74518cb6e631685566d12980aff7","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260926-074857-613eca3.tgz","fileCount":25,"integrity":"sha512-gWv35yTc2jwYZSAnC1G5kPr0DSqBZ0Pu1Hih29GOsa5vzSSLY204Y345VlIc769GXzkBOpxK2BQqYN4ujLTi3g==","signatures":[{"sig":"MEYCIQDVGBwoU4RAzzcrP5+QMVSeROHru+KFqusHxI4bD5CNOAIhAOgeRvnynx7gWcsT/znq0Te53IvOzp+dPzOJ07+ug4Y7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCNMyNFcvNytwhG2ENv9nSzvgXumdAHLquZg3v12zvHPQIgEtapKuo2mUtwVeuGoY0S3TuXvGAWpOmkfCMyYqZReYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260926-074857-613eca3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1590635},"type":"module","types":"./dist/index.d.mts","engines":{"node":"^20.16.0 || >=22.3.0"},"exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"26fefab872170c8c3901deb73502a246732db6e3","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --push && npm publish --tag latest","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.1.0","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"srvx":"^1.0.5","sharp":"^0.35.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.27.1","devDependencies":{"h3":"2.0.1-rc.32","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.1.0","automd":"^0.4.3","eslint":"^10.11.0","obuild":"^0.4.40","vitest":"^5.0.1","prettier":"^3.9.9","unstorage":"^1.17.5","image-meta":"^0.3.0","oxc-minify":"^0.151.0","typescript":"^6.0.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^5.0.1","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.1.0"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ipx-nightly_4.0.0-20260926-074857-613eca3_1790409004606_0.6745908093834831","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-20260926-075029-e450892":{"_id":"ipx-nightly@4.0.0-20260926-075029-e450892","bin":{"ipx":"dist/cli.mjs"},"bugs":{"url":"https://github.com/unjs/ipx/issues"},"dist":{"shasum":"b8c282f8bab72a9e2b7c9d1e6c367095481484f5","tarball":"https://registry.npmjs.org/ipx-nightly/-/ipx-nightly-4.0.0-20260926-075029-e450892.tgz","fileCount":25,"integrity":"sha512-edCzQvjyBLo06RE2pAiGsmed8UMkafVyTVSdCZhtMxi9AxYHeVBMzUxlWapYMxK5DA+98kqfqIFpXn5o4mcPoA==","signatures":[{"sig":"MEUCIQCsyjke54SGbcY6EIV5Ww8C0HFztEu3FJfFL4fB5DtkkAIgS3tdGBUCd1XMFb7MbrAJl6+tzXFLXH7m0W1yRElJD3E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHglHR1hP5VBp5Xbw9Qrmxdd/qJkN7qq9MdJ7G8ZEWnIAiAGcjRxwuNj2kjmphwO+M9mFHqu7PPasZlIS0oqfQZ0OA=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ipx-nightly@4.0.0-20260926-075029-e450892","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1591339},"name":"ipx-nightly","type":"module","types":"./dist/index.d.mts","engines":{"node":"^20.16.0 || >=22.3.0"},"exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"e450892411c3b929d6c14ed2a153471cfd527136","license":"MIT","scripts":{"ipx":"node ./src/cli.ts","lint":"eslint . && prettier -c src test scripts automd.config.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","start":"node bin/ipx.js","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release --prerelease --push && npm publish --tag latest","lint:fix":"automd && eslint . --fix && prettier -w src test scripts automd.config.ts","test:types":"tsc --noEmit","gen:operations":"node ./scripts/gen-operations.ts"},"version":"4.0.0-20260926-075029-e450892","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a860a92-e719-43c1-926a-a52e9ee8c884"}},"homepage":"https://github.com/unjs/ipx#readme","repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"_npmVersion":"12.1.0","description":"High performance, secure and easy-to-use image optimizer.","directories":{},"maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"srvx":"^1.0.5","sharp":"^0.35.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.27.1","devDependencies":{"h3":"2.0.1-rc.32","ufo":"^1.6.4","etag":"^1.8.1","svgo":"^4.1.0","automd":"^0.4.3","eslint":"^10.11.0","obuild":"^0.4.40","vitest":"^5.0.1","prettier":"^3.9.9","unstorage":"^1.17.5","image-meta":"^0.3.0","oxc-minify":"^0.151.0","typescript":"^6.0.3","@types/etag":"^1.8.4","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^5.0.1","@types/is-valid-path":"^0.1.2","@fastify/accept-negotiator":"^2.1.0"},"peerDependencies":{"unstorage":"*"},"peerDependenciesMeta":{"unstorage":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ipx-nightly_4.0.0-20260926-075029-e450892_1790409198628_0.4460458672830998"}}},"time":{"created":"2023-11-10T11:13:10.832Z","modified":"2026-09-26T07:53:19.087Z","0.0.0":"2023-11-10T11:13:10.988Z","2.0.3-1699616123.c6fb05c":"2023-11-10T11:35:30.626Z","2.1.0-1699616271.675ab59":"2023-11-10T11:37:58.834Z","2.1.0-1699617961.675ab59":"2023-11-10T12:06:10.260Z","2.1.0-1699618238.675ab59":"2023-11-10T12:10:48.898Z","2.1.1-1705019186.c31c3ae":"2024-01-12T00:26:34.326Z","3.0.0-1705019392.624b9db":"2024-01-12T00:29:59.348Z","3.0.2-20250321-102954-e307855":"2025-03-21T10:30:03.167Z","3.0.2-20250321-103850-b9aba99":"2025-03-21T10:38:58.049Z","3.0.2-20250321-105333-9414e40":"2025-03-21T10:53:42.352Z","3.0.4-20250321-105654-af698d0":"2025-03-21T10:57:03.005Z","3.0.4-20250513-163235-0f322f8":"2025-05-13T16:32:45.781Z","3.0.4-20250627-011018-0f322f8":"2025-06-27T01:10:27.580Z","3.0.4-20250703-010418-0f322f8":"2025-07-03T01:04:28.102Z","3.0.4-20250723-092812-0f322f8":"2025-07-23T09:28:22.768Z","3.0.4-20250723-110935-8225271":"2025-07-23T11:09:45.142Z","3.0.4-20250723-111022-5428f66":"2025-07-23T11:10:31.622Z","3.0.4-20250723-111208-2dfec2d":"2025-07-23T11:12:17.189Z","3.0.4-20250723-111212-b56caf8":"2025-07-23T11:12:21.435Z","3.0.4-20250723-111604-058abdd":"2025-07-23T11:16:13.948Z","3.0.4-20250723-113112-058abdd":"2025-07-23T11:31:20.687Z","3.0.4-20250723-113453-335710e":"2025-07-23T11:35:02.816Z","3.0.4-20250723-113809-aa94ce2":"2025-07-23T11:38:18.586Z","3.0.4-20250723-113927-aa94ce2":"2025-07-23T11:39:37.369Z","3.1.1-20250724-165712-81693dd":"2025-07-24T16:57:20.915Z","3.2.0-20250730-173703-3679ee6":"2025-07-30T17:37:12.061Z","3.2.0-20251031-095427-c897029":"2025-10-31T09:54:37.072Z","4.0.0-20251204-175340-c88b6db":"2025-12-04T17:53:51.417Z","4.0.0-20251204-192716-1db481c":"2025-12-04T19:27:26.383Z","4.0.0-20251204-195016-2b2252d":"2025-12-04T19:50:27.049Z","4.0.0-alpha.1":"2025-12-04T19:59:01.397Z","4.0.0-20260626-073827-0e4c88b":"2026-06-26T07:38:40.646Z","4.0.0-20260626-074735-86b0b12":"2026-06-26T07:47:48.661Z","4.0.0-alpha.2":"2026-06-26T07:53:44.619Z","4.0.0-20260726-190427-5b1ea5e":"2026-07-26T19:04:41.052Z","4.0.0-20260726-193108-50becb0":"2026-07-26T19:31:22.782Z","4.0.0-20260726-193533-28def87":"2026-07-26T19:35:46.750Z","4.0.0-20260726-195356-27ac7e3":"2026-07-26T19:54:08.681Z","4.0.0-20260726-204524-f946dfc":"2026-07-26T20:45:36.233Z","4.0.0-20260726-211020-84ff786":"2026-07-26T21:10:31.952Z","4.0.0-20260726-220357-30e92fb":"2026-07-26T22:04:10.844Z","4.0.0-20260726-223634-52d0000":"2026-07-26T22:36:48.189Z","4.0.0-20260726-225842-97e6eb7":"2026-07-26T22:58:56.541Z","4.0.0-20260727-083457-e8fe081":"2026-07-27T08:35:09.844Z","4.0.0-20260727-084145-b4357f9":"2026-07-27T08:42:00.595Z","4.0.0-20260727-092930-5204d9c":"2026-07-27T09:29:42.141Z","4.0.0-20260727-093545-b30a407":"2026-07-27T09:35:59.723Z","4.0.0-20260728-093133-23946ed":"2026-07-28T09:31:47.261Z","4.0.0-20260728-093324-b30a407":"2026-07-28T09:33:36.252Z","4.0.0-20260728-112405-933b0d6":"2026-07-28T11:24:18.435Z","4.0.0-20260728-113322-c7227fb":"2026-07-28T11:33:34.078Z","4.0.0-20260728-113557-8ddca9b":"2026-07-28T11:36:10.052Z","4.0.0-beta.1":"2026-07-28T11:53:40.002Z","4.0.0-20260728-124902-25cd8aa":"2026-07-28T12:49:16.695Z","4.0.0-20260728-132107-de8b0ab":"2026-07-28T13:21:20.529Z","4.0.0-20260922-202552-8ae6ce8":"2026-09-22T20:29:13.850Z","4.0.0-20260922-202913-8ae6ce8":"2026-09-22T20:30:19.560Z","4.0.0-20260922-202936-8ae6ce8":"2026-09-22T20:30:44.165Z","4.0.0-20260925-213316-52bba3a":"2026-09-25T21:35:32.933Z","4.0.0-20260925-213437-f413eda":"2026-09-25T21:37:57.829Z","4.0.0-20260925-230245-613eca3":"2026-09-25T23:04:37.365Z","4.0.0-20260926-074857-613eca3":"2026-09-26T07:50:04.704Z","4.0.0-20260926-075029-e450892":"2026-09-26T07:53:18.770Z"},"bugs":{"url":"https://github.com/unjs/ipx/issues"},"license":"MIT","homepage":"https://github.com/unjs/ipx#readme","repository":{"url":"git+https://github.com/unjs/ipx.git","type":"git"},"description":"High performance, secure and easy-to-use image optimizer.","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"readme":"# 🖼️ IPX\n\n<!-- automd:badges color=yellow -->\n\n[![npm version](https://img.shields.io/npm/v/ipx?color=yellow)](https://npmjs.com/package/ipx)\n[![npm downloads](https://img.shields.io/npm/dm/ipx?color=yellow)](https://npm.chart.dev/ipx)\n\n<!-- /automd -->\n\nHigh performance, secure and easy-to-use image optimizer powered by [sharp](https://github.com/lovell/sharp) and [svgo](https://github.com/svg/svgo).\n\nPoint IPX at a directory or a list of allowed domains, and every image is available in any size, format and quality straight from its URL:\n\n```\n/w_512,f_webp/photos/buffalo.png\n```\n\n> [!NOTE]\n> This is the active development branch for IPX v4. Check out [v3](https://github.com/unjs/ipx/tree/v3) for v3 docs, and release notes ([alpha](https://github.com/unjs/ipx/releases/tag/v4.0.0-alpha.1), [beta](https://github.com/unjs/ipx/releases/tag/v4.0.0-beta.1)) if you are upgrading.\n\n## Quick Start\n\nStart a server for the images in the current directory with the `ipx` command:\n\n```bash\nnpx ipx serve --dir ./\n```\n\nUsing `bun`:\n\n```bash\nbunx ipx serve --dir ./\n```\n\nThen open the printed URL and add modifiers to any image path, for example `http://localhost:3000/w_200/buffalo.png`.\n\nTo embed IPX in your own app instead, see the [Programmatic API](#programmatic-api).\n\n## Image URLs\n\nA request URL is a list of modifiers, followed by the id of the source image:\n\n```\n/<modifiers>/<id>\n```\n\nMultiple modifiers are separated by `,` and their arguments by `_`. Use `_` alone when no modifier is needed.\n\n| URL                                                | Result                                                                                      |\n| -------------------------------------------------- | ------------------------------------------------------------------------------------------- |\n| `/_/static/buffalo.png`                            | The original image.                                                                         |\n| `/w_200/static/buffalo.png`                        | Width set to `200`, original format (`png`) kept.                                           |\n| `/f_webp/static/buffalo.png`                       | Format changed to `webp`, everything else kept as in the source.                            |\n| `/f_auto/static/buffalo.png`                       | Best format for the client (avif/webp/jpeg), negotiated from the browser's `accept` header. |\n| `/s_200x200,fit_contain,f_webp/static/buffalo.png` | Resized to fit inside `200x200px` on a background canvas and converted to `webp`.           |\n\nThe URL style is configurable, see [Custom URL Style](#custom-url-style).\n\n## Modifiers\n\nModifier arguments are separated with `_` and validated before they reach sharp. Invalid input is rejected with a `400 IPX_INVALID_MODIFIER_ARG` (or `400 IPX_MISSING_MODIFIER_ARG` for a required argument) instead of failing the request. Some arguments can only be validated by libvips once it runs, which happens after the whole pipeline is set up; those surface as a `400 IPX_INVALID_MODIFIER`. Trailing arguments may be omitted to keep the sharp default, except where noted.\n\nColours (`background`, `tint`) accept any colour sharp understands: hex (`f00`, `ff0000`, `ff000080`) with an optional leading `#` — which cannot be used inside a URL path, so it may be dropped — or a CSS colour name (`red`). Boolean arguments accept `true` / `false` as well as the shorter `1` / `0`.\n\n<!-- automd:ipx-operations -->\n\n<table>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/width.jpg?v=db01a531\" width=\"160\" alt=\"/w_160/scene.jpg\"></div>\n<div><b><code>width</code> / <code>w</code></b></div>\n<code>/w_160/scene.jpg</code>\n<br>\nResize to a width in pixels, a positive integer. The height follows the aspect ratio. (<a href=\"https://sharp.pixelplumbing.com/api-resize#resize\">docs</a>)\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/height.jpg?v=ee67aac0\" width=\"180\" alt=\"/h_120/scene.jpg\"></div>\n<div><b><code>height</code> / <code>h</code></b></div>\n<code>/h_120/scene.jpg</code>\n<br>\nResize to a height in pixels, a positive integer. The width follows the aspect ratio. (<a href=\"https://sharp.pixelplumbing.com/api-resize#resize\">docs</a>)\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/resize.jpg?v=99dda472\" width=\"200\" alt=\"/s_200x200/scene.jpg\"></div>\n<div><b><code>resize</code> / <code>s</code></b></div>\n<code>/s_200x200/scene.jpg</code>\n<br>\nResize to <code>{width}x{height}</code>, both positive integers. A single value (<code>s_200</code>) is a square. (<a href=\"https://sharp.pixelplumbing.com/api-resize#resize\">docs</a>)\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/kernel.jpg?v=96e57f6e\" width=\"80\" alt=\"/s_80x80,kernel_nearest/photo.jpg\"></div>\n<div><b><code>kernel</code></b></div>\n<code>/s_80x80,kernel_nearest/photo.jpg</code>\n<br>\nSets <code>kernel</code> option for <code>resize</code>. One of <code>nearest</code>, <code>linear</code>, <code>cubic</code>, <code>mitchell</code>, <code>lanczos2</code>, <code>lanczos3</code> (default), <code>mks2013</code> or <code>mks2021</code>. (<a href=\"https://sharp.pixelplumbing.com/api-resize#resize\">docs</a>)\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/fit.jpg?v=08b8660c\" width=\"300\" alt=\"/s_300x150,fit_contain,b_00ff00/scene.jpg\"></div>\n<div><b><code>fit</code></b></div>\n<code>/s_300x150,fit_contain,b_00ff00/scene.jpg</code>\n<br>\nSets <code>fit</code> option for <code>resize</code>. One of <code>contain</code>, <code>cover</code> (default), <code>fill</code>, <code>inside</code> or <code>outside</code>. (<a href=\"https://sharp.pixelplumbing.com/api-resize#resize\">docs</a>)\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/position.jpg?v=187fe5e7\" width=\"107\" alt=\"/s_150x300,pos_top/scene.jpg\"></div>\n<div><b><code>position</code> / <code>pos</code></b></div>\n<code>/s_150x300,pos_top/scene.jpg</code>\n<br>\nSets <code>position</code> option for <code>resize</code>. A position (<code>top</code>, <code>right top</code>, ..., <code>left top</code>), gravity (<code>north</code>, <code>northeast</code>, ..., <code>center</code>) or strategy (<code>entropy</code>, <code>attention</code>), also accepted as their numeric constants. Since <code>_</code> separates arguments, multi-word values use <code>-</code> (<code>pos_right-top</code>). (<a href=\"https://sharp.pixelplumbing.com/api-resize#resize\">docs</a>)\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/extend.jpg?v=0dfb2098\" width=\"320\" alt=\"/extend_20_40_20_40_mirror/scene.jpg\"></div>\n<div><b><code>extend</code></b></div>\n<code>/extend_20_40_20_40_mirror/scene.jpg</code>\n<br>\nPad or extrude the edges, as <code>extend_{top}_{right}_{bottom}_{left}</code> with an optional <code>{extendWith}</code>. Edges are integers between <code>0</code> and <code>10000</code>. <code>extendWith</code> is <code>background</code> (default), <code>copy</code>, <code>repeat</code> or <code>mirror</code>; <code>background</code> takes its colour from the <code>background</code> / <code>b</code> modifier. (<a href=\"https://sharp.pixelplumbing.com/api-resize#extend\">docs</a>)\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/background.jpg?v=6b197635\" width=\"320\" alt=\"/rotate_45,b_00ff00/scene.jpg\"></div>\n<div><b><code>background</code> / <code>b</code></b></div>\n<code>/rotate_45,b_00ff00/scene.jpg</code>\n<br>\nBackground colour, a hex (<code>f00</code>, <code>ff0000</code>) or named (<code>red</code>) colour. Used by <code>extend</code>, <code>rotate</code>, <code>flatten</code>, <code>opacity</code> and <code>resize</code> (with <code>fit_contain</code>).\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/extract.jpg?v=ac75bdaa\" width=\"160\" alt=\"/extract_150_10_160_120/scene.jpg\"></div>\n<div><b><code>extract</code> / <code>crop</code></b></div>\n<code>/extract_150_10_160_120/scene.jpg</code>\n<br>\nCrop a region, as <code>extract_{left}_{top}_{width}_{height}</code>. All four arguments are required; <code>width</code> and <code>height</code> must be positive. (<a href=\"https://sharp.pixelplumbing.com/api-resize#extract\">docs</a>)\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/format.webp?v=90841432\" width=\"320\" alt=\"/f_webp/photo.jpg\"></div>\n<div><b><code>format</code> / <code>f</code></b></div>\n<code>/f_webp/photo.jpg</code>\n<br>\nOutput format. One of <code>jpg</code>, <code>jpeg</code>, <code>png</code>, <code>webp</code>, <code>avif</code>, <code>gif</code>, <code>heif</code>, <code>tiff</code> or <code>auto</code> (experimental, only with middleware). (<a href=\"https://sharp.pixelplumbing.com/api-output#toformat\">docs</a>)\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/quality.jpg?v=865c529f\" width=\"320\" alt=\"/q_10/photo.jpg\"></div>\n<div><b><code>quality</code> / <code>q</code></b></div>\n<code>/q_10/photo.jpg</code>\n<br>\nEncoding quality, an integer between <code>1</code> and <code>100</code>. A lower value means a smaller file.\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/rotate.jpg?v=4bc4f0b2\" width=\"320\" alt=\"/rotate_45/scene.jpg\"></div>\n<div><b><code>rotate</code></b></div>\n<code>/rotate_45/scene.jpg</code>\n<br>\nAngle in degrees, between <code>-3600</code> and <code>3600</code>. Angles that are not a multiple of <code>90</code> fill the corners with the <code>background</code> / <code>b</code> colour. Without an angle (<code>rotate</code>) the image is auto-oriented from its EXIF tag. (<a href=\"https://sharp.pixelplumbing.com/api-operation#rotate\">docs</a>)\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/enlarge.jpg?v=9c6fb296\" width=\"320\" alt=\"/enlarge,s_400x400/photo.jpg\"></div>\n<div><b><code>enlarge</code></b></div>\n<code>/enlarge,s_400x400/photo.jpg</code>\n<br>\nAllow the image to be upscaled (<code>enlarge_false</code> turns it back off). Without it, the source is never upscaled: a requested box that is too large is shrunk, preserving its aspect ratio, so the output is never larger than the source, except along the padded axis of <code>fit_contain</code>.\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/flip.jpg?v=40a31bca\" width=\"320\" alt=\"/flip/scene.jpg\"></div>\n<div><b><code>flip</code></b></div>\n<code>/flip/scene.jpg</code>\n<br>\nMirror the image vertically, about the horizontal axis. Combine with <code>flop</code> to turn it upside down. (<a href=\"https://sharp.pixelplumbing.com/api-operation#flip\">docs</a>)\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/flop.jpg?v=747fa554\" width=\"320\" alt=\"/flop/scene.jpg\"></div>\n<div><b><code>flop</code></b></div>\n<code>/flop/scene.jpg</code>\n<br>\nMirror the image horizontally, about the vertical axis. Combine with <code>flip</code> to turn it upside down. (<a href=\"https://sharp.pixelplumbing.com/api-operation#flop\">docs</a>)\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/sharpen.jpg?v=eafda8ec\" width=\"320\" alt=\"/sharpen_5/photo.jpg\"></div>\n<div><b><code>sharpen</code></b></div>\n<code>/sharpen_5/photo.jpg</code>\n<br>\nSharpen the image, as <code>{sigma}_{flat}_{jagged}_{x1}_{y2}_{y3}</code>. <code>sigma</code> is a number between <code>0.000001</code> and <code>10</code>, the rest between <code>0</code> and <code>1000000</code>. Without arguments (<code>sharpen</code>) a mild sharpen is applied. (<a href=\"https://sharp.pixelplumbing.com/api-operation#sharpen\">docs</a>)\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/median.jpg?v=2317e13b\" width=\"320\" alt=\"/median_10/photo.jpg\"></div>\n<div><b><code>median</code></b></div>\n<code>/median_10/photo.jpg</code>\n<br>\nApply a median filter, removing noise while keeping edges. Square mask size, an integer between <code>1</code> and <code>1000</code> (defaults to <code>3</code>). (<a href=\"https://sharp.pixelplumbing.com/api-operation#median\">docs</a>)\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/blur.jpg?v=565d775a\" width=\"320\" alt=\"/blur_5/edges.jpg\"></div>\n<div><b><code>blur</code></b></div>\n<code>/blur_5/edges.jpg</code>\n<br>\nGaussian blur, as <code>{sigma}_{precision}_{minAmplitude}</code>. <code>sigma</code> is a number between <code>0.3</code> and <code>1000</code>, <code>precision</code> one of <code>integer</code> (default), <code>float</code> or <code>approximate</code>, <code>minAmplitude</code> between <code>0.001</code> and <code>1</code>. Without arguments (<code>blur</code>) a mild blur is applied. (<a href=\"https://sharp.pixelplumbing.com/api-operation#blur\">docs</a>)\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/dilate.png?v=17bf0c5d\" width=\"320\" alt=\"/dilate_4/graphic.png\"></div>\n<div><b><code>dilate</code></b></div>\n<code>/dilate_4/graphic.png</code>\n<br>\nExpand foreground objects. Width in pixels, an integer between <code>1</code> and <code>100</code> (defaults to <code>1</code>), capped below the sharp maximum since the cost grows with the width. (<a href=\"https://sharp.pixelplumbing.com/api-operation#dilate\">docs</a>)\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/erode.png?v=b5c7e49a\" width=\"320\" alt=\"/erode_4/graphic.png\"></div>\n<div><b><code>erode</code></b></div>\n<code>/erode_4/graphic.png</code>\n<br>\nShrink foreground objects. Width in pixels, an integer between <code>1</code> and <code>100</code> (defaults to <code>1</code>), capped below the sharp maximum since the cost grows with the width. (<a href=\"https://sharp.pixelplumbing.com/api-operation#erode\">docs</a>)\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/clahe.jpg?v=0aa709f5\" width=\"320\" alt=\"/clahe_20_20_5/edges.jpg\"></div>\n<div><b><code>clahe</code></b></div>\n<code>/clahe_20_20_5/edges.jpg</code>\n<br>\nContrast limiting adaptive histogram equalization, as <code>{width}_{height}_{maxSlope}</code>. <code>width</code> is required and <code>height</code> defaults to it (a square window); both are integers between <code>1</code> and <code>100</code>, clamped to the source dimensions. <code>maxSlope</code> is an integer between <code>0</code> and <code>100</code> (defaults to <code>3</code>). (<a href=\"https://sharp.pixelplumbing.com/api-operation#clahe\">docs</a>)\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/flatten.jpg?v=02455cd1\" width=\"320\" alt=\"/flatten,b_00ff00,f_jpeg/alpha.png\"></div>\n<div><b><code>flatten</code></b></div>\n<code>/flatten,b_00ff00,f_jpeg/alpha.png</code>\n<br>\nRemove the alpha channel, if any, and replace transparency with the <code>background</code> / <code>b</code> colour. (<a href=\"https://sharp.pixelplumbing.com/api-operation#flatten\">docs</a>)\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/unflatten.webp?v=db6b8455\" width=\"320\" alt=\"/unflatten,f_webp/graphic.png\"></div>\n<div><b><code>unflatten</code></b></div>\n<code>/unflatten,f_webp/graphic.png</code>\n<br>\nMake every fully white pixel transparent, so the output format needs an alpha channel (<code>png</code>, <code>webp</code>, <code>avif</code>). (<a href=\"https://sharp.pixelplumbing.com/api-operation#unflatten\">docs</a>)\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/gamma.jpg?v=ec2a179b\" width=\"320\" alt=\"/gamma_3/colour.jpg\"></div>\n<div><b><code>gamma</code></b></div>\n<code>/gamma_3/colour.jpg</code>\n<br>\nGamma correction, as <code>{gamma}_{gammaOut}</code>, each a number between <code>1.0</code> and <code>3.0</code> (defaults to <code>2.2</code>). (<a href=\"https://sharp.pixelplumbing.com/api-operation#gamma\">docs</a>)\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/negate.jpg?v=6dcd6c51\" width=\"320\" alt=\"/negate/colour.jpg\"></div>\n<div><b><code>negate</code></b></div>\n<code>/negate/colour.jpg</code>\n<br>\nProduce the negative of the image. Optional <code>{alpha}</code> (<code>true</code> by default) controls whether the alpha channel is negated too, e.g. <code>negate_false</code>. (<a href=\"https://sharp.pixelplumbing.com/api-operation#negate\">docs</a>)\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/normalize.jpg?v=7ab13cca\" width=\"320\" alt=\"/normalize_10_90/edges.jpg\"></div>\n<div><b><code>normalize</code></b></div>\n<code>/normalize_10_90/edges.jpg</code>\n<br>\nStretch the luminance to the full dynamic range, as <code>{lower}_{upper}</code> percentiles. <code>lower</code> is a number between <code>0</code> and <code>99</code> (defaults to <code>1</code>), <code>upper</code> between <code>1</code> and <code>100</code> (defaults to <code>99</code>) and greater than <code>lower</code>. (<a href=\"https://sharp.pixelplumbing.com/api-operation#normalize\">docs</a>)\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/threshold.jpg?v=e870d914\" width=\"320\" alt=\"/threshold_128/colour.jpg\"></div>\n<div><b><code>threshold</code></b></div>\n<code>/threshold_128/colour.jpg</code>\n<br>\nMap every pixel to black or white, as <code>{threshold}_{grayscale}</code>. <code>threshold</code> is an integer between <code>0</code> and <code>255</code> (defaults to <code>128</code>). Optional <code>grayscale</code> (<code>true</code> by default) converts to single channel first, e.g. <code>threshold_128_false</code>. (<a href=\"https://sharp.pixelplumbing.com/api-operation#threshold\">docs</a>)\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/linear.jpg?v=04090af0\" width=\"320\" alt=\"/linear_1.5_-30/colour.jpg\"></div>\n<div><b><code>linear</code></b></div>\n<code>/linear_1.5_-30/colour.jpg</code>\n<br>\nLevels adjustment applying <code>a * input + b</code>, as <code>{a}_{b}</code>. <code>a</code> is the multiplier (defaults to <code>1</code>) and <code>b</code> the offset (defaults to <code>0</code>), both numbers. (<a href=\"https://sharp.pixelplumbing.com/api-operation#linear\">docs</a>)\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/tint.jpg?v=7a727e4a\" width=\"320\" alt=\"/tint_00ff00/colour.jpg\"></div>\n<div><b><code>tint</code></b></div>\n<code>/tint_00ff00/colour.jpg</code>\n<br>\nTint the image, keeping its luminance. A hex (<code>f00</code>, <code>ff0000</code>) or named (<code>red</code>) colour. (<a href=\"https://sharp.pixelplumbing.com/api-colour#tint\">docs</a>)\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/grayscale.jpg?v=8e4a38ec\" width=\"320\" alt=\"/grayscale/colour.jpg\"></div>\n<div><b><code>grayscale</code></b></div>\n<code>/grayscale/colour.jpg</code>\n<br>\nConvert the image to 8-bit greyscale, mapping every pixel to its luminance. (<a href=\"https://sharp.pixelplumbing.com/api-colour#grayscale\">docs</a>)\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/modulate.jpg?v=f1cce46c\" width=\"320\" alt=\"/modulate_1.5_2_90_10/colour.jpg\"></div>\n<div><b><code>modulate</code></b></div>\n<code>/modulate_1.5_2_90_10/colour.jpg</code>\n<br>\nTransform the image, as <code>{brightness}_{saturation}_{hue}_{lightness}</code>. <code>brightness</code> and <code>saturation</code> are numbers <code>&gt;= 0</code>, <code>hue</code> an integer in degrees. Each is also available on its own (below). (<a href=\"https://sharp.pixelplumbing.com/api-operation#modulate\">docs</a>)\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/brightness.jpg?v=c79f82bb\" width=\"320\" alt=\"/brightness_1.5/colour.jpg\"></div>\n<div><b><code>brightness</code></b></div>\n<code>/brightness_1.5/colour.jpg</code>\n<br>\nBrightness multiplier, a number <code>&gt;= 0</code> (<code>1</code> leaves the image unchanged). Required. (<a href=\"https://sharp.pixelplumbing.com/api-operation#modulate\">docs</a>)\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/saturation.jpg?v=9a395c34\" width=\"320\" alt=\"/saturation_0.3/colour.jpg\"></div>\n<div><b><code>saturation</code></b></div>\n<code>/saturation_0.3/colour.jpg</code>\n<br>\nSaturation multiplier, a number <code>&gt;= 0</code> (<code>0</code> is greyscale). Required. (<a href=\"https://sharp.pixelplumbing.com/api-operation#modulate\">docs</a>)\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/hue.jpg?v=8dff0588\" width=\"320\" alt=\"/hue_90/colour.jpg\"></div>\n<div><b><code>hue</code></b></div>\n<code>/hue_90/colour.jpg</code>\n<br>\nHue rotation, an integer in degrees that wraps around at <code>360</code>. Required. (<a href=\"https://sharp.pixelplumbing.com/api-operation#modulate\">docs</a>)\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/lightness.jpg?v=fe72d3a8\" width=\"320\" alt=\"/lightness_30/colour.jpg\"></div>\n<div><b><code>lightness</code></b></div>\n<code>/lightness_30/colour.jpg</code>\n<br>\nLightness addend, a number added to the lightness of every pixel. Required. (<a href=\"https://sharp.pixelplumbing.com/api-operation#modulate\">docs</a>)\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/opacity.webp?v=75d9647c\" width=\"320\" alt=\"/opacity_0.5,f_webp/alpha.png\"></div>\n<div><b><code>opacity</code></b></div>\n<code>/opacity_0.5,f_webp/alpha.png</code>\n<br>\nOpacity, a number between <code>0</code> and <code>1</code>. Required. The image is made transparent, so the output format needs an alpha channel (<code>png</code>, <code>webp</code>, <code>avif</code>), or set the <code>background</code> / <code>b</code> colour to blend into it instead, e.g. <code>opacity_0.5,b_fff,f_jpeg</code>.\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><img src=\"./assets/operations/animated.gif?v=e51060bb\" width=\"160\" alt=\"/a,w_160/animated.gif\"></div>\n<div><b><code>animated</code> / <code>a</code></b></div>\n<code>/a,w_160/animated.gif</code>\n<br>\nProcess every frame of an animated image instead of the first one. Experimental.\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><em>No sample: the sample source has no uniform border to trim.</em></div>\n<div><b><code>trim</code></b></div>\n<code>/trim_30/photo.jpg</code>\n<br>\nTrim edge pixels that are within the threshold of the top-left pixel colour. Threshold is a number <code>&gt;= 0</code> (defaults to <code>10</code>). (<a href=\"https://sharp.pixelplumbing.com/api-resize#trim\">docs</a>)\n</td>\n</tr>\n<tr>\n<td valign=\"top\" align=\"left\" width=\"50%\">\n<div align=\"center\"><em>No sample: the sample source carries no EXIF <code>Orientation</code> tag.</em></div>\n<div><b><code>autoorient</code></b></div>\n<code>/autoorient/photo.jpg</code>\n<br>\nRotate and flip the image according to its EXIF <code>Orientation</code> tag, then remove the tag. Also applied by <code>rotate</code> without an angle. (<a href=\"https://sharp.pixelplumbing.com/api-operation#autoorient\">docs</a>)\n</td>\n<td valign=\"top\" align=\"left\" width=\"50%\"></td>\n</tr>\n</table>\n\n<!-- /automd -->\n\n## Programmatic API\n\nCreate an IPX instance with `createIPX()`, then either serve it directly or mount it as a handler in your own app.\n\n**Example:** Using built-in server\n\n<!-- automd:file code src=\"./examples/serve.ts\" -->\n\n```ts [serve.ts]\nimport { serveIPX, createIPX, ipxFSStorage, ipxHttpStorage } from \"ipx\";\n\nconst ipx = createIPX({\n  storage: ipxFSStorage({ dir: \"./public\" }),\n  httpStorage: ipxHttpStorage({ domains: [\"picsum.photos\"] }),\n  alias: { \"/picsum\": \"https://picsum.photos\" },\n});\n\n// http://localhost:3000/w_512/picsum/1000\nserveIPX(ipx);\n```\n\n<!-- /automd -->\n\n**Example**: Using with [h3](https://h3.dev)\n\n<!-- automd:file code src=\"./examples/h3.ts\" -->\n\n```ts [h3.ts]\nimport { H3, serve } from \"h3\";\n\nimport {\n  createIPX,\n  ipxFSStorage,\n  ipxHttpStorage,\n  createIPXFetchHandler,\n} from \"ipx\";\n\nconst ipx = createIPX({\n  storage: ipxFSStorage({ dir: \"./public\" }),\n  httpStorage: ipxHttpStorage({ domains: [\"picsum.photos\"] }),\n  alias: { \"/picsum\": \"https://picsum.photos\" },\n});\n\nconst app = new H3();\n\napp.mount(\"/ipx\", createIPXFetchHandler(ipx));\n\n// http://localhost:3000/ipx/w_512/picsum/1000\nserve(app);\n```\n\n<!-- /automd -->\n\n**Example:** Using with [express](https://expressjs.com)\n\n<!-- automd:file code src=\"./examples/express.ts\" -->\n\n```ts [express.ts]\nimport Express from \"express\";\n\nimport {\n  createIPX,\n  ipxFSStorage,\n  ipxHttpStorage,\n  createIPXNodeHandler,\n} from \"ipx\";\n\nimport type { RequestHandler } from \"express\";\n\nconst ipx = createIPX({\n  storage: ipxFSStorage({ dir: \"./public\" }),\n  httpStorage: ipxHttpStorage({ domains: [\"picsum.photos\"] }),\n  alias: { \"/picsum\": \"https://picsum.photos\" },\n});\n\nconst app = Express();\n\napp.use(\"/ipx\", createIPXNodeHandler(ipx) as RequestHandler);\n\n// http://localhost:3000/ipx/w_512/picsum/1000\napp.listen(3000, () => {\n  console.log(\"Server is running on http://localhost:3000\");\n});\n```\n\n<!-- /automd -->\n\n## Config\n\nEvery option can also be set universally with an `IPX_*` environment variable, which is how the CLI is configured. Explicit options win over the environment.\n\n### General\n\n| Option               | Environment variable       | Default | Description                                               |\n| -------------------- | -------------------------- | ------- | --------------------------------------------------------- |\n| `alias`              | `IPX_ALIAS`                | `{}`    | Map URL prefixes to other prefixes or remote origins.     |\n| `maxOutputDimension` | `IPX_MAX_OUTPUT_DIMENSION` | `8192`  | Maximum width and height (in pixels) of the output image. |\n\nRequested `width`, `height` and `resize` dimensions are clamped to `maxOutputDimension`, preserving the requested aspect ratio, and `extend` edges are clamped so the extended canvas stays within it. This bounds how much memory a single request can allocate: sharp only limits the _input_ size, so without it `/enlarge,s_20000x20000/image.jpg` (or `/extend_10000_10000_10000_10000/image.jpg`) allocates gigabytes from a small source image. Set to `false` to disable, which is only safe when modifiers come from a trusted source.\n\n### Filesystem source (`ipxFSStorage`)\n\nEnabled by default with the CLI only.\n\n| Option                    | Environment variable                | Default                 | Description                                            |\n| ------------------------- | ----------------------------------- | ----------------------- | ------------------------------------------------------ |\n| `dir`                     | `IPX_FS_DIR`                        | `.` (current directory) | Directory (or directories) files are served from.      |\n| `maxAge`                  | `IPX_FS_MAX_AGE`                    | `60` (via `maxAge`)     | `cache-control` max-age, in seconds, for served files. |\n| `allowSymlinksOutsideDir` | `IPX_FS_ALLOW_SYMLINKS_OUTSIDE_DIR` | `false`                 | Allows symlinks inside `dir` to resolve outside of it. |\n\n### HTTP(s) source (`ipxHttpStorage`)\n\nEnabled by default with the CLI only.\n\n| Option            | Environment variable         | Default | Description                                                                                   |\n| ----------------- | ---------------------------- | ------- | --------------------------------------------------------------------------------------------- |\n| `domains`         | `IPX_HTTP_DOMAINS`           | `[]`    | Allowlist of hostnames images can be fetched from.                                            |\n| `maxAge`          | `IPX_HTTP_MAX_AGE`           | `300`   | `cache-control` max-age, in seconds, when upstream sends none.                                |\n| `fetchOptions`    | `IPX_HTTP_FETCH_OPTIONS`     | `{}`    | Passed to `fetch()`.                                                                          |\n| `allowAllDomains` | `IPX_HTTP_ALLOW_ALL_DOMAINS` | `false` | Disables the allowlist. Unsafe on a public server.                                            |\n| `blockPrivateIPs` | `IPX_HTTP_BLOCK_PRIVATE_IPS` | `false` | Rejects hosts that are, or resolve to, a non-public IP address (best effort, see note below). |\n\nOnly `http:` and `https:` URLs are allowed (anything else is rejected with `403 IPX_FORBIDDEN_PROTOCOL`), and redirects are followed **only within the allowlist**, up to 3 hops: each redirect target is re-validated and a redirect to a host that is not listed is rejected with `403 IPX_FORBIDDEN_HOST` (`502 IPX_TOO_MANY_REDIRECTS` beyond 3 hops). Previously redirects were followed blindly, which let an allowlisted host with an open redirect bounce IPX to internal addresses such as the cloud metadata service (SSRF). If an allowlisted host redirects to a CDN, add the CDN hostname to the allowlist as well. Redirect re-validation is skipped when `allowAllDomains` is enabled without `blockPrivateIPs` (nothing to validate) or when `redirect` is explicitly set in `fetchOptions`.\n\n#### Blocking private IP addresses\n\nThe allowlist matches hostnames, not addresses, so an allowlisted host whose DNS record points at `127.0.0.1`, `169.254.169.254` or an RFC1918 address is fetched like any other. That is intended — allowlisted domains are trusted — but `blockPrivateIPs: true` adds a second line of defense for setups where the allowlist is broad (or `allowAllDomains` is on):\n\n```ts\nipxHttpStorage({ domains: [\"cdn.example.com\"], blockPrivateIPs: true });\n```\n\nThe host of the requested URL **and of every redirect hop** must be a public address. IP literals are checked directly, hostnames are resolved with the OS resolver (`dns.lookup`, so `/etc/hosts` counts) and _all_ returned addresses must be public. Loopback, `0.0.0.0/8`, RFC1918, CGNAT (`100.64.0.0/10`), link-local (`169.254.0.0/16`, `fe80::/10`), unique-local (`fc00::/7`), multicast, reserved/test ranges and the IPv4-mapped/compatible IPv6 forms of all of them (`::ffff:127.0.0.1` and friends) are rejected with `403 IPX_FORBIDDEN_IP`. A host that cannot be resolved is a `502 IPX_DNS_LOOKUP_FAILED`, and a runtime without `node:net`/`node:dns` a `500 IPX_IP_CHECK_UNAVAILABLE` — the check fails closed rather than quietly turning itself off.\n\nIt is **off by default**: many deployments legitimately fetch from in-cluster origins (internal object storage, a sidecar, `localhost` in development), and enabling it by default would break them.\n\n> [!WARNING]\n> `blockPrivateIPs` is best effort and does **not** protect against DNS rebinding. The hostname is resolved once to validate it and again when `fetch` opens the socket, so a DNS record the attacker controls (with a very short TTL) can answer with a public address during validation and a private one during the fetch. This matters when the attacker can choose the hostname: with `allowAllDomains`, or an allowlisted domain whose DNS you do not control. If IPX must not reach internal services, enforce it at the network level: run it behind an egress proxy, or a firewall / network policy that blocks private ranges and the cloud metadata service (on AWS, also require IMDSv2).\n\nIt is also not a substitute for the allowlist — a public address that happens to be reachable is still fetched.\n\n## SVG Images\n\nSVG images are not processed by sharp. They are sanitized, optimized with [svgo](https://github.com/svg/svgo) and served as `image/svg+xml`. Input that is not well-formed XML (an unescaped `&` is a common cause) is rejected with a `400 IPX_INVALID_SVG`.\n\n```ts\ncreateIPX({\n  storage,\n  svg: {\n    // SVGO config, or `false` to disable optimization\n    optimize: { multipass: true },\n    // Serve SVG images unsanitized. Only for fully trusted sources!\n    unsafeSkipSanitize: false,\n  },\n});\n```\n\n### Optimization\n\nSVGO's `preset-default` is applied unless you configure `plugins` yourself. Output is always a re-serialized document, never byte-identical to the source: ids are renamed, elements that are neither visible nor referenced within the same file are dropped, shapes are converted to paths and `<style>` rules are inlined.\n\nThat is fine for images used as `<img src>` or as CSS backgrounds, but it can break consumers that reach into the document:\n\n- Sprite sheets: a `<symbol id=\"icon\">` with no `<use>` in the same file is removed, so `<use href=\"/sprite.svg#icon\">` renders nothing.\n- References by id from outside the file, since ids are renamed (`icon-home` becomes `a`).\n- Selectors in a host page that inlines the SVG, since `<rect>` becomes `<path>` and class-based rules are inlined.\n\nUse `svg: { optimize: false }` to sanitize without optimizing, or keep optimization with the structural plugins disabled (about 1% larger output for typical icons):\n\n```ts\ncreateIPX({\n  storage,\n  svg: {\n    optimize: {\n      plugins: [\n        {\n          name: \"preset-default\",\n          params: {\n            overrides: { cleanupIds: false, removeHiddenElems: false },\n          },\n        },\n      ],\n    },\n  },\n});\n```\n\n### Sanitization\n\nSVG documents can carry active content, so IPX **always** sanitizes them before serving. Sanitization is independent of optimization: `svg: { optimize: false }` only disables SVGO's optimization plugins.\n\nRemoved from every SVG:\n\n- `<script>` elements (including namespaced ones such as `<svg:script>`)\n- Event handler attributes (any `on*` attribute)\n- Embedded foreign documents: `<foreignObject>`, `<iframe>`, `<embed>`, `<object>`, `<base>`, `<link>` and `<meta>`\n- Event handler elements: `<handler>` and `<listener>`\n- SMIL animations (`<animate>`, `<animateMotion>`, `<animateTransform>` and `<set>`) that assign an `on*` attribute or an unsafe URI, which could otherwise re-introduce a handler after load\n- URIs (`href`, `xlink:href` and `src`) with a scheme other than `http:`, `https:`, `mailto:`, `tel:`, `ftp:` or a non-SVG `data:image/*` — in particular `javascript:`, including obfuscated variants using entities or control characters\n- The `<!DOCTYPE>` declaration and all processing instructions (`<?…?>`), which are serialized unescaped and can smuggle markup past an HTML parser\n\n**External references are kept.** Attributes such as `<image href=\"https://…\">`, `<use href=\"…\">`, external fonts and `@import` inside `<style>` are preserved, since stripping them would break legitimate images. They are not a script execution vector, but they do allow the SVG to make requests to third-party origins (and thereby leak the viewer's IP address) when rendered as a document. If this matters for your threat model, host such images from a separate origin or block the requests with a Content-Security-Policy.\n\nThe bundled server sends `content-security-policy: default-src 'none'` with successful responses by default, which blocks both script execution and external references in browsers that honor it. Custom servers built on the programmatic API should send the same header, since sanitization cannot cover every future browser behavior on its own.\n\nSanitization can be disabled with `svg: { unsafeSkipSanitize: true }`. Only do this when every source is fully trusted: IPX will then serve SVG images with XSS payloads unchanged.\n\n## Custom URL Style\n\nThe `parseURL` option accepts a function that extracts the resource id and modifiers from the request URL, allowing any URL style you like. It receives the raw (still percent-encoded) request URL, so it is free to decode it however the URL style requires.\n\n**Example:** modifiers in the filename (`/<id>@@<modifiers>.<format>`), which can be preferable when prerendering images for static hosting.\n\n```ts\nimport { createIPXFetchHandler, parseIPXURL } from \"ipx\";\n\nconst handler = createIPXFetchHandler(ipx, {\n  parseURL(url) {\n    const path = decodeURIComponent(new URL(url).pathname.slice(1));\n\n    const match = path.match(/^(.+)@@(.+)\\.([^.]+)$/);\n    if (!match) {\n      // Not our style, fall back to the default `/<modifiers>/<id>`\n      return parseIPXURL(url);\n    }\n\n    const [, id = \"\", modifiersString = \"\", format = \"\"] = match;\n    const modifiers = Object.fromEntries(\n      modifiersString.split(\",\").map((m) => {\n        const [key = \"\", ...values] = m.split(\"_\");\n        return [key, values.join(\"_\")];\n      }),\n    );\n\n    return { id, modifiers: { ...modifiers, format } };\n  },\n});\n\n// http://localhost:3000/static/buffalo.png@@s_200x200.webp\n// http://localhost:3000/static/buffalo.png@@grayscale,w_200.webp\n```\n\nThe parser may be async, and can throw an `HTTPError` (re-exported from `ipx`) to reject a request with a specific status code.\n\nReturned values are escaped by IPX, so custom parsers don't need to do it themselves. Note this is not an access check — exactly as with the default URL style, what the resulting id is allowed to resolve to is enforced by the storage layer (`ipxFSStorage`'s directory boundary, `ipxHttpStorage`'s domain allowlist).\n\n## License\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md"}