Lock the access-layer decision (REST only) and start implementation per SPEC. - monorepo (npm workspaces): packages/docmost-client = DocmostClient + lib/* copied 1:1 from docmost-mcp/src (backport target), plus bannered sync methods (listTrash, restorePage, listAllSpacePages, exportPageBody, listRecentSince / collectRecentSince cursor scan) - engine stays the root app per AGENTS.md (src/, test/, build/, data/, settings.ts); add roundtrip.ts (SPEC §11 idempotency harness), pull.ts (SPEC §6 read-only Docmost->FS mirror), sanitize.ts (SPEC §12 filenames, path-traversal-safe) - Dockerfile builds the workspace lib before the app; vitest gates CI - exportPageBody never touches /comments (SPEC §3); serializeDocmostMarkdownBody emits meta + body only - SPEC: resolve access-layer (REST), reflect root-engine layout + REST pagination - tests: sanitize (incl. dot-traversal), collectRecentSince (cutoff/dedup/cap), stripBlockIds, markdown round-trip byte-stability Note: raw ProseMirror round-trip is byte-stable in Markdown but not yet attribute- idempotent (SPEC §11 Задача №0, before Phase 2).
45 lines
1.1 KiB
JSON
45 lines
1.1 KiB
JSON
{
|
|
"name": "docmost-client",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"main": "dist/index.js",
|
|
"types": "dist/index.d.ts",
|
|
"exports": {
|
|
".": {
|
|
"types": "./dist/index.d.ts",
|
|
"import": "./dist/index.js"
|
|
}
|
|
},
|
|
"scripts": {
|
|
"build": "tsc -p tsconfig.json"
|
|
},
|
|
"dependencies": {
|
|
"@fellow/prosemirror-recreate-transform": "^1.2.3",
|
|
"@hocuspocus/provider": "^3.4.4",
|
|
"@hocuspocus/transformer": "^3.4.4",
|
|
"@tiptap/core": "^3.18.0",
|
|
"@tiptap/extension-highlight": "^3.26.1",
|
|
"@tiptap/extension-image": "^3.18.0",
|
|
"@tiptap/extension-subscript": "^3.26.1",
|
|
"@tiptap/extension-superscript": "^3.26.1",
|
|
"@tiptap/extension-task-item": "^3.26.1",
|
|
"@tiptap/extension-task-list": "^3.26.1",
|
|
"@tiptap/html": "^3.18.0",
|
|
"@tiptap/pm": "^3.18.0",
|
|
"@tiptap/starter-kit": "^3.18.0",
|
|
"axios": "^1.6.0",
|
|
"form-data": "^4.0.0",
|
|
"jsdom": "^27.4.0",
|
|
"marked": "^17.0.1",
|
|
"ws": "^8.19.0",
|
|
"yjs": "^13.6.29"
|
|
},
|
|
"devDependencies": {
|
|
"@types/jsdom": "^27.0.0",
|
|
"@types/node": "^20.0.0",
|
|
"@types/ws": "^8.5.10",
|
|
"typescript": "^5.0.0"
|
|
}
|
|
}
|