{"_id":"extension-from-store","_rev":"7-5c2a0bddb0260a92bc1d5dc6b71ed823","name":"extension-from-store","dist-tags":{"latest":"0.2.5"},"versions":{"0.1.1":{"name":"extension-from-store","version":"0.1.1","keywords":["browser-extension","chrome-web-store","edge-addons","firefox-amo","download","extract","cli","extension","pull","fetch","store","extension-store","webstore","addon","addons","download-extension","extension-download"],"author":{"url":"https://cezaraugusto.net","name":"Cezar Augusto","email":"boss@cezaraugusto.net"},"license":"MIT","_id":"extension-from-store@0.1.1","maintainers":[{"name":"cezaraugusto","email":"boss@cezaraugusto.net"}],"homepage":"https://www.npmjs.com/package/extension-from-store","bugs":{"url":"https://github.com/cezaraugusto/extension-from-store/issues"},"bin":{"extension-from-store":"bin.cjs"},"dist":{"shasum":"3a6b984e41ba4edac584dba53b94e803a18c8eae","tarball":"https://registry.npmjs.org/extension-from-store/-/extension-from-store-0.1.1.tgz","fileCount":17,"integrity":"sha512-3QuIgV0shHVrd9J1/M/WCvqAsrbC0nJnnbYkrNTjnQ8bvC38S5mRAKBxDPY+ideLP+tFD5y2nC0K4Or+kBHo/g==","signatures":[{"sig":"MEUCIDqvNhHvQGpdW+JcuWIHXf9qJzYo7IZf/GnZHg93rgfwAiEAqvMSXcassuk12pxJKCIlzxgNqBBVaTMlrCvekvAKW0U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/extension-from-store@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56334},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=16"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"ecff280f0c13b66f61c852cf1981183d8f475990","scripts":{"dev":"rslib build --watch","test":"vitest run","build":"rslib build","check":"pnpm dlx @biomejs/biome@1.9.4 check --write","format":"pnpm dlx @biomejs/biome@1.9.4 format --write","pretest":"npm run build","test:live":"RUN_LIVE_FETCH=1 vitest run tests/live-fetch.test.ts","prepublishOnly":"npm run build","publish:provenance":"np patch --no-tests --any-branch --yolo --message 'release: %s' --provenance"},"_npmUser":{"name":"cezaraugusto","email":"boss@cezaraugusto.net"},"repository":{"url":"git+https://github.com/cezaraugusto/extension-from-store.git","type":"git"},"_npmVersion":"10.8.2","description":"Download public browser extensions from official stores","directories":{},"_nodeVersion":"20.20.0","dependencies":{"extract-zip":"^2.0.1"},"engineStrict":false,"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@9.9.0+sha512.60c18acd138bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1","devDependencies":{"vitest":"^3.1.3","typescript":"^5.8.3","@rslib/core":"^0.6.9","@types/node":"^22.8.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/extension-from-store_0.1.1_1770502722557_0.881714025328054","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"extension-from-store","version":"0.2.0","keywords":["browser-extension","chrome-web-store","edge-addons","firefox-amo","download","extract","cli","extension","pull","fetch","store","extension-store","webstore","addon","addons","download-extension","extension-download"],"author":{"url":"https://cezaraugusto.net","name":"Cezar Augusto","email":"boss@cezaraugusto.net"},"license":"MIT","_id":"extension-from-store@0.2.0","maintainers":[{"name":"cezaraugusto","email":"boss@cezaraugusto.net"}],"homepage":"https://www.npmjs.com/package/extension-from-store","bugs":{"url":"https://github.com/cezaraugusto/extension-from-store/issues"},"bin":{"extension-from-store":"bin.cjs"},"dist":{"shasum":"bbc96f89eb248d6ce1d516eef5b5aeb91fe730ba","tarball":"https://registry.npmjs.org/extension-from-store/-/extension-from-store-0.2.0.tgz","fileCount":28,"integrity":"sha512-kyRZta/CrPfW9Ycb3B9/+08fVrFbYI3C1v+MabO6MZQJnvu19HfIzM6uoo4n1ixGI4Rd2xvdqi5v1QHKgYaOfg==","signatures":[{"sig":"MEQCIEiwO9oSTTW53cIxUaiEQsn3kw+T68e3V2e+Sw5Vyvt1AiB2ElZVhvsabADC2+ZOhB1oKuAEQkHBkjoQJRRVmiEcNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/extension-from-store@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":117307},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=16"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.js","require":"./dist/core.cjs"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js","require":"./dist/browser.cjs"}},"gitHead":"3e4bd53ecfee68f6ed038d4c963a34b5fe11d216","scripts":{"dev":"rslib build --watch","test":"vitest run","build":"rslib build","check":"pnpm dlx @biomejs/biome@1.9.4 check --write","format":"pnpm dlx @biomejs/biome@1.9.4 format --write","pretest":"npm run build","test:live":"RUN_LIVE_FETCH=1 vitest run tests/live-fetch.test.ts","typecheck":"tsc --noEmit","prepublishOnly":"npm run build","publish:provenance":"np patch --no-tests --any-branch --yolo --message 'release: %s' --provenance"},"_npmUser":{"name":"cezaraugusto","email":"boss@cezaraugusto.net"},"repository":{"url":"git+https://github.com/cezaraugusto/extension-from-store.git","type":"git"},"_npmVersion":"10.8.2","description":"Download public browser extensions from official stores","directories":{},"_nodeVersion":"20.20.1","dependencies":{"fflate":"^0.8.2","extract-zip":"^2.0.1"},"engineStrict":false,"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@9.9.0+sha512.60c18acd138bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1","devDependencies":{"vitest":"^3.1.3","typescript":"^5.8.3","@rslib/core":"^0.6.9","@types/node":"^22.8.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/extension-from-store_0.2.0_1773813026941_0.5420772059294217","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"extension-from-store","version":"0.2.1","keywords":["browser-extension","chrome-web-store","edge-addons","firefox-amo","download","extract","cli","extension","pull","fetch","store","extension-store","webstore","addon","addons","download-extension","extension-download"],"author":{"url":"https://cezaraugusto.net","name":"Cezar Augusto","email":"boss@cezaraugusto.net"},"license":"MIT","_id":"extension-from-store@0.2.1","maintainers":[{"name":"cezaraugusto","email":"boss@cezaraugusto.net"}],"homepage":"https://www.npmjs.com/package/extension-from-store","bugs":{"url":"https://github.com/cezaraugusto/extension-from-store/issues"},"bin":{"extension-from-store":"bin.cjs"},"dist":{"shasum":"0f4101907cdbad19ffebde2b7e873d44df836ba0","tarball":"https://registry.npmjs.org/extension-from-store/-/extension-from-store-0.2.1.tgz","fileCount":28,"integrity":"sha512-ZDaYx4Z8JsQz7yLwWTCzubJVbi761IhS8ScGzuBZb7vopgh6yF0hkjFDA/MCVxQ0fVyp4pYAN8KSrvJt5E9jOQ==","signatures":[{"sig":"MEQCICue/uR35U4dm0NDYZQ+pibgYYbYaggMApQaXf8g8E9WAiBM00FgICiorro9X7pX89HawBz0nQwkysowreaqUuBo5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117892},"main":"./dist/index.cjs","pnpm":{"overrides":{"tmp":">=0.2.6","vite":">=7.3.5","rollup":">=4.59.0","vitest":">=3.2.6","esbuild":">=0.25.0","js-yaml":">=4.2.0","postcss":">=8.5.10","minimatch":">=9.0.7","picomatch":">=4.0.4","brace-expansion":">=2.0.2"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=16"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.js","require":"./dist/core.cjs"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js","require":"./dist/browser.cjs"}},"gitHead":"85b0c99c6e10216ddffdf50fa9d6942cbc73a1ad","scripts":{"dev":"rslib build --watch","lint":"eslint .","test":"vitest run","build":"rslib build","pretest":"npm run build","lint:fix":"eslint . --fix","test:live":"RUN_LIVE_FETCH=1 vitest run tests/live-fetch.test.ts","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"cezaraugusto","email":"boss@cezaraugusto.net"},"repository":{"url":"git+https://github.com/cezaraugusto/extension-from-store.git","type":"git"},"_npmVersion":"11.11.0","description":"Download public browser extensions from official stores","directories":{},"sideEffects":false,"_nodeVersion":"23.8.0","dependencies":{"fflate":"^0.8.2","extract-zip":"^2.0.1"},"engineStrict":false,"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@9.9.0+sha512.60c18acd138bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1","devDependencies":{"eslint":"^10.5.0","vitest":"^3.1.3","typescript":"^5.8.3","@rslib/core":"^0.6.9","@types/node":"^22.8.1","eslint-config-auditor":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/extension-from-store_0.2.1_1781812789089_0.6212952996073138","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"extension-from-store","version":"0.2.2","keywords":["browser-extension","chrome-web-store","edge-addons","firefox-amo","download","extract","cli","extension","pull","fetch","store","extension-store","webstore","addon","addons","download-extension","extension-download"],"author":{"url":"https://cezaraugusto.net","name":"Cezar Augusto","email":"boss@cezaraugusto.net"},"license":"MIT","_id":"extension-from-store@0.2.2","maintainers":[{"name":"cezaraugusto","email":"boss@cezaraugusto.net"}],"homepage":"https://www.npmjs.com/package/extension-from-store","bugs":{"url":"https://github.com/cezaraugusto/extension-from-store/issues"},"bin":{"extension-from-store":"bin.cjs"},"dist":{"shasum":"afb76af8b0a943a8b29f40e0f80000bae9d06f91","tarball":"https://registry.npmjs.org/extension-from-store/-/extension-from-store-0.2.2.tgz","fileCount":29,"integrity":"sha512-um7vs/QH5XgA49URJRPi/ZSfvGNtGZdwLgjBBo9LKCpRooj1b4u98b0g822GGR4yWeyz4e3Jg+IgttfYJvQCaA==","signatures":[{"sig":"MEUCIDhIK+xFM72l0/VOfuKy2ylg1N1H0n1vCuCph+TY76kQAiEAi35CH8igavIT0f+YKRekS6UKKcWKfJh2A/H7eWjbgXY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93830},"main":"./dist/index.cjs","pnpm":{"overrides":{"tmp":">=0.2.6","vite":">=7.3.5","rollup":">=4.59.0","vitest":">=3.2.6","esbuild":">=0.25.0","js-yaml":">=4.2.0","postcss":">=8.5.10","minimatch":">=9.0.7","picomatch":">=4.0.4","brace-expansion":">=2.0.2"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=16"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.js","require":"./dist/core.cjs"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js","require":"./dist/browser.cjs"}},"gitHead":"c358d473b7e5566d1aadae171732abe9c96e706d","scripts":{"dev":"rslib build --watch","lint":"eslint .","test":"vitest run","build":"rslib build","pretest":"npm run build","lint:fix":"eslint . --fix","test:live":"RUN_LIVE_FETCH=1 vitest run tests/live-fetch.test.ts","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"cezaraugusto","email":"boss@cezaraugusto.net"},"repository":{"url":"git+https://github.com/cezaraugusto/extension-from-store.git","type":"git"},"_npmVersion":"11.11.0","description":"Download public browser extensions from official stores","directories":{},"sideEffects":false,"_nodeVersion":"23.8.0","dependencies":{"fflate":"^0.8.3","extract-zip":"^2.0.1"},"engineStrict":false,"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@9.9.0+sha512.60c18acd138bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1","devDependencies":{"eslint":"^10.5.0","vitest":"^4.1.9","typescript":"^6.0.3","@rslib/core":"^0.23.0","@types/node":"^25.9.3","eslint-config-auditor":"^2.3.1"},"_npmOperationalInternal":{"tmp":"tmp/extension-from-store_0.2.2_1781819535526_0.17080453306306698","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"extension-from-store","version":"0.2.3","keywords":["browser-extension","chrome-web-store","edge-addons","firefox-amo","download","extract","cli","extension","pull","fetch","store","extension-store","webstore","addon","addons","download-extension","extension-download"],"author":{"url":"https://cezaraugusto.net","name":"Cezar Augusto","email":"boss@cezaraugusto.net"},"license":"MIT","_id":"extension-from-store@0.2.3","maintainers":[{"name":"cezaraugusto","email":"boss@cezaraugusto.net"}],"homepage":"https://www.npmjs.com/package/extension-from-store","bugs":{"url":"https://github.com/cezaraugusto/extension-from-store/issues"},"bin":{"extension-from-store":"bin.cjs"},"dist":{"shasum":"9b9b9ce9c6505ed19513c860e917797fde75a6d7","tarball":"https://registry.npmjs.org/extension-from-store/-/extension-from-store-0.2.3.tgz","fileCount":29,"integrity":"sha512-ec/bvQC5i3q8/F9eDbPl7J0Xju0zRW0lYfhl7d3NzK1IVRRHIzB4PeMgaNM2YkZZvZspj+cIxRznj61kJZmvOQ==","signatures":[{"sig":"MEQCIGJNsXe4/UB2fackS9P458wUTAKdmGqKrPkBkxiiliaSAiBe8bpipOWnAroumlMne0DyqotRsVGBIzOk9BcbWXq97g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/extension-from-store@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93943},"main":"./dist/index.cjs","pnpm":{"overrides":{"tmp":">=0.2.6","vite":">=7.3.5","rollup":">=4.59.0","vitest":">=3.2.6","esbuild":">=0.25.0","js-yaml":">=4.2.0","postcss":">=8.5.10","minimatch":">=9.0.7","picomatch":">=4.0.4","brace-expansion":">=2.0.2"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=16"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.js","require":"./dist/core.cjs"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js","require":"./dist/browser.cjs"}},"gitHead":"b1bcbfa06720dfd9df27e2215634051a83b4345d","scripts":{"dev":"rslib build --watch","lint":"eslint .","test":"vitest run","build":"rslib build","pretest":"npm run build","lint:fix":"eslint . --fix","test:live":"RUN_LIVE_FETCH=1 vitest run tests/live-fetch.test.ts","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"cezaraugusto","email":"boss@cezaraugusto.net"},"repository":{"url":"git+https://github.com/cezaraugusto/extension-from-store.git","type":"git"},"_npmVersion":"10.9.8","description":"Download public browser extensions from official stores","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"fflate":"^0.8.3","extract-zip":"^2.0.1"},"engineStrict":false,"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@9.9.0+sha512.60c18acd138bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1","devDependencies":{"eslint":"^10.5.0","vitest":"^4.1.9","typescript":"^6.0.3","@rslib/core":"^0.23.0","@types/node":"^25.9.3","eslint-config-auditor":"^2.3.1"},"_npmOperationalInternal":{"tmp":"tmp/extension-from-store_0.2.3_1782143149879_0.7668818829694735","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"extension-from-store","version":"0.2.4","keywords":["browser-extension","chrome-web-store","edge-addons","firefox-amo","download","extract","cli","extension","pull","fetch","store","extension-store","webstore","addon","addons","download-extension","extension-download"],"author":{"url":"https://cezaraugusto.net","name":"Cezar Augusto","email":"boss@cezaraugusto.net"},"license":"MIT","_id":"extension-from-store@0.2.4","maintainers":[{"name":"cezaraugusto","email":"boss@cezaraugusto.net"}],"homepage":"https://www.npmjs.com/package/extension-from-store","bugs":{"url":"https://github.com/cezaraugusto/extension-from-store/issues"},"bin":{"extension-from-store":"bin.cjs"},"dist":{"shasum":"37581cd17444c7d7d061d985c02df448995414dd","tarball":"https://registry.npmjs.org/extension-from-store/-/extension-from-store-0.2.4.tgz","fileCount":29,"integrity":"sha512-EkQ4H5dP2KzkycAHDYRuBsqYQcmKXFbk4883oxyupZX5Yo8hwYVvHznsbdW0+gKAhRsgSXGG7NsTZNUaOUUFuw==","signatures":[{"sig":"MEYCIQCDF3bFEDeE7fGnPpGoa/WMudLRssIYOJpgFkR9Z7JNsQIhAM8nK0WEQ+1N2WnwJIEFCsTFsFtxp744pu3DVvgVldj1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/extension-from-store@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96944},"main":"./dist/index.cjs","pnpm":{"overrides":{"tmp":">=0.2.6","vite":">=7.3.5","rollup":">=4.59.0","vitest":">=3.2.6","esbuild":">=0.25.0","js-yaml":">=4.2.0","postcss":">=8.5.10","minimatch":">=9.0.7","picomatch":">=4.0.4","brace-expansion":">=2.0.2"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=16"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.js","require":"./dist/core.cjs"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js","require":"./dist/browser.cjs"}},"gitHead":"23c5490e3e79012d007c75fd3236b0bec2b59113","scripts":{"dev":"rslib build --watch","lint":"eslint .","test":"vitest run","build":"rslib build","pretest":"npm run build","lint:fix":"eslint . --fix","test:live":"RUN_LIVE_FETCH=1 vitest run tests/live-fetch.test.ts","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4c247705-3a81-4151-9400-45a5afaa6918"}},"repository":{"url":"git+https://github.com/cezaraugusto/extension-from-store.git","type":"git"},"_npmVersion":"12.0.2","description":"Download public browser extensions from official stores","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"fflate":"^0.8.3","extract-zip":"^2.0.1"},"engineStrict":false,"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@9.9.0+sha512.60c18acd138bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1","devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@rslib/core":"^0.23.2","@types/node":"^26.1.1","eslint-config-auditor":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/extension-from-store_0.2.4_1785679146519_0.824411880245062","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"license":"MIT","repository":{"type":"git","url":"git+https://github.com/cezaraugusto/extension-from-store.git"},"engines":{"node":">=16"},"engineStrict":false,"name":"extension-from-store","version":"0.2.5","description":"Download public browser extensions from official stores","homepage":"https://www.npmjs.com/package/extension-from-store","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js","require":"./dist/browser.cjs"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.js","require":"./dist/core.cjs"}},"main":"./dist/index.cjs","types":"./dist/index.d.ts","bin":{"extension-from-store":"bin.cjs"},"scripts":{"build":"rslib build","typecheck":"tsc --noEmit","dev":"rslib build --watch","pretest":"npm run build","test":"vitest run","test:live":"RUN_LIVE_FETCH=1 vitest run tests/live-fetch.test.ts","prepublishOnly":"npm run build","lint":"eslint .","lint:fix":"eslint . --fix"},"publishConfig":{"provenance":true},"author":{"name":"Cezar Augusto","email":"boss@cezaraugusto.net","url":"https://cezaraugusto.net"},"keywords":["browser-extension","chrome-web-store","edge-addons","firefox-amo","download","extract","cli","extension","pull","fetch","store","extension-store","webstore","addon","addons","download-extension","extension-download"],"dependencies":{"fflate":"^0.8.3"},"pnpm":{"overrides":{"vite":">=7.3.5","vitest":">=3.2.6","rollup":">=4.59.0","minimatch":">=9.0.7","picomatch":">=4.0.4","postcss":">=8.5.10","js-yaml":">=4.2.0","brace-expansion":">=2.0.2","tmp":">=0.2.6","esbuild":">=0.25.0"}},"devDependencies":{"@rslib/core":"^0.23.2","@types/node":"^26.1.1","eslint":"^10.8.0","eslint-config-auditor":"^3.0.0","typescript":"^6.0.3","vitest":"^4.1.10"},"packageManager":"pnpm@9.9.0+sha512.60c18acd138bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1","bugs":{"url":"https://github.com/cezaraugusto/extension-from-store/issues"},"sideEffects":false,"gitHead":"f2e28d0c92d1b5fe39d751f797f8675d9df2b3f0","_id":"extension-from-store@0.2.5","_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-Bu2zR1rLpA5l6GBEiORttEdIR0AIjC64yVM+8J07FAWais2xfx6DftMbroZyzLppdygbT3DmTrclTZvY9AdESg==","shasum":"3b98e459b6d24b562a64de1cfdd0ebc8ff7b3785","tarball":"https://registry.npmjs.org/extension-from-store/-/extension-from-store-0.2.5.tgz","fileCount":29,"unpackedSize":98539,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/extension-from-store@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIC/KhO2wbiHUU1c7BGufyd4XeQTmyjmchclikI+ixWFfAiEA6Sb3ItH1ne6PCTwCpN5/wtshmGbRHsjrlxB3bCVj36g="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4c247705-3a81-4151-9400-45a5afaa6918"}},"directories":{},"maintainers":[{"name":"cezaraugusto","email":"boss@cezaraugusto.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/extension-from-store_0.2.5_1786964827797_0.6016801532953451"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-07T22:18:42.487Z","modified":"2026-08-17T11:07:08.318Z","0.1.1":"2026-02-07T22:18:42.699Z","0.2.0":"2026-03-18T05:50:27.124Z","0.2.1":"2026-06-18T19:59:49.245Z","0.2.2":"2026-06-18T21:52:15.678Z","0.2.3":"2026-06-22T15:45:50.024Z","0.2.4":"2026-08-02T13:59:06.688Z","0.2.5":"2026-08-17T11:07:07.958Z"},"bugs":{"url":"https://github.com/cezaraugusto/extension-from-store/issues"},"author":{"name":"Cezar Augusto","email":"boss@cezaraugusto.net","url":"https://cezaraugusto.net"},"license":"MIT","homepage":"https://www.npmjs.com/package/extension-from-store","keywords":["browser-extension","chrome-web-store","edge-addons","firefox-amo","download","extract","cli","extension","pull","fetch","store","extension-store","webstore","addon","addons","download-extension","extension-download"],"repository":{"type":"git","url":"git+https://github.com/cezaraugusto/extension-from-store.git"},"description":"Download public browser extensions from official stores","maintainers":[{"name":"cezaraugusto","email":"boss@cezaraugusto.net"}],"readme":"[npm-version-image]: https://img.shields.io/npm/v/extension-from-store.svg?color=0971fe\n[npm-version-url]: https://www.npmjs.com/package/extension-from-store\n[npm-downloads-image]: https://img.shields.io/npm/dm/extension-from-store.svg?color=2ecc40\n[npm-downloads-url]: https://www.npmjs.com/package/extension-from-store\n[action-image]: https://github.com/cezaraugusto/extension-from-store/actions/workflows/ci.yml/badge.svg?branch=main\n[action-url]: https://github.com/cezaraugusto/extension-from-store/actions\n[provenance-image]: https://img.shields.io/badge/provenance-verified-0971fe?logo=npm&logoColor=white\n[provenance-url]: https://www.npmjs.com/package/extension-from-store\n\n> Download public browser extensions from official stores\n\n# extension-from-store [![Version][npm-version-image]][npm-version-url] [![Downloads][npm-downloads-image]][npm-downloads-url] [![workflow][action-image]][action-url] [![provenance][provenance-image]][provenance-url]\n\n- Chrome Web Store, Microsoft Edge Add-ons, Firefox AMO\n- Promise-based API\n- Node.js + CLI support\n\n## Install\n\n```bash\nnpm i extension-from-store\n```\n\n## Usage\n\n**Via Node.js:**\n\n```ts\nimport {fetchExtensionFromStore} from 'extension-from-store'\n\nconst url =\n  'https://chromewebstore.google.com/detail/adblock-plus-free-ad-bloc/cfhdojbkjhnklbpkdaibdccddilifddb'\n\nconst options = {\n  outDir: './extensions',\n  userAgent: 'my-tool/1.0.0',\n  extract: true,\n  logger: {\n    onInfo: (message) => console.log(message),\n    onWarn: (message) => console.warn(message),\n    onError: (message, error) => console.error(message, error)\n  }\n}\n\nawait fetchExtensionFromStore(url, options)\n```\n\n**Via browser entrypoint:**\n\n```ts\nimport {fetchExtensionFromStoreBrowser} from 'extension-from-store/browser'\n\nconst result = await fetchExtensionFromStoreBrowser(\n  'https://chromewebstore.google.com/detail/adblock-plus-free-ad-bloc/cfhdojbkjhnklbpkdaibdccddilifddb',\n)\n\nconsole.log(result.meta)\nconsole.log(result.files.find((file) => file.path === 'manifest.json')?.text)\n```\n\nThe browser entry keeps everything in memory and returns archive bytes, extracted files, and parsed manifest metadata. It does not write to disk.\n\n**Via core helpers:**\n\n```ts\nimport {\n  detectStoreFromUrl,\n  extractChromeIdFromUrl,\n  getChromeDownloadUrl,\n  parseManifestInfo,\n  stripCrxHeader,\n} from 'extension-from-store/core'\n```\n\n**Via CLI (default command is `fetch`):**\n\n```bash\nnpx extension-from-store --url \"<store-item-url>\"\nnpx extension-from-store --url \"<store-item-url>\" --out ./my-exts\nnpx extension-from-store --url \"<store-item-url>\" --version 2.1.0 --extract\nnpx extension-from-store --url \"<store-item-url>\" --extract\n```\n\nThe store is detected from the URL.\n\n## Output\n\n```\n<out>/\n  <identifier>@<resolved-version>/\n    extension.meta.json\n    ...\n```\n\nIf the target folder already exists, the operation fails.\n\nBy default, extension-from-store downloads the archive without extraction. When you pass `--extract`, it unpacks the archive and writes metadata.\n\nWhen extraction is disabled, the archive is saved as:\n\n```\n<out>/<identifier>[@<version>].crx\n<out>/<identifier>[@<version>].xpi\n```\n\n## Extraction Rules\n\n- `.crx`: strip CRX header, extract ZIP payload\n- `.xpi`: treat as ZIP\n- No content normalization, no rewriting, no formatting\n- Unix permission bits from the archive are not preserved: directories come\n  out `0755` and files come out `0644` (`0755` when the archive marked them\n  executable). Some store packages ship entries with modes like `0204` that\n  the owner cannot read back after extraction; browsers ignore archive modes\n  when installing, so this package does too.\n\n## When the store refuses to serve an extension\n\nStores sometimes decline to serve a listed extension for download. The Chrome\nWeb Store update endpoint answers `HTTP 204 No Content` instead of a CRX when\nan extension is blocked, for example when its update check reports\n`_malware=\"true\"` (observed live with ModHeader,\n`idgpnmonknjnojddfkpgkljpfnnfcklj`, on 2026-08-02). This is a store-side\nrefusal, not a truncated download: real Chrome clients get the same empty\nresponse. extension-from-store surfaces it as a `NotPublic` error that names\nthe URL that returned no content.\n\n## `extension.meta.json`\n\n```json\n{\n  \"store\": \"chrome | edge | firefox\",\n  \"identifier\": \"<identifier derived from the URL>\",\n  \"version\": \"<resolved version>\",\n  \"manifestVersion\": 2 | 3\n}\n```\n\nThis file is written by extension-from-store to the same folder as the extracted files.\n\n## CLI Flags\n\n| Flag | Required | Description |\n| --- | --- | --- |\n| `--url <string>` | Yes | Extension URL |\n| `--out <path>` | No | Output directory (default: `./extensions`) |\n| `--version <string>` | No | Version hint |\n| `--user-agent <string>` | No | Override user agent |\n| `--extract` | No | Extract after download (default: download only) |\n| `--quiet` | No | Suppress info logs |\n| `--verbose` | No | Emit verbose info logs |\n| `--json` | No | JSON lines output to stdout |\n\n\n## Logging\n\nLibrary logging is opt-in via the `logger` hooks. The library never writes directly to stdout/stderr.\n\n## Exit Codes\n\n- `0` success\n- `1` invalid input\n- `2` unsupported store\n- `3` not found / not public\n- `4` download failed\n- `5` extraction failed\n- `6` filesystem conflict\n- `7` store incompatibility\n\n## Related projects\n\n* [browser-extension-manifest-fields](https://github.com/cezaraugusto/browser-extension-manifest-fields)\n* [browser-extension-capabilities](https://github.com/cezaraugusto/browser-extension-capabilities)\n* [browser-extension-compat-data](https://github.com/cezaraugusto/browser-extension-compat-data)\n* [chrome-extension-manifest-json-schema](https://github.com/cezaraugusto/chrome-extension-manifest-json-schema)\n* [parse5-asset-patcher](https://github.com/cezaraugusto/parse5-asset-patcher)\n\n## License\n\nMIT (c) Cezar Augusto.\n","readmeFilename":"README.md"}