@codingame/monaco-vscode-extension-gallery-service-override 15.0.2 → 16.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 (74) hide show
  1. package/index.js +10 -7
  2. package/package.json +23 -20
  3. package/vscode/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.d.ts +1 -0
  4. package/vscode/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.js +50 -21
  5. package/vscode/src/vs/platform/extensionManagement/common/allowedExtensionsService.js +5 -5
  6. package/vscode/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.d.ts +13 -0
  7. package/vscode/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.js +209 -0
  8. package/vscode/src/vs/platform/extensionManagement/common/extensionGalleryService.d.ts +15 -8
  9. package/vscode/src/vs/platform/extensionManagement/common/extensionGalleryService.js +339 -184
  10. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementIpc.d.ts +1 -1
  11. package/vscode/src/vs/platform/userDataProfile/common/userDataProfileIpc.d.ts +1 -1
  12. package/vscode/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.js +19 -19
  13. package/vscode/src/vs/workbench/contrib/extensions/browser/configBasedRecommendations.js +1 -1
  14. package/vscode/src/vs/workbench/contrib/extensions/browser/exeBasedRecommendations.js +1 -1
  15. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEditor.d.ts +1 -9
  16. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEditor.js +91 -113
  17. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEnablementWorkspaceTrustTransitionParticipant.js +1 -1
  18. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionFeaturesTab.js +17 -17
  19. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationNotificationService.js +15 -15
  20. package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.contribution.js +225 -183
  21. package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.web.contribution.js +1 -1
  22. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActivationProgress.js +1 -1
  23. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsCompletionItemsProvider.js +1 -1
  24. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsDependencyChecker.js +5 -5
  25. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsList.d.ts +0 -1
  26. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsList.js +7 -14
  27. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsQuickAccess.js +4 -4
  28. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewer.js +3 -3
  29. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.d.ts +6 -5
  30. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.js +110 -97
  31. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.d.ts +1 -1
  32. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.js +13 -13
  33. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.d.ts +39 -10
  34. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.js +202 -66
  35. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.d.ts +10 -5
  36. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.js +163 -126
  37. package/vscode/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.js +2 -2
  38. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extension.css +235 -0
  39. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionEditor.css +727 -0
  40. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionsViewlet.css +161 -0
  41. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionsWidgets.css +58 -0
  42. package/vscode/src/vs/workbench/contrib/extensions/browser/media/loading-dark.svg +31 -0
  43. package/vscode/src/vs/workbench/contrib/extensions/browser/media/loading-hc.svg +31 -0
  44. package/vscode/src/vs/workbench/contrib/extensions/browser/media/loading.svg +31 -0
  45. package/vscode/src/vs/workbench/contrib/extensions/browser/media/runtimeExtensionsEditor.css +70 -0
  46. package/vscode/src/vs/workbench/contrib/extensions/browser/webRecommendations.js +1 -1
  47. package/vscode/src/vs/workbench/contrib/extensions/browser/workspaceRecommendations.js +2 -2
  48. package/vscode/src/vs/workbench/contrib/extensions/common/extensionQuery.d.ts +2 -1
  49. package/vscode/src/vs/workbench/contrib/extensions/common/extensionQuery.js +22 -4
  50. package/vscode/src/vs/workbench/contrib/extensions/common/reportExtensionIssueAction.js +1 -1
  51. package/vscode/src/vs/workbench/contrib/extensions/common/runtimeExtensionsInput.js +2 -2
  52. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.d.ts +9 -1
  53. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.js +66 -20
  54. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionGalleryManifestService.d.ts +7 -0
  55. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionGalleryManifestService.js +27 -0
  56. package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +5 -5
  57. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionFeaturesManagemetService.js +4 -4
  58. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionGalleryService.d.ts +15 -0
  59. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionGalleryService.js +36 -0
  60. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementChannelClient.d.ts +1 -1
  61. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementServerService.js +2 -2
  62. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementService.js +56 -56
  63. package/vscode/src/vs/workbench/services/extensionManagement/common/media/extensionManagement.css +6 -0
  64. package/vscode/src/vs/workbench/services/extensionManagement/common/remoteExtensionManagementService.d.ts +1 -1
  65. package/vscode/src/vs/workbench/services/extensionManagement/common/webExtensionManagementService.d.ts +1 -0
  66. package/vscode/src/vs/workbench/services/extensionManagement/common/webExtensionManagementService.js +4 -0
  67. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extension.css.js +0 -6
  68. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionEditor.css.js +0 -6
  69. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionsViewlet.css.js +0 -6
  70. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionsWidgets.css.js +0 -6
  71. package/vscode/src/vs/workbench/contrib/extensions/browser/media/runtimeExtensionsEditor.css.js +0 -6
  72. package/vscode/src/vs/workbench/services/extensionManagement/common/media/extensionManagement.css.js +0 -6
  73. /package/{assets → vscode/src/vs/workbench/contrib/extensions/browser/media}/theme-icon.png +0 -0
  74. /package/{assets → vscode/src/vs/workbench/services/extensionManagement/common/media}/defaultIcon.png +0 -0
