@codingame/monaco-vscode-extension-gallery-service-override 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.
- package/extensionGallery.d.ts +12 -0
- package/extensionGallery.js +76 -0
- package/external/rollup-plugin-styles/dist/runtime/inject-css.js +3 -0
- package/external/tslib/tslib.es6.js +11 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/override/vs/platform/dialogs/common/dialogs.js +8 -0
- package/package.json +30 -0
- package/vscode/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.js +784 -0
- package/vscode/src/vs/platform/extensionManagement/common/extensionEnablementService.js +142 -0
- package/vscode/src/vs/platform/extensionManagement/common/extensionGalleryService.js +855 -0
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementIpc.js +119 -0
- package/vscode/src/vs/platform/extensionManagement/common/extensionTipsService.js +57 -0
- package/vscode/src/vs/platform/extensionManagement/common/unsupportedExtensionsMigration.js +58 -0
- package/vscode/src/vs/platform/externalServices/common/marketplace.js +17 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.js +492 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/browserRuntimeExtensionsEditor.js +28 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/configBasedRecommendations.js +78 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/deprecatedExtensionsChecker.js +87 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/exeBasedRecommendations.js +60 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEditor.js +1868 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEnablementWorkspaceTrustTransitionParticipant.js +52 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationNotificationService.js +437 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendations.js +17 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationsService.js +221 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.contribution.js +2063 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.web.contribution.js +13 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActivationProgress.js +46 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsCompletionItemsProvider.js +65 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsDependencyChecker.js +98 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsList.js +224 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsQuickAccess.js +121 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewer.js +285 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.js +912 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.js +1270 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.js +824 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.js +1730 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.js +324 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/keymapRecommendations.js +28 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/languageRecommendations.js +28 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/extension.css.js +6 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionEditor.css.js +6 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionsViewlet.css.js +6 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionsWidgets.css.js +6 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/runtimeExtensionsEditor.css.js +6 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/remoteRecommendations.js +29 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/unsupportedExtensionsMigrationContribution.js +26 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/webRecommendations.js +38 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/workspaceRecommendations.js +88 -0
- package/vscode/src/vs/workbench/contrib/extensions/common/extensionQuery.js +67 -0
- package/vscode/src/vs/workbench/contrib/extensions/common/extensionsInput.js +43 -0
- package/vscode/src/vs/workbench/contrib/extensions/common/extensionsUtils.js +104 -0
- package/vscode/src/vs/workbench/contrib/extensions/common/reportExtensionIssueAction.js +31 -0
- package/vscode/src/vs/workbench/contrib/extensions/common/runtimeExtensionsInput.js +41 -0
- package/vscode/src/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer.js +207 -0
- package/vscode/src/vs/workbench/contrib/update/common/update.js +3 -0
- package/vscode/src/vs/workbench/services/extensionManagement/browser/builtinExtensionsScannerService.js +84 -0
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.js +634 -0
- package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +883 -0
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementChannelClient.js +109 -0
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementServerService.js +62 -0
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementService.js +633 -0
- package/vscode/src/vs/workbench/services/extensionManagement/common/remoteExtensionManagementService.js +58 -0
- package/vscode/src/vs/workbench/services/extensionManagement/common/webExtensionManagementService.js +269 -0
- package/vscode/src/vs/workbench/services/extensionRecommendations/common/extensionIgnoredRecommendationsService.js +83 -0
- package/vscode/src/vs/workbench/services/remote/common/remoteExtensionsScanner.js +73 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { ExtensionIdentifier } from 'monaco-editor/esm/vs/platform/extensions/common/extensions.js';
|
|
2
|
+
import { ExtensionManagementChannelClient } from '../../../../platform/extensionManagement/common/extensionManagementIpc.js';
|
|
3
|
+
import { Emitter } from 'monaco-editor/esm/vs/base/common/event.js';
|
|
4
|
+
import { delta } from 'monaco-editor/esm/vs/base/common/arrays.js';
|
|
5
|
+
import { compare } from 'monaco-editor/esm/vs/base/common/strings.js';
|
|
6
|
+
|
|
7
|
+
class ProfileAwareExtensionManagementChannelClient extends ExtensionManagementChannelClient {
|
|
8
|
+
constructor(channel, userDataProfileService, uriIdentityService) {
|
|
9
|
+
super(channel);
|
|
10
|
+
this.userDataProfileService = userDataProfileService;
|
|
11
|
+
this.uriIdentityService = uriIdentityService;
|
|
12
|
+
this._onDidChangeProfile = this._register(( new Emitter()));
|
|
13
|
+
this.onDidChangeProfile = this._onDidChangeProfile.event;
|
|
14
|
+
this._register(userDataProfileService.onDidChangeCurrentProfile(e => {
|
|
15
|
+
if (!this.uriIdentityService.extUri.isEqual(e.previous.extensionsResource, e.profile.extensionsResource)) {
|
|
16
|
+
e.join(this.whenProfileChanged(e));
|
|
17
|
+
}
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
async fireEvent(arg0, arg1) {
|
|
21
|
+
if (Array.isArray(arg1)) {
|
|
22
|
+
const event = arg0;
|
|
23
|
+
const data = arg1;
|
|
24
|
+
const filtered = [];
|
|
25
|
+
for (const e of data) {
|
|
26
|
+
const result = this.filterEvent(e);
|
|
27
|
+
if (result instanceof Promise ? await result : result) {
|
|
28
|
+
filtered.push(e);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (filtered.length) {
|
|
32
|
+
event.fire(filtered);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
const event = arg0;
|
|
37
|
+
const data = arg1;
|
|
38
|
+
const result = this.filterEvent(data);
|
|
39
|
+
if (result instanceof Promise ? await result : result) {
|
|
40
|
+
event.fire(data);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async install(vsix, installOptions) {
|
|
45
|
+
installOptions = { ...installOptions, profileLocation: await this.getProfileLocation(installOptions?.profileLocation) };
|
|
46
|
+
return super.install(vsix, installOptions);
|
|
47
|
+
}
|
|
48
|
+
async installFromLocation(location, profileLocation) {
|
|
49
|
+
return super.installFromLocation(location, await this.getProfileLocation(profileLocation));
|
|
50
|
+
}
|
|
51
|
+
async installFromGallery(extension, installOptions) {
|
|
52
|
+
installOptions = { ...installOptions, profileLocation: await this.getProfileLocation(installOptions?.profileLocation) };
|
|
53
|
+
return super.installFromGallery(extension, installOptions);
|
|
54
|
+
}
|
|
55
|
+
async installGalleryExtensions(extensions) {
|
|
56
|
+
const infos = [];
|
|
57
|
+
for (const extension of extensions) {
|
|
58
|
+
infos.push({ ...extension, options: { ...extension.options, profileLocation: extension.options?.profileLocation ? (await this.getProfileLocation(extension.options?.profileLocation)) : undefined } });
|
|
59
|
+
}
|
|
60
|
+
return super.installGalleryExtensions(infos);
|
|
61
|
+
}
|
|
62
|
+
async uninstall(extension, options) {
|
|
63
|
+
options = { ...options, profileLocation: await this.getProfileLocation(options?.profileLocation) };
|
|
64
|
+
return super.uninstall(extension, options);
|
|
65
|
+
}
|
|
66
|
+
async getInstalled(type = null, extensionsProfileResource) {
|
|
67
|
+
return super.getInstalled(type, await this.getProfileLocation(extensionsProfileResource));
|
|
68
|
+
}
|
|
69
|
+
async updateMetadata(local, metadata, extensionsProfileResource) {
|
|
70
|
+
return super.updateMetadata(local, metadata, await this.getProfileLocation(extensionsProfileResource));
|
|
71
|
+
}
|
|
72
|
+
async toggleAppliationScope(local, fromProfileLocation) {
|
|
73
|
+
return super.toggleAppliationScope(local, await this.getProfileLocation(fromProfileLocation));
|
|
74
|
+
}
|
|
75
|
+
async copyExtensions(fromProfileLocation, toProfileLocation) {
|
|
76
|
+
return super.copyExtensions(await this.getProfileLocation(fromProfileLocation), await this.getProfileLocation(toProfileLocation));
|
|
77
|
+
}
|
|
78
|
+
async whenProfileChanged(e) {
|
|
79
|
+
const previousProfileLocation = await this.getProfileLocation(e.previous.extensionsResource);
|
|
80
|
+
const currentProfileLocation = await this.getProfileLocation(e.profile.extensionsResource);
|
|
81
|
+
if (this.uriIdentityService.extUri.isEqual(previousProfileLocation, currentProfileLocation)) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const eventData = await this.switchExtensionsProfile(previousProfileLocation, currentProfileLocation);
|
|
85
|
+
this._onDidChangeProfile.fire(eventData);
|
|
86
|
+
}
|
|
87
|
+
async switchExtensionsProfile(previousProfileLocation, currentProfileLocation, preserveExtensions) {
|
|
88
|
+
const oldExtensions = await this.getInstalled(1 , previousProfileLocation);
|
|
89
|
+
const newExtensions = await this.getInstalled(1 , currentProfileLocation);
|
|
90
|
+
if (preserveExtensions?.length) {
|
|
91
|
+
const extensionsToInstall = [];
|
|
92
|
+
for (const extension of oldExtensions) {
|
|
93
|
+
if (( preserveExtensions.some(id => ExtensionIdentifier.equals(extension.identifier.id, id))) &&
|
|
94
|
+
!( newExtensions.some(e => ExtensionIdentifier.equals(e.identifier.id, extension.identifier.id)))) {
|
|
95
|
+
extensionsToInstall.push(extension.identifier);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
if (extensionsToInstall.length) {
|
|
99
|
+
await this.installExtensionsFromProfile(extensionsToInstall, previousProfileLocation, currentProfileLocation);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return delta(oldExtensions, newExtensions, (a, b) => compare(`${ExtensionIdentifier.toKey(a.identifier.id)}@${a.manifest.version}`, `${ExtensionIdentifier.toKey(b.identifier.id)}@${b.manifest.version}`));
|
|
103
|
+
}
|
|
104
|
+
async getProfileLocation(profileLocation) {
|
|
105
|
+
return profileLocation ?? this.userDataProfileService.currentProfile.extensionsResource;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export { ProfileAwareExtensionManagementChannelClient };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
|
+
import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
|
|
3
|
+
import { IRemoteAgentService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteAgentService';
|
|
4
|
+
import { Schemas } from 'monaco-editor/esm/vs/base/common/network.js';
|
|
5
|
+
import { ILabelService } from 'monaco-editor/esm/vs/platform/label/common/label.js';
|
|
6
|
+
import { isWeb } from 'monaco-editor/esm/vs/base/common/platform.js';
|
|
7
|
+
import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
|
|
8
|
+
import { WebExtensionManagementService } from './webExtensionManagementService.js';
|
|
9
|
+
import { RemoteExtensionManagementService } from './remoteExtensionManagementService.js';
|
|
10
|
+
|
|
11
|
+
let ExtensionManagementServerService = class ExtensionManagementServerService {
|
|
12
|
+
constructor(remoteAgentService, labelService, instantiationService) {
|
|
13
|
+
this.localExtensionManagementServer = null;
|
|
14
|
+
this.remoteExtensionManagementServer = null;
|
|
15
|
+
this.webExtensionManagementServer = null;
|
|
16
|
+
const remoteAgentConnection = remoteAgentService.getConnection();
|
|
17
|
+
if (remoteAgentConnection) {
|
|
18
|
+
const extensionManagementService = instantiationService.createInstance(RemoteExtensionManagementService, remoteAgentConnection.getChannel('extensions'));
|
|
19
|
+
this.remoteExtensionManagementServer = {
|
|
20
|
+
id: 'remote',
|
|
21
|
+
extensionManagementService,
|
|
22
|
+
get label() { return labelService.getHostLabel(Schemas.vscodeRemote, remoteAgentConnection.remoteAuthority) || ( localizeWithPath(
|
|
23
|
+
'vs/workbench/services/extensionManagement/common/extensionManagementServerService',
|
|
24
|
+
'remote',
|
|
25
|
+
"Remote"
|
|
26
|
+
)); },
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
if (isWeb) {
|
|
30
|
+
const extensionManagementService = instantiationService.createInstance(WebExtensionManagementService);
|
|
31
|
+
this.webExtensionManagementServer = {
|
|
32
|
+
id: 'web',
|
|
33
|
+
extensionManagementService,
|
|
34
|
+
label: ( localizeWithPath(
|
|
35
|
+
'vs/workbench/services/extensionManagement/common/extensionManagementServerService',
|
|
36
|
+
'browser',
|
|
37
|
+
"Browser"
|
|
38
|
+
)),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
getExtensionManagementServer(extension) {
|
|
43
|
+
if (extension.location.scheme === Schemas.vscodeRemote) {
|
|
44
|
+
return this.remoteExtensionManagementServer;
|
|
45
|
+
}
|
|
46
|
+
if (this.webExtensionManagementServer) {
|
|
47
|
+
return this.webExtensionManagementServer;
|
|
48
|
+
}
|
|
49
|
+
throw new Error(`Invalid Extension ${extension.location}`);
|
|
50
|
+
}
|
|
51
|
+
getExtensionInstallLocation(extension) {
|
|
52
|
+
const server = this.getExtensionManagementServer(extension);
|
|
53
|
+
return server === this.remoteExtensionManagementServer ? 2 : 3 ;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
ExtensionManagementServerService = ( __decorate([
|
|
57
|
+
( __param(0, IRemoteAgentService)),
|
|
58
|
+
( __param(1, ILabelService)),
|
|
59
|
+
( __param(2, IInstantiationService))
|
|
60
|
+
], ExtensionManagementServerService));
|
|
61
|
+
|
|
62
|
+
export { ExtensionManagementServerService };
|