@codingame/monaco-vscode-extension-gallery-service-override 21.6.0 → 22.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/package.json +10 -10
- package/vscode/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.js +16 -16
- package/vscode/src/vs/platform/extensionManagement/common/allowedExtensionsService.js +7 -10
- package/vscode/src/vs/platform/extensionManagement/common/extensionGalleryService.d.ts +1 -0
- package/vscode/src/vs/platform/extensionManagement/common/extensionGalleryService.js +33 -4
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.web.contribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/extensions/common/reportExtensionIssueAction.js +1 -1
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.js +14 -14
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionFeaturesManagemetService.js +4 -4
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementServerService.js +2 -2
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementService.js +48 -50
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-extension-gallery-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "22.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,15 @@
|
|
|
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-571c8352-7953-5038-9f09-e03bb6219a0e-common": "
|
|
22
|
-
"@codingame/monaco-vscode-
|
|
23
|
-
"@codingame/monaco-vscode-8c844347-a703-5de1-9eeb-5e0c7f503a58-common": "
|
|
24
|
-
"@codingame/monaco-vscode-9ed6fe06-a052-57c2-a234-5d9b94d2e7e0-common": "
|
|
25
|
-
"@codingame/monaco-vscode-a654b07e-8806-5425-b124-18f03ba8e11a-common": "
|
|
26
|
-
"@codingame/monaco-vscode-api": "
|
|
18
|
+
"@codingame/monaco-vscode-23aade48-f094-5c08-9555-97fc9cca96c9-common": "22.0.0",
|
|
19
|
+
"@codingame/monaco-vscode-249dc928-1da3-51c1-82d0-45e0ba9d08a1-common": "22.0.0",
|
|
20
|
+
"@codingame/monaco-vscode-2673c6e2-17c1-5710-b169-46f3d4a28696-common": "22.0.0",
|
|
21
|
+
"@codingame/monaco-vscode-571c8352-7953-5038-9f09-e03bb6219a0e-common": "22.0.0",
|
|
22
|
+
"@codingame/monaco-vscode-60014c9d-b815-501d-83a9-4b08725c2ec2-common": "22.0.0",
|
|
23
|
+
"@codingame/monaco-vscode-8c844347-a703-5de1-9eeb-5e0c7f503a58-common": "22.0.0",
|
|
24
|
+
"@codingame/monaco-vscode-9ed6fe06-a052-57c2-a234-5d9b94d2e7e0-common": "22.0.0",
|
|
25
|
+
"@codingame/monaco-vscode-a654b07e-8806-5425-b124-18f03ba8e11a-common": "22.0.0",
|
|
26
|
+
"@codingame/monaco-vscode-api": "22.0.0"
|
|
27
27
|
},
|
|
28
28
|
"main": "index.js",
|
|
29
29
|
"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
|
+
1783,
|
|
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
|
+
1784,
|
|
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(1785, "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(1786, "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
|
+
1787,
|
|
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
|
+
1788,
|
|
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
|
+
1784,
|
|
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
|
+
1789,
|
|
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
|
+
1790,
|
|
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
|
+
1791,
|
|
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
|
+
1792,
|
|
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
|
+
1793,
|
|
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
|
+
1794,
|
|
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
|
+
1795,
|
|
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
|
+
1796,
|
|
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
|
+
1797,
|
|
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
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
|
|
2
2
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
3
|
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
4
|
-
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
5
4
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
6
5
|
import { AllowedExtensionsConfigKey } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionManagement';
|
|
7
6
|
import { ExtensionType, TargetPlatform } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions';
|
|
8
7
|
import { IProductService } from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service';
|
|
9
|
-
import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
8
|
+
import { createCommandUri, MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
10
9
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
11
10
|
import { isObject, isUndefined, isBoolean } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
12
11
|
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
@@ -76,18 +75,16 @@ let AllowedExtensionsService = class AllowedExtensionsService extends Disposable
|
|
|
76
75
|
publisher = extension.id.substring(0, extension.id.indexOf('.')).toLowerCase();
|
|
77
76
|
publisherDisplayName = extension.publisherDisplayName?.toLowerCase();
|
|
78
77
|
}
|
|
79
|
-
const settingsCommandLink = ( (
|
|
80
|
-
`command:workbench.action.openSettings?${encodeURIComponent(JSON.stringify({ query: `@id:${AllowedExtensionsConfigKey}` }))}`
|
|
81
|
-
)).toString());
|
|
78
|
+
const settingsCommandLink = ( createCommandUri('workbench.action.openSettings', { query: `@id:${AllowedExtensionsConfigKey}` }).toString());
|
|
82
79
|
const extensionValue = this._allowedExtensionsConfigValue[id];
|
|
83
|
-
const extensionReason = ( new MarkdownString(( localize(
|
|
80
|
+
const extensionReason = ( new MarkdownString(( localize(1798, "it is not in the [allowed list]({0})", settingsCommandLink))));
|
|
84
81
|
if (!isUndefined(extensionValue)) {
|
|
85
82
|
if (isBoolean(extensionValue)) {
|
|
86
83
|
return extensionValue ? true : extensionReason;
|
|
87
84
|
}
|
|
88
85
|
if (extensionValue === 'stable' && prerelease) {
|
|
89
86
|
return (new MarkdownString(localize(
|
|
90
|
-
|
|
87
|
+
1799,
|
|
91
88
|
"the pre-release versions of this extension are not in the [allowed list]({0})",
|
|
92
89
|
settingsCommandLink
|
|
93
90
|
)));
|
|
@@ -107,7 +104,7 @@ let AllowedExtensionsService = class AllowedExtensionsService extends Disposable
|
|
|
107
104
|
return false;
|
|
108
105
|
}))) {
|
|
109
106
|
return (new MarkdownString(localize(
|
|
110
|
-
|
|
107
|
+
1800,
|
|
111
108
|
"the version {0} of this extension is not in the [allowed list]({1})",
|
|
112
109
|
version,
|
|
113
110
|
settingsCommandLink
|
|
@@ -120,7 +117,7 @@ let AllowedExtensionsService = class AllowedExtensionsService extends Disposable
|
|
|
120
117
|
if (!isUndefined(publisherValue)) {
|
|
121
118
|
if (isBoolean(publisherValue)) {
|
|
122
119
|
return publisherValue ? true : ( new MarkdownString(( localize(
|
|
123
|
-
|
|
120
|
+
1801,
|
|
124
121
|
"the extensions from this publisher are not in the [allowed list]({1})",
|
|
125
122
|
publisherKey,
|
|
126
123
|
settingsCommandLink
|
|
@@ -128,7 +125,7 @@ let AllowedExtensionsService = class AllowedExtensionsService extends Disposable
|
|
|
128
125
|
}
|
|
129
126
|
if (publisherValue === 'stable' && prerelease) {
|
|
130
127
|
return (new MarkdownString(localize(
|
|
131
|
-
|
|
128
|
+
1802,
|
|
132
129
|
"the pre-release versions from this publisher are not in the [allowed list]({1})",
|
|
133
130
|
publisherKey,
|
|
134
131
|
settingsCommandLink
|
|
@@ -66,6 +66,7 @@ export declare abstract class AbstractExtensionGalleryService implements IExtens
|
|
|
66
66
|
private queryGalleryExtensions;
|
|
67
67
|
private queryGalleryExtensionsWithAllVersionsAsFallback;
|
|
68
68
|
private queryGalleryExtensionsUsingIncludeLatestPrereleaseAndStableVersionFlag;
|
|
69
|
+
private getRawGalleryExtensionVersionsToValidate;
|
|
69
70
|
private getRawGalleryExtensionVersion;
|
|
70
71
|
private queryRawGalleryExtensions;
|
|
71
72
|
private getHeaderValue;
|
|
@@ -475,7 +475,7 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
475
475
|
date: this.productService.date
|
|
476
476
|
},
|
|
477
477
|
version: extensionInfo.preRelease ? VersionKind.Latest : VersionKind.Release
|
|
478
|
-
}, allTargetPlatforms);
|
|
478
|
+
}, allTargetPlatforms, true);
|
|
479
479
|
if (rawGalleryExtensionVersion) {
|
|
480
480
|
return toExtension(rawGalleryExtension, rawGalleryExtensionVersion, allTargetPlatforms, extensionGalleryManifest, this.productService);
|
|
481
481
|
}
|
|
@@ -777,9 +777,37 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
777
777
|
}
|
|
778
778
|
return { extensions, total };
|
|
779
779
|
}
|
|
780
|
-
|
|
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) {
|
|
781
809
|
const extensionIdentifier = { id: getGalleryExtensionId(rawGalleryExtension.publisher.publisherName, rawGalleryExtension.extensionName)};
|
|
782
|
-
const rawGalleryExtensionVersions =
|
|
810
|
+
const rawGalleryExtensionVersions = this.getRawGalleryExtensionVersionsToValidate(rawGalleryExtension.versions, criteria.targetPlatform, allTargetPlatforms, hasOnlylatestVersions);
|
|
783
811
|
if (criteria.compatible && isNotWebExtensionInWebTargetPlatform(allTargetPlatforms, criteria.targetPlatform)) {
|
|
784
812
|
return null;
|
|
785
813
|
}
|
|
@@ -1250,7 +1278,8 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1250
1278
|
}
|
|
1251
1279
|
}
|
|
1252
1280
|
async getExtensionsControlManifest() {
|
|
1253
|
-
|
|
1281
|
+
const manifest = await this.extensionGalleryManifestService.getExtensionGalleryManifest();
|
|
1282
|
+
if (!manifest) {
|
|
1254
1283
|
throw ( new Error('No extension gallery service configured.'));
|
|
1255
1284
|
}
|
|
1256
1285
|
if (!this.extensionsControlUrl) {
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
3
3
|
import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
|
|
4
4
|
import { SyncDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/descriptors';
|
|
5
|
-
import { EditorPaneDescriptor } from '@codingame/monaco-vscode-
|
|
5
|
+
import { EditorPaneDescriptor } from '@codingame/monaco-vscode-60014c9d-b815-501d-83a9-4b08725c2ec2-common/vscode/vs/workbench/browser/editor';
|
|
6
6
|
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(7075, "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(7441, "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;
|
package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.js
CHANGED
|
@@ -78,8 +78,8 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
|
|
|
78
78
|
this._register(allowedExtensionsService.onDidChangeAllowedExtensionsConfigValue(() => this._onDidChangeExtensions([], [], false)));
|
|
79
79
|
if (this.allUserExtensionsDisabled) {
|
|
80
80
|
this.lifecycleService.when(LifecyclePhase.Eventually).then(() => {
|
|
81
|
-
this.notificationService.prompt(Severity.Info, ( localize(
|
|
82
|
-
label: ( localize(
|
|
81
|
+
this.notificationService.prompt(Severity.Info, ( localize(13379, "All installed extensions are temporarily disabled.")), [{
|
|
82
|
+
label: ( localize(13380, "Reload and Enable Extensions")),
|
|
83
83
|
run: () => hostService.reload({ disableExtensions: false })
|
|
84
84
|
}], {
|
|
85
85
|
sticky: true,
|
|
@@ -131,7 +131,7 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
|
|
|
131
131
|
throwErrorIfCannotChangeEnablement(extension, donotCheckDependencies) {
|
|
132
132
|
if (isLanguagePackExtension(extension.manifest)) {
|
|
133
133
|
throw ( new Error(( localize(
|
|
134
|
-
|
|
134
|
+
13381,
|
|
135
135
|
"Cannot change enablement of {0} extension because it contributes language packs.",
|
|
136
136
|
extension.manifest.displayName || extension.identifier.id
|
|
137
137
|
))));
|
|
@@ -141,14 +141,14 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
|
|
|
141
141
|
a => a.id === this.userDataSyncAccountService.account.authenticationProviderId
|
|
142
142
|
))) {
|
|
143
143
|
throw ( new Error(( localize(
|
|
144
|
-
|
|
144
|
+
13382,
|
|
145
145
|
"Cannot change enablement {0} extension because Settings Sync depends on it.",
|
|
146
146
|
extension.manifest.displayName || extension.identifier.id
|
|
147
147
|
))));
|
|
148
148
|
}
|
|
149
149
|
if (this._isEnabledInEnv(extension)) {
|
|
150
150
|
throw ( new Error(( localize(
|
|
151
|
-
|
|
151
|
+
13383,
|
|
152
152
|
"Cannot change enablement of {0} extension because it is enabled in environment",
|
|
153
153
|
extension.manifest.displayName || extension.identifier.id
|
|
154
154
|
))));
|
|
@@ -159,37 +159,37 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
|
|
|
159
159
|
switch (enablementStateOfExtension) {
|
|
160
160
|
case EnablementState.DisabledByEnvironment:
|
|
161
161
|
throw ( new Error(( localize(
|
|
162
|
-
|
|
162
|
+
13384,
|
|
163
163
|
"Cannot change enablement of {0} extension because it is disabled in environment",
|
|
164
164
|
extension.manifest.displayName || extension.identifier.id
|
|
165
165
|
))));
|
|
166
166
|
case EnablementState.DisabledByMalicious:
|
|
167
167
|
throw ( new Error(( localize(
|
|
168
|
-
|
|
168
|
+
13385,
|
|
169
169
|
"Cannot change enablement of {0} extension because it is malicious",
|
|
170
170
|
extension.manifest.displayName || extension.identifier.id
|
|
171
171
|
))));
|
|
172
172
|
case EnablementState.DisabledByVirtualWorkspace:
|
|
173
173
|
throw ( new Error(( localize(
|
|
174
|
-
|
|
174
|
+
13386,
|
|
175
175
|
"Cannot change enablement of {0} extension because it does not support virtual workspaces",
|
|
176
176
|
extension.manifest.displayName || extension.identifier.id
|
|
177
177
|
))));
|
|
178
178
|
case EnablementState.DisabledByExtensionKind:
|
|
179
179
|
throw ( new Error(( localize(
|
|
180
|
-
|
|
180
|
+
13387,
|
|
181
181
|
"Cannot change enablement of {0} extension because of its extension kind",
|
|
182
182
|
extension.manifest.displayName || extension.identifier.id
|
|
183
183
|
))));
|
|
184
184
|
case EnablementState.DisabledByAllowlist:
|
|
185
185
|
throw ( new Error(( localize(
|
|
186
|
-
|
|
186
|
+
13388,
|
|
187
187
|
"Cannot change enablement of {0} extension because it is disallowed",
|
|
188
188
|
extension.manifest.displayName || extension.identifier.id
|
|
189
189
|
))));
|
|
190
190
|
case EnablementState.DisabledByInvalidExtension:
|
|
191
191
|
throw ( new Error(( localize(
|
|
192
|
-
|
|
192
|
+
13389,
|
|
193
193
|
"Cannot change enablement of {0} extension because of it is invalid",
|
|
194
194
|
extension.manifest.displayName || extension.identifier.id
|
|
195
195
|
))));
|
|
@@ -202,7 +202,7 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
|
|
|
202
202
|
continue;
|
|
203
203
|
}
|
|
204
204
|
throw ( new Error(( localize(
|
|
205
|
-
|
|
205
|
+
13390,
|
|
206
206
|
"Cannot enable '{0}' extension because it depends on '{1}' extension that cannot be enabled",
|
|
207
207
|
extension.manifest.displayName || extension.identifier.id,
|
|
208
208
|
dependency.manifest.displayName || dependency.identifier.id
|
|
@@ -212,11 +212,11 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
|
|
|
212
212
|
}
|
|
213
213
|
throwErrorIfCannotChangeWorkspaceEnablement(extension) {
|
|
214
214
|
if (!this.hasWorkspace) {
|
|
215
|
-
throw ( new Error(( localize(
|
|
215
|
+
throw ( new Error(( localize(13391, "No workspace."))));
|
|
216
216
|
}
|
|
217
217
|
if (isAuthenticationProviderExtension(extension.manifest)) {
|
|
218
218
|
throw ( new Error(( localize(
|
|
219
|
-
|
|
219
|
+
13392,
|
|
220
220
|
"Cannot change enablement of {0} extension in workspace because it contributes authentication providers",
|
|
221
221
|
extension.manifest.displayName || extension.identifier.id
|
|
222
222
|
))));
|
|
@@ -87,17 +87,17 @@ let ExtensionFeaturesManagementService = class ExtensionFeaturesManagementServic
|
|
|
87
87
|
if (feature.access.requireUserConsent) {
|
|
88
88
|
const extensionDescription = this.extensionService.extensions.find(e => ExtensionIdentifier.equals(e.identifier, extension));
|
|
89
89
|
const confirmationResult = await this.dialogService.confirm({
|
|
90
|
-
title: ( localize(
|
|
90
|
+
title: ( localize(13395, "Access '{0}' Feature", feature.label)),
|
|
91
91
|
message: ( localize(
|
|
92
|
-
|
|
92
|
+
13396,
|
|
93
93
|
"'{0}' extension would like to access the '{1}' feature.",
|
|
94
94
|
extensionDescription?.displayName ?? extension._lower,
|
|
95
95
|
feature.label
|
|
96
96
|
)),
|
|
97
97
|
detail: justification ?? feature.description,
|
|
98
98
|
custom: true,
|
|
99
|
-
primaryButton: ( localize(
|
|
100
|
-
cancelButton: ( localize(
|
|
99
|
+
primaryButton: ( localize(13397, "Allow")),
|
|
100
|
+
cancelButton: ( localize(13398, "Don't Allow")),
|
|
101
101
|
});
|
|
102
102
|
enabled = confirmationResult.confirmed;
|
|
103
103
|
}
|
|
@@ -22,7 +22,7 @@ let ExtensionManagementServerService = class ExtensionManagementServerService {
|
|
|
22
22
|
this.remoteExtensionManagementServer = {
|
|
23
23
|
id: 'remote',
|
|
24
24
|
extensionManagementService,
|
|
25
|
-
get label() { return labelService.getHostLabel(Schemas.vscodeRemote, remoteAgentConnection.remoteAuthority) || ( localize(
|
|
25
|
+
get label() { return labelService.getHostLabel(Schemas.vscodeRemote, remoteAgentConnection.remoteAuthority) || ( localize(13399, "Remote")); },
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
if (isWeb) {
|
|
@@ -30,7 +30,7 @@ let ExtensionManagementServerService = class ExtensionManagementServerService {
|
|
|
30
30
|
this.webExtensionManagementServer = {
|
|
31
31
|
id: 'web',
|
|
32
32
|
extensionManagementService,
|
|
33
|
-
label: ( localize(
|
|
33
|
+
label: ( localize(13400, "Browser")),
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
36
|
}
|
package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementService.js
CHANGED
|
@@ -37,7 +37,7 @@ import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform
|
|
|
37
37
|
import { IUriIdentityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/uriIdentity/common/uriIdentity.service';
|
|
38
38
|
import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
39
39
|
import { IUserDataProfilesService } from '@codingame/monaco-vscode-api/vscode/vs/platform/userDataProfile/common/userDataProfile.service';
|
|
40
|
-
import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
40
|
+
import { MarkdownString, createCommandUri } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
41
41
|
import { verifiedPublisherIcon } from '@codingame/monaco-vscode-a654b07e-8806-5425-b124-18f03ba8e11a-common/vscode/vs/workbench/services/extensionManagement/common/extensionsIcons';
|
|
42
42
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
43
43
|
import { CommontExtensionManagementService } from '../../../../platform/extensionManagement/common/abstractExtensionManagementService.js';
|
|
@@ -222,7 +222,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
222
222
|
getDependentsErrorMessage(extension, dependents) {
|
|
223
223
|
if (dependents.length === 1) {
|
|
224
224
|
return localize(
|
|
225
|
-
|
|
225
|
+
13401,
|
|
226
226
|
"Cannot uninstall extension '{0}'. Extension '{1}' depends on this.",
|
|
227
227
|
extension.manifest.displayName || extension.manifest.name,
|
|
228
228
|
dependents[0].manifest.displayName || dependents[0].manifest.name
|
|
@@ -230,7 +230,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
230
230
|
}
|
|
231
231
|
if (dependents.length === 2) {
|
|
232
232
|
return localize(
|
|
233
|
-
|
|
233
|
+
13402,
|
|
234
234
|
"Cannot uninstall extension '{0}'. Extensions '{1}' and '{2}' depend on this.",
|
|
235
235
|
extension.manifest.displayName || extension.manifest.name,
|
|
236
236
|
dependents[0].manifest.displayName || dependents[0].manifest.name,
|
|
@@ -238,7 +238,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
238
238
|
);
|
|
239
239
|
}
|
|
240
240
|
return localize(
|
|
241
|
-
|
|
241
|
+
13403,
|
|
242
242
|
"Cannot uninstall extension '{0}'. Extensions '{1}', '{2}' and others depend on this.",
|
|
243
243
|
extension.manifest.displayName || extension.manifest.name,
|
|
244
244
|
dependents[0].manifest.displayName || dependents[0].manifest.name,
|
|
@@ -348,7 +348,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
348
348
|
}
|
|
349
349
|
const manifest = await this.extensionGalleryService.getManifest(gallery, CancellationToken.None);
|
|
350
350
|
if (!manifest) {
|
|
351
|
-
return ( new MarkdownString()).appendText(( localize(
|
|
351
|
+
return ( new MarkdownString()).appendText(( localize(13404, "Manifest is not found")));
|
|
352
352
|
}
|
|
353
353
|
if (this.extensionManagementServerService.remoteExtensionManagementServer
|
|
354
354
|
&& (await this.extensionManagementServerService.remoteExtensionManagementServer.extensionManagementService.canInstall(gallery)) === true
|
|
@@ -361,7 +361,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
361
361
|
return true;
|
|
362
362
|
}
|
|
363
363
|
return ( new MarkdownString()).appendText(( localize(
|
|
364
|
-
|
|
364
|
+
13405,
|
|
365
365
|
"Cannot install the '{0}' extension because it is not available in this setup.",
|
|
366
366
|
gallery.displayName || gallery.name
|
|
367
367
|
)));
|
|
@@ -377,7 +377,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
377
377
|
return true;
|
|
378
378
|
}
|
|
379
379
|
return ( new MarkdownString()).appendText(( localize(
|
|
380
|
-
|
|
380
|
+
13405,
|
|
381
381
|
"Cannot install the '{0}' extension because it is not available in this setup.",
|
|
382
382
|
extension.manifest.displayName ?? extension.identifier.id
|
|
383
383
|
)));
|
|
@@ -406,7 +406,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
406
406
|
const manifest = await this.extensionGalleryService.getManifest(extension, CancellationToken.None);
|
|
407
407
|
if (!manifest) {
|
|
408
408
|
throw ( new Error(( localize(
|
|
409
|
-
|
|
409
|
+
13406,
|
|
410
410
|
"Installing Extension {0} failed: Manifest is not found.",
|
|
411
411
|
extension.displayName || extension.name
|
|
412
412
|
))));
|
|
@@ -425,7 +425,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
425
425
|
const manifest = await this.extensionGalleryService.getManifest(extension, CancellationToken.None);
|
|
426
426
|
if (!manifest) {
|
|
427
427
|
throw ( new Error(( localize(
|
|
428
|
-
|
|
428
|
+
13406,
|
|
429
429
|
"Installing Extension {0} failed: Manifest is not found.",
|
|
430
430
|
extension.displayName || extension.name
|
|
431
431
|
))));
|
|
@@ -473,7 +473,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
473
473
|
const manifest = await this.extensionGalleryService.getManifest(gallery, CancellationToken.None);
|
|
474
474
|
if (!manifest) {
|
|
475
475
|
throw ( new Error(( localize(
|
|
476
|
-
|
|
476
|
+
13406,
|
|
477
477
|
"Installing Extension {0} failed: Manifest is not found.",
|
|
478
478
|
gallery.displayName || gallery.name
|
|
479
479
|
))));
|
|
@@ -577,7 +577,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
577
577
|
const manifest = await this.extensionGalleryService.getManifest(gallery, CancellationToken.None);
|
|
578
578
|
if (!manifest) {
|
|
579
579
|
return Promise.reject(( localize(
|
|
580
|
-
|
|
580
|
+
13406,
|
|
581
581
|
"Installing Extension {0} failed: Manifest is not found.",
|
|
582
582
|
gallery.displayName || gallery.name
|
|
583
583
|
)));
|
|
@@ -627,7 +627,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
627
627
|
for (const server of servers) {
|
|
628
628
|
if (!installableServers.includes(server)) {
|
|
629
629
|
const error = ( new Error(( localize(
|
|
630
|
-
|
|
630
|
+
13407,
|
|
631
631
|
"Cannot install the '{0}' extension because it is not available in the '{1}' setup.",
|
|
632
632
|
gallery.displayName || gallery.name,
|
|
633
633
|
server.label
|
|
@@ -651,7 +651,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
651
651
|
}
|
|
652
652
|
if (!servers.length) {
|
|
653
653
|
const error = ( new Error(( localize(
|
|
654
|
-
|
|
654
|
+
13405,
|
|
655
655
|
"Cannot install the '{0}' extension because it is not available in this setup.",
|
|
656
656
|
gallery.displayName || gallery.name
|
|
657
657
|
))));
|
|
@@ -689,24 +689,24 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
689
689
|
if (this.isExtensionsSyncEnabled()) {
|
|
690
690
|
const { result } = await this.dialogService.prompt({
|
|
691
691
|
type: Severity.Info,
|
|
692
|
-
message: extensions.length === 1 ? ( localize(
|
|
692
|
+
message: extensions.length === 1 ? ( localize(13408, "Install Extension")) : ( localize(13409, "Install Extensions")),
|
|
693
693
|
detail: extensions.length === 1
|
|
694
694
|
? ( localize(
|
|
695
|
-
|
|
695
|
+
13410,
|
|
696
696
|
"Would you like to install and synchronize '{0}' extension across your devices?",
|
|
697
697
|
extensions[0].displayName
|
|
698
698
|
))
|
|
699
699
|
: ( localize(
|
|
700
|
-
|
|
700
|
+
13411,
|
|
701
701
|
"Would you like to install and synchronize extensions across your devices?"
|
|
702
702
|
)),
|
|
703
703
|
buttons: [
|
|
704
704
|
{
|
|
705
|
-
label: ( localize(
|
|
705
|
+
label: ( localize(13412, "&&Install")),
|
|
706
706
|
run: () => false
|
|
707
707
|
},
|
|
708
708
|
{
|
|
709
|
-
label: ( localize(
|
|
709
|
+
label: ( localize(13413, "Install (Do &¬ sync)")),
|
|
710
710
|
run: () => true
|
|
711
711
|
}
|
|
712
712
|
],
|
|
@@ -755,7 +755,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
755
755
|
const manifest = await this.extensionGalleryService.getManifest(extension, CancellationToken.None);
|
|
756
756
|
if (!manifest) {
|
|
757
757
|
throw ( new Error(( localize(
|
|
758
|
-
|
|
758
|
+
13406,
|
|
759
759
|
"Installing Extension {0} failed: Manifest is not found.",
|
|
760
760
|
extension.displayName || extension.name
|
|
761
761
|
))));
|
|
@@ -787,7 +787,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
787
787
|
const unverfiiedPublishers = allPublishers.filter(p => !p.publisherDomain?.verified);
|
|
788
788
|
const verifiedPublishers = allPublishers.filter(p => p.publisherDomain?.verified);
|
|
789
789
|
const installButton = {
|
|
790
|
-
label: allPublishers.length > 1 ? ( localize(
|
|
790
|
+
label: allPublishers.length > 1 ? ( localize(13414, "Trust Publishers & &&Install")) : ( localize(13415, "Trust Publisher & &&Install")),
|
|
791
791
|
run: () => {
|
|
792
792
|
this.telemetryService.publicLog2('extensions:trustPublisher', { action: 'trust', extensionId: ( untrustedExtensions.map(e => e.identifier.id)).join(',') });
|
|
793
793
|
this.trustPublishers(...( allPublishers.map(
|
|
@@ -796,7 +796,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
796
796
|
}
|
|
797
797
|
};
|
|
798
798
|
const learnMoreButton = {
|
|
799
|
-
label: ( localize(
|
|
799
|
+
label: ( localize(13416, "&&Learn More")),
|
|
800
800
|
run: () => {
|
|
801
801
|
this.telemetryService.publicLog2('extensions:trustPublisher', { action: 'learn', extensionId: ( untrustedExtensions.map(e => e.identifier.id)).join(',') });
|
|
802
802
|
this.instantiationService.invokeFunction(accessor => accessor.get(ICommandService).executeCommand('vscode.open', ( URI.parse('https://aka.ms/vscode-extension-security'))));
|
|
@@ -809,19 +809,19 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
809
809
|
const unverifiedLink = 'https://aka.ms/vscode-verify-publisher';
|
|
810
810
|
const title = allPublishers.length === 1
|
|
811
811
|
? ( localize(
|
|
812
|
-
|
|
812
|
+
13417,
|
|
813
813
|
"Do you trust the publisher \"{0}\"?",
|
|
814
814
|
allPublishers[0].publisherDisplayName
|
|
815
815
|
))
|
|
816
816
|
: allPublishers.length === 2
|
|
817
817
|
? ( localize(
|
|
818
|
-
|
|
818
|
+
13418,
|
|
819
819
|
"Do you trust publishers \"{0}\" and \"{1}\"?",
|
|
820
820
|
allPublishers[0].publisherDisplayName,
|
|
821
821
|
allPublishers[1].publisherDisplayName
|
|
822
822
|
))
|
|
823
823
|
: ( localize(
|
|
824
|
-
|
|
824
|
+
13419,
|
|
825
825
|
"Do you trust the publisher \"{0}\" and {1} others?",
|
|
826
826
|
allPublishers[0].publisherDisplayName,
|
|
827
827
|
allPublishers.length - 1
|
|
@@ -832,18 +832,16 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
832
832
|
const manifest = untrustedExtensionManifests[0];
|
|
833
833
|
if (otherUntrustedPublishers.length) {
|
|
834
834
|
customMessage.appendMarkdown(( localize(
|
|
835
|
-
|
|
835
|
+
13420,
|
|
836
836
|
"The extension {0} is published by {1}.",
|
|
837
837
|
`[${extension.displayName}](${extension.detailsLink})`,
|
|
838
838
|
getPublisherLink(extension)
|
|
839
839
|
)));
|
|
840
840
|
customMessage.appendMarkdown(' ');
|
|
841
|
-
const commandUri = ( (
|
|
842
|
-
`command:extension.open?${encodeURIComponent(JSON.stringify([extension.identifier.id, manifest.extensionPack?.length ? 'extensionPack' : 'dependencies']))}`
|
|
843
|
-
)).toString());
|
|
841
|
+
const commandUri = ( createCommandUri('extension.open', extension.identifier.id, manifest.extensionPack?.length ? 'extensionPack' : 'dependencies').toString());
|
|
844
842
|
if (otherUntrustedPublishers.length === 1) {
|
|
845
843
|
customMessage.appendMarkdown(( localize(
|
|
846
|
-
|
|
844
|
+
13421,
|
|
847
845
|
"Installing this extension will also install [extensions]({0}) published by {1}.",
|
|
848
846
|
commandUri,
|
|
849
847
|
getPublisherLink(otherUntrustedPublishers[0])
|
|
@@ -851,7 +849,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
851
849
|
}
|
|
852
850
|
else {
|
|
853
851
|
customMessage.appendMarkdown(( localize(
|
|
854
|
-
|
|
852
|
+
13422,
|
|
855
853
|
"Installing this extension will also install [extensions]({0}) published by {1} and {2}.",
|
|
856
854
|
commandUri,
|
|
857
855
|
( otherUntrustedPublishers.slice(0, otherUntrustedPublishers.length - 1).map(p => getPublisherLink(p))).join(', '),
|
|
@@ -860,13 +858,13 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
860
858
|
}
|
|
861
859
|
customMessage.appendMarkdown(' ');
|
|
862
860
|
customMessage.appendMarkdown(( localize(
|
|
863
|
-
|
|
861
|
+
13423,
|
|
864
862
|
"This is the first time you're installing extensions from these publishers."
|
|
865
863
|
)));
|
|
866
864
|
}
|
|
867
865
|
else {
|
|
868
866
|
customMessage.appendMarkdown(( localize(
|
|
869
|
-
|
|
867
|
+
13424,
|
|
870
868
|
"The extension {0} is published by {1}. This is the first extension you're installing from this publisher.",
|
|
871
869
|
`[${extension.displayName}](${extension.detailsLink})`,
|
|
872
870
|
getPublisherLink(extension)
|
|
@@ -875,7 +873,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
875
873
|
}
|
|
876
874
|
else {
|
|
877
875
|
customMessage.appendMarkdown(( localize(
|
|
878
|
-
|
|
876
|
+
13425,
|
|
879
877
|
"This is the first time you're installing extensions from publishers {0} and {1}.",
|
|
880
878
|
getPublisherLink(allPublishers[0]),
|
|
881
879
|
getPublisherLink(allPublishers[allPublishers.length - 1])
|
|
@@ -885,7 +883,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
885
883
|
for (const publisher of verifiedPublishers) {
|
|
886
884
|
customMessage.appendText('\n');
|
|
887
885
|
const publisherVerifiedMessage = ( localize(
|
|
888
|
-
|
|
886
|
+
13426,
|
|
889
887
|
"{0} has verified ownership of {1}.",
|
|
890
888
|
getPublisherLink(publisher),
|
|
891
889
|
`[$(link-external) ${( URI.parse(publisher.publisherDomain.link)).authority}](${publisher.publisherDomain.link})`
|
|
@@ -896,7 +894,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
896
894
|
customMessage.appendText('\n');
|
|
897
895
|
if (unverfiiedPublishers.length === 1) {
|
|
898
896
|
customMessage.appendMarkdown(`$(${Codicon.unverified.id}) ${( localize(
|
|
899
|
-
|
|
897
|
+
13427,
|
|
900
898
|
"{0} is [**not** verified]({1}).",
|
|
901
899
|
getPublisherLink(unverfiiedPublishers[0]),
|
|
902
900
|
unverifiedLink
|
|
@@ -904,7 +902,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
904
902
|
}
|
|
905
903
|
else {
|
|
906
904
|
customMessage.appendMarkdown(`$(${Codicon.unverified.id}) ${( localize(
|
|
907
|
-
|
|
905
|
+
13428,
|
|
908
906
|
"{0} and {1} are [**not** verified]({2}).",
|
|
909
907
|
( unverfiiedPublishers.slice(0, unverfiiedPublishers.length - 1).map(p => getPublisherLink(p))).join(', '),
|
|
910
908
|
getPublisherLink(unverfiiedPublishers[unverfiiedPublishers.length - 1]),
|
|
@@ -915,19 +913,19 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
915
913
|
}
|
|
916
914
|
else {
|
|
917
915
|
customMessage.appendText('\n');
|
|
918
|
-
customMessage.appendMarkdown(`$(${Codicon.unverified.id}) ${( localize(
|
|
916
|
+
customMessage.appendMarkdown(`$(${Codicon.unverified.id}) ${( localize(13429, "All publishers are [**not** verified]({0}).", unverifiedLink))}`);
|
|
919
917
|
}
|
|
920
918
|
customMessage.appendText('\n');
|
|
921
919
|
if (allPublishers.length > 1) {
|
|
922
920
|
customMessage.appendMarkdown(( localize(
|
|
923
|
-
|
|
921
|
+
13430,
|
|
924
922
|
"{0} has no control over the behavior of third-party extensions, including how they manage your personal data. Proceed only if you trust the publishers.",
|
|
925
923
|
this.productService.nameLong
|
|
926
924
|
)));
|
|
927
925
|
}
|
|
928
926
|
else {
|
|
929
927
|
customMessage.appendMarkdown(( localize(
|
|
930
|
-
|
|
928
|
+
13431,
|
|
931
929
|
"{0} has no control over the behavior of third-party extensions, including how they manage your personal data. Proceed only if you trust the publisher.",
|
|
932
930
|
this.productService.nameLong
|
|
933
931
|
)));
|
|
@@ -1006,13 +1004,13 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
1006
1004
|
async checkForWorkspaceTrust(manifest, requireTrust) {
|
|
1007
1005
|
if (requireTrust || this.extensionManifestPropertiesService.getExtensionUntrustedWorkspaceSupportType(manifest) === false) {
|
|
1008
1006
|
const buttons = [];
|
|
1009
|
-
buttons.push({ label: ( localize(
|
|
1007
|
+
buttons.push({ label: ( localize(13432, "Trust Workspace & Install")), type: 'ContinueWithTrust' });
|
|
1010
1008
|
if (!requireTrust) {
|
|
1011
|
-
buttons.push({ label: ( localize(
|
|
1009
|
+
buttons.push({ label: ( localize(13433, "Install")), type: 'ContinueWithoutTrust' });
|
|
1012
1010
|
}
|
|
1013
|
-
buttons.push({ label: ( localize(
|
|
1011
|
+
buttons.push({ label: ( localize(13434, "Learn More")), type: 'Manage' });
|
|
1014
1012
|
const trustState = await this.workspaceTrustRequestService.requestWorkspaceTrust({
|
|
1015
|
-
message: ( localize(
|
|
1013
|
+
message: ( localize(13435, "Enabling this extension requires a trusted workspace.")),
|
|
1016
1014
|
buttons
|
|
1017
1015
|
});
|
|
1018
1016
|
if (trustState === undefined) {
|
|
@@ -1036,7 +1034,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
1036
1034
|
throw ( new ExtensionManagementError('Not supported in Web', ExtensionManagementErrorCode.Unsupported));
|
|
1037
1035
|
}
|
|
1038
1036
|
}
|
|
1039
|
-
const productName = ( localize(
|
|
1037
|
+
const productName = ( localize(13436, "{0} for the Web", this.productService.nameLong));
|
|
1040
1038
|
const virtualWorkspaceSupport = this.extensionManifestPropertiesService.getExtensionVirtualWorkspaceSupportType(manifest);
|
|
1041
1039
|
const virtualWorkspaceSupportReason = getWorkspaceSupportTypeMessage(manifest.capabilities?.virtualWorkspaces);
|
|
1042
1040
|
const hasLimitedSupport = virtualWorkspaceSupport === 'limited' || !!virtualWorkspaceSupportReason;
|
|
@@ -1044,7 +1042,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
1044
1042
|
return;
|
|
1045
1043
|
}
|
|
1046
1044
|
const limitedSupportMessage = ( localize(
|
|
1047
|
-
|
|
1045
|
+
13437,
|
|
1048
1046
|
"'{0}' has limited functionality in {1}.",
|
|
1049
1047
|
extension.displayName || extension.identifier.id,
|
|
1050
1048
|
productName
|
|
@@ -1053,16 +1051,16 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
1053
1051
|
let buttons = [];
|
|
1054
1052
|
let detail;
|
|
1055
1053
|
const installAnywayButton = {
|
|
1056
|
-
label: ( localize(
|
|
1054
|
+
label: ( localize(13438, "&&Install Anyway")),
|
|
1057
1055
|
run: () => { }
|
|
1058
1056
|
};
|
|
1059
1057
|
const showExtensionsButton = {
|
|
1060
|
-
label: ( localize(
|
|
1058
|
+
label: ( localize(13439, "&&Show Extensions")),
|
|
1061
1059
|
run: () => this.instantiationService.invokeFunction(accessor => accessor.get(ICommandService).executeCommand('extension.open', extension.identifier.id, 'extensionPack'))
|
|
1062
1060
|
};
|
|
1063
1061
|
if (nonWebExtensions.length && hasLimitedSupport) {
|
|
1064
1062
|
message = limitedSupportMessage;
|
|
1065
|
-
detail = `${virtualWorkspaceSupportReason ? `${virtualWorkspaceSupportReason}\n` : ''}${( localize(
|
|
1063
|
+
detail = `${virtualWorkspaceSupportReason ? `${virtualWorkspaceSupportReason}\n` : ''}${( localize(13440, "Contains extensions which are not supported."))}`;
|
|
1066
1064
|
buttons = [
|
|
1067
1065
|
installAnywayButton,
|
|
1068
1066
|
showExtensionsButton
|
|
@@ -1075,7 +1073,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
1075
1073
|
}
|
|
1076
1074
|
else {
|
|
1077
1075
|
message = ( localize(
|
|
1078
|
-
|
|
1076
|
+
13441,
|
|
1079
1077
|
"'{0}' contains extensions which are not supported in {1}.",
|
|
1080
1078
|
extension.displayName || extension.identifier.id,
|
|
1081
1079
|
productName
|
|
@@ -1362,7 +1360,7 @@ let WorkspaceExtensionsManagementService = class WorkspaceExtensionsManagementSe
|
|
|
1362
1360
|
if (extension.manifest.main) {
|
|
1363
1361
|
if (!(await this.fileService.exists(this.uriIdentityService.extUri.joinPath(extension.location, extension.manifest.main)))) {
|
|
1364
1362
|
isValid = false;
|
|
1365
|
-
validations.push([Severity.Error, ( localize(
|
|
1363
|
+
validations.push([Severity.Error, ( localize(13442, "Cannot activate because {0} not found", extension.manifest.main))]);
|
|
1366
1364
|
}
|
|
1367
1365
|
}
|
|
1368
1366
|
return {
|