@filen/sync 0.1.3 → 0.1.5

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.
@@ -15,6 +15,7 @@ const stream_1 = require("stream");
15
15
  const util_1 = require("util");
16
16
  const sdk_1 = require("@filen/sdk");
17
17
  const ipc_1 = require("../ipc");
18
+ const semaphore_1 = require("../../semaphore");
18
19
  const pipelineAsync = (0, util_1.promisify)(stream_1.pipeline);
19
20
  /**
20
21
  * LocalFileSystem
@@ -37,10 +38,15 @@ class LocalFileSystem {
37
38
  this.getDirectoryTreeCache = {
38
39
  timestamp: 0,
39
40
  tree: {},
40
- inodes: {}
41
+ inodes: {},
42
+ ignored: [],
43
+ errors: []
41
44
  };
42
45
  this.watcherRunning = false;
43
46
  this.watcherInstance = null;
47
+ this.itemsMutex = new semaphore_1.Semaphore(1);
48
+ this.mutex = new semaphore_1.Semaphore(1);
49
+ this.mkdirMutex = new semaphore_1.Semaphore(1);
44
50
  this.sync = sync;
45
51
  }
46
52
  async getDirectoryTree() {
@@ -52,8 +58,8 @@ class LocalFileSystem {
52
58
  tree: this.getDirectoryTreeCache.tree,
53
59
  inodes: this.getDirectoryTreeCache.inodes
54
60
  },
55
- errors: [],
56
- ignored: [],
61
+ errors: this.getDirectoryTreeCache.errors,
62
+ ignored: this.getDirectoryTreeCache.ignored,
57
63
  changed: false
58
64
  };
59
65
  }
@@ -67,53 +73,74 @@ class LocalFileSystem {
67
73
  encoding: "utf-8"
68
74
  });
69
75
  await (0, utils_1.promiseAllSettledChunked)(dir.map(async (entry) => {
70
- if (entry.startsWith(constants_1.LOCAL_TRASH_NAME)) {
76
+ const entryPath = `/${isWindows ? entry.replace(/\\/g, "/") : entry}`;
77
+ const itemName = path_1.default.posix.basename(entryPath);
78
+ if (itemName.startsWith(constants_1.LOCAL_TRASH_NAME)) {
71
79
  return;
72
80
  }
73
81
  const itemPath = path_1.default.join(this.sync.syncPair.localPath, entry);
74
- if (this.sync.localIgnorer.ignores(entry)) {
82
+ if ((0, utils_1.isDirectoryPathIgnoredByDefault)(entryPath) ||
83
+ (0, utils_1.isRelativePathIgnoredByDefault)(entryPath) ||
84
+ (0, utils_1.isSystemPathIgnoredByDefault)(itemPath)) {
75
85
  ignored.push({
76
86
  localPath: itemPath,
77
87
  relativePath: entry,
78
- reason: "localIgnore"
88
+ reason: "defaultIgnore"
79
89
  });
80
90
  return;
81
91
  }
82
- if ((0, utils_1.isDirectoryPathIgnoredByDefault)(entry) ||
83
- (0, utils_1.isRelativePathIgnoredByDefault)(entry) ||
84
- (0, utils_1.isSystemPathIgnoredByDefault)(itemPath)) {
92
+ if (this.sync.excludeDotFiles && (0, utils_1.pathIncludesDotFile)(entryPath)) {
85
93
  ignored.push({
86
94
  localPath: itemPath,
87
95
  relativePath: entry,
88
- reason: "defaultIgnore"
96
+ reason: "dotFile"
89
97
  });
90
98
  return;
91
99
  }
92
- const entryPath = `/${isWindows ? entry.replace(/\\/g, "/") : entry}`;
93
- const itemName = path_1.default.posix.basename(entryPath);
94
- if (itemName.startsWith(constants_1.LOCAL_TRASH_NAME)) {
95
- return;
96
- }
97
- if (this.sync.excludeDotFiles && itemName.startsWith(".")) {
100
+ if (this.sync.localIgnorer.ignores(entry)) {
98
101
  ignored.push({
99
102
  localPath: itemPath,
100
103
  relativePath: entry,
101
- reason: "dotFile"
104
+ reason: "localIgnore"
102
105
  });
103
106
  return;
104
107
  }
105
108
  try {
106
- const stats = await fs_extra_1.default.stat(itemPath);
109
+ const stats = await fs_extra_1.default.lstat(itemPath);
110
+ if (stats.isBlockDevice() || stats.isCharacterDevice() || stats.isFIFO() || stats.isSocket()) {
111
+ ignored.push({
112
+ localPath: itemPath,
113
+ relativePath: entry,
114
+ reason: "invalidType"
115
+ });
116
+ return;
117
+ }
118
+ if (stats.isSymbolicLink()) {
119
+ ignored.push({
120
+ localPath: itemPath,
121
+ relativePath: entry,
122
+ reason: "symlink"
123
+ });
124
+ return;
125
+ }
126
+ if (stats.isFile() && stats.size <= 0) {
127
+ ignored.push({
128
+ localPath: itemPath,
129
+ relativePath: entry,
130
+ reason: "empty"
131
+ });
132
+ return;
133
+ }
107
134
  const item = {
108
135
  lastModified: parseInt(stats.mtimeMs), // Sometimes comes as a float, but we need an int
109
136
  type: stats.isDirectory() ? "directory" : "file",
110
137
  path: entryPath,
111
138
  creation: parseInt(stats.birthtimeMs), // Sometimes comes as a float, but we need an int
112
- size: stats.size,
113
- inode: stats.ino
139
+ size: parseInt(stats.size), // Sometimes comes as a float, but we need an int
140
+ inode: parseInt(stats.ino) // Sometimes comes as a float, but we need an int
114
141
  };
115
142
  tree[entryPath] = item;
116
- inodes[stats.ino] = item;
143
+ inodes[item.inode] = item;
117
144
  }
118
145
  catch (e) {
119
146
  this.sync.worker.logger.log("error", e, "filesystems.local.getDirectoryTree");
@@ -129,12 +156,14 @@ class LocalFileSystem {
129
156
  this.getDirectoryTreeCache = {
130
157
  timestamp: Date.now(),
131
158
  tree,
132
- inodes
159
+ inodes,
160
+ errors,
161
+ ignored
133
162
  };
134
163
  return {
135
164
  result: {
136
- tree,
137
- inodes
165
+ tree: this.getDirectoryTreeCache.tree,
166
+ inodes: this.getDirectoryTreeCache.inodes
138
167
  },
139
168
  errors,
140
169
  ignored,
@@ -154,7 +183,7 @@ class LocalFileSystem {
154
183
  return;
155
184
  }
156
185
  this.watcherInstance = await watcher_1.default.subscribe(this.sync.syncPair.localPath, (err, events) => {
157
- if (!err && events) {
186
+ if (!err && events && events.length > 0) {
158
187
  this.lastDirectoryChangeTimestamp = Date.now();
159
188
  }
160
189
  });
@@ -231,63 +260,131 @@ class LocalFileSystem {
231
260
  * @returns {Promise<fs.Stats>}
232
261
  */
