@codingame/monaco-vscode-extensions-service-override 1.83.7 → 1.83.9

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 (183) hide show
  1. package/assets/webWorkerExtensionHostIframe.html +123 -0
  2. package/extensions.d.ts +12 -13
  3. package/extensions.js +456 -0
  4. package/external/rollup-plugin-styles/dist/runtime/inject-css.js +3 -0
  5. package/external/tslib/tslib.es6.js +11 -0
  6. package/index.d.ts +1 -1
  7. package/index.js +2 -2
  8. package/override/vs/platform/dialogs/common/dialogs.js +8 -0
  9. package/override/vs/workbench/browser/parts/editor/textEditor.weak.js +8 -0
  10. package/override/vs/workbench/contrib/notebook/common/notebookEditorInput.js +3 -0
  11. package/package.json +5 -3
  12. package/tools/url.js +10 -0
  13. package/tools.js +5 -0
  14. package/vscode/src/vs/base/common/console.js +59 -0
  15. package/vscode/src/vs/base/common/prefixTree.js +131 -0
  16. package/vscode/src/vs/platform/files/common/watcher.js +71 -0
  17. package/vscode/src/vs/platform/lifecycle/common/lifecycle.js +27 -0
  18. package/vscode/src/vs/platform/log/browser/log.js +26 -0
  19. package/vscode/src/vs/platform/remote/common/managedSocket.js +98 -0
  20. package/vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js +31 -0
  21. package/vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.js +35 -0
  22. package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +330 -0
  23. package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +68 -0
  24. package/vscode/src/vs/workbench/api/browser/mainThreadChat.js +174 -0
  25. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents.js +52 -0
  26. package/vscode/src/vs/workbench/api/browser/mainThreadChatProvider.js +61 -0
  27. package/vscode/src/vs/workbench/api/browser/mainThreadChatSlashCommands.js +49 -0
  28. package/vscode/src/vs/workbench/api/browser/mainThreadChatVariables.js +31 -0
  29. package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +24 -0
  30. package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +107 -0
  31. package/vscode/src/vs/workbench/api/browser/mainThreadCommands.js +94 -0
  32. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +541 -0
  33. package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +80 -0
  34. package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +35 -0
  35. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +578 -0
  36. package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +387 -0
  37. package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +102 -0
  38. package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js +69 -0
  39. package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.js +68 -0
  40. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +75 -0
  41. package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +249 -0
  42. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +370 -0
  43. package/vscode/src/vs/workbench/api/browser/mainThreadDownloadService.js +22 -0
  44. package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +41 -0
  45. package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +411 -0
  46. package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +475 -0
  47. package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +227 -0
  48. package/vscode/src/vs/workbench/api/browser/mainThreadErrors.js +24 -0
  49. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +317 -0
  50. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +280 -0
  51. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +283 -0
  52. package/vscode/src/vs/workbench/api/browser/mainThreadInlineChat.js +68 -0
  53. package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.js +28 -0
  54. package/vscode/src/vs/workbench/api/browser/mainThreadIssueReporter.js +33 -0
  55. package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.js +27 -0
  56. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +947 -0
  57. package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.js +78 -0
  58. package/vscode/src/vs/workbench/api/browser/mainThreadLocalization.js +35 -0
  59. package/vscode/src/vs/workbench/api/browser/mainThreadLogService.js +78 -0
  60. package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +93 -0
  61. package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +118 -0
  62. package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.js +158 -0
  63. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocuments.js +123 -0
  64. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js +188 -0
  65. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +129 -0
  66. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.js +131 -0
  67. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.js +341 -0
  68. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookRenderers.js +25 -0
  69. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +48 -0
  70. package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +76 -0
  71. package/vscode/src/vs/workbench/api/browser/mainThreadProfilContentHandlers.js +38 -0
  72. package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +68 -0
  73. package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +49 -0
  74. package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js +185 -0
  75. package/vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.js +30 -0
  76. package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +463 -0
  77. package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +49 -0
  78. package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +148 -0
  79. package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +70 -0
  80. package/vscode/src/vs/workbench/api/browser/mainThreadShare.js +50 -0
  81. package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +53 -0
  82. package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +72 -0
  83. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +731 -0
  84. package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +53 -0
  85. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +412 -0
  86. package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +182 -0
  87. package/vscode/src/vs/workbench/api/browser/mainThreadTheming.js +24 -0
  88. package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.js +55 -0
  89. package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +313 -0
  90. package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +223 -0
  91. package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +110 -0
  92. package/vscode/src/vs/workbench/api/browser/mainThreadUrls.js +61 -0
  93. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +29 -0
  94. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +283 -0
  95. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.js +100 -0
  96. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +135 -0
  97. package/vscode/src/vs/workbench/api/browser/mainThreadWindow.js +57 -0
  98. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +273 -0
  99. package/{dist/main/vscode → vscode}/src/vs/workbench/api/common/extHost.api.impl.d.ts +2 -2
  100. package/{dist/main/vscode → vscode}/src/vs/workbench/api/common/extHostConfiguration.d.ts +3 -3
  101. package/{dist/main/vscode → vscode}/src/vs/workbench/api/common/extHostExtensionService.d.ts +3 -4
  102. package/{dist/main/vscode → vscode}/src/vs/workbench/api/common/extHostManagedSockets.d.ts +2 -2
  103. package/{dist/main/vscode → vscode}/src/vs/workbench/api/common/extHostTerminalService.d.ts +19 -20
  104. package/{dist/main/vscode → vscode}/src/vs/workbench/api/common/extHostTunnelService.d.ts +7 -8
  105. package/{dist/main/vscode → vscode}/src/vs/workbench/api/common/extHostWorkspace.d.ts +25 -26
  106. package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.js +35 -0
  107. package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +217 -0
  108. package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +57 -0
  109. package/vscode/src/vs/workbench/contrib/comments/browser/commentFormActions.js +51 -0
  110. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +92 -0
  111. package/vscode/src/vs/workbench/contrib/comments/browser/commentNode.js +648 -0
  112. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +297 -0
  113. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadAdditionalActions.js +62 -0
  114. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +249 -0
  115. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +109 -0
  116. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadRangeDecorator.js +109 -0
  117. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +331 -0
  118. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +380 -0
  119. package/vscode/src/vs/workbench/contrib/comments/browser/comments.js +5 -0
  120. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +1196 -0
  121. package/vscode/src/vs/workbench/contrib/comments/browser/commentsFilterOptions.js +19 -0
  122. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +334 -0
  123. package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +543 -0
  124. package/vscode/src/vs/workbench/contrib/comments/browser/commentsViewActions.js +178 -0
  125. package/vscode/src/vs/workbench/contrib/comments/browser/media/panel.css.js +6 -0
  126. package/vscode/src/vs/workbench/contrib/comments/browser/media/review.css.js +6 -0
  127. package/vscode/src/vs/workbench/contrib/comments/browser/reactionsAction.js +101 -0
  128. package/vscode/src/vs/workbench/contrib/comments/browser/timestamp.js +57 -0
  129. package/vscode/src/vs/workbench/contrib/comments/common/commentModel.js +145 -0
  130. package/vscode/src/vs/workbench/contrib/comments/common/commentsConfiguration.js +3 -0
  131. package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +73 -0
  132. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +83 -0
  133. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveEditorInput.js +179 -0
  134. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveHistoryService.js +5 -0
  135. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +144 -0
  136. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +482 -0
  137. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeMarkers/mergeMarkersController.js +6 -0
  138. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/diffComputer.js +85 -0
  139. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/editing.js +56 -0
  140. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/lineRange.js +110 -0
  141. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mapping.js +260 -0
  142. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +616 -0
  143. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/modifiedBaseRange.js +309 -0
  144. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/rangeUtils.js +38 -0
  145. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/textModelDiffs.js +167 -0
  146. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/telemetry.js +80 -0
  147. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/utils.js +70 -0
  148. package/vscode/src/vs/workbench/contrib/mergeEditor/common/mergeEditor.js +3 -0
  149. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModel.js +108 -0
  150. package/vscode/src/vs/workbench/contrib/tasks/common/tasks.js +506 -0
  151. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.js +132 -0
  152. package/vscode/src/vs/workbench/contrib/testing/common/getComputedState.js +103 -0
  153. package/vscode/src/vs/workbench/contrib/testing/common/observableValue.js +28 -0
  154. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +25 -0
  155. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +336 -0
  156. package/vscode/src/vs/workbench/contrib/testing/common/testingStates.js +46 -0
  157. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +283 -0
  158. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +273 -0
  159. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +52 -0
  160. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +1093 -0
  161. package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.js +41 -0
  162. package/vscode/src/vs/workbench/services/extensions/common/extensionDevOptions.js +25 -0
  163. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +643 -0
  164. package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +274 -0
  165. package/vscode/src/vs/workbench/services/extensions/common/extensionStorageMigration.js +58 -0
  166. package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +80 -0
  167. package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +64 -0
  168. package/vscode/src/vs/workbench/services/extensions/common/remoteConsoleUtil.js +49 -0
  169. package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +220 -0
  170. package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +5 -0
  171. package/vscode/src/vs/workbench/services/workingCopy/common/resourceWorkingCopy.js +79 -0
  172. package/vscode-proposed.d.ts +0 -3872
  173. /package/{dist/main/vscode → vscode}/src/vs/workbench/api/common/extHost.protocol.d.ts +0 -0
  174. /package/{dist/main/vscode → vscode}/src/vs/workbench/api/common/extHostExtensionActivator.d.ts +0 -0
  175. /package/{dist/main/vscode → vscode}/src/vs/workbench/api/common/extHostFileSystemInfo.d.ts +0 -0
  176. /package/{dist/main/vscode → vscode}/src/vs/workbench/api/common/extHostInitDataService.d.ts +0 -0
  177. /package/{dist/main/vscode → vscode}/src/vs/workbench/api/common/extHostLocalizationService.d.ts +0 -0
  178. /package/{dist/main/vscode → vscode}/src/vs/workbench/api/common/extHostRpcService.d.ts +0 -0
  179. /package/{dist/main/vscode → vscode}/src/vs/workbench/api/common/extHostStoragePaths.d.ts +0 -0
  180. /package/{dist/main/vscode → vscode}/src/vs/workbench/api/common/extHostTypes.d.ts +0 -0
  181. /package/{dist/main/vscode → vscode}/src/vs/workbench/api/common/extHostUriTransformerService.d.ts +0 -0
  182. /package/{dist/main/vscode → vscode}/src/vs/workbench/api/worker/extHostExtensionService.d.ts +0 -0
  183. /package/{dist/main/vscode → vscode}/src/vs/workbench/services/search/common/queryBuilder.d.ts +0 -0
