@theia/filesystem 1.46.0-next.200 → 1.46.0-next.230

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 (142) hide show
  1. package/lib/browser/breadcrumbs/filepath-breadcrumb.js +1 -1
  2. package/lib/browser/breadcrumbs/filepath-breadcrumb.js.map +1 -1
  3. package/lib/browser/breadcrumbs/filepath-breadcrumbs-container.js +8 -8
  4. package/lib/browser/breadcrumbs/filepath-breadcrumbs-container.js.map +1 -1
  5. package/lib/browser/breadcrumbs/filepath-breadcrumbs-contribution.js +8 -8
  6. package/lib/browser/breadcrumbs/filepath-breadcrumbs-contribution.js.map +1 -1
  7. package/lib/browser/download/file-download-command-contribution.js +7 -7
  8. package/lib/browser/download/file-download-command-contribution.js.map +1 -1
  9. package/lib/browser/download/file-download-service.js +6 -6
  10. package/lib/browser/download/file-download-service.js.map +1 -1
  11. package/lib/browser/file-dialog/file-dialog-hidden-files-renderer.js +7 -7
  12. package/lib/browser/file-dialog/file-dialog-hidden-files-renderer.js.map +1 -1
  13. package/lib/browser/file-dialog/file-dialog-model.js +8 -8
  14. package/lib/browser/file-dialog/file-dialog-model.js.map +1 -1
  15. package/lib/browser/file-dialog/file-dialog-service.js +14 -14
  16. package/lib/browser/file-dialog/file-dialog-service.js.map +1 -1
  17. package/lib/browser/file-dialog/file-dialog-tree-filters-renderer.js +4 -4
  18. package/lib/browser/file-dialog/file-dialog-tree-filters-renderer.js.map +1 -1
  19. package/lib/browser/file-dialog/file-dialog-tree.js +2 -2
  20. package/lib/browser/file-dialog/file-dialog-tree.js.map +1 -1
  21. package/lib/browser/file-dialog/file-dialog-widget.js +6 -6
  22. package/lib/browser/file-dialog/file-dialog-widget.js.map +1 -1
  23. package/lib/browser/file-dialog/file-dialog.js +38 -38
  24. package/lib/browser/file-dialog/file-dialog.js.map +1 -1
  25. package/lib/browser/file-dialog/index.js +4 -4
  26. package/lib/browser/file-dialog/index.js.map +1 -1
  27. package/lib/browser/file-resource.d.ts +1 -1
  28. package/lib/browser/file-resource.d.ts.map +1 -1
  29. package/lib/browser/file-resource.js +33 -33
  30. package/lib/browser/file-resource.js.map +1 -1
  31. package/lib/browser/file-selection.js +1 -1
  32. package/lib/browser/file-selection.js.map +1 -1
  33. package/lib/browser/file-service.js +59 -59
  34. package/lib/browser/file-service.js.map +1 -1
  35. package/lib/browser/file-tree/file-tree-decorator-adapter.js +10 -10
  36. package/lib/browser/file-tree/file-tree-decorator-adapter.js.map +1 -1
  37. package/lib/browser/file-tree/file-tree-label-provider.js +6 -6
  38. package/lib/browser/file-tree/file-tree-label-provider.js.map +1 -1
  39. package/lib/browser/file-tree/file-tree-model.js +18 -18
  40. package/lib/browser/file-tree/file-tree-model.js.map +1 -1
  41. package/lib/browser/file-tree/file-tree-widget.js +10 -10
  42. package/lib/browser/file-tree/file-tree-widget.js.map +1 -1
  43. package/lib/browser/file-tree/file-tree.d.ts +3 -3
  44. package/lib/browser/file-tree/file-tree.d.ts.map +1 -1
  45. package/lib/browser/file-tree/file-tree.js +11 -11
  46. package/lib/browser/file-tree/file-tree.js.map +1 -1
  47. package/lib/browser/file-tree/index.js +6 -6
  48. package/lib/browser/file-tree/index.js.map +1 -1
  49. package/lib/browser/file-upload-service.d.ts +1 -1
  50. package/lib/browser/file-upload-service.d.ts.map +1 -1
  51. package/lib/browser/file-upload-service.js +12 -12
  52. package/lib/browser/file-upload-service.js.map +1 -1
  53. package/lib/browser/filesystem-frontend-contribution.d.ts +0 -1
  54. package/lib/browser/filesystem-frontend-contribution.d.ts.map +1 -1
  55. package/lib/browser/filesystem-frontend-contribution.js +32 -35
  56. package/lib/browser/filesystem-frontend-contribution.js.map +1 -1
  57. package/lib/browser/filesystem-frontend-module.js +4 -4
  58. package/lib/browser/filesystem-frontend-module.js.map +1 -1
  59. package/lib/browser/filesystem-preferences.d.ts +1 -1
  60. package/lib/browser/filesystem-preferences.d.ts.map +1 -1
  61. package/lib/browser/{filesystem-save-resource-service.d.ts → filesystem-saveable-service.d.ts} +5 -3
  62. package/lib/browser/filesystem-saveable-service.d.ts.map +1 -0
  63. package/lib/browser/{filesystem-save-resource-service.js → filesystem-saveable-service.js} +21 -17
  64. package/lib/browser/filesystem-saveable-service.js.map +1 -0
  65. package/lib/browser/filesystem-watcher-error-handler.js +6 -6
  66. package/lib/browser/filesystem-watcher-error-handler.js.map +1 -1
  67. package/lib/browser/index.js +5 -5
  68. package/lib/browser/index.js.map +1 -1
  69. package/lib/browser/location/index.js +2 -2
  70. package/lib/browser/location/index.js.map +1 -1
  71. package/lib/browser/location/location-renderer.js +22 -23
  72. package/lib/browser/location/location-renderer.js.map +1 -1
  73. package/lib/browser/remote-file-service-contribution.js +4 -4
  74. package/lib/browser/remote-file-service-contribution.js.map +1 -1
  75. package/lib/browser-only/browser-only-filesystem-frontend-module.js.map +1 -1
  76. package/lib/browser-only/browser-only-filesystem-provider-server.js +2 -2
  77. package/lib/browser-only/browser-only-filesystem-provider-server.js.map +1 -1
  78. package/lib/browser-only/browserfs-filesystem-initialization.js +2 -2
  79. package/lib/browser-only/browserfs-filesystem-initialization.js.map +1 -1
  80. package/lib/browser-only/browserfs-filesystem-provider.js +7 -7
  81. package/lib/browser-only/browserfs-filesystem-provider.js.map +1 -1
  82. package/lib/common/delegating-file-system-provider.js.map +1 -1
  83. package/lib/common/download/file-download-data.js +1 -1
  84. package/lib/common/download/file-download-data.js.map +1 -1
  85. package/lib/common/files.d.ts +1 -0
  86. package/lib/common/files.d.ts.map +1 -1
  87. package/lib/common/files.js +27 -27
  88. package/lib/common/files.js.map +1 -1
  89. package/lib/common/files.spec.js +10 -10
  90. package/lib/common/files.spec.js.map +1 -1
  91. package/lib/common/filesystem-utils.js +1 -1
  92. package/lib/common/filesystem-utils.js.map +1 -1
  93. package/lib/common/filesystem.js +1 -1
  94. package/lib/common/filesystem.js.map +1 -1
  95. package/lib/common/index.js +2 -2
  96. package/lib/common/index.js.map +1 -1
  97. package/lib/common/io.js.map +1 -1
  98. package/lib/common/remote-file-system-provider.d.ts.map +1 -1
  99. package/lib/common/remote-file-system-provider.js +17 -17
  100. package/lib/common/remote-file-system-provider.js.map +1 -1
  101. package/lib/electron-browser/file-dialog/electron-file-dialog-service.js +4 -4
  102. package/lib/electron-browser/file-dialog/electron-file-dialog-service.js.map +1 -1
  103. package/lib/electron-main/electron-api-main.js +2 -2
  104. package/lib/electron-main/electron-api-main.js.map +1 -1
  105. package/lib/node/disk-file-system-provider.js +20 -20
  106. package/lib/node/disk-file-system-provider.js.map +1 -1
  107. package/lib/node/disk-file-system-provider.spec.js +1 -1
  108. package/lib/node/disk-file-system-provider.spec.js.map +1 -1
  109. package/lib/node/download/directory-archiver.js +2 -2
  110. package/lib/node/download/directory-archiver.js.map +1 -1
  111. package/lib/node/download/directory-archiver.spec.js.map +1 -1
  112. package/lib/node/download/file-download-cache.js +4 -4
  113. package/lib/node/download/file-download-cache.js.map +1 -1
  114. package/lib/node/download/file-download-endpoint.js +8 -8
  115. package/lib/node/download/file-download-endpoint.js.map +1 -1
  116. package/lib/node/download/file-download-handler.js +15 -16
  117. package/lib/node/download/file-download-handler.js.map +1 -1
  118. package/lib/node/file-change-collection.js +7 -7
  119. package/lib/node/file-change-collection.js.map +1 -1
  120. package/lib/node/file-change-collection.spec.js +27 -27
  121. package/lib/node/file-change-collection.spec.js.map +1 -1
  122. package/lib/node/filesystem-backend-module.js.map +1 -1
  123. package/lib/node/filesystem-watcher-client.js +6 -6
  124. package/lib/node/filesystem-watcher-client.js.map +1 -1
  125. package/lib/node/filesystem-watcher-dispatcher.js +2 -2
  126. package/lib/node/filesystem-watcher-dispatcher.js.map +1 -1
  127. package/lib/node/node-file-upload-service.js +2 -2
  128. package/lib/node/node-file-upload-service.js.map +1 -1
  129. package/lib/node/nsfw-watcher/nsfw-filesystem-service.js +9 -9
  130. package/lib/node/nsfw-watcher/nsfw-filesystem-service.js.map +1 -1
  131. package/lib/node/nsfw-watcher/nsfw-filesystem-watcher.spec.js +6 -6
  132. package/lib/node/nsfw-watcher/nsfw-filesystem-watcher.spec.js.map +1 -1
  133. package/lib/node/nsfw-watcher/nsfw-options.d.ts +1 -1
  134. package/lib/node/nsfw-watcher/nsfw-options.d.ts.map +1 -1
  135. package/package.json +4 -4
  136. package/src/browser/filesystem-frontend-contribution.ts +2 -6
  137. package/src/browser/filesystem-frontend-module.ts +4 -4
  138. package/src/browser/{filesystem-save-resource-service.ts → filesystem-saveable-service.ts} +11 -6
  139. package/src/common/files.ts +2 -1
  140. package/src/common/remote-file-system-provider.ts +1 -1
  141. package/lib/browser/filesystem-save-resource-service.d.ts.map +0 -1
  142. package/lib/browser/filesystem-save-resource-service.js.map +0 -1
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@theia/filesystem",
3
- "version": "1.46.0-next.200+44b4f27c6",
3
+ "version": "1.46.0-next.230+d79b7101a",
4
4
  "description": "Theia - FileSystem Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.46.0-next.200+44b4f27c6",
