@theia/filesystem 1.65.0-next.55 → 1.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/lib/browser/download/file-download-command-contribution.d.ts +1 -1
  2. package/lib/browser/download/file-download-command-contribution.d.ts.map +1 -1
  3. package/lib/browser/download/file-download-command-contribution.js +3 -3
  4. package/lib/browser/download/file-download-command-contribution.js.map +1 -1
  5. package/lib/browser/download/file-download-frontend-module.d.ts.map +1 -1
  6. package/lib/browser/download/file-download-frontend-module.js +2 -1
  7. package/lib/browser/download/file-download-frontend-module.js.map +1 -1
  8. package/lib/browser/download/file-download-service.d.ts +2 -10
  9. package/lib/browser/download/file-download-service.d.ts.map +1 -1
  10. package/lib/browser/download/file-download-service.js +8 -7
  11. package/lib/browser/download/file-download-service.js.map +1 -1
  12. package/lib/browser/file-tree/file-tree-widget.d.ts +1 -1
  13. package/lib/browser/file-tree/file-tree-widget.d.ts.map +1 -1
  14. package/lib/browser/file-tree/file-tree-widget.js +3 -3
  15. package/lib/browser/file-tree/file-tree-widget.js.map +1 -1
  16. package/lib/browser/filesystem-frontend-contribution.d.ts +2 -2
  17. package/lib/browser/filesystem-frontend-contribution.d.ts.map +1 -1
  18. package/lib/browser/filesystem-frontend-contribution.js +3 -3
  19. package/lib/browser/filesystem-frontend-contribution.js.map +1 -1
  20. package/lib/browser/filesystem-frontend-module.d.ts.map +1 -1
  21. package/lib/browser/filesystem-frontend-module.js +3 -2
  22. package/lib/browser/filesystem-frontend-module.js.map +1 -1
  23. package/lib/browser/{file-upload-service.d.ts → upload/file-upload-service-impl.d.ts} +16 -52
  24. package/lib/browser/upload/file-upload-service-impl.d.ts.map +1 -0
  25. package/lib/browser/{file-upload-service.js → upload/file-upload-service-impl.js} +27 -27
  26. package/lib/browser/upload/file-upload-service-impl.js.map +1 -0
  27. package/lib/browser-only/browser-only-filesystem-frontend-module.d.ts.map +1 -1
  28. package/lib/browser-only/browser-only-filesystem-frontend-module.js +8 -0
  29. package/lib/browser-only/browser-only-filesystem-frontend-module.js.map +1 -1
  30. package/lib/browser-only/download/file-download-command-contribution.d.ts +15 -0
  31. package/lib/browser-only/download/file-download-command-contribution.d.ts.map +1 -0
  32. package/lib/browser-only/download/file-download-command-contribution.js +55 -0
  33. package/lib/browser-only/download/file-download-command-contribution.js.map +1 -0
  34. package/lib/browser-only/download/file-download-frontend-module.d.ts +4 -0
  35. package/lib/browser-only/download/file-download-frontend-module.d.ts.map +1 -0
  36. package/lib/browser-only/download/file-download-frontend-module.js +27 -0
  37. package/lib/browser-only/download/file-download-frontend-module.js.map +1 -0
  38. package/lib/browser-only/download/file-download-service.d.ts +86 -0
  39. package/lib/browser-only/download/file-download-service.d.ts.map +1 -0
  40. package/lib/browser-only/download/file-download-service.js +551 -0
  41. package/lib/browser-only/download/file-download-service.js.map +1 -0
  42. package/lib/browser-only/file-search.d.ts +38 -0
  43. package/lib/browser-only/file-search.d.ts.map +1 -0
  44. package/lib/browser-only/file-search.js +153 -0
  45. package/lib/browser-only/file-search.js.map +1 -0
  46. package/lib/browser-only/opfs-filesystem-initialization.d.ts +4 -2
  47. package/lib/browser-only/opfs-filesystem-initialization.d.ts.map +1 -1
  48. package/lib/browser-only/opfs-filesystem-initialization.js +4 -1
  49. package/lib/browser-only/opfs-filesystem-initialization.js.map +1 -1
  50. package/lib/browser-only/opfs-filesystem-provider.d.ts +89 -12
  51. package/lib/browser-only/opfs-filesystem-provider.d.ts.map +1 -1
  52. package/lib/browser-only/opfs-filesystem-provider.js +345 -181
  53. package/lib/browser-only/opfs-filesystem-provider.js.map +1 -1
  54. package/lib/browser-only/upload/file-upload-service-impl.d.ts +67 -0
  55. package/lib/browser-only/upload/file-upload-service-impl.d.ts.map +1 -0
  56. package/lib/browser-only/upload/file-upload-service-impl.js +328 -0
  57. package/lib/browser-only/upload/file-upload-service-impl.js.map +1 -0
  58. package/lib/common/download/file-download.d.ts +17 -0
  59. package/lib/common/download/file-download.d.ts.map +1 -0
  60. package/lib/common/download/{file-download-data.js → file-download.js} +3 -2
  61. package/lib/common/download/file-download.js.map +1 -0
  62. package/lib/common/files.d.ts +8 -1
  63. package/lib/common/files.d.ts.map +1 -1
  64. package/lib/common/files.js +35 -1
  65. package/lib/common/files.js.map +1 -1
  66. package/lib/common/io.js +7 -1
  67. package/lib/common/io.js.map +1 -1
  68. package/lib/common/upload/file-upload.d.ts +45 -0
  69. package/lib/common/upload/file-upload.d.ts.map +1 -0
  70. package/{src/common/download/file-download-data.ts → lib/common/upload/file-upload.js} +6 -13
  71. package/lib/common/upload/file-upload.js.map +1 -0
  72. package/lib/node/disk-file-system-provider.d.ts.map +1 -1
  73. package/lib/node/disk-file-system-provider.js +2 -4
  74. package/lib/node/disk-file-system-provider.js.map +1 -1
  75. package/lib/node/download/file-download-handler.js +2 -2
  76. package/lib/node/download/file-download-handler.js.map +1 -1
  77. package/lib/node/filesystem-backend-module.js +1 -1
  78. package/lib/node/filesystem-backend-module.js.map +1 -1
  79. package/lib/node/parcel-watcher/parcel-filesystem-service.d.ts +2 -2
  80. package/lib/node/parcel-watcher/parcel-filesystem-service.d.ts.map +1 -1
  81. package/lib/node/parcel-watcher/parcel-filesystem-service.js.map +1 -1
  82. package/lib/node/upload/node-file-upload-service.d.ts.map +1 -0
  83. package/lib/node/{node-file-upload-service.js → upload/node-file-upload-service.js} +1 -1
  84. package/lib/node/upload/node-file-upload-service.js.map +1 -0
  85. package/package.json +10 -5
  86. package/src/browser/download/file-download-command-contribution.ts +1 -1
  87. package/src/browser/download/file-download-frontend-module.ts +3 -2
  88. package/src/browser/download/file-download-service.ts +7 -12
  89. package/src/browser/file-tree/file-tree-widget.tsx +1 -1
  90. package/src/browser/filesystem-frontend-contribution.ts +2 -2
  91. package/src/browser/filesystem-frontend-module.ts +3 -2
  92. package/src/browser/{file-upload-service.ts → upload/file-upload-service-impl.ts} +31 -72
  93. package/src/browser-only/browser-only-filesystem-frontend-module.ts +10 -0
  94. package/src/browser-only/download/file-download-command-contribution.ts +56 -0
  95. package/src/browser-only/download/file-download-frontend-module.ts +26 -0
  96. package/src/browser-only/download/file-download-service.ts +726 -0
  97. package/src/browser-only/file-search.ts +170 -0
  98. package/src/browser-only/opfs-filesystem-initialization.ts +7 -4
  99. package/src/browser-only/opfs-filesystem-provider.ts +402 -189
  100. package/src/browser-only/upload/file-upload-service-impl.ts +408 -0
  101. package/src/common/download/file-download.ts +40 -0
  102. package/src/common/files.ts +42 -1
  103. package/src/common/io.ts +6 -1
  104. package/src/common/upload/file-upload.ts +65 -0
  105. package/src/node/disk-file-system-provider.ts +3 -4
  106. package/src/node/download/file-download-handler.ts +1 -1
  107. package/src/node/filesystem-backend-module.ts +1 -1
  108. package/src/node/parcel-watcher/parcel-filesystem-service.ts +2 -2
  109. package/src/node/{node-file-upload-service.ts → upload/node-file-upload-service.ts} +1 -1
  110. package/lib/browser/file-upload-service.d.ts.map +0 -1
  111. package/lib/browser/file-upload-service.js.map +0 -1
  112. package/lib/common/download/file-download-data.d.ts +0 -7
  113. package/lib/common/download/file-download-data.d.ts.map +0 -1
  114. package/lib/common/download/file-download-data.js.map +0 -1
  115. package/lib/node/node-file-upload-service.d.ts.map +0 -1
  116. package/lib/node/node-file-upload-service.js.map +0 -1
  117. /package/lib/node/{node-file-upload-service.d.ts → upload/node-file-upload-service.d.ts} +0 -0
