@filen/sync 0.2.1 → 0.3.2
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/.node-version +1 -1
- package/dist/ignorer.d.ts +6 -0
- package/dist/ignorer.js +43 -24
- package/dist/ignorer.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/deltas.d.ts +58 -2
- package/dist/lib/deltas.js +693 -108
- package/dist/lib/deltas.js.map +1 -1
- package/dist/lib/environment.d.ts +47 -0
- package/dist/lib/environment.js +71 -0
- package/dist/lib/environment.js.map +1 -0
- package/dist/lib/filesystems/dirTree.d.ts +70 -0
- package/dist/lib/filesystems/dirTree.js +157 -0
- package/dist/lib/filesystems/dirTree.js.map +1 -0
- package/dist/lib/filesystems/local.d.ts +18 -8
- package/dist/lib/filesystems/local.js +166 -160
- package/dist/lib/filesystems/local.js.map +1 -1
- package/dist/lib/filesystems/remote.d.ts +12 -5
- package/dist/lib/filesystems/remote.js +226 -172
- package/dist/lib/filesystems/remote.js.map +1 -1
- package/dist/lib/ipc.js +1 -2
- package/dist/lib/ipc.js.map +1 -1
- package/dist/lib/lock.js +19 -12
- package/dist/lib/lock.js.map +1 -1
- package/dist/lib/logger.js +9 -7
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/state.js +159 -63
- package/dist/lib/state.js.map +1 -1
- package/dist/lib/sync.d.ts +18 -0
- package/dist/lib/sync.js +165 -96
- package/dist/lib/sync.js.map +1 -1
- package/dist/lib/tasks.d.ts +7 -8
- package/dist/lib/tasks.js +38 -45
- package/dist/lib/tasks.js.map +1 -1
- package/dist/semaphore.d.ts +1 -0
- package/dist/semaphore.js +22 -5
- package/dist/semaphore.js.map +1 -1
- package/dist/utils.js +51 -35
- package/dist/utils.js.map +1 -1
- package/eslint.config.mjs +36 -0
- package/package.json +19 -15
- package/tests/bench/collapse.bench.ts +114 -0
- package/tests/bench/cycle.bench.ts +111 -0
- package/tests/bench/deltas.bench.ts +151 -0
- package/tests/bench/harness/fake-sync.ts +32 -0
- package/tests/bench/harness/measure.ts +276 -0
- package/tests/bench/harness/scale-world.ts +160 -0
- package/tests/bench/harness/trees.ts +275 -0
- package/tests/bench/local-scan.bench.ts +74 -0
- package/tests/bench/longrun.bench.ts +130 -0
- package/tests/bench/profile-incremental.ts +90 -0
- package/tests/bench/remote-build.bench.ts +104 -0
- package/tests/bench/render.ts +14 -0
- package/tests/bench/semaphore.bench.ts +79 -0
- package/tests/bench/state.bench.ts +85 -0
- package/tests/bench/tasks-dispatch.bench.ts +156 -0
- package/tests/conformance/virtual-fs.test.ts +213 -0
- package/tests/e2e/backup.e2e.test.ts +130 -0
- package/tests/e2e/confirm.e2e.test.ts +191 -0
- package/tests/e2e/conflict.e2e.test.ts +261 -0
- package/tests/e2e/edge.e2e.test.ts +339 -0
- package/tests/e2e/harness/account.ts +104 -0
- package/tests/e2e/harness/assert.ts +127 -0
- package/tests/e2e/harness/drive.ts +88 -0
- package/tests/e2e/harness/mutations.ts +249 -0
- package/tests/e2e/harness/world.ts +222 -0
- package/tests/e2e/ignore.e2e.test.ts +123 -0
- package/tests/e2e/lifecycle.e2e.test.ts +290 -0
- package/tests/e2e/modes.e2e.test.ts +215 -0
- package/tests/e2e/platform.e2e.test.ts +157 -0
- package/tests/e2e/property.e2e.test.ts +163 -0
- package/tests/e2e/races.e2e.test.ts +90 -0
- package/tests/e2e/regressions.e2e.test.ts +212 -0
- package/tests/e2e/resilience.e2e.test.ts +231 -0
- package/tests/e2e/special.e2e.test.ts +185 -0
- package/tests/e2e/state.e2e.test.ts +229 -0
- package/tests/e2e/sync.e2e.test.ts +222 -0
- package/tests/fakes/fake-cloud.test.ts +267 -0
- package/tests/fakes/fake-cloud.ts +1094 -0
- package/tests/fakes/virtual-fs.ts +354 -0
- package/tests/harness/known-bug.ts +17 -0
- package/tests/harness/mutations.ts +65 -0
- package/tests/harness/runner.ts +141 -0
- package/tests/harness/snapshot.ts +113 -0
- package/tests/harness/world.ts +187 -0
- package/tests/scenarios/a-baseline.test.ts +107 -0
- package/tests/scenarios/aa-races.test.ts +258 -0
- package/tests/scenarios/ab-mode-property.test.ts +189 -0
- package/tests/scenarios/ac-platform.test.ts +320 -0
- package/tests/scenarios/ad-unicode-normalization.test.ts +67 -0
- package/tests/scenarios/b-additions.test.ts +160 -0
- package/tests/scenarios/c-modifications.test.ts +194 -0
- package/tests/scenarios/d-deletions.test.ts +259 -0
- package/tests/scenarios/e-rename-move.test.ts +288 -0
- package/tests/scenarios/f-ignore-filter.test.ts +346 -0
- package/tests/scenarios/g-large-deletion.test.ts +277 -0
- package/tests/scenarios/h-resilience.test.ts +167 -0
- package/tests/scenarios/i-lifecycle.test.ts +353 -0
- package/tests/scenarios/j-state-cache.test.ts +264 -0
- package/tests/scenarios/k-scale.test.ts +202 -0
- package/tests/scenarios/l-property.test.ts +145 -0
- package/tests/scenarios/m-golden.test.ts +452 -0
- package/tests/scenarios/o-task-errors.test.ts +497 -0
- package/tests/scenarios/p-remote-originated.test.ts +306 -0
- package/tests/scenarios/q-cycle-lifecycle.test.ts +234 -0
- package/tests/scenarios/r-rename-stress.test.ts +208 -0
- package/tests/scenarios/s-upgrade-transition.test.ts +171 -0
- package/tests/scenarios/t-type-change.test.ts +144 -0
- package/tests/scenarios/u-mode-local-to-cloud.test.ts +347 -0
- package/tests/scenarios/v-mode-local-backup.test.ts +201 -0
- package/tests/scenarios/w-mode-cloud-to-local.test.ts +304 -0
- package/tests/scenarios/x-mode-cloud-backup.test.ts +201 -0
- package/tests/scenarios/y-conflict-matrix.test.ts +292 -0
- package/tests/scenarios/z-cross-ops.test.ts +285 -0
- package/tests/scenarios/zb-dir-rename-cross.test.ts +296 -0
- package/tests/scenarios/zc-crash-recovery.test.ts +189 -0
- package/tests/scenarios/zd-inode-reuse.test.ts +118 -0
- package/tests/scenarios/ze-move-into-new-dir.test.ts +130 -0
- package/tests/scenarios/zf-remote-change-unchanged-local.test.ts +81 -0
- package/tests/scenarios/zg-edit-during-scan.test.ts +68 -0
- package/tests/scenarios/zh-dir-delete-vs-child.test.ts +104 -0
- package/tests/scenarios/zi-smoke-test-outage.test.ts +78 -0
- package/tests/scenarios/zj-trash-cleanup.test.ts +133 -0
- package/tests/scenarios/zk-ignore-asymmetry.test.ts +150 -0
- package/tests/scenarios/zl-mode-atomicity.test.ts +104 -0
- package/tests/scenarios/zm-scan-concurrency.test.ts +78 -0
- package/tests/scenarios/zn-delta-ordering.test.ts +130 -0
- package/tests/scenarios/zo-download-temp-cleanup.test.ts +65 -0
- package/tests/unit/collapse-deltas.test.ts +276 -0
- package/tests/unit/dir-tree.test.ts +159 -0
- package/tests/unit/icloud.test.ts +115 -0
- package/tests/unit/ignorer-cache-regression.test.ts +70 -0
- package/tests/unit/ignorer.test.ts +63 -0
- package/tests/unit/ipc-lock.test.ts +438 -0
- package/tests/unit/lock.test.ts +135 -0
- package/tests/unit/n-unit.test.ts +632 -0
- package/tests/unit/remote-tree-unordered-regression.test.ts +101 -0
- package/tests/unit/semaphore-regression.test.ts +140 -0
- package/tests/unit/state-refencode-regression.test.ts +224 -0
- package/tests/unit/state.test.ts +809 -0
- package/tests/unit/tasks-dispatch-order-regression.test.ts +53 -0
- package/tests/unit/worker-api.test.ts +379 -0
- package/tsconfig.json +10 -1
- package/tsconfig.test.json +12 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/vitest.bench.config.ts +32 -0
- package/vitest.config.ts +27 -0
- package/vitest.e2e.config.ts +68 -0
- package/.eslintrc +0 -16
- package/jest.config.js +0 -5
package/dist/lib/deltas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deltas.js","sourceRoot":"","sources":["../../src/lib/deltas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deltas.js","sourceRoot":"","sources":["../../src/lib/deltas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import fsExtra from "fs-extra";
|
|
2
|
+
import FastGlob from "fast-glob";
|
|
3
|
+
import { type SyncDirTreeFetcher } from "./filesystems/dirTree";
|
|
4
|
+
/**
|
|
5
|
+
* The subset of the fs-extra promise API that the sync engine awaits directly.
|
|
6
|
+
* The real implementation is fs-extra; tests inject an in-memory equivalent.
|
|
7
|
+
*/
|
|
8
|
+
export type SyncFS = Pick<typeof fsExtra, "stat" | "lstat" | "access" | "exists" | "pathExists" | "ensureDir" | "mkdir" | "rm" | "move" | "rename" | "createReadStream" | "createWriteStream" | "readFile" | "writeFile" | "utimes" | "constants">;
|
|
9
|
+
/**
|
|
10
|
+
* Filesystem adapter handed to fast-glob (callback/sync API). fs-extra satisfies this; tests
|
|
11
|
+
* pass an in-memory equivalent backed by the same storage as {@link SyncFS}.
|
|
12
|
+
*/
|
|
13
|
+
export type SyncGlobFS = Partial<FastGlob.FileSystemAdapter>;
|
|
14
|
+
/**
|
|
15
|
+
* Atomic file writer. Matches the single call shape the engine uses.
|
|
16
|
+
*/
|
|
17
|
+
export type SyncWriteFileAtomic = (filename: string, data: string, options: {
|
|
18
|
+
encoding: BufferEncoding;
|
|
19
|
+
}) => Promise<void>;
|
|
20
|
+
export type SyncWatcher = {
|
|
21
|
+
close: () => Promise<void>;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Creates a recursive directory watcher that invokes `onChange` whenever something under `path`
|
|
25
|
+
* changes. The default uses the native recursive `fs.watch`; tests inject a controllable no-op.
|
|
26
|
+
*/
|
|
27
|
+
export type SyncWatcherFactory = (path: string, onChange: () => void) => Promise<SyncWatcher>;
|
|
28
|
+
/**
|
|
29
|
+
* All external, side-effecting dependencies of the sync engine, gathered behind one injectable
|
|
30
|
+
* object. {@link defaultEnvironment} wires the real implementations; tests pass fakes. Time is NOT
|
|
31
|
+
* here on purpose — tests control it with fake timers.
|
|
32
|
+
*/
|
|
33
|
+
export type SyncEnvironment = {
|
|
34
|
+
fs: SyncFS;
|
|
35
|
+
globFs: SyncGlobFS;
|
|
36
|
+
writeFileAtomic: SyncWriteFileAtomic;
|
|
37
|
+
createWatcher: SyncWatcherFactory;
|
|
38
|
+
/**
|
|
39
|
+
* Fetches the remote directory tree. Production uses a msgpack reimplementation of `/v3/dir/tree`;
|
|
40
|
+
* tests inject a fetcher backed by the fake cloud. Swappable so the wire format is not baked in.
|
|
41
|
+
*/
|
|
42
|
+
fetchDirTree: SyncDirTreeFetcher;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* The production environment: real fs-extra, native recursive fs.watch, real write-file-atomic.
|
|
46
|
+
*/
|
|
47
|
+
export declare function defaultEnvironment(): SyncEnvironment;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.defaultEnvironment = defaultEnvironment;
|
|
7
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const write_file_atomic_1 = __importDefault(require("write-file-atomic"));
|
|
10
|
+
const dirTree_1 = require("./filesystems/dirTree");
|
|
11
|
+
/**
|
|
12
|
+
* The production environment: real fs-extra, native recursive fs.watch, real write-file-atomic.
|
|
13
|
+
*/
|
|
14
|
+
function defaultEnvironment() {
|
|
15
|
+
return {
|
|
16
|
+
fs: fs_extra_1.default,
|
|
17
|
+
globFs: fs_extra_1.default,
|
|
18
|
+
writeFileAtomic: write_file_atomic_1.default,
|
|
19
|
+
fetchDirTree: (sdk, request) => (0, dirTree_1.fetchDirTreeMsgpack)(sdk, request),
|
|
20
|
+
createWatcher: async (path, onChange) => {
|
|
21
|
+
let closed = false;
|
|
22
|
+
let watcher;
|
|
23
|
+
const start = () => {
|
|
24
|
+
watcher = fs_1.default.watch(path, { recursive: true, persistent: true }, () => {
|
|
25
|
+
onChange();
|
|
26
|
+
});
|
|
27
|
+
// fs.watch can emit a runtime "error" (a transient inotify/FSEvents hiccup, or the watched
|
|
28
|
+
// directory being replaced). Tear the dead watcher down and re-establish it shortly after
|
|
29
|
+
// instead of letting the error go unhandled; trigger a scan so nothing is missed in the gap.
|
|
30
|
+
watcher.on("error", () => {
|
|
31
|
+
try {
|
|
32
|
+
watcher === null || watcher === void 0 ? void 0 : watcher.close();
|
|
33
|
+
}
|
|
34
|
+
catch (_a) {
|
|
35
|
+
// already closed
|
|
36
|
+
}
|
|
37
|
+
if (closed) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
onChange();
|
|
41
|
+
setTimeout(() => {
|
|
42
|
+
if (closed) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
start();
|
|
47
|
+
}
|
|
48
|
+
catch (_a) {
|
|
49
|
+
// startDirectoryWatcher's retry + fallback interval recovers on the next cycle
|
|
50
|
+
}
|
|
51
|
+
}, 1000);
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
// A creation failure (e.g. the path is gone) throws here and rejects the factory, so
|
|
55
|
+
// startDirectoryWatcher falls back to its polling interval.
|
|
56
|
+
start();
|
|
57
|
+
return {
|
|
58
|
+
close: async () => {
|
|
59
|
+
closed = true;
|
|
60
|
+
try {
|
|
61
|
+
watcher === null || watcher === void 0 ? void 0 : watcher.close();
|
|
62
|
+
}
|
|
63
|
+
catch (_a) {
|
|
64
|
+
// already closed
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/lib/environment.ts"],"names":[],"mappings":";;;;;AAuEA,gDA8DC;AArID,wDAA8B;AAC9B,4CAAmB;AAEnB,0EAAmD;AACnD,mDAAoF;AAgEpF;;GAEG;AACH,SAAgB,kBAAkB;IACjC,OAAO;QACN,EAAE,EAAE,kBAAO;QACX,MAAM,EAAE,kBAAO;QACf,eAAe,EAAE,2BAAmB;QACpC,YAAY,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,IAAA,6BAAmB,EAAC,GAAG,EAAE,OAAO,CAAC;QACjE,aAAa,EAAE,KAAK,EAAE,IAAY,EAAE,QAAoB,EAAwB,EAAE;YACjF,IAAI,MAAM,GAAG,KAAK,CAAA;YAClB,IAAI,OAAiC,CAAA;YAErC,MAAM,KAAK,GAAG,GAAS,EAAE;gBACxB,OAAO,GAAG,YAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE;oBACpE,QAAQ,EAAE,CAAA;gBACX,CAAC,CAAC,CAAA;gBAEF,2FAA2F;gBAC3F,0FAA0F;gBAC1F,6FAA6F;gBAC7F,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;oBACxB,IAAI,CAAC;wBACJ,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE,CAAA;oBACjB,CAAC;oBAAC,WAAM,CAAC;wBACR,iBAAiB;oBAClB,CAAC;oBAED,IAAI,MAAM,EAAE,CAAC;wBACZ,OAAM;oBACP,CAAC;oBAED,QAAQ,EAAE,CAAA;oBAEV,UAAU,CAAC,GAAG,EAAE;wBACf,IAAI,MAAM,EAAE,CAAC;4BACZ,OAAM;wBACP,CAAC;wBAED,IAAI,CAAC;4BACJ,KAAK,EAAE,CAAA;wBACR,CAAC;wBAAC,WAAM,CAAC;4BACR,+EAA+E;wBAChF,CAAC;oBACF,CAAC,EAAE,IAAI,CAAC,CAAA;gBACT,CAAC,CAAC,CAAA;YACH,CAAC,CAAA;YAED,qFAAqF;YACrF,4DAA4D;YAC5D,KAAK,EAAE,CAAA;YAEP,OAAO;gBACN,KAAK,EAAE,KAAK,IAAmB,EAAE;oBAChC,MAAM,GAAG,IAAI,CAAA;oBAEb,IAAI,CAAC;wBACJ,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE,CAAA;oBACjB,CAAC;oBAAC,WAAM,CAAC;wBACR,iBAAiB;oBAClB,CAAC;gBACF,CAAC;aACD,CAAA;QACF,CAAC;KACD,CAAA;AACF,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type FilenSDK from "@filen/sdk";
|
|
2
|
+
/**
|
|
3
|
+
* The exact dir-tree response shape the SDK's public `api(3).dir().tree()` returns, derived from the
|
|
4
|
+
* SDK's own types so this reimplementation can never drift from what `remote.ts` consumes (the tuple
|
|
5
|
+
* element types — uuid/metadata/parent, file encryption version, etc. — come along for free).
|
|
6
|
+
*/
|
|
7
|
+
export type DirTreeResponse = Awaited<ReturnType<ReturnType<ReturnType<FilenSDK["api"]>["dir"]>["tree"]>>;
|
|
8
|
+
/**
|
|
9
|
+
* The minimal slice of a FilenSDK instance the fetcher needs: its already-configured axios instance
|
|
10
|
+
* (reused so we inherit the consumer's proxy/agent/interceptor setup and add no new HTTP surface) and
|
|
11
|
+
* its config for the API key. The real `FilenSDK` satisfies this structurally.
|
|
12
|
+
*/
|
|
13
|
+
export type DirTreeSDK = Pick<FilenSDK, "axiosInstance" | "config">;
|
|
14
|
+
export type DirTreeRequest = {
|
|
15
|
+
uuid: string;
|
|
16
|
+
deviceId: string;
|
|
17
|
+
skipCache: boolean;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* The swappable remote tree-fetch seam (lives on {@link SyncEnvironment}). Production wires
|
|
21
|
+
* {@link fetchDirTreeMsgpack}; tests inject a fetcher that delegates to the fake cloud's
|
|
22
|
+
* `api(3).dir().tree()` so every scenario keeps exercising the real engine logic without HTTP.
|
|
23
|
+
*/
|
|
24
|
+
export type SyncDirTreeFetcher = (sdk: DirTreeSDK, request: DirTreeRequest) => Promise<DirTreeResponse>;
|
|
25
|
+
/**
|
|
26
|
+
* The same gateway pool the SDK uses, mirrored here so this one reimplemented call does not reach into
|
|
27
|
+
* SDK internals. Requests rotate through these on failure for deterministic failover.
|
|
28
|
+
*/
|
|
29
|
+
export declare const DIR_TREE_GATEWAY_URLS: readonly string[];
|
|
30
|
+
/**
|
|
31
|
+
* A definitive API-level error: the response envelope reported `status: false` (e.g. `folder_not_found`).
|
|
32
|
+
* Thrown WITHOUT retry — retrying a definitive rejection is pointless and would only mask the real cause.
|
|
33
|
+
*/
|
|
34
|
+
export declare class DirTreeAPIError extends Error {
|
|
35
|
+
readonly code: string;
|
|
36
|
+
constructor(code: string, message: string);
|
|
37
|
+
}
|
|
38
|
+
export type FetchDirTreeOptions = {
|
|
39
|
+
maxTries?: number;
|
|
40
|
+
baseRetryDelayMs?: number;
|
|
41
|
+
maxRetryDelayMs?: number;
|
|
42
|
+
timeoutMs?: number;
|
|
43
|
+
gatewayURLs?: readonly string[];
|
|
44
|
+
abortSignal?: AbortSignal;
|
|
45
|
+
/** Injectable for deterministic tests; defaults to `Math.random`. */
|
|
46
|
+
random?: () => number;
|
|
47
|
+
/** Injectable for deterministic tests; defaults to a real timer. */
|
|
48
|
+
sleep?: (ms: number) => Promise<void>;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Reimplements the single `/v3/dir/tree` API call the sync engine depends on, requesting a **msgpack**
|
|
52
|
+
* response (decoded with msgpackr) instead of JSON — far cheaper to transfer and parse for very large
|
|
53
|
+
* trees. The request BODY stays JSON; only the server's response is msgpack.
|
|
54
|
+
*
|
|
55
|
+
* Memory: this is the hottest allocation in a sync cycle (the entire remote tree lands here), so the
|
|
56
|
+
* path is kept lean. msgpack decodes raw bytes straight to objects — unlike JSON, which must first
|
|
57
|
+
* materialise the whole response as one giant UTF-8 string before parsing (peak = bytes + string +
|
|
58
|
+
* objects vs bytes + objects). The arraybuffer Buffer is reused without copying ({@link toBuffer}), the
|
|
59
|
+
* decoded `files`/`folders` arrays are returned by reference (never cloned), and axios response
|
|
60
|
+
* transforms are disabled so it never tries to stringify/parse the binary body. Peak memory is then
|
|
61
|
+
* just the response bytes plus the decoded tree — irreducible for a tree of that size.
|
|
62
|
+
*
|
|
63
|
+
* Behaviour mirrors the SDK's call 1:1 — identical body, identical `{ status, code, message, data }`
|
|
64
|
+
* envelope, and the same deviceId-cache contract the engine relies on (an unchanged tree comes back
|
|
65
|
+
* with empty `files`/`folders`, which `remote.ts` reads as "reuse my cache"). Transport is sturdier
|
|
66
|
+
* than the SDK's: it rotates through every gateway on failure (the SDK picks a random one each try and
|
|
67
|
+
* can hit the same dead host twice) and backs off with full-jitter exponential delay instead of a flat
|
|
68
|
+
* interval. Definitive API errors and aborts short-circuit without retrying.
|
|
69
|
+
*/
|
|
70
|
+
export declare function fetchDirTreeMsgpack(sdk: DirTreeSDK, request: DirTreeRequest, options?: FetchDirTreeOptions): Promise<DirTreeResponse>;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DirTreeAPIError = exports.DIR_TREE_GATEWAY_URLS = void 0;
|
|
4
|
+
exports.fetchDirTreeMsgpack = fetchDirTreeMsgpack;
|
|
5
|
+
const msgpackr_1 = require("msgpackr");
|
|
6
|
+
/**
|
|
7
|
+
* The same gateway pool the SDK uses, mirrored here so this one reimplemented call does not reach into
|
|
8
|
+
* SDK internals. Requests rotate through these on failure for deterministic failover.
|
|
9
|
+
*/
|
|
10
|
+
exports.DIR_TREE_GATEWAY_URLS = [
|
|
11
|
+
"https://gateway.filen.io",
|
|
12
|
+
"https://gateway.filen.net",
|
|
13
|
+
"https://gateway.filen-1.net",
|
|
14
|
+
"https://gateway.filen-2.net",
|
|
15
|
+
"https://gateway.filen-3.net",
|
|
16
|
+
"https://gateway.filen-4.net",
|
|
17
|
+
"https://gateway.filen-5.net",
|
|
18
|
+
"https://gateway.filen-6.net"
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* A definitive API-level error: the response envelope reported `status: false` (e.g. `folder_not_found`).
|
|
22
|
+
* Thrown WITHOUT retry — retrying a definitive rejection is pointless and would only mask the real cause.
|
|
23
|
+
*/
|
|
24
|
+
class DirTreeAPIError extends Error {
|
|
25
|
+
constructor(code, message) {
|
|
26
|
+
super(message);
|
|
27
|
+
this.name = "DirTreeAPIError";
|
|
28
|
+
this.code = code;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.DirTreeAPIError = DirTreeAPIError;
|
|
32
|
+
const defaultSleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
33
|
+
// Identity transform: keep axios's hands off the binary response body (no copy, no parse attempt).
|
|
34
|
+
const passthroughResponse = (data) => data;
|
|
35
|
+
/**
|
|
36
|
+
* Reimplements the single `/v3/dir/tree` API call the sync engine depends on, requesting a **msgpack**
|
|
37
|
+
* response (decoded with msgpackr) instead of JSON — far cheaper to transfer and parse for very large
|
|
38
|
+
* trees. The request BODY stays JSON; only the server's response is msgpack.
|
|
39
|
+
*
|
|
40
|
+
* Memory: this is the hottest allocation in a sync cycle (the entire remote tree lands here), so the
|
|
41
|
+
* path is kept lean. msgpack decodes raw bytes straight to objects — unlike JSON, which must first
|
|
42
|
+
* materialise the whole response as one giant UTF-8 string before parsing (peak = bytes + string +
|
|
43
|
+
* objects vs bytes + objects). The arraybuffer Buffer is reused without copying ({@link toBuffer}), the
|
|
44
|
+
* decoded `files`/`folders` arrays are returned by reference (never cloned), and axios response
|
|
45
|
+
* transforms are disabled so it never tries to stringify/parse the binary body. Peak memory is then
|
|
46
|
+
* just the response bytes plus the decoded tree — irreducible for a tree of that size.
|
|
47
|
+
*
|
|
48
|
+
* Behaviour mirrors the SDK's call 1:1 — identical body, identical `{ status, code, message, data }`
|
|
49
|
+
* envelope, and the same deviceId-cache contract the engine relies on (an unchanged tree comes back
|
|
50
|
+
* with empty `files`/`folders`, which `remote.ts` reads as "reuse my cache"). Transport is sturdier
|
|
51
|
+
* than the SDK's: it rotates through every gateway on failure (the SDK picks a random one each try and
|
|
52
|
+
* can hit the same dead host twice) and backs off with full-jitter exponential delay instead of a flat
|
|
53
|
+
* interval. Definitive API errors and aborts short-circuit without retrying.
|
|
54
|
+
*/
|
|
55
|
+
async function fetchDirTreeMsgpack(sdk, request, options = {}) {
|
|
56
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
57
|
+
const gateways = options.gatewayURLs && options.gatewayURLs.length > 0 ? options.gatewayURLs : exports.DIR_TREE_GATEWAY_URLS;
|
|
58
|
+
const maxTries = (_a = options.maxTries) !== null && _a !== void 0 ? _a : 32;
|
|
59
|
+
const baseDelay = (_b = options.baseRetryDelayMs) !== null && _b !== void 0 ? _b : 1000;
|
|
60
|
+
const maxDelay = (_c = options.maxRetryDelayMs) !== null && _c !== void 0 ? _c : 15000;
|
|
61
|
+
const timeout = (_d = options.timeoutMs) !== null && _d !== void 0 ? _d : 300000;
|
|
62
|
+
const random = (_e = options.random) !== null && _e !== void 0 ? _e : Math.random;
|
|
63
|
+
const sleep = (_f = options.sleep) !== null && _f !== void 0 ? _f : defaultSleep;
|
|
64
|
+
const apiKey = sdk.config.apiKey && sdk.config.apiKey.length > 0 ? sdk.config.apiKey : "anonymous";
|
|
65
|
+
// Body is JSON and identical to the SDK's (skipCache encoded as 1/0).
|
|
66
|
+
const body = {
|
|
67
|
+
uuid: request.uuid,
|
|
68
|
+
deviceId: request.deviceId,
|
|
69
|
+
skipCache: request.skipCache ? 1 : 0
|
|
70
|
+
};
|
|
71
|
+
// Spread the initial gateway choice across the pool so many clients do not all hammer gateway[0].
|
|
72
|
+
const startIndex = Math.floor(random() * gateways.length);
|
|
73
|
+
let lastError;
|
|
74
|
+
for (let attempt = 0; attempt < maxTries; attempt++) {
|
|
75
|
+
if ((_g = options.abortSignal) === null || _g === void 0 ? void 0 : _g.aborted) {
|
|
76
|
+
throw new Error("Aborted");
|
|
77
|
+
}
|
|
78
|
+
const url = gateways[(startIndex + attempt) % gateways.length];
|
|
79
|
+
try {
|
|
80
|
+
const response = await sdk.axiosInstance.post(`${url}/v3/dir/tree`, body, Object.assign({ headers: {
|
|
81
|
+
Authorization: `Bearer ${apiKey}`,
|
|
82
|
+
Accept: "application/msgpack",
|
|
83
|
+
"Content-Type": "application/json",
|
|
84
|
+
"User-Agent": "filen-sync",
|
|
85
|
+
msgpack: "1"
|
|
86
|
+
}, responseType: "arraybuffer",
|
|
87
|
+
// Hand back the raw binary untouched — skip axios's default transform (which would try to
|
|
88
|
+
// stringify/JSON-parse) so the large response is never copied or materialised as a string.
|
|
89
|
+
transformResponse: passthroughResponse, timeout, maxRedirects: 0, maxBodyLength: Infinity, maxContentLength: Infinity }, (options.abortSignal ? { signal: options.abortSignal } : {})));
|
|
90
|
+
if (!response || response.status !== 200) {
|
|
91
|
+
throw new Error(`Invalid HTTP status code: ${response ? response.status : "no response"}`);
|
|
92
|
+
}
|
|
93
|
+
const decoded = (0, msgpackr_1.unpack)(toBuffer(response.data));
|
|
94
|
+
// Envelope error (e.g. folder_not_found): definitive — surface it, do not retry.
|
|
95
|
+
if (isFailedEnvelope(decoded)) {
|
|
96
|
+
throw new DirTreeAPIError((_h = decoded.code) !== null && _h !== void 0 ? _h : "unknown", (_j = decoded.message) !== null && _j !== void 0 ? _j : "Request failed.");
|
|
97
|
+
}
|
|
98
|
+
const data = unwrapEnvelope(decoded);
|
|
99
|
+
return {
|
|
100
|
+
files: Array.isArray(data.files) ? data.files : [],
|
|
101
|
+
folders: Array.isArray(data.folders) ? data.folders : [],
|
|
102
|
+
raw: ""
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
catch (e) {
|
|
106
|
+
// Definitive API errors and aborts are not retried.
|
|
107
|
+
if (e instanceof DirTreeAPIError || ((_k = options.abortSignal) === null || _k === void 0 ? void 0 : _k.aborted)) {
|
|
108
|
+
throw e;
|
|
109
|
+
}
|
|
110
|
+
lastError = e;
|
|
111
|
+
if (attempt === maxTries - 1) {
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
// Full jitter: a random point in [0, exponential cap] spreads retries and avoids thundering herds.
|
|
115
|
+
const expDelay = Math.min(maxDelay, baseDelay * Math.pow(2, attempt));
|
|
116
|
+
await sleep(Math.floor(random() * expDelay));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
throw lastError instanceof Error ? lastError : new Error("Failed to fetch directory tree after all retries.");
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Normalises whatever axios hands back for an arraybuffer response (Buffer, ArrayBuffer, or a typed-array
|
|
123
|
+
* view) into a Buffer msgpackr can decode.
|
|
124
|
+
*/
|
|
125
|
+
function toBuffer(payload) {
|
|
126
|
+
if (Buffer.isBuffer(payload)) {
|
|
127
|
+
return payload;
|
|
128
|
+
}
|
|
129
|
+
if (payload instanceof ArrayBuffer) {
|
|
130
|
+
return Buffer.from(payload);
|
|
131
|
+
}
|
|
132
|
+
if (ArrayBuffer.isView(payload)) {
|
|
133
|
+
return Buffer.from(payload.buffer, payload.byteOffset, payload.byteLength);
|
|
134
|
+
}
|
|
135
|
+
throw new Error("Unexpected dir tree response payload type.");
|
|
136
|
+
}
|
|
137
|
+
function isFailedEnvelope(decoded) {
|
|
138
|
+
return (typeof decoded === "object" &&
|
|
139
|
+
decoded !== null &&
|
|
140
|
+
typeof decoded.status === "boolean" &&
|
|
141
|
+
decoded.status === false);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* The API wraps results in `{ status, data }`; msgpack mirrors that. Unwrap `data` when present, else
|
|
145
|
+
* treat the decoded object as the bare `{ files, folders }` result.
|
|
146
|
+
*/
|
|
147
|
+
function unwrapEnvelope(decoded) {
|
|
148
|
+
if (typeof decoded === "object" && decoded !== null) {
|
|
149
|
+
const envelope = decoded;
|
|
150
|
+
if (typeof envelope.data === "object" && envelope.data !== null) {
|
|
151
|
+
return envelope.data;
|
|
152
|
+
}
|
|
153
|
+
return envelope;
|
|
154
|
+
}
|
|
155
|
+
return {};
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=dirTree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dirTree.js","sourceRoot":"","sources":["../../../src/lib/filesystems/dirTree.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
import fs from "fs-extra";
|
|
1
|
+
import { type Stats } from "fs-extra";
|
|
3
2
|
import type Sync from "../sync";
|
|
4
3
|
import { type CloudItem } from "@filen/sdk";
|
|
5
4
|
import { Semaphore } from "../../semaphore";
|
|
5
|
+
/**
|
|
6
|
+
* Upper bound on how many local entries are stat'd concurrently during a single tree scan.
|
|
7
|
+
*
|
|
8
|
+
* The scan fans a filesystem `lstat` (+ `access`) out over every glob entry. Mapping all entries to
|
|
9
|
+
* promises up front would, on a tree with millions of entries, allocate millions of pending promises
|
|
10
|
+
* and in-flight stat results at once — an O(n) peak-memory spike on top of the (unavoidable) result
|
|
11
|
+
* tree, plus unbounded pressure on the libuv thread pool and open file descriptors. Walking the entries
|
|
12
|
+
* in fixed-size batches caps peak concurrency — and therefore peak memory — without reducing throughput,
|
|
13
|
+
* since the thread pool only services a handful of these operations in parallel regardless of how many
|
|
14
|
+
* are queued. Batches run sequentially, so the first-occurrence-wins dedup order is preserved exactly.
|
|
15
|
+
*/
|
|
16
|
+
export declare const LOCAL_SCAN_CONCURRENCY = 1000;
|
|
6
17
|
export type LocalItem = {
|
|
7
18
|
lastModified: number;
|
|
8
19
|
type: "file" | "directory";
|
|
@@ -50,8 +61,7 @@ export declare class LocalFileSystem {
|
|
|
50
61
|
size: number;
|
|
51
62
|
};
|
|
52
63
|
watcherRunning: boolean;
|
|
53
|
-
private
|
|
54
|
-
private watcherInstanceNode;
|
|
64
|
+
private watcherInstance;
|
|
55
65
|
readonly itemsMutex: Semaphore;
|
|
56
66
|
readonly mutex: Semaphore;
|
|
57
67
|
readonly mkdirMutex: Semaphore;
|
|
@@ -138,11 +148,11 @@ export declare class LocalFileSystem {
|
|
|
138
148
|
* @async
|
|
139
149
|
* @param {{ relativePath: string }} param0
|
|
140
150
|
* @param {string} param0.relativePath
|
|
141
|
-
* @returns {Promise<
|
|
151
|
+
* @returns {Promise<Stats>}
|
|
142
152
|
*/
|
|
143
153
|
mkdir({ relativePath }: {
|
|
144
154
|
relativePath: string;
|
|
145
|
-
}): Promise<
|
|
155
|
+
}): Promise<Stats>;
|
|
146
156
|
unlink({ relativePath, permanent }: {
|
|
147
157
|
relativePath: string;
|
|
148
158
|
permanent?: boolean;
|
|
@@ -150,7 +160,7 @@ export declare class LocalFileSystem {
|
|
|
150
160
|
rename({ fromRelativePath, toRelativePath }: {
|
|
151
161
|
fromRelativePath: string;
|
|
152
162
|
toRelativePath: string;
|
|
153
|
-
}): Promise<
|
|
163
|
+
}): Promise<Stats>;
|
|
154
164
|
/**
|
|
155
165
|
* Upload a local file.
|
|
156
166
|
*
|
|
@@ -163,7 +173,7 @@ export declare class LocalFileSystem {
|
|
|
163
173
|
*/
|
|
164
174
|
upload({ relativePath, passedMD5Hash }: {
|
|
165
175
|
relativePath: string;
|
|
166
|
-
passedMD5Hash?: string;
|
|
176
|
+
passedMD5Hash?: string | undefined;
|
|
167
177
|
}): Promise<CloudItem>;
|
|
168
178
|
isPathWritable(path: string): Promise<boolean>;
|
|
169
179
|
isPathReadable(path: string): Promise<boolean>;
|