6
+ "@theia/core": "1.46.0-next.230+d79b7101a",
7
7
  "@types/body-parser": "^1.17.0",
8
8
  "@types/multer": "^1.4.7",
9
9
  "@types/rimraf": "^2.0.2",
@@ -73,10 +73,10 @@
73
73
  "watch": "theiaext watch"
74
74
  },
75
75
  "devDependencies": {
76
- "@theia/ext-scripts": "1.49.0"
76
+ "@theia/ext-scripts": "1.50.0"
77
77
  },
78
78
  "nyc": {
79
79
  "extends": "../../configs/nyc.json"
80
80
  },
81
- "gitHead": "44b4f27c63028c1bdc7dcd9b565d666428af6f97"
81
+ "gitHead": "d79b7101adef9db71e74c13744a3fde4f79a343c"
82
82
  }
@@ -145,7 +145,7 @@ export class FileSystemFrontendContribution implements FrontendApplicationContri
145
145
  commands.registerCommand(FileSystemCommands.UPLOAD, {
146
146
  isEnabled: (...args: unknown[]) => {
147
147
  const selection = this.getSelection(...args);
148
- return !!selection && this.canUpload(selection);
148
+ return !!selection && !environment.electron.is();
149
149
  },
150
150
  isVisible: () => !environment.electron.is(),
151
151
  execute: (...args: unknown[]) => {
@@ -162,14 +162,10 @@ export class FileSystemFrontendContribution implements FrontendApplicationContri
162
162
  });
163
163
  }
