@theia/filesystem 1.55.1 → 1.57.0-next.112
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/README.md +2 -1
- package/lib/browser/breadcrumbs/filepath-breadcrumbs-container.d.ts +1 -2
- package/lib/browser/breadcrumbs/filepath-breadcrumbs-container.d.ts.map +1 -1
- package/lib/browser/breadcrumbs/filepath-breadcrumbs-container.js +0 -4
- package/lib/browser/breadcrumbs/filepath-breadcrumbs-container.js.map +1 -1
- package/lib/browser/filesystem-frontend-module.d.ts.map +1 -1
- package/lib/browser/filesystem-frontend-module.js +4 -0
- package/lib/browser/filesystem-frontend-module.js.map +1 -1
- package/lib/browser/filesystem-preferences.d.ts +1 -0
- package/lib/browser/filesystem-preferences.d.ts.map +1 -1
- package/lib/browser/filesystem-preferences.js +6 -0
- package/lib/browser/filesystem-preferences.js.map +1 -1
- package/lib/browser/vscode-file-service-contribution.d.ts +25 -0
- package/lib/browser/vscode-file-service-contribution.d.ts.map +1 -0
- package/lib/browser/vscode-file-service-contribution.js +99 -0
- package/lib/browser/vscode-file-service-contribution.js.map +1 -0
- package/lib/browser-only/browser-only-filesystem-frontend-module.js +7 -7
- package/lib/browser-only/browser-only-filesystem-frontend-module.js.map +1 -1
- package/lib/browser-only/opfs-filesystem-initialization.d.ts +11 -0
- package/lib/browser-only/opfs-filesystem-initialization.d.ts.map +1 -0
- package/lib/browser-only/opfs-filesystem-initialization.js +33 -0
- package/lib/browser-only/opfs-filesystem-initialization.js.map +1 -0
- package/lib/browser-only/opfs-filesystem-provider.d.ts +31 -0
- package/lib/browser-only/opfs-filesystem-provider.d.ts.map +1 -0
- package/lib/browser-only/opfs-filesystem-provider.js +323 -0
- package/lib/browser-only/opfs-filesystem-provider.js.map +1 -0
- package/lib/common/remote-file-system-provider.d.ts +3 -3
- package/lib/common/remote-file-system-provider.d.ts.map +1 -1
- package/lib/common/remote-file-system-provider.js +28 -29
- package/lib/common/remote-file-system-provider.js.map +1 -1
- package/lib/node/download/file-download-endpoint.d.ts +0 -1
- package/lib/node/download/file-download-endpoint.d.ts.map +1 -1
- package/lib/node/download/file-download-handler.d.ts +0 -1
- package/lib/node/download/file-download-handler.d.ts.map +1 -1
- package/lib/node/node-file-upload-service.d.ts +0 -1
- package/lib/node/node-file-upload-service.d.ts.map +1 -1
- package/package.json +4 -5
- package/src/browser/breadcrumbs/filepath-breadcrumbs-container.ts +1 -4
- package/src/browser/filesystem-frontend-module.ts +4 -0
- package/src/browser/filesystem-preferences.ts +7 -0
- package/src/browser/vscode-file-service-contribution.ts +93 -0
- package/src/browser-only/browser-only-filesystem-frontend-module.ts +7 -7
- package/src/browser-only/opfs-filesystem-initialization.ts +36 -0
- package/src/browser-only/opfs-filesystem-provider.ts +346 -0
- package/src/common/download/README.md +8 -4
- package/src/common/remote-file-system-provider.ts +32 -34
- package/lib/browser-only/browserfs-filesystem-initialization.d.ts +0 -13
- package/lib/browser-only/browserfs-filesystem-initialization.d.ts.map +0 -1
- package/lib/browser-only/browserfs-filesystem-initialization.js +0 -55
- package/lib/browser-only/browserfs-filesystem-initialization.js.map +0 -1
- package/lib/browser-only/browserfs-filesystem-provider.d.ts +0 -46
- package/lib/browser-only/browserfs-filesystem-provider.d.ts.map +0 -1
- package/lib/browser-only/browserfs-filesystem-provider.js +0 -440
- package/lib/browser-only/browserfs-filesystem-provider.js.map +0 -1
- package/src/browser-only/browserfs-filesystem-initialization.ts +0 -61
- package/src/browser-only/browserfs-filesystem-provider.ts +0 -462
|
@@ -46,7 +46,7 @@ export interface RemoteFileSystemServer extends RpcServer<RemoteFileSystemClient
|
|
|
46
46
|
open(resource: string, opts: FileOpenOptions): Promise<number>;
|
|
47
47
|
close(fd: number): Promise<void>;
|
|
48
48
|
read(fd: number, pos: number, length: number): Promise<{ bytes: Uint8Array; bytesRead: number; }>;
|
|
49
|
-
readFileStream(resource: string, opts: FileReadStreamOptions, token: CancellationToken): Promise<
|
|
49
|
+
readFileStream(resource: string, handle: number, opts: FileReadStreamOptions, token: CancellationToken): Promise<void>;
|
|
50
50
|
readFile(resource: string): Promise<Uint8Array>;
|
|
51
51
|
write(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
|
|
52
52
|
writeFile(resource: string, content: Uint8Array, opts: FileWriteOptions): Promise<void>;
|
|
@@ -162,6 +162,8 @@ export class RemoteFileSystemProvider implements Required<FileSystemProvider>, D
|
|
|
162
162
|
protected readonly readyDeferred = new Deferred<void>();
|
|
163
163
|
readonly ready = this.readyDeferred.promise;
|
|
164
164
|
|
|
165
|
+
protected streamHandleSeq = 0;
|
|
166
|
+
|
|
165
167
|
/**
|
|
166
168
|
* Wrapped remote filesystem.
|
|
167
169
|
*/
|
|
@@ -251,36 +253,35 @@ export class RemoteFileSystemProvider implements Required<FileSystemProvider>, D
|
|
|
251
253
|
|
|
252
254
|
readFileStream(resource: URI, opts: FileReadStreamOptions, token: CancellationToken): ReadableStreamEvents<Uint8Array> {
|
|
253
255
|
const capturedError = new Error();
|
|
254
|
-
|
|
255
|
-
const
|
|
256
|
-
|
|
256
|
+
const stream = newWriteableStream<Uint8Array>(data => BinaryBuffer.concat(data.map(item => BinaryBuffer.wrap(item))).buffer);
|
|
257
|
+
const streamHandle = this.streamHandleSeq++;
|
|
258
|
+
const toDispose = new DisposableCollection(
|
|
259
|
+
token.onCancellationRequested(() => stream.end(cancelled())),
|
|
260
|
+
this.onFileStreamData(([handle, data]) => {
|
|
261
|
+
if (streamHandle === handle) {
|
|
262
|
+
stream.write(data);
|
|
263
|
+
}
|
|
264
|
+
}),
|
|
265
|
+
this.onFileStreamEnd(([handle, error]) => {
|
|
266
|
+
if (streamHandle === handle) {
|
|
267
|
+
if (error) {
|
|
268
|
+
const code = ('code' in error && error.code) || FileSystemProviderErrorCode.Unknown;
|
|
269
|
+
const fileOperationError = new FileSystemProviderError(error.message, code);
|
|
270
|
+
fileOperationError.name = error.name;
|
|
271
|
+
const capturedStack = capturedError.stack || '';
|
|
272
|
+
fileOperationError.stack = `${capturedStack}\nCaused by: ${error.stack}`;
|
|
273
|
+
stream.end(fileOperationError);
|
|
274
|
+
} else {
|
|
275
|
+
stream.end();
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
})
|
|
279
|
+
);
|
|
280
|
+
stream.on('end', () => toDispose.dispose());
|
|
281
|
+
this.server.readFileStream(resource.toString(), streamHandle, opts, token).then(() => {
|
|
257
282
|
if (token.isCancellationRequested) {
|
|
258
283
|
stream.end(cancelled());
|
|
259
|
-
return;
|
|
260
284
|
}
|
|
261
|
-
const toDispose = new DisposableCollection(
|
|
262
|
-
token.onCancellationRequested(() => stream.end(cancelled())),
|
|
263
|
-
this.onFileStreamData(([handle, data]) => {
|
|
264
|
-
if (streamHandle === handle) {
|
|
265
|
-
stream.write(data);
|
|
266
|
-
}
|
|
267
|
-
}),
|
|
268
|
-
this.onFileStreamEnd(([handle, error]) => {
|
|
269
|
-
if (streamHandle === handle) {
|
|
270
|
-
if (error) {
|
|
271
|
-
const code = ('code' in error && error.code) || FileSystemProviderErrorCode.Unknown;
|
|
272
|
-
const fileOperationError = new FileSystemProviderError(error.message, code);
|
|
273
|
-
fileOperationError.name = error.name;
|
|
274
|
-
const capturedStack = capturedError.stack || '';
|
|
275
|
-
fileOperationError.stack = `${capturedStack}\nCaused by: ${error.stack}`;
|
|
276
|
-
stream.end(fileOperationError);
|
|
277
|
-
} else {
|
|
278
|
-
stream.end();
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
})
|
|
282
|
-
);
|
|
283
|
-
stream.on('end', () => toDispose.dispose());
|
|
284
285
|
}, error => stream.end(error));
|
|
285
286
|
return stream;
|
|
286
287
|
}
|
|
@@ -528,11 +529,8 @@ export class FileSystemProviderServer implements RemoteFileSystemServer {
|
|
|
528
529
|
}
|
|
529
530
|
}
|
|
530
531
|
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
async readFileStream(resource: string, opts: FileReadStreamOptions, token: CancellationToken): Promise<number> {
|
|
532
|
+
async readFileStream(resource: string, handle: number, opts: FileReadStreamOptions, token: CancellationToken): Promise<void> {
|
|
534
533
|
if (hasFileReadStreamCapability(this.provider)) {
|
|
535
|
-
const handle = this.readFileStreamSeq++;
|
|
536
534
|
const stream = this.provider.readFileStream(new URI(resource), opts, token);
|
|
537
535
|
stream.on('data', data => this.client?.onFileStreamData(handle, data));
|
|
538
536
|
stream.on('error', error => {
|
|
@@ -541,9 +539,9 @@ export class FileSystemProviderServer implements RemoteFileSystemServer {
|
|
|
541
539
|
this.client?.onFileStreamEnd(handle, { code, name, message, stack });
|
|
542
540
|
});
|
|
543
541
|
stream.on('end', () => this.client?.onFileStreamEnd(handle, undefined));
|
|
544
|
-
|
|
542
|
+
} else {
|
|
543
|
+
throw new Error('not supported');
|
|
545
544
|
}
|
|
546
|
-
throw new Error('not supported');
|
|
547
545
|
}
|
|
548
546
|
|
|
549
547
|
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { FSModule } from 'browserfs/dist/node/core/FS';
|
|
2
|
-
import type { BrowserFSFileSystemProvider } from './browserfs-filesystem-provider';
|
|
3
|
-
import MountableFileSystem from 'browserfs/dist/node/backend/MountableFileSystem';
|
|
4
|
-
export declare const BrowserFSInitialization: unique symbol;
|
|
5
|
-
export interface BrowserFSInitialization {
|
|
6
|
-
createMountableFileSystem(): Promise<MountableFileSystem>;
|
|
7
|
-
initializeFS: (fs: FSModule, provider: BrowserFSFileSystemProvider) => Promise<void>;
|
|
8
|
-
}
|
|
9
|
-
export declare class DefaultBrowserFSInitialization implements BrowserFSInitialization {
|
|
10
|
-
createMountableFileSystem(): Promise<MountableFileSystem>;
|
|
11
|
-
initializeFS(fs: FSModule, provider: BrowserFSFileSystemProvider): Promise<void>;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=browserfs-filesystem-initialization.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browserfs-filesystem-initialization.d.ts","sourceRoot":"","sources":["../../src/browser-only/browserfs-filesystem-initialization.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAGnF,OAAO,mBAAmB,MAAM,iDAAiD,CAAC;AAElF,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AACzE,MAAM,WAAW,uBAAuB;IACpC,yBAAyB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACzD,YAAY,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,2BAA2B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxF;AAED,qBACa,8BAA+B,YAAW,uBAAuB;IAE1E,yBAAyB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IA0BnD,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzF"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// *****************************************************************************
|
|
3
|
-
// Copyright (C) 2023 EclipseSource and others.
|
|
4
|
-
//
|
|
5
|
-
// This program and the accompanying materials are made available under the
|
|
6
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
-
//
|
|
9
|
-
// This Source Code may also be made available under the following Secondary
|
|
10
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
-
// with the GNU Classpath Exception which is available at
|
|
13
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
-
//
|
|
15
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
-
// *****************************************************************************
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.DefaultBrowserFSInitialization = exports.BrowserFSInitialization = void 0;
|
|
19
|
-
const tslib_1 = require("tslib");
|
|
20
|
-
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
|
-
const browserfs_1 = require("browserfs");
|
|
22
|
-
exports.BrowserFSInitialization = Symbol('BrowserFSInitialization');
|
|
23
|
-
let DefaultBrowserFSInitialization = class DefaultBrowserFSInitialization {
|
|
24
|
-
createMountableFileSystem() {
|
|
25
|
-
return new Promise(resolve => {
|
|
26
|
-
browserfs_1.FileSystem.IndexedDB.Create({}, (e, persistedFS) => {
|
|
27
|
-
if (e) {
|
|
28
|
-
throw e;
|
|
29
|
-
}
|
|
30
|
-
if (!persistedFS) {
|
|
31
|
-
throw Error('Could not create filesystem');
|
|
32
|
-
}
|
|
33
|
-
browserfs_1.FileSystem.MountableFileSystem.Create({
|
|
34
|
-
'/home': persistedFS
|
|
35
|
-
}, (error, mountableFS) => {
|
|
36
|
-
if (error) {
|
|
37
|
-
throw error;
|
|
38
|
-
}
|
|
39
|
-
if (!mountableFS) {
|
|
40
|
-
throw Error('Could not create filesystem');
|
|
41
|
-
}
|
|
42
|
-
(0, browserfs_1.initialize)(mountableFS);
|
|
43
|
-
resolve(mountableFS);
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
async initializeFS(fs, provider) {
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
exports.DefaultBrowserFSInitialization = DefaultBrowserFSInitialization;
|
|
52
|
-
exports.DefaultBrowserFSInitialization = DefaultBrowserFSInitialization = tslib_1.__decorate([
|
|
53
|
-
(0, inversify_1.injectable)()
|
|
54
|
-
], DefaultBrowserFSInitialization);
|
|
55
|
-
//# sourceMappingURL=browserfs-filesystem-initialization.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browserfs-filesystem-initialization.js","sourceRoot":"","sources":["../../src/browser-only/browserfs-filesystem-initialization.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAIhF,4DAA0D;AAC1D,yCAAmD;AAGtC,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAOlE,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IAEvC,yBAAyB;QACrB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACzB,sBAAU,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE;gBAC/C,IAAI,CAAC,EAAE,CAAC;oBACJ,MAAM,CAAC,CAAC;gBACZ,CAAC;gBACD,IAAI,CAAC,WAAW,EAAE,CAAC;oBACf,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBAC/C,CAAC;gBACD,sBAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC;oBAClC,OAAO,EAAE,WAAW;iBAEvB,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;oBACtB,IAAI,KAAK,EAAE,CAAC;wBACR,MAAM,KAAK,CAAC;oBAChB,CAAC;oBACD,IAAI,CAAC,WAAW,EAAE,CAAC;wBACf,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;oBAC/C,CAAC;oBACD,IAAA,sBAAU,EAAC,WAAW,CAAC,CAAC;oBACxB,OAAO,CAAC,WAAW,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAY,EAAE,QAAqC;IAEtE,CAAC;CACJ,CAAA;AA/BY,wEAA8B;yCAA9B,8BAA8B;IAD1C,IAAA,sBAAU,GAAE;GACA,8BAA8B,CA+B1C"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { FileChange, FileDeleteOptions, FileOpenOptions, FileOverwriteOptions, FileReadStreamOptions, FileSystemProviderCapabilities, FileSystemProviderWithFileReadWriteCapability, FileType, FileUpdateOptions, FileUpdateResult, FileWriteOptions, Stat, WatchOptions } from '../common/files';
|
|
2
|
-
import { Event, URI, Disposable, CancellationToken } from '@theia/core';
|
|
3
|
-
import { TextDocumentContentChangeEvent } from '@theia/core/shared/vscode-languageserver-protocol';
|
|
4
|
-
import { ReadableStreamEvents } from '@theia/core/lib/common/stream';
|
|
5
|
-
import type { FileSystem } from 'browserfs/dist/node/core/file_system';
|
|
6
|
-
import { BrowserFSInitialization } from './browserfs-filesystem-initialization';
|
|
7
|
-
export declare class BrowserFSFileSystemProvider implements FileSystemProviderWithFileReadWriteCapability {
|
|
8
|
-
readonly initialization: BrowserFSInitialization;
|
|
9
|
-
capabilities: FileSystemProviderCapabilities;
|
|
10
|
-
onDidChangeCapabilities: Event<void>;
|
|
11
|
-
onDidChangeFile: Event<readonly FileChange[]>;
|
|
12
|
-
onFileWatchError: Event<void>;
|
|
13
|
-
private mapHandleToPos;
|
|
14
|
-
private writeHandles;
|
|
15
|
-
private canFlush;
|
|
16
|
-
private fs;
|
|
17
|
-
private mountableFS;
|
|
18
|
-
private initialized;
|
|
19
|
-
constructor(initialization: BrowserFSInitialization);
|
|
20
|
-
mount(mountPoint: string, fs: FileSystem): Promise<void>;
|
|
21
|
-
watch(_resource: URI, _opts: WatchOptions): Disposable;
|
|
22
|
-
stat(resource: URI): Promise<Stat>;
|
|
23
|
-
mkdir(resource: URI): Promise<void>;
|
|
24
|
-
readdir(resource: URI): Promise<[string, FileType][]>;
|
|
25
|
-
delete(resource: URI, _opts: FileDeleteOptions): Promise<void>;
|
|
26
|
-
rename(from: URI, to: URI, opts: FileOverwriteOptions): Promise<void>;
|
|
27
|
-
copy?(from: URI, to: URI, opts: FileOverwriteOptions): Promise<void>;
|
|
28
|
-
readFile(resource: URI): Promise<Uint8Array>;
|
|
29
|
-
writeFile(resource: URI, content: Uint8Array, opts: FileWriteOptions): Promise<void>;
|
|
30
|
-
readFileStream?(resource: URI, opts: FileReadStreamOptions, token: CancellationToken): ReadableStreamEvents<Uint8Array>;
|
|
31
|
-
open(resource: URI, opts: FileOpenOptions): Promise<number>;
|
|
32
|
-
close(fd: number): Promise<void>;
|
|
33
|
-
read(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
|
|
34
|
-
write(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
|
|
35
|
-
private doWrite;
|
|
36
|
-
private normalizePos;
|
|
37
|
-
private updatePos;
|
|
38
|
-
access?(resource: URI, mode?: number | undefined): Promise<void>;
|
|
39
|
-
fsPath?(resource: URI): Promise<string>;
|
|
40
|
-
updateFile?(resource: URI, changes: TextDocumentContentChangeEvent[], opts: FileUpdateOptions): Promise<FileUpdateResult>;
|
|
41
|
-
private toFilePath;
|
|
42
|
-
private toType;
|
|
43
|
-
private promisify;
|
|
44
|
-
private toFileSystemProviderError;
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=browserfs-filesystem-provider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browserfs-filesystem-provider.d.ts","sourceRoot":"","sources":["../../src/browser-only/browserfs-filesystem-provider.ts"],"names":[],"mappings":"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"}
|