@codingame/monaco-vscode-extension-gallery-service-override 8.0.3 → 9.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.
Files changed (35) hide show
  1. package/package.json +2 -2
  2. package/tools.js +1 -1
  3. package/vscode/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.js +13 -13
  4. package/vscode/src/vs/platform/extensionManagement/common/extensionGalleryService.js +25 -2
  5. package/vscode/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.js +17 -17
  6. package/vscode/src/vs/workbench/contrib/extensions/browser/configBasedRecommendations.js +1 -1
  7. package/vscode/src/vs/workbench/contrib/extensions/browser/deprecatedExtensionsChecker.js +3 -3
  8. package/vscode/src/vs/workbench/contrib/extensions/browser/exeBasedRecommendations.js +1 -1
  9. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEditor.js +35 -35
  10. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEnablementWorkspaceTrustTransitionParticipant.js +1 -1
  11. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionFeaturesTab.js +16 -16
  12. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationNotificationService.js +15 -15
  13. package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.contribution.js +135 -135
  14. package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.web.contribution.js +1 -1
  15. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActivationProgress.js +1 -1
  16. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsCompletionItemsProvider.js +1 -1
  17. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsDependencyChecker.js +5 -5
  18. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsQuickAccess.js +4 -4
  19. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewer.js +3 -3
  20. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.js +37 -37
  21. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.js +29 -16
  22. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.js +29 -22
  23. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.js +125 -73
  24. package/vscode/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.js +2 -2
  25. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionsWidgets.css.js +1 -1
  26. package/vscode/src/vs/workbench/contrib/extensions/browser/webRecommendations.js +1 -1
  27. package/vscode/src/vs/workbench/contrib/extensions/browser/workspaceRecommendations.js +2 -2
  28. package/vscode/src/vs/workbench/contrib/extensions/common/reportExtensionIssueAction.js +1 -1
  29. package/vscode/src/vs/workbench/contrib/extensions/common/runtimeExtensionsInput.js +2 -2
  30. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.js +14 -14
  31. package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +2 -2
  32. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionFeaturesManagemetService.js +4 -4
  33. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementServerService.js +2 -2
  34. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementService.js +26 -22
  35. package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +10 -10
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-extension-gallery-service-override",
3
- "version": "8.0.3",
3
+ "version": "9.0.0",
4
4
  "keywords": [],
5
5
  "author": {
6
6
  "name": "CodinGame",
@@ -26,6 +26,6 @@
26
26
  }
27
27
  },
28
28
  "dependencies": {
29
- "vscode": "npm:@codingame/monaco-vscode-api@8.0.3"
29
+ "vscode": "npm:@codingame/monaco-vscode-api@9.0.0"
30
30
  }
31
31
  }
