@codingame/monaco-vscode-extensions-service-override 4.1.0 → 4.1.1

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 (109) hide show
  1. package/_virtual/semver.js +3 -0
  2. package/extensions.js +6 -6
  3. package/external/vscode-semver/semver.js +985 -0
  4. package/override/vs/workbench/browser/parts/editor/textEditor.weak.js +8 -0
  5. package/package.json +9 -9
  6. package/vscode/src/vs/base/common/console.js +62 -0
  7. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +497 -0
  8. package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +44 -0
  9. package/vscode/src/vs/platform/lifecycle/common/lifecycle.js +27 -0
  10. package/vscode/src/vs/platform/remote/common/managedSocket.js +98 -0
  11. package/vscode/src/vs/workbench/api/browser/extensionHost.contribution.js +104 -0
  12. package/vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js +31 -0
  13. package/vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.js +35 -0
  14. package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +254 -0
  15. package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +68 -0
  16. package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +103 -0
  17. package/vscode/src/vs/workbench/api/browser/mainThreadChat.js +70 -0
  18. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +207 -0
  19. package/vscode/src/vs/workbench/api/browser/mainThreadChatVariables.js +41 -0
  20. package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +24 -0
  21. package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +108 -0
  22. package/vscode/src/vs/workbench/api/browser/mainThreadCommands.js +98 -0
  23. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +560 -0
  24. package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +80 -0
  25. package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +35 -0
  26. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +579 -0
  27. package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +435 -0
  28. package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +102 -0
  29. package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js +69 -0
  30. package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.js +68 -0
  31. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +79 -0
  32. package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +253 -0
  33. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +370 -0
  34. package/vscode/src/vs/workbench/api/browser/mainThreadDownloadService.js +22 -0
  35. package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +41 -0
  36. package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +414 -0
  37. package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +501 -0
  38. package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +227 -0
  39. package/vscode/src/vs/workbench/api/browser/mainThreadErrors.js +24 -0
  40. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +317 -0
  41. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +208 -0
  42. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +369 -0
  43. package/vscode/src/vs/workbench/api/browser/mainThreadInlineChat.js +72 -0
  44. package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.js +28 -0
  45. package/vscode/src/vs/workbench/api/browser/mainThreadIssueReporter.js +50 -0
  46. package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.js +27 -0
  47. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +1016 -0
  48. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +185 -0
  49. package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.js +78 -0
  50. package/vscode/src/vs/workbench/api/browser/mainThreadLocalization.js +35 -0
  51. package/vscode/src/vs/workbench/api/browser/mainThreadLogService.js +78 -0
  52. package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +93 -0
  53. package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +137 -0
  54. package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.js +194 -0
  55. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocuments.js +123 -0
  56. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js +188 -0
  57. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +129 -0
  58. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.js +131 -0
  59. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.js +374 -0
  60. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookRenderers.js +25 -0
  61. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +48 -0
  62. package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +76 -0
  63. package/vscode/src/vs/workbench/api/browser/mainThreadProfileContentHandlers.js +38 -0
  64. package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +68 -0
  65. package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +42 -0
  66. package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js +185 -0
  67. package/vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.js +30 -0
  68. package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +493 -0
  69. package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +49 -0
  70. package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +168 -0
  71. package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +70 -0
  72. package/vscode/src/vs/workbench/api/browser/mainThreadShare.js +50 -0
  73. package/vscode/src/vs/workbench/api/browser/mainThreadSpeech.js +99 -0
  74. package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +53 -0
  75. package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +72 -0
  76. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +731 -0
  77. package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +53 -0
  78. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +409 -0
  79. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.js +51 -0
  80. package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +219 -0
  81. package/vscode/src/vs/workbench/api/browser/mainThreadTheming.js +24 -0
  82. package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.js +55 -0
  83. package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +312 -0
  84. package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +223 -0
  85. package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +110 -0
  86. package/vscode/src/vs/workbench/api/browser/mainThreadUrls.js +61 -0
  87. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +29 -0
  88. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +283 -0
  89. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.js +100 -0
  90. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +135 -0
  91. package/vscode/src/vs/workbench/api/browser/mainThreadWindow.js +57 -0
  92. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +268 -0
  93. package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.js +35 -0
  94. package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +76 -0
  95. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +83 -0
  96. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +285 -0
  97. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +276 -0
  98. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +52 -0
  99. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +1149 -0
  100. package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.js +41 -0
  101. package/vscode/src/vs/workbench/services/extensions/common/extensionDevOptions.js +25 -0
  102. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +512 -0
  103. package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +274 -0
  104. package/vscode/src/vs/workbench/services/extensions/common/extensionStorageMigration.js +58 -0
  105. package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +80 -0
  106. package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +64 -0
  107. package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +161 -0
  108. package/vscode/src/vs/workbench/services/extensions/common/remoteConsoleUtil.js +49 -0
  109. package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +222 -0
