{"_id":"opera-location2","_rev":"7-429bc72f94fad6470c6f4856209b115b","name":"opera-location2","dist-tags":{"latest":"2.1.1"},"versions":{"1.0.0":{"name":"opera-location2","version":"1.0.0","keywords":["opera","browser","spawn","location","process","guesstimate"],"author":{"url":"https://cezaraugusto.net","name":"Cezar Augusto","email":"boss@cezaraugusto.net"},"license":"MIT","_id":"opera-location2@1.0.0","maintainers":[{"name":"cezaraugusto","email":"boss@cezaraugusto.net"}],"homepage":"https://www.npmjs.com/package/opera-location2","bugs":{"url":"https://github.com/cezaraugusto/opera-location2/issues"},"bin":{"opera-location2":"bin.js"},"dist":{"shasum":"9a2128f57bb11225484da47b35e1fe4678cdebc0","tarball":"https://registry.npmjs.org/opera-location2/-/opera-location2-1.0.0.tgz","fileCount":10,"integrity":"sha512-gvXnP11kYXP5MkKw/xQ6Y0CsgwJSD01zGHcUdAoPUs4H/lWU7HDnjiNxhH8VizqPVaIykhxwkHpUjjMuG7j7bQ==","signatures":[{"sig":"MEYCIQC6SeM7J0uX16m9mHPyBvOPSSc+/eY7Ji5MJiCbPrRXcwIhAKB8+8HsufX4auvyerTxbiieQ8GWa3P4JMyMwRPuqv6n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opera-location2@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17312},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"9713bf6b24890e945edc271ae6b3af12d79282b3","scripts":{"dev":"rslib build --watch","test":"vitest run","build":"rslib build","check":"biome check --write","format":"biome format --write","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/opera-location2.git","type":"git"},"_npmVersion":"10.8.2","description":"Approximates the current location of the Opera browser across platforms.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"which":"^2.0.2","userhome":"^1.0.0"},"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","@types/which":"^3.0.4","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/opera-location2_1.0.0_1761974095241_0.9126361427064336","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"opera-location2","version":"2.0.0","keywords":["opera","browser","spawn","location","process","guesstimate"],"author":{"url":"https://cezaraugusto.net","name":"Cezar Augusto","email":"boss@cezaraugusto.net"},"license":"MIT","_id":"opera-location2@2.0.0","maintainers":[{"name":"cezaraugusto","email":"boss@cezaraugusto.net"}],"homepage":"https://www.npmjs.com/package/opera-location2","bugs":{"url":"https://github.com/cezaraugusto/opera-location2/issues"},"bin":{"opera-location2":"bin.cjs"},"dist":{"shasum":"e596686d99e827029cc53531840a19484989bc55","tarball":"https://registry.npmjs.org/opera-location2/-/opera-location2-2.0.0.tgz","fileCount":10,"integrity":"sha512-QO9V6pP9A/Clvvl8GgwPH4DdlRz7UAtqg/30xw8NTkSaza6djOznlRdKe4YB6rRfIh/7y/qYOnGzkVbrg5HWEA==","signatures":[{"sig":"MEUCIQC5dudfPxs1CcQKn0vjbqzmMIJSUsZ6VA7N11/haoj4UwIgeOxGbw9eka4el8Z1xeWBNSv0cde95wg1MjrKBkma14U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opera-location2@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29550},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"4af2d672324bbf735f5da97a1f38131934cfb0dd","scripts":{"dev":"rslib build --watch","test":"vitest run","build":"rslib build","check":"biome check --write","format":"biome format --write","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/opera-location2.git","type":"git"},"_npmVersion":"10.8.2","description":"Approximates the current location of the Opera browser across platforms.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"which":"^2.0.2"},"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","@types/which":"^3.0.4","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/opera-location2_2.0.0_1768401240615_0.6714101544728837","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"opera-location2","version":"2.0.1","keywords":["opera","browser","spawn","location","process","guesstimate"],"author":{"url":"https://cezaraugusto.net","name":"Cezar Augusto","email":"boss@cezaraugusto.net"},"license":"MIT","_id":"opera-location2@2.0.1","maintainers":[{"name":"cezaraugusto","email":"boss@cezaraugusto.net"}],"homepage":"https://www.npmjs.com/package/opera-location2","bugs":{"url":"https://github.com/cezaraugusto/opera-location2/issues"},"bin":{"opera-location2":"bin.cjs"},"dist":{"shasum":"af2f6016138ed56fb088fec76184d2d06bbfb066","tarball":"https://registry.npmjs.org/opera-location2/-/opera-location2-2.0.1.tgz","fileCount":10,"integrity":"sha512-x/tN3YmlVJC8eCeEcf2pn0vTZ6U3dhB5N/FK23JQHPvmVymG9EegrYMGSAouFwHf86aClOLx4XSw5/v03msA0w==","signatures":[{"sig":"MEUCIFnQujQX0vizU7iKZYd8bN470pwJKYqcIoq9AN1WfKOKAiEAsFcL+kE1Dqfqu1WriyYXcGPeHwGG6SzM3xRQDfBDDuA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29869},"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":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"270d8e7c54f952df7bf69e2a655180e7e86523a9","scripts":{"dev":"rslib build --watch","lint":"eslint .","test":"vitest run","build":"rslib build","lint:fix":"eslint . --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cezaraugusto","email":"boss@cezaraugusto.net"},"repository":{"url":"git+https://github.com/cezaraugusto/opera-location2.git","type":"git"},"_npmVersion":"11.11.0","description":"Approximates the current location of the Opera browser across platforms.","directories":{},"sideEffects":false,"_nodeVersion":"23.8.0","dependencies":{"which":"^2.0.2"},"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","@types/which":"^3.0.4","eslint-config-auditor":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/opera-location2_2.0.1_1781812743257_0.27429050873198446","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"opera-location2","version":"2.0.2","keywords":["opera","browser","spawn","location","process","guesstimate"],"author":{"url":"https://cezaraugusto.net","name":"Cezar Augusto","email":"boss@cezaraugusto.net"},"license":"MIT","_id":"opera-location2@2.0.2","maintainers":[{"name":"cezaraugusto","email":"boss@cezaraugusto.net"}],"homepage":"https://www.npmjs.com/package/opera-location2","bugs":{"url":"https://github.com/cezaraugusto/opera-location2/issues"},"bin":{"opera-location2":"bin.cjs"},"dist":{"shasum":"3f44cdc8c9f4cc25ce8b5cb9838da63a6dda9358","tarball":"https://registry.npmjs.org/opera-location2/-/opera-location2-2.0.2.tgz","fileCount":10,"integrity":"sha512-GuEl3/D2d1c2xKc61r1eo6EmkdT7z5yI4o7uCRfH1ud9GtePcG7VsKgjjHNl/GqprofpLNvocXwwsQlv1/BUGA==","signatures":[{"sig":"MEYCIQCiqv3hgI6YDSApqHpfBD/CEFDu+9ISr73DmYjyCAlERQIhAMT/8LE+EaSZ9uPtLbjbQPG+ybxVTSb7uuRXh5SmUQKR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28542},"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":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"7e918544d35dc2c962f5067e77e02c8f0f623165","scripts":{"dev":"rslib build --watch","lint":"eslint .","test":"vitest run","build":"rslib build","lint:fix":"eslint . --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cezaraugusto","email":"boss@cezaraugusto.net"},"repository":{"url":"git+https://github.com/cezaraugusto/opera-location2.git","type":"git"},"_npmVersion":"11.11.0","description":"Approximates the current location of the Opera browser across platforms.","directories":{},"sideEffects":false,"_nodeVersion":"23.8.0","dependencies":{"which":"^7.0.0"},"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","@types/which":"^3.0.4","eslint-config-auditor":"^2.3.1"},"_npmOperationalInternal":{"tmp":"tmp/opera-location2_2.0.2_1781819508221_0.40466558422018717","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"opera-location2","version":"2.0.3","keywords":["opera","browser","spawn","location","process","guesstimate"],"author":{"url":"https://cezaraugusto.net","name":"Cezar Augusto","email":"boss@cezaraugusto.net"},"license":"MIT","_id":"opera-location2@2.0.3","maintainers":[{"name":"cezaraugusto","email":"boss@cezaraugusto.net"}],"homepage":"https://www.npmjs.com/package/opera-location2","bugs":{"url":"https://github.com/cezaraugusto/opera-location2/issues"},"bin":{"opera-location2":"bin.cjs"},"dist":{"shasum":"bb48ab476d3108764780f11a6161bf9f917f86fa","tarball":"https://registry.npmjs.org/opera-location2/-/opera-location2-2.0.3.tgz","fileCount":10,"integrity":"sha512-Wv+KWt3H/jzI4dHGeXHHWnyyEhrL2O6EoielcxAwvioaKwS039z0MUW8Ni1rUq5fcGVTchZCMpHjb8aeyUZymA==","signatures":[{"sig":"MEUCIQCNCkgVYfEnuxPSEpZZorPyDHqIOujzYQR5c8VJ7U/n6gIgZz6to4R0YmtGHt/rg25EefKXZ9rl8a1va8rw4rMeSUw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opera-location2@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29036},"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":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"2e095f10905f6471ff35429b4a3e9187f47eda78","scripts":{"dev":"rslib build --watch","lint":"eslint .","test":"vitest run","build":"rslib build","lint:fix":"eslint . --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cezaraugusto","email":"boss@cezaraugusto.net"},"repository":{"url":"git+https://github.com/cezaraugusto/opera-location2.git","type":"git"},"_npmVersion":"10.9.8","description":"Approximates the current location of the Opera browser across platforms.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"which":"^7.0.0"},"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","@types/which":"^3.0.4","eslint-config-auditor":"^2.3.1"},"_npmOperationalInternal":{"tmp":"tmp/opera-location2_2.0.3_1782143120773_0.35647991439497395","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"opera-location2","version":"2.1.0","keywords":["opera","browser","spawn","location","process","guesstimate"],"author":{"url":"https://cezaraugusto.net","name":"Cezar Augusto","email":"boss@cezaraugusto.net"},"license":"MIT","_id":"opera-location2@2.1.0","maintainers":[{"name":"cezaraugusto","email":"boss@cezaraugusto.net"}],"homepage":"https://www.npmjs.com/package/opera-location2","bugs":{"url":"https://github.com/cezaraugusto/opera-location2/issues"},"bin":{"opera-location2":"bin.cjs"},"dist":{"shasum":"307750c94aa601f3ec5775d5d29047005a731808","tarball":"https://registry.npmjs.org/opera-location2/-/opera-location2-2.1.0.tgz","fileCount":10,"integrity":"sha512-W9ylFtC8HJR7vi5Z4gOOVAF+qSMThNORUnpIkqgNxIglKr4TS8HTzv/PI1wx3dQ7adpOs3no2LZz0PcqUFjWnA==","signatures":[{"sig":"MEUCIAguzsQ8ocuB4LJ7KAIqhR02ii9wfVGHiwQUb7ChquwPAiEAx905jh+60QArBcUCYI1m2ZaA62PrT6UAC7wzVxR8JP0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30131},"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":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"d5d75e1bd4857a8a3b5257369c1865ed8a531ca5","scripts":{"dev":"rslib build --watch","lint":"eslint .","test":"vitest run","build":"rslib build","lint:fix":"eslint . --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cezaraugusto","email":"boss@cezaraugusto.net"},"repository":{"url":"git+https://github.com/cezaraugusto/opera-location2.git","type":"git"},"_npmVersion":"11.11.0","description":"Approximates the current location of the Opera browser across platforms.","directories":{},"sideEffects":false,"_nodeVersion":"23.8.0","dependencies":{"which":"^7.0.0"},"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","@types/which":"^3.0.4","eslint-config-auditor":"^2.3.1"},"_npmOperationalInternal":{"tmp":"tmp/opera-location2_2.1.0_1783352907687_0.7133365185260023","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"license":"MIT","repository":{"type":"git","url":"git+https://github.com/cezaraugusto/opera-location2.git"},"name":"opera-location2","version":"2.1.1","description":"Approximates the current location of the Opera browser across platforms.","homepage":"https://www.npmjs.com/package/opera-location2","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"main":"./dist/index.cjs","types":"./dist/index.d.ts","bin":{"opera-location2":"bin.cjs"},"scripts":{"build":"rslib build","dev":"rslib build --watch","test":"vitest run","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":["opera","browser","spawn","location","process","guesstimate"],"dependencies":{"which":"^6.0.1"},"devDependencies":{"@rslib/core":"^0.23.2","@types/node":"^26.1.1","@types/which":"^3.0.4","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/opera-location2/issues"},"engines":{"node":">=18"},"sideEffects":false,"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"}},"gitHead":"87fe289cd773142e7dbd7547e34aa7001da33508","_id":"opera-location2@2.1.1","_nodeVersion":"22.23.1","_npmVersion":"12.0.2","dist":{"integrity":"sha512-EAZL3GA1r0dESBulJjUYERfHNKopMlcGUsWAHOGWHwWsfQMLVfNF6B7sIEVCfXEPIivekTe2g9xJKuRnsFBlcQ==","shasum":"5cf8bb0da946634ef0308724e00c370df81c378e","tarball":"https://registry.npmjs.org/opera-location2/-/opera-location2-2.1.1.tgz","fileCount":10,"unpackedSize":30132,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opera-location2@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB4ZDzwMhm09sDkLoXEU4mWqg8C6Vtt3nB1ZbKQLMsXyAiEAnpx95qtNrG6XheGDO8CxjKN6WGAIZDY0L48VuRRr/FE="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:72ce0ed5-b062-46c4-8280-080d32c314c2"}},"directories":{},"maintainers":[{"name":"cezaraugusto","email":"boss@cezaraugusto.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/opera-location2_2.1.1_1785634093206_0.3418931178899134"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-01T05:14:55.134Z","modified":"2026-08-02T01:28:13.660Z","1.0.0":"2025-11-01T05:14:55.449Z","2.0.0":"2026-01-14T14:34:00.742Z","2.0.1":"2026-06-18T19:59:03.398Z","2.0.2":"2026-06-18T21:51:48.367Z","2.0.3":"2026-06-22T15:45:20.940Z","2.1.0":"2026-07-06T15:48:27.829Z","2.1.1":"2026-08-02T01:28:13.363Z"},"bugs":{"url":"https://github.com/cezaraugusto/opera-location2/issues"},"author":{"name":"Cezar Augusto","email":"boss@cezaraugusto.net","url":"https://cezaraugusto.net"},"license":"MIT","homepage":"https://www.npmjs.com/package/opera-location2","keywords":["opera","browser","spawn","location","process","guesstimate"],"repository":{"type":"git","url":"git+https://github.com/cezaraugusto/opera-location2.git"},"description":"Approximates the current location of the Opera browser across platforms.","maintainers":[{"name":"cezaraugusto","email":"boss@cezaraugusto.net"}],"readme":"[npm-version-image]: https://img.shields.io/npm/v/opera-location2.svg?color=0971fe\n[npm-version-url]: https://www.npmjs.com/package/opera-location2\n[npm-downloads-image]: https://img.shields.io/npm/dm/opera-location2.svg?color=2ecc40\n[npm-downloads-url]: https://www.npmjs.com/package/opera-location2\n[action-image]: https://github.com/cezaraugusto/opera-location2/actions/workflows/ci.yml/badge.svg?branch=main\n[action-url]: https://github.com/cezaraugusto/opera-location2/actions\n[npm-provenance-image]: https://img.shields.io/badge/provenance-verified-0971fe?logo=npm&logoColor=white\n[npm-provenance-url]: https://www.npmjs.com/package/opera-location2\n\n> Approximates the current location of the Opera browser across platforms.\n\n# opera-location2 [![Version][npm-version-image]][npm-version-url] [![Downloads][npm-downloads-image]][npm-downloads-url] [![workflow][action-image]][action-url] [![Provenance][npm-provenance-image]][npm-provenance-url]\n\n<img alt=\"Opera\" align=\"right\" src=\"https://cdn.jsdelivr.net/gh/extension-js/media@9ef31f005a0192907d9f6405838e43776aca2124/browser_logos/svg/opera.svg\" width=\"10.5%\" />\n\n- By default checks only `stable`. Optionally can cascade to `beta` / `developer`.\n- Supports macOS / Windows / Linux\n- Works both as an ES module or CommonJS\n\n## Installation\n\n```bash\nnpm i opera-location2\n```\n\n## Support table\n\nThis table lists the default locations where Opera is typically installed for each supported platform and channel. By default, only the Stable channel is checked. When fallback is enabled, the package checks these paths (in order) and returns the first one found.\n\n<table>\n  <thead>\n    <tr>\n      <th>Platform</th>\n      <th>Channel</th>\n      <th>Paths checked</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td rowspan=\"3\" align=\"center\"><img alt=\"\" width=\"64\" height=\"64\" src=\"https://cdn.jsdelivr.net/gh/extension-js/media@db5deb23fbfa85530f8146718812972998e13a4d/platform_logos/macos.png\" /><br><strong>macOS</strong></td>\n      <td align=\"center\">Opera (Stable)</td>\n      <td>\n        <ul>\n          <li><code>/Applications/Opera.app/Contents/MacOS/Opera</code></li>\n          <li><code>~/Applications/Opera.app/Contents/MacOS/Opera</code></li>\n        </ul>\n      </td>\n    </tr>\n    <tr>\n      <td align=\"center\">Opera Beta</td>\n      <td>\n        <ul>\n          <li><code>/Applications/Opera Beta.app/Contents/MacOS/Opera Beta</code></li>\n          <li><code>~/Applications/Opera Beta.app/Contents/MacOS/Opera Beta</code></li>\n        </ul>\n      </td>\n    </tr>\n    <tr>\n      <td align=\"center\">Opera Developer</td>\n      <td>\n        <ul>\n          <li><code>/Applications/Opera Developer.app/Contents/MacOS/Opera Developer</code></li>\n          <li><code>~/Applications/Opera Developer.app/Contents/MacOS/Opera Developer</code></li>\n        </ul>\n      </td>\n    </tr>\n    <tr>\n      <td rowspan=\"3\" align=\"center\"><img alt=\"\" width=\"64\" height=\"64\" src=\"https://cdn.jsdelivr.net/gh/extension-js/media@db5deb23fbfa85530f8146718812972998e13a4d/platform_logos/windows.png\" /><br><strong>Windows</strong></td>\n      <td align=\"center\">Opera (Stable)</td>\n      <td>\n        <ul>\n          <li><code>%LOCALAPPDATA%\\Opera\\opera.exe</code></li>\n          <li><code>%PROGRAMFILES%\\Opera\\opera.exe</code></li>\n          <li><code>%PROGRAMFILES(X86)%\\Opera\\opera.exe</code></li>\n        </ul>\n      </td>\n    </tr>\n    <tr>\n      <td align=\"center\">Opera Beta</td>\n      <td>\n        <ul>\n          <li><code>%LOCALAPPDATA%\\Opera Beta\\opera.exe</code></li>\n          <li><code>%PROGRAMFILES%\\Opera Beta\\opera.exe</code></li>\n          <li><code>%PROGRAMFILES(X86)%\\Opera Beta\\opera.exe</code></li>\n        </ul>\n      </td>\n    </tr>\n    <tr>\n      <td align=\"center\">Opera Developer</td>\n      <td>\n        <ul>\n          <li><code>%LOCALAPPDATA%\\Opera developer\\opera.exe</code></li>\n          <li><code>%PROGRAMFILES%\\Opera developer\\opera.exe</code></li>\n          <li><code>%PROGRAMFILES(X86)%\\Opera developer\\opera.exe</code></li>\n        </ul>\n      </td>\n    </tr>\n    <tr>\n      <td rowspan=\"3\" align=\"center\"><img alt=\"\" width=\"64\" height=\"64\" src=\"https://cdn.jsdelivr.net/gh/extension-js/media@db5deb23fbfa85530f8146718812972998e13a4d/platform_logos/linux.png\" /><br><strong>Linux/other</strong></td>\n      <td align=\"center\">Opera (Stable)</td>\n      <td>\n        <ul>\n          <li><code>opera</code> (on <code>$PATH</code>)</li>\n        </ul>\n      </td>\n    </tr>\n    <tr>\n      <td align=\"center\">Opera Beta</td>\n      <td>\n        <ul>\n          <li><code>opera-beta</code> (on <code>$PATH</code>)</li>\n        </ul>\n      </td>\n    </tr>\n    <tr>\n      <td align=\"center\">Opera Developer</td>\n      <td>\n        <ul>\n          <li><code>opera-developer</code> (on <code>$PATH</code>)</li>\n        </ul>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\nReturns the first existing path found (given selected channels), or <code>null</code> if none are found.\n\n## Usage\n\n**Via Node.js (strict by default):**\n\n```js\nimport operaLocation from 'opera-location2'\nimport {\n  locateOperaOrExplain,\n  getInstallGuidance,\n  getOperaVersion\n} from 'opera-location2'\n\n// Strict (Stable only)\nconsole.log(operaLocation())\n// => \"/Applications/Opera.app/Contents/MacOS/Opera\" or null\n\n// Enable fallback (Stable / Beta / Developer)\nconsole.log(operaLocation(true))\n// => first found among Stable/Beta/Developer or null\n\n// Throw with an install guide when not found\ntry {\n  const bin = locateOperaOrExplain({allowFallback: true})\n  console.log(bin)\n\n  // Cross-platform version (no exec by default)\n  console.log(getOperaVersion(bin)) // e.g. \"114.0.5282.233\" or null\n\n  // Opt-in: allow executing the binary (Linux/other)\n  console.log(getOperaVersion(bin, {allowExec: true}))\n} catch (e) {\n  console.error(String(e))\n  // Or print getInstallGuidance() explicitly\n}\n```\n\n**CommonJS:**\n\n```js\nconst api = require('opera-location2')\nconst locateOpera = api.default || api\n```\n\n**Via CLI:**\n\n```bash\nnpx opera-location2\n# Strict (Stable only)\n\nnpx opera-location2 --fallback\n# Enable cascade (Stable / Beta / Developer)\n\n# Respect environment overrides\nOPERA_BINARY=/custom/path/to/opera npx opera-location2\n\n# Print browser version (empty + exit code 2 if unavailable)\nnpx opera-location2 --opera-version\nnpx opera-location2 --browser-version\n\n# Opt-in: allow executing the binary to fetch version\nnpx opera-location2 --browser-version --allow-exec\n```\n\n### Environment overrides\n\nIf this environment variable is set and points to an existing binary, it takes precedence:\n\n- `OPERA_BINARY`\n\n## API\n\n- `default export locateOpera(allowFallback?: boolean): string | null`\n- `locateOperaOrExplain(options?: boolean | { allowFallback?: boolean }): string`\n- `getOperaVersion(bin: string, opts?: { allowExec?: boolean }): string | null`\n- `getInstallGuidance(): string`\n\n## Related projects\n\n- [brave-location](https://github.com/cezaraugusto/brave-location)\n- [chrome-location2](https://github.com/cezaraugusto/chrome-location2)\n- [chromium-location](https://github.com/cezaraugusto/chromium-location)\n- [edge-location](https://github.com/cezaraugusto/edge-location)\n- [firefox-location2](https://github.com/cezaraugusto/firefox-location2)\n- [safari-location2](https://github.com/cezaraugusto/safari-location2)\n- [vivaldi-location2](https://github.com/cezaraugusto/vivaldi-location2)\n- [waterfox-location](https://github.com/cezaraugusto/waterfox-location)\n- [librewolf-location](https://github.com/cezaraugusto/librewolf-location)\n- [yandex-location](https://github.com/cezaraugusto/yandex-location)\n\n## License\n\nMIT (c) Cezar Augusto.\n\n\n","readmeFilename":"README.md"}