package/tools.js CHANGED
@@ -26,7 +26,7 @@ function throttle(fct, merge, delay) {
26
26
  return async (param) => {
27
27
  if (toConsume == null) {
28
28
  toConsume = param;
29
- lastPromise = lastPromise.then(async () => sleep(delay)).then(async () => {
29
+ lastPromise = lastPromise.then(async () => await sleep(delay)).then(async () => {
30
30
  const _toConsume = toConsume;
31
31
  toConsume = null;
32
32
  await fct(_toConsume);
@@ -81,7 +81,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
81
81
  async installGalleryExtensions(extensions) {
82
82
  if (!this.galleryService.isEnabled()) {
83
83
  throw ( (new ExtensionManagementError(
84
- localize(11106, "Marketplace is not enabled"),
84
+ localize(11163, "Marketplace is not enabled"),
85
85
  ExtensionManagementErrorCode.NotAllowed
86
86
  )));
87
87
  }
@@ -472,7 +472,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
472
472
  const extensionsControlManifest = await this.getExtensionsControlManifest();
473
473
  if (( (extensionsControlManifest.malicious.some(identifier => areSameExtensions(extension.identifier, identifier))))) {
474
474
  throw ( (new ExtensionManagementError(localize(
475
- 11107,
475
+ 11164,
476
476
  "Can't install '{0}' extension since it was reported to be problematic.",
477
477
  extension.identifier.id
478
478
  ), ExtensionManagementErrorCode.Malicious)));
@@ -483,7 +483,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
483
483
  compatibleExtension = (await this.galleryService.getExtensions([{ id: deprecationInfo.extension.id, preRelease: deprecationInfo.extension.preRelease }], { targetPlatform: await this.getTargetPlatform(), compatible: true, productVersion }, CancellationToken.None))[0];
484
484
  if (!compatibleExtension) {
485
485
  throw ( (new ExtensionManagementError(localize(
486
- 11108,
486
+ 11165,
487
487
  "Can't install '{0}' extension since it was deprecated and the replacement extension '{1}' can't be found.",
488
488
  extension.identifier.id,
489
489
  deprecationInfo.extension.id
@@ -494,7 +494,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
494
494
  if (!(await this.canInstall(extension))) {
495
495
  const targetPlatform = await this.getTargetPlatform();
496
496
  throw ( (new ExtensionManagementError(localize(
497
- 11109,
497
+ 11166,
498
498
  "The '{0}' extension is not available in {1} for {2}.",
499
499
  extension.identifier.id,
500
500
  this.productService.nameLong,
@@ -506,7 +506,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
506
506
  const incompatibleApiProposalsMessages = [];
507
507
  if (!areApiProposalsCompatible(extension.properties.enabledApiProposals ?? [], incompatibleApiProposalsMessages)) {
508
508
  throw ( (new ExtensionManagementError(localize(
509
- 11110,
509
+ 11167,
510
510
  "Can't install '{0}' extension. {1}",
511
511
  extension.displayName ?? extension.identifier.id,
512
512
  incompatibleApiProposalsMessages[0]
@@ -514,13 +514,13 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
514
514
  }
515
515
  if (!installPreRelease && extension.properties.isPreReleaseVersion && (await this.galleryService.getExtensions([extension.identifier], CancellationToken.None))[0]) {
516
516
  throw ( (new ExtensionManagementError(localize(
517
- 11111,
517
+ 11168,
518
518
  "Can't install release version of '{0}' extension because it has no release version.",
519
519
  extension.displayName ?? extension.identifier.id
520
520
  ), ExtensionManagementErrorCode.ReleaseVersionNotFound)));
521
521
  }
522
522
  throw ( (new ExtensionManagementError(localize(
523
- 11112,
523
+ 11169,
524
524
  "Can't install '{0}' extension because it is not compatible with the current version of {1} (version {2}).",
525
525
  extension.identifier.id,
526
526
  this.productService.nameLong,
@@ -694,7 +694,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
694
694
  if (extensionToUninstall === dependingExtension) {
695
695
  if (dependents.length === 1) {
696
696
  return ( localize(
697
- 11113,
697
+ 11170,
698
698
  "Cannot uninstall '{0}' extension. '{1}' extension depends on this.",
699
699
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
700
700
  dependents[0].manifest.displayName || dependents[0].manifest.name
@@ -702,7 +702,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
702
702
  }
703
703
  if (dependents.length === 2) {
704
704
  return ( localize(
705
- 11114,
705
+ 11171,
706
706
  "Cannot uninstall '{0}' extension. '{1}' and '{2}' extensions depend on this.",
707
707
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
708
708
  dependents[0].manifest.displayName || dependents[0].manifest.name,
@@ -710,7 +710,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
710
710
  ));
711
711
  }
712
712
  return ( localize(
713
- 11115,
713
+ 11172,
714
714
  "Cannot uninstall '{0}' extension. '{1}', '{2}' and other extension depend on this.",
715
715
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
716
716
  dependents[0].manifest.displayName || dependents[0].manifest.name,
@@ -719,7 +719,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
719
719
  }
720
720
  if (dependents.length === 1) {
721
721
  return ( localize(
722
- 11116,
722
+ 11173,
723
723
  "Cannot uninstall '{0}' extension . It includes uninstalling '{1}' extension and '{2}' extension depends on this.",
724
724
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
725
725
  dependingExtension.manifest.displayName
@@ -729,7 +729,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
729
729
  }
730
730
  if (dependents.length === 2) {
731
731
  return ( localize(
732
- 11117,
732
+ 11174,
733
733
  "Cannot uninstall '{0}' extension. It includes uninstalling '{1}' extension and '{2}' and '{3}' extensions depend on this.",
734
734
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
735
735
  dependingExtension.manifest.displayName
@@ -739,7 +739,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
739
739
  ));
740
740
  }
741
741
  return ( localize(
742
- 11118,
742
+ 11175,
743
743
  "Cannot uninstall '{0}' extension. It includes uninstalling '{1}' extension and '{2}', '{3}' and other extensions depend on this.",
744
744
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
745
745
  dependingExtension.manifest.displayName
@@ -6,6 +6,7 @@ import { isWeb, platform } from 'vscode/vscode/vs/base/common/platform';
6
6
  import { arch } from 'vscode/vscode/vs/base/common/process';
7
7
  import { isBoolean } from 'vscode/vscode/vs/base/common/types';
8
8
  import { URI } from 'vscode/vscode/vs/base/common/uri';
9
+ import { isOfflineError } from 'vscode/vscode/vs/base/parts/request/common/request';
9
10
  import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration.service';
10
11
  import { IEnvironmentService } from 'vscode/vscode/vs/platform/environment/common/environment.service';
11
12
  import { getTargetPlatform, SortBy, SortOrder, toTargetPlatform, WEB_EXTENSION_TAG, isNotWebExtensionInWebTargetPlatform, isTargetPlatformCompatible, ExtensionGalleryErrorCode, ExtensionGalleryError, StatisticType, InstallOperation } from 'vscode/vscode/vs/platform/extensionManagement/common/extensionManagement';
@@ -337,6 +338,24 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
337
338
  async getExtensions(extensionInfos, arg1, arg2) {
338
339
  const options = CancellationToken.isCancellationToken(arg1) ? {} : arg1;
339
340
  const token = CancellationToken.isCancellationToken(arg1) ? arg1 : arg2;
341
+ const result = await this.doGetExtensions(extensionInfos, options, token);
342
+ const uuids = ( result.map(r => r.identifier.uuid));
343
+ const extensionInfosByName = [];
344
+ for (const e of extensionInfos) {
345
+ if (e.uuid && !uuids.includes(e.uuid)) {
346
+ extensionInfosByName.push({ ...e, uuid: undefined });
347
+ }
348
+ }
349
+ if (extensionInfosByName.length) {
350
+ this.telemetryService.publicLog2('galleryService:additionalQueryByName', {
351
+ count: extensionInfosByName.length
352
+ });
353
+ const extensions = await this.doGetExtensions(extensionInfosByName, options, token);
354
+ result.push(...extensions);
355
+ }
356
+ return result;
357
+ }
358
+ async doGetExtensions(extensionInfos, options, token) {
340
359
  const names = [];
341
360
  const ids = [], includePreReleases = [], versions = [];
342
361
  let isQueryForReleaseVersionFromPreReleaseVersion = true;
@@ -578,7 +597,7 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
578
597
  }
579
598
  if (await this.isValidVersion(extensionIdentifier.id, rawGalleryExtensionVersion, includePreRelease ? 'any' : 'release', criteria.compatible, allTargetPlatforms, criteria.targetPlatform, criteria.productVersion)) {
580
599
  if (criteria.compatible && !this.areApiProposalsCompatible(extensionIdentifier, getEnabledApiProposals(rawGalleryExtensionVersion))) {
581
- return null;
600
+ continue;
582
601
  }
583
602
  return toExtension(rawGalleryExtension, rawGalleryExtensionVersion, allTargetPlatforms, queryContext);
584
603
  }
@@ -643,7 +662,11 @@ let AbstractExtensionGalleryService = class AbstractExtensionGalleryService {
643
662
  }
644
663
  else {
645
664
  const errorMessage = getErrorMessage(e);
646
- errorCode = errorMessage.startsWith('XHR timeout') ? ExtensionGalleryErrorCode.Timeout : ExtensionGalleryErrorCode.Failed;
665
+ errorCode = isOfflineError(e)
666
+ ? ExtensionGalleryErrorCode.Offline
667
+ : errorMessage.startsWith('XHR timeout')
668
+ ? ExtensionGalleryErrorCode.Timeout
669
+ : ExtensionGalleryErrorCode.Failed;
647
670
  throw ( new ExtensionGalleryError(errorMessage, errorCode));
648
671
  }
649
672
  }
@@ -234,13 +234,13 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
234
234
  const activationId = activationTimes.activationReason.extensionId.value;
235
235
  const activationEvent = activationTimes.activationReason.activationEvent;
236
236
  if (activationEvent === '*') {
237
- title = ( localize(9464, "Activated by {0} on start-up", activationId));
237
+ title = ( localize(9486, "Activated by {0} on start-up", activationId));
238
238
  }
239
239
  else if (/^workspaceContains:/.test(activationEvent)) {
240
240
  const fileNameOrGlob = activationEvent.substr('workspaceContains:'.length);
241
241
  if (fileNameOrGlob.indexOf('*') >= 0 || fileNameOrGlob.indexOf('?') >= 0) {
242
242
  title = ( localize(
243
- 9465,
243
+ 9487,
244
244
  "Activated by {1} because a file matching {0} exists in your workspace",
245
245
  fileNameOrGlob,
246
246
  activationId
@@ -248,7 +248,7 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
248
248
  }
249
249
  else {
250
250
  title = ( localize(
251
- 9466,
251
+ 9488,
252
252
  "Activated by {1} because file {0} exists in your workspace",
253
253
  fileNameOrGlob,
254
254
  activationId
@@ -258,41 +258,41 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
258
258
  else if (/^workspaceContainsTimeout:/.test(activationEvent)) {
259
259
  const glob = activationEvent.substr('workspaceContainsTimeout:'.length);
260
260
  title = ( localize(
261
- 9467,
261
+ 9489,
262
262
  "Activated by {1} because searching for {0} took too long",
263
263
  glob,
264
264
  activationId
265
265
  ));
266
266
  }
267
267
  else if (activationEvent === 'onStartupFinished') {
268
- title = ( localize(9468, "Activated by {0} after start-up finished", activationId));
268
+ title = ( localize(9490, "Activated by {0} after start-up finished", activationId));
269
269
  }
270
270
  else if (/^onLanguage:/.test(activationEvent)) {
271
271
  const language = activationEvent.substr('onLanguage:'.length);
272
272
  title = ( localize(
273
- 9469,
273
+ 9491,
274
274
  "Activated by {1} because you opened a {0} file",
275
275
  language,
276
276
  activationId
277
277
  ));
278
278
  }
279
279
  else {
280
- title = ( localize(9470, "Activated by {1} on {0}", activationEvent, activationId));
280
+ title = ( localize(9492, "Activated by {1} on {0}", activationEvent, activationId));
281
281
  }
282
282
  }
283
283
  else {
284
- title = ( localize(9471, "Extension is activating..."));
284
+ title = ( localize(9493, "Extension is activating..."));
285
285
  }
286
286
  data.elementDisposables.push(this._hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), data.activationTime, title));
287
287
  clearNode(data.msgContainer);
288
288
  if (this._getUnresponsiveProfile(element.description.identifier)) {
289
289
  const el = $('span', undefined, ...renderLabelWithIcons(` $(alert) Unresponsive`));
290
- const extensionHostFreezTitle = ( localize(9472, "Extension has caused the extension host to freeze."));
290
+ const extensionHostFreezTitle = ( localize(9494, "Extension has caused the extension host to freeze."));
291
291
  data.elementDisposables.push(this._hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), el, extensionHostFreezTitle));
292
292
  data.msgContainer.appendChild(el);
293
293
  }
294
294
  if (isNonEmptyArray(element.status.runtimeErrors)) {
295
- const el = $('span', undefined, ...renderLabelWithIcons(`$(bug) ${( localize(9473, "{0} uncaught errors", element.status.runtimeErrors.length))}`));
295
+ const el = $('span', undefined, ...renderLabelWithIcons(`$(bug) ${( localize(9495, "{0} uncaught errors", element.status.runtimeErrors.length))}`));
296
296
  data.msgContainer.appendChild(el);
297
297
  }
298
298
  if (element.status.messages && element.status.messages.length > 0) {
@@ -331,10 +331,10 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
331
331
  data.msgContainer.appendChild($('span', undefined, ...renderLabelWithIcons(`$(${status.severity === Severity$1.Error ? errorIcon.id : warningIcon.id}) ${status.message}`)));
332
332
  }
333
333
  if (accessData?.totalCount > 0) {
334
- const element = $('span', undefined, `${( localize(9474, "{0} Requests: {1} (Overall)", feature.label, accessData.totalCount))}${accessData.current ? ( localize(9475, ", {0} (Session)", accessData.current.count)) : ''}`);
334
+ const element = $('span', undefined, `${( localize(9496, "{0} Requests: {1} (Overall)", feature.label, accessData.totalCount))}${accessData.current ? ( localize(9497, ", {0} (Session)", accessData.current.count)) : ''}`);
335
335
  if (accessData.current) {
336
336
  const title = ( localize(
337
- 9476,
337
+ 9498,
338
338
  "Last request was {0}.",
339
339
  fromNow(accessData.current.lastAccessed, true, true)
340
340
  ));
@@ -364,7 +364,7 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
364
364
  },
365
365
  accessibilityProvider: new (class {
366
366
  getWidgetAriaLabel() {
367
- return ( localize(9477, "Runtime Extensions"));
367
+ return ( localize(9499, "Runtime Extensions"));
368
368
  }
369
369
  getAriaLabel(element) {
370
370
  return element.description.name;
@@ -377,7 +377,7 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
377
377
  return;
378
378
  }
379
379
  const actions = [];
380
- actions.push(( (new Action('runtimeExtensionsEditor.action.copyId', ( localize(9478, "Copy id ({0})", e.element.description.identifier.value)), undefined, true, () => {
380
+ actions.push(( (new Action('runtimeExtensionsEditor.action.copyId', ( localize(9500, "Copy id ({0})", e.element.description.identifier.value)), undefined, true, () => {
381
381
  this._clipboardService.writeText(e.element.description.identifier.value);
382
382
  }))));
383
383
  const reportExtensionIssueAction = this._createReportExtensionIssueAction(e.element);
@@ -386,8 +386,8 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
386
386
  }
387
387
  actions.push(( (new Separator())));
388
388
  if (e.element.marketplaceInfo) {
389
- actions.push(( (new Action('runtimeExtensionsEditor.action.disableWorkspace', ( localize(9479, "Disable (Workspace)")), undefined, true, () => this._extensionsWorkbenchService.setEnablement(e.element.marketplaceInfo, EnablementState.DisabledWorkspace)))));
390
- actions.push(( (new Action('runtimeExtensionsEditor.action.disable', ( localize(9480, "Disable")), undefined, true, () => this._extensionsWorkbenchService.setEnablement(e.element.marketplaceInfo, EnablementState.DisabledGlobally)))));
389
+ actions.push(( (new Action('runtimeExtensionsEditor.action.disableWorkspace', ( localize(9501, "Disable (Workspace)")), undefined, true, () => this._extensionsWorkbenchService.setEnablement(e.element.marketplaceInfo, EnablementState.DisabledWorkspace)))));
390
+ actions.push(( (new Action('runtimeExtensionsEditor.action.disable', ( localize(9502, "Disable")), undefined, true, () => this._extensionsWorkbenchService.setEnablement(e.element.marketplaceInfo, EnablementState.DisabledGlobally)))));
391
391
  }
392
392
  actions.push(( (new Separator())));
393
393
  const profileAction = this._createProfileAction();
@@ -434,7 +434,7 @@ class ShowRuntimeExtensionsAction extends Action2 {
434
434
  constructor() {
435
435
  super({
436
436
  id: 'workbench.action.showRuntimeExtensions',
437
- title: ( localize2(9481, "Show Running Extensions")),
437
+ title: ( localize2(9503, "Show Running Extensions")),
438
438
  category: Categories.Developer,
439
439
  f1: true,
440
440
  menu: {
@@ -62,7 +62,7 @@ let ConfigBasedRecommendations = class ConfigBasedRecommendations extends Extens
62
62
  reason: {
63
63
  reasonId: ExtensionRecommendationReason.WorkspaceConfig,
64
64
  reasonText: ( localize(
65
- 9371,
65
+ 9391,
66
66
  "This extension is recommended because of the current workspace configuration"
67
67
  ))
68
68
  },
@@ -44,10 +44,10 @@ let DeprecatedExtensionsChecker = class DeprecatedExtensionsChecker extends Disp
44
44
  const toNotify = local.filter(e => !!e.deprecationInfo && e.local && this.extensionEnablementService.isEnabled(e.local)).filter(e => !previouslyNotified.includes(e.identifier.id.toLowerCase()));
45
45
  if (toNotify.length) {
46
46
  this.notificationService.prompt(Severity$1.Warning, ( localize(
47
- 9508,
47
+ 9530,
48
48
  "You have deprecated extensions installed. We recommend to review them and migrate to alternatives."
49
49
  )), [{
50
- label: ( localize(9509, "Show Deprecated Extensions")),
50
+ label: ( localize(9531, "Show Deprecated Extensions")),
51
51
  run: async () => {
52
52
  this.setNotifiedDeprecatedExtensions(( (toNotify.map(e => e.identifier.id.toLowerCase()))));
53
53
  const action = this.instantiationService.createInstance(SearchExtensionsAction, ( (toNotify.map(extension => `@id:${extension.identifier.id}`))).join(' '));
@@ -59,7 +59,7 @@ let DeprecatedExtensionsChecker = class DeprecatedExtensionsChecker extends Disp
59
59
  }
60
60
  }
61
61
  }, {
62
- label: ( localize(9510, "Don't Show Again")),
62
+ label: ( localize(9532, "Don't Show Again")),
63
63
  isSecondary: true,
64
64
  run: () => this.storageService.store('extensionsAssistant/doNotCheckDeprecated', true, StorageScope.PROFILE, StorageTarget.USER)
65
65
  }]);
@@ -49,7 +49,7 @@ let ExeBasedRecommendations = class ExeBasedRecommendations extends ExtensionRec
49
49
  reason: {
50
50
  reasonId: ExtensionRecommendationReason.Executable,
51
51
  reasonText: ( localize(
52
- 9367,
52
+ 9387,
53
53
  "This extension is recommended because you have {0} installed.",
54
54
  tip.exeFriendlyName
55
55
  ))
@@ -137,7 +137,7 @@ class VersionWidget extends ExtensionWithDifferentGalleryVersionWidget {
137
137
  constructor(container, hoverService) {
138
138
  super();
139
139
  this.element = append(container, $('code.version'));
140
- this._register(hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), this.element, ( localize(9373, "Extension Version"))));
140
+ this._register(hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), this.element, ( localize(9395, "Extension Version"))));
141
141
  this.render();
142
142
  }
143
143
  render() {
@@ -198,26 +198,26 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
198
198
  const details = append(header, $('.details'));
199
199
  const title = append(details, $('.title'));
200
200
  const name = append(title, $('span.name.clickable', { role: 'heading', tabIndex: 0 }));
201
- this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), name, ( localize(9374, "Extension name"))));
201
+ this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), name, ( localize(9396, "Extension name"))));
202
202
  const versionWidget = ( (new VersionWidget(title, this.hoverService)));
203
203
  const preview = append(title, $('span.preview'));
204
- this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), preview, ( localize(9375, "Preview"))));
205
- preview.textContent = ( localize(9375, "Preview"));
204
+ this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), preview, ( localize(9397, "Preview"))));
205
+ preview.textContent = ( localize(9397, "Preview"));
206
206
  const builtin = append(title, $('span.builtin'));
207
- builtin.textContent = ( localize(9376, "Built-in"));
207
+ builtin.textContent = ( localize(9398, "Built-in"));
208
208
  const subtitle = append(details, $('.subtitle'));
209
209
  const publisher = append(append(subtitle, $('.subtitle-entry')), $('.publisher.clickable', { tabIndex: 0 }));
210
- this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), publisher, ( localize(9377, "Publisher"))));
210
+ this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), publisher, ( localize(9399, "Publisher"))));
211
211
  publisher.setAttribute('role', 'button');
212
212
  const publisherDisplayName = append(publisher, $('.publisher-name'));
213
213
  const verifiedPublisherWidget = this.instantiationService.createInstance(VerifiedPublisherWidget, append(publisher, $('.verified-publisher')), false);
214
214
  const resource = append(append(subtitle, $('.subtitle-entry.resource')), $('', { tabIndex: 0 }));
215
215
  resource.setAttribute('role', 'button');
216
216
  const installCount = append(append(subtitle, $('.subtitle-entry')), $('span.install', { tabIndex: 0 }));
217
- this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), installCount, ( localize(9378, "Install count"))));
217
+ this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), installCount, ( localize(9400, "Install count"))));
218
218
  const installCountWidget = this.instantiationService.createInstance(InstallCountWidget, installCount, false);
219
219
  const rating = append(append(subtitle, $('.subtitle-entry')), $('span.rating.clickable', { tabIndex: 0 }));
220
- this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), rating, ( localize(9379, "Rating"))));
220
+ this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), rating, ( localize(9401, "Rating"))));
221
221
  rating.setAttribute('role', 'link');
222
222
  const ratingsWidget = this.instantiationService.createInstance(RatingsWidget, rating, false);
223
223
  const sponsorWidget = this.instantiationService.createInstance(SponsorWidget, append(subtitle, $('.subtitle-entry')));
@@ -447,7 +447,7 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
447
447
  if (workspaceFolder && extension.isWorkspaceScoped) {
448
448
  template.resource.parentElement?.classList.add('clickable');
449
449
  this.transientDisposables.add(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), template.resource, this.uriIdentityService.extUri.relativePath(workspaceFolder.uri, location)));
450
- template.resource.textContent = ( localize(9380, "Workspace Extension"));
450
+ template.resource.textContent = ( localize(9402, "Workspace Extension"));
451
451
  this.transientDisposables.add(onClick(template.resource, () => {
452
452
  this.viewsService.openView(VIEW_ID, true).then(() => this.explorerService.select(location, true));
453
453
  }));
@@ -455,7 +455,7 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
455
455
  else {
456
456
  template.resource.parentElement?.classList.remove('clickable');
457
457
  this.transientDisposables.add(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), template.resource, location.path));
458
- template.resource.textContent = ( localize(9381, "Local Extension"));
458
+ template.resource.textContent = ( localize(9403, "Local Extension"));
459
459
  }
460
460
  }
461
461
  template.installCount.parentElement?.classList.toggle('hide', !extension.url);
@@ -492,22 +492,22 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
492
492
  this.initialScrollProgress.clear();
493
493
  this.currentIdentifier = extension.identifier.id;
494
494
  }
495
- template.navbar.push(ExtensionEditorTab.Readme, ( localize(9382, "Details")), ( localize(9383, "Extension details, rendered from the extension's 'README.md' file")));
495
+ template.navbar.push(ExtensionEditorTab.Readme, ( localize(9404, "Details")), ( localize(9405, "Extension details, rendered from the extension's 'README.md' file")));
496
496
  if (manifest) {
497
- template.navbar.push(ExtensionEditorTab.Features, ( localize(9384, "Features")), ( localize(9385, "Lists features contributed by this extension")));
497
+ template.navbar.push(ExtensionEditorTab.Features, ( localize(9406, "Features")), ( localize(9407, "Lists features contributed by this extension")));
498
498
  }
499
499
  if (extension.hasChangelog()) {
500
- template.navbar.push(ExtensionEditorTab.Changelog, ( localize(9386, "Changelog")), ( localize(
501
- 9387,
500
+ template.navbar.push(ExtensionEditorTab.Changelog, ( localize(9408, "Changelog")), ( localize(
501
+ 9409,
502
502
  "Extension update history, rendered from the extension's 'CHANGELOG.md' file"
503
503
  )));
504
504
  }
505
505
  if (extension.dependencies.length) {
506
- template.navbar.push(ExtensionEditorTab.Dependencies, ( localize(9388, "Dependencies")), ( localize(9389, "Lists extensions this extension depends on")));
506
+ template.navbar.push(ExtensionEditorTab.Dependencies, ( localize(9410, "Dependencies")), ( localize(9411, "Lists extensions this extension depends on")));
507
507
  }
508
508
  if (manifest && manifest.extensionPack?.length && !this.shallRenderAsExtensionPack(manifest)) {
509
- template.navbar.push(ExtensionEditorTab.ExtensionPack, ( localize(9390, "Extension Pack")), ( localize(
510
- 9391,
509
+ template.navbar.push(ExtensionEditorTab.ExtensionPack, ( localize(9412, "Extension Pack")), ( localize(
510
+ 9413,
511
511
  "Lists extensions those will be installed together with this extension"
512
512
  )));
513
513
  }
@@ -714,7 +714,7 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
714
714
  activeElement = await this.openExtensionPackReadme(extension, manifest, readmeContainer, token);
715
715
  }
716
716
  else {
717
- activeElement = await this.openMarkdown(extension, this.extensionReadme.get(), ( localize(9392, "No README available.")), readmeContainer, WebviewIndex.Readme, ( localize(9393, "Readme")), token);
717
+ activeElement = await this.openMarkdown(extension, this.extensionReadme.get(), ( localize(9414, "No README available.")), readmeContainer, WebviewIndex.Readme, ( localize(9415, "Readme")), token);
718
718
  }
719
719
  this.renderAdditionalDetails(additionalDetailsContainer, extension);
720
720
  return activeElement;
@@ -743,14 +743,14 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
743
743
  extensionPackReadme.classList.add('more-rows');
744
744
  }
745
745
  const extensionPackHeader = append(extensionPack, $('div.header'));
746
- extensionPackHeader.textContent = ( localize(9394, "Extension Pack ({0})", manifest.extensionPack.length));
746
+ extensionPackHeader.textContent = ( localize(9416, "Extension Pack ({0})", manifest.extensionPack.length));
747
747
  const extensionPackContent = append(extensionPack, $('div', { class: 'extension-pack-content' }));
748
748
  extensionPackContent.setAttribute('tabindex', '0');
749
749
  append(extensionPack, $('div.footer'));
750
750
  const readmeContent = append(extensionPackReadme, $('div.readme-content'));
751
751
  await Promise.all([
752
752
  this.renderExtensionPack(manifest, extensionPackContent, token),
753
- this.openMarkdown(extension, this.extensionReadme.get(), ( localize(9392, "No README available.")), readmeContent, WebviewIndex.Readme, ( localize(9393, "Readme")), token),
753
+ this.openMarkdown(extension, this.extensionReadme.get(), ( localize(9414, "No README available.")), readmeContent, WebviewIndex.Readme, ( localize(9415, "Readme")), token),
754
754
  ]);
755
755
  return { focus: () => extensionPackContent.focus() };
756
756
  }
@@ -770,7 +770,7 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
770
770
  renderCategories(container, extension) {
771
771
  if (extension.categories.length) {
772
772
  const categoriesContainer = append(container, $('.categories-container.additional-details-element'));
773
- append(categoriesContainer, $('.additional-details-title', undefined, ( localize(9395, "Categories"))));
773
+ append(categoriesContainer, $('.additional-details-title', undefined, ( localize(9417, "Categories"))));
774
774
  const categoriesElement = append(categoriesContainer, $('.categories'));
775
775
  for (const category of extension.categories) {
776
776
  this.transientDisposables.add(onClick(append(categoriesElement, $('span.category', { tabindex: '0' }, category)), () => {
@@ -784,23 +784,23 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
784
784
  renderExtensionResources(container, extension) {
785
785
  const resources = [];
786
786
  if (extension.url) {
787
- resources.push([( localize(9396, "Marketplace")), ( (URI.parse(extension.url)))]);
787
+ resources.push([( localize(9418, "Marketplace")), ( (URI.parse(extension.url)))]);
788
788
  }
789
789
  if (extension.url && extension.supportUrl) {
790
790
  try {
791
- resources.push([( localize(9397, "Issues")), ( (URI.parse(extension.supportUrl)))]);
791
+ resources.push([( localize(9419, "Issues")), ( (URI.parse(extension.supportUrl)))]);
792
792
  }
793
793
  catch (error) { }
794
794
  }
795
795
  if (extension.repository) {
796
796
  try {
797
- resources.push([( localize(9398, "Repository")), ( (URI.parse(extension.repository)))]);
797
+ resources.push([( localize(9420, "Repository")), ( (URI.parse(extension.repository)))]);
798
798
  }
799
799
  catch (error) { }
800
800
  }
801
801
  if (extension.url && extension.licenseUrl) {
802
802
  try {
803
- resources.push([( localize(9399, "License")), ( (URI.parse(extension.licenseUrl)))]);
803
+ resources.push([( localize(9421, "License")), ( (URI.parse(extension.licenseUrl)))]);
804
804
  }
805
805
  catch (error) { }
806
806
  }
@@ -809,7 +809,7 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
809
809
  }
810
810
  if (resources.length || extension.publisherSponsorLink) {
811
811
  const extensionResourcesContainer = append(container, $('.resources-container.additional-details-element'));
812
- append(extensionResourcesContainer, $('.additional-details-title', undefined, ( localize(9400, "Resources"))));
812
+ append(extensionResourcesContainer, $('.additional-details-title', undefined, ( localize(9422, "Resources"))));
813
813
  const resourcesElement = append(extensionResourcesContainer, $('.resources'));
814
814
  for (const [label, uri] of resources) {
815
815
  const resource = append(resourcesElement, $('a.resource', { tabindex: '0' }, label));
@@ -821,19 +821,19 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
821
821
  renderMoreInfo(container, extension) {
822
822
  const gallery = extension.gallery;
823
823
  const moreInfoContainer = append(container, $('.more-info-container.additional-details-element'));
824
- append(moreInfoContainer, $('.additional-details-title', undefined, ( localize(9401, "More Info"))));
824
+ append(moreInfoContainer, $('.additional-details-title', undefined, ( localize(9423, "More Info"))));
825
825
  const moreInfo = append(moreInfoContainer, $('.more-info'));
826
826
  const toDateString = (date) => `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}, ${date.toLocaleTimeString(language, { hourCycle: 'h23' })}`;
827
827
  if (gallery) {
828
- append(moreInfo, $('.more-info-entry', undefined, $('div', undefined, ( localize(9402, "Published"))), $('div', undefined, toDateString(( (new Date(gallery.releaseDate)))))), $('.more-info-entry', undefined, $('div', undefined, ( localize(9403, "Last released"))), $('div', undefined, toDateString(( (new Date(gallery.lastUpdated)))))));
828
+ append(moreInfo, $('.more-info-entry', undefined, $('div', undefined, ( localize(9424, "Published"))), $('div', undefined, toDateString(( (new Date(gallery.releaseDate)))))), $('.more-info-entry', undefined, $('div', undefined, ( localize(9425, "Last released"))), $('div', undefined, toDateString(( (new Date(gallery.lastUpdated)))))));
829
829
  }
830
830
  if (extension.local && extension.local.installedTimestamp) {
831
- append(moreInfo, $('.more-info-entry', undefined, $('div', undefined, ( localize(9404, "Last updated"))), $('div', undefined, toDateString(( (new Date(extension.local.installedTimestamp)))))));
831
+ append(moreInfo, $('.more-info-entry', undefined, $('div', undefined, ( localize(9426, "Last updated"))), $('div', undefined, toDateString(( (new Date(extension.local.installedTimestamp)))))));
832
832
  }
833
- append(moreInfo, $('.more-info-entry', undefined, $('div', undefined, ( localize(9405, "Identifier"))), $('code', undefined, extension.identifier.id)));
833
+ append(moreInfo, $('.more-info-entry', undefined, $('div', undefined, ( localize(9427, "Identifier"))), $('code', undefined, extension.identifier.id)));
834
834
  }
835
835
  openChangelog(extension, template, token) {
836
- return this.openMarkdown(extension, this.extensionChangelog.get(), ( localize(9406, "No Changelog available.")), template.content, WebviewIndex.Changelog, ( localize(9407, "Changelog")), token);
836
+ return this.openMarkdown(extension, this.extensionChangelog.get(), ( localize(9428, "No Changelog available.")), template.content, WebviewIndex.Changelog, ( localize(9429, "Changelog")), token);
837
837
  }
838
838
  async openFeatures(template, token) {
839
839
  const manifest = await this.loadContents(() => this.extensionManifest.get(), template.content);
@@ -856,7 +856,7 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
856
856
  return Promise.resolve(null);
857
857
  }
858
858
  if (isFalsyOrEmpty(extension.dependencies)) {
859
- append(template.content, $('p.nocontent')).textContent = ( localize(9408, "No Dependencies"));
859
+ append(template.content, $('p.nocontent')).textContent = ( localize(9430, "No Dependencies"));
860
860
  return Promise.resolve(template.content);
861
861
  }
862
862
  const content = $('div', { class: 'subcontent' });
@@ -959,7 +959,7 @@ registerAction2(class ShowExtensionEditorFindAction extends Action2 {
959
959
  constructor() {
960
960
  super({
961
961
  id: 'editor.action.extensioneditor.showfind',
962
- title: ( localize(9409, "Find")),
962
+ title: ( localize(9431, "Find")),
963
963
  keybinding: {
964
964
  when: contextKeyExpr,
965
965
  weight: KeybindingWeight.EditorContrib,
@@ -976,7 +976,7 @@ registerAction2(class StartExtensionEditorFindNextAction extends Action2 {
976
976
  constructor() {
977
977
  super({
978
978
  id: 'editor.action.extensioneditor.findNext',
979
- title: ( localize(9410, "Find Next")),
979
+ title: ( localize(9432, "Find Next")),
980
980
  keybinding: {
981
981
  when: ( (ContextKeyExpr.and(contextKeyExpr, KEYBINDING_CONTEXT_WEBVIEW_FIND_WIDGET_FOCUSED))),
982
982
  primary: KeyCode.Enter,
@@ -993,7 +993,7 @@ registerAction2(class StartExtensionEditorFindPreviousAction extends Action2 {
993
993
  constructor() {
994
994
  super({
995
995
  id: 'editor.action.extensioneditor.findPrevious',
996
- title: ( localize(9411, "Find Previous")),
996
+ title: ( localize(9433, "Find Previous")),
997
997
  keybinding: {
998
998
  when: ( (ContextKeyExpr.and(contextKeyExpr, KEYBINDING_CONTEXT_WEBVIEW_FIND_WIDGET_FOCUSED))),
999
999
  primary: KeyMod.Shift | KeyCode.Enter,
@@ -22,7 +22,7 @@ let ExtensionEnablementWorkspaceTrustTransitionParticipant = class ExtensionEnab
22
22
  hostService.reload();
23
23
  }
24
24
  else {
25
- const stopped = await extensionService.stopExtensionHosts(( localize(9482, "Restarting extension host due to workspace trust change.")));
25
+ const stopped = await extensionService.stopExtensionHosts(( localize(9504, "Restarting extension host due to workspace trust change.")));
26
26
  await extensionEnablementService.updateExtensionsEnablementsWhenWorkspaceTrustChanges();
27
27
  if (stopped) {
28
28
  extensionService.startExtensionHosts();