@filen/sync 0.1.4 → 0.1.6

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.
@@ -38,13 +38,16 @@ class LocalFileSystem {
38
38
  this.getDirectoryTreeCache = {
39
39
  timestamp: 0,
40
40
  tree: {},
41
- inodes: {}
41
+ inodes: {},
42
+ ignored: [],
43
+ errors: []
42
44
  };
43
45
  this.watcherRunning = false;
44
46
  this.watcherInstance = null;
45
47
  this.itemsMutex = new semaphore_1.Semaphore(1);
46
48
  this.mutex = new semaphore_1.Semaphore(1);
47
49
  this.mkdirMutex = new semaphore_1.Semaphore(1);
50
+ this.listSemaphore = new semaphore_1.Semaphore(1024);
48
51
  this.sync = sync;
49
52
  }
50
53
  async getDirectoryTree() {
@@ -56,8 +59,8 @@ class LocalFileSystem {
56
59
  tree: this.getDirectoryTreeCache.tree,
57
60
  inodes: this.getDirectoryTreeCache.inodes
58
61
  },
59
- errors: [],
60
- ignored: [],
62
+ errors: this.getDirectoryTreeCache.errors,
63
+ ignored: this.getDirectoryTreeCache.ignored,
61
64
  changed: false
62
65
  };
63
66
  }
