@theia/filesystem 1.77.0-next.0 → 1.77.0-next.101

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 (436) hide show
  1. package/lib/browser/breadcrumbs/filepath-breadcrumb.js +4 -8
  2. package/lib/browser/breadcrumbs/filepath-breadcrumb.js.map +1 -1
  3. package/lib/browser/breadcrumbs/filepath-breadcrumbs-container.d.ts +1 -1
  4. package/lib/browser/breadcrumbs/filepath-breadcrumbs-container.d.ts.map +1 -1
  5. package/lib/browser/breadcrumbs/filepath-breadcrumbs-container.js +18 -25
  6. package/lib/browser/breadcrumbs/filepath-breadcrumbs-container.js.map +1 -1
  7. package/lib/browser/breadcrumbs/filepath-breadcrumbs-contribution.d.ts +5 -5
  8. package/lib/browser/breadcrumbs/filepath-breadcrumbs-contribution.d.ts.map +1 -1
  9. package/lib/browser/breadcrumbs/filepath-breadcrumbs-contribution.js +27 -33
  10. package/lib/browser/breadcrumbs/filepath-breadcrumbs-contribution.js.map +1 -1
  11. package/lib/browser/download/file-download-command-contribution.d.ts +1 -1
  12. package/lib/browser/download/file-download-command-contribution.d.ts.map +1 -1
  13. package/lib/browser/download/file-download-command-contribution.js +28 -33
  14. package/lib/browser/download/file-download-command-contribution.js.map +1 -1
  15. package/lib/browser/download/file-download-frontend-module.js +8 -10
  16. package/lib/browser/download/file-download-frontend-module.js.map +1 -1
  17. package/lib/browser/download/file-download-service.d.ts +1 -1
  18. package/lib/browser/download/file-download-service.d.ts.map +1 -1
  19. package/lib/browser/download/file-download-service.js +19 -25
  20. package/lib/browser/download/file-download-service.js.map +1 -1
  21. package/lib/browser/file-dialog/file-dialog-container.d.ts +1 -1
  22. package/lib/browser/file-dialog/file-dialog-container.d.ts.map +1 -1
  23. package/lib/browser/file-dialog/file-dialog-container.js +25 -30
  24. package/lib/browser/file-dialog/file-dialog-container.js.map +1 -1
  25. package/lib/browser/file-dialog/file-dialog-hidden-files-renderer.d.ts +1 -1
  26. package/lib/browser/file-dialog/file-dialog-hidden-files-renderer.d.ts.map +1 -1
  27. package/lib/browser/file-dialog/file-dialog-hidden-files-renderer.js +13 -21
  28. package/lib/browser/file-dialog/file-dialog-hidden-files-renderer.js.map +1 -1
  29. package/lib/browser/file-dialog/file-dialog-model.d.ts +2 -2
  30. package/lib/browser/file-dialog/file-dialog-model.d.ts.map +1 -1
  31. package/lib/browser/file-dialog/file-dialog-model.js +20 -27
  32. package/lib/browser/file-dialog/file-dialog-model.js.map +1 -1
  33. package/lib/browser/file-dialog/file-dialog-module.js +21 -23
  34. package/lib/browser/file-dialog/file-dialog-module.js.map +1 -1
  35. package/lib/browser/file-dialog/file-dialog-service.d.ts +4 -4
  36. package/lib/browser/file-dialog/file-dialog-service.d.ts.map +1 -1
  37. package/lib/browser/file-dialog/file-dialog-service.js +29 -38
  38. package/lib/browser/file-dialog/file-dialog-service.js.map +1 -1
  39. package/lib/browser/file-dialog/file-dialog-tree-filters-renderer.d.ts +3 -1
  40. package/lib/browser/file-dialog/file-dialog-tree-filters-renderer.d.ts.map +1 -1
  41. package/lib/browser/file-dialog/file-dialog-tree-filters-renderer.js +17 -22
  42. package/lib/browser/file-dialog/file-dialog-tree-filters-renderer.js.map +1 -1
  43. package/lib/browser/file-dialog/file-dialog-tree-filters-renderer.spec.d.ts +2 -0
  44. package/lib/browser/file-dialog/file-dialog-tree-filters-renderer.spec.d.ts.map +1 -0
  45. package/lib/browser/file-dialog/file-dialog-tree-filters-renderer.spec.js +35 -0
  46. package/lib/browser/file-dialog/file-dialog-tree-filters-renderer.spec.js.map +1 -0
  47. package/lib/browser/file-dialog/file-dialog-tree.d.ts +2 -2
  48. package/lib/browser/file-dialog/file-dialog-tree.d.ts.map +1 -1
  49. package/lib/browser/file-dialog/file-dialog-tree.js +8 -11
  50. package/lib/browser/file-dialog/file-dialog-tree.js.map +1 -1
  51. package/lib/browser/file-dialog/file-dialog-widget.d.ts +2 -2
  52. package/lib/browser/file-dialog/file-dialog-widget.d.ts.map +1 -1
  53. package/lib/browser/file-dialog/file-dialog-widget.js +18 -23
  54. package/lib/browser/file-dialog/file-dialog-widget.js.map +1 -1
  55. package/lib/browser/file-dialog/file-dialog.d.ts +11 -6
  56. package/lib/browser/file-dialog/file-dialog.d.ts.map +1 -1
  57. package/lib/browser/file-dialog/file-dialog.js +109 -126
  58. package/lib/browser/file-dialog/file-dialog.js.map +1 -1
  59. package/lib/browser/file-dialog/index.d.ts +4 -4
  60. package/lib/browser/file-dialog/index.d.ts.map +1 -1
  61. package/lib/browser/file-dialog/index.js +4 -7
  62. package/lib/browser/file-dialog/index.js.map +1 -1
  63. package/lib/browser/file-resource.d.ts +2 -2
  64. package/lib/browser/file-resource.d.ts.map +1 -1
  65. package/lib/browser/file-resource.js +64 -71
  66. package/lib/browser/file-resource.js.map +1 -1
  67. package/lib/browser/file-resource.spec.js +39 -41
  68. package/lib/browser/file-resource.spec.js.map +1 -1
  69. package/lib/browser/file-selection.d.ts +1 -1
  70. package/lib/browser/file-selection.d.ts.map +1 -1
  71. package/lib/browser/file-selection.js +7 -10
  72. package/lib/browser/file-selection.js.map +1 -1
  73. package/lib/browser/file-service-activation.spec.d.ts +2 -0
  74. package/lib/browser/file-service-activation.spec.d.ts.map +1 -0
  75. package/lib/browser/file-service-activation.spec.js +79 -0
  76. package/lib/browser/file-service-activation.spec.js.map +1 -0
  77. package/lib/browser/file-service-copy.spec.d.ts +2 -0
  78. package/lib/browser/file-service-copy.spec.d.ts.map +1 -0
  79. package/lib/browser/file-service-copy.spec.js +193 -0
  80. package/lib/browser/file-service-copy.spec.js.map +1 -0
  81. package/lib/browser/file-service-watcher.spec.js +199 -201
  82. package/lib/browser/file-service-watcher.spec.js.map +1 -1
  83. package/lib/browser/file-service.d.ts +4 -4
  84. package/lib/browser/file-service.d.ts.map +1 -1
  85. package/lib/browser/file-service.js +179 -182
  86. package/lib/browser/file-service.js.map +1 -1
  87. package/lib/browser/file-tree/file-tree-container.js +12 -15
  88. package/lib/browser/file-tree/file-tree-container.js.map +1 -1
  89. package/lib/browser/file-tree/file-tree-decorator-adapter.js +23 -31
  90. package/lib/browser/file-tree/file-tree-decorator-adapter.js.map +1 -1
  91. package/lib/browser/file-tree/file-tree-decorator-adapter.spec.js +26 -28
  92. package/lib/browser/file-tree/file-tree-decorator-adapter.spec.js.map +1 -1
  93. package/lib/browser/file-tree/file-tree-label-provider.d.ts +1 -1
  94. package/lib/browser/file-tree/file-tree-label-provider.d.ts.map +1 -1
  95. package/lib/browser/file-tree/file-tree-label-provider.js +13 -18
  96. package/lib/browser/file-tree/file-tree-label-provider.js.map +1 -1
  97. package/lib/browser/file-tree/file-tree-model.d.ts +4 -4
  98. package/lib/browser/file-tree/file-tree-model.d.ts.map +1 -1
  99. package/lib/browser/file-tree/file-tree-model.js +42 -52
  100. package/lib/browser/file-tree/file-tree-model.js.map +1 -1
  101. package/lib/browser/file-tree/file-tree-widget.d.ts +3 -3
  102. package/lib/browser/file-tree/file-tree-widget.d.ts.map +1 -1
  103. package/lib/browser/file-tree/file-tree-widget.js +63 -71
  104. package/lib/browser/file-tree/file-tree-widget.js.map +1 -1
  105. package/lib/browser/file-tree/file-tree.d.ts +3 -3
  106. package/lib/browser/file-tree/file-tree.d.ts.map +1 -1
  107. package/lib/browser/file-tree/file-tree.js +26 -31
  108. package/lib/browser/file-tree/file-tree.js.map +1 -1
  109. package/lib/browser/file-tree/index.d.ts +6 -6
  110. package/lib/browser/file-tree/index.d.ts.map +1 -1
  111. package/lib/browser/file-tree/index.js +6 -9
  112. package/lib/browser/file-tree/index.js.map +1 -1
  113. package/lib/browser/filesystem-frontend-contribution.d.ts +6 -6
  114. package/lib/browser/filesystem-frontend-contribution.d.ts.map +1 -1
  115. package/lib/browser/filesystem-frontend-contribution.js +75 -90
  116. package/lib/browser/filesystem-frontend-contribution.js.map +1 -1
  117. package/lib/browser/filesystem-frontend-module.js +47 -50
  118. package/lib/browser/filesystem-frontend-module.js.map +1 -1
  119. package/lib/browser/filesystem-saveable-service.d.ts +2 -2
  120. package/lib/browser/filesystem-saveable-service.d.ts.map +1 -1
  121. package/lib/browser/filesystem-saveable-service.js +35 -44
  122. package/lib/browser/filesystem-saveable-service.js.map +1 -1
  123. package/lib/browser/filesystem-watcher-error-handler.js +13 -18
  124. package/lib/browser/filesystem-watcher-error-handler.js.map +1 -1
  125. package/lib/browser/index.d.ts +4 -4
  126. package/lib/browser/index.d.ts.map +1 -1
  127. package/lib/browser/index.js +4 -7
  128. package/lib/browser/index.js.map +1 -1
  129. package/lib/browser/location/index.d.ts +2 -2
  130. package/lib/browser/location/index.d.ts.map +1 -1
  131. package/lib/browser/location/index.js +2 -5
  132. package/lib/browser/location/index.js.map +1 -1
  133. package/lib/browser/location/location-renderer.d.ts +3 -3
  134. package/lib/browser/location/location-renderer.d.ts.map +1 -1
  135. package/lib/browser/location/location-renderer.js +42 -51
  136. package/lib/browser/location/location-renderer.js.map +1 -1
  137. package/lib/browser/location/location-renderer.spec.js +61 -63
  138. package/lib/browser/location/location-renderer.spec.js.map +1 -1
  139. package/lib/browser/location/location-service.js +1 -2
  140. package/lib/browser/location/location-service.js.map +1 -1
  141. package/lib/browser/remote-file-service-contribution.d.ts +2 -2
  142. package/lib/browser/remote-file-service-contribution.d.ts.map +1 -1
  143. package/lib/browser/remote-file-service-contribution.js +8 -12
  144. package/lib/browser/remote-file-service-contribution.js.map +1 -1
  145. package/lib/browser/upload/file-upload-service-impl.d.ts +3 -3
  146. package/lib/browser/upload/file-upload-service-impl.d.ts.map +1 -1
  147. package/lib/browser/upload/file-upload-service-impl.js +55 -64
  148. package/lib/browser/upload/file-upload-service-impl.js.map +1 -1
  149. package/lib/browser/vscode-file-service-contribution.d.ts +2 -2
  150. package/lib/browser/vscode-file-service-contribution.d.ts.map +1 -1
  151. package/lib/browser/vscode-file-service-contribution.js +23 -28
  152. package/lib/browser/vscode-file-service-contribution.js.map +1 -1
  153. package/lib/browser-only/browser-only-filesystem-frontend-module.js +21 -23
  154. package/lib/browser-only/browser-only-filesystem-frontend-module.js.map +1 -1
  155. package/lib/browser-only/browser-only-filesystem-provider-server.d.ts +1 -1
  156. package/lib/browser-only/browser-only-filesystem-provider-server.d.ts.map +1 -1
  157. package/lib/browser-only/browser-only-filesystem-provider-server.js +10 -13
  158. package/lib/browser-only/browser-only-filesystem-provider-server.js.map +1 -1
  159. package/lib/browser-only/download/file-download-command-contribution.d.ts +1 -1
  160. package/lib/browser-only/download/file-download-command-contribution.d.ts.map +1 -1
  161. package/lib/browser-only/download/file-download-command-contribution.js +14 -19
  162. package/lib/browser-only/download/file-download-command-contribution.js.map +1 -1
  163. package/lib/browser-only/download/file-download-frontend-module.js +8 -10
  164. package/lib/browser-only/download/file-download-frontend-module.js.map +1 -1
  165. package/lib/browser-only/download/file-download-service.d.ts +3 -3
  166. package/lib/browser-only/download/file-download-service.d.ts.map +1 -1
  167. package/lib/browser-only/download/file-download-service.js +26 -33
  168. package/lib/browser-only/download/file-download-service.js.map +1 -1
  169. package/lib/browser-only/file-search.d.ts.map +1 -1
  170. package/lib/browser-only/file-search.js +9 -14
  171. package/lib/browser-only/file-search.js.map +1 -1
  172. package/lib/browser-only/opfs-filesystem-initialization.d.ts +1 -1
  173. package/lib/browser-only/opfs-filesystem-initialization.d.ts.map +1 -1
  174. package/lib/browser-only/opfs-filesystem-initialization.js +6 -9
  175. package/lib/browser-only/opfs-filesystem-initialization.js.map +1 -1
  176. package/lib/browser-only/opfs-filesystem-provider.d.ts +2 -2
  177. package/lib/browser-only/opfs-filesystem-provider.d.ts.map +1 -1
  178. package/lib/browser-only/opfs-filesystem-provider.js +60 -68
  179. package/lib/browser-only/opfs-filesystem-provider.js.map +1 -1
  180. package/lib/browser-only/upload/file-upload-service-impl.d.ts +3 -3
  181. package/lib/browser-only/upload/file-upload-service-impl.d.ts.map +1 -1
  182. package/lib/browser-only/upload/file-upload-service-impl.js +51 -60
  183. package/lib/browser-only/upload/file-upload-service-impl.js.map +1 -1
  184. package/lib/common/delegating-file-system-provider.d.ts +1 -1
  185. package/lib/common/delegating-file-system-provider.d.ts.map +1 -1
  186. package/lib/common/delegating-file-system-provider.js +18 -22
  187. package/lib/common/delegating-file-system-provider.js.map +1 -1
  188. package/lib/common/download/file-download.js +5 -8
  189. package/lib/common/download/file-download.js.map +1 -1
  190. package/lib/common/file-upload.js +1 -4
  191. package/lib/common/file-upload.js.map +1 -1
  192. package/lib/common/files.js +38 -58
  193. package/lib/common/files.js.map +1 -1
  194. package/lib/common/files.spec.js +22 -24
  195. package/lib/common/files.spec.js.map +1 -1
  196. package/lib/common/filesystem-preferences.js +39 -44
  197. package/lib/common/filesystem-preferences.js.map +1 -1
  198. package/lib/common/filesystem-utils.d.ts +1 -1
  199. package/lib/common/filesystem-utils.d.ts.map +1 -1
  200. package/lib/common/filesystem-utils.js +2 -5
  201. package/lib/common/filesystem-utils.js.map +1 -1
  202. package/lib/common/filesystem-utils.spec.js +227 -229
  203. package/lib/common/filesystem-utils.spec.js.map +1 -1
  204. package/lib/common/filesystem-watcher-protocol.d.ts +5 -1
  205. package/lib/common/filesystem-watcher-protocol.d.ts.map +1 -1
  206. package/lib/common/filesystem-watcher-protocol.js +2 -5
  207. package/lib/common/filesystem-watcher-protocol.js.map +1 -1
  208. package/lib/common/filesystem.js +2 -5
  209. package/lib/common/filesystem.js.map +1 -1
  210. package/lib/common/index.d.ts +3 -3
  211. package/lib/common/index.d.ts.map +1 -1
  212. package/lib/common/index.js +3 -6
  213. package/lib/common/index.js.map +1 -1
  214. package/lib/common/io.d.ts +2 -2
  215. package/lib/common/io.d.ts.map +1 -1
  216. package/lib/common/io.js +10 -13
  217. package/lib/common/io.js.map +1 -1
  218. package/lib/common/remote-file-system-provider.d.ts +1 -1
  219. package/lib/common/remote-file-system-provider.d.ts.map +1 -1
  220. package/lib/common/remote-file-system-provider.js +81 -93
  221. package/lib/common/remote-file-system-provider.js.map +1 -1
  222. package/lib/common/upload/file-upload.js +1 -4
  223. package/lib/common/upload/file-upload.js.map +1 -1
  224. package/lib/electron-browser/file-dialog/electron-file-dialog-module.js +6 -8
  225. package/lib/electron-browser/file-dialog/electron-file-dialog-module.js.map +1 -1
  226. package/lib/electron-browser/file-dialog/electron-file-dialog-service.d.ts +3 -3
  227. package/lib/electron-browser/file-dialog/electron-file-dialog-service.d.ts.map +1 -1
  228. package/lib/electron-browser/file-dialog/electron-file-dialog-service.js +20 -24
  229. package/lib/electron-browser/file-dialog/electron-file-dialog-service.js.map +1 -1
  230. package/lib/electron-browser/file-dialog/electron-file-dialog-service.spec.d.ts +2 -0
  231. package/lib/electron-browser/file-dialog/electron-file-dialog-service.spec.d.ts.map +1 -0
  232. package/lib/electron-browser/file-dialog/electron-file-dialog-service.spec.js +46 -0
  233. package/lib/electron-browser/file-dialog/electron-file-dialog-service.spec.js.map +1 -0
  234. package/lib/electron-browser/preload.js +6 -9
  235. package/lib/electron-browser/preload.js.map +1 -1
  236. package/lib/electron-common/electron-api.js +2 -5
  237. package/lib/electron-common/electron-api.js.map +1 -1
  238. package/lib/electron-main/electron-api-main.js +15 -18
  239. package/lib/electron-main/electron-api-main.js.map +1 -1
  240. package/lib/electron-main/electron-main-module.js +6 -8
  241. package/lib/electron-main/electron-main-module.js.map +1 -1
  242. package/lib/node/disk-file-system-provider.d.ts +2 -2
  243. package/lib/node/disk-file-system-provider.d.ts.map +1 -1
  244. package/lib/node/disk-file-system-provider.js +116 -121
  245. package/lib/node/disk-file-system-provider.js.map +1 -1
  246. package/lib/node/disk-file-system-provider.spec.js +77 -54
  247. package/lib/node/disk-file-system-provider.spec.js.map +1 -1
  248. package/lib/node/download/directory-archiver.js +13 -16
  249. package/lib/node/download/directory-archiver.js.map +1 -1
  250. package/lib/node/download/directory-archiver.spec.js +20 -22
  251. package/lib/node/download/directory-archiver.spec.js.map +1 -1
  252. package/lib/node/download/file-download-backend-module.js +14 -16
  253. package/lib/node/download/file-download-backend-module.js.map +1 -1
  254. package/lib/node/download/file-download-cache.js +12 -16
  255. package/lib/node/download/file-download-cache.js.map +1 -1
  256. package/lib/node/download/file-download-endpoint.d.ts +1 -1
  257. package/lib/node/download/file-download-endpoint.d.ts.map +1 -1
  258. package/lib/node/download/file-download-endpoint.js +25 -31
  259. package/lib/node/download/file-download-endpoint.js.map +1 -1
  260. package/lib/node/download/file-download-handler.d.ts +2 -2
  261. package/lib/node/download/file-download-handler.d.ts.map +1 -1
  262. package/lib/node/download/file-download-handler.js +70 -77
  263. package/lib/node/download/file-download-handler.js.map +1 -1
  264. package/lib/node/download/test/mock-directory-archiver.d.ts +1 -1
  265. package/lib/node/download/test/mock-directory-archiver.d.ts.map +1 -1
  266. package/lib/node/download/test/mock-directory-archiver.js +2 -6
  267. package/lib/node/download/test/mock-directory-archiver.js.map +1 -1
  268. package/lib/node/file-change-collection.d.ts +1 -1
  269. package/lib/node/file-change-collection.d.ts.map +1 -1
  270. package/lib/node/file-change-collection.js +1 -5
  271. package/lib/node/file-change-collection.js.map +1 -1
  272. package/lib/node/file-change-collection.spec.js +5 -7
  273. package/lib/node/file-change-collection.spec.js.map +1 -1
  274. package/lib/node/filesystem-backend-module.d.ts +3 -3
  275. package/lib/node/filesystem-backend-module.d.ts.map +1 -1
  276. package/lib/node/filesystem-backend-module.js +57 -62
  277. package/lib/node/filesystem-backend-module.js.map +1 -1
  278. package/lib/node/filesystem-watcher-client.d.ts +2 -2
  279. package/lib/node/filesystem-watcher-client.d.ts.map +1 -1
  280. package/lib/node/filesystem-watcher-client.js +11 -16
  281. package/lib/node/filesystem-watcher-client.js.map +1 -1
  282. package/lib/node/filesystem-watcher-dispatcher.d.ts +1 -1
  283. package/lib/node/filesystem-watcher-dispatcher.d.ts.map +1 -1
  284. package/lib/node/filesystem-watcher-dispatcher.js +9 -13
  285. package/lib/node/filesystem-watcher-dispatcher.js.map +1 -1
  286. package/lib/node/filesystem-watcher-service-impl.d.ts +30 -0
  287. package/lib/node/filesystem-watcher-service-impl.d.ts.map +1 -0
  288. package/lib/node/filesystem-watcher-service-impl.js +88 -0
  289. package/lib/node/filesystem-watcher-service-impl.js.map +1 -0
  290. package/lib/node/filesystem-watcher-service-impl.spec.d.ts +2 -0
  291. package/lib/node/filesystem-watcher-service-impl.spec.d.ts.map +1 -0
  292. package/lib/node/filesystem-watcher-service-impl.spec.js +199 -0
  293. package/lib/node/filesystem-watcher-service-impl.spec.js.map +1 -0
  294. package/lib/node/filesystem-watcher.d.ts +93 -0
  295. package/lib/node/filesystem-watcher.d.ts.map +1 -0
  296. package/lib/node/filesystem-watcher.js +129 -0
  297. package/lib/node/filesystem-watcher.js.map +1 -0
  298. package/lib/node/nodejs-watcher/node-directory-watcher.d.ts +175 -0
  299. package/lib/node/nodejs-watcher/node-directory-watcher.d.ts.map +1 -0
  300. package/lib/node/nodejs-watcher/node-directory-watcher.js +574 -0
  301. package/lib/node/nodejs-watcher/node-directory-watcher.js.map +1 -0
  302. package/lib/node/nodejs-watcher/node-directory-watcher.spec.d.ts +2 -0
  303. package/lib/node/nodejs-watcher/node-directory-watcher.spec.d.ts.map +1 -0
  304. package/lib/node/nodejs-watcher/node-directory-watcher.spec.js +1281 -0
  305. package/lib/node/nodejs-watcher/node-directory-watcher.spec.js.map +1 -0
  306. package/lib/node/nodejs-watcher/watch-request-router.d.ts +63 -0
  307. package/lib/node/nodejs-watcher/watch-request-router.d.ts.map +1 -0
  308. package/lib/node/nodejs-watcher/watch-request-router.js +178 -0
  309. package/lib/node/nodejs-watcher/watch-request-router.js.map +1 -0
  310. package/lib/node/nodejs-watcher/watcher-host.d.ts +50 -0
  311. package/lib/node/nodejs-watcher/watcher-host.d.ts.map +1 -0
  312. package/lib/node/nodejs-watcher/watcher-host.js +94 -0
  313. package/lib/node/nodejs-watcher/watcher-host.js.map +1 -0
  314. package/lib/node/parcel-watcher/index.js +6 -8
  315. package/lib/node/parcel-watcher/index.js.map +1 -1
  316. package/lib/node/parcel-watcher/parcel-filesystem-service.d.ts +14 -194
  317. package/lib/node/parcel-watcher/parcel-filesystem-service.d.ts.map +1 -1
  318. package/lib/node/parcel-watcher/parcel-filesystem-service.js +5 -426
  319. package/lib/node/parcel-watcher/parcel-filesystem-service.js.map +1 -1
  320. package/lib/node/parcel-watcher/parcel-filesystem-watcher.spec.js +23 -25
  321. package/lib/node/parcel-watcher/parcel-filesystem-watcher.spec.js.map +1 -1
  322. package/lib/node/parcel-watcher/parcel-options.js +1 -4
  323. package/lib/node/parcel-watcher/parcel-options.js.map +1 -1
  324. package/lib/node/parcel-watcher/parcel-watcher-exclude.spec.js +12 -16
  325. package/lib/node/parcel-watcher/parcel-watcher-exclude.spec.js.map +1 -1
  326. package/lib/node/parcel-watcher/parcel-watcher-retry.spec.js +11 -15
  327. package/lib/node/parcel-watcher/parcel-watcher-retry.spec.js.map +1 -1
  328. package/lib/node/parcel-watcher/parcel-watcher.d.ts +165 -0
  329. package/lib/node/parcel-watcher/parcel-watcher.d.ts.map +1 -0
  330. package/lib/node/parcel-watcher/parcel-watcher.js +366 -0
  331. package/lib/node/parcel-watcher/parcel-watcher.js.map +1 -0
  332. package/lib/node/test/watcher-test-helper.d.ts +21 -0
  333. package/lib/node/test/watcher-test-helper.d.ts.map +1 -0
  334. package/lib/node/test/watcher-test-helper.js +51 -0
  335. package/lib/node/test/watcher-test-helper.js.map +1 -0
  336. package/lib/node/upload/node-file-upload-service.d.ts +1 -1
  337. package/lib/node/upload/node-file-upload-service.d.ts.map +1 -1
  338. package/lib/node/upload/node-file-upload-service.js +20 -25
  339. package/lib/node/upload/node-file-upload-service.js.map +1 -1
  340. package/lib/node/upload/node-file-upload-service.spec.js +21 -23
  341. package/lib/node/upload/node-file-upload-service.spec.js.map +1 -1
  342. package/package.json +21 -7
  343. package/src/browser/breadcrumbs/filepath-breadcrumb.ts +1 -1
  344. package/src/browser/breadcrumbs/filepath-breadcrumbs-container.ts +1 -1
  345. package/src/browser/breadcrumbs/filepath-breadcrumbs-contribution.ts +5 -5
  346. package/src/browser/download/file-download-command-contribution.ts +1 -1
  347. package/src/browser/download/file-download-frontend-module.ts +3 -3
  348. package/src/browser/download/file-download-service.ts +1 -2
  349. package/src/browser/file-dialog/file-dialog-container.ts +5 -5
  350. package/src/browser/file-dialog/file-dialog-hidden-files-renderer.tsx +1 -1
  351. package/src/browser/file-dialog/file-dialog-model.ts +2 -2
  352. package/src/browser/file-dialog/file-dialog-module.ts +5 -5
  353. package/src/browser/file-dialog/file-dialog-service.ts +4 -4
  354. package/src/browser/file-dialog/file-dialog-tree-filters-renderer.spec.ts +43 -0
  355. package/src/browser/file-dialog/file-dialog-tree-filters-renderer.tsx +4 -2
  356. package/src/browser/file-dialog/file-dialog-tree.ts +2 -2
  357. package/src/browser/file-dialog/file-dialog-widget.ts +2 -2
  358. package/src/browser/file-dialog/file-dialog.ts +17 -7
  359. package/src/browser/file-dialog/index.ts +4 -4
  360. package/src/browser/file-resource.spec.ts +3 -3
  361. package/src/browser/file-resource.ts +3 -3
  362. package/src/browser/file-selection.ts +1 -1
  363. package/src/browser/file-service-activation.spec.ts +93 -0
  364. package/src/browser/file-service-copy.spec.ts +226 -0
  365. package/src/browser/file-service-watcher.spec.ts +2 -2
  366. package/src/browser/file-service.ts +22 -11
  367. package/src/browser/file-tree/file-tree-container.ts +3 -3
  368. package/src/browser/file-tree/file-tree-decorator-adapter.spec.ts +1 -1
  369. package/src/browser/file-tree/file-tree-decorator-adapter.ts +1 -1
  370. package/src/browser/file-tree/file-tree-label-provider.ts +1 -1
  371. package/src/browser/file-tree/file-tree-model.ts +5 -5
  372. package/src/browser/file-tree/file-tree-widget.tsx +4 -4
  373. package/src/browser/file-tree/file-tree.ts +3 -3
  374. package/src/browser/file-tree/index.ts +6 -6
  375. package/src/browser/filesystem-frontend-contribution.ts +6 -6
  376. package/src/browser/filesystem-frontend-module.ts +14 -14
  377. package/src/browser/filesystem-saveable-service.ts +2 -2
  378. package/src/browser/index.ts +4 -4
  379. package/src/browser/location/index.ts +2 -2
  380. package/src/browser/location/location-renderer.spec.ts +3 -3
  381. package/src/browser/location/location-renderer.tsx +3 -3
  382. package/src/browser/remote-file-service-contribution.ts +2 -2
  383. package/src/browser/upload/file-upload-service-impl.ts +5 -5
  384. package/src/browser/vscode-file-service-contribution.ts +2 -2
  385. package/src/browser-only/browser-only-filesystem-frontend-module.ts +7 -7
  386. package/src/browser-only/browser-only-filesystem-provider-server.ts +1 -1
  387. package/src/browser-only/download/file-download-command-contribution.ts +2 -2
  388. package/src/browser-only/download/file-download-frontend-module.ts +3 -3
  389. package/src/browser-only/download/file-download-service.ts +3 -3
  390. package/src/browser-only/file-search.ts +2 -1
  391. package/src/browser-only/opfs-filesystem-initialization.ts +1 -1
  392. package/src/browser-only/opfs-filesystem-provider.ts +3 -3
  393. package/src/browser-only/upload/file-upload-service-impl.ts +4 -4
  394. package/src/common/delegating-file-system-provider.ts +1 -1
  395. package/src/common/files.spec.ts +1 -1
  396. package/src/common/filesystem-utils.spec.ts +2 -2
  397. package/src/common/filesystem-utils.ts +1 -1
  398. package/src/common/filesystem-watcher-protocol.ts +5 -1
  399. package/src/common/index.ts +3 -3
  400. package/src/common/io.ts +2 -2
  401. package/src/common/remote-file-system-provider.ts +1 -1
  402. package/src/electron-browser/file-dialog/electron-file-dialog-module.ts +2 -2
  403. package/src/electron-browser/file-dialog/electron-file-dialog-service.spec.ts +57 -0
  404. package/src/electron-browser/file-dialog/electron-file-dialog-service.ts +5 -5
  405. package/src/electron-browser/preload.ts +1 -1
  406. package/src/electron-main/electron-api-main.ts +1 -1
  407. package/src/electron-main/electron-main-module.ts +1 -1
  408. package/src/node/disk-file-system-provider.spec.ts +32 -3
  409. package/src/node/disk-file-system-provider.ts +12 -8
  410. package/src/node/download/directory-archiver.spec.ts +1 -1
  411. package/src/node/download/file-download-backend-module.ts +4 -4
  412. package/src/node/download/file-download-cache.ts +1 -1
  413. package/src/node/download/file-download-endpoint.ts +4 -3
  414. package/src/node/download/file-download-handler.ts +3 -4
  415. package/src/node/download/test/mock-directory-archiver.ts +1 -1
  416. package/src/node/file-change-collection.spec.ts +2 -2
  417. package/src/node/file-change-collection.ts +1 -1
  418. package/src/node/filesystem-backend-module.ts +15 -14
  419. package/src/node/filesystem-watcher-client.ts +2 -2
  420. package/src/node/filesystem-watcher-dispatcher.ts +1 -1
  421. package/src/node/filesystem-watcher-service-impl.spec.ts +272 -0
  422. package/src/node/filesystem-watcher-service-impl.ts +109 -0
  423. package/src/node/filesystem-watcher.ts +197 -0
  424. package/src/node/nodejs-watcher/node-directory-watcher.spec.ts +1594 -0
  425. package/src/node/nodejs-watcher/node-directory-watcher.ts +664 -0
  426. package/src/node/nodejs-watcher/watch-request-router.ts +224 -0
  427. package/src/node/nodejs-watcher/watcher-host.ts +126 -0
  428. package/src/node/parcel-watcher/index.ts +3 -3
  429. package/src/node/parcel-watcher/parcel-filesystem-service.ts +14 -500
  430. package/src/node/parcel-watcher/parcel-filesystem-watcher.spec.ts +5 -5
  431. package/src/node/parcel-watcher/parcel-watcher-exclude.spec.ts +7 -11
  432. package/src/node/parcel-watcher/parcel-watcher-retry.spec.ts +6 -8
  433. package/src/node/parcel-watcher/parcel-watcher.ts +433 -0
  434. package/src/node/test/watcher-test-helper.ts +58 -0
  435. package/src/node/upload/node-file-upload-service.spec.ts +1 -1
  436. package/src/node/upload/node-file-upload-service.ts +6 -6
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  // *****************************************************************************
3
2
  // Copyright (C) 2020 TypeFox and others.
