@theia/filesystem 1.48.1 → 1.48.2
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 +30 -30
- package/lib/browser/breadcrumbs/filepath-breadcrumb.d.ts +15 -15
- package/lib/browser/breadcrumbs/filepath-breadcrumb.js +41 -41
- package/lib/browser/breadcrumbs/filepath-breadcrumbs-container.d.ts +13 -13
- package/lib/browser/breadcrumbs/filepath-breadcrumbs-container.js +70 -70
- package/lib/browser/breadcrumbs/filepath-breadcrumbs-contribution.d.ts +27 -27
- package/lib/browser/breadcrumbs/filepath-breadcrumbs-contribution.js +118 -118
- package/lib/browser/download/file-download-command-contribution.d.ts +18 -18
- package/lib/browser/download/file-download-command-contribution.js +75 -75
- package/lib/browser/download/file-download-frontend-module.d.ts +3 -3
- package/lib/browser/download/file-download-frontend-module.js +25 -25
- package/lib/browser/download/file-download-service.d.ts +28 -28
- package/lib/browser/download/file-download-service.js +167 -167
- package/lib/browser/file-dialog/file-dialog-container.d.ts +5 -5
- package/lib/browser/file-dialog/file-dialog-container.js +60 -60
- package/lib/browser/file-dialog/file-dialog-hidden-files-renderer.d.ts +15 -15
- package/lib/browser/file-dialog/file-dialog-hidden-files-renderer.js +59 -59
- package/lib/browser/file-dialog/file-dialog-model.d.ts +25 -25
- package/lib/browser/file-dialog/file-dialog-model.js +100 -100
- package/lib/browser/file-dialog/file-dialog-module.d.ts +3 -3
- package/lib/browser/file-dialog/file-dialog-module.js +45 -45
- package/lib/browser/file-dialog/file-dialog-service.d.ts +32 -32
- package/lib/browser/file-dialog/file-dialog-service.js +101 -101
- package/lib/browser/file-dialog/file-dialog-tree-filters-renderer.d.ts +39 -39
- package/lib/browser/file-dialog/file-dialog-tree-filters-renderer.js +81 -81
- package/lib/browser/file-dialog/file-dialog-tree.d.ts +26 -26
- package/lib/browser/file-dialog/file-dialog-tree.js +83 -83
- package/lib/browser/file-dialog/file-dialog-widget.d.ts +15 -15
- package/lib/browser/file-dialog/file-dialog-widget.js +75 -75
- package/lib/browser/file-dialog/file-dialog.d.ts +129 -129
- package/lib/browser/file-dialog/file-dialog.js +351 -351
- package/lib/browser/file-dialog/index.d.ts +4 -4
- package/lib/browser/file-dialog/index.js +22 -22
- package/lib/browser/file-resource.d.ts +67 -67
- package/lib/browser/file-resource.js +369 -369
- package/lib/browser/file-selection.d.ts +14 -14
- package/lib/browser/file-selection.js +36 -36
- package/lib/browser/file-service.d.ts +425 -425
- package/lib/browser/file-service.js +1366 -1366
- package/lib/browser/file-tree/file-tree-container.d.ts +3 -3
- package/lib/browser/file-tree/file-tree-container.js +35 -35
- package/lib/browser/file-tree/file-tree-decorator-adapter.d.ts +30 -30
- package/lib/browser/file-tree/file-tree-decorator-adapter.js +169 -169
- package/lib/browser/file-tree/file-tree-label-provider.d.ts +12 -12
- package/lib/browser/file-tree/file-tree-label-provider.js +54 -54
- package/lib/browser/file-tree/file-tree-model.d.ts +37 -37
- package/lib/browser/file-tree/file-tree-model.js +217 -217
- package/lib/browser/file-tree/file-tree-widget.d.ts +44 -44
- package/lib/browser/file-tree/file-tree-widget.js +317 -317
- package/lib/browser/file-tree/file-tree.d.ts +46 -46
- package/lib/browser/file-tree/file-tree.js +176 -176
- package/lib/browser/file-tree/index.d.ts +6 -6
- package/lib/browser/file-tree/index.js +24 -24
- package/lib/browser/file-upload-service.d.ts +109 -109
- package/lib/browser/file-upload-service.js +434 -434
- package/lib/browser/filesystem-frontend-contribution.d.ts +74 -74
- package/lib/browser/filesystem-frontend-contribution.js +356 -356
- package/lib/browser/filesystem-frontend-module.d.ts +5 -5
- package/lib/browser/filesystem-frontend-module.js +64 -64
- package/lib/browser/filesystem-preferences.d.ts +29 -29
- package/lib/browser/filesystem-preferences.js +110 -110
- package/lib/browser/filesystem-save-resource-service.d.ts +29 -29
- package/lib/browser/filesystem-save-resource-service.js +135 -135
- package/lib/browser/filesystem-watcher-error-handler.d.ts +10 -10
- package/lib/browser/filesystem-watcher-error-handler.js +61 -61
- package/lib/browser/index.d.ts +5 -5
- package/lib/browser/index.js +23 -23
- package/lib/browser/location/index.d.ts +2 -2
- package/lib/browser/location/index.js +20 -20
- package/lib/browser/location/location-renderer.d.ts +100 -100
- package/lib/browser/location/location-renderer.js +343 -343
- package/lib/browser/location/location-service.d.ts +5 -5
- package/lib/browser/location/location-service.js +17 -17
- package/lib/browser/remote-file-service-contribution.d.ts +6 -6
- package/lib/browser/remote-file-service-contribution.js +39 -39
- package/lib/browser-only/browser-only-filesystem-frontend-module.d.ts +3 -3
- package/lib/browser-only/browser-only-filesystem-frontend-module.js +40 -40
- package/lib/browser-only/browser-only-filesystem-provider-server.d.ts +11 -11
- package/lib/browser-only/browser-only-filesystem-provider-server.js +39 -39
- package/lib/browser-only/browserfs-filesystem-initialization.d.ts +12 -12
- package/lib/browser-only/browserfs-filesystem-initialization.js +54 -54
- package/lib/browser-only/browserfs-filesystem-provider.d.ts +45 -45
- package/lib/browser-only/browserfs-filesystem-provider.js +439 -439
- package/lib/common/delegating-file-system-provider.d.ts +76 -76
- package/lib/common/delegating-file-system-provider.js +168 -168
- package/lib/common/download/file-download-data.d.ts +6 -6
- package/lib/common/download/file-download-data.js +26 -26
- package/lib/common/file-upload.d.ts +1 -1
- package/lib/common/file-upload.js +19 -19
- package/lib/common/files.d.ts +659 -659
- package/lib/common/files.js +355 -355
- package/lib/common/files.spec.d.ts +1 -1
- package/lib/common/files.spec.js +51 -51
- package/lib/common/filesystem-utils.d.ts +14 -14
- package/lib/common/filesystem-utils.js +63 -63
- package/lib/common/filesystem-utils.spec.d.ts +1 -1
- package/lib/common/filesystem-utils.spec.js +378 -378
- package/lib/common/filesystem-watcher-protocol.d.ts +71 -71
- package/lib/common/filesystem-watcher-protocol.js +20 -20
- package/lib/common/filesystem.d.ts +22 -22
- package/lib/common/filesystem.js +42 -42
- package/lib/common/index.d.ts +2 -2
- package/lib/common/index.js +20 -20
- package/lib/common/io.d.ts +19 -19
- package/lib/common/io.js +110 -110
- package/lib/common/remote-file-system-provider.d.ts +173 -173
- package/lib/common/remote-file-system-provider.js +435 -435
- package/lib/electron-browser/file-dialog/electron-file-dialog-module.d.ts +3 -3
- package/lib/electron-browser/file-dialog/electron-file-dialog-module.js +24 -24
- package/lib/electron-browser/file-dialog/electron-file-dialog-service.d.ts +19 -19
- package/lib/electron-browser/file-dialog/electron-file-dialog-service.js +148 -148
- package/lib/electron-browser/preload.d.ts +1 -1
- package/lib/electron-browser/preload.js +30 -30
- package/lib/electron-common/electron-api.d.ts +34 -34
- package/lib/electron-common/electron-api.js +20 -20
- package/lib/electron-main/electron-api-main.d.ts +5 -5
- package/lib/electron-main/electron-api-main.js +73 -73
- package/lib/electron-main/electron-main-module.d.ts +3 -3
- package/lib/electron-main/electron-main-module.js +24 -24
- package/lib/node/disk-file-system-provider.d.ts +72 -72
- package/lib/node/disk-file-system-provider.js +787 -787
- package/lib/node/disk-file-system-provider.spec.d.ts +1 -1
- package/lib/node/disk-file-system-provider.spec.js +122 -122
- package/lib/node/download/directory-archiver.d.ts +9 -9
- package/lib/node/download/directory-archiver.js +127 -127
- package/lib/node/download/directory-archiver.spec.d.ts +1 -1
- package/lib/node/download/directory-archiver.spec.js +97 -97
- package/lib/node/download/file-download-backend-module.d.ts +3 -3
- package/lib/node/download/file-download-backend-module.js +32 -32
- package/lib/node/download/file-download-cache.d.ts +21 -21
- package/lib/node/download/file-download-cache.js +82 -82
- package/lib/node/download/file-download-endpoint.d.ts +11 -11
- package/lib/node/download/file-download-endpoint.js +67 -67
- package/lib/node/download/file-download-handler.d.ts +50 -50
- package/lib/node/download/file-download-handler.js +307 -307
- package/lib/node/download/test/mock-directory-archiver.d.ts +7 -7
- package/lib/node/download/test/mock-directory-archiver.js +29 -29
- package/lib/node/file-change-collection.d.ts +22 -22
- package/lib/node/file-change-collection.js +77 -77
- package/lib/node/file-change-collection.spec.d.ts +1 -1
- package/lib/node/file-change-collection.spec.js +90 -90
- package/lib/node/filesystem-backend-module.d.ts +26 -26
- package/lib/node/filesystem-backend-module.js +120 -120
- package/lib/node/filesystem-watcher-client.d.ts +23 -23
- package/lib/node/filesystem-watcher-client.js +75 -75
- package/lib/node/filesystem-watcher-dispatcher.d.ts +23 -23
- package/lib/node/filesystem-watcher-dispatcher.js +80 -80
- package/lib/node/node-file-upload-service.d.ts +16 -16
- package/lib/node/node-file-upload-service.js +79 -79
- package/lib/node/nsfw-watcher/index.d.ts +3 -3
- package/lib/node/nsfw-watcher/index.js +39 -39
- package/lib/node/nsfw-watcher/nsfw-filesystem-service.d.ts +191 -191
- package/lib/node/nsfw-watcher/nsfw-filesystem-service.js +405 -405
- package/lib/node/nsfw-watcher/nsfw-filesystem-watcher.spec.d.ts +1 -1
- package/lib/node/nsfw-watcher/nsfw-filesystem-watcher.spec.js +151 -151
- package/lib/node/nsfw-watcher/nsfw-options.d.ts +6 -6
- package/lib/node/nsfw-watcher/nsfw-options.js +22 -22
- package/package.json +4 -4
- package/src/browser/breadcrumbs/filepath-breadcrumb.ts +43 -43
- package/src/browser/breadcrumbs/filepath-breadcrumbs-container.ts +65 -65
- package/src/browser/breadcrumbs/filepath-breadcrumbs-contribution.ts +129 -129
- package/src/browser/download/file-download-command-contribution.ts +83 -83
- package/src/browser/download/file-download-frontend-module.ts +25 -25
- package/src/browser/download/file-download-service.ts +179 -179
- package/src/browser/file-dialog/file-dialog-container.ts +67 -67
- package/src/browser/file-dialog/file-dialog-hidden-files-renderer.tsx +59 -59
- package/src/browser/file-dialog/file-dialog-model.ts +96 -96
- package/src/browser/file-dialog/file-dialog-module.ts +44 -44
- package/src/browser/file-dialog/file-dialog-service.ts +99 -99
- package/src/browser/file-dialog/file-dialog-tree-filters-renderer.tsx +100 -100
- package/src/browser/file-dialog/file-dialog-tree.ts +89 -89
- package/src/browser/file-dialog/file-dialog-widget.ts +75 -75
- package/src/browser/file-dialog/file-dialog.ts +434 -434
- package/src/browser/file-dialog/index.ts +20 -20
- package/src/browser/file-resource.ts +390 -390
- package/src/browser/file-selection.ts +44 -44
- package/src/browser/file-service.ts +1841 -1841
- package/src/browser/file-tree/file-tree-container.ts +36 -36
- package/src/browser/file-tree/file-tree-decorator-adapter.ts +159 -159
- package/src/browser/file-tree/file-tree-label-provider.ts +53 -53
- package/src/browser/file-tree/file-tree-model.ts +212 -212
- package/src/browser/file-tree/file-tree-widget.tsx +327 -327
- package/src/browser/file-tree/file-tree.ts +183 -183
- package/src/browser/file-tree/index.ts +22 -22
- package/src/browser/file-upload-service.ts +539 -539
- package/src/browser/filesystem-frontend-contribution.ts +381 -381
- package/src/browser/filesystem-frontend-module.ts +77 -77
- package/src/browser/filesystem-preferences.ts +139 -139
- package/src/browser/filesystem-save-resource-service.ts +125 -125
- package/src/browser/filesystem-watcher-error-handler.ts +60 -60
- package/src/browser/index.ts +21 -21
- package/src/browser/location/index.ts +18 -18
- package/src/browser/location/location-renderer.tsx +404 -404
- package/src/browser/location/location-service.ts +22 -22
- package/src/browser/remote-file-service-contribution.ts +38 -38
- package/src/browser/style/file-dialog.css +208 -208
- package/src/browser/style/file-icons.css +64 -64
- package/src/browser/style/filepath-breadcrumbs.css +20 -20
- package/src/browser/style/index.css +36 -36
- package/src/browser-only/browser-only-filesystem-frontend-module.ts +38 -38
- package/src/browser-only/browser-only-filesystem-provider-server.ts +32 -32
- package/src/browser-only/browserfs-filesystem-initialization.ts +61 -61
- package/src/browser-only/browserfs-filesystem-provider.ts +462 -462
- package/src/common/delegating-file-system-provider.ts +226 -226
- package/src/common/download/README.md +30 -30
- package/src/common/download/file-download-data.ts +27 -27
- package/src/common/file-upload.ts +17 -17
- package/src/common/files.spec.ts +51 -51
- package/src/common/files.ts +996 -996
- package/src/common/filesystem-utils.spec.ts +411 -411
- package/src/common/filesystem-utils.ts +64 -64
- package/src/common/filesystem-watcher-protocol.ts +96 -96
- package/src/common/filesystem.ts +43 -43
- package/src/common/index.ts +18 -18
- package/src/common/io.ts +150 -150
- package/src/common/remote-file-system-provider.ts +549 -549
- package/src/electron-browser/file-dialog/electron-file-dialog-module.ts +24 -24
- package/src/electron-browser/file-dialog/electron-file-dialog-service.ts +165 -165
- package/src/electron-browser/preload.ts +31 -31
- package/src/electron-common/electron-api.ts +55 -55
- package/src/electron-main/electron-api-main.ts +78 -78
- package/src/electron-main/electron-main-module.ts +23 -23
- package/src/node/disk-file-system-provider.spec.ts +142 -142
- package/src/node/disk-file-system-provider.ts +915 -915
- package/src/node/download/directory-archiver.spec.ts +104 -104
- package/src/node/download/directory-archiver.ts +126 -126
- package/src/node/download/file-download-backend-module.ts +32 -32
- package/src/node/download/file-download-cache.ts +88 -88
- package/src/node/download/file-download-endpoint.ts +63 -63
- package/src/node/download/file-download-handler.ts +304 -304
- package/src/node/download/test/mock-directory-archiver.ts +30 -30
- package/src/node/file-change-collection.spec.ts +110 -110
- package/src/node/file-change-collection.ts +78 -78
- package/src/node/filesystem-backend-module.ts +140 -140
- package/src/node/filesystem-watcher-client.ts +72 -72
- package/src/node/filesystem-watcher-dispatcher.ts +82 -82
- package/src/node/node-file-upload-service.ts +80 -80
- package/src/node/nsfw-watcher/index.ts +45 -45
- package/src/node/nsfw-watcher/nsfw-filesystem-service.ts +481 -481
- package/src/node/nsfw-watcher/nsfw-filesystem-watcher.spec.ts +182 -182
- package/src/node/nsfw-watcher/nsfw-options.ts +23 -23
- package/src/typings/dom.webkit.d.ts +77 -77
- package/src/typings/mv/index.d.ts +21 -21
- package/src/typings/nsfw/index.d.ts +18 -18
- package/src/typings/trash/index.d.ts +20 -20
package/lib/common/files.d.ts
CHANGED
|
@@ -1,660 +1,660 @@
|
|
|
1
|
-
import URI from '@theia/core/lib/common/uri';
|
|
2
|
-
import { Event } from '@theia/core/lib/common/event';
|
|
3
|
-
import { Disposable as IDisposable } from '@theia/core/lib/common/disposable';
|
|
4
|
-
import { BinaryBuffer, BinaryBufferReadableStream } from '@theia/core/lib/common/buffer';
|
|
5
|
-
import type { TextDocumentContentChangeEvent } from '@theia/core/shared/vscode-languageserver-protocol';
|
|
6
|
-
import { ReadableStreamEvents } from '@theia/core/lib/common/stream';
|
|
7
|
-
import { CancellationToken } from '@theia/core/lib/common/cancellation';
|
|
8
|
-
import { MarkdownString } from '@theia/core/lib/common/markdown-rendering';
|
|
9
|
-
export declare const enum FileOperation {
|
|
10
|
-
CREATE = 0,
|
|
11
|
-
DELETE = 1,
|
|
12
|
-
MOVE = 2,
|
|
13
|
-
COPY = 3
|
|
14
|
-
}
|
|
15
|
-
export declare class FileOperationEvent {
|
|
16
|
-
readonly resource: URI;
|
|
17
|
-
readonly operation: FileOperation;
|
|
18
|
-
readonly target?: FileStatWithMetadata | undefined;
|
|
19
|
-
constructor(resource: URI, operation: FileOperation.DELETE);
|
|
20
|
-
constructor(resource: URI, operation: FileOperation.CREATE | FileOperation.MOVE | FileOperation.COPY, target: FileStatWithMetadata);
|
|
21
|
-
isOperation(operation: FileOperation.DELETE): boolean;
|
|
22
|
-
isOperation(operation: FileOperation.MOVE | FileOperation.COPY | FileOperation.CREATE): this is {
|
|
23
|
-
readonly target: FileStatWithMetadata;
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Possible changes that can occur to a file.
|
|
28
|
-
*/
|
|
29
|
-
export declare const enum FileChangeType {
|
|
30
|
-
UPDATED = 0,
|
|
31
|
-
ADDED = 1,
|
|
32
|
-
DELETED = 2
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Identifies a single change in a file.
|
|
36
|
-
*/
|
|
37
|
-
export interface FileChange {
|
|
38
|
-
/**
|
|
39
|
-
* The type of change that occurred to the file.
|
|
40
|
-
*/
|
|
41
|
-
readonly type: FileChangeType;
|
|
42
|
-
/**
|
|
43
|
-
* The unified resource identifier of the file that changed.
|
|
44
|
-
*/
|
|
45
|
-
readonly resource: URI;
|
|
46
|
-
}
|
|
47
|
-
export declare class FileChangesEvent {
|
|
48
|
-
readonly changes: readonly FileChange[];
|
|
49
|
-
constructor(changes: readonly FileChange[]);
|
|
50
|
-
/**
|
|
51
|
-
* Returns true if this change event contains the provided file with the given change type (if provided). In case of
|
|
52
|
-
* type DELETED, this method will also return true if a folder got deleted that is the parent of the
|
|
53
|
-
* provided file path.
|
|
54
|
-
*/
|
|
55
|
-
contains(resource: URI, type?: FileChangeType): boolean;
|
|
56
|
-
/**
|
|
57
|
-
* Returns the changes that describe added files.
|
|
58
|
-
*/
|
|
59
|
-
getAdded(): FileChange[];
|
|
60
|
-
/**
|
|
61
|
-
* Returns if this event contains added files.
|
|
62
|
-
*/
|
|
63
|
-
gotAdded(): boolean;
|
|
64
|
-
/**
|
|
65
|
-
* Returns the changes that describe deleted files.
|
|
66
|
-
*/
|
|
67
|
-
getDeleted(): FileChange[];
|
|
68
|
-
/**
|
|
69
|
-
* Returns if this event contains deleted files.
|
|
70
|
-
*/
|
|
71
|
-
gotDeleted(): boolean;
|
|
72
|
-
/**
|
|
73
|
-
* Returns the changes that describe updated files.
|
|
74
|
-
*/
|
|
75
|
-
getUpdated(): FileChange[];
|
|
76
|
-
/**
|
|
77
|
-
* Returns if this event contains updated files.
|
|
78
|
-
*/
|
|
79
|
-
gotUpdated(): boolean;
|
|
80
|
-
private getOfType;
|
|
81
|
-
private hasType;
|
|
82
|
-
}
|
|
83
|
-
export interface BaseStat {
|
|
84
|
-
/**
|
|
85
|
-
* The unified resource identifier of this file or folder.
|
|
86
|
-
*/
|
|
87
|
-
resource: URI;
|
|
88
|
-
/**
|
|
89
|
-
* The name which is the last segment
|
|
90
|
-
* of the {{path}}.
|
|
91
|
-
*/
|
|
92
|
-
name: string;
|
|
93
|
-
/**
|
|
94
|
-
* The size of the file.
|
|
95
|
-
*
|
|
96
|
-
* The value may or may not be resolved as
|
|
97
|
-
* it is optional.
|
|
98
|
-
*/
|
|
99
|
-
size?: number;
|
|
100
|
-
/**
|
|
101
|
-
* The last modification date represented as millis from unix epoch.
|
|
102
|
-
*
|
|
103
|
-
* The value may or may not be resolved as
|
|
104
|
-
* it is optional.
|
|
105
|
-
*/
|
|
106
|
-
mtime?: number;
|
|
107
|
-
/**
|
|
108
|
-
* The creation date represented as millis from unix epoch.
|
|
109
|
-
*
|
|
110
|
-
* The value may or may not be resolved as
|
|
111
|
-
* it is optional.
|
|
112
|
-
*/
|
|
113
|
-
ctime?: number;
|
|
114
|
-
/**
|
|
115
|
-
* A unique identifier that represents the
|
|
116
|
-
* current state of the file or directory.
|
|
117
|
-
*
|
|
118
|
-
* The value may or may not be resolved as
|
|
119
|
-
* it is optional.
|
|
120
|
-
*/
|
|
121
|
-
etag?: string;
|
|
122
|
-
}
|
|
123
|
-
export declare namespace BaseStat {
|
|
124
|
-
function is(arg: unknown): arg is BaseStat;
|
|
125
|
-
}
|
|
126
|
-
export interface BaseStatWithMetadata extends BaseStat {
|
|
127
|
-
mtime: number;
|
|
128
|
-
ctime: number;
|
|
129
|
-
etag: string;
|
|
130
|
-
size: number;
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* A file resource with meta information.
|
|
134
|
-
*/
|
|
135
|
-
export interface FileStat extends BaseStat {
|
|
136
|
-
/**
|
|
137
|
-
* The resource is a file.
|
|
138
|
-
*/
|
|
139
|
-
isFile: boolean;
|
|
140
|
-
/**
|
|
141
|
-
* The resource is a directory.
|
|
142
|
-
*/
|
|
143
|
-
isDirectory: boolean;
|
|
144
|
-
/**
|
|
145
|
-
* The resource is a symbolic link.
|
|
146
|
-
*/
|
|
147
|
-
isSymbolicLink: boolean;
|
|
148
|
-
/**
|
|
149
|
-
* The resource is read only.
|
|
150
|
-
*/
|
|
151
|
-
isReadonly: boolean;
|
|
152
|
-
/**
|
|
153
|
-
* The children of the file stat or undefined if none.
|
|
154
|
-
*/
|
|
155
|
-
children?: FileStat[];
|
|
156
|
-
}
|
|
157
|
-
export declare namespace FileStat {
|
|
158
|
-
function is(arg: unknown): arg is FileStat;
|
|
159
|
-
function asFileType(stat: FileStat): FileType;
|
|
160
|
-
function toStat(stat: FileStat): Stat | {
|
|
161
|
-
type: FileType;
|
|
162
|
-
} & Partial<Stat>;
|
|
163
|
-
function fromStat(resource: URI, stat: Stat): FileStatWithMetadata;
|
|
164
|
-
function fromStat(resource: URI, stat: {
|
|
165
|
-
type: FileType;
|
|
166
|
-
} & Partial<Stat>): FileStat;
|
|
167
|
-
function dir(resource: string | URI, stat?: Partial<Omit<Stat, 'type'>>): FileStat;
|
|
168
|
-
function file(resource: string | URI, stat?: Partial<Omit<Stat, 'type'>>): FileStat;
|
|
169
|
-
}
|
|
170
|
-
export interface FileStatWithMetadata extends FileStat, BaseStatWithMetadata {
|
|
171
|
-
mtime: number;
|
|
172
|
-
ctime: number;
|
|
173
|
-
etag: string;
|
|
174
|
-
size: number;
|
|
175
|
-
children?: FileStatWithMetadata[];
|
|
176
|
-
}
|
|
177
|
-
export interface ResolveFileResult {
|
|
178
|
-
stat?: FileStat;
|
|
179
|
-
success: boolean;
|
|
180
|
-
}
|
|
181
|
-
export interface ResolveFileResultWithMetadata extends ResolveFileResult {
|
|
182
|
-
stat?: FileStatWithMetadata;
|
|
183
|
-
}
|
|
184
|
-
export interface FileContent extends BaseStatWithMetadata {
|
|
185
|
-
/**
|
|
186
|
-
* The content of a file as buffer.
|
|
187
|
-
*/
|
|
188
|
-
value: BinaryBuffer;
|
|
189
|
-
}
|
|
190
|
-
export interface FileStreamContent extends BaseStatWithMetadata {
|
|
191
|
-
/**
|
|
192
|
-
* The content of a file as stream.
|
|
193
|
-
*/
|
|
194
|
-
value: BinaryBufferReadableStream;
|
|
195
|
-
}
|
|
196
|
-
export interface WriteFileOptions {
|
|
197
|
-
/**
|
|
198
|
-
* The last known modification time of the file. This can be used to prevent dirty writes.
|
|
199
|
-
*/
|
|
200
|
-
readonly mtime?: number;
|
|
201
|
-
/**
|
|
202
|
-
* The etag of the file. This can be used to prevent dirty writes.
|
|
203
|
-
*/
|
|
204
|
-
readonly etag?: string;
|
|
205
|
-
}
|
|
206
|
-
export interface ReadFileOptions extends FileReadStreamOptions {
|
|
207
|
-
/**
|
|
208
|
-
* The optional etag parameter allows to return early from resolving the resource if
|
|
209
|
-
* the contents on disk match the etag. This prevents accumulated reading of resources
|
|
210
|
-
* that have been read already with the same etag.
|
|
211
|
-
* It is the task of the caller to makes sure to handle this error case from the promise.
|
|
212
|
-
*/
|
|
213
|
-
readonly etag?: string;
|
|
214
|
-
}
|
|
215
|
-
export interface WriteFileOptions {
|
|
216
|
-
/**
|
|
217
|
-
* The last known modification time of the file. This can be used to prevent dirty writes.
|
|
218
|
-
*/
|
|
219
|
-
readonly mtime?: number;
|
|
220
|
-
/**
|
|
221
|
-
* The etag of the file. This can be used to prevent dirty writes.
|
|
222
|
-
*/
|
|
223
|
-
readonly etag?: string;
|
|
224
|
-
}
|
|
225
|
-
export interface ResolveFileOptions {
|
|
226
|
-
/**
|
|
227
|
-
* Automatically continue resolving children of a directory until the provided resources
|
|
228
|
-
* are found.
|
|
229
|
-
*/
|
|
230
|
-
readonly resolveTo?: readonly URI[];
|
|
231
|
-
/**
|
|
232
|
-
* Automatically continue resolving children of a directory if the number of children is 1.
|
|
233
|
-
*/
|
|
234
|
-
readonly resolveSingleChildDescendants?: boolean;
|
|
235
|
-
/**
|
|
236
|
-
* Will resolve mtime, ctime, size and etag of files if enabled. This can have a negative impact
|
|
237
|
-
* on performance and thus should only be used when these values are required.
|
|
238
|
-
*/
|
|
239
|
-
readonly resolveMetadata?: boolean;
|
|
240
|
-
}
|
|
241
|
-
export interface ResolveMetadataFileOptions extends ResolveFileOptions {
|
|
242
|
-
readonly resolveMetadata: true;
|
|
243
|
-
}
|
|
244
|
-
export interface FileOperationOptions {
|
|
245
|
-
/**
|
|
246
|
-
* Indicates that a user action triggered the opening, e.g.
|
|
247
|
-
* via mouse or keyboard use. Default is true.
|
|
248
|
-
*/
|
|
249
|
-
fromUserGesture?: boolean;
|
|
250
|
-
}
|
|
251
|
-
export interface MoveFileOptions extends FileOperationOptions, Partial<FileOverwriteOptions> {
|
|
252
|
-
}
|
|
253
|
-
export interface CopyFileOptions extends FileOperationOptions, Partial<FileOverwriteOptions> {
|
|
254
|
-
}
|
|
255
|
-
export interface CreateFileOptions extends FileOperationOptions, Partial<FileOverwriteOptions> {
|
|
256
|
-
}
|
|
257
|
-
export declare class FileOperationError extends Error {
|
|
258
|
-
fileOperationResult: FileOperationResult;
|
|
259
|
-
options?: (ReadFileOptions & WriteFileOptions & CreateFileOptions) | undefined;
|
|
260
|
-
constructor(message: string, fileOperationResult: FileOperationResult, options?: (ReadFileOptions & WriteFileOptions & CreateFileOptions) | undefined);
|
|
261
|
-
}
|
|
262
|
-
export declare const enum FileOperationResult {
|
|
263
|
-
FILE_IS_DIRECTORY = 0,
|
|
264
|
-
FILE_NOT_FOUND = 1,
|
|
265
|
-
FILE_NOT_MODIFIED_SINCE = 2,
|
|
266
|
-
FILE_MODIFIED_SINCE = 3,
|
|
267
|
-
FILE_MOVE_CONFLICT = 4,
|
|
268
|
-
FILE_READ_ONLY = 5,
|
|
269
|
-
FILE_PERMISSION_DENIED = 6,
|
|
270
|
-
FILE_TOO_LARGE = 7,
|
|
271
|
-
FILE_INVALID_PATH = 8,
|
|
272
|
-
FILE_EXCEEDS_MEMORY_LIMIT = 9,
|
|
273
|
-
FILE_NOT_DIRECTORY = 10,
|
|
274
|
-
FILE_OTHER_ERROR = 11
|
|
275
|
-
}
|
|
276
|
-
export interface FileOverwriteOptions {
|
|
277
|
-
/**
|
|
278
|
-
* Overwrite the file to create if it already exists on disk. Otherwise
|
|
279
|
-
* an error will be thrown (FILE_MODIFIED_SINCE).
|
|
280
|
-
*/
|
|
281
|
-
overwrite: boolean;
|
|
282
|
-
}
|
|
283
|
-
export interface FileReadStreamOptions {
|
|
284
|
-
/**
|
|
285
|
-
* Is an integer specifying where to begin reading from in the file. If position is undefined,
|
|
286
|
-
* data will be read from the current file position.
|
|
287
|
-
*/
|
|
288
|
-
readonly position?: number;
|
|
289
|
-
/**
|
|
290
|
-
* Is an integer specifying how many bytes to read from the file. By default, all bytes
|
|
291
|
-
* will be read.
|
|
292
|
-
*/
|
|
293
|
-
readonly length?: number;
|
|
294
|
-
/**
|
|
295
|
-
* If provided, the size of the file will be checked against the limits.
|
|
296
|
-
*/
|
|
297
|
-
limits?: {
|
|
298
|
-
readonly size?: number;
|
|
299
|
-
readonly memory?: number;
|
|
300
|
-
};
|
|
301
|
-
}
|
|
302
|
-
export interface FileUpdateOptions {
|
|
303
|
-
readEncoding: string;
|
|
304
|
-
writeEncoding: string;
|
|
305
|
-
overwriteEncoding: boolean;
|
|
306
|
-
}
|
|
307
|
-
export interface FileUpdateResult extends Stat {
|
|
308
|
-
encoding: string;
|
|
309
|
-
}
|
|
310
|
-
export interface FileWriteOptions {
|
|
311
|
-
overwrite: boolean;
|
|
312
|
-
create: boolean;
|
|
313
|
-
}
|
|
314
|
-
export interface FileOpenOptions {
|
|
315
|
-
create: boolean;
|
|
316
|
-
}
|
|
317
|
-
export interface FileDeleteOptions {
|
|
318
|
-
recursive: boolean;
|
|
319
|
-
useTrash: boolean;
|
|
320
|
-
}
|
|
321
|
-
export declare enum FileType {
|
|
322
|
-
Unknown = 0,
|
|
323
|
-
File = 1,
|
|
324
|
-
Directory = 2,
|
|
325
|
-
SymbolicLink = 64
|
|
326
|
-
}
|
|
327
|
-
export declare enum FilePermission {
|
|
328
|
-
/**
|
|
329
|
-
* File is readonly.
|
|
330
|
-
*/
|
|
331
|
-
Readonly = 1
|
|
332
|
-
}
|
|
333
|
-
export interface Stat {
|
|
334
|
-
type: FileType;
|
|
335
|
-
/**
|
|
336
|
-
* The last modification date represented as millis from unix epoch.
|
|
337
|
-
*/
|
|
338
|
-
mtime: number;
|
|
339
|
-
/**
|
|
340
|
-
* The creation date represented as millis from unix epoch.
|
|
341
|
-
*/
|
|
342
|
-
ctime: number;
|
|
343
|
-
size: number;
|
|
344
|
-
permissions?: FilePermission;
|
|
345
|
-
}
|
|
346
|
-
export interface WatchOptions {
|
|
347
|
-
recursive: boolean;
|
|
348
|
-
excludes: string[];
|
|
349
|
-
}
|
|
350
|
-
export declare const enum FileSystemProviderCapabilities {
|
|
351
|
-
FileReadWrite = 2,
|
|
352
|
-
FileOpenReadWriteClose = 4,
|
|
353
|
-
FileReadStream = 16,
|
|
354
|
-
FileFolderCopy = 8,
|
|
355
|
-
PathCaseSensitive = 1024,
|
|
356
|
-
Readonly = 2048,
|
|
357
|
-
Trash = 4096,
|
|
358
|
-
Access = 16777216,
|
|
359
|
-
Update = 33554432
|
|
360
|
-
}
|
|
361
|
-
export declare enum FileSystemProviderErrorCode {
|
|
362
|
-
FileExists = "EntryExists",
|
|
363
|
-
FileNotFound = "EntryNotFound",
|
|
364
|
-
FileNotADirectory = "EntryNotADirectory",
|
|
365
|
-
FileIsADirectory = "EntryIsADirectory",
|
|
366
|
-
FileExceedsMemoryLimit = "EntryExceedsMemoryLimit",
|
|
367
|
-
FileTooLarge = "EntryTooLarge",
|
|
368
|
-
NoPermissions = "NoPermissions",
|
|
369
|
-
Unavailable = "Unavailable",
|
|
370
|
-
Unknown = "Unknown"
|
|
371
|
-
}
|
|
372
|
-
export declare class FileSystemProviderError extends Error {
|
|
373
|
-
readonly code: FileSystemProviderErrorCode;
|
|
374
|
-
constructor(message: string, code: FileSystemProviderErrorCode);
|
|
375
|
-
}
|
|
376
|
-
export declare function createFileSystemProviderError(error: Error | string, code: FileSystemProviderErrorCode): FileSystemProviderError;
|
|
377
|
-
export declare function ensureFileSystemProviderError(error?: Error): Error;
|
|
378
|
-
export declare const FileSystemProvider: unique symbol;
|
|
379
|
-
/**
|
|
380
|
-
* A {@link FileSystemProvider} provides the capabilities to read, write, discover, and to manage files and folders
|
|
381
|
-
* of the underlying (potentially virtual) file system. {@link FileSystemProvider}s can be used to serve files from both the
|
|
382
|
-
* local disk as well as remote locations like ftp-servers, REST-services etc. A {@link FileSystemProvider} is registered for a certain
|
|
383
|
-
* scheme and can handle all resources whose uri does conform to that scheme.
|
|
384
|
-
*/
|
|
385
|
-
export interface FileSystemProvider {
|
|
386
|
-
/** The {@link FileSystemProviderCapabilities} for this provider. */
|
|
387
|
-
readonly capabilities: FileSystemProviderCapabilities;
|
|
388
|
-
/** * Event that is fired if the capabilities of this provider have changed. */
|
|
389
|
-
readonly onDidChangeCapabilities: Event<void>;
|
|
390
|
-
/** Event that is fired if a (watched) file in the filesystem of this provider has changed. */
|
|
391
|
-
readonly onDidChangeFile: Event<readonly FileChange[]>;
|
|
392
|
-
/** Event that is fired if an error occurred when watching files in the filesystem of this provider. */
|
|
393
|
-
readonly onFileWatchError: Event<void>;
|
|
394
|
-
/**
|
|
395
|
-
* Watch the given resource and react to changes by firing the {@link FileSystemProvider#onDidChangeFile} event.
|
|
396
|
-
* @param resource `URI` of the resource to be watched.
|
|
397
|
-
* @param opts Options to define if the resource should be watched recursively and to
|
|
398
|
-
* provide a set of resources that should be excluded from watching.
|
|
399
|
-
*
|
|
400
|
-
* @returns A `Disposable` that can be invoked to stop watching the resource.
|
|
401
|
-
*/
|
|
402
|
-
watch(resource: URI, opts: WatchOptions): IDisposable;
|
|
403
|
-
/**
|
|
404
|
-
* Retrieve metadata about a given file.
|
|
405
|
-
*
|
|
406
|
-
* @param uri The `URI` of the file to retrieve meta data about.
|
|
407
|
-
* @returns A promise of the metadata about the resource.
|
|
408
|
-
*/
|
|
409
|
-
stat(resource: URI): Promise<Stat>;
|
|
410
|
-
/**
|
|
411
|
-
* Create a new directory using the given resource uri.
|
|
412
|
-
* @param resource The `URI` of the new folder.
|
|
413
|
-
*/
|
|
414
|
-
mkdir(resource: URI): Promise<void>;
|
|
415
|
-
/**
|
|
416
|
-
* Retrieve the content of a given directory.
|
|
417
|
-
* @param resource The `URI` of the directory.
|
|
418
|
-
*
|
|
419
|
-
* @returns A map containing the {@link FileType} for each child resource, identified by name.
|
|
420
|
-
*/
|
|
421
|
-
readdir(resource: URI): Promise<[string, FileType][]>;
|
|
422
|
-
/**
|
|
423
|
-
* Delete the given resource.
|
|
424
|
-
* @param resource The `URI` of the resource to delete.
|
|
425
|
-
* @param opts Options to define if files should be deleted recursively and if the trash should be used.
|
|
426
|
-
*/
|
|
427
|
-
delete(resource: URI, opts: FileDeleteOptions): Promise<void>;
|
|
428
|
-
/**
|
|
429
|
-
* Rename a file or folder.
|
|
430
|
-
* @param from `URI` of the existing file or folder.
|
|
431
|
-
* @param to `URI` of the target location.
|
|
432
|
-
* @param opts Options to define if existing files should be overwritten.
|
|
433
|
-
*/
|
|
434
|
-
rename(from: URI, to: URI, opts: FileOverwriteOptions): Promise<void>;
|
|
435
|
-
/**
|
|
436
|
-
* Optional function that has to be implemented by {@link FileSystemProviderWithFileFolderCopyCapability}.
|
|
437
|
-
* See {@link FileSystemProviderWithFileFolderCopyCapability#copy}} for additional documentation.
|
|
438
|
-
*/
|
|
439
|
-
copy?(from: URI, to: URI, opts: FileOverwriteOptions): Promise<void>;
|
|
440
|
-
/**
|
|
441
|
-
* Optional function that has to be implemented by {@link FileSystemProviderWithFileReadWriteCapability}.
|
|
442
|
-
* See {@link FileSystemProviderWithFileReadWriteCapability#readFile} for additional documentation.
|
|
443
|
-
*/
|
|
444
|
-
readFile?(resource: URI): Promise<Uint8Array>;
|
|
445
|
-
/**
|
|
446
|
-
* Optional function that has to be implemented by {@link FileSystemProviderWithFileReadWriteCapability}.
|
|
447
|
-
* See {@link FileSystemProviderWithFileReadWriteCapability#writeFile} for additional documentation.
|
|
448
|
-
*/
|
|
449
|
-
writeFile?(resource: URI, content: Uint8Array, opts: FileWriteOptions): Promise<void>;
|
|
450
|
-
/**
|
|
451
|
-
* Optional function that has to be implemented by {@link FileSystemProviderWithFileReadStreamCapability}.
|
|
452
|
-
* See {@link FileSystemProviderWithFileReadStreamCapability#readFileStream} for additional documentation.
|
|
453
|
-
*/
|
|
454
|
-
readFileStream?(resource: URI, opts: FileReadStreamOptions, token: CancellationToken): ReadableStreamEvents<Uint8Array>;
|
|
455
|
-
/**
|
|
456
|
-
* Optional function that has to be implemented by {@link FileSystemProviderWithOpenReadWriteCloseCapability}.
|
|
457
|
-
* See {@link FileSystemProviderWithOpenReadWriteCloseCapability#open} for additional documentation.
|
|
458
|
-
*/
|
|
459
|
-
open?(resource: URI, opts: FileOpenOptions): Promise<number>;
|
|
460
|
-
/**
|
|
461
|
-
* Optional function that has to be implemented by {@link FileSystemProviderWithOpenReadWriteCloseCapability}.
|
|
462
|
-
* See {@link FileSystemProviderWithOpenReadWriteCloseCapability#close} for additional documentation.
|
|
463
|
-
*/
|
|
464
|
-
close?(fd: number): Promise<void>;
|
|
465
|
-
/**
|
|
466
|
-
* Optional function that has to be implemented by {@link FileSystemProviderWithOpenReadWriteCloseCapability}.
|
|
467
|
-
* See {@link FileSystemProviderWithOpenReadWriteCloseCapability#read} for additional documentation.
|
|
468
|
-
*/
|
|
469
|
-
read?(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
|
|
470
|
-
/**
|
|
471
|
-
* Optional function that has to be implemented by {@link FileSystemProviderWithOpenReadWriteCloseCapability}.
|
|
472
|
-
* See {@link FileSystemProviderWithOpenReadWriteCloseCapability#write} for additional documentation.
|
|
473
|
-
*/
|
|
474
|
-
write?(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
|
|
475
|
-
/**
|
|
476
|
-
* Optional function that has to be implemented by {@link FileSystemProviderWithAccessCapability}.
|
|
477
|
-
* See {@link FileSystemProviderWithAccessCapability#access} for additional documentation.
|
|
478
|
-
*/
|
|
479
|
-
access?(resource: URI, mode?: number): Promise<void>;
|
|
480
|
-
/**
|
|
481
|
-
* Optional function that has to be implemented by {@link FileSystemProviderWithAccessCapability}.
|
|
482
|
-
* See {@link FileSystemProviderWithAccessCapability#fsPath} for additional documentation.
|
|
483
|
-
*/
|
|
484
|
-
fsPath?(resource: URI): Promise<string>;
|
|
485
|
-
/**
|
|
486
|
-
* Optional function that has to be implemented by {@link FileSystemProviderWithUpdateCapability}.
|
|
487
|
-
* See {@link FileSystemProviderWithUpdateCapability#updateFile} for additional documentation.
|
|
488
|
-
*/
|
|
489
|
-
updateFile?(resource: URI, changes: TextDocumentContentChangeEvent[], opts: FileUpdateOptions): Promise<FileUpdateResult>;
|
|
490
|
-
}
|
|
491
|
-
/**
|
|
492
|
-
* Subtype of {@link FileSystemProvider} that ensures that the optional functions needed for providers, that should be
|
|
493
|
-
* able access files, are implemented.
|
|
494
|
-
*/
|
|
495
|
-
export interface FileSystemProviderWithAccessCapability extends FileSystemProvider {
|
|
496
|
-
/**
|
|
497
|
-
* Tests a user's permissions for the file or directory specified by URI.
|
|
498
|
-
* @param resource The `URI` of the file that should be tested.
|
|
499
|
-
* @param mode An optional integer that specifies the accessibility checks to be performed.
|
|
500
|
-
* Check `FileAccess.Constants` for possible values of mode.
|
|
501
|
-
* It is possible to create a mask consisting of the bitwise `OR` of two or more values (e.g. FileAccess.Constants.W_OK | FileAccess.Constants.R_OK).
|
|
502
|
-
* If `mode` is not defined, `FileAccess.Constants.F_OK` will be used instead.
|
|
503
|
-
*
|
|
504
|
-
* @returns A promise that resolves if the user has the required permissions, should be rejected otherwise.
|
|
505
|
-
*/
|
|
506
|
-
access(resource: URI, mode?: number): Promise<void>;
|
|
507
|
-
/**
|
|
508
|
-
* Returns the path of the given file URI, specific to the backend's operating system.
|
|
509
|
-
* If the URI is not a file URI, undefined is returned.
|
|
510
|
-
*
|
|
511
|
-
* USE WITH CAUTION: You should always prefer URIs to paths if possible, as they are
|
|
512
|
-
* portable and platform independent. Paths should only be used in cases you directly
|
|
513
|
-
* interact with the OS, e.g. when running a command on the shell.
|
|
514
|
-
*
|
|
515
|
-
* @param resource `URI` of the resource to derive the path from.
|
|
516
|
-
*
|
|
517
|
-
* @returns A promise of the corresponding file system path.
|
|
518
|
-
*/
|
|
519
|
-
fsPath(resource: URI): Promise<string>;
|
|
520
|
-
}
|
|
521
|
-
export declare function hasAccessCapability(provider: FileSystemProvider): provider is FileSystemProviderWithAccessCapability;
|
|
522
|
-
/**
|
|
523
|
-
* Subtype of {@link FileSystemProvider} that ensures that the optional functions needed, for providers that should be
|
|
524
|
-
* able to update (text) files, are implemented.
|
|
525
|
-
*/
|
|
526
|
-
export interface FileSystemProviderWithUpdateCapability extends FileSystemProvider {
|
|
527
|
-
/**
|
|
528
|
-
* Update the content of the given (text) file according to the given text document changes.
|
|
529
|
-
* @param resource `URI` of the resource to update.
|
|
530
|
-
* @param changes Array of events describing the changes to the file.
|
|
531
|
-
* @param opts The encoding options.
|
|
532
|
-
*
|
|
533
|
-
* @returns A promise of the file metadata that resolves after the update process has completed.
|
|
534
|
-
*/
|
|
535
|
-
updateFile(resource: URI, changes: TextDocumentContentChangeEvent[], opts: FileUpdateOptions): Promise<FileUpdateResult>;
|
|
536
|
-
}
|
|
537
|
-
export declare function hasUpdateCapability(provider: FileSystemProvider): provider is FileSystemProviderWithUpdateCapability;
|
|
538
|
-
export interface ReadOnlyMessageFileSystemProvider {
|
|
539
|
-
readOnlyMessage: MarkdownString | undefined;
|
|
540
|
-
readonly onDidChangeReadOnlyMessage: Event<MarkdownString | undefined>;
|
|
541
|
-
}
|
|
542
|
-
export declare namespace ReadOnlyMessageFileSystemProvider {
|
|
543
|
-
function is(arg: unknown): arg is ReadOnlyMessageFileSystemProvider;
|
|
544
|
-
}
|
|
545
|
-
/**
|
|
546
|
-
* Subtype of {@link FileSystemProvider} that ensures that the optional functions, needed for providers
|
|
547
|
-
* that should be able to read & write files, are implemented.
|
|
548
|
-
*/
|
|
549
|
-
export interface FileSystemProviderWithFileReadWriteCapability extends FileSystemProvider {
|
|
550
|
-
/**
|
|
551
|
-
* Read the contents of the given file as stream.
|
|
552
|
-
* @param resource The `URI` of the file.
|
|
553
|
-
*
|
|
554
|
-
* @return The `ReadableStreamEvents` for the readable stream of the given file.
|
|
555
|
-
*/
|
|
556
|
-
readFile(resource: URI): Promise<Uint8Array>;
|
|
557
|
-
/**
|
|
558
|
-
* Write data to a file, replacing its entire contents.
|
|
559
|
-
* @param resource The uri of the file.
|
|
560
|
-
* @param content The new content of the file.
|
|
561
|
-
* @param opts Options to define if the file should be created if missing and if an existing file should be overwritten.
|
|
562
|
-
*/
|
|
563
|
-
writeFile(resource: URI, content: Uint8Array, opts: FileWriteOptions): Promise<void>;
|
|
564
|
-
}
|
|
565
|
-
export declare function hasReadWriteCapability(provider: FileSystemProvider): provider is FileSystemProviderWithFileReadWriteCapability;
|
|
566
|
-
/**
|
|
567
|
-
* Subtype of {@link FileSystemProvider} that ensures that the optional functions, needed for providers that should be able to copy
|
|
568
|
-
* file folders, are implemented.
|
|
569
|
-
*/
|
|
570
|
-
export interface FileSystemProviderWithFileFolderCopyCapability extends FileSystemProvider {
|
|
571
|
-
/**
|
|
572
|
-
* Copy files or folders.
|
|
573
|
-
* @param from `URI` of the existing file or folder.
|
|
574
|
-
* @param to `URI` of the destination location.
|
|
575
|
-
* @param opts Options to define if existing files should be overwritten.
|
|
576
|
-
*/
|
|
577
|
-
copy(from: URI, to: URI, opts: FileOverwriteOptions): Promise<void>;
|
|
578
|
-
}
|
|
579
|
-
export declare function hasFileFolderCopyCapability(provider: FileSystemProvider): provider is FileSystemProviderWithFileFolderCopyCapability;
|
|
580
|
-
/**
|
|
581
|
-
* Subtype of {@link FileSystemProvider} that ensures that the optional functions, needed for providers that should be able to open,read, write
|
|
582
|
-
* or close files, are implemented.
|
|
583
|
-
*/
|
|
584
|
-
export interface FileSystemProviderWithOpenReadWriteCloseCapability extends FileSystemProvider {
|
|
585
|
-
/**
|
|
586
|
-
* Open the give file.
|
|
587
|
-
* @param resource The `URI` of the file to open.
|
|
588
|
-
* @param opts Options to define if the file should be created if it does not exist yet.
|
|
589
|
-
*
|
|
590
|
-
* @returns A promise of the file descriptor that resolves after the file is open.
|
|
591
|
-
*/
|
|
592
|
-
open(resource: URI, opts: FileOpenOptions): Promise<number>;
|
|
593
|
-
/**
|
|
594
|
-
* Close the file with the given file descriptor.
|
|
595
|
-
* @param fd the file descriptor to close.
|
|
596
|
-
*/
|
|
597
|
-
close(fd: number): Promise<void>;
|
|
598
|
-
/**
|
|
599
|
-
* Read specified content from a given file descriptor into a data buffer.
|
|
600
|
-
* @param fd The file descriptor referencing the file to read from.
|
|
601
|
-
* @param pos The offset from the beginning of the file from which data should be read.
|
|
602
|
-
* @param data The buffer that the data will be written to.
|
|
603
|
-
* @param offset The offset in the buffer at which to start writing.
|
|
604
|
-
* @param length The number of bytes to read.
|
|
605
|
-
*
|
|
606
|
-
* @returns A promise of the number of bytes read.
|
|
607
|
-
*/
|
|
608
|
-
read(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
|
|
609
|
-
/**
|
|
610
|
-
* Write specified content from the data buffer to the file referenced by the given file descriptor.
|
|
611
|
-
* @param fd The file descriptor referencing the file to write to.
|
|
612
|
-
* @param pos The offset from the beginning of the file where this data should be written.
|
|
613
|
-
* @param offset The part of the buffer to be read from.
|
|
614
|
-
* @param length The number of bytes to write.
|
|
615
|
-
*
|
|
616
|
-
* @returns A promise of the number of bytes written.
|
|
617
|
-
*/
|
|
618
|
-
write(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
|
|
619
|
-
}
|
|
620
|
-
export declare function hasOpenReadWriteCloseCapability(provider: FileSystemProvider): provider is FileSystemProviderWithOpenReadWriteCloseCapability;
|
|
621
|
-
/**
|
|
622
|
-
* Subtype of {@link FileSystemProvider} that ensures that the optional functions, needed for providers that should be able to read
|
|
623
|
-
* files as streams, are implemented.
|
|
624
|
-
*/
|
|
625
|
-
export interface FileSystemProviderWithFileReadStreamCapability extends FileSystemProvider {
|
|
626
|
-
/**
|
|
627
|
-
* Read the contents of the given file as stream.
|
|
628
|
-
* @param resource The `URI` of the file.
|
|
629
|
-
*
|
|
630
|
-
* @return The `ReadableStreamEvents` for the readable stream of the given file.
|
|
631
|
-
*/
|
|
632
|
-
readFileStream(resource: URI, opts: FileReadStreamOptions, token: CancellationToken): ReadableStreamEvents<Uint8Array>;
|
|
633
|
-
}
|
|
634
|
-
export declare function hasFileReadStreamCapability(provider: FileSystemProvider): provider is FileSystemProviderWithFileReadStreamCapability;
|
|
635
|
-
export declare function markAsFileSystemProviderError(error: Error, code: FileSystemProviderErrorCode): Error;
|
|
636
|
-
export declare function toFileSystemProviderErrorCode(error: Error | undefined | null): FileSystemProviderErrorCode;
|
|
637
|
-
export declare function toFileOperationResult(error: Error): FileOperationResult;
|
|
638
|
-
/**
|
|
639
|
-
* A hint to disable etag checking for reading/writing.
|
|
640
|
-
*/
|
|
641
|
-
export declare const ETAG_DISABLED = "";
|
|
642
|
-
export declare function etag(stat: {
|
|
643
|
-
mtime: number;
|
|
644
|
-
size: number;
|
|
645
|
-
}): string;
|
|
646
|
-
export declare function etag(stat: {
|
|
647
|
-
mtime: number | undefined;
|
|
648
|
-
size: number | undefined;
|
|
649
|
-
}): string | undefined;
|
|
650
|
-
/**
|
|
651
|
-
* Helper to format a raw byte size into a human readable label.
|
|
652
|
-
*/
|
|
653
|
-
export declare class BinarySize {
|
|
654
|
-
static readonly KB = 1024;
|
|
655
|
-
static readonly MB: number;
|
|
656
|
-
static readonly GB: number;
|
|
657
|
-
static readonly TB: number;
|
|
658
|
-
static formatSize(size: number): string;
|
|
659
|
-
}
|
|
1
|
+
import URI from '@theia/core/lib/common/uri';
|
|
2
|
+
import { Event } from '@theia/core/lib/common/event';
|
|
3
|
+
import { Disposable as IDisposable } from '@theia/core/lib/common/disposable';
|
|
4
|
+
import { BinaryBuffer, BinaryBufferReadableStream } from '@theia/core/lib/common/buffer';
|
|
5
|
+
import type { TextDocumentContentChangeEvent } from '@theia/core/shared/vscode-languageserver-protocol';
|
|
6
|
+
import { ReadableStreamEvents } from '@theia/core/lib/common/stream';
|
|
7
|
+
import { CancellationToken } from '@theia/core/lib/common/cancellation';
|
|
8
|
+
import { MarkdownString } from '@theia/core/lib/common/markdown-rendering';
|
|
9
|
+
export declare const enum FileOperation {
|
|
10
|
+
CREATE = 0,
|
|
11
|
+
DELETE = 1,
|
|
12
|
+
MOVE = 2,
|
|
13
|
+
COPY = 3
|
|
14
|
+
}
|
|
15
|
+
export declare class FileOperationEvent {
|
|
16
|
+
readonly resource: URI;
|
|
17
|
+
readonly operation: FileOperation;
|
|
18
|
+
readonly target?: FileStatWithMetadata | undefined;
|
|
19
|
+
constructor(resource: URI, operation: FileOperation.DELETE);
|
|
20
|
+
constructor(resource: URI, operation: FileOperation.CREATE | FileOperation.MOVE | FileOperation.COPY, target: FileStatWithMetadata);
|
|
21
|
+
isOperation(operation: FileOperation.DELETE): boolean;
|
|
22
|
+
isOperation(operation: FileOperation.MOVE | FileOperation.COPY | FileOperation.CREATE): this is {
|
|
23
|
+
readonly target: FileStatWithMetadata;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Possible changes that can occur to a file.
|
|
28
|
+
*/
|
|
29
|
+
export declare const enum FileChangeType {
|
|
30
|
+
UPDATED = 0,
|
|
31
|
+
ADDED = 1,
|
|
32
|
+
DELETED = 2
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Identifies a single change in a file.
|
|
36
|
+
*/
|
|
37
|
+
export interface FileChange {
|
|
38
|
+
/**
|
|
39
|
+
* The type of change that occurred to the file.
|
|
40
|
+
*/
|
|
41
|
+
readonly type: FileChangeType;
|
|
42
|
+
/**
|
|
43
|
+
* The unified resource identifier of the file that changed.
|
|
44
|
+
*/
|
|
45
|
+
readonly resource: URI;
|
|
46
|
+
}
|
|
47
|
+
export declare class FileChangesEvent {
|
|
48
|
+
readonly changes: readonly FileChange[];
|
|
49
|
+
constructor(changes: readonly FileChange[]);
|
|
50
|
+
/**
|
|
51
|
+
* Returns true if this change event contains the provided file with the given change type (if provided). In case of
|
|
52
|
+
* type DELETED, this method will also return true if a folder got deleted that is the parent of the
|
|
53
|
+
* provided file path.
|
|
54
|
+
*/
|
|
55
|
+
contains(resource: URI, type?: FileChangeType): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Returns the changes that describe added files.
|
|
58
|
+
*/
|
|
59
|
+
getAdded(): FileChange[];
|
|
60
|
+
/**
|
|
61
|
+
* Returns if this event contains added files.
|
|
62
|
+
*/
|
|
63
|
+
gotAdded(): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Returns the changes that describe deleted files.
|
|
66
|
+
*/
|
|
67
|
+
getDeleted(): FileChange[];
|
|
68
|
+
/**
|
|
69
|
+
* Returns if this event contains deleted files.
|
|
70
|
+
*/
|
|
71
|
+
gotDeleted(): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Returns the changes that describe updated files.
|
|
74
|
+
*/
|
|
75
|
+
getUpdated(): FileChange[];
|
|
76
|
+
/**
|
|
77
|
+
* Returns if this event contains updated files.
|
|
78
|
+
*/
|
|
79
|
+
gotUpdated(): boolean;
|
|
80
|
+
private getOfType;
|
|
81
|
+
private hasType;
|
|
82
|
+
}
|
|
83
|
+
export interface BaseStat {
|
|
84
|
+
/**
|
|
85
|
+
* The unified resource identifier of this file or folder.
|
|
86
|
+
*/
|
|
87
|
+
resource: URI;
|
|
88
|
+
/**
|
|
89
|
+
* The name which is the last segment
|
|
90
|
+
* of the {{path}}.
|
|
91
|
+
*/
|
|
92
|
+
name: string;
|
|
93
|
+
/**
|
|
94
|
+
* The size of the file.
|
|
95
|
+
*
|
|
96
|
+
* The value may or may not be resolved as
|
|
97
|
+
* it is optional.
|
|
98
|
+
*/
|
|
99
|
+
size?: number;
|
|
100
|
+
/**
|
|
101
|
+
* The last modification date represented as millis from unix epoch.
|
|
102
|
+
*
|
|
103
|
+
* The value may or may not be resolved as
|
|
104
|
+
* it is optional.
|
|
105
|
+
*/
|
|
106
|
+
mtime?: number;
|
|
107
|
+
/**
|
|
108
|
+
* The creation date represented as millis from unix epoch.
|
|
109
|
+
*
|
|
110
|
+
* The value may or may not be resolved as
|
|
111
|
+
* it is optional.
|
|
112
|
+
*/
|
|
113
|
+
ctime?: number;
|
|
114
|
+
/**
|
|
115
|
+
* A unique identifier that represents the
|
|
116
|
+
* current state of the file or directory.
|
|
117
|
+
*
|
|
118
|
+
* The value may or may not be resolved as
|
|
119
|
+
* it is optional.
|
|
120
|
+
*/
|
|
121
|
+
etag?: string;
|
|
122
|
+
}
|
|
123
|
+
export declare namespace BaseStat {
|
|
124
|
+
function is(arg: unknown): arg is BaseStat;
|
|
125
|
+
}
|
|
126
|
+
export interface BaseStatWithMetadata extends BaseStat {
|
|
127
|
+
mtime: number;
|
|
128
|
+
ctime: number;
|
|
129
|
+
etag: string;
|
|
130
|
+
size: number;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* A file resource with meta information.
|
|
134
|
+
*/
|
|
135
|
+
export interface FileStat extends BaseStat {
|
|
136
|
+
/**
|
|
137
|
+
* The resource is a file.
|
|
138
|
+
*/
|
|
139
|
+
isFile: boolean;
|
|
140
|
+
/**
|
|
141
|
+
* The resource is a directory.
|
|
142
|
+
*/
|
|
143
|
+
isDirectory: boolean;
|
|
144
|
+
/**
|
|
145
|
+
* The resource is a symbolic link.
|
|
146
|
+
*/
|
|
147
|
+
isSymbolicLink: boolean;
|
|
148
|
+
/**
|
|
149
|
+
* The resource is read only.
|
|
150
|
+
*/
|
|
151
|
+
isReadonly: boolean;
|
|
152
|
+
/**
|
|
153
|
+
* The children of the file stat or undefined if none.
|
|
154
|
+
*/
|
|
155
|
+
children?: FileStat[];
|
|
156
|
+
}
|
|
157
|
+
export declare namespace FileStat {
|
|
158
|
+
function is(arg: unknown): arg is FileStat;
|
|
159
|
+
function asFileType(stat: FileStat): FileType;
|
|
160
|
+
function toStat(stat: FileStat): Stat | {
|
|
161
|
+
type: FileType;
|
|
162
|
+
} & Partial<Stat>;
|
|
163
|
+
function fromStat(resource: URI, stat: Stat): FileStatWithMetadata;
|
|
164
|
+
function fromStat(resource: URI, stat: {
|
|
165
|
+
type: FileType;
|
|
166
|
+
} & Partial<Stat>): FileStat;
|
|
167
|
+
function dir(resource: string | URI, stat?: Partial<Omit<Stat, 'type'>>): FileStat;
|
|
168
|
+
function file(resource: string | URI, stat?: Partial<Omit<Stat, 'type'>>): FileStat;
|
|
169
|
+
}
|
|
170
|
+
export interface FileStatWithMetadata extends FileStat, BaseStatWithMetadata {
|
|
171
|
+
mtime: number;
|
|
172
|
+
ctime: number;
|
|
173
|
+
etag: string;
|
|
174
|
+
size: number;
|
|
175
|
+
children?: FileStatWithMetadata[];
|
|
176
|
+
}
|
|
177
|
+
export interface ResolveFileResult {
|
|
178
|
+
stat?: FileStat;
|
|
179
|
+
success: boolean;
|
|
180
|
+
}
|
|
181
|
+
export interface ResolveFileResultWithMetadata extends ResolveFileResult {
|
|
182
|
+
stat?: FileStatWithMetadata;
|
|
183
|
+
}
|
|
184
|
+
export interface FileContent extends BaseStatWithMetadata {
|
|
185
|
+
/**
|
|
186
|
+
* The content of a file as buffer.
|
|
187
|
+
*/
|
|
188
|
+
value: BinaryBuffer;
|
|
189
|
+
}
|
|
190
|
+
export interface FileStreamContent extends BaseStatWithMetadata {
|
|
191
|
+
/**
|
|
192
|
+
* The content of a file as stream.
|
|
193
|
+
*/
|
|
194
|
+
value: BinaryBufferReadableStream;
|
|
195
|
+
}
|
|
196
|
+
export interface WriteFileOptions {
|
|
197
|
+
/**
|
|
198
|
+
* The last known modification time of the file. This can be used to prevent dirty writes.
|
|
199
|
+
*/
|
|
200
|
+
readonly mtime?: number;
|
|
201
|
+
/**
|
|
202
|
+
* The etag of the file. This can be used to prevent dirty writes.
|
|
203
|
+
*/
|
|
204
|
+
readonly etag?: string;
|
|
205
|
+
}
|
|
206
|
+
export interface ReadFileOptions extends FileReadStreamOptions {
|
|
207
|
+
/**
|
|
208
|
+
* The optional etag parameter allows to return early from resolving the resource if
|
|
209
|
+
* the contents on disk match the etag. This prevents accumulated reading of resources
|
|
210
|
+
* that have been read already with the same etag.
|
|
211
|
+
* It is the task of the caller to makes sure to handle this error case from the promise.
|
|
212
|
+
*/
|
|
213
|
+
readonly etag?: string;
|
|
214
|
+
}
|
|
215
|
+
export interface WriteFileOptions {
|
|
216
|
+
/**
|
|
217
|
+
* The last known modification time of the file. This can be used to prevent dirty writes.
|
|
218
|
+
*/
|
|
219
|
+
readonly mtime?: number;
|
|
220
|
+
/**
|
|
221
|
+
* The etag of the file. This can be used to prevent dirty writes.
|
|
222
|
+
*/
|
|
223
|
+
readonly etag?: string;
|
|
224
|
+
}
|
|
225
|
+
export interface ResolveFileOptions {
|
|
226
|
+
/**
|
|
227
|
+
* Automatically continue resolving children of a directory until the provided resources
|
|
228
|
+
* are found.
|
|
229
|
+
*/
|
|
230
|
+
readonly resolveTo?: readonly URI[];
|
|
231
|
+
/**
|
|
232
|
+
* Automatically continue resolving children of a directory if the number of children is 1.
|
|
233
|
+
*/
|
|
234
|
+
readonly resolveSingleChildDescendants?: boolean;
|
|
235
|
+
/**
|
|
236
|
+
* Will resolve mtime, ctime, size and etag of files if enabled. This can have a negative impact
|
|
237
|
+
* on performance and thus should only be used when these values are required.
|
|
238
|
+
*/
|
|
239
|
+
readonly resolveMetadata?: boolean;
|
|
240
|
+
}
|
|
241
|
+
export interface ResolveMetadataFileOptions extends ResolveFileOptions {
|
|
242
|
+
readonly resolveMetadata: true;
|
|
243
|
+
}
|
|
244
|
+
export interface FileOperationOptions {
|
|
245
|
+
/**
|
|
246
|
+
* Indicates that a user action triggered the opening, e.g.
|
|
247
|
+
* via mouse or keyboard use. Default is true.
|
|
248
|
+
*/
|
|
249
|
+
fromUserGesture?: boolean;
|
|
250
|
+
}
|
|
251
|
+
export interface MoveFileOptions extends FileOperationOptions, Partial<FileOverwriteOptions> {
|
|
252
|
+
}
|
|
253
|
+
export interface CopyFileOptions extends FileOperationOptions, Partial<FileOverwriteOptions> {
|
|
254
|
+
}
|
|
255
|
+
export interface CreateFileOptions extends FileOperationOptions, Partial<FileOverwriteOptions> {
|
|
256
|
+
}
|
|
257
|
+
export declare class FileOperationError extends Error {
|
|
258
|
+
fileOperationResult: FileOperationResult;
|
|
259
|
+
options?: (ReadFileOptions & WriteFileOptions & CreateFileOptions) | undefined;
|
|
260
|
+
constructor(message: string, fileOperationResult: FileOperationResult, options?: (ReadFileOptions & WriteFileOptions & CreateFileOptions) | undefined);
|
|
261
|
+
}
|
|
262
|
+
export declare const enum FileOperationResult {
|
|
263
|
+
FILE_IS_DIRECTORY = 0,
|
|
264
|
+
FILE_NOT_FOUND = 1,
|
|
265
|
+
FILE_NOT_MODIFIED_SINCE = 2,
|
|
266
|
+
FILE_MODIFIED_SINCE = 3,
|
|
267
|
+
FILE_MOVE_CONFLICT = 4,
|
|
268
|
+
FILE_READ_ONLY = 5,
|
|
269
|
+
FILE_PERMISSION_DENIED = 6,
|
|
270
|
+
FILE_TOO_LARGE = 7,
|
|
271
|
+
FILE_INVALID_PATH = 8,
|
|
272
|
+
FILE_EXCEEDS_MEMORY_LIMIT = 9,
|
|
273
|
+
FILE_NOT_DIRECTORY = 10,
|
|
274
|
+
FILE_OTHER_ERROR = 11
|
|
275
|
+
}
|
|
276
|
+
export interface FileOverwriteOptions {
|
|
277
|
+
/**
|
|
278
|
+
* Overwrite the file to create if it already exists on disk. Otherwise
|
|
279
|
+
* an error will be thrown (FILE_MODIFIED_SINCE).
|
|
280
|
+
*/
|
|
281
|
+
overwrite: boolean;
|
|
282
|
+
}
|
|
283
|
+
export interface FileReadStreamOptions {
|
|
284
|
+
/**
|
|
285
|
+
* Is an integer specifying where to begin reading from in the file. If position is undefined,
|
|
286
|
+
* data will be read from the current file position.
|
|
287
|
+
*/
|
|
288
|
+
readonly position?: number;
|
|
289
|
+
/**
|
|
290
|
+
* Is an integer specifying how many bytes to read from the file. By default, all bytes
|
|
291
|
+
* will be read.
|
|
292
|
+
*/
|
|
293
|
+
readonly length?: number;
|
|
294
|
+
/**
|
|
295
|
+
* If provided, the size of the file will be checked against the limits.
|
|
296
|
+
*/
|
|
297
|
+
limits?: {
|
|
298
|
+
readonly size?: number;
|
|
299
|
+
readonly memory?: number;
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
export interface FileUpdateOptions {
|
|
303
|
+
readEncoding: string;
|
|
304
|
+
writeEncoding: string;
|
|
305
|
+
overwriteEncoding: boolean;
|
|
306
|
+
}
|
|
307
|
+
export interface FileUpdateResult extends Stat {
|
|
308
|
+
encoding: string;
|
|
309
|
+
}
|
|
310
|
+
export interface FileWriteOptions {
|
|
311
|
+
overwrite: boolean;
|
|
312
|
+
create: boolean;
|
|
313
|
+
}
|
|
314
|
+
export interface FileOpenOptions {
|
|
315
|
+
create: boolean;
|
|
316
|
+
}
|
|
317
|
+
export interface FileDeleteOptions {
|
|
318
|
+
recursive: boolean;
|
|
319
|
+
useTrash: boolean;
|
|
320
|
+
}
|
|
321
|
+
export declare enum FileType {
|
|
322
|
+
Unknown = 0,
|
|
323
|
+
File = 1,
|
|
324
|
+
Directory = 2,
|
|
325
|
+
SymbolicLink = 64
|
|
326
|
+
}
|
|
327
|
+
export declare enum FilePermission {
|
|
328
|
+
/**
|
|
329
|
+
* File is readonly.
|
|
330
|
+
*/
|
|
331
|
+
Readonly = 1
|
|
332
|
+
}
|
|
333
|
+
export interface Stat {
|
|
334
|
+
type: FileType;
|
|
335
|
+
/**
|
|
336
|
+
* The last modification date represented as millis from unix epoch.
|
|
337
|
+
*/
|
|
338
|
+
mtime: number;
|
|
339
|
+
/**
|
|
340
|
+
* The creation date represented as millis from unix epoch.
|
|
341
|
+
*/
|
|
342
|
+
ctime: number;
|
|
343
|
+
size: number;
|
|
344
|
+
permissions?: FilePermission;
|
|
345
|
+
}
|
|
346
|
+
export interface WatchOptions {
|
|
347
|
+
recursive: boolean;
|
|
348
|
+
excludes: string[];
|
|
349
|
+
}
|
|
350
|
+
export declare const enum FileSystemProviderCapabilities {
|
|
351
|
+
FileReadWrite = 2,
|
|
352
|
+
FileOpenReadWriteClose = 4,
|
|
353
|
+
FileReadStream = 16,
|
|
354
|
+
FileFolderCopy = 8,
|
|
355
|
+
PathCaseSensitive = 1024,
|
|
356
|
+
Readonly = 2048,
|
|
357
|
+
Trash = 4096,
|
|
358
|
+
Access = 16777216,
|
|
359
|
+
Update = 33554432
|
|
360
|
+
}
|
|
361
|
+
export declare enum FileSystemProviderErrorCode {
|
|
362
|
+
FileExists = "EntryExists",
|
|
363
|
+
FileNotFound = "EntryNotFound",
|
|
364
|
+
FileNotADirectory = "EntryNotADirectory",
|
|
365
|
+
FileIsADirectory = "EntryIsADirectory",
|
|
366
|
+
FileExceedsMemoryLimit = "EntryExceedsMemoryLimit",
|
|
367
|
+
FileTooLarge = "EntryTooLarge",
|
|
368
|
+
NoPermissions = "NoPermissions",
|
|
369
|
+
Unavailable = "Unavailable",
|
|
370
|
+
Unknown = "Unknown"
|
|
371
|
+
}
|
|
372
|
+
export declare class FileSystemProviderError extends Error {
|
|
373
|
+
readonly code: FileSystemProviderErrorCode;
|
|
374
|
+
constructor(message: string, code: FileSystemProviderErrorCode);
|
|
375
|
+
}
|
|
376
|
+
export declare function createFileSystemProviderError(error: Error | string, code: FileSystemProviderErrorCode): FileSystemProviderError;
|
|
377
|
+
export declare function ensureFileSystemProviderError(error?: Error): Error;
|
|
378
|
+
export declare const FileSystemProvider: unique symbol;
|
|
379
|
+
/**
|
|
380
|
+
* A {@link FileSystemProvider} provides the capabilities to read, write, discover, and to manage files and folders
|
|
381
|
+
* of the underlying (potentially virtual) file system. {@link FileSystemProvider}s can be used to serve files from both the
|
|
382
|
+
* local disk as well as remote locations like ftp-servers, REST-services etc. A {@link FileSystemProvider} is registered for a certain
|
|
383
|
+
* scheme and can handle all resources whose uri does conform to that scheme.
|
|
384
|
+
*/
|
|
385
|
+
export interface FileSystemProvider {
|
|
386
|
+
/** The {@link FileSystemProviderCapabilities} for this provider. */
|
|
387
|
+
readonly capabilities: FileSystemProviderCapabilities;
|
|
388
|
+
/** * Event that is fired if the capabilities of this provider have changed. */
|
|
389
|
+
readonly onDidChangeCapabilities: Event<void>;
|
|
390
|
+
/** Event that is fired if a (watched) file in the filesystem of this provider has changed. */
|
|
391
|
+
readonly onDidChangeFile: Event<readonly FileChange[]>;
|
|
392
|
+
/** Event that is fired if an error occurred when watching files in the filesystem of this provider. */
|
|
393
|
+
readonly onFileWatchError: Event<void>;
|
|
394
|
+
/**
|
|
395
|
+
* Watch the given resource and react to changes by firing the {@link FileSystemProvider#onDidChangeFile} event.
|
|
396
|
+
* @param resource `URI` of the resource to be watched.
|
|
397
|
+
* @param opts Options to define if the resource should be watched recursively and to
|
|
398
|
+
* provide a set of resources that should be excluded from watching.
|
|
399
|
+
*
|
|
400
|
+
* @returns A `Disposable` that can be invoked to stop watching the resource.
|
|
401
|
+
*/
|
|
402
|
+
watch(resource: URI, opts: WatchOptions): IDisposable;
|
|
403
|
+
/**
|
|
404
|
+
* Retrieve metadata about a given file.
|
|
405
|
+
*
|
|
406
|
+
* @param uri The `URI` of the file to retrieve meta data about.
|
|
407
|
+
* @returns A promise of the metadata about the resource.
|
|
408
|
+
*/
|
|
409
|
+
stat(resource: URI): Promise<Stat>;
|
|
410
|
+
/**
|
|
411
|
+
* Create a new directory using the given resource uri.
|
|
412
|
+
* @param resource The `URI` of the new folder.
|
|
413
|
+
*/
|
|
414
|
+
mkdir(resource: URI): Promise<void>;
|
|
415
|
+
/**
|
|
416
|
+
* Retrieve the content of a given directory.
|
|
417
|
+
* @param resource The `URI` of the directory.
|
|
418
|
+
*
|
|
419
|
+
* @returns A map containing the {@link FileType} for each child resource, identified by name.
|
|
420
|
+
*/
|
|
421
|
+
readdir(resource: URI): Promise<[string, FileType][]>;
|
|
422
|
+
/**
|
|
423
|
+
* Delete the given resource.
|
|
424
|
+
* @param resource The `URI` of the resource to delete.
|
|
425
|
+
* @param opts Options to define if files should be deleted recursively and if the trash should be used.
|
|
426
|
+
*/
|
|
427
|
+
delete(resource: URI, opts: FileDeleteOptions): Promise<void>;
|
|
428
|
+
/**
|
|
429
|
+
* Rename a file or folder.
|
|
430
|
+
* @param from `URI` of the existing file or folder.
|
|
431
|
+
* @param to `URI` of the target location.
|
|
432
|
+
* @param opts Options to define if existing files should be overwritten.
|
|
433
|
+
*/
|
|
434
|
+
rename(from: URI, to: URI, opts: FileOverwriteOptions): Promise<void>;
|
|
435
|
+
/**
|
|
436
|
+
* Optional function that has to be implemented by {@link FileSystemProviderWithFileFolderCopyCapability}.
|
|
437
|
+
* See {@link FileSystemProviderWithFileFolderCopyCapability#copy}} for additional documentation.
|
|
438
|
+
*/
|
|
439
|
+
copy?(from: URI, to: URI, opts: FileOverwriteOptions): Promise<void>;
|
|
440
|
+
/**
|
|
441
|
+
* Optional function that has to be implemented by {@link FileSystemProviderWithFileReadWriteCapability}.
|
|
442
|
+
* See {@link FileSystemProviderWithFileReadWriteCapability#readFile} for additional documentation.
|
|
443
|
+
*/
|
|
444
|
+
readFile?(resource: URI): Promise<Uint8Array>;
|
|
445
|
+
/**
|
|
446
|
+
* Optional function that has to be implemented by {@link FileSystemProviderWithFileReadWriteCapability}.
|
|
447
|
+
* See {@link FileSystemProviderWithFileReadWriteCapability#writeFile} for additional documentation.
|
|
448
|
+
*/
|
|
449
|
+
writeFile?(resource: URI, content: Uint8Array, opts: FileWriteOptions): Promise<void>;
|
|
450
|
+
/**
|
|
451
|
+
* Optional function that has to be implemented by {@link FileSystemProviderWithFileReadStreamCapability}.
|
|
452
|
+
* See {@link FileSystemProviderWithFileReadStreamCapability#readFileStream} for additional documentation.
|
|
453
|
+
*/
|
|
454
|
+
readFileStream?(resource: URI, opts: FileReadStreamOptions, token: CancellationToken): ReadableStreamEvents<Uint8Array>;
|
|
455
|
+
/**
|
|
456
|
+
* Optional function that has to be implemented by {@link FileSystemProviderWithOpenReadWriteCloseCapability}.
|
|
457
|
+
* See {@link FileSystemProviderWithOpenReadWriteCloseCapability#open} for additional documentation.
|
|
458
|
+
*/
|
|
459
|
+
open?(resource: URI, opts: FileOpenOptions): Promise<number>;
|
|
460
|
+
/**
|
|
461
|
+
* Optional function that has to be implemented by {@link FileSystemProviderWithOpenReadWriteCloseCapability}.
|
|
462
|
+
* See {@link FileSystemProviderWithOpenReadWriteCloseCapability#close} for additional documentation.
|
|
463
|
+
*/
|
|
464
|
+
close?(fd: number): Promise<void>;
|
|
465
|
+
/**
|
|
466
|
+
* Optional function that has to be implemented by {@link FileSystemProviderWithOpenReadWriteCloseCapability}.
|
|
467
|
+
* See {@link FileSystemProviderWithOpenReadWriteCloseCapability#read} for additional documentation.
|
|
468
|
+
*/
|
|
469
|
+
read?(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
|
|
470
|
+
/**
|
|
471
|
+
* Optional function that has to be implemented by {@link FileSystemProviderWithOpenReadWriteCloseCapability}.
|
|
472
|
+
* See {@link FileSystemProviderWithOpenReadWriteCloseCapability#write} for additional documentation.
|
|
473
|
+
*/
|
|
474
|
+
write?(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
|
|
475
|
+
/**
|
|
476
|
+
* Optional function that has to be implemented by {@link FileSystemProviderWithAccessCapability}.
|
|
477
|
+
* See {@link FileSystemProviderWithAccessCapability#access} for additional documentation.
|
|
478
|
+
*/
|
|
479
|
+
access?(resource: URI, mode?: number): Promise<void>;
|
|
480
|
+
/**
|
|
481
|
+
* Optional function that has to be implemented by {@link FileSystemProviderWithAccessCapability}.
|
|
482
|
+
* See {@link FileSystemProviderWithAccessCapability#fsPath} for additional documentation.
|
|
483
|
+
*/
|
|
484
|
+
fsPath?(resource: URI): Promise<string>;
|
|
485
|
+
/**
|
|
486
|
+
* Optional function that has to be implemented by {@link FileSystemProviderWithUpdateCapability}.
|
|
487
|
+
* See {@link FileSystemProviderWithUpdateCapability#updateFile} for additional documentation.
|
|
488
|
+
*/
|
|
489
|
+
updateFile?(resource: URI, changes: TextDocumentContentChangeEvent[], opts: FileUpdateOptions): Promise<FileUpdateResult>;
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
* Subtype of {@link FileSystemProvider} that ensures that the optional functions needed for providers, that should be
|
|
493
|
+
* able access files, are implemented.
|
|
494
|
+
*/
|
|
495
|
+
export interface FileSystemProviderWithAccessCapability extends FileSystemProvider {
|
|
496
|
+
/**
|
|
497
|
+
* Tests a user's permissions for the file or directory specified by URI.
|
|
498
|
+
* @param resource The `URI` of the file that should be tested.
|
|
499
|
+
* @param mode An optional integer that specifies the accessibility checks to be performed.
|
|
500
|
+
* Check `FileAccess.Constants` for possible values of mode.
|
|
501
|
+
* It is possible to create a mask consisting of the bitwise `OR` of two or more values (e.g. FileAccess.Constants.W_OK | FileAccess.Constants.R_OK).
|
|
502
|
+
* If `mode` is not defined, `FileAccess.Constants.F_OK` will be used instead.
|
|
503
|
+
*
|
|
504
|
+
* @returns A promise that resolves if the user has the required permissions, should be rejected otherwise.
|
|
505
|
+
*/
|
|
506
|
+
access(resource: URI, mode?: number): Promise<void>;
|
|
507
|
+
/**
|
|
508
|
+
* Returns the path of the given file URI, specific to the backend's operating system.
|
|
509
|
+
* If the URI is not a file URI, undefined is returned.
|
|
510
|
+
*
|
|
511
|
+
* USE WITH CAUTION: You should always prefer URIs to paths if possible, as they are
|
|
512
|
+
* portable and platform independent. Paths should only be used in cases you directly
|
|
513
|
+
* interact with the OS, e.g. when running a command on the shell.
|
|
514
|
+
*
|
|
515
|
+
* @param resource `URI` of the resource to derive the path from.
|
|
516
|
+
*
|
|
517
|
+
* @returns A promise of the corresponding file system path.
|
|
518
|
+
*/
|
|
519
|
+
fsPath(resource: URI): Promise<string>;
|
|
520
|
+
}
|
|
521
|
+
export declare function hasAccessCapability(provider: FileSystemProvider): provider is FileSystemProviderWithAccessCapability;
|
|
522
|
+
/**
|
|
523
|
+
* Subtype of {@link FileSystemProvider} that ensures that the optional functions needed, for providers that should be
|
|
524
|
+
* able to update (text) files, are implemented.
|
|
525
|
+
*/
|
|
526
|
+
export interface FileSystemProviderWithUpdateCapability extends FileSystemProvider {
|
|
527
|
+
/**
|
|
528
|
+
* Update the content of the given (text) file according to the given text document changes.
|
|
529
|
+
* @param resource `URI` of the resource to update.
|
|
530
|
+
* @param changes Array of events describing the changes to the file.
|
|
531
|
+
* @param opts The encoding options.
|
|
532
|
+
*
|
|
533
|
+
* @returns A promise of the file metadata that resolves after the update process has completed.
|
|
534
|
+
*/
|
|
535
|
+
updateFile(resource: URI, changes: TextDocumentContentChangeEvent[], opts: FileUpdateOptions): Promise<FileUpdateResult>;
|
|
536
|
+
}
|
|
537
|
+
export declare function hasUpdateCapability(provider: FileSystemProvider): provider is FileSystemProviderWithUpdateCapability;
|
|
538
|
+
export interface ReadOnlyMessageFileSystemProvider {
|
|
539
|
+
readOnlyMessage: MarkdownString | undefined;
|
|
540
|
+
readonly onDidChangeReadOnlyMessage: Event<MarkdownString | undefined>;
|
|
541
|
+
}
|
|
542
|
+
export declare namespace ReadOnlyMessageFileSystemProvider {
|
|
543
|
+
function is(arg: unknown): arg is ReadOnlyMessageFileSystemProvider;
|
|
544
|
+
}
|
|
545
|
+
/**
|
|
546
|
+
* Subtype of {@link FileSystemProvider} that ensures that the optional functions, needed for providers
|
|
547
|
+
* that should be able to read & write files, are implemented.
|
|
548
|
+
*/
|
|
549
|
+
export interface FileSystemProviderWithFileReadWriteCapability extends FileSystemProvider {
|
|
550
|
+
/**
|
|
551
|
+
* Read the contents of the given file as stream.
|
|
552
|
+
* @param resource The `URI` of the file.
|
|
553
|
+
*
|
|
554
|
+
* @return The `ReadableStreamEvents` for the readable stream of the given file.
|
|
555
|
+
*/
|
|
556
|
+
readFile(resource: URI): Promise<Uint8Array>;
|
|
557
|
+
/**
|
|
558
|
+
* Write data to a file, replacing its entire contents.
|
|
559
|
+
* @param resource The uri of the file.
|
|
560
|
+
* @param content The new content of the file.
|
|
561
|
+
* @param opts Options to define if the file should be created if missing and if an existing file should be overwritten.
|
|
562
|
+
*/
|
|
563
|
+
writeFile(resource: URI, content: Uint8Array, opts: FileWriteOptions): Promise<void>;
|
|
564
|
+
}
|
|
565
|
+
export declare function hasReadWriteCapability(provider: FileSystemProvider): provider is FileSystemProviderWithFileReadWriteCapability;
|
|
566
|
+
/**
|
|
567
|
+
* Subtype of {@link FileSystemProvider} that ensures that the optional functions, needed for providers that should be able to copy
|
|
568
|
+
* file folders, are implemented.
|
|
569
|
+
*/
|
|
570
|
+
export interface FileSystemProviderWithFileFolderCopyCapability extends FileSystemProvider {
|
|
571
|
+
/**
|
|
572
|
+
* Copy files or folders.
|
|
573
|
+
* @param from `URI` of the existing file or folder.
|
|
574
|
+
* @param to `URI` of the destination location.
|
|
575
|
+
* @param opts Options to define if existing files should be overwritten.
|
|
576
|
+
*/
|
|
577
|
+
copy(from: URI, to: URI, opts: FileOverwriteOptions): Promise<void>;
|
|
578
|
+
}
|
|
579
|
+
export declare function hasFileFolderCopyCapability(provider: FileSystemProvider): provider is FileSystemProviderWithFileFolderCopyCapability;
|
|
580
|
+
/**
|
|
581
|
+
* Subtype of {@link FileSystemProvider} that ensures that the optional functions, needed for providers that should be able to open,read, write
|
|
582
|
+
* or close files, are implemented.
|
|
583
|
+
*/
|
|
584
|
+
export interface FileSystemProviderWithOpenReadWriteCloseCapability extends FileSystemProvider {
|
|
585
|
+
/**
|
|
586
|
+
* Open the give file.
|
|
587
|
+
* @param resource The `URI` of the file to open.
|
|
588
|
+
* @param opts Options to define if the file should be created if it does not exist yet.
|
|
589
|
+
*
|
|
590
|
+
* @returns A promise of the file descriptor that resolves after the file is open.
|
|
591
|
+
*/
|
|
592
|
+
open(resource: URI, opts: FileOpenOptions): Promise<number>;
|
|
593
|
+
/**
|
|
594
|
+
* Close the file with the given file descriptor.
|
|
595
|
+
* @param fd the file descriptor to close.
|
|
596
|
+
*/
|
|
597
|
+
close(fd: number): Promise<void>;
|
|
598
|
+
/**
|
|
599
|
+
* Read specified content from a given file descriptor into a data buffer.
|
|
600
|
+
* @param fd The file descriptor referencing the file to read from.
|
|
601
|
+
* @param pos The offset from the beginning of the file from which data should be read.
|
|
602
|
+
* @param data The buffer that the data will be written to.
|
|
603
|
+
* @param offset The offset in the buffer at which to start writing.
|
|
604
|
+
* @param length The number of bytes to read.
|
|
605
|
+
*
|
|
606
|
+
* @returns A promise of the number of bytes read.
|
|
607
|
+
*/
|
|
608
|
+
read(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
|
|
609
|
+
/**
|
|
610
|
+
* Write specified content from the data buffer to the file referenced by the given file descriptor.
|
|
611
|
+
* @param fd The file descriptor referencing the file to write to.
|
|
612
|
+
* @param pos The offset from the beginning of the file where this data should be written.
|
|
613
|
+
* @param offset The part of the buffer to be read from.
|
|
614
|
+
* @param length The number of bytes to write.
|
|
615
|
+
*
|
|
616
|
+
* @returns A promise of the number of bytes written.
|
|
617
|
+
*/
|
|
618
|
+
write(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
|
|
619
|
+
}
|
|
620
|
+
export declare function hasOpenReadWriteCloseCapability(provider: FileSystemProvider): provider is FileSystemProviderWithOpenReadWriteCloseCapability;
|
|
621
|
+
/**
|
|
622
|
+
* Subtype of {@link FileSystemProvider} that ensures that the optional functions, needed for providers that should be able to read
|
|
623
|
+
* files as streams, are implemented.
|
|
624
|
+
*/
|
|
625
|
+
export interface FileSystemProviderWithFileReadStreamCapability extends FileSystemProvider {
|
|
626
|
+
/**
|
|
627
|
+
* Read the contents of the given file as stream.
|
|
628
|
+
* @param resource The `URI` of the file.
|
|
629
|
+
*
|
|
630
|
+
* @return The `ReadableStreamEvents` for the readable stream of the given file.
|
|
631
|
+
*/
|
|
632
|
+
readFileStream(resource: URI, opts: FileReadStreamOptions, token: CancellationToken): ReadableStreamEvents<Uint8Array>;
|
|
633
|
+
}
|
|
634
|
+
export declare function hasFileReadStreamCapability(provider: FileSystemProvider): provider is FileSystemProviderWithFileReadStreamCapability;
|
|
635
|
+
export declare function markAsFileSystemProviderError(error: Error, code: FileSystemProviderErrorCode): Error;
|
|
636
|
+
export declare function toFileSystemProviderErrorCode(error: Error | undefined | null): FileSystemProviderErrorCode;
|
|
637
|
+
export declare function toFileOperationResult(error: Error): FileOperationResult;
|
|
638
|
+
/**
|
|
639
|
+
* A hint to disable etag checking for reading/writing.
|
|
640
|
+
*/
|
|
641
|
+
export declare const ETAG_DISABLED = "";
|
|
642
|
+
export declare function etag(stat: {
|
|
643
|
+
mtime: number;
|
|
644
|
+
size: number;
|
|
645
|
+
}): string;
|
|
646
|
+
export declare function etag(stat: {
|
|
647
|
+
mtime: number | undefined;
|
|
648
|
+
size: number | undefined;
|
|
649
|
+
}): string | undefined;
|
|
650
|
+
/**
|
|
651
|
+
* Helper to format a raw byte size into a human readable label.
|
|
652
|
+
*/
|
|
653
|
+
export declare class BinarySize {
|
|
654
|
+
static readonly KB = 1024;
|
|
655
|
+
static readonly MB: number;
|
|
656
|
+
static readonly GB: number;
|
|
657
|
+
static readonly TB: number;
|
|
658
|
+
static formatSize(size: number): string;
|
|
659
|
+
}
|
|
660
660
|
//# sourceMappingURL=files.d.ts.map
|