- Add window.webln API for web app Lightning wallet integration
- Implement webln.enable(), getInfo(), sendPayment(), makeInvoice() methods
- Add WebLN permission prompts with proper amount display for payments
- Dispatch webln:ready and webln:enabled events per WebLN standard
- Add NWC client caching for persistent wallet connections
- Implement inline BOLT11 invoice amount parsing
- Always prompt for sendPayment (security-critical, irreversible)
- Add signMessage/verifyMessage stubs that return "not supported"
- Fix response handling for undefined returns in content script
Files modified:
- projects/common/src/lib/models/nostr.ts (WeblnMethod, ExtensionMethod types)
- projects/common/src/lib/models/webln.ts (new - WebLN response types)
- projects/common/src/public-api.ts (export webln types)
- projects/{chrome,firefox}/src/plebian-signer-extension.ts (window.webln)
- projects/{chrome,firefox}/src/background.ts (WebLN handlers)
- projects/{chrome,firefox}/src/background-common.ts (WebLN permissions)
- projects/{chrome,firefox}/public/prompt.html (WebLN cards)
- projects/{chrome,firefox}/src/prompt.ts (WebLN method handling)
- projects/common/src/lib/services/storage/types.ts (ExtensionMethod type)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
53 lines
1.1 KiB
JSON
53 lines
1.1 KiB
JSON
{
|
|
"manifest_version": 3,
|
|
"name": "Plebeian Signer - Nostr Identity Manager & Signer",
|
|
"description": "Manage and switch between multiple identities while interacting with Nostr apps",
|
|
"version": "1.1.0",
|
|
"homepage_url": "https://github.com/PlebeianApp/plebeian-signer",
|
|
"options_page": "options.html",
|
|
"permissions": [
|
|
"windows",
|
|
"storage"
|
|
],
|
|
"content_security_policy": {
|
|
"extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self'"
|
|
},
|
|
"action": {
|
|
"default_popup": "index.html",
|
|
"default_icon": {
|
|
"48": "icon-48.png",
|
|
"128": "icon-128.png"
|
|
}
|
|
},
|
|
"icons": {
|
|
"48": "icon-48.png",
|
|
"128": "icon-128.png"
|
|
},
|
|
"background": {
|
|
"service_worker": "background.js"
|
|
},
|
|
"content_scripts": [
|
|
{
|
|
"run_at": "document_start",
|
|
"matches": [
|
|
"<all_urls>"
|
|
],
|
|
"js": [
|
|
"plebian-signer-content-script.js"
|
|
],
|
|
"all_frames": true
|
|
}
|
|
],
|
|
"web_accessible_resources": [
|
|
{
|
|
"resources": [
|
|
"plebian-signer-extension.js"
|
|
],
|
|
"matches": [
|
|
"https://*/*",
|
|
"http://*/*"
|
|
]
|
|
}
|
|
]
|
|
}
|