233
262
  async mkdir({ relativePath }) {
234
- const localPath = path_1.default.join(this.sync.syncPair.localPath, relativePath);
235
- await fs_extra_1.default.ensureDir(localPath);
236
- return await fs_extra_1.default.stat(localPath);
263
+ await this.mkdirMutex.acquire();
264
+ try {
265
+ const localPath = path_1.default.join(this.sync.syncPair.localPath, relativePath);
266
+ await fs_extra_1.default.ensureDir(localPath);
267
+ const stats = await fs_extra_1.default.stat(localPath);
268
+ await this.itemsMutex.acquire();
269
+ const item = {
270
+ type: "directory",
271
+ inode: parseInt(stats.ino), // Sometimes comes as a float, but we need an int
272
+ lastModified: parseInt(stats.mtimeMs), // Sometimes comes as a float, but we need an int
273
+ creation: parseInt(stats.birthtimeMs), // Sometimes comes as a float, but we need an int
274
+ size: 0,
275
+ path: relativePath
276
+ };
277
+ this.getDirectoryTreeCache.tree[relativePath] = item;
278
+ this.getDirectoryTreeCache.inodes[item.inode] = item;
279
+ this.itemsMutex.release();
280
+ return stats;
281
+ }
282
+ finally {
283
+ this.mkdirMutex.release();
284
+ }
237
285
  }