@@ -14,9 +14,9 @@
14
14
  //
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
- var FileUploadService_1;
17
+ var FileUploadServiceImpl_1;
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.FileUploadService = exports.HTTP_UPLOAD_URL = void 0;
19
+ exports.FileUploadServiceImpl = exports.HTTP_UPLOAD_URL = void 0;
20
20
  const tslib_1 = require("tslib");
21
21
  /* eslint-disable @typescript-eslint/no-explicit-any */
22
22
  const inversify_1 = require("@theia/core/shared/inversify");
@@ -26,15 +26,15 @@ const promise_util_1 = require("@theia/core/lib/common/promise-util");
26
26
  const message_service_1 = require("@theia/core/lib/common/message-service");
27
27
  const endpoint_1 = require("@theia/core/lib/browser/endpoint");
28
28
  const throttle = require("@theia/core/shared/lodash.throttle");
29
- const file_upload_1 = require("../common/file-upload");
29
+ const file_upload_1 = require("../../common/file-upload");
30
30
  const async_mutex_1 = require("async-mutex");
31
- const filesystem_preferences_1 = require("../common/filesystem-preferences");
32
- const file_service_1 = require("./file-service");
31
+ const filesystem_preferences_1 = require("../../common/filesystem-preferences");
32
+ const file_service_1 = require("../file-service");
33
33
  const browser_1 = require("@theia/core/lib/browser");
