@fnndsc/salsa 3.21.1 → 4.0.0

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.
@@ -42,7 +42,9 @@ export declare function files_path_isDirectory(targetPath: string): Promise<bool
42
42
  * @param pathStr - The ChRIS path for the new file.
43
43
  * @returns A Promise resolving to true on success, false on failure.
44
44
  */
45
- export declare function files_create(content: string | Buffer | Blob, pathStr: string): Promise<boolean>;
45
+ export declare function files_create(content: string | Buffer | Blob, pathStr: string, options?: {
46
+ folderClear?: boolean;
47
+ }): Promise<boolean>;
46
48
  /**
47
49
  * Creates a new empty file at the specified path (like Unix touch).
48
50
  * Optionally creates the file with specified content.
@@ -59,7 +61,9 @@ export declare function files_touch(target: string, content?: string | Buffer |
59
61
  * @param destPath - The full path to the destination file (including filename).
60
62
  * @returns A Promise resolving to true on success, false on failure.
61
63
  */
62
- export declare function files_copy(srcPath: string, destPath: string): Promise<boolean>;
64
+ export declare function files_copy(srcPath: string, destPath: string, options?: {
65
+ folderClear?: boolean;
66
+ }): Promise<boolean>;
63
67
  /**
64
68
  * Moves a file or directory by updating its path on the server.
65
69
  *
@@ -80,13 +84,52 @@ export declare function files_move(srcPath: string, destPath: string): Promise<b
80
84
  * @returns Promise<boolean> success.
81
85
  */
82
86
  export declare function files_uploadPath(localPath: string, remotePath: string): Promise<boolean>;
87
+ /** What holds a CUBE path: folders, files and links may each hold the same one. */
88
+ export type PathHolder = 'dir' | 'file' | 'link';
89
+ /**
90
+ * Every kind of entry that holds a path, from its parent's three listings.
91
+ *
92
+ * CUBE lets a folder and a file share one path, and that is a hazard: a
93
+ * folder made over a file, then deleted, takes the file's record with it
94
+ * and every listing of the parent fails (CUBE #732, mise #462). Writers ask
95
+ * this first and refuse a path something else holds.
96
+ *
97
+ * @param target - The absolute CUBE path.
98
+ * @returns The kinds holding it (none, one, or more than one), or Err when
99
+ * the parent could not be read (the reason stacked): a probe that cannot
100
+ * answer counts the path as taken.
101
+ */
102
+ export declare function pathHolders_find(target: string): Promise<Result<PathHolder[]>>;
103
+ /** The first thing holding a folder path or one of its parents, walking up. */
104
+ export interface FolderPathHolder {
105
+ /** The path held. */
106
+ path: string;
107
+ /** What holds it. */
108
+ holder: PathHolder;
109
+ /** Whether that path is the folder asked about, not a parent of it. */
110
+ atTarget: boolean;
111
+ }
112
+ /**
113
+ * What already holds a folder path, or the nearest parent of it that is
114
+ * held: a folder there ends the walk, as does a file or a link, which no
115
+ * folder may be made over or under (CUBE would make one anyway, and
116
+ * deleting it later takes the file's record with it, CUBE #732).
117
+ *
118
+ * @param folderPath - The folder's absolute path.
119
+ * @returns The first holder walking up, null when nothing up to the root
120
+ * holds any of it, or Err when a parent could not be read (stacked).
121
+ */
122
+ export declare function folderPath_holder(folderPath: string): Promise<Result<FolderPathHolder | null>>;
83
123
  /**
84
124
  * Creates a new folder (directory) at the specified ChRIS path.
85
125
  *
86
126
  * @param folderPath - The full ChRIS path for the new folder.
127
+ * @param options - `cleared` when the caller has already found no file or link holding the path or a parent of it.
87
128
  * @returns A Promise resolving to true on success, false on failure.
88
129
  */
89
- export declare function files_mkdir(folderPath: string): Promise<boolean>;
130
+ export declare function files_mkdir(folderPath: string, options?: {
131
+ cleared?: boolean;
132
+ }): Promise<boolean>;
90
133
  /**
91
134
  * Interface for file sharing options.
92
135
  */
@@ -46,6 +46,8 @@ exports.files_touch = files_touch;
46
46
  exports.files_copy = files_copy;
47
47
  exports.files_move = files_move;
48
48
  exports.files_uploadPath = files_uploadPath;