238
- /**
239
- * Delete a file/directory inside the local sync path.
240
- * @date 3/3/2024 - 10:05:55 PM
241
- *
242
- * @public
243
- * @async
244
- * @param {{ relativePath: string; permanent?: boolean }} param0
245
- * @param {string} param0.relativePath
246
- * @param {boolean} [param0.permanent=false]
247
- * @returns {Promise<void>}
248
- */
249
286
  async unlink({ relativePath, permanent = false }) {
250
- const localPath = path_1.default.join(this.sync.syncPair.localPath, relativePath);
251
- if (!permanent) {
252
- const localTrashPath = path_1.default.join(this.sync.syncPair.localPath, constants_1.LOCAL_TRASH_NAME);
253
- await fs_extra_1.default.ensureDir(localTrashPath);
254
- await fs_extra_1.default.move(localPath, path_1.default.join(localTrashPath, path_1.default.posix.basename(relativePath)), {
255
- overwrite: true
256
- });
257
- return;
287
+ await this.mutex.acquire();
288
+ try {
289
+ const item = this.getDirectoryTreeCache.tree[relativePath];
290
+ if (!item) {
291
+ return;
292
+ }
293
+ const localPath = path_1.default.join(this.sync.syncPair.localPath, relativePath);
294
+ if (!permanent) {
295
+ const localTrashPath = path_1.default.join(this.sync.syncPair.localPath, constants_1.LOCAL_TRASH_NAME);
296
+ await fs_extra_1.default.ensureDir(localTrashPath);
297
+ await fs_extra_1.default.move(localPath, path_1.default.join(localTrashPath, path_1.default.posix.basename(relativePath)), {
298
+ overwrite: true
299
+ });
300
+ }
301
+ else {
302
+ await fs_extra_1.default.rm(localPath, {
303
+ force: true,
304
+ maxRetries: 60 * 10,
305
+ recursive: true,
306
+ retryDelay: 100
307
+ });
308
+ }
309
+ await this.itemsMutex.acquire();
310
+ delete this.getDirectoryTreeCache.tree[relativePath];
311
+ delete this.getDirectoryTreeCache.inodes[item.inode];
312
+ delete this.sync.localFileHashes[relativePath];
313
+ for (const entry in this.getDirectoryTreeCache.tree) {
314
+ if (entry.startsWith(relativePath + "/") || entry === relativePath) {
315
+ const entryItem = this.getDirectoryTreeCache.tree[entry];
316
+ if (entryItem) {
317
+ delete this.getDirectoryTreeCache.inodes[entryItem.inode];
318
+ }
319
+ delete this.sync.localFileHashes[entry];
320
+ delete this.getDirectoryTreeCache.tree[entry];
321
+ }
322
+ }
323
+ this.itemsMutex.release();
324
+ }
325
+ finally {
326
+ this.mutex.release();
258
327
  }
259
- await fs_extra_1.default.rm(localPath, {
260
- force: true,
261
- maxRetries: 60 * 10,
262
- recursive: true,
263
- retryDelay: 100
264
- });
265
328
  }
266
- /**
267
- * Rename a file/directory inside the local sync path. Recursively creates intermediate directories if needed.
268
- * @date 3/2/2024 - 12:41:15 PM
269
- *
270
- * @public
271
- * @async
272
- * @param {{ fromRelativePath: string; toRelativePath: string }} param0
273
- * @param {string} param0.fromRelativePath
274
- * @param {string} param0.toRelativePath
275
- * @returns {Promise<fs.Stats>}
276
- */
277
329
  async rename({ fromRelativePath, toRelativePath }) {
278
- const fromLocalPath = path_1.default.join(this.sync.syncPair.localPath, fromRelativePath);
279
- const toLocalPath = path_1.default.join(this.sync.syncPair.localPath, toRelativePath);
280
- const fromLocalPathParentPath = path_1.default.dirname(fromLocalPath);
281
- const toLocalPathParentPath = path_1.default.dirname(toLocalPath);
282
- await fs_extra_1.default.ensureDir(toLocalPathParentPath);
283
- if (fromLocalPathParentPath === toLocalPathParentPath) {
284
- await fs_extra_1.default.rename(fromLocalPath, toLocalPath);
285
- return await fs_extra_1.default.stat(toLocalPath);
330
+ await this.mutex.acquire();
331
+ try {
332
+ if (fromRelativePath === "/" || toRelativePath === "/") {
333
+ throw new Error("Invalid paths.");
334
+ }
335
+ const item = this.getDirectoryTreeCache.tree[fromRelativePath];
336
+ if (!item) {
337
+ throw new Error(`Could not rename ${fromRelativePath} to ${toRelativePath}: Path not found.`);
338
+ }
339
+ const fromLocalPath = path_1.default.join(this.sync.syncPair.localPath, fromRelativePath);
340
+ const toLocalPath = path_1.default.join(this.sync.syncPair.localPath, toRelativePath);
341
+ const fromLocalPathParentPath = path_1.default.dirname(fromLocalPath);
342
+ const toLocalPathParentPath = path_1.default.dirname(toLocalPath);
343
+ if (!(await fs_extra_1.default.exists(toLocalPathParentPath))) {
344
+ throw new Error(`Could not rename ${fromLocalPath} to ${toLocalPath}: Parent directory missing.`);
345
+ }
346
+ if (fromLocalPathParentPath === toLocalPathParentPath) {
347
+ await fs_extra_1.default.rename(fromLocalPath, toLocalPath);
348
+ }
349
+ else {
350
+ if (toRelativePath.startsWith(fromRelativePath)) {
351
+ throw new Error("Invalid paths.");
352
+ }
353
+ await fs_extra_1.default.move(fromLocalPath, toLocalPath, {
354
+ overwrite: true
355
+ });
356
+ }
357
+ const stats = await fs_extra_1.default.stat(toLocalPath);
358
+ await this.itemsMutex.acquire();
359
+ this.getDirectoryTreeCache.tree[toRelativePath] = Object.assign(Object.assign({}, item), { path: toRelativePath });
360
+ this.getDirectoryTreeCache.inodes[item.inode] = Object.assign(Object.assign({}, item), { path: toRelativePath });
361
+ delete this.getDirectoryTreeCache.tree[fromRelativePath];
362
+ delete this.sync.localFileHashes[fromRelativePath];
363
+ for (const oldPath in this.getDirectoryTreeCache.tree) {
364
+ if (oldPath.startsWith(fromRelativePath + "/") && oldPath !== fromRelativePath) {
365
+ const newPath = (0, utils_1.replacePathStartWithFromAndTo)(oldPath, fromRelativePath, toRelativePath);
366
+ const oldItem = this.getDirectoryTreeCache.tree[oldPath];
367
+ if (oldItem) {
368
+ this.getDirectoryTreeCache.tree[newPath] = Object.assign(Object.assign({}, oldItem), { path: newPath });
369
+ delete this.getDirectoryTreeCache.tree[oldPath];
370
+ const oldItemInode = this.getDirectoryTreeCache.inodes[oldItem.inode];
371
+ if (oldItemInode) {
372
+ this.getDirectoryTreeCache.inodes[oldItem.inode] = Object.assign(Object.assign({}, oldItemInode), { path: newPath });
373
+ }
374
+ }
375
+ const oldItemHash = this.sync.localFileHashes[oldPath];
376
+ if (oldItemHash) {
377
+ this.sync.localFileHashes[newPath] = oldItemHash;
378
+ delete this.sync.localFileHashes[oldPath];
379
+ }
380
+ }
381
+ }
382
+ this.itemsMutex.release();
383
+ return stats;
384
+ }
385
+ finally {
386
+ this.mutex.release();
286
387
  }
287
- await fs_extra_1.default.move(fromLocalPath, toLocalPath, {
288
- overwrite: true
289
- });
290
- return await fs_extra_1.default.stat(toLocalPath);
291
388
  }
292
389
  /**
293
390
  * Upload a local file.
@@ -297,12 +394,13 @@ class LocalFileSystem {
297
394
  * @async
298
395
  * @param {{ relativePath: string }} param0
299
396
  * @param {string} param0.relativePath
300
- * @returns {Promise<void>}
397
+ * @returns {Promise<CloudItem>}
301
398
  */
302
399
  async upload({ relativePath }) {
303
400
  var _a;
304
401
  const localPath = path_1.default.join(this.sync.syncPair.localPath, relativePath);
305
402
  const signalKey = `upload:${relativePath}`;
403
+ const stats = await fs_extra_1.default.stat(localPath);
306
404
  if (!this.sync.pauseSignals[signalKey]) {
307
405
  this.sync.pauseSignals[signalKey] = new sdk_1.PauseSignal();
308
406
  }
@@ -316,7 +414,8 @@ class LocalFileSystem {
316
414
  of: "upload",
317
415
  type: "queued",
318
416
  relativePath,
319
- localPath
417
+ localPath,
418
+ size: parseInt(stats.size) // Sometimes comes as a float, but we need an int
320
419
  }
321
420
  });
322
421
  try {
@@ -347,7 +446,8 @@ class LocalFileSystem {
347
446
  type: "error",
348
447
  relativePath,
349
448
  localPath,
350
- error: (0, utils_1.serializeError)(err)
449
+ error: (0, utils_1.serializeError)(err),
450
+ size: parseInt(stats.size) // Sometimes comes as a float, but we need an int
351
451
  }
352
452
  });