@@ -0,0 +1,55 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { Emitter } from 'monaco-editor/esm/vs/base/common/event.js';
3
+ import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
4
+ import { MainContext, ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
5
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
6
+ import { ITimelineService } from 'vscode/vscode/vs/workbench/contrib/timeline/common/timeline';
7
+ import { revive } from 'monaco-editor/esm/vs/base/common/marshalling.js';
8
+
9
+ let MainThreadTimeline = class MainThreadTimeline {
10
+ constructor(context, logService, _timelineService) {
11
+ this.logService = logService;
12
+ this._timelineService = _timelineService;
13
+ this._providerEmitters = ( new Map());
14
+ this._proxy = ( context.getProxy(ExtHostContext.ExtHostTimeline));
15
+ }
16
+ $registerTimelineProvider(provider) {
17
+ this.logService.trace(`MainThreadTimeline#registerTimelineProvider: id=${provider.id}`);
18
+ const proxy = this._proxy;
19
+ const emitters = this._providerEmitters;
20
+ let onDidChange = emitters.get(provider.id);
21
+ if (onDidChange === undefined) {
22
+ onDidChange = ( new Emitter());
23
+ emitters.set(provider.id, onDidChange);
24
+ }
25
+ this._timelineService.registerTimelineProvider({
26
+ ...provider,
27
+ onDidChange: onDidChange.event,
28
+ async provideTimeline(uri, options, token) {
29
+ return revive(await proxy.$getTimeline(provider.id, uri, options, token));
30
+ },
31
+ dispose() {
32
+ emitters.delete(provider.id);
33
+ onDidChange?.dispose();
34
+ }
35
+ });
36
+ }
37
+ $unregisterTimelineProvider(id) {
38
+ this.logService.trace(`MainThreadTimeline#unregisterTimelineProvider: id=${id}`);
39
+ this._timelineService.unregisterTimelineProvider(id);
40
+ }
41
+ $emitTimelineChangeEvent(e) {
42
+ this.logService.trace(`MainThreadTimeline#emitChangeEvent: id=${e.id}, uri=${e.uri?.toString(true)}`);
43
+ const emitter = this._providerEmitters.get(e.id);
44
+ emitter?.fire(e);
45
+ }
46
+ dispose() {
47
+ }
48
+ };
49
+ MainThreadTimeline = __decorate([
50
+ extHostNamedCustomer(MainContext.MainThreadTimeline),
51
+ ( __param(1, ILogService)),
52
+ ( __param(2, ITimelineService))
53
+ ], MainThreadTimeline);
54
+
55
+ export { MainThreadTimeline };
@@ -0,0 +1,313 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { Disposable, DisposableStore } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
3
+ import { MainContext, ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
4
+ import { IViewsService, Extensions, NoTreeViewError, ResolvableTreeItem } from 'vscode/vscode/vs/workbench/common/views';
5
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
6
+ import { distinct } from 'monaco-editor/esm/vs/base/common/arrays.js';
7
+ import { INotificationService } from 'monaco-editor/esm/vs/platform/notification/common/notification.js';
8
+ import { isUndefinedOrNull, isNumber } from 'monaco-editor/esm/vs/base/common/types.js';
9
+ import { Registry } from 'monaco-editor/esm/vs/platform/registry/common/platform.js';
10
+ import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
11
+ import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
12
+ import { VSDataTransfer, createStringDataTransferItem } from 'monaco-editor/esm/vs/base/common/dataTransfer.js';
13
+ import { DataTransferFileCache } from '../common/shared/dataTransferCache.js';
14
+ import { DataTransfer } from 'vscode/vscode/vs/workbench/api/common/extHostTypeConverters';
15
+
16
+ let MainThreadTreeViews = class MainThreadTreeViews extends Disposable {
17
+ constructor(extHostContext, viewsService, notificationService, extensionService, logService) {
18
+ super();
19
+ this.viewsService = viewsService;
20
+ this.notificationService = notificationService;
21
+ this.extensionService = extensionService;
22
+ this.logService = logService;
23
+ this._dataProviders = ( new Map());
24
+ this._dndControllers = ( new Map());
25
+ this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostTreeViews));
26
+ }
27
+ async $registerTreeViewDataProvider(treeViewId, options) {
28
+ this.logService.trace('MainThreadTreeViews#$registerTreeViewDataProvider', treeViewId, options);
29
+ this.extensionService.whenInstalledExtensionsRegistered().then(() => {
30
+ const dataProvider = ( new TreeViewDataProvider(treeViewId, this._proxy, this.notificationService));
31
+ const disposables = ( new DisposableStore());
32
+ this._register(disposables);
33
+ this._dataProviders.set(treeViewId, { dataProvider, disposables });
34
+ const dndController = (options.hasHandleDrag || options.hasHandleDrop)
35
+ ? ( new TreeViewDragAndDropController(
36
+ treeViewId,
37
+ options.dropMimeTypes,
38
+ options.dragMimeTypes,
39
+ options.hasHandleDrag,
40
+ this._proxy
41
+ )) : undefined;
42
+ const viewer = this.getTreeView(treeViewId);
43
+ if (viewer) {
44
+ viewer.showCollapseAllAction = options.showCollapseAll;
45
+ viewer.canSelectMany = options.canSelectMany;
46
+ viewer.manuallyManageCheckboxes = options.manuallyManageCheckboxes;
47
+ viewer.dragAndDropController = dndController;
48
+ if (dndController) {
49
+ this._dndControllers.set(treeViewId, dndController);
50
+ }
51
+ viewer.dataProvider = dataProvider;
52
+ this.registerListeners(treeViewId, viewer, disposables);
53
+ this._proxy.$setVisible(treeViewId, viewer.visible);
54
+ }
55
+ else {
56
+ this.notificationService.error('No view is registered with id: ' + treeViewId);
57
+ }
58
+ });
59
+ }
60
+ $reveal(treeViewId, itemInfo, options) {
61
+ this.logService.trace('MainThreadTreeViews#$reveal', treeViewId, itemInfo?.item, itemInfo?.parentChain, options);
62
+ return this.viewsService.openView(treeViewId, options.focus)
63
+ .then(() => {
64
+ const viewer = this.getTreeView(treeViewId);
65
+ if (viewer && itemInfo) {
66
+ return this.reveal(viewer, this._dataProviders.get(treeViewId).dataProvider, itemInfo.item, itemInfo.parentChain, options);
67
+ }
68
+ return undefined;
69
+ });
70
+ }
71
+ $refresh(treeViewId, itemsToRefreshByHandle) {
72
+ this.logService.trace('MainThreadTreeViews#$refresh', treeViewId, itemsToRefreshByHandle);
73
+ const viewer = this.getTreeView(treeViewId);
74
+ const dataProvider = this._dataProviders.get(treeViewId);
75
+ if (viewer && dataProvider) {
76
+ const itemsToRefresh = dataProvider.dataProvider.getItemsToRefresh(itemsToRefreshByHandle);
77
+ return viewer.refresh(itemsToRefresh.length ? itemsToRefresh : undefined);
78
+ }
79
+ return Promise.resolve();
80
+ }
81
+ $setMessage(treeViewId, message) {
82
+ this.logService.trace('MainThreadTreeViews#$setMessage', treeViewId, ( message.toString()));
83
+ const viewer = this.getTreeView(treeViewId);
84
+ if (viewer) {
85
+ viewer.message = message;
86
+ }
87
+ }
88
+ $setTitle(treeViewId, title, description) {
89
+ this.logService.trace('MainThreadTreeViews#$setTitle', treeViewId, title, description);
90
+ const viewer = this.getTreeView(treeViewId);
91
+ if (viewer) {
92
+ viewer.title = title;
93
+ viewer.description = description;
94
+ }
95
+ }
96
+ $setBadge(treeViewId, badge) {
97
+ this.logService.trace('MainThreadTreeViews#$setBadge', treeViewId, badge?.value, badge?.tooltip);
98
+ const viewer = this.getTreeView(treeViewId);
99
+ if (viewer) {
100
+ viewer.badge = badge;
101
+ }
102
+ }
103
+ $resolveDropFileData(destinationViewId, requestId, dataItemId) {
104
+ const controller = this._dndControllers.get(destinationViewId);
105
+ if (!controller) {
106
+ throw new Error('Unknown tree');
107
+ }
108
+ return controller.resolveDropFileData(requestId, dataItemId);
109
+ }
110
+ async $disposeTree(treeViewId) {
111
+ const viewer = this.getTreeView(treeViewId);
112
+ if (viewer) {
113
+ viewer.dataProvider = undefined;
114
+ }
115
+ const dataProvider = this._dataProviders.get(treeViewId);
116
+ if (dataProvider) {
117
+ dataProvider.disposables.dispose();
118
+ this._dataProviders.delete(treeViewId);
119
+ }
120
+ }
121
+ async reveal(treeView, dataProvider, itemIn, parentChain, options) {
122
+ options = options ? options : { select: false, focus: false };
123
+ const select = isUndefinedOrNull(options.select) ? false : options.select;
124
+ const focus = isUndefinedOrNull(options.focus) ? false : options.focus;
125
+ let expand = Math.min(isNumber(options.expand) ? options.expand : options.expand === true ? 1 : 0, 3);
126
+ if (dataProvider.isEmpty()) {
127
+ await treeView.refresh();
128
+ }
129
+ for (const parent of parentChain) {
130
+ const parentItem = dataProvider.getItem(parent.handle);
131
+ if (parentItem) {
132
+ await treeView.expand(parentItem);
133
+ }
134
+ }
135
+ const item = dataProvider.getItem(itemIn.handle);
136
+ if (item) {
137
+ await treeView.reveal(item);
138
+ if (select) {
139
+ treeView.setSelection([item]);
140
+ }
141
+ if (focus === false) {
142
+ treeView.setFocus();
143
+ }
144
+ else if (focus) {
145
+ treeView.setFocus(item);
146
+ }
147
+ let itemsToExpand = [item];
148
+ for (; itemsToExpand.length > 0 && expand > 0; expand--) {
149
+ await treeView.expand(itemsToExpand);
150
+ itemsToExpand = itemsToExpand.reduce((result, itemValue) => {
151
+ const item = dataProvider.getItem(itemValue.handle);
152
+ if (item && item.children && item.children.length) {
153
+ result.push(...item.children);
154
+ }
155
+ return result;
156
+ }, []);
157
+ }
158
+ }
159
+ }
160
+ registerListeners(treeViewId, treeView, disposables) {
161
+ disposables.add(treeView.onDidExpandItem(item => this._proxy.$setExpanded(treeViewId, item.handle, true)));
162
+ disposables.add(treeView.onDidCollapseItem(item => this._proxy.$setExpanded(treeViewId, item.handle, false)));
163
+ disposables.add(treeView.onDidChangeSelectionAndFocus(items => this._proxy.$setSelectionAndFocus(treeViewId, ( items.selection.map(({ handle }) => handle)), items.focus.handle)));
164
+ disposables.add(treeView.onDidChangeVisibility(isVisible => this._proxy.$setVisible(treeViewId, isVisible)));
165
+ disposables.add(treeView.onDidChangeCheckboxState(items => {
166
+ this._proxy.$changeCheckboxState(treeViewId, ( items.map(item => {
167
+ return { treeItemHandle: item.handle, newState: item.checkbox?.isChecked ?? false };
168
+ })));
169
+ }));
170
+ }
171
+ getTreeView(treeViewId) {
172
+ const viewDescriptor = ( Registry.as(Extensions.ViewsRegistry)).getView(treeViewId);
173
+ return viewDescriptor ? viewDescriptor.treeView : null;
174
+ }
175
+ dispose() {
176
+ this._dataProviders.forEach((dataProvider, treeViewId) => {
177
+ const treeView = this.getTreeView(treeViewId);
178
+ if (treeView) {
179
+ treeView.dataProvider = undefined;
180
+ }
181
+ });
182
+ this._dataProviders.clear();
183
+ this._dndControllers.clear();
184
+ super.dispose();
185
+ }
186
+ };
187
+ MainThreadTreeViews = __decorate([
188
+ extHostNamedCustomer(MainContext.MainThreadTreeViews),
189
+ ( __param(1, IViewsService)),
190
+ ( __param(2, INotificationService)),
191
+ ( __param(3, IExtensionService)),
192
+ ( __param(4, ILogService))
193
+ ], MainThreadTreeViews);
194
+ class TreeViewDragAndDropController {
195
+ constructor(treeViewId, dropMimeTypes, dragMimeTypes, hasWillDrop, _proxy) {
196
+ this.treeViewId = treeViewId;
197
+ this.dropMimeTypes = dropMimeTypes;
198
+ this.dragMimeTypes = dragMimeTypes;
199
+ this.hasWillDrop = hasWillDrop;
200
+ this._proxy = _proxy;
201
+ this.dataTransfersCache = ( new DataTransferFileCache());
202
+ }
203
+ async handleDrop(dataTransfer, targetTreeItem, token, operationUuid, sourceTreeId, sourceTreeItemHandles) {
204
+ const request = this.dataTransfersCache.add(dataTransfer);
205
+ try {
206
+ const dataTransferDto = await DataTransfer.from(dataTransfer);
207
+ if (token.isCancellationRequested) {
208
+ return;
209
+ }
210
+ return await this._proxy.$handleDrop(this.treeViewId, request.id, dataTransferDto, targetTreeItem?.handle, token, operationUuid, sourceTreeId, sourceTreeItemHandles);
211
+ }
212
+ finally {
213
+ request.dispose();
214
+ }
215
+ }
216
+ async handleDrag(sourceTreeItemHandles, operationUuid, token) {
217
+ if (!this.hasWillDrop) {
218
+ return;
219
+ }
220
+ const additionalDataTransferDTO = await this._proxy.$handleDrag(this.treeViewId, sourceTreeItemHandles, operationUuid, token);
221
+ if (!additionalDataTransferDTO) {
222
+ return;
223
+ }
224
+ const additionalDataTransfer = ( new VSDataTransfer());
225
+ additionalDataTransferDTO.items.forEach(([type, item]) => {
226
+ additionalDataTransfer.replace(type, createStringDataTransferItem(item.asString));
227
+ });
228
+ return additionalDataTransfer;
229
+ }
230
+ resolveDropFileData(requestId, dataItemId) {
231
+ return this.dataTransfersCache.resolveFileData(requestId, dataItemId);
232
+ }
233
+ }
234
+ class TreeViewDataProvider {
235
+ constructor(treeViewId, _proxy, notificationService) {
236
+ this.treeViewId = treeViewId;
237
+ this._proxy = _proxy;
238
+ this.notificationService = notificationService;
239
+ this.itemsMap = ( new Map());
240
+ this.hasResolve = this._proxy.$hasResolve(this.treeViewId);
241
+ }
242
+ getChildren(treeItem) {
243
+ return this._proxy.$getChildren(this.treeViewId, treeItem ? treeItem.handle : undefined)
244
+ .then(children => this.postGetChildren(children), err => {
245
+ if (!NoTreeViewError.is(err)) {
246
+ this.notificationService.error(err);
247
+ }
248
+ return [];
249
+ });
250
+ }
251
+ getItemsToRefresh(itemsToRefreshByHandle) {
252
+ const itemsToRefresh = [];
253
+ if (itemsToRefreshByHandle) {
254
+ for (const treeItemHandle of ( Object.keys(itemsToRefreshByHandle))) {
255
+ const currentTreeItem = this.getItem(treeItemHandle);
256
+ if (currentTreeItem) {
257
+ const treeItem = itemsToRefreshByHandle[treeItemHandle];
258
+ this.updateTreeItem(currentTreeItem, treeItem);
259
+ if (treeItemHandle === treeItem.handle) {
260
+ itemsToRefresh.push(currentTreeItem);
261
+ }
262
+ else {
263
+ this.itemsMap.delete(treeItemHandle);
264
+ this.itemsMap.set(currentTreeItem.handle, currentTreeItem);
265
+ const parent = treeItem.parentHandle ? this.itemsMap.get(treeItem.parentHandle) : null;
266
+ if (parent) {
267
+ itemsToRefresh.push(parent);
268
+ }
269
+ }
270
+ }
271
+ }
272
+ }
273
+ return itemsToRefresh;
274
+ }
275
+ getItem(treeItemHandle) {
276
+ return this.itemsMap.get(treeItemHandle);
277
+ }
278
+ isEmpty() {
279
+ return this.itemsMap.size === 0;
280
+ }
281
+ async postGetChildren(elements) {
282
+ if (elements === undefined) {
283
+ return undefined;
284
+ }
285
+ const result = [];
286
+ const hasResolve = await this.hasResolve;
287
+ if (elements) {
288
+ for (const element of elements) {
289
+ const resolvable = ( new ResolvableTreeItem(element, hasResolve ? (token) => {
290
+ return this._proxy.$resolve(this.treeViewId, element.handle, token);
291
+ } : undefined));
292
+ this.itemsMap.set(element.handle, resolvable);
293
+ result.push(resolvable);
294
+ }
295
+ }
296
+ return result;
297
+ }
298
+ updateTreeItem(current, treeItem) {
299
+ treeItem.children = treeItem.children ? treeItem.children : undefined;
300
+ if (current) {
301
+ const properties = distinct([...( Object.keys(current instanceof ResolvableTreeItem ? current.asTreeItem() : current)),
302
+ ...( Object.keys(treeItem))]);
303
+ for (const property of properties) {
304
+ current[property] = treeItem[property];
305
+ }
306
+ if (current instanceof ResolvableTreeItem) {
307
+ current.resetResolve();
308
+ }
309
+ }
310
+ }
311
+ }
312
+
313
+ export { MainThreadTreeViews };
@@ -0,0 +1,223 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import * as nls from 'monaco-editor/esm/vs/nls.js';
3
+ import { MainContext, ExtHostContext, CandidatePortSource } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
4
+ import { TunnelDtoConverter } from 'vscode/vscode/vs/workbench/api/common/extHostTunnelService';
5
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
6
+ import { IRemoteExplorerService, PORT_AUTO_FORWARD_SETTING, PORT_AUTO_SOURCE_SETTING, PORT_AUTO_SOURCE_SETTING_OUTPUT } from 'vscode/vscode/vs/workbench/services/remote/common/remoteExplorerService';
7
+ import { ITunnelService, TunnelProtocol } from 'vscode/vscode/vs/platform/tunnel/common/tunnel';
8
+ import { Disposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
9
+ import { INotificationService, Severity } from 'monaco-editor/esm/vs/platform/notification/common/notification.js';
10
+ import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
11
+ import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
12
+ import { IRemoteAgentService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteAgentService';
13
+ import { Registry } from 'monaco-editor/esm/vs/platform/registry/common/platform.js';
14
+ import { Extensions } from 'monaco-editor/esm/vs/platform/configuration/common/configurationRegistry.js';
15
+ import { IContextKeyService } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkey.js';
16
+ import { TunnelSource, TunnelCloseReason, forwardedPortsViewEnabled, makeAddress } from 'vscode/vscode/vs/workbench/services/remote/common/tunnelModel';
17
+
18
+ let MainThreadTunnelService = class MainThreadTunnelService extends Disposable {
19
+ constructor(extHostContext, remoteExplorerService, tunnelService, notificationService, configurationService, logService, remoteAgentService, contextKeyService) {
20
+ super();
21
+ this.remoteExplorerService = remoteExplorerService;
22
+ this.tunnelService = tunnelService;
23
+ this.notificationService = notificationService;
24
+ this.configurationService = configurationService;
25
+ this.logService = logService;
26
+ this.remoteAgentService = remoteAgentService;
27
+ this.contextKeyService = contextKeyService;
28
+ this.elevateionRetry = false;
29
+ this.portsAttributesProviders = ( new Map());
30
+ this._alreadyRegistered = false;
31
+ this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostTunnelService));
32
+ this._register(tunnelService.onTunnelOpened(() => this._proxy.$onDidTunnelsChange()));
33
+ this._register(tunnelService.onTunnelClosed(() => this._proxy.$onDidTunnelsChange()));
34
+ }
35
+ processFindingEnabled() {
36
+ return (!!this.configurationService.getValue(PORT_AUTO_FORWARD_SETTING) || this.tunnelService.hasTunnelProvider)
37
+ && (this.configurationService.getValue(PORT_AUTO_SOURCE_SETTING) !== PORT_AUTO_SOURCE_SETTING_OUTPUT);
38
+ }
39
+ async $setRemoteTunnelService(processId) {
40
+ this.remoteExplorerService.namedProcesses.set(processId, 'Code Extension Host');
41
+ if (this.remoteExplorerService.portsFeaturesEnabled) {
42
+ this._proxy.$registerCandidateFinder(this.processFindingEnabled());
43
+ }
44
+ else {
45
+ this._register(this.remoteExplorerService.onEnabledPortsFeatures(() => this._proxy.$registerCandidateFinder(this.configurationService.getValue(PORT_AUTO_FORWARD_SETTING))));
46
+ }
47
+ this._register(this.configurationService.onDidChangeConfiguration(async (e) => {
48
+ if (e.affectsConfiguration(PORT_AUTO_FORWARD_SETTING) || e.affectsConfiguration(PORT_AUTO_SOURCE_SETTING)) {
49
+ return this._proxy.$registerCandidateFinder(this.processFindingEnabled());
50
+ }
51
+ }));
52
+ this._register(this.tunnelService.onAddedTunnelProvider(() => {
53
+ return this._proxy.$registerCandidateFinder(this.processFindingEnabled());
54
+ }));
55
+ }
56
+ async $registerPortsAttributesProvider(selector, providerHandle) {
57
+ this.portsAttributesProviders.set(providerHandle, selector);
58
+ if (!this._alreadyRegistered) {
59
+ this.remoteExplorerService.tunnelModel.addAttributesProvider(this);
60
+ this._alreadyRegistered = true;
61
+ }
62
+ }
63
+ async $unregisterPortsAttributesProvider(providerHandle) {
64
+ this.portsAttributesProviders.delete(providerHandle);
65
+ }
66
+ async providePortAttributes(ports, pid, commandLine, token) {
67
+ if (this.portsAttributesProviders.size === 0) {
68
+ return [];
69
+ }
70
+ const appropriateHandles = ( Array.from(this.portsAttributesProviders.entries()).filter(entry => {
71
+ const selector = entry[1];
72
+ const portRange = (typeof selector.portRange === 'number') ? [selector.portRange, selector.portRange + 1] : selector.portRange;
73
+ const portInRange = portRange ? ( ports.some(port => portRange[0] <= port && port < portRange[1])) : true;
74
+ const commandMatches = !selector.commandPattern || (commandLine && (commandLine.match(selector.commandPattern)));
75
+ return portInRange && commandMatches;
76
+ }).map(entry => entry[0]));
77
+ if (appropriateHandles.length === 0) {
78
+ return [];
79
+ }
80
+ return this._proxy.$providePortAttributes(appropriateHandles, ports, pid, commandLine, token);
81
+ }
82
+ async $openTunnel(tunnelOptions, source) {
83
+ const tunnel = await this.remoteExplorerService.forward({
84
+ remote: tunnelOptions.remoteAddress,
85
+ local: tunnelOptions.localAddressPort,
86
+ name: tunnelOptions.label,
87
+ source: {
88
+ source: TunnelSource.Extension,
89
+ description: source
90
+ },
91
+ elevateIfNeeded: false
92
+ });
93
+ if (!tunnel || (typeof tunnel === 'string')) {
94
+ return undefined;
95
+ }
96
+ if (!this.elevateionRetry
97
+ && (tunnelOptions.localAddressPort !== undefined)
98
+ && (tunnel.tunnelLocalPort !== undefined)
99
+ && this.tunnelService.isPortPrivileged(tunnelOptions.localAddressPort)
100
+ && (tunnel.tunnelLocalPort !== tunnelOptions.localAddressPort)
101
+ && this.tunnelService.canElevate) {
102
+ this.elevationPrompt(tunnelOptions, tunnel, source);
103
+ }
104
+ return TunnelDtoConverter.fromServiceTunnel(tunnel);
105
+ }
106
+ async elevationPrompt(tunnelOptions, tunnel, source) {
107
+ return this.notificationService.prompt(Severity.Info, ( nls.localizeWithPath(
108
+ 'vs/workbench/api/browser/mainThreadTunnelService',
109
+ 'remote.tunnel.openTunnel',
110
+ "The extension {0} has forwarded port {1}. You'll need to run as superuser to use port {2} locally.",
111
+ source,
112
+ tunnelOptions.remoteAddress.port,
113
+ tunnelOptions.localAddressPort
114
+ )), [{
115
+ label: ( nls.localizeWithPath(
116
+ 'vs/workbench/api/browser/mainThreadTunnelService',
117
+ 'remote.tunnelsView.elevationButton',
118
+ "Use Port {0} as Sudo...",
119
+ tunnel.tunnelRemotePort
120
+ )),
121
+ run: async () => {
122
+ this.elevateionRetry = true;
123
+ await this.remoteExplorerService.close({ host: tunnel.tunnelRemoteHost, port: tunnel.tunnelRemotePort }, TunnelCloseReason.Other);
124
+ await this.remoteExplorerService.forward({
125
+ remote: tunnelOptions.remoteAddress,
126
+ local: tunnelOptions.localAddressPort,
127
+ name: tunnelOptions.label,
128
+ source: {
129
+ source: TunnelSource.Extension,
130
+ description: source
131
+ },
132
+ elevateIfNeeded: true
133
+ });
134
+ this.elevateionRetry = false;
135
+ }
136
+ }]);
137
+ }
138
+ async $closeTunnel(remote) {
139
+ return this.remoteExplorerService.close(remote, TunnelCloseReason.Other);
140
+ }
141
+ async $getTunnels() {
142
+ return ( (await this.tunnelService.tunnels).map(tunnel => {
143
+ return {
144
+ remoteAddress: { port: tunnel.tunnelRemotePort, host: tunnel.tunnelRemoteHost },
145
+ localAddress: tunnel.localAddress,
146
+ privacy: tunnel.privacy,
147
+ protocol: tunnel.protocol
148
+ };
149
+ }));
150
+ }
151
+ async $onFoundNewCandidates(candidates) {
152
+ this.remoteExplorerService.onFoundNewCandidates(candidates);
153
+ }
154
+ async $setTunnelProvider(features) {
155
+ const tunnelProvider = {
156
+ forwardPort: (tunnelOptions, tunnelCreationOptions) => {
157
+ const forward = this._proxy.$forwardPort(tunnelOptions, tunnelCreationOptions);
158
+ return forward.then(tunnelOrError => {
159
+ if (!tunnelOrError) {
160
+ return undefined;
161
+ }
162
+ else if (typeof tunnelOrError === 'string') {
163
+ return tunnelOrError;
164
+ }
165
+ const tunnel = tunnelOrError;
166
+ this.logService.trace(`ForwardedPorts: (MainThreadTunnelService) New tunnel established by tunnel provider: ${tunnel?.remoteAddress.host}:${tunnel?.remoteAddress.port}`);
167
+ return {
168
+ tunnelRemotePort: tunnel.remoteAddress.port,
169
+ tunnelRemoteHost: tunnel.remoteAddress.host,
170
+ localAddress: typeof tunnel.localAddress === 'string' ? tunnel.localAddress : makeAddress(tunnel.localAddress.host, tunnel.localAddress.port),
171
+ tunnelLocalPort: typeof tunnel.localAddress !== 'string' ? tunnel.localAddress.port : undefined,
172
+ public: tunnel.public,
173
+ privacy: tunnel.privacy,
174
+ protocol: tunnel.protocol ?? TunnelProtocol.Http,
175
+ dispose: async (silent) => {
176
+ this.logService.trace(`ForwardedPorts: (MainThreadTunnelService) Closing tunnel from tunnel provider: ${tunnel?.remoteAddress.host}:${tunnel?.remoteAddress.port}`);
177
+ return this._proxy.$closeTunnel({ host: tunnel.remoteAddress.host, port: tunnel.remoteAddress.port }, silent);
178
+ }
179
+ };
180
+ });
181
+ }
182
+ };
183
+ if (features) {
184
+ this.tunnelService.setTunnelFeatures(features);
185
+ }
186
+ this.tunnelService.setTunnelProvider(tunnelProvider);
187
+ this.contextKeyService.createKey(forwardedPortsViewEnabled.key, true);
188
+ }
189
+ async $setCandidateFilter() {
190
+ this.remoteExplorerService.setCandidateFilter((candidates) => {
191
+ return this._proxy.$applyCandidateFilter(candidates);
192
+ });
193
+ }
194
+ async $setCandidatePortSource(source) {
195
+ this.remoteAgentService.getEnvironment().then(() => {
196
+ switch (source) {
197
+ case CandidatePortSource.None: {
198
+ ( Registry.as(Extensions.Configuration))
199
+ .registerDefaultConfigurations([{ overrides: { 'remote.autoForwardPorts': false } }]);
200
+ break;
201
+ }
202
+ case CandidatePortSource.Output: {
203
+ ( Registry.as(Extensions.Configuration))
204
+ .registerDefaultConfigurations([{ overrides: { 'remote.autoForwardPortsSource': PORT_AUTO_SOURCE_SETTING_OUTPUT } }]);
205
+ break;
206
+ }
207
+ }
208
+ }).catch(() => {
209
+ });
210
+ }
211
+ };
212
+ MainThreadTunnelService = __decorate([
213
+ extHostNamedCustomer(MainContext.MainThreadTunnelService),
214
+ ( __param(1, IRemoteExplorerService)),
215
+ ( __param(2, ITunnelService)),
216
+ ( __param(3, INotificationService)),
217
+ ( __param(4, IConfigurationService)),
218
+ ( __param(5, ILogService)),
219
+ ( __param(6, IRemoteAgentService)),
220
+ ( __param(7, IContextKeyService))
221
+ ], MainThreadTunnelService);
222
+
223
+ export { MainThreadTunnelService };