34
34
  const nls_1 = require("@theia/core/lib/common/nls");
35
35
  const event_1 = require("@theia/core/lib/common/event");
36
36
  exports.HTTP_UPLOAD_URL = new endpoint_1.Endpoint({ path: file_upload_1.HTTP_FILE_UPLOAD_PATH }).getRestUrl().toString(true);
37
- let FileUploadService = FileUploadService_1 = class FileUploadService {
37
+ let FileUploadServiceImpl = FileUploadServiceImpl_1 = class FileUploadServiceImpl {
38
38
  constructor() {
39
39
  this.onDidUploadEmitter = new event_1.Emitter();
40
40
  }
@@ -52,12 +52,12 @@ let FileUploadService = FileUploadService_1 = class FileUploadService {
52
52
  const targetInput = document.createElement('input');
53
53
  targetInput.type = 'text';
54
54
  targetInput.spellcheck = false;
55
- targetInput.name = FileUploadService_1.TARGET;
55
+ targetInput.name = FileUploadServiceImpl_1.TARGET;
56
56
  targetInput.classList.add('theia-input');
57
57
  const fileInput = document.createElement('input');
58
58
  fileInput.type = 'file';
59
59
  fileInput.classList.add('theia-input');
60
- fileInput.name = FileUploadService_1.UPLOAD;
60
+ fileInput.name = FileUploadServiceImpl_1.UPLOAD;
61
61
  fileInput.multiple = true;
62
62
  const form = document.createElement('form');
63
63
  form.style.display = 'none';
@@ -70,24 +70,23 @@ let FileUploadService = FileUploadService_1 = class FileUploadService {
70
70
  const source = new FormData(form);
71
71
  // clean up to allow upload to the same folder twice
72
72
  fileInput.value = '';
73
- const targetUri = new uri_1.default(source.get(FileUploadService_1.TARGET));
73
+ const targetUri = new uri_1.default(source.get(FileUploadServiceImpl_1.TARGET));
74
74
  const { resolve, reject } = this.deferredUpload;
75
75
  this.deferredUpload = undefined;
76
76
  const { onDidUpload } = this.uploadForm;
77
- this.withProgress((progress, token) => this.uploadAll(targetUri, { source, progress, token, onDidUpload }), this.uploadForm.progress).then(resolve, reject);
77
+ this.withProgress((progress, token) => this.uploadAll(targetUri, { source, progress, token, onDidUpload })).then(resolve, reject);
78
78
  }
79
79
  });
80
80
  return { targetInput, fileInput };
81
81
  }
