@filen/sync 0.1.3 → 0.1.4

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/lib/state.js CHANGED
@@ -7,6 +7,7 @@ exports.State = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
8
  const fs_extra_1 = __importDefault(require("fs-extra"));
9
9
  const v8_1 = require("v8");
10
+ const utils_1 = require("../utils");
10
11
  const STATE_VERSION = 1;
11
12
  /**
12
13
  * State
@@ -27,64 +28,75 @@ class State {
27
28
  const tasks = doneTasks.sort((a, b) => b.path.split("/").length - a.path.split("/").length);
28
29
  for (const task of tasks) {
29
30
  switch (task.type) {
30
- case "renameRemoteDirectory":
31
- case "renameRemoteFile": {
32
- for (const oldPath in currentRemoteTree.tree) {
33
- if (oldPath.startsWith(task.from + "/") || oldPath === task.from) {
34
- const newPath = oldPath.split(task.from).join(task.to);
35
- const oldItem = currentRemoteTree.tree[oldPath];
36
- if (oldItem) {
37
- const item = Object.assign(Object.assign({}, oldItem), { path: newPath, name: path_1.default.posix.basename(newPath) });
38
- currentRemoteTree.tree[newPath] = item;
39
- delete currentRemoteTree.tree[oldPath];
40
- }
41
- }
42
- }
43
- for (const uuid in currentRemoteTree.uuids) {
44
- const currentItem = currentRemoteTree.uuids[uuid];
45
- if (!currentItem) {
46
- continue;
47
- }
48
- const oldPath = currentItem.path;
49
- if (oldPath.startsWith(task.from + "/") || oldPath === task.from) {
50
- const newPath = oldPath.split(task.from).join(task.to);
51
- const item = Object.assign(Object.assign({}, currentItem), { path: newPath, name: path_1.default.posix.basename(newPath) });
52
- currentRemoteTree.uuids[uuid] = item;
53
- }
54
- }
55
- break;
56
- }
57
31
  case "renameLocalDirectory":
58
32
  case "renameLocalFile": {
33
+ if (this.sync.localFileHashes[task.from]) {
34
+ this.sync.localFileHashes[task.to] = this.sync.localFileHashes[task.from];
35
+ }
36
+ delete this.sync.localFileHashes[task.from];
37
+ const oldItem = currentLocalTree.tree[task.from];
38
+ if (oldItem) {
39
+ currentLocalTree.tree[task.to] = Object.assign(Object.assign({}, oldItem), { path: task.to });
40
+ currentLocalTree.inodes[oldItem.inode] = Object.assign(Object.assign({}, oldItem), { path: task.to });
41
+ }
42
+ delete currentLocalTree.tree[task.from];
59
43
  for (const oldPath in currentLocalTree.tree) {
60
- if (oldPath.startsWith(task.from + "/") || oldPath === task.from) {
61
- const newPath = oldPath.split(task.from).join(task.to);
44
+ if (oldPath.startsWith(task.from + "/") && oldPath !== task.from) {
45
+ const newPath = (0, utils_1.replacePathStartWithFromAndTo)(oldPath, task.from, task.to);
62
46
  const oldItem = currentLocalTree.tree[oldPath];
63
47
  if (oldItem) {
64
48
  const item = Object.assign(Object.assign({}, oldItem), { path: newPath });
65
49
  currentLocalTree.tree[newPath] = item;
66
50
  delete currentLocalTree.tree[oldPath];
51
+ const oldItemINode = currentLocalTree.inodes[oldItem.inode];
52
+ if (oldItemINode) {
53
+ currentLocalTree.inodes[oldItem.inode] = Object.assign(Object.assign({}, oldItemINode), { path: newPath });
54
+ }
55
+ }
56
+ const oldItemHash = this.sync.localFileHashes[oldPath];
57
+ if (oldItemHash) {
58
+ this.sync.localFileHashes[newPath] = oldItemHash;
59
+ delete this.sync.localFileHashes[oldPath];
67
60
  }
68
61
  }
69
62
  }
70
- for (const inode in currentLocalTree.inodes) {
71
- const currentItem = currentLocalTree.inodes[inode];
72
- if (!currentItem) {
73
- continue;
74
- }
75
- const oldPath = currentItem.path;
76
- if (oldPath.startsWith(task.from + "/") || oldPath === task.from) {
77
- const newPath = oldPath.split(task.from).join(task.to);
78
- const item = Object.assign(Object.assign({}, currentItem), { path: newPath });
79
- currentLocalTree.inodes[inode] = item;
63
+ break;
64
+ }
65
+ case "renameRemoteDirectory":
66
+ case "renameRemoteFile": {
67
+ const oldItem = currentRemoteTree.tree[task.from];
68
+ if (oldItem) {
69
+ const newItem = Object.assign(Object.assign({}, oldItem), { path: task.to, name: path_1.default.posix.basename(task.to) });
70
+ currentRemoteTree.tree[task.to] = newItem;
71
+ currentRemoteTree.uuids[oldItem.uuid] = newItem;
72
+ }
73
+ delete currentRemoteTree.tree[task.from];
74
+ for (const oldPath in currentRemoteTree.tree) {
75
+ if (oldPath.startsWith(task.from + "/") && oldPath !== task.from) {
76
+ const newPath = (0, utils_1.replacePathStartWithFromAndTo)(oldPath, task.from, task.to);
77
+ const oldItem = currentRemoteTree.tree[oldPath];
78
+ if (oldItem) {
79
+ const newItem = Object.assign(Object.assign({}, oldItem), { path: newPath, name: path_1.default.posix.basename(newPath) });
80
+ currentRemoteTree.tree[newPath] = newItem;
81
+ delete currentRemoteTree.tree[oldPath];
82
+ const oldItemUUID = currentRemoteTree.uuids[oldItem.uuid];
83
+ if (oldItemUUID) {
84
+ currentRemoteTree.uuids[oldItemUUID.uuid] = Object.assign(Object.assign({}, oldItemUUID), { path: newPath, name: path_1.default.posix.basename(newPath) });
85
+ }
86
+ }
80
87
  }
81
88
  }
82
89
  break;
83
90
  }
84
91
  case "deleteLocalDirectory":
85
- case "deleteLocalFile":
86
- case "deleteRemoteDirectory":
87
- case "deleteRemoteFile": {
92
+ case "deleteLocalFile": {
93
+ delete this.sync.localFileHashes[task.path];
94
+ delete currentLocalTree.tree[task.path];
95
+ for (const path in this.sync.localFileHashes) {
96
+ if (path.startsWith(task.path + "/") || path === task.path) {
97
+ delete this.sync.localFileHashes[path];
98
+ }
99
+ }
88
100
  for (const path in currentLocalTree.tree) {
89
101
  if (path.startsWith(task.path + "/") || path === task.path) {
90
102
  delete currentLocalTree.tree[path];
@@ -100,6 +112,11 @@ class State {
100
112
  delete currentLocalTree.inodes[inode];
101
113
  }
102
114
  }
115
+ break;
116
+ }
117
+ case "deleteRemoteDirectory":
118
+ case "deleteRemoteFile": {
119
+ delete currentRemoteTree.tree[task.path];
103
120
  for (const path in currentRemoteTree.tree) {
104
121
  if (path.startsWith(task.path + "/") || path === task.path) {
105
122
  delete currentRemoteTree.tree[path];
@@ -115,38 +132,51 @@ class State {
115
132
  delete currentRemoteTree.uuids[uuid];
116
133
  }
117
134
  }
118
- delete this.sync.localFileHashes[task.path];
119
135
  break;
120
136
  }
121
137
  case "createRemoteDirectory": {
122
- const item = {
123
- name: path_1.default.posix.basename(task.path),
138
+ const localItem = {
139
+ lastModified: parseInt(task.stats.mtimeMs), // Sometimes comes as a float, but we need an int
124
140
  type: "directory",
125
- uuid: task.uuid,
141
+ path: task.path,
126
142
  size: 0,
127
- path: task.path
143
+ creation: parseInt(task.stats.mtimeMs), // Sometimes comes as a float, but we need an int
144
+ inode: parseInt(task.stats.ino) // Sometimes comes as a float, but we need an int
128
145
  };
129
- currentRemoteTree.tree[task.path] = item;
130
- currentRemoteTree.uuids[item.uuid] = item;
146
+ currentRemoteTree.tree[task.item.path] = task.item;
147
+ currentRemoteTree.uuids[task.item.uuid] = task.item;
148
+ currentLocalTree.tree[task.path] = localItem;
149
+ currentLocalTree.inodes[localItem.inode] = localItem;
131
150
  break;
132
151
  }
133
152
  case "uploadFile": {
134
- const item = Object.assign(Object.assign({}, task.item), { path: task.path });
135
- currentRemoteTree.tree[task.path] = item;
136
- currentRemoteTree.uuids[item.uuid] = item;
153
+ const localItem = {
154
+ lastModified: parseInt(task.stats.mtimeMs), // Sometimes comes as a float, but we need an int
155
+ type: "file",
156
+ path: task.path,
157
+ size: parseInt(task.stats.size), // Sometimes comes as a float, but we need an int
158
+ creation: parseInt(task.stats.mtimeMs), // Sometimes comes as a float, but we need an int
159
+ inode: parseInt(task.stats.ino) // Sometimes comes as a float, but we need an int
160
+ };
161
+ currentRemoteTree.tree[task.item.path] = task.item;
162
+ currentRemoteTree.uuids[task.item.uuid] = task.item;
163
+ currentLocalTree.tree[task.path] = localItem;
164
+ currentLocalTree.inodes[localItem.inode] = localItem;
137
165
  break;
138
166
  }
139
167
  case "createLocalDirectory": {
140
- const item = {
168
+ const localItem = {
141
169
  lastModified: parseInt(task.stats.mtimeMs), // Sometimes comes as a float, but we need an int
142
170
  type: "directory",
143
171
  path: task.path,
144
172
  creation: parseInt(task.stats.birthtimeMs), // Sometimes comes as a float, but we need an int
145
- size: task.stats.size,
146
- inode: task.stats.ino
173
+ size: parseInt(task.stats.size), // Sometimes comes as a float, but we need an int
174
+ inode: parseInt(task.stats.ino) // Sometimes comes as a float, but we need an int
147
175
  };
148
- currentLocalTree.tree[task.path] = item;
149
- currentLocalTree.inodes[item.inode] = item;
176
+ currentLocalTree.tree[task.path] = localItem;
177
+ currentLocalTree.inodes[localItem.inode] = localItem;
178
+ currentRemoteTree.tree[task.item.path] = task.item;
179
+ currentRemoteTree.uuids[task.item.uuid] = task.item;
150
180
  break;
151
181
  }
152
182
  case "downloadFile": {
@@ -155,11 +185,13 @@ class State {
155
185
  type: "file",
156
186
  path: task.path,
157
187
  creation: parseInt(task.stats.birthtimeMs), // Sometimes comes as a float, but we need an int
158
- size: task.stats.size,
159
- inode: task.stats.ino
188
+ size: parseInt(task.stats.size), // Sometimes comes as a float, but we need an int
189
+ inode: parseInt(task.stats.ino) // Sometimes comes as a float, but we need an int
160
190
  };
161
191
  currentLocalTree.tree[task.path] = item;
162
192
  currentLocalTree.inodes[item.inode] = item;
193
+ currentRemoteTree.tree[task.item.path] = task.item;
194
+ currentRemoteTree.uuids[task.item.uuid] = task.item;
163
195
  break;
164
196
  }
165
197
  }
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/lib/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/lib/state.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,11 @@ import { type SyncPair, type SyncMode } from "../types";
3
3
  import { LocalFileSystem, LocalTree } from "./filesystems/local";
4
4
  import { RemoteFileSystem, RemoteTree } from "./filesystems/remote";
5
5
  import Deltas from "./deltas";
6
- import Tasks from "./tasks";
6
+ import Tasks, { type TaskError } from "./tasks";
7
7
  import State from "./state";
8
8
  import Ignorer from "../ignorer";
9
9
  import type SyncWorker from "..";
10
+ import Lock from "./lock";
10
11
  /**
11
12
  * Sync
12
13
  *
@@ -35,6 +36,10 @@ export declare class Sync {
35
36
  mode: SyncMode;
36
37
  excludeDotFiles: boolean;
37
38
  readonly worker: SyncWorker;
39
+ removed: boolean;
40
+ saveStateOnNoChanges: boolean;
41
+ readonly lock: Lock;
42
+ taskErrors: TaskError[];
38
43
  /**
39
44
  * Creates an instance of Sync.
40
45
  *
@@ -55,6 +60,7 @@ export declare class Sync {
55
60
  */
