@codingame/monaco-vscode-files-service-override 4.3.2 → 4.4.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/files.d.ts +41 -2
- package/files.js +93 -13
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/package.json +2 -2
package/files.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { IEditorOverrideServices } from 'vscode/vscode/vs/editor/standalone/brow
|
|
|
2
2
|
import { Emitter, Event } from 'vscode/vscode/vs/base/common/event';
|
|
3
3
|
import { Disposable, IDisposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
4
4
|
import { URI } from 'vscode/vscode/vs/base/common/uri';
|
|
5
|
-
import { FileType, IStat, IFileSystemProviderWithFileReadWriteCapability, IFileChange,
|
|
5
|
+
import { FileType, IStat, IFileSystemProviderWithFileReadWriteCapability, IFileChange, IWatchOptions, IFileWriteOptions, IFileDeleteOptions, IFileOverwriteOptions, IFileSystemProvider, FileSystemProviderCapabilities, FileChangeType } from 'vscode/vscode/vs/platform/files/common/files';
|
|
6
6
|
export { FileChangeType, FilePermission, FileSystemProviderCapabilities, FileSystemProviderError, FileSystemProviderErrorCode, FileType, IFileChange, IFileDeleteOptions, IFileOverwriteOptions, IFileSystemProviderWithFileReadWriteCapability, IFileWriteOptions, IStat, IWatchOptions } from 'vscode/vscode/vs/platform/files/common/files';
|
|
7
7
|
import { IndexedDBFileSystemProvider } from './vscode/src/vs/platform/files/browser/indexedDBFileSystemProvider.js';
|
|
8
8
|
|
|
@@ -62,6 +62,27 @@ declare class RegisteredFileSystemProvider extends Disposable implements IFileSy
|
|
|
62
62
|
rename(from: URI, to: URI): Promise<void>;
|
|
63
63
|
mkdir(): Promise<never>;
|
|
64
64
|
}
|
|
65
|
+
declare class OverlayFileSystemProvider implements IFileSystemProviderWithFileReadWriteCapability {
|
|
66
|
+
private providers;
|
|
67
|
+
register(priority: number, provider: IFileSystemProviderWithFileReadWriteCapability): IDisposable;
|
|
68
|
+
get delegates(): IFileSystemProviderWithFileReadWriteCapability[];
|
|
69
|
+
onDidChangeCapabilities: Event<any>;
|
|
70
|
+
_onDidChangeFile: Emitter<readonly IFileChange[]>;
|
|
71
|
+
onDidChangeFile: Event<readonly IFileChange[]>;
|
|
72
|
+
_onDidChangeOverlays: Emitter<void>;
|
|
73
|
+
onDidChangeOverlays: Event<void>;
|
|
74
|
+
capabilities: number;
|
|
75
|
+
private readFromDelegates;
|
|
76
|
+
private writeToDelegates;
|
|
77
|
+
stat(resource: URI): Promise<IStat>;
|
|
78
|
+
readFile(resource: URI): Promise<Uint8Array>;
|
|
79
|
+
readdir(resource: URI): Promise<[string, FileType][]>;
|
|
80
|
+
watch(resource: URI, opts: IWatchOptions): IDisposable;
|
|
81
|
+
writeFile(resource: URI, content: Uint8Array, opts: IFileWriteOptions): Promise<void>;
|
|
82
|
+
mkdir(resource: URI): Promise<void>;
|
|
83
|
+
delete(resource: URI, opts: IFileDeleteOptions): Promise<void>;
|
|
84
|
+
rename(from: URI, to: URI, opts: IFileOverwriteOptions): Promise<void>;
|
|
85
|
+
}
|
|
65
86
|
declare class DelegateFileSystemProvider implements IFileSystemProvider {
|
|
66
87
|
private options;
|
|
67
88
|
constructor(options: {
|
|
@@ -84,6 +105,19 @@ declare class DelegateFileSystemProvider implements IFileSystemProvider {
|
|
|
84
105
|
delete(resource: URI, opts: IFileDeleteOptions): Promise<void>;
|
|
85
106
|
rename(from: URI, to: URI, opts: IFileOverwriteOptions): Promise<void>;
|
|
86
107
|
}
|
|
108
|
+
declare class EmptyFileSystemProvider implements IFileSystemProviderWithFileReadWriteCapability {
|
|
109
|
+
readFile(): Promise<Uint8Array>;
|
|
110
|
+
writeFile(): Promise<void>;
|
|
111
|
+
capabilities: number;
|
|
112
|
+
onDidChangeCapabilities: Event<any>;
|
|
113
|
+
onDidChangeFile: Event<any>;
|
|
114
|
+
watch(): IDisposable;
|
|
115
|
+
stat(): Promise<IStat>;
|
|
116
|
+
mkdir(): Promise<void>;
|
|
117
|
+
readdir(): Promise<[string, FileType][]>;
|
|
118
|
+
delete(): Promise<void>;
|
|
119
|
+
rename(): Promise<void>;
|
|
120
|
+
}
|
|
87
121
|
declare namespace CustomSchemas {
|
|
88
122
|
/**
|
|
89
123
|
* A schema that is used for models that exist in memory
|
|
@@ -106,6 +140,11 @@ declare function initFile(file: URI, content: Uint8Array | string, options?: Par
|
|
|
106
140
|
* Can be used to replace memory providers by indexeddb providers before the fileService is initialized
|
|
107
141
|
*/
|
|
108
142
|
declare function createIndexedDBProviders(): Promise<IndexedDBFileSystemProvider>;
|
|
143
|
+
/**
|
|
144
|
+
* Can be used to replace the default filesystem provider by the HTMLFileSystemProvider before the fileService is initialized
|
|
145
|
+
* Should be called "after" createIndexedDBProviders if used
|
|
146
|
+
*/
|
|
147
|
+
declare function registerHTMLFileSystemProvider(): void;
|
|
109
148
|
/**
|
|
110
149
|
* Register a file system overlay
|
|
111
150
|
*
|
|
@@ -119,4 +158,4 @@ declare function createIndexedDBProviders(): Promise<IndexedDBFileSystemProvider
|
|
|
119
158
|
*/
|
|
120
159
|
declare function registerFileSystemOverlay(priority: number, provider: IFileSystemProviderWithFileReadWriteCapability): IDisposable;
|
|
121
160
|
|
|
122
|
-
export { CustomSchemas, DelegateFileSystemProvider, IndexedDBFileSystemProvider, RegisteredFile, RegisteredFileSystemProvider, RegisteredMemoryFile, RegisteredReadOnlyFile, createIndexedDBProviders, getServiceOverride as default, initFile, registerCustomProvider, registerExtensionFile, registerFileSystemOverlay };
|
|
161
|
+
export { CustomSchemas, DelegateFileSystemProvider, EmptyFileSystemProvider, IndexedDBFileSystemProvider, OverlayFileSystemProvider, RegisteredFile, RegisteredFileSystemProvider, RegisteredMemoryFile, RegisteredReadOnlyFile, createIndexedDBProviders, getServiceOverride as default, initFile, registerCustomProvider, registerExtensionFile, registerFileSystemOverlay, registerHTMLFileSystemProvider };
|
package/files.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
|
+
import { StandaloneServices } from 'vscode/vscode/vs/editor/standalone/browser/standaloneServices';
|
|
2
3
|
import { SyncDescriptor } from 'vscode/vscode/vs/platform/instantiation/common/descriptors';
|
|
3
4
|
import { FileService } from './vscode/src/vs/platform/files/common/fileService.js';
|
|
4
5
|
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log';
|
|
@@ -10,6 +11,7 @@ export { FileChangeType, FilePermission, FileSystemProviderCapabilities, FileSys
|
|
|
10
11
|
import { Disposable, DisposableStore, toDisposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
11
12
|
import { extUri, joinPath } from 'vscode/vscode/vs/base/common/resources';
|
|
12
13
|
import { Emitter, Event } from 'vscode/vscode/vs/base/common/event';
|
|
14
|
+
import { HTMLFileSystemProvider } from 'vscode/vscode/vs/platform/files/browser/htmlFileSystemProvider';
|
|
13
15
|
export { HTMLFileSystemProvider } from 'vscode/vscode/vs/platform/files/browser/htmlFileSystemProvider';
|
|
14
16
|
import { Schemas } from 'vscode/vscode/vs/base/common/network';
|
|
15
17
|
import { IndexedDBFileSystemProvider } from './vscode/src/vs/platform/files/browser/indexedDBFileSystemProvider.js';
|
|
@@ -264,6 +266,9 @@ class OverlayFileSystemProvider {
|
|
|
264
266
|
return ( this.providers.map(({ provider }) => provider));
|
|
265
267
|
}
|
|
266
268
|
async readFromDelegates(caller) {
|
|
269
|
+
if (this.delegates.length === 0) {
|
|
270
|
+
throw createFileSystemProviderError('No delegate', FileSystemProviderErrorCode.Unavailable);
|
|
271
|
+
}
|
|
267
272
|
let firstError;
|
|
268
273
|
for (const delegate of this.delegates) {
|
|
269
274
|
try {
|
|
@@ -284,6 +289,9 @@ class OverlayFileSystemProvider {
|
|
|
284
289
|
throw firstError;
|
|
285
290
|
}
|
|
286
291
|
async writeToDelegates(caller) {
|
|
292
|
+
if (this.delegates.length === 0) {
|
|
293
|
+
throw createFileSystemProviderError('No delegate', FileSystemProviderErrorCode.Unavailable);
|
|
294
|
+
}
|
|
287
295
|
for (const provider of this.delegates) {
|
|
288
296
|
if (((provider.capabilities & 2048) ) > 0) {
|
|
289
297
|
continue;
|
|
@@ -436,8 +444,39 @@ class DelegateFileSystemProvider {
|
|
|
436
444
|
return this.options.delegate.rename(this.options.toDelegate(from), this.options.toDelegate(to), opts);
|
|
437
445
|
}
|
|
438
446
|
}
|
|
439
|
-
|
|
440
|
-
|
|
447
|
+
class EmptyFileSystemProvider {
|
|
448
|
+
constructor() {
|
|
449
|
+
this.capabilities = 2 | 1024 ;
|
|
450
|
+
this.onDidChangeCapabilities = Event.None;
|
|
451
|
+
this.onDidChangeFile = Event.None;
|
|
452
|
+
}
|
|
453
|
+
async readFile() {
|
|
454
|
+
throw createFileSystemProviderError('Not found', FileSystemProviderErrorCode.FileNotFound);
|
|
455
|
+
}
|
|
456
|
+
async writeFile() {
|
|
457
|
+
throw createFileSystemProviderError('Not allowed', FileSystemProviderErrorCode.NoPermissions);
|
|
458
|
+
}
|
|
459
|
+
watch() {
|
|
460
|
+
return Disposable.None;
|
|
461
|
+
}
|
|
462
|
+
async stat() {
|
|
463
|
+
throw createFileSystemProviderError('Not found', FileSystemProviderErrorCode.FileNotFound);
|
|
464
|
+
}
|
|
465
|
+
async mkdir() {
|
|
466
|
+
throw createFileSystemProviderError('Not allowed', FileSystemProviderErrorCode.NoPermissions);
|
|
467
|
+
}
|
|
468
|
+
async readdir() {
|
|
469
|
+
throw createFileSystemProviderError('Not found', FileSystemProviderErrorCode.FileNotFound);
|
|
470
|
+
}
|
|
471
|
+
async delete() {
|
|
472
|
+
throw createFileSystemProviderError('Not allowed', FileSystemProviderErrorCode.NoPermissions);
|
|
473
|
+
}
|
|
474
|
+
async rename() {
|
|
475
|
+
throw createFileSystemProviderError('Not allowed', FileSystemProviderErrorCode.NoPermissions);
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
const overlayFileSystemProvider = new OverlayFileSystemProvider();
|
|
479
|
+
overlayFileSystemProvider.register(0, new MkdirpOnWriteInMemoryFileSystemProvider());
|
|
441
480
|
const extensionFileSystemProvider = new RegisteredFileSystemProvider(true);
|
|
442
481
|
const userDataFileSystemProvider = new InMemoryFileSystemProvider();
|
|
443
482
|
void userDataFileSystemProvider.mkdir(( URI.from({ scheme: Schemas.vscodeUserData, path: '/User/' })));
|
|
@@ -450,9 +489,9 @@ const providers = {
|
|
|
450
489
|
[logsPath.scheme]: new InMemoryFileSystemProvider(),
|
|
451
490
|
[Schemas.vscodeUserData]: userDataFileSystemProvider,
|
|
452
491
|
[Schemas.tmp]: new InMemoryFileSystemProvider(),
|
|
453
|
-
[Schemas.file]:
|
|
492
|
+
[Schemas.file]: overlayFileSystemProvider
|
|
454
493
|
};
|
|
455
|
-
let
|
|
494
|
+
let FileServiceOverride = class FileServiceOverride extends FileService {
|
|
456
495
|
constructor(logService, telemetryService) {
|
|
457
496
|
super(logService);
|
|
458
497
|
for (const [scheme, provider] of Object.entries(providers)) {
|
|
@@ -460,7 +499,7 @@ let MemoryFileService = class MemoryFileService extends FileService {
|
|
|
460
499
|
if (provider instanceof OverlayFileSystemProvider) {
|
|
461
500
|
provider.onDidChangeOverlays(() => {
|
|
462
501
|
disposable.dispose();
|
|
463
|
-
disposable = this.registerProvider(scheme,
|
|
502
|
+
disposable = this.registerProvider(scheme, provider);
|
|
464
503
|
});
|
|
465
504
|
}
|
|
466
505
|
if (provider instanceof IndexedDBFileSystemProvider) {
|
|
@@ -469,16 +508,16 @@ let MemoryFileService = class MemoryFileService extends FileService {
|
|
|
469
508
|
}
|
|
470
509
|
}
|
|
471
510
|
};
|
|
472
|
-
|
|
511
|
+
FileServiceOverride = __decorate([
|
|
473
512
|
( __param(1, ITelemetryService))
|
|
474
|
-
],
|
|
513
|
+
], FileServiceOverride);
|
|
475
514
|
const fileLogger = new BufferLogger();
|
|
476
515
|
registerServiceInitializePreParticipant(async (accessor) => {
|
|
477
516
|
fileLogger.logger = accessor.get(ILogService);
|
|
478
517
|
});
|
|
479
518
|
function getServiceOverride() {
|
|
480
519
|
return {
|
|
481
|
-
[( IFileService.toString())]: new SyncDescriptor(
|
|
520
|
+
[( IFileService.toString())]: new SyncDescriptor(FileServiceOverride, [fileLogger], true),
|
|
482
521
|
[( ITextFileService.toString())]: new SyncDescriptor(BrowserTextFileService, [], true),
|
|
483
522
|
[( IFilesConfigurationService.toString())]: new SyncDescriptor(FilesConfigurationService, [], true),
|
|
484
523
|
[( IElevatedFileService.toString())]: new SyncDescriptor(BrowserElevatedFileService, [], true)
|
|
@@ -513,17 +552,58 @@ async function initFile(file, content, options) {
|
|
|
513
552
|
...options
|
|
514
553
|
});
|
|
515
554
|
}
|
|
555
|
+
let indexedDB;
|
|
556
|
+
const userDataStore = 'vscode-userdata-store';
|
|
557
|
+
const logsStore = 'vscode-logs-store';
|
|
558
|
+
const handlesStore = 'vscode-filehandles-store';
|
|
516
559
|
async function createIndexedDBProviders() {
|
|
517
|
-
|
|
518
|
-
const logsStore = 'vscode-logs-store';
|
|
519
|
-
const indexedDB = await IndexedDB.create('vscode-web-db', 3, [userDataStore, logsStore]);
|
|
560
|
+
indexedDB = await IndexedDB.create('vscode-web-db', 3, [userDataStore, logsStore, handlesStore]);
|
|
520
561
|
registerCustomProvider(logsPath.scheme, new IndexedDBFileSystemProvider(logsPath.scheme, indexedDB, logsStore, false));
|
|
521
562
|
const userDataProvider = new IndexedDBFileSystemProvider(Schemas.vscodeUserData, indexedDB, userDataStore, true);
|
|
522
563
|
registerCustomProvider(Schemas.vscodeUserData, userDataProvider);
|
|
523
564
|
return userDataProvider;
|
|
524
565
|
}
|
|
566
|
+
function registerHTMLFileSystemProvider() {
|
|
567
|
+
class LazyLogService {
|
|
568
|
+
get onDidChangeLogLevel() {
|
|
569
|
+
return StandaloneServices.get(ILogService).onDidChangeLogLevel;
|
|
570
|
+
}
|
|
571
|
+
getLevel() {
|
|
572
|
+
return StandaloneServices.get(ILogService).getLevel();
|
|
573
|
+
}
|
|
574
|
+
setLevel(level) {
|
|
575
|
+
StandaloneServices.get(ILogService).setLevel(level);
|
|
576
|
+
}
|
|
577
|
+
trace(message, ...args) {
|
|
578
|
+
StandaloneServices.get(ILogService).trace(message, ...args);
|
|
579
|
+
}
|
|
580
|
+
debug(message, ...args) {
|
|
581
|
+
StandaloneServices.get(ILogService).debug(message, ...args);
|
|
582
|
+
}
|
|
583
|
+
info(message, ...args) {
|
|
584
|
+
StandaloneServices.get(ILogService).info(message, ...args);
|
|
585
|
+
}
|
|
586
|
+
warn(message, ...args) {
|
|
587
|
+
StandaloneServices.get(ILogService).warn(message, ...args);
|
|
588
|
+
}
|
|
589
|
+
error(message, ...args) {
|
|
590
|
+
StandaloneServices.get(ILogService).error(message, ...args);
|
|
591
|
+
}
|
|
592
|
+
flush() {
|
|
593
|
+
StandaloneServices.get(ILogService).flush();
|
|
594
|
+
}
|
|
595
|
+
dispose() {
|
|
596
|
+
StandaloneServices.get(ILogService).dispose();
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
registerCustomProvider(Schemas.file, new HTMLFileSystemProvider(indexedDB, handlesStore, new LazyLogService()));
|
|
600
|
+
}
|
|
525
601
|
function registerFileSystemOverlay(priority, provider) {
|
|
526
|
-
|
|
602
|
+
const overlayProvider = providers.file;
|
|
603
|
+
if (!(overlayProvider instanceof OverlayFileSystemProvider)) {
|
|
604
|
+
throw new Error('The overlay filesystem provider was replaced');
|
|
605
|
+
}
|
|
606
|
+
return overlayProvider.register(priority, provider);
|
|
527
607
|
}
|
|
528
608
|
|
|
529
|
-
export { CustomSchemas, DelegateFileSystemProvider, IndexedDBFileSystemProvider, RegisteredFile, RegisteredFileSystemProvider, RegisteredMemoryFile, RegisteredReadOnlyFile, createIndexedDBProviders, getServiceOverride as default, initFile, registerCustomProvider, registerExtensionFile, registerFileSystemOverlay };
|
|
609
|
+
export { CustomSchemas, DelegateFileSystemProvider, EmptyFileSystemProvider, IndexedDBFileSystemProvider, OverlayFileSystemProvider, RegisteredFile, RegisteredFileSystemProvider, RegisteredMemoryFile, RegisteredReadOnlyFile, createIndexedDBProviders, getServiceOverride as default, initFile, registerCustomProvider, registerExtensionFile, registerFileSystemOverlay, registerHTMLFileSystemProvider };
|
package/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { CustomSchemas, DelegateFileSystemProvider, RegisteredFile, RegisteredFileSystemProvider, RegisteredMemoryFile, RegisteredReadOnlyFile, createIndexedDBProviders, default, initFile, registerCustomProvider, registerExtensionFile, registerFileSystemOverlay } from './files.js';
|
|
1
|
+
export { CustomSchemas, DelegateFileSystemProvider, EmptyFileSystemProvider, OverlayFileSystemProvider, RegisteredFile, RegisteredFileSystemProvider, RegisteredMemoryFile, RegisteredReadOnlyFile, createIndexedDBProviders, default, initFile, registerCustomProvider, registerExtensionFile, registerFileSystemOverlay, registerHTMLFileSystemProvider } from './files.js';
|
|
2
2
|
export { InMemoryFileSystemProvider } from './vscode/src/vs/platform/files/common/inMemoryFilesystemProvider.js';
|
|
3
3
|
export { FileChangeType, FilePermission, FileSystemProviderCapabilities, FileSystemProviderError, FileSystemProviderErrorCode, FileType, IFileChange, IFileDeleteOptions, IFileOverwriteOptions, IFileSystemProviderWithFileReadWriteCapability, IFileWriteOptions, IStat, IWatchOptions } from 'vscode/vscode/vs/platform/files/common/files';
|
|
4
4
|
export { HTMLFileSystemProvider } from './vscode/src/vs/platform/files/browser/htmlFileSystemProvider.js';
|
package/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { CustomSchemas, DelegateFileSystemProvider, RegisteredFile, RegisteredFileSystemProvider, RegisteredMemoryFile, RegisteredReadOnlyFile, createIndexedDBProviders, default, initFile, registerCustomProvider, registerExtensionFile, registerFileSystemOverlay } from './files.js';
|
|
1
|
+
export { CustomSchemas, DelegateFileSystemProvider, EmptyFileSystemProvider, OverlayFileSystemProvider, RegisteredFile, RegisteredFileSystemProvider, RegisteredMemoryFile, RegisteredReadOnlyFile, createIndexedDBProviders, default, initFile, registerCustomProvider, registerExtensionFile, registerFileSystemOverlay, registerHTMLFileSystemProvider } from './files.js';
|
|
2
2
|
export { FileChangeType, FilePermission, FileSystemProviderCapabilities, FileSystemProviderError, FileSystemProviderErrorCode, FileType } from 'vscode/vscode/vs/platform/files/common/files';
|
|
3
3
|
export { HTMLFileSystemProvider } from 'vscode/vscode/vs/platform/files/browser/htmlFileSystemProvider';
|
|
4
4
|
export { InMemoryFileSystemProvider } from 'vscode/vscode/vs/platform/files/common/inMemoryFilesystemProvider';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-files-service-override",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.4.0",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodinGame",
|
|
@@ -18,6 +18,6 @@
|
|
|
18
18
|
"module": "index.js",
|
|
19
19
|
"types": "index.d.ts",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"vscode": "npm:@codingame/monaco-vscode-api@4.
|
|
21
|
+
"vscode": "npm:@codingame/monaco-vscode-api@4.4.0"
|
|
22
22
|
}
|
|
23
23
|
}
|