* Replace /api/v1/resources with /api/v1/attachments for image uploads
* Upload attachments as JSON with base64-encoded content field
* After memo creation, link each attachment via PATCH /api/v1/attachments/{id}
* Rewrite markdown image URLs to use /file/attachments/{id} pattern
* Fix XSS: sanitize marked.parse output with a DOM-based allowlist sanitizer
* Fix SSRF: validate img.src scheme (http/https only) before fetching
* Fix stack overflow: use chunked base64 encoding for large images
* Update CLAUDE.md to document new attachment flow
41 lines
861 B
JSON
41 lines
861 B
JSON
{
|
|
"manifest_version": 3,
|
|
"name": "Memos Clipper",
|
|
"version": "1.0.0",
|
|
"description": "Clip web pages or selections as Markdown to your usememos instance",
|
|
"permissions": [
|
|
"activeTab",
|
|
"scripting",
|
|
"storage"
|
|
],
|
|
"host_permissions": [
|
|
"<all_urls>"
|
|
],
|
|
"action": {
|
|
"default_popup": "popup.html",
|
|
"default_icon": {
|
|
"16": "icons/icon16.png",
|
|
"32": "icons/icon32.png",
|
|
"48": "icons/icon48.png",
|
|
"128": "icons/icon128.png"
|
|
}
|
|
},
|
|
"icons": {
|
|
"16": "icons/icon16.png",
|
|
"32": "icons/icon32.png",
|
|
"48": "icons/icon48.png",
|
|
"128": "icons/icon128.png"
|
|
},
|
|
"background": {
|
|
"service_worker": "background.js"
|
|
},
|
|
"options_page": "settings.html",
|
|
"content_scripts": [
|
|
{
|
|
"matches": ["<all_urls>"],
|
|
"js": ["content.js"],
|
|
"run_at": "document_idle"
|
|
}
|
|
]
|
|
}
|