{"_id":"451-tools","_rev":"26-95ba93f6e315dcec1611898e5568dda3","name":"451-tools","dist-tags":{"alpha":"1.1.0-alpha.2","latest":"2.2.0","canary":"0.0.0-canary-20260908110706"},"versions":{"1.0.0":{"name":"451-tools","version":"1.0.0","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@1.0.0","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"dist":{"shasum":"896a252f6cbaeb02cb1ca13f135967a07c19dc0e","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-1.0.0.tgz","fileCount":2,"integrity":"sha512-+Vdw1CwpN7vYXKX2S3855TOOTd35mV6B8+O0BjUI5jUfY1rO61mPxjOcUneLwUvVykLlhCDv5k5YOVbyILrq2w==","signatures":[{"sig":"MEQCIHx8E23vCT8UAE9WJscRhTR/3rOz9WzWoAe17YOvMeCYAiB5MCoN8VCEGgmxA4U5oXBIpIOtNAFcr8Kbdn1JvPgUNQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30959},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"28634cb74d81d37155239804f765a83d7e041294","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"article19","email":"mail@marceloomens.com"},"_npmVersion":"10.1.0","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"deepmerge":"^4.3.1","workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.0","eslint":"^8.36.0","terser":"^5.17.1","cpy-cli":"^5.0.0","typescript":"^5.2.2","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.2","html-minifier":"^4.0.0","@changesets/cli":"^2.26.2","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_1.0.0_1709564223674_0.6318155560971608","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"451-tools","version":"1.0.1","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@1.0.1","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"dist":{"shasum":"050335c860a83ae620610f4c7e4e3868b620a9bf","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-1.0.1.tgz","fileCount":26,"integrity":"sha512-4ARouT43yoIbHXyh2iCxLGFFtAK8/FOyyKCIsXOf0vX/+POuDofcYqlEOFRBwPHjEkyhlY+F2wSu2Q6dwxo9Eg==","signatures":[{"sig":"MEQCIDJstkB0yr9vFuvfsrLcYVeBNg1k13x/zLeTi7X2OXIdAiAlkFlgc6ktsOJKFoeZ7rseDa+fTiEgboIdjXE7fnEAKQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":193141},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"dec5e80d400ea440b7841a2d3c3e3ccc18cb3928","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"article19","email":"mail@marceloomens.com"},"_npmVersion":"10.2.4","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"18.19.1","dependencies":{"deepmerge":"^4.3.1","workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.0","eslint":"^8.36.0","terser":"^5.17.1","cpy-cli":"^5.0.0","typescript":"^5.2.2","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.2","html-minifier":"^4.0.0","@changesets/cli":"^2.26.2","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_1.0.1_1709566194940_0.8054114329500399","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"451-tools","version":"1.0.2","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@1.0.2","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"dist":{"shasum":"ed7cbcd381d397f7baf11850ad2abbad3dcdd664","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-1.0.2.tgz","fileCount":26,"integrity":"sha512-Q2h5Hp0uF1qYtVagyBJzFMmDI5t43sOMAUaRG1Aw7Y7pZpHHalimlVDM3En8dX9IDxbPtPwXzPuV6P6UWbS0mg==","signatures":[{"sig":"MEUCIQDpA4wM5qOZKeA0Kqal834vr56a07FTEQtuwfl0hiOsKAIgOXZkV6brUNEgDWSePlMG+Z70VNmqOAoXZ5HfKqFGJbw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":191487},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"812fa4d81f65ad0280c1c3882fa1aa66f6f24f93","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"article19","email":"mail@marceloomens.com"},"_npmVersion":"10.2.4","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"18.19.1","dependencies":{"deepmerge":"^4.3.1","workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.5","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^2.27.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_1.0.2_1711466878395_0.9921060892227298","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"451-tools","version":"1.0.3","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@1.0.3","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"dist":{"shasum":"34933ab90bc83533a6e6d5c8275b507126f9fc11","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-1.0.3.tgz","fileCount":26,"integrity":"sha512-b059IqKMNxyDoAJ33B/Tn6VxI7fPL8hpqnm1ebVjKgphiHFGlkIUWWpxQv+hCOBuSfah5CdvPik/6i8TD8OCIA==","signatures":[{"sig":"MEQCIGTodVhpbhgndfsTXl45KRHMuTWHkFBqpXUitAlhBYBHAiAF8IOFQ0L8QmwI7B3dU1T6hlBII+u0w5I47sLIpe9I4A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":191177},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"e105efc5fc00e525524b3b62e46a672e2a29ab28","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"article19","email":"mail@marceloomens.com"},"_npmVersion":"10.5.0","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"18.20.1","dependencies":{"deepmerge":"^4.3.1","workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.5","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^2.27.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_1.0.3_1712651521223_0.9937277516910008","host":"s3://npm-registry-packages"}},"1.1.0-alpha.0":{"name":"451-tools","version":"1.1.0-alpha.0","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@1.1.0-alpha.0","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"dist":{"shasum":"aa6e8b3c8708477c5fecc58b576a8f75b31ded53","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-1.1.0-alpha.0.tgz","fileCount":26,"integrity":"sha512-nrpiptZk2DtrVSqtQUUVxas+CiMzRZOzeqMS3oDv6K+bKN10dnej5iX+39qx6mBoyTQ87YRXoovgEVGxWrISpg==","signatures":[{"sig":"MEUCIAsuM8lBqDZYYC2WwhM4LX5m8myYP1vIXiXvSrXQBFzeAiEA48TK9YNApJckmGiVa8Pf7Zd50adydXPcw7NE0kWl2nk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":193664},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"45723fe00102100d8dad9779b45a7a25bc9d134c","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"article19","email":"mail@marceloomens.com"},"_npmVersion":"10.1.0","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"deepmerge":"^4.3.1","workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^5.1.5","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^2.27.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_1.1.0-alpha.0_1715171399330_0.40125671147522146","host":"s3://npm-registry-packages"}},"1.1.0-alpha.1":{"name":"451-tools","version":"1.1.0-alpha.1","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@1.1.0-alpha.1","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"dist":{"shasum":"dff92b30954072e21555d0674e604ef4a6e945f5","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-1.1.0-alpha.1.tgz","fileCount":26,"integrity":"sha512-WyfZvEhNFC4nmMQPnfG0Sw28lvr9JCQO41UQ02Lr9zFwOQbT4wjvJd8uMzVzrtfnikzFTSnaopKjiPGoLndWNQ==","signatures":[{"sig":"MEYCIQDR6s0LXSZ0X2205RrIDE+RPc9yjgc3P01ofQLuD/gVBwIhANPVjpAT9X7FB7XfjYGu/Slz51BJ3sb2eXVczZBXxrwS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":194399},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"af0cec535eaad91081209f0c96dbf382f50b58a0","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"article19","email":"mail@marceloomens.com"},"_npmVersion":"10.5.2","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"deepmerge":"^4.3.1","workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^5.1.5","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^2.27.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_1.1.0-alpha.1_1716900065493_0.07918512278263723","host":"s3://npm-registry-packages"}},"1.1.0-alpha.2":{"name":"451-tools","version":"1.1.0-alpha.2","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@1.1.0-alpha.2","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"dist":{"shasum":"2d1a5362427a50d2d46a43883e30e6a93460143a","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-1.1.0-alpha.2.tgz","fileCount":26,"integrity":"sha512-JwdCsTywYXPwhmCUYoU8KOufvLMnyuEoo0q2gcKWjoHT+Kiq6gJIbbgwcdxaCTpvG5mCH4iPlpecoUnKleuxTA==","signatures":[{"sig":"MEUCIElQ094YtAeK2g43RdLna+UL4K5RW1JmTnAK1HBh/mrnAiEAq3R6QWEuW1bYYypop7XcsQCvJ5e/51OMcrV9V0XU0Ak=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":194468},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"80d69038da21d515c639031aa9343da731b09cde","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"article19","email":"mail@marceloomens.com"},"_npmVersion":"10.5.2","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"deepmerge":"^4.3.1","workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^5.1.5","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^2.27.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_1.1.0-alpha.2_1717012907554_0.9702652540621213","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"451-tools","version":"2.0.0","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@2.0.0","dist":{"shasum":"5f04ef04f4e7afe42940d2712866b0e1f901c324","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-2.0.0.tgz","fileCount":26,"integrity":"sha512-PdomPfBRPdPiG5p7BSVtHNIgoEznAGuLZRK+cBRN98RWWRi2/u9u1E95OLzSzrxh/i5Eksu91dMkMR2cbcGDXg==","signatures":[{"sig":"MEYCIQCVGP0XJtwXUf40H7dj9qTK/KZdNm+C2n90APTx2tviDQIhAPBMn8GDMfS0rmrLAN2D4pvETFZabytcLkdoZ7AUUA3T","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":195006},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"f9aee638afae23c7fdcb736c83b7f03eeca0f1ff","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"article19","email":"mail@marceloomens.com"},"_npmVersion":"10.7.0","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"18.20.3","dependencies":{"workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.5","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^2.27.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_2.0.0_1718979947419_0.3181398105357738","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"451-tools","version":"2.0.1","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@2.0.1","dist":{"shasum":"c1ba06cac03ab6e8e0a867d6b3fd119c2869f293","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-2.0.1.tgz","fileCount":26,"integrity":"sha512-YC44OUKrYxnBCi1t89D7E6lcmwU8VM308YpDtHCV9nm1OIc43aqP4/moGkAZrrtpHSKbgKFv6A1CIARcbc0MLg==","signatures":[{"sig":"MEUCIQD4M3mevAY3hnpE7kNcVNaV1x5PcL9fZWLkAt9Lqz9iSQIgCiPGwjWZbUXZGQFBGhWog5wQJMeREnoLLJoy0yC8KU0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":194919},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"7897f03c59fe9d036d4b010f6d2a9514742a6a1e","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"article19","email":"mail@marceloomens.com"},"_npmVersion":"10.7.0","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"18.20.3","dependencies":{"workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.5","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^2.27.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_2.0.1_1719238480272_0.08975181507401842","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"451-tools","version":"2.0.2","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@2.0.2","dist":{"shasum":"244b5fcb0a0d91cf6cfddf641295f0ca6a1f9425","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-2.0.2.tgz","fileCount":25,"integrity":"sha512-JYfHVwOdXmh5iokrRCAH7aP5nJKQOPAuM26onTwaJvI1joL384RwNIjCTmPr5gmBCmHpaPRbUldjLBkCOV9d3Q==","signatures":[{"sig":"MEUCIQCVdm3Ibxtjf47s/XRTwH4r/OCYRuy8Q/0P7X23lQZKVgIgLWnNRoSOjfSFDNooz7m33flv8tb5mIRVw5Ouvpqc+Iw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":200180},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"15f3c68cc0c8b494dadeb77548fbee727a10c086","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"article19","email":"mail@marceloomens.com"},"_npmVersion":"10.7.0","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"18.20.3","dependencies":{"workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.5","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^2.27.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_2.0.2_1719823991861_0.5237442036452957","host":"s3://npm-registry-packages"}},"2.0.3":{"name":"451-tools","version":"2.0.3","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@2.0.3","dist":{"shasum":"42fb9e288c26a6a2f31404c738eda95c9417962a","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-2.0.3.tgz","fileCount":25,"integrity":"sha512-G49GDQc8R62gyo1DELW0wCeWDyMJqICNKL1eJLh3VR04KVZZeSFBfD8oYFuydCRyfV9ALMevMu93/3jZ09YtNA==","signatures":[{"sig":"MEUCIA5agzbTp6zZJIESp+GsW3a4pLd359oS2i7tSWdcIrViAiEAsnRO3kAYh1ibQ03dhsglt+7t8I6Moxjlcd8Ql5+0XrQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":200531},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"6c27b8ab0b7a8e9823b8966b2501d6107bba0fa6","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"article19","email":"mail@marceloomens.com"},"_npmVersion":"10.7.0","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"18.20.3","dependencies":{"workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.5","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^2.27.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_2.0.3_1719828754518_0.6768010296081204","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"451-tools","version":"2.1.0","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@2.1.0","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"dist":{"shasum":"00163c36c3f0d72dc84bf8032527b21c8cbfc117","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-2.1.0.tgz","fileCount":29,"integrity":"sha512-mKljTfxfuKZPzMH9U6oLkj6tIaH+5GB0c2Ho8Mswrh9N5E0ReZ+ZSRawqc6+8y9XVeaXw6fdH9KkC0LYmsCnjg==","signatures":[{"sig":"MEUCIDG4CUzckmS1aA02qIy9xsPm5suflkTDURkjXiEUm5G8AiEA/CH/xDplEv38ymgwOSh0Q7EcpxxgHoYkK02MK4nwMrc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":230774},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"baa15c8227b667c6b8626d06ca31046029d409ca","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"article19","email":"mail@marceloomens.com"},"_npmVersion":"10.8.2","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"18.20.5","dependencies":{"workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-expiration":"^7.1.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.3","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^2.27.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_2.1.0_1733229693301_0.16798579469847796","host":"s3://npm-registry-packages"}},"2.1.1":{"name":"451-tools","version":"2.1.1","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@2.1.1","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"dist":{"shasum":"8606982826e83511d4f36360faf065cb6375e6ac","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-2.1.1.tgz","fileCount":29,"integrity":"sha512-vECCKIgXasqXWr38+cBTzJOMqPrqlYTIhRdDyQ/8CyYo1lHIFzd3aVKR1GX9tImsn00kCJ+tGLD3yb2cJjBqeQ==","signatures":[{"sig":"MEYCIQC2syyeIld5Xz8kXrvOlPevtxP2EltgFAJof3FD9n4jnwIhAJgqM7aMbhK45/yFTl/zqdkFVBuzH4zbD7kfa+TyBtgA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":230774},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"5f651c43993cb8fdcaa1215c10675d27e0531478","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"article19","email":"mail@marceloomens.com"},"_npmVersion":"10.8.2","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"18.20.5","dependencies":{"workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-expiration":"^7.1.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.3","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^2.27.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_2.1.1_1733230655557_0.5096215440448288","host":"s3://npm-registry-packages"}},"2.1.2":{"name":"451-tools","version":"2.1.2","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@2.1.2","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"dist":{"shasum":"8ffcf07f095761650575730a56ed0895d8c94f6d","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-2.1.2.tgz","fileCount":29,"integrity":"sha512-J59Hx+qZvpvUMflWjOJgPydrPR8qmCElJep3EM7Wkta018obH04IQZvUHxRyMucOMuz9iwDtfn+2yuZtzM8Rng==","signatures":[{"sig":"MEYCIQCbXJeSqk434Q0oSdSK7n6pTXxDuGK8BKnRC3ScnTZuwwIhAPvdEsxKFdXJ4dyPqdYfGNr27+Fsuv59DFTewjMgDO7E","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":230772},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"4629c419c194292095f5f357432c809b223d2ba8","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"article19","email":"mail@marceloomens.com"},"_npmVersion":"10.8.2","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"18.20.5","dependencies":{"workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-expiration":"^7.1.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.3","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^2.27.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_2.1.2_1733757077553_0.66168435957438","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"451-tools","version":"2.2.0","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@2.2.0","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"bin":{"451-tools":"cli.js"},"dist":{"shasum":"b6e9c09f05d62f53bcfb4b55b6403d85a229145d","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-2.2.0.tgz","fileCount":33,"integrity":"sha512-ylHp3g5HsOvBLtM3M1UyMVoEq23afokVzfSAYZH66c0SxId/WhqCJFWUGQ/6/ebwickZ5xqK7vS2v4diWAoFbg==","signatures":[{"sig":"MEUCIQC8ThqXY0mn8eSw5t7t7+bHkdFQHs6V0pgI+NpJah1UwQIgDqgfKNF48w9JfLJ7VbM9XA20I8LeUf1220ACziHMG5o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241624},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"bc516c8f7793bd63c559f4aebbedf3e9e977e1bf","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"article19","email":"mail@marceloomens.com"},"_npmVersion":"10.8.2","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"18.20.8","dependencies":{"yargs":"^17.7.2","workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-expiration":"^7.1.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.3","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^2.27.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_2.2.0_1747050220856_0.12739046346673155","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-canary-20260819131345":{"name":"451-tools","version":"0.0.0-canary-20260819131345","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@0.0.0-canary-20260819131345","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"bin":{"451-tools":"cli.js"},"dist":{"shasum":"de7274154eafd0c4de82ac7d08707fc1b9f9fef6","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-0.0.0-canary-20260819131345.tgz","fileCount":33,"integrity":"sha512-vHeNued86mwF5C6Y4aBuGSK5qO+4OQ6DMZNGI7978guM0SQlIf7B04ThQaxXO7ZmgPigmsEg1vGyKrYoLtpwGg==","signatures":[{"sig":"MEYCIQDP1vdSik/h4OGifJ1PyOKrx8F+s/aT+rO8dOuDO+QkGAIhAPNCiFd5OANBtXqoI0l6kwE22wjw1m2mlf90abakjfAb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243160},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"0d36c00578505508a6bd10fa8763ed05ee17b0d5","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f7ba71ed-907d-4a77-85a6-eca460435aaf"}},"_npmVersion":"11.17.0","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"yargs":"^17.7.2","workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-expiration":"^7.1.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^5.4.3","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^3.0.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_0.0.0-canary-20260819131345_1787145231503_0.03549362184174365","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-canary-20260826090838":{"name":"451-tools","version":"0.0.0-canary-20260826090838","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@0.0.0-canary-20260826090838","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"bin":{"451-tools":"cli.js"},"dist":{"shasum":"ed4f69ed48051bab2c51b05512626168a2d2d2cb","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-0.0.0-canary-20260826090838.tgz","fileCount":33,"integrity":"sha512-hk79SAPIN5Kz2AXB0X4ssmJOYNB4kjD7t7jWmCFpkKyBUjRL8RjL/seufP2hOC8zfCixgq1p4qC06ZGfMv6gUw==","signatures":[{"sig":"MEYCIQCzzDWp7LWbHkvgO9nKpdIXoOTSCjMzpwXRCnKW76meHQIhAMSK7BtF1bdgZzr6gqc2qwbb72iYFyTkkMd9sHk3cqkF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246419},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"bf7f2ba06d5da05e6e77ff96b3e9e105865fee5d","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f7ba71ed-907d-4a77-85a6-eca460435aaf"}},"_npmVersion":"11.17.0","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"yargs":"^17.7.2","workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-expiration":"^7.1.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^5.4.3","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^3.0.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_0.0.0-canary-20260826090838_1787735323866_0.46933656019261916","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-canary-20260826111508":{"name":"451-tools","version":"0.0.0-canary-20260826111508","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@0.0.0-canary-20260826111508","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"bin":{"451-tools":"cli.js"},"dist":{"shasum":"1406677b3fbfad80cb0855e7d62d82cc1d8418e7","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-0.0.0-canary-20260826111508.tgz","fileCount":33,"integrity":"sha512-a8SLGTiQmrINE6zAxvAc8ZOofjGyqp4UKCyO+RlM+fgqft5X03pQmaIGbhsMPWBjWB5eTC4FoODYBUToSgwa9g==","signatures":[{"sig":"MEUCIQDMLb0EqA6LmB9d8OmvJ81AkTFPpoLXPF94EIoRNVVFAQIgCx7gzCZ6PQWUXcH7EoAUOY4sKlsF885rSVRlnyA7whA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261730},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"3be97b4196016a0c4024cc1c7751c6dd2e748d60","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f7ba71ed-907d-4a77-85a6-eca460435aaf"}},"_npmVersion":"11.17.0","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"yargs":"^17.7.2","workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-expiration":"^7.1.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^5.4.3","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^3.0.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_0.0.0-canary-20260826111508_1787742915006_0.25634775875567306","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-canary-20260828140853":{"name":"451-tools","version":"0.0.0-canary-20260828140853","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@0.0.0-canary-20260828140853","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"bin":{"451-tools":"cli.js"},"dist":{"shasum":"b3c87b585136fc9da44eabe6ae697bf9aeaac23c","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-0.0.0-canary-20260828140853.tgz","fileCount":34,"integrity":"sha512-0DRboV5Uc4yEe/wCEAIJSFMN0nu4Lc8D9gY+gzsG/nIT0NEc9lrq+0C4FHx+hzjc8wGFd9elfXz3OSCQYu7RUg==","signatures":[{"sig":"MEQCIE5Nw74wH104TNHtENbVgqxWXTRoJ5sQvJkr7+J9rJp/AiAqlsR/E/HhyIzS5eL9D5HQuNDXZqgRD9REj+Af5CNlLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266139},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"e01761806f04e5d1c74371e1c403b7f3f5a0c201","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f7ba71ed-907d-4a77-85a6-eca460435aaf"}},"_npmVersion":"11.17.0","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"yargs":"^17.7.2","workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-expiration":"^7.1.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^5.4.3","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^3.0.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_0.0.0-canary-20260828140853_1787926139419_0.4192214300663579","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-canary-20260828143534":{"name":"451-tools","version":"0.0.0-canary-20260828143534","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@0.0.0-canary-20260828143534","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"bin":{"451-tools":"cli.js"},"dist":{"shasum":"e4a0b98ae97ab365973813a459d5a60710b418e5","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-0.0.0-canary-20260828143534.tgz","fileCount":33,"integrity":"sha512-dhLig6hhpmPQk0RgdKyYUdA8bfA2IR4aC1JHRc19ssbFwD//sVjQuQ+mD71qCXsRQOoxEK5WUL08xWlus2I8Xw==","signatures":[{"sig":"MEQCIBRq6fiTyxrmQhHfNtZAcYSspjSgQcHv/uwd+nJYf2XmAiBumiQHzVJKfgjOB9EFwvfKR20e6/nePFP4+5o+AMQdKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261730},"type":"module","engines":{"node":">=18"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"90f25d9f784b5879c8bbbfb36d19a5fca0841466","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f7ba71ed-907d-4a77-85a6-eca460435aaf"}},"_npmVersion":"11.17.0","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"yargs":"^17.7.2","workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-expiration":"^7.1.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^5.4.3","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^3.0.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_0.0.0-canary-20260828143534_1787927741103_0.3941457541396465","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-canary-20260831110010":{"name":"451-tools","version":"0.0.0-canary-20260831110010","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@0.0.0-canary-20260831110010","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"bin":{"451-tools":"cli.js"},"dist":{"shasum":"67d5386cac71a2406c973e50b33b830f6eae550e","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-0.0.0-canary-20260831110010.tgz","fileCount":34,"integrity":"sha512-vkfTPrLZ3rODTqHQsRMFAdT+BGWu88Hr6qXKF+WAtkO0N1SZfaPLcjL3nrgfbaeI2FhucmmM/V/FA/GrFys9RQ==","signatures":[{"sig":"MEQCIF/XFL4lF5+e/pB9loLd1CuRYYiudJCfKmlJawqPJobxAiA3MjczrFW8yhnnSJLzsMVrIALuq+NMkW15W0aTPe07dw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":267871},"type":"module","engines":{"node":">=22"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"601101b5841a613f21ac4e110b7787233d2fad5e","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f7ba71ed-907d-4a77-85a6-eca460435aaf"}},"_npmVersion":"11.17.0","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"yargs":"^17.7.2","nanoid":"^6.0.1","workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-expiration":"^7.1.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^5.4.3","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^3.0.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_0.0.0-canary-20260831110010_1788174015627_0.9274852785265943","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-canary-20260831120354":{"name":"451-tools","version":"0.0.0-canary-20260831120354","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@0.0.0-canary-20260831120354","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"bin":{"451-tools":"cli.js"},"dist":{"shasum":"ecb041b5adbd9a496e23291462754e4f3feca4b5","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-0.0.0-canary-20260831120354.tgz","fileCount":35,"integrity":"sha512-XPJzuluLGWVSrMHmTaR6IzCk/gF5iiaaUhzFVmI2pmBwHEBIzP0iKyRRCxY96SBBc54PeqSRgG7y2rtkolgMAQ==","signatures":[{"sig":"MEUCIA46Y7Wv+6eA4Tl/brZM6X25r8ZIZUQrDx5rkIBY39NJAiEAiX0ExzMWJF1nKsx8oJEY/WDQjRW46Zkqk8GbeVMhNC4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":272210},"type":"module","engines":{"node":">=22"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"07aeae138bbedbeee095fc34c814cf47f9a1503f","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f7ba71ed-907d-4a77-85a6-eca460435aaf"}},"_npmVersion":"11.17.0","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"yargs":"^17.7.2","nanoid":"^6.0.1","workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-expiration":"^7.1.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^5.4.3","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^3.0.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_0.0.0-canary-20260831120354_1788177839411_0.16685811547639906","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-canary-20260831160231":{"name":"451-tools","version":"0.0.0-canary-20260831160231","keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"author":{"name":"Zamaneh Media"},"_id":"451-tools@0.0.0-canary-20260831160231","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"bin":{"451-tools":"cli.js"},"dist":{"shasum":"22708a15950721c316df980152bd15d4544ea94d","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-0.0.0-canary-20260831160231.tgz","fileCount":35,"integrity":"sha512-hAbDmiw0aSVtNkCrYjUF+0bDjS3RkipapKEqvx4C0+NMikz9PjeJvkjpJ2d3glZ5jmODBO0Gsc6VKkWUdoM2+A==","signatures":[{"sig":"MEUCIER/3BN8NGZRrRDLqKpRDfZ7SCTKELz/JiW2FKTmf+YqAiEAxRXmVpAXlyozv5tzNKCDpvHETLfl/glUhbCC/KJwcDU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":272210},"type":"module","engines":{"node":">=22"},"exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"09aa531e3946c045d3facef4828afd0fb7ff23f0","scripts":{"dev":"npm-run-all build:* && npm run watch","build":"npm-run-all build:* && vite build","clean":"rm -rf dist/*","watch":"run-p watch:*","predev":"npm run clean","release":"npm run build && changeset publish","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","prebuild":"npm run clean","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:vite":"vite build --watch","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","build:generate-types":"tsc","watch:generate-types":"tsc --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f7ba71ed-907d-4a77-85a6-eca460435aaf"}},"_npmVersion":"11.17.0","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"yargs":"^17.7.2","nanoid":"^6.0.1","workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-expiration":"^7.1.0","workbox-precaching":"^7.0.0","workbox-strategies":"^7.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^5.4.3","eslint":"^8.57.0","terser":"^5.29.1","cpy-cli":"^5.0.0","typescript":"^5.3.3","npm-run-all":"^4.1.5","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","html-minifier":"^4.0.0","@changesets/cli":"^3.0.1","vite-plugin-eslint":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/451-tools_0.0.0-canary-20260831160231_1788192158424_0.592347769655512","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-canary-20260908110706":{"name":"451-tools","version":"0.0.0-canary-20260908110706","description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","type":"module","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"bin":{"451-tools":"cli.js"},"scripts":{"clean":"rm -rf dist/*","prebuild":"npm run clean","build":"npm-run-all build:* && vite build","build:html":"html-minifier src/fallback-pages/offline-page/index.html > src/fallback-pages/offline-page/index.min.html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype","build:css":"cleancss src/fallback-pages/offline-page/main.css > src/fallback-pages/offline-page/main.min.css","build:js":"terser src/fallback-pages/offline-page/main.js > src/fallback-pages/offline-page/main.min.js","build:ui-components":"cpy 'src/ui-components/**/*' dist/ui-components/","build:generate-types":"tsc","watch":"run-p watch:*","watch:vite":"vite build --watch","watch:html":"chokidar 'src/fallback-pages/offline-page/index.html' --command 'npm run build:html'","watch:css":"chokidar 'src/fallback-pages/offline-page/main.css' --command 'npm run build:css'","watch:js":"chokidar 'src/fallback-pages/offline-page/main.js' --command 'npm run build:js'","watch:ui-components":"chokidar 'src/ui-components/**/*.*' --command 'npm run build:ui-components'","watch:generate-types":"tsc --watch","predev":"npm run clean","dev":"npm-run-all build:* && npm run watch","release":"npm run build && changeset publish"},"dependencies":{"nanoid":"^6.0.1","workbox-expiration":"^7.1.0","workbox-precaching":"^7.0.0","workbox-recipes":"^7.0.0","workbox-routing":"^7.0.0","workbox-strategies":"^7.0.0","yargs":"^17.7.2"},"devDependencies":{"@changesets/cli":"^3.0.1","chokidar-cli":"^3.0.0","clean-css-cli":"^5.6.3","cpy-cli":"^5.0.0","eslint":"^8.57.0","html-minifier":"^4.0.0","npm-run-all":"^4.1.5","terser":"^5.29.1","typescript":"^5.3.3","vite":"^5.4.3","vite-plugin-eslint":"^1.8.1"},"engines":{"node":">=22"},"author":{"name":"Zamaneh Media"},"keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"readmeFilename":"README.md","gitHead":"c82c3c148759a8c444dbd6fb7beb05d6caed9762","_id":"451-tools@0.0.0-canary-20260908110706","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-A40qDvVonX2yCF5t9OQm29HoclLLXLsC5RJfWInL9SkXKONr0orJHvy8jemKHCVcjH9FINvciFJJG0jaMLdnHw==","shasum":"bc6db253e16343a24b0b583f47a830ea066381de","tarball":"https://registry.npmjs.org/451-tools/-/451-tools-0.0.0-canary-20260908110706.tgz","fileCount":35,"unpackedSize":272210,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCTOmqMJF5feawGeUJzoP7LYA5nuE1efRMY2aMXfEJwPgIgFsjgZVl5pMTvfTV7lBwSMN2VLLog5TMfb/zkYIk+qlg="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f7ba71ed-907d-4a77-85a6-eca460435aaf"}},"directories":{},"maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/451-tools_0.0.0-canary-20260908110706_1788865632176_0.7036489568835096"},"_hasShrinkwrap":false}},"time":{"created":"2024-03-04T14:57:03.671Z","modified":"2026-09-08T11:07:12.531Z","1.0.0":"2024-03-04T14:57:03.881Z","1.0.1":"2024-03-04T15:29:55.123Z","1.0.2":"2024-03-26T15:27:58.593Z","1.0.3":"2024-04-09T08:32:01.418Z","1.1.0-alpha.0":"2024-05-08T12:29:59.543Z","1.1.0-alpha.1":"2024-05-28T12:41:05.631Z","1.1.0-alpha.2":"2024-05-29T20:01:47.721Z","2.0.0":"2024-06-21T14:25:47.595Z","2.0.1":"2024-06-24T14:14:40.448Z","2.0.2":"2024-07-01T08:53:12.017Z","2.0.3":"2024-07-01T10:12:34.675Z","2.1.0":"2024-12-03T12:41:33.487Z","2.1.1":"2024-12-03T12:57:35.743Z","2.1.2":"2024-12-09T15:11:17.747Z","2.2.0":"2025-05-12T11:43:41.027Z","0.0.0-canary-20260819131345":"2026-08-19T13:13:51.650Z","0.0.0-canary-20260826090838":"2026-08-26T09:08:44.012Z","0.0.0-canary-20260826111508":"2026-08-26T11:15:15.160Z","0.0.0-canary-20260828140853":"2026-08-28T14:08:59.603Z","0.0.0-canary-20260828143534":"2026-08-28T14:35:41.249Z","0.0.0-canary-20260831110010":"2026-08-31T11:00:15.803Z","0.0.0-canary-20260831120354":"2026-08-31T12:03:59.636Z","0.0.0-canary-20260831160231":"2026-08-31T16:02:38.614Z","0.0.0-canary-20260908110706":"2026-09-08T11:07:12.352Z"},"author":{"name":"Zamaneh Media"},"keywords":["service workers","PWA","offline fallback","mirroring","censorship"],"description":"Censorship resilient and distributed publishing: informed by the needs of publishers and their audiences, More Mirrors implements a set of offline fallback strategies for censorship resilient websites.","maintainers":[{"name":"article19","email":"mail@marceloomens.com"}],"readme":"","readmeFilename":""}