353
453
  },
@@ -360,7 +460,8 @@ class LocalFileSystem {
360
460
  type: "progress",
361
461
  relativePath,
362
462
  localPath,
363
- bytes
463
+ bytes,
464
+ size: parseInt(stats.size) // Sometimes comes as a float, but we need an int
364
465
  }
365
466
  });
366
467
  },
@@ -372,7 +473,8 @@ class LocalFileSystem {
372
473
  of: "upload",
373
474
  type: "started",
374
475
  relativePath,
375
- localPath
476
+ localPath,
477
+ size: parseInt(stats.size) // Sometimes comes as a float, but we need an int
376
478
  }
377
479
  });
378
480
  }
@@ -388,7 +490,8 @@ class LocalFileSystem {
388
490
  of: "upload",
389
491
  type: "finished",
390
492
  relativePath,
391
- localPath
493
+ localPath,
494
+ size: parseInt(stats.size) // Sometimes comes as a float, but we need an int
392
495
  }
393
496
  });
394
497
  return item;
@@ -404,7 +507,8 @@ class LocalFileSystem {
404
507
  type: "error",
405
508
  relativePath,
406
509
  localPath,
407
- error: (0, utils_1.serializeError)(e)
510
+ error: (0, utils_1.serializeError)(e),
511
+ size: parseInt(stats.size) // Sometimes comes as a float, but we need an int
408
512
  }
