@codingame/monaco-vscode-api 5.1.2 → 5.2.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/extensions.d.ts CHANGED
@@ -100,6 +100,7 @@ export { IExtensionContributions } from './vscode/src/vs/platform/extensions/com
100
100
  import { IDisposable } from './vscode/src/vs/base/common/lifecycle.js';
101
101
  export { ITranslations } from './vscode/src/vs/platform/extensionManagement/common/extensionNls.js';
102
102
  import { ExtensionHostKind } from './vscode/src/vs/workbench/services/extensions/common/extensionHostKind.js';
103
+ export { ExtensionFileMetadata } from './service-override/files.js';
103
104
 
104
105
  type ApiFactory = (extensionId?: string) => Promise<typeof vscode>;
105
106
  declare function registerLocalApiFactory(_apiFactory: ApiFactory): void;
package/extensions.js CHANGED
@@ -13,31 +13,20 @@ import { IWorkbenchExtensionEnablementService } from './vscode/src/vs/workbench/
13
13
  import { StandaloneServices } from './vscode/src/vs/editor/standalone/browser/standaloneServices.js';
14
14
  import { ExtensionManifestTranslator } from './vscode/src/vs/platform/extensionManagement/common/extensionsScannerService.js';
15
15
  import { language } from './vscode/src/vs/base/common/platform.js';
16
- import { CustomSchemas, registerExtensionFile } from '@codingame/monaco-vscode-files-service-override';
16
+ import { CustomSchemas, registerExtensionFile, RegisteredUriFile } from '@codingame/monaco-vscode-files-service-override';
17
17
  import { waitServicesReady } from './lifecycle.js';
18
- import { throttle, memoized } from './tools.js';
18
+ import { throttle } from './tools.js';
19
19
  import { setDefaultApi } from './api.js';
20
20
  import { getBuiltInExtensionTranslationsUris } from './l10n.js';
21
21
  let apiFactory;
22
22
  function registerLocalApiFactory(_apiFactory) {
23
23
  apiFactory = _apiFactory;
24
24
  }
