Files
gitmost/packages/git-sync/build/index.js
claude code agent 227 8ef64ae14a feat(git-sync): vendor IO engine (pull/push/git/settings) with GitSyncClient seam (Phase A.3)
Vendor the IO engine from docmost-sync into packages/git-sync/src/engine:
- git.ts (VaultGit, execFile shell-out — verbatim)
- pull.ts (readExisting, computePullActions, applyPullActions)
- push.ts (classifyRenameMoves, computePushActions, applyPushActions, runPush)
- settings.ts adapted (pure parseSettings + Settings type; no process.env binding
  — the server builds Settings from EnvironmentService later), config-errors.ts.
CLI main()/import.meta entrypoints dropped (server drives in-process).

Client seam: new engine/client.types.ts defines GitSyncClient; pull.ts/push.ts
now use Pick<GitSyncClient, ...> instead of the non-vendored DocmostClient. Engine
logic byte-identical except a zod4-compat fix in config-errors (zod4 dropped the
issue.received==='undefined' signal; match /received undefined/ on the message).

Ported the engine unit tests (compute/apply pull+push actions, classify-rename-
moves, run-push, settings, config-errors) incl. real-git temp-repo tests: 431
pass / 3 expected-fail (was 314/3). REST/CLI-coupled upstream tests skipped
(noted). CJS build clean. No apps/server wiring yet (next step).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 13:34:45 +03:00

64 lines
7.0 KiB
JavaScript

