@codingame/monaco-vscode-extensions-service-override 25.1.1 → 26.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 (120) hide show
  1. package/index.js +7 -0
  2. package/package.json +3 -3
  3. package/vscode/src/vs/base/common/console.js +24 -15
  4. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.d.ts +4 -1
  5. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +149 -84
  6. package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +20 -12
  7. package/vscode/src/vs/platform/extensionResourceLoader/common/extensionResourceLoader.js +38 -21
  8. package/vscode/src/vs/platform/remote/common/managedSocket.js +7 -10
  9. package/vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js +5 -2
  10. package/vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.js +5 -2
  11. package/vscode/src/vs/workbench/api/browser/mainThreadAiSettingsSearch.js +4 -1
  12. package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +200 -143
  13. package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +10 -14
  14. package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +41 -31
  15. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.d.ts +9 -12
  16. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +168 -115
  17. package/vscode/src/vs/workbench/api/browser/mainThreadChatCodeMapper.js +11 -13
  18. package/vscode/src/vs/workbench/api/browser/mainThreadChatContext.d.ts +5 -5
  19. package/vscode/src/vs/workbench/api/browser/mainThreadChatContext.js +42 -15
  20. package/vscode/src/vs/workbench/api/browser/mainThreadChatOutputRenderer.js +8 -7
  21. package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.d.ts +4 -2
  22. package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.js +170 -99
  23. package/vscode/src/vs/workbench/api/browser/mainThreadChatStatus.js +2 -5
  24. package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +4 -9
  25. package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +13 -12
  26. package/vscode/src/vs/workbench/api/browser/mainThreadCommands.js +16 -19
  27. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +127 -70
  28. package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +80 -26
  29. package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +5 -11
  30. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +199 -97
  31. package/vscode/src/vs/workbench/api/browser/mainThreadDataChannels.js +1 -4
  32. package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +88 -73
  33. package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +5 -5
  34. package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js +16 -12
  35. package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.js +10 -8
  36. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +14 -6
  37. package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +52 -37
  38. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +78 -58
  39. package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +5 -7
  40. package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +75 -63
  41. package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +99 -91
  42. package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +93 -55
  43. package/vscode/src/vs/workbench/api/browser/mainThreadEmbeddings.js +3 -7
  44. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +85 -60
  45. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +49 -45
  46. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +114 -72
  47. package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.js +4 -7
  48. package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.js +1 -4
  49. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.d.ts +2 -2
  50. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +381 -238
  51. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModelTools.d.ts +7 -3
  52. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModelTools.js +90 -13
  53. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +81 -58
  54. package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.js +9 -10
  55. package/vscode/src/vs/workbench/api/browser/mainThreadLocalization.js +2 -7
  56. package/vscode/src/vs/workbench/api/browser/mainThreadLogService.js +6 -10
  57. package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +12 -10
  58. package/vscode/src/vs/workbench/api/browser/mainThreadMcp.d.ts +3 -2
  59. package/vscode/src/vs/workbench/api/browser/mainThreadMcp.js +162 -97
  60. package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +32 -26
  61. package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.js +38 -32
  62. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocuments.js +48 -46
  63. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js +22 -18
  64. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +5 -8
  65. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.js +35 -21
  66. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.js +31 -28
  67. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +5 -7
  68. package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +47 -23
  69. package/vscode/src/vs/workbench/api/browser/mainThreadProfileContentHandlers.js +15 -12
  70. package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +17 -18
  71. package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +6 -7
  72. package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js +83 -66
  73. package/vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.js +1 -5
  74. package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +250 -92
  75. package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +6 -8
  76. package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +37 -26
  77. package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +34 -21
  78. package/vscode/src/vs/workbench/api/browser/mainThreadShare.js +3 -6
  79. package/vscode/src/vs/workbench/api/browser/mainThreadSpeech.js +19 -14
  80. package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +41 -16
  81. package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +18 -17
  82. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +145 -145
  83. package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +19 -11
  84. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +176 -80
  85. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.js +52 -21
  86. package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +26 -24
  87. package/vscode/src/vs/workbench/api/browser/mainThreadTheming.js +1 -4
  88. package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.js +5 -8
  89. package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.d.ts +4 -1
  90. package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +106 -46
  91. package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +83 -65
  92. package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +20 -20
  93. package/vscode/src/vs/workbench/api/browser/mainThreadUrls.js +14 -9
  94. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +17 -9
  95. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +49 -38
  96. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.js +10 -13
  97. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +38 -27
  98. package/vscode/src/vs/workbench/api/browser/mainThreadWindow.js +5 -11
  99. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.d.ts +4 -1
  100. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +73 -43
  101. package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.js +2 -2
  102. package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +17 -10
  103. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +17 -11
  104. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +107 -80
  105. package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +336 -175
  106. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +126 -71
  107. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +76 -54
  108. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +1 -2
  109. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +2 -0
  110. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +343 -192
  111. package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.js +5 -3
  112. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.d.ts +0 -1
  113. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +75 -68
  114. package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +135 -36
  115. package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +22 -18
  116. package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +14 -12
  117. package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +21 -9
  118. package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +48 -25
  119. package/vscode/src/vs/workbench/services/themes/browser/cssExtensionPoint.d.ts +24 -0
  120. package/vscode/src/vs/workbench/services/themes/browser/cssExtensionPoint.js +300 -0
