@codingame/monaco-vscode-extension-gallery-service-override 22.1.8 → 23.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +1 -1
- package/package.json +11 -10
- package/vscode/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.js +16 -16
- package/vscode/src/vs/platform/extensionManagement/common/allowedExtensionsService.js +5 -5
- package/vscode/src/vs/platform/extensionManagement/common/extensionGalleryService.d.ts +5 -8
- package/vscode/src/vs/platform/extensionManagement/common/extensionGalleryService.js +65 -108
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementIpc.d.ts +5 -5
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.web.contribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/common/reportExtensionIssueAction.js +1 -1
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.d.ts +6 -1
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.js +38 -16
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionFeaturesManagemetService.js +4 -4
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionGalleryService.d.ts +1 -2
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionGalleryService.js +11 -13
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementServerService.js +2 -2
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementService.js +47 -47
package/index.js
CHANGED
|
@@ -11,7 +11,7 @@ import { IExtensionRecommendationNotificationService } from '@codingame/monaco-v
|
|
|
11
11
|
import { SyncDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/descriptors';
|
|
12
12
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
13
13
|
import { ILabelService } from '@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service';
|
|
14
|
-
import { getLocale } from '@codingame/monaco-vscode-
|
|
14
|
+
import { getLocale } from '@codingame/monaco-vscode-2a04f0cd-b806-5886-909e-418183d32279-common/vscode/vs/platform/languagePacks/common/languagePacks';
|
|
15
15
|
import { IgnoredExtensionsManagementService } from './vscode/src/vs/platform/userDataSync/common/ignoredExtensions.js';
|
|
16
16
|
import { IIgnoredExtensionsManagementService } from '@codingame/monaco-vscode-api/vscode/vs/platform/userDataSync/common/ignoredExtensions.service';
|
|
17
17
|
import { ExtensionRecommendationNotificationService } from '@codingame/monaco-vscode-2673c6e2-17c1-5710-b169-46f3d4a28696-common/vscode/vs/workbench/contrib/extensions/browser/extensionRecommendationNotificationService';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-extension-gallery-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "23.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - extension-gallery service-override",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,15 +15,16 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-23aade48-f094-5c08-9555-97fc9cca96c9-common": "
|
|
19
|
-
"@codingame/monaco-vscode-249dc928-1da3-51c1-82d0-45e0ba9d08a1-common": "
|
|
20
|
-
"@codingame/monaco-vscode-2673c6e2-17c1-5710-b169-46f3d4a28696-common": "
|
|
21
|
-
"@codingame/monaco-vscode-
|
|
22
|
-
"@codingame/monaco-vscode-
|
|
23
|
-
"@codingame/monaco-vscode-
|
|
24
|
-
"@codingame/monaco-vscode-
|
|
25
|
-
"@codingame/monaco-vscode-
|
|
26
|
-
"@codingame/monaco-vscode-
|
|
18
|
+
"@codingame/monaco-vscode-23aade48-f094-5c08-9555-97fc9cca96c9-common": "23.0.0",
|
|
19
|
+
"@codingame/monaco-vscode-249dc928-1da3-51c1-82d0-45e0ba9d08a1-common": "23.0.0",
|
|
20
|
+
"@codingame/monaco-vscode-2673c6e2-17c1-5710-b169-46f3d4a28696-common": "23.0.0",
|
|
21
|
+
"@codingame/monaco-vscode-2a04f0cd-b806-5886-909e-418183d32279-common": "23.0.0",
|
|
22
|
+
"@codingame/monaco-vscode-571c8352-7953-5038-9f09-e03bb6219a0e-common": "23.0.0",
|
|
23
|
+
"@codingame/monaco-vscode-60014c9d-b815-501d-83a9-4b08725c2ec2-common": "23.0.0",
|
|
24
|
+
"@codingame/monaco-vscode-7b19b93e-7a49-5c48-81f5-091a64f468d2-common": "23.0.0",
|
|
25
|
+
"@codingame/monaco-vscode-8c844347-a703-5de1-9eeb-5e0c7f503a58-common": "23.0.0",
|
|
26
|
+
"@codingame/monaco-vscode-9ed6fe06-a052-57c2-a234-5d9b94d2e7e0-common": "23.0.0",
|
|
27
|
+
"@codingame/monaco-vscode-api": "23.0.0"
|
|
27
28
|
},
|
|
28
29
|
"main": "index.js",
|
|
29
30
|
"module": "index.js",
|
package/vscode/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.js
CHANGED
|
@@ -33,7 +33,7 @@ let CommontExtensionManagementService = class CommontExtensionManagementService
|
|
|
33
33
|
const allowedToInstall = this.allowedExtensionsService.isAllowed({ id: extension.identifier.id, publisherDisplayName: extension.publisherDisplayName });
|
|
34
34
|
if (allowedToInstall !== true) {
|
|
35
35
|
return (new MarkdownString(localize(
|
|
36
|
-
|
|
36
|
+
1790,
|
|
37
37
|
"This extension cannot be installed because {0}",
|
|
38
38
|
allowedToInstall.value
|
|
39
39
|
)));
|
|
@@ -41,12 +41,12 @@ let CommontExtensionManagementService = class CommontExtensionManagementService
|
|
|
41
41
|
if (!(await this.isExtensionPlatformCompatible(extension))) {
|
|
42
42
|
const learnLink = isWeb ? 'https://aka.ms/vscode-web-extensions-guide' : 'https://aka.ms/vscode-platform-specific-extensions';
|
|
43
43
|
return (new MarkdownString(`${( localize(
|
|
44
|
-
|
|
44
|
+
1791,
|
|
45
45
|
"The '{0}' extension is not available in {1} for the {2}.",
|
|
46
46
|
extension.displayName ?? extension.identifier.id,
|
|
47
47
|
this.productService.nameLong,
|
|
48
48
|
TargetPlatformToString(await this.getTargetPlatform())
|
|
49
|
-
))} [${( localize(
|
|
49
|
+
))} [${( localize(1792, "Learn Why"))}](${learnLink})`));
|
|
50
50
|
}
|
|
51
51
|
return true;
|
|
52
52
|
}
|
|
@@ -111,7 +111,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
111
111
|
}
|
|
112
112
|
async installGalleryExtensions(extensions) {
|
|
113
113
|
if (!this.galleryService.isEnabled()) {
|
|
114
|
-
throw ( new ExtensionManagementError(( localize(
|
|
114
|
+
throw ( new ExtensionManagementError(( localize(1793, "Marketplace is not enabled")), ExtensionManagementErrorCode.NotAllowed));
|
|
115
115
|
}
|
|
116
116
|
const results = [];
|
|
117
117
|
const installableExtensions = [];
|
|
@@ -547,7 +547,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
547
547
|
const extensionsControlManifest = await this.getExtensionsControlManifest();
|
|
548
548
|
if (isMalicious(extension.identifier, extensionsControlManifest.malicious)) {
|
|
549
549
|
throw ( new ExtensionManagementError(( localize(
|
|
550
|
-
|
|
550
|
+
1794,
|
|
551
551
|
"Can't install '{0}' extension since it was reported to be problematic.",
|
|
552
552
|
extension.identifier.id
|
|
553
553
|
)), ExtensionManagementErrorCode.Malicious));
|
|
@@ -558,7 +558,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
558
558
|
compatibleExtension = (await this.galleryService.getExtensions([{ id: deprecationInfo.extension.id, preRelease: deprecationInfo.extension.preRelease }], { targetPlatform: await this.getTargetPlatform(), compatible: true, productVersion }, CancellationToken.None))[0];
|
|
559
559
|
if (!compatibleExtension) {
|
|
560
560
|
throw ( new ExtensionManagementError(( localize(
|
|
561
|
-
|
|
561
|
+
1795,
|
|
562
562
|
"Can't install '{0}' extension since it was deprecated and the replacement extension '{1}' can't be found.",
|
|
563
563
|
extension.identifier.id,
|
|
564
564
|
deprecationInfo.extension.id
|
|
@@ -569,7 +569,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
569
569
|
if ((await this.canInstall(extension)) !== true) {
|
|
570
570
|
const targetPlatform = await this.getTargetPlatform();
|
|
571
571
|
throw ( new ExtensionManagementError(( localize(
|
|
572
|
-
|
|
572
|
+
1791,
|
|
573
573
|
"The '{0}' extension is not available in {1} for the {2}.",
|
|
574
574
|
extension.identifier.id,
|
|
575
575
|
this.productService.nameLong,
|
|
@@ -581,7 +581,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
581
581
|
const incompatibleApiProposalsMessages = [];
|
|
582
582
|
if (!areApiProposalsCompatible(extension.properties.enabledApiProposals ?? [], incompatibleApiProposalsMessages)) {
|
|
583
583
|
throw ( new ExtensionManagementError(( localize(
|
|
584
|
-
|
|
584
|
+
1796,
|
|
585
585
|
"Can't install '{0}' extension. {1}",
|
|
586
586
|
extension.displayName ?? extension.identifier.id,
|
|
587
587
|
incompatibleApiProposalsMessages[0]
|
|
@@ -589,13 +589,13 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
589
589
|
}
|
|
590
590
|
if (!installPreRelease && extension.hasPreReleaseVersion && extension.properties.isPreReleaseVersion && (await this.galleryService.getExtensions([extension.identifier], CancellationToken.None))[0]) {
|
|
591
591
|
throw ( new ExtensionManagementError(( localize(
|
|
592
|
-
|
|
592
|
+
1797,
|
|
593
593
|
"Can't install release version of '{0}' extension because it has no release version.",
|
|
594
594
|
extension.displayName ?? extension.identifier.id
|
|
595
595
|
)), ExtensionManagementErrorCode.ReleaseVersionNotFound));
|
|
596
596
|
}
|
|
597
597
|
throw ( new ExtensionManagementError(( localize(
|
|
598
|
-
|
|
598
|
+
1798,
|
|
599
599
|
"Can't install '{0}' extension because it is not compatible with the current version of {1} (version {2}).",
|
|
600
600
|
extension.identifier.id,
|
|
601
601
|
this.productService.nameLong,
|
|
@@ -820,7 +820,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
820
820
|
if (extensionToUninstall === dependingExtension) {
|
|
821
821
|
if (dependents.length === 1) {
|
|
822
822
|
return localize(
|
|
823
|
-
|
|
823
|
+
1799,
|
|
824
824
|
"Cannot uninstall '{0}' extension. '{1}' extension depends on this.",
|
|
825
825
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
826
826
|
dependents[0].manifest.displayName || dependents[0].manifest.name
|
|
@@ -828,7 +828,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
828
828
|
}
|
|
829
829
|
if (dependents.length === 2) {
|
|
830
830
|
return localize(
|
|
831
|
-
|
|
831
|
+
1800,
|
|
832
832
|
"Cannot uninstall '{0}' extension. '{1}' and '{2}' extensions depend on this.",
|
|
833
833
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
834
834
|
dependents[0].manifest.displayName || dependents[0].manifest.name,
|
|
@@ -836,7 +836,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
836
836
|
);
|
|
837
837
|
}
|
|
838
838
|
return localize(
|
|
839
|
-
|
|
839
|
+
1801,
|
|
840
840
|
"Cannot uninstall '{0}' extension. '{1}', '{2}' and other extension depend on this.",
|
|
841
841
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
842
842
|
dependents[0].manifest.displayName || dependents[0].manifest.name,
|
|
@@ -845,7 +845,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
845
845
|
}
|
|
846
846
|
if (dependents.length === 1) {
|
|
847
847
|
return localize(
|
|
848
|
-
|
|
848
|
+
1802,
|
|
849
849
|
"Cannot uninstall '{0}' extension . It includes uninstalling '{1}' extension and '{2}' extension depends on this.",
|
|
850
850
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
851
851
|
dependingExtension.manifest.displayName
|
|
@@ -855,7 +855,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
855
855
|
}
|
|
856
856
|
if (dependents.length === 2) {
|
|
857
857
|
return localize(
|
|
858
|
-
|
|
858
|
+
1803,
|
|
859
859
|
"Cannot uninstall '{0}' extension. It includes uninstalling '{1}' extension and '{2}' and '{3}' extensions depend on this.",
|
|
860
860
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
861
861
|
dependingExtension.manifest.displayName
|
|
@@ -865,7 +865,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
865
865
|
);
|
|
866
866
|
}
|
|
867
867
|
return localize(
|
|
868
|
-
|
|
868
|
+
1804,
|
|
869
869
|
"Cannot uninstall '{0}' extension. It includes uninstalling '{1}' extension and '{2}', '{3}' and other extensions depend on this.",
|
|
870
870
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
871
871
|
dependingExtension.manifest.displayName
|
|
@@ -77,14 +77,14 @@ let AllowedExtensionsService = class AllowedExtensionsService extends Disposable
|
|
|
77
77
|
}
|
|
78
78
|
const settingsCommandLink = ( createCommandUri('workbench.action.openSettings', { query: `@id:${AllowedExtensionsConfigKey}` }).toString());
|
|
79
79
|
const extensionValue = this._allowedExtensionsConfigValue[id];
|
|
80
|
-
const extensionReason = ( new MarkdownString(( localize(
|
|
80
|
+
const extensionReason = ( new MarkdownString(( localize(1805, "it is not in the [allowed list]({0})", settingsCommandLink))));
|
|
81
81
|
if (!isUndefined(extensionValue)) {
|
|
82
82
|
if (isBoolean(extensionValue)) {
|
|
83
83
|
return extensionValue ? true : extensionReason;
|
|
84
84
|
}
|
|
85
85
|
if (extensionValue === 'stable' && prerelease) {
|
|
86
86
|
return (new MarkdownString(localize(
|
|
87
|
-
|
|
87
|
+
1806,
|
|
88
88
|
"the pre-release versions of this extension are not in the [allowed list]({0})",
|
|
89
89
|
settingsCommandLink
|
|
90
90
|
)));
|
|
@@ -104,7 +104,7 @@ let AllowedExtensionsService = class AllowedExtensionsService extends Disposable
|
|
|
104
104
|
return false;
|
|
105
105
|
}))) {
|
|
106
106
|
return (new MarkdownString(localize(
|
|
107
|
-
|
|
107
|
+
1807,
|
|
108
108
|
"the version {0} of this extension is not in the [allowed list]({1})",
|
|
109
109
|
version,
|
|
110
110
|
settingsCommandLink
|
|
@@ -117,7 +117,7 @@ let AllowedExtensionsService = class AllowedExtensionsService extends Disposable
|
|
|
117
117
|
if (!isUndefined(publisherValue)) {
|
|
118
118
|
if (isBoolean(publisherValue)) {
|
|
119
119
|
return publisherValue ? true : ( new MarkdownString(( localize(
|
|
120
|
-
|
|
120
|
+
1808,
|
|
121
121
|
"the extensions from this publisher are not in the [allowed list]({1})",
|
|
122
122
|
publisherKey,
|
|
123
123
|
settingsCommandLink
|
|
@@ -125,7 +125,7 @@ let AllowedExtensionsService = class AllowedExtensionsService extends Disposable
|
|
|
125
125
|
}
|
|
126
126
|
if (publisherValue === 'stable' && prerelease) {
|
|
127
127
|
return (new MarkdownString(localize(
|
|
128
|
-
|
|
128
|
+
1809,
|
|
129
129
|
"the pre-release versions from this publisher are not in the [allowed list]({1})",
|
|
130
130
|
publisherKey,
|
|
131
131
|
settingsCommandLink
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
|
|
2
|
-
import { IPager } from "@codingame/monaco-vscode-
|
|
2
|
+
import { IPager } from "@codingame/monaco-vscode-2eda793f-4b5b-58e8-83c5-1bfd3bad15f1-common/vscode/vs/base/common/paging";
|
|
3
3
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
4
4
|
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
5
5
|
import { IEnvironmentService } from "@codingame/monaco-vscode-api/vscode/vs/platform/environment/common/environment.service";
|
|
@@ -13,7 +13,6 @@ import { IProductService } from "@codingame/monaco-vscode-api/vscode/vs/platform
|
|
|
13
13
|
import { IRequestService } from "@codingame/monaco-vscode-api/vscode/vs/platform/request/common/request.service";
|
|
14
14
|
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
|
|
15
15
|
import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
|
|
16
|
-
import { IAssignmentService } from "@codingame/monaco-vscode-api/vscode/vs/platform/assignment/common/assignment";
|
|
17
16
|
import { IExtensionGalleryManifestService } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionGalleryManifest.service";
|
|
18
17
|
interface IRawGalleryExtensionFile {
|
|
19
18
|
readonly assetType: string;
|
|
@@ -33,8 +32,8 @@ export interface IRawGalleryExtensionVersion {
|
|
|
33
32
|
readonly targetPlatform?: string;
|
|
34
33
|
}
|
|
35
34
|
export declare function sortExtensionVersions(versions: IRawGalleryExtensionVersion[], preferredTargetPlatform: TargetPlatform): IRawGalleryExtensionVersion[];
|
|
35
|
+
export declare function filterLatestExtensionVersionsForTargetPlatform(versions: IRawGalleryExtensionVersion[], targetPlatform: TargetPlatform, allTargetPlatforms: TargetPlatform[]): IRawGalleryExtensionVersion[];
|
|
36
36
|
export declare abstract class AbstractExtensionGalleryService implements IExtensionGalleryService {
|
|
37
|
-
private readonly assignmentService;
|
|
38
37
|
private readonly requestService;
|
|
39
38
|
private readonly logService;
|
|
40
39
|
private readonly environmentService;
|
|
@@ -49,7 +48,7 @@ export declare abstract class AbstractExtensionGalleryService implements IExtens
|
|
|
49
48
|
private readonly unpkgResourceApi;
|
|
50
49
|
private readonly commonHeadersPromise;
|
|
51
50
|
private readonly extensionsEnabledWithApiProposalVersion;
|
|
52
|
-
constructor(storageService: IStorageService | undefined,
|
|
51
|
+
constructor(storageService: IStorageService | undefined, requestService: IRequestService, logService: ILogService, environmentService: IEnvironmentService, telemetryService: ITelemetryService, fileService: IFileService, productService: IProductService, configurationService: IConfigurationService, allowedExtensionsService: IAllowedExtensionsService, extensionGalleryManifestService: IExtensionGalleryManifestService);
|
|
53
52
|
isEnabled(): boolean;
|
|
54
53
|
getExtensions(extensionInfos: ReadonlyArray<IExtensionInfo>, token: CancellationToken): Promise<IGalleryExtension[]>;
|
|
55
54
|
getExtensions(extensionInfos: ReadonlyArray<IExtensionInfo>, options: IExtensionQueryOptions, token: CancellationToken): Promise<IGalleryExtension[]>;
|
|
@@ -64,10 +63,7 @@ export declare abstract class AbstractExtensionGalleryService implements IExtens
|
|
|
64
63
|
private isEngineValid;
|
|
65
64
|
query(options: IQueryOptions, token: CancellationToken): Promise<IPager<IGalleryExtension>>;
|
|
66
65
|
private queryGalleryExtensions;
|
|
67
|
-
private
|
|
68
|
-
private queryGalleryExtensionsUsingIncludeLatestPrereleaseAndStableVersionFlag;
|
|
69
|
-
private getRawGalleryExtensionVersionsToValidate;
|
|
70
|
-
private getRawGalleryExtensionVersion;
|
|
66
|
+
private getValidRawGalleryExtensionVersion;
|
|
71
67
|
private queryRawGalleryExtensions;
|
|
72
68
|
private getHeaderValue;
|
|
73
69
|
private getLatestRawGalleryExtensionWithFallback;
|
|
@@ -84,6 +80,7 @@ export declare abstract class AbstractExtensionGalleryService implements IExtens
|
|
|
84
80
|
private getVersions;
|
|
85
81
|
private getAsset;
|
|
86
82
|
getExtensionsControlManifest(): Promise<IExtensionsControlManifest>;
|
|
83
|
+
private getRequestTimeout;
|
|
87
84
|
}
|
|
88
85
|
export declare class ExtensionGalleryService extends AbstractExtensionGalleryService {
|
|
89
86
|
constructor(storageService: IStorageService, requestService: IRequestService, logService: ILogService, environmentService: IEnvironmentService, telemetryService: ITelemetryService, fileService: IFileService, productService: IProductService, configurationService: IConfigurationService, allowedExtensionsService: IAllowedExtensionsService, extensionGalleryManifestService: IExtensionGalleryManifestService);
|
|
@@ -6,12 +6,12 @@ import { semverExports } from '@codingame/monaco-vscode-api/_virtual/semver';
|
|
|
6
6
|
import { getErrorMessage, CancellationError, isCancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
7
7
|
import { isWeb, platform } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
|
|
8
8
|
import { arch } from '@codingame/monaco-vscode-api/vscode/vs/base/common/process';
|
|
9
|
-
import { isString, isBoolean } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
9
|
+
import { isString, isBoolean, isNumber } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
10
10
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
11
11
|
import { isOfflineError } from '@codingame/monaco-vscode-23aade48-f094-5c08-9555-97fc9cca96c9-common/vscode/vs/base/parts/request/common/request';
|
|
12
12
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
13
13
|
import { IEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/platform/environment/common/environment.service';
|
|
14
|
-
import { getTargetPlatform, SortOrder, SortBy, FilterType, toTargetPlatform, WEB_EXTENSION_TAG, EXTENSION_IDENTIFIER_REGEX, ExtensionGalleryError, ExtensionGalleryErrorCode, isNotWebExtensionInWebTargetPlatform,
|
|
14
|
+
import { getTargetPlatform, SortOrder, SortBy, FilterType, toTargetPlatform, WEB_EXTENSION_TAG, isTargetPlatformCompatible, EXTENSION_IDENTIFIER_REGEX, ExtensionGalleryError, ExtensionGalleryErrorCode, isNotWebExtensionInWebTargetPlatform, StatisticType, InstallOperation, ExtensionRequestsTimeoutConfigKey } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionManagement';
|
|
15
15
|
import { IAllowedExtensionsService } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionManagement.service';
|
|
16
16
|
import { adoptToGalleryExtensionId, getGalleryExtensionId, areSameExtensions, getGalleryExtensionTelemetryData } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionManagementUtil';
|
|
17
17
|
import { TargetPlatform } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions';
|
|
@@ -35,7 +35,6 @@ const SEARCH_ACTIVITY_HEADER_NAME = 'X-Market-Search-Activity-Id';
|
|
|
35
35
|
const ACTIVITY_HEADER_NAME = 'Activityid';
|
|
36
36
|
const SERVER_HEADER_NAME = 'Server';
|
|
37
37
|
const END_END_ID_HEADER_NAME = 'X-Vss-E2eid';
|
|
38
|
-
const REQUEST_TIME_OUT = 10_000;
|
|
39
38
|
const AssetType = {
|
|
40
39
|
Icon: 'Microsoft.VisualStudio.Services.Icons.Default',
|
|
41
40
|
Details: 'Microsoft.VisualStudio.Services.Content.Details',
|
|
@@ -237,6 +236,32 @@ function sortExtensionVersions(versions, preferredTargetPlatform) {
|
|
|
237
236
|
}
|
|
238
237
|
return versions;
|
|
239
238
|
}
|
|
239
|
+
function filterLatestExtensionVersionsForTargetPlatform(versions, targetPlatform, allTargetPlatforms) {
|
|
240
|
+
const latestVersions = [];
|
|
241
|
+
let preReleaseVersionFoundForTargetPlatform = false;
|
|
242
|
+
let releaseVersionFoundForTargetPlatform = false;
|
|
243
|
+
for (const version of versions) {
|
|
244
|
+
const versionTargetPlatform = getTargetPlatformForExtensionVersion(version);
|
|
245
|
+
const isCompatibleWithTargetPlatform = isTargetPlatformCompatible(versionTargetPlatform, allTargetPlatforms, targetPlatform);
|
|
246
|
+
if (!isCompatibleWithTargetPlatform) {
|
|
247
|
+
latestVersions.push(version);
|
|
248
|
+
continue;
|
|
249
|
+
}
|
|
250
|
+
if (isPreReleaseVersion(version)) {
|
|
251
|
+
if (!preReleaseVersionFoundForTargetPlatform) {
|
|
252
|
+
preReleaseVersionFoundForTargetPlatform = true;
|
|
253
|
+
latestVersions.push(version);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
if (!releaseVersionFoundForTargetPlatform) {
|
|
258
|
+
releaseVersionFoundForTargetPlatform = true;
|
|
259
|
+
latestVersions.push(version);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
return latestVersions;
|
|
264
|
+
}
|
|
240
265
|
function setTelemetry(extension, index, querySource) {
|
|
241
266
|
extension.telemetryData = { index, querySource, queryActivityId: extension.queryContext?.[SEARCH_ACTIVITY_HEADER_NAME] };
|
|
242
267
|
}
|
|
@@ -304,8 +329,7 @@ function toExtension(galleryExtension, version, allTargetPlatforms, extensionGal
|
|
|
304
329
|
};
|
|
305
330
|
}
|
|
306
331
|
let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
307
|
-
constructor(storageService,
|
|
308
|
-
this.assignmentService = assignmentService;
|
|
332
|
+
constructor(storageService, requestService, logService, environmentService, telemetryService, fileService, productService, configurationService, allowedExtensionsService, extensionGalleryManifestService) {
|
|
309
333
|
this.requestService = requestService;
|
|
310
334
|
this.logService = logService;
|
|
311
335
|
this.environmentService = environmentService;
|
|
@@ -426,13 +450,16 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
426
450
|
let galleryExtension;
|
|
427
451
|
try {
|
|
428
452
|
galleryExtension = await this.getLatestGalleryExtension(extensionInfo, options, resourceApi, extensionGalleryManifest, token);
|
|
429
|
-
if (galleryExtension
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
453
|
+
if (isString(galleryExtension)) {
|
|
454
|
+
this.telemetryService.publicLog2('galleryService:fallbacktoquery', {
|
|
455
|
+
extension: extensionInfo.id,
|
|
456
|
+
preRelease: !!extensionInfo.preRelease,
|
|
457
|
+
compatible: !!options.compatible,
|
|
458
|
+
errorCode: galleryExtension
|
|
459
|
+
});
|
|
460
|
+
toQuery.push(extensionInfo);
|
|
434
461
|
}
|
|
435
|
-
|
|
462
|
+
else {
|
|
436
463
|
result.push(galleryExtension);
|
|
437
464
|
}
|
|
438
465
|
}
|
|
@@ -466,20 +493,21 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
466
493
|
if (!rawGalleryExtension) {
|
|
467
494
|
return 'NOT_FOUND';
|
|
468
495
|
}
|
|
496
|
+
const targetPlatform = options.targetPlatform ?? CURRENT_TARGET_PLATFORM;
|
|
469
497
|
const allTargetPlatforms = getAllTargetPlatforms(rawGalleryExtension);
|
|
470
|
-
const rawGalleryExtensionVersion = await this.
|
|
471
|
-
targetPlatform
|
|
498
|
+
const rawGalleryExtensionVersion = await this.getValidRawGalleryExtensionVersion(rawGalleryExtension, filterLatestExtensionVersionsForTargetPlatform(rawGalleryExtension.versions, targetPlatform, allTargetPlatforms), {
|
|
499
|
+
targetPlatform,
|
|
472
500
|
compatible: !!options.compatible,
|
|
473
501
|
productVersion: options.productVersion ?? {
|
|
474
502
|
version: this.productService.version,
|
|
475
503
|
date: this.productService.date
|
|
476
504
|
},
|
|
477
505
|
version: extensionInfo.preRelease ? VersionKind.Latest : VersionKind.Release
|
|
478
|
-
}, allTargetPlatforms
|
|
506
|
+
}, allTargetPlatforms);
|
|
479
507
|
if (rawGalleryExtensionVersion) {
|
|
480
508
|
return toExtension(rawGalleryExtension, rawGalleryExtensionVersion, allTargetPlatforms, extensionGalleryManifest, this.productService);
|
|
481
509
|
}
|
|
482
|
-
return
|
|
510
|
+
return 'NOT_COMPATIBLE';
|
|
483
511
|
}
|
|
484
512
|
async getCompatibleExtension(extension, includePreRelease, targetPlatform, productVersion = { version: this.productService.version, date: this.productService.date }) {
|
|
485
513
|
if (isNotWebExtensionInWebTargetPlatform(extension.allTargetPlatforms, targetPlatform)) {
|
|
@@ -648,13 +676,6 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
648
676
|
return { firstPage: extensions, total, pageSize: query.pageSize, getPage };
|
|
649
677
|
}
|
|
650
678
|
async queryGalleryExtensions(query, criteria, extensionGalleryManifest, token) {
|
|
651
|
-
if (this.productService.quality !== 'stable'
|
|
652
|
-
&& (await this.assignmentService?.getTreatment('useLatestPrereleaseAndStableVersionFlag'))) {
|
|
653
|
-
return this.queryGalleryExtensionsUsingIncludeLatestPrereleaseAndStableVersionFlag(query, criteria, extensionGalleryManifest, token);
|
|
654
|
-
}
|
|
655
|
-
return this.queryGalleryExtensionsWithAllVersionsAsFallback(query, criteria, extensionGalleryManifest, token);
|
|
656
|
-
}
|
|
657
|
-
async queryGalleryExtensionsWithAllVersionsAsFallback(query, criteria, extensionGalleryManifest, token) {
|
|
658
679
|
const flags = query.flags;
|
|
659
680
|
if (query.flags.includes(Flag.IncludeLatestVersionOnly) && query.flags.includes(Flag.IncludeVersions)) {
|
|
660
681
|
query = query.withFlags(...query.flags.filter(flag => flag !== Flag.IncludeVersions));
|
|
@@ -674,7 +695,7 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
674
695
|
const allTargetPlatforms = getAllTargetPlatforms(rawGalleryExtension);
|
|
675
696
|
const extensionIdentifier = { id: getGalleryExtensionId(rawGalleryExtension.publisher.publisherName, rawGalleryExtension.extensionName), uuid: rawGalleryExtension.extensionId };
|
|
676
697
|
const includePreRelease = isBoolean(criteria.includePreRelease) ? criteria.includePreRelease : !!criteria.includePreRelease.find(extensionIdentifierWithPreRelease => areSameExtensions(extensionIdentifierWithPreRelease, extensionIdentifier))?.includePreRelease;
|
|
677
|
-
const rawGalleryExtensionVersion = await this.
|
|
698
|
+
const rawGalleryExtensionVersion = await this.getValidRawGalleryExtensionVersion(rawGalleryExtension, rawGalleryExtension.versions, {
|
|
678
699
|
compatible: criteria.compatible,
|
|
679
700
|
targetPlatform: criteria.targetPlatform,
|
|
680
701
|
productVersion: criteria.productVersion,
|
|
@@ -702,7 +723,7 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
702
723
|
continue;
|
|
703
724
|
}
|
|
704
725
|
}
|
|
705
|
-
const rawGalleryExtensionVersion = await this.
|
|
726
|
+
const rawGalleryExtensionVersion = await this.getValidRawGalleryExtensionVersion(rawGalleryExtension, rawGalleryExtension.versions, {
|
|
706
727
|
compatible: criteria.compatible,
|
|
707
728
|
targetPlatform: criteria.targetPlatform,
|
|
708
729
|
productVersion: criteria.productVersion,
|
|
@@ -737,77 +758,9 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
737
758
|
}
|
|
738
759
|
return { extensions: ( result.sort((a, b) => a[0] - b[0]).map(([, extension]) => extension)), total };
|
|
739
760
|
}
|
|
740
|
-
async
|
|
741
|
-
if (criteria.versions?.length) {
|
|
742
|
-
query = query.withFlags(...query.flags.filter(flag => flag !== Flag.IncludeLatestVersionOnly && flag !== Flag.IncludeLatestPrereleaseAndStableVersionOnly), Flag.IncludeVersions);
|
|
743
|
-
}
|
|
744
|
-
else if (!query.flags.includes(Flag.IncludeVersions)) {
|
|
745
|
-
const includeLatest = isBoolean(criteria.includePreRelease) ? criteria.includePreRelease : criteria.includePreRelease.every(({ includePreRelease }) => includePreRelease);
|
|
746
|
-
query = includeLatest ? query.withFlags(...query.flags.filter(flag => flag !== Flag.IncludeLatestPrereleaseAndStableVersionOnly), Flag.IncludeLatestVersionOnly) : query.withFlags(...query.flags.filter(flag => flag !== Flag.IncludeLatestVersionOnly), Flag.IncludeLatestPrereleaseAndStableVersionOnly);
|
|
747
|
-
}
|
|
748
|
-
if (query.flags.includes(Flag.IncludeVersions) && (query.flags.includes(Flag.IncludeLatestVersionOnly) || query.flags.includes(Flag.IncludeLatestPrereleaseAndStableVersionOnly))) {
|
|
749
|
-
query = query.withFlags(...query.flags.filter(flag => flag !== Flag.IncludeLatestVersionOnly && flag !== Flag.IncludeLatestPrereleaseAndStableVersionOnly), Flag.IncludeVersions);
|
|
750
|
-
}
|
|
751
|
-
query = query.withFlags(...query.flags, Flag.IncludeAssetUri, Flag.IncludeCategoryAndTags, Flag.IncludeFiles, Flag.IncludeStatistics, Flag.IncludeVersionProperties);
|
|
752
|
-
const { galleryExtensions: rawGalleryExtensions, total, context } = await this.queryRawGalleryExtensions(query, extensionGalleryManifest, token);
|
|
753
|
-
const extensions = [];
|
|
754
|
-
for (let index = 0; index < rawGalleryExtensions.length; index++) {
|
|
755
|
-
const rawGalleryExtension = rawGalleryExtensions[index];
|
|
756
|
-
const extensionIdentifier = { id: getGalleryExtensionId(rawGalleryExtension.publisher.publisherName, rawGalleryExtension.extensionName), uuid: rawGalleryExtension.extensionId };
|
|
757
|
-
const allTargetPlatforms = getAllTargetPlatforms(rawGalleryExtension);
|
|
758
|
-
if (criteria.compatible) {
|
|
759
|
-
if (isNotWebExtensionInWebTargetPlatform(allTargetPlatforms, criteria.targetPlatform)) {
|
|
760
|
-
continue;
|
|
761
|
-
}
|
|
762
|
-
if (this.allowedExtensionsService.isAllowed({ id: extensionIdentifier.id, publisherDisplayName: rawGalleryExtension.publisher.displayName }) !== true) {
|
|
763
|
-
continue;
|
|
764
|
-
}
|
|
765
|
-
}
|
|
766
|
-
const version = criteria.versions?.find(extensionIdentifierWithVersion => areSameExtensions(extensionIdentifierWithVersion, extensionIdentifier))?.version
|
|
767
|
-
?? ((isBoolean(criteria.includePreRelease) ? criteria.includePreRelease : !!criteria.includePreRelease.find(extensionIdentifierWithPreRelease => areSameExtensions(extensionIdentifierWithPreRelease, extensionIdentifier))?.includePreRelease) ? VersionKind.Latest : VersionKind.Release);
|
|
768
|
-
const rawGalleryExtensionVersion = await this.getRawGalleryExtensionVersion(rawGalleryExtension, {
|
|
769
|
-
compatible: criteria.compatible,
|
|
770
|
-
targetPlatform: criteria.targetPlatform,
|
|
771
|
-
productVersion: criteria.productVersion,
|
|
772
|
-
version
|
|
773
|
-
}, allTargetPlatforms);
|
|
774
|
-
if (rawGalleryExtensionVersion) {
|
|
775
|
-
extensions.push(toExtension(rawGalleryExtension, rawGalleryExtensionVersion, allTargetPlatforms, extensionGalleryManifest, this.productService, context));
|
|
776
|
-
}
|
|
777
|
-
}
|
|
778
|
-
return { extensions, total };
|
|
779
|
-
}
|
|
780
|
-
getRawGalleryExtensionVersionsToValidate(rawGalleryExtensionVersions, targetPlatform, allTargetPlatforms, hasOnlylatestVersions) {
|
|
781
|
-
const sorted = sortExtensionVersions(rawGalleryExtensionVersions, targetPlatform);
|
|
782
|
-
if (!hasOnlylatestVersions) {
|
|
783
|
-
return sorted;
|
|
784
|
-
}
|
|
785
|
-
const result = [];
|
|
786
|
-
let preReleaseVersionForTargetPlatformFound = false;
|
|
787
|
-
let releaseVersionForTargetPlatformFound = false;
|
|
788
|
-
for (const rawGalleryExtensionVersion of sorted) {
|
|
789
|
-
if (!isTargetPlatformCompatible(getTargetPlatformForExtensionVersion(rawGalleryExtensionVersion), allTargetPlatforms, targetPlatform)) {
|
|
790
|
-
result.push(rawGalleryExtensionVersion);
|
|
791
|
-
continue;
|
|
792
|
-
}
|
|
793
|
-
if (isPreReleaseVersion(rawGalleryExtensionVersion)) {
|
|
794
|
-
if (!preReleaseVersionForTargetPlatformFound) {
|
|
795
|
-
result.push(rawGalleryExtensionVersion);
|
|
796
|
-
preReleaseVersionForTargetPlatformFound = true;
|
|
797
|
-
}
|
|
798
|
-
}
|
|
799
|
-
else {
|
|
800
|
-
if (!releaseVersionForTargetPlatformFound) {
|
|
801
|
-
result.push(rawGalleryExtensionVersion);
|
|
802
|
-
releaseVersionForTargetPlatformFound = true;
|
|
803
|
-
}
|
|
804
|
-
}
|
|
805
|
-
}
|
|
806
|
-
return result;
|
|
807
|
-
}
|
|
808
|
-
async getRawGalleryExtensionVersion(rawGalleryExtension, criteria, allTargetPlatforms, hasOnlylatestVersions) {
|
|
761
|
+
async getValidRawGalleryExtensionVersion(rawGalleryExtension, versions, criteria, allTargetPlatforms) {
|
|
809
762
|
const extensionIdentifier = { id: getGalleryExtensionId(rawGalleryExtension.publisher.publisherName, rawGalleryExtension.extensionName)};
|
|
810
|
-
const rawGalleryExtensionVersions =
|
|
763
|
+
const rawGalleryExtensionVersions = sortExtensionVersions(versions, criteria.targetPlatform);
|
|
811
764
|
if (criteria.compatible && isNotWebExtensionInWebTargetPlatform(allTargetPlatforms, criteria.targetPlatform)) {
|
|
812
765
|
return null;
|
|
813
766
|
}
|
|
@@ -1015,7 +968,7 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1015
968
|
type: 'GET',
|
|
1016
969
|
url: ( uri.toString(true)),
|
|
1017
970
|
headers,
|
|
1018
|
-
timeout:
|
|
971
|
+
timeout: this.getRequestTimeout()
|
|
1019
972
|
}, token);
|
|
1020
973
|
if (context.res.statusCode === 404) {
|
|
1021
974
|
errorCode = 'NotFound';
|
|
@@ -1249,7 +1202,7 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1249
1202
|
options = { ...options, ...baseOptions, headers };
|
|
1250
1203
|
const url = asset.uri;
|
|
1251
1204
|
const fallbackUrl = asset.fallbackUri;
|
|
1252
|
-
const firstOptions = { ...options, url, timeout:
|
|
1205
|
+
const firstOptions = { ...options, url, timeout: this.getRequestTimeout() };
|
|
1253
1206
|
let context;
|
|
1254
1207
|
try {
|
|
1255
1208
|
context = await this.requestService.request(firstOptions, token);
|
|
@@ -1273,7 +1226,7 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1273
1226
|
activityId: this.getHeaderValue(context?.res.headers, ACTIVITY_HEADER_NAME),
|
|
1274
1227
|
endToEndId: this.getHeaderValue(context?.res.headers, END_END_ID_HEADER_NAME),
|
|
1275
1228
|
});
|
|
1276
|
-
const fallbackOptions = { ...options, url: fallbackUrl, timeout:
|
|
1229
|
+
const fallbackOptions = { ...options, url: fallbackUrl, timeout: this.getRequestTimeout() };
|
|
1277
1230
|
return this.requestService.request(fallbackOptions, token);
|
|
1278
1231
|
}
|
|
1279
1232
|
}
|
|
@@ -1288,7 +1241,7 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1288
1241
|
const context = await this.requestService.request({
|
|
1289
1242
|
type: 'GET',
|
|
1290
1243
|
url: this.extensionsControlUrl,
|
|
1291
|
-
timeout:
|
|
1244
|
+
timeout: this.getRequestTimeout()
|
|
1292
1245
|
}, CancellationToken.None);
|
|
1293
1246
|
if (context.res.statusCode !== 200) {
|
|
1294
1247
|
throw ( new Error('Could not get extensions report.'));
|
|
@@ -1336,17 +1289,21 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1336
1289
|
}
|
|
1337
1290
|
return { malicious, deprecated, search, autoUpdate };
|
|
1338
1291
|
}
|
|
1292
|
+
getRequestTimeout() {
|
|
1293
|
+
const configuredTimeout = this.configurationService.getValue(ExtensionRequestsTimeoutConfigKey);
|
|
1294
|
+
return isNumber(configuredTimeout) && configuredTimeout >= 0 ? configuredTimeout : 60_000;
|
|
1295
|
+
}
|
|
1339
1296
|
};
|
|
1340
1297
|
AbstractExtensionGalleryService = ( __decorate([
|
|
1341
|
-
( __param(
|
|
1342
|
-
( __param(
|
|
1343
|
-
( __param(
|
|
1344
|
-
( __param(
|
|
1345
|
-
( __param(
|
|
1346
|
-
( __param(
|
|
1347
|
-
( __param(
|
|
1348
|
-
( __param(
|
|
1349
|
-
( __param(
|
|
1298
|
+
( __param(1, IRequestService)),
|
|
1299
|
+
( __param(2, ILogService)),
|
|
1300
|
+
( __param(3, IEnvironmentService)),
|
|
1301
|
+
( __param(4, ITelemetryService)),
|
|
1302
|
+
( __param(5, IFileService)),
|
|
1303
|
+
( __param(6, IProductService)),
|
|
1304
|
+
( __param(7, IConfigurationService)),
|
|
1305
|
+
( __param(8, IAllowedExtensionsService)),
|
|
1306
|
+
( __param(9, IExtensionGalleryManifestService))
|
|
1350
1307
|
], AbstractExtensionGalleryService));
|
|
1351
1308
|
|
|
1352
|
-
export { AbstractExtensionGalleryService, sortExtensionVersions };
|
|
1309
|
+
export { AbstractExtensionGalleryService, filterLatestExtensionVersionsForTargetPlatform, sortExtensionVersions };
|
|
@@ -12,11 +12,11 @@ import { CommontExtensionManagementService } from "./abstractExtensionManagement
|
|
|
12
12
|
export declare class ExtensionManagementChannel implements IServerChannel {
|
|
13
13
|
private service;
|
|
14
14
|
private getUriTransformer;
|
|
15
|
-
onInstallExtension: Event<InstallExtensionEvent>;
|
|
16
|
-
onDidInstallExtensions: Event<readonly InstallExtensionResult[]>;
|
|
17
|
-
onUninstallExtension: Event<UninstallExtensionEvent>;
|
|
18
|
-
onDidUninstallExtension: Event<DidUninstallExtensionEvent>;
|
|
19
|
-
onDidUpdateExtensionMetadata: Event<DidUpdateExtensionMetadata>;
|
|
15
|
+
readonly onInstallExtension: Event<InstallExtensionEvent>;
|
|
16
|
+
readonly onDidInstallExtensions: Event<readonly InstallExtensionResult[]>;
|
|
17
|
+
readonly onUninstallExtension: Event<UninstallExtensionEvent>;
|
|
18
|
+
readonly onDidUninstallExtension: Event<DidUninstallExtensionEvent>;
|
|
19
|
+
readonly onDidUpdateExtensionMetadata: Event<DidUpdateExtensionMetadata>;
|
|
20
20
|
constructor(service: IExtensionManagementService, getUriTransformer: (requestContext: any) => IURITransformer | null);
|
|
21
21
|
listen(context: any, event: string): Event<any>;
|
|
22
22
|
call(context: any, command: string, args?: any): Promise<any>;
|
|
@@ -7,4 +7,4 @@ import { RuntimeExtensionsEditor } from './browserRuntimeExtensionsEditor.js';
|
|
|
7
7
|
import { RuntimeExtensionsInput } from '@codingame/monaco-vscode-2673c6e2-17c1-5710-b169-46f3d4a28696-common/vscode/vs/workbench/contrib/extensions/common/runtimeExtensionsInput';
|
|
8
8
|
import { EditorExtensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
|
|
9
9
|
|
|
10
|
-
( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(EditorPaneDescriptor.create(RuntimeExtensionsEditor, RuntimeExtensionsEditor.ID, ( localize(
|
|
10
|
+
( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(EditorPaneDescriptor.create(RuntimeExtensionsEditor, RuntimeExtensionsEditor.ID, ( localize(7319, "Running Extensions"))), [( new SyncDescriptor(RuntimeExtensionsInput))]);
|
|
@@ -8,7 +8,7 @@ var ReportExtensionIssueAction_1;
|
|
|
8
8
|
let ReportExtensionIssueAction = class ReportExtensionIssueAction extends Action {
|
|
9
9
|
static { ReportExtensionIssueAction_1 = this; }
|
|
10
10
|
static { this._id = 'workbench.extensions.action.reportExtensionIssue'; }
|
|
11
|
-
static { this._label = ( localize(
|
|
11
|
+
static { this._label = ( localize(7686, "Report Issue")); }
|
|
12
12
|
constructor(extension, issueService) {
|
|
13
13
|
super(ReportExtensionIssueAction_1._id, ReportExtensionIssueAction_1._label, 'extension-action report-issue');
|
|
14
14
|
this.extension = extension;
|