"use strict";
/**
* Public surface of `@docmost/git-sync`.
*
* Phase A (plan §12.A) vendors only the PURE converter + pure engine modules
* from docmost-sync. Server integration (GitmostDataSource, orchestrator,
* VaultGit, pull/push) is added in later steps.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.loadSettingsOrExit = exports.envSchema = exports.parseSettings = exports.LOCAL_SOURCE_TRAILER = exports.LOCAL_AUTHOR_EMAIL = exports.LOCAL_AUTHOR_NAME = exports.DOCMOST_BRANCH = exports.LAST_PUSHED_REF = exports.parseArgs = exports.parentFolderFile = exports.runPush = exports.applyPushActions = exports.computePushActions = exports.classifyRenameMoves = exports.applyPullActions = exports.computePullActions = exports.readExisting = exports.DEFAULT_BRANCH = exports.BOT_AUTHOR_EMAIL = exports.BOT_AUTHOR_NAME = exports.buildCommitMessage = exports.vaultGitEnv = exports.VaultGit = exports.bodyHash = exports.stabilizePageFile = exports.disambiguate = exports.sanitizeTitle = exports.buildVaultLayout = exports.MASS_DELETE_FRACTION = exports.MASS_DELETE_MIN_EXISTING = exports.decideAbsenceDeletions = exports.planReconciliation = exports.docsCanonicallyEqual = exports.canonicalizeContent = exports.markdownToProseMirror = exports.convertProseMirrorToMarkdown = exports.parseDocmostMarkdown = exports.serializeDocmostMarkdownBody = exports.serializeDocmostMarkdown = void 0;
// Pure converter (markdown <-> ProseMirror, file envelope, canonicalization).
var index_1 = require("./lib/index");
Object.defineProperty(exports, "serializeDocmostMarkdown", { enumerable: true, get: function () { return index_1.serializeDocmostMarkdown; } });
Object.defineProperty(exports, "serializeDocmostMarkdownBody", { enumerable: true, get: function () { return index_1.serializeDocmostMarkdownBody; } });
Object.defineProperty(exports, "parseDocmostMarkdown", { enumerable: true, get: function () { return index_1.parseDocmostMarkdown; } });
Object.defineProperty(exports, "convertProseMirrorToMarkdown", { enumerable: true, get: function () { return index_1.convertProseMirrorToMarkdown; } });
Object.defineProperty(exports, "markdownToProseMirror", { enumerable: true, get: function () { return index_1.markdownToProseMirror; } });
Object.defineProperty(exports, "canonicalizeContent", { enumerable: true, get: function () { return index_1.canonicalizeContent; } });
Object.defineProperty(exports, "docsCanonicallyEqual", { enumerable: true, get: function () { return index_1.docsCanonicallyEqual; } });
// Pure engine (no IO): reconcile planner, vault layout, sanitize, stabilize,
// loop-guard body hash.
var reconcile_1 = require("./engine/reconcile");
Object.defineProperty(exports, "planReconciliation", { enumerable: true, get: function () { return reconcile_1.planReconciliation; } });
Object.defineProperty(exports, "decideAbsenceDeletions", { enumerable: true, get: function () { return reconcile_1.decideAbsenceDeletions; } });
Object.defineProperty(exports, "MASS_DELETE_MIN_EXISTING", { enumerable: true, get: function () { return reconcile_1.MASS_DELETE_MIN_EXISTING; } });
Object.defineProperty(exports, "MASS_DELETE_FRACTION", { enumerable: true, get: function () { return reconcile_1.MASS_DELETE_FRACTION; } });
var layout_1 = require("./engine/layout");
Object.defineProperty(exports, "buildVaultLayout", { enumerable: true, get: function () { return layout_1.buildVaultLayout; } });
var sanitize_1 = require("./engine/sanitize");
Object.defineProperty(exports, "sanitizeTitle", { enumerable: true, get: function () { return sanitize_1.sanitizeTitle; } });
Object.defineProperty(exports, "disambiguate", { enumerable: true, get: function () { return sanitize_1.disambiguate; } });
var stabilize_1 = require("./engine/stabilize");
Object.defineProperty(exports, "stabilizePageFile", { enumerable: true, get: function () { return stabilize_1.stabilizePageFile; } });
var loop_guard_1 = require("./engine/loop-guard");
Object.defineProperty(exports, "bodyHash", { enumerable: true, get: function () { return loop_guard_1.bodyHash; } });
var git_1 = require("./engine/git");
Object.defineProperty(exports, "VaultGit", { enumerable: true, get: function () { return git_1.VaultGit; } });
Object.defineProperty(exports, "vaultGitEnv", { enumerable: true, get: function () { return git_1.vaultGitEnv; } });
Object.defineProperty(exports, "buildCommitMessage", { enumerable: true, get: function () { return git_1.buildCommitMessage; } });
Object.defineProperty(exports, "BOT_AUTHOR_NAME", { enumerable: true, get: function () { return git_1.BOT_AUTHOR_NAME; } });
Object.defineProperty(exports, "BOT_AUTHOR_EMAIL", { enumerable: true, get: function () { return git_1.BOT_AUTHOR_EMAIL; } });
Object.defineProperty(exports, "DEFAULT_BRANCH", { enumerable: true, get: function () { return git_1.DEFAULT_BRANCH; } });
var pull_1 = require("./engine/pull");
Object.defineProperty(exports, "readExisting", { enumerable: true, get: function () { return pull_1.readExisting; } });
Object.defineProperty(exports, "computePullActions", { enumerable: true, get: function () { return pull_1.computePullActions; } });
Object.defineProperty(exports, "applyPullActions", { enumerable: true, get: function () { return pull_1.applyPullActions; } });
var push_1 = require("./engine/push");
Object.defineProperty(exports, "classifyRenameMoves", { enumerable: true, get: function () { return push_1.classifyRenameMoves; } });
Object.defineProperty(exports, "computePushActions", { enumerable: true, get: function () { return push_1.computePushActions; } });
Object.defineProperty(exports, "applyPushActions", { enumerable: true, get: function () { return push_1.applyPushActions; } });
Object.defineProperty(exports, "runPush", { enumerable: true, get: function () { return push_1.runPush; } });
Object.defineProperty(exports, "parentFolderFile", { enumerable: true, get: function () { return push_1.parentFolderFile; } });
Object.defineProperty(exports, "parseArgs", { enumerable: true, get: function () { return push_1.parseArgs; } });
Object.defineProperty(exports, "LAST_PUSHED_REF", { enumerable: true, get: function () { return push_1.LAST_PUSHED_REF; } });
Object.defineProperty(exports, "DOCMOST_BRANCH", { enumerable: true, get: function () { return push_1.DOCMOST_BRANCH; } });
Object.defineProperty(exports, "LOCAL_AUTHOR_NAME", { enumerable: true, get: function () { return push_1.LOCAL_AUTHOR_NAME; } });
Object.defineProperty(exports, "LOCAL_AUTHOR_EMAIL", { enumerable: true, get: function () { return push_1.LOCAL_AUTHOR_EMAIL; } });
Object.defineProperty(exports, "LOCAL_SOURCE_TRAILER", { enumerable: true, get: function () { return push_1.LOCAL_SOURCE_TRAILER; } });
var settings_1 = require("./engine/settings");
Object.defineProperty(exports, "parseSettings", { enumerable: true, get: function () { return settings_1.parseSettings; } });
Object.defineProperty(exports, "envSchema", { enumerable: true, get: function () { return settings_1.envSchema; } });
var config_errors_1 = require("./engine/config-errors");
Object.defineProperty(exports, "loadSettingsOrExit", { enumerable: true, get: function () { return config_errors_1.loadSettingsOrExit; } });