package/index.js CHANGED
@@ -49,6 +49,13 @@ import { WebExtensionsScannerService } from './vscode/src/vs/workbench/services/
49
49
  import { IBuiltinExtensionsScannerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions.service';
50
50
  import { ExtensionManifestTranslator } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionsScannerService';
51
51
  import { getBuiltInExtensionTranslationsUris } from '@codingame/monaco-vscode-api/l10n';
52
+ import '@codingame/monaco-vscode-api/vscode/vs/workbench/api/common/jsonValidationExtensionPoint';
53
+ import '@codingame/monaco-vscode-api/vscode/vs/workbench/services/themes/common/colorExtensionPoint';
54
+ import '@codingame/monaco-vscode-api/vscode/vs/workbench/services/themes/common/iconExtensionPoint';
55
+ import '@codingame/monaco-vscode-api/vscode/vs/workbench/services/themes/common/tokenClassificationExtensionPoint';
56
+ import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/codeEditor/common/languageConfigurationExtensionPoint';
57
+ import '@codingame/monaco-vscode-api/vscode/vs/workbench/api/browser/statusBarExtensionPoint';
58
+ import './vscode/src/vs/workbench/services/themes/browser/cssExtensionPoint.js';
52
59
  import './vscode/src/vs/workbench/api/browser/mainThreadLocalization.js';
53
60
  import './vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js';
54
61
  import './vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-extensions-service-override",
3
- "version": "25.1.1",
3
+ "version": "26.0.0",
4
4
  "private": false,
5
5
  "description": "VSCode public API plugged on the monaco editor - extensions service-override",
6
6
  "keywords": [],
@@ -15,8 +15,8 @@
15
15
  },
16
16
  "type": "module",
17
17
  "dependencies": {
18
- "@codingame/monaco-vscode-api": "25.1.1",
19
- "@codingame/monaco-vscode-files-service-override": "25.1.1"
18
+ "@codingame/monaco-vscode-api": "26.0.0",
19
+ "@codingame/monaco-vscode-files-service-override": "26.0.0"
20
20
  },
21
21
  "main": "index.js",
22
22
  "module": "index.js",
@@ -15,46 +15,55 @@ function parse(entry) {
15
15
  stack = stackArgument.__$stack;
16
16
  }
17
17
  args.push(...parsedArguments);
18
+ } catch (error) {
19
+ args.push("Unable to log remote console arguments", entry.arguments);
18
20
  }
19
- catch (error) {
20
- args.push('Unable to log remote console arguments', entry.arguments);
21
- }
22
- return { args, stack };
21
+ return {
22
+ args,
23
+ stack
24
+ };
23
25
  }
24
26
  function findFirstFrame(stack) {
25
27
  if (!stack) {
26
28
  return stack;
27
29
  }
28
- const newlineIndex = stack.indexOf('\n');
30
+ const newlineIndex = stack.indexOf("\n");
29
31
  if (newlineIndex === -1) {
30
32
  return stack;
31
33
  }
32
34
  return stack.substring(0, newlineIndex);
33
35
  }
