web extension for disabling geographic restrictions on Bluesky

initial commit

+25
.prettierrc
··· 1 + { 2 + "$schema": "https://json.schemastore.org/prettierrc", 3 + "trailingComma": "all", 4 + "useTabs": true, 5 + "tabWidth": 2, 6 + "printWidth": 110, 7 + "semi": true, 8 + "singleQuote": true, 9 + "bracketSpacing": true, 10 + "overrides": [ 11 + { 12 + "files": ["tsconfig.json", "jsconfig.json", "tsconfig.*.json"], 13 + "options": { 14 + "parser": "jsonc" 15 + } 16 + }, 17 + { 18 + "files": ["*.md"], 19 + "options": { 20 + "printWidth": 100, 21 + "proseWrap": "always" 22 + } 23 + } 24 + ] 25 + }
+33
inject.js
··· 1 + const _fetch = globalThis.fetch; 2 + globalThis.fetch = async function (req, init) { 3 + if (req instanceof Request) { 4 + const url = new URL(req.url); 5 + 6 + switch (url.pathname) { 7 + case '/xrpc/app.bsky.ageassurance.getConfig': { 8 + return Response.json({ 9 + regions: [], 10 + }); 11 + } 12 + case '/xrpc/app.bsky.ageassurance.getState': { 13 + return Response.json({ 14 + state: { 15 + lastInitiatedAt: '2025-07-14T14:22:43.912Z', 16 + status: 'assured', 17 + access: 'full', 18 + }, 19 + metadata: { 20 + accountCreatedAt: '2022-11-17T00:35:16.391Z', 21 + }, 22 + }); 23 + } 24 + } 25 + } else if (req === 'https://ip.bsky.app/geolocation') { 26 + return Response.json({ 27 + countryCode: 'US', 28 + regionCode: 'WA', 29 + }); 30 + } 31 + 32 + return _fetch.call(this, req, init); 33 + };
+14
manifest.json
··· 1 + { 2 + "manifest_version": 3, 3 + "name": "Bluesky unblock", 4 + "version": "1.0", 5 + "description": "Bypasses Bluesky age assurance", 6 + "content_scripts": [ 7 + { 8 + "matches": ["https://bsky.app/*", "https://main.bsky.dev/*"], 9 + "js": ["inject.js"], 10 + "run_at": "document_start", 11 + "world": "MAIN" 12 + } 13 + ] 14 + }