25
- function registerExtensionFileUrl(extensionLocation, filePath, url, mimeType) {
25
+ function registerExtensionFileUrl(extensionLocation, filePath, url, metadataOrMimeType) {
26
26
  const fileDisposable = new DisposableStore();
27
27
  fileDisposable.add(FileAccess.registerStaticBrowserUri(joinPath(extensionLocation, filePath), ( URI.parse(url))));
28
- fileDisposable.add(registerExtensionFile(extensionLocation, filePath, memoized(async () => {
29
- const response = await fetch(url, {
30
- headers: mimeType != null
31
- ? {
32
- Accept: mimeType
33
- }
34
- : {}
35
- });
36
- if (response.status !== 200) {
37
- throw new Error(response.statusText);
38
- }
39
- return new Uint8Array(await response.arrayBuffer());
40
- })));
28
+ const metadata = typeof metadataOrMimeType === 'string' ? { mimeType: metadataOrMimeType } : metadataOrMimeType;
29
+ fileDisposable.add(registerExtensionFile(new RegisteredUriFile(joinPath(extensionLocation, filePath), url, metadata)));
41
30
  return fileDisposable;
42
31
  }
43
32
  const deltaExtensions = throttle(async ({ toAdd, toRemove }) => {
@@ -129,8 +118,8 @@ function registerExtension(manifest, extHostKind, { path = '/', system = false,
129
118
  }
130
119
  };
131
120
  if (extHostKind !== 3 ) {
132
- function registerFileUrl(path, url, mimeType) {
133
- return registerExtensionFileUrl(location, path, url, mimeType);
121
+ function registerFileUrl(path, url, metadataOrMimeType) {
122
+ return registerExtensionFileUrl(location, path, url, metadataOrMimeType);
134
123
  }
135
124
  api = {
136
125
  ...api,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-api",
3
- "version": "5.1.2",
3
+ "version": "5.2.0",
4
4
  "description": "VSCode public API plugged on the monaco editor",
5
5
  "keywords": [],
6
6
  "author": {
@@ -99,12 +99,12 @@
99
99
  "dependencies": {
100
100
  "@vscode/iconv-lite-umd": "0.7.0",
101
101
  "jschardet": "3.0.0",
102
- "@codingame/monaco-vscode-quickaccess-service-override": "5.1.2",
103
- "@codingame/monaco-vscode-files-service-override": "5.1.2",
104
- "@codingame/monaco-vscode-extensions-service-override": "5.1.2",
105
- "@codingame/monaco-vscode-environment-service-override": "5.1.2",
106
- "@codingame/monaco-vscode-layout-service-override": "5.1.2",
107
- "@codingame/monaco-vscode-host-service-override": "5.1.2",
108
- "@codingame/monaco-vscode-base-service-override": "5.1.2"
102
+ "@codingame/monaco-vscode-quickaccess-service-override": "5.2.0",
103
+ "@codingame/monaco-vscode-files-service-override": "5.2.0",
104
+ "@codingame/monaco-vscode-extensions-service-override": "5.2.0",
105
+ "@codingame/monaco-vscode-environment-service-override": "5.2.0",
106
+ "@codingame/monaco-vscode-layout-service-override": "5.2.0",
107
+ "@codingame/monaco-vscode-host-service-override": "5.2.0",
108
+ "@codingame/monaco-vscode-base-service-override": "5.2.0"
109
109
  }
110
110
  }
@@ -1,72 +1,120 @@
1
1
  import { IEditorOverrideServices } from '../vscode/src/vs/editor/standalone/browser/standaloneServices.js';
2
2
  export { InMemoryFileSystemProvider } from '../vscode/src/vs/platform/files/common/inMemoryFilesystemProvider.js';
3
3
  import { URI } from '../vscode/src/vs/base/common/uri.js';
4
- import { FileType, IStat, IFileSystemProviderWithFileReadWriteCapability, IFileChange, IWatchOptions, IFileWriteOptions, IFileDeleteOptions, IFileOverwriteOptions, IFileSystemProvider, FileSystemProviderCapabilities, FileChangeType } from '../vscode/src/vs/platform/files/common/files.js';
4
+ import { FileType, IStat, IFileSystemProviderWithFileReadWriteCapability, IFileSystemProviderWithOpenReadWriteCloseCapability, IFileSystemProviderWithFileReadStreamCapability, IFileSystemProviderWithFileAtomicReadCapability, IFileSystemProviderWithFileAtomicWriteCapability, IFileSystemProviderWithFileAtomicDeleteCapability, IFileChange, IFileReadStreamOptions, IFileWriteOptions, IWatchOptions, IFileDeleteOptions, IFileOverwriteOptions, IFileSystemProvider, FileSystemProviderCapabilities, FileChangeType } from '../vscode/src/vs/platform/files/common/files.js';
5
5
  export { FilePermission, FileSystemProviderError, FileSystemProviderErrorCode } from '../vscode/src/vs/platform/files/common/files.js';
6
6
  import { Disposable, IDisposable } from '../vscode/src/vs/base/common/lifecycle.js';
7
7
  import { Emitter, Event } from '../vscode/src/vs/base/common/event.js';
8
8
  export { HTMLFileSystemProvider } from '../vscode/src/vs/platform/files/browser/htmlFileSystemProvider.js';
9
9
  import { IndexedDBFileSystemProvider } from '../vscode/src/vs/platform/files/browser/indexedDBFileSystemProvider.js';
10
10
  export { IndexedDB } from '../vscode/src/vs/base/browser/indexedDB.js';
11
+ import { ReadableStreamEvents } from '../vscode/src/vs/base/common/stream.js';
12
+ import { CancellationToken } from '../vscode/src/vs/base/common/cancellation.js';
11
13
 
12
- declare abstract class RegisteredFile {
14
+ interface _RegisteredNode {
15
+ type: FileType;
16
+ stats(): Promise<IStat>;
17
+ onDidDelete: Event<void>;
18
+ onDidChange: Event<void>;
19
+ }
20
+ interface RegisteredFileNode extends _RegisteredNode {
21
+ type: FileType.File;
22
+ uri: URI;
23
+ read(): Promise<Uint8Array>;
24
+ readStream?(): Promise<ReadableStream<Uint8Array>>;
25
+ write(content: Uint8Array): Promise<void>;
26
+ delete(): void;
27
+ }
28
+ interface RegisteredDirectoryNode extends _RegisteredNode {
29
+ type: FileType.Directory;
30
+ addChild(name: string, node: RegisteredNode): IDisposable;
31
+ deleteChild(name: string): boolean;
32
+ getChildren(name: string): RegisteredNode | undefined;
33
+ read(): [string, FileType][];
34
+ }
35
+ type RegisteredNode = RegisteredFileNode | RegisteredDirectoryNode;
36
+ declare abstract class RegisteredFile implements RegisteredFileNode {
13
37
  uri: URI;
14
38
  private readonly;
15
39
  protected ctime: number;
16
40
  protected mtime: number;
17
- readonly type: FileType;
41
+ readonly type = FileType.File;
18
42
  protected _onDidChange: Emitter<void>;
19
43
  onDidChange: Event<void>;
20
44
  protected _onDidDelete: Emitter<void>;
21
45
  onDidDelete: Event<void>;
22
- protected _onDidRename: Emitter<{
23
- from: URI;
24
- to: URI;
25
- }>;
26
- onDidRename: Event<{
27
- from: URI;
28
- to: URI;
29
- }>;
30
46
  constructor(uri: URI, readonly: boolean);
31
47
  stats(): Promise<IStat>;
32
- getSize(): Promise<number>;
33
- abstract read(): Promise<string | Uint8Array>;
34
- abstract write(content: string): Promise<void>;
48
+ abstract getSize(): Promise<number>;
35
49
  delete(): Promise<void>;
36
- rename(to: URI): Promise<void>;
50
+ abstract read(): Promise<Uint8Array>;
51
+ abstract write(content: Uint8Array): Promise<void>;
37
52
  }
38
53
  declare class RegisteredReadOnlyFile extends RegisteredFile {
39
- read: () => Promise<string | Uint8Array>;
40
- constructor(uri: URI, read: () => Promise<string | Uint8Array>);
54
+ read: () => Promise<Uint8Array>;
55
+ private size;
56
+ constructor(uri: URI, read: () => Promise<Uint8Array>, size: number);
57
+ getSize(): Promise<number>;
58
+ write(): Promise<void>;
59
+ delete(): Promise<void>;
60
+ }
61
+ interface ExtensionFileMetadata {
62
+ mimeType?: string;
63
+ size?: number;
64
+ }
65
+ declare class RegisteredUriFile extends RegisteredFile {
66
+ private url;
67
+ private metadata?;
68
+ constructor(location: URI, url: string, metadata?: ExtensionFileMetadata | undefined);
69
+ private fetch;
70
+ getSize(): Promise<number>;
71
+ read(): Promise<Uint8Array>;
72
+ readStream(): Promise<ReadableStream<Uint8Array>>;
41
73
  write(): Promise<void>;
42
74
  delete(): Promise<void>;
43
- rename(): Promise<void>;
44
75
  }
45
76
  declare class RegisteredMemoryFile extends RegisteredFile {
46
77
  private content;
47
- constructor(uri: URI, content: string);
48
- read(): Promise<string | Uint8Array>;
49
- write(content: string): Promise<void>;
78
+ constructor(uri: URI, content: string | Uint8Array);
79
+ getSize(): Promise<number>;
80
+ read(): Promise<Uint8Array>;
81
+ write(content: Uint8Array): Promise<void>;
50
82
  }
51
- declare class RegisteredFileSystemProvider extends Disposable implements IFileSystemProviderWithFileReadWriteCapability {
52
- private files;
53
- capabilities: number;
54
- constructor(readonly: boolean);
83
+ declare class RegisteredFileSystemProvider extends Disposable implements IFileSystemProviderWithFileReadWriteCapability, IFileSystemProviderWithOpenReadWriteCloseCapability, IFileSystemProviderWithFileReadStreamCapability, IFileSystemProviderWithFileAtomicReadCapability, IFileSystemProviderWithFileAtomicWriteCapability, IFileSystemProviderWithFileAtomicDeleteCapability {
84
+ private memoryFdCounter;
85
+ private readonly fdMemory;
86
+ private rootByAuthority;
55
87
  onDidChangeCapabilities: Event<any>;
56
88
  _onDidChangeFile: Emitter<readonly IFileChange[]>;
57
89
  onDidChangeFile: Event<readonly IFileChange[]>;
58
- private formatUri;
59
- registerFile(file: RegisteredFile): IDisposable;
90
+ capabilities: number;
91
+ constructor(readonly: boolean);
92
+ open(resource: URI): Promise<number>;
93
+ close(fd: number): Promise<void>;
94
+ read(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
95
+ write(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
96
+ private _lookupRoot;
97
+ private _lookup;
98
+ private _lookupAsDirectory;
99
+ private _lookupAsFile;
100
+ registerFile(file: RegisteredFileNode): IDisposable;
60
101
  stat(resource: URI): Promise<IStat>;
102
+ readdirSync(resource: URI): [string, FileType][];
61
103
  readdir(resource: URI): Promise<[string, FileType][]>;
62
104
  readFile(resource: URI): Promise<Uint8Array>;
105
+ readFileStream(resource: URI, opts: IFileReadStreamOptions, token: CancellationToken): ReadableStreamEvents<Uint8Array>;
63
106
  watch(): IDisposable;
64
- writeFile(resource: URI, content: Uint8Array): Promise<void>;
107
+ writeFile(resource: URI, content: Uint8Array, opts: IFileWriteOptions): Promise<void>;
108
+ rename(): Promise<void>;
109
+ mkdirSync(resource: URI): RegisteredDirectoryNode;
110
+ mkdir(): Promise<void>;
111
+ private deleteSync;
65
112
  delete(resource: URI): Promise<void>;
66
- rename(from: URI, to: URI): Promise<void>;
67
- mkdir(): Promise<never>;
113
+ private _bufferedChanges;
114
+ private _fireSoonHandle?;
115
+ private _fireSoon;
68
116
  }
69
- declare class OverlayFileSystemProvider implements IFileSystemProviderWithFileReadWriteCapability {
117
+ declare class OverlayFileSystemProvider implements IFileSystemProviderWithFileReadWriteCapability, IFileSystemProviderWithFileReadStreamCapability, IFileSystemProviderWithFileAtomicReadCapability, IFileSystemProviderWithFileAtomicWriteCapability, IFileSystemProviderWithFileAtomicDeleteCapability {
70
118
  private providers;
71
119
  register(priority: number, provider: IFileSystemProviderWithFileReadWriteCapability): IDisposable;
72
120
  get delegates(): IFileSystemProviderWithFileReadWriteCapability[];
@@ -77,9 +125,11 @@ declare class OverlayFileSystemProvider implements IFileSystemProviderWithFileRe
77
125
  onDidChangeOverlays: Event<void>;
78
126
  capabilities: number;
79
127
  private readFromDelegates;
128
+ private readFromDelegatesSync;
80
129
  private writeToDelegates;
81
130
  stat(resource: URI): Promise<IStat>;
82
131
  readFile(resource: URI): Promise<Uint8Array>;
132
+ readFileStream(resource: URI, opts: IFileReadStreamOptions, token: CancellationToken): ReadableStreamEvents<Uint8Array>;
83
133
  readdir(resource: URI): Promise<[string, FileType][]>;
84
134
  watch(resource: URI, opts: IWatchOptions): IDisposable;
85
135
  writeFile(resource: URI, content: Uint8Array, opts: IFileWriteOptions): Promise<void>;
@@ -135,7 +185,7 @@ declare function getServiceOverride(): IEditorOverrideServices;
135
185
  * the default file system provider for a given scheme.
136
186
  */
137
187
  declare function registerCustomProvider(scheme: string, provider: IFileSystemProvider): void;
138
- declare function registerExtensionFile(extensionLocation: URI, filePath: string, getContent: () => Promise<string | Uint8Array>): IDisposable;
188
+ declare function registerExtensionFile(file: RegisteredFileNode): IDisposable;
139
189
  /**
140
190
  * Can be used to create a file before the fileService is initialized
141
191
  */
@@ -162,4 +212,4 @@ declare function registerHTMLFileSystemProvider(): void;
162
212
  */
163
213
  declare function registerFileSystemOverlay(priority: number, provider: IFileSystemProviderWithFileReadWriteCapability): IDisposable;
164
214
 
165
- export { CustomSchemas, DelegateFileSystemProvider, EmptyFileSystemProvider, FileChangeType, FileSystemProviderCapabilities, FileType, IFileChange, IFileDeleteOptions, IFileOverwriteOptions, IFileSystemProviderWithFileReadWriteCapability, IFileWriteOptions, IStat, IWatchOptions, IndexedDBFileSystemProvider, OverlayFileSystemProvider, RegisteredFile, RegisteredFileSystemProvider, RegisteredMemoryFile, RegisteredReadOnlyFile, createIndexedDBProviders, getServiceOverride as default, initFile, registerCustomProvider, registerExtensionFile, registerFileSystemOverlay, registerHTMLFileSystemProvider };
215
+ export { CustomSchemas, DelegateFileSystemProvider, EmptyFileSystemProvider, type ExtensionFileMetadata, FileChangeType, FileSystemProviderCapabilities, FileType, IFileChange, IFileDeleteOptions, IFileOverwriteOptions, IFileSystemProviderWithFileReadWriteCapability, IFileWriteOptions, IStat, IWatchOptions, IndexedDBFileSystemProvider, OverlayFileSystemProvider, RegisteredFile, RegisteredFileSystemProvider, RegisteredMemoryFile, RegisteredReadOnlyFile, RegisteredUriFile, createIndexedDBProviders, getServiceOverride as default, initFile, registerCustomProvider, registerExtensionFile, registerFileSystemOverlay, registerHTMLFileSystemProvider };