feat(sync): scaffold monorepo, extract docmost-client, add Phase-0 harness + read-only pull
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).
This commit is contained in:
12
Makefile
12
Makefile
@@ -1,6 +1,6 @@
|
||||
.DEFAULT_GOAL := help
|
||||
|
||||
.PHONY: help install env build test run dev clean
|
||||
.PHONY: help install env build test run dev roundtrip pull clean
|
||||
|
||||
help: ## Show this help
|
||||
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) \
|
||||
@@ -27,5 +27,11 @@ run: build ## Build and run the app
|
||||
dev: install ## Run in watch mode (tsx)
|
||||
npm run dev
|
||||
|
||||
clean: ## Remove build artifacts and node_modules
|
||||
rm -rf build node_modules
|
||||
roundtrip: build ## Run the offline round-trip idempotency harness (SPEC §11)
|
||||
npm run roundtrip
|
||||
|
||||
pull: build ## Mirror the configured Docmost space into the vault (read-only)
|
||||
npm run pull
|
||||
|
||||
clean: ## Remove build artifacts and node_modules (incl. the workspace lib)
|
||||
rm -rf build node_modules packages/*/dist
|
||||
|
||||
Reference in New Issue
Block a user