@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.
Files changed (286) hide show
  1. package/dist/{chunk-J32GU3F3.js → chunk-6IYMTYMQ.js} +249 -221
  2. package/dist/chunk-6IYMTYMQ.js.map +1 -0
  3. package/dist/{chunk-75UUF6C4.js → chunk-B56KWCSE.js} +2 -2
  4. package/dist/{chunk-RVQHY3XU.js → chunk-BNKV7MTO.js} +1 -1
  5. package/dist/{chunk-RVQHY3XU.js.map → chunk-BNKV7MTO.js.map} +1 -1
  6. package/dist/chunk-BXMF5YQJ.js +149 -0
  7. package/dist/chunk-BXMF5YQJ.js.map +1 -0
  8. package/dist/{chunk-PGR7LK6D.js → chunk-COYQXQK3.js} +14 -5
  9. package/dist/chunk-COYQXQK3.js.map +1 -0
  10. package/dist/{chunk-RQJRQF46.js → chunk-DN7A33LL.js} +42 -49
  11. package/dist/chunk-DN7A33LL.js.map +1 -0
  12. package/dist/chunk-FA7UNOXK.js +20 -0
  13. package/dist/chunk-FA7UNOXK.js.map +1 -0
  14. package/dist/chunk-GM5YXU4L.js +29 -0
  15. package/dist/chunk-GM5YXU4L.js.map +1 -0
  16. package/dist/{chunk-SI2LU2RP.js → chunk-JS6XFWQK.js} +2 -1
  17. package/dist/chunk-JS6XFWQK.js.map +1 -0
  18. package/dist/{chunk-EGNDADXB.js → chunk-MNSZ7EZN.js} +2 -2
  19. package/dist/chunk-P3DVZQ6S.js +228 -0
  20. package/dist/chunk-P3DVZQ6S.js.map +1 -0
  21. package/dist/chunk-P4WATND4.js +52 -0
  22. package/dist/chunk-P4WATND4.js.map +1 -0
  23. package/dist/chunk-RVPGQBWR.js +169 -0
  24. package/dist/chunk-RVPGQBWR.js.map +1 -0
  25. package/dist/chunk-U722UUFN.js +9 -0
  26. package/dist/chunk-U722UUFN.js.map +1 -0
  27. package/dist/{chunk-GCPBEMMH.js → chunk-VTCSF7VS.js} +11 -21
  28. package/dist/chunk-VTCSF7VS.js.map +1 -0
  29. package/dist/{chunk-2D7Y4IR3.js → chunk-WJKYY5QR.js} +123 -66
  30. package/dist/chunk-WJKYY5QR.js.map +1 -0
  31. package/dist/{chunk-5MYAICRE.js → chunk-XUML3MKV.js} +44 -56
  32. package/dist/chunk-XUML3MKV.js.map +1 -0
  33. package/dist/document/index.d.ts +358 -6
  34. package/dist/document/index.js +24 -3
  35. package/dist/document/index.js.map +1 -1
  36. package/dist/filesystem/electron.d.ts +73 -4
  37. package/dist/filesystem/electron.js +16 -3
  38. package/dist/filesystem/electron.js.map +1 -1
  39. package/dist/filesystem/index.d.ts +228 -22
  40. package/dist/filesystem/index.js +133 -19
  41. package/dist/filesystem/index.js.map +1 -1
  42. package/dist/filesystem/indexeddb.d.ts +284 -5
  43. package/dist/filesystem/indexeddb.js +22 -4
  44. package/dist/filesystem/indexeddb.js.map +1 -1
  45. package/dist/filesystem/memory.d.ts +152 -4
  46. package/dist/filesystem/memory.js +12 -3
  47. package/dist/filesystem/memory.js.map +1 -1
  48. package/dist/filesystem/native.d.ts +136 -4
  49. package/dist/filesystem/native.js +27 -3
  50. package/dist/filesystem/native.js.map +1 -1
  51. package/dist/host/index.d.ts +32 -9
  52. package/dist/host/index.js +26 -29
  53. package/dist/host/index.js.map +1 -1
  54. package/dist/index.d.ts +14 -10
  55. package/dist/index.js +204 -9
  56. package/dist/index.js.map +1 -1
  57. package/dist/mcp/index.d.ts +33 -4
  58. package/dist/mcp/index.js +31 -3
  59. package/dist/mcp/index.js.map +1 -1
  60. package/dist/mcp/zod.d.ts +637 -635
  61. package/dist/mcp/zod.js +700 -884
  62. package/dist/mcp/zod.js.map +1 -1
  63. package/dist/share/index.d.ts +43 -0
  64. package/dist/share/index.js +13 -0
  65. package/dist/share/index.js.map +1 -0
  66. package/dist/{types-CsX6EN2t.d.ts → types-BEg5SQ1_.d.ts} +1 -1
  67. package/dist/{types-eOlt9J7n.d.ts → types-CueK0tvU.d.ts} +34 -11
  68. package/dist/vscode/index.d.ts +220 -3
  69. package/dist/vscode/index.js +382 -2
  70. package/dist/vscode/index.js.map +1 -1
  71. package/dist/workspace/index.d.ts +141 -4
  72. package/dist/workspace/index.js +28 -2
  73. package/dist/workspace/index.js.map +1 -1
  74. package/package.json +9 -5
  75. package/dist/chunk-2D7Y4IR3.js.map +0 -1
  76. package/dist/chunk-5MYAICRE.js.map +0 -1
  77. package/dist/chunk-AYZ4HN5M.js +0 -20
  78. package/dist/chunk-AYZ4HN5M.js.map +0 -1
  79. package/dist/chunk-GCPBEMMH.js.map +0 -1
  80. package/dist/chunk-J32GU3F3.js.map +0 -1
  81. package/dist/chunk-PGR7LK6D.js.map +0 -1
  82. package/dist/chunk-RQJRQF46.js.map +0 -1
  83. package/dist/chunk-SI2LU2RP.js.map +0 -1
  84. package/dist/chunk-W5UUUII5.js +0 -142
  85. package/dist/chunk-W5UUUII5.js.map +0 -1
  86. package/dist/document/document-session.d.ts +0 -127
  87. package/dist/document/document-session.d.ts.map +0 -1
  88. package/dist/document/document-session.js +0 -749
  89. package/dist/document/document-session.js.map +0 -1
  90. package/dist/document/filesystem-target.d.ts +0 -17
  91. package/dist/document/filesystem-target.d.ts.map +0 -1
  92. package/dist/document/filesystem-target.js +0 -70
  93. package/dist/document/filesystem-target.js.map +0 -1
  94. package/dist/document/index.d.ts.map +0 -1
  95. package/dist/document/recovery-journal.d.ts +0 -125
  96. package/dist/document/recovery-journal.d.ts.map +0 -1
  97. package/dist/document/recovery-journal.js +0 -385
  98. package/dist/document/recovery-journal.js.map +0 -1
  99. package/dist/document/types.d.ts +0 -89
  100. package/dist/document/types.d.ts.map +0 -1
  101. package/dist/document/types.js +0 -9
  102. package/dist/document/types.js.map +0 -1
  103. package/dist/filesystem/commit-lock.d.ts +0 -3
  104. package/dist/filesystem/commit-lock.d.ts.map +0 -1
  105. package/dist/filesystem/commit-lock.js +0 -20
  106. package/dist/filesystem/commit-lock.js.map +0 -1
  107. package/dist/filesystem/dbk-workspace.d.ts +0 -34
  108. package/dist/filesystem/dbk-workspace.d.ts.map +0 -1
  109. package/dist/filesystem/dbk-workspace.js +0 -85
  110. package/dist/filesystem/dbk-workspace.js.map +0 -1
  111. package/dist/filesystem/electron-provider-v2.d.ts +0 -36
  112. package/dist/filesystem/electron-provider-v2.d.ts.map +0 -1
  113. package/dist/filesystem/electron-provider-v2.js +0 -503
  114. package/dist/filesystem/electron-provider-v2.js.map +0 -1
  115. package/dist/filesystem/electron-provider.d.ts +0 -35
  116. package/dist/filesystem/electron-provider.d.ts.map +0 -1
  117. package/dist/filesystem/electron-provider.js +0 -69
  118. package/dist/filesystem/electron-provider.js.map +0 -1
  119. package/dist/filesystem/electron.d.ts.map +0 -1
  120. package/dist/filesystem/file-media-provider.d.ts +0 -23
  121. package/dist/filesystem/file-media-provider.d.ts.map +0 -1
  122. package/dist/filesystem/file-media-provider.js +0 -85
  123. package/dist/filesystem/file-media-provider.js.map +0 -1
  124. package/dist/filesystem/filesystem-content-container.d.ts +0 -24
  125. package/dist/filesystem/filesystem-content-container.d.ts.map +0 -1
  126. package/dist/filesystem/filesystem-content-container.js +0 -153
  127. package/dist/filesystem/filesystem-content-container.js.map +0 -1
  128. package/dist/filesystem/fs-error.d.ts +0 -46
  129. package/dist/filesystem/fs-error.d.ts.map +0 -1
  130. package/dist/filesystem/fs-error.js +0 -170
  131. package/dist/filesystem/fs-error.js.map +0 -1
  132. package/dist/filesystem/index.d.ts.map +0 -1
  133. package/dist/filesystem/indexeddb-content-container.d.ts +0 -22
  134. package/dist/filesystem/indexeddb-content-container.d.ts.map +0 -1
  135. package/dist/filesystem/indexeddb-content-container.js +0 -100
  136. package/dist/filesystem/indexeddb-content-container.js.map +0 -1
  137. package/dist/filesystem/indexeddb-provider-v2.d.ts +0 -96
  138. package/dist/filesystem/indexeddb-provider-v2.d.ts.map +0 -1
  139. package/dist/filesystem/indexeddb-provider-v2.js +0 -1241
  140. package/dist/filesystem/indexeddb-provider-v2.js.map +0 -1
  141. package/dist/filesystem/indexeddb-provider.d.ts +0 -39
  142. package/dist/filesystem/indexeddb-provider.d.ts.map +0 -1
  143. package/dist/filesystem/indexeddb-provider.js +0 -145
  144. package/dist/filesystem/indexeddb-provider.js.map +0 -1
  145. package/dist/filesystem/indexeddb-store.d.ts +0 -34
  146. package/dist/filesystem/indexeddb-store.d.ts.map +0 -1
  147. package/dist/filesystem/indexeddb-store.js +0 -165
  148. package/dist/filesystem/indexeddb-store.js.map +0 -1
  149. package/dist/filesystem/indexeddb.d.ts.map +0 -1
  150. package/dist/filesystem/legacy-v2-adapter.d.ts +0 -62
  151. package/dist/filesystem/legacy-v2-adapter.d.ts.map +0 -1
  152. package/dist/filesystem/legacy-v2-adapter.js +0 -499
  153. package/dist/filesystem/legacy-v2-adapter.js.map +0 -1
  154. package/dist/filesystem/memory-provider-v2.d.ts +0 -92
  155. package/dist/filesystem/memory-provider-v2.d.ts.map +0 -1
  156. package/dist/filesystem/memory-provider-v2.js +0 -615
  157. package/dist/filesystem/memory-provider-v2.js.map +0 -1
  158. package/dist/filesystem/memory-provider.d.ts +0 -54
  159. package/dist/filesystem/memory-provider.d.ts.map +0 -1
  160. package/dist/filesystem/memory-provider.js +0 -132
  161. package/dist/filesystem/memory-provider.js.map +0 -1
  162. package/dist/filesystem/memory.d.ts.map +0 -1
  163. package/dist/filesystem/move-entry.d.ts +0 -9
  164. package/dist/filesystem/move-entry.d.ts.map +0 -1
  165. package/dist/filesystem/move-entry.js +0 -103
  166. package/dist/filesystem/move-entry.js.map +0 -1
  167. package/dist/filesystem/move-error.d.ts +0 -53
  168. package/dist/filesystem/move-error.d.ts.map +0 -1
  169. package/dist/filesystem/move-error.js +0 -99
  170. package/dist/filesystem/move-error.js.map +0 -1
  171. package/dist/filesystem/native-provider-v2.d.ts +0 -75
  172. package/dist/filesystem/native-provider-v2.d.ts.map +0 -1
  173. package/dist/filesystem/native-provider-v2.js +0 -849
  174. package/dist/filesystem/native-provider-v2.js.map +0 -1
  175. package/dist/filesystem/native-provider.d.ts +0 -53
  176. package/dist/filesystem/native-provider.d.ts.map +0 -1
  177. package/dist/filesystem/native-provider.js +0 -471
  178. package/dist/filesystem/native-provider.js.map +0 -1
  179. package/dist/filesystem/native.d.ts.map +0 -1
  180. package/dist/filesystem/types.d.ts +0 -83
  181. package/dist/filesystem/types.d.ts.map +0 -1
  182. package/dist/filesystem/types.js +0 -16
  183. package/dist/filesystem/types.js.map +0 -1
  184. package/dist/filesystem/v2.d.ts +0 -172
  185. package/dist/filesystem/v2.d.ts.map +0 -1
  186. package/dist/filesystem/v2.js +0 -16
  187. package/dist/filesystem/v2.js.map +0 -1
  188. package/dist/filesystem/workspace-path.d.ts +0 -21
  189. package/dist/filesystem/workspace-path.d.ts.map +0 -1
  190. package/dist/filesystem/workspace-path.js +0 -80
  191. package/dist/filesystem/workspace-path.js.map +0 -1
  192. package/dist/host/filesystem-v2.d.ts +0 -45
  193. package/dist/host/filesystem-v2.d.ts.map +0 -1
  194. package/dist/host/filesystem-v2.js +0 -13
  195. package/dist/host/filesystem-v2.js.map +0 -1
  196. package/dist/host/git.d.ts +0 -200
  197. package/dist/host/git.d.ts.map +0 -1
  198. package/dist/host/git.js +0 -15
  199. package/dist/host/git.js.map +0 -1
  200. package/dist/host/index.d.ts.map +0 -1
  201. package/dist/host/types.d.ts +0 -232
  202. package/dist/host/types.d.ts.map +0 -1
  203. package/dist/host/types.js +0 -10
  204. package/dist/host/types.js.map +0 -1
  205. package/dist/host/wire-policy.d.ts +0 -22
  206. package/dist/host/wire-policy.d.ts.map +0 -1
  207. package/dist/host/wire-policy.js +0 -92
  208. package/dist/host/wire-policy.js.map +0 -1
  209. package/dist/index.d.ts.map +0 -1
  210. package/dist/mcp/index.d.ts.map +0 -1
  211. package/dist/mcp/types.d.ts +0 -466
  212. package/dist/mcp/types.d.ts.map +0 -1
  213. package/dist/mcp/types.js +0 -25
  214. package/dist/mcp/types.js.map +0 -1
  215. package/dist/mcp/wire.d.ts +0 -29
  216. package/dist/mcp/wire.d.ts.map +0 -1
  217. package/dist/mcp/wire.js +0 -1046
  218. package/dist/mcp/wire.js.map +0 -1
  219. package/dist/mcp/zod.d.ts.map +0 -1
  220. package/dist/vscode/index.d.ts.map +0 -1
  221. package/dist/vscode/messages.d.ts +0 -204
  222. package/dist/vscode/messages.d.ts.map +0 -1
  223. package/dist/vscode/messages.js +0 -494
  224. package/dist/vscode/messages.js.map +0 -1
  225. package/dist/workspace/index.d.ts.map +0 -1
  226. package/dist/workspace/reconcile-electron.d.ts +0 -19
  227. package/dist/workspace/reconcile-electron.d.ts.map +0 -1
  228. package/dist/workspace/reconcile-electron.js +0 -42
  229. package/dist/workspace/reconcile-electron.js.map +0 -1
  230. package/dist/workspace/types.d.ts +0 -69
  231. package/dist/workspace/types.d.ts.map +0 -1
  232. package/dist/workspace/types.js +0 -2
  233. package/dist/workspace/types.js.map +0 -1
  234. package/dist/workspace/workspace-manager.d.ts +0 -47
  235. package/dist/workspace/workspace-manager.d.ts.map +0 -1
  236. package/dist/workspace/workspace-manager.js +0 -126
  237. package/dist/workspace/workspace-manager.js.map +0 -1
  238. package/src/document/document-session.ts +0 -834
  239. package/src/document/filesystem-target.ts +0 -109
  240. package/src/document/index.ts +0 -41
  241. package/src/document/recovery-journal.ts +0 -536
  242. package/src/document/types.ts +0 -116
  243. package/src/filesystem/commit-lock.ts +0 -29
  244. package/src/filesystem/dbk-workspace.ts +0 -135
  245. package/src/filesystem/electron-provider-v2.ts +0 -630
  246. package/src/filesystem/electron-provider.ts +0 -99
  247. package/src/filesystem/electron.ts +0 -3
  248. package/src/filesystem/file-media-provider.ts +0 -103
  249. package/src/filesystem/filesystem-content-container.ts +0 -164
  250. package/src/filesystem/fs-error.ts +0 -234
  251. package/src/filesystem/index.ts +0 -143
  252. package/src/filesystem/indexeddb-content-container.ts +0 -112
  253. package/src/filesystem/indexeddb-provider-v2.ts +0 -1740
  254. package/src/filesystem/indexeddb-provider.ts +0 -171
  255. package/src/filesystem/indexeddb-store.ts +0 -207
  256. package/src/filesystem/indexeddb.ts +0 -12
  257. package/src/filesystem/legacy-v2-adapter.ts +0 -779
  258. package/src/filesystem/memory-provider-v2.ts +0 -896
  259. package/src/filesystem/memory-provider.ts +0 -180
  260. package/src/filesystem/memory.ts +0 -15
  261. package/src/filesystem/move-entry.ts +0 -142
  262. package/src/filesystem/move-error.ts +0 -159
  263. package/src/filesystem/native-provider-v2.ts +0 -1165
  264. package/src/filesystem/native-provider.ts +0 -537
  265. package/src/filesystem/native.ts +0 -16
  266. package/src/filesystem/types.ts +0 -114
  267. package/src/filesystem/v2.ts +0 -231
  268. package/src/filesystem/workspace-path.ts +0 -92
  269. package/src/host/filesystem-v2.ts +0 -104
  270. package/src/host/git.ts +0 -246
  271. package/src/host/index.ts +0 -93
  272. package/src/host/types.ts +0 -274
  273. package/src/host/wire-policy.ts +0 -103
  274. package/src/index.ts +0 -10
  275. package/src/mcp/index.ts +0 -3
  276. package/src/mcp/types.ts +0 -594
  277. package/src/mcp/wire.ts +0 -1280
  278. package/src/mcp/zod.ts +0 -1000
  279. package/src/vscode/index.ts +0 -2
  280. package/src/vscode/messages.ts +0 -704
  281. package/src/workspace/index.ts +0 -17
  282. package/src/workspace/reconcile-electron.ts +0 -65
  283. package/src/workspace/types.ts +0 -67
  284. package/src/workspace/workspace-manager.ts +0 -151
  285. /package/dist/{chunk-75UUF6C4.js.map → chunk-B56KWCSE.js.map} +0 -0
  286. /package/dist/{chunk-EGNDADXB.js.map → chunk-MNSZ7EZN.js.map} +0 -0