164
164
 
165
- protected canUpload({ fileStat }: FileSelection): boolean {
166
- return !environment.electron.is() && fileStat.isDirectory;
167
- }
168
-
169
165
  protected async upload(selection: FileSelection): Promise<FileUploadResult | undefined> {
170
166
  try {
171
167
  const source = TreeWidgetSelection.getSource(this.selectionService.selection);
172
- const fileUploadResult = await this.uploadService.upload(selection.fileStat.resource);
168
+ const fileUploadResult = await this.uploadService.upload(selection.fileStat.isDirectory ? selection.fileStat.resource : selection.fileStat.resource.parent);
173
169
  if (ExpandableTreeNode.is(selection) && source) {
174
170
  await source.model.expandNode(selection);
175
171
  }
@@ -31,8 +31,8 @@ import { RemoteFileServiceContribution } from './remote-file-service-contributio
31
31
  import { FileSystemWatcherErrorHandler } from './filesystem-watcher-error-handler';
32
32
  import { FilepathBreadcrumbsContribution } from './breadcrumbs/filepath-breadcrumbs-contribution';
33
33
  import { BreadcrumbsFileTreeWidget, createFileTreeBreadcrumbsWidget } from './breadcrumbs/filepath-breadcrumbs-container';
34
- import { FilesystemSaveResourceService } from './filesystem-save-resource-service';
35
- import { SaveResourceService } from '@theia/core/lib/browser/save-resource-service';
34
+ import { FilesystemSaveableService } from './filesystem-saveable-service';
35
+ import { SaveableService } from '@theia/core/lib/browser/saveable-service';
36
36
 
37
37
  export default new ContainerModule((bind, unbind, isBound, rebind) => {
38
38
  bindFileSystemPreferences(bind);
@@ -65,8 +65,8 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
65
65
  bind(FilepathBreadcrumbsContribution).toSelf().inSingletonScope();
66
66
  bind(BreadcrumbsContribution).toService(FilepathBreadcrumbsContribution);
67
67
 
68
- bind(FilesystemSaveResourceService).toSelf().inSingletonScope();
69
- rebind(SaveResourceService).toService(FilesystemSaveResourceService);
68
+ bind(FilesystemSaveableService).toSelf().inSingletonScope();
69
+ rebind(SaveableService).toService(FilesystemSaveableService);
70
70
 
71
71
  bind(FileTreeDecoratorAdapter).toSelf().inSingletonScope();
72
72
  });
@@ -14,20 +14,25 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
- import { environment, nls } from '@theia/core';
17
+ import { environment, MessageService, nls } from '@theia/core';
18
18
  import { inject, injectable } from '@theia/core/shared/inversify';
19
19
  import { Navigatable, Saveable, SaveableSource, SaveOptions, Widget, open, OpenerService, ConfirmDialog, FormatType, CommonCommands } from '@theia/core/lib/browser';
20
- import { SaveResourceService } from '@theia/core/lib/browser/save-resource-service';
20
+ import { SaveableService } from '@theia/core/lib/browser/saveable-service';
21
21
  import URI from '@theia/core/lib/common/uri';
22
22
  import { FileService } from './file-service';
23
23
  import { FileDialogService } from './file-dialog';
24
24
 
25
25
  @injectable()
26
- export class FilesystemSaveResourceService extends SaveResourceService {
26
+ export class FilesystemSaveableService extends SaveableService {
27
27
 
28
- @inject(FileService) protected readonly fileService: FileService;
29
- @inject(FileDialogService) protected readonly fileDialogService: FileDialogService;
30
- @inject(OpenerService) protected readonly openerService: OpenerService;
28
+ @inject(MessageService)
29
+ protected readonly messageService: MessageService;
30
+ @inject(FileService)
31
+ protected readonly fileService: FileService;
32
+ @inject(FileDialogService)
33
+ protected readonly fileDialogService: FileDialogService;
34
+ @inject(OpenerService)
35
+ protected readonly openerService: OpenerService;
31
36
 
32
37
  /**
33
38
  * This method ensures a few things about `widget`:
@@ -525,6 +525,7 @@ export interface WatchOptions {
525
525
  }
526
526
 
527
527
  export const enum FileSystemProviderCapabilities {
528
+ None = 0,
528
529
  FileReadWrite = 1 << 1,
529
530
  FileOpenReadWriteClose = 1 << 2,
530
531
  FileReadStream = 1 << 4,
@@ -774,7 +775,7 @@ export interface ReadOnlyMessageFileSystemProvider {
774
775
  export namespace ReadOnlyMessageFileSystemProvider {
775
776
  export function is(arg: unknown): arg is ReadOnlyMessageFileSystemProvider {
776
777
  return isObject<ReadOnlyMessageFileSystemProvider>(arg)
777
- && 'readOnlyMessage' in arg;
778
+ && 'readOnlyMessage' in arg;
778
779
  }
779
780
  }
780
781
 
@@ -151,7 +151,7 @@ export class RemoteFileSystemProvider implements Required<FileSystemProvider>, D
151
151
  options: WatchOptions
152
152
  }>();
153
153
 
154
- private _capabilities: FileSystemProviderCapabilities = 0;
154
+ private _capabilities: FileSystemProviderCapabilities = FileSystemProviderCapabilities.None;
155
155
  get capabilities(): FileSystemProviderCapabilities { return this._capabilities; }
156
156
 
157
157
  private _readOnlyMessage: MarkdownString | undefined = undefined;
@@ -1 +0,0 @@
1
- {"version":3,"file":"filesystem-save-resource-service.d.ts","sourceRoot":"","sources":["../../src/browser/filesystem-save-resource-service.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,WAAW,EAAY,cAAc,EAAE,WAAW,EAAE,MAAM,EAAQ,aAAa,EAA6C,MAAM,yBAAyB,CAAC;AACrK,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,qBACa,6BAA8B,SAAQ,mBAAmB;IAE7C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC5D,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEvE;;;;;OAKG;IACM,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,IAAI,MAAM,GAAG,cAAc,GAAG,WAAW;IAS/F;;OAEG;IACY,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,GAAG,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAgC3H;;;;OAIG;YACW,WAAW;IAsBnB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAalD,OAAO,CAAC,UAAU;CAGrB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"filesystem-save-resource-service.js","sourceRoot":"","sources":["../../src/browser/filesystem-save-resource-service.ts"],"names":[],"mappings":"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"}