@theia/filesystem 1.47.1 → 1.48.1

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.
Files changed (249) hide show
  1. package/README.md +30 -30
  2. package/lib/browser/breadcrumbs/filepath-breadcrumb.d.ts +15 -15
  3. package/lib/browser/breadcrumbs/filepath-breadcrumb.js +41 -41
  4. package/lib/browser/breadcrumbs/filepath-breadcrumbs-container.d.ts +13 -13
  5. package/lib/browser/breadcrumbs/filepath-breadcrumbs-container.js +70 -70
  6. package/lib/browser/breadcrumbs/filepath-breadcrumbs-contribution.d.ts +27 -27
  7. package/lib/browser/breadcrumbs/filepath-breadcrumbs-contribution.js +118 -118
  8. package/lib/browser/download/file-download-command-contribution.d.ts +18 -18
  9. package/lib/browser/download/file-download-command-contribution.js +75 -75
  10. package/lib/browser/download/file-download-frontend-module.d.ts +3 -3
  11. package/lib/browser/download/file-download-frontend-module.js +25 -25
  12. package/lib/browser/download/file-download-service.d.ts +28 -28
  13. package/lib/browser/download/file-download-service.js +167 -167
  14. package/lib/browser/file-dialog/file-dialog-container.d.ts +5 -5
  15. package/lib/browser/file-dialog/file-dialog-container.js +60 -60
  16. package/lib/browser/file-dialog/file-dialog-hidden-files-renderer.d.ts +15 -15
  17. package/lib/browser/file-dialog/file-dialog-hidden-files-renderer.js +59 -59
  18. package/lib/browser/file-dialog/file-dialog-model.d.ts +25 -25
  19. package/lib/browser/file-dialog/file-dialog-model.js +100 -100
  20. package/lib/browser/file-dialog/file-dialog-module.d.ts +3 -3
  21. package/lib/browser/file-dialog/file-dialog-module.js +45 -45
  22. package/lib/browser/file-dialog/file-dialog-service.d.ts +32 -32
  23. package/lib/browser/file-dialog/file-dialog-service.js +101 -101
  24. package/lib/browser/file-dialog/file-dialog-tree-filters-renderer.d.ts +39 -39
  25. package/lib/browser/file-dialog/file-dialog-tree-filters-renderer.js +81 -81
  26. package/lib/browser/file-dialog/file-dialog-tree.d.ts +26 -26
  27. package/lib/browser/file-dialog/file-dialog-tree.js +83 -83
  28. package/lib/browser/file-dialog/file-dialog-widget.d.ts +15 -15
  29. package/lib/browser/file-dialog/file-dialog-widget.js +75 -75
  30. package/lib/browser/file-dialog/file-dialog.d.ts +129 -129
  31. package/lib/browser/file-dialog/file-dialog.js +351 -351
  32. package/lib/browser/file-dialog/index.d.ts +4 -4
  33. package/lib/browser/file-dialog/index.js +22 -22
  34. package/lib/browser/file-resource.d.ts +67 -67
  35. package/lib/browser/file-resource.js +369 -369
  36. package/lib/browser/file-selection.d.ts +14 -14
  37. package/lib/browser/file-selection.js +36 -36
  38. package/lib/browser/file-service.d.ts +425 -425
  39. package/lib/browser/file-service.d.ts.map +1 -1
  40. package/lib/browser/file-service.js +1366 -1366
  41. package/lib/browser/file-service.js.map +1 -1
  42. package/lib/browser/file-tree/file-tree-container.d.ts +3 -3
  43. package/lib/browser/file-tree/file-tree-container.js +35 -35
  44. package/lib/browser/file-tree/file-tree-decorator-adapter.d.ts +30 -30
  45. package/lib/browser/file-tree/file-tree-decorator-adapter.js +169 -169
  46. package/lib/browser/file-tree/file-tree-label-provider.d.ts +12 -12
  47. package/lib/browser/file-tree/file-tree-label-provider.js +54 -54
  48. package/lib/browser/file-tree/file-tree-model.d.ts +37 -37
  49. package/lib/browser/file-tree/file-tree-model.js +217 -217
  50. package/lib/browser/file-tree/file-tree-widget.d.ts +44 -44
  51. package/lib/browser/file-tree/file-tree-widget.js +317 -317
  52. package/lib/browser/file-tree/file-tree.d.ts +46 -46
  53. package/lib/browser/file-tree/file-tree.js +176 -176
  54. package/lib/browser/file-tree/index.d.ts +6 -6
  55. package/lib/browser/file-tree/index.js +24 -24
  56. package/lib/browser/file-upload-service.d.ts +109 -109
  57. package/lib/browser/file-upload-service.js +434 -434
  58. package/lib/browser/filesystem-frontend-contribution.d.ts +74 -63
  59. package/lib/browser/filesystem-frontend-contribution.d.ts.map +1 -1
  60. package/lib/browser/filesystem-frontend-contribution.js +356 -319
  61. package/lib/browser/filesystem-frontend-contribution.js.map +1 -1
  62. package/lib/browser/filesystem-frontend-module.d.ts +5 -5
  63. package/lib/browser/filesystem-frontend-module.js +64 -64
  64. package/lib/browser/filesystem-preferences.d.ts +29 -29
  65. package/lib/browser/filesystem-preferences.js +110 -110
  66. package/lib/browser/filesystem-save-resource-service.d.ts +29 -29
  67. package/lib/browser/filesystem-save-resource-service.js +135 -135
  68. package/lib/browser/filesystem-watcher-error-handler.d.ts +10 -10
  69. package/lib/browser/filesystem-watcher-error-handler.js +61 -61
  70. package/lib/browser/index.d.ts +5 -5
  71. package/lib/browser/index.js +23 -23
  72. package/lib/browser/location/index.d.ts +2 -2
  73. package/lib/browser/location/index.js +20 -20
  74. package/lib/browser/location/location-renderer.d.ts +100 -100
  75. package/lib/browser/location/location-renderer.js +343 -343
  76. package/lib/browser/location/location-service.d.ts +5 -5
  77. package/lib/browser/location/location-service.js +17 -17
  78. package/lib/browser/remote-file-service-contribution.d.ts +6 -6
  79. package/lib/browser/remote-file-service-contribution.js +39 -39
  80. package/lib/browser-only/browser-only-filesystem-frontend-module.d.ts +3 -3
  81. package/lib/browser-only/browser-only-filesystem-frontend-module.js +40 -40
  82. package/lib/browser-only/browser-only-filesystem-provider-server.d.ts +11 -11
  83. package/lib/browser-only/browser-only-filesystem-provider-server.js +39 -39
  84. package/lib/browser-only/browserfs-filesystem-initialization.d.ts +12 -12
  85. package/lib/browser-only/browserfs-filesystem-initialization.js +54 -54
  86. package/lib/browser-only/browserfs-filesystem-provider.d.ts +45 -45
  87. package/lib/browser-only/browserfs-filesystem-provider.js +439 -439
  88. package/lib/common/delegating-file-system-provider.d.ts +76 -76
  89. package/lib/common/delegating-file-system-provider.js +168 -168
  90. package/lib/common/download/file-download-data.d.ts +6 -6
  91. package/lib/common/download/file-download-data.js +26 -26
  92. package/lib/common/file-upload.d.ts +1 -1
  93. package/lib/common/file-upload.js +19 -19
  94. package/lib/common/files.d.ts +659 -659
  95. package/lib/common/files.js +355 -355
  96. package/lib/common/files.spec.d.ts +1 -1
  97. package/lib/common/files.spec.js +51 -51
  98. package/lib/common/filesystem-utils.d.ts +14 -14
  99. package/lib/common/filesystem-utils.js +63 -63
  100. package/lib/common/filesystem-utils.spec.d.ts +1 -1
  101. package/lib/common/filesystem-utils.spec.js +378 -378
  102. package/lib/common/filesystem-watcher-protocol.d.ts +71 -71
  103. package/lib/common/filesystem-watcher-protocol.js +20 -20
  104. package/lib/common/filesystem.d.ts +22 -22
  105. package/lib/common/filesystem.js +42 -42
  106. package/lib/common/index.d.ts +2 -2
  107. package/lib/common/index.js +20 -20
  108. package/lib/common/io.d.ts +19 -19
  109. package/lib/common/io.js +110 -110
  110. package/lib/common/remote-file-system-provider.d.ts +173 -173
  111. package/lib/common/remote-file-system-provider.js +435 -435
  112. package/lib/electron-browser/file-dialog/electron-file-dialog-module.d.ts +3 -3
  113. package/lib/electron-browser/file-dialog/electron-file-dialog-module.js +24 -24
  114. package/lib/electron-browser/file-dialog/electron-file-dialog-service.d.ts +19 -19
  115. package/lib/electron-browser/file-dialog/electron-file-dialog-service.js +148 -148
  116. package/lib/electron-browser/preload.d.ts +1 -1
  117. package/lib/electron-browser/preload.js +30 -30
  118. package/lib/electron-common/electron-api.d.ts +34 -34
  119. package/lib/electron-common/electron-api.js +20 -20
  120. package/lib/electron-main/electron-api-main.d.ts +5 -5
  121. package/lib/electron-main/electron-api-main.js +73 -73
  122. package/lib/electron-main/electron-main-module.d.ts +3 -3
  123. package/lib/electron-main/electron-main-module.js +24 -24
  124. package/lib/node/disk-file-system-provider.d.ts +72 -72
  125. package/lib/node/disk-file-system-provider.js +787 -787
  126. package/lib/node/disk-file-system-provider.spec.d.ts +1 -1
  127. package/lib/node/disk-file-system-provider.spec.js +122 -122
  128. package/lib/node/download/directory-archiver.d.ts +9 -9
  129. package/lib/node/download/directory-archiver.js +127 -127
  130. package/lib/node/download/directory-archiver.spec.d.ts +1 -1
  131. package/lib/node/download/directory-archiver.spec.js +97 -97
  132. package/lib/node/download/file-download-backend-module.d.ts +3 -3
  133. package/lib/node/download/file-download-backend-module.js +32 -32
  134. package/lib/node/download/file-download-cache.d.ts +21 -21
  135. package/lib/node/download/file-download-cache.js +82 -82
  136. package/lib/node/download/file-download-endpoint.d.ts +11 -11
  137. package/lib/node/download/file-download-endpoint.js +67 -67
  138. package/lib/node/download/file-download-handler.d.ts +50 -50
  139. package/lib/node/download/file-download-handler.js +307 -307
  140. package/lib/node/download/test/mock-directory-archiver.d.ts +7 -7
  141. package/lib/node/download/test/mock-directory-archiver.js +29 -29
  142. package/lib/node/file-change-collection.d.ts +22 -22
  143. package/lib/node/file-change-collection.js +77 -77
  144. package/lib/node/file-change-collection.spec.d.ts +1 -1
  145. package/lib/node/file-change-collection.spec.js +90 -90
  146. package/lib/node/filesystem-backend-module.d.ts +26 -26
  147. package/lib/node/filesystem-backend-module.js +120 -120
  148. package/lib/node/filesystem-watcher-client.d.ts +23 -23
  149. package/lib/node/filesystem-watcher-client.js +75 -75
  150. package/lib/node/filesystem-watcher-dispatcher.d.ts +23 -23
  151. package/lib/node/filesystem-watcher-dispatcher.js +80 -80
  152. package/lib/node/node-file-upload-service.d.ts +16 -16
  153. package/lib/node/node-file-upload-service.js +79 -79
  154. package/lib/node/nsfw-watcher/index.d.ts +3 -3
  155. package/lib/node/nsfw-watcher/index.js +39 -39
  156. package/lib/node/nsfw-watcher/nsfw-filesystem-service.d.ts +191 -191
  157. package/lib/node/nsfw-watcher/nsfw-filesystem-service.js +405 -405
  158. package/lib/node/nsfw-watcher/nsfw-filesystem-watcher.spec.d.ts +1 -1
  159. package/lib/node/nsfw-watcher/nsfw-filesystem-watcher.spec.js +151 -151
  160. package/lib/node/nsfw-watcher/nsfw-options.d.ts +6 -6
  161. package/lib/node/nsfw-watcher/nsfw-options.js +22 -22
  162. package/package.json +4 -4
  163. package/src/browser/breadcrumbs/filepath-breadcrumb.ts +43 -43
  164. package/src/browser/breadcrumbs/filepath-breadcrumbs-container.ts +65 -65
  165. package/src/browser/breadcrumbs/filepath-breadcrumbs-contribution.ts +129 -129
  166. package/src/browser/download/file-download-command-contribution.ts +83 -83
  167. package/src/browser/download/file-download-frontend-module.ts +25 -25
  168. package/src/browser/download/file-download-service.ts +179 -179
  169. package/src/browser/file-dialog/file-dialog-container.ts +67 -67
  170. package/src/browser/file-dialog/file-dialog-hidden-files-renderer.tsx +59 -59
  171. package/src/browser/file-dialog/file-dialog-model.ts +96 -96
  172. package/src/browser/file-dialog/file-dialog-module.ts +44 -44
  173. package/src/browser/file-dialog/file-dialog-service.ts +99 -99
  174. package/src/browser/file-dialog/file-dialog-tree-filters-renderer.tsx +100 -100
  175. package/src/browser/file-dialog/file-dialog-tree.ts +89 -89
  176. package/src/browser/file-dialog/file-dialog-widget.ts +75 -75
  177. package/src/browser/file-dialog/file-dialog.ts +434 -434
  178. package/src/browser/file-dialog/index.ts +20 -20
  179. package/src/browser/file-resource.ts +390 -390
  180. package/src/browser/file-selection.ts +44 -44
  181. package/src/browser/file-service.ts +1841 -1841
  182. package/src/browser/file-tree/file-tree-container.ts +36 -36
  183. package/src/browser/file-tree/file-tree-decorator-adapter.ts +159 -159
  184. package/src/browser/file-tree/file-tree-label-provider.ts +53 -53
  185. package/src/browser/file-tree/file-tree-model.ts +212 -212
  186. package/src/browser/file-tree/file-tree-widget.tsx +327 -327
  187. package/src/browser/file-tree/file-tree.ts +183 -183
  188. package/src/browser/file-tree/index.ts +22 -22
  189. package/src/browser/file-upload-service.ts +539 -539
  190. package/src/browser/filesystem-frontend-contribution.ts +381 -338
  191. package/src/browser/filesystem-frontend-module.ts +77 -77
  192. package/src/browser/filesystem-preferences.ts +139 -139
  193. package/src/browser/filesystem-save-resource-service.ts +125 -125
  194. package/src/browser/filesystem-watcher-error-handler.ts +60 -60
  195. package/src/browser/index.ts +21 -21
  196. package/src/browser/location/index.ts +18 -18
  197. package/src/browser/location/location-renderer.tsx +404 -404
  198. package/src/browser/location/location-service.ts +22 -22
  199. package/src/browser/remote-file-service-contribution.ts +38 -38
  200. package/src/browser/style/file-dialog.css +208 -208
  201. package/src/browser/style/file-icons.css +64 -64
  202. package/src/browser/style/filepath-breadcrumbs.css +20 -20
  203. package/src/browser/style/index.css +36 -36
  204. package/src/browser-only/browser-only-filesystem-frontend-module.ts +38 -38
  205. package/src/browser-only/browser-only-filesystem-provider-server.ts +32 -32
  206. package/src/browser-only/browserfs-filesystem-initialization.ts +61 -61
  207. package/src/browser-only/browserfs-filesystem-provider.ts +462 -462
  208. package/src/common/delegating-file-system-provider.ts +226 -226
  209. package/src/common/download/README.md +30 -30
  210. package/src/common/download/file-download-data.ts +27 -27
  211. package/src/common/file-upload.ts +17 -17
  212. package/src/common/files.spec.ts +51 -51
  213. package/src/common/files.ts +996 -996
  214. package/src/common/filesystem-utils.spec.ts +411 -411
  215. package/src/common/filesystem-utils.ts +64 -64
  216. package/src/common/filesystem-watcher-protocol.ts +96 -96
  217. package/src/common/filesystem.ts +43 -43
  218. package/src/common/index.ts +18 -18
  219. package/src/common/io.ts +150 -150
  220. package/src/common/remote-file-system-provider.ts +549 -549
  221. package/src/electron-browser/file-dialog/electron-file-dialog-module.ts +24 -24
  222. package/src/electron-browser/file-dialog/electron-file-dialog-service.ts +165 -165
  223. package/src/electron-browser/preload.ts +31 -31
  224. package/src/electron-common/electron-api.ts +55 -55
  225. package/src/electron-main/electron-api-main.ts +78 -78
  226. package/src/electron-main/electron-main-module.ts +23 -23
  227. package/src/node/disk-file-system-provider.spec.ts +142 -142
  228. package/src/node/disk-file-system-provider.ts +915 -915
  229. package/src/node/download/directory-archiver.spec.ts +104 -104
  230. package/src/node/download/directory-archiver.ts +126 -126
  231. package/src/node/download/file-download-backend-module.ts +32 -32
  232. package/src/node/download/file-download-cache.ts +88 -88
  233. package/src/node/download/file-download-endpoint.ts +63 -63
  234. package/src/node/download/file-download-handler.ts +304 -304
  235. package/src/node/download/test/mock-directory-archiver.ts +30 -30
  236. package/src/node/file-change-collection.spec.ts +110 -110
  237. package/src/node/file-change-collection.ts +78 -78
  238. package/src/node/filesystem-backend-module.ts +140 -140
  239. package/src/node/filesystem-watcher-client.ts +72 -72
  240. package/src/node/filesystem-watcher-dispatcher.ts +82 -82
  241. package/src/node/node-file-upload-service.ts +80 -80
  242. package/src/node/nsfw-watcher/index.ts +45 -45
  243. package/src/node/nsfw-watcher/nsfw-filesystem-service.ts +481 -481
  244. package/src/node/nsfw-watcher/nsfw-filesystem-watcher.spec.ts +182 -182
  245. package/src/node/nsfw-watcher/nsfw-options.ts +23 -23
  246. package/src/typings/dom.webkit.d.ts +77 -77
  247. package/src/typings/mv/index.d.ts +21 -21
  248. package/src/typings/nsfw/index.d.ts +18 -18
  249. package/src/typings/trash/index.d.ts +20 -20
@@ -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