34
36
  function log(entry, label) {
35
- const { args, stack } = parse(entry);
36
- const isOneStringArg = typeof args[0] === 'string' && args.length === 1;
37
+ const {
38
+ args,
39
+ stack
40
+ } = parse(entry);
41
+ const isOneStringArg = typeof args[0] === "string" && args.length === 1;
37
42
  let topFrame = findFirstFrame(stack);
38
43
  if (topFrame) {
39
44
  topFrame = `(${topFrame.trim()})`;
40
45
  }
41
46
  let consoleArgs = [];
42
- if (typeof args[0] === 'string') {
47
+ if (typeof args[0] === "string") {
43
48
  if (topFrame && isOneStringArg) {
44
- consoleArgs = [`%c[${label}] %c${args[0]} %c${topFrame}`, color('blue'), color(''), color('grey')];
45
- }
46
- else {
47
- consoleArgs = [`%c[${label}] %c${args[0]}`, color('blue'), color(''), ...args.slice(1)];
49
+ consoleArgs = [
50
+ `%c[${label}] %c${args[0]} %c${topFrame}`,
51
+ color("blue"),
52
+ color(""),
53
+ color("grey")
54
+ ];
55
+ } else {
56
+ consoleArgs = [`%c[${label}] %c${args[0]}`, color("blue"), color(""), ...args.slice(1)];
48
57
  }
49
58
  }
50
59
  else {
51
- consoleArgs = [`%c[${label}]%`, color('blue'), ...args];
60
+ consoleArgs = [`%c[${label}]%`, color("blue"), ...args];
52
61
  }
53
62
  if (topFrame && !isOneStringArg) {
54
63
  consoleArgs.push(topFrame);
55
64
  }
56
- if (typeof console[entry.severity] !== 'function') {
57
- throw ( new Error('Unknown console method'));
65
+ if (typeof console[entry.severity] !== "function") {
66
+ throw ( new Error("Unknown console method"));
58
67
  }
59
68
  console[entry.severity].apply(console, consoleArgs);
60
69
  }
@@ -4,11 +4,14 @@ import { IExtensionManagementService } from "@codingame/monaco-vscode-api/vscode
4
4
  import { IExtensionGalleryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionManagement.service";
5
5
  import { IExtensionManifest } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions";
6
6
  import { ILogger } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log";
7
+ import { IProductService } from "@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service";
7
8
  export declare class ExtensionManagementCLI {
9
+ private readonly extensionsForceVersionByQuality;
8
10
  protected readonly logger: ILogger;
9
11
  private readonly extensionManagementService;
10
12
  private readonly extensionGalleryService;
11
- constructor(logger: ILogger, extensionManagementService: IExtensionManagementService, extensionGalleryService: IExtensionGalleryService);
13
+ private readonly productService;
14
+ constructor(extensionsForceVersionByQuality: readonly string[], logger: ILogger, extensionManagementService: IExtensionManagementService, extensionGalleryService: IExtensionGalleryService, productService: IProductService);
12
15
  protected get location(): string | undefined;
13
16
  listExtensions(showVersions: boolean, category?: string, profileLocation?: URI): Promise<void>;
14
17
  installExtensions(extensions: (string | URI)[], builtinExtensions: (string | URI)[], installOptions: InstallOptions, force: boolean): Promise<void>;
@@ -11,18 +11,28 @@ import { InstallOperation, EXTENSION_IDENTIFIER_REGEX } from '@codingame/monaco-
11
11
  import { IExtensionManagementService, IExtensionGalleryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionManagement.service';
12
12
  import { getIdAndVersion, areSameExtensions, getGalleryExtensionId, getExtensionId } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionManagementUtil';
13
13
  import { ExtensionType, EXTENSION_CATEGORIES } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions';
14
+ import { IProductService } from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service';
14
15
 
15
- const notFound = (id) => ( localize(1848, "Extension '{0}' not found.", id));
16
+ const notFound = id => ( localize(1847, "Extension '{0}' not found.", id));
16
17
  const useId = ( localize(
17
- 1849,
18
+ 1848,
18
19
  "Make sure you use the full extension ID, including the publisher, e.g.: {0}",
19
- 'ms-dotnettools.csharp'
20
+ "ms-dotnettools.csharp"
20
21
  ));
21
22
  let ExtensionManagementCLI = class ExtensionManagementCLI {
22
- constructor(logger, extensionManagementService, extensionGalleryService) {
23
+ constructor(
24
+ extensionsForceVersionByQuality,
25
+ logger,
26
+ extensionManagementService,
27
+ extensionGalleryService,
28
+ productService
29
+ ) {
30
+ this.extensionsForceVersionByQuality = extensionsForceVersionByQuality;
23
31
  this.logger = logger;
24
32
  this.extensionManagementService = extensionManagementService;
25
33
  this.extensionGalleryService = extensionGalleryService;
34
+ this.productService = productService;
35
+ this.extensionsForceVersionByQuality = ( this.extensionsForceVersionByQuality.map(e => e.toLowerCase()));
26
36
  }
27
37
  get location() {
28
38
  return undefined;
@@ -30,9 +40,11 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
30
40
  async listExtensions(showVersions, category, profileLocation) {
31
41
  let extensions = await this.extensionManagementService.getInstalled(ExtensionType.User, profileLocation);
32
42
  const categories = ( EXTENSION_CATEGORIES.map(c => c.toLowerCase()));
33
- if (category && category !== '') {
43
+ if (category && category !== "") {
34
44
  if (categories.indexOf(category.toLowerCase()) < 0) {
35
- this.logger.info('Invalid category please enter a valid category. To list valid categories run --category without a category specified');
45
+ this.logger.info(
46
+ "Invalid category please enter a valid category. To list valid categories run --category without a category specified"
47
+ );
36
48
  return;
37
49
  }
38
50
  extensions = extensions.filter(e => {
@@ -42,16 +54,15 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
42
54
  }
43
55
  return false;
44
56
  });
45
- }
46
- else if (category === '') {
47
- this.logger.info('Possible Categories: ');
57
+ } else if (category === "") {
58
+ this.logger.info("Possible Categories: ");
48
59
  categories.forEach(category => {
49
60
  this.logger.info(category);
50
61
  });
51
62
  return;
52
63
  }
53
64
  if (this.location) {
54
- this.logger.info(( localize(1850, "Extensions installed on {0}:", this.location)));
65
+ this.logger.info(( localize(1849, "Extensions installed on {0}:", this.location)));
55
66
  }
56
67
  extensions = extensions.sort((e1, e2) => e1.identifier.id.localeCompare(e2.identifier.id));
57
68
  let lastId = undefined;
@@ -66,38 +77,61 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
66
77
  const failed = [];
67
78
  try {
68
79
  if (extensions.length) {
69
- this.logger.info(this.location ? ( localize(1851, "Installing extensions on {0}...", this.location)) : ( localize(1852, "Installing extensions...")));
80
+ this.logger.info(this.location ? ( localize(1850, "Installing extensions on {0}...", this.location)) : ( localize(1851, "Installing extensions...")));
70
81
  }
71
82
  const installVSIXInfos = [];
72
83
  const installExtensionInfos = [];
73
84
  const addInstallExtensionInfo = (id, version, isBuiltin) => {
74
- installExtensionInfos.push({ id, version: version !== 'prerelease' ? version : undefined, installOptions: { ...installOptions, isBuiltin, installPreReleaseVersion: version === 'prerelease' || installOptions.installPreReleaseVersion } });
85
+ if (this.extensionsForceVersionByQuality?.some(e => e === id.toLowerCase())) {
86
+ version = this.productService.quality !== "stable" ? "prerelease" : undefined;
87
+ }
88
+ installExtensionInfos.push({
89
+ id,
90
+ version: version !== "prerelease" ? version : undefined,
91
+ installOptions: {
92
+ ...installOptions,
93
+ isBuiltin,
94
+ installPreReleaseVersion: version === "prerelease" || installOptions.installPreReleaseVersion
95
+ }
96
+ });
75
97
  };
76
98
  for (const extension of extensions) {
77
99
  if (extension instanceof URI) {
78
- installVSIXInfos.push({ vsix: extension, installOptions });
79
- }
80
- else {
100
+ installVSIXInfos.push({
101
+ vsix: extension,
102
+ installOptions
103
+ });
104
+ } else {
81
105
  const [id, version] = getIdAndVersion(extension);
82
106
  addInstallExtensionInfo(id, version, false);
83
107
  }
84
108
  }
85
109
  for (const extension of builtinExtensions) {
86
110
  if (extension instanceof URI) {
87
- installVSIXInfos.push({ vsix: extension, installOptions: { ...installOptions, isBuiltin: true, donotIncludePackAndDependencies: true } });
88
- }
89
- else {
111
+ installVSIXInfos.push({
112
+ vsix: extension,
113
+ installOptions: {
114
+ ...installOptions,
115
+ isBuiltin: true,
116
+ donotIncludePackAndDependencies: true
117
+ }
118
+ });
119
+ } else {
90
120
  const [id, version] = getIdAndVersion(extension);
91
121
  addInstallExtensionInfo(id, version, true);
92
122
  }
93
123
  }
94
124
  const installed = await this.extensionManagementService.getInstalled(undefined, installOptions.profileLocation);
95
125
  if (installVSIXInfos.length) {
96
- await Promise.all(( installVSIXInfos.map(async ({ vsix, installOptions }) => {
126
+ await Promise.all(( installVSIXInfos.map(async (
127
+ {
128
+ vsix,
129
+ installOptions
130
+ }
131
+ ) => {
97
132
  try {
98
133
  await this.installVSIX(vsix, installOptions, force, installed);
99
- }
100
- catch (err) {
134
+ } catch (err) {
101
135
  this.logger.error(err);
102
136
  failed.push(( vsix.toString()));
103
137
  }
@@ -107,13 +141,12 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
107
141
  const failedGalleryExtensions = await this.installGalleryExtensions(installExtensionInfos, installed, force);
108
142
  failed.push(...failedGalleryExtensions);
109
143
  }
110
- }
111
- catch (error) {
112
- this.logger.error(( localize(1853, "Error while installing extensions: {0}", getErrorMessage(error))));
144
+ } catch (error) {
145
+ this.logger.error(( localize(1852, "Error while installing extensions: {0}", getErrorMessage(error))));
113
146
  throw error;
114
147
  }
115
148
  if (failed.length) {
116
- throw ( new Error(( localize(1854, "Failed Installing Extensions: {0}", failed.join(', ')))));
149
+ throw ( new Error(( localize(1853, "Failed Installing Extensions: {0}", failed.join(", ")))));
117
150
  }
118
151
  }
119
152
  async updateExtensions(profileLocation) {
@@ -121,48 +154,57 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
121
154
  const installedExtensionsQuery = [];
122
155
  for (const extension of installedExtensions) {
123
156
  if (!!extension.identifier.uuid) {
124
- installedExtensionsQuery.push({ ...extension.identifier, preRelease: extension.preRelease });
157
+ installedExtensionsQuery.push({
158
+ ...extension.identifier,
159
+ preRelease: extension.preRelease
160
+ });
125
161
  }
126
162
  }
127
163
  this.logger.trace(( localize(
128
- 1855,
164
+ 1854,
129
165
  "Fetching latest versions for {0} extensions",
130
166
  installedExtensionsQuery.length
131
167
  )));
132
- const availableVersions = await this.extensionGalleryService.getExtensions(installedExtensionsQuery, { compatible: true }, CancellationToken.None);
168
+ const availableVersions = await this.extensionGalleryService.getExtensions(installedExtensionsQuery, {
169
+ compatible: true
170
+ }, CancellationToken.None);
133
171
  const extensionsToUpdate = [];
134
172
  for (const newVersion of availableVersions) {
135
173
  for (const oldVersion of installedExtensions) {
136
174
  if (areSameExtensions(oldVersion.identifier, newVersion.identifier) && semverExports.gt(newVersion.version, oldVersion.manifest.version)) {
137
175
  extensionsToUpdate.push({
138
176
  extension: newVersion,
139
- options: { operation: InstallOperation.Update, installPreReleaseVersion: oldVersion.preRelease, profileLocation, isApplicationScoped: oldVersion.isApplicationScoped }
177
+ options: {
178
+ operation: InstallOperation.Update,
179
+ installPreReleaseVersion: oldVersion.preRelease,
180
+ profileLocation,
181
+ isApplicationScoped: oldVersion.isApplicationScoped
182
+ }
140
183
  });
141
184
  }
142
185
  }
143
186
  }
144
187
  if (!extensionsToUpdate.length) {
145
- this.logger.info(( localize(1856, "No extension to update")));
188
+ this.logger.info(( localize(1855, "No extension to update")));
146
189
  return;
147
190
  }
148
191
  this.logger.info(( localize(
149
- 1857,
192
+ 1856,
150
193
  "Updating extensions: {0}",
151
- ( extensionsToUpdate.map(ext => ext.extension.identifier.id)).join(', ')
194
+ ( extensionsToUpdate.map(ext => ext.extension.identifier.id)).join(", ")
152
195
  )));
153
196
  const installationResult = await this.extensionManagementService.installGalleryExtensions(extensionsToUpdate);
154
197
  for (const extensionResult of installationResult) {
155
198
  if (extensionResult.error) {
156
199
  this.logger.error(( localize(
157
- 1858,
200
+ 1857,
158
201
  "Error while updating extension {0}: {1}",
159
202
  extensionResult.identifier.id,
160
203
  getErrorMessage(extensionResult.error)
161
204
  )));
162
- }
163
- else {
205
+ } else {
164
206
  this.logger.info(( localize(
165
- 1859,
207
+ 1858,
166
208
  "Extension '{0}' v{1} was successfully updated.",
167
209
  extensionResult.identifier.id,
168
210
  extensionResult.local?.manifest.version
@@ -172,12 +214,18 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
172
214
  }
173
215
  async installGalleryExtensions(installExtensionInfos, installed, force) {
174
216
  installExtensionInfos = installExtensionInfos.filter(installExtensionInfo => {
175
- const { id, version, installOptions } = installExtensionInfo;
176
- const installedExtension = installed.find(i => areSameExtensions(i.identifier, { id }));
217
+ const {
218
+ id,
219
+ version,
220
+ installOptions
221
+ } = installExtensionInfo;
222
+ const installedExtension = installed.find(i => areSameExtensions(i.identifier, {
223
+ id
224
+ }));
177
225
  if (installedExtension) {
178
- if (!force && (!version || (version === 'prerelease' && installedExtension.preRelease))) {
226
+ if (!force && (!version || (version === "prerelease" && installedExtension.preRelease))) {
179
227
  this.logger.info(( localize(
180
- 1860,
228
+ 1859,
181
229
  "Extension '{0}' v{1} is already installed. Use '--force' option to update to latest version or provide '@<version>' to install a specific version, for example: '{2}@1.2.3'.",
182
230
  id,
183
231
  installedExtension.manifest.version,
@@ -186,10 +234,10 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
186
234
  return false;
187
235
  }
188
236
  if (version && installedExtension.manifest.version === version) {
189
- this.logger.info(( localize(1861, "Extension '{0}' is already installed.", `${id}@${version}`)));
237
+ this.logger.info(( localize(1860, "Extension '{0}' is already installed.", `${id}@${version}`)));
190
238
  return false;
191
239
  }
192
- if (installedExtension.preRelease && version !== 'prerelease') {
240
+ if (installedExtension.preRelease && version !== "prerelease") {
193
241
  installOptions.preRelease = false;
194
242
  }
195
243
  }
@@ -201,7 +249,13 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
201
249
  const failed = [];
202
250
  const extensionsToInstall = [];
203
251
  const galleryExtensions = await this.getGalleryExtensions(installExtensionInfos);
204
- await Promise.all(( installExtensionInfos.map(async ({ id, version, installOptions }) => {
252
+ await Promise.all(( installExtensionInfos.map(async (
253
+ {
254
+ id,
255
+ version,
256
+ installOptions
257
+ }
258
+ ) => {
205
259
  const gallery = galleryExtensions.get(id.toLowerCase());
206
260
  if (!gallery) {
207
261
  this.logger.error(`${notFound(version ? `${id}@${version}` : id)}\n${useId}`);
@@ -213,8 +267,7 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
213
267
  if (manifest && !this.validateExtensionKind(manifest)) {
214
268
  return;
215
269
  }
216
- }
217
- catch (err) {
270
+ } catch (err) {
218
271
  this.logger.error(err.message || err.stack || err);
219
272
  failed.push(id);
220
273
  return;
@@ -223,28 +276,31 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
223
276
  if (installedExtension) {
224
277
  if (gallery.version === installedExtension.manifest.version) {
225
278
  this.logger.info(( localize(
226
- 1861,
279
+ 1860,
227
280
  "Extension '{0}' is already installed.",
228
281
  version ? `${id}@${version}` : id
229
282
  )));
230
283
  return;
231
284
  }
232
285
  this.logger.info(( localize(
233
- 1862,
286
+ 1861,
234
287
  "Updating the extension '{0}' to the version {1}",
235
288
  id,
236
289
  gallery.version
237
290
  )));
238
291
  }
239
292
  if (installOptions.isBuiltin) {
240
- this.logger.info(version ? ( localize(1863, "Installing builtin extension '{0}' v{1}...", id, version)) : ( localize(1864, "Installing builtin extension '{0}'...", id)));
241
- }
242
- else {
243
- this.logger.info(version ? ( localize(1865, "Installing extension '{0}' v{1}...", id, version)) : ( localize(1866, "Installing extension '{0}'...", id)));
293
+ this.logger.info(version ? ( localize(1862, "Installing builtin extension '{0}' v{1}...", id, version)) : ( localize(1863, "Installing builtin extension '{0}'...", id)));
294
+ } else {
295
+ this.logger.info(version ? ( localize(1864, "Installing extension '{0}' v{1}...", id, version)) : ( localize(1865, "Installing extension '{0}'...", id)));
244
296
  }
245
297
  extensionsToInstall.push({
246
298
  extension: gallery,
247
- options: { ...installOptions, installGivenVersion: !!version, isApplicationScoped: installOptions.isApplicationScoped || installedExtension?.isApplicationScoped },
299
+ options: {
300
+ ...installOptions,
301
+ installGivenVersion: !!version,
302
+ isApplicationScoped: installOptions.isApplicationScoped || installedExtension?.isApplicationScoped
303
+ }
248
304
  });
249
305
  })));
250
306
  if (extensionsToInstall.length) {
@@ -252,16 +308,15 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
252
308
  for (const extensionResult of installationResult) {
253
309
  if (extensionResult.error) {
254
310
  this.logger.error(( localize(
255
- 1867,
311
+ 1866,
256
312
  "Error while installing extension {0}: {1}",
257
313
  extensionResult.identifier.id,
258
314
  getErrorMessage(extensionResult.error)
259
315
  )));
260
316
  failed.push(extensionResult.identifier.id);
261
- }
262
- else {
317
+ } else {
263
318
  this.logger.info(( localize(
264
- 1868,
319
+ 1867,
265
320
  "Extension '{0}' v{1} was successfully installed.",
266
321
  extensionResult.identifier.id,
267
322
  extensionResult.local?.manifest.version
@@ -274,19 +329,20 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
274
329
  async installVSIX(vsix, installOptions, force, installedExtensions) {
275
330
  const manifest = await this.extensionManagementService.getManifest(vsix);
276
331
  if (!manifest) {
277
- throw ( new Error('Invalid vsix'));
332
+ throw ( new Error("Invalid vsix"));
278
333
  }
279
334
  const valid = await this.validateVSIX(manifest, force, installOptions.profileLocation, installedExtensions);
280
335
  if (valid) {
281
336
  try {
282
- await this.extensionManagementService.install(vsix, { ...installOptions, installGivenVersion: true });
283
- this.logger.info(( localize(1869, "Extension '{0}' was successfully installed.", basename(vsix))));
284
- }
285
- catch (error) {
337
+ await this.extensionManagementService.install(vsix, {
338
+ ...installOptions,
339
+ installGivenVersion: true
340
+ });
341
+ this.logger.info(( localize(1868, "Extension '{0}' was successfully installed.", basename(vsix))));
342
+ } catch (error) {
286
343
  if (isCancellationError(error)) {
287
- this.logger.info(( localize(1870, "Cancelled installing extension '{0}'.", basename(vsix))));
288
- }
289
- else {
344
+ this.logger.info(( localize(1869, "Cancelled installing extension '{0}'.", basename(vsix))));
345
+ } else {
290
346
  throw error;
291
347
  }
292
348
  }
@@ -299,11 +355,16 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
299
355
  const extensionInfos = [];
300
356
  for (const extension of extensions) {
301
357
  if (EXTENSION_IDENTIFIER_REGEX.test(extension.id)) {
302
- extensionInfos.push({ ...extension, preRelease });
358
+ extensionInfos.push({
359
+ ...extension,
360
+ preRelease
361
+ });
303
362
  }
304
363
  }
305
364
  if (extensionInfos.length) {
306
- const result = await this.extensionGalleryService.getExtensions(extensionInfos, { targetPlatform }, CancellationToken.None);
365
+ const result = await this.extensionGalleryService.getExtensions(extensionInfos, {
366
+ targetPlatform
367
+ }, CancellationToken.None);
307
368
  for (const extension of result) {
308
369
  galleryExtensions.set(extension.identifier.id.toLowerCase(), extension);
309
370
  }
@@ -315,11 +376,15 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
315
376
  }
316
377
  async validateVSIX(manifest, force, profileLocation, installedExtensions) {
317
378
  if (!force) {
318
- const extensionIdentifier = { id: getGalleryExtensionId(manifest.publisher, manifest.name) };
319
- const newer = installedExtensions.find(local => areSameExtensions(extensionIdentifier, local.identifier) && semverExports.gt(local.manifest.version, manifest.version));
379
+ const extensionIdentifier = {
380
+ id: getGalleryExtensionId(manifest.publisher, manifest.name)
381
+ };
382
+ const newer = installedExtensions.find(
383
+ local => areSameExtensions(extensionIdentifier, local.identifier) && semverExports.gt(local.manifest.version, manifest.version)
384
+ );
320
385
  if (newer) {
321
386
  this.logger.info(( localize(
322
- 1871,
387
+ 1870,
323
388
  "A newer version of extension '{0}' v{1} is already installed. Use '--force' option to downgrade to older version.",
324
389
  newer.identifier.id,
325
390
  newer.manifest.version,
@@ -331,7 +396,7 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
331
396
  return this.validateExtensionKind(manifest);
332
397
  }
333
398
  async uninstallExtensions(extensions, force, profileLocation) {
334
- const getId = async (extensionDescription) => {
399
+ const getId = async extensionDescription => {
335
400
  if (extensionDescription instanceof URI) {
336
401
  const manifest = await this.extensionManagementService.getManifest(extensionDescription);
337
402
  return getExtensionId(manifest.publisher, manifest.name);
@@ -341,13 +406,15 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
341
406
  for (const extension of extensions) {
342
407
  const id = await getId(extension);
343
408
  const installed = await this.extensionManagementService.getInstalled(undefined, profileLocation);
344
- const extensionsToUninstall = installed.filter(e => areSameExtensions(e.identifier, { id }));
409
+ const extensionsToUninstall = installed.filter(e => areSameExtensions(e.identifier, {
410
+ id
411
+ }));
345
412
  if (!extensionsToUninstall.length) {
346
413
  throw ( new Error(`${this.notInstalled(id)}\n${useId}`));
347
414
  }
348
415
  if (( extensionsToUninstall.some(e => e.type === ExtensionType.System))) {
349
416
  this.logger.info(( localize(
350
- 1872,
417
+ 1871,
351
418
  "Extension '{0}' is a Built-in extension and cannot be uninstalled",
352
419
  id
353
420
  )));
@@ -355,26 +422,27 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
355
422
  }
356
423
  if (!force && ( extensionsToUninstall.some(e => e.isBuiltin))) {
357
424
  this.logger.info(( localize(
358
- 1873,
425
+ 1872,
359
426
  "Extension '{0}' is marked as a Built-in extension by user. Please use '--force' option to uninstall it.",
360
427
  id
361
428
  )));
362
429
  return;
363
430
  }
364
- this.logger.info(( localize(1874, "Uninstalling {0}...", id)));
431
+ this.logger.info(( localize(1873, "Uninstalling {0}...", id)));
365
432
  for (const extensionToUninstall of extensionsToUninstall) {
366
- await this.extensionManagementService.uninstall(extensionToUninstall, { profileLocation });
433
+ await this.extensionManagementService.uninstall(extensionToUninstall, {
434
+ profileLocation
435
+ });
367
436
  }
368
437
  if (this.location) {
369
438
  this.logger.info(( localize(
370
- 1875,
439
+ 1874,
371
440
  "Extension '{0}' was successfully uninstalled from {1}!",
372
441
  id,
373
442
  this.location
374
443
  )));
375
- }
376
- else {
377
- this.logger.info(( localize(1876, "Extension '{0}' was successfully uninstalled!", id)));
444
+ } else {
445
+ this.logger.info(( localize(1875, "Extension '{0}' was successfully uninstalled!", id)));
378
446
  }
379
447
  }
380
448
  }
@@ -392,12 +460,9 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
392
460
  });
393
461
  }
394
462
  notInstalled(id) {
395
- return this.location ? ( localize(1877, "Extension '{0}' is not installed on {1}.", id, this.location)) : ( localize(1878, "Extension '{0}' is not installed.", id));
463
+ return this.location ? ( localize(1876, "Extension '{0}' is not installed on {1}.", id, this.location)) : ( localize(1877, "Extension '{0}' is not installed.", id));
396
464
  }
397
465
  };
398
- ExtensionManagementCLI = ( __decorate([
399
- ( __param(1, IExtensionManagementService)),
400
- ( __param(2, IExtensionGalleryService))
401
- ], ExtensionManagementCLI));
466
+ ExtensionManagementCLI = ( __decorate([( __param(2, IExtensionManagementService)), ( __param(3, IExtensionGalleryService)), ( __param(4, IProductService))], ExtensionManagementCLI));
402
467
 
403
468
  export { ExtensionManagementCLI };