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

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,98 @@
1
+ import { VSBuffer, encodeBase64 } from 'vscode/vscode/vs/base/common/buffer';
2
+ import { PauseableEmitter, Emitter } from 'vscode/vscode/vs/base/common/event';
3
+ import { DisposableStore, Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
4
+ import { SocketDiagnostics } from 'vscode/vscode/vs/base/parts/ipc/common/ipc.net';
5
+
6
+ const makeRawSocketHeaders = (path, query, deubgLabel) => {
7
+ const buffer = ( new Uint8Array(16));
8
+ for (let i = 0; i < 16; i++) {
9
+ buffer[i] = Math.round(Math.random() * 256);
10
+ }
11
+ const nonce = encodeBase64(VSBuffer.wrap(buffer));
12
+ const headers = [
13
+ `GET ws://localhost${path}?${query}&skipWebSocketFrames=true HTTP/1.1`,
14
+ `Connection: Upgrade`,
15
+ `Upgrade: websocket`,
16
+ `Sec-WebSocket-Key: ${nonce}`
17
+ ];
18
+ return headers.join('\r\n') + '\r\n\r\n';
19
+ };
20
+ const socketRawEndHeaderSequence = VSBuffer.fromString('\r\n\r\n');
21
+ async function connectManagedSocket(socket, path, query, debugLabel, half) {
22
+ socket.write(VSBuffer.fromString(makeRawSocketHeaders(path, query)));
23
+ const d = ( new DisposableStore());
24
+ try {
25
+ return await ( new Promise((resolve, reject) => {
26
+ let dataSoFar;
27
+ d.add(socket.onData(d_1 => {
28
+ if (!dataSoFar) {
29
+ dataSoFar = d_1;
30
+ }
31
+ else {
32
+ dataSoFar = VSBuffer.concat([dataSoFar, d_1], dataSoFar.byteLength + d_1.byteLength);
33
+ }
34
+ const index = dataSoFar.indexOf(socketRawEndHeaderSequence);
35
+ if (index === -1) {
36
+ return;
37
+ }
38
+ resolve(socket);
39
+ socket.pauseData();
40
+ const rest = dataSoFar.slice(index + socketRawEndHeaderSequence.byteLength);
41
+ if (rest.byteLength) {
42
+ half.onData.fire(rest);
43
+ }
44
+ }));
45
+ d.add(socket.onClose(err => reject(err ?? ( new Error('socket closed')))));
46
+ d.add(socket.onEnd(() => reject(( new Error('socket ended')))));
47
+ }));
48
+ }
49
+ catch (e) {
50
+ socket.dispose();
51
+ throw e;
52
+ }
53
+ finally {
54
+ d.dispose();
55
+ }
56
+ }
57
+ class ManagedSocket extends Disposable {
58
+ constructor(debugLabel, half) {
59
+ super();
60
+ this.debugLabel = debugLabel;
61
+ this.pausableDataEmitter = this._register(( new PauseableEmitter()));
62
+ this.onData = (...args) => {
63
+ if (this.pausableDataEmitter.isPaused) {
64
+ queueMicrotask(() => this.pausableDataEmitter.resume());
65
+ }
66
+ return this.pausableDataEmitter.event(...args);
67
+ };
68
+ this.didDisposeEmitter = this._register(( new Emitter()));
69
+ this.onDidDispose = this.didDisposeEmitter.event;
70
+ this.ended = false;
71
+ this._register(half.onData);
72
+ this._register(half.onData.event(data => this.pausableDataEmitter.fire(data)));
73
+ this.onClose = this._register(half.onClose).event;
74
+ this.onEnd = this._register(half.onEnd).event;
75
+ }
76
+ pauseData() {
77
+ this.pausableDataEmitter.pause();
78
+ }
79
+ drain() {
80
+ return Promise.resolve();
81
+ }
82
+ end() {
83
+ this.ended = true;
84
+ this.closeRemote();
85
+ }
86
+ traceSocketEvent(type, data) {
87
+ SocketDiagnostics.traceSocketEvent(this, this.debugLabel, type, data);
88
+ }
89
+ dispose() {
90
+ if (!this.ended) {
91
+ this.closeRemote();
92
+ }
93
+ this.didDisposeEmitter.fire();
94
+ super.dispose();
95
+ }
96
+ }
97
+
98
+ export { ManagedSocket, connectManagedSocket, makeRawSocketHeaders, socketRawEndHeaderSequence };
@@ -0,0 +1,104 @@
1
+ import 'vscode/vscode/vs/workbench/common/contributions';
2
+ import 'vscode/vscode/vs/platform/instantiation/common/instantiation';
3
+ import { JSONValidationExtensionPoint } from 'vscode/vscode/vs/workbench/api/common/jsonValidationExtensionPoint';
4
+ import { ColorExtensionPoint } from 'vscode/vscode/vs/workbench/services/themes/common/colorExtensionPoint';
5
+ import { IconExtensionPoint } from 'vscode/vscode/vs/workbench/services/themes/common/iconExtensionPoint';
6
+ import { TokenClassificationExtensionPoints } from 'vscode/vscode/vs/workbench/services/themes/common/tokenClassificationExtensionPoint';
7
+ import { LanguageConfigurationFileHandler } from 'vscode/vscode/vs/workbench/contrib/codeEditor/common/languageConfigurationExtensionPoint';
8
+ import { StatusBarItemsExtensionPoint } from 'vscode/vscode/vs/workbench/api/browser/statusBarExtensionPoint';
9
+ import './mainThreadLocalization.js';
10
+ import './mainThreadBulkEdits.js';
11
+ import './mainThreadLanguageModels.js';
12
+ import './mainThreadChatAgents2.js';
13
+ import './mainThreadChatVariables.js';
14
+ import './mainThreadCodeInsets.js';
15
+ import './mainThreadCLICommands.js';
16
+ import './mainThreadClipboard.js';
17
+ import './mainThreadCommands.js';
18
+ import './mainThreadConfiguration.js';
19
+ import './mainThreadConsole.js';
20
+ import './mainThreadDebugService.js';
21
+ import './mainThreadDecorations.js';
22
+ import './mainThreadDiagnostics.js';
23
+ import './mainThreadDialogs.js';
24
+ import './mainThreadDocumentContentProviders.js';
25
+ import './mainThreadDocuments.js';
26
+ import './mainThreadDocumentsAndEditors.js';
27
+ import 'vscode/vscode/vs/base/common/event';
28
+ import 'vscode/vscode/vs/base/common/lifecycle';
29
+ import 'vscode/vscode/vs/editor/common/config/editorOptions';
30
+ import 'vscode/vscode/vs/editor/contrib/snippet/browser/snippetController2';
31
+ import 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
32
+ import 'vscode/vscode/vs/base/common/arrays';
33
+ import 'vscode/vscode/vs/base/common/strings';
34
+ import 'vscode/vscode/vs/base/common/cancellation';
35
+ import 'vscode/vscode/vs/editor/contrib/editorState/browser/keybindingCancellation';
36
+ import 'vscode/vscode/vs/editor/contrib/snippet/browser/snippetParser';
37
+ import './mainThreadEditors.js';
38
+ import './mainThreadEditorTabs.js';
39
+ import './mainThreadErrors.js';
40
+ import './mainThreadExtensionService.js';
41
+ import './mainThreadFileSystem.js';
42
+ import './mainThreadFileSystemEventService.js';
43
+ import './mainThreadLanguageFeatures.js';
44
+ import './mainThreadLanguages.js';
45
+ import './mainThreadLogService.js';
46
+ import './mainThreadMessageService.js';
47
+ import './mainThreadManagedSockets.js';
48
+ import './mainThreadOutputService.js';
49
+ import './mainThreadProgress.js';
50
+ import './mainThreadQuickDiff.js';
51
+ import './mainThreadQuickOpen.js';
52
+ import './mainThreadRemoteConnectionData.js';
53
+ import './mainThreadSaveParticipant.js';
54
+ import './mainThreadSpeech.js';
55
+ import './mainThreadEditSessionIdentityParticipant.js';
56
+ import './mainThreadSCM.js';
57
+ import './mainThreadSearch.js';
58
+ import './mainThreadStatusBar.js';
59
+ import './mainThreadStorage.js';
60
+ import './mainThreadTelemetry.js';
61
+ import './mainThreadTerminalService.js';
62
+ import './mainThreadTerminalShellIntegration.js';
63
+ import './mainThreadTheming.js';
64
+ import './mainThreadTreeViews.js';
65
+ import './mainThreadDownloadService.js';
66
+ import './mainThreadUrls.js';
67
+ import './mainThreadUriOpeners.js';
68
+ import './mainThreadWindow.js';
69
+ import './mainThreadWebviewManager.js';
70
+ import './mainThreadWorkspace.js';
71
+ import './mainThreadComments.js';
72
+ import './mainThreadNotebook.js';
73
+ import './mainThreadNotebookKernels.js';
74
+ import './mainThreadNotebookDocumentsAndEditors.js';
75
+ import './mainThreadNotebookRenderers.js';
76
+ import './mainThreadNotebookSaveParticipant.js';
77
+ import './mainThreadInteractive.js';
78
+ import './mainThreadInlineChat.js';
79
+ import './mainThreadChat.js';
80
+ import './mainThreadTask.js';
81
+ import './mainThreadLabelService.js';
82
+ import './mainThreadTunnelService.js';
83
+ import './mainThreadAuthentication.js';
84
+ import './mainThreadTimeline.js';
85
+ import './mainThreadTesting.js';
86
+ import './mainThreadSecretState.js';
87
+ import './mainThreadShare.js';
88
+ import './mainThreadProfileContentHandlers.js';
89
+ import './mainThreadAiRelatedInformation.js';
90
+ import './mainThreadAiEmbeddingVector.js';
91
+ import './mainThreadIssueReporter.js';
92
+
93
+ (class ExtensionPoints {
94
+ static { this.ID = 'workbench.contrib.extensionPoints'; }
95
+ constructor(instantiationService) {
96
+ this.instantiationService = instantiationService;
97
+ this.instantiationService.createInstance(JSONValidationExtensionPoint);
98
+ this.instantiationService.createInstance(ColorExtensionPoint);
99
+ this.instantiationService.createInstance(IconExtensionPoint);
100
+ this.instantiationService.createInstance(TokenClassificationExtensionPoints);
101
+ this.instantiationService.createInstance(LanguageConfigurationFileHandler);
102
+ this.instantiationService.createInstance(StatusBarItemsExtensionPoint);
103
+ }
104
+ });
@@ -0,0 +1,31 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { Disposable, DisposableMap } from 'vscode/vscode/vs/base/common/lifecycle';
3
+ import { MainContext, ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
4
+ import { IAiEmbeddingVectorService } from 'vscode/vscode/vs/workbench/services/aiEmbeddingVector/common/aiEmbeddingVectorService';
5
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
6
+
7
+ let MainThreadAiEmbeddingVector = class MainThreadAiEmbeddingVector extends Disposable {
8
+ constructor(context, _AiEmbeddingVectorService) {
9
+ super();
10
+ this._AiEmbeddingVectorService = _AiEmbeddingVectorService;
11
+ this._registrations = this._register(( new DisposableMap()));
12
+ this._proxy = ( context.getProxy(ExtHostContext.ExtHostAiEmbeddingVector));
13
+ }
14
+ $registerAiEmbeddingVectorProvider(model, handle) {
15
+ const provider = {
16
+ provideAiEmbeddingVector: (strings, token) => {
17
+ return this._proxy.$provideAiEmbeddingVector(handle, strings, token);
18
+ },
19
+ };
20
+ this._registrations.set(handle, this._AiEmbeddingVectorService.registerAiEmbeddingVectorProvider(model, provider));
21
+ }
22
+ $unregisterAiEmbeddingVectorProvider(handle) {
23
+ this._registrations.deleteAndDispose(handle);
24
+ }
25
+ };
26
+ MainThreadAiEmbeddingVector = __decorate([
27
+ extHostNamedCustomer(MainContext.MainThreadAiEmbeddingVector),
28
+ ( __param(1, IAiEmbeddingVectorService))
29
+ ], MainThreadAiEmbeddingVector);
30
+
31
+ export { MainThreadAiEmbeddingVector };
@@ -0,0 +1,35 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { CancellationToken } from 'vscode/vscode/vs/base/common/cancellation';
3
+ import { Disposable, DisposableMap } from 'vscode/vscode/vs/base/common/lifecycle';
4
+ import { MainContext, ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
5
+ import { IAiRelatedInformationService } from 'vscode/vscode/vs/workbench/services/aiRelatedInformation/common/aiRelatedInformation';
6
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
7
+
8
+ let MainThreadAiRelatedInformation = class MainThreadAiRelatedInformation extends Disposable {
9
+ constructor(context, _aiRelatedInformationService) {
10
+ super();
11
+ this._aiRelatedInformationService = _aiRelatedInformationService;
12
+ this._registrations = this._register(( new DisposableMap()));
13
+ this._proxy = ( context.getProxy(ExtHostContext.ExtHostAiRelatedInformation));
14
+ }
15
+ $getAiRelatedInformation(query, types) {
16
+ return this._aiRelatedInformationService.getRelatedInformation(query, types, CancellationToken.None);
17
+ }
18
+ $registerAiRelatedInformationProvider(handle, type) {
19
+ const provider = {
20
+ provideAiRelatedInformation: (query, token) => {
21
+ return this._proxy.$provideAiRelatedInformation(handle, query, token);
22
+ },
23
+ };
24
+ this._registrations.set(handle, this._aiRelatedInformationService.registerAiRelatedInformationProvider(type, provider));
25
+ }
26
+ $unregisterAiRelatedInformationProvider(handle) {
27
+ this._registrations.deleteAndDispose(handle);
28
+ }
29
+ };
30
+ MainThreadAiRelatedInformation = __decorate([
31
+ extHostNamedCustomer(MainContext.MainThreadAiRelatedInformation),
32
+ ( __param(1, IAiRelatedInformationService))
33
+ ], MainThreadAiRelatedInformation);
34
+
35
+ export { MainThreadAiRelatedInformation };
@@ -0,0 +1,254 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { Disposable, DisposableMap } from 'vscode/vscode/vs/base/common/lifecycle';
3
+ import { localizeWithPath } from 'vscode/vscode/vs/nls';
4
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
5
+ import { IAuthenticationService, IAuthenticationExtensionsService } from 'vscode/vscode/vs/workbench/services/authentication/common/authentication';
6
+ import { MainContext, ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
7
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
8
+ import Severity$1 from 'vscode/vscode/vs/base/common/severity';
9
+ import { INotificationService } from 'vscode/vscode/vs/platform/notification/common/notification';
10
+ import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
11
+ import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
12
+ import { Emitter } from 'vscode/vscode/vs/base/common/event';
13
+ import { IAuthenticationAccessService } from 'vscode/vscode/vs/workbench/services/authentication/browser/authenticationAccessService';
14
+ import { IAuthenticationUsageService } from 'vscode/vscode/vs/workbench/services/authentication/browser/authenticationUsageService';
15
+ import { getAuthenticationProviderActivationEvent } from 'vscode/vscode/vs/workbench/services/authentication/browser/authenticationService';
16
+ import { URI } from 'vscode/vscode/vs/base/common/uri';
17
+ import { IOpenerService } from 'vscode/vscode/vs/platform/opener/common/opener';
18
+ import { IDialogService } from 'vscode/vscode/vs/platform/dialogs/common/dialogs';
19
+
20
+ class MainThreadAuthenticationProvider extends Disposable {
21
+ constructor(_proxy, id, label, supportsMultipleAccounts, notificationService, onDidChangeSessionsEmitter) {
22
+ super();
23
+ this._proxy = _proxy;
24
+ this.id = id;
25
+ this.label = label;
26
+ this.supportsMultipleAccounts = supportsMultipleAccounts;
27
+ this.notificationService = notificationService;
28
+ this.onDidChangeSessions = onDidChangeSessionsEmitter.event;
29
+ }
30
+ async getSessions(scopes) {
31
+ return this._proxy.$getSessions(this.id, scopes);
32
+ }
33
+ createSession(scopes, options) {
34
+ return this._proxy.$createSession(this.id, scopes, options);
35
+ }
36
+ async removeSession(sessionId) {
37
+ await this._proxy.$removeSession(this.id, sessionId);
38
+ this.notificationService.info(( localizeWithPath(
39
+ 'vs/workbench/api/browser/mainThreadAuthentication',
40
+ 'signedOut',
41
+ "Successfully signed out."
42
+ )));
43
+ }
44
+ }
45
+ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable {
46
+ constructor(extHostContext, authenticationService, authenticationExtensionsService, authenticationAccessService, authenticationUsageService, dialogService, notificationService, extensionService, telemetryService, openerService) {
47
+ super();
48
+ this.authenticationService = authenticationService;
49
+ this.authenticationExtensionsService = authenticationExtensionsService;
50
+ this.authenticationAccessService = authenticationAccessService;
51
+ this.authenticationUsageService = authenticationUsageService;
52
+ this.dialogService = dialogService;
53
+ this.notificationService = notificationService;
54
+ this.extensionService = extensionService;
55
+ this.telemetryService = telemetryService;
56
+ this.openerService = openerService;
57
+ this._registrations = this._register(( new DisposableMap()));
58
+ this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostAuthentication));
59
+ this._register(this.authenticationService.onDidChangeSessions(e => {
60
+ this._proxy.$onDidChangeAuthenticationSessions(e.providerId, e.label);
61
+ }));
62
+ }
63
+ async $registerAuthenticationProvider(id, label, supportsMultipleAccounts) {
64
+ const emitter = ( new Emitter());
65
+ this._registrations.set(id, emitter);
66
+ const provider = ( new MainThreadAuthenticationProvider(
67
+ this._proxy,
68
+ id,
69
+ label,
70
+ supportsMultipleAccounts,
71
+ this.notificationService,
72
+ emitter
73
+ ));
74
+ this.authenticationService.registerAuthenticationProvider(id, provider);
75
+ }
76
+ $unregisterAuthenticationProvider(id) {
77
+ this._registrations.deleteAndDispose(id);
78
+ this.authenticationService.unregisterAuthenticationProvider(id);
79
+ }
80
+ async $ensureProvider(id) {
81
+ if (!this.authenticationService.isAuthenticationProviderRegistered(id)) {
82
+ return await this.extensionService.activateByEvent(getAuthenticationProviderActivationEvent(id), 1 );
83
+ }
84
+ }
85
+ $sendDidChangeSessions(providerId, event) {
86
+ const obj = this._registrations.get(providerId);
87
+ if (obj instanceof Emitter) {
88
+ obj.fire(event);
89
+ }
90
+ }
91
+ $removeSession(providerId, sessionId) {
92
+ return this.authenticationService.removeSession(providerId, sessionId);
93
+ }
94
+ async loginPrompt(providerName, extensionName, recreatingSession, options) {
95
+ const message = recreatingSession
96
+ ? ( localizeWithPath(
97
+ 'vs/workbench/api/browser/mainThreadAuthentication',
98
+ 'confirmRelogin',
99
+ "The extension '{0}' wants you to sign in again using {1}.",
100
+ extensionName,
101
+ providerName
102
+ ))
103
+ : ( localizeWithPath(
104
+ 'vs/workbench/api/browser/mainThreadAuthentication',
105
+ 'confirmLogin',
106
+ "The extension '{0}' wants to sign in using {1}.",
107
+ extensionName,
108
+ providerName
109
+ ));
110
+ const buttons = [
111
+ {
112
+ label: ( localizeWithPath(
113
+ 'vs/workbench/api/browser/mainThreadAuthentication',
114
+ { key: 'allow', comment: ['&& denotes a mnemonic'] },
115
+ "&&Allow"
116
+ )),
117
+ run() {
118
+ return true;
119
+ },
120
+ }
121
+ ];
122
+ if (options?.learnMore) {
123
+ buttons.push({
124
+ label: ( localizeWithPath(
125
+ 'vs/workbench/api/browser/mainThreadAuthentication',
126
+ 'learnMore',
127
+ "Learn more"
128
+ )),
129
+ run: async () => {
130
+ const result = this.loginPrompt(providerName, extensionName, recreatingSession, options);
131
+ await this.openerService.open(URI.revive(options.learnMore), { allowCommands: true });
132
+ return await result;
133
+ }
134
+ });
135
+ }
136
+ const { result } = await this.dialogService.prompt({
137
+ type: Severity$1.Info,
138
+ message,
139
+ buttons,
140
+ detail: options?.detail,
141
+ cancelButton: true,
142
+ });
143
+ return result ?? false;
144
+ }
145
+ async doGetSession(providerId, scopes, extensionId, extensionName, options) {
146
+ const sessions = await this.authenticationService.getSessions(providerId, scopes, true);
147
+ const provider = this.authenticationService.getProvider(providerId);
148
+ if (options.forceNewSession && options.createIfNone) {
149
+ throw new Error('Invalid combination of options. Please remove one of the following: forceNewSession, createIfNone');
150
+ }
151
+ if (options.forceNewSession && options.silent) {
152
+ throw new Error('Invalid combination of options. Please remove one of the following: forceNewSession, silent');
153
+ }
154
+ if (options.createIfNone && options.silent) {
155
+ throw new Error('Invalid combination of options. Please remove one of the following: createIfNone, silent');
156
+ }
157
+ if (!options.forceNewSession && sessions.length) {
158
+ if (provider.supportsMultipleAccounts) {
159
+ if (options.clearSessionPreference) {
160
+ this.authenticationExtensionsService.removeSessionPreference(providerId, extensionId, scopes);
161
+ }
162
+ else {
163
+ const existingSessionPreference = this.authenticationExtensionsService.getSessionPreference(providerId, extensionId, scopes);
164
+ if (existingSessionPreference) {
165
+ const matchingSession = sessions.find(session => session.id === existingSessionPreference);
166
+ if (matchingSession && this.authenticationAccessService.isAccessAllowed(providerId, matchingSession.account.label, extensionId)) {
167
+ return matchingSession;
168
+ }
169
+ }
170
+ }
171
+ }
172
+ else if (this.authenticationAccessService.isAccessAllowed(providerId, sessions[0].account.label, extensionId)) {
173
+ return sessions[0];
174
+ }
175
+ }
176
+ if (options.createIfNone || options.forceNewSession) {
177
+ let uiOptions;
178
+ if (typeof options.forceNewSession === 'object') {
179
+ uiOptions = options.forceNewSession;
180
+ }
181
+ const recreatingSession = !!(options.forceNewSession && sessions.length);
182
+ const isAllowed = await this.loginPrompt(provider.label, extensionName, recreatingSession, uiOptions);
183
+ if (!isAllowed) {
184
+ throw new Error('User did not consent to login.');
185
+ }
186
+ let session;
187
+ if (sessions?.length && !options.forceNewSession) {
188
+ session = provider.supportsMultipleAccounts
189
+ ? await this.authenticationExtensionsService.selectSession(providerId, extensionId, extensionName, scopes, sessions)
190
+ : sessions[0];
191
+ }
192
+ else {
193
+ let sessionToRecreate;
194
+ if (typeof options.forceNewSession === 'object' && options.forceNewSession.sessionToRecreate) {
195
+ sessionToRecreate = options.forceNewSession.sessionToRecreate;
196
+ }
197
+ else {
198
+ const sessionIdToRecreate = this.authenticationExtensionsService.getSessionPreference(providerId, extensionId, scopes);
199
+ sessionToRecreate = sessionIdToRecreate ? sessions.find(session => session.id === sessionIdToRecreate) : undefined;
200
+ }
201
+ session = await this.authenticationService.createSession(providerId, scopes, { activateImmediate: true, sessionToRecreate });
202
+ }
203
+ this.authenticationAccessService.updateAllowedExtensions(providerId, session.account.label, [{ id: extensionId, name: extensionName, allowed: true }]);
204
+ this.authenticationExtensionsService.updateSessionPreference(providerId, extensionId, session);
205
+ return session;
206
+ }
207
+ const validSession = sessions.find(session => this.authenticationAccessService.isAccessAllowed(providerId, session.account.label, extensionId));
208
+ if (validSession) {
209
+ return validSession;
210
+ }
211
+ if (!options.silent) {
212
+ sessions.length
213
+ ? this.authenticationExtensionsService.requestSessionAccess(providerId, extensionId, extensionName, scopes, sessions)
214
+ : await this.authenticationExtensionsService.requestNewSession(providerId, scopes, extensionId, extensionName);
215
+ }
216
+ return undefined;
217
+ }
218
+ async $getSession(providerId, scopes, extensionId, extensionName, options) {
219
+ const session = await this.doGetSession(providerId, scopes, extensionId, extensionName, options);
220
+ if (session) {
221
+ this.sendProviderUsageTelemetry(extensionId, providerId);
222
+ this.authenticationUsageService.addAccountUsage(providerId, session.account.label, extensionId, extensionName);
223
+ }
224
+ return session;
225
+ }
226
+ async $getSessions(providerId, scopes, extensionId, extensionName) {
227
+ const sessions = await this.authenticationService.getSessions(providerId, [...scopes], true);
228
+ const accessibleSessions = sessions.filter(s => this.authenticationAccessService.isAccessAllowed(providerId, s.account.label, extensionId));
229
+ if (accessibleSessions.length) {
230
+ this.sendProviderUsageTelemetry(extensionId, providerId);
231
+ for (const session of accessibleSessions) {
232
+ this.authenticationUsageService.addAccountUsage(providerId, session.account.label, extensionId, extensionName);
233
+ }
234
+ }
235
+ return accessibleSessions;
236
+ }
237
+ sendProviderUsageTelemetry(extensionId, providerId) {
238
+ this.telemetryService.publicLog2('authentication.providerUsage', { providerId, extensionId });
239
+ }
240
+ };
241
+ MainThreadAuthentication = __decorate([
242
+ extHostNamedCustomer(MainContext.MainThreadAuthentication),
243
+ ( __param(1, IAuthenticationService)),
244
+ ( __param(2, IAuthenticationExtensionsService)),
245
+ ( __param(3, IAuthenticationAccessService)),
246
+ ( __param(4, IAuthenticationUsageService)),
247
+ ( __param(5, IDialogService)),
248
+ ( __param(6, INotificationService)),
249
+ ( __param(7, IExtensionService)),
250
+ ( __param(8, ITelemetryService)),
251
+ ( __param(9, IOpenerService))
252
+ ], MainThreadAuthentication);
253
+
254
+ export { MainThreadAuthentication, MainThreadAuthenticationProvider };
@@ -0,0 +1,68 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { decodeBase64 } from 'vscode/vscode/vs/base/common/buffer';
3
+ import { revive } from 'vscode/vscode/vs/base/common/marshalling';
4
+ import { IBulkEditService, ResourceTextEdit, ResourceFileEdit } from 'vscode/vscode/vs/editor/browser/services/bulkEditService';
5
+ import { ILogService } from 'vscode/vscode/vs/platform/log/common/log';
6
+ import { IUriIdentityService } from 'vscode/vscode/vs/platform/uriIdentity/common/uriIdentity';
7
+ import { MainContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
8
+ import { ResourceNotebookCellEdit } from 'vscode/vscode/vs/workbench/contrib/bulkEdit/browser/bulkCellEdits';
9
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
10
+
11
+ let MainThreadBulkEdits = class MainThreadBulkEdits {
12
+ constructor(_extHostContext, _bulkEditService, _logService, _uriIdentService) {
13
+ this._bulkEditService = _bulkEditService;
14
+ this._logService = _logService;
15
+ this._uriIdentService = _uriIdentService;
16
+ }
17
+ dispose() { }
18
+ $tryApplyWorkspaceEdit(dto, undoRedoGroupId, isRefactoring) {
19
+ const edits = reviveWorkspaceEditDto(dto, this._uriIdentService);
20
+ return this._bulkEditService.apply(edits, { undoRedoGroupId, respectAutoSaveConfig: isRefactoring }).then((res) => res.isApplied, err => {
21
+ this._logService.warn(`IGNORING workspace edit: ${err}`);
22
+ return false;
23
+ });
24
+ }
25
+ };
26
+ MainThreadBulkEdits = __decorate([
27
+ extHostNamedCustomer(MainContext.MainThreadBulkEdits),
28
+ ( __param(1, IBulkEditService)),
29
+ ( __param(2, ILogService)),
30
+ ( __param(3, IUriIdentityService))
31
+ ], MainThreadBulkEdits);
32
+ function reviveWorkspaceEditDto(data, uriIdentityService, resolveDataTransferFile) {
33
+ if (!data || !data.edits) {
34
+ return data;
35
+ }
36
+ const result = revive(data);
37
+ for (const edit of result.edits) {
38
+ if (ResourceTextEdit.is(edit)) {
39
+ edit.resource = uriIdentityService.asCanonicalUri(edit.resource);
40
+ }
41
+ if (ResourceFileEdit.is(edit)) {
42
+ if (edit.options) {
43
+ const inContents = edit.options?.contents;
44
+ if (inContents) {
45
+ if (inContents.type === 'base64') {
46
+ edit.options.contents = Promise.resolve(decodeBase64(inContents.value));
47
+ }
48
+ else {
49
+ if (resolveDataTransferFile) {
50
+ edit.options.contents = resolveDataTransferFile(inContents.id);
51
+ }
52
+ else {
53
+ throw new Error('Could not revive data transfer file');
54
+ }
55
+ }
56
+ }
57
+ }
58
+ edit.newResource = edit.newResource && uriIdentityService.asCanonicalUri(edit.newResource);
59
+ edit.oldResource = edit.oldResource && uriIdentityService.asCanonicalUri(edit.oldResource);
60
+ }
61
+ if (ResourceNotebookCellEdit.is(edit)) {
62
+ edit.resource = uriIdentityService.asCanonicalUri(edit.resource);
63
+ }
64
+ }
65
+ return data;
66
+ }
67
+
68
+ export { MainThreadBulkEdits, reviveWorkspaceEditDto };