First step of docs/git-sync-plan.md. New workspace package @docmost/git-sync vendoring the PURE parts from docmost-sync (HEAD b03eb35): - lib: markdown-converter, markdown-document, canonicalize, docmost-schema, node-ops, diff, and an extracted markdown-to-prosemirror (only the pure marked->HTML->generateJSON path from upstream collaboration.ts; no websocket). - engine (pure, no IO): reconcile, layout, sanitize, stabilize, loop-guard. Ported the upstream pure-module + round-trip corpus tests (vitest): 314 pass, 3 expected upstream known-limitation fails. tsc clean. No server wiring yet. docmost-schema inlines getStyleProperty (as packages/mcp does — @tiptap/core 3.20.4 doesn't export it). IO engine (pull/push/git/settings) deferred to later Phase A/B steps; the editor-ext idempotency gate (plan §13.1) is the next step. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
24 lines
781 B
TypeScript
24 lines
781 B
TypeScript
import { fileURLToPath } from 'node:url';
|
|
import path from 'node:path';
|
|
import { defineConfig } from 'vitest/config';
|
|
|
|
// Ported docmost-sync tests import the converter through the upstream package
|
|
// barrel specifier `docmost-client`. We vendored only the PURE half of that
|
|
// package into `src/lib`, so alias the barrel specifier to our local lib
|
|
// barrel; everything those tests use (converter, canonicalize, markdown
|
|
// envelope, markdownToProseMirror) is re-exported there.
|
|
const here = path.dirname(fileURLToPath(import.meta.url));
|
|
const libBarrel = path.resolve(here, 'src/lib/index.ts');
|
|
|
|
export default defineConfig({
|
|
resolve: {
|
|
alias: {
|
|
'docmost-client': libBarrel,
|
|
},
|
|
},
|
|
test: {
|
|
environment: 'node',
|
|
include: ['test/**/*.test.ts'],
|
|
},
|
|
});
|