@@ -66,98 +69,125 @@ class LocalFileSystem {
66
69
  const inodes = {};
67
70
  const errors = [];
68
71
  const ignored = [];
72
+ const pathsAdded = {};
69
73
  const dir = await fs_extra_1.default.readdir(this.sync.syncPair.localPath, {
70
74
  recursive: true,
71
75
  encoding: "utf-8"
72
76
  });
73
77
  await (0, utils_1.promiseAllSettledChunked)(dir.map(async (entry) => {
74
- if (entry.startsWith(constants_1.LOCAL_TRASH_NAME)) {
75
- return;
76
- }
77
- const itemPath = path_1.default.join(this.sync.syncPair.localPath, entry);
78
- if (this.sync.localIgnorer.ignores(entry)) {
79
- ignored.push({
80
- localPath: itemPath,
81
- relativePath: entry,
82
- reason: "localIgnore"
83
- });
84
- return;
85
- }
86
- const entryPath = `/${isWindows ? entry.replace(/\\/g, "/") : entry}`;
87
- if ((0, utils_1.isDirectoryPathIgnoredByDefault)(entryPath) ||
88
- (0, utils_1.isRelativePathIgnoredByDefault)(entryPath) ||
89
- (0, utils_1.isSystemPathIgnoredByDefault)(itemPath)) {
90
- ignored.push({
91
- localPath: itemPath,
92
- relativePath: entry,
93
- reason: "defaultIgnore"
94
- });
95
- return;
96
- }
97
- const itemName = path_1.default.posix.basename(entryPath);
98
- if (itemName.startsWith(constants_1.LOCAL_TRASH_NAME)) {
99
- return;
100
- }
101
- if (this.sync.excludeDotFiles && (0, utils_1.pathIncludesDotFile)(entryPath)) {
102
- ignored.push({
103
- localPath: itemPath,
104
- relativePath: entry,
105
- reason: "dotFile"
106
- });
107
- return;
108
- }
78
+ await this.listSemaphore.acquire();
109
79
  try {
110
- const stats = await fs_extra_1.default.lstat(itemPath);
111
- if (stats.isBlockDevice() || stats.isCharacterDevice() || stats.isFIFO() || stats.isSocket()) {
80
+ const entryPath = `/${isWindows ? entry.replace(/\\/g, "/") : entry}`;
81
+ const itemName = path_1.default.posix.basename(entryPath);
82
+ if (itemName.startsWith(constants_1.LOCAL_TRASH_NAME)) {
83
+ return;
84
+ }
85
+ const itemPath = path_1.default.join(this.sync.syncPair.localPath, entry);
86
+ if ((0, utils_1.isDirectoryPathIgnoredByDefault)(entryPath) ||
87
+ (0, utils_1.isRelativePathIgnoredByDefault)(entryPath) ||
88
+ (0, utils_1.isSystemPathIgnoredByDefault)(itemPath)) {
112
89
  ignored.push({
113
90
  localPath: itemPath,
114
91
  relativePath: entry,
115
- reason: "invalidType"
92
+ reason: "defaultIgnore"
116
93
  });
117
94
  return;
118
95
  }
119
- if (stats.isSymbolicLink()) {
96
+ if (this.sync.excludeDotFiles && (0, utils_1.pathIncludesDotFile)(entryPath)) {
120
97
  ignored.push({
121
98
  localPath: itemPath,
122
99
  relativePath: entry,
123
- reason: "symlink"
100
+ reason: "dotFile"
124
101
  });
125
102
  return;
126
103
  }
127
- if (stats.isFile() && stats.size <= 0) {
104
+ if (this.sync.ignorer.ignores(entry)) {
128
105
  ignored.push({
129
106
  localPath: itemPath,
130
107
  relativePath: entry,
131
- reason: "empty"
108
+ reason: "localIgnore"
132
109
  });
133
110
  return;
134
111
  }
135
- const item = {
136
- lastModified: parseInt(stats.mtimeMs), // Sometimes comes as a float, but we need an int
137
- type: stats.isDirectory() ? "directory" : "file",
138
- path: entryPath,
139
- creation: parseInt(stats.birthtimeMs), // Sometimes comes as a float, but we need an int
140
- size: parseInt(stats.size), // Sometimes comes as a float, but we need an int
141
- inode: parseInt(stats.ino) // Sometimes comes as a float, but we need an int
142
- };
143
- tree[entryPath] = item;
144
- inodes[item.inode] = item;
145
- }
146
- catch (e) {
147
- this.sync.worker.logger.log("error", e, "filesystems.local.getDirectoryTree");
148
- if (e instanceof Error) {
149
- errors.push({
112
+ try {
113
+ await fs_extra_1.default.access(itemPath, fs_extra_1.default.constants.R_OK | fs_extra_1.default.constants.W_OK);
114
+ }
115
+ catch (_a) {
116
+ ignored.push({
150
117
  localPath: itemPath,
151
- relativePath: entryPath,
152
- error: e
118
+ relativePath: entry,
119
+ reason: "permissions"
153
120
  });
121
+ return;
122
+ }
123
+ try {
124
+ const stats = await fs_extra_1.default.lstat(itemPath);
125
+ if (stats.isBlockDevice() || stats.isCharacterDevice() || stats.isFIFO() || stats.isSocket()) {
126
+ ignored.push({
127
+ localPath: itemPath,
128
+ relativePath: entry,
129
+ reason: "invalidType"
130
+ });
131
+ return;
132
+ }
133
+ if (stats.isSymbolicLink()) {
134
+ ignored.push({
135
+ localPath: itemPath,
136
+ relativePath: entry,
137
+ reason: "symlink"
138
+ });
139
+ return;
140
+ }
141
+ if (stats.isFile() && stats.size <= 0) {
142
+ ignored.push({
143
+ localPath: itemPath,
144
+ relativePath: entry,
145
+ reason: "empty"
146
+ });
147
+ return;
148
+ }
149
+ const lowercasePath = entryPath.toLowerCase();
150
+ if (pathsAdded[lowercasePath]) {
151
+ ignored.push({
152
+ localPath: itemPath,
153
+ relativePath: entry,
154
+ reason: "duplicate"
155
+ });
156
+ return;
157
+ }
158
+ pathsAdded[lowercasePath] = true;
159
+ const item = {
160
+ lastModified: parseInt(stats.mtimeMs), // Sometimes comes as a float, but we need an int
161
+ type: stats.isDirectory() ? "directory" : "file",
162
+ path: entryPath,
163
+ creation: parseInt(stats.birthtimeMs), // Sometimes comes as a float, but we need an int
164
+ size: parseInt(stats.size), // Sometimes comes as a float, but we need an int
165
+ inode: parseInt(stats.ino) // Sometimes comes as a float, but we need an int
166
+ };
167
+ tree[entryPath] = item;
168
+ inodes[item.inode] = item;
154
169
  }
170
+ catch (e) {
171
+ this.sync.worker.logger.log("error", e, "filesystems.local.getDirectoryTree");
172
+ if (e instanceof Error) {
173
+ errors.push({
174
+ localPath: itemPath,
175
+ relativePath: entryPath,
176
+ error: e
177
+ });
178
+ }
179
+ }
180
+ }
181
+ finally {
182
+ this.listSemaphore.release();
155
183
  }
156
184
  }));
157
185
  this.getDirectoryTreeCache = {
158
186
  timestamp: Date.now(),
159
187
  tree,
160
- inodes
188
+ inodes,
189
+ errors,
190
+ ignored
161
191
  };
162
192
  return {
163
193
  result: {
@@ -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" | "duplicate";
15
16
  export type RemoteTreeIgnored = {
16
17
  localPath: string;
17
18
  relativePath: string;
18
- reason: "dotFile" | "invalidPath" | "remoteIgnore" | "pathLength" | "nameLength" | "defaultIgnore" | "empty";
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;
@@ -17,7 +17,8 @@ class RemoteFileSystem {
17
17
  this.getDirectoryTreeCache = {
18
18
  timestamp: 0,
19
19
  tree: {},
20
- uuids: {}
20
+ uuids: {},
21
+ ignored: []
21
22
  };
22
23
  this.previousTreeRawResponse = "";
23
24
  this.mutex = new semaphore_1.Semaphore(1);
@@ -64,7 +65,7 @@ class RemoteFileSystem {
64
65
  }
65
66
  return {
66
67
  result: this.getDirectoryTreeCache,
67
- ignored: [],
68
+ ignored: this.getDirectoryTreeCache.ignored,
68
69
  changed: false
69
70
  };
70
71
  }
@@ -74,7 +75,7 @@ class RemoteFileSystem {
74
75
  if (rawEx.length === 2 && this.previousTreeRawResponse === rawEx[0] && this.getDirectoryTreeCache.timestamp !== 0) {
75
76
  return {
76
77
  result: this.getDirectoryTreeCache,
77
- ignored: [],
78
+ ignored: this.getDirectoryTreeCache.ignored,
78
79
  changed: false
79
80
  };
80
81
  }
@@ -94,69 +95,76 @@ class RemoteFileSystem {
94
95
  for (const folder of dir.folders) {
95
96
  try {
96
97
  const decrypted = await this.sync.sdk.crypto().decrypt().folderMetadata({ metadata: folder[1] });
97
- if (folder[2] !== "base" && decrypted.name.length === 0) {
98
- continue;
99
- }
100
98
  const parentPath = folder[2] === "base" ? "" : `${folderNames[folder[2]]}/`;
101
99
  const folderPath = folder[2] === "base" ? "" : `${parentPath}${decrypted.name}`;
102
100
  const localPath = path_1.default.join(this.sync.syncPair.localPath, folderPath);
103
101
  folderNames[folder[0]] = folderPath;
104
- if (folderPath.startsWith(constants_1.LOCAL_TRASH_NAME) || decrypted.name.startsWith(constants_1.LOCAL_TRASH_NAME)) {
102
+ if (folderPath.startsWith(constants_1.LOCAL_TRASH_NAME) ||
103
+ decrypted.name.startsWith(constants_1.LOCAL_TRASH_NAME) ||
104
+ (folder[2] !== "base" && decrypted.name.length === 0)) {
105
105
  continue;
106
106
  }
107
- if (this.sync.remoteIgnorer.ignores(folderPath)) {
107
+ if ((0, utils_1.isPathOverMaxLength)(localPath)) {
108
108
  ignored.push({
109
109
  localPath,
110
110
  relativePath: folderPath,
111
- reason: "remoteIgnore"
111
+ reason: "pathLength"
112
112
  });
113
113
  continue;
114
114
  }
115
- if (this.sync.excludeDotFiles && (0, utils_1.pathIncludesDotFile)(folderPath)) {
115
+ if ((0, utils_1.isNameOverMaxLength)(decrypted.name)) {
116
116
  ignored.push({
117
117
  localPath,
118
118
  relativePath: folderPath,
119
- reason: "dotFile"
119
+ reason: "nameLength"
120
120
  });
121
121
  continue;
122
122
  }
123
- if ((0, utils_1.isPathOverMaxLength)(localPath)) {
123
+ if (!(0, utils_1.isValidPath)(localPath)) {
124
124
  ignored.push({
125
125
  localPath,
126
126
  relativePath: folderPath,
127
- reason: "pathLength"
127
+ reason: "invalidPath"
128
128
  });
129
129
  continue;
130
130
  }
131
- if ((0, utils_1.isNameOverMaxLength)(decrypted.name)) {
131
+ if ((0, utils_1.isDirectoryPathIgnoredByDefault)(folderPath) || (0, utils_1.isRelativePathIgnoredByDefault)(folderPath)) {
132
132
  ignored.push({
133
133
  localPath,
134
134
  relativePath: folderPath,
135
- reason: "nameLength"
135
+ reason: "defaultIgnore"
136
136
  });
137
137
  continue;
138
138
  }
139
- if (!(0, utils_1.isValidPath)(localPath)) {
139
+ if (this.sync.ignorer.ignores(folderPath)) {
140
140
  ignored.push({
141
141
  localPath,
142
142
  relativePath: folderPath,
143
- reason: "invalidPath"
143
+ reason: "remoteIgnore"
144
144
  });
145
145
  continue;
146
146
  }
147
- if ((0, utils_1.isDirectoryPathIgnoredByDefault)(folderPath) || (0, utils_1.isRelativePathIgnoredByDefault)(folderPath)) {
147
+ if (this.sync.excludeDotFiles && (0, utils_1.pathIncludesDotFile)(folderPath)) {
148
148
  ignored.push({
149
149
  localPath,
150
150
  relativePath: folderPath,
151
- reason: "defaultIgnore"
151
+ reason: "dotFile"
152
152
  });
153
153
  continue;
154
154
  }
155
155
  const lowercasePath = folderPath.toLowerCase();
156
156
  if (pathsAdded[lowercasePath]) {
157
+ ignored.push({
158
+ localPath,
159
+ relativePath: folderPath,
160
+ reason: "duplicate"
161
+ });
157
162
  continue;
158
163
  }
159
164
  pathsAdded[lowercasePath] = true;
165
+ if (folderPath.length === 0) {
166
+ continue;
167
+ }
160
168
  const item = {
161
169
  type: "directory",
162
170
  uuid: folder[0],
@@ -183,7 +191,7 @@ class RemoteFileSystem {
183
191
  const parentPath = folderNames[file[4]];
184
192
  const filePath = `${parentPath}/${decrypted.name}`;
185
193
  const localPath = path_1.default.join(this.sync.syncPair.localPath, filePath);
186
- if (filePath.startsWith(constants_1.LOCAL_TRASH_NAME) || decrypted.name.startsWith(constants_1.LOCAL_TRASH_NAME)) {
194
+ if (filePath.startsWith(constants_1.LOCAL_TRASH_NAME) || decrypted.name.startsWith(constants_1.LOCAL_TRASH_NAME) || filePath.length === 0) {
187
195
  return;
188
196
  }
189
197
  if (decrypted.size <= 0) {
@@ -194,56 +202,61 @@ class RemoteFileSystem {
194
202
  });
195
203
  return;
196
204
  }
197
- if (this.sync.remoteIgnorer.ignores(filePath)) {
205
+ if ((0, utils_1.isPathOverMaxLength)(localPath)) {
198
206
  ignored.push({
199
207
  localPath,
200
208
  relativePath: filePath,
201
- reason: "remoteIgnore"
209
+ reason: "pathLength"
202
210
  });
203
211
  return;
204
212
  }
205
- if (this.sync.excludeDotFiles && (0, utils_1.pathIncludesDotFile)(filePath)) {
213
+ if ((0, utils_1.isNameOverMaxLength)(decrypted.name)) {
206
214
  ignored.push({
207
215
  localPath,
208
216
  relativePath: filePath,
209
- reason: "dotFile"
217
+ reason: "nameLength"
210
218
  });
211
219
  return;
212
220
  }
213
- if ((0, utils_1.isPathOverMaxLength)(localPath)) {
221
+ if (!(0, utils_1.isValidPath)(localPath)) {
214
222
  ignored.push({
215
223
  localPath,
216
224
  relativePath: filePath,
217
- reason: "pathLength"
225
+ reason: "invalidPath"
218
226
  });
219
227
  return;
220
228
  }
221
- if ((0, utils_1.isNameOverMaxLength)(decrypted.name)) {
229
+ if ((0, utils_1.isDirectoryPathIgnoredByDefault)(filePath) || (0, utils_1.isRelativePathIgnoredByDefault)(filePath)) {
222
230
  ignored.push({
223
231
  localPath,
224
232
  relativePath: filePath,
225
- reason: "nameLength"
233
+ reason: "defaultIgnore"
226
234
  });
227
235
  return;
228
236
  }
229
- if (!(0, utils_1.isValidPath)(localPath)) {
237
+ if (this.sync.ignorer.ignores(filePath)) {
230
238
  ignored.push({
231
239
  localPath,
232
240
  relativePath: filePath,
233
- reason: "invalidPath"
241
+ reason: "remoteIgnore"
234
242
  });
235
243
  return;
236
244
  }
237
- if ((0, utils_1.isDirectoryPathIgnoredByDefault)(filePath) || (0, utils_1.isRelativePathIgnoredByDefault)(filePath)) {
245
+ if (this.sync.excludeDotFiles && (0, utils_1.pathIncludesDotFile)(filePath)) {
238
246
  ignored.push({
239
247
  localPath,
240
248
  relativePath: filePath,
241
- reason: "defaultIgnore"
249
+ reason: "dotFile"
242
250
  });
243
251
  return;
244
252
  }
245
253
  const lowercasePath = filePath.toLowerCase();
246
254
  if (pathsAdded[lowercasePath]) {
255
+ ignored.push({
256
+ localPath,
257
+ relativePath: filePath,
258
+ reason: "duplicate"
259
+ });
247
260
  return;
248
261
  }
249
262
  pathsAdded[lowercasePath] = true;
@@ -274,7 +287,8 @@ class RemoteFileSystem {
274
287
  this.getDirectoryTreeCache = {
275
288
  timestamp: Date.now(),
276
289
  tree,
277
- uuids
290
+ uuids,
291
+ ignored
278
292
  };
279
293
  return {
280
294
  result: {
@@ -620,7 +634,7 @@ class RemoteFileSystem {
620
634
  var _a;
621
635
  const localPath = path_1.default.posix.join(this.sync.syncPair.localPath, relativePath);
622
636
  const tmpLocalPath = path_1.default.join(this.sync.syncPair.localPath, constants_1.LOCAL_TRASH_NAME, (0, uuid_1.v4)());
623
- const signalKey = `upload:${relativePath}`;
637
+ const signalKey = `download:${relativePath}`;
624
638
  const uuid = await this.pathToItemUUID({ relativePath });
625
639
  const item = this.getDirectoryTreeCache.tree[relativePath];
626
640
  if (!uuid || !item) {