@syntero/orca-cli 1.2.5 → 1.2.7
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/dist/components/ChatApp.js +2 -2
- package/dist/components/ChatApp.js.map +1 -1
- package/dist/components/InputFooter.d.ts +3 -3
- package/dist/components/InputFooter.d.ts.map +1 -1
- package/dist/components/InputFooter.js +3 -3
- package/dist/components/InputFooter.js.map +1 -1
- package/dist/components/SyncMenu.d.ts +4 -4
- package/dist/components/SyncMenu.d.ts.map +1 -1
- package/dist/components/SyncMenu.js +26 -26
- package/dist/components/SyncMenu.js.map +1 -1
- package/dist/hooks/useInputDispatch.js +1 -1
- package/dist/hooks/useInputDispatch.js.map +1 -1
- package/dist/hooks/useSyncFetchers.d.ts +1 -1
- package/dist/hooks/useSyncFetchers.d.ts.map +1 -1
- package/dist/hooks/useSyncFetchers.js +8 -9
- package/dist/hooks/useSyncFetchers.js.map +1 -1
- package/dist/sync/download.d.ts +0 -27
- package/dist/sync/download.d.ts.map +1 -1
- package/dist/sync/download.js +2 -54
- package/dist/sync/download.js.map +1 -1
- package/dist/sync/index.d.ts +1 -1
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/manifest.d.ts +3 -37
- package/dist/sync/manifest.d.ts.map +1 -1
- package/dist/sync/manifest.js +13 -47
- package/dist/sync/manifest.js.map +1 -1
- package/dist/sync/progress.d.ts +3 -84
- package/dist/sync/progress.d.ts.map +1 -1
- package/dist/sync/progress.js +32 -71
- package/dist/sync/progress.js.map +1 -1
- package/dist/sync/sync-engine.d.ts +4 -4
- package/dist/sync/sync-engine.d.ts.map +1 -1
- package/dist/sync/sync-engine.js +79 -185
- package/dist/sync/sync-engine.js.map +1 -1
- package/dist/types/sync.d.ts +37 -119
- package/dist/types/sync.d.ts.map +1 -1
- package/dist/types/sync.js +3 -1
- package/dist/types/sync.js.map +1 -1
- package/package.json +1 -1
package/dist/sync/manifest.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import * as fs from 'fs';
|
|
7
7
|
import * as path from 'path';
|
|
8
|
+
import { debugLog } from '../utils.js';
|
|
8
9
|
// Sync data directory
|
|
9
10
|
const ORCA_DIR = path.join(process.env.HOME || process.env.USERPROFILE || '', '.orca');
|
|
10
11
|
const SYNC_DIR = path.join(ORCA_DIR, 'sync');
|
|
@@ -44,8 +45,7 @@ export function isFirstSync() {
|
|
|
44
45
|
}
|
|
45
46
|
/**
|
|
46
47
|
* Load the local sync manifest.
|
|
47
|
-
*
|
|
48
|
-
* @returns Local manifest or null if not found
|
|
48
|
+
* If the manifest is from an old format (no 'files' array), discard it.
|
|
49
49
|
*/
|
|
50
50
|
export function loadLocalManifest() {
|
|
51
51
|
if (!fs.existsSync(MANIFEST_PATH)) {
|
|
@@ -53,7 +53,14 @@ export function loadLocalManifest() {
|
|
|
53
53
|
}
|
|
54
54
|
try {
|
|
55
55
|
const data = fs.readFileSync(MANIFEST_PATH, 'utf-8');
|
|
56
|
-
|
|
56
|
+
const raw = JSON.parse(data);
|
|
57
|
+
// Old v1 manifest — just discard it
|
|
58
|
+
if (!Array.isArray(raw.files)) {
|
|
59
|
+
debugLog('[manifest] Discarding old-format manifest (no files array)');
|
|
60
|
+
fs.unlinkSync(MANIFEST_PATH);
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
return raw;
|
|
57
64
|
}
|
|
58
65
|
catch {
|
|
59
66
|
return null;
|
|
@@ -61,8 +68,6 @@ export function loadLocalManifest() {
|
|
|
61
68
|
}
|
|
62
69
|
/**
|
|
63
70
|
* Save the local sync manifest.
|
|
64
|
-
*
|
|
65
|
-
* @param manifest Manifest to save
|
|
66
71
|
*/
|
|
67
72
|
export function saveLocalManifest(manifest) {
|
|
68
73
|
ensureSyncDir();
|
|
@@ -70,8 +75,6 @@ export function saveLocalManifest(manifest) {
|
|
|
70
75
|
}
|
|
71
76
|
/**
|
|
72
77
|
* Load the sync state.
|
|
73
|
-
*
|
|
74
|
-
* @returns Sync state or default idle state if not found
|
|
75
78
|
*/
|
|
76
79
|
export function loadSyncState() {
|
|
77
80
|
if (!fs.existsSync(STATE_PATH)) {
|
|
@@ -87,8 +90,6 @@ export function loadSyncState() {
|
|
|
87
90
|
}
|
|
88
91
|
/**
|
|
89
92
|
* Save the sync state.
|
|
90
|
-
*
|
|
91
|
-
* @param state State to save
|
|
92
93
|
*/
|
|
93
94
|
export function saveSyncState(state) {
|
|
94
95
|
ensureSyncDir();
|
|
@@ -96,8 +97,6 @@ export function saveSyncState(state) {
|
|
|
96
97
|
}
|
|
97
98
|
/**
|
|
98
99
|
* Update specific fields in the sync state.
|
|
99
|
-
*
|
|
100
|
-
* @param updates Partial state updates to apply
|
|
101
100
|
*/
|
|
102
101
|
export function updateSyncState(updates) {
|
|
103
102
|
const current = loadSyncState();
|
|
@@ -118,8 +117,6 @@ export function startSync() {
|
|
|
118
117
|
}
|
|
119
118
|
/**
|
|
120
119
|
* Set sync state to completed with statistics.
|
|
121
|
-
*
|
|
122
|
-
* @param stats Sync statistics
|
|
123
120
|
*/
|
|
124
121
|
export function completeSync(stats) {
|
|
125
122
|
updateSyncState({
|
|
@@ -132,8 +129,6 @@ export function completeSync(stats) {
|
|
|
132
129
|
}
|
|
133
130
|
/**
|
|
134
131
|
* Set sync state to interrupted with pending queue.
|
|
135
|
-
*
|
|
136
|
-
* @param pendingQueue Remaining work to be done
|
|
137
132
|
*/
|
|
138
133
|
export function interruptSync(pendingQueue) {
|
|
139
134
|
updateSyncState({
|
|
@@ -143,8 +138,6 @@ export function interruptSync(pendingQueue) {
|
|
|
143
138
|
}
|
|
144
139
|
/**
|
|
145
140
|
* Set sync state to error with error details.
|
|
146
|
-
*
|
|
147
|
-
* @param error Error information
|
|
148
141
|
*/
|
|
149
142
|
export function failSync(error) {
|
|
150
143
|
updateSyncState({
|
|
@@ -154,8 +147,6 @@ export function failSync(error) {
|
|
|
154
147
|
}
|
|
155
148
|
/**
|
|
156
149
|
* Update current operation being performed.
|
|
157
|
-
*
|
|
158
|
-
* @param operation Current operation details
|
|
159
150
|
*/
|
|
160
151
|
export function updateCurrentOperation(operation) {
|
|
161
152
|
const current = loadSyncState();
|
|
@@ -185,42 +176,18 @@ export function getPendingQueue() {
|
|
|
185
176
|
export function clearSyncState() {
|
|
186
177
|
saveSyncState({ status: 'idle' });
|
|
187
178
|
}
|
|
188
|
-
/**
|
|
189
|
-
* Build local solution entries from a completed sync.
|
|
190
|
-
*
|
|
191
|
-
* @param solutions Remote solution entries that were synced
|
|
192
|
-
* @returns Local solution entries with sync metadata
|
|
193
|
-
*/
|
|
194
|
-
export function buildLocalSolutionEntries(solutions) {
|
|
195
|
-
const now = new Date().toISOString();
|
|
196
|
-
return solutions.map(s => ({
|
|
197
|
-
library_id: s.library_id,
|
|
198
|
-
solution_hash: s.solution_hash,
|
|
199
|
-
synced_at: now,
|
|
200
|
-
files: s.files.map(f => ({
|
|
201
|
-
path: f.path,
|
|
202
|
-
hash: f.hash,
|
|
203
|
-
size: f.size
|
|
204
|
-
})),
|
|
205
|
-
status: 'complete'
|
|
206
|
-
}));
|
|
207
|
-
}
|
|
208
179
|
/**
|
|
209
180
|
* Get sync status summary for display.
|
|
210
181
|
*/
|
|
211
182
|
export function getSyncStatusSummary() {
|
|
212
183
|
const state = loadSyncState();
|
|
213
184
|
const manifest = loadLocalManifest();
|
|
214
|
-
let solutionCount = 0;
|
|
215
185
|
let fileCount = 0;
|
|
216
186
|
let totalSize = 0;
|
|
217
187
|
if (manifest) {
|
|
218
|
-
|
|
219
|
-
for (const
|
|
220
|
-
|
|
221
|
-
for (const file of solution.files) {
|
|
222
|
-
totalSize += file.size;
|
|
223
|
-
}
|
|
188
|
+
fileCount = manifest.files.length;
|
|
189
|
+
for (const file of manifest.files) {
|
|
190
|
+
totalSize += file.size;
|
|
224
191
|
}
|
|
225
192
|
}
|
|
226
193
|
// Calculate relative time for last sync
|
|
@@ -248,7 +215,6 @@ export function getSyncStatusSummary() {
|
|
|
248
215
|
status: state.status,
|
|
249
216
|
lastSyncTime,
|
|
250
217
|
lastSyncRelative,
|
|
251
|
-
solutionCount,
|
|
252
218
|
fileCount,
|
|
253
219
|
totalSize,
|
|
254
220
|
orgId: manifest?.org_id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/sync/manifest.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/sync/manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/sync/progress.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Progress display utilities for library sync.
|
|
3
3
|
*/
|
|
4
|
+
import { SyncPlan } from '../types/sync.js';
|
|
4
5
|
/**
|
|
5
6
|
* Progress state during sync.
|
|
6
7
|
*/
|
|
7
8
|
export interface ProgressState {
|
|
8
9
|
phase: 'preflight' | 'manifest' | 'comparing' | 'downloading' | 'cleaning' | 'complete';
|
|
9
|
-
currentSolution?: string;
|
|
10
10
|
currentFile?: string;
|
|
11
11
|
filesTotal: number;
|
|
12
12
|
filesComplete: number;
|
|
@@ -16,130 +16,52 @@ export interface ProgressState {
|
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Format bytes into human-readable string.
|
|
19
|
-
*
|
|
20
|
-
* @param bytes Number of bytes
|
|
21
|
-
* @returns Formatted string (e.g., "1.5 MB")
|
|
22
19
|
*/
|
|
23
20
|
export declare function formatBytes(bytes: number): string;
|
|
24
21
|
/**
|
|
25
22
|
* Format duration in milliseconds to human-readable string.
|
|
26
|
-
*
|
|
27
|
-
* @param ms Duration in milliseconds
|
|
28
|
-
* @returns Formatted string (e.g., "2m 30s")
|
|
29
23
|
*/
|
|
30
24
|
export declare function formatDuration(ms: number): string;
|
|
31
25
|
/**
|
|
32
26
|
* Create a progress bar string.
|
|
33
|
-
*
|
|
34
|
-
* @param percent Percentage complete (0-100)
|
|
35
|
-
* @param width Width of progress bar in characters
|
|
36
|
-
* @returns Progress bar string
|
|
37
27
|
*/
|
|
38
28
|
export declare function createProgressBar(percent: number, width?: number): string;
|
|
39
29
|
/**
|
|
40
30
|
* Display sync progress.
|
|
41
|
-
*
|
|
42
|
-
* @param state Current progress state
|
|
43
31
|
*/
|
|
44
32
|
export declare function displayProgress(state: ProgressState): void;
|
|
45
33
|
/**
|
|
46
34
|
* Display phase message.
|
|
47
|
-
*
|
|
48
|
-
* @param phase Current phase
|
|
49
|
-
* @param message Optional additional message
|
|
50
35
|
*/
|
|
51
36
|
export declare function displayPhase(phase: string, message?: string): void;
|
|
52
37
|
/**
|
|
53
38
|
* Display a section header.
|
|
54
|
-
*
|
|
55
|
-
* @param title Section title
|
|
56
39
|
*/
|
|
57
40
|
export declare function displayHeader(title: string): void;
|
|
58
41
|
/**
|
|
59
42
|
* Display a success message.
|
|
60
|
-
*
|
|
61
|
-
* @param message Message to display
|
|
62
43
|
*/
|
|
63
44
|
export declare function displaySuccess(message: string): void;
|
|
64
45
|
/**
|
|
65
46
|
* Display a warning message.
|
|
66
|
-
*
|
|
67
|
-
* @param message Message to display
|
|
68
47
|
*/
|
|
69
48
|
export declare function displayWarning(message: string): void;
|
|
70
49
|
/**
|
|
71
50
|
* Display an error message.
|
|
72
|
-
*
|
|
73
|
-
* @param message Message to display
|
|
74
51
|
*/
|
|
75
52
|
export declare function displayError(message: string): void;
|
|
76
53
|
/**
|
|
77
54
|
* Display sync plan summary.
|
|
78
|
-
*
|
|
79
|
-
* @param plan Sync plan details
|
|
80
55
|
*/
|
|
81
|
-
export declare function displaySyncPlan(plan:
|
|
82
|
-
newSolutions: string[];
|
|
83
|
-
modifiedSolutions: string[];
|
|
84
|
-
deletedSolutions: string[];
|
|
85
|
-
filesToDownload: {
|
|
86
|
-
solution: string;
|
|
87
|
-
path: string;
|
|
88
|
-
size: number;
|
|
89
|
-
}[];
|
|
90
|
-
filesToDelete: {
|
|
91
|
-
solution: string;
|
|
92
|
-
path: string;
|
|
93
|
-
}[];
|
|
94
|
-
}): void;
|
|
95
|
-
/**
|
|
96
|
-
* Display detailed sync plan (for verbose mode).
|
|
97
|
-
*
|
|
98
|
-
* @param plan Sync plan details
|
|
99
|
-
* @param remoteManifest Remote manifest for additional details
|
|
100
|
-
*/
|
|
101
|
-
export declare function displayVerboseSyncPlan(plan: {
|
|
102
|
-
newSolutions: string[];
|
|
103
|
-
modifiedSolutions: string[];
|
|
104
|
-
deletedSolutions: string[];
|
|
105
|
-
filesToDownload: {
|
|
106
|
-
solution: string;
|
|
107
|
-
path: string;
|
|
108
|
-
size: number;
|
|
109
|
-
}[];
|
|
110
|
-
filesToDelete: {
|
|
111
|
-
solution: string;
|
|
112
|
-
path: string;
|
|
113
|
-
}[];
|
|
114
|
-
}): void;
|
|
56
|
+
export declare function displaySyncPlan(plan: SyncPlan): void;
|
|
115
57
|
/**
|
|
116
58
|
* Display dry run plan.
|
|
117
|
-
*
|
|
118
|
-
* @param plan Sync plan details
|
|
119
59
|
*/
|
|
120
|
-
export declare function displayDryRunPlan(plan:
|
|
121
|
-
newSolutions: string[];
|
|
122
|
-
modifiedSolutions: string[];
|
|
123
|
-
deletedSolutions: string[];
|
|
124
|
-
filesToDownload: {
|
|
125
|
-
solution: string;
|
|
126
|
-
path: string;
|
|
127
|
-
size: number;
|
|
128
|
-
}[];
|
|
129
|
-
filesToDelete: {
|
|
130
|
-
solution: string;
|
|
131
|
-
path: string;
|
|
132
|
-
}[];
|
|
133
|
-
}): void;
|
|
60
|
+
export declare function displayDryRunPlan(plan: SyncPlan): void;
|
|
134
61
|
/**
|
|
135
62
|
* Display sync completion summary.
|
|
136
|
-
*
|
|
137
|
-
* @param stats Sync statistics
|
|
138
63
|
*/
|
|
139
64
|
export declare function displaySyncComplete(stats: {
|
|
140
|
-
newSolutions: number;
|
|
141
|
-
updatedSolutions: number;
|
|
142
|
-
deletedSolutions: number;
|
|
143
65
|
filesDownloaded: number;
|
|
144
66
|
filesDeleted: number;
|
|
145
67
|
bytesDownloaded: number;
|
|
@@ -147,14 +69,11 @@ export declare function displaySyncComplete(stats: {
|
|
|
147
69
|
}): void;
|
|
148
70
|
/**
|
|
149
71
|
* Display sync status.
|
|
150
|
-
*
|
|
151
|
-
* @param status Status information
|
|
152
72
|
*/
|
|
153
73
|
export declare function displaySyncStatus(status: {
|
|
154
74
|
syncStatus: string;
|
|
155
75
|
lastSyncTime?: string;
|
|
156
76
|
lastSyncRelative?: string;
|
|
157
|
-
solutionCount: number;
|
|
158
77
|
fileCount: number;
|
|
159
78
|
totalSize: number;
|
|
160
79
|
orgId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/sync/progress.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/sync/progress.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,UAAU,GAAG,UAAU,CAAC;IACxF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASjD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAcjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,MAAM,CAI7E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CA4B1D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAGlE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGjD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAepD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAgCtD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAOP;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,IAAI,CA8BP"}
|
package/dist/sync/progress.js
CHANGED
|
@@ -4,9 +4,6 @@
|
|
|
4
4
|
import { Colors, color } from '../utils.js';
|
|
5
5
|
/**
|
|
6
6
|
* Format bytes into human-readable string.
|
|
7
|
-
*
|
|
8
|
-
* @param bytes Number of bytes
|
|
9
|
-
* @returns Formatted string (e.g., "1.5 MB")
|
|
10
7
|
*/
|
|
11
8
|
export function formatBytes(bytes) {
|
|
12
9
|
if (bytes === 0)
|
|
@@ -19,9 +16,6 @@ export function formatBytes(bytes) {
|
|
|
19
16
|
}
|
|
20
17
|
/**
|
|
21
18
|
* Format duration in milliseconds to human-readable string.
|
|
22
|
-
*
|
|
23
|
-
* @param ms Duration in milliseconds
|
|
24
|
-
* @returns Formatted string (e.g., "2m 30s")
|
|
25
19
|
*/
|
|
26
20
|
export function formatDuration(ms) {
|
|
27
21
|
if (ms < 1000)
|
|
@@ -39,10 +33,6 @@ export function formatDuration(ms) {
|
|
|
39
33
|
}
|
|
40
34
|
/**
|
|
41
35
|
* Create a progress bar string.
|
|
42
|
-
*
|
|
43
|
-
* @param percent Percentage complete (0-100)
|
|
44
|
-
* @param width Width of progress bar in characters
|
|
45
|
-
* @returns Progress bar string
|
|
46
36
|
*/
|
|
47
37
|
export function createProgressBar(percent, width = 30) {
|
|
48
38
|
const filled = Math.round((percent / 100) * width);
|
|
@@ -51,8 +41,6 @@ export function createProgressBar(percent, width = 30) {
|
|
|
51
41
|
}
|
|
52
42
|
/**
|
|
53
43
|
* Display sync progress.
|
|
54
|
-
*
|
|
55
|
-
* @param state Current progress state
|
|
56
44
|
*/
|
|
57
45
|
export function displayProgress(state) {
|
|
58
46
|
const elapsed = Date.now() - state.startTime;
|
|
@@ -81,9 +69,6 @@ export function displayProgress(state) {
|
|
|
81
69
|
}
|
|
82
70
|
/**
|
|
83
71
|
* Display phase message.
|
|
84
|
-
*
|
|
85
|
-
* @param phase Current phase
|
|
86
|
-
* @param message Optional additional message
|
|
87
72
|
*/
|
|
88
73
|
export function displayPhase(phase, message) {
|
|
89
74
|
const fullMessage = message ? `${phase}: ${message}` : phase;
|
|
@@ -91,8 +76,6 @@ export function displayPhase(phase, message) {
|
|
|
91
76
|
}
|
|
92
77
|
/**
|
|
93
78
|
* Display a section header.
|
|
94
|
-
*
|
|
95
|
-
* @param title Section title
|
|
96
79
|
*/
|
|
97
80
|
export function displayHeader(title) {
|
|
98
81
|
console.log(color(`\n${title}`, Colors.bold));
|
|
@@ -100,103 +83,82 @@ export function displayHeader(title) {
|
|
|
100
83
|
}
|
|
101
84
|
/**
|
|
102
85
|
* Display a success message.
|
|
103
|
-
*
|
|
104
|
-
* @param message Message to display
|
|
105
86
|
*/
|
|
106
87
|
export function displaySuccess(message) {
|
|
107
88
|
console.log(color(message, Colors.green));
|
|
108
89
|
}
|
|
109
90
|
/**
|
|
110
91
|
* Display a warning message.
|
|
111
|
-
*
|
|
112
|
-
* @param message Message to display
|
|
113
92
|
*/
|
|
114
93
|
export function displayWarning(message) {
|
|
115
94
|
console.log(color(message, Colors.yellow));
|
|
116
95
|
}
|
|
117
96
|
/**
|
|
118
97
|
* Display an error message.
|
|
119
|
-
*
|
|
120
|
-
* @param message Message to display
|
|
121
98
|
*/
|
|
122
99
|
export function displayError(message) {
|
|
123
100
|
console.log(color(message, Colors.red));
|
|
124
101
|
}
|
|
125
102
|
/**
|
|
126
103
|
* Display sync plan summary.
|
|
127
|
-
*
|
|
128
|
-
* @param plan Sync plan details
|
|
129
104
|
*/
|
|
130
105
|
export function displaySyncPlan(plan) {
|
|
131
106
|
console.log('\nChanges detected:');
|
|
132
|
-
if (plan.
|
|
133
|
-
|
|
107
|
+
if (plan.filesToDownload.length > 0) {
|
|
108
|
+
const totalSize = plan.filesToDownload.reduce((sum, f) => sum + f.size, 0);
|
|
109
|
+
console.log(color(` + ${plan.filesToDownload.length} file${plan.filesToDownload.length > 1 ? 's' : ''} to download (${formatBytes(totalSize)})`, Colors.green));
|
|
134
110
|
}
|
|
135
|
-
if (plan.
|
|
136
|
-
console.log(color(`
|
|
111
|
+
if (plan.filesToDelete.length > 0) {
|
|
112
|
+
console.log(color(` - ${plan.filesToDelete.length} file${plan.filesToDelete.length > 1 ? 's' : ''} to delete`, Colors.red));
|
|
137
113
|
}
|
|
138
|
-
if (plan.
|
|
139
|
-
console.log(color(` - ${plan.deletedSolutions.length} deleted solution${plan.deletedSolutions.length > 1 ? 's' : ''}`, Colors.red));
|
|
140
|
-
}
|
|
141
|
-
if (plan.newSolutions.length === 0 && plan.modifiedSolutions.length === 0 && plan.deletedSolutions.length === 0) {
|
|
114
|
+
if (plan.filesToDownload.length === 0 && plan.filesToDelete.length === 0) {
|
|
142
115
|
console.log(color(' No changes detected', Colors.dim));
|
|
143
116
|
}
|
|
144
117
|
}
|
|
145
|
-
/**
|
|
146
|
-
* Display detailed sync plan (for verbose mode).
|
|
147
|
-
*
|
|
148
|
-
* @param plan Sync plan details
|
|
149
|
-
* @param remoteManifest Remote manifest for additional details
|
|
150
|
-
*/
|
|
151
|
-
export function displayVerboseSyncPlan(plan) {
|
|
152
|
-
// New solutions
|
|
153
|
-
for (const solutionId of plan.newSolutions) {
|
|
154
|
-
const files = plan.filesToDownload.filter(f => f.solution === solutionId);
|
|
155
|
-
const totalSize = files.reduce((sum, f) => sum + f.size, 0);
|
|
156
|
-
console.log(color(` + ${solutionId}`, Colors.green) + ` (new, ${files.length} files, ${formatBytes(totalSize)})`);
|
|
157
|
-
}
|
|
158
|
-
// Modified solutions
|
|
159
|
-
for (const solutionId of plan.modifiedSolutions) {
|
|
160
|
-
const downloads = plan.filesToDownload.filter(f => f.solution === solutionId);
|
|
161
|
-
const deletes = plan.filesToDelete.filter(f => f.solution === solutionId);
|
|
162
|
-
console.log(color(` ~ ${solutionId}`, Colors.yellow) + ` (${downloads.length} files to update, ${deletes.length} to delete)`);
|
|
163
|
-
}
|
|
164
|
-
// Deleted solutions
|
|
165
|
-
for (const solutionId of plan.deletedSolutions) {
|
|
166
|
-
console.log(color(` - ${solutionId}`, Colors.red) + ' (will be removed)');
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
118
|
/**
|
|
170
119
|
* Display dry run plan.
|
|
171
|
-
*
|
|
172
|
-
* @param plan Sync plan details
|
|
173
120
|
*/
|
|
174
121
|
export function displayDryRunPlan(plan) {
|
|
175
122
|
console.log(color('\nDry run - no changes will be made\n', Colors.yellow));
|
|
176
123
|
console.log('Changes that would be applied:');
|
|
177
|
-
|
|
124
|
+
// Group files by top-level folder for readability
|
|
125
|
+
const downloadsByFolder = new Map();
|
|
126
|
+
for (const file of plan.filesToDownload) {
|
|
127
|
+
const folder = file.path.split('/')[0] || file.path;
|
|
128
|
+
const entry = downloadsByFolder.get(folder) || { count: 0, size: 0 };
|
|
129
|
+
entry.count++;
|
|
130
|
+
entry.size += file.size;
|
|
131
|
+
downloadsByFolder.set(folder, entry);
|
|
132
|
+
}
|
|
133
|
+
const deletesByFolder = new Map();
|
|
134
|
+
for (const file of plan.filesToDelete) {
|
|
135
|
+
const folder = file.path.split('/')[0] || file.path;
|
|
136
|
+
deletesByFolder.set(folder, (deletesByFolder.get(folder) || 0) + 1);
|
|
137
|
+
}
|
|
138
|
+
// Display downloads grouped by folder
|
|
139
|
+
for (const [folder, info] of downloadsByFolder) {
|
|
140
|
+
console.log(color(` + ${folder}/`, Colors.green) + ` (${info.count} file${info.count > 1 ? 's' : ''}, ${formatBytes(info.size)})`);
|
|
141
|
+
}
|
|
142
|
+
// Display deletes grouped by folder
|
|
143
|
+
for (const [folder, count] of deletesByFolder) {
|
|
144
|
+
console.log(color(` - ${folder}/`, Colors.red) + ` (${count} file${count > 1 ? 's' : ''} to delete)`);
|
|
145
|
+
}
|
|
178
146
|
const totalDownloadSize = plan.filesToDownload.reduce((sum, f) => sum + f.size, 0);
|
|
179
147
|
console.log(`\nTotal: ${plan.filesToDownload.length} files to download (${formatBytes(totalDownloadSize)}), ${plan.filesToDelete.length} to delete`);
|
|
180
148
|
}
|
|
181
149
|
/**
|
|
182
150
|
* Display sync completion summary.
|
|
183
|
-
*
|
|
184
|
-
* @param stats Sync statistics
|
|
185
151
|
*/
|
|
186
152
|
export function displaySyncComplete(stats) {
|
|
187
153
|
console.log('\n'); // New line after progress bar
|
|
188
154
|
displaySuccess('Sync complete!');
|
|
189
|
-
console.log(`
|
|
190
|
-
console.log(`
|
|
191
|
-
console.log(`
|
|
192
|
-
console.log(`
|
|
193
|
-
console.log(` Size: ${formatBytes(stats.bytesDownloaded)}`);
|
|
194
|
-
console.log(` Duration: ${formatDuration(stats.durationMs)}`);
|
|
155
|
+
console.log(` Downloaded: ${stats.filesDownloaded} file${stats.filesDownloaded !== 1 ? 's' : ''}`);
|
|
156
|
+
console.log(` Deleted: ${stats.filesDeleted} file${stats.filesDeleted !== 1 ? 's' : ''}`);
|
|
157
|
+
console.log(` Size: ${formatBytes(stats.bytesDownloaded)}`);
|
|
158
|
+
console.log(` Duration: ${formatDuration(stats.durationMs)}`);
|
|
195
159
|
}
|
|
196
160
|
/**
|
|
197
161
|
* Display sync status.
|
|
198
|
-
*
|
|
199
|
-
* @param status Status information
|
|
200
162
|
*/
|
|
201
163
|
export function displaySyncStatus(status) {
|
|
202
164
|
displayHeader('Library Sync Status');
|
|
@@ -213,7 +175,6 @@ export function displaySyncStatus(status) {
|
|
|
213
175
|
console.log(`Last sync: ${color('Never', Colors.yellow)}`);
|
|
214
176
|
}
|
|
215
177
|
console.log('\nLocal Library:');
|
|
216
|
-
console.log(` Solutions: ${status.solutionCount}`);
|
|
217
178
|
console.log(` Files: ${status.fileCount}`);
|
|
218
179
|
console.log(` Size: ${formatBytes(status.totalSize)}`);
|
|
219
180
|
if (status.syncStatus === 'in_progress') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/sync/progress.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAgB5C
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/sync/progress.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Sync Engine - Main sync logic for library sync.
|
|
2
|
+
* Sync Engine - Main sync logic for file-based library sync.
|
|
3
3
|
*
|
|
4
4
|
* Handles the complete sync workflow:
|
|
5
5
|
* 1. Pre-flight checks
|
|
6
|
-
* 2. Fetch remote manifest
|
|
7
|
-
* 3. Compare with local manifest
|
|
6
|
+
* 2. Fetch remote file manifest
|
|
7
|
+
* 3. Compare with local manifest (file-by-file hash comparison)
|
|
8
8
|
* 4. Build sync plan
|
|
9
9
|
* 5. Execute sync (download, verify, write to container)
|
|
10
10
|
* 6. Update local manifest and services registry
|
|
@@ -34,7 +34,7 @@ export declare class SyncEngine {
|
|
|
34
34
|
*/
|
|
35
35
|
private fetchRemoteManifest;
|
|
36
36
|
/**
|
|
37
|
-
* Build sync plan by comparing
|
|
37
|
+
* Build sync plan by comparing local and remote file lists.
|
|
38
38
|
*/
|
|
39
39
|
private buildSyncPlan;
|
|
40
40
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-engine.d.ts","sourceRoot":"","sources":["../../src/sync/sync-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"sync-engine.d.ts","sourceRoot":"","sources":["../../src/sync/sync-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EACL,WAAW,EACX,UAAU,EAMX,MAAM,kBAAkB,CAAC;AAgC1B;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,aAAa,CAAgB;gBAEzB,OAAO,GAAE,WAAgB;IAYrC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IA+JjC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;IA0DnC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB7B;;OAEG;YACW,mBAAmB;IAgEjC;;OAEG;IACH,OAAO,CAAC,aAAa;IAkCrB;;OAEG;YACW,eAAe;IA+E7B;;OAEG;YACW,sBAAsB;IAsCpC;;OAEG;YACW,mBAAmB;IA6CjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAY3B;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAG5E;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAG/E;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAGpD"}
|