@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.
Files changed (152) hide show
  1. package/.node-version +1 -1
  2. package/dist/ignorer.d.ts +6 -0
  3. package/dist/ignorer.js +43 -24
  4. package/dist/ignorer.js.map +1 -1
  5. package/dist/index.d.ts +4 -1
  6. package/dist/index.js +3 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/lib/deltas.d.ts +58 -2
  9. package/dist/lib/deltas.js +693 -108
  10. package/dist/lib/deltas.js.map +1 -1
  11. package/dist/lib/environment.d.ts +47 -0
  12. package/dist/lib/environment.js +71 -0
  13. package/dist/lib/environment.js.map +1 -0
  14. package/dist/lib/filesystems/dirTree.d.ts +70 -0
  15. package/dist/lib/filesystems/dirTree.js +157 -0
  16. package/dist/lib/filesystems/dirTree.js.map +1 -0
  17. package/dist/lib/filesystems/local.d.ts +18 -8
  18. package/dist/lib/filesystems/local.js +166 -160
  19. package/dist/lib/filesystems/local.js.map +1 -1
  20. package/dist/lib/filesystems/remote.d.ts +12 -5
  21. package/dist/lib/filesystems/remote.js +226 -172
  22. package/dist/lib/filesystems/remote.js.map +1 -1
  23. package/dist/lib/ipc.js +1 -2
  24. package/dist/lib/ipc.js.map +1 -1
  25. package/dist/lib/lock.js +19 -12
  26. package/dist/lib/lock.js.map +1 -1
  27. package/dist/lib/logger.js +9 -7
  28. package/dist/lib/logger.js.map +1 -1
  29. package/dist/lib/state.js +159 -63
  30. package/dist/lib/state.js.map +1 -1
  31. package/dist/lib/sync.d.ts +18 -0
  32. package/dist/lib/sync.js +165 -96
  33. package/dist/lib/sync.js.map +1 -1
  34. package/dist/lib/tasks.d.ts +7 -8
  35. package/dist/lib/tasks.js +38 -45
  36. package/dist/lib/tasks.js.map +1 -1
  37. package/dist/semaphore.d.ts +1 -0
  38. package/dist/semaphore.js +22 -5
  39. package/dist/semaphore.js.map +1 -1
  40. package/dist/utils.js +51 -35
  41. package/dist/utils.js.map +1 -1
  42. package/eslint.config.mjs +36 -0
  43. package/package.json +19 -15
  44. package/tests/bench/collapse.bench.ts +114 -0
  45. package/tests/bench/cycle.bench.ts +111 -0
  46. package/tests/bench/deltas.bench.ts +151 -0
  47. package/tests/bench/harness/fake-sync.ts +32 -0
  48. package/tests/bench/harness/measure.ts +276 -0
  49. package/tests/bench/harness/scale-world.ts +160 -0
  50. package/tests/bench/harness/trees.ts +275 -0
  51. package/tests/bench/local-scan.bench.ts +74 -0
  52. package/tests/bench/longrun.bench.ts +130 -0
  53. package/tests/bench/profile-incremental.ts +90 -0
  54. package/tests/bench/remote-build.bench.ts +104 -0
  55. package/tests/bench/render.ts +14 -0
  56. package/tests/bench/semaphore.bench.ts +79 -0
  57. package/tests/bench/state.bench.ts +85 -0
  58. package/tests/bench/tasks-dispatch.bench.ts +156 -0
  59. package/tests/conformance/virtual-fs.test.ts +213 -0
  60. package/tests/e2e/backup.e2e.test.ts +130 -0
  61. package/tests/e2e/confirm.e2e.test.ts +191 -0
  62. package/tests/e2e/conflict.e2e.test.ts +261 -0
  63. package/tests/e2e/edge.e2e.test.ts +339 -0
  64. package/tests/e2e/harness/account.ts +104 -0
  65. package/tests/e2e/harness/assert.ts +127 -0
  66. package/tests/e2e/harness/drive.ts +88 -0
  67. package/tests/e2e/harness/mutations.ts +249 -0
  68. package/tests/e2e/harness/world.ts +222 -0
  69. package/tests/e2e/ignore.e2e.test.ts +123 -0
  70. package/tests/e2e/lifecycle.e2e.test.ts +290 -0
  71. package/tests/e2e/modes.e2e.test.ts +215 -0
  72. package/tests/e2e/platform.e2e.test.ts +157 -0
  73. package/tests/e2e/property.e2e.test.ts +163 -0
  74. package/tests/e2e/races.e2e.test.ts +90 -0
  75. package/tests/e2e/regressions.e2e.test.ts +212 -0
  76. package/tests/e2e/resilience.e2e.test.ts +231 -0
  77. package/tests/e2e/special.e2e.test.ts +185 -0
  78. package/tests/e2e/state.e2e.test.ts +229 -0
  79. package/tests/e2e/sync.e2e.test.ts +222 -0
  80. package/tests/fakes/fake-cloud.test.ts +267 -0
  81. package/tests/fakes/fake-cloud.ts +1094 -0
  82. package/tests/fakes/virtual-fs.ts +354 -0
  83. package/tests/harness/known-bug.ts +17 -0
  84. package/tests/harness/mutations.ts +65 -0
  85. package/tests/harness/runner.ts +141 -0
  86. package/tests/harness/snapshot.ts +113 -0
  87. package/tests/harness/world.ts +187 -0
  88. package/tests/scenarios/a-baseline.test.ts +107 -0
  89. package/tests/scenarios/aa-races.test.ts +258 -0
  90. package/tests/scenarios/ab-mode-property.test.ts +189 -0
  91. package/tests/scenarios/ac-platform.test.ts +320 -0
  92. package/tests/scenarios/ad-unicode-normalization.test.ts +67 -0
  93. package/tests/scenarios/b-additions.test.ts +160 -0
  94. package/tests/scenarios/c-modifications.test.ts +194 -0
  95. package/tests/scenarios/d-deletions.test.ts +259 -0
  96. package/tests/scenarios/e-rename-move.test.ts +288 -0
  97. package/tests/scenarios/f-ignore-filter.test.ts +346 -0
  98. package/tests/scenarios/g-large-deletion.test.ts +277 -0
  99. package/tests/scenarios/h-resilience.test.ts +167 -0
  100. package/tests/scenarios/i-lifecycle.test.ts +353 -0
  101. package/tests/scenarios/j-state-cache.test.ts +264 -0
  102. package/tests/scenarios/k-scale.test.ts +202 -0
  103. package/tests/scenarios/l-property.test.ts +145 -0
  104. package/tests/scenarios/m-golden.test.ts +452 -0
  105. package/tests/scenarios/o-task-errors.test.ts +497 -0
  106. package/tests/scenarios/p-remote-originated.test.ts +306 -0
  107. package/tests/scenarios/q-cycle-lifecycle.test.ts +234 -0
  108. package/tests/scenarios/r-rename-stress.test.ts +208 -0
  109. package/tests/scenarios/s-upgrade-transition.test.ts +171 -0
  110. package/tests/scenarios/t-type-change.test.ts +144 -0
  111. package/tests/scenarios/u-mode-local-to-cloud.test.ts +347 -0
  112. package/tests/scenarios/v-mode-local-backup.test.ts +201 -0
  113. package/tests/scenarios/w-mode-cloud-to-local.test.ts +304 -0
  114. package/tests/scenarios/x-mode-cloud-backup.test.ts +201 -0
  115. package/tests/scenarios/y-conflict-matrix.test.ts +292 -0
  116. package/tests/scenarios/z-cross-ops.test.ts +285 -0
  117. package/tests/scenarios/zb-dir-rename-cross.test.ts +296 -0
  118. package/tests/scenarios/zc-crash-recovery.test.ts +189 -0
  119. package/tests/scenarios/zd-inode-reuse.test.ts +118 -0
  120. package/tests/scenarios/ze-move-into-new-dir.test.ts +130 -0
  121. package/tests/scenarios/zf-remote-change-unchanged-local.test.ts +81 -0
  122. package/tests/scenarios/zg-edit-during-scan.test.ts +68 -0
  123. package/tests/scenarios/zh-dir-delete-vs-child.test.ts +104 -0
  124. package/tests/scenarios/zi-smoke-test-outage.test.ts +78 -0
  125. package/tests/scenarios/zj-trash-cleanup.test.ts +133 -0
  126. package/tests/scenarios/zk-ignore-asymmetry.test.ts +150 -0
  127. package/tests/scenarios/zl-mode-atomicity.test.ts +104 -0
  128. package/tests/scenarios/zm-scan-concurrency.test.ts +78 -0
  129. package/tests/scenarios/zn-delta-ordering.test.ts +130 -0
  130. package/tests/scenarios/zo-download-temp-cleanup.test.ts +65 -0
  131. package/tests/unit/collapse-deltas.test.ts +276 -0
  132. package/tests/unit/dir-tree.test.ts +159 -0
  133. package/tests/unit/icloud.test.ts +115 -0
  134. package/tests/unit/ignorer-cache-regression.test.ts +70 -0
  135. package/tests/unit/ignorer.test.ts +63 -0
  136. package/tests/unit/ipc-lock.test.ts +438 -0
  137. package/tests/unit/lock.test.ts +135 -0
  138. package/tests/unit/n-unit.test.ts +632 -0
  139. package/tests/unit/remote-tree-unordered-regression.test.ts +101 -0
  140. package/tests/unit/semaphore-regression.test.ts +140 -0
  141. package/tests/unit/state-refencode-regression.test.ts +224 -0
  142. package/tests/unit/state.test.ts +809 -0
  143. package/tests/unit/tasks-dispatch-order-regression.test.ts +53 -0
  144. package/tests/unit/worker-api.test.ts +379 -0
  145. package/tsconfig.json +10 -1
  146. package/tsconfig.test.json +12 -0
  147. package/tsconfig.tsbuildinfo +1 -0
  148. package/vitest.bench.config.ts +32 -0
  149. package/vitest.config.ts +27 -0
  150. package/vitest.e2e.config.ts +68 -0
  151. package/.eslintrc +0 -16
  152. package/jest.config.js +0 -5
@@ -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
- /// <reference types="node" />
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 watcherInstanceParcel;
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<fs.Stats>}
151
+ * @returns {Promise<Stats>}
142
152
  */
143
153
  mkdir({ relativePath }: {
144
154
  relativePath: string;
145
- }): Promise<fs.Stats>;
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<fs.Stats>;
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>;