@alfe.ai/openclaw-sync 0.0.1
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 +60 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +263 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/ignore.js +73 -0
- package/dist/ignore.js.map +1 -0
- package/dist/index.d.ts +433 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +469 -0
- package/dist/index.js.map +1 -0
- package/dist/sync-engine.js +672 -0
- package/dist/sync-engine.js.map +1 -0
- package/package.json +41 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
//#region src/config.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* AlfeSync configuration — read/write `.alfesync/config.json` in workspace root.
|
|
4
|
+
*/
|
|
5
|
+
interface SyncConfig {
|
|
6
|
+
agentId: string;
|
|
7
|
+
orgId: string;
|
|
8
|
+
token: string;
|
|
9
|
+
workspacePath: string;
|
|
10
|
+
apiUrl: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Resolve the .alfesync directory path for a given workspace root.
|
|
14
|
+
*/
|
|
15
|
+
declare function configDir(workspacePath: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* Resolve the config file path for a given workspace root.
|
|
18
|
+
*/
|
|
19
|
+
declare function configPath(workspacePath: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Check if a workspace has been initialized with AlfeSync.
|
|
22
|
+
*/
|
|
23
|
+
declare function isInitialized(workspacePath: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Read the AlfeSync config from a workspace.
|
|
26
|
+
* Returns null if not initialized.
|
|
27
|
+
*/
|
|
28
|
+
declare function readConfig(workspacePath: string): Promise<SyncConfig | null>;
|
|
29
|
+
/**
|
|
30
|
+
* Write the AlfeSync config to a workspace.
|
|
31
|
+
* Creates the .alfesync directory if it doesn't exist.
|
|
32
|
+
*/
|
|
33
|
+
declare function writeConfig(config: SyncConfig): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Load config from workspace, throwing if not initialized.
|
|
36
|
+
*/
|
|
37
|
+
declare function requireConfig(workspacePath: string): Promise<SyncConfig>;
|
|
38
|
+
//# sourceMappingURL=config.d.ts.map
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region src/manifest.d.ts
|
|
41
|
+
/**
|
|
42
|
+
* AlfeSync manifest — local file manifest at `.alfesync/manifest.json`.
|
|
43
|
+
*
|
|
44
|
+
* Tracks file hashes, sizes, sync timestamps, and storage classes
|
|
45
|
+
* to enable efficient diff-based syncing.
|
|
46
|
+
*/
|
|
47
|
+
interface ManifestEntry {
|
|
48
|
+
hash: string;
|
|
49
|
+
size: number;
|
|
50
|
+
lastSynced: string;
|
|
51
|
+
storageClass: "STANDARD" | "GLACIER_IR";
|
|
52
|
+
}
|
|
53
|
+
interface LocalManifest {
|
|
54
|
+
files: Record<string, ManifestEntry>;
|
|
55
|
+
}
|
|
56
|
+
interface RemoteManifest {
|
|
57
|
+
version: 1;
|
|
58
|
+
agentId: string;
|
|
59
|
+
lastSync: string;
|
|
60
|
+
files: Record<string, {
|
|
61
|
+
hash: string;
|
|
62
|
+
size: number;
|
|
63
|
+
modified: string;
|
|
64
|
+
etag?: string;
|
|
65
|
+
storageClass?: string;
|
|
66
|
+
compressed?: boolean;
|
|
67
|
+
}>;
|
|
68
|
+
}
|
|
69
|
+
interface ManifestDiff {
|
|
70
|
+
/** Files that exist locally but not on remote, or have changed locally */
|
|
71
|
+
toPush: string[];
|
|
72
|
+
/** Files that exist on remote but not locally, or are newer on remote */
|
|
73
|
+
toPull: string[];
|
|
74
|
+
/** Files that exist in both and have diverged (conflict) */
|
|
75
|
+
conflicts: string[];
|
|
76
|
+
/** Files that exist locally but were deleted on remote */
|
|
77
|
+
remoteDeleted: string[];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Read the local manifest. Returns empty manifest if not found.
|
|
81
|
+
*/
|
|
82
|
+
declare function readManifest(workspacePath: string): Promise<LocalManifest>;
|
|
83
|
+
/**
|
|
84
|
+
* Write the local manifest.
|
|
85
|
+
*/
|
|
86
|
+
declare function writeManifest(workspacePath: string, manifest: LocalManifest): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Update a single file entry in the local manifest.
|
|
89
|
+
*/
|
|
90
|
+
declare function updateManifestEntry(workspacePath: string, relativePath: string, entry: ManifestEntry): Promise<void>;
|
|
91
|
+
/**
|
|
92
|
+
* Remove a file entry from the local manifest.
|
|
93
|
+
*/
|
|
94
|
+
declare function removeManifestEntry(workspacePath: string, relativePath: string): Promise<void>;
|
|
95
|
+
/**
|
|
96
|
+
* Compute SHA-256 hash of a file using streaming (memory-efficient).
|
|
97
|
+
* Returns `sha256:<hex>` format.
|
|
98
|
+
*/
|
|
99
|
+
declare function computeFileHash(filePath: string): Promise<string>;
|
|
100
|
+
/**
|
|
101
|
+
* Diff the local manifest against the remote manifest.
|
|
102
|
+
*
|
|
103
|
+
* Returns lists of files to push, pull, and conflicts.
|
|
104
|
+
*/
|
|
105
|
+
declare function diffManifests(local: LocalManifest, remote: RemoteManifest): ManifestDiff;
|
|
106
|
+
//# sourceMappingURL=manifest.d.ts.map
|
|
107
|
+
//#endregion
|
|
108
|
+
//#region src/ignore.d.ts
|
|
109
|
+
/**
|
|
110
|
+
* AlfeSync ignore — parse `.alfesyncignore` (gitignore-style glob matching).
|
|
111
|
+
*
|
|
112
|
+
* Uses micromatch for glob pattern matching, compatible with .gitignore syntax.
|
|
113
|
+
*/
|
|
114
|
+
/**
|
|
115
|
+
* Load ignore patterns from `.alfesyncignore` file + defaults.
|
|
116
|
+
*/
|
|
117
|
+
declare function loadIgnorePatterns(workspacePath: string): Promise<string[]>;
|
|
118
|
+
/**
|
|
119
|
+
* Check if a relative path should be ignored.
|
|
120
|
+
*/
|
|
121
|
+
declare function shouldIgnore(relativePath: string, patterns: string[]): boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Filter a list of relative paths, removing ignored ones.
|
|
124
|
+
*/
|
|
125
|
+
declare function filterIgnored(paths: string[], patterns: string[]): string[];
|
|
126
|
+
//# sourceMappingURL=ignore.d.ts.map
|
|
127
|
+
//#endregion
|
|
128
|
+
//#region src/api-client.d.ts
|
|
129
|
+
interface ApiClientConfig {
|
|
130
|
+
apiUrl: string;
|
|
131
|
+
token: string;
|
|
132
|
+
agentId: string;
|
|
133
|
+
}
|
|
134
|
+
interface PresignResult {
|
|
135
|
+
path: string;
|
|
136
|
+
url: string;
|
|
137
|
+
expiresAt: string;
|
|
138
|
+
}
|
|
139
|
+
interface AgentStats {
|
|
140
|
+
agentId: string;
|
|
141
|
+
standardBytes: number;
|
|
142
|
+
glacierBytes: number;
|
|
143
|
+
fileCount: number;
|
|
144
|
+
lastSyncAt: string | null;
|
|
145
|
+
}
|
|
146
|
+
interface RegisterAgentResult {
|
|
147
|
+
agent: {
|
|
148
|
+
agentId: string;
|
|
149
|
+
orgId: string;
|
|
150
|
+
displayName: string;
|
|
151
|
+
status: string;
|
|
152
|
+
createdAt: string;
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
interface ConfirmResult {
|
|
156
|
+
filePath: string;
|
|
157
|
+
hash: string;
|
|
158
|
+
size: number;
|
|
159
|
+
storageClass: string;
|
|
160
|
+
syncedAt: string;
|
|
161
|
+
}
|
|
162
|
+
interface ReconstructResult {
|
|
163
|
+
agentId: string;
|
|
164
|
+
mode: "full" | "active" | "memory";
|
|
165
|
+
fileCount: number;
|
|
166
|
+
totalSize: number;
|
|
167
|
+
files: {
|
|
168
|
+
path: string;
|
|
169
|
+
url: string;
|
|
170
|
+
size: number;
|
|
171
|
+
compressed: boolean;
|
|
172
|
+
expiresAt: string;
|
|
173
|
+
}[];
|
|
174
|
+
generatedAt: string;
|
|
175
|
+
expiresAt: string;
|
|
176
|
+
}
|
|
177
|
+
interface FileHistoryEntry {
|
|
178
|
+
versionId: string;
|
|
179
|
+
isLatest: boolean;
|
|
180
|
+
lastModified: string;
|
|
181
|
+
size: number;
|
|
182
|
+
etag?: string;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Create an AlfeSync API client.
|
|
186
|
+
*/
|
|
187
|
+
declare function createApiClient(config: ApiClientConfig): {
|
|
188
|
+
/**
|
|
189
|
+
* Get the remote manifest for this agent.
|
|
190
|
+
*/
|
|
191
|
+
getManifest(): Promise<RemoteManifest>;
|
|
192
|
+
/**
|
|
193
|
+
* Request a presigned PUT URL for uploading a file.
|
|
194
|
+
*/
|
|
195
|
+
presignPut(filePath: string, contentType?: string): Promise<PresignResult>;
|
|
196
|
+
/**
|
|
197
|
+
* Request presigned PUT URLs for multiple files.
|
|
198
|
+
*/
|
|
199
|
+
presignPutBatch(files: {
|
|
200
|
+
path: string;
|
|
201
|
+
contentType?: string;
|
|
202
|
+
}[]): Promise<PresignResult[]>;
|
|
203
|
+
/**
|
|
204
|
+
* Confirm a presigned upload completed — updates DynamoDB.
|
|
205
|
+
*/
|
|
206
|
+
confirmUpload(filePath: string, hash: string, size: number, storageClass?: "STANDARD" | "GLACIER_IR"): Promise<ConfirmResult>;
|
|
207
|
+
/**
|
|
208
|
+
* Request a presigned GET URL for downloading a file.
|
|
209
|
+
*/
|
|
210
|
+
presignGet(filePath: string): Promise<PresignResult>;
|
|
211
|
+
/**
|
|
212
|
+
* Request presigned GET URLs for multiple files.
|
|
213
|
+
*/
|
|
214
|
+
presignGetBatch(paths: string[]): Promise<PresignResult[]>;
|
|
215
|
+
/**
|
|
216
|
+
* Get agent storage stats.
|
|
217
|
+
*/
|
|
218
|
+
getStats(): Promise<AgentStats>;
|
|
219
|
+
/**
|
|
220
|
+
* Register this agent with the sync service.
|
|
221
|
+
*/
|
|
222
|
+
registerAgent(displayName?: string): Promise<RegisterAgentResult>;
|
|
223
|
+
/**
|
|
224
|
+
* Get file version history.
|
|
225
|
+
*/
|
|
226
|
+
getFileHistory(filePath: string): Promise<FileHistoryEntry[]>;
|
|
227
|
+
/**
|
|
228
|
+
* Generate a reconstruction bundle.
|
|
229
|
+
*/
|
|
230
|
+
reconstruct(mode?: "full" | "active" | "memory"): Promise<ReconstructResult>;
|
|
231
|
+
};
|
|
232
|
+
type ApiClient = ReturnType<typeof createApiClient>;
|
|
233
|
+
//# sourceMappingURL=api-client.d.ts.map
|
|
234
|
+
//#endregion
|
|
235
|
+
//#region src/sync-engine.d.ts
|
|
236
|
+
/**
|
|
237
|
+
* AlfeSync engine — orchestrates push, pull, and full sync operations.
|
|
238
|
+
*
|
|
239
|
+
* Handles:
|
|
240
|
+
* - push(paths[]): upload changed files to S3
|
|
241
|
+
* - pull(): download files newer on remote
|
|
242
|
+
* - fullSync(): bidirectional sync with conflict detection
|
|
243
|
+
*
|
|
244
|
+
* Conflict resolution: if remote file is newer than local manifest entry
|
|
245
|
+
* AND local file has changed → write `.conflict-{timestamp}` alongside original.
|
|
246
|
+
*/
|
|
247
|
+
interface SyncResult {
|
|
248
|
+
pushed: number;
|
|
249
|
+
pulled: number;
|
|
250
|
+
conflicts: number;
|
|
251
|
+
errors: number;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Create a sync engine for a workspace.
|
|
255
|
+
*/
|
|
256
|
+
declare function createSyncEngine(workspacePath: string): Promise<{
|
|
257
|
+
config: SyncConfig;
|
|
258
|
+
client: {
|
|
259
|
+
getManifest(): Promise<RemoteManifest>;
|
|
260
|
+
presignPut(filePath: string, contentType?: string): Promise<PresignResult>;
|
|
261
|
+
presignPutBatch(files: {
|
|
262
|
+
path: string;
|
|
263
|
+
contentType?: string;
|
|
264
|
+
}[]): Promise<PresignResult[]>;
|
|
265
|
+
confirmUpload(filePath: string, hash: string, size: number, storageClass?: "STANDARD" | "GLACIER_IR"): Promise<ConfirmResult>;
|
|
266
|
+
presignGet(filePath: string): Promise<PresignResult>;
|
|
267
|
+
presignGetBatch(paths: string[]): Promise<PresignResult[]>;
|
|
268
|
+
getStats(): Promise<AgentStats>;
|
|
269
|
+
registerAgent(displayName?: string): Promise<RegisterAgentResult>;
|
|
270
|
+
getFileHistory(filePath: string): Promise<FileHistoryEntry[]>;
|
|
271
|
+
reconstruct(mode?: "full" | "active" | "memory"): Promise<ReconstructResult>;
|
|
272
|
+
};
|
|
273
|
+
/**
|
|
274
|
+
* Push changed files to remote.
|
|
275
|
+
*
|
|
276
|
+
* If paths are provided, only push those files.
|
|
277
|
+
* If no paths, detect all changed files and push them.
|
|
278
|
+
*/
|
|
279
|
+
push(paths?: string[], options?: {
|
|
280
|
+
quiet?: boolean;
|
|
281
|
+
filter?: string;
|
|
282
|
+
}): Promise<SyncResult>;
|
|
283
|
+
/**
|
|
284
|
+
* Pull files from remote that are newer than local.
|
|
285
|
+
*/
|
|
286
|
+
pull(options?: {
|
|
287
|
+
quiet?: boolean;
|
|
288
|
+
}): Promise<SyncResult>;
|
|
289
|
+
/**
|
|
290
|
+
* Full bidirectional sync with conflict detection.
|
|
291
|
+
*
|
|
292
|
+
* For conflicts: if remote file is newer than local manifest entry AND
|
|
293
|
+
* local file has changed → write `.conflict-{timestamp}` file alongside
|
|
294
|
+
* the original, then pull the remote version.
|
|
295
|
+
*/
|
|
296
|
+
fullSync(options?: {
|
|
297
|
+
quiet?: boolean;
|
|
298
|
+
}): Promise<SyncResult>;
|
|
299
|
+
/**
|
|
300
|
+
* Pull specific files by path without a full manifest diff.
|
|
301
|
+
*
|
|
302
|
+
* Used for notification-driven pulls where we already know which
|
|
303
|
+
* files changed on the remote.
|
|
304
|
+
*/
|
|
305
|
+
pullFiles(paths: string[], options?: {
|
|
306
|
+
quiet?: boolean;
|
|
307
|
+
}): Promise<SyncResult>;
|
|
308
|
+
/**
|
|
309
|
+
* Remove a file locally and from the manifest.
|
|
310
|
+
*
|
|
311
|
+
* Used for notification-driven deletes when a remote file is removed.
|
|
312
|
+
*/
|
|
313
|
+
removeLocalFile(filePath: string, options?: {
|
|
314
|
+
quiet?: boolean;
|
|
315
|
+
}): Promise<void>;
|
|
316
|
+
}>;
|
|
317
|
+
type SyncEngine = Awaited<ReturnType<typeof createSyncEngine>>;
|
|
318
|
+
//# sourceMappingURL=sync-engine.d.ts.map
|
|
319
|
+
//#endregion
|
|
320
|
+
//#region src/watcher.d.ts
|
|
321
|
+
/**
|
|
322
|
+
* AlfeSync watcher — recursive file watcher with debounce and ignore support.
|
|
323
|
+
*
|
|
324
|
+
* Uses chokidar to watch the workspace root, debounces per-file changes
|
|
325
|
+
* by 2 seconds, and emits batches of changed paths.
|
|
326
|
+
*/
|
|
327
|
+
interface WatcherOptions {
|
|
328
|
+
workspacePath: string;
|
|
329
|
+
/** Debounce delay per file in milliseconds. Default: 2000 */
|
|
330
|
+
debounceMs?: number;
|
|
331
|
+
/** Callback invoked with batches of changed relative paths */
|
|
332
|
+
onChanges: (paths: string[]) => void | Promise<void>;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Start watching a workspace for file changes.
|
|
336
|
+
*
|
|
337
|
+
* Returns a cleanup function to stop watching.
|
|
338
|
+
*/
|
|
339
|
+
declare function startWatcher(options: WatcherOptions): Promise<() => Promise<void>>;
|
|
340
|
+
//# sourceMappingURL=watcher.d.ts.map
|
|
341
|
+
//#endregion
|
|
342
|
+
//#region src/uploader.d.ts
|
|
343
|
+
interface UploadResult {
|
|
344
|
+
path: string;
|
|
345
|
+
success: boolean;
|
|
346
|
+
hash?: string;
|
|
347
|
+
size?: number;
|
|
348
|
+
error?: string;
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Upload multiple files to S3.
|
|
352
|
+
*
|
|
353
|
+
* Uploads are performed in parallel with a concurrency limit.
|
|
354
|
+
*/
|
|
355
|
+
declare function uploadFiles(workspacePath: string, relativePaths: string[], client: ApiClient, options?: {
|
|
356
|
+
concurrency?: number;
|
|
357
|
+
quiet?: boolean;
|
|
358
|
+
}): Promise<UploadResult[]>;
|
|
359
|
+
//# sourceMappingURL=uploader.d.ts.map
|
|
360
|
+
//#endregion
|
|
361
|
+
//#region src/downloader.d.ts
|
|
362
|
+
interface DownloadResult {
|
|
363
|
+
path: string;
|
|
364
|
+
success: boolean;
|
|
365
|
+
size?: number;
|
|
366
|
+
error?: string;
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Download multiple files from S3.
|
|
370
|
+
*
|
|
371
|
+
* Downloads are performed in parallel with a concurrency limit.
|
|
372
|
+
*/
|
|
373
|
+
declare function downloadFiles(workspacePath: string, relativePaths: string[], client: ApiClient, remoteManifest?: RemoteManifest, options?: {
|
|
374
|
+
concurrency?: number;
|
|
375
|
+
quiet?: boolean;
|
|
376
|
+
}): Promise<DownloadResult[]>;
|
|
377
|
+
//# sourceMappingURL=downloader.d.ts.map
|
|
378
|
+
//#endregion
|
|
379
|
+
//#region src/plugin.d.ts
|
|
380
|
+
/**
|
|
381
|
+
* @alfe.ai/openclaw-sync — OpenClaw Sync plugin.
|
|
382
|
+
*
|
|
383
|
+
* Wraps the existing sync engine as a lifecycle-managed integration,
|
|
384
|
+
* following the same plugin pattern as @alfe.ai/openclaw-mobile and
|
|
385
|
+
* @alfe.ai/openclaw-discord.
|
|
386
|
+
*
|
|
387
|
+
* Lifecycle:
|
|
388
|
+
* - activate(api): start the sync engine + watcher based on config
|
|
389
|
+
* - deactivate(api): stop the watcher, clean up resources
|
|
390
|
+
* - configure(api, config): update scope/schedule at runtime
|
|
391
|
+
*
|
|
392
|
+
* Registers 'sync.now' and 'sync.status' gateway RPC methods.
|
|
393
|
+
*/
|
|
394
|
+
/** Logger interface used by the plugin API */
|
|
395
|
+
interface PluginLogger {
|
|
396
|
+
info(msg: string): void;
|
|
397
|
+
warn(msg: string): void;
|
|
398
|
+
error(msg: string): void;
|
|
399
|
+
debug(msg: string): void;
|
|
400
|
+
}
|
|
401
|
+
/** Plugin API passed to activate/deactivate/configure */
|
|
402
|
+
interface PluginApi {
|
|
403
|
+
logger: PluginLogger;
|
|
404
|
+
config?: SyncPluginConfig;
|
|
405
|
+
registerGatewayMethod?: (name: string, handler: () => Promise<unknown>) => void;
|
|
406
|
+
}
|
|
407
|
+
interface SyncPluginConfig {
|
|
408
|
+
/** Workspace path to sync. Defaults to ~/.openclaw */
|
|
409
|
+
workspacePath?: string;
|
|
410
|
+
/** Sync scope — which data categories to sync */
|
|
411
|
+
syncScope?: ('config' | 'conversations' | 'memory')[];
|
|
412
|
+
/** Sync schedule — how often to auto-sync */
|
|
413
|
+
syncSchedule?: 'realtime' | 'hourly' | 'daily' | 'weekly';
|
|
414
|
+
/** IPC socket path override */
|
|
415
|
+
socketPath?: string;
|
|
416
|
+
/** Sync relay URL override (default: wss://sync.alfe.ai/ws) */
|
|
417
|
+
syncRelayUrl?: string;
|
|
418
|
+
}
|
|
419
|
+
declare const plugin: {
|
|
420
|
+
id: string;
|
|
421
|
+
name: string;
|
|
422
|
+
description: string;
|
|
423
|
+
version: string;
|
|
424
|
+
activate(api: PluginApi): Promise<void>;
|
|
425
|
+
deactivate(api: PluginApi): Promise<void>;
|
|
426
|
+
/**
|
|
427
|
+
* Runtime config update — apply new scope/schedule without full restart.
|
|
428
|
+
*/
|
|
429
|
+
configure(api: PluginApi, config: SyncPluginConfig): Promise<void>;
|
|
430
|
+
};
|
|
431
|
+
//#endregion
|
|
432
|
+
export { type AgentStats, type ApiClient, type ApiClientConfig, type ConfirmResult, type DownloadResult, type FileHistoryEntry, type LocalManifest, type ManifestDiff, type ManifestEntry, type PresignResult, type ReconstructResult, type RegisterAgentResult, type RemoteManifest, type SyncConfig, type SyncEngine, type SyncPluginConfig, type SyncResult, type UploadResult, type WatcherOptions, computeFileHash, configDir, configPath, createApiClient, createSyncEngine, diffManifests, downloadFiles, filterIgnored, isInitialized, loadIgnorePatterns, plugin, readConfig, readManifest, removeManifestEntry, requireConfig, shouldIgnore, startWatcher, updateManifestEntry, uploadFiles, writeConfig, writeManifest };
|
|
433
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/config.ts","../src/manifest.ts","../src/ignore.ts","../src/api-client.ts","../src/sync-engine.ts","../src/watcher.ts","../src/uploader.ts","../src/downloader.ts","../src/plugin.ts"],"mappings":";;AAQA;AAcA;AAOgB,UArBC,UAAA,CAqBS;EAOV,OAAA,EAAA,MAAA;EAQM,KAAA,EAAA,MAAU;EAAA,KAAA,EAAA,MAAA;eAErB,EAAA,MAAA;QAAR,EAAA,MAAA;;AAuBH;;;AAAuD,iBA/CvC,SAAA,CA+CuC,aAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;AAmBvD;;AAEW,iBA7DK,UAAA,CA6DL,aAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;iBAtDK,aAAA;;ACvBhB;AAOA;;AACwB,iBDuBF,UAAA,CCvBE,aAAA,EAAA,MAAA,CAAA,EDyBrB,OCzBqB,CDyBb,UCzBa,GAAA,IAAA,CAAA;;;AAGxB;AAiBA;AAuBsB,iBDKA,WAAA,CCLY,MAAA,EDKQ,UCLR,CAAA,EDKqB,OCLrB,CAAA,IAAA,CAAA;;;;AAExB,iBDsBY,aAAA,CCtBZ,aAAA,EAAA,MAAA,CAAA,EDwBP,OCxBO,CDwBC,UCxBD,CAAA;AAiBV;;;;AD3EA;AAcA;AAOA;AAOA;AAQA;AAAgC,UC/Bf,aAAA,CD+Be;MAErB,EAAA,MAAA;MAAR,EAAA,MAAA;EAAO,UAAA,EAAA,MAAA;EAuBY,YAAA,EAAW,UAAA,GAAA,YAAA;;AAAS,UCjDzB,aAAA,CDiDyB;OAAa,EChD9C,MDgD8C,CAAA,MAAA,EChD/B,aDgD+B,CAAA;;AAmBjC,UChEL,cAAA,CDgEkB;EAAA,OAAA,EAAA,CAAA;SAExB,EAAA,MAAA;UAAR,EAAA,MAAA;EAAO,KAAA,EC9DD,MD8DC,CAAA,MAAA,EAAA;;;;IC7EO,IAAA,CAAA,EAAA,MAAa;IAOb,YAAa,CAAA,EAAA,MAAA;IAAA,UAAA,CAAA,EAAA,OAAA;;;AACf,UAoBE,YAAA,CApBF;EAGE;EAiBA,MAAA,EAAA,MAAA,EAAY;EAuBP;EAAY,MAAA,EAAA,MAAA,EAAA;;WAE/B,EAAA,MAAA,EAAA;EAAO;EAiBY,aAAA,EAAA,MAAa,EAAA;;;;;AAcb,iBAjCA,YAAA,CAiCmB,aAAA,EAAA,MAAA,CAAA,EA/BtC,OA+BsC,CA/B9B,aA+B8B,CAAA;;;;AAI/B,iBAlBY,aAAA,CAkBZ,aAAA,EAAA,MAAA,EAAA,QAAA,EAhBE,aAgBF,CAAA,EAfP,OAeO,CAAA,IAAA,CAAA;AASV;AAgBA;AAgBA;AAA6B,iBA7CP,mBAAA,CA6CO,aAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EA1CpB,aA0CoB,CAAA,EAzC1B,OAyC0B,CAAA,IAAA,CAAA;;;;AAGd,iBAnCO,mBAAA,CAmCP,aAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAhCZ,OAgCY,CAAA,IAAA,CAAA;;;;ACvHf;AA4BgB,iBDwEM,eAAA,CCxEM,QAAA,EAAA,MAAA,CAAA,EDwE6B,OCxE7B,CAAA,MAAA,CAAA;AAa5B;;;;AC7DA;AAMiB,iBFkID,aAAA,CElIc,KAAA,EFmIrB,aEnIqB,EAAA,MAAA,EFoIpB,cEpIoB,CAAA,EFqI3B,YErI2B;AAM9B;;;;AHVA;AAcA;AAOA;AAOA;AAQA;;;AAEG,iBEpBmB,kBAAA,CFoBnB,aAAA,EAAA,MAAA,CAAA,EElBA,OFkBA,CAAA,MAAA,EAAA,CAAA;;AAuBH;;AAA0C,iBEf1B,YAAA,CFe0B,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,EAAA,OAAA;;;AAmB1C;AAAmC,iBErBnB,aAAA,CFqBmB,KAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA;;;;AApDnB,UG9BC,eAAA,CH8BY;EAQP,MAAA,EAAA,MAAU;EAAA,KAAA,EAAA,MAAA;SAErB,EAAA,MAAA;;AAAD,UGlCO,aAAA,CHkCP;EAuBY,IAAA,EAAA,MAAA;EAAW,GAAA,EAAA,MAAA;WAAS,EAAA,MAAA;;AAAoB,UGnD7C,UAAA,CHmD6C;EAmBxC,OAAA,EAAA,MAAA;EAAa,aAAA,EAAA,MAAA;cAExB,EAAA,MAAA;WAAR,EAAA,MAAA;EAAO,UAAA,EAAA,MAAA,GAAA,IAAA;;UGhEO,mBAAA;;IFbA,OAAA,EAAA,MAAa;IAOb,KAAA,EAAA,MAAa;IAAA,WAAA,EAAA,MAAA;IACN,MAAA,EAAA,MAAA;IAAf,SAAA,EAAA,MAAA;EAAM,CAAA;AAGf;AAiBiB,UELA,aAAA,CFKY;EAuBP,QAAA,EAAA,MAAY;EAAA,IAAA,EAAA,MAAA;MAEvB,EAAA,MAAA;cAAR,EAAA,MAAA;EAAO,QAAA,EAAA,MAAA;AAiBV;AAAmC,UEvClB,iBAAA,CFuCkB;SAEvB,EAAA,MAAA;MACT,EAAA,MAAA,GAAA,QAAA,GAAA,QAAA;EAAO,SAAA,EAAA,MAAA;EAWY,SAAA,EAAA,MAAA;EAAmB,KAAA,EAAA;IAGhC,IAAA,EAAA,MAAA;IACN,GAAA,EAAA,MAAA;IAAO,IAAA,EAAA,MAAA;IASY,UAAA,EAAA,OAAmB;IAgBnB,SAAA,EAAA,MAAe;EAgBrB,CAAA,EAAA;EAAa,WAAA,EAAA,MAAA;WACpB,EAAA,MAAA;;AAEN,UErFc,gBAAA,CFqFd;EAAY,SAAA,EAAA,MAAA;;;;ECvHO,IAAA,CAAA,EAAA,MAAA;AA4BtB;AAaA;;;iBCIgB,eAAA,SAAwB;EAjEvB;AAMjB;AAMA;EAQiB,WAAA,EAAA,EA+FQ,OA/FW,CA+FH,cA/FG,CAAA;EAUnB;AAQjB;AAgBA;EAWgB,UAAA,CAAA,QAAe,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,MAAA,CAAA,EA+DxB,OA/DwB,CA+DhB,aA/DgB,CAAA;EAAA;;;iBAkDN,CAAA,KAAA,EAAA;IAaV,IAAA,EAAA,MAAA;IAAR,WAAA,CAAA,EAAA,MAAA;KAgBQ,CAAA,EAAR,OAAQ,CAAA,aAAA,EAAA,CAAA;;;;eAkCiC,CAAA,QAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,UAAA,GAAA,YAAA,CAAA,EAXzC,OAWyC,CAXjC,aAWiC,CAAA;;;;YA4BlB,CAAA,QAAA,EAAA,MAAA,CAAA,EA5BU,OA4BV,CA5BkB,aA4BlB,CAAA;;;;iBAuBsB,CAAA,KAAA,EAAA,MAAA,EAAA,CAAA,EArCR,OAqCQ,CArCA,aAqCA,EAAA,CAAA;;;;EAatC,QAAA,EAAA,EApCQ,OAoCR,CApCgB,UAoChB,CAAA;EAUF;;;eAAY,CAAA,WAAA,CAAA,EAAA,MAAA,CAAA,EAlCjB,OAkCiB,CAlCT,mBAkCS,CAAA;EAAU;;;oCAvBU,QAAQ;EC7MnC;AAgBjB;;aAAsC,CAAA,IAAA,CAAA,EAAA,MAAA,GAAA,QAAA,GAAA,QAAA,CAAA,ED0M/B,OC1M+B,CD0MvB,iBC1MuB,CAAA;;KDoN1B,SAAA,GAAY,kBAAkB;;;;;AH1P1C;AAcA;AAOA;AAOA;AAQA;;;;;AAyBA;AAAiC,UIvChB,UAAA,CJuCgB;QAAS,EAAA,MAAA;QAAa,EAAA,MAAA;EAAO,SAAA,EAAA,MAAA;EAmBxC,MAAA,EAAA,MAAA;;;AC3EtB;AAOA;AAA8B,iBG0BR,gBAAA,CH1BQ,aAAA,EAAA,MAAA,CAAA,EG0B8B,OH1B9B,CAAA;QACN,EGyBc,UHzBd;QAAf,EAAA;IAAM,WAAA,EAAA,SAAA,gBAAA;IAGE,UAAA,CAAA,QAAc,EAAA,MAItB,EAAA,WAAM,CAAA,EAAA,MAAA,CAAA,SAAA,eAAA;IAaE,eAAY,CAAA,KAAA,EAAA;MAuBP,IAAA,EAAA,MAAY;MAAA,WAAA,CAAA,EAAA,MAAA;IAEvB,CAAA,EAAA,CAAA,SAAA,gBAAA,CAAA;IAAR,aAAA,CAAA,QAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,UAAA,GAAA,YAAA,CAAA,SAAA,eAAA;IAAO,UAAA,CAAA,QAAA,EAAA,MAAA,CAAA,SAAA,eAAA;IAiBY,eAAa,CAAA,KAAA,EAAA,MAAA,EAAA,CAAA,SAAA,gBAAA,CAAA;IAAA,QAAA,EAAA,SAAA,YAAA;IAEvB,aAAA,CAAA,WAAA,CAAA,EAAA,MAAA,CAAA,SAAA,qBAAA;IACT,cAAA,CAAA,QAAA,EAAA,MAAA,CAAA,SAAA,mBAAA,CAAA;IAAO,WAAA,CAAA,IAAA,CAAA,EAAA,MAAA,GAAA,QAAA,GAAA,QAAA,CAAA,SAAA,mBAAA;EAWY,CAAA;EAAmB;;;;AAazC;AAgBA;EAgBgB,IAAA,CAAA,KAAa,CAAb,EAAA,MAAa,EAAA,EAAA,QAAA,EAAA;IAAA,KAAA,CAAA,EAAA,OAAA;IACpB,MAAA,CAAA,EAAA,MAAA;MG5EF,OH6EG,CG7EK,UH6EL,CAAA;;;;cCtHY;;EAAA,CAAA,CAAA,EE6Ff,OF7Fe,CE6FP,UF7FyB,CAAA;EA4BxB;AAahB;;;;AC7DA;AAMA;EAMiB,QAAA,CAAA,OAkBA,CAlBU,EAAA;IAQV,KAAA,CAAA,EAAA,OAAA;EAUA,CAAA,CAAA,EC4IV,OD5IU,CC4IF,UD5Ie,CAAA;EAQb;AAgBjB;AAWA;;;;WAkDyB,CAAA,KAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA;IAaV,KAAA,CAAA,EAAA,OAAA;MCoKR,ODpKA,CCoKQ,UDpKR,CAAA;;;;;;iBAkDiC,CAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA;IAcY,KAAA,CAAA,EAAA,OAAA;MC2J7C,OD3JqC,CAAA,IAAA,CAAA;;AActB,KCgPV,UAAA,GAAa,ODhPH,CCgPW,UDhPX,CAAA,OCgP6B,gBDhP7B,CAAA,CAAA;;;;;AH5MtB;AAcA;AAOA;AAOA;AAQA;AAAgC,UKjCf,cAAA,CLiCe;eAErB,EAAA,MAAA;;EAAD,UAAA,CAAA,EAAA,MAAA;EAuBY;EAAW,SAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,IAAA,GKrDQ,OLqDR,CAAA,IAAA,CAAA;;;;AAmBjC;;;AAEG,iBKlEmB,YAAA,CLkEnB,OAAA,EKjEQ,cLiER,CAAA,EKhEA,OLgEA,CAAA,GAAA,GKhEc,OLgEd,CAAA,IAAA,CAAA,CAAA;;;;AArBuC,UM7CzB,YAAA,CN6CyB;MAAa,EAAA,MAAA;EAAO,OAAA,EAAA,OAAA;EAmBxC,IAAA,CAAA,EAAA,MAAA;EAAa,IAAA,CAAA,EAAA,MAAA;OAExB,CAAA,EAAA,MAAA;;;;;;AC7EX;AAOiB,iBKkHK,WAAA,CLlHQ,aAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EKqHpB,SLrHoB,EAAA,QAAA,EAAA;EAAA,WAAA,CAAA,EAAA,MAAA;OACN,CAAA,EAAA,OAAA;IKsHrB,OLtHM,CKsHE,YLtHF,EAAA,CAAA;;;;ADgDwB,UO/ChB,cAAA,CP+CgB;MAAS,EAAA,MAAA;SAAa,EAAA,OAAA;EAAO,IAAA,CAAA,EAAA,MAAA;EAmBxC,KAAA,CAAA,EAAA,MAAA;;;;;;;iBOKA,aAAA,yDAGZ,4BACS,uBN7EW;EAPb,WAAA,CAAA,EAAA,MAAa;EAOb,KAAA,CAAA,EAAA,OAAA;CAAa,CAAA,EM+E3B,ON/E2B,CM+EnB,cN/EmB,EAAA,CAAA;;;;;ADZ9B;AAcA;AAOA;AAOA;AAQA;;;;;AAyBA;;;;;AAmBA,UQvDU,YAAA,CRuDyB;EAAA,IAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,IAAA;MAExB,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,IAAA;OAAR,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAO,KAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;;UQjDA,SAAA;EP5BO,MAAA,EO6BP,YP7BoB;EAOb,MAAA,CAAA,EOuBN,gBPvBmB;EAAA,qBAAA,CAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,GAAA,GOwB0B,OPxB1B,CAAA,OAAA,CAAA,EAAA,GAAA,IAAA;;AACrB,UOoDQ,gBAAA,CPpDR;EAAM;EAGE,aAAA,CAAA,EAAA,MAAc;EAiBd;EAuBK,SAAA,CAAA,EAAA,CAAA,QAAY,GAAA,eAAA,GAAA,QAAA,CAAA,EAAA;EAAA;cAEvB,CAAA,EAAA,UAAA,GAAA,QAAA,GAAA,OAAA,GAAA,QAAA;;EAAD,UAAA,CAAA,EAAA,MAAA;EAiBY;EAAa,YAAA,CAAA,EAAA,MAAA;;cOuT7B,MPpTH,EAAA;EAAO,EAAA,EAAA,MAAA;EAWY,IAAA,EAAA,MAAA;EAAmB,WAAA,EAAA,MAAA;SAGhC,EAAA,MAAA;UACN,CAAA,GAAA,EO4SmB,SP5SnB,CAAA,EO4S4B,OP5S5B,CAAA,IAAA,CAAA;EAAO,UAAA,CAAA,GAAA,EO2ac,SP3ad,CAAA,EO2auB,OP3avB,CAAA,IAAA,CAAA;EASY;AAgBtB;AAgBA;EAA6B,SAAA,CAAA,GAAA,EO2aN,SP3aM,EAAA,MAAA,EO2aa,gBP3ab,CAAA,EO2a6B,OP3a7B,CAAA,IAAA,CAAA"}
|