4
3
  //
@@ -19,45 +18,44 @@
19
18
  * Licensed under the MIT License. See License.txt in the project root for license information.
20
19
  *--------------------------------------------------------------------------------------------*/
21
20
  // based on https://github.com/microsoft/vscode/blob/04c36be045a94fee58e5f8992d3e3fd980294a84/src/vs/platform/files/node/diskFileSystemProvider.ts
22
- Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.DiskFileSystemProvider = void 0;
24
- const tslib_1 = require("tslib");
21
+ import { __decorate } from "tslib";
25
22
  /* eslint-disable no-null/no-null */
26
23
  /* eslint-disable @typescript-eslint/no-shadow */
27
- const inversify_1 = require("@theia/core/shared/inversify");
28
- const core_1 = require("@theia/core");
29
- const path_1 = require("path");
30
- const uuid_1 = require("@theia/core/lib/common/uuid");
31
- const os = require("os");
32
- const fs = require("fs");
33
- const fs_1 = require("fs");
34
- const util_1 = require("util");
35
- const uri_1 = require("@theia/core/lib/common/uri");
36
- const path_2 = require("@theia/core/lib/common/path");
37
- const file_uri_1 = require("@theia/core/lib/common/file-uri");
38
- const event_1 = require("@theia/core/lib/common/event");
39
- const disposable_1 = require("@theia/core/lib/common/disposable");
40
- const os_1 = require("@theia/core/lib/common/os");
41
- const promise_util_1 = require("@theia/core/lib/common/promise-util");
42
- const files_1 = require("../common/files");
43
- const filesystem_watcher_protocol_1 = require("../common/filesystem-watcher-protocol");
44
- const trash = require("trash");
45
- const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
46
- const encoding_service_1 = require("@theia/core/lib/common/encoding-service");
47
- const buffer_1 = require("@theia/core/lib/common/buffer");
48
- const stream_1 = require("@theia/core/lib/common/stream");
49
- const io_1 = require("../common/io");
50
- const stat_mode_1 = require("stat-mode");
24
+ import { injectable, inject, postConstruct, named } from '@theia/core/shared/inversify';
25
+ import { ILogger } from '@theia/core';
26
+ import { basename, dirname, normalize, join } from 'path';
27
+ import { generateUuid } from '@theia/core/lib/common/uuid';
28
+ import * as os from 'os';
29
+ import * as fs from 'fs';
30
+ import { mkdir, open, close, read, write, fdatasync, lstat, stat, readdir, readFile, exists, chmod, rmdir, unlink, rename, futimes, truncate } from 'fs';
31
+ import { promisify } from 'util';
32
+ import URI from '@theia/core/lib/common/uri';
33
+ import { Path } from '@theia/core/lib/common/path';
34
+ import { FileUri } from '@theia/core/lib/common/file-uri';
35
+ import { Event, Emitter } from '@theia/core/lib/common/event';
36
+ import { DisposableCollection } from '@theia/core/lib/common/disposable';
37
+ import { OS, isWindows } from '@theia/core/lib/common/os';
38
+ import { retry } from '@theia/core/lib/common/promise-util';
39
+ import { FileType, createFileSystemProviderError, FileSystemProviderErrorCode, FileSystemProviderError, FilePermission } from '../common/files.js';
40
+ import { FileSystemWatcherServer } from '../common/filesystem-watcher-protocol.js';
41
+ import trash from 'trash';
42
+ import { TextDocument } from 'vscode-languageserver-textdocument';
43
+ import { EncodingService } from '@theia/core/lib/common/encoding-service';
44
+ import { BinaryBuffer } from '@theia/core/lib/common/buffer';
45
+ import { newWriteableStream } from '@theia/core/lib/common/stream';
46
+ import { readFileIntoStream } from '../common/io.js';
47
+ // A CommonJS module whose exports cannot be detected statically, so it is imported as a whole.
48
+ import statMode from 'stat-mode';
51
49
  let DiskFileSystemProvider = class DiskFileSystemProvider {
52
50
  constructor() {
53
51
  this.BUFFER_SIZE = 64 * 1024;
54
- this.onDidChangeFileEmitter = new event_1.Emitter();
52
+ this.onDidChangeFileEmitter = new Emitter();
55
53
  this.onDidChangeFile = this.onDidChangeFileEmitter.event;
56
- this.onFileWatchErrorEmitter = new event_1.Emitter();
54
+ this.onFileWatchErrorEmitter = new Emitter();
57
55
  this.onFileWatchError = this.onFileWatchErrorEmitter.event;
58
- this.toDispose = new disposable_1.DisposableCollection(this.onDidChangeFileEmitter);
56
+ this.toDispose = new DisposableCollection(this.onDidChangeFileEmitter);
59
57
  // #region File Capabilities
60
- this.onDidChangeCapabilities = event_1.Event.None;
58
+ this.onDidChangeCapabilities = Event.None;
61
59
  this.mapHandleToPos = new Map();
62
60
  this.writeHandles = new Set();
63
61
  this.canFlush = true;
@@ -66,7 +64,7 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
66
64
  this.toDispose.push(this.watcher);
67
65
  this.watcher.setClient({
68
66
  onDidFilesChanged: params => this.onDidChangeFileEmitter.fire(params.changes.map(({ uri, type }) => ({
69
- resource: new uri_1.default(uri),
67
+ resource: new URI(uri),
70
68
  type
71
69
  }))),
72
70
  onError: () => this.onFileWatchErrorEmitter.fire()
@@ -82,7 +80,7 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
82
80
  16777216 /* FileSystemProviderCapabilities.Access */ |
83
81
  4096 /* FileSystemProviderCapabilities.Trash */ |
84
82
  33554432 /* FileSystemProviderCapabilities.Update */;
85
- if (os_1.OS.type() === os_1.OS.Type.Linux) {
83
+ if (OS.type() === OS.Type.Linux) {
86
84
  this._capabilities |= 1024 /* FileSystemProviderCapabilities.PathCaseSensitive */;
87
85
  }
88
86
  }
@@ -93,13 +91,13 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
93
91
  async stat(resource) {
94
92
  try {
95
93
  const { stat, symbolicLink } = await this.statLink(this.toFilePath(resource)); // cannot use fs.stat() here to support links properly
96
- const mode = new stat_mode_1.Mode(stat);
94
+ const mode = new statMode.Mode(stat);
97
95
  return {
98
96
  type: this.toType(stat, symbolicLink),
99
97
  ctime: stat.birthtime.getTime(), // intentionally not using ctime here, we want the creation time
100
98
  mtime: stat.mtime.getTime(),
101
99
  size: stat.size,
102
- permissions: !mode.owner.write ? files_1.FilePermission.Readonly : undefined,
100
+ permissions: !mode.owner.write ? FilePermission.Readonly : undefined,
103
101
  };
104
102
  }
105
103
  catch (error) {
@@ -108,20 +106,20 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
108
106
  }
109
107
  async access(resource, mode) {
110
108
  try {
111
- await (0, util_1.promisify)(fs.access)(this.toFilePath(resource), mode);
109
+ await promisify(fs.access)(this.toFilePath(resource), mode);
112
110
  }
113
111
  catch (error) {
114
112
  throw this.toFileSystemProviderError(error);
115
113
  }
116
114
  }
117
115
  async fsPath(resource) {
118
- return file_uri_1.FileUri.fsPath(resource);
116
+ return FileUri.fsPath(resource);
119
117
  }
120
118
  async statLink(path) {
121
119
  // First stat the link
122
120
  let lstats;
123
121
  try {
124
- lstats = await (0, util_1.promisify)(fs_1.lstat)(path);
122
+ lstats = await promisify(lstat)(path);
125
123
  // Return early if the stat is not a symbolic link at all
126
124
  if (!lstats.isSymbolicLink()) {
127
125
  return { stat: lstats };
@@ -133,7 +131,7 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
133
131
  // If the stat is a symbolic link or failed to stat, use fs.stat()
134
132
  // which for symbolic links will stat the target they point to
135
133
  try {
136
- const stats = await (0, util_1.promisify)(fs_1.stat)(path);
134
+ const stats = await promisify(stat)(path);
137
135
  return { stat: stats, symbolicLink: lstats?.isSymbolicLink() ? { dangling: false } : undefined };
138
136
  }
139
137
  catch (error) {
@@ -147,7 +145,7 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
147
145
  }
148
146
  async readdir(resource) {
149
147
  try {
150
- const children = await (0, util_1.promisify)(fs.readdir)(this.toFilePath(resource));
148
+ const children = await promisify(fs.readdir)(this.toFilePath(resource));
151
149
  const result = [];
152
150
  await Promise.all(children.map(async (child) => {
153
151
  try {
@@ -170,20 +168,20 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
170
168
  // - files that are neither file nor directory are FileType.Unknown
171
169
  let type;
172
170
  if (symbolicLink?.dangling) {
173
- type = files_1.FileType.Unknown;
171
+ type = FileType.Unknown;
174
172
  }
175
173
  else if (entry.isFile()) {
176
- type = files_1.FileType.File;
174
+ type = FileType.File;
177
175
  }
178
176
  else if (entry.isDirectory()) {
179
- type = files_1.FileType.Directory;
177
+ type = FileType.Directory;
180
178
  }
181
179
  else {
182
- type = files_1.FileType.Unknown;
180
+ type = FileType.Unknown;
183
181
  }
184
182
  // Always signal symbolic link as file type additionally
185
183
  if (symbolicLink) {
186
- type |= files_1.FileType.SymbolicLink;
184
+ type |= FileType.SymbolicLink;
187
185
  }
188
186
  return type;
189
187
  }
@@ -192,15 +190,15 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
192
190
  async readFile(resource) {
193
191
  try {
194
192
  const filePath = this.toFilePath(resource);
195
- return await (0, util_1.promisify)(fs_1.readFile)(filePath);
193
+ return await promisify(readFile)(filePath);
196
194
  }
197
195
  catch (error) {
198
196
  throw this.toFileSystemProviderError(error);
199
197
  }
200
198
  }
201
199
  readFileStream(resource, opts, token) {
202
- const stream = (0, stream_1.newWriteableStream)(data => buffer_1.BinaryBuffer.concat(data.map(data => buffer_1.BinaryBuffer.wrap(data))).buffer);
203
- (0, io_1.readFileIntoStream)(this, resource, stream, data => data.buffer, {
200
+ const stream = newWriteableStream(data => BinaryBuffer.concat(data.map(data => BinaryBuffer.wrap(data))).buffer);
201
+ readFileIntoStream(this, resource, stream, data => data.buffer, {
204
202
  ...opts,
205
203
  bufferSize: this.BUFFER_SIZE
206
204
  }, token);
@@ -212,14 +210,14 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
212
210
  const filePath = this.toFilePath(resource);
213
211
  // Validate target unless { create: true, overwrite: true }
214
212
  if (!opts.create || !opts.overwrite) {
215
- const fileExists = await (0, util_1.promisify)(fs_1.exists)(filePath);
213
+ const fileExists = await promisify(exists)(filePath);
216
214
  if (fileExists) {
217
215
  if (!opts.overwrite) {
218
- throw (0, files_1.createFileSystemProviderError)('File already exists', files_1.FileSystemProviderErrorCode.FileExists);
216
+ throw createFileSystemProviderError('File already exists', FileSystemProviderErrorCode.FileExists);
219
217
  }
220
218
  }
221
219
  else if (!opts.create) {
222
- throw (0, files_1.createFileSystemProviderError)('File does not exist', files_1.FileSystemProviderErrorCode.FileNotFound);
220
+ throw createFileSystemProviderError('File does not exist', FileSystemProviderErrorCode.FileNotFound);
223
221
  }
224
222
  }
225
223
  // Open
@@ -241,13 +239,13 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
241
239
  const filePath = this.toFilePath(resource);
242
240
  let flags = undefined;
243
241
  if (opts.create) {
244
- if (os_1.isWindows && await (0, util_1.promisify)(fs_1.exists)(filePath)) {
242
+ if (isWindows && await promisify(exists)(filePath)) {
245
243
  try {
246
244
  // On Windows and if the file exists, we use a different strategy of saving the file
247
245
  // by first truncating the file and then writing with r+ flag. This helps to save hidden files on Windows
248
246
  // (see https://github.com/Microsoft/vscode/issues/931) and prevent removing alternate data streams
249
247
  // (see https://github.com/Microsoft/vscode/issues/6363)
250
- await (0, util_1.promisify)(fs_1.truncate)(filePath, 0);
248
+ await promisify(truncate)(filePath, 0);
251
249
  // After a successful truncate() the flag can be set to 'r+' which will not truncate.
252
250
  flags = 'r+';
253
251
  }
@@ -268,7 +266,7 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
268
266
  // the file.
269
267
  flags = 'r';
270
268
  }
271
- const handle = await (0, util_1.promisify)(fs_1.open)(filePath, flags);
269
+ const handle = await promisify(open)(filePath, flags);
272
270
  // remember this handle to track file position of the handle
273
271
  // we init the position to 0 since the file descriptor was
274
272
  // just created and the position was not moved so far (see
@@ -293,7 +291,7 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
293
291
  // to flush the contents to disk if possible.
294
292
  if (this.writeHandles.delete(fd) && this.canFlush) {
295
293
  try {
296
- await (0, util_1.promisify)(fs_1.fdatasync)(fd);
294
+ await promisify(fdatasync)(fd);
297
295
  }
298
296
  catch (error) {
299
297
  // In some exotic setups it is well possible that node fails to sync
@@ -302,7 +300,7 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
302
300
  this.logger.error(error);
303
301
  }
304
302
  }
305
- return await (0, util_1.promisify)(fs_1.close)(fd);
303
+ return await promisify(close)(fd);
306
304
  }
307
305
  catch (error) {
308
306
  throw this.toFileSystemProviderError(error);
@@ -312,7 +310,7 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
312
310
  const normalizedPos = this.normalizePos(fd, pos);
313
311
  let bytesRead = null;
314
312
  try {
315
- const result = await (0, util_1.promisify)(fs_1.read)(fd, data, offset, length, normalizedPos);
313
+ const result = await promisify(read)(fd, data, offset, length, normalizedPos);
316
314
  if (typeof result === 'number') {
317
315
  bytesRead = result; // node.d.ts fail
318
316
  }
@@ -367,13 +365,13 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
367
365
  // we know at this point that the file to write to is truncated and thus empty
368
366
  // if the write now fails, the file remains empty. as such we really try hard
369
367
  // to ensure the write succeeds by retrying up to three times.
370
- return (0, promise_util_1.retry)(() => this.doWrite(fd, pos, data, offset, length), 100 /* ms delay */, 3 /* retries */);
368
+ return retry(() => this.doWrite(fd, pos, data, offset, length), 100 /* ms delay */, 3 /* retries */);
371
369
  }
372
370
  async doWrite(fd, pos, data, offset, length) {
373
371
  const normalizedPos = this.normalizePos(fd, pos);
374
372
  let bytesWritten = null;
375
373
  try {
376
- const result = await (0, util_1.promisify)(fs_1.write)(fd, data, offset, length, normalizedPos);
374
+ const result = await promisify(write)(fd, data, offset, length, normalizedPos);
377
375
  if (typeof result === 'number') {
378
376
  bytesWritten = result; // node.d.ts fail
379
377
  }
@@ -393,7 +391,7 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
393
391
  // #region Move/Copy/Delete/Create Folder
394
392
  async mkdir(resource) {
395
393
  try {
396
- await (0, util_1.promisify)(fs_1.mkdir)(this.toFilePath(resource));
394
+ await promisify(mkdir)(this.toFilePath(resource));
397
395
  }
398
396
  catch (error) {
399
397
  throw this.toFileSystemProviderError(error);
@@ -414,12 +412,12 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
414
412
  await this.rimraf(filePath);
415
413
  }
416
414
  else {
417
- const stat = await (0, util_1.promisify)(fs_1.lstat)(filePath);
415
+ const stat = await promisify(lstat)(filePath);
418
416
  if (stat.isDirectory() && !stat.isSymbolicLink()) {
419
- await (0, util_1.promisify)(fs_1.rmdir)(filePath);
417
+ await promisify(rmdir)(filePath);
420
418
  }
421
419
  else {
422
- await (0, util_1.promisify)(fs_1.unlink)(filePath);
420
+ await promisify(unlink)(filePath);
423
421
  }
424
422
  }
425
423
  }
@@ -428,22 +426,24 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
428
426
  }
429
427
  }
430
428
  rimraf(path) {
431
- if (new path_2.Path(path).isRoot) {
429
+ if (new Path(path).isRoot) {
432
430
  throw new Error('rimraf - will refuse to recursively delete root');
433
431
  }
434
432
  return this.rimrafMove(path);
435
433
  }
436
434
  async rimrafMove(path) {
437
435
  try {
438
- const pathInTemp = (0, path_1.join)(os.tmpdir(), (0, uuid_1.generateUuid)());
436
+ const pathInTemp = join(os.tmpdir(), generateUuid());
439
437
  try {
440
- await (0, util_1.promisify)(fs_1.rename)(path, pathInTemp);
438
+ await promisify(rename)(path, pathInTemp);
441
439
  }
442
440
  catch (error) {
443
441
  return this.rimrafUnlink(path); // if rename fails, delete without tmp dir
444
442
  }
445
443
  // Delete but do not return as promise
446
- this.rimrafUnlink(pathInTemp);
444
+ this.rimrafUnlink(pathInTemp).catch(error => {
445
+ this.logger.warn(`Failed to clean up temporary rimraf folder '${pathInTemp}':`, error);
446
+ });
447
447
  }
448
448
  catch (error) {
449
449
  if (error.code !== 'ENOENT') {
@@ -453,22 +453,22 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
453
453
  }
454
454
  async rimrafUnlink(path) {
455
455
  try {
456
- const stat = await (0, util_1.promisify)(fs_1.lstat)(path);
456
+ const stat = await promisify(lstat)(path);
457
457
  // Folder delete (recursive) - NOT for symbolic links though!
458
458
  if (stat.isDirectory() && !stat.isSymbolicLink()) {
459
459
  // Children
460
- const children = await (0, util_1.promisify)(fs_1.readdir)(path);
461
- await Promise.all(children.map(child => this.rimrafUnlink((0, path_1.join)(path, child))));
460
+ const children = await promisify(readdir)(path);
461
+ await Promise.all(children.map(child => this.rimrafUnlink(join(path, child))));
462
462
  // Folder
463
- await (0, util_1.promisify)(fs_1.rmdir)(path);
463
+ await promisify(rmdir)(path);
464
464
  }
465
465
  else {
466
466
  // chmod as needed to allow for unlink
467
467
  const mode = stat.mode;
468
468
  if (!(mode & 128)) { // 128 === 0200
469
- await (0, util_1.promisify)(fs_1.chmod)(path, mode | 128);
469
+ await promisify(chmod)(path, mode | 128);
470
470
  }
471
- return (0, util_1.promisify)(fs_1.unlink)(path);
471
+ return promisify(unlink)(path);
472
472
  }
473
473
  }
474
474
  catch (error) {
@@ -493,7 +493,7 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
493
493
  // rewrite some typical errors that can happen especially around symlinks
494
494
  // to something the user can better understand
495
495
  if (error.code === 'EINVAL' || error.code === 'EBUSY' || error.code === 'ENAMETOOLONG') {
496
- error = new Error(`Unable to move '${(0, path_1.basename)(fromFilePath)}' into '${(0, path_1.basename)((0, path_1.dirname)(toFilePath))}' (${error.toString()}).`);
496
+ error = new Error(`Unable to move '${basename(fromFilePath)}' into '${basename(dirname(toFilePath))}' (${error.toString()}).`);
497
497
  }
498
498
  throw this.toFileSystemProviderError(error);
499
499
  }
@@ -503,21 +503,21 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
503
503
  return Promise.resolve();
504
504
  }
505
505
  async function updateMtime(path) {
506
- const stat = await (0, util_1.promisify)(fs_1.lstat)(path);
506
+ const stat = await promisify(lstat)(path);
507
507
  if (stat.isDirectory() || stat.isSymbolicLink()) {
508
508
  return Promise.resolve(); // only for files
509
509
  }
510
- const fd = await (0, util_1.promisify)(fs_1.open)(path, 'a');
510
+ const fd = await promisify(open)(path, 'a');
511
511
  try {
512
- await (0, util_1.promisify)(fs_1.futimes)(fd, stat.atime, new Date());
512
+ await promisify(futimes)(fd, stat.atime, new Date());
513
513
  }
514
514
  catch (error) {
515
515
  // ignore
516
516
  }
517
- return (0, util_1.promisify)(fs_1.close)(fd);
517
+ return promisify(close)(fd);
518
518
  }
519
519
  try {
520
- await (0, util_1.promisify)(fs_1.rename)(source, target);
520
+ await promisify(rename)(source, target);
521
521
  await updateMtime(target);
522
522
  }
523
523
  catch (error) {
@@ -555,7 +555,7 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
555
555
  // rewrite some typical errors that can happen especially around symlinks
556
556
  // to something the user can better understand
557
557
  if (error.code === 'EINVAL' || error.code === 'EBUSY' || error.code === 'ENAMETOOLONG') {
558
- error = new Error(`Unable to copy '${(0, path_1.basename)(fromFilePath)}' into '${(0, path_1.basename)((0, path_1.dirname)(toFilePath))}' (${error.toString()}).`);
558
+ error = new Error(`Unable to copy '${basename(fromFilePath)}' into '${basename(dirname(toFilePath))}' (${error.toString()}).`);
559
559
  }
560
560
  throw this.toFileSystemProviderError(error);
561
561
  }
@@ -569,12 +569,12 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
569
569
  isSameResourceWithDifferentPathCase = fromFilePath.toLowerCase() === toFilePath.toLowerCase();
570
570
  }
571
571
  if (isSameResourceWithDifferentPathCase && mode === 'copy') {
572
- throw (0, files_1.createFileSystemProviderError)("'File cannot be copied to same path with different path case", files_1.FileSystemProviderErrorCode.FileExists);
572
+ throw createFileSystemProviderError("'File cannot be copied to same path with different path case", FileSystemProviderErrorCode.FileExists);
573
573
  }
574
574
  // handle existing target (unless this is a case change)
575
- if (!isSameResourceWithDifferentPathCase && await (0, util_1.promisify)(fs_1.exists)(toFilePath)) {
575
+ if (!isSameResourceWithDifferentPathCase && await promisify(exists)(toFilePath)) {
576
576
  if (!overwrite) {
577
- throw (0, files_1.createFileSystemProviderError)('File at target already exists', files_1.FileSystemProviderErrorCode.FileExists);
577
+ throw createFileSystemProviderError('File at target already exists', FileSystemProviderErrorCode.FileExists);
578
578
  }
579
579
  // Delete target
580
580
  await this.delete(to, { recursive: true, useTrash: false });
@@ -582,7 +582,7 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
582
582
  }
583
583
  async doCopy(source, target, copiedSourcesIn) {
584
584
  const copiedSources = copiedSourcesIn ? copiedSourcesIn : Object.create(null);
585
- const fileStat = await (0, util_1.promisify)(fs_1.stat)(source);
585
+ const fileStat = await promisify(stat)(source);
586
586
  if (!fileStat.isDirectory()) {
587
587
  return this.doCopyFile(source, target, fileStat.mode & 511);
588
588
  }
@@ -593,16 +593,16 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
593
593
  // Create folder
594
594
  await this.mkdirp(target, fileStat.mode & 511);
595
595
  // Copy each file recursively
596
- const files = await (0, util_1.promisify)(fs_1.readdir)(source);
596
+ const files = await promisify(readdir)(source);
597
597
  for (let i = 0; i < files.length; i++) {
598
598
  const file = files[i];
599
- await this.doCopy((0, path_1.join)(source, file), (0, path_1.join)(target, file), copiedSources);
599
+ await this.doCopy(join(source, file), join(target, file), copiedSources);
600
600
  }
601
601
  }
602
602
  async mkdirp(path, mode) {
603
603
  const mkdir = async () => {
604
604
  try {
605
- await (0, util_1.promisify)(fs.mkdir)(path, mode);
605
+ await promisify(fs.mkdir)(path, mode);
606
606
  }
607
607
  catch (error) {
608
608
  // ENOENT: a parent folder does not exist yet
@@ -613,7 +613,7 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
613
613
  // return normally in that case if its a folder
614
614
  let targetIsFile = false;
615
615
  try {
616
- const fileStat = await (0, util_1.promisify)(fs.stat)(path);
616
+ const fileStat = await promisify(fs.stat)(path);
617
617
  targetIsFile = !fileStat.isDirectory();
618
618
  }
619
619
  catch (statError) {
@@ -625,7 +625,7 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
625
625
  }
626
626
  };
627
627
  // stop at root
628
- if (path === (0, path_1.dirname)(path)) {
628
+ if (path === dirname(path)) {
629
629
  return;
630
630
  }
631
631
  try {
@@ -635,7 +635,7 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
635
635
  // ENOENT: a parent folder does not exist yet, continue
636
636
  // to create the parent folder and then try again.
637
637
  if (error.code === 'ENOENT') {
638
- await this.mkdirp((0, path_1.dirname)(path), mode);
638
+ await this.mkdirp(dirname(path), mode);
639
639
  return mkdir();
640
640
  }
641
641
  // Any other error
@@ -689,7 +689,8 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
689
689
  };
690
690
  watcherService.watchFileChanges(resource.toString(), {
691
691
  // Convert from `files.WatchOptions` to internal `watcher-protocol.WatchOptions`:
692
- ignored: opts.excludes
692
+ ignored: opts.excludes,
693
+ recursive: opts.recursive
693
694
  }).then(watcherId => {
694
695
  if (handle.disposed) {
695
696
  watcherService.unwatchFileChanges(watcherId);
@@ -705,8 +706,8 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
705
706
  async updateFile(resource, changes, opts) {
706
707
  try {
707
708
  const content = await this.readFile(resource);
708
- const decoded = this.encodingService.decode(buffer_1.BinaryBuffer.wrap(content), opts.readEncoding);
709
- const newContent = vscode_languageserver_textdocument_1.TextDocument.update(vscode_languageserver_textdocument_1.TextDocument.create('', '', 1, decoded), changes, 2).getText();
709
+ const decoded = this.encodingService.decode(BinaryBuffer.wrap(content), opts.readEncoding);
710
+ const newContent = TextDocument.update(TextDocument.create('', '', 1, decoded), changes, 2).getText();
710
711
  const encoding = await this.encodingService.toResourceEncoding(opts.writeEncoding, {
711
712
  overwriteEncoding: opts.overwriteEncoding,
712
713
  read: async (length) => {
@@ -732,61 +733,55 @@ let DiskFileSystemProvider = class DiskFileSystemProvider {
732
733
  }
733
734
  // #region Helpers
734
735
  toFilePath(resource) {
735
- return (0, path_1.normalize)(file_uri_1.FileUri.fsPath(resource));
736
+ return normalize(FileUri.fsPath(resource));
736
737
  }
737
738
  toFileSystemProviderError(error) {
738
- if (error instanceof files_1.FileSystemProviderError) {
739
+ if (error instanceof FileSystemProviderError) {
739
740
  return error; // avoid double conversion
740
741
  }
741
742
  let code;
742
743
  switch (error.code) {
743
744
  case 'ENOENT':
744
- code = files_1.FileSystemProviderErrorCode.FileNotFound;
745
+ code = FileSystemProviderErrorCode.FileNotFound;
745
746
  break;
746
747
  case 'EISDIR':
747
- code = files_1.FileSystemProviderErrorCode.FileIsADirectory;
748
+ code = FileSystemProviderErrorCode.FileIsADirectory;
748
749
  break;
749
750
  case 'ENOTDIR':
750
- code = files_1.FileSystemProviderErrorCode.FileNotADirectory;
751
+ code = FileSystemProviderErrorCode.FileNotADirectory;
751
752
  break;
752
753
  case 'EEXIST':
753
- code = files_1.FileSystemProviderErrorCode.FileExists;
754
+ code = FileSystemProviderErrorCode.FileExists;
754
755
  break;
755
756
  case 'EPERM':
756
757
  case 'EACCES':
757
- code = files_1.FileSystemProviderErrorCode.NoPermissions;
758
+ code = FileSystemProviderErrorCode.NoPermissions;
758
759
  break;
759
760
  default:
760
- code = files_1.FileSystemProviderErrorCode.Unknown;
761
+ code = FileSystemProviderErrorCode.Unknown;
761
762
  }
762
- return (0, files_1.createFileSystemProviderError)(error, code);
763
+ return createFileSystemProviderError(error, code);
763
764
  }
764
765
  // #endregion
765
766
  dispose() {
766
767
  this.toDispose.dispose();
767
768
  }
768
769
  };
769
- exports.DiskFileSystemProvider = DiskFileSystemProvider;
770
- tslib_1.__decorate([
771
- (0, inversify_1.inject)(filesystem_watcher_protocol_1.FileSystemWatcherServer),
772
- tslib_1.__metadata("design:type", Object)
770
+ __decorate([
771
+ inject(FileSystemWatcherServer)
773
772
  ], DiskFileSystemProvider.prototype, "watcher", void 0);
774
- tslib_1.__decorate([
775
- (0, inversify_1.inject)(encoding_service_1.EncodingService),
776
- tslib_1.__metadata("design:type", encoding_service_1.EncodingService)
773
+ __decorate([
774
+ inject(EncodingService)
777
775
  ], DiskFileSystemProvider.prototype, "encodingService", void 0);
778
- tslib_1.__decorate([
779
- (0, inversify_1.inject)(core_1.ILogger),
780
- (0, inversify_1.named)('filesystem:DiskFileSystemProvider'),
781
- tslib_1.__metadata("design:type", Object)
776
+ __decorate([
777
+ inject(ILogger),
778
+ named('filesystem:DiskFileSystemProvider')
782
779
  ], DiskFileSystemProvider.prototype, "logger", void 0);
783
- tslib_1.__decorate([
784
- (0, inversify_1.postConstruct)(),
785
- tslib_1.__metadata("design:type", Function),
786
- tslib_1.__metadata("design:paramtypes", []),
787
- tslib_1.__metadata("design:returntype", void 0)
780
+ __decorate([
781
+ postConstruct()
788
782
  ], DiskFileSystemProvider.prototype, "init", null);
789
- exports.DiskFileSystemProvider = DiskFileSystemProvider = tslib_1.__decorate([
790
- (0, inversify_1.injectable)()
783
+ DiskFileSystemProvider = __decorate([
784
+ injectable()
791
785
  ], DiskFileSystemProvider);
786
+ export { DiskFileSystemProvider };
792
787
  //# sourceMappingURL=disk-file-system-provider.js.map