@@ -0,0 +1,185 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { coalesce } from 'vscode/vscode/vs/base/common/arrays';
3
+ import { Event, Emitter } from 'vscode/vscode/vs/base/common/event';
4
+ import { DisposableStore, DisposableMap, Disposable, toDisposable } from 'vscode/vscode/vs/base/common/lifecycle';
5
+ import { localizeWithPath } from 'vscode/vscode/vs/nls';
6
+ import { ILogService } from 'vscode/vscode/vs/platform/log/common/log';
7
+ import { Progress } from 'vscode/vscode/vs/platform/progress/common/progress';
8
+ import { Registry } from 'vscode/vscode/vs/platform/registry/common/platform';
9
+ import { MainContext, ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
10
+ import { ILanguageModelsService } from 'vscode/vscode/vs/workbench/contrib/chat/common/languageModels';
11
+ import { IAuthenticationAccessService } from 'vscode/vscode/vs/workbench/services/authentication/browser/authenticationAccessService';
12
+ import { IAuthenticationService, INTERNAL_AUTH_PROVIDER_PREFIX } from 'vscode/vscode/vs/workbench/services/authentication/common/authentication';
13
+ import { IExtensionFeaturesManagementService, Extensions } from 'vscode/vscode/vs/workbench/services/extensionManagement/common/extensionFeatures';
14
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
15
+ import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
16
+
17
+ let MainThreadLanguageModels = class MainThreadLanguageModels {
18
+ constructor(extHostContext, _chatProviderService, _extensionFeaturesManagementService, _logService, _authenticationService, _authenticationAccessService, _extensionService) {
19
+ this._chatProviderService = _chatProviderService;
20
+ this._extensionFeaturesManagementService = _extensionFeaturesManagementService;
21
+ this._logService = _logService;
22
+ this._authenticationService = _authenticationService;
23
+ this._authenticationAccessService = _authenticationAccessService;
24
+ this._extensionService = _extensionService;
25
+ this._store = ( new DisposableStore());
26
+ this._providerRegistrations = ( new DisposableMap());
27
+ this._pendingProgress = ( new Map());
28
+ this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostChatProvider));
29
+ this._proxy.$updateLanguageModels({ added: coalesce(( _chatProviderService.getLanguageModelIds().map(id => _chatProviderService.lookupLanguageModel(id)))) });
30
+ this._store.add(_chatProviderService.onDidChangeLanguageModels(this._proxy.$updateLanguageModels, this._proxy));
31
+ }
32
+ dispose() {
33
+ this._providerRegistrations.dispose();
34
+ this._store.dispose();
35
+ }
36
+ $registerLanguageModelProvider(handle, identifier, metadata) {
37
+ const dipsosables = ( new DisposableStore());
38
+ dipsosables.add(this._chatProviderService.registerLanguageModelChat(identifier, {
39
+ metadata,
40
+ provideChatResponse: async (messages, from, options, progress, token) => {
41
+ const requestId = (Math.random() * 1e6) | 0;
42
+ this._pendingProgress.set(requestId, progress);
43
+ try {
44
+ await this._proxy.$provideLanguageModelResponse(handle, requestId, from, messages, options, token);
45
+ }
46
+ finally {
47
+ this._pendingProgress.delete(requestId);
48
+ }
49
+ }
50
+ }));
51
+ if (metadata.auth) {
52
+ dipsosables.add(this._registerAuthenticationProvider(metadata.extension, metadata.auth));
53
+ }
54
+ dipsosables.add(( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
55
+ id: `lm-${identifier}`,
56
+ label: ( localizeWithPath(
57
+ 'vs/workbench/api/browser/mainThreadLanguageModels',
58
+ 'languageModels',
59
+ "Language Model ({0})",
60
+ `${identifier}`
61
+ )),
62
+ access: {
63
+ canToggle: false,
64
+ },
65
+ }));
66
+ this._providerRegistrations.set(handle, dipsosables);
67
+ }
68
+ async $handleProgressChunk(requestId, chunk) {
69
+ this._pendingProgress.get(requestId)?.report(chunk);
70
+ }
71
+ $unregisterProvider(handle) {
72
+ this._providerRegistrations.deleteAndDispose(handle);
73
+ }
74
+ async $prepareChatAccess(extension, providerId, justification) {
75
+ const activate = this._extensionService.activateByEvent(`onLanguageModelAccess:${providerId}`);
76
+ const metadata = this._chatProviderService.lookupLanguageModel(providerId);
77
+ if (metadata) {
78
+ return metadata;
79
+ }
80
+ await Promise.race([
81
+ activate,
82
+ Event.toPromise(Event.filter(this._chatProviderService.onDidChangeLanguageModels, e => Boolean(e.added?.some(value => value.identifier === providerId))))
83
+ ]);
84
+ return this._chatProviderService.lookupLanguageModel(providerId);
85
+ }
86
+ async $fetchResponse(extension, providerId, requestId, messages, options, token) {
87
+ await this._extensionFeaturesManagementService.getAccess(extension, `lm-${providerId}`);
88
+ this._logService.debug('[CHAT] extension request STARTED', extension.value, requestId);
89
+ const task = this._chatProviderService.makeLanguageModelChatRequest(providerId, extension, messages, options, ( new Progress(value => {
90
+ this._proxy.$handleResponseFragment(requestId, value);
91
+ })), token);
92
+ task.catch(err => {
93
+ this._logService.error('[CHAT] extension request ERRORED', err, extension.value, requestId);
94
+ throw err;
95
+ }).finally(() => {
96
+ this._logService.debug('[CHAT] extension request DONE', extension.value, requestId);
97
+ });
98
+ return task;
99
+ }
100
+ _registerAuthenticationProvider(extension, auth) {
101
+ const authProviderId = INTERNAL_AUTH_PROVIDER_PREFIX + extension.value;
102
+ if (this._authenticationService.getProviderIds().includes(authProviderId)) {
103
+ return Disposable.None;
104
+ }
105
+ const accountLabel = auth.accountLabel ?? ( localizeWithPath(
106
+ 'vs/workbench/api/browser/mainThreadLanguageModels',
107
+ 'languageModelsAccountId',
108
+ 'Language Models'
109
+ ));
110
+ const disposables = ( new DisposableStore());
111
+ this._authenticationService.registerAuthenticationProvider(authProviderId, ( new LanguageModelAccessAuthProvider(authProviderId, auth.providerLabel, accountLabel)));
112
+ disposables.add(toDisposable(() => {
113
+ this._authenticationService.unregisterAuthenticationProvider(authProviderId);
114
+ }));
115
+ disposables.add(this._authenticationAccessService.onDidChangeExtensionSessionAccess(async (e) => {
116
+ const allowedExtensions = this._authenticationAccessService.readAllowedExtensions(authProviderId, accountLabel);
117
+ const accessList = [];
118
+ for (const allowedExtension of allowedExtensions) {
119
+ const from = await this._extensionService.getExtension(allowedExtension.id);
120
+ if (from) {
121
+ accessList.push({
122
+ from: from.identifier,
123
+ to: extension,
124
+ enabled: allowedExtension.allowed ?? true
125
+ });
126
+ }
127
+ }
128
+ this._proxy.$updateModelAccesslist(accessList);
129
+ }));
130
+ return disposables;
131
+ }
132
+ };
133
+ MainThreadLanguageModels = __decorate([
134
+ extHostNamedCustomer(MainContext.MainThreadLanguageModels),
135
+ ( __param(1, ILanguageModelsService)),
136
+ ( __param(2, IExtensionFeaturesManagementService)),
137
+ ( __param(3, ILogService)),
138
+ ( __param(4, IAuthenticationService)),
139
+ ( __param(5, IAuthenticationAccessService)),
140
+ ( __param(6, IExtensionService))
141
+ ], MainThreadLanguageModels);
142
+ class LanguageModelAccessAuthProvider {
143
+ constructor(id, label, _accountLabel) {
144
+ this.id = id;
145
+ this.label = label;
146
+ this._accountLabel = _accountLabel;
147
+ this.supportsMultipleAccounts = false;
148
+ this._onDidChangeSessions = ( new Emitter());
149
+ this.onDidChangeSessions = this._onDidChangeSessions.event;
150
+ }
151
+ async getSessions(scopes) {
152
+ if (scopes === undefined && !this._session) {
153
+ return [];
154
+ }
155
+ if (this._session) {
156
+ return [this._session];
157
+ }
158
+ return [await this.createSession(scopes || [], {})];
159
+ }
160
+ async createSession(scopes, options) {
161
+ this._session = this._createFakeSession(scopes);
162
+ this._onDidChangeSessions.fire({ added: [this._session], changed: [], removed: [] });
163
+ return this._session;
164
+ }
165
+ removeSession(sessionId) {
166
+ if (this._session) {
167
+ this._onDidChangeSessions.fire({ added: [], changed: [], removed: [this._session] });
168
+ this._session = undefined;
169
+ }
170
+ return Promise.resolve();
171
+ }
172
+ _createFakeSession(scopes) {
173
+ return {
174
+ id: 'fake-session',
175
+ account: {
176
+ id: this.id,
177
+ label: this._accountLabel,
178
+ },
179
+ accessToken: 'fake-access-token',
180
+ scopes,
181
+ };
182
+ }
183
+ }
184
+
185
+ export { MainThreadLanguageModels };
@@ -0,0 +1,78 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { URI } from 'vscode/vscode/vs/base/common/uri';
3
+ import { ILanguageService } from 'vscode/vscode/vs/editor/common/languages/language';
4
+ import { IModelService } from 'vscode/vscode/vs/editor/common/services/model';
5
+ import { MainContext, ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
6
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
7
+ import { Range } from 'vscode/vscode/vs/editor/common/core/range';
8
+ import { ITextModelService } from 'vscode/vscode/vs/editor/common/services/resolverService';
9
+ import { ILanguageStatusService } from 'vscode/vscode/vs/workbench/services/languageStatus/common/languageStatusService';
10
+ import { DisposableStore, DisposableMap } from 'vscode/vscode/vs/base/common/lifecycle';
11
+
12
+ let MainThreadLanguages = class MainThreadLanguages {
13
+ constructor(_extHostContext, _languageService, _modelService, _resolverService, _languageStatusService) {
14
+ this._languageService = _languageService;
15
+ this._modelService = _modelService;
16
+ this._resolverService = _resolverService;
17
+ this._languageStatusService = _languageStatusService;
18
+ this._disposables = ( new DisposableStore());
19
+ this._status = ( new DisposableMap());
20
+ this._proxy = ( _extHostContext.getProxy(ExtHostContext.ExtHostLanguages));
21
+ this._proxy.$acceptLanguageIds(_languageService.getRegisteredLanguageIds());
22
+ this._disposables.add(_languageService.onDidChange(_ => {
23
+ this._proxy.$acceptLanguageIds(_languageService.getRegisteredLanguageIds());
24
+ }));
25
+ }
26
+ dispose() {
27
+ this._disposables.dispose();
28
+ this._status.dispose();
29
+ }
30
+ async $changeLanguage(resource, languageId) {
31
+ if (!this._languageService.isRegisteredLanguageId(languageId)) {
32
+ return Promise.reject(( new Error(`Unknown language id: ${languageId}`)));
33
+ }
34
+ const uri = URI.revive(resource);
35
+ const ref = await this._resolverService.createModelReference(uri);
36
+ try {
37
+ ref.object.textEditorModel.setLanguage(this._languageService.createById(languageId));
38
+ }
39
+ finally {
40
+ ref.dispose();
41
+ }
42
+ }
43
+ async $tokensAtPosition(resource, position) {
44
+ const uri = URI.revive(resource);
45
+ const model = this._modelService.getModel(uri);
46
+ if (!model) {
47
+ return undefined;
48
+ }
49
+ model.tokenization.tokenizeIfCheap(position.lineNumber);
50
+ const tokens = model.tokenization.getLineTokens(position.lineNumber);
51
+ const idx = tokens.findTokenIndexAtOffset(position.column - 1);
52
+ return {
53
+ type: tokens.getStandardTokenType(idx),
54
+ range: ( new Range(
55
+ position.lineNumber,
56
+ 1 + tokens.getStartOffset(idx),
57
+ position.lineNumber,
58
+ 1 + tokens.getEndOffset(idx)
59
+ ))
60
+ };
61
+ }
62
+ $setLanguageStatus(handle, status) {
63
+ this._status.get(handle)?.dispose();
64
+ this._status.set(handle, this._languageStatusService.addStatus(status));
65
+ }
66
+ $removeLanguageStatus(handle) {
67
+ this._status.get(handle)?.dispose();
68
+ }
69
+ };
70
+ MainThreadLanguages = __decorate([
71
+ extHostNamedCustomer(MainContext.MainThreadLanguages),
72
+ ( __param(1, ILanguageService)),
73
+ ( __param(2, IModelService)),
74
+ ( __param(3, ITextModelService)),
75
+ ( __param(4, ILanguageStatusService))
76
+ ], MainThreadLanguages);
77
+
78
+ export { MainThreadLanguages };
@@ -0,0 +1,35 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { MainContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
3
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
4
+ import { URI } from 'vscode/vscode/vs/base/common/uri';
5
+ import { IFileService } from 'vscode/vscode/vs/platform/files/common/files';
6
+ import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
7
+ import { ILanguagePackService } from 'vscode/vscode/vs/platform/languagePacks/common/languagePacks';
8
+
9
+ let MainThreadLocalization = class MainThreadLocalization extends Disposable {
10
+ constructor(extHostContext, fileService, languagePackService) {
11
+ super();
12
+ this.fileService = fileService;
13
+ this.languagePackService = languagePackService;
14
+ }
15
+ async $fetchBuiltInBundleUri(id, language) {
16
+ try {
17
+ const uri = await this.languagePackService.getBuiltInExtensionTranslationsUri(id, language);
18
+ return uri;
19
+ }
20
+ catch (e) {
21
+ return undefined;
22
+ }
23
+ }
24
+ async $fetchBundleContents(uriComponents) {
25
+ const contents = await this.fileService.readFile(URI.revive(uriComponents));
26
+ return ( contents.value.toString());
27
+ }
28
+ };
29
+ MainThreadLocalization = __decorate([
30
+ extHostNamedCustomer(MainContext.MainThreadLocalization),
31
+ ( __param(1, IFileService)),
32
+ ( __param(2, ILanguagePackService))
33
+ ], MainThreadLocalization);
34
+
35
+ export { MainThreadLocalization };
@@ -0,0 +1,78 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
3
+ import { ILoggerService, parseLogLevel, ILogService, LogLevelToString, isLogLevel, log } from 'vscode/vscode/vs/platform/log/common/log';
4
+ import { DisposableStore } from 'vscode/vscode/vs/base/common/lifecycle';
5
+ import { MainContext, ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
6
+ import { URI } from 'vscode/vscode/vs/base/common/uri';
7
+ import { CommandsRegistry } from 'vscode/vscode/vs/platform/commands/common/commands';
8
+ import { IEnvironmentService } from 'vscode/vscode/vs/platform/environment/common/environment';
9
+
10
+ let MainThreadLoggerService = class MainThreadLoggerService {
11
+ constructor(extHostContext, loggerService) {
12
+ this.loggerService = loggerService;
13
+ this.disposables = ( new DisposableStore());
14
+ const proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostLogLevelServiceShape));
15
+ this.disposables.add(loggerService.onDidChangeLogLevel(arg => {
16
+ if (isLogLevel(arg)) {
17
+ proxy.$setLogLevel(arg);
18
+ }
19
+ else {
20
+ proxy.$setLogLevel(arg[1], arg[0]);
21
+ }
22
+ }));
23
+ }
24
+ $log(file, messages) {
25
+ const logger = this.loggerService.getLogger(URI.revive(file));
26
+ if (!logger) {
27
+ throw new Error('Create the logger before logging');
28
+ }
29
+ for (const [level, message] of messages) {
30
+ log(logger, level, message);
31
+ }
32
+ }
33
+ async $createLogger(file, options) {
34
+ this.loggerService.createLogger(URI.revive(file), options);
35
+ }
36
+ async $registerLogger(logResource) {
37
+ this.loggerService.registerLogger({
38
+ ...logResource,
39
+ resource: URI.revive(logResource.resource)
40
+ });
41
+ }
42
+ async $deregisterLogger(resource) {
43
+ this.loggerService.deregisterLogger(URI.revive(resource));
44
+ }
45
+ async $setVisibility(resource, visible) {
46
+ this.loggerService.setVisibility(URI.revive(resource), visible);
47
+ }
48
+ $flush(file) {
49
+ const logger = this.loggerService.getLogger(URI.revive(file));
50
+ if (!logger) {
51
+ throw new Error('Create the logger before flushing');
52
+ }
53
+ logger.flush();
54
+ }
55
+ dispose() {
56
+ this.disposables.dispose();
57
+ }
58
+ };
59
+ MainThreadLoggerService = __decorate([
60
+ extHostNamedCustomer(MainContext.MainThreadLogger),
61
+ ( __param(1, ILoggerService))
62
+ ], MainThreadLoggerService);
63
+ CommandsRegistry.registerCommand('_extensionTests.setLogLevel', function (accessor, level) {
64
+ const loggerService = accessor.get(ILoggerService);
65
+ const environmentService = accessor.get(IEnvironmentService);
66
+ if (environmentService.isExtensionDevelopment && !!environmentService.extensionTestsLocationURI) {
67
+ const logLevel = parseLogLevel(level);
68
+ if (logLevel !== undefined) {
69
+ loggerService.setLogLevel(logLevel);
70
+ }
71
+ }
72
+ });
73
+ CommandsRegistry.registerCommand('_extensionTests.getLogLevel', function (accessor) {
74
+ const logService = accessor.get(ILogService);
75
+ return LogLevelToString(logService.getLevel());
76
+ });
77
+
78
+ export { MainThreadLoggerService };
@@ -0,0 +1,93 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { Emitter } from 'vscode/vscode/vs/base/common/event';
3
+ import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
4
+ import { ManagedSocket, connectManagedSocket } from '../../../platform/remote/common/managedSocket.js';
5
+ import { IRemoteSocketFactoryService } from 'vscode/vscode/vs/platform/remote/common/remoteSocketFactoryService';
6
+ import { MainContext, ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
7
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
8
+
9
+ let MainThreadManagedSockets = class MainThreadManagedSockets extends Disposable {
10
+ constructor(extHostContext, _remoteSocketFactoryService) {
11
+ super();
12
+ this._remoteSocketFactoryService = _remoteSocketFactoryService;
13
+ this._registrations = ( new Map());
14
+ this._remoteSockets = ( new Map());
15
+ this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostManagedSockets));
16
+ }
17
+ async $registerSocketFactory(socketFactoryId) {
18
+ const that = this;
19
+ const socketFactory = new (class {
20
+ supports(connectTo) {
21
+ return (connectTo.id === socketFactoryId);
22
+ }
23
+ connect(connectTo, path, query, debugLabel) {
24
+ return ( new Promise((resolve, reject) => {
25
+ if (connectTo.id !== socketFactoryId) {
26
+ return reject(( new Error('Invalid connectTo')));
27
+ }
28
+ const factoryId = connectTo.id;
29
+ that._proxy.$openRemoteSocket(factoryId).then(socketId => {
30
+ const half = {
31
+ onClose: ( new Emitter()),
32
+ onData: ( new Emitter()),
33
+ onEnd: ( new Emitter()),
34
+ };
35
+ that._remoteSockets.set(socketId, half);
36
+ MainThreadManagedSocket.connect(socketId, that._proxy, path, query, debugLabel, half)
37
+ .then(socket => {
38
+ socket.onDidDispose(() => that._remoteSockets.delete(socketId));
39
+ resolve(socket);
40
+ }, err => {
41
+ that._remoteSockets.delete(socketId);
42
+ reject(err);
43
+ });
44
+ }).catch(reject);
45
+ }));
46
+ }
47
+ });
48
+ this._registrations.set(socketFactoryId, this._remoteSocketFactoryService.register(1 , socketFactory));
49
+ }
50
+ async $unregisterSocketFactory(socketFactoryId) {
51
+ this._registrations.get(socketFactoryId)?.dispose();
52
+ }
53
+ $onDidManagedSocketHaveData(socketId, data) {
54
+ this._remoteSockets.get(socketId)?.onData.fire(data);
55
+ }
56
+ $onDidManagedSocketClose(socketId, error) {
57
+ this._remoteSockets.get(socketId)?.onClose.fire({
58
+ type: 0 ,
59
+ error: error ? ( new Error(error)) : undefined,
60
+ hadError: !!error
61
+ });
62
+ this._remoteSockets.delete(socketId);
63
+ }
64
+ $onDidManagedSocketEnd(socketId) {
65
+ this._remoteSockets.get(socketId)?.onEnd.fire();
66
+ }
67
+ };
68
+ MainThreadManagedSockets = __decorate([
69
+ extHostNamedCustomer(MainContext.MainThreadManagedSockets),
70
+ ( __param(1, IRemoteSocketFactoryService))
71
+ ], MainThreadManagedSockets);
72
+ class MainThreadManagedSocket extends ManagedSocket {
73
+ static connect(socketId, proxy, path, query, debugLabel, half) {
74
+ const socket = ( new MainThreadManagedSocket(socketId, proxy, debugLabel, half));
75
+ return connectManagedSocket(socket, path, query, debugLabel, half);
76
+ }
77
+ constructor(socketId, proxy, debugLabel, half) {
78
+ super(debugLabel, half);
79
+ this.socketId = socketId;
80
+ this.proxy = proxy;
81
+ }
82
+ write(buffer) {
83
+ this.proxy.$remoteSocketWrite(this.socketId, buffer);
84
+ }
85
+ closeRemote() {
86
+ this.proxy.$remoteSocketEnd(this.socketId);
87
+ }
88
+ drain() {
89
+ return this.proxy.$remoteSocketDrain(this.socketId);
90
+ }
91
+ }
92
+
93
+ export { MainThreadManagedSocket, MainThreadManagedSockets };
@@ -0,0 +1,137 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { localizeWithPath } from 'vscode/vscode/vs/nls';
3
+ import { toAction } from 'vscode/vscode/vs/base/common/actions';
4
+ import { MainContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
5
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
6
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
7
+ import { INotificationService } from 'vscode/vscode/vs/platform/notification/common/notification';
8
+ import { Event } from 'vscode/vscode/vs/base/common/event';
9
+ import { ICommandService } from 'vscode/vscode/vs/platform/commands/common/commands';
10
+ import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
11
+ import { IDialogService } from 'vscode/vscode/vs/platform/dialogs/common/dialogs';
12
+
13
+ let MainThreadMessageService = class MainThreadMessageService {
14
+ constructor(extHostContext, _notificationService, _commandService, _dialogService, extensionService) {
15
+ this._notificationService = _notificationService;
16
+ this._commandService = _commandService;
17
+ this._dialogService = _dialogService;
18
+ this.extensionsListener = extensionService.onDidChangeExtensions(e => {
19
+ for (const extension of e.removed) {
20
+ this._notificationService.removeFilter(extension.identifier.value);
21
+ }
22
+ });
23
+ }
24
+ dispose() {
25
+ this.extensionsListener.dispose();
26
+ }
27
+ $showMessage(severity, message, options, commands) {
28
+ if (options.modal) {
29
+ return this._showModalMessage(severity, message, options.detail, commands, options.useCustom);
30
+ }
31
+ else {
32
+ return this._showMessage(severity, message, commands, options);
33
+ }
34
+ }
35
+ _showMessage(severity, message, commands, options) {
36
+ return ( new Promise(resolve => {
37
+ const primaryActions = ( commands.map(command => toAction({
38
+ id: `_extension_message_handle_${command.handle}`,
39
+ label: command.title,
40
+ enabled: true,
41
+ run: () => {
42
+ resolve(command.handle);
43
+ return Promise.resolve();
44
+ }
45
+ })));
46
+ let source;
47
+ if (options.source) {
48
+ source = {
49
+ label: options.source.label,
50
+ id: options.source.identifier.value
51
+ };
52
+ }
53
+ if (!source) {
54
+ source = ( localizeWithPath(
55
+ 'vs/workbench/api/browser/mainThreadMessageService',
56
+ 'defaultSource',
57
+ "Extension"
58
+ ));
59
+ }
60
+ const secondaryActions = [];
61
+ if (options.source) {
62
+ secondaryActions.push(toAction({
63
+ id: options.source.identifier.value,
64
+ label: ( localizeWithPath(
65
+ 'vs/workbench/api/browser/mainThreadMessageService',
66
+ 'manageExtension',
67
+ "Manage Extension"
68
+ )),
69
+ run: () => {
70
+ return this._commandService.executeCommand('_extensions.manage', options.source.identifier.value);
71
+ }
72
+ }));
73
+ }
74
+ const messageHandle = this._notificationService.notify({
75
+ severity,
76
+ message,
77
+ actions: { primary: primaryActions, secondary: secondaryActions },
78
+ source
79
+ });
80
+ Event.once(messageHandle.onDidClose)(() => {
81
+ resolve(undefined);
82
+ });
83
+ }));
84
+ }
85
+ async _showModalMessage(severity, message, detail, commands, useCustom) {
86
+ const buttons = [];
87
+ let cancelButton = undefined;
88
+ for (const command of commands) {
89
+ const button = {
90
+ label: command.title,
91
+ run: () => command.handle
92
+ };
93
+ if (command.isCloseAffordance) {
94
+ cancelButton = button;
95
+ }
96
+ else {
97
+ buttons.push(button);
98
+ }
99
+ }
100
+ if (!cancelButton) {
101
+ if (buttons.length > 0) {
102
+ cancelButton = {
103
+ label: ( localizeWithPath('vs/workbench/api/browser/mainThreadMessageService', 'cancel', "Cancel")),
104
+ run: () => undefined
105
+ };
106
+ }
107
+ else {
108
+ cancelButton = {
109
+ label: ( localizeWithPath(
110
+ 'vs/workbench/api/browser/mainThreadMessageService',
111
+ { key: 'ok', comment: ['&& denotes a mnemonic'] },
112
+ "&&OK"
113
+ )),
114
+ run: () => undefined
115
+ };
116
+ }
117
+ }
118
+ const { result } = await this._dialogService.prompt({
119
+ type: severity,
120
+ message,
121
+ detail,
122
+ buttons,
123
+ cancelButton,
124
+ custom: useCustom
125
+ });
126
+ return result;
127
+ }
128
+ };
129
+ MainThreadMessageService = __decorate([
130
+ extHostNamedCustomer(MainContext.MainThreadMessageService),
131
+ ( __param(1, INotificationService)),
132
+ ( __param(2, ICommandService)),
133
+ ( __param(3, IDialogService)),
134
+ ( __param(4, IExtensionService))
135
+ ], MainThreadMessageService);
136
+
137
+ export { MainThreadMessageService };