82
- async upload(targetUri, params = {}) {
83
- const { source, onDidUpload, leaveInTemp } = params;
82
+ async upload(targetUri, params) {
83
+ const { source, onDidUpload, leaveInTemp } = params || {};
84
84
  if (source) {
85
- return this.withProgress((progress, token) => this.uploadAll(typeof targetUri === 'string' ? new uri_1.default(targetUri) : targetUri, { source, progress, token, leaveInTemp, onDidUpload }), params.progress);
85
+ return this.withProgress((progress, token) => this.uploadAll(typeof targetUri === 'string' ? new uri_1.default(targetUri) : targetUri, { source, progress, token, leaveInTemp, onDidUpload }));
86
86
  }
87
87
  this.deferredUpload = new promise_util_1.Deferred();
88
88
  this.uploadForm.targetInput.value = String(targetUri);
89
89
  this.uploadForm.fileInput.click();
90
- this.uploadForm.progress = params.progress;
91
90
  this.uploadForm.onDidUpload = params.onDidUpload;
92
91
  return this.deferredUpload.promise;
93
92
  }
@@ -267,7 +266,7 @@ let FileUploadService = FileUploadService_1 = class FileUploadService {
267
266
  }
268
267
  else if (xhr.status === 500 && xhr.statusText !== xhr.response) {
269
268
  // internal error with cause message
270
- // see packages/filesystem/src/node/node-file-upload-service.ts
269
+ // see packages/filesystem/src/node/upload/node-file-upload-service.ts
271
270
  reject(new Error(`Internal server error: ${xhr.response}`));
272
271
  }
273
272
  else {
@@ -298,9 +297,10 @@ let FileUploadService = FileUploadService_1 = class FileUploadService {
298
297
  target.addEventListener(event, fn);
299
298
  }
300
299
  }
301
- async withProgress(cb, { text } = { text: nls_1.nls.localize('theia/filesystem/uploadFiles', 'Uploading Files') }) {
300
+ async withProgress(cb) {
302
301
  const cancellationSource = new cancellation_1.CancellationTokenSource();
303
302
  const { token } = cancellationSource;
303
+ const text = nls_1.nls.localize('theia/filesystem/uploadFiles', 'Uploading Files');
304
304
  const progress = await this.messageService.showProgress({ text, options: { cancelable: true } }, () => cancellationSource.cancel());
305
305
  try {
306
306
  return await cb(progress, token);
@@ -321,7 +321,7 @@ let FileUploadService = FileUploadService_1 = class FileUploadService {
321
321
  }
322
322
  }
323
323
  async indexFormData(targetUri, formData, context) {
324
- for (const entry of formData.getAll(FileUploadService_1.UPLOAD)) {
324
+ for (const entry of formData.getAll(FileUploadServiceImpl_1.UPLOAD)) {
325
325
  if (entry instanceof File) {
326
326
  await this.indexFile(targetUri, entry, context);
327
327
  }
@@ -422,28 +422,28 @@ let FileUploadService = FileUploadService_1 = class FileUploadService {
422
422
  });
423
423
  }
424
424
  };
425
- exports.FileUploadService = FileUploadService;
426
- FileUploadService.TARGET = 'target';
427
- FileUploadService.UPLOAD = 'upload';
425
+ exports.FileUploadServiceImpl = FileUploadServiceImpl;
426
+ FileUploadServiceImpl.TARGET = 'target';
427
+ FileUploadServiceImpl.UPLOAD = 'upload';
428
428
  tslib_1.__decorate([
429
429
  (0, inversify_1.inject)(message_service_1.MessageService),
430
430
  tslib_1.__metadata("design:type", message_service_1.MessageService)
431
- ], FileUploadService.prototype, "messageService", void 0);
431
+ ], FileUploadServiceImpl.prototype, "messageService", void 0);
432
432
  tslib_1.__decorate([
433
433
  (0, inversify_1.inject)(filesystem_preferences_1.FileSystemPreferences),
434
434
  tslib_1.__metadata("design:type", Object)
435
- ], FileUploadService.prototype, "fileSystemPreferences", void 0);
435
+ ], FileUploadServiceImpl.prototype, "fileSystemPreferences", void 0);
436
436
  tslib_1.__decorate([
437
437
  (0, inversify_1.inject)(file_service_1.FileService),
438
438
  tslib_1.__metadata("design:type", file_service_1.FileService)
439
- ], FileUploadService.prototype, "fileService", void 0);
439
+ ], FileUploadServiceImpl.prototype, "fileService", void 0);
440
440
  tslib_1.__decorate([
441
441
  (0, inversify_1.postConstruct)(),
442
442
  tslib_1.__metadata("design:type", Function),
443
443
  tslib_1.__metadata("design:paramtypes", []),
444
444
  tslib_1.__metadata("design:returntype", void 0)
445
- ], FileUploadService.prototype, "init", null);
446
- exports.FileUploadService = FileUploadService = FileUploadService_1 = tslib_1.__decorate([
445
+ ], FileUploadServiceImpl.prototype, "init", null);
446
+ exports.FileUploadServiceImpl = FileUploadServiceImpl = FileUploadServiceImpl_1 = tslib_1.__decorate([
447
447
  (0, inversify_1.injectable)()
448
- ], FileUploadService);
449
- //# sourceMappingURL=file-upload-service.js.map
448
+ ], FileUploadServiceImpl);
449
+ //# sourceMappingURL=file-upload-service-impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-upload-service-impl.js","sourceRoot":"","sources":["../../../src/browser/upload/file-upload-service-impl.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"browser-only-filesystem-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser-only/browser-only-filesystem-frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAO/D,wBAcG"}
1
+ {"version":3,"file":"browser-only-filesystem-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser-only/browser-only-filesystem-frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAS/D,wBAsBG"}
@@ -21,10 +21,18 @@ const opfs_filesystem_provider_1 = require("./opfs-filesystem-provider");
21
21
  const remote_file_system_provider_1 = require("../common/remote-file-system-provider");
