{"_id":"@budarin/psw-plugin-opfs-serve-range","_rev":"48-a3db35aeac26e2b0883d12bed038eea4","name":"@budarin/psw-plugin-opfs-serve-range","dist-tags":{"latest":"5.0.1"},"versions":{"1.0.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.0.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.0.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"1cea10591d4e641e615625e441b88bf39b85ddfb","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.0.0.tgz","fileCount":30,"integrity":"sha512-azJD2tbc4GqMZPVThF8romKuoDClM1kyjXoFKe7po1GzfJY/ynpGcu1p7P3gjT1KzNH+r6Xt7hya1BIXnEPRGQ==","signatures":[{"sig":"MEQCIFhH1LwZRLhOtjk6JtglbU9dDFQOMLaS8Ja8VK7t0h3dAiB6ienT5UTKptia9r7RXM3+LovGH/7EwU4UyOW5nrTFCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127130},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\c5bfcdc88495ebd157372fd8fbaae69d\\budarin-psw-plugin-opfs-serve-range-1.0.0.tgz","_integrity":"sha512-azJD2tbc4GqMZPVThF8romKuoDClM1kyjXoFKe7po1GzfJY/ynpGcu1p7P3gjT1KzNH+r6Xt7hya1BIXnEPRGQ==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.4"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.0.0_1771334149061_0.9055353688908143","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.0.1","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.0.1","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"9df0ba937f4d8b1d2b643535ba6a21268f9e5231","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.0.1.tgz","fileCount":30,"integrity":"sha512-gttUZ/waUz0IA07bcWlQXBq77OdE9FvqVDM7gjioFcg2/oBHUhjq+Vnr36/GMxKMadHLCgrgI3prn6oKy711hg==","signatures":[{"sig":"MEUCIBUPR3EpPke/C/uRa8DcF+EmeuOTQ7rPbT6NBndrJPBGAiEAwgqHtSJBkKYKsVInVU0C7GRK92sAMEIuq2ws0mCRU/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127941},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.0.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\085af0646970450a9d1c287eac820c98\\budarin-psw-plugin-opfs-serve-range-1.0.1.tgz","_integrity":"sha512-gttUZ/waUz0IA07bcWlQXBq77OdE9FvqVDM7gjioFcg2/oBHUhjq+Vnr36/GMxKMadHLCgrgI3prn6oKy711hg==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.4"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.0.1_1771335136756_0.36495962198825116","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.0.2","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.0.2","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"0b85d995a7947fc2b534c6cbf7726109deaffd85","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.0.2.tgz","fileCount":30,"integrity":"sha512-q366jd9Nu7gFQ4kzYhH0m2XqWTA1LG76RJ7mKa4DSmY3WejofQCqmHcVSPInee9OHBzTPXjYMSYormqe2houvg==","signatures":[{"sig":"MEQCICuvnlIPB6BhGrobiMnaJugRqosQFu+Jc2fgudiWpXu4AiAl0F32SzIucGSgwQNIpv4O7EW5iVMCDc14uat2CTNeXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127137},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.0.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\9aed9029598fdf3d59d87a7f43e65b15\\budarin-psw-plugin-opfs-serve-range-1.0.2.tgz","_integrity":"sha512-q366jd9Nu7gFQ4kzYhH0m2XqWTA1LG76RJ7mKa4DSmY3WejofQCqmHcVSPInee9OHBzTPXjYMSYormqe2houvg==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.4"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.0.2_1771335985163_0.1714402068287133","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.0.3","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.0.3","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"2049d2cb151639766369a33fb19f608b42007950","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.0.3.tgz","fileCount":30,"integrity":"sha512-Jy+J+FoozlngBasFv26Yuw0yBil/6wwCq+DQDQ2CDawxMDphVzpBWN+TurMtNs3gcGfMqu2DCzG+p35ma6A/8A==","signatures":[{"sig":"MEYCIQDnhIfE8mBGA0emTk6cWd3RHeQQCeSdNZzBIgUlUTi5NQIhAMo+z/FHakSzJYz2OZ3jsrJfObbxD1eg8mqbjZbvcKYJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128325},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.0.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\2220c7d03b057ccf773d8e2502d3bf15\\budarin-psw-plugin-opfs-serve-range-1.0.3.tgz","_integrity":"sha512-Jy+J+FoozlngBasFv26Yuw0yBil/6wwCq+DQDQ2CDawxMDphVzpBWN+TurMtNs3gcGfMqu2DCzG+p35ma6A/8A==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.4"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.0.3_1771338503542_0.08356801111914947","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.0.4","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.0.4","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"eda5c86490b8885ac0f48e084da37a27d734e48b","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.0.4.tgz","fileCount":30,"integrity":"sha512-Do7J2rqtYs3MWscmqclXqyweLK7ujWuMzYzVqcKGdtQJvaF5XOKqZWKcMq+H7Op0nZN+R3vyect2iSreqSAehw==","signatures":[{"sig":"MEYCIQDp/LQTiu4gOBqV/y+70kLyfZLp+MtFhBDXXMqf2LULawIhAIwztDCYWW0kzg858OyG1bdNWJVO5cbD5wVZH8ruJjtC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128727},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.0.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\ba0c7f20f62a5d9fbc0a7f3d9988233b\\budarin-psw-plugin-opfs-serve-range-1.0.4.tgz","_integrity":"sha512-Do7J2rqtYs3MWscmqclXqyweLK7ujWuMzYzVqcKGdtQJvaF5XOKqZWKcMq+H7Op0nZN+R3vyect2iSreqSAehw==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.4"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.0.4_1771338947877_0.5107699415627711","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.0.5","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.0.5","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"187529c3c5de6725773ccd87ce8131c070b2425d","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.0.5.tgz","fileCount":30,"integrity":"sha512-ZmTlJIaP2pAOxyx51JuEVP9jrm9ahe7q4JaUfYx02GQDZFtYpUQEPw9QVK/iXO25j6HGdY15mXvu9KAh7PhtaA==","signatures":[{"sig":"MEUCIEGCTIE7i4hA3yzfdY5JBmaG/0bKN/hgA7J6ll4atuzUAiEAjTpeY4dJ8O3N3xpfMd6rRJem+pg5AlfmcPAzxFAJv8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128861},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.0.5.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\3a88d3b1ec5f0e1e7a3ffb090d2d1347\\budarin-psw-plugin-opfs-serve-range-1.0.5.tgz","_integrity":"sha512-ZmTlJIaP2pAOxyx51JuEVP9jrm9ahe7q4JaUfYx02GQDZFtYpUQEPw9QVK/iXO25j6HGdY15mXvu9KAh7PhtaA==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.4"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.0.5_1771339355805_0.4618191436119765","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.0.6","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.0.6","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"f3f7b961fc8a5259d51fa8294b151daa79da00c3","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.0.6.tgz","fileCount":30,"integrity":"sha512-awkr/oLgc8NhW8st3jMjMdz3xEO2mhvqltgbToF1GkIQD89IJHMRPmzGCr5f2kTcTT053bj4QV8xzZhTRpFJtQ==","signatures":[{"sig":"MEUCIDwDAVmvhXa7ujT6cTqQutR8UDdlm8Fz2bAaDodbhLRkAiEArj8VyR7YVCVVwKbnSvt73v0e2bwbyrHWLysoVMVn62w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122855},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.0.6.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"/private/var/folders/3d/my733tj9449d7jbbq3h3395w0000gn/T/e1a2d431a3fdda4fecbdce870b5a8c86/budarin-psw-plugin-opfs-serve-range-1.0.6.tgz","_integrity":"sha512-awkr/oLgc8NhW8st3jMjMdz3xEO2mhvqltgbToF1GkIQD89IJHMRPmzGCr5f2kTcTT053bj4QV8xzZhTRpFJtQ==","_npmVersion":"11.8.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.6"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.0.6_1771341863698_0.9389466016681831","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.1.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.1.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"dd3961e2d0def2cf23725224f0ef9436c97c8738","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.1.0.tgz","fileCount":30,"integrity":"sha512-0THiyfydSa3aqL4uOtelLxnSV7g0DWU6xTfaIJG7KVtKdjRaCMBUVGBzCLoMQhXHNDopMrF228K8qZZCqGN37A==","signatures":[{"sig":"MEUCIBG0/uDVnV5VNZ56N9tbAGmbM58OQgvaFYF41zEKIufVAiEAmRBLQJb+PdvrBe3qXzNI94saYilIP2xPxUgje/2rmx4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127607},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"/private/var/folders/3d/my733tj9449d7jbbq3h3395w0000gn/T/e6d1ffad8965787f6cf8470fe5cb6221/budarin-psw-plugin-opfs-serve-range-1.1.0.tgz","_integrity":"sha512-0THiyfydSa3aqL4uOtelLxnSV7g0DWU6xTfaIJG7KVtKdjRaCMBUVGBzCLoMQhXHNDopMrF228K8qZZCqGN37A==","_npmVersion":"11.8.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.6"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.1.0_1771348030779_0.8665219906232942","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.1.1","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.1.1","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"c7ba7d6f07e48bd3687c0685a7536921cd6ec070","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.1.1.tgz","fileCount":30,"integrity":"sha512-DSBBl3IRW4MxB+QGfDYk3qKSv2UE9w+4xCo/Q5t2iDci81hbKGXv8KcEMcEnFLDH3rAUIwpH7mBZS/verUh5UQ==","signatures":[{"sig":"MEYCIQCuC2fGiWf2+pExNVr3reLHIvr0AueDhWCjy7g3gj7uJQIhAPCaa0C6T6YPjfvIMpukk4X7GLx0nnCcPDnd8cFzIDw/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127703},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.1.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"/private/var/folders/3d/my733tj9449d7jbbq3h3395w0000gn/T/711ef4b48c5b1c9cd693a9b5c1948fe6/budarin-psw-plugin-opfs-serve-range-1.1.1.tgz","_integrity":"sha512-DSBBl3IRW4MxB+QGfDYk3qKSv2UE9w+4xCo/Q5t2iDci81hbKGXv8KcEMcEnFLDH3rAUIwpH7mBZS/verUh5UQ==","_npmVersion":"11.8.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.6"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.1.1_1771348340313_0.17031296118766814","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.1.2","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.1.2","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"995e52663d55300b7c8c5a517c02c31885c1bb20","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.1.2.tgz","fileCount":30,"integrity":"sha512-knof50VEyJ2BccGg/L5DMTEr6N6jWObZTU5ZqqBCgU4dhi4dY3XysHUt7lf/+LIoQbcS/bVOHImzs+vc/+gMag==","signatures":[{"sig":"MEQCIDtrke7EzS6AQ/raueNOYfGVaanqW+Tk/s/Je5b3Bj/kAiAKe7vH1VBexOloWlR8E6X6Wx3AkXEdLrdE2FcMYmEkbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127703},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.1.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"/private/var/folders/3d/my733tj9449d7jbbq3h3395w0000gn/T/c690ed58df2b43539e8b2871d2d232b8/budarin-psw-plugin-opfs-serve-range-1.1.2.tgz","_integrity":"sha512-knof50VEyJ2BccGg/L5DMTEr6N6jWObZTU5ZqqBCgU4dhi4dY3XysHUt7lf/+LIoQbcS/bVOHImzs+vc/+gMag==","_npmVersion":"11.8.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.6"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.1.2_1771348511932_0.28235531318737594","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.1.3","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.1.3","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"9c36501d4b21db4b39158f041ba278ce08460b21","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.1.3.tgz","fileCount":30,"integrity":"sha512-/mRfizQc1eN7ONtSmrEb6BXPcfpB37WndtD1CHJfKcOdqDAQTmMR40iAuMyxwB0QC8rlUUMr94SoqPG/7pNmJQ==","signatures":[{"sig":"MEUCIB0cc4wwew2f4hEGfw9xn+vbem8Pnb+4+DOkpyJw08mWAiEA7fmNJn2UQsxw1+xFDYrsr5Yetgo5SqC4onhE9H/MUag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128289},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.1.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"/private/var/folders/3d/my733tj9449d7jbbq3h3395w0000gn/T/50d236b7c266cbee89d8cdbd3cf723c5/budarin-psw-plugin-opfs-serve-range-1.1.3.tgz","_integrity":"sha512-/mRfizQc1eN7ONtSmrEb6BXPcfpB37WndtD1CHJfKcOdqDAQTmMR40iAuMyxwB0QC8rlUUMr94SoqPG/7pNmJQ==","_npmVersion":"11.8.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.6"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.1.3_1771349704859_0.24090958466303025","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.1.4","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.1.4","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"1f6a279235dbb37841519238cbd9d5d61156cecb","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.1.4.tgz","fileCount":30,"integrity":"sha512-iF0jR8uVSU6wCbVlkAZanyh3Dva4NKtJfrfNYm/sStj+i1wil6jwc/ErhnbUYSA3/H2Etc/HaDN534wcW7OILg==","signatures":[{"sig":"MEUCIQDj4F/bVvqXpv6KvK9JOA6Y7ofmkS+bau/7C6cGim/2ZgIgUnPD0gWfRByFz1zdmSemfGuik0KBwP/D9JG/gnFvjIc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140650},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.1.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\0d2a1a986699589637f56b033bb79f2a\\budarin-psw-plugin-opfs-serve-range-1.1.4.tgz","_integrity":"sha512-iF0jR8uVSU6wCbVlkAZanyh3Dva4NKtJfrfNYm/sStj+i1wil6jwc/ErhnbUYSA3/H2Etc/HaDN534wcW7OILg==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.6"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.1.4_1771387514284_0.11662606904357031","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.1.5","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.1.5","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"6352c9eab72d0e171f0fda0630d54adadbb9492a","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.1.5.tgz","fileCount":30,"integrity":"sha512-Md7XklDO+I6zDwSHjWeXuz889Aojie8iF3UyQyv46EMZ5Yna8kcfR9nC0tG7IQpDXzSQJP4jMaAOlyg2ESUhOg==","signatures":[{"sig":"MEUCIQD6xj7qp+3w6S76MubmcciAQ0Dv+0PSj3Gj/6y5jHLUJwIgfRps+ttZE02G9QPXJOkWFbr5H78cr9AWpNwGVtqas9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140041},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.1.5.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\cb3a63fc8b8449bae9822997cdac584d\\budarin-psw-plugin-opfs-serve-range-1.1.5.tgz","_integrity":"sha512-Md7XklDO+I6zDwSHjWeXuz889Aojie8iF3UyQyv46EMZ5Yna8kcfR9nC0tG7IQpDXzSQJP4jMaAOlyg2ESUhOg==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.6"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.1.5_1771388868488_0.7428694157178195","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.1.6","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.1.6","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"de21982a9f9cced2b32fffe44cca8558a9d05182","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.1.6.tgz","fileCount":30,"integrity":"sha512-TtiJVFBvXRKxCmUJ0qtIG42OVnuRkYpxDG38Uj2o4u+pmMnb0THl+WtCh3VX6vMtnC3WSGUHrOHU2LDHq7seUQ==","signatures":[{"sig":"MEYCIQCRi6FjyWaWglEvEveY+DQQfyqnWbPmGiwcJgTtbu7mLgIhAI2+ds0ipoeVT94/vfgfZYkWGJKHFlNrv7azjII6zoOs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140453},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.1.6.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\c936977c5f754df96370692fd08ba280\\budarin-psw-plugin-opfs-serve-range-1.1.6.tgz","_integrity":"sha512-TtiJVFBvXRKxCmUJ0qtIG42OVnuRkYpxDG38Uj2o4u+pmMnb0THl+WtCh3VX6vMtnC3WSGUHrOHU2LDHq7seUQ==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.6"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.1.6_1771389206265_0.11226755741700645","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.1.7","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.1.7","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"947b9fab033bcd7111031926df6c6fc4042d86f4","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.1.7.tgz","fileCount":30,"integrity":"sha512-uZvc3crfp0liuw2ZjYLT26UA1wg/L5IcFuG20ErE3KluTTF79W//abIxJdYQqeDf/90unJOpXO6JHRQQ+jJRXA==","signatures":[{"sig":"MEQCIHk9QH6OW2uibOcOojysRqweN5e4PE9r92DFs3Nu9rWZAiBvvZ0QGmXzugZ7B+K7FdY48FCFGU6q2ny7jUxph5KZEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142200},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.1.7.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\37247e14a3e8ce273c261a288bddf2f8\\budarin-psw-plugin-opfs-serve-range-1.1.7.tgz","_integrity":"sha512-uZvc3crfp0liuw2ZjYLT26UA1wg/L5IcFuG20ErE3KluTTF79W//abIxJdYQqeDf/90unJOpXO6JHRQQ+jJRXA==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.6"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.1.7_1771394088886_0.3858728826621234","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.1.8","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.1.8","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"64884d284eba8fd606e2195ec4a52713b56af79f","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.1.8.tgz","fileCount":30,"integrity":"sha512-oDkV6RYkJMmGSPV7rhV9AYqTnqVkDFwlPfBAFAyqidgQ2Rz6+0JYOQar4rkQ5SfMqfJJZMrZl6JZyo80KkL00Q==","signatures":[{"sig":"MEQCIHDeSkLZWACfzansNV585/gPqPywefkpteHpusr8qkTFAiB/A9NqLNnw0AKSDZN78FA8VUsdBqqdDACeZYKP9H4esA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142144},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.1.8.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\bc5c6b27156ee51618adb4c00ab9928b\\budarin-psw-plugin-opfs-serve-range-1.1.8.tgz","_integrity":"sha512-oDkV6RYkJMmGSPV7rhV9AYqTnqVkDFwlPfBAFAyqidgQ2Rz6+0JYOQar4rkQ5SfMqfJJZMrZl6JZyo80KkL00Q==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.6"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.1.8_1771395312731_0.4970367047865978","host":"s3://npm-registry-packages-npm-production"}},"1.1.9":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.1.9","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.1.9","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"f26f830f18401fe96d57be1aab79ad124bc54278","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.1.9.tgz","fileCount":30,"integrity":"sha512-wsdXFnNSU0y0aPanwUc7/qQdC6knNB00qOdMCC+Nbx2kEbwS46jAyWfrejozqlIaud+ZVCaGlNWcwylPiLZpUg==","signatures":[{"sig":"MEUCIBx2Wmd61lBsrmy4LPoObGBYiZ3hnrUfYBtu3lFt4L+gAiEAixPKyKC8VGRGpwIYmf4msLO0k12knVNUvXYvf9SdBm4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142920},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.1.9.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\fedb012b32c986ef7a86c972c471985f\\budarin-psw-plugin-opfs-serve-range-1.1.9.tgz","_integrity":"sha512-wsdXFnNSU0y0aPanwUc7/qQdC6knNB00qOdMCC+Nbx2kEbwS46jAyWfrejozqlIaud+ZVCaGlNWcwylPiLZpUg==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.6"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.1.9_1771396429624_0.5890252032074206","host":"s3://npm-registry-packages-npm-production"}},"1.1.10":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.1.10","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.1.10","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"5bd6f809c1748fecc0e1d061f7d656438b7dd148","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.1.10.tgz","fileCount":30,"integrity":"sha512-blV4rpy3YkL+CqsxhwxYlEuoaFMiiRL8tJkzFhp/xZZAT/Go3ZTh4Uw8mIHzIDY9vyjZwoSG6fgKL2gzNekyaA==","signatures":[{"sig":"MEUCIENnTsfjhF7EHczSQ2z8Vz/Q+tLFLgRLn4gTrDVSuewgAiEArQdkRQPX6CMwCi+yFQs80w1zutRQfqVvzgAAoeVSgq0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143476},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.1.10.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\d38a810565fe7f94886d8aad04f64467\\budarin-psw-plugin-opfs-serve-range-1.1.10.tgz","_integrity":"sha512-blV4rpy3YkL+CqsxhwxYlEuoaFMiiRL8tJkzFhp/xZZAT/Go3ZTh4Uw8mIHzIDY9vyjZwoSG6fgKL2gzNekyaA==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.6"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.1.10_1771397821517_0.25331140191068324","host":"s3://npm-registry-packages-npm-production"}},"1.1.11":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.1.11","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.1.11","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"c38fc83cffde4856f04951dbc96ce1e73087f443","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.1.11.tgz","fileCount":30,"integrity":"sha512-PhYAEzHwc4LV70GzosKYvsRmkCrtgMJAfqFUBuKGTp0N4Y/vdys7WA0DtrKh8HOFxDTr3xr5Pvjsil/NZqNXBQ==","signatures":[{"sig":"MEUCID+HfK4kF1gsMH5I4V0E1RIIOoJuWXxoPWZK5wqpCH/PAiEAiRmCN1ZGUz6Jz7UMHFB3xyJJJPGnReJ2EgZzFQCBU2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142760},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.1.11.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\1f8f5273b5a5737504386a5ae9789139\\budarin-psw-plugin-opfs-serve-range-1.1.11.tgz","_integrity":"sha512-PhYAEzHwc4LV70GzosKYvsRmkCrtgMJAfqFUBuKGTp0N4Y/vdys7WA0DtrKh8HOFxDTr3xr5Pvjsil/NZqNXBQ==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.6"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.1.11_1771400758369_0.8428401014465792","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.2.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.2.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"9716aca0ac92f2e3c73ce33386fdf7b0c3a5cafc","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.2.0.tgz","fileCount":30,"integrity":"sha512-+rbGUD1XCT8UGXXrVA0kX6NVSQUK2C/KIAqPH2HPUltbvFaGCv0zYdoy21w0rBJVXTvnGSM9s3nTNwteZufQVQ==","signatures":[{"sig":"MEYCIQDZEPkPk5/xOr0ukqEWMSpFrYl/LIbjZrADt5eOOji6pwIhALF+H4nbEkwtvXjL0Ftftd0pdJ4M0dY0r0UjObabJ3ZJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142733},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.2.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\5504ae2ddb0e0780172542942587f364\\budarin-psw-plugin-opfs-serve-range-1.2.0.tgz","_integrity":"sha512-+rbGUD1XCT8UGXXrVA0kX6NVSQUK2C/KIAqPH2HPUltbvFaGCv0zYdoy21w0rBJVXTvnGSM9s3nTNwteZufQVQ==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.6"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.2.0_1771441786917_0.792879871399212","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.2.1","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.2.1","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"9723e34c1d31dbd1e7e9049534d1cec3507f856c","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.2.1.tgz","fileCount":30,"integrity":"sha512-g4Tojrvcx6BXdxlFZXbSIbKcCDDLGMES34cY2pY8EbIEqOKSoEgJHV1P19csBryMP5jULCM0ds7uILdgWZDehw==","signatures":[{"sig":"MEUCIH2TT9j36RiZiskHNRmT0X343XUGiXGZYgwl8uYCVCnQAiEAinD9mCcV5C4njNxZjw6mtpLu8nH/qIcGoBG31Ej8dKU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142733},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.2.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\cdf8032c155f8ba6dee4fc097b9e36c9\\budarin-psw-plugin-opfs-serve-range-1.2.1.tgz","_integrity":"sha512-g4Tojrvcx6BXdxlFZXbSIbKcCDDLGMES34cY2pY8EbIEqOKSoEgJHV1P19csBryMP5jULCM0ds7uILdgWZDehw==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.10.9"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.2.1_1771456040991_0.6939334946320579","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.3.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.3.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"1aa6de293c9d7064bd3b8428a8a82cb36f06e535","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.3.0.tgz","fileCount":32,"integrity":"sha512-yjOHqycmr+W+0EDLPlENc6Vkyi69v2YnwU2z+q6uf+q6oL9FWMe2X8OF+ljaEL07SARfI/BkFm68C31wd311xA==","signatures":[{"sig":"MEUCIQDzx77Gld8eRduy6lCSzttpb40ayTxMhZERrNGlyEGzZQIgRZXJbX1D2u5elERwjFAxY3sY1Fvfc+AptHN8hZT53DE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144301},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.3.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\063b4272905e3df485a9885d265fac49\\budarin-psw-plugin-opfs-serve-range-1.3.0.tgz","_integrity":"sha512-yjOHqycmr+W+0EDLPlENc6Vkyi69v2YnwU2z+q6uf+q6oL9FWMe2X8OF+ljaEL07SARfI/BkFm68C31wd311xA==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.336","typescript":"^5.9.3","@types/serviceworker":"^0.0.191","@budarin/pluggable-serviceworker":"^1.11.0"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.11.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.3.0_1772030656269_0.10657953697690958","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.4.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.4.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"4aefa642245e4bab98c6fb8efdf836a9da489674","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.4.0.tgz","fileCount":32,"integrity":"sha512-nozrTX+YA980paQwE5AUHUdtEcvw8HfD+FqVLU9FCZwHSqLBuZvohwwHU4D3VrHgbQXGcfYG1H7yOCEFSQztqA==","signatures":[{"sig":"MEUCIQC8TBAkWnHLcc7AyAChjcaFzqULqB+DiuD11Ql82G1spgIgIV2oEIIhHQBDBSswq06arnp3ywMI5c+v5HkjYK44xUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144426},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.4.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\14ca1ccd9cce85f40783a1f7ea8c9d19\\budarin-psw-plugin-opfs-serve-range-1.4.0.tgz","_integrity":"sha512-nozrTX+YA980paQwE5AUHUdtEcvw8HfD+FqVLU9FCZwHSqLBuZvohwwHU4D3VrHgbQXGcfYG1H7yOCEFSQztqA==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.338","typescript":"^5.9.3","@types/serviceworker":"^0.0.192","@budarin/pluggable-serviceworker":"^1.16.0"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.16.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.4.0_1772170097262_0.1924956323218372","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.4.1","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.4.1","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"00c31aa498983d851fe57928e57b0caf2f484281","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.4.1.tgz","fileCount":32,"integrity":"sha512-9RLsTY0/V6OXIjoWF0BHMcD2zpcpyYxM2F4R3lvBKj/1A9yzPNaPTyRZK2JY92LO4a895l4SeSsDkp209nU3nw==","signatures":[{"sig":"MEYCIQD/KukykY1/qv0q0WImN6v8DZAObFvuPwbp/iWNjtXGVwIhAM9M2ASbxuG8JaK6QL9u3tp811fc/MSJm8q9TExvRREr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144426},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.4.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\43e9d47006423ded9e8f6e6eaf68b694\\budarin-psw-plugin-opfs-serve-range-1.4.1.tgz","_integrity":"sha512-9RLsTY0/V6OXIjoWF0BHMcD2zpcpyYxM2F4R3lvBKj/1A9yzPNaPTyRZK2JY92LO4a895l4SeSsDkp209nU3nw==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.338","typescript":"^5.9.3","@types/serviceworker":"^0.0.192","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.17.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.4.1_1772444785541_0.898771319405552","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.4.2","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.4.2","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"6d4decce82266dc73160a6252e87c30a96ab9837","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.4.2.tgz","fileCount":33,"integrity":"sha512-M48dnuFfS7NP80Ton6Rf3rALvatEyiW0LNJIBIhX8b9584RRFr3RybmES2il78bSYoJ9GH2TdgWK9X6ldO+GgQ==","signatures":[{"sig":"MEQCIDm/vC1PwcbVHfO7xPxVRtrONQhT731FYQZCNAPLORAVAiBIQA3LYxWulpqf7mmR/qLYzq6pw8efEi1myyXAs4aQzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157842},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.4.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\b5658d14c85631fcf0c0d2210d2f5d3e\\budarin-psw-plugin-opfs-serve-range-1.4.2.tgz","_integrity":"sha512-M48dnuFfS7NP80Ton6Rf3rALvatEyiW0LNJIBIhX8b9584RRFr3RybmES2il78bSYoJ9GH2TdgWK9X6ldO+GgQ==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.340","typescript":"^5.9.3","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.2"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.17.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.4.2_1772964221476_0.11768993796396754","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.5.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.5.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"414353f4eaa1d56f282db4933ff3c84debfaa450","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.5.0.tgz","fileCount":35,"integrity":"sha512-+bQcOA2qQZTB9RNFKMS0tJjbCd/6RmD/FN7m+bnU117W+nRqxjbLksiENmFAq/cgOGbbu9vxHR+8N4mPcA8ASg==","signatures":[{"sig":"MEYCIQC/H42Rv5D58PZ7B2uFH0H53gsPLG8ySffvHd8DgtSC8AIhAOx9dDWmC99wN6z3k53/qaEHUYR1hytF1gP9+6Nsa0L5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166406},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.5.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\26dab727b1071603b19b80ee84cdc5ba\\budarin-psw-plugin-opfs-serve-range-1.5.0.tgz","_integrity":"sha512-+bQcOA2qQZTB9RNFKMS0tJjbCd/6RmD/FN7m+bnU117W+nRqxjbLksiENmFAq/cgOGbbu9vxHR+8N4mPcA8ASg==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.340","typescript":"^5.9.3","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.2"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.17.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.5.0_1772966261204_0.3533462108405232","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"1.5.1","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@1.5.1","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"828732d0a5cc25dd47534f375de345817e7cc6f2","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-1.5.1.tgz","fileCount":35,"integrity":"sha512-z0fERuRSikcnWShDpc/A1JJEIni+NAkIYNO4NqyWS+a2RRadv0HJIMwrYM7UiapwmMTK+ilPjmJfZapmvQgbUA==","signatures":[{"sig":"MEYCIQCRjIranO1dVyOVI2QUBBy2VxjskRKYOwP+gMpntqLTHAIhANJ8tiR59L22cRUiLQeT4hE2PfMSesOI7WizdnBLCQDS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167050},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-1.5.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\518065a8730c455edb98cfadbbd88a54\\budarin-psw-plugin-opfs-serve-range-1.5.1.tgz","_integrity":"sha512-z0fERuRSikcnWShDpc/A1JJEIni+NAkIYNO4NqyWS+a2RRadv0HJIMwrYM7UiapwmMTK+ilPjmJfZapmvQgbUA==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.340","typescript":"^5.9.3","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.2"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.17.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_1.5.1_1772988431614_0.9712417575371761","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"2.0.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@2.0.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"ffeee1b37a05f11be6e9adfb1c23cdd1cc4f6084","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-2.0.0.tgz","fileCount":35,"integrity":"sha512-k0zGXSan++T6DTrTgQS0PXNB5Ha2wzrMSxC+vqpQ4K0HMf3ONHGHDXakFQ0L4oLE4Q2caCN4xS8NAHHdFytd+g==","signatures":[{"sig":"MEYCIQD1PQakNwLecbv4mwy9BBOi6bEcMv0QUswNy5/ug5cZ3QIhAOlbYY03O+MsJCg1bf/35bAbPOePN/Q+PMKyimVnH85J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164308},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-2.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\17b0175206ae99312c190c4b6343f3fe\\budarin-psw-plugin-opfs-serve-range-2.0.0.tgz","_integrity":"sha512-k0zGXSan++T6DTrTgQS0PXNB5Ha2wzrMSxC+vqpQ4K0HMf3ONHGHDXakFQ0L4oLE4Q2caCN4xS8NAHHdFytd+g==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/web":"^0.0.340","typescript":"^5.9.3","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.3"},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.17.0"},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_2.0.0_1772995961393_0.4134476052286564","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"2.1.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@2.1.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"cc605060b1c0a5be68e3e20da5a7b39923db26d1","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-2.1.0.tgz","fileCount":41,"integrity":"sha512-M56yTOsnY3Bp66r7TYUcHKlVN0ILfVWIwmwwETIm9HVKcR/8//yH7nXJNqYRKtCsXaZGXg3aK4xONzRK+Jp1Qw==","signatures":[{"sig":"MEQCIDyDKpOqv9t3KLaSTumKd6hmXkGoKn83yJWvrxhaPcVBAiAQuHGpIKhN5cJ7rS+jPHjxf0RsZUMDBQ0ESjm5mkrdSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198521},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-2.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\74a491f8a804f550dcb632cf25190982\\budarin-psw-plugin-opfs-serve-range-2.1.0.tgz","_integrity":"sha512-M56yTOsnY3Bp66r7TYUcHKlVN0ILfVWIwmwwETIm9HVKcR/8//yH7nXJNqYRKtCsXaZGXg3aK4xONzRK+Jp1Qw==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.0.18","@types/web":"^0.0.342","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.3"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_2.1.0_1773165548265_0.9229112626513416","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"2.2.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@2.2.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"4ceccf2052c7e992075fffe28995676d401f4698","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-2.2.0.tgz","fileCount":41,"integrity":"sha512-bCa0FrN4jSyFcVZvuQjanOV3oNKXOIQucBumL6EcD/ZGstV6Lybw5HhXyVV5Ej9P+oGhaOXkNF6TT/7wPQrxEg==","signatures":[{"sig":"MEQCIAM2/EIst/M1GTjmfevWYhSMb8BSWfpYD4v9bQcjw+AUAiAj0s/etALG8rFWvQv4lPhzpTwZCIQ1JvCFDIyFwNGjaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199597},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-2.2.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\1ca1e1b4e656da3fcfb4259f684f4e01\\budarin-psw-plugin-opfs-serve-range-2.2.0.tgz","_integrity":"sha512-bCa0FrN4jSyFcVZvuQjanOV3oNKXOIQucBumL6EcD/ZGstV6Lybw5HhXyVV5Ej9P+oGhaOXkNF6TT/7wPQrxEg==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.0.18","@types/web":"^0.0.342","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.3"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_2.2.0_1773166606331_0.6128850510737549","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"2.3.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@2.3.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"abbcb2a7bea4a588315555594ae36a7f8e856668","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-2.3.0.tgz","fileCount":43,"integrity":"sha512-n+Qi/ut8083Ie7hMGQGuo+oD/OIeW+xpSyFuTtSJNsz+Pnye5f10sn+g7uICt63PUfy3sGz6Gd1QD/9kU32pRA==","signatures":[{"sig":"MEUCICJXMtqC4rknd9sMg2qlxYu2aKsp32j8PcksQ4qEVcW2AiEAm1FWLzPFeH7C5hrff33kPHFjJuRwQzivV4M3nUvIGf8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210294},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-2.3.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\3589ff8cd0a34e8cf0d013d4dce91caa\\budarin-psw-plugin-opfs-serve-range-2.3.0.tgz","_integrity":"sha512-n+Qi/ut8083Ie7hMGQGuo+oD/OIeW+xpSyFuTtSJNsz+Pnye5f10sn+g7uICt63PUfy3sGz6Gd1QD/9kU32pRA==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.0.18","@types/web":"^0.0.342","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.3"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_2.3.0_1773169358584_0.8830605079973932","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"3.2.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@3.2.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"800c0d5d7daab9a8f8365fc9490df7d8613f8d3c","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-3.2.0.tgz","fileCount":46,"integrity":"sha512-qOY0hv19XFmTrmR/hJ61yRAKYV30NTzNP7d6Bb4mDo14MuZAr+HWd/pF8j+mfNvS3MprWuTL086KoqnZbZ8VBg==","signatures":[{"sig":"MEYCIQD2vHSlFyy9vx2KMjdCue3kYBS7czxs6iNuYp0KjmfzxQIhAOb+2Nb6utSoDPrHIGRffmcalAHrCg+iprCGLKtrqADX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":276674},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-3.2.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\fb9e86d47dbec163a1583f4df5d1a801\\budarin-psw-plugin-opfs-serve-range-3.2.0.tgz","_integrity":"sha512-qOY0hv19XFmTrmR/hJ61yRAKYV30NTzNP7d6Bb4mDo14MuZAr+HWd/pF8j+mfNvS3MprWuTL086KoqnZbZ8VBg==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.0.18","@types/web":"^0.0.342","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.3"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_3.2.0_1773203551076_0.567243813418173","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"3.3.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@3.3.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"46e046cf1fa310a9f9e9692c590e5765d9220e86","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-3.3.0.tgz","fileCount":46,"integrity":"sha512-jVzSyhsG/0+W00RGbYfAnnqgqdIFplSlish1yWZZn/DdOWAx1KydEJQM/p96KeIzHCuWIdNS2ol0mLlE3lvNyA==","signatures":[{"sig":"MEUCIDPtxwNPH+5l0IYnDYh7j+Eoxx2t3rCFs/6f980YG8cdAiEAveHVFw4mkdF1E7Vv3X+0DBIxu/TAYeeK6pggL04ZBKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":281610},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-3.3.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\e7e4b1f90e1b0d071506a41c5964b1a6\\budarin-psw-plugin-opfs-serve-range-3.3.0.tgz","_integrity":"sha512-jVzSyhsG/0+W00RGbYfAnnqgqdIFplSlish1yWZZn/DdOWAx1KydEJQM/p96KeIzHCuWIdNS2ol0mLlE3lvNyA==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.0.18","@types/web":"^0.0.342","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.3"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_3.3.0_1773242519224_0.4494747183858525","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"3.4.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@3.4.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"1bac313a6c0461e12bc5bef78c59a256f30b8396","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-3.4.0.tgz","fileCount":54,"integrity":"sha512-wWm6LHquUeOGGX1OnHS2ghC3rTl6VmY5y0M93dc4/Onh8uwExrwsUzI+jjc498Jx5Io1Kv7Iu1g0JeYBWN9cOg==","signatures":[{"sig":"MEYCIQCRdx9O2S0fU9AEyzDgxC8q66/PXcLY/lH4ViqUC3UyzAIhALjQo1bVQW/VzL1q5g7E7vLUMrOnBEaSsk2SgqmwqaDy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288304},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-3.4.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\e65c2e454e52a4c20cfb09fc0054da91\\budarin-psw-plugin-opfs-serve-range-3.4.0.tgz","_integrity":"sha512-wWm6LHquUeOGGX1OnHS2ghC3rTl6VmY5y0M93dc4/Onh8uwExrwsUzI+jjc498Jx5Io1Kv7Iu1g0JeYBWN9cOg==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"lru-cache":"^11.2.6","@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.0.18","@types/web":"^0.0.342","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.5"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_3.4.0_1773337031403_0.5187169419877731","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"3.5.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@3.5.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"bab998369478a1262c91402ef132180d0686ef6b","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-3.5.0.tgz","fileCount":54,"integrity":"sha512-XMd/r6y6MG1ftTJ64zcCP++lWhaLeOBHKwE3r10TolDR3M6gD1q9BTRfr7Rc8soCJrVweU8q2DicETeOEtEPWw==","signatures":[{"sig":"MEUCIQD/Eaer22lKkQBU+MabTaeEkqT7f5ffVrj76dU5MfAccQIgWAEgvN2/DntxYGTRw9eFGrramDSpVFDhsbxkp8BozWc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":294133},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-3.5.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\33edc143c276ff9b328d1682870d79a8\\budarin-psw-plugin-opfs-serve-range-3.5.0.tgz","_integrity":"sha512-XMd/r6y6MG1ftTJ64zcCP++lWhaLeOBHKwE3r10TolDR3M6gD1q9BTRfr7Rc8soCJrVweU8q2DicETeOEtEPWw==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"lru-cache":"^11.2.6","@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.0","@types/web":"^0.0.342","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.5"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_3.5.0_1773339655592_0.3467062640322742","host":"s3://npm-registry-packages-npm-production"}},"3.6.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"3.6.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@3.6.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"8fbb49934e217be6fb1c9e3fc9fbe8f4db4967cd","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-3.6.0.tgz","fileCount":54,"integrity":"sha512-0goQIJ0x5qHjn5Jd58N5X0MKBKTp3DnPFENlUErNuE8+rKH9YEHA31N5MRyUYelpcRXxGzQ/nRlFBTM3L0FmSA==","signatures":[{"sig":"MEUCIEbG1RaFHqKluOWLCr3yLyqlq9rW8VUNbiS8BIIPvccrAiEAtOBid509IB008LmQEaXr/VYZb2yW8ehh8Nd+dcnYxOU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":294577},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-3.6.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\73b03da9ca54cb9003ac00d100f57d8a\\budarin-psw-plugin-opfs-serve-range-3.6.0.tgz","_integrity":"sha512-0goQIJ0x5qHjn5Jd58N5X0MKBKTp3DnPFENlUErNuE8+rKH9YEHA31N5MRyUYelpcRXxGzQ/nRlFBTM3L0FmSA==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"lru-cache":"^11.2.6","@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.0","@types/web":"^0.0.342","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.5"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_3.6.0_1773343187075_0.7137241222837647","host":"s3://npm-registry-packages-npm-production"}},"3.7.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"3.7.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@3.7.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"cb9faf53679b742f8e0d6ce95092239e514af7e8","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-3.7.0.tgz","fileCount":58,"integrity":"sha512-GBTrcXPG0xeCx8QTp56/u+buXgUauITSWSjqeHdIGW1vdWgPQoCQqJvgZWtjtG3TFblMf5rHv+6uAkcGNXSiRw==","signatures":[{"sig":"MEUCIQDwQWyowRhK7PCOh8Rx2JBrlNoySQq5OaknqkZddO+X9gIgSIvE9jegoL7DFNsBkS1C1wkqUVuAGD9R2sFxl+V4wgU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":304143},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-3.7.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\e2add4d0d5ba3da55ee7de023fc5b73a\\budarin-psw-plugin-opfs-serve-range-3.7.0.tgz","_integrity":"sha512-GBTrcXPG0xeCx8QTp56/u+buXgUauITSWSjqeHdIGW1vdWgPQoCQqJvgZWtjtG3TFblMf5rHv+6uAkcGNXSiRw==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"lru-cache":"^11.2.6","@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.0","@types/web":"^0.0.342","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.5"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_3.7.0_1773353837473_0.9960857906877834","host":"s3://npm-registry-packages-npm-production"}},"3.9.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"3.9.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@3.9.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"d1a3db851e99890217acd53da48aef6e6ff0b353","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-3.9.0.tgz","fileCount":58,"integrity":"sha512-1aB6LQtoH6izJNa9bkT46aQfXThJ4v52R8ChtKYizChSslkmvbm5PmQKWBwXcNKxeaZUV3LB/jmara4ChLG1Ww==","signatures":[{"sig":"MEQCIFloOYEAk51oB4fUJajjZ5JM651tE5YLdC8csQYnCC7jAiAMxsG+3IU4ZQwb98AXK6OtX88QC+fHZmy178gwjKZ5yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":306996},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-3.9.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\d642971ad21a08ccae487fbec2a44987\\budarin-psw-plugin-opfs-serve-range-3.9.0.tgz","_integrity":"sha512-1aB6LQtoH6izJNa9bkT46aQfXThJ4v52R8ChtKYizChSslkmvbm5PmQKWBwXcNKxeaZUV3LB/jmara4ChLG1Ww==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"lru-cache":"^11.2.6","@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.0","@types/web":"^0.0.342","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.5"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_3.9.0_1773356362039_0.27200139126244016","host":"s3://npm-registry-packages-npm-production"}},"3.11.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"3.11.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@3.11.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"780b7bae92f33e80db7852a816ea582483a230e1","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-3.11.0.tgz","fileCount":60,"integrity":"sha512-axQgBWRWyeCpXYdoxMnL8Sy5pKezkoc4Dq6cSqMqj7Tsd4A6zX/WzaWNlHxq+B4qvaomh9eDk5OL0VkkkI9Nsg==","signatures":[{"sig":"MEYCIQCaeNZbutmnNPWDQjE7c6YYZ2m4ON5px12XJz4KLQpiXgIhAKXuUyBqsTLRPUF5csO8ItGXqeVu+sai5hHCewd/dx0o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":325749},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-3.11.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"/private/var/folders/3d/my733tj9449d7jbbq3h3395w0000gn/T/72b1b7994157a6eaccf21fb19983f002/budarin-psw-plugin-opfs-serve-range-3.11.0.tgz","_integrity":"sha512-axQgBWRWyeCpXYdoxMnL8Sy5pKezkoc4Dq6cSqMqj7Tsd4A6zX/WzaWNlHxq+B4qvaomh9eDk5OL0VkkkI9Nsg==","_npmVersion":"11.8.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"22.12.0","dependencies":{"lru-cache":"^11.2.6","@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.0","@types/web":"^0.0.342","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.5"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_3.11.0_1773370120063_0.28743284799984536","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"4.0.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@4.0.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"814f2026014795fad11d1686aa049f92382165a7","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-4.0.0.tgz","fileCount":63,"integrity":"sha512-B2jYEgYkFPeF7zd+V3QhlRSKEEdaBpkkuNkTH+nBmpxOOdWe60WK8s0C/hRbOPDzIB3rew948ujpRxSzL0yl8Q==","signatures":[{"sig":"MEUCIQDHeMV7zQ1HrdwvkQ9eq9+RSD8z/dzcfn0C04Uyn4m57QIgSF3W7tf3+7h8QrLYw4Y5w8dfhVCxP3u5uTNjoEK2CaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336639},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-4.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"/private/var/folders/3d/my733tj9449d7jbbq3h3395w0000gn/T/c5ad9bf5adebb5fb918b63b41375fc7f/budarin-psw-plugin-opfs-serve-range-4.0.0.tgz","_integrity":"sha512-B2jYEgYkFPeF7zd+V3QhlRSKEEdaBpkkuNkTH+nBmpxOOdWe60WK8s0C/hRbOPDzIB3rew948ujpRxSzL0yl8Q==","_npmVersion":"11.8.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"22.12.0","dependencies":{"lru-cache":"^11.2.6","@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.0","@types/web":"^0.0.342","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.5"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_4.0.0_1773377708477_0.1901547117781619","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"4.0.1","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@4.0.1","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"9863f118bf671603f5f582a4435cf08814eded63","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-4.0.1.tgz","fileCount":65,"integrity":"sha512-dFCJv6W6IOSRL3nxeKtIlYOIFLHH35AUUxT6c9ET28qe/QnSvtEtIUq3ISpOHiYCJZXTCZzAEajbL0ubMZj4vQ==","signatures":[{"sig":"MEYCIQCifmFzV3ykBuQGjP2mq1O3mViHCWbgXvmCAh9KOMcSbAIhAL0rpIxOB/U/Dpefr+YbYCTr5uMTl4HTU3KM76yp98+p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340355},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-4.0.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"/private/var/folders/3d/my733tj9449d7jbbq3h3395w0000gn/T/a7d5321e0c89b6ed6ca7488f49c90b16/budarin-psw-plugin-opfs-serve-range-4.0.1.tgz","_integrity":"sha512-dFCJv6W6IOSRL3nxeKtIlYOIFLHH35AUUxT6c9ET28qe/QnSvtEtIUq3ISpOHiYCJZXTCZzAEajbL0ubMZj4vQ==","_npmVersion":"11.8.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.0","@types/web":"^0.0.342","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.5"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_4.0.1_1773378337431_0.18280408839696638","host":"s3://npm-registry-packages-npm-production"}},"4.0.3":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"4.0.3","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@4.0.3","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"834498a6679fa3058ed1a21c252c43c9b90cdf52","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-4.0.3.tgz","fileCount":65,"integrity":"sha512-aoZcw7qhjPx4eWODgxRPWyeU09DsKGLRQAHBKLHy7lS7YICGvdRgzKY9fm3pC1WXXpLZKDXqlPF74CzAKDnShg==","signatures":[{"sig":"MEUCIGOXvV1ysHUj16WIAKNkcL3wekcfsVnN5OtFnXybA3L7AiEA3GnRp7SQbfRZxuXU1KBzhp4EQRHP8x0jmorz5002DDI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340754},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-4.0.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"/private/var/folders/3d/my733tj9449d7jbbq3h3395w0000gn/T/5cab199a3136935217c309c68f8b3868/budarin-psw-plugin-opfs-serve-range-4.0.3.tgz","_integrity":"sha512-aoZcw7qhjPx4eWODgxRPWyeU09DsKGLRQAHBKLHy7lS7YICGvdRgzKY9fm3pC1WXXpLZKDXqlPF74CzAKDnShg==","_npmVersion":"11.8.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.0","@types/web":"^0.0.342","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.6"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_4.0.3_1773387786388_0.1938395753124953","host":"s3://npm-registry-packages-npm-production"}},"4.0.4":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"4.0.4","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@4.0.4","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"290191da37740a6a1f14706da75f0316a1b80396","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-4.0.4.tgz","fileCount":72,"integrity":"sha512-Q3pAZiOATHEhfCag45ipAAvcXibzMIpLFjT0iZgU4thRCp86c3qI47Z5IJsNJk8Yn5XYLQ2Y0sifSubaVd7F8w==","signatures":[{"sig":"MEYCIQDlRBIK6MLHR7mdizvCJlffCebYp9uWjo0edEfzJ5zbwAIhAKyBuD0A7ztVbLZA4P7n+2JL4039w5f15oTyCbjnX2Th","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":328923},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-4.0.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"/private/var/folders/3d/my733tj9449d7jbbq3h3395w0000gn/T/3d4ffcc093cd9fce4113d550f7fcb712/budarin-psw-plugin-opfs-serve-range-4.0.4.tgz","_integrity":"sha512-Q3pAZiOATHEhfCag45ipAAvcXibzMIpLFjT0iZgU4thRCp86c3qI47Z5IJsNJk8Yn5XYLQ2Y0sifSubaVd7F8w==","_npmVersion":"11.8.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.0","@types/web":"^0.0.342","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.6"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_4.0.4_1773414266925_0.8255200021557705","host":"s3://npm-registry-packages-npm-production"}},"4.0.5":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"4.0.5","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@4.0.5","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"91afb5e7b1697b27ba9aa1714536d8a4a47053ed","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-4.0.5.tgz","fileCount":72,"integrity":"sha512-xk1b11DmRXTVrRDvVc86N7iUkGaoKp15PhVDFFtgZZerE0iZDsypg7YJZPsHTy0X6juWZfIL4CxDv+AR9fK3ow==","signatures":[{"sig":"MEYCIQCIqlFuQJiKmWb5VXsRaICUT7jT0x7e2bH+R7kmTDRvFgIhAJagRSqiAu9rWiAFITDb/sOYWhKVXeJFL94b0OrPNQtI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":330850},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-4.0.5.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"/private/var/folders/3d/my733tj9449d7jbbq3h3395w0000gn/T/623d6f3c3c8ae17da4dbea43c4a2aaa8/budarin-psw-plugin-opfs-serve-range-4.0.5.tgz","_integrity":"sha512-xk1b11DmRXTVrRDvVc86N7iUkGaoKp15PhVDFFtgZZerE0iZDsypg7YJZPsHTy0X6juWZfIL4CxDv+AR9fK3ow==","_npmVersion":"11.8.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.0","@types/web":"^0.0.342","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.6"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_4.0.5_1773416913306_0.5475291973611935","host":"s3://npm-registry-packages-npm-production"}},"4.0.6":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"4.0.6","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@4.0.6","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"7b3523ddbe4ed878936c3b1830fe455b85528628","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-4.0.6.tgz","fileCount":72,"integrity":"sha512-j7XDahbIayPN92nKXtW3NfR9BXFEw4DqfMyjXCCTg1LE7Sgdx6tCxLIe/2oFGOBhh7HZ7AGSnhhkG/CENK5hgQ==","signatures":[{"sig":"MEYCIQDID+xTgpuvjEWiqK2H6NCIypb/YznVVDZ0bCc5iLzgbAIhALG94xaipwYfEHGhLhLiuO/dSmK5w3U9eZIYCzz98L62","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":330423},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-4.0.6.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"/private/var/folders/3d/my733tj9449d7jbbq3h3395w0000gn/T/7e07c103c60bd2f6e80dde7661b343cc/budarin-psw-plugin-opfs-serve-range-4.0.6.tgz","_integrity":"sha512-j7XDahbIayPN92nKXtW3NfR9BXFEw4DqfMyjXCCTg1LE7Sgdx6tCxLIe/2oFGOBhh7HZ7AGSnhhkG/CENK5hgQ==","_npmVersion":"11.8.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.0","@types/web":"^0.0.342","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.6"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_4.0.6_1773423325823_0.6241518979871625","host":"s3://npm-registry-packages-npm-production"}},"4.0.7":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"4.0.7","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@4.0.7","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"a9cbd654870b9b5936d5329fa82184cbf138ef25","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-4.0.7.tgz","fileCount":74,"integrity":"sha512-ApsFqV5s7JXs0o3Vym6aQyrkQXmkZG7bbWechNcNZzAgO2oXbK2AFJWBESx/+owGCh9dF0l3SbmQ8Boj7pJV/g==","signatures":[{"sig":"MEUCIAONVMuZJ9158ofEl2vvYrJybWRvRQSy5wPkU/lSvbV0AiEA4Kpf4FxYxXAbzCtHd6WjIociOZ7X2Z2aa5xnt8ElR7c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343836},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-4.0.7.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\46d18146203259652305209e6dbcfd42\\budarin-psw-plugin-opfs-serve-range-4.0.7.tgz","_integrity":"sha512-ApsFqV5s7JXs0o3Vym6aQyrkQXmkZG7bbWechNcNZzAgO2oXbK2AFJWBESx/+owGCh9dF0l3SbmQ8Boj7pJV/g==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.0","@types/web":"^0.0.343","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.6"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_4.0.7_1773794875150_0.12407039922224317","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"5.0.0","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","_id":"@budarin/psw-plugin-opfs-serve-range@5.0.0","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"dist":{"shasum":"a7aa15cfe049f87c7d60832558871c06310fe584","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-5.0.0.tgz","fileCount":74,"integrity":"sha512-vIjaamU3phIBexD8w3NwjHhVnYwg9L4Wq+EIAVFhxQFv5a1Ep5TTlbA50T+kVZ/ZNqjPGoKWPuJnN5wsiLICfQ==","signatures":[{"sig":"MEYCIQC005yeZ1+LnRs7MP5Rmvct+gKZN7rMTNcAZZb872DuKQIhANTnJvdBrUBlkmCljC1n+DQ8/iTw9eIdBZppnm3D0wHq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":329353},"main":"./dist/index.js","type":"module","_from":"file:budarin-psw-plugin-opfs-serve-range-5.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc -b -noEmit","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\8936bd7d2d00980e8fc6a3e29d9727c2\\budarin-psw-plugin-opfs-serve-range-5.0.0.tgz","_integrity":"sha512-vIjaamU3phIBexD8w3NwjHhVnYwg9L4Wq+EIAVFhxQFv5a1Ep5TTlbA50T+kVZ/ZNqjPGoKWPuJnN5wsiLICfQ==","_npmVersion":"11.7.0","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","directories":{},"_nodeVersion":"25.4.0","dependencies":{"@budarin/http-constants":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.0","@types/web":"^0.0.343","typescript":"^5.9.3","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@budarin/pluggable-serviceworker":"^1.17.6"},"peerDependencies":{"react":">=18.0.0","@budarin/pluggable-serviceworker":"^1.17.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/psw-plugin-opfs-serve-range_5.0.0_1773996912907_0.202853408538606","host":"s3://npm-registry-packages-npm-production"}},"5.0.1":{"name":"@budarin/psw-plugin-opfs-serve-range","version":"5.0.1","description":"Service Worker plugin: serve HTTP Range requests from OPFS files","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"license":"MIT","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./client/react":{"types":"./dist/client/react.d.ts","import":"./dist/client/react.js","default":"./dist/client/react.js"}},"peerDependencies":{"@budarin/pluggable-serviceworker":"^1.17.0","react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"@budarin/http-constants":"^1.0.22"},"devDependencies":{"@budarin/pluggable-serviceworker":"^1.17.6","@types/react":"^19.2.14","@types/serviceworker":"^0.0.193","@types/web":"^0.0.343","react":"^19.2.4","typescript":"^5.9.3","vitest":"^4.1.0"},"scripts":{"build":"tsc","type-check":"tsc -b -noEmit","test":"vitest run","clear-caches":"sh scripts/clear-caches.sh","pnpm-install":"pnpm install","upgrade-deps":"sh scripts/upgrade-deps.sh","publish-package":"pnpm build && pnpm publish --access=public"},"_id":"@budarin/psw-plugin-opfs-serve-range@5.0.1","_integrity":"sha512-UWcVfBNgCNRGmAEuMRvoo2Bw1jS2dB8FclqUdjAFjDg+4Yukmg1j5aNRnQfzSy2stqP8Oslij7wxIYd1bFTNXQ==","_resolved":"C:\\Users\\Vadim\\AppData\\Local\\Temp\\67d1c396d57f7696a0a860aa1e80c3e2\\budarin-psw-plugin-opfs-serve-range-5.0.1.tgz","_from":"file:budarin-psw-plugin-opfs-serve-range-5.0.1.tgz","_nodeVersion":"25.4.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-UWcVfBNgCNRGmAEuMRvoo2Bw1jS2dB8FclqUdjAFjDg+4Yukmg1j5aNRnQfzSy2stqP8Oslij7wxIYd1bFTNXQ==","shasum":"2bab5a766d7793a3843441c38bb88dfa3f0e0c00","tarball":"https://registry.npmjs.org/@budarin/psw-plugin-opfs-serve-range/-/psw-plugin-opfs-serve-range-5.0.1.tgz","fileCount":74,"unpackedSize":332062,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFpwc1re8JQN2qJqVySZOeI22rbmdkQ5Zk0evuIB9iX1AiAnDfdr1DHb8OUN7KQly81V2KVnQxnt612VnnJ5Cuo4dA=="}]},"_npmUser":{"name":"budarin","email":"budarin-vv@yandex.ru"},"directories":{},"maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/psw-plugin-opfs-serve-range_5.0.1_1774013413949_0.32359059650143895"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-17T13:15:48.947Z","modified":"2026-03-20T13:30:14.220Z","1.0.0":"2026-02-17T13:15:49.193Z","1.0.1":"2026-02-17T13:32:16.905Z","1.0.2":"2026-02-17T13:46:25.309Z","1.0.3":"2026-02-17T14:28:23.720Z","1.0.4":"2026-02-17T14:35:48.023Z","1.0.5":"2026-02-17T14:42:35.945Z","1.0.6":"2026-02-17T15:24:23.852Z","1.1.0":"2026-02-17T17:07:10.972Z","1.1.1":"2026-02-17T17:12:20.488Z","1.1.2":"2026-02-17T17:15:12.109Z","1.1.3":"2026-02-17T17:35:05.002Z","1.1.4":"2026-02-18T04:05:14.426Z","1.1.5":"2026-02-18T04:27:48.655Z","1.1.6":"2026-02-18T04:33:26.420Z","1.1.7":"2026-02-18T05:54:49.026Z","1.1.8":"2026-02-18T06:15:12.869Z","1.1.9":"2026-02-18T06:33:49.781Z","1.1.10":"2026-02-18T06:57:01.671Z","1.1.11":"2026-02-18T07:45:58.504Z","1.2.0":"2026-02-18T19:09:47.100Z","1.2.1":"2026-02-18T23:07:21.164Z","1.3.0":"2026-02-25T14:44:16.412Z","1.4.0":"2026-02-27T05:28:17.422Z","1.4.1":"2026-03-02T09:46:25.712Z","1.4.2":"2026-03-08T10:03:41.629Z","1.5.0":"2026-03-08T10:37:41.390Z","1.5.1":"2026-03-08T16:47:11.756Z","2.0.0":"2026-03-08T18:52:41.533Z","2.1.0":"2026-03-10T17:59:08.409Z","2.2.0":"2026-03-10T18:16:46.478Z","2.3.0":"2026-03-10T19:02:38.734Z","3.2.0":"2026-03-11T04:32:31.242Z","3.3.0":"2026-03-11T15:21:59.377Z","3.4.0":"2026-03-12T17:37:11.575Z","3.5.0":"2026-03-12T18:20:55.751Z","3.6.0":"2026-03-12T19:19:47.219Z","3.7.0":"2026-03-12T22:17:17.642Z","3.9.0":"2026-03-12T22:59:22.201Z","3.11.0":"2026-03-13T02:48:40.208Z","4.0.0":"2026-03-13T04:55:08.687Z","4.0.1":"2026-03-13T05:05:37.603Z","4.0.3":"2026-03-13T07:43:06.573Z","4.0.4":"2026-03-13T15:04:27.115Z","4.0.5":"2026-03-13T15:48:33.506Z","4.0.6":"2026-03-13T17:35:25.978Z","4.0.7":"2026-03-18T00:47:55.318Z","5.0.0":"2026-03-20T08:55:13.129Z","5.0.1":"2026-03-20T13:30:14.095Z"},"license":"MIT","keywords":["service-worker","opfs","range-requests","pluggable-serviceworker"],"description":"Service Worker plugin: serve HTTP Range requests from OPFS files","maintainers":[{"name":"budarin","email":"budarin-vv@yandex.ru"}],"readme":"# @budarin/psw-plugin-opfs-serve-range\r\n\r\nПлагины и утилиты для [@budarin/pluggable-serviceworker](https://www.npmjs.com/package/@budarin/pluggable-serviceworker). Большие файлы хранятся в Origin Private File System (OPFS), а запросы по диапазону байтов (HTTP Range) обслуживаются напрямую из файлов: можно читать любую часть файла без последовательного прохода, в отличие от Cache API. Лимиты по квоте, вытеснение по LRU и список закреплённых ресурсов настраиваются вами. Поддерживается сценарий «скачать в фоне и смотреть офлайн» через Background Fetch.\r\n\r\n**Сторонние ресурсы не поддерживаются:** загрузка и кеширование только same-origin. При запросе к другому origin браузер возвращает [opaque response](https://fetch.spec.whatwg.org/#concept-filtered-response-opaque): тело ответа недоступно для чтения и записи в OPFS, поэтому плагины не качают такие ресурсы.\r\n\r\nПодробнее о поведении кеша (лимиты, LRU, эвикция, оповещения): [docs/opfs-cache-behavior.ru.md](https://github.com/budarin/psw-plugin-opfs-serve-range/blob/master/docs/opfs-cache-behavior.ru.md).\r\n\r\n---\r\n\r\n## Оглавление\r\n\r\n- [Установка](#установка)\r\n- [Быстрый старт](#быстрый-старт)\r\n- [Сценарии использования](#сценарии-использования)\r\n    - [Кеш при первом запросе](#кеш-при-первом-запросе)\r\n    - [«Скачать для офлайна» (Background Fetch)](#скачать-для-офлайна-background-fetch)\r\n- [Справочник: плагины (сервис-воркер)](#справочник-плагины-сервис-воркер)\r\n- [Справочник: клиентский API](#справочник-клиентский-api)\r\n- [Формат хранения в OPFS](#формат-хранения-в-opfs)\r\n- [Свой плагин записи в OPFS](#свой-плагин-записи-в-opfs)\r\n- [Требования](#требования)\r\n- [Лицензия](#лицензия)\r\n\r\n---\r\n\r\n## Установка\r\n\r\n```bash\r\npnpm add @budarin/psw-plugin-opfs-serve-range\r\n```\r\n\r\n---\r\n\r\n## Быстрый старт\r\n\r\nТипичный сценарий: пользователь сам выбирает, что скачать (кнопка «Скачать для офлайна»). Подключают **opfsServeRange** (отдаёт диапазоны байтов из OPFS, если файл в кеше) и **opfsBackgroundFetch** (пишет в OPFS по завершении Background Fetch). Для **разных** кешей — **разные folderName** (например видео, аудио).\r\n\r\n- **opfsServeRange** — отдаёт запрошенные диапазоны байтов из OPFS, если файл уже есть в кеше.\r\n- **opfsBackgroundFetch** — когда пользователь запускает загрузку через Background Fetch (например со страницы через `startDownloadAssetsToOpfs`), готовые ответы записываются в OPFS; последующие запросы обслуживаются из кеша через opfsServeRange.\r\n\r\nПример с **отдельными кешами** для видео и аудио (по два плагина на папку):\r\n\r\n```typescript\r\nimport { initServiceWorker } from '@budarin/pluggable-serviceworker';\r\nimport { createOpfsServeAndBackgroundFetchPlugins, createOpfsServeAndNetworkCachePlugins } from '@budarin/psw-plugin-opfs-serve-range';\r\n\r\ninitServiceWorker(\r\n    [\r\n        createOpfsServeAndBackgroundFetchPlugins({\r\n            folderName: 'video-cache',\r\n            include: ['*.mp4', '*.webm'],\r\n        }),\r\n        createOpfsServeAndNetworkCachePlugins({\r\n            folderName: 'audio-cache',\r\n            include: ['*.mp3', '*.m4a'],\r\n            loadOnlyOnWiFi: true,\r\n        }),\r\n    ],\r\n    { version: '1.0.0' }\r\n);\r\n```\r\n\r\nПлагины, которые используют **один и тот же** кеш (одну папку), должны иметь один и тот же **folderName** и согласованные опции. **Важно:** в сценарии «кеш при первом запросе» после первого `Range` (206) запускается фоновый full GET в OPFS; именно он и может быть пропущен на `cellular` (учитывает `saveData` и `loadOnlyOnWiFi`). В примере `audio-cache` это включено через `loadOnlyOnWiFi: true`. Для кеша, заполняемого через Background Fetch (в примере `video-cache`), на странице вызывают `startDownloadAssetsToOpfs({ folderName, assets, title })`; по завершении эти URL обслуживаются из кеша.\r\nПодробнее — в разделе [«Скачать для офлайна»](#скачать-для-офлайна-background-fetch).\r\n\r\n---\r\n\r\n## Сценарии использования\r\n\r\n### Кеш при первом запросе\r\n\r\n**Альтернатива Background Fetch:** кеш заполняется при первом запросе к ресурсу (например при первом проигрывании видео), без отдельной кнопки «Скачать». Регистрируют **opfsServeRange** и **opfsRangeFromNetworkAndCache** (без opfsBackgroundFetch) для этой папки. Если файла нет в OPFS, запрос уходит в сеть, ответ отдаётся клиенту потоком и в фоне сохраняется в OPFS. Дальнейшие запросы обслуживаются из кеша. Загрузка прерывается при закрытии вкладки или обрыве сети. Используйте этот сценарий, когда не нужна кнопка «Скачать для офлайна» и нужна автоматическая загрузка в кеш при первом обращении.\r\n\r\nСервер должен поддерживать запросы по диапазону байтов (HTTP Range): ответ 206 и Content-Length. Квота, вытеснение по LRU и закреплённые ресурсы — в [Справочнике по плагинам](#справочник-плагины-сервис-воркер).\r\n\r\n---\r\n\r\n### «Скачать для офлайна» (Background Fetch)\r\n\r\nВ этом сценарии пользователь нажимает кнопку вроде «Скачать для офлайна»; выбранные файлы загружаются в фоне, вкладку можно закрыть. После завершения загрузки приложение обращается к тем же адресам с запросом диапазона байтов (Range) и получает данные уже из кеша.\r\n\r\n#### Сервис-воркер\r\n\r\nВ сервис-воркере регистрируют **opfsServeRange** и **opfsBackgroundFetch** с одним **folderName** на кеш. Для **каждого** кеша — **свой folderName** (например видео и аудио — разные папки).\r\n\r\n```typescript\r\nimport { initServiceWorker } from '@budarin/pluggable-serviceworker';\r\nimport { createOpfsServeAndBackgroundFetchPlugins } from '@budarin/psw-plugin-opfs-serve-range';\r\n\r\ninitServiceWorker(\r\n    [\r\n        createOpfsServeAndBackgroundFetchPlugins({\r\n            folderName: 'video-cache',\r\n            include: ['*.mp4', '*.webm'],\r\n            debug: true,\r\n        }),\r\n        createOpfsServeAndBackgroundFetchPlugins({\r\n            folderName: 'audio-cache',\r\n            include: ['*.mp3', '*.m4a'],\r\n        }),\r\n    ],\r\n    { version: '1.0.0' }\r\n);\r\n```\r\n\r\n#### Клиент (страница)\r\n\r\nУдобнее всего использовать высокоуровневый API: одна функция запускает загрузку. Она возвращает обещание (промис), которое выполняется, когда ресурсы записаны в OPFS, или отклоняется при ошибке или отмене пользователем. При этом:\r\n- системный UI Background Fetch (например, уведомление о загрузке на Android), если он поддерживается браузером, показывает прогресс и кнопки управления;\r\n- клиентский код получает детализированный прогресс и статусы через колбеки и подписки и может строить собственный расширенный интерфейс состояния загрузки.\r\n\r\n```typescript\r\nimport { startDownloadAssetsToOpfs } from '@budarin/psw-plugin-opfs-serve-range/client';\r\n\r\nasync function downloadForOffline(\r\n    assets: string[],\r\n    title: string,\r\n    totalDownloadSizeInBytes?: number\r\n) {\r\n    try {\r\n        const result = await startDownloadAssetsToOpfs({\r\n            folderName: 'video-cache',\r\n            assets,\r\n            title,\r\n            totalDownloadSizeInBytes,\r\n            onProgress: (downloaded, total) =>\r\n                console.log(`${downloaded}/${total}`),\r\n            signal: myAbortController.signal,\r\n        });\r\n        console.log('Закешировано:', result.assets);\r\n    } catch (e) {\r\n        if (e && typeof e === 'object' && 'reason' in e) {\r\n            console.warn('Загрузка', (e as { reason: string }).reason);\r\n        } else throw e;\r\n    }\r\n}\r\n```\r\n\r\nЕсли вы используете React, в пакете есть хук: он хранит состояние загрузки (статус, прогресс по байтам и по файлам, ошибки, результат). При размонтировании компонента хук только перестаёт обновлять состояние, загрузка в фоне продолжается; отменить её можно вызовом reset(). Если пользователь вернулся на страницу и снова нажал «Скачать» с тем же набором файлов, загрузка с таким набором может уже идти — тогда новый вызов не создаёт дубликат, а подписывается на неё (attach), и промис выполнится при завершении той загрузки.\r\n\r\n```typescript\r\nimport { useDownloadAssetsToOpfs } from '@budarin/psw-plugin-opfs-serve-range/client/react';\r\n\r\nfunction DownloadButton() {\r\n    const { startDownload, status, progress, fileProgress, error, data, reset } = useDownloadAssetsToOpfs();\r\n    return (\r\n        <>\r\n            <button onClick={() => startDownload({ folderName: 'video-cache', assets: ['/assets/video.mp4'], title: 'Видео' })}>\r\n                Скачать\r\n            </button>\r\n            {status === 'pending' && progress && <span>{progress.downloaded}/{progress.total}</span>}\r\n            {status === 'success' && data && <span>Готово: {data.assets?.join(', ')}</span>}\r\n            {status === 'failure' && error && <span>Ошибка</span>}\r\n        </>\r\n    );\r\n}\r\n```\r\n\r\nЕсли нужна своя логика (свой идентификатор загрузки, своя фильтрация или свои колбеки), сценарий можно собрать из низкоуровневых функций. Подробности — в разделе [Справочник: клиентский API](#справочник-клиентский-api). Запись в OPFS по-прежнему выполняет плагин opfsBackgroundFetch в сервис-воркере; идентификатор загрузки должен начинаться с префикса `opfs-ranges-` (константа **OPFS_BACKGROUND_FETCH_ID_PREFIX** в пакете).\r\n\r\n---\r\n\r\n## Справочник: плагины (сервис-воркер)\r\n\r\n**Высокоуровневые фабрики**\r\n\r\n```ts\r\ncreateOpfsServeAndBackgroundFetchPlugins(options: {\r\n  folderName: string;\r\n  order?: number;            // по умолчанию 0\r\n  include: string[];\r\n  exclude?: string[];\r\n  debug?: boolean;   // по умолчанию false\r\n  logger?: Logger;\r\n  pinned?: string[];\r\n  rangeResponseCacheControl?: string;\r\n}): Plugin[]\r\n```\r\n\r\n```ts\r\ncreateOpfsServeAndNetworkCachePlugins(options: {\r\n  folderName: string;\r\n  order?: number;            // по умолчанию 0\r\n  include: string[];\r\n  exclude?: string[];\r\n  debug?: boolean;   // по умолчанию false\r\n  logger?: Logger;\r\n  pinned?: string[];\r\n  loadOnlyOnWiFi?: boolean;\r\n  rangeResponseCacheControl?: string;\r\n}): Plugin[]\r\n```\r\n\r\nФабрика возвращает массив плагинов. **initServiceWorker** (pluggable-serviceworker) разворачивает вложенные массивы плагинов, поэтому результат можно передавать без спреда.\r\n\r\nУ каждого плагина в опциях обязательны **folderName: string** и **include: string[]** (непустой массив). Одна папка = один кеш. **include** и **exclude** могут быть glob-паттернами, pathname'ами или полными URL (например `['*.mp4', '/video/*']`, `['/assets/video.mp4']` или `['https://example.com/video/*']`). При инициализации полные URL приводятся к pathname (same-origin) или отбрасываются (cross-origin). Если после нормализации `include` оказался пустым (например в `include` были только cross-origin URL), фабрика возвращает `undefined` и плагин не создаётся. **Когда приходит запрос:** если URL запроса с другого origin — запрос не обрабатывается (ни отдача из кеша, ни запись). Если same-origin — по pathname URL запроса сопоставляем с (нормализованными) паттернами: например глоб `/video/*` совпадает с запросом на `https://example.com/video/1.mp4`. Плагины, которые обслуживают один и тот же кеш (например opfsServeRange + opfsBackgroundFetch или opfsServeRange + opfsRangeFromNetworkAndCache для сценария «кеш при первом запросе»), должны использовать один и тот же **folderName**. Очистить кеш: **clearOpfsCache(folderName)**.\r\n\r\n**Плоское хранилище (flat store):** все файлы лежат в одном каталоге; **folderName** хранится только в метаданных файла и используется для фильтрации (отдача, list, clear). Размер кеша ограничен **одной глобальной долей** квоты origin: **getGlobalMaxCacheFraction()** (по умолчанию 0.5) и **setGlobalMaxCacheFraction(fraction)** задают лимит; **getMaxCacheFraction()** (без аргументов) возвращает его. Задайте лимит до регистрации плагинов; не задавайте 1.0, если приложение использует и другие хранилища (Cache API, IndexedDB и т.д.).\r\n\r\nВ средах, где OPFS недоступен, фабрики плагинов возвращают undefined.\r\n\r\n**Утилиты (SW)**\r\n\r\n```ts\r\nnormalizePatternList(patterns: string[] | undefined, baseOrigin: string): { list: string[] | undefined; dropped: NormalizePatternListDropped }\r\nemitDroppedPatternWarnings(dropped: NormalizePatternListDropped, logger: { warn?: (message: string) => void }): void\r\ngetRoot(): Promise<FileSystemDirectoryHandle>\r\ngetFlatStoreDir(): Promise<FileSystemDirectoryHandle>\r\ngetOpfsDir(root: FileSystemDirectoryHandle, create: boolean, folderName: string): Promise<FileSystemDirectoryHandle>\r\nclearOpfsCache(folderName: string): Promise<void>\r\nregisterFolderConfig(folderName: string): void\r\ngetGlobalMaxCacheFraction(): number\r\nsetGlobalMaxCacheFraction(fraction: number): void\r\ngetMaxCacheFraction(): number\r\ngetCacheLimit(estimate: StorageEstimate): number\r\n```\r\n\r\nПри инициализации полные URL приводятся к pathname; cross-origin и невалидные попадают в `dropped`. Фабрики плагинов выводят предупреждения через logger. **getGlobalMaxCacheFraction** по умолчанию 0.5; **setGlobalMaxCacheFraction** ожидает (0, 1], при неверном значении — throw.\r\n\r\n**opfsServeRange** — читает файлы из OPFS и отдаёт запрошенные диапазоны байтов (206), потоково по чанкам из файла.\r\n\r\n```ts\r\nopfsServeRange(options: {\r\n  folderName: string;\r\n  order?: number;            // по умолчанию 0\r\n  include: string[];\r\n  exclude?: string[];\r\n  debug?: boolean;   // по умолчанию false\r\n  logger?: Logger;\r\n  rangeResponseCacheControl?: string;\r\n}): Plugin | undefined\r\n```\r\n\r\n**opfsRangeFromNetworkAndCache** — обрабатывает запросы, которые opfsServeRange не отдал из кеша: загружает из сети, сразу отдаёт ответ клиенту и при возможности сохраняет файл в OPFS в фоне. Загрузка прерывается при закрытии вкладки или обрыве сети.\r\n\r\n```ts\r\nopfsRangeFromNetworkAndCache(options: {\r\n  folderName: string;\r\n  order?: number;            // по умолчанию 0\r\n  include: string[];\r\n  exclude?: string[];\r\n  debug?: boolean;   // по умолчанию false\r\n  logger?: Logger;\r\n  pinned?: string[];\r\n  loadOnlyOnWiFi?: boolean;\r\n}): Plugin | undefined\r\n```\r\n\r\n**opfsBackgroundFetch** — при успешном завершении Background Fetch записывает ответы в OPFS; последующие запросы по диапазону байтов обслуживает opfsServeRange. Учитываются только загрузки с id, начинающимся с **OPFS_BACKGROUND_FETCH_ID_PREFIX** (`opfs-ranges-`). В обработчике сообщений вызывает плагин ответа по фильтру (см. **opfsBackgroundFetchFilter**).\r\n\r\n```ts\r\nopfsBackgroundFetch(options: {\r\n  folderName: string;\r\n  order?: number;            // по умолчанию 0\r\n  include: string[];\r\n  exclude?: string[];\r\n  debug?: boolean;   // по умолчанию false\r\n  logger?: Logger;\r\n  pinned?: string[];\r\n}): Plugin | undefined\r\n```\r\n\r\n**opfsBackgroundFetchFilter** — обрабатывает только сообщения от страницы: на запрос фильтра (OPFS_REQUEST_GET_BACKGROUND_FETCH_FILTER) отвечает текущими include и exclude. Серверная пара клиентской утилиты **getBackgroundFetchFilter()**. При полном стеке регистрировать отдельно не нужно (opfsBackgroundFetch обрабатывает ответ по фильтру сам). В кастомном SW зарегистрируйте с теми же include и exclude, что и логика загрузки. Фильтр так же нормализует include/exclude (полные URL → pathname или отбрасываются). Возвращает **undefined**, если после нормализации include пуст.\r\n\r\n```ts\r\nopfsBackgroundFetchFilter(options: {\r\n  include: string[];\r\n  exclude?: string[];\r\n  logger?: Logger;\r\n}): Plugin | undefined\r\n```\r\n\r\n**opfsRegisteredFolders** — обрабатывает только сообщения от страницы: на запрос **OPFS_REQUEST_GET_REGISTERED_FOLDERS** отвечает списком папок, зарегистрированных в SW через **registerFolderConfig**. Серверная пара клиентской утилиты **getRegisteredFolders()**. **startDownloadAssetsToOpfs** использует этот список и отклоняет загрузку, если указанная папка не зарегистрирована. Подключайте в кастомном SW, если используете проверку папки на клиенте.\r\n\r\n```ts\r\nopfsRegisteredFolders(): Plugin | undefined\r\n```\r\n\r\nЗакреплённые ресурсы (опция pinned): массив масок (glob) по адресам. Ресурсы, подходящие под эти маски, не вытесняются при нехватке места (LRU). Поддерживается обоими плагинами, которые пишут в OPFS: opfsRangeFromNetworkAndCache и opfsBackgroundFetch.\r\n\r\n---\r\n\r\n## Справочник: клиентский API\r\n\r\nEntry point: `@budarin/psw-plugin-opfs-serve-range/client`. React-хук: `@budarin/psw-plugin-opfs-serve-range/client/react`.\r\n\r\n### Загрузка assets в OPFS\r\n\r\n**Условие:** в SW должны быть зарегистрированы плагины, отвечающие на запросы клиента: **opfsBackgroundFetchFilter** (или opfsBackgroundFetch) — для фильтра include/exclude; **opfsRegisteredFolders** — для списка зарегистрированных папок. Иначе `startDownloadAssetsToOpfs` не получит фильтр или список папок и загрузка будет отклонена с ошибкой (см. коды OPFS_ERROR_*).\r\n\r\n**getBackgroundFetchFilter()**\r\n\r\n```ts\r\ngetBackgroundFetchFilter(): Promise<{ include?: string[]; exclude?: string[] }>\r\n```\r\n\r\nЗапрашивает у SW текущие include и exclude. В SW должен быть зарегистрирован **opfsBackgroundFetchFilter** или opfsBackgroundFetch. Резолвится объектом с фильтром; пустой объект при таймауте или отсутствии ответа от SW.\r\n\r\n**getRegisteredFolders()**\r\n\r\n```ts\r\ngetRegisteredFolders(): Promise<FolderName[]>\r\n```\r\n\r\nЗапрашивает у SW список папок, зарегистрированных через registerFolderConfig. В SW должен быть зарегистрирован плагин **opfsRegisteredFolders**. При таймауте или отсутствии ответа возвращает пустой массив (тогда startDownloadAssetsToOpfs отклонит загрузку с OPFS_ERROR_SERVICE_WORKER_UNAVAILABLE).\r\n\r\n**filterAssetsForOpfs(assets, include?, exclude?)**\r\n\r\n```ts\r\nfilterAssetsForOpfs(\r\n  assets: string[],\r\n  include?: string[],\r\n  exclude?: string[]\r\n): string[]\r\n```\r\n\r\n**estimateAssetsSizeInBytes(assets)**\r\n\r\n```ts\r\nestimateAssetsSizeInBytes(\r\n  assets: string[]\r\n): Promise<{ totalSize: number; sizes: Record<string, number> }>\r\n```\r\n\r\nОтправляет HEAD-запросы к указанным ресурсам (same-origin) и пытается прочитать заголовок `Content-Length` для оценки размеров.\r\n\r\n- **assets** — список pathname'ов ресурсов (например, `['/video/1.mp4']`).\r\n- Возвращает объект:\r\n  - **totalSize** — суммарный размер в байтах по всем ресурсам, для которых удалось получить `Content-Length` (для остальных — 0).\r\n  - **sizes** — словарь `pathname → размер в байтах` (0, если размер определить не удалось).\r\n\r\nХелпер работает только для same-origin ресурсов (как и весь пакет). Если сервер не отдаёт `Content-Length` или ответ неуспешен, размер считается равным 0, при этом промис не отклоняется.\r\n\r\nПример использования вместе с `startDownloadAssetsToOpfs`:\r\n\r\n```ts\r\nimport {\r\n  startDownloadAssetsToOpfs,\r\n  estimateAssetsSizeInBytes,\r\n} from '@budarin/psw-plugin-opfs-serve-range/client';\r\n\r\nasync function downloadForOfflineWithEstimatedSize(assets: string[], title: string) {\r\n  const { totalSize } = await estimateAssetsSizeInBytes(assets);\r\n\r\n  await startDownloadAssetsToOpfs({\r\n    folderName: 'video-cache',\r\n    assets,\r\n    title,\r\n    totalDownloadSizeInBytes: totalSize,\r\n  });\r\n}\r\n```\r\n\r\n**startDownloadAssetsToOpfs(options)**\r\n\r\nПри успешном завершении в системном списке загрузок остаётся переданный **title** (при ошибке/отмене заголовок обновляется). Задавайте осмысленный **title**, чтобы записи различались.\r\n\r\n**Логика перед запуском:** запрашивается список зарегистрированных в SW папок (**getRegisteredFolders()**); если папка **folderName** не в списке или список пуст — промис отклоняется (OPFS_ERROR_FOLDER_NOT_REGISTERED или OPFS_ERROR_SERVICE_WORKER_UNAVAILABLE). Затем из списка assets (после фильтра include/exclude) исключаются те, что уже качаются в других активных Background Fetch (pathname берутся из matchAll() по каждой активной регистрации с префиксом `opfs-ranges-`). Затем исключаются те, что уже есть в OPFS (один вызов **listOpfsCachedResources(folderName)**). Порядок такой специально: сначала «в процессе», потом «уже в кеше» — чтобы не пропустить только что завершившуюся загрузку. В загрузку уходит только то, что осталось. Если ничего не осталось, промис сразу выполняется с `written: assetsToUse` (ничего не качаем). Идентификатор загрузки считается по набору pathname'ов идемпотентно (getOpfsBackgroundFetchId). Если с тем же набором загрузка уже идёт, новый вызов не создаёт вторую, а подписывается на уже идущую (attach); промис выполнится при её завершении.\r\n\r\n```ts\r\nstartDownloadAssetsToOpfs(options: StartDownloadAssetsToOpfsOptions): Promise<DownloadAssetsToOpfsResult>\r\n\r\ninterface StartDownloadAssetsToOpfsOptions {\r\n    folderName: string;\r\n    assets: string[];\r\n    title?: string;\r\n    icons?: { src: string; sizes?: string; type?: string }[];\r\n    totalDownloadSizeInBytes?: number;\r\n    onProgress?: (downloaded: number, total: number) => void;\r\n    onFileWritten?: (loadedAssets: string[], totalCount: number) => void;\r\n    signal?: AbortSignal;\r\n}\r\n\r\ninterface DownloadAssetsToOpfsResult {\r\n    registrationId: string;\r\n    assets?: string[];\r\n    written?: string[];\r\n    failedOrSkipped?: string[];\r\n    filteredOut?: string[];\r\n}\r\n\r\ninterface DownloadAssetsToOpfsRejected {\r\n    registrationId: string;\r\n    reason: 'fail' | 'abort';\r\n}\r\n```\r\n\r\nДля отображения в UI обрабатывайте ошибку через try/catch или .catch() и при необходимости проверяйте error?.code.\r\n\r\n- **useDownloadAssetsToOpfs()** — React-хук. Возвращает функцию запуска загрузки, статус, прогресс по байтам и по файлам, **error** (заполняется при ошибке — можно показывать в UI), результат и функцию сброса. **startDownload** при ошибке отклоняет промис (те же коды); ошибка также попадает в состояние **error**. Для проверки кода используйте `error?.code` (OPFS_ERROR_FOLDER_NOT_REGISTERED и т.д.). При размонтировании загрузка не отменяется; отменить можно только вызовом reset(). При повторном нажатии «Скачать» с тем же набором файлов происходит подписка на уже идущую загрузку (attach). Требуется установленный React (peer dependency).\r\n\r\n```ts\r\nuseDownloadAssetsToOpfs(): {\r\n    startDownload: (options: Omit<StartDownloadAssetsToOpfsOptions, 'signal'>) => Promise<void>;\r\n    status: 'idle' | 'pending' | 'success' | 'failure' | 'aborted';\r\n    progress: { downloaded: number; total: number } | null;\r\n    fileProgress: { loadedAssets: string[]; totalCount: number } | null;\r\n    error: StartDownloadError | null;\r\n    data: DownloadAssetsToOpfsResult | null;\r\n    reset: () => void;\r\n}\r\n```\r\n\r\n### Низкоуровневый API (без startDownloadAssetsToOpfs и хука)\r\n\r\nЕсли вы не используете startDownloadAssetsToOpfs или хук и собираете сценарий вручную, понадобятся две вещи. Во-первых, функции запуска загрузки и проверки поддержки: **startBackgroundFetch** и **isBackgroundFetchSupported** из пакета pluggable-serviceworker (клиентский подмодуль `client/background-fetch`). Во-вторых, подписка на сообщения от сервис-воркера — об успешном завершении загрузки, об ошибке, об отмене и о записи каждого файла в OPFS; соответствующие функции подписки (**onOPFSBackgroundFetchCompleted**, **onOPFSBackgroundFetchFailed**, **onOPFSBackgroundFetchAborted**, **onOPFSBackgroundFetchFileWritten**) экспортируются из этого пакета. Идентификатор загрузки обязан быть сформирован при помощи **getOpfsBackgroundFetchId(assets, folderName)**. Id уникален для папки, поэтому один и тот же набор ресурсов в разных кешах не даёт коллизий; плагин в SW обрабатывает только события своей папки.\r\n\r\n### Подписки на сообщения от сервис-воркера\r\n\r\nКаждая функция принимает обработчик и возвращает функцию для отписки. В каком случае отправляется то или иное сообщение — в [описании поведения кеша](https://github.com/budarin/psw-plugin-opfs-serve-range/blob/master/docs/opfs-cache-behavior.ru.md).\r\n\r\n**Список отменённых (skip list):** при потоковой записи в OPFS может произойти превышение квоты (QuotaExceeded). Если к моменту ошибки файл оказался не меньше всего кеша, вытеснять старые файлы бесполезно — места всё равно не хватит. Такой URL заносят в список отменённых (в памяти сервис-воркера на время его жизни). При следующих запросах к этому адресу плагин не пытается кешировать ответ и отправляет **onOPFSSkipQuotaExceeded**, чтобы клиент мог показать предупреждение.\r\n\r\n**Назначение каждой подписки:**\r\n\r\n- **onOPFSQuotaExceeded** — квота исчерпана при записи в OPFS; URL при этом может быть занесён в список отменённых (см. выше).\r\n- **onOPFSWriteSkipped** — запись отменена до начала: при известном размере файла проверка места не прошла, файл не помещается даже после эвикции.\r\n- **onOPFSEvictionCompleted** — эвикция завершена.\r\n- **onOPFSWriteFailed** — ошибка записи.\r\n- **onOPFSSkipQuotaExceeded** — пришёл запрос к URL из списка отменённых; плагин не кеширует, только оповещает.\r\n- **onOPFSBackgroundFetchFailed** — Background Fetch завершился с ошибкой.\r\n- **onOPFSBackgroundFetchAborted** — Background Fetch отменён.\r\n- **onOPFSBackgroundFetchCompleted** — Background Fetch успешно завершён, ресурсы в OPFS.\r\n- **onOPFSBackgroundFetchFileWritten** — очередной файл записан в OPFS (прогресс по файлам).\r\n- **onOPFSRangeCacheFetchStarted** — плагин opfsRangeFromNetworkAndCache начал фоновую загрузку в кеш (сценарий «кеш при первом запросе»). По нему можно включить индикатор «идёт фоновая загрузка».\r\n- **onOPFSRangeCacheFetchAllDone** — все такие фоновые загрузки завершены. По нему можно выключить индикатор.\r\n\r\nУ всех этих функций один и тот же интерфейс. **Общий тип обработчика и payload** (экспортируются из пакета):\r\n\r\n```ts\r\ntype OpfsMessageHandler = (event: MessageEvent & { data: { type: string } & OpfsMessagePayload }) => void;\r\n\r\ninterface OpfsMessagePayload {\r\n    url?: string;\r\n    size?: number;\r\n    limit?: number;\r\n    reason?: string;\r\n    registrationId?: string;\r\n    assets?: string[];\r\n    written?: string[];\r\n    failedOrSkipped?: string[];\r\n    asset?: string;\r\n    loadedAssets?: string[];\r\n    totalCount?: number;\r\n}\r\n```\r\n\r\nКакие поля есть в `event.data`, зависит от типа сообщения (см. список выше и [описание поведения кеша](https://github.com/budarin/psw-plugin-opfs-serve-range/blob/master/docs/opfs-cache-behavior.ru.md)). Константы типов сообщений: OPFS_MSG_*, OPFS_REQUEST_GET_BACKGROUND_FETCH_FILTER, OPFS_RESPONSE_BACKGROUND_FETCH_FILTER.\r\n\r\n### Утилиты кэша\r\n\r\nЭти функции вызываются на странице и отправляют запросы в сервис-воркер (плагин **opfsCacheControl**). SW выполняет операцию в OPFS и инвалидирует свои in-memory кэши. Таймаут запроса 2 с. **folderName** должен совпадать с папкой, зарегистрированной в SW. Если папка не зарегистрирована, SW отвечает ошибкой: **listOpfsCachedResources** и **hasInOpfsCache** в этом случае возвращают `[]` и `false` соответственно; **deleteFromOpfsCache** не требует **folderName** (файл удаляется по URL из плоского хранилища). **clearOpfsCache** требует **folderName**; если папка не зарегистрирована, промис отклоняется с `opfs: folder not registered`. При использовании **createOpfsServeAndBackgroundFetchPlugins** или **createOpfsServeAndNetworkCachePlugins** плагин **opfsCacheControl** уже входит в набор — list/has/delete/clear работают «из коробки». Очистить кеш со страницы: **clearOpfsCache(folderName)** (клиент шлёт запрос CLEAR).\r\n\r\n**listOpfsCachedResources(folderName)**\r\n\r\n```ts\r\nlistOpfsCachedResources(folderName: string): Promise<OpfsCachedResource[]>\r\n\r\ninterface OpfsCachedResource {\r\n    url: string;\r\n    size: number;\r\n    type: string | undefined;\r\n    lastModified: string | undefined;\r\n}\r\n```\r\n\r\n**hasInOpfsCache(url, folderName)**\r\n\r\n```ts\r\nhasInOpfsCache(url: string, folderName: string): Promise<boolean>\r\n```\r\n\r\n**deleteFromOpfsCache(url)**\r\n\r\n```ts\r\ndeleteFromOpfsCache(url: string): Promise<void>\r\n```\r\n\r\n### Переподключение плеера к OPFS после загрузки файла\r\n\r\nКогда файл (текущий источник video/audio) записан в OPFS через Background Fetch, можно переподключить плеер к тому же URL, чтобы последующие запросы шли из OPFS (например, для мгновенного перемотки). Используйте **onOPFSBackgroundFetchFileWritten** и **reconnectPlayerOnFileLoadedIntoOpfs**. Для **видео** во время смены источника показывается последний кадр (оверлей), оверлей убирается только когда новый источник уже отображается (события **playing** или **seeked**), поэтому нет чёрного экрана. Обёртка сохраняет layout видео (margin, box-sizing, display), так что контент не смещается. Если у видео не были заданы явные размеры, на время переключения они фиксируются, затем снимаются. Для аудио оверлей не используется.\r\n\r\n**reconnectPlayerOnFileLoadedIntoOpfs(element, payload, folderName, options?)**\r\n\r\nВызывайте из обработчика **onOPFSBackgroundFetchFileWritten**. Если `payload.asset` совпадает с текущим источником элемента и файл есть в OPFS, переподключает плеер и восстанавливает состояние воспроизведения. Типы: **FileWrittenPayload**, **ReconnectPlayerOnFileLoadedIntoOpfsOptions** (ниже).\r\n\r\n```ts\r\nreconnectPlayerOnFileLoadedIntoOpfs(\r\n  element: HTMLMediaElement,\r\n  payload: FileWrittenPayload,\r\n  folderName: FolderName,\r\n  options?: ReconnectPlayerOnFileLoadedIntoOpfsOptions\r\n): Promise<void>\r\n\r\ninterface FileWrittenPayload {\r\n    asset?: string;\r\n}\r\n\r\ninterface ReconnectPlayerOnFileLoadedIntoOpfsOptions {\r\n    logger?: Logger;\r\n    debug?: boolean;  // по умолчанию false\r\n}\r\n\r\ninterface UseReconnectPlayerOnFileLoadedIntoOpfsOptions extends ReconnectPlayerOnFileLoadedIntoOpfsOptions {\r\n    folderName: FolderName;\r\n}\r\n```\r\n\r\n**Пример (ванильный TS):**\r\n\r\n```ts\r\nimport {\r\n    onOPFSBackgroundFetchFileWritten,\r\n    reconnectPlayerOnFileLoadedIntoOpfs,\r\n} from '@budarin/psw-plugin-opfs-serve-range/client';\r\n\r\nconst video = document.querySelector('video');\r\nconst folderName = 'video-cache';\r\n\r\nif (video) {\r\n    const unsubscribe = onOPFSBackgroundFetchFileWritten((event) => {\r\n        reconnectPlayerOnFileLoadedIntoOpfs(video, event.data, folderName).catch(() => {});\r\n    });\r\n}\r\n```\r\n\r\n**Пример (React):**\r\n\r\n```tsx\r\nimport { useRef } from 'react';\r\nimport { useReconnectPlayerOnFileLoadedIntoOpfs } from '@budarin/psw-plugin-opfs-serve-range/client/react';\r\n\r\nfunction VideoPlayer() {\r\n    const videoRef = useRef<HTMLVideoElement | null>(null);\r\n    useReconnectPlayerOnFileLoadedIntoOpfs(videoRef, { folderName: 'video-cache' });\r\n    return <video ref={videoRef} src=\"/video/lesson-1.mp4\" controls />;\r\n}\r\n```\r\n\r\n---\r\n\r\n## Формат хранения в OPFS\r\n\r\n**Плоское хранилище (flat store, v4):** все закешированные файлы лежат в **одном каталоге** под корнем плагина. Путь: корень OPFS → **OPFS_PLUGIN_ROOT_DIR_NAME** (по умолчанию **`.opfs-serve-range`**) → один каталог (подкаталогов по folderName нет). Имя файла = ключ = `hex(SHA-256(URL))` (64 символа). Один файл на URL. **folderName** не входит в путь; он хранится в метаданных в футере файла и используется только для фильтрации (какой плагин отдаёт файл, list/clear по папке).\r\n\r\nСтруктура файла: тело ресурса, затем футер (4 байта длины JSON + JSON метаданных). Метаданные: url, size, type, etag, lastModified, lastAccessed, evictable, **folderName**. Эвикция управляется **индексом только в памяти** (файла `_eviction_index.json` на диске нет); индекс при необходимости заполняется сканом каталога. **getFlatStoreDir()** возвращает этот единственный каталог; **getOpfsDir(root, create, folderName)** — обёртка совместимости, возвращает тот же каталог.\r\n\r\nЕсли отдаёте файл целиком (ответ 200 без Range), отдавайте только тело, без футера: по футеру вычислите размер тела и отдайте file.slice(0, bodySize). Плагин opfsServeRange отдаёт только диапазоны тела (ответ 206), футер в ответ не входит.\r\n\r\n---\r\n\r\n## Свой плагин записи в OPFS\r\n\r\nЕсли нужно записывать в OPFS по своей логике, но в том же формате, что и плагины пакета:\r\n\r\n```ts\r\ngetRoot(): Promise<FileSystemDirectoryHandle>\r\ngetOpfsDir(root: FileSystemDirectoryHandle, create: boolean, folderName: string): Promise<FileSystemDirectoryHandle>\r\nurlToOpfsKey(url: string): Promise<string>\r\nmetadataFromResponse(response: Response, url: string): OpfsMetadata\r\nwriteToOpfs(\r\n  dir: FileSystemDirectoryHandle,\r\n  key: string,\r\n  bodyStream: ReadableStream<Uint8Array>,\r\n  metadata: OpfsMetadata,\r\n  options: WriteToOpfsOptions\r\n): Promise<void>\r\n\r\ninterface OpfsMetadata {\r\n    url: string;\r\n    size: number;\r\n    type?: string;\r\n    etag?: string;\r\n    lastModified?: string;\r\n    lastAccessed?: number;\r\n    evictable?: boolean;\r\n}\r\n\r\ninterface WriteToOpfsOptions {\r\n    folderName: string;\r\n    url?: string;\r\n    knownSize?: number;\r\n}\r\n```\r\n\r\n```typescript\r\nimport {\r\n    getRoot,\r\n    getOpfsDir,\r\n    urlToOpfsKey,\r\n    writeToOpfs,\r\n    metadataFromResponse,\r\n} from '@budarin/psw-plugin-opfs-serve-range';\r\n\r\nconst root = await getRoot();\r\nconst dir = await getOpfsDir(root, true, 'my-cache');\r\nconst key = await urlToOpfsKey(url);\r\nconst metadata = metadataFromResponse(response, url);\r\nawait writeToOpfs(dir, key, response.body, metadata, { folderName: 'my-cache' });\r\n```\r\n\r\nОтвет от сервера может быть без заголовка Content-Length; при записи полного тела размер определяется путём подсчёта байт в теле. Чтобы при записи учитывались лимиты кеша (проверка места до записи, эвикция, оповещения и список отменённых), передавайте в writeToOpfs пятый аргумент options с полями url и knownSize.\r\n\r\n---\r\n\r\n## Требования\r\n\r\nБраузер с поддержкой OPFS (Chrome 108+, Edge 108+, Firefox 111+, Safari 16.4+) и безопасный контекст (страница по HTTPS).\r\n\r\n---\r\n\r\n## Лицензия\r\n\r\nMIT\r\n","readmeFilename":"README.ru.md"}