@bendyline/docblocks 2.0.0 → 2.1.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.
- package/dist/{chunk-J32GU3F3.js → chunk-6IYMTYMQ.js} +249 -221
- package/dist/chunk-6IYMTYMQ.js.map +1 -0
- package/dist/{chunk-75UUF6C4.js → chunk-B56KWCSE.js} +2 -2
- package/dist/{chunk-RVQHY3XU.js → chunk-BNKV7MTO.js} +1 -1
- package/dist/{chunk-RVQHY3XU.js.map → chunk-BNKV7MTO.js.map} +1 -1
- package/dist/chunk-BXMF5YQJ.js +149 -0
- package/dist/chunk-BXMF5YQJ.js.map +1 -0
- package/dist/{chunk-PGR7LK6D.js → chunk-COYQXQK3.js} +14 -5
- package/dist/chunk-COYQXQK3.js.map +1 -0
- package/dist/{chunk-RQJRQF46.js → chunk-DN7A33LL.js} +42 -49
- package/dist/chunk-DN7A33LL.js.map +1 -0
- package/dist/chunk-FA7UNOXK.js +20 -0
- package/dist/chunk-FA7UNOXK.js.map +1 -0
- package/dist/chunk-GM5YXU4L.js +29 -0
- package/dist/chunk-GM5YXU4L.js.map +1 -0
- package/dist/{chunk-SI2LU2RP.js → chunk-JS6XFWQK.js} +2 -1
- package/dist/chunk-JS6XFWQK.js.map +1 -0
- package/dist/{chunk-EGNDADXB.js → chunk-MNSZ7EZN.js} +2 -2
- package/dist/chunk-P3DVZQ6S.js +228 -0
- package/dist/chunk-P3DVZQ6S.js.map +1 -0
- package/dist/chunk-P4WATND4.js +52 -0
- package/dist/chunk-P4WATND4.js.map +1 -0
- package/dist/chunk-RVPGQBWR.js +169 -0
- package/dist/chunk-RVPGQBWR.js.map +1 -0
- package/dist/chunk-U722UUFN.js +9 -0
- package/dist/chunk-U722UUFN.js.map +1 -0
- package/dist/{chunk-GCPBEMMH.js → chunk-VTCSF7VS.js} +11 -21
- package/dist/chunk-VTCSF7VS.js.map +1 -0
- package/dist/{chunk-2D7Y4IR3.js → chunk-WJKYY5QR.js} +123 -66
- package/dist/chunk-WJKYY5QR.js.map +1 -0
- package/dist/{chunk-5MYAICRE.js → chunk-XUML3MKV.js} +44 -56
- package/dist/chunk-XUML3MKV.js.map +1 -0
- package/dist/document/index.d.ts +358 -6
- package/dist/document/index.js +24 -3
- package/dist/document/index.js.map +1 -1
- package/dist/filesystem/electron.d.ts +73 -4
- package/dist/filesystem/electron.js +16 -3
- package/dist/filesystem/electron.js.map +1 -1
- package/dist/filesystem/index.d.ts +228 -22
- package/dist/filesystem/index.js +133 -19
- package/dist/filesystem/index.js.map +1 -1
- package/dist/filesystem/indexeddb.d.ts +284 -5
- package/dist/filesystem/indexeddb.js +22 -4
- package/dist/filesystem/indexeddb.js.map +1 -1
- package/dist/filesystem/memory.d.ts +152 -4
- package/dist/filesystem/memory.js +12 -3
- package/dist/filesystem/memory.js.map +1 -1
- package/dist/filesystem/native.d.ts +136 -4
- package/dist/filesystem/native.js +27 -3
- package/dist/filesystem/native.js.map +1 -1
- package/dist/host/index.d.ts +32 -9
- package/dist/host/index.js +26 -29
- package/dist/host/index.js.map +1 -1
- package/dist/index.d.ts +14 -10
- package/dist/index.js +204 -9
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.d.ts +33 -4
- package/dist/mcp/index.js +31 -3
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/zod.d.ts +637 -635
- package/dist/mcp/zod.js +700 -884
- package/dist/mcp/zod.js.map +1 -1
- package/dist/share/index.d.ts +43 -0
- package/dist/share/index.js +13 -0
- package/dist/share/index.js.map +1 -0
- package/dist/{types-CsX6EN2t.d.ts → types-BEg5SQ1_.d.ts} +1 -1
- package/dist/{types-eOlt9J7n.d.ts → types-CueK0tvU.d.ts} +34 -11
- package/dist/vscode/index.d.ts +220 -3
- package/dist/vscode/index.js +382 -2
- package/dist/vscode/index.js.map +1 -1
- package/dist/workspace/index.d.ts +141 -4
- package/dist/workspace/index.js +28 -2
- package/dist/workspace/index.js.map +1 -1
- package/package.json +9 -5
- package/dist/chunk-2D7Y4IR3.js.map +0 -1
- package/dist/chunk-5MYAICRE.js.map +0 -1
- package/dist/chunk-AYZ4HN5M.js +0 -20
- package/dist/chunk-AYZ4HN5M.js.map +0 -1
- package/dist/chunk-GCPBEMMH.js.map +0 -1
- package/dist/chunk-J32GU3F3.js.map +0 -1
- package/dist/chunk-PGR7LK6D.js.map +0 -1
- package/dist/chunk-RQJRQF46.js.map +0 -1
- package/dist/chunk-SI2LU2RP.js.map +0 -1
- package/dist/chunk-W5UUUII5.js +0 -142
- package/dist/chunk-W5UUUII5.js.map +0 -1
- package/dist/document/document-session.d.ts +0 -127
- package/dist/document/document-session.d.ts.map +0 -1
- package/dist/document/document-session.js +0 -749
- package/dist/document/document-session.js.map +0 -1
- package/dist/document/filesystem-target.d.ts +0 -17
- package/dist/document/filesystem-target.d.ts.map +0 -1
- package/dist/document/filesystem-target.js +0 -70
- package/dist/document/filesystem-target.js.map +0 -1
- package/dist/document/index.d.ts.map +0 -1
- package/dist/document/recovery-journal.d.ts +0 -125
- package/dist/document/recovery-journal.d.ts.map +0 -1
- package/dist/document/recovery-journal.js +0 -385
- package/dist/document/recovery-journal.js.map +0 -1
- package/dist/document/types.d.ts +0 -89
- package/dist/document/types.d.ts.map +0 -1
- package/dist/document/types.js +0 -9
- package/dist/document/types.js.map +0 -1
- package/dist/filesystem/commit-lock.d.ts +0 -3
- package/dist/filesystem/commit-lock.d.ts.map +0 -1
- package/dist/filesystem/commit-lock.js +0 -20
- package/dist/filesystem/commit-lock.js.map +0 -1
- package/dist/filesystem/dbk-workspace.d.ts +0 -34
- package/dist/filesystem/dbk-workspace.d.ts.map +0 -1
- package/dist/filesystem/dbk-workspace.js +0 -85
- package/dist/filesystem/dbk-workspace.js.map +0 -1
- package/dist/filesystem/electron-provider-v2.d.ts +0 -36
- package/dist/filesystem/electron-provider-v2.d.ts.map +0 -1
- package/dist/filesystem/electron-provider-v2.js +0 -503
- package/dist/filesystem/electron-provider-v2.js.map +0 -1
- package/dist/filesystem/electron-provider.d.ts +0 -35
- package/dist/filesystem/electron-provider.d.ts.map +0 -1
- package/dist/filesystem/electron-provider.js +0 -69
- package/dist/filesystem/electron-provider.js.map +0 -1
- package/dist/filesystem/electron.d.ts.map +0 -1
- package/dist/filesystem/file-media-provider.d.ts +0 -23
- package/dist/filesystem/file-media-provider.d.ts.map +0 -1
- package/dist/filesystem/file-media-provider.js +0 -85
- package/dist/filesystem/file-media-provider.js.map +0 -1
- package/dist/filesystem/filesystem-content-container.d.ts +0 -24
- package/dist/filesystem/filesystem-content-container.d.ts.map +0 -1
- package/dist/filesystem/filesystem-content-container.js +0 -153
- package/dist/filesystem/filesystem-content-container.js.map +0 -1
- package/dist/filesystem/fs-error.d.ts +0 -46
- package/dist/filesystem/fs-error.d.ts.map +0 -1
- package/dist/filesystem/fs-error.js +0 -170
- package/dist/filesystem/fs-error.js.map +0 -1
- package/dist/filesystem/index.d.ts.map +0 -1
- package/dist/filesystem/indexeddb-content-container.d.ts +0 -22
- package/dist/filesystem/indexeddb-content-container.d.ts.map +0 -1
- package/dist/filesystem/indexeddb-content-container.js +0 -100
- package/dist/filesystem/indexeddb-content-container.js.map +0 -1
- package/dist/filesystem/indexeddb-provider-v2.d.ts +0 -96
- package/dist/filesystem/indexeddb-provider-v2.d.ts.map +0 -1
- package/dist/filesystem/indexeddb-provider-v2.js +0 -1241
- package/dist/filesystem/indexeddb-provider-v2.js.map +0 -1
- package/dist/filesystem/indexeddb-provider.d.ts +0 -39
- package/dist/filesystem/indexeddb-provider.d.ts.map +0 -1
- package/dist/filesystem/indexeddb-provider.js +0 -145
- package/dist/filesystem/indexeddb-provider.js.map +0 -1
- package/dist/filesystem/indexeddb-store.d.ts +0 -34
- package/dist/filesystem/indexeddb-store.d.ts.map +0 -1
- package/dist/filesystem/indexeddb-store.js +0 -165
- package/dist/filesystem/indexeddb-store.js.map +0 -1
- package/dist/filesystem/indexeddb.d.ts.map +0 -1
- package/dist/filesystem/legacy-v2-adapter.d.ts +0 -62
- package/dist/filesystem/legacy-v2-adapter.d.ts.map +0 -1
- package/dist/filesystem/legacy-v2-adapter.js +0 -499
- package/dist/filesystem/legacy-v2-adapter.js.map +0 -1
- package/dist/filesystem/memory-provider-v2.d.ts +0 -92
- package/dist/filesystem/memory-provider-v2.d.ts.map +0 -1
- package/dist/filesystem/memory-provider-v2.js +0 -615
- package/dist/filesystem/memory-provider-v2.js.map +0 -1
- package/dist/filesystem/memory-provider.d.ts +0 -54
- package/dist/filesystem/memory-provider.d.ts.map +0 -1
- package/dist/filesystem/memory-provider.js +0 -132
- package/dist/filesystem/memory-provider.js.map +0 -1
- package/dist/filesystem/memory.d.ts.map +0 -1
- package/dist/filesystem/move-entry.d.ts +0 -9
- package/dist/filesystem/move-entry.d.ts.map +0 -1
- package/dist/filesystem/move-entry.js +0 -103
- package/dist/filesystem/move-entry.js.map +0 -1
- package/dist/filesystem/move-error.d.ts +0 -53
- package/dist/filesystem/move-error.d.ts.map +0 -1
- package/dist/filesystem/move-error.js +0 -99
- package/dist/filesystem/move-error.js.map +0 -1
- package/dist/filesystem/native-provider-v2.d.ts +0 -75
- package/dist/filesystem/native-provider-v2.d.ts.map +0 -1
- package/dist/filesystem/native-provider-v2.js +0 -849
- package/dist/filesystem/native-provider-v2.js.map +0 -1
- package/dist/filesystem/native-provider.d.ts +0 -53
- package/dist/filesystem/native-provider.d.ts.map +0 -1
- package/dist/filesystem/native-provider.js +0 -471
- package/dist/filesystem/native-provider.js.map +0 -1
- package/dist/filesystem/native.d.ts.map +0 -1
- package/dist/filesystem/types.d.ts +0 -83
- package/dist/filesystem/types.d.ts.map +0 -1
- package/dist/filesystem/types.js +0 -16
- package/dist/filesystem/types.js.map +0 -1
- package/dist/filesystem/v2.d.ts +0 -172
- package/dist/filesystem/v2.d.ts.map +0 -1
- package/dist/filesystem/v2.js +0 -16
- package/dist/filesystem/v2.js.map +0 -1
- package/dist/filesystem/workspace-path.d.ts +0 -21
- package/dist/filesystem/workspace-path.d.ts.map +0 -1
- package/dist/filesystem/workspace-path.js +0 -80
- package/dist/filesystem/workspace-path.js.map +0 -1
- package/dist/host/filesystem-v2.d.ts +0 -45
- package/dist/host/filesystem-v2.d.ts.map +0 -1
- package/dist/host/filesystem-v2.js +0 -13
- package/dist/host/filesystem-v2.js.map +0 -1
- package/dist/host/git.d.ts +0 -200
- package/dist/host/git.d.ts.map +0 -1
- package/dist/host/git.js +0 -15
- package/dist/host/git.js.map +0 -1
- package/dist/host/index.d.ts.map +0 -1
- package/dist/host/types.d.ts +0 -232
- package/dist/host/types.d.ts.map +0 -1
- package/dist/host/types.js +0 -10
- package/dist/host/types.js.map +0 -1
- package/dist/host/wire-policy.d.ts +0 -22
- package/dist/host/wire-policy.d.ts.map +0 -1
- package/dist/host/wire-policy.js +0 -92
- package/dist/host/wire-policy.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/types.d.ts +0 -466
- package/dist/mcp/types.d.ts.map +0 -1
- package/dist/mcp/types.js +0 -25
- package/dist/mcp/types.js.map +0 -1
- package/dist/mcp/wire.d.ts +0 -29
- package/dist/mcp/wire.d.ts.map +0 -1
- package/dist/mcp/wire.js +0 -1046
- package/dist/mcp/wire.js.map +0 -1
- package/dist/mcp/zod.d.ts.map +0 -1
- package/dist/vscode/index.d.ts.map +0 -1
- package/dist/vscode/messages.d.ts +0 -204
- package/dist/vscode/messages.d.ts.map +0 -1
- package/dist/vscode/messages.js +0 -494
- package/dist/vscode/messages.js.map +0 -1
- package/dist/workspace/index.d.ts.map +0 -1
- package/dist/workspace/reconcile-electron.d.ts +0 -19
- package/dist/workspace/reconcile-electron.d.ts.map +0 -1
- package/dist/workspace/reconcile-electron.js +0 -42
- package/dist/workspace/reconcile-electron.js.map +0 -1
- package/dist/workspace/types.d.ts +0 -69
- package/dist/workspace/types.d.ts.map +0 -1
- package/dist/workspace/types.js +0 -2
- package/dist/workspace/types.js.map +0 -1
- package/dist/workspace/workspace-manager.d.ts +0 -47
- package/dist/workspace/workspace-manager.d.ts.map +0 -1
- package/dist/workspace/workspace-manager.js +0 -126
- package/dist/workspace/workspace-manager.js.map +0 -1
- package/src/document/document-session.ts +0 -834
- package/src/document/filesystem-target.ts +0 -109
- package/src/document/index.ts +0 -41
- package/src/document/recovery-journal.ts +0 -536
- package/src/document/types.ts +0 -116
- package/src/filesystem/commit-lock.ts +0 -29
- package/src/filesystem/dbk-workspace.ts +0 -135
- package/src/filesystem/electron-provider-v2.ts +0 -630
- package/src/filesystem/electron-provider.ts +0 -99
- package/src/filesystem/electron.ts +0 -3
- package/src/filesystem/file-media-provider.ts +0 -103
- package/src/filesystem/filesystem-content-container.ts +0 -164
- package/src/filesystem/fs-error.ts +0 -234
- package/src/filesystem/index.ts +0 -143
- package/src/filesystem/indexeddb-content-container.ts +0 -112
- package/src/filesystem/indexeddb-provider-v2.ts +0 -1740
- package/src/filesystem/indexeddb-provider.ts +0 -171
- package/src/filesystem/indexeddb-store.ts +0 -207
- package/src/filesystem/indexeddb.ts +0 -12
- package/src/filesystem/legacy-v2-adapter.ts +0 -779
- package/src/filesystem/memory-provider-v2.ts +0 -896
- package/src/filesystem/memory-provider.ts +0 -180
- package/src/filesystem/memory.ts +0 -15
- package/src/filesystem/move-entry.ts +0 -142
- package/src/filesystem/move-error.ts +0 -159
- package/src/filesystem/native-provider-v2.ts +0 -1165
- package/src/filesystem/native-provider.ts +0 -537
- package/src/filesystem/native.ts +0 -16
- package/src/filesystem/types.ts +0 -114
- package/src/filesystem/v2.ts +0 -231
- package/src/filesystem/workspace-path.ts +0 -92
- package/src/host/filesystem-v2.ts +0 -104
- package/src/host/git.ts +0 -246
- package/src/host/index.ts +0 -93
- package/src/host/types.ts +0 -274
- package/src/host/wire-policy.ts +0 -103
- package/src/index.ts +0 -10
- package/src/mcp/index.ts +0 -3
- package/src/mcp/types.ts +0 -594
- package/src/mcp/wire.ts +0 -1280
- package/src/mcp/zod.ts +0 -1000
- package/src/vscode/index.ts +0 -2
- package/src/vscode/messages.ts +0 -704
- package/src/workspace/index.ts +0 -17
- package/src/workspace/reconcile-electron.ts +0 -65
- package/src/workspace/types.ts +0 -67
- package/src/workspace/workspace-manager.ts +0 -151
- /package/dist/{chunk-75UUF6C4.js.map → chunk-B56KWCSE.js.map} +0 -0
- /package/dist/{chunk-EGNDADXB.js.map → chunk-MNSZ7EZN.js.map} +0 -0
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* In-memory filesystem used by transient loose-file and DBK workspaces.
|
|
3
|
-
*
|
|
4
|
-
* MemoryFileSystemProviderV2 is authoritative. This class is the temporary
|
|
5
|
-
* text-oriented v1 facade retained while callers migrate to the byte contract.
|
|
6
|
-
*/
|
|
7
|
-
import { MemoryFileSystemProviderV2 } from './memory-provider-v2.js';
|
|
8
|
-
import type { FileCommitResult, FileSystemEntry, FileSystemProvider, FileMeta } from './types.js';
|
|
9
|
-
export type MemoryFileSystemSnapshotFile = {
|
|
10
|
-
readonly kind: 'text';
|
|
11
|
-
readonly path: string;
|
|
12
|
-
readonly content: string;
|
|
13
|
-
} | {
|
|
14
|
-
readonly kind: 'binary';
|
|
15
|
-
readonly path: string;
|
|
16
|
-
readonly data: ArrayBuffer | Uint8Array;
|
|
17
|
-
};
|
|
18
|
-
/** Complete provider-relative state for a transient memory workspace. */
|
|
19
|
-
export interface MemoryFileSystemSnapshot {
|
|
20
|
-
readonly files: readonly MemoryFileSystemSnapshotFile[];
|
|
21
|
-
readonly directories?: readonly string[];
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Legacy facade over the correctness-first memory provider.
|
|
25
|
-
*
|
|
26
|
-
* Synchronous seed/snapshot replacement methods remain because DBK import
|
|
27
|
-
* fully stages external bytes before publishing one atomic in-memory swap.
|
|
28
|
-
*/
|
|
29
|
-
export declare class MemoryFileSystemProvider implements FileSystemProvider {
|
|
30
|
-
readonly id: string;
|
|
31
|
-
readonly label: string;
|
|
32
|
-
readonly v2: MemoryFileSystemProviderV2;
|
|
33
|
-
constructor(id: string, label: string);
|
|
34
|
-
/** Monotonic version of the complete in-memory tree. */
|
|
35
|
-
get treeVersion(): number;
|
|
36
|
-
/** Capture an owned deterministic copy of the complete transient tree. */
|
|
37
|
-
captureContents(): MemoryFileSystemSnapshot;
|
|
38
|
-
/** Atomically replace the complete tree after validating and owning all input. */
|
|
39
|
-
replaceContents(snapshot: MemoryFileSystemSnapshot, expectedTreeVersion?: number): void;
|
|
40
|
-
/** Seed synchronously before publishing a transient provider to consumers. */
|
|
41
|
-
seedText(path: string, content: string): void;
|
|
42
|
-
readFile(path: string): Promise<string | null>;
|
|
43
|
-
writeFile(path: string, content: string): Promise<void>;
|
|
44
|
-
commitFile(path: string, content: string, expectedContent: string | null): Promise<FileCommitResult>;
|
|
45
|
-
delete(path: string): Promise<void>;
|
|
46
|
-
rename(oldPath: string, newPath: string): Promise<void>;
|
|
47
|
-
readDirectory(path: string): Promise<FileSystemEntry[]>;
|
|
48
|
-
exists(path: string): Promise<boolean>;
|
|
49
|
-
createDirectory(path: string): Promise<void>;
|
|
50
|
-
stat(path: string): Promise<FileMeta | null>;
|
|
51
|
-
readBinary(path: string): Promise<ArrayBuffer | null>;
|
|
52
|
-
writeBinary(path: string, data: ArrayBuffer | Uint8Array): Promise<void>;
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=memory-provider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-provider.d.ts","sourceRoot":"","sources":["../../src/filesystem/memory-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,0BAA0B,EAE3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGlG,MAAM,MAAM,4BAA4B,GACpC;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC;CACzC,CAAC;AAEN,yEAAyE;AACzE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,4BAA4B,EAAE,CAAC;IACxD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAqBD;;;;;GAKG;AACH,qBAAa,wBAAyB,YAAW,kBAAkB;IACjE,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,EAAE,EAAE,0BAA0B,CAAC;gBAE5B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAM5C,wDAAwD;IACxD,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,0EAA0E;IACnE,eAAe,IAAI,wBAAwB;IAYlD,kFAAkF;IAC3E,eAAe,CAAC,QAAQ,EAAE,wBAAwB,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI;IAY9F,8EAA8E;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAIvC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK9C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,UAAU,CACf,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,GAAG,IAAI,GAC7B,OAAO,CAAC,gBAAgB,CAAC;IAIf,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAgBvD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAa5C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAOrD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAGtF"}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* In-memory filesystem used by transient loose-file and DBK workspaces.
|
|
3
|
-
*
|
|
4
|
-
* MemoryFileSystemProviderV2 is authoritative. This class is the temporary
|
|
5
|
-
* text-oriented v1 facade retained while callers migrate to the byte contract.
|
|
6
|
-
*/
|
|
7
|
-
import { FsError } from './fs-error.js';
|
|
8
|
-
import { MemoryFileSystemProviderV2, } from './memory-provider-v2.js';
|
|
9
|
-
import { parseWorkspacePath } from './workspace-path.js';
|
|
10
|
-
function canonicalPath(path) {
|
|
11
|
-
return parseWorkspacePath(path);
|
|
12
|
-
}
|
|
13
|
-
function entryPath(path, operation) {
|
|
14
|
-
const canonical = canonicalPath(path);
|
|
15
|
-
if (!canonical) {
|
|
16
|
-
throw new FsError('invalid-path', 'The workspace root is not a file entry.', {
|
|
17
|
-
operation,
|
|
18
|
-
path,
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
return canonical;
|
|
22
|
-
}
|
|
23
|
-
function decode(data) {
|
|
24
|
-
return new TextDecoder().decode(data);
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Legacy facade over the correctness-first memory provider.
|
|
28
|
-
*
|
|
29
|
-
* Synchronous seed/snapshot replacement methods remain because DBK import
|
|
30
|
-
* fully stages external bytes before publishing one atomic in-memory swap.
|
|
31
|
-
*/
|
|
32
|
-
export class MemoryFileSystemProvider {
|
|
33
|
-
constructor(id, label) {
|
|
34
|
-
this.id = id;
|
|
35
|
-
this.label = label;
|
|
36
|
-
this.v2 = new MemoryFileSystemProviderV2(id, label);
|
|
37
|
-
}
|
|
38
|
-
/** Monotonic version of the complete in-memory tree. */
|
|
39
|
-
get treeVersion() {
|
|
40
|
-
return this.v2.mutationRevision;
|
|
41
|
-
}
|
|
42
|
-
/** Capture an owned deterministic copy of the complete transient tree. */
|
|
43
|
-
captureContents() {
|
|
44
|
-
const state = this.v2.captureState();
|
|
45
|
-
return {
|
|
46
|
-
files: state.files.map((file) => file.payloadKind === 'text'
|
|
47
|
-
? { kind: 'text', path: file.path, content: decode(file.data) }
|
|
48
|
-
: { kind: 'binary', path: file.path, data: file.data.slice(0) }),
|
|
49
|
-
directories: [...state.directories],
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
/** Atomically replace the complete tree after validating and owning all input. */
|
|
53
|
-
replaceContents(snapshot, expectedTreeVersion) {
|
|
54
|
-
const files = snapshot.files.map((file) => ({
|
|
55
|
-
path: entryPath(file.path, 'write'),
|
|
56
|
-
payloadKind: file.kind,
|
|
57
|
-
data: file.kind === 'text' ? new TextEncoder().encode(file.content) : file.data,
|
|
58
|
-
}));
|
|
59
|
-
const directories = (snapshot.directories ?? []).map((path) => entryPath(path, 'create-directory'));
|
|
60
|
-
this.v2.replaceState({ files, directories }, expectedTreeVersion);
|
|
61
|
-
}
|
|
62
|
-
/** Seed synchronously before publishing a transient provider to consumers. */
|
|
63
|
-
seedText(path, content) {
|
|
64
|
-
this.v2.seedText(entryPath(path, 'write'), content);
|
|
65
|
-
}
|
|
66
|
-
async readFile(path) {
|
|
67
|
-
const file = await this.v2.readFile(entryPath(path, 'read'));
|
|
68
|
-
return file ? decode(file.data) : null;
|
|
69
|
-
}
|
|
70
|
-
async writeFile(path, content) {
|
|
71
|
-
await this.v2.writeText(entryPath(path, 'write'), content, { createParents: true });
|
|
72
|
-
}
|
|
73
|
-
commitFile(path, content, expectedContent) {
|
|
74
|
-
return this.v2.commitText(entryPath(path, 'write'), content, expectedContent);
|
|
75
|
-
}
|
|
76
|
-
async delete(path) {
|
|
77
|
-
await this.v2.remove(entryPath(path, 'remove'), { recursive: true, missing: 'ignore' });
|
|
78
|
-
}
|
|
79
|
-
async rename(oldPath, newPath) {
|
|
80
|
-
await this.v2.move(entryPath(oldPath, 'move'), entryPath(newPath, 'move'), {
|
|
81
|
-
createParents: true,
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
async readDirectory(path) {
|
|
85
|
-
const canonical = canonicalPath(path);
|
|
86
|
-
try {
|
|
87
|
-
const entries = await this.v2.readDirectory(canonical);
|
|
88
|
-
return entries.map((entry) => ({
|
|
89
|
-
kind: entry.kind,
|
|
90
|
-
name: entry.name,
|
|
91
|
-
path: entry.path,
|
|
92
|
-
}));
|
|
93
|
-
}
|
|
94
|
-
catch (error) {
|
|
95
|
-
// Preserve the v1 missing-directory behavior only on the compatibility facade.
|
|
96
|
-
if (error instanceof FsError && error.code === 'not-found')
|
|
97
|
-
return [];
|
|
98
|
-
throw error;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
async exists(path) {
|
|
102
|
-
return (await this.v2.stat(canonicalPath(path))) !== null;
|
|
103
|
-
}
|
|
104
|
-
async createDirectory(path) {
|
|
105
|
-
await this.v2.createDirectory(canonicalPath(path), { createParents: true });
|
|
106
|
-
}
|
|
107
|
-
async stat(path) {
|
|
108
|
-
const canonical = canonicalPath(path);
|
|
109
|
-
if (!canonical)
|
|
110
|
-
return null;
|
|
111
|
-
const entry = await this.v2.stat(canonical);
|
|
112
|
-
if (!entry || entry.kind !== 'file')
|
|
113
|
-
return null;
|
|
114
|
-
return {
|
|
115
|
-
name: entry.name,
|
|
116
|
-
path: entry.path,
|
|
117
|
-
size: entry.size,
|
|
118
|
-
lastModified: entry.lastModified,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
async readBinary(path) {
|
|
122
|
-
const canonical = entryPath(path, 'read');
|
|
123
|
-
const file = this.v2.readCompatibilityFile(canonical);
|
|
124
|
-
if (!file || file.payloadKind !== 'binary')
|
|
125
|
-
return null;
|
|
126
|
-
return file.data;
|
|
127
|
-
}
|
|
128
|
-
async writeBinary(path, data) {
|
|
129
|
-
await this.v2.writeBinary(entryPath(path, 'write'), data, { createParents: true });
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
//# sourceMappingURL=memory-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-provider.js","sourceRoot":"","sources":["../../src/filesystem/memory-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/filesystem/memory.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,OAAO,EACL,wBAAwB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,4BAA4B,GAClC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,0BAA0B,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,mCAAmC,EACxC,KAAK,6BAA6B,EAClC,KAAK,iCAAiC,EACtC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,GACjC,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { type FileSystemProvider } from './types.js';
|
|
2
|
-
/** Return the hidden companion directory used for a document's media and versions. */
|
|
3
|
-
export declare function documentCompanionPath(documentPath: string): string;
|
|
4
|
-
/**
|
|
5
|
-
* Move an explorer entry without overwriting an existing entry. Markdown files
|
|
6
|
-
* carry their hidden `<basename>_files` companion directory with them.
|
|
7
|
-
*/
|
|
8
|
-
export declare function moveFileSystemEntry(provider: FileSystemProvider, oldPath: string, newPath: string, kind: 'file' | 'directory'): Promise<void>;
|
|
9
|
-
//# sourceMappingURL=move-entry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"move-entry.d.ts","sourceRoot":"","sources":["../../src/filesystem/move-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAuB9E,sFAAsF;AACtF,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAQlE;AAMD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GAAG,WAAW,GACzB,OAAO,CAAC,IAAI,CAAC,CA8Ff"}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { getFileSystemProviderV2 } from './types.js';
|
|
2
|
-
import { describeEntryMove, describePartialMove, FileSystemMoveRecoveryError, FileSystemPartialMoveError, } from './move-error.js';
|
|
3
|
-
import { parseWorkspacePath } from './workspace-path.js';
|
|
4
|
-
function normalisePath(path) {
|
|
5
|
-
return parseWorkspacePath(path);
|
|
6
|
-
}
|
|
7
|
-
function dirname(path) {
|
|
8
|
-
const slash = path.lastIndexOf('/');
|
|
9
|
-
return slash < 0 ? '' : path.slice(0, slash);
|
|
10
|
-
}
|
|
11
|
-
function basename(path) {
|
|
12
|
-
const slash = path.lastIndexOf('/');
|
|
13
|
-
return slash < 0 ? path : path.slice(slash + 1);
|
|
14
|
-
}
|
|
15
|
-
/** Return the hidden companion directory used for a document's media and versions. */
|
|
16
|
-
export function documentCompanionPath(documentPath) {
|
|
17
|
-
const rooted = documentPath.replace(/\\/g, '/').startsWith('/');
|
|
18
|
-
const clean = parseWorkspacePath(documentPath);
|
|
19
|
-
if (!clean)
|
|
20
|
-
throw new Error('The workspace root has no document companion path.');
|
|
21
|
-
const parent = dirname(clean);
|
|
22
|
-
const name = basename(clean).replace(/\.[^.]+$/, '');
|
|
23
|
-
if (parent)
|
|
24
|
-
return `${parent}/${name}_files`;
|
|
25
|
-
return rooted ? `/${name}_files` : `${name}_files`;
|
|
26
|
-
}
|
|
27
|
-
function isMarkdownPath(path) {
|
|
28
|
-
return /\.md$/i.test(basename(path));
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Move an explorer entry without overwriting an existing entry. Markdown files
|
|
32
|
-
* carry their hidden `<basename>_files` companion directory with them.
|
|
33
|
-
*/
|
|
34
|
-
export async function moveFileSystemEntry(provider, oldPath, newPath, kind) {
|
|
35
|
-
const providerV2 = getFileSystemProviderV2(provider);
|
|
36
|
-
const exists = (candidate) => providerV2
|
|
37
|
-
? providerV2.stat(parseWorkspacePath(candidate)).then((entry) => entry !== null)
|
|
38
|
-
: provider.exists(candidate);
|
|
39
|
-
const move = (source, destination) => providerV2
|
|
40
|
-
? providerV2
|
|
41
|
-
.move(parseWorkspacePath(source), parseWorkspacePath(destination), {
|
|
42
|
-
createParents: true,
|
|
43
|
-
})
|
|
44
|
-
.then(() => undefined)
|
|
45
|
-
: provider.rename(source, destination);
|
|
46
|
-
const oldNormalised = normalisePath(oldPath);
|
|
47
|
-
const newNormalised = normalisePath(newPath);
|
|
48
|
-
if (oldNormalised === newNormalised)
|
|
49
|
-
return;
|
|
50
|
-
if (kind === 'directory' && newNormalised.startsWith(`${oldNormalised}/`)) {
|
|
51
|
-
throw new Error('A folder cannot be moved into itself.');
|
|
52
|
-
}
|
|
53
|
-
if (await exists(newPath)) {
|
|
54
|
-
throw new Error(`An entry named "${basename(newPath)}" already exists there.`);
|
|
55
|
-
}
|
|
56
|
-
let oldCompanion = null;
|
|
57
|
-
let newCompanion = null;
|
|
58
|
-
if (kind === 'file' && isMarkdownPath(oldPath)) {
|
|
59
|
-
const candidate = documentCompanionPath(oldPath);
|
|
60
|
-
if (await exists(candidate)) {
|
|
61
|
-
oldCompanion = candidate;
|
|
62
|
-
newCompanion = documentCompanionPath(newPath);
|
|
63
|
-
if (normalisePath(oldCompanion) !== normalisePath(newCompanion) &&
|
|
64
|
-
(await exists(newCompanion))) {
|
|
65
|
-
throw new Error(`The companion folder "${basename(newCompanion)}" already exists there.`);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
try {
|
|
70
|
-
await move(oldPath, newPath);
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
const state = await describeEntryMove(provider, oldPath, newPath);
|
|
74
|
-
if (state.source === 'present' && state.destination === 'missing')
|
|
75
|
-
throw error;
|
|
76
|
-
throw new FileSystemMoveRecoveryError(oldPath, newPath, state, error);
|
|
77
|
-
}
|
|
78
|
-
if (!oldCompanion || !newCompanion)
|
|
79
|
-
return;
|
|
80
|
-
try {
|
|
81
|
-
await move(oldCompanion, newCompanion);
|
|
82
|
-
}
|
|
83
|
-
catch (error) {
|
|
84
|
-
// Keep the document and its assets together when the second half fails.
|
|
85
|
-
try {
|
|
86
|
-
await move(newPath, oldPath);
|
|
87
|
-
}
|
|
88
|
-
catch (rollbackError) {
|
|
89
|
-
const state = await describePartialMove(provider, oldPath, newPath, oldCompanion, newCompanion);
|
|
90
|
-
throw new FileSystemPartialMoveError(oldPath, newPath, oldCompanion, newCompanion, state, error, rollbackError);
|
|
91
|
-
}
|
|
92
|
-
const state = await describePartialMove(provider, oldPath, newPath, oldCompanion, newCompanion);
|
|
93
|
-
const restoredSourceOnly = state.source === 'present' &&
|
|
94
|
-
state.destination === 'missing' &&
|
|
95
|
-
state.companionSource === 'present' &&
|
|
96
|
-
state.companionDestination === 'missing';
|
|
97
|
-
if (!restoredSourceOnly) {
|
|
98
|
-
throw new FileSystemPartialMoveError(oldPath, newPath, oldCompanion, newCompanion, state, error, null);
|
|
99
|
-
}
|
|
100
|
-
throw error;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
//# sourceMappingURL=move-entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"move-entry.js","sourceRoot":"","sources":["../../src/filesystem/move-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA2B,MAAM,YAAY,CAAC;AAC9E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,qBAAqB,CAAC,YAAoB;IACxD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACrD,IAAI,MAAM;QAAE,OAAO,GAAG,MAAM,IAAI,IAAI,QAAQ,CAAC;IAC7C,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC;AACrD,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAA4B,EAC5B,OAAe,EACf,OAAe,EACf,IAA0B;IAE1B,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,CAAC,SAAiB,EAAoB,EAAE,CACrD,UAAU;QACR,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;QAChF,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,WAAmB,EAAiB,EAAE,CAClE,UAAU;QACR,CAAC,CAAC,UAAU;aACP,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAAE;YACjE,aAAa,EAAE,IAAI;SACpB,CAAC;aACD,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QAC1B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAE3C,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,aAAa,KAAK,aAAa;QAAE,OAAO;IAE5C,IAAI,IAAI,KAAK,WAAW,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,aAAa,GAAG,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,IAAI,IAAI,KAAK,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,YAAY,GAAG,SAAS,CAAC;YACzB,YAAY,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC9C,IACE,aAAa,CAAC,YAAY,CAAC,KAAK,aAAa,CAAC,YAAY,CAAC;gBAC3D,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,EAC5B,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAClE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;YAAE,MAAM,KAAK,CAAC;QAC/E,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY;QAAE,OAAO;IAE3C,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,wEAAwE;QACxE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,aAAsB,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,mBAAmB,CACrC,QAAQ,EACR,OAAO,EACP,OAAO,EACP,YAAY,EACZ,YAAY,CACb,CAAC;YACF,MAAM,IAAI,0BAA0B,CAClC,OAAO,EACP,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,KAAK,EACL,aAAa,CACd,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QAChG,MAAM,kBAAkB,GACtB,KAAK,CAAC,MAAM,KAAK,SAAS;YAC1B,KAAK,CAAC,WAAW,KAAK,SAAS;YAC/B,KAAK,CAAC,eAAe,KAAK,SAAS;YACnC,KAAK,CAAC,oBAAoB,KAAK,SAAS,CAAC;QAC3C,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,IAAI,0BAA0B,CAClC,OAAO,EACP,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,KAAK,EACL,IAAI,CACL,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { type FileSystemProvider } from './types.js';
|
|
2
|
-
export type FileSystemPathPresence = 'present' | 'missing' | 'unknown';
|
|
3
|
-
export interface FileSystemPartialMoveState {
|
|
4
|
-
readonly source: FileSystemPathPresence;
|
|
5
|
-
readonly destination: FileSystemPathPresence;
|
|
6
|
-
readonly companionSource: FileSystemPathPresence;
|
|
7
|
-
readonly companionDestination: FileSystemPathPresence;
|
|
8
|
-
}
|
|
9
|
-
export type FileSystemMoveLocation = 'source' | 'destination' | 'both' | 'neither' | 'unknown';
|
|
10
|
-
export interface FileSystemEntryMoveState {
|
|
11
|
-
readonly source: FileSystemPathPresence;
|
|
12
|
-
readonly destination: FileSystemPathPresence;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* One provider move failed without restoring a provable source-only state.
|
|
16
|
-
* This is backend-neutral: callers must use `location`, never infer from the
|
|
17
|
-
* original exception or a provider's advertised move atomicity.
|
|
18
|
-
*/
|
|
19
|
-
export declare class FileSystemMoveRecoveryError extends Error {
|
|
20
|
-
readonly sourcePath: string;
|
|
21
|
-
readonly destinationPath: string;
|
|
22
|
-
readonly state: FileSystemEntryMoveState;
|
|
23
|
-
readonly moveError: unknown;
|
|
24
|
-
readonly code: "partial-move";
|
|
25
|
-
constructor(sourcePath: string, destinationPath: string, state: FileSystemEntryMoveState, moveError: unknown);
|
|
26
|
-
get location(): FileSystemMoveLocation;
|
|
27
|
-
/** Alias used by DocumentSession's document-retarget recovery protocol. */
|
|
28
|
-
get documentLocation(): FileSystemMoveLocation;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* A compound document/companion move failed and the document rollback also
|
|
32
|
-
* failed. Callers must use the recorded post-state instead of assuming the
|
|
33
|
-
* original path is still authoritative.
|
|
34
|
-
*/
|
|
35
|
-
export declare class FileSystemPartialMoveError extends Error {
|
|
36
|
-
readonly sourcePath: string;
|
|
37
|
-
readonly destinationPath: string;
|
|
38
|
-
readonly companionSourcePath: string;
|
|
39
|
-
readonly companionDestinationPath: string;
|
|
40
|
-
readonly state: FileSystemPartialMoveState;
|
|
41
|
-
readonly moveError: unknown;
|
|
42
|
-
readonly rollbackError: unknown;
|
|
43
|
-
readonly code: "partial-move";
|
|
44
|
-
constructor(sourcePath: string, destinationPath: string, companionSourcePath: string, companionDestinationPath: string, state: FileSystemPartialMoveState, moveError: unknown, rollbackError: unknown);
|
|
45
|
-
get documentLocation(): FileSystemMoveLocation;
|
|
46
|
-
get companionLocation(): FileSystemMoveLocation;
|
|
47
|
-
}
|
|
48
|
-
export declare function isFileSystemPartialMoveError(error: unknown): error is FileSystemPartialMoveError;
|
|
49
|
-
export declare function isFileSystemMoveRecoveryError(error: unknown): error is FileSystemMoveRecoveryError;
|
|
50
|
-
export declare function isFileSystemMoveStateError(error: unknown): error is FileSystemMoveRecoveryError | FileSystemPartialMoveError;
|
|
51
|
-
export declare function describePartialMove(provider: FileSystemProvider, sourcePath: string, destinationPath: string, companionSourcePath: string, companionDestinationPath: string): Promise<FileSystemPartialMoveState>;
|
|
52
|
-
export declare function describeEntryMove(provider: FileSystemProvider, sourcePath: string, destinationPath: string): Promise<FileSystemEntryMoveState>;
|
|
53
|
-
//# sourceMappingURL=move-error.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"move-error.d.ts","sourceRoot":"","sources":["../../src/filesystem/move-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAG9E,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,sBAAsB,CAAC;IACjD,QAAQ,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;CACvD;AAED,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAE/F,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;CAC9C;AAaD;;;;GAIG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;aAIlC,UAAU,EAAE,MAAM;aAClB,eAAe,EAAE,MAAM;aACvB,KAAK,EAAE,wBAAwB;aAC/B,SAAS,EAAE,OAAO;IANpC,SAAgB,IAAI,EAAG,cAAc,CAAU;gBAG7B,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,wBAAwB,EAC/B,SAAS,EAAE,OAAO;IAWpC,IAAW,QAAQ,IAAI,sBAAsB,CAE5C;IAED,2EAA2E;IAC3E,IAAW,gBAAgB,IAAI,sBAAsB,CAEpD;CACF;AAED;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IAIjD,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM;IACpC,QAAQ,CAAC,wBAAwB,EAAE,MAAM;IACzC,QAAQ,CAAC,KAAK,EAAE,0BAA0B;IAC1C,QAAQ,CAAC,SAAS,EAAE,OAAO;IAC3B,QAAQ,CAAC,aAAa,EAAE,OAAO;IATjC,QAAQ,CAAC,IAAI,EAAG,cAAc,CAAU;gBAG7B,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,mBAAmB,EAAE,MAAM,EAC3B,wBAAwB,EAAE,MAAM,EAChC,KAAK,EAAE,0BAA0B,EACjC,SAAS,EAAE,OAAO,EAClB,aAAa,EAAE,OAAO;IAcjC,IAAI,gBAAgB,IAAI,sBAAsB,CAE7C;IAED,IAAI,iBAAiB,IAAI,sBAAsB,CAE9C;CACF;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,0BAA0B,CAEhG;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,2BAA2B,CAEtC;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,2BAA2B,GAAG,0BAA0B,CAEnE;AAiBD,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,mBAAmB,EAAE,MAAM,EAC3B,wBAAwB,EAAE,MAAM,GAC/B,OAAO,CAAC,0BAA0B,CAAC,CAQrC;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,wBAAwB,CAAC,CAMnC"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { getFileSystemProviderV2 } from './types.js';
|
|
2
|
-
import { parseWorkspacePath } from './workspace-path.js';
|
|
3
|
-
function locationFromPresence(source, destination) {
|
|
4
|
-
if (source === 'unknown' || destination === 'unknown')
|
|
5
|
-
return 'unknown';
|
|
6
|
-
if (source === 'present' && destination === 'present')
|
|
7
|
-
return 'both';
|
|
8
|
-
if (source === 'present')
|
|
9
|
-
return 'source';
|
|
10
|
-
if (destination === 'present')
|
|
11
|
-
return 'destination';
|
|
12
|
-
return 'neither';
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* One provider move failed without restoring a provable source-only state.
|
|
16
|
-
* This is backend-neutral: callers must use `location`, never infer from the
|
|
17
|
-
* original exception or a provider's advertised move atomicity.
|
|
18
|
-
*/
|
|
19
|
-
export class FileSystemMoveRecoveryError extends Error {
|
|
20
|
-
constructor(sourcePath, destinationPath, state, moveError) {
|
|
21
|
-
super(`The move did not restore one authoritative path. Entry location: ${locationFromPresence(state.source, state.destination)}.`);
|
|
22
|
-
this.sourcePath = sourcePath;
|
|
23
|
-
this.destinationPath = destinationPath;
|
|
24
|
-
this.state = state;
|
|
25
|
-
this.moveError = moveError;
|
|
26
|
-
this.code = 'partial-move';
|
|
27
|
-
this.name = 'FileSystemMoveRecoveryError';
|
|
28
|
-
}
|
|
29
|
-
get location() {
|
|
30
|
-
return locationFromPresence(this.state.source, this.state.destination);
|
|
31
|
-
}
|
|
32
|
-
/** Alias used by DocumentSession's document-retarget recovery protocol. */
|
|
33
|
-
get documentLocation() {
|
|
34
|
-
return this.location;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* A compound document/companion move failed and the document rollback also
|
|
39
|
-
* failed. Callers must use the recorded post-state instead of assuming the
|
|
40
|
-
* original path is still authoritative.
|
|
41
|
-
*/
|
|
42
|
-
export class FileSystemPartialMoveError extends Error {
|
|
43
|
-
constructor(sourcePath, destinationPath, companionSourcePath, companionDestinationPath, state, moveError, rollbackError) {
|
|
44
|
-
super(`The document move could not be rolled back. Document location: ${locationFromPresence(state.source, state.destination)}; companion location: ${locationFromPresence(state.companionSource, state.companionDestination)}.`);
|
|
45
|
-
this.sourcePath = sourcePath;
|
|
46
|
-
this.destinationPath = destinationPath;
|
|
47
|
-
this.companionSourcePath = companionSourcePath;
|
|
48
|
-
this.companionDestinationPath = companionDestinationPath;
|
|
49
|
-
this.state = state;
|
|
50
|
-
this.moveError = moveError;
|
|
51
|
-
this.rollbackError = rollbackError;
|
|
52
|
-
this.code = 'partial-move';
|
|
53
|
-
this.name = 'FileSystemPartialMoveError';
|
|
54
|
-
}
|
|
55
|
-
get documentLocation() {
|
|
56
|
-
return locationFromPresence(this.state.source, this.state.destination);
|
|
57
|
-
}
|
|
58
|
-
get companionLocation() {
|
|
59
|
-
return locationFromPresence(this.state.companionSource, this.state.companionDestination);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
export function isFileSystemPartialMoveError(error) {
|
|
63
|
-
return error instanceof FileSystemPartialMoveError;
|
|
64
|
-
}
|
|
65
|
-
export function isFileSystemMoveRecoveryError(error) {
|
|
66
|
-
return error instanceof FileSystemMoveRecoveryError;
|
|
67
|
-
}
|
|
68
|
-
export function isFileSystemMoveStateError(error) {
|
|
69
|
-
return isFileSystemMoveRecoveryError(error) || isFileSystemPartialMoveError(error);
|
|
70
|
-
}
|
|
71
|
-
async function probePath(provider, path) {
|
|
72
|
-
try {
|
|
73
|
-
const providerV2 = getFileSystemProviderV2(provider);
|
|
74
|
-
const present = providerV2
|
|
75
|
-
? (await providerV2.stat(parseWorkspacePath(path))) !== null
|
|
76
|
-
: await provider.exists(path);
|
|
77
|
-
return present ? 'present' : 'missing';
|
|
78
|
-
}
|
|
79
|
-
catch {
|
|
80
|
-
return 'unknown';
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
export async function describePartialMove(provider, sourcePath, destinationPath, companionSourcePath, companionDestinationPath) {
|
|
84
|
-
const [source, destination, companionSource, companionDestination] = await Promise.all([
|
|
85
|
-
probePath(provider, sourcePath),
|
|
86
|
-
probePath(provider, destinationPath),
|
|
87
|
-
probePath(provider, companionSourcePath),
|
|
88
|
-
probePath(provider, companionDestinationPath),
|
|
89
|
-
]);
|
|
90
|
-
return { source, destination, companionSource, companionDestination };
|
|
91
|
-
}
|
|
92
|
-
export async function describeEntryMove(provider, sourcePath, destinationPath) {
|
|
93
|
-
const [source, destination] = await Promise.all([
|
|
94
|
-
probePath(provider, sourcePath),
|
|
95
|
-
probePath(provider, destinationPath),
|
|
96
|
-
]);
|
|
97
|
-
return { source, destination };
|
|
98
|
-
}
|
|
99
|
-
//# sourceMappingURL=move-error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"move-error.js","sourceRoot":"","sources":["../../src/filesystem/move-error.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { FsError } from './fs-error.js';
|
|
2
|
-
import { type FileSystemCreateDirectoryOptions, type FileSystemDirectorySnapshot, type FileSystemEntrySnapshot, type FileSystemFileRead, type FileSystemFileSnapshot, type FileSystemMoveOptions, type FileSystemProviderCapabilities, type FileSystemProviderV2, type FileSystemRemoveOptions, type FileSystemRemoveResult, type FileSystemSnapshot, type FileSystemWatchListener, type FileSystemWatchOptions, type FileSystemWatchSubscription, type FileSystemWriteOptions } from './v2.js';
|
|
3
|
-
import { type WorkspacePath } from './workspace-path.js';
|
|
4
|
-
export type NativeFileSystemMovePathState = 'present' | 'missing' | 'unknown';
|
|
5
|
-
export interface NativeFileSystemMoveRecoveryState {
|
|
6
|
-
readonly source: NativeFileSystemMovePathState;
|
|
7
|
-
readonly destination: NativeFileSystemMovePathState;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* A copy/delete move failed and the provider could not prove that rollback
|
|
11
|
-
* restored the source-only state. Callers must inspect `state` before retrying.
|
|
12
|
-
*/
|
|
13
|
-
export declare class NativeFileSystemMoveRecoveryError extends FsError {
|
|
14
|
-
readonly primaryError: FsError;
|
|
15
|
-
readonly recoveryErrors: readonly FsError[];
|
|
16
|
-
readonly state: NativeFileSystemMoveRecoveryState;
|
|
17
|
-
constructor(sourcePath: WorkspacePath, destinationPath: WorkspacePath, primaryError: FsError, recoveryErrors: readonly FsError[], state: NativeFileSystemMoveRecoveryState);
|
|
18
|
-
}
|
|
19
|
-
/** Direct File System Access API implementation of FileSystemProviderV2. */
|
|
20
|
-
export declare class NativeFileSystemProviderV2 implements FileSystemProviderV2 {
|
|
21
|
-
readonly id: string;
|
|
22
|
-
readonly label: string;
|
|
23
|
-
readonly capabilities: FileSystemProviderCapabilities;
|
|
24
|
-
private readonly root;
|
|
25
|
-
private readonly lockKey;
|
|
26
|
-
private readonly subscriptions;
|
|
27
|
-
private readonly inFlight;
|
|
28
|
-
private disposed;
|
|
29
|
-
private disposePromise;
|
|
30
|
-
constructor(id: string, root: FileSystemDirectoryHandle);
|
|
31
|
-
stat(path: WorkspacePath): Promise<FileSystemEntrySnapshot | null>;
|
|
32
|
-
readFile(path: WorkspacePath): Promise<FileSystemFileRead | null>;
|
|
33
|
-
readDirectory(path: WorkspacePath): Promise<readonly FileSystemEntrySnapshot[]>;
|
|
34
|
-
writeFile(path: WorkspacePath, data: ArrayBuffer | Uint8Array, options?: FileSystemWriteOptions): Promise<FileSystemFileSnapshot>;
|
|
35
|
-
createDirectory(path: WorkspacePath, options?: FileSystemCreateDirectoryOptions): Promise<FileSystemDirectorySnapshot>;
|
|
36
|
-
remove(path: WorkspacePath, options?: FileSystemRemoveOptions): Promise<FileSystemRemoveResult>;
|
|
37
|
-
move(oldPath: WorkspacePath, newPath: WorkspacePath, options?: FileSystemMoveOptions): Promise<FileSystemEntrySnapshot>;
|
|
38
|
-
snapshot(): Promise<FileSystemSnapshot>;
|
|
39
|
-
watch(_listener: FileSystemWatchListener, options?: FileSystemWatchOptions): FileSystemWatchSubscription;
|
|
40
|
-
dispose(): Promise<void>;
|
|
41
|
-
private canonical;
|
|
42
|
-
private canonicalNonRoot;
|
|
43
|
-
private execute;
|
|
44
|
-
private mutate;
|
|
45
|
-
private assertOpen;
|
|
46
|
-
private translateError;
|
|
47
|
-
private error;
|
|
48
|
-
private assertExpectedVersion;
|
|
49
|
-
private resolveDirectory;
|
|
50
|
-
private getHandle;
|
|
51
|
-
private tryScanMetadata;
|
|
52
|
-
private tryScanSnapshot;
|
|
53
|
-
private requireMetadata;
|
|
54
|
-
private requireSnapshot;
|
|
55
|
-
private scanMetadataHandle;
|
|
56
|
-
private scanSnapshotHandle;
|
|
57
|
-
private scanHandle;
|
|
58
|
-
private scanFileMetadata;
|
|
59
|
-
private scanFileSnapshot;
|
|
60
|
-
private getFileSnapshot;
|
|
61
|
-
private fileMetadata;
|
|
62
|
-
private planParents;
|
|
63
|
-
private createDirectories;
|
|
64
|
-
private rollbackDirectories;
|
|
65
|
-
private writeBytes;
|
|
66
|
-
private removeEntry;
|
|
67
|
-
private removeEmptyFileIfPresent;
|
|
68
|
-
private currentTreeVersion;
|
|
69
|
-
private writeTree;
|
|
70
|
-
private rollbackMoveAndThrow;
|
|
71
|
-
private probeScan;
|
|
72
|
-
private probeSnapshot;
|
|
73
|
-
private probePresence;
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=native-provider-v2.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"native-provider-v2.d.ts","sourceRoot":"","sources":["../../src/filesystem/native-provider-v2.ts"],"names":[],"mappings":"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"}
|