package/index.js CHANGED
@@ -2,7 +2,6 @@
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { SyncDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/descriptors';
4
4
  import { IAllowedExtensionsService, IExtensionTipsService, IGlobalExtensionEnablementService, IExtensionGalleryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionManagement.service';
5
- import { ExtensionGalleryService } from './vscode/src/vs/platform/extensionManagement/common/extensionGalleryService.js';
6
5
  import { GlobalExtensionEnablementService } from '@codingame/monaco-vscode-a2719803-af40-5ae9-a29f-8a2231c33056-common/vscode/vs/platform/extensionManagement/common/extensionEnablementService';
7
6
  import { IExtensionsWorkbenchService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/extensions/common/extensions.service';
8
7
  import { getLocale } from '@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common/vscode/vs/platform/languagePacks/common/languagePacks';
@@ -42,14 +41,17 @@ import { AllowedExtensionsService } from './vscode/src/vs/platform/extensionMana
42
41
  import { registerAssets } from '@codingame/monaco-vscode-api/assets';
43
42
  import { getExtensionManifests } from '@codingame/monaco-vscode-api/extensions';
44
43
  import { isLocaleAvailable } from '@codingame/monaco-vscode-api/l10n';
44
+ import { unsupported } from '@codingame/monaco-vscode-api/tools';
45
+ import { IExtensionGalleryManifestService } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionGalleryManifest.service';
46
+ import { WebExtensionGalleryManifestService } from './vscode/src/vs/workbench/services/extensionManagement/browser/extensionGalleryManifestService.js';
47
+ import { WorkbenchExtensionGalleryService } from './vscode/src/vs/workbench/services/extensionManagement/common/extensionGalleryService.js';
45
48
  import './vscode/src/vs/workbench/contrib/extensions/browser/extensions.contribution.js';
46
49
  import './vscode/src/vs/workbench/contrib/extensions/browser/extensions.web.contribution.js';
47
- import { unsupported } from '@codingame/monaco-vscode-api/tools';
48
50
 
49
51
  registerAssets({
50
- 'vs/workbench/services/extensionManagement/common/media/defaultIcon.png': new URL('./assets/defaultIcon.png', import.meta.url).toString(),
51
- 'vs/workbench/contrib/extensions/browser/media/theme-icon.png': new URL('./assets/theme-icon.png', import.meta.url).href,
52
- 'vs/workbench/contrib/extensions/browser/media/language-icon.svg': new URL('./assets/theme-icon.png', import.meta.url).href
52
+ 'vs/workbench/services/extensionManagement/common/media/defaultIcon.png': new URL('./vscode/src/vs/workbench/services/extensionManagement/common/media/defaultIcon.png', import.meta.url).toString(),
53
+ 'vs/workbench/contrib/extensions/browser/media/theme-icon.png': new URL('./vscode/src/vs/workbench/contrib/extensions/browser/media/theme-icon.png', import.meta.url).href,
54
+ 'vs/workbench/contrib/extensions/browser/media/language-icon.svg': new URL('./vscode/src/vs/workbench/contrib/extensions/browser/media/theme-icon.png', import.meta.url).href
53
55
  });
54
56
  class EmptyRemoteAgentService {
55
57
  constructor() {
@@ -97,7 +99,7 @@ class ExtensionsWorkbenchServiceOverride extends ExtensionsWorkbenchService {
97
99
  }
98
100
  function getServiceOverride(options = { webOnly: false }) {
99
101
  return {
100
- [IExtensionGalleryService.toString()]: new SyncDescriptor(ExtensionGalleryService, [], true),
102
+ [IExtensionGalleryService.toString()]: new SyncDescriptor(WorkbenchExtensionGalleryService, [], true),
101
103
  [IGlobalExtensionEnablementService.toString()]: new SyncDescriptor(GlobalExtensionEnablementService, [], true),
102
104
  [IExtensionsWorkbenchService.toString()]: new SyncDescriptor(ExtensionsWorkbenchServiceOverride, [], true),
103
105
  [IExtensionManagementServerService.toString()]: new SyncDescriptor(ExtensionManagementServerServiceOverride, [options.webOnly], true),
@@ -117,7 +119,8 @@ function getServiceOverride(options = { webOnly: false }) {
117
119
  [IExtensionFeaturesManagementService.toString()]: new SyncDescriptor(ExtensionFeaturesManagementService, [], true),
118
120
  [IExtensionsScannerService.toString()]: new SyncDescriptor(ExtensionsScannerService, [], true),
119
121
  [IExtensionsProfileScannerService.toString()]: new SyncDescriptor(ExtensionsProfileScannerService, [], true),
120
- [IAllowedExtensionsService.toString()]: new SyncDescriptor(AllowedExtensionsService, [], true)
122
+ [IAllowedExtensionsService.toString()]: new SyncDescriptor(AllowedExtensionsService, [], true),
123
+ [IExtensionGalleryManifestService.toString()]: new SyncDescriptor(WebExtensionGalleryManifestService, [], true)
121
124
  };
122
125
  }
123
126
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-extension-gallery-service-override",
3
- "version": "15.0.2",
3
+ "version": "16.0.0",
4
4
  "private": false,
5
5
  "description": "VSCode public API plugged on the monaco editor - extension-gallery service-override",
6
6
  "keywords": [],
@@ -15,25 +15,25 @@
15
15
  },
16
16
  "type": "module",
17
17
  "dependencies": {
18
- "@codingame/monaco-vscode-039b5553-0838-562a-97c2-30d6e54a7b42-common": "15.0.2",
19
- "@codingame/monaco-vscode-0f5ced28-abde-558b-8652-db8e7d4d64aa-common": "15.0.2",
20
- "@codingame/monaco-vscode-10418ae3-ee63-5700-a757-89cbe6564ee4-common": "15.0.2",
21
- "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.2",
22
- "@codingame/monaco-vscode-1bb39316-6fbf-572e-ab6a-818a2496c14f-common": "15.0.2",
23
- "@codingame/monaco-vscode-3a00040f-b81b-50bc-88da-35f611c0bd1e-common": "15.0.2",
24
- "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.2",
25
- "@codingame/monaco-vscode-5e324391-11e3-5ceb-93ee-938e4098e4ad-common": "15.0.2",
26
- "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.2",
27
- "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "15.0.2",
28
- "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "15.0.2",
29
- "@codingame/monaco-vscode-805e9c2f-56b6-5a43-8b5b-d2dc2d3805fc-common": "15.0.2",
30
- "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.2",
31
- "@codingame/monaco-vscode-8c844347-a703-5de1-9eeb-5e0c7f503a58-common": "15.0.2",
32
- "@codingame/monaco-vscode-a2719803-af40-5ae9-a29f-8a2231c33056-common": "15.0.2",
33
- "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.2",
34
- "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "15.0.2",
35
- "@codingame/monaco-vscode-api": "15.0.2",
36
- "@codingame/monaco-vscode-d7f659f5-da33-5ea8-a3b8-9b94f2cf5f33-common": "15.0.2"
18
+ "@codingame/monaco-vscode-039b5553-0838-562a-97c2-30d6e54a7b42-common": "16.0.0",
19
+ "@codingame/monaco-vscode-0f5ced28-abde-558b-8652-db8e7d4d64aa-common": "16.0.0",
20
+ "@codingame/monaco-vscode-10418ae3-ee63-5700-a757-89cbe6564ee4-common": "16.0.0",
21
+ "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.0",
22
+ "@codingame/monaco-vscode-3a00040f-b81b-50bc-88da-35f611c0bd1e-common": "16.0.0",
23
+ "@codingame/monaco-vscode-3e369455-cc41-54c6-86fb-8b7cd999a5da-common": "16.0.0",
24
+ "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.0",
25
+ "@codingame/monaco-vscode-5e324391-11e3-5ceb-93ee-938e4098e4ad-common": "16.0.0",
26
+ "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.0",
27
+ "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.0",
28
+ "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "16.0.0",
29
+ "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "16.0.0",
30
+ "@codingame/monaco-vscode-805e9c2f-56b6-5a43-8b5b-d2dc2d3805fc-common": "16.0.0",
31
+ "@codingame/monaco-vscode-8c844347-a703-5de1-9eeb-5e0c7f503a58-common": "16.0.0",
32
+ "@codingame/monaco-vscode-a2719803-af40-5ae9-a29f-8a2231c33056-common": "16.0.0",
33
+ "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "16.0.0",
34
+ "@codingame/monaco-vscode-api": "16.0.0",
35
+ "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.0",
36
+ "@codingame/monaco-vscode-d7f659f5-da33-5ea8-a3b8-9b94f2cf5f33-common": "16.0.0"
37
37
  },
38
38
  "main": "index.js",
39
39
  "module": "index.js",
@@ -42,6 +42,9 @@
42
42
  ".": {
43
43
  "default": "./index.js"
44
44
  },
45
+ "./vscode/*.css": {
46
+ "default": "./vscode/src/*.css"
47
+ },
45
48
  "./vscode/*": {
46
49
  "types": "./vscode/src/*.d.ts",
47
50
  "default": "./vscode/src/*.js"
@@ -122,6 +122,7 @@ export declare abstract class AbstractExtensionManagementService extends Commont
122
122
  protected abstract createInstallExtensionTask(manifest: IExtensionManifest, extension: URI | IGalleryExtension, options: InstallExtensionTaskOptions): IInstallExtensionTask;
123
123
  protected abstract createUninstallExtensionTask(extension: ILocalExtension, options: UninstallExtensionTaskOptions): IUninstallExtensionTask;
124
124
  protected abstract copyExtension(extension: ILocalExtension, fromProfileLocation: URI, toProfileLocation: URI, metadata?: Partial<Metadata>): Promise<ILocalExtension>;
125
+ protected abstract removeExtension(extension: ILocalExtension): Promise<void>;
125
126
  }
126
127
  export declare function toExtensionManagementError(error: Error, code?: ExtensionManagementErrorCode): ExtensionManagementError;
127
128
  export declare abstract class AbstractExtensionTask<T> {
@@ -32,7 +32,7 @@ let CommontExtensionManagementService = class CommontExtensionManagementService
32
32
  const allowedToInstall = this.allowedExtensionsService.isAllowed({ id: extension.identifier.id, publisherDisplayName: extension.publisherDisplayName });
33
33
  if (allowedToInstall !== true) {
34
34
  return (new MarkdownString(localize(
35
- 1714,
35
+ 1749,
36
36
  "This extension cannot be installed because {0}",
37
37
  allowedToInstall.value
38
38
  )));
@@ -40,12 +40,12 @@ let CommontExtensionManagementService = class CommontExtensionManagementService
40
40
  if (!(await this.isExtensionPlatformCompatible(extension))) {
41
41
  const learnLink = isWeb ? 'https://aka.ms/vscode-web-extensions-guide' : 'https://aka.ms/vscode-platform-specific-extensions';
42
42
  return (new MarkdownString(`${( localize(
43
- 1715,
43
+ 1750,
44
44
  "The '{0}' extension is not available in {1} for the {2}.",
45
45
  extension.displayName ?? extension.identifier.id,
46
46
  this.productService.nameLong,
47
47
  TargetPlatformToString(await this.getTargetPlatform())
48
- ))} [${( localize(1716, "Learn Why"))}](${learnLink})`));
48
+ ))} [${( localize(1751, "Learn Why"))}](${learnLink})`));
49
49
  }
50
50
  return true;
51
51
  }
@@ -110,7 +110,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
110
110
  }
111
111
  async installGalleryExtensions(extensions) {
112
112
  if (!this.galleryService.isEnabled()) {
113
- throw ( new ExtensionManagementError(( localize(1717, "Marketplace is not enabled")), ExtensionManagementErrorCode.NotAllowed));
113
+ throw ( new ExtensionManagementError(( localize(1752, "Marketplace is not enabled")), ExtensionManagementErrorCode.NotAllowed));
114
114
  }
115
115
  const results = [];
116
116
  const installableExtensions = [];
@@ -522,9 +522,9 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
522
522
  async checkAndGetCompatibleVersion(extension, sameVersion, installPreRelease, productVersion) {
523
523
  let compatibleExtension;
524
524
  const extensionsControlManifest = await this.getExtensionsControlManifest();
525
- if (isMalicious(extension.identifier, extensionsControlManifest)) {
525
+ if (isMalicious(extension.identifier, extensionsControlManifest.malicious)) {
526
526
  throw ( new ExtensionManagementError(( localize(
527
- 1718,
527
+ 1753,
528
528
  "Can't install '{0}' extension since it was reported to be problematic.",
529
529
  extension.identifier.id
530
530
  )), ExtensionManagementErrorCode.Malicious));
@@ -535,7 +535,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
535
535
  compatibleExtension = (await this.galleryService.getExtensions([{ id: deprecationInfo.extension.id, preRelease: deprecationInfo.extension.preRelease }], { targetPlatform: await this.getTargetPlatform(), compatible: true, productVersion }, CancellationToken.None))[0];
536
536
  if (!compatibleExtension) {
537
537
  throw ( new ExtensionManagementError(( localize(
538
- 1719,
538
+ 1754,
539
539
  "Can't install '{0}' extension since it was deprecated and the replacement extension '{1}' can't be found.",
540
540
  extension.identifier.id,
541
541
  deprecationInfo.extension.id
@@ -546,7 +546,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
546
546
  if ((await this.canInstall(extension)) !== true) {
547
547
  const targetPlatform = await this.getTargetPlatform();
548
548
  throw ( new ExtensionManagementError(( localize(
549
- 1715,
549
+ 1750,
550
550
  "The '{0}' extension is not available in {1} for the {2}.",
551
551
  extension.identifier.id,
552
552
  this.productService.nameLong,
@@ -558,7 +558,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
558
558
  const incompatibleApiProposalsMessages = [];
559
559
  if (!areApiProposalsCompatible(extension.properties.enabledApiProposals ?? [], incompatibleApiProposalsMessages)) {
560
560
  throw ( new ExtensionManagementError(( localize(
561
- 1720,
561
+ 1755,
562
562
  "Can't install '{0}' extension. {1}",
563
563
  extension.displayName ?? extension.identifier.id,
564
564
  incompatibleApiProposalsMessages[0]
@@ -566,13 +566,13 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
566
566
  }
567
567
  if (!installPreRelease && extension.properties.isPreReleaseVersion && (await this.galleryService.getExtensions([extension.identifier], CancellationToken.None))[0]) {
568
568
  throw ( new ExtensionManagementError(( localize(
569
- 1721,
569
+ 1756,
570
570
  "Can't install release version of '{0}' extension because it has no release version.",
571
571
  extension.displayName ?? extension.identifier.id
572
572
  )), ExtensionManagementErrorCode.ReleaseVersionNotFound));
573
573
  }
574
574
  throw ( new ExtensionManagementError(( localize(
575
- 1722,
575
+ 1757,
576
576
  "Can't install '{0}' extension because it is not compatible with the current version of {1} (version {2}).",
577
577
  extension.identifier.id,
578
578
  this.productService.nameLong,
@@ -637,7 +637,15 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
637
637
  const allTasks = [];
638
638
  const processedTasks = [];
639
639
  const alreadyRequestedUninstalls = [];
640
+ const extensionsToRemove = [];
640
641
  const installedExtensionsMap = ( new ResourceMap());
642
+ const getInstalledExtensions = async (profileLocation) => {
643
+ let installed = installedExtensionsMap.get(profileLocation);
644
+ if (!installed) {
645
+ installedExtensionsMap.set(profileLocation, installed = await this.getInstalled(ExtensionType.User, profileLocation));
646
+ }
647
+ return installed;
648
+ };
641
649
  for (const { extension, options } of extensions) {
642
650
  const uninstallOptions = {
643
651
  ...options,
@@ -651,13 +659,31 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
651
659
  else {
652
660
  allTasks.push(createUninstallExtensionTask(extension, uninstallOptions));
653
661
  }
662
+ if (uninstallOptions.remove) {
663
+ extensionsToRemove.push(extension);
664
+ for (const profile of this.userDataProfilesService.profiles) {
665
+ if (this.uriIdentityService.extUri.isEqual(profile.extensionsResource, uninstallOptions.profileLocation)) {
666
+ continue;
667
+ }
668
+ const installed = await getInstalledExtensions(profile.extensionsResource);
669
+ const profileExtension = installed.find(e => areSameExtensions(e.identifier, extension.identifier));
670
+ if (profileExtension) {
671
+ const uninstallOptionsWithProfile = { ...uninstallOptions, profileLocation: profile.extensionsResource };
672
+ const uninstallExtensionTask = this.uninstallingExtensions.get(getUninstallExtensionTaskKey(profileExtension, uninstallOptionsWithProfile));
673
+ if (uninstallExtensionTask) {
674
+ this.logService.info('Extensions is already requested to uninstall', profileExtension.identifier.id);
675
+ alreadyRequestedUninstalls.push(uninstallExtensionTask.waitUntilTaskIsFinished());
676
+ }
677
+ else {
678
+ allTasks.push(createUninstallExtensionTask(profileExtension, uninstallOptionsWithProfile));
679
+ }
680
+ }
681
+ }
682
+ }
654
683
  }
655
684
  try {
656
685
  for (const task of allTasks.slice(0)) {
657
- let installed = installedExtensionsMap.get(task.options.profileLocation);
658
- if (!installed) {
659
- installedExtensionsMap.set(task.options.profileLocation, installed = await this.getInstalled(ExtensionType.User, task.options.profileLocation));
660
- }
686
+ const installed = await getInstalledExtensions(task.options.profileLocation);
661
687
  if (task.options.donotIncludePack) {
662
688
  this.logService.info('Uninstalling the extension without including packed extension', `${task.extension.identifier.id}@${task.extension.manifest.version}`);
663
689
  }
@@ -707,6 +733,9 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
707
733
  for (const task of allTasks) {
708
734
  postUninstallExtension(task.extension, task.options);
709
735
  }
736
+ if (extensionsToRemove.length) {
737
+ await this.joinAllSettled(( extensionsToRemove.map(extension => this.removeExtension(extension))));
738
+ }
710
739
  }
711
740
  catch (e) {
712
741
  const error = toExtensionManagementError(e);
@@ -746,7 +775,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
746
775
  if (extensionToUninstall === dependingExtension) {
747
776
  if (dependents.length === 1) {
748
777
  return localize(
749
- 1723,
778
+ 1758,
750
779
  "Cannot uninstall '{0}' extension. '{1}' extension depends on this.",
751
780
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
752
781
  dependents[0].manifest.displayName || dependents[0].manifest.name
@@ -754,7 +783,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
754
783
  }
755
784
  if (dependents.length === 2) {
756
785
  return localize(
757
- 1724,
786
+ 1759,
758
787
  "Cannot uninstall '{0}' extension. '{1}' and '{2}' extensions depend on this.",
759
788
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
760
789
  dependents[0].manifest.displayName || dependents[0].manifest.name,
@@ -762,7 +791,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
762
791
  );
763
792
  }
764
793
  return localize(
765
- 1725,
794
+ 1760,
766
795
  "Cannot uninstall '{0}' extension. '{1}', '{2}' and other extension depend on this.",
767
796
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
768
797
  dependents[0].manifest.displayName || dependents[0].manifest.name,
@@ -771,7 +800,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
771
800
  }
772
801
  if (dependents.length === 1) {
773
802
  return localize(
774
- 1726,
803
+ 1761,
775
804
  "Cannot uninstall '{0}' extension . It includes uninstalling '{1}' extension and '{2}' extension depends on this.",
776
805
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
777
806
  dependingExtension.manifest.displayName
@@ -781,7 +810,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
781
810
  }
782
811
  if (dependents.length === 2) {
783
812
  return localize(
784
- 1727,
813
+ 1762,
785
814
  "Cannot uninstall '{0}' extension. It includes uninstalling '{1}' extension and '{2}' and '{3}' extensions depend on this.",
786
815
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
787
816
  dependingExtension.manifest.displayName
@@ -791,7 +820,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
791
820
  );
792
821
  }
793
822
  return localize(
794
- 1728,
823
+ 1763,
795
824
  "Cannot uninstall '{0}' extension. It includes uninstalling '{1}' extension and '{2}', '{3}' and other extensions depend on this.",
796
825
  extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
797
826
  dependingExtension.manifest.displayName
@@ -80,14 +80,14 @@ let AllowedExtensionsService = class AllowedExtensionsService extends Disposable
80
80
  `command:workbench.action.openSettings?${encodeURIComponent(JSON.stringify({ query: `@id:${AllowedExtensionsConfigKey}` }))}`
81
81
  )).toString());
82
82
  const extensionValue = this._allowedExtensionsConfigValue[id];
83
- const extensionReason = ( new MarkdownString(( localize(1729, "it is not in the [allowed list]({0})", settingsCommandLink))));
83
+ const extensionReason = ( new MarkdownString(( localize(1764, "it is not in the [allowed list]({0})", settingsCommandLink))));
84
84
  if (!isUndefined(extensionValue)) {
85
85
  if (isBoolean(extensionValue)) {
86
86
  return extensionValue ? true : extensionReason;
87
87
  }
88
88
  if (extensionValue === 'stable' && prerelease) {
89
89
  return (new MarkdownString(localize(
90
- 1730,
90
+ 1765,
91
91
  "the pre-release versions of this extension are not in the [allowed list]({0})",
92
92
  settingsCommandLink
93
93
  )));
@@ -107,7 +107,7 @@ let AllowedExtensionsService = class AllowedExtensionsService extends Disposable
107
107
  return false;
108
108
  }))) {
109
109
  return (new MarkdownString(localize(
110
- 1731,
110
+ 1766,
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
- 1732,
123
+ 1767,
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
- 1733,
131
+ 1768,
132
132
  "the pre-release versions from this publisher are not in the [allowed list]({1})",
133
133
  publisherKey,
134
134
  settingsCommandLink
@@ -0,0 +1,13 @@
1
+ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
2
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
+ import { IProductService } from "@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service";
4
+ import { IExtensionGalleryManifest } from "@codingame/monaco-vscode-d7f659f5-da33-5ea8-a3b8-9b94f2cf5f33-common/vscode/vs/platform/extensionManagement/common/extensionGalleryManifest";
5
+ import { IExtensionGalleryManifestService } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionGalleryManifest.service";
6
+ export declare class ExtensionGalleryManifestService extends Disposable implements IExtensionGalleryManifestService {
7
+ protected readonly productService: IProductService;
8
+ readonly _serviceBrand: undefined;
9
+ readonly onDidChangeExtensionGalleryManifest: Event<any>;
10
+ constructor(productService: IProductService);
11
+ isEnabled(): boolean;
12
+ getExtensionGalleryManifest(): Promise<IExtensionGalleryManifest | null>;
13
+ }
@@ -0,0 +1,209 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
4
+ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
+ import { IProductService } from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service';
6
+ import { ExtensionGalleryResourceType, Flag } from '@codingame/monaco-vscode-d7f659f5-da33-5ea8-a3b8-9b94f2cf5f33-common/vscode/vs/platform/extensionManagement/common/extensionGalleryManifest';
7
+ import { FilterType, SortBy } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionManagement';
8
+
9
+ let ExtensionGalleryManifestService = class ExtensionGalleryManifestService extends Disposable {
10
+ constructor(productService) {
11
+ super();
12
+ this.productService = productService;
13
+ this.onDidChangeExtensionGalleryManifest = Event.None;
14
+ }
15
+ isEnabled() {
16
+ return !!this.productService.extensionsGallery?.serviceUrl;
17
+ }
18
+ async getExtensionGalleryManifest() {
19
+ const extensionsGallery = this.productService.extensionsGallery;
20
+ if (!extensionsGallery?.serviceUrl) {
21
+ return null;
22
+ }
23
+ const resources = [
24
+ {
25
+ id: `${extensionsGallery.serviceUrl}/extensionquery`,
26
+ type: ExtensionGalleryResourceType.ExtensionQueryService
27
+ },
28
+ {
29
+ id: `${extensionsGallery.serviceUrl}/vscode/{publisher}/{name}/latest`,
30
+ type: ExtensionGalleryResourceType.ExtensionLatestVersionUri
31
+ },
32
+ {
33
+ id: `${extensionsGallery.serviceUrl}/publishers/{publisher}/extensions/{name}/{version}/stats?statType={statTypeName}`,
34
+ type: ExtensionGalleryResourceType.ExtensionStatisticsUri
35
+ },
36
+ {
37
+ id: `${extensionsGallery.serviceUrl}/itemName/{publisher}.{name}/version/{version}/statType/{statTypeValue}/vscodewebextension`,
38
+ type: ExtensionGalleryResourceType.WebExtensionStatisticsUri
39
+ },
40
+ ];
41
+ if (extensionsGallery.publisherUrl) {
42
+ resources.push({
43
+ id: `${extensionsGallery.publisherUrl}/{publisher}`,
44
+ type: ExtensionGalleryResourceType.PublisherViewUri
45
+ });
46
+ }
47
+ if (extensionsGallery.itemUrl) {
48
+ resources.push({
49
+ id: `${extensionsGallery.itemUrl}/?itemName={publisher}.{name}`,
50
+ type: ExtensionGalleryResourceType.ExtensionDetailsViewUri
51
+ });
52
+ resources.push({
53
+ id: `${extensionsGallery.itemUrl}/?itemName={publisher}.{name}&ssr=false#review-details`,
54
+ type: ExtensionGalleryResourceType.ExtensionRatingViewUri
55
+ });
56
+ }
57
+ if (extensionsGallery.resourceUrlTemplate) {
58
+ resources.push({
59
+ id: extensionsGallery.resourceUrlTemplate,
60
+ type: ExtensionGalleryResourceType.ExtensionResourceUri
61
+ });
62
+ }
63
+ const filtering = [
64
+ {
65
+ name: FilterType.Tag,
66
+ value: 1,
67
+ },
68
+ {
69
+ name: FilterType.ExtensionId,
70
+ value: 4,
71
+ },
72
+ {
73
+ name: FilterType.Category,
74
+ value: 5,
75
+ },
76
+ {
77
+ name: FilterType.ExtensionName,
78
+ value: 7,
79
+ },
80
+ {
81
+ name: FilterType.Target,
82
+ value: 8,
83
+ },
84
+ {
85
+ name: FilterType.Featured,
86
+ value: 9,
87
+ },
88
+ {
89
+ name: FilterType.SearchText,
90
+ value: 10,
91
+ },
92
+ {
93
+ name: FilterType.ExcludeWithFlags,
94
+ value: 12,
95
+ },
96
+ ];
97
+ const sorting = [
98
+ {
99
+ name: SortBy.NoneOrRelevance,
100
+ value: 0,
101
+ },
102
+ {
103
+ name: SortBy.LastUpdatedDate,
104
+ value: 1,
105
+ },
106
+ {
107
+ name: SortBy.Title,
108
+ value: 2,
109
+ },
110
+ {
111
+ name: SortBy.PublisherName,
112
+ value: 3,
113
+ },
114
+ {
115
+ name: SortBy.InstallCount,
116
+ value: 4,
117
+ },
118
+ {
119
+ name: SortBy.AverageRating,
120
+ value: 6,
121
+ },
122
+ {
123
+ name: SortBy.PublishedDate,
124
+ value: 10,
125
+ },
126
+ {
127
+ name: SortBy.WeightedRating,
128
+ value: 12,
129
+ },
130
+ ];
131
+ const flags = [
132
+ {
133
+ name: Flag.None,
134
+ value: 0x0,
135
+ },
136
+ {
137
+ name: Flag.IncludeVersions,
138
+ value: 0x1,
139
+ },
140
+ {
141
+ name: Flag.IncludeFiles,
142
+ value: 0x2,
143
+ },
144
+ {
145
+ name: Flag.IncludeCategoryAndTags,
146
+ value: 0x4,
147
+ },
148
+ {
149
+ name: Flag.IncludeSharedAccounts,
150
+ value: 0x8,
151
+ },
152
+ {
153
+ name: Flag.IncludeVersionProperties,
154
+ value: 0x10,
155
+ },
156
+ {
157
+ name: Flag.ExcludeNonValidated,
158
+ value: 0x20,
159
+ },
160
+ {
161
+ name: Flag.IncludeInstallationTargets,
162
+ value: 0x40,
163
+ },
164
+ {
165
+ name: Flag.IncludeAssetUri,
166
+ value: 0x80,
167
+ },
168
+ {
169
+ name: Flag.IncludeStatistics,
170
+ value: 0x100,
171
+ },
172
+ {
173
+ name: Flag.IncludeLatestVersionOnly,
174
+ value: 0x200,
175
+ },
176
+ {
177
+ name: Flag.Unpublished,
178
+ value: 0x1000,
179
+ },
180
+ {
181
+ name: Flag.IncludeNameConflictInfo,
182
+ value: 0x8000,
183
+ },
184
+ {
185
+ name: Flag.IncludeLatestPrereleaseAndStableVersionOnly,
186
+ value: 0x10000,
187
+ },
188
+ ];
189
+ return {
190
+ version: '',
191
+ resources,
192
+ capabilities: {
193
+ extensionQuery: {
194
+ filtering,
195
+ sorting,
196
+ flags,
197
+ },
198
+ signing: {
199
+ allRepositorySigned: true,
200
+ }
201
+ }
202
+ };
203
+ }
204
+ };
205
+ ExtensionGalleryManifestService = ( __decorate([
206
+ ( __param(0, IProductService))
207
+ ], ExtensionGalleryManifestService));
208
+
209
+ export { ExtensionGalleryManifestService };