Implements Notion-style sync blocks: a Tiptap node whose content is shared across N pages. Editing via the Hocuspocus overlay propagates to all instances via Yjs collab + SSE broadcast (EventEmitter2 bus). Server: DB migration, NestJS module (CRUD + BFS cycle detection + broadcast), Hocuspocus persistence extension extended for sync-block-* docs, 3 new RBAC permissions (sync_blocks:create/edit/delete), seeded to Admin/Editor/Member. Client: SyncBlockExtension (Tiptap node), SyncBlockNodeView (NodeView + Mantine Modal overlay + SSE hook), /sync-block slash command, service client. Tests: 32 server Jest + 18 client Vitest, all green. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
24 lines
584 B
JSON
24 lines
584 B
JSON
{
|
|
"name": "@docadenice/extension-clipper",
|
|
"version": "1.0.0",
|
|
"private": true,
|
|
"description": "DocAdenice Web Clipper — Chrome/Firefox MV3 browser extension",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest"
|
|
},
|
|
"devDependencies": {
|
|
"@crxjs/vite-plugin": "^2.0.0-beta.28",
|
|
"@types/chrome": "^0.0.270",
|
|
"@types/dompurify": "^3.0.5",
|
|
"typescript": "^5.4.0",
|
|
"vite": "^5.0.0",
|
|
"vitest": "^2.0.0"
|
|
},
|
|
"dependencies": {
|
|
"dompurify": "^3.1.5"
|
|
}
|
|
}
|