{"_id":"@anzohost/vite-plugin-chunked","_rev":"10-1b943829a9260e1bc7694f59788bbe8e","name":"@anzohost/vite-plugin-chunked","dist-tags":{"latest":"1.0.9"},"versions":{"1.0.0":{"name":"@anzohost/vite-plugin-chunked","version":"1.0.0","keywords":["vite","vite-plugin","chunked","service-worker","dpi-bypass","cdn","download-manager"],"author":{"name":"AN3Orik"},"license":"CC-BY-NC-4.0","_id":"@anzohost/vite-plugin-chunked@1.0.0","maintainers":[{"name":"an3o","email":"anzo@anzo.host"}],"dist":{"shasum":"257ca7d6b60706e197495af89eb93a887df71f84","tarball":"https://registry.npmjs.org/@anzohost/vite-plugin-chunked/-/vite-plugin-chunked-1.0.0.tgz","fileCount":8,"integrity":"sha512-8KxMKJynnYR68q9ZtallCmti7C0YmYWBm5s9A04vYSSKpYAR8BcG58ZrPdcxqbEXcVa1kfDhDceWahlGiHaeqw==","signatures":[{"sig":"MEYCIQC24fzdn7NHX9ZI9lV1oyJP90bBRWuXCkM/gF6+V17AUgIhAPo+fJz6Keb3cmK/YdekBIz7iEDgc7eZPCF8hRKwgMad","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2789289},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"an3o","email":"anzo@anzo.host"},"_npmVersion":"10.9.4","description":"Vite plugin that splits assets into chunks and reassembles them via Service Worker to bypass ISP throttling","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^6.0.0","react":"^19.0.0","terser":"^5.44.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/react":"^19.0.0"},"peerDependencies":{"vite":"^5.0.0 || ^6.0.0 || ^7.0.0","react":"^18.0.0 || ^19.0.0","react-toastify":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-toastify":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vite-plugin-chunked_1.0.0_1764858857474_0.8765776385740074","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@anzohost/vite-plugin-chunked","version":"1.0.1","keywords":["vite","vite-plugin","chunked","service-worker","dpi-bypass","cdn","download-manager"],"author":{"name":"AN3Orik"},"license":"CC-BY-NC-4.0","_id":"@anzohost/vite-plugin-chunked@1.0.1","maintainers":[{"name":"an3o","email":"anzo@anzo.host"}],"dist":{"shasum":"cdaee8032ced51efbd7df0eced5f5defc824e646","tarball":"https://registry.npmjs.org/@anzohost/vite-plugin-chunked/-/vite-plugin-chunked-1.0.1.tgz","fileCount":8,"integrity":"sha512-TQ7nEYtsonpt5vBwWcundzG0btWJzRcMBlVUfQAJpdDaez1Md6TJNB4J49eU8pywT8wHnIIT82+xBW27YmayVQ==","signatures":[{"sig":"MEYCIQC+HaycQdT15gY7gvBg2q+7ZGNaPVnfsBzWk1LdYmDGAwIhAOUWe3s9chyVuO2OYLuRUP5iaU+JgTtaZBuz8FyQKh4g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2792402},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"c76b7fe0b2e854c0be1ce571294802c99b245e00","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"an3o","email":"anzo@anzo.host"},"_npmVersion":"10.9.4","description":"Vite plugin that splits assets into chunks and reassembles them via Service Worker to bypass ISP throttling","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^6.0.0","react":"^19.0.0","terser":"^5.44.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/react":"^19.0.0"},"peerDependencies":{"vite":"^5.0.0 || ^6.0.0 || ^7.0.0","react":"^18.0.0 || ^19.0.0","react-toastify":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-toastify":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vite-plugin-chunked_1.0.1_1764866721575_0.6680721936398637","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@anzohost/vite-plugin-chunked","version":"1.0.2","keywords":["vite","vite-plugin","chunked","service-worker","dpi-bypass","cdn","download-manager"],"author":{"name":"AN3Orik"},"license":"CC-BY-NC-4.0","_id":"@anzohost/vite-plugin-chunked@1.0.2","maintainers":[{"name":"an3o","email":"anzo@anzo.host"}],"dist":{"shasum":"db5e7ac84ee6605761d4c875a09b65bee90e10f7","tarball":"https://registry.npmjs.org/@anzohost/vite-plugin-chunked/-/vite-plugin-chunked-1.0.2.tgz","fileCount":8,"integrity":"sha512-6B/xskiVOZKb2nDrcVyFboe0HgHaTqn4AqhKOdBa3sNsMopPvuiEY8B+FoVexm9RpAYRtoHw+YdSfcd7300ASw==","signatures":[{"sig":"MEQCIGxGvnqRisrFFQiuHo5c07cRFncZlbnUZbJnGIBpNk3BAiBVQ04TtJKk4M0xBcodg2dsaUnlPjasnEkbV7IBtitahA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2795308},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"c76b7fe0b2e854c0be1ce571294802c99b245e00","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"an3o","email":"anzo@anzo.host"},"_npmVersion":"10.9.4","description":"Vite plugin that splits assets into chunks and reassembles them via Service Worker to bypass ISP throttling","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^6.0.0","react":"^19.0.0","terser":"^5.44.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/react":"^19.0.0"},"peerDependencies":{"vite":"^5.0.0 || ^6.0.0 || ^7.0.0","react":"^18.0.0 || ^19.0.0","react-toastify":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-toastify":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vite-plugin-chunked_1.0.2_1764866904194_0.3223554406634348","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@anzohost/vite-plugin-chunked","version":"1.0.3","keywords":["vite","vite-plugin","chunked","service-worker","dpi-bypass","cdn","download-manager"],"author":{"name":"AN3Orik"},"license":"CC-BY-NC-4.0","_id":"@anzohost/vite-plugin-chunked@1.0.3","maintainers":[{"name":"an3o","email":"anzo@anzo.host"}],"dist":{"shasum":"7dafb8a4291e08c3634bef7805de3ee9f266d2c9","tarball":"https://registry.npmjs.org/@anzohost/vite-plugin-chunked/-/vite-plugin-chunked-1.0.3.tgz","fileCount":8,"integrity":"sha512-dDx/w2H+IJjjRQaRx/UKYlBjPmik2TKEWuNBxIjMySSQ8iYzLyk2AJCn9V8eLiEbFyCq3Uq5RWi4LFtHjmf1ZQ==","signatures":[{"sig":"MEUCIF7OcpGaTU6eWR781C3YCvKkQtkN4nR5n4C0iBgYbWcXAiEAr+mQn79buJgV27to+jMTxfBPgMEUpC97wCSxHTgGYsQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2795308},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"c76b7fe0b2e854c0be1ce571294802c99b245e00","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"an3o","email":"anzo@anzo.host"},"_npmVersion":"10.9.4","description":"Vite plugin that splits assets into chunks and reassembles them via Service Worker to bypass ISP throttling","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^6.0.0","react":"^19.0.0","terser":"^5.44.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/react":"^19.0.0"},"peerDependencies":{"vite":"^5.0.0 || ^6.0.0 || ^7.0.0","react":"^18.0.0 || ^19.0.0","react-toastify":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-toastify":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vite-plugin-chunked_1.0.3_1764866916277_0.3493028828484048","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@anzohost/vite-plugin-chunked","version":"1.0.4","keywords":["vite","vite-plugin","chunked","service-worker","dpi-bypass","cdn","download-manager"],"author":{"name":"AN3Orik"},"license":"CC-BY-NC-4.0","_id":"@anzohost/vite-plugin-chunked@1.0.4","maintainers":[{"name":"an3o","email":"anzo@anzo.host"}],"dist":{"shasum":"03c3a266a0d0bfb6486880bc3e89940013726791","tarball":"https://registry.npmjs.org/@anzohost/vite-plugin-chunked/-/vite-plugin-chunked-1.0.4.tgz","fileCount":8,"integrity":"sha512-f5iobJRhGjlW8UYByqMVGKtgQvb/H74rnyGEIe+3M/BlXvkSFolS3B50Pce+c3CXoq4E0XPYU6/HlQUg9qkyFw==","signatures":[{"sig":"MEUCIGnpKwz3KkUbQ5G+IIx3k6zitL2f0e/c7yzF/HZmg3fQAiEA75FzJukX/j6pYx8WBx7U0VH/GC9XzbJNkWmq5diTpDM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2796279},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"c76b7fe0b2e854c0be1ce571294802c99b245e00","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"an3o","email":"anzo@anzo.host"},"_npmVersion":"10.9.4","description":"Vite plugin that splits assets into chunks and reassembles them via Service Worker to bypass ISP throttling","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^6.0.0","react":"^19.0.0","terser":"^5.44.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/react":"^19.0.0"},"peerDependencies":{"vite":"^5.0.0 || ^6.0.0 || ^7.0.0","react":"^18.0.0 || ^19.0.0","react-toastify":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-toastify":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vite-plugin-chunked_1.0.4_1764867135362_0.9693109474264123","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@anzohost/vite-plugin-chunked","version":"1.0.5","keywords":["vite","vite-plugin","chunked","service-worker","dpi-bypass","cdn","download-manager"],"author":{"name":"AN3Orik"},"license":"CC-BY-NC-4.0","_id":"@anzohost/vite-plugin-chunked@1.0.5","maintainers":[{"name":"an3o","email":"anzo@anzo.host"}],"dist":{"shasum":"3ceac8029412a18d57cbefe170225b43fd16bfc6","tarball":"https://registry.npmjs.org/@anzohost/vite-plugin-chunked/-/vite-plugin-chunked-1.0.5.tgz","fileCount":8,"integrity":"sha512-ZVLzz01b4xHHue/qo2Uvg9J3tEUVBBBiAXx3TJjKWQMI5H75JXekNn4vHG7PRB9YUpgqTGTHixmBZwouRZ+T6A==","signatures":[{"sig":"MEYCIQCQ30EHckpTa/22WhLBz/pIFqZ8aBLhN117Xb/Ap+PRVQIhAOw/TOvW1XXcpkBOms7RV1mGi0xVv0+7pS1HG5jkEA2G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2796269},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"906fa333cb70d44594d87839ad569d5acc2d633c","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"an3o","email":"anzo@anzo.host"},"_npmVersion":"10.9.4","description":"Vite plugin that splits assets into chunks and reassembles them via Service Worker to bypass ISP throttling","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^6.0.0","react":"^19.0.0","terser":"^5.44.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/react":"^19.0.0"},"peerDependencies":{"vite":"^5.0.0 || ^6.0.0 || ^7.0.0","react":"^18.0.0 || ^19.0.0","react-toastify":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-toastify":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vite-plugin-chunked_1.0.5_1764868661659_0.23385166187334439","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@anzohost/vite-plugin-chunked","version":"1.0.6","keywords":["vite","vite-plugin","chunked","service-worker","dpi-bypass","cdn","download-manager"],"author":{"name":"AN3Orik"},"license":"CC-BY-NC-4.0","_id":"@anzohost/vite-plugin-chunked@1.0.6","maintainers":[{"name":"an3o","email":"anzo@anzo.host"}],"dist":{"shasum":"6a2aff89ce5f27e21c5d36d3d639d5ccd9f1865d","tarball":"https://registry.npmjs.org/@anzohost/vite-plugin-chunked/-/vite-plugin-chunked-1.0.6.tgz","fileCount":8,"integrity":"sha512-eHitNTNC7Wps5g2PXOEbbEMLEP6jCbX1qkLilxXaCOcy8XR74xmP/FcTBe/NYKn/wNdzmEnYZVf9xvng6n9pbQ==","signatures":[{"sig":"MEQCIFy32wUkQI+/Ut6cVaMx9R7rqTXCYd6heGI0mB1JF3+4AiBRHoiUMtUocEEFYxBFWDD9UOpdUJD0KnrXuOVPw8En6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2817545},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"394b0f6a95a9093268215bd4a42dac4edd4c3212","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"an3o","email":"anzo@anzo.host"},"_npmVersion":"10.9.4","description":"Vite plugin that splits assets into chunks and reassembles them via Service Worker to bypass ISP throttling","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^6.0.0","react":"^19.0.0","terser":"^5.44.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/react":"^19.0.0"},"peerDependencies":{"vite":"^5.0.0 || ^6.0.0 || ^7.0.0","react":"^18.0.0 || ^19.0.0","react-toastify":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-toastify":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vite-plugin-chunked_1.0.6_1766261246088_0.6192545746405378","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@anzohost/vite-plugin-chunked","version":"1.0.7","keywords":["vite","vite-plugin","chunked","service-worker","dpi-bypass","cdn","download-manager"],"author":{"name":"AN3Orik"},"license":"CC-BY-NC-4.0","_id":"@anzohost/vite-plugin-chunked@1.0.7","maintainers":[{"name":"an3o","email":"anzo@anzo.host"}],"dist":{"shasum":"c0afa77c8e02908c5cdc81ce704ed56f32fc41e0","tarball":"https://registry.npmjs.org/@anzohost/vite-plugin-chunked/-/vite-plugin-chunked-1.0.7.tgz","fileCount":8,"integrity":"sha512-PvTSC7+0i0ETRdc3WAwRu91uOYcVuYqZJnXRO0JUyR2FqF40ldtIwjNb+riFlustk0hFXONpxPhIAdXJfvBi4Q==","signatures":[{"sig":"MEUCIQD2nTA/GBtBdafZz3yxthTr5y5yOU/D0Oa5PaoPAJHs1gIgMZxUbgU9+YALA+V8m9VoodzXOpNGi0Z8bfoCvdSa99E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2817515},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"394b0f6a95a9093268215bd4a42dac4edd4c3212","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"an3o","email":"anzo@anzo.host"},"_npmVersion":"10.9.4","description":"Vite plugin that splits assets into chunks and reassembles them via Service Worker to bypass ISP throttling","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^6.0.0","react":"^19.0.0","terser":"^5.44.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/react":"^19.0.0"},"peerDependencies":{"vite":"^5.0.0 || ^6.0.0 || ^7.0.0","react":"^18.0.0 || ^19.0.0","react-toastify":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-toastify":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vite-plugin-chunked_1.0.7_1766262162790_0.38596766933706084","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@anzohost/vite-plugin-chunked","version":"1.0.8","keywords":["vite","vite-plugin","chunked","service-worker","dpi-bypass","cdn","download-manager"],"author":{"name":"AN3Orik"},"license":"CC-BY-NC-4.0","_id":"@anzohost/vite-plugin-chunked@1.0.8","maintainers":[{"name":"an3o","email":"anzo@anzo.host"}],"dist":{"shasum":"9db5b6a781d7eddfff67f489535f0b166720bcde","tarball":"https://registry.npmjs.org/@anzohost/vite-plugin-chunked/-/vite-plugin-chunked-1.0.8.tgz","fileCount":8,"integrity":"sha512-suePo+GLe4LOms+FPSrjzT8KrpQgyWeTZNVqNaC1jnp+hFYVT3fwuZFRq+Uumk1LKIGHknCzMGHcz6MdDEDJbA==","signatures":[{"sig":"MEYCIQD7fI8IyJKvj0X/yy233dIsk96aA6c+dLJ0uS+j/gB8FQIhAN+sGEnYDbWcZlxSoWX8zNmqy4I48/TuvEK/K4l7ZPtZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2818101},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"394b0f6a95a9093268215bd4a42dac4edd4c3212","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"an3o","email":"anzo@anzo.host"},"_npmVersion":"10.9.4","description":"Vite plugin that splits assets into chunks and reassembles them via Service Worker to bypass ISP throttling","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^6.0.0","react":"^19.0.0","terser":"^5.44.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/react":"^19.0.0"},"peerDependencies":{"vite":"^5.0.0 || ^6.0.0 || ^7.0.0","react":"^18.0.0 || ^19.0.0","react-toastify":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-toastify":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vite-plugin-chunked_1.0.8_1766262574581_0.26785227438154835","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@anzohost/vite-plugin-chunked","version":"1.0.9","description":"Vite plugin that splits assets into chunks and reassembles them via Service Worker to bypass ISP throttling","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./client":{"import":"./dist/client/index.js","types":"./dist/client/index.d.ts"}},"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"keywords":["vite","vite-plugin","chunked","service-worker","dpi-bypass","cdn","download-manager"],"author":{"name":"AN3Orik"},"license":"CC-BY-NC-4.0","peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-toastify":"^9.0.0 || ^10.0.0 || ^11.0.0","vite":"^5.0.0 || ^6.0.0 || ^7.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-toastify":{"optional":true}},"devDependencies":{"@types/node":"^20.10.0","@types/react":"^19.0.0","react":"^19.0.0","terser":"^5.44.1","tsup":"^8.0.0","typescript":"^5.3.0","vite":"^6.0.0"},"_id":"@anzohost/vite-plugin-chunked@1.0.9","gitHead":"6d729a09f155a336296f015fc417f922676d4973","_nodeVersion":"22.21.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-Tsr1VrwNLJQR0XNwcA77zxdbxgZSZcpQb6pd4Pc+vc1WOeKj2aRZQwh+fmyPT3CIMXqOMeUn77a06UNwCBBYvg==","shasum":"63b1f91aaac710d81cf4cbca7b8d4abc15876335","tarball":"https://registry.npmjs.org/@anzohost/vite-plugin-chunked/-/vite-plugin-chunked-1.0.9.tgz","fileCount":8,"unpackedSize":2845500,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIF1B7aSJOxp12sp/9clxnUkvjv1wAnI7PdsheFJVUW4JAiBZNmgxAKQQolzfaevKvMht0NHSzK3y3X46uD4jzxSecQ=="}]},"_npmUser":{"name":"an3o","email":"anzo@anzo.host"},"directories":{},"maintainers":[{"name":"an3o","email":"anzo@anzo.host"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vite-plugin-chunked_1.0.9_1766271501793_0.126670597988348"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-04T14:34:17.395Z","modified":"2025-12-20T22:58:22.249Z","1.0.0":"2025-12-04T14:34:17.652Z","1.0.1":"2025-12-04T16:45:21.781Z","1.0.2":"2025-12-04T16:48:24.423Z","1.0.3":"2025-12-04T16:48:36.494Z","1.0.4":"2025-12-04T16:52:15.553Z","1.0.5":"2025-12-04T17:17:41.846Z","1.0.6":"2025-12-20T20:07:26.283Z","1.0.7":"2025-12-20T20:22:42.991Z","1.0.8":"2025-12-20T20:29:34.812Z","1.0.9":"2025-12-20T22:58:22.013Z"},"author":{"name":"AN3Orik"},"license":"CC-BY-NC-4.0","keywords":["vite","vite-plugin","chunked","service-worker","dpi-bypass","cdn","download-manager"],"description":"Vite plugin that splits assets into chunks and reassembles them via Service Worker to bypass ISP throttling","maintainers":[{"name":"an3o","email":"anzo@anzo.host"}],"readme":"# @anzohost/vite-plugin-chunked\r\n\r\nVite plugin for chunked asset delivery with Service Worker. Splits large files into small chunks that bypass DPI/throttling and assembles them client-side.\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @anzohost/vite-plugin-chunked\r\n```\r\n\r\n## Scripts\r\n\r\nAdd to `package.json`:\r\n\r\n```json\r\n{\r\n  \"scripts\": {\r\n    \"build:chunked\": \"vite build -- --chunked\",\r\n    \"preview:chunked\": \"npm run build:chunked && cross-env CHUNKED=true vite preview\"\r\n  }\r\n}\r\n```\r\n\r\nFor multiple environments:\r\n\r\n```json\r\n{\r\n  \"scripts\": {\r\n    \"build:prod:chunked\": \"vite build --mode production -- --chunked\",\r\n    \"preview:prod:chunked\": \"npm run build:prod:chunked && cross-env CHUNKED=true vite preview --mode production\"\r\n  }\r\n}\r\n```\r\n\r\n## Usage\r\n\r\n```ts\r\n// vite.config.ts\r\nimport { chunkedPlugin } from '@anzohost/vite-plugin-chunked';\r\n\r\nexport default defineConfig({\r\n  plugins: [\r\n    chunkedPlugin({\r\n      chunkSize: 15,           // KB per chunk\r\n      concurrency: 6,          // parallel downloads\r\n      debug: false,\r\n      \r\n      // Block detection - redirects to mirror if site is blocked\r\n      blockDetection: {\r\n        enabled: true,\r\n        // dnsDomain: 'example.com'  // optional, defaults to current hostname\r\n        },\r\n        \r\n        // Integrity checks\r\n        integrity: {\r\n          enabled: true,           // Verify SHA-256 hashes\r\n          retries: 3,              // Retries per chunk\r\n          fallbackOnCorruption: true // Redirect to mirror if verification fails\r\n        }\r\n    })\r\n  ]\r\n});\r\n    })\r\n  ]\r\n});\r\n```\r\n\r\n## Concurrency & Request Queue\r\n\r\nTo prevent network saturation and server blocking, the plugin implements a **Global Request Queue** for chunk downloads.\r\n\r\n*   **Concurrency**: Controls the maximum number of simultaneous chunk requests (default: 6).\r\n*   **Queueing**: Chunk fetches are queued globally across all assets.\r\n*   **Non-Blocking**: Non-chunked assets (e.g., small images, API calls) bypass this queue effectively, ensuring the application remains responsive even during heavy downloads.\r\n\r\n## Block Detection\r\n\r\nService Worker checks for block marker in index.html on every page load. If missing (ISP replaced content), redirects to mirror.\r\n\r\n**DNS Domain:**\r\n- If `dnsDomain` is set in config — uses that domain\r\n- Otherwise — uses current `location.hostname`\r\n\r\n**DNS TXT Record Format**:\r\n```json\r\n\"[1, \\\"<!-- SUCCESS_MARKER -->\\\", \\\"https://mirror.example.com\\\"]\"\r\n```\r\n- `[0]` — enabled (1/0)\r\n- `[1]` — block marker\r\n- `[2]` — redirect URL\r\n\r\nThis allows updating block detection settings without redeploying.\r\n\r\n## Integrity Checks\r\n\r\nPlugin automatically generates SHA-256 hashes for all files in `meta.json`.\r\n\r\n**Features:**\r\n- Verifies hash of the **fully assembled file** after all chunks are downloaded.\r\n- **Retries**: Automatically retries failed/corrupted user downloads (default: 3 times).\r\n- **Fallback**: If corruption persists and `fallbackOnCorruption` is enabled, triggers the generic Block Detection mechanism (DNS check) to redirect the user to a secure mirror.\r\n\r\n## Download Manager\r\n\r\nIntercepts navigation to large files (`.zip`, `.exe`, `.7z`, `.rar`) and downloads them via chunked assembly with progress UI. Uses `concurrency` setting for parallel chunk downloads.\r\n\r\n**Auto-injected** — built-in vanilla JS toast, works without setup.\r\n\r\n**Override with custom toast** — use `DownloadManager` component. When mounted, it takes full control of downloads and built-in toast is disabled:\r\n\r\n```tsx\r\nimport { DownloadManager } from '@anzohost/vite-plugin-chunked/client';\r\nimport { toast } from 'react-toastify';\r\n\r\n<DownloadManager toast={{ success: toast.success, error: toast.error, info: toast.info }}>\r\n  <App />\r\n</DownloadManager>\r\n```\r\n\r\n## Output Structure\r\n\r\n```\r\ndist/\r\n├── index.html           # Modified to load via SW\r\n├── chunked-loader.js    # Registers SW, loads assets\r\n├── chunked-sw.js        # Assembles chunks, block detection\r\n├── chunked-assets.json  # Manifest\r\n└── _chunks/\r\n    └── assets_main.js/\r\n        ├── meta.json    # Chunk count, mime type\r\n        ├── part_0.zst   # Zstandard compressed\r\n        └── part_1.zst\r\n```\r\n\r\n## Configuration\r\n\r\n| Option | Default | Description |\r\n|--------|---------|-------------|\r\n| `chunkSize` | 15 | KB per chunk |\r\n| `concurrency` | 6 | Max simultaneous chunk downloads (global queue) |\r\n| `chunkable` | `.js .css .json .webp .jpg .png .gif .ico .mp3 .zip .exe .7z .rar` | Extensions to chunk |\r\n| `downloadable` | `.zip .7z .rar .exe` | Trigger download UI |\r\n| `debug` | false | Console logs |\r\n| `blockDetection.enabled` | false | Enable marker check |\r\n| `blockDetection.dnsDomain` | `location.hostname` | Domain for TXT lookup |\r\n| `integrity.enabled` | true | Verify file hashes |\r\n| `integrity.retries` | 3 | Retries on failure/mismatch |\r\n| `integrity.fallbackOnCorruption` | true | Redirect if corruption persists |\r\n| `loadingOverlay.enabled` | false | Show progress over media assets |\r\n| `loadingOverlay.showSpinner` | true | Show animated spinner |\r\n| `loadingOverlay.showText` | true | Show percentage text |\r\n| `loadingOverlay.blur` | 2 | Background blur depth (px) |\r\n| `loadingOverlay.backgroundColor` | `rgba(0,0,0,0.4)` | Overlay background |\r\n| `loadingOverlay.textColor` | `#fff` | Spinner/text color |\r\n\r\n## Loading Overlays\r\n\r\nThe plugin can automatically inject loading progress overlays on internal media assets (`<img>`, `<video>`) before they are fully loaded.\r\n\r\n\r\n## License\r\n\r\n[CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/) — free for non-commercial use, attribution required. Commercial use requires permission.\r\n","readmeFilename":"README.md"}