@codingame/monaco-vscode-extension-gallery-service-override 33.0.7 → 34.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 CHANGED
@@ -1,21 +1,21 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-extension-gallery-service-override",
3
- "version": "33.0.7",
3
+ "version": "34.0.0",
4
4
  "private": false,
5
5
  "description": "VSCode public API plugged on the monaco editor - extension-gallery service-override",
6
6
  "keywords": [],
7
+ "license": "MIT",
7
8
  "author": {
8
9
  "name": "CodinGame",
9
10
  "url": "http://www.codingame.com"
10
11
  },
11
- "license": "MIT",
12
12
  "repository": {
13
13
  "type": "git",
14
14
  "url": "git+ssh://git@github.com/CodinGame/monaco-vscode-api.git"
15
15
  },
16
16
  "type": "module",
17
17
  "dependencies": {
18
- "@codingame/monaco-vscode-api": "33.0.7"
18
+ "@codingame/monaco-vscode-api": "34.0.0"
19
19
  },
20
20
  "main": "index.js",
21
21
  "module": "index.js",
@@ -36,7 +36,7 @@ let CommontExtensionManagementService = class CommontExtensionManagementService
36
36
  });
37
37
  if (allowedToInstall !== true) {
38
38
  return (new MarkdownString(localize(
39
- 1881,
39
+ 1911,
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
- 1882,
47
+ 1912,
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(1883, "Learn Why"))}](${learnLink})`));
52
+ ))} [${( localize(1913, "Learn Why"))}](${learnLink})`));
53
53
  }
54
54
  return true;
55
55
  }
@@ -146,7 +146,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
146
146
  }
147
147
  async installGalleryExtensions(extensions) {
148
148
  if (!this.galleryService.isEnabled()) {
149
- throw ( new ExtensionManagementError(( localize(1884, "Marketplace is not enabled")), ExtensionManagementErrorCode.NotAllowed));
149
+ throw ( new ExtensionManagementError(( localize(1914, "Marketplace is not enabled")), ExtensionManagementErrorCode.NotAllowed));
150
150
  }
151
151
  const results = [];
152
152
  const installableExtensions = [];
@@ -833,7 +833,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
833
833
  const extensionsControlManifest = await this.getExtensionsControlManifest();
834
834
  if (isMalicious(extension.identifier, extensionsControlManifest.malicious)) {
835
835
  throw ( new ExtensionManagementError(( localize(
836
- 1885,
836
+ 1915,
837
837
  "Can't install '{0}' extension since it was reported to be problematic.",
838
838
  extension.identifier.id
839
839
  )), ExtensionManagementErrorCode.Malicious));
@@ -853,7 +853,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
853
853
  }, CancellationToken.None))[0];