56
61
  private setupMainThreadListeners;
57
62
  initialize(): Promise<void>;
63
+ cleanup(): Promise<void>;
58
64
  private run;
59
65
  }
60
66
  export default Sync;
package/dist/lib/sync.js CHANGED
@@ -14,6 +14,7 @@ const ipc_1 = require("./ipc");
14
14
  const worker_threads_1 = require("worker_threads");
15
15
  const ignorer_1 = __importDefault(require("../ignorer"));
16
16
  const utils_1 = require("../utils");
17
+ const lock_1 = __importDefault(require("./lock"));
17
18
  /**
18
19
  * Sync
19
20
  *
@@ -44,6 +45,9 @@ class Sync {
44
45
  this.localFileHashes = {};
45
46
  this.abortControllers = {};
46
47
  this.pauseSignals = {};
48
+ this.removed = false;
49
+ this.saveStateOnNoChanges = true;
50
+ this.taskErrors = [];
47
51
  this.worker = worker;
48
52
  this.syncPair = syncPair;
49
53
  this.mode = syncPair.mode;
@@ -58,6 +62,7 @@ class Sync {
58
62
  this.state = new state_1.default(this);
59
63
  this.localIgnorer = new ignorer_1.default(this, "localIgnorer");
60
64
  this.remoteIgnorer = new ignorer_1.default(this, "remoteIgnorer");
65
+ this.lock = new lock_1.default(this);
61
66
  this.setupMainThreadListeners();
62
67
  }
63
68
  /**
@@ -123,7 +128,13 @@ class Sync {
123
128
  }
124
129
  this.isInitialized = true;
125
130
  try {
126
- //local/remote smoke test
131
+ const [localSmokeTest, remoteSmokeTest] = await Promise.all([
132
+ this.localFileSystem.isPathWritable(this.syncPair.localPath),
133
+ this.remoteFileSystem.remoteDirPathExisting()
134
+ ]);
135
+ if (!localSmokeTest || !remoteSmokeTest) {
136
+ throw new Error("Smoke tests failed. Either the local or remote path is not readable/writable");
137
+ }
127
138
  await Promise.all([
128
139
  this.localFileSystem.startDirectoryWatcher(),
129
140
  this.state.initialize(),
@@ -138,26 +149,101 @@ class Sync {
138
149
  throw e;
139
150
  }
140
151
  }
152
+ async cleanup() {
153
+ await this.localFileSystem.stopDirectoryWatcher();
154
+ this.isInitialized = false;
155
+ (0, ipc_1.postMessageToMain)({
156
+ type: "cycleExited",
157
+ syncPair: this.syncPair
158
+ });
159
+ }
141
160
  async run() {
142
- if (this.paused) {
161
+ if (this.removed) {
143
162
  (0, ipc_1.postMessageToMain)({
144
- type: "cyclePaused",
145
- syncPair: this.syncPair
146
- });
147
- setTimeout(() => {
148
- this.run();
149
- }, constants_1.SYNC_INTERVAL);
150
- (0, ipc_1.postMessageToMain)({
151
- type: "cycleRestarting",
163
+ type: "syncPairRemoved",
152
164
  syncPair: this.syncPair
153
165
  });
154
166
  return;
155
167
  }
156
- (0, ipc_1.postMessageToMain)({
157
- type: "cycleStarted",
158
- syncPair: this.syncPair
159
- });
160
168
  try {
169
+ if (this.taskErrors.length > 0) {
170
+ if (this.worker.runOnce) {
171
+ await this.cleanup();
172
+ return;
173
+ }
174
+ (0, ipc_1.postMessageToMain)({
175
+ type: "doneTasks",
176
+ syncPair: this.syncPair,
177
+ data: {
178
+ tasks: [],
179
+ errors: this.taskErrors.map(e => (Object.assign(Object.assign({}, e), { error: (0, utils_1.serializeError)(e.error) })))
180
+ }
181
+ });
182
+ (0, ipc_1.postMessageToMain)({
183
+ type: "cycleRestarting",
184
+ syncPair: this.syncPair
185
+ });
186
+ return;
187
+ }
188
+ if (this.paused) {
189
+ if (this.worker.runOnce) {
190
+ await this.cleanup();
191
+ return;
192
+ }
193
+ (0, ipc_1.postMessageToMain)({
194
+ type: "cyclePaused",
195
+ syncPair: this.syncPair
196
+ });
197
+ (0, ipc_1.postMessageToMain)({
198
+ type: "cycleRestarting",
199
+ syncPair: this.syncPair
200
+ });
201
+ return;
202
+ }
203
+ (0, ipc_1.postMessageToMain)({
204
+ type: "cycleStarted",
205
+ syncPair: this.syncPair
206
+ });
207
+ const [localSmokeTest, remoteSmokeTest] = await Promise.all([
208
+ this.localFileSystem.isPathWritable(this.syncPair.localPath),
209
+ this.remoteFileSystem.remoteDirPathExisting()
210
+ ]);
211
+ if (!localSmokeTest) {
212
+ if (this.worker.runOnce) {
213
+ await this.cleanup();
214
+ return;
215
+ }
216
+ (0, ipc_1.postMessageToMain)({
217
+ type: "cycleLocalSmokeTestFailed",
218
+ syncPair: this.syncPair,
219
+ data: {
220
+ error: (0, utils_1.serializeError)(new Error("Local path is not writable."))
221
+ }
222
+ });
223
+ (0, ipc_1.postMessageToMain)({
224
+ type: "cycleRestarting",
225
+ syncPair: this.syncPair
226
+ });
227
+ return;
228
+ }
229
+ if (!remoteSmokeTest) {
230
+ if (this.worker.runOnce) {
231
+ await this.cleanup();
232
+ return;
233
+ }
234
+ (0, ipc_1.postMessageToMain)({
235
+ type: "cycleLocalSmokeTestFailed",
236
+ syncPair: this.syncPair,
237
+ data: {
238
+ error: (0, utils_1.serializeError)(new Error("Remote path is not present or in the trash."))
239
+ }
240
+ });
241
+ (0, ipc_1.postMessageToMain)({
242
+ type: "cycleRestarting",
243
+ syncPair: this.syncPair
244
+ });
245
+ return;
246
+ }
161
247
  (0, ipc_1.postMessageToMain)({
162
248
  type: "cycleWaitingForLocalDirectoryChangesStarted",
163
249
  syncPair: this.syncPair
@@ -177,6 +263,24 @@ class Sync {
177
263
  this.remoteFileSystem.getDirectoryTree()
178
264
  ]);
179
265
  if (!currentLocalTree.changed && !currentRemoteTree.changed) {
266
+ if (this.taskErrors.length === 0) {
267
+ (0, ipc_1.postMessageToMain)({
268
+ type: "cycleSavingStateStarted",
269
+ syncPair: this.syncPair
270
+ });
271
+ this.previousLocalTree = currentLocalTree.result;
272
+ this.previousRemoteTree = currentRemoteTree.result;
273
+ // We only save the state once if there are no changes.
274
+ // This helps reducing the cpu and disk footprint when there are continuously no changes.
275
+ if (this.saveStateOnNoChanges) {
276
+ this.saveStateOnNoChanges = false;
277
+ await this.state.save();
278
+ }
279
+ (0, ipc_1.postMessageToMain)({
280
+ type: "cycleSavingStateDone",
281
+ syncPair: this.syncPair
282
+ });
283
+ }
180
284
  (0, ipc_1.postMessageToMain)({
181
285
  type: "cycleNoChanges",
182
286
  syncPair: this.syncPair
@@ -236,6 +340,7 @@ class Sync {
236
340
  syncPair: this.syncPair
237
341
  });
238
342
  const { doneTasks, errors } = await this.tasks.process({ deltas });
343
+ this.taskErrors = errors;
239
344
  (0, ipc_1.postMessageToMain)({
240
345
  type: "cycleProcessingTasksDone",
241
346
  syncPair: this.syncPair
@@ -245,37 +350,40 @@ class Sync {
245
350
  syncPair: this.syncPair,
246
351
  data: {
247
352
  tasks: doneTasks.map(task => (Object.assign({ path: task.path, type: task.type }, (task.type === "uploadFile" ? { item: task.item } : {})))),
248
- errors: errors.map(e => (Object.assign(Object.assign({}, e), { error: (0, utils_1.serializeError)(e.error) })))
353
+ errors: this.taskErrors.map(e => (Object.assign(Object.assign({}, e), { error: (0, utils_1.serializeError)(e.error) })))
249
354
  }
250
355
  });
251
- if (doneTasks.length > 0) {
356
+ if (this.taskErrors.length === 0) {
357
+ if (doneTasks.length > 0) {
358
+ (0, ipc_1.postMessageToMain)({
359
+ type: "cycleApplyingStateStarted",
360
+ syncPair: this.syncPair
361
+ });
362
+ const applied = this.state.applyDoneTasksToState({
363
+ doneTasks,
364
+ currentLocalTree: currentLocalTree.result,
365
+ currentRemoteTree: currentRemoteTree.result
366
+ });
367
+ currentLocalTree.result = applied.currentLocalTree;
368
+ currentRemoteTree.result = applied.currentRemoteTree;
369
+ (0, ipc_1.postMessageToMain)({
370
+ type: "cycleApplyingStateDone",
371
+ syncPair: this.syncPair
372
+ });
373
+ }
252
374
  (0, ipc_1.postMessageToMain)({
253
- type: "cycleApplyingStateStarted",
375
+ type: "cycleSavingStateStarted",
254
376
  syncPair: this.syncPair
255
377
  });
256
- const applied = this.state.applyDoneTasksToState({
257
- doneTasks,
258
- currentLocalTree: currentLocalTree.result,
259
- currentRemoteTree: currentRemoteTree.result
260
- });
261
- currentLocalTree.result = applied.currentLocalTree;
262
- currentRemoteTree.result = applied.currentRemoteTree;
378
+ this.previousLocalTree = currentLocalTree.result;
379
+ this.previousRemoteTree = currentRemoteTree.result;
380
+ this.saveStateOnNoChanges = true;
381
+ await this.state.save();
263
382
  (0, ipc_1.postMessageToMain)({
264
- type: "cycleApplyingStateDone",
383
+ type: "cycleSavingStateDone",
265
384
  syncPair: this.syncPair
266
385
  });
267
386
  }
268
- (0, ipc_1.postMessageToMain)({
269
- type: "cycleSavingStateStarted",
270
- syncPair: this.syncPair
271
- });
272
- this.previousLocalTree = currentLocalTree.result;
273
- this.previousRemoteTree = currentRemoteTree.result;
274
- await this.state.save();
275
- (0, ipc_1.postMessageToMain)({
276
- type: "cycleSavingStateDone",
277
- syncPair: this.syncPair
278
- });
279
387
  (0, ipc_1.postMessageToMain)({
280
388
  type: "cycleSuccess",
281
389
  syncPair: this.syncPair
@@ -294,17 +402,22 @@ class Sync {
294
402
  }
295
403
  }
296
404
  finally {
297
- (0, ipc_1.postMessageToMain)({
298
- type: "cycleFinished",
299
- syncPair: this.syncPair
300
- });
301
- setTimeout(() => {
302
- this.run();
303
- }, constants_1.SYNC_INTERVAL);
304
- (0, ipc_1.postMessageToMain)({
305
- type: "cycleRestarting",
306
- syncPair: this.syncPair
307
- });
405
+ if (this.worker.runOnce || this.removed) {
406
+ await this.cleanup();
407
+ }
408
+ else {
409
+ (0, ipc_1.postMessageToMain)({
410
+ type: "cycleFinished",
411
+ syncPair: this.syncPair
412
+ });
413
+ (0, ipc_1.postMessageToMain)({
414
+ type: "cycleRestarting",
415
+ syncPair: this.syncPair
416
+ });
417
+ setTimeout(() => {
418
+ this.run();
419
+ }, constants_1.SYNC_INTERVAL);
420
+ }
308
421
  }
309
422
  }
310
423
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":";;;;;;AAEA,4CAA4C;AAC5C,+CAAgE;AAChE,iDAAmE;AACnE,sDAA6B;AAC7B,oDAA2B;AAC3B,oDAA2B;AAC3B,+BAAyC;AACzC,mDAAyD;AACzD,yDAAgC;AAChC,oCAAyC;AAGzC;;;;;;GAMG;AACH,MAAa,IAAI;IA4BhB;;;;;;;;OAQG;IACH,YAAmB,EAAE,QAAQ,EAAE,MAAM,EAA8C;QAlC3E,kBAAa,GAAG,KAAK,CAAA;QAItB,sBAAiB,GAAc;YACrC,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;SACV,CAAA;QACM,uBAAkB,GAAe;YACvC,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;SACT,CAAA;QACM,oBAAe,GAA2B,EAAE,CAAA;QAInC,qBAAgB,GAAoC,EAAE,CAAA;QACtD,iBAAY,GAAgC,EAAE,CAAA;QAkB7D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;QACzB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;QAC7B,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAA;QAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;QACrB,IAAI,CAAC,eAAe,GAAG,IAAI,uBAAe,CAAC,IAAI,CAAC,CAAA;QAChD,IAAI,CAAC,gBAAgB,GAAG,IAAI,yBAAgB,CAAC,IAAI,CAAC,CAAA;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC,IAAI,CAAC,CAAA;QAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,eAAK,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,eAAK,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,iBAAO,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;QAEvD,IAAI,CAAC,wBAAwB,EAAE,CAAA;IAChC,CAAC;IAED;;;;OAIG;IACK,wBAAwB;QAC/B,MAAM,QAAQ,GAAG,CAAC,6BAAY,IAAI,2BAAU,CAAC,CAAC,CAAC,2BAAU,CAAC,CAAC,CAAC,OAAO,CAAA;QAEnE,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAoB,EAAE,EAAE;;YAC/C,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACrF,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;gBAEhG,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACxD,OAAM;gBACP,CAAC;gBAED,eAAe,CAAC,KAAK,EAAE,CAAA;YACxB,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC7F,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;gBAExF,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC;oBAC5C,OAAM;gBACP,CAAC;gBAED,WAAW,CAAC,KAAK,EAAE,CAAA;YACpB,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC9F,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;gBAExF,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC;oBAC7C,OAAM;gBACP,CAAC;gBAED,WAAW,CAAC,MAAM,EAAE,CAAA;YACrB,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAoB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAA,OAAO,CAAC,IAAI,0CAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBAC3D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,+BAA+B,CAAC,CAAA;gBACtE,CAAC,CAAC,CAAA;YACH,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAqB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAA,OAAO,CAAC,IAAI,0CAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBAC5D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,+BAA+B,CAAC,CAAA;gBACtE,CAAC,CAAC,CAAA;YACH,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC7F,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;YACnB,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC9F,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;YACpB,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAoB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClG,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA;YAC9B,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,yBAAyB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACvG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;YAC5B,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,yBAAyB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACvG,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;YAC7B,CAAC;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IAEM,KAAK,CAAC,UAAU;QACtB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAM;QACP,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QAEzB,IAAI,CAAC;YACJ,yBAAyB;YAEzB,MAAM,OAAO,CAAC,GAAG,CAAC;gBACjB,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE;gBAC5C,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;gBACvB,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;gBAC9B,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;aAC/B,CAAC,CAAA;YAEF,IAAI,CAAC,GAAG,EAAE,CAAA;QACX,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAA;YAErD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;YAE1B,MAAM,CAAC,CAAA;QACR,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,GAAG;QAChB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAA;YAEF,UAAU,CAAC,GAAG,EAAE;gBACf,IAAI,CAAC,GAAG,EAAE,CAAA;YACX,CAAC,EAAE,yBAAa,CAAC,CAAA;YAEjB,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAA;YAEF,OAAM;QACP,CAAC;QAED,IAAA,uBAAiB,EAAC;YACjB,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACvB,CAAC,CAAA;QAEF,IAAI,CAAC;YACJ,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,6CAA6C;gBACnD,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAA;YAEF,MAAM,IAAI,CAAC,eAAe,CAAC,4BAA4B,EAAE,CAAA;YAEzD,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,0CAA0C;gBAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAA;YAEF,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,0BAA0B;gBAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAA;YAEF,wCAAwC;YACxC,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC7D,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;gBACvC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE;aACxC,CAAC,CAAA;YAEF,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBAC7D,IAAA,uBAAiB,EAAC;oBACjB,IAAI,EAAE,gBAAgB;oBACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACvB,CAAC,CAAA;gBAEF,OAAM;YACP,CAAC;YAED,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,uBAAuB;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAA;YAEF,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE;oBACL,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,iCACrC,CAAC,KACJ,KAAK,EAAE,IAAA,sBAAc,EAAC,CAAC,CAAC,KAAK,CAAC,IAC7B,CAAC;iBACH;aACD,CAAC,CAAA;YAEF,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,kBAAkB;gBACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE;oBACL,OAAO,EAAE,gBAAgB,CAAC,OAAO;iBACjC;aACD,CAAC,CAAA;YAEF,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,mBAAmB;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE;oBACL,OAAO,EAAE,iBAAiB,CAAC,OAAO;iBAClC;aACD,CAAC,CAAA;YAEF,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,8BAA8B;gBACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBACxC,gBAAgB,EAAE,gBAAgB,CAAC,MAAM;gBACzC,iBAAiB,EAAE,iBAAiB,CAAC,MAAM;gBAC3C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,sBAAsB,EAAE,gBAAgB,CAAC,MAAM;aAC/C,CAAC,CAAA;YAEF,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,2BAA2B;gBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAA;YAEF,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE;oBACL,MAAM;iBACN;aACD,CAAC,CAAA;YAEF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAA;YAEhF,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,6BAA6B;gBACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAA;YAEF,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YAElE,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,0BAA0B;gBAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAA;YAEF,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE;oBACL,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,iBAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,IACZ,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACzD,CAAC;oBACH,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,iCACpB,CAAC,KACJ,KAAK,EAAE,IAAA,sBAAc,EAAC,CAAC,CAAC,KAAK,CAAC,IAC7B,CAAC;iBACH;aACD,CAAC,CAAA;YAEF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAA,uBAAiB,EAAC;oBACjB,IAAI,EAAE,2BAA2B;oBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACvB,CAAC,CAAA;gBAEF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC;oBAChD,SAAS;oBACT,gBAAgB,EAAE,gBAAgB,CAAC,MAAM;oBACzC,iBAAiB,EAAE,iBAAiB,CAAC,MAAM;iBAC3C,CAAC,CAAA;gBAEF,gBAAgB,CAAC,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAA;gBAClD,iBAAiB,CAAC,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAA;gBAEpD,IAAA,uBAAiB,EAAC;oBACjB,IAAI,EAAE,wBAAwB;oBAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACvB,CAAC,CAAA;YACH,CAAC;YAED,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,yBAAyB;gBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAA;YAEF,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,MAAM,CAAA;YAChD,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CAAA;YAElD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;YAEvB,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,sBAAsB;gBAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAA;YAEF,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAA;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;YAE9C,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;gBACxB,IAAA,uBAAiB,EAAC;oBACjB,IAAI,EAAE,YAAY;oBAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,IAAI,EAAE;wBACL,KAAK,EAAE,IAAA,sBAAc,EAAC,CAAC,CAAC;qBACxB;iBACD,CAAC,CAAA;YACH,CAAC;QACF,CAAC;gBAAS,CAAC;YACV,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,eAAe;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAA;YAEF,UAAU,CAAC,GAAG,EAAE;gBACf,IAAI,CAAC,GAAG,EAAE,CAAA;YACX,CAAC,EAAE,yBAAa,CAAC,CAAA;YAEjB,IAAA,uBAAiB,EAAC;gBACjB,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAA;QACH,CAAC;IACF,CAAC;CACD;AA/VD,oBA+VC;AAED,kBAAe,IAAI,CAAA"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"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"}