@theia/filesystem 1.37.0-next.8 → 1.37.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 (27) hide show
  1. package/lib/electron-browser/file-dialog/electron-file-dialog-service.d.ts +1 -41
  2. package/lib/electron-browser/file-dialog/electron-file-dialog-service.d.ts.map +1 -1
  3. package/lib/electron-browser/file-dialog/electron-file-dialog-service.js +46 -86
  4. package/lib/electron-browser/file-dialog/electron-file-dialog-service.js.map +1 -1
  5. package/lib/electron-browser/preload.d.ts +2 -0
  6. package/lib/electron-browser/preload.d.ts.map +1 -0
  7. package/lib/electron-browser/preload.js +31 -0
  8. package/lib/electron-browser/preload.js.map +1 -0
  9. package/lib/electron-common/electron-api.d.ts +35 -0
  10. package/lib/electron-common/electron-api.d.ts.map +1 -0
  11. package/lib/electron-common/electron-api.js +21 -0
  12. package/lib/electron-common/electron-api.js.map +1 -0
  13. package/lib/electron-main/electron-api-main.d.ts +6 -0
  14. package/lib/electron-main/electron-api-main.d.ts.map +1 -0
  15. package/lib/electron-main/electron-api-main.js +79 -0
  16. package/lib/electron-main/electron-api-main.js.map +1 -0
  17. package/lib/electron-main/electron-main-module.d.ts +4 -0
  18. package/lib/electron-main/electron-main-module.d.ts.map +1 -0
  19. package/lib/electron-main/electron-main-module.js +25 -0
  20. package/lib/electron-main/electron-main-module.js.map +1 -0
  21. package/package.json +8 -4
  22. package/src/electron-browser/file-dialog/electron-file-dialog-service.ts +53 -116
  23. package/src/electron-browser/preload.ts +30 -0
  24. package/src/electron-common/electron-api.ts +55 -0
  25. package/src/electron-main/electron-api-main.ts +78 -0
  26. package/src/electron-main/electron-main-module.ts +23 -0
  27. package/LICENSE +0 -642
@@ -1,10 +1,9 @@
1
- import { FileFilter, OpenDialogOptions, SaveDialogOptions } from '@theia/core/electron-shared/electron';
2
1
  import URI from '@theia/core/lib/common/uri';
3
2
  import { MaybeArray } from '@theia/core/lib/common/types';
4
3
  import { MessageService } from '@theia/core/lib/common/message-service';
5
4
  import { FileStat } from '../../common/files';
6
5
  import { DefaultFileDialogService, OpenFileDialogProps, SaveFileDialogProps } from '../../browser/file-dialog';