854
854
  if (!compatibleExtension) {
855
855
  throw ( new ExtensionManagementError(( localize(
856
- 1886,
856
+ 1916,
857
857
  "Can't install '{0}' extension since it was deprecated and the replacement extension '{1}' can't be found.",
858
858
  extension.identifier.id,
859
859
  deprecationInfo.extension.id
@@ -863,7 +863,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
863
863
  if ((await this.canInstall(extension)) !== true) {
864
864
  const targetPlatform = await this.getTargetPlatform();
865
865
  throw ( new ExtensionManagementError(( localize(
866
- 1882,
866
+ 1912,
867
867
  "The '{0}' extension is not available in {1} for the {2} platform.",
868
868
  extension.identifier.id,
869
869
  this.productService.nameLong,
@@ -878,7 +878,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
878
878
  incompatibleApiProposalsMessages
879
879
  )) {
880
880
  throw ( new ExtensionManagementError(( localize(
881
- 1887,
881
+ 1917,
882
882
  "Can't install '{0}' extension. {1}",
883
883
  extension.displayName ?? extension.identifier.id,
884
884
  incompatibleApiProposalsMessages[0]
@@ -886,13 +886,13 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
886
886
  }
887
887
  if (!installPreRelease && extension.hasPreReleaseVersion && extension.properties.isPreReleaseVersion && (await this.galleryService.getExtensions([extension.identifier], CancellationToken.None))[0]) {
888
888
  throw ( new ExtensionManagementError(( localize(
889
- 1888,
889
+ 1918,
890
890
  "Can't install release version of '{0}' extension because it has no release version.",
891
891
  extension.displayName ?? extension.identifier.id
892
892
  )), ExtensionManagementErrorCode.ReleaseVersionNotFound));
893
893
  }
894
894
  throw ( new ExtensionManagementError(( localize(
895
- 1889,
895
+ 1919,
896
896
  "Can't install '{0}' extension because it is not compatible with the current version of {1} (version {2}).",
897
897
  extension.identifier.id,
898
898
  this.productService.nameLong,
@@ -1212,7 +1212,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
1212
1212
  if (extensionToUninstall === dependingExtension) {
1213
1213
  if (dependents.length === 1) {
1214
1214
  return localize(
1215
- 1890,
1215
+ 1920,
1216
1216
  "Cannot uninstall '{0}' extension. '{1}' extension depends on this.",
1217
1217
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
1218
1218
  dependents[0].manifest.displayName || dependents[0].manifest.name
@@ -1220,7 +1220,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
1220
1220
  }
1221
1221
  if (dependents.length === 2) {
1222
1222
  return localize(
1223
- 1891,
1223
+ 1921,
1224
1224
  "Cannot uninstall '{0}' extension. '{1}' and '{2}' extensions depend on this.",
1225
1225
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
1226
1226
  dependents[0].manifest.displayName || dependents[0].manifest.name,
@@ -1228,7 +1228,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
1228
1228
  );
1229
1229
  }
1230
1230
  return localize(
1231
- 1892,
1231
+ 1922,
1232
1232
  "Cannot uninstall '{0}' extension. '{1}', '{2}' and other extension depend on this.",
1233
1233
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
1234
1234
  dependents[0].manifest.displayName || dependents[0].manifest.name,
@@ -1237,7 +1237,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
1237
1237
  }
1238
1238
  if (dependents.length === 1) {
1239
1239
  return localize(
1240
- 1893,
1240
+ 1923,
1241
1241
  "Cannot uninstall '{0}' extension . It includes uninstalling '{1}' extension and '{2}' extension depends on this.",
1242
1242
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
1243
1243
  dependingExtension.manifest.displayName || dependingExtension.manifest.name,
@@ -1246,7 +1246,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
1246
1246
  }
1247
1247
  if (dependents.length === 2) {
1248
1248
  return localize(
1249
- 1894,
1249
+ 1924,
1250
1250
  "Cannot uninstall '{0}' extension. It includes uninstalling '{1}' extension and '{2}' and '{3}' extensions depend on this.",
1251
1251
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
1252
1252
  dependingExtension.manifest.displayName || dependingExtension.manifest.name,
@@ -1255,7 +1255,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
1255
1255
  );
1256
1256
  }
1257
1257
  return localize(
1258
- 1895,
1258
+ 1925,
1259
1259
  "Cannot uninstall '{0}' extension. It includes uninstalling '{1}' extension and '{2}', '{3}' and other extensions depend on this.",
1260
1260
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
1261
1261
  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(1896, "it is not in the [allowed list]({0})", settingsCommandLink))));
80
+ const extensionReason = ( new MarkdownString(( localize(1926, "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
- 1897,
87
+ 1927,
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
- 1898,
110
+ 1928,
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
- 1899,
123
+ 1929,
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
- 1900,
131
+ 1930,
132
132
  "the pre-release versions from this publisher are not in the [allowed list]({1})",
133
133
  publisherKey,
134
134
  settingsCommandLink
@@ -272,19 +272,19 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
272
272
  const activationId = activationTimes.activationReason.extensionId.value;
273
273
  const activationEvent = activationTimes.activationReason.activationEvent;
274
274
  if (activationEvent === "*") {
275
- title = ( localize(9453, "Activated by {0} on start-up", activationId));
275
+ title = ( localize(9615, "Activated by {0} on start-up", activationId));
276
276
  } else if (/^workspaceContains:/.test(activationEvent)) {
277
277
  const fileNameOrGlob = activationEvent.substr("workspaceContains:".length);
278
278
  if (fileNameOrGlob.indexOf("*") >= 0 || fileNameOrGlob.indexOf("?") >= 0) {
279
279
  title = ( localize(
280
- 9454,
280
+ 9616,
281
281
  "Activated by {1} because a file matching {0} exists in your workspace",
282
282
  fileNameOrGlob,
283
283
  activationId
284
284
  ));
285
285
  } else {
286
286
  title = ( localize(
287
- 9455,
287
+ 9617,
288
288
  "Activated by {1} because file {0} exists in your workspace",
289
289
  fileNameOrGlob,
290
290
  activationId
@@ -293,26 +293,26 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
293
293
  } else if (/^workspaceContainsTimeout:/.test(activationEvent)) {
294
294
  const glob = activationEvent.substr("workspaceContainsTimeout:".length);
295
295
  title = ( localize(
296
- 9456,
296
+ 9618,
297
297
  "Activated by {1} because searching for {0} took too long",
298
298
  glob,
299
299
  activationId
300
300
  ));
301
301
  } else if (activationEvent === "onStartupFinished") {
302
- title = ( localize(9457, "Activated by {0} after start-up finished", activationId));
302
+ title = ( localize(9619, "Activated by {0} after start-up finished", activationId));
303
303
  } else if (/^onLanguage:/.test(activationEvent)) {
304
304
  const language = activationEvent.substr("onLanguage:".length);
305
305
  title = ( localize(
306
- 9458,
306
+ 9620,
307
307
  "Activated by {1} because you opened a {0} file",
308
308
  language,
309
309
  activationId
310
310
  ));
311
311
  } else {
312
- title = ( localize(9459, "Activated by {1} on {0}", activationEvent, activationId));
312
+ title = ( localize(9621, "Activated by {1} on {0}", activationEvent, activationId));
313
313
  }
314
314
  } else {
315
- title = ( localize(9460, "Extension is activating..."));
315
+ title = ( localize(9622, "Extension is activating..."));
316
316
  }
317
317
  data.elementDisposables.push(
318
318
  this._hoverService.setupManagedHover(getDefaultHoverDelegate("mouse"), data.activationTime, title)
@@ -320,14 +320,14 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
320
320
  clearNode(data.msgContainer);
321
321
  if (this._getUnresponsiveProfile(element.description.identifier)) {
322
322
  const el = $("span", undefined, ...renderLabelWithIcons(` $(alert) Unresponsive`));
323
- const extensionHostFreezTitle = ( localize(9461, "Extension has caused the extension host to freeze."));
323
+ const extensionHostFreezTitle = ( localize(9623, "Extension has caused the extension host to freeze."));
324
324
  data.elementDisposables.push(
325
325
  this._hoverService.setupManagedHover(getDefaultHoverDelegate("mouse"), el, extensionHostFreezTitle)
326
326
  );
327
327
  data.msgContainer.appendChild(el);
328
328
  }
329
329
  if (isNonEmptyArray(element.status.runtimeErrors)) {
330
- const el = $("span", undefined, ...renderLabelWithIcons(`$(bug) ${( localize(9462, "{0} uncaught errors", element.status.runtimeErrors.length))}`));
330
+ const el = $("span", undefined, ...renderLabelWithIcons(`$(bug) ${( localize(9624, "{0} uncaught errors", element.status.runtimeErrors.length))}`));
331
331
  data.msgContainer.appendChild(el);
332
332
  }
333
333
  if (element.status.messages && element.status.messages.length > 0) {
@@ -368,14 +368,14 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
368
368
  }
369
369
  if (accessData?.accessTimes.length > 0) {
370
370
  const element = $("span", undefined, `${( localize(
371
- 9463,
371
+ 9625,
372
372
  "{0} Usage: {1} Requests",
373
373
  feature.label,
374
374
  accessData.accessTimes.length
375
- ))}${accessData.current ? ( localize(9464, ", {0} Requests (Session)", accessData.current.accessTimes.length)) : ""}`);
375
+ ))}${accessData.current ? ( localize(9626, ", {0} Requests (Session)", accessData.current.accessTimes.length)) : ""}`);
376
376
  if (accessData.current) {
377
377
  const title = ( localize(
378
- 9465,
378
+ 9627,
379
379
  "Last request was {0}.",
380
380
  fromNow(accessData.current.lastAccessed, true, true)
381
381
  ));
@@ -406,7 +406,7 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
406
406
  },
407
407
  accessibilityProvider: new (class {
408
408
  getWidgetAriaLabel() {
409
- return localize(9466, "Runtime Extensions");
409
+ return localize(9628, "Runtime Extensions");
410
410
  }
411
411
  getAriaLabel(element) {
412
412
  return element.description.name;
@@ -419,7 +419,7 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
419
419
  return;
420
420
  }
421
421
  const actions = [];
422
- actions.push(( new Action("runtimeExtensionsEditor.action.copyId", ( localize(9467, "Copy id ({0})", e.element.description.identifier.value)), undefined, true, () => {
422
+ actions.push(( new Action("runtimeExtensionsEditor.action.copyId", ( localize(9629, "Copy id ({0})", e.element.description.identifier.value)), undefined, true, () => {
423
423
  this._clipboardService.writeText(e.element.description.identifier.value);
424
424
  })));
425
425
  const reportExtensionIssueAction = this._createReportExtensionIssueAction(e.element);
@@ -428,8 +428,8 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
428
428
  }
429
429
  actions.push(( new Separator()));
430
430
  if (e.element.marketplaceInfo) {
431
- actions.push(( new Action("runtimeExtensionsEditor.action.disableWorkspace", ( localize(9468, "Disable (Workspace)")), undefined, true, () => this._extensionsWorkbenchService.setEnablement(e.element.marketplaceInfo, EnablementState.DisabledWorkspace))));
432
- actions.push(( new Action("runtimeExtensionsEditor.action.disable", ( localize(9469, "Disable")), undefined, true, () => this._extensionsWorkbenchService.setEnablement(e.element.marketplaceInfo, EnablementState.DisabledGlobally))));
431
+ actions.push(( new Action("runtimeExtensionsEditor.action.disableWorkspace", ( localize(9630, "Disable (Workspace)")), undefined, true, () => this._extensionsWorkbenchService.setEnablement(e.element.marketplaceInfo, EnablementState.DisabledWorkspace))));
432
+ actions.push(( new Action("runtimeExtensionsEditor.action.disable", ( localize(9631, "Disable")), undefined, true, () => this._extensionsWorkbenchService.setEnablement(e.element.marketplaceInfo, EnablementState.DisabledGlobally))));
433
433
  }
434
434
  actions.push(( new Separator()));
435
435
  const menuActions = this._menuService.getMenuActions(MenuId.ExtensionEditorContextMenu, this.contextKeyService);
@@ -449,7 +449,7 @@ class ShowRuntimeExtensionsAction extends Action2 {
449
449
  constructor() {
450
450
  super({
451
451
  id: "workbench.action.showRuntimeExtensions",
452
- title: ( localize2(9470, "Show Running Extensions")),
452
+ title: ( localize2(9632, "Show Running Extensions")),
453
453
  category: Categories.Developer,
454
454
  f1: true,
455
455
  menu: {
@@ -10,7 +10,7 @@ import { EditorExtensions } from '@codingame/monaco-vscode-api/vscode/vs/workben
10
10
  import { ShowRuntimeExtensionsAction } from './abstractRuntimeExtensionsEditor.js';
11
11
 
12
12
  ( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(
13
- EditorPaneDescriptor.create(RuntimeExtensionsEditor, RuntimeExtensionsEditor.ID, ( localize(9700, "Running Extensions"))),
13
+ EditorPaneDescriptor.create(RuntimeExtensionsEditor, RuntimeExtensionsEditor.ID, ( localize(9861, "Running Extensions"))),
14
14
  [( new SyncDescriptor(RuntimeExtensionsInput))]
15
15
  );
16
16
  registerAction2(ShowRuntimeExtensionsAction);
@@ -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(10082, "Report Issue"));
16
+ this._label = ( localize(10246, "Report Issue"));
17
17
  }
18
18
  constructor(extension, issueService) {
19
19
  super(
@@ -6,7 +6,7 @@ import { EditorInput } from '@codingame/monaco-vscode-api/vscode/vs/workbench/co
6
6
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
7
7
  import { registerIcon } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/iconRegistry';
8
8
 
9
- const RuntimeExtensionsEditorIcon = registerIcon("runtime-extensions-editor-label-icon", Codicon.extensions, ( localize(10083, "Icon of the runtime extensions editor label.")));
9
+ const RuntimeExtensionsEditorIcon = registerIcon("runtime-extensions-editor-label-icon", Codicon.extensions, ( localize(10247, "Icon of the runtime extensions editor label.")));
10
10
  class RuntimeExtensionsInput extends EditorInput {
11
11
  constructor() {
12
12
  super(...arguments);
@@ -31,7 +31,7 @@ class RuntimeExtensionsInput extends EditorInput {
31
31
  return RuntimeExtensionsInput._instance;
32
32
  }
33
33
  getName() {
34
- return localize(10084, "Running Extensions");
34
+ return localize(10248, "Running Extensions");
35
35
  }
36
36
  getIcon() {
37
37
  return RuntimeExtensionsEditorIcon;
@@ -60,6 +60,7 @@ export declare class ExtensionEnablementService extends Disposable implements IW
60
60
  private readonly _chatExtensionId;
61
61
  private _extensionUnificationEnabled;
62
62
  private readonly _sessionsWindowAllowedExtensions;
63
+ private _maliciousExtensionsCache;
63
64
  constructor(storageService: IStorageService, globalExtensionEnablementService: IGlobalExtensionEnablementService, contextService: IWorkspaceContextService, environmentService: IWorkbenchEnvironmentService, extensionManagementService: IExtensionManagementService, configurationService: IConfigurationService, extensionManagementServerService: IExtensionManagementServerService, userDataSyncEnablementService: IUserDataSyncEnablementService, userDataSyncAccountService: IUserDataSyncAccountService, lifecycleService: ILifecycleService, notificationService: INotificationService, hostService: IHostService, extensionBisectService: IExtensionBisectService, allowedExtensionsService: IAllowedExtensionsService, workspaceTrustManagementService: IWorkspaceTrustManagementService, workspaceTrustRequestService: IWorkspaceTrustRequestService, extensionManifestPropertiesService: IExtensionManifestPropertiesService, chatEntitlementService: IChatEntitlementService, instantiationService: IInstantiationService, logService: ILogService, productService: IProductService);
64
65
  private ensureChatExtensionInitialDisabledState;
65
66
  private get hasWorkspace();
@@ -114,6 +115,7 @@ export declare class ExtensionEnablementService extends Disposable implements IW
114
115
  private loopCheckForMaliciousExtensions;
115
116
  private checkForMaliciousExtensions;
116
117
  private getMaliciousExtensions;
118
+ private getMaliciousExtensionsForCheck;
117
119
  private storeMaliciousExtensions;
118
120
  }
119
121
  declare class ExtensionsManager extends Disposable {
@@ -41,6 +41,7 @@ import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severit
41
41
 
42
42
  const SOURCE = "IWorkbenchExtensionEnablementService";
43
43
  const EXTENSION_UNIFICATION_SETTING = "chat.extensionUnification.enabled";
44
+ const MALICIOUS_EXTENSIONS_STORAGE_KEY = "extensionsEnablement/malicious";
44
45
  let ExtensionEnablementService = class ExtensionEnablementService extends Disposable {
45
46
  constructor(
46
47
  storageService,
@@ -122,6 +123,9 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
122
123
  this._register(
123
124
  allowedExtensionsService.onDidChangeAllowedExtensionsConfigValue(() => this._onDidChangeExtensions([], [], false))
124
125
  );
126
+ this._register(
127
+ this.storageService.onDidChangeValue(StorageScope.APPLICATION, MALICIOUS_EXTENSIONS_STORAGE_KEY, this._store)(() => this._maliciousExtensionsCache = undefined)
128
+ );
125
129
  this._completionsExtensionId = productService.defaultChatAgent?.extensionId.toLowerCase();
126
130
  this._chatExtensionId = productService.defaultChatAgent?.chatExtensionId.toLowerCase();
127
131
  this._sessionsWindowAllowedExtensions = ( new Set(( (productService.sessionsWindowAllowedExtensions ?? []).map(id => id.toLowerCase()))));
@@ -144,8 +148,8 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
144
148
  }));
145
149
  if (this.allUserExtensionsDisabled) {
146
150
  this.lifecycleService.when(LifecyclePhase.Eventually).then(() => {
147
- this.notificationService.prompt(Severity.Info, ( localize(16683, "All installed extensions are temporarily disabled.")), [{
148
- label: ( localize(16684, "Reload and Enable Extensions")),
151
+ this.notificationService.prompt(Severity.Info, ( localize(16898, "All installed extensions are temporarily disabled.")), [{
152
+ label: ( localize(16899, "Reload and Enable Extensions")),
149
153
  run: () => hostService.reload({
150
154
  disableExtensions: false
151
155
  })
@@ -246,7 +250,7 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
246
250
  throwErrorIfCannotChangeEnablement(extension, donotCheckDependencies) {
247
251
  if (isLanguagePackExtension(extension.manifest)) {
248
252
  throw ( new Error(( localize(
249
- 16685,
253
+ 16900,
250
254
  "Cannot change enablement of {0} extension because it contributes language packs.",
251
255
  extension.manifest.displayName || extension.identifier.id
252
256
  ))));
@@ -255,14 +259,14 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
255
259
  a => a.id === this.userDataSyncAccountService.account.authenticationProviderId
256
260
  ))) {
257
261
  throw ( new Error(( localize(
258
- 16686,
262
+ 16901,
259
263
  "Cannot change enablement {0} extension because Settings Sync depends on it.",
260
264
  extension.manifest.displayName || extension.identifier.id
261
265
  ))));
262
266
  }
263
267
  if (this._isEnabledInEnv(extension)) {
264
268
  throw ( new Error(( localize(
265
- 16687,
269
+ 16902,
266
270
  "Cannot change enablement of {0} extension because it is enabled in environment",
267
271
  extension.manifest.displayName || extension.identifier.id
268
272
  ))));
@@ -273,37 +277,37 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
273
277
  switch (enablementStateOfExtension) {
274
278
  case EnablementState.DisabledByEnvironment:
275
279
  throw ( new Error(( localize(
276
- 16688,
280
+ 16903,
277
281
  "Cannot change enablement of {0} extension because it is disabled in environment",
278
282
  extension.manifest.displayName || extension.identifier.id
279
283
  ))));
280
284
  case EnablementState.DisabledByMalicious:
281
285
  throw ( new Error(( localize(
282
- 16689,
286
+ 16904,
283
287
  "Cannot change enablement of {0} extension because it is malicious",
284
288
  extension.manifest.displayName || extension.identifier.id
285
289
  ))));
286
290
  case EnablementState.DisabledByVirtualWorkspace:
287
291
  throw ( new Error(( localize(
288
- 16690,
292
+ 16905,
289
293
  "Cannot change enablement of {0} extension because it does not support virtual workspaces",
290
294
  extension.manifest.displayName || extension.identifier.id
291
295
  ))));
292
296
  case EnablementState.DisabledByExtensionKind:
293
297
  throw ( new Error(( localize(
294
- 16691,
298
+ 16906,
295
299
  "Cannot change enablement of {0} extension because of its extension kind",
296
300
  extension.manifest.displayName || extension.identifier.id
297
301
  ))));
298
302
  case EnablementState.DisabledByAllowlist:
299
303
  throw ( new Error(( localize(
300
- 16692,
304
+ 16907,
301
305
  "Cannot change enablement of {0} extension because it is disallowed",
302
306
  extension.manifest.displayName || extension.identifier.id
303
307
  ))));
304
308
  case EnablementState.DisabledByInvalidExtension:
305
309
  throw ( new Error(( localize(
306
- 16693,
310
+ 16908,
307
311
  "Cannot change enablement of {0} extension because of it is invalid",
308
312
  extension.manifest.displayName || extension.identifier.id
309
313
  ))));
@@ -316,7 +320,7 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
316
320
  continue;
317
321
  }
318
322
  throw ( new Error(( localize(
319
- 16694,
323
+ 16909,
320
324
  "Cannot enable '{0}' extension because it depends on '{1}' extension that cannot be enabled",
321
325
  extension.manifest.displayName || extension.identifier.id,
322
326
  dependency.manifest.displayName || dependency.identifier.id
@@ -326,11 +330,11 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
326
330
  }
327
331
  throwErrorIfCannotChangeWorkspaceEnablement(extension) {
328
332
  if (!this.hasWorkspace) {
329
- throw ( new Error(( localize(16695, "No workspace."))));
333
+ throw ( new Error(( localize(16910, "No workspace."))));
330
334
  }
331
335
  if (isAuthenticationProviderExtension(extension.manifest)) {
332
336
  throw ( new Error(( localize(
333
- 16696,
337
+ 16911,
334
338
  "Cannot change enablement of {0} extension in workspace because it contributes authentication providers",
335
339
  extension.manifest.displayName || extension.identifier.id
336
340
  ))));
@@ -464,9 +468,7 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
464
468
  }
465
469
  enablementState = this._getUserEnablementState(extension.identifier);
466
470
  const isEnabled = this.isEnabledEnablementState(enablementState);
467
- if (isMalicious(extension.identifier, ( this.getMaliciousExtensions().map(e => ({
468
- extensionOrPublisher: e
469
- }))))) {
471
+ if (isMalicious(extension.identifier, this.getMaliciousExtensionsForCheck())) {
470
472
  enablementState = EnablementState.DisabledByMalicious;
471
473
  } else if (isEnabled && extension.type === ExtensionType.User && this.allowedExtensionsService.isAllowed(extension) !== true) {
472
474
  enablementState = EnablementState.DisabledByAllowlist;
@@ -826,7 +828,15 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
826
828
  }
827
829
  }
828
830
  getMaliciousExtensions() {
829
- return this.storageService.getObject("extensionsEnablement/malicious", StorageScope.APPLICATION, []);
831
+ return this.storageService.getObject(MALICIOUS_EXTENSIONS_STORAGE_KEY, StorageScope.APPLICATION, []);
832
+ }
833
+ getMaliciousExtensionsForCheck() {
834
+ if (!this._maliciousExtensionsCache) {
835
+ this._maliciousExtensionsCache = ( this.getMaliciousExtensions().map(extensionOrPublisher => ({
836
+ extensionOrPublisher
837
+ })));
838
+ }
839
+ return this._maliciousExtensionsCache;
830
840
  }
831
841
  storeMaliciousExtensions(extensions) {
832
842
  const existing = this.getMaliciousExtensions();
@@ -837,8 +847,9 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
837
847
  )) {
838
848
  return false;
839
849
  }
850
+ this._maliciousExtensionsCache = undefined;
840
851
  this.storageService.store(
841
- "extensionsEnablement/malicious",
852
+ MALICIOUS_EXTENSIONS_STORAGE_KEY,
842
853
  JSON.stringify(extensions),
843
854
  StorageScope.APPLICATION,
844
855
  StorageTarget.MACHINE
@@ -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(16699, "Access '{0}' Feature", feature.label)),
99
+ title: ( localize(16914, "Access '{0}' Feature", feature.label)),
100
100
  message: ( localize(
101
- 16700,
101
+ 16915,
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(16701, "Allow")),
109
- cancelButton: ( localize(16702, "Don't Allow"))
108
+ primaryButton: ( localize(16916, "Allow")),
109
+ cancelButton: ( localize(16917, "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(16703, "Remote"));
29
+ return labelService.getHostLabel(Schemas.vscodeRemote, remoteAgentConnection.remoteAuthority) || ( localize(16918, "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(16704, "Browser"))
38
+ label: ( localize(16919, "Browser"))
39
39
  };
40
40
  }
41
41
  }
@@ -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
- 16705,
282
+ 16920,
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
- 16706,
290
+ 16921,
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
- 16707,
298
+ 16922,
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(16708, "Manifest is not found")));
410
+ return ( new MarkdownString()).appendText(( localize(16923, "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
- 16709,
419
+ 16924,
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
- 16709,
435
+ 16924,
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
- 16710,
472
+ 16925,
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
- 16710,
498
+ 16925,
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
- 16710,
547
+ 16925,
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
- 16710,
662
+ 16925,
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
- 16711,
718
+ 16926,
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
- 16709,
743
+ 16924,
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(16712, "Install Extension")) : ( localize(16713, "Install Extensions")),
783
+ message: extensions.length === 1 ? ( localize(16927, "Install Extension")) : ( localize(16928, "Install Extensions")),
784
784
  detail: extensions.length === 1 ? ( localize(
785
- 16714,
785
+ 16929,
786
786
  "Would you like to install and synchronize '{0}' extension across your devices?",
787
787
  extensions[0].displayName
788
788
  )) : ( localize(
789
- 16715,
789
+ 16930,
790
790
  "Would you like to install and synchronize extensions across your devices?"
791
791
  )),
792
792
  buttons: [{
793
- label: ( localize(16716, "&&Install")),
793
+ label: ( localize(16931, "&&Install")),
794
794
  run: () => false
795
795
  }, {
796
- label: ( localize(16717, "Install (Do &&not sync)")),
796
+ label: ( localize(16932, "Install (Do &&not 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
- 16710,
848
+ 16925,
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(16718, "Trust Publishers & &&Install")) : ( localize(16719, "Trust Publisher & &&Install")),
889
+ label: allPublishers.length > 1 ? ( localize(16933, "Trust Publishers & &&Install")) : ( localize(16934, "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(16720, "&&Learn More")),
902
+ label: ( localize(16935, "&&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
- 16721,
924
+ 16936,
925
925
  "Do you trust the publisher \"{0}\"?",
926
926
  allPublishers[0].publisherDisplayName
927
927
  )) : allPublishers.length === 2 ? ( localize(
928
- 16722,
928
+ 16937,
929
929
  "Do you trust publishers \"{0}\" and \"{1}\"?",
930
930
  allPublishers[0].publisherDisplayName,
931
931
  allPublishers[1].publisherDisplayName
932
932
  )) : ( localize(
933
- 16723,
933
+ 16938,
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
- 16724,
947
+ 16939,
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
- 16725,
960
+ 16940,
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
- 16726,
967
+ 16941,
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
- 16727,
976
+ 16942,
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
- 16728,
981
+ 16943,
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
- 16729,
989
+ 16944,
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
- 16730,
999
+ 16945,
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
- 16731,
1010
+ 16946,
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
- 16732,
1017
+ 16947,
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(16733, "All publishers are [**not** verified]({0}).", unverifiedLink))}`);
1027
+ customMessage.appendMarkdown(`$(${Codicon.unverified.id}) ${( localize(16948, "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
- 16734,
1032
+ 16949,
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
- 16735,
1038
+ 16950,
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(16736, "Trust Workspace & Install")),
1129
+ label: ( localize(16951, "Trust Workspace & Install")),
1130
1130
  type: "ContinueWithTrust"
1131
1131
  });
1132
1132
  if (!requireTrust) {
1133
1133
  buttons.push({
1134
- label: ( localize(16737, "Install")),
1134
+ label: ( localize(16952, "Install")),
1135
1135
  type: "ContinueWithoutTrust"
1136
1136
  });
1137
1137
  }
1138
1138
  buttons.push({
1139
- label: ( localize(16738, "Learn More")),
1139
+ label: ( localize(16953, "Learn More")),
1140
1140
  type: "Manage"
1141
1141
  });
1142
1142
  const trustState = await this.workspaceTrustRequestService.requestWorkspaceTrust({
1143
- message: ( localize(16739, "Enabling this extension requires a trusted workspace.")),
1143
+ message: ( localize(16954, "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(16740, "{0} for the Web", this.productService.nameLong));
1169
+ const productName = ( localize(16955, "{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
- 16741,
1177
+ 16956,
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(16742, "&&Install Anyway")),
1186
+ label: ( localize(16957, "&&Install Anyway")),
1187
1187
  run: () => {}
1188
1188
  };
1189
1189
  const showExtensionsButton = {
1190
- label: ( localize(16743, "&&Show Extensions")),
1190
+ label: ( localize(16958, "&&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(16744, "Contains extensions which are not supported."))}`;
1197
+ detail = `${virtualWorkspaceSupportReason ? `${virtualWorkspaceSupportReason}\n` : ""}${( localize(16959, "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
- 16745,
1205
+ 16960,
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(16746, "Cannot activate because {0} not found", extension.manifest.main))]);
1517
+ validations.push([Severity.Error, ( localize(16961, "Cannot activate because {0} not found", extension.manifest.main))]);
1518
1518
  }
1519
1519
  }
1520
1520
  return {