49
+ exports.pathHolders_find = pathHolders_find;
50
+ exports.folderPath_holder = folderPath_holder;
49
51
  exports.files_mkdir = files_mkdir;
50
52
  exports.files_getGroup = files_getGroup;
51
53
  exports.files_list = files_list;
@@ -59,6 +61,7 @@ exports.files_share = files_share;
59
61
  exports.fileContent_get = fileContent_get;
60
62
  exports.fileContent_getBinary = fileContent_getBinary;
61
63
  exports.fileContent_getBinaryStream = fileContent_getBinaryStream;
64
+ const fond_1 = require("@fnndsc/fond");
62
65
  const path = __importStar(require("path"));
63
66
  const cumin_1 = require("@fnndsc/cumin");
64
67
  const pipeline_content_1 = require("./pipeline_content");
@@ -119,6 +122,21 @@ async function files_copyRecursively(srcPath, destPath) {
119
122
  const items = await files_listRecursive(srcPath);
120
123
  let successCount = 0;
121
124
  let failCount = 0;
125
+ // The folders each target folder holds, listed once: a file is never
126
+ // copied onto a folder's name, and a large copy pays one listing per
127
+ // folder rather than one per file.
128
+ const foldersIn = new Map();
129
+ const folders_of = async (folder) => {
130
+ const known = foldersIn.get(folder);
131
+ if (known !== undefined)
132
+ return known;
133
+ const outcome = await files_listOutcome({ limit: 1000, offset: 0 }, 'dirs', folder);
134
+ const names = new Set(outcome.kind === 'listing'
135
+ ? (outcome.data.tableData ?? []).map((row) => path.posix.basename(String(row.path ?? row.fname ?? '')))
136
+ : []);
137
+ foldersIn.set(folder, names);
138
+ return names;
139
+ };
122
140
  for (const item of items) {
123
141
  // Normalize item.path to ensure it has a leading slash
124
142
  const normalizedItemPath = item.path.startsWith('/') ? item.path : '/' + item.path;
@@ -132,12 +150,18 @@ async function files_copyRecursively(srcPath, destPath) {
132
150
  failCount++;
133
151
  }
134
152
  else {
153
+ (await folders_of(path.posix.dirname(targetPath))).add(path.posix.basename(targetPath));
135
154
  successCount++;
136
155
  }
137
156
  }
138
157
  else if (item.type === 'file') {
139
158
  (0, cumin_1.runtimeOutput_data)(` Copying file: ${path.posix.basename(normalizedItemPath)}\n`);
140
- const copied = await files_copy(normalizedItemPath, targetPath);
159
+ if ((await folders_of(path.posix.dirname(targetPath))).has(path.posix.basename(targetPath))) {
160
+ (0, cumin_1.runtimeOutput_err)(` Warning: a folder already holds ${targetPath}; the file is not copied over it\n`);
161
+ failCount++;
162
+ continue;
163
+ }
164
+ const copied = await files_copy(normalizedItemPath, targetPath, { folderClear: true });
141
165
  if (!copied) {
142
166
  (0, cumin_1.runtimeOutput_err)(` Warning: Failed to copy file ${normalizedItemPath}\n`);
143
167
  failCount++;
@@ -213,7 +237,19 @@ async function files_path_isDirectory(targetPath) {
213
237
  * @param pathStr - The ChRIS path for the new file.
214
238
  * @returns A Promise resolving to true on success, false on failure.
215
239
  */
216
- async function files_create(content, pathStr) {
240
+ async function files_create(content, pathStr, options = {}) {
241
+ // A file is never written over a folder: CUBE would keep both, and
242
+ // removing either later damages the other (CUBE #732). A caller that has
243
+ // already checked the folder's names says so, and is not asked again.
244
+ if (options.folderClear !== true) {
245
+ const holders = await pathHolders_find(pathStr);
246
+ if (!holders.ok)
247
+ return false;
248
+ if (holders.value.includes('dir')) {
249
+ cumin_1.errorStack.stack_push('error', `Is a directory: a folder already holds ${pathStr}`);
250
+ return false;
251
+ }
252
+ }
217
253
  try {
218
254
  let uploadContent;
219
255
  if (typeof content === 'string') {
@@ -259,7 +295,7 @@ async function files_touch(target, content) {
259
295
  cumin_1.errorStack.stack_push("error", `touch: ${target}: a projected file takes text (--withContents)`);
260
296
  return false;
261
297
  }
262
- return vfsDispatcher.write(target, content);
298
+ return (0, fond_1.vfsOutcome_toResult)(await vfsDispatcher.write(target, content), 'write', target).ok;
263
299
  }
264
300
  // CUBE's upload does not replace: uploading over a path that already holds
265
301
  // a file leaves the OLD content in place and still reports success, so a
@@ -292,7 +328,7 @@ async function files_touch(target, content) {
292
328
  * @param destPath - The full path to the destination file (including filename).
293
329
  * @returns A Promise resolving to true on success, false on failure.
294
330
  */
295
- async function files_copy(srcPath, destPath) {
331
+ async function files_copy(srcPath, destPath, options = {}) {
296
332
  try {
297
333
  // 1. Resolve source file to get ID (needed for download)
298
334
  const fileIdResult = await fileId_resolve(srcPath);
@@ -308,7 +344,7 @@ async function files_copy(srcPath, destPath) {
308
344
  }
309
345
  // 3. Upload to destination
310
346
  // files_create handles Blob/Buffer conversion and path splitting
311
- const uploadSuccess = await files_create(content, destPath);
347
+ const uploadSuccess = await files_create(content, destPath, options);
312
348
  if (!uploadSuccess) {
313
349
  const lastError = cumin_1.errorStack.stack_pop();
314
350
  if (lastError) {
@@ -342,6 +378,16 @@ async function files_move(srcPath, destPath) {
342
378
  const finalDest = (destIsDir || destLooksDir)
343
379
  ? path.posix.join(destPath, path.posix.basename(srcPath))
344
380
  : destPath;
381
+ // Nothing is moved onto a path something already holds: CUBE has no
382
+ // overwrite, and a folder and a file sharing one path damage each other
383
+ // when either is removed (CUBE #732).
384
+ const holders = await pathHolders_find(finalDest);
385
+ if (!holders.ok)
386
+ return false;
387
+ if (holders.value.length > 0) {
388
+ cumin_1.errorStack.stack_push('error', `Destination exists: ${finalDest} — mise cannot overwrite a ${holders.value[0]}; remove it first`);
389
+ return false;
390
+ }
345
391
  if (srcIsDir) {
346
392
  const moveResult = await cumin_1.chrisIO.folder_moveByPath(srcPath, finalDest);
347
393
  return moveResult.ok && moveResult.value;
@@ -369,13 +415,107 @@ async function files_move(srcPath, destPath) {
369
415
  async function files_uploadPath(localPath, remotePath) {
370
416
  return await cumin_1.chrisIO.uploadLocalPath(localPath, remotePath);
371
417
  }
418
+ /**
419
+ * Every kind of entry that holds a path, from its parent's three listings.
420
+ *
421
+ * CUBE lets a folder and a file share one path, and that is a hazard: a
422
+ * folder made over a file, then deleted, takes the file's record with it
423
+ * and every listing of the parent fails (CUBE #732, mise #462). Writers ask
424
+ * this first and refuse a path something else holds.
425
+ *
426
+ * @param target - The absolute CUBE path.
427
+ * @returns The kinds holding it (none, one, or more than one), or Err when
428
+ * the parent could not be read (the reason stacked): a probe that cannot
429
+ * answer counts the path as taken.
430
+ */
431
+ async function pathHolders_find(target) {
432
+ const clean = target.length > 1 && target.endsWith('/') ? target.slice(0, -1) : target;
433
+ if (clean === '/' || clean === '')
434
+ return (0, cumin_1.Ok)(['dir']);
435
+ const parent = path.posix.dirname(clean);
436
+ const name = path.posix.basename(clean);
437
+ const holders = [];
438
+ const kinds = [['dirs', 'dir'], ['files', 'file'], ['links', 'link']];
439
+ for (const [asset, kind] of kinds) {
440
+ const mark = cumin_1.errorStack.checkpoint_mark();
441
+ const outcome = await files_listOutcome({ limit: 1000, offset: 0 }, asset, parent);
442
+ if (outcome.kind === 'refused') {
443
+ cumin_1.errorStack.stack_push('error', `Cannot check ${clean}: ${outcome.error.message}`);
444
+ return (0, cumin_1.Err)();
445
+ }
446
+ // A parent that is not there holds nothing: an answer, so what the
447
+ // lookup said on the way is not left to fail the command.
448
+ if (outcome.kind === 'missing')
449
+ cumin_1.errorStack.checkpoint_drain(mark);
450
+ if (outcome.kind !== 'listing')
451
+ continue;
452
+ // A folder row names itself by `path`; a file or link row by `fname`
453
+ // (a link's ends in `.chrislink`, and its `path` is where it points).
454
+ const held = (outcome.data.tableData ?? []).some((row) => {
455
+ const raw = String((kind === 'dir' ? row.path : row.fname) ?? '');
456
+ const entry = path.posix.basename(raw).replace(/\.chrislink$/, '');
457
+ return entry === name;
458
+ });
459
+ if (held)
460
+ holders.push(kind);
461
+ }
462
+ return (0, cumin_1.Ok)(holders);
463
+ }
464
+ /**
465
+ * What already holds a folder path, or the nearest parent of it that is
466
+ * held: a folder there ends the walk, as does a file or a link, which no
467
+ * folder may be made over or under (CUBE would make one anyway, and
468
+ * deleting it later takes the file's record with it, CUBE #732).
469
+ *
470
+ * @param folderPath - The folder's absolute path.
471
+ * @returns The first holder walking up, null when nothing up to the root
472
+ * holds any of it, or Err when a parent could not be read (stacked).
473
+ */
474
+ async function folderPath_holder(folderPath) {
475
+ const target = folderPath.length > 1 && folderPath.endsWith('/') ? folderPath.slice(0, -1) : folderPath;
476
+ let at = target;
477
+ while (at !== '/' && at !== '') {
478
+ const holders = await pathHolders_find(at);
479
+ if (!holders.ok)
480
+ return (0, cumin_1.Err)();
481
+ if (holders.value.length > 0) {
482
+ const holder = holders.value.includes('dir') ? 'dir' : holders.value[0];
483
+ return (0, cumin_1.Ok)({ path: at, holder, atTarget: at === target });
484
+ }
485
+ at = path.posix.dirname(at);
486
+ }
487
+ return (0, cumin_1.Ok)(null);
488
+ }
489
+ /**
490
+ * Whether a folder may be made at a path: no file or link holds it or any
491
+ * parent of it. Says why not on the error stack.
492
+ *
493
+ * @param folderPath - The folder's absolute path.
494
+ * @returns True when it may.
495
+ */
496
+ async function folderPath_clear(folderPath) {
497
+ const first = await folderPath_holder(folderPath);
498
+ if (!first.ok)
499
+ return false;
500
+ if (first.value === null || first.value.holder === 'dir')
501
+ return true;
502
+ cumin_1.errorStack.stack_push('error', first.value.atTarget
503
+ ? `File exists: a ${first.value.holder} already holds ${first.value.path}`
504
+ : `Not a directory: a ${first.value.holder} holds ${first.value.path}`);
505
+ return false;
506
+ }
372
507
  /**
373
508
  * Creates a new folder (directory) at the specified ChRIS path.
374
509
  *
375
510
  * @param folderPath - The full ChRIS path for the new folder.
511
+ * @param options - `cleared` when the caller has already found no file or link holding the path or a parent of it.
376
512
  * @returns A Promise resolving to true on success, false on failure.
377
513
  */
378
- async function files_mkdir(folderPath) {
514
+ async function files_mkdir(folderPath, options = {}) {
515
+ // A folder is never made over a file: deleting it later would take the
516
+ // file's record with it (CUBE #732). A caller that has looked already says so.
517
+ if (options.cleared !== true && !(await folderPath_clear(folderPath)))
518
+ return false;
379
519
  const result = await cumin_1.chrisIO.folder_create(folderPath);
380
520
  if (!result.ok) {
381
521
  return false;
@@ -594,7 +734,7 @@ async function files_share(fileId, options) {
594
734
  async function fileContent_get(filePath) {
595
735
  const provider = dispatcher_js_1.vfsDispatcher.provider_get(filePath);
596
736
  if (provider && provider.prefix !== '') {
597
- return dispatcher_js_1.vfsDispatcher.read(filePath);
737
+ return (0, fond_1.vfsOutcome_toResult)(await dispatcher_js_1.vfsDispatcher.read(filePath), 'read', filePath);
598
738
  }
599
739
  if (filePath.startsWith('/PIPELINES/')) {
600
740
  return (0, pipeline_content_1.fileContent_getPipeline)(filePath);
@@ -616,7 +756,7 @@ async function fileContent_get(filePath) {
616
756
  async function fileContent_getBinary(filePath) {
617
757
  const provider = dispatcher_js_1.vfsDispatcher.provider_get(filePath);
618
758
  if (provider && provider.prefix !== '') {
619
- return dispatcher_js_1.vfsDispatcher.readBinary(filePath);
759
+ return (0, fond_1.vfsOutcome_toResult)(await dispatcher_js_1.vfsDispatcher.readBinary(filePath), 'readBinary', filePath);
620
760
  }
621
761
  if (filePath.startsWith('/PIPELINES/')) {
622
762
  return (0, pipeline_content_1.fileContent_getPipelineBinary)(filePath);
@@ -637,12 +777,8 @@ async function fileContent_getBinary(filePath) {
637
777
  async function fileContent_getBinaryStream(filePath) {
638
778
  const provider = dispatcher_js_1.vfsDispatcher.provider_get(filePath);
639
779
  if (provider && provider.prefix !== '') {
640
- return dispatcher_js_1.vfsDispatcher.readBinary(filePath).then((res) => {
641
- if (res.ok) {
642
- return (0, cumin_1.Ok)({ stream: res.value, size: res.value.length });
643
- }
644
- return (0, cumin_1.Err)();
645
- });
780
+ const res = (0, fond_1.vfsOutcome_toResult)(await dispatcher_js_1.vfsDispatcher.readBinary(filePath), 'readBinary', filePath);
781
+ return res.ok ? (0, cumin_1.Ok)({ stream: res.value, size: res.value.length }) : (0, cumin_1.Err)();
646
782
  }
647
783
  if (filePath.startsWith('/PIPELINES/')) {
648
784
  return (0, pipeline_content_1.fileContent_getPipelineBinary)(filePath).then((res) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/files/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/files/index.ts"],"names":[],"mappings":"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"}
@@ -1,149 +1,23 @@
1
1
  /**
2
- * @file VFS Dispatcher Registry.
2
+ * @file The ChRIS session's filesystem: fond's dispatcher with CUBE's mounts.
3
3
  *
4
- * Directs filesystem requests to the matched VFSProvider instance.
5
- * Matches specific prefix paths first, falling back to Native.
4
+ * fond's `VFSDispatcher` routes a path to the mount that owns it and knows no
5
+ * backend. `CubeVfsDispatcher` registers the ChRIS backend's mounts on it, in
6
+ * an order that matters only for equal-length prefixes (the sort is stable):
7
+ * PACS, `/etc`, the three `/proc` relations, and `/usr/share`. Everything no
8
+ * mount claims is a CUBE file, through the native provider. The engine adds
9
+ * its own static mounts (`/bin`, `/usr`, …) to the shared instance.
6
10
  *
7
11
  * @module
8
12
  */
9
- import { Result } from "@fnndsc/cumin";
10
- import { VFSProvider, VFSItem, CpOptions } from "./provider.js";
13
+ import { VFSDispatcher } from "@fnndsc/fond";
14
+ export { VFSDispatcher } from "@fnndsc/fond";
11
15
  /**
12
- * Registry and dispatcher routing filesystem commands to matched VFS providers.
16
+ * fond's dispatcher with the ChRIS backend's mounts registered, and CUBE's
17
+ * files as the fallback.
13
18
  */
14
- export declare class VFSDispatcher {
15
- private providers;
16
- private defaultProvider;
17
- private pathResolver?;
18
- /**
19
- * Initializes dispatcher and registers standard providers.
20
- */
19
+ export declare class CubeVfsDispatcher extends VFSDispatcher {
21
20
  constructor();
22
- /**
23
- * Registers a path resolution hook that maps logical paths to physical paths.
24
- *
25
- * @param resolver - The resolver function mapping a logical path to a physical path.
26
- */
27
- pathResolver_register(resolver: (path: string) => Promise<string>): void;
28
- /**
29
- * Registers a new VFS Provider.
30
- *
31
- * @param provider - The provider instance to register.
32
- */
33
- provider_register(provider: VFSProvider): void;
34
- /**
35
- * Returns all registered providers (excluding the default native provider).
36
- * Used by callers that need to detect parent-of-prefix paths.
37
- */
38
- providers_get(): VFSProvider[];
39
- /**
40
- * Resolves the matching provider for a given virtual path.
41
- *
42
- * @param pathStr - The absolute virtual path.
43
- * @returns The matching VFSProvider or the default native provider.
44
- */
45
- provider_get(pathStr: string): VFSProvider;
46
- /**
47
- * Whether a path belongs to a projection rather than a real CUBE folder.
48
- *
49
- * A projection root (`/proc`, `/net/pacs`, `/etc`, `/usr/share`) is served
50
- * by its own provider and has no folder of files behind it. Three shapes
51
- * count as virtual: a path a non-native provider owns (at or under its
52
- * prefix), and a path that is a strict ancestor of such a prefix (`/proc`
53
- * above `/proc/jobs`, `/net` above `/net/pacs`) — its only children are
54
- * the projections beneath it. The real root `/` is never virtual: it is
55
- * the CUBE store's own root, which the native provider lists.
56
- *
57
- * The point of the question is to keep the raw CUBE-files layer from
58
- * being asked to build a folder context for a path that has none — the
59
- * request cannot succeed and only litters the error log, once per
60
- * ancestor a path walk visits.
61
- *
62
- * @param pathStr - The absolute (or root-relative) path to classify.
63
- * @returns True when a projection owns or is owned by the path.
64
- */
65
- path_isVirtual(pathStr: string): boolean;
66
- /**
67
- * Dispatches directory listing to matched provider.
68
- * Supports dynamic intermediate parent path synthesis for virtual prefixes.
69
- *
70
- * @param pathStr - The absolute virtual path to list.
71
- * @param options - Sort controls.
72
- * @returns Promise resolving to Result<VFSItem[]>.
73
- */
74
- list(pathStr: string, options?: {
75
- sort?: "name" | "size" | "date" | "owner";
76
- reverse?: boolean;
77
- }): Promise<Result<VFSItem[]>>;
78
- /**
79
- * Dispatches copy operation to matched provider.
80
- *
81
- * @param src - Source path.
82
- * @param dest - Destination path.
83
- * @param options - Copy options.
84
- * @returns Promise resolving to success boolean.
85
- */
86
- cp(src: string, dest: string, options: CpOptions): Promise<boolean>;
87
- /**
88
- * Dispatches file read operation to the matched provider.
89
- *
90
- * @param pathStr - The absolute virtual path of the file to read.
91
- * @returns A Promise resolving to a Result containing the file contents as a string.
92
- */
93
- read(pathStr: string): Promise<Result<string>>;
94
- /**
95
- * Dispatches a whole-file write to the matched provider: a projection
96
- * that holds writable files (a feed's note) takes the content; any other
97
- * path is refused by name rather than written somewhere it does not live.
98
- *
99
- * @param pathStr - The absolute virtual path of the file.
100
- * @param content - The file's new content, whole.
101
- * @returns True when the provider took it.
102
- */
103
- /**
104
- * Dispatches a folder's making to the matched provider; a projection that
105
- * makes no folders refuses by name.
106
- *
107
- * @param pathStr - The absolute virtual path of the new folder.
108
- * @returns True when the provider made it.
109
- */
110
- mkdir(pathStr: string): Promise<boolean>;
111
- /**
112
- * Dispatches an empty folder's removal to the matched provider; a
113
- * projection that removes no folders refuses by name.
114
- *
115
- * @param pathStr - The absolute virtual path of the folder.
116
- * @returns True when the provider removed it.
117
- */
118
- rmdir(pathStr: string): Promise<boolean>;
119
- /**
120
- * Dispatches a rename within one projection; a rename across providers, or
121
- * in a projection that renames nothing, is refused by name.
122
- *
123
- * @param src - The absolute virtual path now.
124
- * @param dest - The absolute virtual path it takes.
125
- * @returns True when the provider renamed it.
126
- */
127
- rename(src: string, dest: string): Promise<boolean>;
128
- write(pathStr: string, content: string): Promise<boolean>;
129
- /**
130
- * Dispatches binary file read operation to the matched provider.
131
- *
132
- * @param pathStr - The absolute virtual path of the file to read.
133
- * @returns A Promise resolving to a Result containing the file contents as a Buffer.
134
- */
135
- readBinary(pathStr: string): Promise<Result<Buffer>>;
136
- /**
137
- * Resolves a lazy link through the provider that owns it.
138
- *
139
- * This is deliberately distinct from {@link list}: a structural traversal
140
- * can display an unresolved link without causing its provider to fetch the
141
- * target from a remote service.
142
- *
143
- * @param pathStr - Absolute path of the provider-defined link.
144
- * @returns The resolved target path, or an error if unsupported or absent.
145
- */
146
- linkTarget_resolve(pathStr: string): Promise<Result<string>>;
147
21
  }
148
- /** Global instance of VFSDispatcher singleton. */
149
- export declare const vfsDispatcher: VFSDispatcher;
22
+ /** The session's one filesystem dispatcher. */
23
+ export declare const vfsDispatcher: CubeVfsDispatcher;