@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,170 +0,0 @@
|
|
|
1
|
-
const FS_ERROR_CODES = new Set([
|
|
2
|
-
'invalid-path',
|
|
3
|
-
'path-escape',
|
|
4
|
-
'not-found',
|
|
5
|
-
'already-exists',
|
|
6
|
-
'type-mismatch',
|
|
7
|
-
'not-empty',
|
|
8
|
-
'permission-denied',
|
|
9
|
-
'conflict',
|
|
10
|
-
'quota-exceeded',
|
|
11
|
-
'not-supported',
|
|
12
|
-
'busy',
|
|
13
|
-
'disposed',
|
|
14
|
-
'closed',
|
|
15
|
-
'aborted',
|
|
16
|
-
'io',
|
|
17
|
-
]);
|
|
18
|
-
const FS_OPERATIONS = new Set([
|
|
19
|
-
'parse-path',
|
|
20
|
-
'read',
|
|
21
|
-
'stat',
|
|
22
|
-
'list',
|
|
23
|
-
'write',
|
|
24
|
-
'create-directory',
|
|
25
|
-
'remove',
|
|
26
|
-
'move',
|
|
27
|
-
'snapshot',
|
|
28
|
-
'watch',
|
|
29
|
-
'dispose',
|
|
30
|
-
]);
|
|
31
|
-
/** Error with a stable code and a deliberately serializable public shape. */
|
|
32
|
-
export class FsError extends Error {
|
|
33
|
-
constructor(code, message, context = {}) {
|
|
34
|
-
super(message);
|
|
35
|
-
this.name = 'FsError';
|
|
36
|
-
this.code = code;
|
|
37
|
-
this.operation = context.operation ?? null;
|
|
38
|
-
this.path = context.path ?? null;
|
|
39
|
-
this.destinationPath = context.destinationPath ?? null;
|
|
40
|
-
this.retryable = context.retryable ?? (code === 'io' || code === 'aborted' || code === 'busy');
|
|
41
|
-
}
|
|
42
|
-
toJSON() {
|
|
43
|
-
return {
|
|
44
|
-
name: 'FsError',
|
|
45
|
-
code: this.code,
|
|
46
|
-
message: this.message,
|
|
47
|
-
operation: this.operation,
|
|
48
|
-
path: this.path,
|
|
49
|
-
destinationPath: this.destinationPath,
|
|
50
|
-
retryable: this.retryable,
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
export function mapDomExceptionToFsErrorCode(name) {
|
|
55
|
-
switch (name) {
|
|
56
|
-
case 'NotFoundError':
|
|
57
|
-
return 'not-found';
|
|
58
|
-
case 'ConstraintError':
|
|
59
|
-
return 'already-exists';
|
|
60
|
-
case 'TypeMismatchError':
|
|
61
|
-
return 'type-mismatch';
|
|
62
|
-
case 'InvalidModificationError':
|
|
63
|
-
return 'not-empty';
|
|
64
|
-
case 'NotAllowedError':
|
|
65
|
-
case 'SecurityError':
|
|
66
|
-
case 'NoModificationAllowedError':
|
|
67
|
-
return 'permission-denied';
|
|
68
|
-
case 'QuotaExceededError':
|
|
69
|
-
return 'quota-exceeded';
|
|
70
|
-
case 'NotSupportedError':
|
|
71
|
-
return 'not-supported';
|
|
72
|
-
case 'InvalidStateError':
|
|
73
|
-
return 'disposed';
|
|
74
|
-
case 'AbortError':
|
|
75
|
-
return 'aborted';
|
|
76
|
-
default:
|
|
77
|
-
return 'io';
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
export function mapNodeErrorCodeToFsErrorCode(code) {
|
|
81
|
-
switch (code) {
|
|
82
|
-
case 'ENOENT':
|
|
83
|
-
return 'not-found';
|
|
84
|
-
case 'ENOTDIR':
|
|
85
|
-
return 'type-mismatch';
|
|
86
|
-
case 'EEXIST':
|
|
87
|
-
return 'already-exists';
|
|
88
|
-
case 'EISDIR':
|
|
89
|
-
return 'type-mismatch';
|
|
90
|
-
case 'ENOTEMPTY':
|
|
91
|
-
return 'not-empty';
|
|
92
|
-
case 'EACCES':
|
|
93
|
-
case 'EPERM':
|
|
94
|
-
return 'permission-denied';
|
|
95
|
-
case 'ENOSPC':
|
|
96
|
-
case 'EDQUOT':
|
|
97
|
-
return 'quota-exceeded';
|
|
98
|
-
case 'EBUSY':
|
|
99
|
-
return 'busy';
|
|
100
|
-
case 'EXDEV':
|
|
101
|
-
case 'ENOTSUP':
|
|
102
|
-
case 'EOPNOTSUPP':
|
|
103
|
-
return 'not-supported';
|
|
104
|
-
default:
|
|
105
|
-
return 'io';
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
export function isSerializedFsError(value) {
|
|
109
|
-
if (!value || typeof value !== 'object')
|
|
110
|
-
return false;
|
|
111
|
-
const candidate = value;
|
|
112
|
-
return (candidate.name === 'FsError' &&
|
|
113
|
-
typeof candidate.code === 'string' &&
|
|
114
|
-
FS_ERROR_CODES.has(candidate.code) &&
|
|
115
|
-
typeof candidate.message === 'string' &&
|
|
116
|
-
(candidate.operation === null ||
|
|
117
|
-
(typeof candidate.operation === 'string' && FS_OPERATIONS.has(candidate.operation))) &&
|
|
118
|
-
(candidate.path === null || typeof candidate.path === 'string') &&
|
|
119
|
-
(candidate.destinationPath === null || typeof candidate.destinationPath === 'string') &&
|
|
120
|
-
typeof candidate.retryable === 'boolean');
|
|
121
|
-
}
|
|
122
|
-
export function deserializeFsError(value) {
|
|
123
|
-
return new FsError(value.code, value.message, {
|
|
124
|
-
operation: value.operation ?? undefined,
|
|
125
|
-
path: value.path ?? undefined,
|
|
126
|
-
destinationPath: value.destinationPath ?? undefined,
|
|
127
|
-
retryable: value.retryable,
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
export function fsErrorFromUnknown(error, context = {}) {
|
|
131
|
-
if (error instanceof FsError)
|
|
132
|
-
return error;
|
|
133
|
-
if (isSerializedFsError(error))
|
|
134
|
-
return deserializeFsError(error);
|
|
135
|
-
const name = getErrorStringField(error, 'name');
|
|
136
|
-
const nodeCode = getErrorStringField(error, 'code');
|
|
137
|
-
const message = getErrorStringField(error, 'message') ?? String(error);
|
|
138
|
-
const code = context.defaultCode ??
|
|
139
|
-
(nodeCode
|
|
140
|
-
? mapNodeErrorCodeToFsErrorCode(nodeCode)
|
|
141
|
-
: name
|
|
142
|
-
? mapDomExceptionToFsErrorCode(name)
|
|
143
|
-
: 'io');
|
|
144
|
-
return new FsError(code, message, context);
|
|
145
|
-
}
|
|
146
|
-
export function serializeFsError(error, context = {}) {
|
|
147
|
-
return fsErrorFromUnknown(error, context).toJSON();
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* True when a storage backend rejected an operation because the origin or
|
|
151
|
-
* device is out of space. Covers typed `FsError`s (`'quota-exceeded'`, from
|
|
152
|
-
* DOMException `QuotaExceededError` or Node `ENOSPC`/`EDQUOT`), serialized
|
|
153
|
-
* transport copies, and raw DOMExceptions from backends that do not wrap
|
|
154
|
-
* their errors (e.g. the File System Access API) — including cross-realm
|
|
155
|
-
* instances where `instanceof DOMException` would fail.
|
|
156
|
-
*/
|
|
157
|
-
export function isQuotaExceededError(error) {
|
|
158
|
-
if (error instanceof FsError)
|
|
159
|
-
return error.code === 'quota-exceeded';
|
|
160
|
-
if (isSerializedFsError(error))
|
|
161
|
-
return error.code === 'quota-exceeded';
|
|
162
|
-
return getErrorStringField(error, 'name') === 'QuotaExceededError';
|
|
163
|
-
}
|
|
164
|
-
function getErrorStringField(error, key) {
|
|
165
|
-
if (!error || typeof error !== 'object')
|
|
166
|
-
return null;
|
|
167
|
-
const value = error[key];
|
|
168
|
-
return typeof value === 'string' ? value : null;
|
|
169
|
-
}
|
|
170
|
-
//# sourceMappingURL=fs-error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fs-error.js","sourceRoot":"","sources":["../../src/filesystem/fs-error.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filesystem/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* IndexedDBContentContainer — a ContentContainer backed by IndexedDB.
|
|
3
|
-
*
|
|
4
|
-
* Uses a dedicated IndexedDBFileSystemProvider instance (separate store)
|
|
5
|
-
* to persist media files across page refreshes.
|
|
6
|
-
*/
|
|
7
|
-
import type { ContentContainer, ContentEntry } from '@bendyline/squisq/storage';
|
|
8
|
-
export declare class IndexedDBContentContainer implements ContentContainer {
|
|
9
|
-
private readonly provider;
|
|
10
|
-
constructor(workspaceId: string);
|
|
11
|
-
readFile(path: string): Promise<ArrayBuffer | null>;
|
|
12
|
-
writeFile(path: string, data: ArrayBuffer | Uint8Array, _mimeType?: string): Promise<void>;
|
|
13
|
-
removeFile(path: string): Promise<void>;
|
|
14
|
-
listFiles(prefix?: string): Promise<ContentEntry[]>;
|
|
15
|
-
exists(path: string): Promise<boolean>;
|
|
16
|
-
getDocumentPath(): Promise<string | null>;
|
|
17
|
-
readDocument(): Promise<string | null>;
|
|
18
|
-
writeDocument(markdown: string, filename?: string): Promise<void>;
|
|
19
|
-
/** Release the IndexedDB connection when a long-lived container is retired. */
|
|
20
|
-
dispose(): Promise<void>;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=indexeddb-content-container.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"indexeddb-content-container.d.ts","sourceRoot":"","sources":["../../src/filesystem/indexeddb-content-container.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAkChF,qBAAa,yBAA0B,YAAW,gBAAgB;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;gBAE7C,WAAW,EAAE,MAAM;IAIzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAInD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1F,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAsBnD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItC,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIzC,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQtC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvE,+EAA+E;IACzE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* IndexedDBContentContainer — a ContentContainer backed by IndexedDB.
|
|
3
|
-
*
|
|
4
|
-
* Uses a dedicated IndexedDBFileSystemProvider instance (separate store)
|
|
5
|
-
* to persist media files across page refreshes.
|
|
6
|
-
*/
|
|
7
|
-
import { findDocumentPath } from '@bendyline/squisq/storage';
|
|
8
|
-
import { IndexedDBFileSystemProviderV2 } from './indexeddb-provider-v2.js';
|
|
9
|
-
import { parseWorkspacePath, WORKSPACE_ROOT } from './workspace-path.js';
|
|
10
|
-
// ── MIME type guessing ─────────────────────────────────────────────
|
|
11
|
-
const EXTENSION_MIME_MAP = {
|
|
12
|
-
'.md': 'text/markdown',
|
|
13
|
-
'.txt': 'text/plain',
|
|
14
|
-
'.json': 'application/json',
|
|
15
|
-
'.jpg': 'image/jpeg',
|
|
16
|
-
'.jpeg': 'image/jpeg',
|
|
17
|
-
'.png': 'image/png',
|
|
18
|
-
'.gif': 'image/gif',
|
|
19
|
-
'.svg': 'image/svg+xml',
|
|
20
|
-
'.webp': 'image/webp',
|
|
21
|
-
'.avif': 'image/avif',
|
|
22
|
-
'.mp4': 'video/mp4',
|
|
23
|
-
'.webm': 'video/webm',
|
|
24
|
-
'.mp3': 'audio/mpeg',
|
|
25
|
-
'.wav': 'audio/wav',
|
|
26
|
-
'.ogg': 'audio/ogg',
|
|
27
|
-
};
|
|
28
|
-
function guessMimeType(path) {
|
|
29
|
-
const dot = path.lastIndexOf('.');
|
|
30
|
-
if (dot === -1)
|
|
31
|
-
return 'application/octet-stream';
|
|
32
|
-
const ext = path.slice(dot).toLowerCase();
|
|
33
|
-
return EXTENSION_MIME_MAP[ext] ?? 'application/octet-stream';
|
|
34
|
-
}
|
|
35
|
-
// ── Implementation ─────────────────────────────────────────────────
|
|
36
|
-
export class IndexedDBContentContainer {
|
|
37
|
-
constructor(workspaceId) {
|
|
38
|
-
this.provider = new IndexedDBFileSystemProviderV2(`${workspaceId}-media`, 'Media Storage');
|
|
39
|
-
}
|
|
40
|
-
async readFile(path) {
|
|
41
|
-
return (await this.provider.readFile(parseWorkspacePath(path)))?.data ?? null;
|
|
42
|
-
}
|
|
43
|
-
async writeFile(path, data, _mimeType) {
|
|
44
|
-
await this.provider.writeFile(parseWorkspacePath(path), data, {
|
|
45
|
-
mode: 'upsert',
|
|
46
|
-
createParents: true,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
async removeFile(path) {
|
|
50
|
-
await this.provider.remove(parseWorkspacePath(path), { missing: 'ignore' });
|
|
51
|
-
}
|
|
52
|
-
async listFiles(prefix) {
|
|
53
|
-
const entries = [];
|
|
54
|
-
const walk = async (dir) => {
|
|
55
|
-
const children = await this.provider.readDirectory(parseWorkspacePath(dir));
|
|
56
|
-
for (const child of children) {
|
|
57
|
-
if (child.kind === 'directory') {
|
|
58
|
-
await walk(child.path);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
const filePath = child.path;
|
|
62
|
-
if (prefix && !filePath.startsWith(prefix))
|
|
63
|
-
continue;
|
|
64
|
-
entries.push({
|
|
65
|
-
path: filePath,
|
|
66
|
-
mimeType: guessMimeType(filePath),
|
|
67
|
-
size: child.size,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
await walk(WORKSPACE_ROOT);
|
|
73
|
-
return entries;
|
|
74
|
-
}
|
|
75
|
-
async exists(path) {
|
|
76
|
-
return (await this.provider.stat(parseWorkspacePath(path))) !== null;
|
|
77
|
-
}
|
|
78
|
-
async getDocumentPath() {
|
|
79
|
-
return findDocumentPath(await this.listFiles());
|
|
80
|
-
}
|
|
81
|
-
async readDocument() {
|
|
82
|
-
const docPath = await this.getDocumentPath();
|
|
83
|
-
if (!docPath)
|
|
84
|
-
return null;
|
|
85
|
-
const data = await this.readFile(docPath);
|
|
86
|
-
if (!data)
|
|
87
|
-
return null;
|
|
88
|
-
return new TextDecoder().decode(data);
|
|
89
|
-
}
|
|
90
|
-
async writeDocument(markdown, filename) {
|
|
91
|
-
const name = filename ?? 'index.md';
|
|
92
|
-
const data = new TextEncoder().encode(markdown);
|
|
93
|
-
await this.writeFile(name, data, 'text/markdown');
|
|
94
|
-
}
|
|
95
|
-
/** Release the IndexedDB connection when a long-lived container is retired. */
|
|
96
|
-
async dispose() {
|
|
97
|
-
await this.provider.dispose();
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=indexeddb-content-container.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"indexeddb-content-container.js","sourceRoot":"","sources":["../../src/filesystem/indexeddb-content-container.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { type IndexedDBFileSystemStore } from './indexeddb-store.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
|
-
import type { FileMeta } from './types.js';
|
|
5
|
-
export type IndexedDBLegacyConflictReason = 'dual-payload' | 'kind-collision' | 'authority-collision' | 'stale-client-write';
|
|
6
|
-
export type IndexedDBLegacyRecoveryKind = 'file' | 'directory';
|
|
7
|
-
export interface IndexedDBLegacyRecoveryCandidate {
|
|
8
|
-
readonly kind: IndexedDBLegacyRecoveryKind;
|
|
9
|
-
readonly reason: IndexedDBLegacyConflictReason;
|
|
10
|
-
readonly text: string | null;
|
|
11
|
-
readonly binary: ArrayBuffer | null;
|
|
12
|
-
readonly metadata: FileMeta | null;
|
|
13
|
-
readonly detectedAt: string;
|
|
14
|
-
}
|
|
15
|
-
export interface IndexedDBLegacyMigrationConflict {
|
|
16
|
-
readonly path: WorkspacePath;
|
|
17
|
-
/** Backward-compatible projection of the newest quarantined candidate. */
|
|
18
|
-
readonly reason: IndexedDBLegacyConflictReason;
|
|
19
|
-
readonly kind: IndexedDBLegacyRecoveryKind;
|
|
20
|
-
readonly text: string | null;
|
|
21
|
-
readonly binary: ArrayBuffer | null;
|
|
22
|
-
readonly metadata: FileMeta | null;
|
|
23
|
-
readonly detectedAt: string;
|
|
24
|
-
readonly candidates: readonly IndexedDBLegacyRecoveryCandidate[];
|
|
25
|
-
}
|
|
26
|
-
export type IndexedDBLegacyConflictResolution = 'v2' | 'text' | 'binary' | {
|
|
27
|
-
readonly candidate: number;
|
|
28
|
-
readonly payload: 'text' | 'binary' | 'directory';
|
|
29
|
-
};
|
|
30
|
-
export interface IndexedDBFileSystemProviderV2Options {
|
|
31
|
-
/** Injectable store for fault, migration, and concurrency tests. */
|
|
32
|
-
readonly store?: IndexedDBFileSystemStore;
|
|
33
|
-
readonly now?: () => Date;
|
|
34
|
-
/** Shared-store owners can retain the connection when this facade is disposed. */
|
|
35
|
-
readonly closeStoreOnDispose?: boolean;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* IndexedDB implementation of the correctness-first filesystem contract.
|
|
39
|
-
*
|
|
40
|
-
* Each canonical path has one authoritative structured-clone record containing
|
|
41
|
-
* its kind, owned bytes (for files), version, and metadata. Every mutation and
|
|
42
|
-
* snapshot is one IndexedDB transaction. Legacy v1 keys are imported once;
|
|
43
|
-
* ambiguous or stale branches move into durable recovery records before the
|
|
44
|
-
* legacy namespace is deleted, leaving one live authority.
|
|
45
|
-
*/
|
|
46
|
-
export declare class IndexedDBFileSystemProviderV2 implements FileSystemProviderV2 {
|
|
47
|
-
readonly id: string;
|
|
48
|
-
readonly label: string;
|
|
49
|
-
readonly capabilities: FileSystemProviderCapabilities;
|
|
50
|
-
private readonly store;
|
|
51
|
-
private readonly now;
|
|
52
|
-
private readonly closeStoreOnDispose;
|
|
53
|
-
private readonly versionPrefix;
|
|
54
|
-
private readonly subscriptions;
|
|
55
|
-
private readonly inFlight;
|
|
56
|
-
private initialization;
|
|
57
|
-
private disposePromise;
|
|
58
|
-
private storeClosed;
|
|
59
|
-
private disposed;
|
|
60
|
-
constructor(id: string, label: string, options?: IndexedDBFileSystemProviderV2Options);
|
|
61
|
-
/** Track accepted storage work so disposal can join it before closing. */
|
|
62
|
-
private runSharedTransaction;
|
|
63
|
-
stat(path: WorkspacePath): Promise<FileSystemEntrySnapshot | null>;
|
|
64
|
-
readFile(path: WorkspacePath): Promise<FileSystemFileRead | null>;
|
|
65
|
-
readDirectory(path: WorkspacePath): Promise<readonly FileSystemEntrySnapshot[]>;
|
|
66
|
-
writeFile(path: WorkspacePath, data: ArrayBuffer | Uint8Array, options?: FileSystemWriteOptions): Promise<FileSystemFileSnapshot>;
|
|
67
|
-
createDirectory(path: WorkspacePath, options?: FileSystemCreateDirectoryOptions): Promise<FileSystemDirectorySnapshot>;
|
|
68
|
-
remove(path: WorkspacePath, options?: FileSystemRemoveOptions): Promise<FileSystemRemoveResult>;
|
|
69
|
-
move(oldPath: WorkspacePath, newPath: WorkspacePath, options?: FileSystemMoveOptions): Promise<FileSystemEntrySnapshot>;
|
|
70
|
-
snapshot(): Promise<FileSystemSnapshot>;
|
|
71
|
-
/** IndexedDB has no reliable cross-browser external-change observer. */
|
|
72
|
-
watch(_listener: FileSystemWatchListener, options?: FileSystemWatchOptions): FileSystemWatchSubscription;
|
|
73
|
-
dispose(): Promise<void>;
|
|
74
|
-
/** List unresolved, byte-preserving conflicts found during v1 migration. */
|
|
75
|
-
listLegacyMigrationConflicts(): Promise<readonly IndexedDBLegacyMigrationConflict[]>;
|
|
76
|
-
/** Resolve quarantined legacy data by choosing v2 or one legacy byte payload. */
|
|
77
|
-
resolveLegacyMigrationConflict(path: WorkspacePath, resolution: IndexedDBLegacyConflictResolution): Promise<FileSystemEntrySnapshot>;
|
|
78
|
-
/** Explicitly discard every quarantined legacy candidate at a path. */
|
|
79
|
-
discardLegacyMigrationConflict(path: WorkspacePath): Promise<boolean>;
|
|
80
|
-
private ensureInitialized;
|
|
81
|
-
private migrateLegacy;
|
|
82
|
-
private quarantineExistingLegacy;
|
|
83
|
-
private transaction;
|
|
84
|
-
private withMutationLock;
|
|
85
|
-
private nextMutationVersion;
|
|
86
|
-
private advanceState;
|
|
87
|
-
private makeVersion;
|
|
88
|
-
private planParents;
|
|
89
|
-
private addDirectories;
|
|
90
|
-
private touchParents;
|
|
91
|
-
private canonicalNonRoot;
|
|
92
|
-
private assertExpectedVersion;
|
|
93
|
-
private assertOpen;
|
|
94
|
-
private error;
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=indexeddb-provider-v2.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"indexeddb-provider-v2.d.ts","sourceRoot":"","sources":["../../src/filesystem/indexeddb-provider-v2.ts"],"names":[],"mappings":"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"}
|