409
513
  });
410
514
  }
@@ -415,6 +519,32 @@ class LocalFileSystem {
415
519
  delete this.sync.abortControllers[signalKey];
416
520
  }
417
521
  }
522
+ async isPathWritable(path) {
523
+ try {
524
+ await fs_extra_1.default.access(path, fs_extra_1.default.constants.W_OK | fs_extra_1.default.constants.R_OK);
525
+ return true;
526
+ }
527
+ catch (_a) {
528
+ return false;
529
+ }
530
+ }
531
+ async isPathReadable(path) {
532
+ try {
533
+ await fs_extra_1.default.access(path, fs_extra_1.default.constants.R_OK);
534
+ return true;
535
+ }
536
+ catch (_a) {
537
+ return false;
538
+ }
539
+ }
540
+ async pathExists(path) {
541
+ try {
542
+ return await fs_extra_1.default.exists(path);
543
+ }
544
+ catch (_a) {
545
+ return false;
546
+ }
547
+ }
418
548
  }
419
549
  exports.LocalFileSystem = LocalFileSystem;
420
550
  exports.default = LocalFileSystem;
@@ -1 +1 @@
1
- {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/lib/filesystems/local.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/lib/filesystems/local.ts"],"names":[],"mappings":"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"}
@@ -12,10 +12,11 @@ export type RemoteTree = {
12
12
  tree: RemoteDirectoryTree;
13
13
  uuids: RemoteDirectoryUUIDs;
14
14
  };
15
+ export type RemoteTreeIgnoredReason = "dotFile" | "invalidPath" | "remoteIgnore" | "pathLength" | "nameLength" | "defaultIgnore" | "empty";
15
16
  export type RemoteTreeIgnored = {
16
17
  localPath: string;
17
18
  relativePath: string;
18
- reason: "dotFile" | "invalidPath" | "remoteIgnore" | "pathLength" | "nameLength" | "defaultIgnore";
19
+ reason: RemoteTreeIgnoredReason;
19
20
  };
20
21
  export declare class RemoteFileSystem {
21
22
  private readonly sync;
@@ -23,6 +24,7 @@ export declare class RemoteFileSystem {
23
24
  timestamp: number;
24
25
  tree: RemoteDirectoryTree;
25
26
  uuids: RemoteDirectoryUUIDs;
27
+ ignored: RemoteTreeIgnored[];
26
28
  };
27
29
  previousTreeRawResponse: string;
28
30
  private readonly mutex;
@@ -109,5 +111,8 @@ export declare class RemoteFileSystem {
109
111
  download({ relativePath }: {
110
112
  relativePath: string;
111
113
  }): Promise<fs.Stats>;
114
+ remoteDirPathExisting(): Promise<boolean>;
115
+ directoryExists(relativePath: string): Promise<boolean>;
116
+ fileExists(relativePath: string): Promise<boolean>;
112
117
  }
113
118
  export default RemoteFileSystem;