7
- declare type DialogProperties = 'openFile' | 'openDirectory' | 'multiSelections' | 'showHiddenFiles' | 'createDirectory' | 'promptToCreate' | 'noResolveAliases' | 'treatPackageAsDirectory' | 'dontAddToRecent';
6
+ import { OpenDialogOptions, SaveDialogOptions } from '../../electron-common/electron-api';
8
7
  export declare class ElectronFileDialogService extends DefaultFileDialogService {
9
8
  protected readonly messageService: MessageService;
10
9
  showOpenDialog(props: OpenFileDialogProps & {
@@ -14,46 +13,7 @@ export declare class ElectronFileDialogService extends DefaultFileDialogService
14
13
  showSaveDialog(props: SaveFileDialogProps, folder?: FileStat): Promise<URI | undefined>;
15
14
  protected canReadWrite(uris: MaybeArray<URI>): Promise<boolean>;
16
15
  protected canRead(uris: MaybeArray<URI>): Promise<boolean>;
17
- protected toDialogOptions(uri: URI, props: SaveFileDialogProps | OpenFileDialogProps, dialogTitle: string): electron.FileDialogProps;
18
- /**
19
- * Specifies whether an _All Files_ filter should be added to the dialog.
20
- *
21
- * On Linux, the _All Files_ filter [hides](https://github.com/eclipse-theia/theia/issues/11321) files without an extension.
22
- * The bug is resolved in Electron >=18.
23
- */
24
- protected shouldAddAllFilesFilter(electronProps: electron.FileDialogProps): boolean;
25
16
  protected toOpenDialogOptions(uri: URI, props: OpenFileDialogProps): OpenDialogOptions;
26
17
  protected toSaveDialogOptions(uri: URI, props: SaveFileDialogProps): SaveDialogOptions;
27
18
  }
28
- export declare namespace electron {
29
- /**
30
- * Common "super" interface of the `electron.SaveDialogOptions` and `electron.OpenDialogOptions` types.
31
- */
32
- interface FileDialogProps {
33
- /**
34
- * The dialog title.
35
- */
36
- readonly title?: string;
37
- /**
38
- * The default path, where the dialog opens. Requires an FS path.
39
- */
40
- readonly defaultPath?: string;
41
- /**
42
- * Resource filter.
43
- */
44
- readonly filters?: FileFilter[];
45
- }
46
- namespace dialog {
47
- /**
48
- * Converts the Theia specific `OpenFileDialogProps` into an electron specific array.
49
- *
50
- * Note: On Windows and Linux an open dialog can not be both a file selector and a directory selector,
51
- * so if you set properties to ['openFile', 'openDirectory'] on these platforms, a directory selector will be shown.
52
- *
53
- * See: https://github.com/electron/electron/issues/10252#issuecomment-322012159
54
- */
55
- function toDialogProperties(props: OpenFileDialogProps): Array<DialogProperties>;
56
- }
57
- }
58
- export {};
59
19
  //# sourceMappingURL=electron-file-dialog-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"electron-file-dialog-service.d.ts","sourceRoot":"","sources":["../../../src/electron-browser/file-dialog/electron-file-dialog-service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAExG,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAI/G,aAAK,gBAAgB,GAAG,UAAU,GAAG,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,GACxF,iBAAiB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,yBAAyB,GAAG,iBAAiB,CAAC;AAW9G,qBACa,yBAA0B,SAAQ,wBAAwB;IAE3C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAE3D,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG;QAAE,aAAa,EAAE,IAAI,CAAA;KAAE,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC7H,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAmBvF,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;cAsBtF,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;cAUrD,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAchE,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC,eAAe;IAsBpI;;;;;OAKG;IACH,SAAS,CAAC,uBAAuB,CAAC,aAAa,EAAE,QAAQ,CAAC,eAAe,GAAG,OAAO;IAMnF,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,mBAAmB,GAAG,iBAAiB;IAMtF,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,mBAAmB,GAAG,iBAAiB;CASzF;AAED,yBAAiB,QAAQ,CAAC;IAEtB;;OAEG;IACH,UAAiB,eAAe;QAE5B;;WAEG;QACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAExB;;WAEG;QACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAE9B;;WAEG;QACH,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;KAEnC;IAED,UAAiB,MAAM,CAAC;QAEpB;;;;;;;WAOG;QACH,SAAgB,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CA6BtF;KACJ;CACJ"}
1
+ {"version":3,"file":"electron-file-dialog-service.d.ts","sourceRoot":"","sources":["../../../src/electron-browser/file-dialog/electron-file-dialog-service.ts"],"names":[],"mappings":"AAiBA,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAS/G,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAE1F,qBACa,yBAA0B,SAAQ,wBAAwB;IAE3C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAE3D,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG;QAAE,aAAa,EAAE,IAAI,CAAA;KAAE,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC7H,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAiBvF,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;cAqBtF,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;cAUrD,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAchE,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,mBAAmB,GAAG,iBAAiB;IAsCtF,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,mBAAmB,GAAG,iBAAiB;CAyBzF"}
@@ -24,9 +24,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
24
24
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.electron = exports.ElectronFileDialogService = void 0;
27
+ exports.ElectronFileDialogService = void 0;
28
28
  const inversify_1 = require("@theia/core/shared/inversify");
29
- const electronRemote = require("@theia/core/electron-shared/@electron/remote");
30
29
  const os_1 = require("@theia/core/lib/common/os");
31
30
  const message_service_1 = require("@theia/core/lib/common/message-service");
32
31
  const filesystem_1 = require("../../common/filesystem");
@@ -43,10 +42,8 @@ let ElectronFileDialogService = class ElectronFileDialogService extends file_dia
43
42
  async showOpenDialog(props, folder) {
44
43
  const rootNode = await this.getRootNode(folder);
45
44
  if (rootNode) {
46
- const { filePaths } = props.modal !== false ?
47
- await electronRemote.dialog.showOpenDialog(electronRemote.getCurrentWindow(), this.toOpenDialogOptions(rootNode.uri, props)) :
48
- await electronRemote.dialog.showOpenDialog(this.toOpenDialogOptions(rootNode.uri, props));
49
- if (filePaths.length === 0) {
45
+ const filePaths = await window.electronTheiaFilesystem.showOpenDialog(this.toOpenDialogOptions(rootNode.uri, props));
46
+ if (!filePaths || filePaths.length === 0) {
50
47
  return undefined;
51
48
  }
52
49
  const uris = filePaths.map(path => file_uri_1.FileUri.create(path));
@@ -59,9 +56,7 @@ let ElectronFileDialogService = class ElectronFileDialogService extends file_dia
59
56
  async showSaveDialog(props, folder) {
60
57
  const rootNode = await this.getRootNode(folder);
61
58
  if (rootNode) {
62
- const { filePath } = props.modal !== false ?
63
- await electronRemote.dialog.showSaveDialog(electronRemote.getCurrentWindow(), this.toSaveDialogOptions(rootNode.uri, props)) :
64
- await electronRemote.dialog.showSaveDialog(this.toSaveDialogOptions(rootNode.uri, props));
59
+ const filePath = await window.electronTheiaFilesystem.showSaveDialog(this.toSaveDialogOptions(rootNode.uri, props));
65
60
  if (!filePath) {
66
61
  return undefined;
67
62
  }
@@ -97,46 +92,56 @@ let ElectronFileDialogService = class ElectronFileDialogService extends file_dia
97
92
  }
98
93
  return unreadableResourcePaths.length === 0;
99
94
  }
100
- toDialogOptions(uri, props, dialogTitle) {
101
- const electronProps = {
102
- title: props.title || dialogTitle,
103
- defaultPath: file_uri_1.FileUri.fsPath(uri),
104
- };
105
- const { canSelectFiles = true, canSelectFolders = false, } = props;
106
- if (!os_1.isOSX && canSelectFiles && canSelectFolders) {
107
- console.warn('canSelectFiles === true && canSelectFolders === true is only supported on OSX!');
95
+ toOpenDialogOptions(uri, props) {
96
+ if (!os_1.isOSX && props.canSelectFiles !== false && props.canSelectFolders === true) {
97
+ console.warn(`Cannot have 'canSelectFiles' and 'canSelectFolders' at the same time. Fallback to 'folder' dialog. \nProps was: ${JSON.stringify(props)}.`);
98
+ // Given that both props are set, fallback to using a `folder` dialog.
99
+ props.canSelectFiles = false;
100
+ props.canSelectFolders = true;
108
101
  }
109
- if ((os_1.isOSX && canSelectFiles) || !canSelectFolders) {
110
- electronProps.filters = props.filters ? Object.entries(props.filters).map(([name, extensions]) => ({ name, extensions })) : [];
111
- if (this.shouldAddAllFilesFilter(electronProps)) {
112
- electronProps.filters.push({ name: 'All Files', extensions: ['*'] });
102
+ const result = {
103
+ path: file_uri_1.FileUri.fsPath(uri)
104
+ };
105
+ result.title = props.title;
106
+ result.buttonLabel = props.openLabel;
107
+ result.maxWidth = props.maxWidth;
108
+ result.modal = props.modal;
109
+ result.openFiles = props.canSelectFiles;
110
+ result.openFolders = props.canSelectFolders;
111
+ result.selectMany = props.canSelectMany;
112
+ if (props.filters) {
113
+ result.filters = [];
114
+ const filters = Object.entries(props.filters);
115
+ for (const [label, extensions] of filters) {
116
+ result.filters.push({ name: label, extensions: extensions });
117
+ }
118
+ if (props.canSelectFiles) {
119
+ if (filters.length > 0) {
120
+ result.filters.push({ name: 'All Files', extensions: ['*'] });
121
+ }
113
122
  }
114
123
  }
115
- return electronProps;
116
- }
117
- /**
118
- * Specifies whether an _All Files_ filter should be added to the dialog.
119
- *
120
- * On Linux, the _All Files_ filter [hides](https://github.com/eclipse-theia/theia/issues/11321) files without an extension.
121
- * The bug is resolved in Electron >=18.
122
- */
123
- shouldAddAllFilesFilter(electronProps) {
124
- const foundFilters = !!electronProps.filters && electronProps.filters.length > 0;
125
- const isNotLinux = os_1.OS.type() !== os_1.OS.Type.Linux;
126
- return isNotLinux || foundFilters;
127
- }
128
- toOpenDialogOptions(uri, props) {
129
- const properties = electron.dialog.toDialogProperties(props);
130
- const buttonLabel = props.openLabel;
131
- return Object.assign(Object.assign({}, this.toDialogOptions(uri, props, 'Open')), { properties, buttonLabel });
124
+ return result;
132
125
  }
133
126
  toSaveDialogOptions(uri, props) {
134
- const buttonLabel = props.saveLabel;
135
127
  if (props.inputValue) {
136
128
  uri = uri.resolve(props.inputValue);
137
129
  }
138
- const defaultPath = file_uri_1.FileUri.fsPath(uri);
139
- return Object.assign(Object.assign({}, this.toDialogOptions(uri, props, 'Save')), { buttonLabel, defaultPath });
130
+ const result = {
131
+ path: file_uri_1.FileUri.fsPath(uri)
132
+ };
133
+ result.title = props.title;
134
+ result.buttonLabel = props.saveLabel;
135
+ result.maxWidth = props.maxWidth;
136
+ result.modal = props.modal;
137
+ if (props.filters) {
138
+ result.filters = [];
139
+ const filters = Object.entries(props.filters);
140
+ for (const [label, extensions] of filters) {
141
+ result.filters.push({ name: label, extensions: extensions });
142
+ }
143
+ }
144
+ return result;
140
145
  }
141
146
  };
142
147
  __decorate([
@@ -147,49 +152,4 @@ ElectronFileDialogService = __decorate([
147
152
  (0, inversify_1.injectable)()
148
153
  ], ElectronFileDialogService);
149
154
  exports.ElectronFileDialogService = ElectronFileDialogService;
150
- var electron;
151
- (function (electron) {
152
- let dialog;
153
- (function (dialog) {
154
- /**
155
- * Converts the Theia specific `OpenFileDialogProps` into an electron specific array.
156
- *
157
- * Note: On Windows and Linux an open dialog can not be both a file selector and a directory selector,
158
- * so if you set properties to ['openFile', 'openDirectory'] on these platforms, a directory selector will be shown.
159
- *
160
- * See: https://github.com/electron/electron/issues/10252#issuecomment-322012159
161
- */
162
- function toDialogProperties(props) {
163
- if (!os_1.isOSX && props.canSelectFiles !== false && props.canSelectFolders === true) {
164
- console.warn(`Cannot have 'canSelectFiles' and 'canSelectFolders' at the same time. Fallback to 'folder' dialog. \nProps was: ${JSON.stringify(props)}.`);
165
- // Given that both props are set, fallback to using a `folder` dialog.
166
- props.canSelectFiles = false;
167
- props.canSelectFolders = true;
168
- }
169
- const properties = [];
170
- if (!os_1.isOSX) {
171
- if (props.canSelectFiles !== false && props.canSelectFolders !== true) {
172
- properties.push('openFile');
173
- }
174
- if (props.canSelectFolders === true && props.canSelectFiles === false) {
175
- properties.push('openDirectory');
176
- }
177
- }
178
- else {
179
- if (props.canSelectFiles !== false) {
180
- properties.push('openFile');
181
- }
182
- if (props.canSelectFolders === true) {
183
- properties.push('openDirectory');
184
- properties.push('createDirectory');
185
- }
186
- }
187
- if (props.canSelectMany === true) {
188
- properties.push('multiSelections');
189
- }
190
- return properties;
191
- }
192
- dialog.toDialogProperties = toDialogProperties;
193
- })(dialog = electron.dialog || (electron.dialog = {}));
194
- })(electron = exports.electron || (exports.electron = {}));
195
155
  //# sourceMappingURL=electron-file-dialog-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"electron-file-dialog-service.js","sourceRoot":"","sources":["../../../src/electron-browser/file-dialog/electron-file-dialog-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"electron-file-dialog-service.js","sourceRoot":"","sources":["../../../src/electron-browser/file-dialog/electron-file-dialog-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function preload(): void;
2
+ //# sourceMappingURL=preload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../../src/electron-browser/preload.ts"],"names":[],"mappings":"AAyBA,wBAAgB,OAAO,IAAI,IAAI,CAI9B"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.preload = void 0;
4
+ // *****************************************************************************
5
+ // Copyright (C) 2023 STMicroelectronics and others.
6
+ //
7
+ // This program and the accompanying materials are made available under the
8
+ // terms of the Eclipse Public License v. 2.0 which is available at
9
+ // http://www.eclipse.org/legal/epl-2.0.
10
+ //
11
+ // This Source Code may also be made available under the following Secondary
12
+ // Licenses when the conditions for such availability set forth in the Eclipse
13
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
14
+ // with the GNU Classpath Exception which is available at
15
+ // https://www.gnu.org/software/classpath/license.html.
16
+ //
17
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
18
+ // *****************************************************************************
19
+ const electron_api_1 = require("../electron-common/electron-api");
20
+ // eslint-disable-next-line import/no-extraneous-dependencies
21
+ const electron_1 = require("@theia/core/electron-shared/electron");
22
+ const api = {
23
+ showOpenDialog: (options) => electron_1.ipcRenderer.invoke(electron_api_1.CHANNEL_SHOW_OPEN, options),
24
+ showSaveDialog: (options) => electron_1.ipcRenderer.invoke(electron_api_1.CHANNEL_SHOW_SAVE, options),
25
+ };
26
+ function preload() {
27
+ console.log('exposing theia filesystem electron api');
28
+ electron_1.contextBridge.exposeInMainWorld('electronTheiaFilesystem', api);
29
+ }
30
+ exports.preload = preload;
31
+ //# sourceMappingURL=preload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preload.js","sourceRoot":"","sources":["../../src/electron-browser/preload.ts"],"names":[],"mappings":";;;AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;AAChF,kEAAiJ;AAEjJ,6DAA6D;AAC7D,mEAAkF;AAElF,MAAM,GAAG,GAAuB;IAC5B,cAAc,EAAE,CAAC,OAA0B,EAAE,EAAE,CAAC,sBAAW,CAAC,MAAM,CAAC,gCAAiB,EAAE,OAAO,CAAC;IAC9F,cAAc,EAAE,CAAC,OAA0B,EAAE,EAAE,CAAC,sBAAW,CAAC,MAAM,CAAC,gCAAiB,EAAE,OAAO,CAAC;CACjG,CAAC;AAEF,SAAgB,OAAO;IACnB,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAEtD,wBAAa,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;AACpE,CAAC;AAJD,0BAIC"}
@@ -0,0 +1,35 @@
1
+ export interface FileFilter {
2
+ name: string;
3
+ extensions: string[];
4
+ }
5
+ export interface OpenDialogOptions {
6
+ title?: string;
7
+ maxWidth?: number;
8
+ path: string;
9
+ buttonLabel?: string;
10
+ modal?: boolean;
11
+ openFiles?: boolean;
12
+ openFolders?: boolean;
13
+ selectMany?: boolean;
14
+ filters?: FileFilter[];
15
+ }
16
+ export interface SaveDialogOptions {
17
+ title?: string;
18
+ maxWidth?: number;
19
+ path: string;
20
+ buttonLabel?: string;
21
+ modal?: boolean;
22
+ filters?: FileFilter[];
23
+ }
24
+ export interface TheiaFilesystemAPI {
25
+ showOpenDialog(options: OpenDialogOptions): Promise<string[] | undefined>;
26
+ showSaveDialog(options: SaveDialogOptions): Promise<string | undefined>;
27
+ }
28
+ declare global {
29
+ interface Window {
30
+ electronTheiaFilesystem: TheiaFilesystemAPI;
31
+ }
32
+ }
33
+ export declare const CHANNEL_SHOW_OPEN = "ShowOpenDialog";
34
+ export declare const CHANNEL_SHOW_SAVE = "ShowSaveDialog";
35
+ //# sourceMappingURL=electron-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"electron-api.d.ts","sourceRoot":"","sources":["../../src/electron-common/electron-api.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IAC/B,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IAC1E,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC3E;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,uBAAuB,EAAE,kBAAkB,CAAA;KAC9C;CACJ;AAED,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAClD,eAAO,MAAM,iBAAiB,mBAAmB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2023 STMicroelectronics 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 WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.CHANNEL_SHOW_SAVE = exports.CHANNEL_SHOW_OPEN = void 0;
19
+ exports.CHANNEL_SHOW_OPEN = 'ShowOpenDialog';
20
+ exports.CHANNEL_SHOW_SAVE = 'ShowSaveDialog';
21
+ //# sourceMappingURL=electron-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"electron-api.js","sourceRoot":"","sources":["../../src/electron-common/electron-api.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;AAuCnE,QAAA,iBAAiB,GAAG,gBAAgB,CAAC;AACrC,QAAA,iBAAiB,GAAG,gBAAgB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { ElectronMainApplication, ElectronMainApplicationContribution } from '@theia/core/lib/electron-main/electron-main-application';
2
+ import { MaybePromise } from '@theia/core';
3
+ export declare class ElectronApi implements ElectronMainApplicationContribution {
4
+ onStart(application: ElectronMainApplication): MaybePromise<void>;
5
+ }
6
+ //# sourceMappingURL=electron-api-main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"electron-api-main.d.ts","sourceRoot":"","sources":["../../src/electron-main/electron-api-main.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,uBAAuB,EAAE,mCAAmC,EAAE,MAAM,yDAAyD,CAAC;AACvI,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C,qBACa,WAAY,YAAW,mCAAmC;IACnE,OAAO,CAAC,WAAW,EAAE,uBAAuB,GAAG,YAAY,CAAC,IAAI,CAAC;CAmDpE"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2023 STMicroelectronics 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 WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
18
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.ElectronApi = void 0;
25
+ const inversify_1 = require("@theia/core/shared/inversify");
26
+ const electron_api_1 = require("../electron-common/electron-api");
27
+ const electron_1 = require("@theia/core/electron-shared/electron");
28
+ let ElectronApi = class ElectronApi {
29
+ onStart(application) {
30
+ // dialogs
31
+ electron_1.ipcMain.handle(electron_api_1.CHANNEL_SHOW_OPEN, async (event, options) => {
32
+ const properties = [];
33
+ // checking proper combination of file/dir opening is done on the renderer side
34
+ if (options.openFiles) {
35
+ properties.push('openFile');
36
+ }
37
+ if (options.openFolders) {
38
+ properties.push('openDirectory');
39
+ }
40
+ if (options.selectMany === true) {
41
+ properties.push('multiSelections');
42
+ }
43
+ const dialogOpts = {
44
+ defaultPath: options.path,
45
+ buttonLabel: options.buttonLabel,
46
+ filters: options.filters,
47
+ title: options.title,
48
+ properties: properties
49
+ };
50
+ if (options.modal) {
51
+ const win = electron_1.BrowserWindow.fromWebContents(event.sender);
52
+ if (win) {
53
+ return (await electron_1.dialog.showOpenDialog(win, dialogOpts)).filePaths;
54
+ }
55
+ }
56
+ return (await electron_1.dialog.showOpenDialog(dialogOpts)).filePaths;
57
+ });
58
+ electron_1.ipcMain.handle(electron_api_1.CHANNEL_SHOW_SAVE, async (event, options) => {
59
+ const dialogOpts = {
60
+ defaultPath: options.path,
61
+ buttonLabel: options.buttonLabel,
62
+ filters: options.filters,
63
+ title: options.title
64
+ };
65
+ if (options.modal) {
66
+ const win = electron_1.BrowserWindow.fromWebContents(event.sender);
67
+ if (win) {
68
+ return (await electron_1.dialog.showSaveDialog(win, dialogOpts)).filePath;
69
+ }
70
+ }
71
+ return (await electron_1.dialog.showSaveDialog(dialogOpts)).filePath;
72
+ });
73
+ }
74
+ };
75
+ ElectronApi = __decorate([
76
+ (0, inversify_1.injectable)()
77
+ ], ElectronApi);
78
+ exports.ElectronApi = ElectronApi;
79
+ //# sourceMappingURL=electron-api-main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"electron-api-main.js","sourceRoot":"","sources":["../../src/electron-main/electron-api-main.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;;;;;;;AAEhF,4DAA0D;AAI1D,kEAA6H;AAC7H,mEACgD;AAGhD,IAAa,WAAW,GAAxB,MAAa,WAAW;IACpB,OAAO,CAAC,WAAoC;QACxC,UAAU;QACV,kBAAO,CAAC,MAAM,CAAC,gCAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,OAA0B,EAAE,EAAE;YAC1E,MAAM,UAAU,GAA4C,EAAE,CAAC;YAE/D,+EAA+E;YAC/E,IAAI,OAAO,CAAC,SAAS,EAAE;gBACnB,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC/B;YACD,IAAI,OAAO,CAAC,WAAW,EAAE;gBACrB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aACpC;YAED,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE;gBAC7B,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aACtC;YAED,MAAM,UAAU,GAA8B;gBAC1C,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,UAAU,EAAE,UAAU;aACzB,CAAC;YAEF,IAAI,OAAO,CAAC,KAAK,EAAE;gBACf,MAAM,GAAG,GAAG,wBAAa,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxD,IAAI,GAAG,EAAE;oBACL,OAAO,CAAC,MAAM,iBAAM,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;iBACnE;aACJ;YACD,OAAO,CAAC,MAAM,iBAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,kBAAO,CAAC,MAAM,CAAC,gCAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,OAA0B,EAAE,EAAE;YAC1E,MAAM,UAAU,GAA8B;gBAC1C,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,OAAO,CAAC,KAAK;aACvB,CAAC;YACF,IAAI,OAAO,CAAC,KAAK,EAAE;gBACf,MAAM,GAAG,GAAG,wBAAa,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxD,IAAI,GAAG,EAAE;oBACL,OAAO,CAAC,MAAM,iBAAM,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;iBAClE;aACJ;YACD,OAAO,CAAC,MAAM,iBAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9D,CAAC,CAAC,CAAC;IAEP,CAAC;CACJ,CAAA;AApDY,WAAW;IADvB,IAAA,sBAAU,GAAE;GACA,WAAW,CAoDvB;AApDY,kCAAW"}
@@ -0,0 +1,4 @@
1
+ import { ContainerModule } from '@theia/core/shared/inversify';
2
+ declare const _default: ContainerModule;
3
+ export default _default;
4
+ //# sourceMappingURL=electron-main-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"electron-main-module.d.ts","sourceRoot":"","sources":["../../src/electron-main/electron-main-module.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAI/D,wBAGG"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // *****************************************************************************
4
+ // Copyright (C) 2023 STMicroelectronics and others.
5
+ //
6
+ // This program and the accompanying materials are made available under the
7
+ // terms of the Eclipse Public License v. 2.0 which is available at
8
+ // http://www.eclipse.org/legal/epl-2.0.
9
+ //
10
+ // This Source Code may also be made available under the following Secondary
11
+ // Licenses when the conditions for such availability set forth in the Eclipse
12
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
13
+ // with the GNU Classpath Exception which is available at
14
+ // https://www.gnu.org/software/classpath/license.html.
15
+ //
16
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
17
+ // *****************************************************************************
18
+ const inversify_1 = require("@theia/core/shared/inversify");
19
+ const electron_main_application_1 = require("@theia/core/lib/electron-main/electron-main-application");
20
+ const electron_api_main_1 = require("./electron-api-main");
21
+ exports.default = new inversify_1.ContainerModule(bind => {
22
+ bind(electron_api_main_1.ElectronApi).toSelf().inSingletonScope();
23
+ bind(electron_main_application_1.ElectronMainApplicationContribution).toService(electron_api_main_1.ElectronApi);
24
+ });
25
+ //# sourceMappingURL=electron-main-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"electron-main-module.js","sourceRoot":"","sources":["../../src/electron-main/electron-main-module.ts"],"names":[],"mappings":";;AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;AAChF,4DAA+D;AAC/D,uGAA8G;AAC9G,2DAAkD;AAElD,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,+BAAW,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC9C,IAAI,CAAC,+DAAmC,CAAC,CAAC,SAAS,CAAC,+BAAW,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@theia/filesystem",
3
- "version": "1.37.0-next.8+8a58417ba",
3
+ "version": "1.37.0",
4
4
  "description": "Theia - FileSystem Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.37.0-next.8+8a58417ba",
6
+ "@theia/core": "1.37.0",
7
7
  "@types/body-parser": "^1.17.0",
8
8
  "@types/multer": "^1.4.7",
9
9
  "@types/rimraf": "^2.0.2",
@@ -24,6 +24,10 @@
24
24
  "access": "public"
25
25
  },
26
26
  "theiaExtensions": [
27
+ {
28
+ "preload": "lib/electron-browser/preload",
29
+ "electronMain": "lib/electron-main/electron-main-module"
30
+ },
27
31
  {
28
32
  "frontend": "lib/browser/filesystem-frontend-module",
29
33
  "backend": "lib/node/filesystem-backend-module"
@@ -63,10 +67,10 @@
63
67
  "watch": "theiaext watch"
64
68
  },
65
69
  "devDependencies": {
66
- "@theia/ext-scripts": "1.36.0"
70
+ "@theia/ext-scripts": "1.37.0"
67
71
  },
68
72
  "nyc": {
69
73
  "extends": "../../configs/nyc.json"
70
74
  },
71
- "gitHead": "8a58417ba758ba4d7e78ff26fa2d861772909520"
75
+ "gitHead": "a4d3d5c7eeb87ec9be566c285aaeafc994acddf6"
72
76
  }