22
22
  const opfs_filesystem_initialization_1 = require("./opfs-filesystem-initialization");
23
23
  const browser_only_filesystem_provider_server_1 = require("./browser-only-filesystem-provider-server");
24
+ const file_upload_1 = require("../common/upload/file-upload");
25
+ const file_upload_service_impl_1 = require("./upload/file-upload-service-impl");
24
26
  exports.default = new inversify_1.ContainerModule((bind, _unbind, isBound, rebind) => {
25
27
  bind(opfs_filesystem_initialization_1.DefaultOPFSInitialization).toSelf();
26
28
  bind(opfs_filesystem_provider_1.OPFSFileSystemProvider).toSelf();
27
29
  bind(opfs_filesystem_initialization_1.OPFSInitialization).toService(opfs_filesystem_initialization_1.DefaultOPFSInitialization);
30
+ if (isBound(file_upload_1.FileUploadService)) {
31
+ rebind(file_upload_1.FileUploadService).to(file_upload_service_impl_1.FileUploadServiceImpl).inSingletonScope();
32
+ }
33
+ else {
34
+ bind(file_upload_1.FileUploadService).to(file_upload_service_impl_1.FileUploadServiceImpl).inSingletonScope();
35
+ }
28
36
  if (isBound(files_1.FileSystemProvider)) {
29
37
  rebind(files_1.FileSystemProvider).to(opfs_filesystem_provider_1.OPFSFileSystemProvider).inSingletonScope();
30
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"browser-only-filesystem-frontend-module.js","sourceRoot":"","sources":["../../src/browser-only/browser-only-filesystem-frontend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,4DAA+D;AAC/D,2CAAqD;AACrD,yEAAoE;AACpE,uFAAyG;AACzG,qFAAiG;AACjG,uGAAgG;AAEhG,kBAAe,IAAI,2BAAe,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAClE,IAAI,CAAC,0DAAyB,CAAC,CAAC,MAAM,EAAE,CAAC;IACzC,IAAI,CAAC,iDAAsB,CAAC,CAAC,MAAM,EAAE,CAAC;IACtC,IAAI,CAAC,mDAAkB,CAAC,CAAC,SAAS,CAAC,0DAAyB,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,0BAAkB,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,0BAAkB,CAAC,CAAC,EAAE,CAAC,iDAAsB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC7E,CAAC;SAAM,CAAC;QACJ,IAAI,CAAC,0BAAkB,CAAC,CAAC,EAAE,CAAC,iDAAsB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC3E,CAAC;IACD,IAAI,OAAO,CAAC,sDAAwB,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,oDAAsB,CAAC,CAAC,EAAE,CAAC,6EAAmC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC9F,CAAC;SAAM,CAAC;QACJ,IAAI,CAAC,oDAAsB,CAAC,CAAC,EAAE,CAAC,6EAAmC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC5F,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"browser-only-filesystem-frontend-module.js","sourceRoot":"","sources":["../../src/browser-only/browser-only-filesystem-frontend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,4DAA+D;AAC/D,2CAAqD;AACrD,yEAAoE;AACpE,uFAAyG;AACzG,qFAAiG;AACjG,uGAAgG;AAChG,8DAAiE;AACjE,gFAA0E;AAE1E,kBAAe,IAAI,2BAAe,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAClE,IAAI,CAAC,0DAAyB,CAAC,CAAC,MAAM,EAAE,CAAC;IACzC,IAAI,CAAC,iDAAsB,CAAC,CAAC,MAAM,EAAE,CAAC;IACtC,IAAI,CAAC,mDAAkB,CAAC,CAAC,SAAS,CAAC,0DAAyB,CAAC,CAAC;IAE9D,IAAI,OAAO,CAAC,+BAAiB,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,+BAAiB,CAAC,CAAC,EAAE,CAAC,gDAAqB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC3E,CAAC;SAAM,CAAC;QACJ,IAAI,CAAC,+BAAiB,CAAC,CAAC,EAAE,CAAC,gDAAqB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACzE,CAAC;IAED,IAAI,OAAO,CAAC,0BAAkB,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,0BAAkB,CAAC,CAAC,EAAE,CAAC,iDAAsB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC7E,CAAC;SAAM,CAAC;QACJ,IAAI,CAAC,0BAAkB,CAAC,CAAC,EAAE,CAAC,iDAAsB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC3E,CAAC;IAED,IAAI,OAAO,CAAC,sDAAwB,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,oDAAsB,CAAC,CAAC,EAAE,CAAC,6EAAmC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC9F,CAAC;SAAM,CAAC;QACJ,IAAI,CAAC,oDAAsB,CAAC,CAAC,EAAE,CAAC,6EAAmC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC5F,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import URI from '@theia/core/lib/common/uri';
2
+ import { SelectionService } from '@theia/core/lib/common/selection-service';
3
+ import { CommandContribution, CommandRegistry } from '@theia/core/lib/common/command';
4
+ import { FileDownloadService } from '../../common/download/file-download';
5
+ export declare class FileDownloadCommandContribution implements CommandContribution {
6
+ protected readonly downloadService: FileDownloadService;
7
+ protected readonly selectionService: SelectionService;
8
+ registerCommands(registry: CommandRegistry): void;
9
+ protected executeDownload(uris: URI[], options?: {
10
+ copyLink?: boolean;
11
+ }): Promise<void>;
12
+ protected isDownloadEnabled(uris: URI[]): boolean;
13
+ protected isDownloadVisible(uris: URI[]): boolean;
14
+ }
15
+ //# sourceMappingURL=file-download-command-contribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-download-command-contribution.d.ts","sourceRoot":"","sources":["../../../src/browser-only/download/file-download-command-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAG1E,qBACa,+BAAgC,YAAW,mBAAmB;IAGvE,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,mBAAmB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEtD,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;cAWjC,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7F,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO;IAIjD,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO;CAGpD"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2025 Maksim Kachurin and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.FileDownloadCommandContribution = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const selection_service_1 = require("@theia/core/lib/common/selection-service");
22
+ const uri_command_handler_1 = require("@theia/core/lib/common/uri-command-handler");
23
+ const file_download_1 = require("../../common/download/file-download");
24
+ const file_download_command_contribution_1 = require("../../browser/download/file-download-command-contribution");
25
+ let FileDownloadCommandContribution = class FileDownloadCommandContribution {
26
+ registerCommands(registry) {
27
+ registry.registerCommand(file_download_command_contribution_1.FileDownloadCommands.DOWNLOAD, uri_command_handler_1.UriAwareCommandHandler.MultiSelect(this.selectionService, {
28
+ execute: uris => this.executeDownload(uris),
29
+ isEnabled: uris => this.isDownloadEnabled(uris),
30
+ isVisible: uris => this.isDownloadVisible(uris),
31
+ }));
32
+ }
33
+ async executeDownload(uris, options) {
34
+ this.downloadService.download(uris, options);
35
+ }
36
+ isDownloadEnabled(uris) {
37
+ return uris.length > 0 && uris.every(u => u.scheme === 'file');
38
+ }
39
+ isDownloadVisible(uris) {
40
+ return this.isDownloadEnabled(uris);
41
+ }
42
+ };
43
+ exports.FileDownloadCommandContribution = FileDownloadCommandContribution;
44
+ tslib_1.__decorate([
45
+ (0, inversify_1.inject)(file_download_1.FileDownloadService),
46
+ tslib_1.__metadata("design:type", Object)
47
+ ], FileDownloadCommandContribution.prototype, "downloadService", void 0);
48
+ tslib_1.__decorate([
49
+ (0, inversify_1.inject)(selection_service_1.SelectionService),
50
+ tslib_1.__metadata("design:type", selection_service_1.SelectionService)
51
+ ], FileDownloadCommandContribution.prototype, "selectionService", void 0);
52
+ exports.FileDownloadCommandContribution = FileDownloadCommandContribution = tslib_1.__decorate([
53
+ (0, inversify_1.injectable)()
54
+ ], FileDownloadCommandContribution);
55
+ //# sourceMappingURL=file-download-command-contribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-download-command-contribution.js","sourceRoot":"","sources":["../../../src/browser-only/download/file-download-command-contribution.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,iDAAiD;AACjD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,4DAAkE;AAElE,gFAA4E;AAE5E,oFAAoF;AACpF,uEAA0E;AAC1E,kHAAiG;AAG1F,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAQxC,gBAAgB,CAAC,QAAyB;QACtC,QAAQ,CAAC,eAAe,CACpB,yDAAoB,CAAC,QAAQ,EAC7B,4CAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACtD,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YAC3C,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC/C,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;SAClD,CAAC,CACL,CAAC;IACN,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,IAAW,EAAE,OAAgC;QACzE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAES,iBAAiB,CAAC,IAAW;QACnC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IACnE,CAAC;IAES,iBAAiB,CAAC,IAAW;QACnC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;CACJ,CAAA;AA9BY,0EAA+B;AAGrB;IADlB,IAAA,kBAAM,EAAC,mCAAmB,CAAC;;wEAC4B;AAGrC;IADlB,IAAA,kBAAM,EAAC,oCAAgB,CAAC;sCACY,oCAAgB;yEAAC;0CAN7C,+BAA+B;IAD3C,IAAA,sBAAU,GAAE;GACA,+BAA+B,CA8B3C"}
@@ -0,0 +1,4 @@
1
+ import { ContainerModule } from '@theia/core/shared/inversify';
2
+ declare const _default: ContainerModule;
3
+ export default _default;
4
+ //# sourceMappingURL=file-download-frontend-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-download-frontend-module.d.ts","sourceRoot":"","sources":["../../../src/browser-only/download/file-download-frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAM/D,wBAGG"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2025 Maksim Kachurin and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const inversify_1 = require("@theia/core/shared/inversify");
19
+ const file_download_1 = require("../../common/download/file-download");
20
+ const file_download_service_1 = require("./file-download-service");
21
+ const common_1 = require("@theia/core/lib/common");
22
+ const file_download_command_contribution_1 = require("./file-download-command-contribution");
23
+ exports.default = new inversify_1.ContainerModule(bind => {
24
+ bind(file_download_1.FileDownloadService).to(file_download_service_1.FileDownloadServiceImpl).inSingletonScope();
25
+ bind(common_1.CommandContribution).to(file_download_command_contribution_1.FileDownloadCommandContribution).inSingletonScope();
26
+ });
27
+ //# sourceMappingURL=file-download-frontend-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-download-frontend-module.js","sourceRoot":"","sources":["../../../src/browser-only/download/file-download-frontend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,iDAAiD;AACjD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,4DAA+D;AAC/D,uEAA0E;AAC1E,mEAAkE;AAClE,mDAA6D;AAC7D,6FAAuF;AAEvF,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,mCAAmB,CAAC,CAAC,EAAE,CAAC,+CAAuB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACzE,IAAI,CAAC,4BAAmB,CAAC,CAAC,EAAE,CAAC,oEAA+B,CAAC,CAAC,gBAAgB,EAAE,CAAC;AACrF,CAAC,CAAC,CAAC"}
@@ -0,0 +1,86 @@
1
+ import URI from '@theia/core/lib/common/uri';
2
+ import { ILogger } from '@theia/core/lib/common/logger';
3
+ import { MessageService } from '@theia/core/lib/common/message-service';
4
+ import { FileSystemPreferences } from '../../common/filesystem-preferences';
5
+ import { FileService } from '../../browser/file-service';
6
+ import type { FileDownloadService } from '../../common/download/file-download';
7
+ import * as tarStream from 'tar-stream';
8
+ export declare class FileDownloadServiceImpl implements FileDownloadService {
9
+ protected readonly fileService: FileService;
10
+ protected readonly logger: ILogger;
11
+ protected readonly messageService: MessageService;
12
+ protected readonly preferences: FileSystemPreferences;
13
+ private readonly ignorePatterns;
14
+ protected getFileSizeThreshold(): number;
15
+ /**
16
+ * Check if streaming download is supported (File System Access API)
17
+ */
18
+ protected isStreamingSupported(): boolean;
19
+ download(uris: URI[], options?: never): Promise<void>;
20
+ protected doDownload(uris: URI[], abortSignal: AbortSignal): Promise<void>;
21
+ protected createArchiveBlob(populateArchive: (tarPack: tarStream.Pack) => Promise<void>, abortSignal: AbortSignal): Promise<Blob>;
22
+ /**
23
+ * Create ReadableStream from a single file using FileService streaming
24
+ */
25
+ protected createFileStream(uri: URI, abortSignal: AbortSignal): Promise<ReadableStream<Uint8Array>>;
26
+ protected addFileToArchive(tarPack: tarStream.Pack, file: {
27
+ uri: URI;
28
+ path: string;
29
+ size: number;
30
+ }, abortSignal: AbortSignal): Promise<void>;
31
+ protected addFilesToArchive(tarPack: tarStream.Pack, files: Array<{
32
+ uri: URI;
33
+ path: string;
34
+ size: number;
35
+ }>, directories: Array<{
36
+ path: string;
37
+ }>, abortSignal: AbortSignal): Promise<void>;
38
+ protected createArchiveStream(abortSignal: AbortSignal, populateArchive: (tarPack: tarStream.Pack) => Promise<void>): globalThis.ReadableStream<Uint8Array>;
39
+ protected streamDownloadToFile(uris: URI[], files: Array<{
40
+ uri: URI;
41
+ path: string;
42
+ size: number;
43
+ }>, directories: Array<{
44
+ path: string;
45
+ }>, stats: Array<{
46
+ name: string;
47
+ isDirectory: boolean;
48
+ size?: number;
49
+ }>, abortSignal: AbortSignal): Promise<void>;
50
+ protected blobDownload(data: Blob, filename: string): void;
51
+ protected sanitizeFilename(filename: string): string;
52
+ protected shouldIncludeFile(path: string): boolean;
53
+ /**
54
+ * Collect all files and calculate total size
55
+ */
56
+ protected collectFiles(uris: URI[], abortSignal?: AbortSignal): Promise<{
57
+ files: Array<{
58
+ uri: URI;
59
+ path: string;
60
+ size: number;
61
+ }>;
62
+ directories: Array<{
63
+ path: string;
64
+ }>;
65
+ totalSize: number;
66
+ stats: Array<{
67
+ name: string;
68
+ isDirectory: boolean;
69
+ size?: number;
70
+ }>;
71
+ }>;
72
+ /**
73
+ * Recursively collect files from a directory
74
+ */
75
+ protected collectFilesFromDirectory(dirUri: URI, basePath: string, abortSignal?: AbortSignal): Promise<{
76
+ files: Array<{
77
+ uri: URI;
78
+ path: string;
79
+ size: number;
80
+ }>;
81
+ directories: Array<{
82
+ path: string;
83
+ }>;
84
+ }>;
85
+ }
86
+ //# sourceMappingURL=file-download-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-download-service.d.ts","sourceRoot":"","sources":["../../../src/browser-only/download/file-download-service.ts"],"names":[],"mappings":"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"}