Initial commit: Share-as-QR Firefox extension with bun build

MV3 WebExtension that turns the active tab's URL into a scannable QR
code via a toolbar popup. The popup runs locally — no network requests.

Build pipeline: `bun build` bundles popup.js + the vendored
kazuhikoarase/qrcode-generator (MIT, pinned to 83b7e8f) into a single
~23 KB minified ESM file under dist/. web-ext operates on dist/, so
the packaged zip contains only what actually ships (~28 KB).

Scripts:
- bun run build    — bundle + copy assets into dist/
- bun run lint     — build + web-ext lint (0 errors / 0 warnings)
- bun run package  — build + produce a signable .zip
- bun run start    — build + launch Firefox with the extension loaded

Tracks dogcat epic firefox-share-as-qr-35mw and its 5 child tasks
(scaffold, vendor lib, popup UI, icons, README).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ole-Morten Duesund 2026-05-11 16:04:22 +02:00
commit 8fa1809d9d
16 changed files with 2915 additions and 0 deletions

34
manifest.json Normal file
View file

@ -0,0 +1,34 @@
{
"manifest_version": 3,
"name": "Share as QR",
"version": "0.1.0",
"description": "Share the current tab's URL as a scannable QR code.",
"browser_specific_settings": {
"gecko": {
"id": "share-as-qr@olemd.local",
"strict_min_version": "142.0",
"data_collection_permissions": {
"required": ["none"]
}
}
},
"permissions": ["activeTab", "clipboardWrite"],
"action": {
"default_title": "Share page as QR code",
"default_popup": "popup/popup.html",
"default_icon": {
"16": "icons/icon.svg",
"32": "icons/icon.svg",
"48": "icons/icon.svg",
"96": "icons/icon.svg",
"128": "icons/icon.svg"
}
},
"icons": {
"16": "icons/icon.svg",
"32": "icons/icon.svg",
"48": "icons/icon.svg",
"96": "icons/icon.svg",
"128": "icons/icon.svg"
}
}