@@ -1,499 +0,0 @@
1
- import { FsError, fsErrorFromUnknown } from './fs-error.js';
2
- import { parseFileSystemVersion, } from './v2.js';
3
- import { WORKSPACE_ROOT, parseWorkspacePath, workspacePathBasename, workspacePathContains, workspacePathDirname, workspacePathToLegacy, } from './workspace-path.js';
4
- const EPOCH = new Date(0).toISOString();
5
- /**
6
- * Correctness bridge for hardened v1 providers while storage backends migrate.
7
- *
8
- * The adapter deliberately serializes every observable operation. This makes a
9
- * version check and its mutation indivisible among v2 callers, but cannot make
10
- * calls that bypass the adapter participate in that boundary. Content-derived
11
- * versions make those external changes visible on the next adapter operation.
12
- */
13
- export class LegacyFileSystemProviderV2Adapter {
14
- constructor(provider, options) {
15
- this.provider = provider;
16
- this.options = options;
17
- this.operationTail = Promise.resolve();
18
- this.subscriptions = new Set();
19
- this.closing = false;
20
- this.disposed = false;
21
- this.disposePromise = null;
22
- this.id = provider.id;
23
- this.label = provider.label;
24
- this.capabilities = Object.freeze({
25
- writeAtomicity: options.writeAtomicity ?? 'none',
26
- moveAtomicity: options.moveAtomicity ?? 'none',
27
- // A tree snapshot spans multiple v1 calls; callers that bypass this
28
- // adapter can still interleave, even though adapter operations serialize.
29
- snapshotAtomicity: 'none',
30
- conditionalWrite: 'process',
31
- recursiveRemove: true,
32
- watch: false,
33
- caseSensitivity: options.caseSensitivity ?? 'platform',
34
- symlinkPolicy: options.symlinkPolicy ?? 'unsupported',
35
- durability: options.durability ?? 'best-effort',
36
- });
37
- }
38
- async stat(path) {
39
- const canonical = this.canonical(path);
40
- return this.enqueue('stat', async () => {
41
- const entry = (await this.captureTree('stat')).entries.get(canonical);
42
- return entry ? copyEntrySnapshot(entry) : null;
43
- });
44
- }
45
- async readFile(path) {
46
- const canonical = this.canonical(path);
47
- return this.enqueue('read', async () => {
48
- const entry = (await this.captureTree('read')).entries.get(canonical);
49
- if (!entry)
50
- return null;
51
- if (entry.kind !== 'file') {
52
- throw this.error('type-mismatch', 'read', canonical, 'Expected a file, found a directory.');
53
- }
54
- return Object.freeze({ entry: fileMetadata(entry), data: entry.data.slice(0) });
55
- });
56
- }
57
- async readDirectory(path) {
58
- const canonical = this.canonical(path);
59
- return this.enqueue('list', async () => {
60
- const tree = await this.captureTree('list');
61
- const entry = tree.entries.get(canonical);
62
- if (!entry)
63
- throw this.error('not-found', 'list', canonical, 'Directory does not exist.');
64
- if (entry.kind !== 'directory') {
65
- throw this.error('type-mismatch', 'list', canonical, 'Expected a directory, found a file.');
66
- }
67
- const children = [...tree.entries.entries()]
68
- .filter(([entryPath]) => entryPath && workspacePathDirname(entryPath) === canonical)
69
- .map(([, child]) => copyEntrySnapshot(child))
70
- .sort(compareSnapshots);
71
- return Object.freeze(children);
72
- });
73
- }
74
- async writeFile(path, data, options = {}) {
75
- const canonical = this.canonicalNonRoot(path, 'write');
76
- const ownedData = copyBytes(data);
77
- return this.enqueue('write', async () => {
78
- const tree = await this.captureTree('write');
79
- const existing = tree.entries.get(canonical);
80
- if (existing?.kind === 'directory') {
81
- throw this.error('type-mismatch', 'write', canonical, 'Cannot replace a directory with a file.');
82
- }
83
- const mode = options.mode ?? 'upsert';
84
- if (mode === 'create' && existing) {
85
- throw this.error('already-exists', 'write', canonical, 'File already exists.');
86
- }
87
- if (mode === 'replace' && !existing) {
88
- throw this.error('not-found', 'write', canonical, 'File does not exist.');
89
- }
90
- this.assertExpectedVersion(existing, options.expectedVersion, 'write', canonical);
91
- this.assertParents(tree, canonical, options.createParents ?? false, 'write');
92
- await this.invoke(() => this.provider.writeBinary(workspacePathToLegacy(canonical), ownedData), 'write', canonical);
93
- const written = (await this.captureTree('write')).entries.get(canonical);
94
- if (written?.kind !== 'file' || !equalBytes(written.data, ownedData)) {
95
- throw this.error('io', 'write', canonical, 'The legacy provider did not persist the requested bytes.');
96
- }
97
- return fileMetadata(written);
98
- });
99
- }
100
- async createDirectory(path, options = {}) {
101
- const canonical = this.canonical(path);
102
- return this.enqueue('create-directory', async () => {
103
- const tree = await this.captureTree('create-directory');
104
- const existing = tree.entries.get(canonical);
105
- if (existing) {
106
- if (existing.kind !== 'directory') {
107
- throw this.error('type-mismatch', 'create-directory', canonical, 'Cannot replace a file with a directory.');
108
- }
109
- if ((options.mode ?? 'ensure') === 'create') {
110
- throw this.error('already-exists', 'create-directory', canonical, 'Directory already exists.');
111
- }
112
- return copyDirectorySnapshot(existing);
113
- }
114
- this.assertParents(tree, canonical, options.createParents ?? false, 'create-directory');
115
- await this.invoke(() => this.provider.createDirectory(workspacePathToLegacy(canonical)), 'create-directory', canonical);
116
- const created = (await this.captureTree('create-directory')).entries.get(canonical);
117
- if (created?.kind !== 'directory') {
118
- throw this.error('io', 'create-directory', canonical, 'The legacy provider did not create the directory.');
119
- }
120
- return copyDirectorySnapshot(created);
121
- });
122
- }
123
- async remove(path, options = {}) {
124
- const canonical = this.canonicalNonRoot(path, 'remove');
125
- return this.enqueue('remove', async () => {
126
- const tree = await this.captureTree('remove');
127
- const existing = tree.entries.get(canonical);
128
- if (!existing) {
129
- if ((options.missing ?? 'error') === 'ignore') {
130
- return Object.freeze({ removed: false, version: tree.version });
131
- }
132
- throw this.error('not-found', 'remove', canonical, 'Entry does not exist.');
133
- }
134
- this.assertExpectedVersion(existing, options.expectedVersion, 'remove', canonical);
135
- if (existing.kind === 'directory' &&
136
- !options.recursive &&
137
- [...tree.entries.keys()].some((candidate) => workspacePathContains(canonical, candidate, false))) {
138
- throw this.error('not-empty', 'remove', canonical, 'Directory is not empty.');
139
- }
140
- await this.invoke(() => this.provider.delete(workspacePathToLegacy(canonical)), 'remove', canonical);
141
- const after = await this.captureTree('remove');
142
- if ([...after.entries.keys()].some((candidate) => workspacePathContains(canonical, candidate))) {
143
- throw this.error('io', 'remove', canonical, 'The legacy provider did not remove the complete entry.');
144
- }
145
- return Object.freeze({ removed: true, version: after.version });
146
- });
147
- }
148
- async move(oldPath, newPath, options = {}) {
149
- const sourcePath = this.canonicalNonRoot(oldPath, 'move');
150
- const destinationPath = this.canonicalNonRoot(newPath, 'move');
151
- return this.enqueue('move', async () => {
152
- const tree = await this.captureTree('move');
153
- const source = tree.entries.get(sourcePath);
154
- if (!source)
155
- throw this.error('not-found', 'move', sourcePath, 'Source does not exist.');
156
- this.assertExpectedVersion(source, options.expectedVersion, 'move', sourcePath);
157
- if (sourcePath === destinationPath)
158
- return copyEntrySnapshot(source);
159
- if (tree.entries.has(destinationPath)) {
160
- throw new FsError('already-exists', 'Destination already exists.', {
161
- operation: 'move',
162
- path: sourcePath,
163
- destinationPath,
164
- });
165
- }
166
- if (source.kind === 'directory' &&
167
- workspacePathContains(sourcePath, destinationPath, false)) {
168
- throw new FsError('invalid-path', 'Cannot move a directory into itself.', {
169
- operation: 'move',
170
- path: sourcePath,
171
- destinationPath,
172
- });
173
- }
174
- this.assertParents(tree, destinationPath, options.createParents ?? false, 'move');
175
- const sourceEntries = [...tree.entries.entries()].filter(([candidate]) => workspacePathContains(sourcePath, candidate));
176
- await this.invoke(() => this.provider.rename(workspacePathToLegacy(sourcePath), workspacePathToLegacy(destinationPath)), 'move', sourcePath, destinationPath);
177
- const after = await this.captureTree('move');
178
- if ([...after.entries.keys()].some((candidate) => workspacePathContains(sourcePath, candidate))) {
179
- throw this.error('io', 'move', sourcePath, 'The legacy provider left source entries behind.');
180
- }
181
- for (const [oldEntryPath, oldEntry] of sourceEntries) {
182
- const suffix = oldEntryPath.slice(sourcePath.length);
183
- const movedPath = parseWorkspacePath(`${destinationPath}${suffix}`);
184
- const moved = after.entries.get(movedPath);
185
- if (!moved || moved.kind !== oldEntry.kind || moved.version !== oldEntry.version) {
186
- throw new FsError('io', 'The legacy provider did not move the complete entry unchanged.', {
187
- operation: 'move',
188
- path: oldEntryPath,
189
- destinationPath: movedPath,
190
- });
191
- }
192
- }
193
- return copyEntrySnapshot(after.entries.get(destinationPath));
194
- });
195
- }
196
- async snapshot() {
197
- return this.enqueue('snapshot', async () => {
198
- const tree = await this.captureTree('snapshot');
199
- const entries = [...tree.entries.values()]
200
- .sort((left, right) => compareText(left.path, right.path))
201
- .map((entry) => copySnapshotEntry(entry));
202
- return Object.freeze({ version: tree.version, entries: Object.freeze(entries) });
203
- });
204
- }
205
- watch(_listener, options = {}) {
206
- this.assertAccepting('watch');
207
- const error = new FsError('not-supported', 'The legacy adapter cannot observe external changes.', {
208
- operation: 'watch',
209
- });
210
- let closed = false;
211
- let disposePromise = null;
212
- const ready = Promise.reject(error);
213
- void ready.catch((caught) => {
214
- try {
215
- options.onError?.(caught);
216
- }
217
- catch {
218
- // An observational error callback cannot change subscription state.
219
- }
220
- });
221
- const subscription = {
222
- get closed() {
223
- return closed;
224
- },
225
- ready,
226
- dispose: () => {
227
- if (disposePromise)
228
- return disposePromise;
229
- closed = true;
230
- this.subscriptions.delete(subscription);
231
- disposePromise = Promise.resolve();
232
- return disposePromise;
233
- },
234
- };
235
- this.subscriptions.add(subscription);
236
- return subscription;
237
- }
238
- dispose() {
239
- if (this.disposePromise)
240
- return this.disposePromise;
241
- this.closing = true;
242
- const run = this.operationTail.then(async () => {
243
- try {
244
- await Promise.all([...this.subscriptions].map((subscription) => subscription.dispose()));
245
- await this.options.dispose?.();
246
- }
247
- catch (error) {
248
- throw fsErrorFromUnknown(error, { operation: 'dispose' });
249
- }
250
- finally {
251
- this.disposed = true;
252
- }
253
- });
254
- this.operationTail = run.then(() => undefined, () => undefined);
255
- this.disposePromise = run;
256
- return run;
257
- }
258
- enqueue(operation, task) {
259
- this.assertAccepting(operation);
260
- const run = this.operationTail.then(task);
261
- this.operationTail = run.then(() => undefined, () => undefined);
262
- return run;
263
- }
264
- assertAccepting(operation) {
265
- if (!this.closing && !this.disposed)
266
- return;
267
- throw new FsError('disposed', 'Filesystem provider is disposed.', { operation });
268
- }
269
- canonical(path) {
270
- return parseWorkspacePath(path);
271
- }
272
- canonicalNonRoot(path, operation) {
273
- const canonical = this.canonical(path);
274
- if (!canonical) {
275
- throw this.error('invalid-path', operation, canonical, 'The workspace root is not an entry target.');
276
- }
277
- return canonical;
278
- }
279
- assertExpectedVersion(entry, expected, operation, path) {
280
- if (expected === undefined)
281
- return;
282
- if (expected === null ? !entry : entry?.version === expected)
283
- return;
284
- throw this.error('conflict', operation, path, 'Entry version does not match the expected version.');
285
- }
286
- assertParents(tree, path, createParents, operation) {
287
- let parent = workspacePathDirname(path);
288
- const parents = [];
289
- while (parent) {
290
- parents.unshift(parent);
291
- parent = workspacePathDirname(parent);
292
- }
293
- for (const candidate of parents) {
294
- const entry = tree.entries.get(candidate);
295
- if (entry?.kind === 'file') {
296
- throw this.error('type-mismatch', operation, candidate, 'A parent path is a file.');
297
- }
298
- if (!entry && !createParents) {
299
- throw this.error('not-found', operation, candidate, 'Parent directory does not exist.');
300
- }
301
- }
302
- }
303
- async captureTree(operation) {
304
- const entries = new Map();
305
- const visiting = new Set();
306
- const visitDirectory = async (path) => {
307
- if (visiting.has(path)) {
308
- throw this.error('io', operation, path, 'The legacy provider returned a directory cycle.');
309
- }
310
- visiting.add(path);
311
- const listed = await this.invoke(() => this.provider.readDirectory(workspacePathToLegacy(path)), operation, path);
312
- if (!Array.isArray(listed)) {
313
- throw this.error('io', operation, path, 'The legacy provider returned an invalid directory listing.');
314
- }
315
- const children = [];
316
- const seen = new Set();
317
- for (const candidate of listed) {
318
- if (!isLegacyEntry(candidate)) {
319
- throw this.error('io', operation, path, 'The legacy provider returned an invalid directory entry.');
320
- }
321
- const legacyEntry = candidate;
322
- const childPath = parseWorkspacePath(legacyEntry.path);
323
- if (!childPath ||
324
- workspacePathDirname(childPath) !== path ||
325
- workspacePathBasename(childPath) !== legacyEntry.name) {
326
- throw this.error('io', operation, path, 'The legacy provider returned a non-child entry.');
327
- }
328
- if (seen.has(childPath) || entries.has(childPath)) {
329
- throw this.error('io', operation, childPath, 'The legacy provider returned duplicate entry paths.');
330
- }
331
- seen.add(childPath);
332
- if (legacyEntry.kind === 'directory') {
333
- children.push(await visitDirectory(childPath));
334
- }
335
- else {
336
- const file = await this.captureFile(childPath, operation);
337
- entries.set(childPath, file);
338
- children.push(file);
339
- }
340
- }
341
- children.sort(compareSnapshots);
342
- const version = await contentVersion('directory', new TextEncoder().encode(children
343
- .map((child) => `${child.kind}\0${child.name.length}:${child.name}\0${child.version}`)
344
- .join('\n')), operation, path);
345
- const directory = Object.freeze({
346
- kind: 'directory',
347
- path,
348
- name: workspacePathBasename(path),
349
- size: null,
350
- version,
351
- lastModified: newestLastModified(children),
352
- });
353
- entries.set(path, directory);
354
- visiting.delete(path);
355
- return directory;
356
- };
357
- const root = await visitDirectory(WORKSPACE_ROOT);
358
- return { entries, version: root.version };
359
- }
360
- async captureFile(path, operation) {
361
- const legacyPath = workspacePathToLegacy(path);
362
- let data;
363
- if (this.options.payloadModel === 'binary-authoritative') {
364
- const binary = await this.invoke(() => this.provider.readBinary(legacyPath), operation, path);
365
- data = binary ? binary.slice(0) : null;
366
- }
367
- else if (this.options.payloadModel === 'binary-first-text-fallback') {
368
- const binary = await this.invoke(() => this.provider.readBinary(legacyPath), operation, path);
369
- if (binary) {
370
- data = binary.slice(0);
371
- }
372
- else {
373
- const text = await this.invoke(() => this.provider.readFile(legacyPath), operation, path);
374
- data = text === null ? null : new TextEncoder().encode(text).buffer;
375
- }
376
- }
377
- else {
378
- const binary = await this.invoke(() => this.provider.readBinary(legacyPath), operation, path);
379
- const text = await this.invoke(() => this.provider.readFile(legacyPath), operation, path);
380
- if (binary !== null && text !== null) {
381
- throw this.error('conflict', operation, path, 'The split legacy store contains both text and binary payloads.');
382
- }
383
- data = binary
384
- ? binary.slice(0)
385
- : text === null
386
- ? null
387
- : new TextEncoder().encode(text).buffer;
388
- }
389
- if (!data) {
390
- throw this.error('io', operation, path, 'The legacy provider listed a file without a payload.');
391
- }
392
- const meta = await this.invoke(() => this.provider.stat(legacyPath), operation, path);
393
- if (!meta ||
394
- parseWorkspacePath(meta.path) !== path ||
395
- meta.name !== workspacePathBasename(path) ||
396
- meta.size !== data.byteLength ||
397
- !Number.isFinite(Date.parse(meta.lastModified))) {
398
- throw this.error('io', operation, path, 'The legacy provider returned inconsistent file metadata.');
399
- }
400
- return Object.freeze({
401
- kind: 'file',
402
- path,
403
- name: workspacePathBasename(path),
404
- size: data.byteLength,
405
- version: await contentVersion('file', new Uint8Array(data), operation, path),
406
- lastModified: meta.lastModified,
407
- data,
408
- });
409
- }
410
- async invoke(task, operation, path, destinationPath) {
411
- try {
412
- return await task();
413
- }
414
- catch (error) {
415
- throw fsErrorFromUnknown(error, { operation, path, destinationPath });
416
- }
417
- }
418
- error(code, operation, path, message) {
419
- return new FsError(code, message, { operation, path });
420
- }
421
- }
422
- async function contentVersion(kind, data, operation, path) {
423
- const prefix = new TextEncoder().encode(`${kind}\0`);
424
- const input = new Uint8Array(prefix.byteLength + data.byteLength);
425
- input.set(prefix);
426
- input.set(data, prefix.byteLength);
427
- let digest;
428
- try {
429
- digest = await globalThis.crypto.subtle.digest('SHA-256', input.buffer);
430
- }
431
- catch (error) {
432
- throw fsErrorFromUnknown(error, { operation, path, defaultCode: 'not-supported' });
433
- }
434
- const hex = [...new Uint8Array(digest)]
435
- .map((value) => value.toString(16).padStart(2, '0'))
436
- .join('');
437
- return parseFileSystemVersion(`sha256:${hex}`);
438
- }
439
- function isLegacyEntry(value) {
440
- if (!value || typeof value !== 'object')
441
- return false;
442
- const candidate = value;
443
- return ((candidate.kind === 'file' || candidate.kind === 'directory') &&
444
- typeof candidate.name === 'string' &&
445
- typeof candidate.path === 'string');
446
- }
447
- function copyBytes(data) {
448
- const source = ArrayBuffer.isView(data)
449
- ? new Uint8Array(data.buffer, data.byteOffset, data.byteLength)
450
- : new Uint8Array(data);
451
- const copy = new Uint8Array(source.byteLength);
452
- copy.set(source);
453
- return copy.buffer;
454
- }
455
- function equalBytes(left, right) {
456
- const leftBytes = new Uint8Array(left);
457
- const rightBytes = new Uint8Array(right);
458
- return (leftBytes.byteLength === rightBytes.byteLength &&
459
- leftBytes.every((value, index) => value === rightBytes[index]));
460
- }
461
- function fileMetadata(file) {
462
- return Object.freeze({
463
- kind: 'file',
464
- path: file.path,
465
- name: file.name,
466
- size: file.size,
467
- version: file.version,
468
- lastModified: file.lastModified,
469
- });
470
- }
471
- function copyDirectorySnapshot(directory) {
472
- return Object.freeze({ ...directory });
473
- }
474
- function copyEntrySnapshot(entry) {
475
- return entry.kind === 'file' ? fileMetadata(entry) : copyDirectorySnapshot(entry);
476
- }
477
- function copySnapshotEntry(entry) {
478
- return entry.kind === 'file'
479
- ? Object.freeze({ ...fileMetadata(entry), data: entry.data.slice(0) })
480
- : copyDirectorySnapshot(entry);
481
- }
482
- function newestLastModified(children) {
483
- let newest = 0;
484
- for (const child of children) {
485
- const timestamp = Date.parse(child.lastModified);
486
- if (Number.isFinite(timestamp))
487
- newest = Math.max(newest, timestamp);
488
- }
489
- return newest ? new Date(newest).toISOString() : EPOCH;
490
- }
491
- function compareSnapshots(left, right) {
492
- if (left.kind !== right.kind)
493
- return left.kind === 'directory' ? -1 : 1;
494
- return compareText(left.name, right.name);
495
- }
496
- function compareText(left, right) {
497
- return left < right ? -1 : left > right ? 1 : 0;
498
- }
499
- //# sourceMappingURL=legacy-v2-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"legacy-v2-adapter.js","sourceRoot":"","sources":["../../src/filesystem/legacy-v2-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,92 +0,0 @@
1
- import type { FileCommitResult } from './types.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 MemoryFilePayloadKind = 'text' | 'binary';
5
- export interface MemoryFileSystemV2StateFile {
6
- readonly path: WorkspacePath;
7
- readonly data: ArrayBuffer;
8
- readonly payloadKind: MemoryFilePayloadKind;
9
- }
10
- export interface MemoryFileSystemV2CompatibilityFile {
11
- readonly data: ArrayBuffer;
12
- readonly payloadKind: MemoryFilePayloadKind;
13
- }
14
- export interface MemoryFileSystemV2State {
15
- readonly revision: number;
16
- readonly files: readonly MemoryFileSystemV2StateFile[];
17
- readonly directories: readonly WorkspacePath[];
18
- }
19
- export interface MemoryFileSystemV2ReplacementFile {
20
- readonly path: WorkspacePath;
21
- readonly data: ArrayBuffer | Uint8Array;
22
- readonly payloadKind: MemoryFilePayloadKind;
23
- }
24
- export interface MemoryFileSystemV2Replacement {
25
- readonly files: readonly MemoryFileSystemV2ReplacementFile[];
26
- readonly directories?: readonly WorkspacePath[];
27
- }
28
- /**
29
- * Correctness reference for FileSystemProviderV2.
30
- *
31
- * Every mutation validates first, stages a fresh map, swaps it once, and only
32
- * then emits notifications. File buffers are owned by the provider and every
33
- * read/snapshot returns a defensive copy.
34
- */
35
- export declare class MemoryFileSystemProviderV2 implements FileSystemProviderV2 {
36
- readonly id: string;
37
- readonly label: string;
38
- readonly capabilities: FileSystemProviderCapabilities;
39
- private entries;
40
- private readonly watchers;
41
- private readonly subscriptions;
42
- private readonly pendingEvents;
43
- private emittingEvents;
44
- private mutationCounter;
45
- private eventSequence;
46
- private treeVersion;
47
- private disposed;
48
- private disposePromise;
49
- constructor(id: string, label: string);
50
- /** Monotonic in-process revision used by synchronous transient-workspace staging. */
51
- get mutationRevision(): number;
52
- /** @internal Atomically couple owned bytes to their v1 compatibility kind. */
53
- readCompatibilityFile(path: WorkspacePath): MemoryFileSystemV2CompatibilityFile | null;
54
- /** @internal Capture an owned synchronous copy for DBK whole-tree staging. */
55
- captureState(): MemoryFileSystemV2State;
56
- /** @internal Atomically replace a transient workspace after complete validation. */
57
- replaceState(replacement: MemoryFileSystemV2Replacement, expectedRevision?: number): void;
58
- /** @internal Synchronous setup hook used before a transient provider is published. */
59
- seedText(path: WorkspacePath, content: string): void;
60
- /** @internal Legacy text write that preserves text/binary compatibility metadata. */
61
- writeText(path: WorkspacePath, content: string, options?: FileSystemWriteOptions): Promise<FileSystemFileSnapshot>;
62
- /** @internal Legacy binary write that explicitly changes compatibility payload kind. */
63
- writeBinary(path: WorkspacePath, data: ArrayBuffer | Uint8Array, options?: FileSystemWriteOptions): Promise<FileSystemFileSnapshot>;
64
- /** @internal Atomic legacy compare-and-write over the authoritative v2 entry. */
65
- commitText(path: WorkspacePath, content: string, expectedContent: string | null): Promise<FileCommitResult>;
66
- stat(path: WorkspacePath): Promise<FileSystemEntrySnapshot | null>;
67
- readFile(path: WorkspacePath): Promise<FileSystemFileRead | null>;
68
- readDirectory(path: WorkspacePath): Promise<readonly FileSystemEntrySnapshot[]>;
69
- writeFile(path: WorkspacePath, data: ArrayBuffer | Uint8Array, options?: FileSystemWriteOptions): Promise<FileSystemFileSnapshot>;
70
- private writeFileNow;
71
- createDirectory(path: WorkspacePath, options?: FileSystemCreateDirectoryOptions): Promise<FileSystemDirectorySnapshot>;
72
- remove(path: WorkspacePath, options?: FileSystemRemoveOptions): Promise<FileSystemRemoveResult>;
73
- move(oldPath: WorkspacePath, newPath: WorkspacePath, options?: FileSystemMoveOptions): Promise<FileSystemEntrySnapshot>;
74
- snapshot(): Promise<FileSystemSnapshot>;
75
- watch(listener: FileSystemWatchListener, options?: FileSystemWatchOptions): FileSystemWatchSubscription;
76
- dispose(): Promise<void>;
77
- private canonical;
78
- private canonicalNonRoot;
79
- private assertOpen;
80
- private assertExpectedVersion;
81
- private planParents;
82
- private addDirectories;
83
- private touchParents;
84
- private withVersion;
85
- private nextVersion;
86
- private toEntrySnapshot;
87
- private toFileSnapshot;
88
- private toDirectorySnapshot;
89
- private emit;
90
- private error;
91
- }
92
- //# sourceMappingURL=memory-provider-v2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-provider-v2.d.ts","sourceRoot":"","sources":["../../src/filesystem/memory-provider-v2.ts"],"names":[],"mappings":"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"}