canopycms 0.0.11 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -27
- package/dist/ai/handler.d.ts +3 -3
- package/dist/ai/handler.d.ts.map +1 -1
- package/dist/ai/handler.js +6 -9
- package/dist/ai/handler.js.map +1 -1
- package/dist/ai/resolve-branch.d.ts +1 -2
- package/dist/ai/resolve-branch.d.ts.map +1 -1
- package/dist/ai/resolve-branch.js +8 -9
- package/dist/ai/resolve-branch.js.map +1 -1
- package/dist/api/branch.js +2 -2
- package/dist/api/branch.js.map +1 -1
- package/dist/api/github-sync.js +0 -2
- package/dist/api/github-sync.js.map +1 -1
- package/dist/api/settings-helpers.d.ts +3 -5
- package/dist/api/settings-helpers.d.ts.map +1 -1
- package/dist/api/settings-helpers.js +6 -19
- package/dist/api/settings-helpers.js.map +1 -1
- package/dist/auth/caching-auth-plugin.d.ts +7 -1
- package/dist/auth/caching-auth-plugin.d.ts.map +1 -1
- package/dist/auth/caching-auth-plugin.js +31 -3
- package/dist/auth/caching-auth-plugin.js.map +1 -1
- package/dist/auth/plugin.d.ts +1 -1
- package/dist/authorization/types.d.ts +1 -1
- package/dist/branch-registry.js +1 -1
- package/dist/branch-registry.js.map +1 -1
- package/dist/branch-schema-cache.d.ts +8 -13
- package/dist/branch-schema-cache.d.ts.map +1 -1
- package/dist/branch-schema-cache.js +55 -44
- package/dist/branch-schema-cache.js.map +1 -1
- package/dist/cli/cli.d.ts +20 -0
- package/dist/cli/cli.d.ts.map +1 -0
- package/dist/cli/cli.js +196 -0
- package/dist/cli/cli.js.map +1 -0
- package/dist/cli/generate-ai-content.js +1501 -723
- package/dist/cli/init.d.ts +2 -3
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +258 -2861
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/sync.d.ts +33 -0
- package/dist/cli/sync.d.ts.map +1 -0
- package/dist/cli/sync.js +510 -0
- package/dist/cli/sync.js.map +1 -0
- package/dist/config/schemas/config.d.ts +5 -5
- package/dist/config/schemas/config.d.ts.map +1 -1
- package/dist/config/schemas/config.js +1 -1
- package/dist/config/schemas/config.js.map +1 -1
- package/dist/config-test.d.ts.map +1 -1
- package/dist/config-test.js +0 -1
- package/dist/config-test.js.map +1 -1
- package/dist/content-reader.js +1 -1
- package/dist/content-reader.js.map +1 -1
- package/dist/editor/BranchManager.d.ts.map +1 -1
- package/dist/editor/BranchManager.js +1 -3
- package/dist/editor/BranchManager.js.map +1 -1
- package/dist/git-manager.d.ts +2 -3
- package/dist/git-manager.d.ts.map +1 -1
- package/dist/git-manager.js +12 -4
- package/dist/git-manager.js.map +1 -1
- package/dist/operating-mode/client-safe-strategy.d.ts +1 -12
- package/dist/operating-mode/client-safe-strategy.d.ts.map +1 -1
- package/dist/operating-mode/client-safe-strategy.js +5 -42
- package/dist/operating-mode/client-safe-strategy.js.map +1 -1
- package/dist/operating-mode/client-unsafe-strategy.d.ts.map +1 -1
- package/dist/operating-mode/client-unsafe-strategy.js +10 -68
- package/dist/operating-mode/client-unsafe-strategy.js.map +1 -1
- package/dist/operating-mode/index.d.ts +3 -3
- package/dist/operating-mode/index.d.ts.map +1 -1
- package/dist/operating-mode/index.js +2 -2
- package/dist/operating-mode/types.d.ts +2 -6
- package/dist/operating-mode/types.d.ts.map +1 -1
- package/dist/services.d.ts +6 -0
- package/dist/services.d.ts.map +1 -1
- package/dist/services.js +52 -40
- package/dist/services.js.map +1 -1
- package/dist/settings-branch-utils.d.ts +2 -2
- package/dist/settings-branch-utils.js +3 -3
- package/dist/settings-branch-utils.js.map +1 -1
- package/dist/settings-workspace.d.ts +1 -2
- package/dist/settings-workspace.d.ts.map +1 -1
- package/dist/settings-workspace.js +1 -2
- package/dist/settings-workspace.js.map +1 -1
- package/dist/utils/fs.d.ts +3 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +15 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/git.d.ts +7 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +17 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/worker/task-queue-config.d.ts +2 -4
- package/dist/worker/task-queue-config.d.ts.map +1 -1
- package/dist/worker/task-queue-config.js +3 -7
- package/dist/worker/task-queue-config.js.map +1 -1
- package/package.json +4 -2
package/dist/cli/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI command: npx canopycms sync
|
|
3
|
+
*
|
|
4
|
+
* Bidirectional sync between the developer's working tree and
|
|
5
|
+
* CMS branch workspaces in .canopy-dev/content-branches/.
|
|
6
|
+
*
|
|
7
|
+
* - Push: copies working-tree content into a branch workspace and commits.
|
|
8
|
+
*
|
|
9
|
+
* - Pull: copies content from a branch workspace back into the working tree
|
|
10
|
+
* so the developer can review and commit.
|
|
11
|
+
*
|
|
12
|
+
* - Both: merges working-tree changes with editor changes in the workspace
|
|
13
|
+
* using a 3-way git merge, then pulls the merged result back.
|
|
14
|
+
*/
|
|
15
|
+
export interface SyncOptions {
|
|
16
|
+
projectDir: string;
|
|
17
|
+
direction: 'push' | 'pull' | 'both' | 'abort';
|
|
18
|
+
/** Which branch workspace to push to / pull from */
|
|
19
|
+
branch?: string;
|
|
20
|
+
contentRoot?: string;
|
|
21
|
+
/** Skip confirmation prompts (for testing or scripts). */
|
|
22
|
+
force?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Run the sync command.
|
|
26
|
+
*
|
|
27
|
+
* @returns Summary of what was synced
|
|
28
|
+
*/
|
|
29
|
+
export declare function sync(options: SyncOptions): Promise<{
|
|
30
|
+
pushed: number;
|
|
31
|
+
pulled: number;
|
|
32
|
+
}>;
|
|
33
|
+
//# sourceMappingURL=sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/cli/sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA6CH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;IAC7C,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAkeD;;;;GAIG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsB5F"}
|
package/dist/cli/sync.js
ADDED
|
@@ -0,0 +1,510 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI command: npx canopycms sync
|
|
3
|
+
*
|
|
4
|
+
* Bidirectional sync between the developer's working tree and
|
|
5
|
+
* CMS branch workspaces in .canopy-dev/content-branches/.
|
|
6
|
+
*
|
|
7
|
+
* - Push: copies working-tree content into a branch workspace and commits.
|
|
8
|
+
*
|
|
9
|
+
* - Pull: copies content from a branch workspace back into the working tree
|
|
10
|
+
* so the developer can review and commit.
|
|
11
|
+
*
|
|
12
|
+
* - Both: merges working-tree changes with editor changes in the workspace
|
|
13
|
+
* using a 3-way git merge, then pulls the merged result back.
|
|
14
|
+
*/
|
|
15
|
+
import fs from 'node:fs/promises';
|
|
16
|
+
import path from 'node:path';
|
|
17
|
+
import { simpleGit } from 'simple-git';
|
|
18
|
+
import * as p from '@clack/prompts';
|
|
19
|
+
import { filePathExists } from '../utils/fs';
|
|
20
|
+
/** Validate that a resolved path stays within the expected parent directory. */
|
|
21
|
+
function assertWithinDir(resolved, parent, label) {
|
|
22
|
+
const normalizedResolved = path.resolve(resolved);
|
|
23
|
+
const normalizedParent = path.resolve(parent);
|
|
24
|
+
if (!normalizedResolved.startsWith(normalizedParent + path.sep) &&
|
|
25
|
+
normalizedResolved !== normalizedParent) {
|
|
26
|
+
throw new Error(`${label} escapes the expected directory: ${resolved}`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Safely replace a directory by renaming the old one to a backup, renaming
|
|
31
|
+
* the new one into place, then deleting the backup. If interrupted between
|
|
32
|
+
* steps, at least one copy always exists on disk.
|
|
33
|
+
*/
|
|
34
|
+
async function safeReplaceDir(oldDir, newDir) {
|
|
35
|
+
const backupDir = `${oldDir}.sync-backup-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
36
|
+
const oldExists = await filePathExists(oldDir);
|
|
37
|
+
if (oldExists) {
|
|
38
|
+
await fs.rename(oldDir, backupDir);
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
await fs.rename(newDir, oldDir);
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
// Restore backup if the rename failed
|
|
45
|
+
if (oldExists) {
|
|
46
|
+
await fs.rename(backupDir, oldDir).catch(() => { });
|
|
47
|
+
}
|
|
48
|
+
throw err;
|
|
49
|
+
}
|
|
50
|
+
if (oldExists) {
|
|
51
|
+
await fs.rm(backupDir, { recursive: true, force: true }).catch(() => { });
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const SYNC_BASE_TAG = 'canopycms-sync-base';
|
|
55
|
+
/** Recursively list all file paths relative to `dir`. Skips .git and symlinks. */
|
|
56
|
+
async function listFilesRecursive(dir, prefix = '') {
|
|
57
|
+
const results = [];
|
|
58
|
+
let entries;
|
|
59
|
+
try {
|
|
60
|
+
entries = await fs.readdir(dir, { withFileTypes: true });
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return results;
|
|
64
|
+
}
|
|
65
|
+
for (const entry of entries) {
|
|
66
|
+
if (entry.name === '.git')
|
|
67
|
+
continue;
|
|
68
|
+
if (entry.isSymbolicLink())
|
|
69
|
+
continue;
|
|
70
|
+
const rel = prefix ? `${prefix}/${entry.name}` : entry.name;
|
|
71
|
+
if (entry.isDirectory()) {
|
|
72
|
+
results.push(...(await listFilesRecursive(path.join(dir, entry.name), rel)));
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
results.push(rel);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return results;
|
|
79
|
+
}
|
|
80
|
+
/** Recursively copy a directory, creating the destination if needed. Skips .git directories and symlinks. */
|
|
81
|
+
async function copyDir(src, dest) {
|
|
82
|
+
await fs.mkdir(dest, { recursive: true });
|
|
83
|
+
const entries = await fs.readdir(src, { withFileTypes: true });
|
|
84
|
+
for (const entry of entries) {
|
|
85
|
+
if (entry.name === '.git')
|
|
86
|
+
continue;
|
|
87
|
+
if (entry.isSymbolicLink())
|
|
88
|
+
continue;
|
|
89
|
+
const srcPath = path.join(src, entry.name);
|
|
90
|
+
const destPath = path.join(dest, entry.name);
|
|
91
|
+
if (entry.isDirectory()) {
|
|
92
|
+
await copyDir(srcPath, destPath);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
await fs.copyFile(srcPath, destPath);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Select a branch workspace. Auto-selects if only one exists, prompts if
|
|
101
|
+
* multiple, or uses the --branch flag. Returns null if cancelled or not found.
|
|
102
|
+
*/
|
|
103
|
+
async function selectBranch(options, branchesDir) {
|
|
104
|
+
let branches = [];
|
|
105
|
+
if (await filePathExists(branchesDir)) {
|
|
106
|
+
const entries = await fs.readdir(branchesDir, { withFileTypes: true });
|
|
107
|
+
branches = entries.filter((e) => e.isDirectory()).map((e) => e.name);
|
|
108
|
+
}
|
|
109
|
+
if (branches.length === 0) {
|
|
110
|
+
p.log.error('No branch workspaces found. Create a branch in the editor first.');
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
let branchName = options.branch;
|
|
114
|
+
if (!branchName) {
|
|
115
|
+
if (branches.length === 1) {
|
|
116
|
+
branchName = branches[0];
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
const result = await p.select({
|
|
120
|
+
message: 'Which branch?',
|
|
121
|
+
options: branches.map((b) => ({ value: b, label: b })),
|
|
122
|
+
});
|
|
123
|
+
if (p.isCancel(result)) {
|
|
124
|
+
p.cancel('Sync cancelled.');
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
branchName = result;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// Validate branch name does not escape the branches directory
|
|
131
|
+
const branchPath = path.join(branchesDir, branchName);
|
|
132
|
+
assertWithinDir(branchPath, branchesDir, '--branch');
|
|
133
|
+
if (!branches.includes(branchName)) {
|
|
134
|
+
p.log.error(`Branch workspace "${branchName}" not found.`);
|
|
135
|
+
p.log.info(`Available branches: ${branches.join(', ')}`);
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
return branchName;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Push: copy working-tree content into a branch workspace and commit.
|
|
142
|
+
* Tags the resulting commit as the sync base for future merges.
|
|
143
|
+
*/
|
|
144
|
+
async function syncPush(options) {
|
|
145
|
+
const { projectDir } = options;
|
|
146
|
+
const contentRoot = options.contentRoot || 'content';
|
|
147
|
+
const branchesDir = path.join(projectDir, '.canopy-dev', 'content-branches');
|
|
148
|
+
const branchName = await selectBranch(options, branchesDir);
|
|
149
|
+
if (!branchName)
|
|
150
|
+
return { fileCount: 0 };
|
|
151
|
+
const branchPath = path.join(branchesDir, branchName);
|
|
152
|
+
assertWithinDir(branchPath, branchesDir, '--branch');
|
|
153
|
+
const wsGit = simpleGit({ baseDir: branchPath });
|
|
154
|
+
// Validate source content
|
|
155
|
+
const srcContentDir = path.join(projectDir, contentRoot);
|
|
156
|
+
assertWithinDir(srcContentDir, projectDir, '--content-root');
|
|
157
|
+
if (!(await filePathExists(srcContentDir))) {
|
|
158
|
+
p.log.warn(`Content directory not found: ${contentRoot}/`);
|
|
159
|
+
return { fileCount: 0 };
|
|
160
|
+
}
|
|
161
|
+
// Check workspace health
|
|
162
|
+
const status = await wsGit.status();
|
|
163
|
+
if (status.conflicted.length > 0) {
|
|
164
|
+
p.log.error('Branch workspace has unresolved merge conflicts.');
|
|
165
|
+
if (!options.force) {
|
|
166
|
+
const shouldAbort = await p.confirm({
|
|
167
|
+
message: 'Abort the merge and restore workspace to pre-merge state?',
|
|
168
|
+
initialValue: false,
|
|
169
|
+
});
|
|
170
|
+
if (!p.isCancel(shouldAbort) && shouldAbort) {
|
|
171
|
+
await wsGit.merge(['--abort']);
|
|
172
|
+
p.log.success('Merge aborted. Workspace restored to pre-merge state.');
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return { fileCount: 0 };
|
|
176
|
+
}
|
|
177
|
+
// Warn about uncommitted workspace changes (editor saves)
|
|
178
|
+
if (status.files.length > 0 && !options.force) {
|
|
179
|
+
p.log.warn(`Branch workspace has ${status.files.length} uncommitted change(s) that will be committed to history then overwritten:`);
|
|
180
|
+
for (const file of status.files.slice(0, 10)) {
|
|
181
|
+
p.log.warn(` ${file.path}`);
|
|
182
|
+
}
|
|
183
|
+
if (status.files.length > 10) {
|
|
184
|
+
p.log.warn(` ... and ${status.files.length - 10} more`);
|
|
185
|
+
}
|
|
186
|
+
const confirm = await p.confirm({
|
|
187
|
+
message: 'Continue? Editor changes will be preserved in git history.',
|
|
188
|
+
initialValue: false,
|
|
189
|
+
});
|
|
190
|
+
if (p.isCancel(confirm) || !confirm) {
|
|
191
|
+
p.cancel('Push cancelled.');
|
|
192
|
+
return { fileCount: 0 };
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// Auto-commit uncommitted workspace changes to preserve in history
|
|
196
|
+
if (status.files.length > 0) {
|
|
197
|
+
await wsGit.add('-A');
|
|
198
|
+
await wsGit.commit('sync: save editor state before push');
|
|
199
|
+
p.log.info('Committed editor changes to history before push');
|
|
200
|
+
}
|
|
201
|
+
p.log.step(`Pushing content to branch workspace: ${branchName}`);
|
|
202
|
+
// Copy working-tree content → workspace content dir
|
|
203
|
+
const wsContentDir = path.join(branchPath, contentRoot);
|
|
204
|
+
assertWithinDir(wsContentDir, branchPath, '--content-root');
|
|
205
|
+
const tmpDir = `${wsContentDir}.sync-tmp-${Date.now()}`;
|
|
206
|
+
try {
|
|
207
|
+
await copyDir(srcContentDir, tmpDir);
|
|
208
|
+
await safeReplaceDir(wsContentDir, tmpDir);
|
|
209
|
+
}
|
|
210
|
+
catch (err) {
|
|
211
|
+
await fs.rm(tmpDir, { recursive: true, force: true }).catch(() => { });
|
|
212
|
+
throw err;
|
|
213
|
+
}
|
|
214
|
+
// Stage and check for changes
|
|
215
|
+
await wsGit.add('-A');
|
|
216
|
+
const postStatus = await wsGit.status();
|
|
217
|
+
if (postStatus.files.length === 0) {
|
|
218
|
+
p.log.info('Content is already up to date — nothing to push');
|
|
219
|
+
// Still tag as sync base — marks this as a known sync point for future merges
|
|
220
|
+
await wsGit.tag(['-f', SYNC_BASE_TAG]);
|
|
221
|
+
return { fileCount: 0 };
|
|
222
|
+
}
|
|
223
|
+
await wsGit.commit('sync: update content from working tree');
|
|
224
|
+
// Tag as sync base for future merges
|
|
225
|
+
await wsGit.tag(['-f', SYNC_BASE_TAG]);
|
|
226
|
+
p.log.success(`Pushed ${postStatus.files.length} file change(s) to branch "${branchName}"`);
|
|
227
|
+
return { fileCount: postStatus.files.length };
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Pull: copy content from a branch workspace back into the working tree.
|
|
231
|
+
*/
|
|
232
|
+
async function syncPull(options) {
|
|
233
|
+
const { projectDir } = options;
|
|
234
|
+
const contentRoot = options.contentRoot || 'content';
|
|
235
|
+
const branchesDir = path.join(projectDir, '.canopy-dev', 'content-branches');
|
|
236
|
+
const branchName = await selectBranch(options, branchesDir);
|
|
237
|
+
if (!branchName)
|
|
238
|
+
return { fileCount: 0 };
|
|
239
|
+
const branchPath = path.join(branchesDir, branchName);
|
|
240
|
+
assertWithinDir(branchPath, branchesDir, '--branch');
|
|
241
|
+
const branchContentDir = path.join(branchPath, contentRoot);
|
|
242
|
+
assertWithinDir(branchContentDir, branchPath, '--content-root');
|
|
243
|
+
if (!(await filePathExists(branchContentDir))) {
|
|
244
|
+
p.log.error(`Content directory not found in branch workspace: ${branchName}/${contentRoot}`);
|
|
245
|
+
return { fileCount: 0 };
|
|
246
|
+
}
|
|
247
|
+
p.log.step(`Pulling content from branch: ${branchName}`);
|
|
248
|
+
const destContentDir = path.join(projectDir, contentRoot);
|
|
249
|
+
assertWithinDir(destContentDir, projectDir, '--content-root');
|
|
250
|
+
// Check for uncommitted changes AND untracked files in the content directory
|
|
251
|
+
// before overwriting. The pull replaces the entire content directory, so any
|
|
252
|
+
// file not in the branch workspace will be lost.
|
|
253
|
+
const sourceGit = simpleGit({ baseDir: projectDir });
|
|
254
|
+
const status = await sourceGit.status();
|
|
255
|
+
const uncommittedContent = status.files.filter((f) => f.path.startsWith(contentRoot + '/') || f.path === contentRoot);
|
|
256
|
+
// Also detect untracked files that git status doesn't report (e.g., new files
|
|
257
|
+
// in subdirectories that haven't been staged). Walk the content directory and
|
|
258
|
+
// compare against the branch workspace to find files that would be deleted.
|
|
259
|
+
const untrackedLosses = [];
|
|
260
|
+
if (await filePathExists(destContentDir)) {
|
|
261
|
+
const localFiles = await listFilesRecursive(destContentDir);
|
|
262
|
+
const branchFiles = new Set(await listFilesRecursive(branchContentDir));
|
|
263
|
+
for (const file of localFiles) {
|
|
264
|
+
if (!branchFiles.has(file)) {
|
|
265
|
+
const relativePath = contentRoot + '/' + file;
|
|
266
|
+
// Only flag files not already captured by git status
|
|
267
|
+
if (!uncommittedContent.some((f) => f.path === relativePath)) {
|
|
268
|
+
untrackedLosses.push(relativePath);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
const totalWarnings = uncommittedContent.length + untrackedLosses.length;
|
|
274
|
+
if (totalWarnings > 0 && !options.force) {
|
|
275
|
+
if (uncommittedContent.length > 0) {
|
|
276
|
+
p.log.warn(`You have ${uncommittedContent.length} uncommitted change(s) in ${contentRoot}/:`);
|
|
277
|
+
for (const file of uncommittedContent.slice(0, 10)) {
|
|
278
|
+
p.log.warn(` ${file.path}`);
|
|
279
|
+
}
|
|
280
|
+
if (uncommittedContent.length > 10) {
|
|
281
|
+
p.log.warn(` ... and ${uncommittedContent.length - 10} more`);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
if (untrackedLosses.length > 0) {
|
|
285
|
+
p.log.warn(`${untrackedLosses.length} file(s) in ${contentRoot}/ not present in branch "${branchName}" will be deleted:`);
|
|
286
|
+
for (const file of untrackedLosses.slice(0, 10)) {
|
|
287
|
+
p.log.warn(` ${file}`);
|
|
288
|
+
}
|
|
289
|
+
if (untrackedLosses.length > 10) {
|
|
290
|
+
p.log.warn(` ... and ${untrackedLosses.length - 10} more`);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
const confirm = await p.confirm({
|
|
294
|
+
message: 'Overwrite content directory? Files listed above will be lost.',
|
|
295
|
+
initialValue: false,
|
|
296
|
+
});
|
|
297
|
+
if (p.isCancel(confirm) || !confirm) {
|
|
298
|
+
p.cancel('Pull cancelled. Commit or stash your changes first.');
|
|
299
|
+
return { fileCount: 0 };
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
// Replace the working-tree content with the branch workspace content.
|
|
303
|
+
// Uses backup-rename pattern: if interrupted, at least one copy always exists.
|
|
304
|
+
const tmpDestDir = `${destContentDir}.sync-tmp-${Date.now()}`;
|
|
305
|
+
try {
|
|
306
|
+
await copyDir(branchContentDir, tmpDestDir);
|
|
307
|
+
await safeReplaceDir(destContentDir, tmpDestDir);
|
|
308
|
+
}
|
|
309
|
+
catch (err) {
|
|
310
|
+
// Clean up temp dir on failure, preserve original
|
|
311
|
+
await fs.rm(tmpDestDir, { recursive: true, force: true }).catch(() => { });
|
|
312
|
+
throw err;
|
|
313
|
+
}
|
|
314
|
+
// Show what changed using git status (re-check after copy)
|
|
315
|
+
const postStatus = await sourceGit.status();
|
|
316
|
+
const contentChanges = postStatus.files.filter((f) => f.path.startsWith(contentRoot + '/') || f.path === contentRoot);
|
|
317
|
+
if (contentChanges.length === 0) {
|
|
318
|
+
p.log.info('Content is already up to date — nothing to pull');
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
p.log.success(`Pulled ${contentChanges.length} changed file(s) from branch "${branchName}"`);
|
|
322
|
+
for (const file of contentChanges.slice(0, 20)) {
|
|
323
|
+
const indicator = file.working_dir === '?' ? 'A' : file.working_dir || file.index;
|
|
324
|
+
p.log.info(` ${indicator} ${file.path}`);
|
|
325
|
+
}
|
|
326
|
+
if (contentChanges.length > 20) {
|
|
327
|
+
p.log.info(` ... and ${contentChanges.length - 20} more`);
|
|
328
|
+
}
|
|
329
|
+
p.log.info('\nReview the changes, then git add and commit when ready.');
|
|
330
|
+
}
|
|
331
|
+
return { fileCount: contentChanges.length };
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Both: merge working-tree changes with editor changes in the workspace
|
|
335
|
+
* using a 3-way git merge, then pull the merged result back.
|
|
336
|
+
*
|
|
337
|
+
* Uses a `canopycms-sync-base` tag as the merge base — this tag is set
|
|
338
|
+
* by push after each successful sync.
|
|
339
|
+
*/
|
|
340
|
+
async function syncBoth(options) {
|
|
341
|
+
const { projectDir } = options;
|
|
342
|
+
const contentRoot = options.contentRoot || 'content';
|
|
343
|
+
const branchesDir = path.join(projectDir, '.canopy-dev', 'content-branches');
|
|
344
|
+
const branchName = await selectBranch(options, branchesDir);
|
|
345
|
+
if (!branchName)
|
|
346
|
+
return { pushed: 0, pulled: 0 };
|
|
347
|
+
const branchPath = path.join(branchesDir, branchName);
|
|
348
|
+
assertWithinDir(branchPath, branchesDir, '--branch');
|
|
349
|
+
const wsGit = simpleGit({ baseDir: branchPath });
|
|
350
|
+
// Validate source content
|
|
351
|
+
const srcContentDir = path.join(projectDir, contentRoot);
|
|
352
|
+
assertWithinDir(srcContentDir, projectDir, '--content-root');
|
|
353
|
+
if (!(await filePathExists(srcContentDir))) {
|
|
354
|
+
p.log.warn(`Content directory not found: ${contentRoot}/`);
|
|
355
|
+
return { pushed: 0, pulled: 0 };
|
|
356
|
+
}
|
|
357
|
+
// Check workspace health
|
|
358
|
+
const status = await wsGit.status();
|
|
359
|
+
if (status.conflicted.length > 0) {
|
|
360
|
+
p.log.error('Branch workspace has unresolved merge conflicts.');
|
|
361
|
+
if (!options.force) {
|
|
362
|
+
const shouldAbort = await p.confirm({
|
|
363
|
+
message: 'Abort the merge and restore workspace to pre-merge state?',
|
|
364
|
+
initialValue: false,
|
|
365
|
+
});
|
|
366
|
+
if (!p.isCancel(shouldAbort) && shouldAbort) {
|
|
367
|
+
await wsGit.merge(['--abort']);
|
|
368
|
+
p.log.success('Merge aborted. Workspace restored to pre-merge state.');
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
return { pushed: 0, pulled: 0 };
|
|
372
|
+
}
|
|
373
|
+
// Auto-commit uncommitted workspace changes (preserves editor work for the merge)
|
|
374
|
+
if (status.files.length > 0) {
|
|
375
|
+
await wsGit.add('-A');
|
|
376
|
+
await wsGit.commit('sync: save editor state before merge');
|
|
377
|
+
p.log.info('Committed editor changes before merge');
|
|
378
|
+
}
|
|
379
|
+
// Determine merge base
|
|
380
|
+
let baseRef;
|
|
381
|
+
try {
|
|
382
|
+
await wsGit.raw(['rev-parse', SYNC_BASE_TAG]);
|
|
383
|
+
baseRef = SYNC_BASE_TAG;
|
|
384
|
+
}
|
|
385
|
+
catch {
|
|
386
|
+
// First time: no tag exists. Use current HEAD as base.
|
|
387
|
+
baseRef = 'HEAD';
|
|
388
|
+
}
|
|
389
|
+
// Remember the current branch to switch back after merge
|
|
390
|
+
const currentBranch = (await wsGit.revparse(['--abbrev-ref', 'HEAD'])).trim();
|
|
391
|
+
// Create temp branch from the merge base
|
|
392
|
+
const incomingBranch = `sync-incoming-${Date.now()}`;
|
|
393
|
+
await wsGit.raw(['checkout', '-b', incomingBranch, baseRef]);
|
|
394
|
+
// Replace content on temp branch with working-tree content
|
|
395
|
+
const wsContentDir = path.join(branchPath, contentRoot);
|
|
396
|
+
assertWithinDir(wsContentDir, branchPath, '--content-root');
|
|
397
|
+
const tmpDir = `${wsContentDir}.sync-tmp-${Date.now()}`;
|
|
398
|
+
try {
|
|
399
|
+
await copyDir(srcContentDir, tmpDir);
|
|
400
|
+
await safeReplaceDir(wsContentDir, tmpDir);
|
|
401
|
+
}
|
|
402
|
+
catch (err) {
|
|
403
|
+
await fs.rm(tmpDir, { recursive: true, force: true }).catch(() => { });
|
|
404
|
+
// Switch back to workspace branch before re-throwing
|
|
405
|
+
await wsGit.checkout(currentBranch);
|
|
406
|
+
await wsGit.raw(['branch', '-D', incomingBranch]).catch(() => { });
|
|
407
|
+
throw err;
|
|
408
|
+
}
|
|
409
|
+
await wsGit.add('-A');
|
|
410
|
+
const incomingStatus = await wsGit.status();
|
|
411
|
+
// No working-tree changes — skip merge, just pull editor changes
|
|
412
|
+
if (incomingStatus.files.length === 0) {
|
|
413
|
+
await wsGit.checkout(currentBranch);
|
|
414
|
+
await wsGit.raw(['branch', '-D', incomingBranch]);
|
|
415
|
+
p.log.info('No working-tree changes to merge — pulling editor changes only');
|
|
416
|
+
const pullResult = await syncPull({ ...options, branch: branchName, force: true });
|
|
417
|
+
return { pushed: 0, pulled: pullResult.fileCount };
|
|
418
|
+
}
|
|
419
|
+
await wsGit.commit('sync: incoming working-tree changes');
|
|
420
|
+
// Switch back to workspace branch and merge
|
|
421
|
+
await wsGit.checkout(currentBranch);
|
|
422
|
+
p.log.step('Merging working-tree changes with editor changes...');
|
|
423
|
+
try {
|
|
424
|
+
await wsGit.merge([incomingBranch, '--no-edit']);
|
|
425
|
+
}
|
|
426
|
+
catch (mergeError) {
|
|
427
|
+
// Check if it's a merge conflict
|
|
428
|
+
let mergeStatus;
|
|
429
|
+
try {
|
|
430
|
+
mergeStatus = await wsGit.status();
|
|
431
|
+
}
|
|
432
|
+
catch {
|
|
433
|
+
// status() failed — clean up incoming branch and re-throw original error
|
|
434
|
+
await wsGit.raw(['branch', '-D', incomingBranch]).catch(() => { });
|
|
435
|
+
throw mergeError;
|
|
436
|
+
}
|
|
437
|
+
if (mergeStatus.conflicted.length > 0) {
|
|
438
|
+
p.log.error('Merge conflicts detected in the following files:');
|
|
439
|
+
for (const file of mergeStatus.conflicted) {
|
|
440
|
+
p.log.error(` ${file}`);
|
|
441
|
+
}
|
|
442
|
+
p.log.info('The branch workspace is now in a merge state.');
|
|
443
|
+
p.log.info('Resolve the conflicts in the workspace, then run: canopycms sync --pull');
|
|
444
|
+
p.log.info('Or abort the merge with: canopycms sync --abort');
|
|
445
|
+
// Clean up the incoming branch (leave merge state for user resolution)
|
|
446
|
+
await wsGit.raw(['branch', '-D', incomingBranch]).catch(() => { });
|
|
447
|
+
return { pushed: 0, pulled: 0 };
|
|
448
|
+
}
|
|
449
|
+
// Not a conflict — clean up and re-throw original error
|
|
450
|
+
await wsGit.raw(['branch', '-D', incomingBranch]).catch(() => { });
|
|
451
|
+
throw mergeError;
|
|
452
|
+
}
|
|
453
|
+
// Clean merge succeeded
|
|
454
|
+
await wsGit.raw(['branch', '-D', incomingBranch]);
|
|
455
|
+
await wsGit.tag(['-f', SYNC_BASE_TAG]);
|
|
456
|
+
p.log.success('Merged working-tree changes with editor changes');
|
|
457
|
+
// Pull merged result back to working tree
|
|
458
|
+
const pullResult = await syncPull({ ...options, branch: branchName, force: true });
|
|
459
|
+
return { pushed: incomingStatus.files.length, pulled: pullResult.fileCount };
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Abort: cancel a failed merge in a branch workspace by running `git merge --abort`.
|
|
463
|
+
* Restores the workspace to its pre-merge state.
|
|
464
|
+
*/
|
|
465
|
+
async function syncAbort(options) {
|
|
466
|
+
const { projectDir } = options;
|
|
467
|
+
const branchesDir = path.join(projectDir, '.canopy-dev', 'content-branches');
|
|
468
|
+
const branchName = await selectBranch(options, branchesDir);
|
|
469
|
+
if (!branchName)
|
|
470
|
+
return;
|
|
471
|
+
const branchPath = path.join(branchesDir, branchName);
|
|
472
|
+
assertWithinDir(branchPath, branchesDir, '--branch');
|
|
473
|
+
const wsGit = simpleGit({ baseDir: branchPath });
|
|
474
|
+
const status = await wsGit.status();
|
|
475
|
+
if (status.conflicted.length === 0) {
|
|
476
|
+
p.log.info(`Branch workspace "${branchName}" is not in a merge state — nothing to abort.`);
|
|
477
|
+
return;
|
|
478
|
+
}
|
|
479
|
+
await wsGit.merge(['--abort']);
|
|
480
|
+
p.log.success(`Merge aborted in branch workspace "${branchName}". Workspace restored to pre-merge state.`);
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Run the sync command.
|
|
484
|
+
*
|
|
485
|
+
* @returns Summary of what was synced
|
|
486
|
+
*/
|
|
487
|
+
export async function sync(options) {
|
|
488
|
+
p.intro('CanopyCMS sync');
|
|
489
|
+
let pushed = 0;
|
|
490
|
+
let pulled = 0;
|
|
491
|
+
if (options.direction === 'abort') {
|
|
492
|
+
await syncAbort(options);
|
|
493
|
+
}
|
|
494
|
+
else if (options.direction === 'both') {
|
|
495
|
+
const result = await syncBoth(options);
|
|
496
|
+
pushed = result.pushed;
|
|
497
|
+
pulled = result.pulled;
|
|
498
|
+
}
|
|
499
|
+
else if (options.direction === 'push') {
|
|
500
|
+
const result = await syncPush(options);
|
|
501
|
+
pushed = result.fileCount;
|
|
502
|
+
}
|
|
503
|
+
else {
|
|
504
|
+
const result = await syncPull(options);
|
|
505
|
+
pulled = result.fileCount;
|
|
506
|
+
}
|
|
507
|
+
p.outro('Done!');
|
|
508
|
+
return { pushed, pulled };
|
|
509
|
+
}
|
|
510
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/cli/sync.ts"],"names":[],"mappings":"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"}
|