@bendyline/docblocks 1.1.0 → 1.1.1
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-OGJN2J4P.js → chunk-LORJUBON.js} +102 -29
- package/dist/chunk-LORJUBON.js.map +1 -0
- package/dist/chunk-ME76RUMR.js +23 -0
- package/dist/{chunk-AOBPNSU6.js.map → chunk-ME76RUMR.js.map} +1 -1
- package/dist/filesystem/electron-provider.d.ts +1 -1
- package/dist/filesystem/electron-provider.js +4 -4
- package/dist/filesystem/filesystem-content-container.d.ts.map +1 -1
- package/dist/filesystem/filesystem-content-container.js +14 -1
- package/dist/filesystem/filesystem-content-container.js.map +1 -1
- package/dist/filesystem/indexeddb-provider.d.ts.map +1 -1
- package/dist/filesystem/indexeddb-provider.js +60 -18
- package/dist/filesystem/indexeddb-provider.js.map +1 -1
- package/dist/filesystem/native-provider.d.ts +1 -0
- package/dist/filesystem/native-provider.d.ts.map +1 -1
- package/dist/filesystem/native-provider.js +40 -8
- package/dist/filesystem/native-provider.js.map +1 -1
- package/dist/host/index.d.ts +5 -5
- package/dist/host/index.js +7 -7
- package/dist/host/types.d.ts +13 -13
- package/dist/host/types.js +2 -2
- package/dist/{index-TtDaQ3vS.d.ts → index-Bunj8Kb_.d.ts} +17 -17
- package/dist/workspace/types.d.ts +7 -0
- package/dist/workspace/types.d.ts.map +1 -1
- package/package.json +2 -7
- package/src/filesystem/electron-provider.ts +6 -6
- package/src/filesystem/filesystem-content-container.ts +12 -1
- package/src/filesystem/indexeddb-provider.ts +65 -19
- package/src/filesystem/native-provider.ts +41 -8
- package/src/host/index.ts +14 -14
- package/src/host/types.ts +13 -13
- package/src/workspace/types.ts +7 -0
- package/dist/chunk-AOBPNSU6.js +0 -23
- package/dist/chunk-OGJN2J4P.js.map +0 -1
|
@@ -121,6 +121,25 @@ export class NativeFileSystemProvider {
|
|
|
121
121
|
this.label = root.name;
|
|
122
122
|
this.root = root;
|
|
123
123
|
}
|
|
124
|
+
async copyDirectory(oldDirPath, newDirPath) {
|
|
125
|
+
const source = await resolveDir(this.root, oldDirPath);
|
|
126
|
+
if (!source)
|
|
127
|
+
return false;
|
|
128
|
+
await resolveDirCreate(this.root, newDirPath);
|
|
129
|
+
for await (const [name, handle] of source) {
|
|
130
|
+
const oldChild = oldDirPath ? `${oldDirPath}/${name}` : name;
|
|
131
|
+
const newChild = newDirPath ? `${newDirPath}/${name}` : name;
|
|
132
|
+
if (handle.kind === 'directory') {
|
|
133
|
+
await this.copyDirectory(oldChild, newChild);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
const fileHandle = await source.getFileHandle(name);
|
|
137
|
+
const file = await fileHandle.getFile();
|
|
138
|
+
await this.writeBinary(newChild, await file.arrayBuffer());
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
124
143
|
async readFile(path) {
|
|
125
144
|
const p = normalisePath(path);
|
|
126
145
|
const dir = await resolveDir(this.root, parentDir(p));
|
|
@@ -155,18 +174,31 @@ export class NativeFileSystemProvider {
|
|
|
155
174
|
async rename(oldPath, newPath) {
|
|
156
175
|
const op = normalisePath(oldPath);
|
|
157
176
|
const np = normalisePath(newPath);
|
|
177
|
+
if (op === np)
|
|
178
|
+
return;
|
|
179
|
+
if (!op || !np) {
|
|
180
|
+
throw new Error('Cannot rename the filesystem root');
|
|
181
|
+
}
|
|
182
|
+
if (np.startsWith(op + '/')) {
|
|
183
|
+
throw new Error('Cannot move a directory into itself');
|
|
184
|
+
}
|
|
158
185
|
// The File System Access API doesn't have a native rename.
|
|
159
|
-
//
|
|
160
|
-
const
|
|
161
|
-
if (
|
|
162
|
-
|
|
186
|
+
// Copy → delete.
|
|
187
|
+
const oldParent = await resolveDir(this.root, parentDir(op));
|
|
188
|
+
if (!oldParent)
|
|
189
|
+
return;
|
|
190
|
+
try {
|
|
191
|
+
const fileHandle = await oldParent.getFileHandle(baseName(op));
|
|
192
|
+
const file = await fileHandle.getFile();
|
|
193
|
+
await this.writeBinary(np, await file.arrayBuffer());
|
|
163
194
|
await this.delete(op);
|
|
164
195
|
return;
|
|
165
196
|
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
197
|
+
catch {
|
|
198
|
+
// Not a file; try directory below.
|
|
199
|
+
}
|
|
200
|
+
const copied = await this.copyDirectory(op, np);
|
|
201
|
+
if (copied) {
|
|
170
202
|
await this.delete(op);
|
|
171
203
|
}
|
|
172
204
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-provider.js","sourceRoot":"","sources":["../../src/filesystem/native-provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"native-provider.js","sourceRoot":"","sources":["../../src/filesystem/native-provider.ts"],"names":[],"mappings":"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"}
|
package/dist/host/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Host bridge — shared types + runtime access for the Electron desktop
|
|
3
|
-
* host. The renderer calls `
|
|
3
|
+
* host. The renderer calls `getDocBlocksHost()` to reach the preload
|
|
4
4
|
* contextBridge; `isElectronHost()` gates desktop-only UI branches.
|
|
5
5
|
*/
|
|
6
|
-
export type {
|
|
7
|
-
import type {
|
|
6
|
+
export type { DocBlocksHostAPI, DocBlocksHostFsAPI, DocBlocksHostWorkspacesAPI, DocBlocksHostShellAPI, DocBlocksHostFfmpegAPI, DocBlocksHostUpdaterAPI, ElectronWorkspaceInfo, HostEnvironment, MenuCommand, OpenRequest, UpdaterStatus, } from './types.js';
|
|
7
|
+
import type { DocBlocksHostAPI } from './types.js';
|
|
8
8
|
/** True when running inside the Electron desktop shell. */
|
|
9
9
|
export declare function isElectronHost(): boolean;
|
|
10
10
|
/** Return the host API, or throw if not running under Electron. */
|
|
11
|
-
export declare function
|
|
11
|
+
export declare function getDocBlocksHost(): DocBlocksHostAPI;
|
|
12
12
|
/** Return the host API, or null if not running under Electron. */
|
|
13
|
-
export declare function
|
|
13
|
+
export declare function maybeGetDocBlocksHost(): DocBlocksHostAPI | null;
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/host/index.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Host bridge — shared types + runtime access for the Electron desktop
|
|
3
|
-
* host. The renderer calls `
|
|
3
|
+
* host. The renderer calls `getDocBlocksHost()` to reach the preload
|
|
4
4
|
* contextBridge; `isElectronHost()` gates desktop-only UI branches.
|
|
5
5
|
*/
|
|
6
6
|
/** True when running inside the Electron desktop shell. */
|
|
7
7
|
export function isElectronHost() {
|
|
8
8
|
if (typeof globalThis === 'undefined')
|
|
9
9
|
return false;
|
|
10
|
-
const host = globalThis.
|
|
10
|
+
const host = globalThis.docBlocksHost;
|
|
11
11
|
return (typeof host === 'object' &&
|
|
12
12
|
host !== null &&
|
|
13
13
|
typeof host.fs === 'object' &&
|
|
14
14
|
host.fs !== null);
|
|
15
15
|
}
|
|
16
16
|
/** Return the host API, or throw if not running under Electron. */
|
|
17
|
-
export function
|
|
18
|
-
const host = globalThis.
|
|
17
|
+
export function getDocBlocksHost() {
|
|
18
|
+
const host = globalThis.docBlocksHost;
|
|
19
19
|
if (!host) {
|
|
20
|
-
throw new Error('
|
|
20
|
+
throw new Error('docBlocksHost is not available — not running under Electron?');
|
|
21
21
|
}
|
|
22
22
|
return host;
|
|
23
23
|
}
|
|
24
24
|
/** Return the host API, or null if not running under Electron. */
|
|
25
|
-
export function
|
|
26
|
-
return globalThis.
|
|
25
|
+
export function maybeGetDocBlocksHost() {
|
|
26
|
+
return globalThis.docBlocksHost ?? null;
|
|
27
27
|
}
|
|
28
28
|
//# sourceMappingURL=index.js.map
|
package/dist/host/types.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* DocBlocksHostAPI — the contract exposed by the Electron desktop shell
|
|
3
3
|
* to its renderer process via contextBridge.
|
|
4
4
|
*
|
|
5
5
|
* This file is the single source of truth for the host ↔ renderer
|
|
6
6
|
* bridge. The Electron preload script exposes an implementation matching
|
|
7
|
-
* this shape; the React renderer calls it through `window.
|
|
7
|
+
* this shape; the React renderer calls it through `window.docBlocksHost`.
|
|
8
8
|
*/
|
|
9
9
|
import type { FileSystemEntry, FileMeta } from '../filesystem/types.js';
|
|
10
10
|
/** Filesystem operations scoped to a registered absolute root path. */
|
|
11
|
-
export interface
|
|
11
|
+
export interface DocBlocksHostFsAPI {
|
|
12
12
|
readFile(rootPath: string, path: string): Promise<string | null>;
|
|
13
13
|
writeFile(rootPath: string, path: string, content: string): Promise<void>;
|
|
14
14
|
delete(rootPath: string, path: string): Promise<void>;
|
|
@@ -32,7 +32,7 @@ export interface ElectronWorkspaceInfo {
|
|
|
32
32
|
rootPath: string;
|
|
33
33
|
}
|
|
34
34
|
/** Workspace-management operations exposed to the renderer. */
|
|
35
|
-
export interface
|
|
35
|
+
export interface DocBlocksHostWorkspacesAPI {
|
|
36
36
|
/**
|
|
37
37
|
* Return the default workspace (creating ~/Documents/DocBlocks on first
|
|
38
38
|
* call, or the user's configured default).
|
|
@@ -53,14 +53,14 @@ export interface DocblocksHostWorkspacesAPI {
|
|
|
53
53
|
unregister(id: string): Promise<void>;
|
|
54
54
|
}
|
|
55
55
|
/** Shell operations — reveal in Finder/Explorer, open external URLs. */
|
|
56
|
-
export interface
|
|
56
|
+
export interface DocBlocksHostShellAPI {
|
|
57
57
|
/** Reveal a file (by absolute path) in the OS file manager. */
|
|
58
58
|
revealInFolder(absolutePath: string): Promise<void>;
|
|
59
59
|
/** Open a URL in the default browser. */
|
|
60
60
|
openExternal(url: string): Promise<void>;
|
|
61
61
|
}
|
|
62
62
|
/** System ffmpeg detection and invocation. */
|
|
63
|
-
export interface
|
|
63
|
+
export interface DocBlocksHostFfmpegAPI {
|
|
64
64
|
/** True if `ffmpeg` is available on PATH (or bundled). */
|
|
65
65
|
available(): Promise<boolean>;
|
|
66
66
|
/** Version string from `ffmpeg -version`, or null if unavailable. */
|
|
@@ -76,7 +76,7 @@ export interface DocblocksHostFfmpegAPI {
|
|
|
76
76
|
}): Promise<string>;
|
|
77
77
|
}
|
|
78
78
|
/** Auto-updater control. */
|
|
79
|
-
export interface
|
|
79
|
+
export interface DocBlocksHostUpdaterAPI {
|
|
80
80
|
/** Kick off a check; resolves to true if an update is available. */
|
|
81
81
|
checkForUpdates(): Promise<boolean>;
|
|
82
82
|
/** Current app version string. */
|
|
@@ -128,13 +128,13 @@ export interface HostEnvironment {
|
|
|
128
128
|
isDev: boolean;
|
|
129
129
|
}
|
|
130
130
|
/** The full DocBlocks desktop host API. */
|
|
131
|
-
export interface
|
|
131
|
+
export interface DocBlocksHostAPI {
|
|
132
132
|
env: HostEnvironment;
|
|
133
|
-
fs:
|
|
134
|
-
workspaces:
|
|
135
|
-
shell:
|
|
136
|
-
ffmpeg:
|
|
137
|
-
updater:
|
|
133
|
+
fs: DocBlocksHostFsAPI;
|
|
134
|
+
workspaces: DocBlocksHostWorkspacesAPI;
|
|
135
|
+
shell: DocBlocksHostShellAPI;
|
|
136
|
+
ffmpeg: DocBlocksHostFfmpegAPI;
|
|
137
|
+
updater: DocBlocksHostUpdaterAPI;
|
|
138
138
|
/**
|
|
139
139
|
* Subscribe to menu commands dispatched by the native menu.
|
|
140
140
|
* Returns an unsubscribe function.
|
package/dist/host/types.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* DocBlocksHostAPI — the contract exposed by the Electron desktop shell
|
|
3
3
|
* to its renderer process via contextBridge.
|
|
4
4
|
*
|
|
5
5
|
* This file is the single source of truth for the host ↔ renderer
|
|
6
6
|
* bridge. The Electron preload script exposes an implementation matching
|
|
7
|
-
* this shape; the React renderer calls it through `window.
|
|
7
|
+
* this shape; the React renderer calls it through `window.docBlocksHost`.
|
|
8
8
|
*/
|
|
9
9
|
export {};
|
|
10
10
|
//# sourceMappingURL=types.js.map
|
|
@@ -49,16 +49,16 @@ interface FileSystemProvider {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
/**
|
|
52
|
-
*
|
|
52
|
+
* DocBlocksHostAPI — the contract exposed by the Electron desktop shell
|
|
53
53
|
* to its renderer process via contextBridge.
|
|
54
54
|
*
|
|
55
55
|
* This file is the single source of truth for the host ↔ renderer
|
|
56
56
|
* bridge. The Electron preload script exposes an implementation matching
|
|
57
|
-
* this shape; the React renderer calls it through `window.
|
|
57
|
+
* this shape; the React renderer calls it through `window.docBlocksHost`.
|
|
58
58
|
*/
|
|
59
59
|
|
|
60
60
|
/** Filesystem operations scoped to a registered absolute root path. */
|
|
61
|
-
interface
|
|
61
|
+
interface DocBlocksHostFsAPI {
|
|
62
62
|
readFile(rootPath: string, path: string): Promise<string | null>;
|
|
63
63
|
writeFile(rootPath: string, path: string, content: string): Promise<void>;
|
|
64
64
|
delete(rootPath: string, path: string): Promise<void>;
|
|
@@ -82,7 +82,7 @@ interface ElectronWorkspaceInfo {
|
|
|
82
82
|
rootPath: string;
|
|
83
83
|
}
|
|
84
84
|
/** Workspace-management operations exposed to the renderer. */
|
|
85
|
-
interface
|
|
85
|
+
interface DocBlocksHostWorkspacesAPI {
|
|
86
86
|
/**
|
|
87
87
|
* Return the default workspace (creating ~/Documents/DocBlocks on first
|
|
88
88
|
* call, or the user's configured default).
|
|
@@ -103,14 +103,14 @@ interface DocblocksHostWorkspacesAPI {
|
|
|
103
103
|
unregister(id: string): Promise<void>;
|
|
104
104
|
}
|
|
105
105
|
/** Shell operations — reveal in Finder/Explorer, open external URLs. */
|
|
106
|
-
interface
|
|
106
|
+
interface DocBlocksHostShellAPI {
|
|
107
107
|
/** Reveal a file (by absolute path) in the OS file manager. */
|
|
108
108
|
revealInFolder(absolutePath: string): Promise<void>;
|
|
109
109
|
/** Open a URL in the default browser. */
|
|
110
110
|
openExternal(url: string): Promise<void>;
|
|
111
111
|
}
|
|
112
112
|
/** System ffmpeg detection and invocation. */
|
|
113
|
-
interface
|
|
113
|
+
interface DocBlocksHostFfmpegAPI {
|
|
114
114
|
/** True if `ffmpeg` is available on PATH (or bundled). */
|
|
115
115
|
available(): Promise<boolean>;
|
|
116
116
|
/** Version string from `ffmpeg -version`, or null if unavailable. */
|
|
@@ -126,7 +126,7 @@ interface DocblocksHostFfmpegAPI {
|
|
|
126
126
|
}): Promise<string>;
|
|
127
127
|
}
|
|
128
128
|
/** Auto-updater control. */
|
|
129
|
-
interface
|
|
129
|
+
interface DocBlocksHostUpdaterAPI {
|
|
130
130
|
/** Kick off a check; resolves to true if an update is available. */
|
|
131
131
|
checkForUpdates(): Promise<boolean>;
|
|
132
132
|
/** Current app version string. */
|
|
@@ -178,13 +178,13 @@ interface HostEnvironment {
|
|
|
178
178
|
isDev: boolean;
|
|
179
179
|
}
|
|
180
180
|
/** The full DocBlocks desktop host API. */
|
|
181
|
-
interface
|
|
181
|
+
interface DocBlocksHostAPI {
|
|
182
182
|
env: HostEnvironment;
|
|
183
|
-
fs:
|
|
184
|
-
workspaces:
|
|
185
|
-
shell:
|
|
186
|
-
ffmpeg:
|
|
187
|
-
updater:
|
|
183
|
+
fs: DocBlocksHostFsAPI;
|
|
184
|
+
workspaces: DocBlocksHostWorkspacesAPI;
|
|
185
|
+
shell: DocBlocksHostShellAPI;
|
|
186
|
+
ffmpeg: DocBlocksHostFfmpegAPI;
|
|
187
|
+
updater: DocBlocksHostUpdaterAPI;
|
|
188
188
|
/**
|
|
189
189
|
* Subscribe to menu commands dispatched by the native menu.
|
|
190
190
|
* Returns an unsubscribe function.
|
|
@@ -199,15 +199,15 @@ interface DocblocksHostAPI {
|
|
|
199
199
|
|
|
200
200
|
/**
|
|
201
201
|
* Host bridge — shared types + runtime access for the Electron desktop
|
|
202
|
-
* host. The renderer calls `
|
|
202
|
+
* host. The renderer calls `getDocBlocksHost()` to reach the preload
|
|
203
203
|
* contextBridge; `isElectronHost()` gates desktop-only UI branches.
|
|
204
204
|
*/
|
|
205
205
|
|
|
206
206
|
/** True when running inside the Electron desktop shell. */
|
|
207
207
|
declare function isElectronHost(): boolean;
|
|
208
208
|
/** Return the host API, or throw if not running under Electron. */
|
|
209
|
-
declare function
|
|
209
|
+
declare function getDocBlocksHost(): DocBlocksHostAPI;
|
|
210
210
|
/** Return the host API, or null if not running under Electron. */
|
|
211
|
-
declare function
|
|
211
|
+
declare function maybeGetDocBlocksHost(): DocBlocksHostAPI | null;
|
|
212
212
|
|
|
213
|
-
export { type
|
|
213
|
+
export { type DocBlocksHostAPI as D, type ElectronWorkspaceInfo as E, type FileEntry as F, type HostEnvironment as H, type MenuCommand as M, type OpenRequest as O, type UpdaterStatus as U, type DocBlocksHostFfmpegAPI as a, type DocBlocksHostFsAPI as b, type DocBlocksHostShellAPI as c, type DocBlocksHostUpdaterAPI as d, type DocBlocksHostWorkspacesAPI as e, type FileMeta as f, type FileSystemEntry as g, type FileSystemProvider as h, type FolderEntry as i, getDocBlocksHost as j, isElectronHost as k, maybeGetDocBlocksHost as m };
|
|
@@ -18,5 +18,12 @@ export interface WorkspaceDescriptor {
|
|
|
18
18
|
lastOpened: string;
|
|
19
19
|
/** Absolute filesystem path for 'electron-native' workspaces. */
|
|
20
20
|
rootPath?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Per-workspace override for the global versioning preference. When
|
|
23
|
+
* `'inherit'` (or absent), the global preference applies. `'on'` /
|
|
24
|
+
* `'off'` force the corresponding behavior regardless of the global
|
|
25
|
+
* setting. See `resolveVersioningEnabled` in the preferences module.
|
|
26
|
+
*/
|
|
27
|
+
versioningOverride?: 'inherit' | 'on' | 'off';
|
|
21
28
|
}
|
|
22
29
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/workspace/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,iBAAiB,CAAC;IACjD,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/workspace/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,iBAAiB,CAAC;IACjD,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC;CAC/C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bendyline/docblocks",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Core data structures and filesystem abstractions for DocBlocks",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Bendyline",
|
|
@@ -54,11 +54,6 @@
|
|
|
54
54
|
"typecheck": "tsc --noEmit"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@bendyline/squisq": "1.
|
|
58
|
-
"@bendyline/squisq-editor-react": "1.4.0",
|
|
59
|
-
"@bendyline/squisq-formats": "1.2.3",
|
|
60
|
-
"@bendyline/squisq-react": "1.2.0",
|
|
61
|
-
"@bendyline/squisq-video": "1.0.5",
|
|
62
|
-
"@bendyline/squisq-video-react": "1.0.5"
|
|
57
|
+
"@bendyline/squisq": "1.4.1"
|
|
63
58
|
}
|
|
64
59
|
}
|
|
@@ -5,20 +5,20 @@
|
|
|
5
5
|
* whitelist of registered workspace roots.
|
|
6
6
|
*
|
|
7
7
|
* This file has no Electron dependency — it is a pure IPC client that
|
|
8
|
-
* relies on the `
|
|
8
|
+
* relies on the `docBlocksHost` global installed by the preload script.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import type { FileSystemProvider, FileSystemEntry, FileMeta } from './types.js';
|
|
12
|
-
import {
|
|
13
|
-
import type {
|
|
12
|
+
import { maybeGetDocBlocksHost } from '../host/index.js';
|
|
13
|
+
import type { DocBlocksHostFsAPI } from '../host/types.js';
|
|
14
14
|
|
|
15
15
|
export { isElectronHost } from '../host/index.js';
|
|
16
16
|
|
|
17
|
-
function getHostFs():
|
|
18
|
-
const host =
|
|
17
|
+
function getHostFs(): DocBlocksHostFsAPI {
|
|
18
|
+
const host = maybeGetDocBlocksHost();
|
|
19
19
|
if (!host) {
|
|
20
20
|
throw new Error(
|
|
21
|
-
'ElectronFileSystemProvider:
|
|
21
|
+
'ElectronFileSystemProvider: docBlocksHost is not available — not running under Electron?',
|
|
22
22
|
);
|
|
23
23
|
}
|
|
24
24
|
return host.fs;
|
|
@@ -52,7 +52,18 @@ export class FileSystemContentContainer implements ContentContainer {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
async readFile(path: string): Promise<ArrayBuffer | null> {
|
|
55
|
-
|
|
55
|
+
const full = joinPrefix(this.prefix, path);
|
|
56
|
+
const binary = await this.provider.readBinary(full);
|
|
57
|
+
if (binary) return binary;
|
|
58
|
+
// IndexedDB-backed workspaces store text via `writeFile(string)` and
|
|
59
|
+
// binary via `writeBinary(ArrayBuffer)` under separate keys, so a
|
|
60
|
+
// markdown file written through the text API is invisible to
|
|
61
|
+
// `readBinary`. Fall back to text-then-UTF-8 so consumers like the
|
|
62
|
+
// recursive HTML export can resolve sibling `.md` links uniformly
|
|
63
|
+
// across browser and native workspaces.
|
|
64
|
+
const text = await this.provider.readFile(full);
|
|
65
|
+
if (text === null) return null;
|
|
66
|
+
return new TextEncoder().encode(text).buffer as ArrayBuffer;
|
|
56
67
|
}
|
|
57
68
|
|
|
58
69
|
async writeFile(path: string, data: ArrayBuffer | Uint8Array, _mimeType?: string): Promise<void> {
|
|
@@ -153,6 +153,66 @@ export class IndexedDBFileSystemProvider implements FileSystemProvider {
|
|
|
153
153
|
async rename(oldPath: string, newPath: string): Promise<void> {
|
|
154
154
|
const op = normalisePath(oldPath);
|
|
155
155
|
const np = normalisePath(newPath);
|
|
156
|
+
if (op === np) return;
|
|
157
|
+
if (!op || !np) {
|
|
158
|
+
throw new Error('Cannot rename the filesystem root');
|
|
159
|
+
}
|
|
160
|
+
if (np.startsWith(op + '/')) {
|
|
161
|
+
throw new Error('Cannot move a directory into itself');
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
const dirs = await this.getDirs();
|
|
165
|
+
|
|
166
|
+
// Handle directory rename by moving every tracked child directory and
|
|
167
|
+
// every file record keyed under the old directory prefix.
|
|
168
|
+
if (dirs.has(op)) {
|
|
169
|
+
const newParent = parentDir(np);
|
|
170
|
+
if (newParent) {
|
|
171
|
+
await this.ensureDir(newParent);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
const allKeys = await this.store.keys();
|
|
175
|
+
const oldKeyPrefix = `fs:${op}/`;
|
|
176
|
+
const newKeyPrefix = `fs:${np}/`;
|
|
177
|
+
const metaSuffix = ':meta';
|
|
178
|
+
const keysToMove = allKeys.filter((k) => k.startsWith(oldKeyPrefix));
|
|
179
|
+
|
|
180
|
+
await Promise.all(
|
|
181
|
+
keysToMove.map(async (oldKey) => {
|
|
182
|
+
const newKey = newKeyPrefix + oldKey.slice(oldKeyPrefix.length);
|
|
183
|
+
if (oldKey.endsWith(metaSuffix)) {
|
|
184
|
+
const meta = await this.store.get<FileMeta>(oldKey);
|
|
185
|
+
if (meta) {
|
|
186
|
+
const newFilePath = newKey.slice(3, -metaSuffix.length);
|
|
187
|
+
await this.store.set(metaKey(newFilePath), {
|
|
188
|
+
...meta,
|
|
189
|
+
name: baseName(newFilePath),
|
|
190
|
+
path: newFilePath,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
} else {
|
|
194
|
+
const value = await this.store.get<unknown>(oldKey);
|
|
195
|
+
if (value !== null) {
|
|
196
|
+
await this.store.set(newKey, value);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
await this.store.remove(oldKey);
|
|
200
|
+
}),
|
|
201
|
+
);
|
|
202
|
+
|
|
203
|
+
dirs.delete(op);
|
|
204
|
+
dirs.add(np);
|
|
205
|
+
const oldPrefix = op + '/';
|
|
206
|
+
const newPrefix = np + '/';
|
|
207
|
+
for (const d of [...dirs]) {
|
|
208
|
+
if (d.startsWith(oldPrefix)) {
|
|
209
|
+
dirs.delete(d);
|
|
210
|
+
dirs.add(newPrefix + d.slice(oldPrefix.length));
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
await this.saveDirs(dirs);
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
156
216
|
|
|
157
217
|
// Read existing data
|
|
158
218
|
const content = await this.store.get<string>(contentKey(op));
|
|
@@ -167,9 +227,11 @@ export class IndexedDBFileSystemProvider implements FileSystemProvider {
|
|
|
167
227
|
await this.store.set(binaryKey(np), binary);
|
|
168
228
|
}
|
|
169
229
|
if (meta) {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
230
|
+
await this.store.set(metaKey(np), {
|
|
231
|
+
...meta,
|
|
232
|
+
name: baseName(np),
|
|
233
|
+
path: np,
|
|
234
|
+
});
|
|
173
235
|
}
|
|
174
236
|
|
|
175
237
|
// Ensure parent dir of new path exists
|
|
@@ -182,22 +244,6 @@ export class IndexedDBFileSystemProvider implements FileSystemProvider {
|
|
|
182
244
|
await this.store.remove(contentKey(op));
|
|
183
245
|
await this.store.remove(binaryKey(op));
|
|
184
246
|
await this.store.remove(metaKey(op));
|
|
185
|
-
|
|
186
|
-
// Handle directory rename
|
|
187
|
-
const dirs = await this.getDirs();
|
|
188
|
-
if (dirs.has(op)) {
|
|
189
|
-
dirs.delete(op);
|
|
190
|
-
dirs.add(np);
|
|
191
|
-
const oldPrefix = op + '/';
|
|
192
|
-
const newPrefix = np + '/';
|
|
193
|
-
for (const d of [...dirs]) {
|
|
194
|
-
if (d.startsWith(oldPrefix)) {
|
|
195
|
-
dirs.delete(d);
|
|
196
|
-
dirs.add(newPrefix + d.slice(oldPrefix.length));
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
await this.saveDirs(dirs);
|
|
200
|
-
}
|
|
201
247
|
}
|
|
202
248
|
|
|
203
249
|
async readDirectory(path: string): Promise<FileSystemEntry[]> {
|
|
@@ -153,6 +153,28 @@ export class NativeFileSystemProvider implements FileSystemProvider {
|
|
|
153
153
|
this.root = root;
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
+
private async copyDirectory(oldDirPath: string, newDirPath: string): Promise<boolean> {
|
|
157
|
+
const source = await resolveDir(this.root, oldDirPath);
|
|
158
|
+
if (!source) return false;
|
|
159
|
+
await resolveDirCreate(this.root, newDirPath);
|
|
160
|
+
|
|
161
|
+
for await (const [name, handle] of source as unknown as AsyncIterable<
|
|
162
|
+
[string, FileSystemHandle]
|
|
163
|
+
>) {
|
|
164
|
+
const oldChild = oldDirPath ? `${oldDirPath}/${name}` : name;
|
|
165
|
+
const newChild = newDirPath ? `${newDirPath}/${name}` : name;
|
|
166
|
+
if (handle.kind === 'directory') {
|
|
167
|
+
await this.copyDirectory(oldChild, newChild);
|
|
168
|
+
} else {
|
|
169
|
+
const fileHandle = await source.getFileHandle(name);
|
|
170
|
+
const file = await fileHandle.getFile();
|
|
171
|
+
await this.writeBinary(newChild, await file.arrayBuffer());
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
return true;
|
|
176
|
+
}
|
|
177
|
+
|
|
156
178
|
async readFile(path: string): Promise<string | null> {
|
|
157
179
|
const p = normalisePath(path);
|
|
158
180
|
const dir = await resolveDir(this.root, parentDir(p));
|
|
@@ -187,20 +209,31 @@ export class NativeFileSystemProvider implements FileSystemProvider {
|
|
|
187
209
|
async rename(oldPath: string, newPath: string): Promise<void> {
|
|
188
210
|
const op = normalisePath(oldPath);
|
|
189
211
|
const np = normalisePath(newPath);
|
|
212
|
+
if (op === np) return;
|
|
213
|
+
if (!op || !np) {
|
|
214
|
+
throw new Error('Cannot rename the filesystem root');
|
|
215
|
+
}
|
|
216
|
+
if (np.startsWith(op + '/')) {
|
|
217
|
+
throw new Error('Cannot move a directory into itself');
|
|
218
|
+
}
|
|
190
219
|
|
|
191
220
|
// The File System Access API doesn't have a native rename.
|
|
192
|
-
//
|
|
193
|
-
const
|
|
194
|
-
if (
|
|
195
|
-
|
|
221
|
+
// Copy → delete.
|
|
222
|
+
const oldParent = await resolveDir(this.root, parentDir(op));
|
|
223
|
+
if (!oldParent) return;
|
|
224
|
+
|
|
225
|
+
try {
|
|
226
|
+
const fileHandle = await oldParent.getFileHandle(baseName(op));
|
|
227
|
+
const file = await fileHandle.getFile();
|
|
228
|
+
await this.writeBinary(np, await file.arrayBuffer());
|
|
196
229
|
await this.delete(op);
|
|
197
230
|
return;
|
|
231
|
+
} catch {
|
|
232
|
+
// Not a file; try directory below.
|
|
198
233
|
}
|
|
199
234
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
if (binary !== null) {
|
|
203
|
-
await this.writeBinary(np, binary);
|
|
235
|
+
const copied = await this.copyDirectory(op, np);
|
|
236
|
+
if (copied) {
|
|
204
237
|
await this.delete(op);
|
|
205
238
|
}
|
|
206
239
|
}
|