@codingame/monaco-vscode-files-service-override 11.1.2 → 12.0.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/index.d.ts CHANGED
@@ -1,2 +1,230 @@
1
- export * from 'vscode/service-override/files';
2
- export { default } from 'vscode/service-override/files';
1
+ import { type IEditorOverrideServices } from "vscode/vscode/vs/editor/standalone/browser/standaloneServices";
2
+ import { InMemoryFileSystemProvider } from "@codingame/monaco-vscode-2f06fe84-148e-5e6b-a7ca-c7989c5f128a-common/vscode/vs/platform/files/common/inMemoryFilesystemProvider";
3
+ import { URI } from "vscode/vscode/vs/base/common/uri";
4
+ import { FileChangeType, FilePermission, FileSystemProviderCapabilities, FileType, type IFileSystemProvider, FileSystemProviderError, FileSystemProviderErrorCode, type IFileChange, type IFileDeleteOptions, type IFileOverwriteOptions, type IFileSystemProviderWithFileReadWriteCapability, type IFileWriteOptions, type IStat, type IWatchOptions, type IFileSystemProviderWithOpenReadWriteCloseCapability, type IFileSystemProviderWithFileReadStreamCapability, type IFileReadStreamOptions, type IFileSystemProviderWithFileAtomicReadCapability, type IFileSystemProviderWithFileAtomicWriteCapability, type IFileSystemProviderWithFileAtomicDeleteCapability } from "vscode/vscode/vs/platform/files/common/files";
5
+ import { type IDisposable, Disposable } from "vscode/vscode/vs/base/common/lifecycle";
6
+ import { Emitter, Event } from "vscode/vscode/vs/base/common/event";
7
+ import { HTMLFileSystemProvider } from "vscode/vscode/vs/platform/files/browser/htmlFileSystemProvider";
8
+ import { IndexedDBFileSystemProvider } from "./vscode/src/vs/platform/files/browser/indexedDBFileSystemProvider.js";
9
+ import { IndexedDB } from "@codingame/monaco-vscode-2f06fe84-148e-5e6b-a7ca-c7989c5f128a-common/vscode/vs/base/browser/indexedDB";
10
+ import { type ReadableStreamEvents } from "vscode/vscode/vs/base/common/stream";
11
+ import { CancellationToken } from "vscode/vscode/vs/base/common/cancellation";
12
+ interface _RegisteredNode {
13
+ type: FileType;
14
+ stats(): Promise<IStat>;
15
+ onDidDelete: Event<void>;
16
+ onDidChange: Event<void>;
17
+ }
18
+ interface RegisteredFileNode extends _RegisteredNode {
19
+ type: FileType.File;
20
+ uri: URI;
21
+ read(): Promise<Uint8Array>;
22
+ readStream?(): Promise<ReadableStream<Uint8Array>>;
23
+ write(content: Uint8Array): Promise<void>;
24
+ delete(): void;
25
+ }
26
+ interface RegisteredDirectoryNode extends _RegisteredNode {
27
+ type: FileType.Directory;
28
+ addChild(name: string, node: RegisteredNode): IDisposable;
29
+ deleteChild(name: string): boolean;
30
+ getChildren(name: string): RegisteredNode | undefined;
31
+ read(): [
32
+ string,
33
+ FileType
34
+ ][];
35
+ }
36
+ type RegisteredNode = RegisteredFileNode | RegisteredDirectoryNode;
37
+ declare abstract class RegisteredFile implements RegisteredFileNode {
38
+ uri: URI;
39
+ private readonly;
40
+ protected ctime: number;
41
+ protected mtime: number;
42
+ readonly type = FileType.File;
43
+ protected _onDidChange: Emitter<void>;
44
+ onDidChange: Event<void>;
45
+ protected _onDidDelete: Emitter<void>;
46
+ onDidDelete: Event<void>;
47
+ constructor(uri: URI, readonly: boolean);
48
+ stats(): Promise<IStat>;
49
+ abstract getSize(): Promise<number>;
50
+ delete(): Promise<void>;
51
+ abstract read(): Promise<Uint8Array>;
52
+ abstract write(content: Uint8Array): Promise<void>;
53
+ }
54
+ declare class RegisteredReadOnlyFile extends RegisteredFile {
55
+ read: () => Promise<Uint8Array>;
56
+ private size;
57
+ constructor(uri: URI, read: () => Promise<Uint8Array>, size: number);
58
+ getSize(): Promise<number>;
59
+ write(): Promise<void>;
60
+ delete(): Promise<void>;
61
+ }
62
+ export interface ExtensionFileMetadata {
63
+ mimeType?: string;
64
+ size?: number;
65
+ }
66
+ declare class RegisteredUriFile extends RegisteredFile {
67
+ private url;
68
+ private metadata?;
69
+ constructor(location: URI, url: string, metadata?: ExtensionFileMetadata | undefined);
70
+ private fetch;
71
+ getSize(): Promise<number>;
72
+ read(): Promise<Uint8Array>;
73
+ readStream(): Promise<ReadableStream<Uint8Array>>;
74
+ write(): Promise<void>;
75
+ delete(): Promise<void>;
76
+ }
77
+ declare class RegisteredMemoryFile extends RegisteredFile {
78
+ private content;
79
+ constructor(uri: URI, content: string | Uint8Array);
80
+ getSize(): Promise<number>;
81
+ read(): Promise<Uint8Array>;
82
+ write(content: Uint8Array): Promise<void>;
83
+ }
84
+ declare class RegisteredFileSystemProvider extends Disposable implements IFileSystemProviderWithFileReadWriteCapability, IFileSystemProviderWithOpenReadWriteCloseCapability, IFileSystemProviderWithFileReadStreamCapability, IFileSystemProviderWithFileAtomicReadCapability, IFileSystemProviderWithFileAtomicWriteCapability, IFileSystemProviderWithFileAtomicDeleteCapability {
85
+ private memoryFdCounter;
86
+ private readonly fdMemory;
87
+ private rootByAuthority;
88
+ onDidChangeCapabilities: Event<any>;
89
+ _onDidChangeFile: Emitter<readonly IFileChange[]>;
90
+ onDidChangeFile: Event<readonly IFileChange[]>;
91
+ capabilities: number;
92
+ constructor(readonly: boolean);
93
+ open(resource: URI): Promise<number>;
94
+ close(fd: number): Promise<void>;
95
+ read(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
96
+ write(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
97
+ private _lookupRoot;
98
+ private _lookup;
99
+ private _lookupAsDirectory;
100
+ private _lookupAsFile;
101
+ registerFile(file: RegisteredFileNode): IDisposable;
102
+ stat(resource: URI): Promise<IStat>;
103
+ readdirSync(resource: URI): [
104
+ string,
105
+ FileType
106
+ ][];
107
+ readdir(resource: URI): Promise<[
108
+ string,
109
+ FileType
110
+ ][]>;
111
+ readFile(resource: URI): Promise<Uint8Array>;
112
+ readFileStream(resource: URI, opts: IFileReadStreamOptions, token: CancellationToken): ReadableStreamEvents<Uint8Array>;
113
+ watch(): IDisposable;
114
+ writeFile(resource: URI, content: Uint8Array, opts: IFileWriteOptions): Promise<void>;
115
+ rename(): Promise<void>;
116
+ mkdirSync(resource: URI): RegisteredDirectoryNode;
117
+ mkdir(): Promise<void>;
118
+ private deleteSync;
119
+ delete(resource: URI): Promise<void>;
120
+ private _bufferedChanges;
121
+ private _fireSoonHandle?;
122
+ private _fireSoon;
123
+ }
124
+ declare class OverlayFileSystemProvider implements IFileSystemProviderWithFileReadWriteCapability, IFileSystemProviderWithFileReadStreamCapability, IFileSystemProviderWithFileAtomicReadCapability, IFileSystemProviderWithFileAtomicWriteCapability, IFileSystemProviderWithFileAtomicDeleteCapability {
125
+ private providers;
126
+ register(priority: number, provider: IFileSystemProviderWithFileReadWriteCapability): IDisposable;
127
+ get delegates(): IFileSystemProviderWithFileReadWriteCapability[];
128
+ onDidChangeCapabilities: Event<any>;
129
+ _onDidChangeFile: Emitter<readonly IFileChange[]>;
130
+ onDidChangeFile: Event<readonly IFileChange[]>;
131
+ _onDidChangeOverlays: Emitter<void>;
132
+ onDidChangeOverlays: Event<void>;
133
+ capabilities: number;
134
+ private readFromDelegates;
135
+ private writeToDelegates;
136
+ stat(resource: URI): Promise<IStat>;
137
+ readFile(resource: URI): Promise<Uint8Array>;
138
+ readFileStream(resource: URI, opts: IFileReadStreamOptions, token: CancellationToken): ReadableStreamEvents<Uint8Array>;
139
+ readdir(resource: URI): Promise<[
140
+ string,
141
+ FileType
142
+ ][]>;
143
+ watch(resource: URI, opts: IWatchOptions): IDisposable;
144
+ writeFile(resource: URI, content: Uint8Array, opts: IFileWriteOptions): Promise<void>;
145
+ mkdir(resource: URI): Promise<void>;
146
+ delete(resource: URI, opts: IFileDeleteOptions): Promise<void>;
147
+ rename(from: URI, to: URI, opts: IFileOverwriteOptions): Promise<void>;
148
+ }
149
+ declare class DelegateFileSystemProvider implements IFileSystemProvider {
150
+ private options;
151
+ constructor(options: {
152
+ delegate: IFileSystemProvider;
153
+ toDelegate: (uri: URI) => URI;
154
+ fromDeletate: (uri: URI) => URI;
155
+ });
156
+ get capabilities(): FileSystemProviderCapabilities;
157
+ onDidChangeCapabilities: Event<void>;
158
+ onDidChangeFile: Event<{
159
+ type: FileChangeType;
160
+ resource: URI;
161
+ }[]>;
162
+ readFile: ((resource: URI) => Promise<Uint8Array>) | undefined;
163
+ writeFile: ((resource: URI, content: Uint8Array, opts: IFileWriteOptions) => Promise<void>) | undefined;
164
+ watch(resource: URI, opts: IWatchOptions): IDisposable;
165
+ stat(resource: URI): Promise<IStat>;
166
+ mkdir(resource: URI): Promise<void>;
167
+ readdir(resource: URI): Promise<[
168
+ string,
169
+ FileType
170
+ ][]>;
171
+ delete(resource: URI, opts: IFileDeleteOptions): Promise<void>;
172
+ rename(from: URI, to: URI, opts: IFileOverwriteOptions): Promise<void>;
173
+ }
174
+ declare class EmptyFileSystemProvider implements IFileSystemProviderWithFileReadWriteCapability {
175
+ readFile(): Promise<Uint8Array>;
176
+ writeFile(): Promise<void>;
177
+ capabilities: number;
178
+ onDidChangeCapabilities: Event<any>;
179
+ onDidChangeFile: Event<any>;
180
+ watch(): IDisposable;
181
+ stat(): Promise<IStat>;
182
+ mkdir(): Promise<void>;
183
+ readdir(): Promise<[
184
+ string,
185
+ FileType
186
+ ][]>;
187
+ delete(): Promise<void>;
188
+ rename(): Promise<void>;
189
+ }
190
+ export declare namespace CustomSchemas {
191
+ /**
192
+ * A schema that is used for models that exist in memory
193
+ * only and that have no correspondence on a server or such.
194
+ */
195
+ const extensionFile = "extension-file";
196
+ }
197
+ export default function getServiceOverride(): IEditorOverrideServices;
198
+ /**
199
+ * Register a custom file system provider for the given scheme. This allows us to override
200
+ * the default file system provider for a given scheme.
201
+ */
202
+ export declare function registerCustomProvider(scheme: string, provider: IFileSystemProvider): void;
203
+ export declare function registerExtensionFile(file: RegisteredFileNode): IDisposable;
204
+ /**
205
+ * Can be used to create a file before the fileService is initialized
206
+ */
207
+ export declare function initFile(file: URI, content: Uint8Array | string, options?: Partial<IFileWriteOptions>): Promise<void>;
208
+ /**
209
+ * Can be used to replace memory providers by indexeddb providers before the fileService is initialized
210
+ */
211
+ export declare function createIndexedDBProviders(): Promise<IndexedDBFileSystemProvider>;
212
+ /**
213
+ * Can be used to replace the default filesystem provider by the HTMLFileSystemProvider before the fileService is initialized
214
+ * Should be called "after" createIndexedDBProviders if used
215
+ */
216
+ export declare function registerHTMLFileSystemProvider(): void;
217
+ /**
218
+ * Register a file system overlay
219
+ *
220
+ * By default, a memory filesystem is used to read and write file
221
+ *
222
+ * This method allows to register another fileSystemProvider in front OR behind the default memory one.
223
+ *
224
+ * The default one is registered as priority: 0, so:
225
+ * - any provider registered with a positive priority will be in front of the default one
226
+ * - any provider registered with a negative priority will be behind the default one
227
+ */
228
+ export declare function registerFileSystemOverlay(priority: number, provider: IFileSystemProviderWithFileReadWriteCapability): IDisposable;
229
+ export { FileSystemProviderCapabilities, FileType, FileSystemProviderError, FileSystemProviderErrorCode, FileChangeType, FilePermission, HTMLFileSystemProvider, InMemoryFileSystemProvider, IndexedDB, IndexedDBFileSystemProvider, RegisteredFileSystemProvider, RegisteredFile, RegisteredReadOnlyFile, RegisteredUriFile, RegisteredMemoryFile, DelegateFileSystemProvider, OverlayFileSystemProvider, EmptyFileSystemProvider };
230
+ export type { IFileSystemProviderWithFileReadWriteCapability, IStat, IWatchOptions, IFileWriteOptions, IFileDeleteOptions, IFileOverwriteOptions, IFileChange };