@codingame/monaco-vscode-extension-gallery-service-override 28.4.0 → 29.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 +2 -2
- package/vscode/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.js +24 -17
- package/vscode/src/vs/platform/extensionManagement/common/allowedExtensionsService.js +5 -5
- package/vscode/src/vs/platform/extensionManagement/common/extensionGalleryService.js +36 -11
- 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.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 +46 -46
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-extension-gallery-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "29.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,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-api": "
|
|
18
|
+
"@codingame/monaco-vscode-api": "29.0.0"
|
|
19
19
|
},
|
|
20
20
|
"main": "index.js",
|
|
21
21
|
"module": "index.js",
|
package/vscode/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.js
CHANGED
|
@@ -36,7 +36,7 @@ let CommontExtensionManagementService = class CommontExtensionManagementService
|
|
|
36
36
|
});
|
|
37
37
|
if (allowedToInstall !== true) {
|
|
38
38
|
return (new MarkdownString(localize(
|
|
39
|
-
|
|
39
|
+
1846,
|
|
40
40
|
"This extension cannot be installed because {0}",
|
|
41
41
|
allowedToInstall.value
|
|
42
42
|
)));
|
|
@@ -44,12 +44,12 @@ let CommontExtensionManagementService = class CommontExtensionManagementService
|
|
|
44
44
|
if (!(await this.isExtensionPlatformCompatible(extension))) {
|
|
45
45
|
const learnLink = isWeb ? "https://aka.ms/vscode-web-extensions-guide" : "https://aka.ms/vscode-platform-specific-extensions";
|
|
46
46
|
return (new MarkdownString(`${( localize(
|
|
47
|
-
|
|
47
|
+
1847,
|
|
48
48
|
"The '{0}' extension is not available in {1} for the {2} platform.",
|
|
49
49
|
extension.displayName ?? extension.identifier.id,
|
|
50
50
|
this.productService.nameLong,
|
|
51
51
|
TargetPlatformToString(await this.getTargetPlatform())
|
|
52
|
-
))} [${( localize(
|
|
52
|
+
))} [${( localize(1848, "Learn Why"))}](${learnLink})`));
|
|
53
53
|
}
|
|
54
54
|
return true;
|
|
55
55
|
}
|
|
@@ -124,11 +124,18 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
124
124
|
}
|
|
125
125
|
) => areSameExtensions(identifier, extension.identifier));
|
|
126
126
|
if (result?.local) {
|
|
127
|
-
return result
|
|
127
|
+
return result.local;
|
|
128
128
|
}
|
|
129
129
|
if (result?.error) {
|
|
130
130
|
throw result.error;
|
|
131
131
|
}
|
|
132
|
+
const redirectedResult = results[0];
|
|
133
|
+
if (redirectedResult?.local) {
|
|
134
|
+
return redirectedResult.local;
|
|
135
|
+
}
|
|
136
|
+
if (redirectedResult?.error) {
|
|
137
|
+
throw redirectedResult.error;
|
|
138
|
+
}
|
|
132
139
|
throw ( new ExtensionManagementError(
|
|
133
140
|
`Unknown error while installing extension ${extension.identifier.id}`,
|
|
134
141
|
ExtensionManagementErrorCode.Unknown
|
|
@@ -139,7 +146,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
139
146
|
}
|
|
140
147
|
async installGalleryExtensions(extensions) {
|
|
141
148
|
if (!this.galleryService.isEnabled()) {
|
|
142
|
-
throw ( new ExtensionManagementError(( localize(
|
|
149
|
+
throw ( new ExtensionManagementError(( localize(1849, "Marketplace is not enabled")), ExtensionManagementErrorCode.NotAllowed));
|
|
143
150
|
}
|
|
144
151
|
const results = [];
|
|
145
152
|
const installableExtensions = [];
|
|
@@ -794,7 +801,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
794
801
|
const extensionsControlManifest = await this.getExtensionsControlManifest();
|
|
795
802
|
if (isMalicious(extension.identifier, extensionsControlManifest.malicious)) {
|
|
796
803
|
throw ( new ExtensionManagementError(( localize(
|
|
797
|
-
|
|
804
|
+
1850,
|
|
798
805
|
"Can't install '{0}' extension since it was reported to be problematic.",
|
|
799
806
|
extension.identifier.id
|
|
800
807
|
)), ExtensionManagementErrorCode.Malicious));
|
|
@@ -814,7 +821,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
814
821
|
}, CancellationToken.None))[0];
|
|
815
822
|
if (!compatibleExtension) {
|
|
816
823
|
throw ( new ExtensionManagementError(( localize(
|
|
817
|
-
|
|
824
|
+
1851,
|
|
818
825
|
"Can't install '{0}' extension since it was deprecated and the replacement extension '{1}' can't be found.",
|
|
819
826
|
extension.identifier.id,
|
|
820
827
|
deprecationInfo.extension.id
|
|
@@ -824,7 +831,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
824
831
|
if ((await this.canInstall(extension)) !== true) {
|
|
825
832
|
const targetPlatform = await this.getTargetPlatform();
|
|
826
833
|
throw ( new ExtensionManagementError(( localize(
|
|
827
|
-
|
|
834
|
+
1847,
|
|
828
835
|
"The '{0}' extension is not available in {1} for the {2} platform.",
|
|
829
836
|
extension.identifier.id,
|
|
830
837
|
this.productService.nameLong,
|
|
@@ -839,7 +846,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
839
846
|
incompatibleApiProposalsMessages
|
|
840
847
|
)) {
|
|
841
848
|
throw ( new ExtensionManagementError(( localize(
|
|
842
|
-
|
|
849
|
+
1852,
|
|
843
850
|
"Can't install '{0}' extension. {1}",
|
|
844
851
|
extension.displayName ?? extension.identifier.id,
|
|
845
852
|
incompatibleApiProposalsMessages[0]
|
|
@@ -847,13 +854,13 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
847
854
|
}
|
|
848
855
|
if (!installPreRelease && extension.hasPreReleaseVersion && extension.properties.isPreReleaseVersion && (await this.galleryService.getExtensions([extension.identifier], CancellationToken.None))[0]) {
|
|
849
856
|
throw ( new ExtensionManagementError(( localize(
|
|
850
|
-
|
|
857
|
+
1853,
|
|
851
858
|
"Can't install release version of '{0}' extension because it has no release version.",
|
|
852
859
|
extension.displayName ?? extension.identifier.id
|
|
853
860
|
)), ExtensionManagementErrorCode.ReleaseVersionNotFound));
|
|
854
861
|
}
|
|
855
862
|
throw ( new ExtensionManagementError(( localize(
|
|
856
|
-
|
|
863
|
+
1854,
|
|
857
864
|
"Can't install '{0}' extension because it is not compatible with the current version of {1} (version {2}).",
|
|
858
865
|
extension.identifier.id,
|
|
859
866
|
this.productService.nameLong,
|
|
@@ -1173,7 +1180,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
1173
1180
|
if (extensionToUninstall === dependingExtension) {
|
|
1174
1181
|
if (dependents.length === 1) {
|
|
1175
1182
|
return localize(
|
|
1176
|
-
|
|
1183
|
+
1855,
|
|
1177
1184
|
"Cannot uninstall '{0}' extension. '{1}' extension depends on this.",
|
|
1178
1185
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
1179
1186
|
dependents[0].manifest.displayName || dependents[0].manifest.name
|
|
@@ -1181,7 +1188,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
1181
1188
|
}
|
|
1182
1189
|
if (dependents.length === 2) {
|
|
1183
1190
|
return localize(
|
|
1184
|
-
|
|
1191
|
+
1856,
|
|
1185
1192
|
"Cannot uninstall '{0}' extension. '{1}' and '{2}' extensions depend on this.",
|
|
1186
1193
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
1187
1194
|
dependents[0].manifest.displayName || dependents[0].manifest.name,
|
|
@@ -1189,7 +1196,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
1189
1196
|
);
|
|
1190
1197
|
}
|
|
1191
1198
|
return localize(
|
|
1192
|
-
|
|
1199
|
+
1857,
|
|
1193
1200
|
"Cannot uninstall '{0}' extension. '{1}', '{2}' and other extension depend on this.",
|
|
1194
1201
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
1195
1202
|
dependents[0].manifest.displayName || dependents[0].manifest.name,
|
|
@@ -1198,7 +1205,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
1198
1205
|
}
|
|
1199
1206
|
if (dependents.length === 1) {
|
|
1200
1207
|
return localize(
|
|
1201
|
-
|
|
1208
|
+
1858,
|
|
1202
1209
|
"Cannot uninstall '{0}' extension . It includes uninstalling '{1}' extension and '{2}' extension depends on this.",
|
|
1203
1210
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
1204
1211
|
dependingExtension.manifest.displayName || dependingExtension.manifest.name,
|
|
@@ -1207,7 +1214,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
1207
1214
|
}
|
|
1208
1215
|
if (dependents.length === 2) {
|
|
1209
1216
|
return localize(
|
|
1210
|
-
|
|
1217
|
+
1859,
|
|
1211
1218
|
"Cannot uninstall '{0}' extension. It includes uninstalling '{1}' extension and '{2}' and '{3}' extensions depend on this.",
|
|
1212
1219
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
1213
1220
|
dependingExtension.manifest.displayName || dependingExtension.manifest.name,
|
|
@@ -1216,7 +1223,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
1216
1223
|
);
|
|
1217
1224
|
}
|
|
1218
1225
|
return localize(
|
|
1219
|
-
|
|
1226
|
+
1860,
|
|
1220
1227
|
"Cannot uninstall '{0}' extension. It includes uninstalling '{1}' extension and '{2}', '{3}' and other extensions depend on this.",
|
|
1221
1228
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
1222
1229
|
dependingExtension.manifest.displayName || dependingExtension.manifest.name,
|
|
@@ -77,14 +77,14 @@ let AllowedExtensionsService = class AllowedExtensionsService extends Disposable
|
|
|
77
77
|
query: `@id:${AllowedExtensionsConfigKey}`
|
|
78
78
|
}).toString());
|
|
79
79
|
const extensionValue = this._allowedExtensionsConfigValue[id];
|
|
80
|
-
const extensionReason = ( new MarkdownString(( localize(
|
|
80
|
+
const extensionReason = ( new MarkdownString(( localize(1861, "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
|
+
1862,
|
|
88
88
|
"the pre-release versions of this extension are not in the [allowed list]({0})",
|
|
89
89
|
settingsCommandLink
|
|
90
90
|
)));
|
|
@@ -107,7 +107,7 @@ let AllowedExtensionsService = class AllowedExtensionsService extends Disposable
|
|
|
107
107
|
return false;
|
|
108
108
|
}))) {
|
|
109
109
|
return (new MarkdownString(localize(
|
|
110
|
-
|
|
110
|
+
1863,
|
|
111
111
|
"the version {0} of this extension is not in the [allowed list]({1})",
|
|
112
112
|
version,
|
|
113
113
|
settingsCommandLink
|
|
@@ -120,7 +120,7 @@ let AllowedExtensionsService = class AllowedExtensionsService extends Disposable
|
|
|
120
120
|
if (!isUndefined(publisherValue)) {
|
|
121
121
|
if (isBoolean(publisherValue)) {
|
|
122
122
|
return publisherValue ? true : ( new MarkdownString(( localize(
|
|
123
|
-
|
|
123
|
+
1864,
|
|
124
124
|
"the extensions from this publisher are not in the [allowed list]({1})",
|
|
125
125
|
publisherKey,
|
|
126
126
|
settingsCommandLink
|
|
@@ -128,7 +128,7 @@ let AllowedExtensionsService = class AllowedExtensionsService extends Disposable
|
|
|
128
128
|
}
|
|
129
129
|
if (publisherValue === "stable" && prerelease) {
|
|
130
130
|
return (new MarkdownString(localize(
|
|
131
|
-
|
|
131
|
+
1865,
|
|
132
132
|
"the pre-release versions from this publisher are not in the [allowed list]({1})",
|
|
133
133
|
publisherKey,
|
|
134
134
|
settingsCommandLink
|
|
@@ -838,9 +838,16 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
838
838
|
const headers = {
|
|
839
839
|
"Accept-Encoding": "gzip"
|
|
840
840
|
};
|
|
841
|
-
const context = await this.getAsset(
|
|
842
|
-
|
|
843
|
-
|
|
841
|
+
const context = await this.getAsset(
|
|
842
|
+
extensionId,
|
|
843
|
+
manifestAsset,
|
|
844
|
+
AssetType.Manifest,
|
|
845
|
+
version,
|
|
846
|
+
"extensionGalleryService.engineVersion",
|
|
847
|
+
{
|
|
848
|
+
headers
|
|
849
|
+
}
|
|
850
|
+
);
|
|
844
851
|
const manifest = await asJson(context);
|
|
845
852
|
if (!manifest) {
|
|
846
853
|
this.logService.error(
|
|
@@ -1211,7 +1218,8 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1211
1218
|
type: "POST",
|
|
1212
1219
|
url: extensionsQueryApi,
|
|
1213
1220
|
data,
|
|
1214
|
-
headers
|
|
1221
|
+
headers,
|
|
1222
|
+
callSite: "extensionGalleryService.queryRawGalleryExtensions"
|
|
1215
1223
|
}, token);
|
|
1216
1224
|
if (context.res.statusCode && context.res.statusCode >= 400 && context.res.statusCode < 500) {
|
|
1217
1225
|
return {
|
|
@@ -1340,7 +1348,8 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1340
1348
|
type: "GET",
|
|
1341
1349
|
url: ( uri.toString(true)),
|
|
1342
1350
|
headers,
|
|
1343
|
-
timeout: this.getRequestTimeout()
|
|
1351
|
+
timeout: this.getRequestTimeout(),
|
|
1352
|
+
callSite: "extensionGalleryService.getLatestRawGalleryExtension"
|
|
1344
1353
|
}, token);
|
|
1345
1354
|
if (context.res.statusCode === 404) {
|
|
1346
1355
|
errorCode = "NotFound";
|
|
@@ -1413,7 +1422,8 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1413
1422
|
await this.requestService.request({
|
|
1414
1423
|
type: "POST",
|
|
1415
1424
|
url,
|
|
1416
|
-
headers
|
|
1425
|
+
headers,
|
|
1426
|
+
callSite: "extensionGalleryService.reportStatistic"
|
|
1417
1427
|
}, CancellationToken.None);
|
|
1418
1428
|
} catch (error) {}
|
|
1419
1429
|
}
|
|
@@ -1435,6 +1445,7 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1435
1445
|
downloadAsset,
|
|
1436
1446
|
AssetType.VSIX,
|
|
1437
1447
|
extension.version,
|
|
1448
|
+
"extensionGalleryService.download",
|
|
1438
1449
|
headers ? {
|
|
1439
1450
|
headers
|
|
1440
1451
|
} : undefined
|
|
@@ -1466,7 +1477,8 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1466
1477
|
extension.identifier.id,
|
|
1467
1478
|
extension.assets.signature,
|
|
1468
1479
|
AssetType.Signature,
|
|
1469
|
-
extension.version
|
|
1480
|
+
extension.version,
|
|
1481
|
+
"extensionGalleryService.signature"
|
|
1470
1482
|
);
|
|
1471
1483
|
try {
|
|
1472
1484
|
await this.fileService.writeFile(location, context.stream);
|
|
@@ -1486,6 +1498,7 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1486
1498
|
extension.assets.readme,
|
|
1487
1499
|
AssetType.Details,
|
|
1488
1500
|
extension.version,
|
|
1501
|
+
"extensionGalleryService.readme",
|
|
1489
1502
|
{},
|
|
1490
1503
|
token
|
|
1491
1504
|
);
|
|
@@ -1501,6 +1514,7 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1501
1514
|
extension.assets.manifest,
|
|
1502
1515
|
AssetType.Manifest,
|
|
1503
1516
|
extension.version,
|
|
1517
|
+
"extensionGalleryService.manifest",
|
|
1504
1518
|
{},
|
|
1505
1519
|
token
|
|
1506
1520
|
);
|
|
@@ -1512,7 +1526,13 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1512
1526
|
async getCoreTranslation(extension, languageId) {
|
|
1513
1527
|
const asset = extension.assets.coreTranslations.filter(t => t[0] === languageId.toUpperCase())[0];
|
|
1514
1528
|
if (asset) {
|
|
1515
|
-
const context = await this.getAsset(
|
|
1529
|
+
const context = await this.getAsset(
|
|
1530
|
+
extension.identifier.id,
|
|
1531
|
+
asset[1],
|
|
1532
|
+
asset[0],
|
|
1533
|
+
extension.version,
|
|
1534
|
+
"extensionGalleryService.coreTranslation"
|
|
1535
|
+
);
|
|
1516
1536
|
const text = await asTextOrError(context);
|
|
1517
1537
|
return text ? JSON.parse(text) : null;
|
|
1518
1538
|
}
|
|
@@ -1525,6 +1545,7 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1525
1545
|
extension.assets.changelog,
|
|
1526
1546
|
AssetType.Changelog,
|
|
1527
1547
|
extension.version,
|
|
1548
|
+
"extensionGalleryService.changelog",
|
|
1528
1549
|
{},
|
|
1529
1550
|
token
|
|
1530
1551
|
);
|
|
@@ -1618,6 +1639,7 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1618
1639
|
asset,
|
|
1619
1640
|
assetType,
|
|
1620
1641
|
extensionVersion,
|
|
1642
|
+
callSite,
|
|
1621
1643
|
options = {},
|
|
1622
1644
|
token = CancellationToken.None
|
|
1623
1645
|
) {
|
|
@@ -1639,7 +1661,8 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1639
1661
|
const firstOptions = {
|
|
1640
1662
|
...options,
|
|
1641
1663
|
url,
|
|
1642
|
-
timeout: this.getRequestTimeout()
|
|
1664
|
+
timeout: this.getRequestTimeout(),
|
|
1665
|
+
callSite
|
|
1643
1666
|
};
|
|
1644
1667
|
let context;
|
|
1645
1668
|
try {
|
|
@@ -1666,7 +1689,8 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1666
1689
|
const fallbackOptions = {
|
|
1667
1690
|
...options,
|
|
1668
1691
|
url: fallbackUrl,
|
|
1669
|
-
timeout: this.getRequestTimeout()
|
|
1692
|
+
timeout: this.getRequestTimeout(),
|
|
1693
|
+
callSite: `${callSite}.fallback`
|
|
1670
1694
|
};
|
|
1671
1695
|
return this.requestService.request(fallbackOptions, token);
|
|
1672
1696
|
}
|
|
@@ -1687,7 +1711,8 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
|
|
|
1687
1711
|
const context = await this.requestService.request({
|
|
1688
1712
|
type: "GET",
|
|
1689
1713
|
url: this.extensionsControlUrl,
|
|
1690
|
-
timeout: this.getRequestTimeout()
|
|
1714
|
+
timeout: this.getRequestTimeout(),
|
|
1715
|
+
callSite: "extensionGalleryService.getExtensionsControlManifest"
|
|
1691
1716
|
}, CancellationToken.None);
|
|
1692
1717
|
if (context.res.statusCode !== 200) {
|
|
1693
1718
|
throw ( new Error("Could not get extensions report."));
|
|
@@ -8,6 +8,6 @@ import { RuntimeExtensionsInput } from '@codingame/monaco-vscode-api/vscode/vs/w
|
|
|
8
8
|
import { EditorExtensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
|
|
9
9
|
|
|
10
10
|
( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(
|
|
11
|
-
EditorPaneDescriptor.create(RuntimeExtensionsEditor, RuntimeExtensionsEditor.ID, ( localize(
|
|
11
|
+
EditorPaneDescriptor.create(RuntimeExtensionsEditor, RuntimeExtensionsEditor.ID, ( localize(9056, "Running Extensions"))),
|
|
12
12
|
[( new SyncDescriptor(RuntimeExtensionsInput))]
|
|
13
13
|
);
|
|
@@ -13,7 +13,7 @@ let ReportExtensionIssueAction = class ReportExtensionIssueAction extends Action
|
|
|
13
13
|
this._id = "workbench.extensions.action.reportExtensionIssue";
|
|
14
14
|
}
|
|
15
15
|
static {
|
|
16
|
-
this._label = ( localize(
|
|
16
|
+
this._label = ( localize(9429, "Report Issue"));
|
|
17
17
|
}
|
|
18
18
|
constructor(extension, issueService) {
|
|
19
19
|
super(
|
package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.js
CHANGED
|
@@ -140,8 +140,8 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
|
|
|
140
140
|
}));
|
|
141
141
|
if (this.allUserExtensionsDisabled) {
|
|
142
142
|
this.lifecycleService.when(LifecyclePhase.Eventually).then(() => {
|
|
143
|
-
this.notificationService.prompt(Severity.Info, ( localize(
|
|
144
|
-
label: ( localize(
|
|
143
|
+
this.notificationService.prompt(Severity.Info, ( localize(15915, "All installed extensions are temporarily disabled.")), [{
|
|
144
|
+
label: ( localize(15916, "Reload and Enable Extensions")),
|
|
145
145
|
run: () => hostService.reload({
|
|
146
146
|
disableExtensions: false
|
|
147
147
|
})
|
|
@@ -196,7 +196,7 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
|
|
|
196
196
|
throwErrorIfCannotChangeEnablement(extension, donotCheckDependencies) {
|
|
197
197
|
if (isLanguagePackExtension(extension.manifest)) {
|
|
198
198
|
throw ( new Error(( localize(
|
|
199
|
-
|
|
199
|
+
15917,
|
|
200
200
|
"Cannot change enablement of {0} extension because it contributes language packs.",
|
|
201
201
|
extension.manifest.displayName || extension.identifier.id
|
|
202
202
|
))));
|
|
@@ -205,14 +205,14 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
|
|
|
205
205
|
a => a.id === this.userDataSyncAccountService.account.authenticationProviderId
|
|
206
206
|
))) {
|
|
207
207
|
throw ( new Error(( localize(
|
|
208
|
-
|
|
208
|
+
15918,
|
|
209
209
|
"Cannot change enablement {0} extension because Settings Sync depends on it.",
|
|
210
210
|
extension.manifest.displayName || extension.identifier.id
|
|
211
211
|
))));
|
|
212
212
|
}
|
|
213
213
|
if (this._isEnabledInEnv(extension)) {
|
|
214
214
|
throw ( new Error(( localize(
|
|
215
|
-
|
|
215
|
+
15919,
|
|
216
216
|
"Cannot change enablement of {0} extension because it is enabled in environment",
|
|
217
217
|
extension.manifest.displayName || extension.identifier.id
|
|
218
218
|
))));
|
|
@@ -223,37 +223,37 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
|
|
|
223
223
|
switch (enablementStateOfExtension) {
|
|
224
224
|
case EnablementState.DisabledByEnvironment:
|
|
225
225
|
throw ( new Error(( localize(
|
|
226
|
-
|
|
226
|
+
15920,
|
|
227
227
|
"Cannot change enablement of {0} extension because it is disabled in environment",
|
|
228
228
|
extension.manifest.displayName || extension.identifier.id
|
|
229
229
|
))));
|
|
230
230
|
case EnablementState.DisabledByMalicious:
|
|
231
231
|
throw ( new Error(( localize(
|
|
232
|
-
|
|
232
|
+
15921,
|
|
233
233
|
"Cannot change enablement of {0} extension because it is malicious",
|
|
234
234
|
extension.manifest.displayName || extension.identifier.id
|
|
235
235
|
))));
|
|
236
236
|
case EnablementState.DisabledByVirtualWorkspace:
|
|
237
237
|
throw ( new Error(( localize(
|
|
238
|
-
|
|
238
|
+
15922,
|
|
239
239
|
"Cannot change enablement of {0} extension because it does not support virtual workspaces",
|
|
240
240
|
extension.manifest.displayName || extension.identifier.id
|
|
241
241
|
))));
|
|
242
242
|
case EnablementState.DisabledByExtensionKind:
|
|
243
243
|
throw ( new Error(( localize(
|
|
244
|
-
|
|
244
|
+
15923,
|
|
245
245
|
"Cannot change enablement of {0} extension because of its extension kind",
|
|
246
246
|
extension.manifest.displayName || extension.identifier.id
|
|
247
247
|
))));
|
|
248
248
|
case EnablementState.DisabledByAllowlist:
|
|
249
249
|
throw ( new Error(( localize(
|
|
250
|
-
|
|
250
|
+
15924,
|
|
251
251
|
"Cannot change enablement of {0} extension because it is disallowed",
|
|
252
252
|
extension.manifest.displayName || extension.identifier.id
|
|
253
253
|
))));
|
|
254
254
|
case EnablementState.DisabledByInvalidExtension:
|
|
255
255
|
throw ( new Error(( localize(
|
|
256
|
-
|
|
256
|
+
15925,
|
|
257
257
|
"Cannot change enablement of {0} extension because of it is invalid",
|
|
258
258
|
extension.manifest.displayName || extension.identifier.id
|
|
259
259
|
))));
|
|
@@ -266,7 +266,7 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
|
|
|
266
266
|
continue;
|
|
267
267
|
}
|
|
268
268
|
throw ( new Error(( localize(
|
|
269
|
-
|
|
269
|
+
15926,
|
|
270
270
|
"Cannot enable '{0}' extension because it depends on '{1}' extension that cannot be enabled",
|
|
271
271
|
extension.manifest.displayName || extension.identifier.id,
|
|
272
272
|
dependency.manifest.displayName || dependency.identifier.id
|
|
@@ -276,11 +276,11 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
|
|
|
276
276
|
}
|
|
277
277
|
throwErrorIfCannotChangeWorkspaceEnablement(extension) {
|
|
278
278
|
if (!this.hasWorkspace) {
|
|
279
|
-
throw ( new Error(( localize(
|
|
279
|
+
throw ( new Error(( localize(15927, "No workspace."))));
|
|
280
280
|
}
|
|
281
281
|
if (isAuthenticationProviderExtension(extension.manifest)) {
|
|
282
282
|
throw ( new Error(( localize(
|
|
283
|
-
|
|
283
|
+
15928,
|
|
284
284
|
"Cannot change enablement of {0} extension in workspace because it contributes authentication providers",
|
|
285
285
|
extension.manifest.displayName || extension.identifier.id
|
|
286
286
|
))));
|
|
@@ -96,17 +96,17 @@ let ExtensionFeaturesManagementService = class ExtensionFeaturesManagementServic
|
|
|
96
96
|
if (feature.access.requireUserConsent) {
|
|
97
97
|
const extensionDescription = this.extensionService.extensions.find(e => ExtensionIdentifier.equals(e.identifier, extension));
|
|
98
98
|
const confirmationResult = await this.dialogService.confirm({
|
|
99
|
-
title: ( localize(
|
|
99
|
+
title: ( localize(15931, "Access '{0}' Feature", feature.label)),
|
|
100
100
|
message: ( localize(
|
|
101
|
-
|
|
101
|
+
15932,
|
|
102
102
|
"'{0}' extension would like to access the '{1}' feature.",
|
|
103
103
|
extensionDescription?.displayName ?? extension._lower,
|
|
104
104
|
feature.label
|
|
105
105
|
)),
|
|
106
106
|
detail: justification ?? feature.description,
|
|
107
107
|
custom: true,
|
|
108
|
-
primaryButton: ( localize(
|
|
109
|
-
cancelButton: ( localize(
|
|
108
|
+
primaryButton: ( localize(15933, "Allow")),
|
|
109
|
+
cancelButton: ( localize(15934, "Don't Allow"))
|
|
110
110
|
});
|
|
111
111
|
enabled = confirmationResult.confirmed;
|
|
112
112
|
}
|
|
@@ -26,7 +26,7 @@ let ExtensionManagementServerService = class ExtensionManagementServerService {
|
|
|
26
26
|
id: "remote",
|
|
27
27
|
extensionManagementService,
|
|
28
28
|
get label() {
|
|
29
|
-
return labelService.getHostLabel(Schemas.vscodeRemote, remoteAgentConnection.remoteAuthority) || ( localize(
|
|
29
|
+
return labelService.getHostLabel(Schemas.vscodeRemote, remoteAgentConnection.remoteAuthority) || ( localize(15935, "Remote"));
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
32
|
}
|
|
@@ -35,7 +35,7 @@ let ExtensionManagementServerService = class ExtensionManagementServerService {
|
|
|
35
35
|
this.webExtensionManagementServer = {
|
|
36
36
|
id: "web",
|
|
37
37
|
extensionManagementService,
|
|
38
|
-
label: ( localize(
|
|
38
|
+
label: ( localize(15936, "Browser"))
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
}
|
package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementService.js
CHANGED
|
@@ -279,7 +279,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
279
279
|
getDependentsErrorMessage(extension, dependents) {
|
|
280
280
|
if (dependents.length === 1) {
|
|
281
281
|
return localize(
|
|
282
|
-
|
|
282
|
+
15937,
|
|
283
283
|
"Cannot uninstall extension '{0}'. Extension '{1}' depends on this.",
|
|
284
284
|
extension.manifest.displayName || extension.manifest.name,
|
|
285
285
|
dependents[0].manifest.displayName || dependents[0].manifest.name
|
|
@@ -287,7 +287,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
287
287
|
}
|
|
288
288
|
if (dependents.length === 2) {
|
|
289
289
|
return localize(
|
|
290
|
-
|
|
290
|
+
15938,
|
|
291
291
|
"Cannot uninstall extension '{0}'. Extensions '{1}' and '{2}' depend on this.",
|
|
292
292
|
extension.manifest.displayName || extension.manifest.name,
|
|
293
293
|
dependents[0].manifest.displayName || dependents[0].manifest.name,
|
|
@@ -295,7 +295,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
295
295
|
);
|
|
296
296
|
}
|
|
297
297
|
return localize(
|
|
298
|
-
|
|
298
|
+
15939,
|
|
299
299
|
"Cannot uninstall extension '{0}'. Extensions '{1}', '{2}' and others depend on this.",
|
|
300
300
|
extension.manifest.displayName || extension.manifest.name,
|
|
301
301
|
dependents[0].manifest.displayName || dependents[0].manifest.name,
|
|
@@ -407,7 +407,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
407
407
|
}
|
|
408
408
|
const manifest = await this.extensionGalleryService.getManifest(gallery, CancellationToken.None);
|
|
409
409
|
if (!manifest) {
|
|
410
|
-
return ( new MarkdownString()).appendText(( localize(
|
|
410
|
+
return ( new MarkdownString()).appendText(( localize(15940, "Manifest is not found")));
|
|
411
411
|
}
|
|
412
412
|
if (this.extensionManagementServerService.remoteExtensionManagementServer && (await this.extensionManagementServerService.remoteExtensionManagementServer.extensionManagementService.canInstall(gallery)) === true && this.extensionManifestPropertiesService.canExecuteOnWorkspace(manifest)) {
|
|
413
413
|
return true;
|
|
@@ -416,7 +416,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
416
416
|
return true;
|
|
417
417
|
}
|
|
418
418
|
return ( new MarkdownString()).appendText(( localize(
|
|
419
|
-
|
|
419
|
+
15941,
|
|
420
420
|
"Cannot install the '{0}' extension because it is not available in this setup.",
|
|
421
421
|
gallery.displayName || gallery.name
|
|
422
422
|
)));
|
|
@@ -432,7 +432,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
432
432
|
return true;
|
|
433
433
|
}
|
|
434
434
|
return ( new MarkdownString()).appendText(( localize(
|
|
435
|
-
|
|
435
|
+
15941,
|
|
436
436
|
"Cannot install the '{0}' extension because it is not available in this setup.",
|
|
437
437
|
extension.manifest.displayName ?? extension.identifier.id
|
|
438
438
|
)));
|
|
@@ -469,7 +469,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
469
469
|
const manifest = await this.extensionGalleryService.getManifest(extension, CancellationToken.None);
|
|
470
470
|
if (!manifest) {
|
|
471
471
|
throw ( new Error(( localize(
|
|
472
|
-
|
|
472
|
+
15942,
|
|
473
473
|
"Installing Extension {0} failed: Manifest is not found.",
|
|
474
474
|
extension.displayName || extension.name
|
|
475
475
|
))));
|
|
@@ -495,7 +495,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
495
495
|
const manifest = await this.extensionGalleryService.getManifest(extension, CancellationToken.None);
|
|
496
496
|
if (!manifest) {
|
|
497
497
|
throw ( new Error(( localize(
|
|
498
|
-
|
|
498
|
+
15942,
|
|
499
499
|
"Installing Extension {0} failed: Manifest is not found.",
|
|
500
500
|
extension.displayName || extension.name
|
|
501
501
|
))));
|
|
@@ -544,7 +544,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
544
544
|
const manifest = await this.extensionGalleryService.getManifest(gallery, CancellationToken.None);
|
|
545
545
|
if (!manifest) {
|
|
546
546
|
throw ( new Error(( localize(
|
|
547
|
-
|
|
547
|
+
15942,
|
|
548
548
|
"Installing Extension {0} failed: Manifest is not found.",
|
|
549
549
|
gallery.displayName || gallery.name
|
|
550
550
|
))));
|
|
@@ -659,7 +659,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
659
659
|
const manifest = await this.extensionGalleryService.getManifest(gallery, CancellationToken.None);
|
|
660
660
|
if (!manifest) {
|
|
661
661
|
return Promise.reject(( localize(
|
|
662
|
-
|
|
662
|
+
15942,
|
|
663
663
|
"Installing Extension {0} failed: Manifest is not found.",
|
|
664
664
|
gallery.displayName || gallery.name
|
|
665
665
|
)));
|
|
@@ -715,7 +715,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
715
715
|
for (const server of servers) {
|
|
716
716
|
if (!installableServers.includes(server)) {
|
|
717
717
|
const error = ( new Error(( localize(
|
|
718
|
-
|
|
718
|
+
15943,
|
|
719
719
|
"Cannot install the '{0}' extension because it is not available in the '{1}' setup.",
|
|
720
720
|
gallery.displayName || gallery.name,
|
|
721
721
|
server.label
|
|
@@ -740,7 +740,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
740
740
|
}
|
|
741
741
|
if (!servers.length) {
|
|
742
742
|
const error = ( new Error(( localize(
|
|
743
|
-
|
|
743
|
+
15941,
|
|
744
744
|
"Cannot install the '{0}' extension because it is not available in this setup.",
|
|
745
745
|
gallery.displayName || gallery.name
|
|
746
746
|
))));
|
|
@@ -780,20 +780,20 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
780
780
|
result
|
|
781
781
|
} = await this.dialogService.prompt({
|
|
782
782
|
type: Severity.Info,
|
|
783
|
-
message: extensions.length === 1 ? ( localize(
|
|
783
|
+
message: extensions.length === 1 ? ( localize(15944, "Install Extension")) : ( localize(15945, "Install Extensions")),
|
|
784
784
|
detail: extensions.length === 1 ? ( localize(
|
|
785
|
-
|
|
785
|
+
15946,
|
|
786
786
|
"Would you like to install and synchronize '{0}' extension across your devices?",
|
|
787
787
|
extensions[0].displayName
|
|
788
788
|
)) : ( localize(
|
|
789
|
-
|
|
789
|
+
15947,
|
|
790
790
|
"Would you like to install and synchronize extensions across your devices?"
|
|
791
791
|
)),
|
|
792
792
|
buttons: [{
|
|
793
|
-
label: ( localize(
|
|
793
|
+
label: ( localize(15948, "&&Install")),
|
|
794
794
|
run: () => false
|
|
795
795
|
}, {
|
|
796
|
-
label: ( localize(
|
|
796
|
+
label: ( localize(15949, "Install (Do &¬ sync)")),
|
|
797
797
|
run: () => true
|
|
798
798
|
}],
|
|
799
799
|
cancelButton: {
|
|
@@ -845,7 +845,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
845
845
|
const manifest = await this.extensionGalleryService.getManifest(extension, CancellationToken.None);
|
|
846
846
|
if (!manifest) {
|
|
847
847
|
throw ( new Error(( localize(
|
|
848
|
-
|
|
848
|
+
15942,
|
|
849
849
|
"Installing Extension {0} failed: Manifest is not found.",
|
|
850
850
|
extension.displayName || extension.name
|
|
851
851
|
))));
|
|
@@ -886,7 +886,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
886
886
|
const unverfiiedPublishers = allPublishers.filter(p => !p.publisherDomain?.verified);
|
|
887
887
|
const verifiedPublishers = allPublishers.filter(p => p.publisherDomain?.verified);
|
|
888
888
|
const installButton = {
|
|
889
|
-
label: allPublishers.length > 1 ? ( localize(
|
|
889
|
+
label: allPublishers.length > 1 ? ( localize(15950, "Trust Publishers & &&Install")) : ( localize(15951, "Trust Publisher & &&Install")),
|
|
890
890
|
run: () => {
|
|
891
891
|
this.telemetryService.publicLog2("extensions:trustPublisher", {
|
|
892
892
|
action: "trust",
|
|
@@ -899,7 +899,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
899
899
|
}
|
|
900
900
|
};
|
|
901
901
|
const learnMoreButton = {
|
|
902
|
-
label: ( localize(
|
|
902
|
+
label: ( localize(15952, "&&Learn More")),
|
|
903
903
|
run: () => {
|
|
904
904
|
this.telemetryService.publicLog2("extensions:trustPublisher", {
|
|
905
905
|
action: "learn",
|
|
@@ -921,16 +921,16 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
921
921
|
};
|
|
922
922
|
const unverifiedLink = "https://aka.ms/vscode-verify-publisher";
|
|
923
923
|
const title = allPublishers.length === 1 ? ( localize(
|
|
924
|
-
|
|
924
|
+
15953,
|
|
925
925
|
"Do you trust the publisher \"{0}\"?",
|
|
926
926
|
allPublishers[0].publisherDisplayName
|
|
927
927
|
)) : allPublishers.length === 2 ? ( localize(
|
|
928
|
-
|
|
928
|
+
15954,
|
|
929
929
|
"Do you trust publishers \"{0}\" and \"{1}\"?",
|
|
930
930
|
allPublishers[0].publisherDisplayName,
|
|
931
931
|
allPublishers[1].publisherDisplayName
|
|
932
932
|
)) : ( localize(
|
|
933
|
-
|
|
933
|
+
15955,
|
|
934
934
|
"Do you trust the publisher \"{0}\" and {1} others?",
|
|
935
935
|
allPublishers[0].publisherDisplayName,
|
|
936
936
|
allPublishers.length - 1
|
|
@@ -944,7 +944,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
944
944
|
const manifest = untrustedExtensionManifests[0];
|
|
945
945
|
if (otherUntrustedPublishers.length) {
|
|
946
946
|
customMessage.appendMarkdown(( localize(
|
|
947
|
-
|
|
947
|
+
15956,
|
|
948
948
|
"The extension {0} is published by {1}.",
|
|
949
949
|
`[${extension.displayName}](${extension.detailsLink})`,
|
|
950
950
|
getPublisherLink(extension)
|
|
@@ -957,14 +957,14 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
957
957
|
).toString());
|
|
958
958
|
if (otherUntrustedPublishers.length === 1) {
|
|
959
959
|
customMessage.appendMarkdown(( localize(
|
|
960
|
-
|
|
960
|
+
15957,
|
|
961
961
|
"Installing this extension will also install [extensions]({0}) published by {1}.",
|
|
962
962
|
commandUri,
|
|
963
963
|
getPublisherLink(otherUntrustedPublishers[0])
|
|
964
964
|
)));
|
|
965
965
|
} else {
|
|
966
966
|
customMessage.appendMarkdown(( localize(
|
|
967
|
-
|
|
967
|
+
15958,
|
|
968
968
|
"Installing this extension will also install [extensions]({0}) published by {1} and {2}.",
|
|
969
969
|
commandUri,
|
|
970
970
|
( otherUntrustedPublishers.slice(0, otherUntrustedPublishers.length - 1).map(p => getPublisherLink(p))).join(", "),
|
|
@@ -973,12 +973,12 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
973
973
|
}
|
|
974
974
|
customMessage.appendMarkdown(" ");
|
|
975
975
|
customMessage.appendMarkdown(( localize(
|
|
976
|
-
|
|
976
|
+
15959,
|
|
977
977
|
"This is the first time you're installing extensions from these publishers."
|
|
978
978
|
)));
|
|
979
979
|
} else {
|
|
980
980
|
customMessage.appendMarkdown(( localize(
|
|
981
|
-
|
|
981
|
+
15960,
|
|
982
982
|
"The extension {0} is published by {1}. This is the first extension you're installing from this publisher.",
|
|
983
983
|
`[${extension.displayName}](${extension.detailsLink})`,
|
|
984
984
|
getPublisherLink(extension)
|
|
@@ -986,7 +986,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
986
986
|
}
|
|
987
987
|
} else {
|
|
988
988
|
customMessage.appendMarkdown(( localize(
|
|
989
|
-
|
|
989
|
+
15961,
|
|
990
990
|
"This is the first time you're installing extensions from publishers {0} and {1}.",
|
|
991
991
|
getPublisherLink(allPublishers[0]),
|
|
992
992
|
getPublisherLink(allPublishers[allPublishers.length - 1])
|
|
@@ -996,7 +996,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
996
996
|
for (const publisher of verifiedPublishers) {
|
|
997
997
|
customMessage.appendText("\n");
|
|
998
998
|
const publisherVerifiedMessage = ( localize(
|
|
999
|
-
|
|
999
|
+
15962,
|
|
1000
1000
|
"{0} has verified ownership of {1}.",
|
|
1001
1001
|
getPublisherLink(publisher),
|
|
1002
1002
|
`[$(link-external) ${( URI.parse(publisher.publisherDomain.link)).authority}](${publisher.publisherDomain.link})`
|
|
@@ -1007,14 +1007,14 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
1007
1007
|
customMessage.appendText("\n");
|
|
1008
1008
|
if (unverfiiedPublishers.length === 1) {
|
|
1009
1009
|
customMessage.appendMarkdown(`$(${Codicon.unverified.id}) ${( localize(
|
|
1010
|
-
|
|
1010
|
+
15963,
|
|
1011
1011
|
"{0} is [**not** verified]({1}).",
|
|
1012
1012
|
getPublisherLink(unverfiiedPublishers[0]),
|
|
1013
1013
|
unverifiedLink
|
|
1014
1014
|
))}`);
|
|
1015
1015
|
} else {
|
|
1016
1016
|
customMessage.appendMarkdown(`$(${Codicon.unverified.id}) ${( localize(
|
|
1017
|
-
|
|
1017
|
+
15964,
|
|
1018
1018
|
"{0} and {1} are [**not** verified]({2}).",
|
|
1019
1019
|
( unverfiiedPublishers.slice(0, unverfiiedPublishers.length - 1).map(p => getPublisherLink(p))).join(", "),
|
|
1020
1020
|
getPublisherLink(unverfiiedPublishers[unverfiiedPublishers.length - 1]),
|
|
@@ -1024,18 +1024,18 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
1024
1024
|
}
|
|
1025
1025
|
} else {
|
|
1026
1026
|
customMessage.appendText("\n");
|
|
1027
|
-
customMessage.appendMarkdown(`$(${Codicon.unverified.id}) ${( localize(
|
|
1027
|
+
customMessage.appendMarkdown(`$(${Codicon.unverified.id}) ${( localize(15965, "All publishers are [**not** verified]({0}).", unverifiedLink))}`);
|
|
1028
1028
|
}
|
|
1029
1029
|
customMessage.appendText("\n");
|
|
1030
1030
|
if (allPublishers.length > 1) {
|
|
1031
1031
|
customMessage.appendMarkdown(( localize(
|
|
1032
|
-
|
|
1032
|
+
15966,
|
|
1033
1033
|
"{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.",
|
|
1034
1034
|
this.productService.nameLong
|
|
1035
1035
|
)));
|
|
1036
1036
|
} else {
|
|
1037
1037
|
customMessage.appendMarkdown(( localize(
|
|
1038
|
-
|
|
1038
|
+
15967,
|
|
1039
1039
|
"{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.",
|
|
1040
1040
|
this.productService.nameLong
|
|
1041
1041
|
)));
|
|
@@ -1126,21 +1126,21 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
1126
1126
|
if (requireTrust || this.extensionManifestPropertiesService.getExtensionUntrustedWorkspaceSupportType(manifest) === false) {
|
|
1127
1127
|
const buttons = [];
|
|
1128
1128
|
buttons.push({
|
|
1129
|
-
label: ( localize(
|
|
1129
|
+
label: ( localize(15968, "Trust Workspace & Install")),
|
|
1130
1130
|
type: "ContinueWithTrust"
|
|
1131
1131
|
});
|
|
1132
1132
|
if (!requireTrust) {
|
|
1133
1133
|
buttons.push({
|
|
1134
|
-
label: ( localize(
|
|
1134
|
+
label: ( localize(15969, "Install")),
|
|
1135
1135
|
type: "ContinueWithoutTrust"
|
|
1136
1136
|
});
|
|
1137
1137
|
}
|
|
1138
1138
|
buttons.push({
|
|
1139
|
-
label: ( localize(
|
|
1139
|
+
label: ( localize(15970, "Learn More")),
|
|
1140
1140
|
type: "Manage"
|
|
1141
1141
|
});
|
|
1142
1142
|
const trustState = await this.workspaceTrustRequestService.requestWorkspaceTrust({
|
|
1143
|
-
message: ( localize(
|
|
1143
|
+
message: ( localize(15971, "Enabling this extension requires a trusted workspace.")),
|
|
1144
1144
|
buttons
|
|
1145
1145
|
});
|
|
1146
1146
|
if (trustState === undefined) {
|
|
@@ -1166,7 +1166,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
1166
1166
|
throw ( new ExtensionManagementError("Not supported in Web", ExtensionManagementErrorCode.Unsupported));
|
|
1167
1167
|
}
|
|
1168
1168
|
}
|
|
1169
|
-
const productName = ( localize(
|
|
1169
|
+
const productName = ( localize(15972, "{0} for the Web", this.productService.nameLong));
|
|
1170
1170
|
const virtualWorkspaceSupport = this.extensionManifestPropertiesService.getExtensionVirtualWorkspaceSupportType(manifest);
|
|
1171
1171
|
const virtualWorkspaceSupportReason = getWorkspaceSupportTypeMessage(manifest.capabilities?.virtualWorkspaces);
|
|
1172
1172
|
const hasLimitedSupport = virtualWorkspaceSupport === "limited" || !!virtualWorkspaceSupportReason;
|
|
@@ -1174,7 +1174,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
1174
1174
|
return;
|
|
1175
1175
|
}
|
|
1176
1176
|
const limitedSupportMessage = ( localize(
|
|
1177
|
-
|
|
1177
|
+
15973,
|
|
1178
1178
|
"'{0}' has limited functionality in {1}.",
|
|
1179
1179
|
extension.displayName || extension.identifier.id,
|
|
1180
1180
|
productName
|
|
@@ -1183,18 +1183,18 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
1183
1183
|
let buttons = [];
|
|
1184
1184
|
let detail;
|
|
1185
1185
|
const installAnywayButton = {
|
|
1186
|
-
label: ( localize(
|
|
1186
|
+
label: ( localize(15974, "&&Install Anyway")),
|
|
1187
1187
|
run: () => {}
|
|
1188
1188
|
};
|
|
1189
1189
|
const showExtensionsButton = {
|
|
1190
|
-
label: ( localize(
|
|
1190
|
+
label: ( localize(15975, "&&Show Extensions")),
|
|
1191
1191
|
run: () => this.instantiationService.invokeFunction(
|
|
1192
1192
|
accessor => accessor.get(ICommandService).executeCommand("extension.open", extension.identifier.id, "extensionPack")
|
|
1193
1193
|
)
|
|
1194
1194
|
};
|
|
1195
1195
|
if (nonWebExtensions.length && hasLimitedSupport) {
|
|
1196
1196
|
message = limitedSupportMessage;
|
|
1197
|
-
detail = `${virtualWorkspaceSupportReason ? `${virtualWorkspaceSupportReason}\n` : ""}${( localize(
|
|
1197
|
+
detail = `${virtualWorkspaceSupportReason ? `${virtualWorkspaceSupportReason}\n` : ""}${( localize(15976, "Contains extensions which are not supported."))}`;
|
|
1198
1198
|
buttons = [installAnywayButton, showExtensionsButton];
|
|
1199
1199
|
} else if (hasLimitedSupport) {
|
|
1200
1200
|
message = limitedSupportMessage;
|
|
@@ -1202,7 +1202,7 @@ let ExtensionManagementService = class ExtensionManagementService extends Common
|
|
|
1202
1202
|
buttons = [installAnywayButton];
|
|
1203
1203
|
} else {
|
|
1204
1204
|
message = ( localize(
|
|
1205
|
-
|
|
1205
|
+
15977,
|
|
1206
1206
|
"'{0}' contains extensions which are not supported in {1}.",
|
|
1207
1207
|
extension.displayName || extension.identifier.id,
|
|
1208
1208
|
productName
|
|
@@ -1514,7 +1514,7 @@ let WorkspaceExtensionsManagementService = class WorkspaceExtensionsManagementSe
|
|
|
1514
1514
|
this.uriIdentityService.extUri.joinPath(extension.location, extension.manifest.main)
|
|
1515
1515
|
))) {
|
|
1516
1516
|
isValid = false;
|
|
1517
|
-
validations.push([Severity.Error, ( localize(
|
|
1517
|
+
validations.push([Severity.Error, ( localize(15978, "Cannot activate because {0} not found", extension.manifest.main))]);
|
|
1518
1518
|
}
|
|
1519
1519
|
}
|
|
1520
1520
|
return {
|