@codingame/monaco-vscode-extensions-service-override 21.0.1 → 21.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -15,7 +15,7 @@ import { IWebExtensionsScannerService, IWorkbenchExtensionEnablementService, IWo
15
15
  import { IExtensionManifestPropertiesService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionManifestPropertiesService.service";
16
16
  import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
17
17
  import { IProductService } from "@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service";
18
- import { IBrowserWorkbenchEnvironmentService } from "@codingame/monaco-vscode-34a0ffd3-b9f5-5699-b43b-38af5732f38a-common/vscode/vs/workbench/services/environment/browser/environmentService.service";
18
+ import { IBrowserWorkbenchEnvironmentService } from "@codingame/monaco-vscode-4bf376c2-03c7-58cb-8303-c67aeefa3d3d-common/vscode/vs/workbench/services/environment/browser/environmentService.service";
19
19
  import type { IEditorOverrideServices } from "@codingame/monaco-vscode-api/vscode/vs/editor/standalone/browser/standaloneServices";
20
20
  import { IUserDataInitializationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/userData/browser/userDataInit.service";
21
21
  import { ExtensionService } from "./vscode/src/vs/workbench/services/extensions/browser/extensionService.js";
@@ -23,18 +23,24 @@ import { ExtensionHostKind } from "@codingame/monaco-vscode-api/vscode/vs/workbe
23
23
  import { IUserDataProfileService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service";
24
24
  import { IWorkspaceTrustManagementService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspaceTrust.service";
25
25
  import { IRemoteExplorerService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/remote/common/remoteExplorerService.service";
26
+ import { IExtensionResourceLoaderService } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensionResourceLoader/common/extensionResourceLoader.service";
26
27
  import type { LocalExtensionHost } from "vscode/localExtensionHost";
28
+ import { IBuiltinExtensionsScannerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions.service";
29
+ import { ExtensionManifestTranslator } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionsScannerService";
27
30
  export interface WorkerConfig {
28
31
  url: string;
29
32
  options?: WorkerOptions;
30
33
  }
31
34
  declare function setLocalExtensionHost(_localExtensionHost: typeof LocalExtensionHost): void;
32
- export interface IExtensionWithExtHostKind extends IExtension {
33
- extHostKind?: ExtensionHostKind;
34
- }
35
35
  export declare class ExtensionServiceOverride extends ExtensionService implements IExtensionService {
36
36
  constructor(workerConfig: WorkerConfig, instantiationService: IInstantiationService, notificationService: INotificationService, browserEnvironmentService: IBrowserWorkbenchEnvironmentService, telemetryService: ITelemetryService, extensionEnablementService: IWorkbenchExtensionEnablementService, fileService: IFileService, productService: IProductService, extensionManagementService: IWorkbenchExtensionManagementService, contextService: IWorkspaceContextService, configurationService: IConfigurationService, extensionManifestPropertiesService: IExtensionManifestPropertiesService, webExtensionsScannerService: IWebExtensionsScannerService, logService: ILogService, remoteAgentService: IRemoteAgentService, remoteExtensionsScannerService: IRemoteExtensionsScannerService, lifecycleService: ILifecycleService, remoteAuthorityResolverService: IRemoteAuthorityResolverService, userDataInitializationService: IUserDataInitializationService, userDataProfileService: IUserDataProfileService, workspaceTrustManagementService: IWorkspaceTrustManagementService, remoteExplorerService: IRemoteExplorerService, dialogService: IDialogService);
37
- deltaExtensions(toAdd: IExtensionWithExtHostKind[], toRemove: IExtension[]): Promise<void>;
37
+ deltaExtensions(toAdd: IExtension[], toRemove: IExtension[]): Promise<void>;
38
+ }
39
+ export declare class CustomBuiltinExtensionsScannerService extends ExtensionManifestTranslator implements IBuiltinExtensionsScannerService {
40
+ readonly _serviceBrand: undefined;
41
+ private readonly builtinExtensionsPromises;
42
+ constructor(fileService: IFileService, extensionResourceLoaderService: IExtensionResourceLoaderService, logService: ILogService);
43
+ scanBuiltinExtensions(): Promise<IExtension[]>;
38
44
  }
39
45
  export default function getServiceOverride(workerConfig?: WorkerConfig, _iframeAlternateDomain?: string): IEditorOverrideServices;
40
46
  export { ExtensionHostKind, setLocalExtensionHost };
package/index.js CHANGED
@@ -20,7 +20,7 @@ import { ExtensionManifestPropertiesService } from '@codingame/monaco-vscode-571
20
20
  import { IExtensionManifestPropertiesService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionManifestPropertiesService.service';
21
21
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
22
22
  import { IProductService } from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service';
23
- import { IBrowserWorkbenchEnvironmentService } from '@codingame/monaco-vscode-34a0ffd3-b9f5-5699-b43b-38af5732f38a-common/vscode/vs/workbench/services/environment/browser/environmentService.service';
23
+ import { IBrowserWorkbenchEnvironmentService } from '@codingame/monaco-vscode-4bf376c2-03c7-58cb-8303-c67aeefa3d3d-common/vscode/vs/workbench/services/environment/browser/environmentService.service';
24
24
  import { SyncDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/descriptors';
25
25
  import { IUserDataInitializationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/userData/browser/userDataInit.service';
26
26
  import { ExtensionsProposedApi } from './vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js';
@@ -31,7 +31,7 @@ import './vscode/src/vs/workbench/services/extensions/common/extensionRunningLoc
31
31
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/charCode';
32
32
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/marshallingIds';
33
33
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
34
- import '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
34
+ import { language } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
35
35
  import { WebWorkerExtensionHost } from './vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js';
36
36
  import { IUserDataProfileService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service';
37
37
  import { IWorkspaceTrustManagementService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspaceTrust.service';
@@ -44,7 +44,11 @@ import { IExtensionBisectService } from '@codingame/monaco-vscode-api/vscode/vs/
44
44
  import { changeUrlDomain } from '@codingame/monaco-vscode-7f39b6f1-3542-5430-8760-0f404d7a7cee-common/service-override/tools/url';
45
45
  import { CustomSchemas } from '@codingame/monaco-vscode-files-service-override';
46
46
  import { registerAssets } from '@codingame/monaco-vscode-api/assets';
47
- import { getForcedExtensionHostKind } from '@codingame/monaco-vscode-api/extensions';
47
+ import { getForcedExtensionHostKind, getBuiltinExtensions } from '@codingame/monaco-vscode-api/extensions';
48
+ import { WebExtensionsScannerService } from './vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js';
49
+ import { IBuiltinExtensionsScannerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions.service';
50
+ import { ExtensionManifestTranslator } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionsScannerService';
51
+ import { getBuiltInExtensionTranslationsUris } from '@codingame/monaco-vscode-api/l10n';
48
52
  import './vscode/src/vs/workbench/api/browser/mainThreadLocalization.js';
49
53
  import './vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js';
50
54
  import './vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js';
@@ -197,7 +201,7 @@ let ExtensionServiceOverride = class ExtensionServiceOverride extends ExtensionS
197
201
  constructor(workerConfig, instantiationService, notificationService, browserEnvironmentService, telemetryService, extensionEnablementService, fileService, productService, extensionManagementService, contextService, configurationService, extensionManifestPropertiesService, webExtensionsScannerService, logService, remoteAgentService, remoteExtensionsScannerService, lifecycleService, remoteAuthorityResolverService, userDataInitializationService, userDataProfileService, workspaceTrustManagementService, remoteExplorerService, dialogService) {
198
202
  const extensionsProposedApi = instantiationService.createInstance(ExtensionsProposedApi);
199
203
  const extensionHostFactory = new BrowserExtensionHostFactoryOverride(workerConfig, extensionsProposedApi, async () => await this._scanWebExtensions(), () => this._getExtensionRegistrySnapshotWhenReady(), instantiationService, remoteAgentService, remoteAuthorityResolverService, extensionEnablementService, logService);
200
- super(extensionsProposedApi, extensionHostFactory, new LocalBrowserExtensionHostKindPicker(workerConfig != null
204
+ super({ hasLocalProcess: true, allowRemoteExtensionsInLocalWebWorker: true }, extensionsProposedApi, extensionHostFactory, new LocalBrowserExtensionHostKindPicker(workerConfig != null
201
205
  ? [
202
206
  ExtensionHostKind.LocalWebWorker,
203
207
  ExtensionHostKind.LocalProcess,
@@ -242,6 +246,32 @@ class ExtensionResourceLoaderServiceOverride extends ExtensionResourceLoaderServ
242
246
  return await super.readExtensionResource(uri);
243
247
  }
244
248
  }
249
+ let CustomBuiltinExtensionsScannerService = class CustomBuiltinExtensionsScannerService extends ExtensionManifestTranslator {
250
+ constructor(fileService, extensionResourceLoaderService, logService) {
251
+ super(extensionResourceLoaderService, fileService, logService);
252
+ this.builtinExtensionsPromises = [];
253
+ const nlsConfiguration = {
254
+ devMode: false,
255
+ language: language,
256
+ pseudo: language === 'pseudo',
257
+ translations: getBuiltInExtensionTranslationsUris(language) ?? {}
258
+ };
259
+ this.builtinExtensionsPromises = getBuiltinExtensions().map(async (e) => {
260
+ return {
261
+ ...e,
262
+ manifest: await this.translateManifest(e.location, e.manifest, nlsConfiguration)
263
+ };
264
+ });
265
+ }
266
+ async scanBuiltinExtensions() {
267
+ return [...(await Promise.all(this.builtinExtensionsPromises))];
268
+ }
269
+ };
270
+ CustomBuiltinExtensionsScannerService = __decorate([
271
+ __param(0, IFileService),
272
+ __param(1, IExtensionResourceLoaderService),
273
+ __param(2, ILogService)
274
+ ], CustomBuiltinExtensionsScannerService);
245
275
  let iframeAlternateDomain;
246
276
  registerAssets({
247
277
  'vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html': () => changeUrlDomain(new URL('./vscode/src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html', import.meta.url).href, iframeAlternateDomain)
@@ -260,8 +290,10 @@ function getServiceOverride(workerConfig, _iframeAlternateDomain) {
260
290
  [IExtensionService.toString()]: new SyncDescriptor(ExtensionServiceOverride, [_workerConfig], false),
261
291
  [IExtensionManifestPropertiesService.toString()]: new SyncDescriptor(ExtensionManifestPropertiesService, [], true),
262
292
  [IExtensionResourceLoaderService.toString()]: new SyncDescriptor(ExtensionResourceLoaderServiceOverride, [], true),
263
- [IExtensionBisectService.toString()]: new SyncDescriptor(ExtensionBisectService, [], true)
293
+ [IExtensionBisectService.toString()]: new SyncDescriptor(ExtensionBisectService, [], true),
294
+ [IWebExtensionsScannerService.toString()]: new SyncDescriptor(WebExtensionsScannerService, [], true),
295
+ [IBuiltinExtensionsScannerService.toString()]: new SyncDescriptor(CustomBuiltinExtensionsScannerService, [], true)
264
296
  };
265
297
  }
266
298
 
267
- export { ExtensionServiceOverride, getServiceOverride as default, setLocalExtensionHost };
299
+ export { CustomBuiltinExtensionsScannerService, ExtensionServiceOverride, getServiceOverride as default, setLocalExtensionHost };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-extensions-service-override",
3
- "version": "21.0.1",
3
+ "version": "21.1.0",
4
4
  "private": false,
5
5
  "description": "VSCode public API plugged on the monaco editor - extensions service-override",
6
6
  "keywords": [],
@@ -15,33 +15,35 @@
15
15
  },
16
16
  "type": "module",
17
17
  "dependencies": {
18
- "@codingame/monaco-vscode-05a2a821-e4de-5941-b7f9-bbf01c09f229-common": "21.0.1",
19
- "@codingame/monaco-vscode-0af61f78-dfc5-57ba-8d32-66268c8de38d-common": "21.0.1",
20
- "@codingame/monaco-vscode-23b6fb38-5e58-5886-b34b-27abc4f5df02-common": "21.0.1",
21
- "@codingame/monaco-vscode-256d5b78-0649-50e9-8354-2807f95f68f4-common": "21.0.1",
22
- "@codingame/monaco-vscode-2a94c04a-b85b-5669-b06b-89c1bfa11cb9-common": "21.0.1",
23
- "@codingame/monaco-vscode-34a0ffd3-b9f5-5699-b43b-38af5732f38a-common": "21.0.1",
24
- "@codingame/monaco-vscode-4a3ac544-9a61-534c-88df-756262793ef7-common": "21.0.1",
25
- "@codingame/monaco-vscode-4dda7789-5a25-5e8b-b2de-c2f11b1b96e5-common": "21.0.1",
26
- "@codingame/monaco-vscode-571c8352-7953-5038-9f09-e03bb6219a0e-common": "21.0.1",
27
- "@codingame/monaco-vscode-5e2c24a1-3217-55e8-bc90-521eaf7df5a6-common": "21.0.1",
28
- "@codingame/monaco-vscode-622c0cca-d5fa-59b6-b730-0715afcf93ee-common": "21.0.1",
29
- "@codingame/monaco-vscode-670aae94-7f88-54d7-90ea-6fcbef423557-common": "21.0.1",
30
- "@codingame/monaco-vscode-6845754f-e617-5ed9-8aaa-6ca3653a9532-common": "21.0.1",
31
- "@codingame/monaco-vscode-71c8dbff-4c98-552f-aef0-e72b00fdcfc0-common": "21.0.1",
32
- "@codingame/monaco-vscode-7f39b6f1-3542-5430-8760-0f404d7a7cee-common": "21.0.1",
33
- "@codingame/monaco-vscode-8ccb7637-50ea-5359-97bf-00015d7fe567-common": "21.0.1",
34
- "@codingame/monaco-vscode-a654b07e-8806-5425-b124-18f03ba8e11a-common": "21.0.1",
35
- "@codingame/monaco-vscode-a9da9abe-278d-5ce6-9418-99c7c07c5c37-common": "21.0.1",
36
- "@codingame/monaco-vscode-api": "21.0.1",
37
- "@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common": "21.0.1",
38
- "@codingame/monaco-vscode-bba55be6-41a2-50cd-a3cc-8bafa35bfa89-common": "21.0.1",
39
- "@codingame/monaco-vscode-bf94ddb5-e436-506a-9763-5ab86b642508-common": "21.0.1",
40
- "@codingame/monaco-vscode-caeb744c-8e3f-5c11-80fb-0f057d24d544-common": "21.0.1",
41
- "@codingame/monaco-vscode-d0569cfb-4706-5ad6-b0b0-5115ad8685db-common": "21.0.1",
42
- "@codingame/monaco-vscode-eb7d5efd-2e60-59f8-9ba4-9a8ae8cb2957-common": "21.0.1",
43
- "@codingame/monaco-vscode-eba0b9b3-174c-5dae-9867-a37810ca1808-common": "21.0.1",
44
- "@codingame/monaco-vscode-files-service-override": "21.0.1"
18
+ "@codingame/monaco-vscode-05a2a821-e4de-5941-b7f9-bbf01c09f229-common": "21.1.0",
19
+ "@codingame/monaco-vscode-0af61f78-dfc5-57ba-8d32-66268c8de38d-common": "21.1.0",
20
+ "@codingame/monaco-vscode-23b6fb38-5e58-5886-b34b-27abc4f5df02-common": "21.1.0",
21
+ "@codingame/monaco-vscode-249dc928-1da3-51c1-82d0-45e0ba9d08a1-common": "21.1.0",
22
+ "@codingame/monaco-vscode-256d5b78-0649-50e9-8354-2807f95f68f4-common": "21.1.0",
23
+ "@codingame/monaco-vscode-2a94c04a-b85b-5669-b06b-89c1bfa11cb9-common": "21.1.0",
24
+ "@codingame/monaco-vscode-4a3ac544-9a61-534c-88df-756262793ef7-common": "21.1.0",
25
+ "@codingame/monaco-vscode-4bf376c2-03c7-58cb-8303-c67aeefa3d3d-common": "21.1.0",
26
+ "@codingame/monaco-vscode-4dda7789-5a25-5e8b-b2de-c2f11b1b96e5-common": "21.1.0",
27
+ "@codingame/monaco-vscode-571c8352-7953-5038-9f09-e03bb6219a0e-common": "21.1.0",
28
+ "@codingame/monaco-vscode-5e2c24a1-3217-55e8-bc90-521eaf7df5a6-common": "21.1.0",
29
+ "@codingame/monaco-vscode-622c0cca-d5fa-59b6-b730-0715afcf93ee-common": "21.1.0",
30
+ "@codingame/monaco-vscode-670aae94-7f88-54d7-90ea-6fcbef423557-common": "21.1.0",
31
+ "@codingame/monaco-vscode-6845754f-e617-5ed9-8aaa-6ca3653a9532-common": "21.1.0",
32
+ "@codingame/monaco-vscode-71c8dbff-4c98-552f-aef0-e72b00fdcfc0-common": "21.1.0",
33
+ "@codingame/monaco-vscode-7f39b6f1-3542-5430-8760-0f404d7a7cee-common": "21.1.0",
34
+ "@codingame/monaco-vscode-8ccb7637-50ea-5359-97bf-00015d7fe567-common": "21.1.0",
35
+ "@codingame/monaco-vscode-a654b07e-8806-5425-b124-18f03ba8e11a-common": "21.1.0",
36
+ "@codingame/monaco-vscode-a9da9abe-278d-5ce6-9418-99c7c07c5c37-common": "21.1.0",
37
+ "@codingame/monaco-vscode-api": "21.1.0",
38
+ "@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common": "21.1.0",
39
+ "@codingame/monaco-vscode-bba55be6-41a2-50cd-a3cc-8bafa35bfa89-common": "21.1.0",
40
+ "@codingame/monaco-vscode-bf94ddb5-e436-506a-9763-5ab86b642508-common": "21.1.0",
41
+ "@codingame/monaco-vscode-caeb744c-8e3f-5c11-80fb-0f057d24d544-common": "21.1.0",
42
+ "@codingame/monaco-vscode-d0569cfb-4706-5ad6-b0b0-5115ad8685db-common": "21.1.0",
43
+ "@codingame/monaco-vscode-eb7d5efd-2e60-59f8-9ba4-9a8ae8cb2957-common": "21.1.0",
44
+ "@codingame/monaco-vscode-eba0b9b3-174c-5dae-9867-a37810ca1808-common": "21.1.0",
45
+ "@codingame/monaco-vscode-f22e7e55-aee8-5b52-a6bc-950efd9f5890-common": "21.1.0",
46
+ "@codingame/monaco-vscode-files-service-override": "21.1.0"
45
47
  },
46
48
  "main": "index.js",
47
49
  "module": "index.js",
@@ -5,7 +5,7 @@ import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform
5
5
  import { IEnvironmentService } from "@codingame/monaco-vscode-api/vscode/vs/platform/environment/common/environment.service";
6
6
  import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
7
7
  import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
8
- import { AbstractExtensionResourceLoaderService } from "@codingame/monaco-vscode-571c8352-7953-5038-9f09-e03bb6219a0e-common/vscode/vs/platform/extensionResourceLoader/common/extensionResourceLoader";
8
+ import { AbstractExtensionResourceLoaderService } from "../common/extensionResourceLoader.js";
9
9
  import { IExtensionGalleryManifestService } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionGalleryManifest.service";
10
10
  export declare class ExtensionResourceLoaderService extends AbstractExtensionResourceLoaderService {
11
11
  readonly _serviceBrand: undefined;
@@ -8,7 +8,7 @@ import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform
8
8
  import { IEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/platform/environment/common/environment.service';
9
9
  import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
10
10
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
11
- import { AbstractExtensionResourceLoaderService } from '@codingame/monaco-vscode-571c8352-7953-5038-9f09-e03bb6219a0e-common/vscode/vs/platform/extensionResourceLoader/common/extensionResourceLoader';
11
+ import { AbstractExtensionResourceLoaderService } from '../common/extensionResourceLoader.js';
12
12
  import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
13
13
  import { IExtensionGalleryManifestService } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionGalleryManifest.service';
14
14
 
@@ -0,0 +1,42 @@
1
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
2
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
3
+ import { IEnvironmentService } from "@codingame/monaco-vscode-api/vscode/vs/platform/environment/common/environment.service";
4
+ import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
5
+ import { IProductService } from "@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service";
6
+ import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
7
+ import { TargetPlatform } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions";
8
+ import { IExtensionGalleryManifestService } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionGalleryManifest.service";
9
+ import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
10
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
11
+ import { IExtensionResourceLoaderService } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensionResourceLoader/common/extensionResourceLoader.service";
12
+ export declare function migratePlatformSpecificExtensionGalleryResourceURL(resource: URI, targetPlatform: TargetPlatform): URI | undefined;
13
+ export declare abstract class AbstractExtensionResourceLoaderService extends Disposable implements IExtensionResourceLoaderService {
14
+ protected readonly _fileService: IFileService;
15
+ private readonly _storageService;
16
+ private readonly _productService;
17
+ private readonly _environmentService;
18
+ private readonly _configurationService;
19
+ private readonly _extensionGalleryManifestService;
20
+ protected readonly _logService: ILogService;
21
+ readonly _serviceBrand: undefined;
22
+ private readonly _initPromise;
23
+ private _extensionGalleryResourceUrlTemplate;
24
+ private _extensionGalleryAuthority;
25
+ constructor(_fileService: IFileService, _storageService: IStorageService, _productService: IProductService, _environmentService: IEnvironmentService, _configurationService: IConfigurationService, _extensionGalleryManifestService: IExtensionGalleryManifestService, _logService: ILogService);
26
+ private _init;
27
+ private resolve;
28
+ supportsExtensionGalleryResources(): Promise<boolean>;
29
+ getExtensionGalleryResourceURL({ publisher, name, version, targetPlatform }: {
30
+ publisher: string;
31
+ name: string;
32
+ version: string;
33
+ targetPlatform?: TargetPlatform;
34
+ }, path?: string): Promise<URI | undefined>;
35
+ abstract readExtensionResource(uri: URI): Promise<string>;
36
+ isExtensionGalleryResource(uri: URI): Promise<boolean>;
37
+ protected getExtensionGalleryRequestHeaders(): Promise<Record<string, string>>;
38
+ private _serviceMachineIdPromise;
39
+ private _getServiceMachineId;
40
+ private _getExtensionGalleryAuthority;
41
+ protected _isWebExtensionResourceEndPoint(uri: URI): boolean;
42
+ }
@@ -0,0 +1,109 @@
1
+
2
+ import { isWeb } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
3
+ import { format2 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
4
+ import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
5
+ import { getServiceMachineId } from '@codingame/monaco-vscode-249dc928-1da3-51c1-82d0-45e0ba9d08a1-common/vscode/vs/platform/externalServices/common/serviceMachineId';
6
+ import { TelemetryLevel } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry';
7
+ import { supportsTelemetry, getTelemetryLevel } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetryUtils';
8
+ import { RemoteAuthorities } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
9
+ import { TargetPlatform } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions';
10
+ import { getExtensionGalleryManifestResourceUri, ExtensionGalleryResourceType } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionGalleryManifest';
11
+ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
12
+
13
+ const WEB_EXTENSION_RESOURCE_END_POINT_SEGMENT = '/web-extension-resource/';
14
+ function migratePlatformSpecificExtensionGalleryResourceURL(resource, targetPlatform) {
15
+ if (resource.query !== `target=${targetPlatform}`) {
16
+ return undefined;
17
+ }
18
+ const paths = resource.path.split('/');
19
+ if (!paths[3]) {
20
+ return undefined;
21
+ }
22
+ paths[3] = `${paths[3]}+${targetPlatform}`;
23
+ return resource.with({ query: null, path: paths.join('/') });
24
+ }
25
+ class AbstractExtensionResourceLoaderService extends Disposable {
26
+ constructor(_fileService, _storageService, _productService, _environmentService, _configurationService, _extensionGalleryManifestService, _logService) {
27
+ super();
28
+ this._fileService = _fileService;
29
+ this._storageService = _storageService;
30
+ this._productService = _productService;
31
+ this._environmentService = _environmentService;
32
+ this._configurationService = _configurationService;
33
+ this._extensionGalleryManifestService = _extensionGalleryManifestService;
34
+ this._logService = _logService;
35
+ this._initPromise = this._init();
36
+ }
37
+ async _init() {
38
+ try {
39
+ const manifest = await this._extensionGalleryManifestService.getExtensionGalleryManifest();
40
+ this.resolve(manifest);
41
+ this._register(this._extensionGalleryManifestService.onDidChangeExtensionGalleryManifest(() => this.resolve(manifest)));
42
+ }
43
+ catch (error) {
44
+ this._logService.error(error);
45
+ }
46
+ }
47
+ resolve(manifest) {
48
+ this._extensionGalleryResourceUrlTemplate = manifest ? getExtensionGalleryManifestResourceUri(manifest, ExtensionGalleryResourceType.ExtensionResourceUri) : undefined;
49
+ this._extensionGalleryAuthority = this._extensionGalleryResourceUrlTemplate ? this._getExtensionGalleryAuthority(( URI.parse(this._extensionGalleryResourceUrlTemplate))) : undefined;
50
+ }
51
+ async supportsExtensionGalleryResources() {
52
+ await this._initPromise;
53
+ return this._extensionGalleryResourceUrlTemplate !== undefined;
54
+ }
55
+ async getExtensionGalleryResourceURL({ publisher, name, version, targetPlatform }, path) {
56
+ await this._initPromise;
57
+ if (this._extensionGalleryResourceUrlTemplate) {
58
+ const uri = ( URI.parse(format2(this._extensionGalleryResourceUrlTemplate, {
59
+ publisher,
60
+ name,
61
+ version: targetPlatform !== undefined
62
+ && targetPlatform !== TargetPlatform.UNDEFINED
63
+ && targetPlatform !== TargetPlatform.UNKNOWN
64
+ && targetPlatform !== TargetPlatform.UNIVERSAL
65
+ ? `${version}+${targetPlatform}`
66
+ : version,
67
+ path: 'extension'
68
+ })));
69
+ return this._isWebExtensionResourceEndPoint(uri) ? uri.with({ scheme: RemoteAuthorities.getPreferredWebSchema() }) : uri;
70
+ }
71
+ return undefined;
72
+ }
73
+ async isExtensionGalleryResource(uri) {
74
+ await this._initPromise;
75
+ return !!this._extensionGalleryAuthority && this._extensionGalleryAuthority === this._getExtensionGalleryAuthority(uri);
76
+ }
77
+ async getExtensionGalleryRequestHeaders() {
78
+ const headers = {
79
+ 'X-Client-Name': `${this._productService.applicationName}${isWeb ? '-web' : ''}`,
80
+ 'X-Client-Version': this._productService.version
81
+ };
82
+ if (supportsTelemetry(this._productService, this._environmentService) && getTelemetryLevel(this._configurationService) === TelemetryLevel.USAGE) {
83
+ headers['X-Machine-Id'] = await this._getServiceMachineId();
84
+ }
85
+ if (this._productService.commit) {
86
+ headers['X-Client-Commit'] = this._productService.commit;
87
+ }
88
+ return headers;
89
+ }
90
+ _getServiceMachineId() {
91
+ if (!this._serviceMachineIdPromise) {
92
+ this._serviceMachineIdPromise = getServiceMachineId(this._environmentService, this._fileService, this._storageService);
93
+ }
94
+ return this._serviceMachineIdPromise;
95
+ }
96
+ _getExtensionGalleryAuthority(uri) {
97
+ if (this._isWebExtensionResourceEndPoint(uri)) {
98
+ return uri.authority;
99
+ }
100
+ const index = uri.authority.indexOf('.');
101
+ return index !== -1 ? uri.authority.substring(index + 1) : undefined;
102
+ }
103
+ _isWebExtensionResourceEndPoint(uri) {
104
+ const uriPath = uri.path, serverRootPath = RemoteAuthorities.getServerRootPath();
105
+ return uriPath.startsWith(serverRootPath) && uriPath.startsWith(WEB_EXTENSION_RESOURCE_END_POINT_SEGMENT, serverRootPath.length);
106
+ }
107
+ }
108
+
109
+ export { AbstractExtensionResourceLoaderService, migratePlatformSpecificExtensionGalleryResourceURL };
@@ -6,6 +6,7 @@ import { IAuthenticationService } from "@codingame/monaco-vscode-api/vscode/vs/w
6
6
  import { AuthenticationWWWAuthenticateRequest, MainThreadAuthenticationShape } from "@codingame/monaco-vscode-api/vscode/vs/workbench/api/common/extHost.protocol";
7
7
  import { IDialogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service";
8
8
  import { INotificationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service";
9
+ import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service";
9
10
  import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
10
11
  import { IAuthenticationAccessService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/authentication/browser/authenticationAccessService.service";
11
12
  import { IAuthenticationUsageService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/authentication/browser/authenticationUsageService.service";
@@ -37,6 +38,7 @@ export declare class MainThreadAuthentication extends Disposable implements Main
37
38
  private readonly authenticationUsageService;
38
39
  private readonly dialogService;
39
40
  private readonly notificationService;
41
+ private readonly extensionService;
40
42
  private readonly telemetryService;
41
43
  private readonly openerService;
42
44
  private readonly logService;
@@ -48,9 +50,10 @@ export declare class MainThreadAuthentication extends Disposable implements Main
48
50
  private readonly _registrations;
49
51
  private _sentProviderUsageEvents;
50
52
  private _suppressUnregisterEvent;
51
- constructor(extHostContext: IExtHostContext, authenticationService: IAuthenticationService, authenticationExtensionsService: IAuthenticationExtensionsService, authenticationAccessService: IAuthenticationAccessService, authenticationUsageService: IAuthenticationUsageService, dialogService: IDialogService, notificationService: INotificationService, telemetryService: ITelemetryService, openerService: IOpenerService, logService: ILogService, urlService: IURLService, dynamicAuthProviderStorageService: IDynamicAuthenticationProviderStorageService, clipboardService: IClipboardService, quickInputService: IQuickInputService);
53
+ constructor(extHostContext: IExtHostContext, authenticationService: IAuthenticationService, authenticationExtensionsService: IAuthenticationExtensionsService, authenticationAccessService: IAuthenticationAccessService, authenticationUsageService: IAuthenticationUsageService, dialogService: IDialogService, notificationService: INotificationService, extensionService: IExtensionService, telemetryService: ITelemetryService, openerService: IOpenerService, logService: ILogService, urlService: IURLService, dynamicAuthProviderStorageService: IDynamicAuthenticationProviderStorageService, clipboardService: IClipboardService, quickInputService: IQuickInputService);
52
54
  $registerAuthenticationProvider(id: string, label: string, supportsMultipleAccounts: boolean, supportedAuthorizationServer?: UriComponents[], supportsChallenges?: boolean): Promise<void>;
53
55
  $unregisterAuthenticationProvider(id: string): Promise<void>;
56
+ $ensureProvider(id: string): Promise<void>;
54
57
  $sendDidChangeSessions(providerId: string, event: AuthenticationSessionsChangeEvent): Promise<void>;
55
58
  $removeSession(providerId: string, sessionId: string): Promise<void>;
56
59
  $waitForUriHandler(expectedUri: UriComponents): Promise<UriComponents>;
@@ -9,10 +9,13 @@ import { ExtHostContext, MainContext } from '@codingame/monaco-vscode-api/vscode
9
9
  import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
10
10
  import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
11
11
  import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
12
+ import { ActivationKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions';
13
+ import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
12
14
  import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
13
15
  import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
14
16
  import { IAuthenticationAccessService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/authentication/browser/authenticationAccessService.service';
15
17
  import { IAuthenticationUsageService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/authentication/browser/authenticationUsageService.service';
18
+ import { getAuthenticationProviderActivationEvent } from '@codingame/monaco-vscode-f22e7e55-aee8-5b52-a6bc-950efd9f5890-common/vscode/vs/workbench/services/authentication/browser/authenticationService';
16
19
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
17
20
  import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
18
21
  import { CancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
@@ -56,7 +59,7 @@ class MainThreadAuthenticationProviderWithChallenges extends MainThreadAuthentic
56
59
  }
57
60
  }
58
61
  let MainThreadAuthentication = class MainThreadAuthentication extends Disposable {
59
- constructor(extHostContext, authenticationService, authenticationExtensionsService, authenticationAccessService, authenticationUsageService, dialogService, notificationService, telemetryService, openerService, logService, urlService, dynamicAuthProviderStorageService, clipboardService, quickInputService) {
62
+ constructor(extHostContext, authenticationService, authenticationExtensionsService, authenticationAccessService, authenticationUsageService, dialogService, notificationService, extensionService, telemetryService, openerService, logService, urlService, dynamicAuthProviderStorageService, clipboardService, quickInputService) {
60
63
  super();
61
64
  this.authenticationService = authenticationService;
62
65
  this.authenticationExtensionsService = authenticationExtensionsService;
@@ -64,6 +67,7 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
64
67
  this.authenticationUsageService = authenticationUsageService;
65
68
  this.dialogService = dialogService;
66
69
  this.notificationService = notificationService;
70
+ this.extensionService = extensionService;
67
71
  this.telemetryService = telemetryService;
68
72
  this.openerService = openerService;
69
73
  this.logService = logService;
@@ -141,6 +145,11 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
141
145
  this._suppressUnregisterEvent = false;
142
146
  }
143
147
  }
148
+ async $ensureProvider(id) {
149
+ if (!this.authenticationService.isAuthenticationProviderRegistered(id)) {
150
+ return await this.extensionService.activateByEvent(getAuthenticationProviderActivationEvent(id), ActivationKind.Immediate);
151
+ }
152
+ }
144
153
  async $sendDidChangeSessions(providerId, event) {
145
154
  const obj = this._registrations.get(providerId);
146
155
  if (obj instanceof Emitter) {
@@ -504,13 +513,14 @@ MainThreadAuthentication = __decorate([
504
513
  ( __param(4, IAuthenticationUsageService)),
505
514
  ( __param(5, IDialogService)),
506
515
  ( __param(6, INotificationService)),
507
- ( __param(7, ITelemetryService)),
508
- ( __param(8, IOpenerService)),
509
- ( __param(9, ILogService)),
510
- ( __param(10, IURLService)),
511
- ( __param(11, IDynamicAuthenticationProviderStorageService)),
512
- ( __param(12, IClipboardService)),
513
- ( __param(13, IQuickInputService))
516
+ ( __param(7, IExtensionService)),
517
+ ( __param(8, ITelemetryService)),
518
+ ( __param(9, IOpenerService)),
519
+ ( __param(10, ILogService)),
520
+ ( __param(11, IURLService)),
521
+ ( __param(12, IDynamicAuthenticationProviderStorageService)),
522
+ ( __param(13, IClipboardService)),
523
+ ( __param(14, IQuickInputService))
514
524
  ], MainThreadAuthentication);
515
525
 
516
526
  export { MainThreadAuthentication };
@@ -3,7 +3,7 @@ import { IExtHostContext } from "../../services/extensions/common/extHostCustome
3
3
  import { MainThreadSecretStateShape } from "@codingame/monaco-vscode-api/vscode/vs/workbench/api/common/extHost.protocol";
4
4
  import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
5
5
  import { ISecretStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/secrets/common/secrets.service";
6
- import { IBrowserWorkbenchEnvironmentService } from "@codingame/monaco-vscode-34a0ffd3-b9f5-5699-b43b-38af5732f38a-common/vscode/vs/workbench/services/environment/browser/environmentService.service";
6
+ import { IBrowserWorkbenchEnvironmentService } from "@codingame/monaco-vscode-4bf376c2-03c7-58cb-8303-c67aeefa3d3d-common/vscode/vs/workbench/services/environment/browser/environmentService.service";
7
7
  export declare class MainThreadSecretState extends Disposable implements MainThreadSecretStateShape {
8
8
  private readonly secretStorageService;
9
9
  private readonly logService;
@@ -6,7 +6,7 @@ import { ExtHostContext, MainContext } from '@codingame/monaco-vscode-api/vscode
6
6
  import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
7
7
  import { SequencerByKey } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
8
8
  import { ISecretStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/secrets/common/secrets.service';
9
- import { IBrowserWorkbenchEnvironmentService } from '@codingame/monaco-vscode-34a0ffd3-b9f5-5699-b43b-38af5732f38a-common/vscode/vs/workbench/services/environment/browser/environmentService.service';
9
+ import { IBrowserWorkbenchEnvironmentService } from '@codingame/monaco-vscode-4bf376c2-03c7-58cb-8303-c67aeefa3d3d-common/vscode/vs/workbench/services/environment/browser/environmentService.service';
10
10
 
11
11
  let MainThreadSecretState = class MainThreadSecretState extends Disposable {
12
12
  constructor(extHostContext, secretStorageService, logService, environmentService) {
@@ -0,0 +1,95 @@
1
+ import { ExtensionType, IExtension, IExtensionManifest } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions";
2
+ import { IBuiltinExtensionsScannerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions.service";
3
+ import { IBrowserWorkbenchEnvironmentService } from "@codingame/monaco-vscode-4bf376c2-03c7-58cb-8303-c67aeefa3d3d-common/vscode/vs/workbench/services/environment/browser/environmentService.service";
4
+ import { IScannedExtension, ScanOptions } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensionManagement/common/extensionManagement";
5
+ import { IWebExtensionsScannerService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensionManagement/common/extensionManagement.service";
6
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
7
+ import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
8
+ import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
9
+ import { IGalleryExtension, Metadata } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionManagement";
10
+ import { IExtensionGalleryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionManagement.service";
11
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
12
+ import { IExtensionManifestPropertiesService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionManifestPropertiesService.service";
13
+ import { IExtensionResourceLoaderService } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensionResourceLoader/common/extensionResourceLoader.service";
14
+ import { IExtensionStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionStorage.service";
15
+ import { ILifecycleService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service";
16
+ import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
17
+ import { IProductService } from "@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service";
18
+ import { IUserDataProfilesService } from "@codingame/monaco-vscode-api/vscode/vs/platform/userDataProfile/common/userDataProfile.service";
19
+ import { IUriIdentityService } from "@codingame/monaco-vscode-api/vscode/vs/platform/uriIdentity/common/uriIdentity.service";
20
+ export declare class WebExtensionsScannerService extends Disposable implements IWebExtensionsScannerService {
21
+ private readonly environmentService;
22
+ private readonly builtinExtensionsScannerService;
23
+ private readonly fileService;
24
+ private readonly logService;
25
+ private readonly galleryService;
26
+ private readonly extensionManifestPropertiesService;
27
+ private readonly extensionResourceLoaderService;
28
+ private readonly extensionStorageService;
29
+ private readonly storageService;
30
+ private readonly productService;
31
+ private readonly userDataProfilesService;
32
+ private readonly uriIdentityService;
33
+ readonly _serviceBrand: undefined;
34
+ private readonly systemExtensionsCacheResource;
35
+ private readonly customBuiltinExtensionsCacheResource;
36
+ private readonly resourcesAccessQueueMap;
37
+ private readonly extensionsEnabledWithApiProposalVersion;
38
+ constructor(environmentService: IBrowserWorkbenchEnvironmentService, builtinExtensionsScannerService: IBuiltinExtensionsScannerService, fileService: IFileService, logService: ILogService, galleryService: IExtensionGalleryService, extensionManifestPropertiesService: IExtensionManifestPropertiesService, extensionResourceLoaderService: IExtensionResourceLoaderService, extensionStorageService: IExtensionStorageService, storageService: IStorageService, productService: IProductService, userDataProfilesService: IUserDataProfilesService, uriIdentityService: IUriIdentityService, lifecycleService: ILifecycleService);
39
+ private _customBuiltinExtensionsInfoPromise;
40
+ private readCustomBuiltinExtensionsInfoFromEnv;
41
+ private checkAdditionalBuiltinExtensions;
42
+ /**
43
+ * All system extensions bundled with the product
44
+ */
45
+ private readSystemExtensions;
46
+ /**
47
+ * All extensions defined via `additionalBuiltinExtensions` API
48
+ */
49
+ private readCustomBuiltinExtensions;
50
+ private getCustomBuiltinExtensionsFromLocations;
51
+ private getCustomBuiltinExtensionsFromGallery;
52
+ private getCustomBuiltinExtensionsFromCache;
53
+ private _migrateExtensionsStoragePromise;
54
+ private migrateExtensionsStorage;
55
+ private updateCaches;
56
+ private updateSystemExtensionsCache;
57
+ private _updateCustomBuiltinExtensionsCachePromise;
58
+ private updateCustomBuiltinExtensionsCache;
59
+ private resolveBuiltinExtensionGalleryResources;
60
+ private resolveBuiltinGalleryExtensions;
61
+ private resolveDependenciesAndPackedExtensions;
62
+ private getExtensionsWithDependenciesAndPackedExtensions;
63
+ scanSystemExtensions(): Promise<IExtension[]>;
64
+ scanUserExtensions(profileLocation: URI, scanOptions?: ScanOptions): Promise<IScannedExtension[]>;
65
+ scanExtensionsUnderDevelopment(): Promise<IExtension[]>;
66
+ scanExistingExtension(extensionLocation: URI, extensionType: ExtensionType, profileLocation: URI): Promise<IScannedExtension | null>;
67
+ scanExtensionManifest(extensionLocation: URI): Promise<IExtensionManifest | null>;
68
+ addExtensionFromGallery(galleryExtension: IGalleryExtension, metadata: Metadata, profileLocation: URI): Promise<IScannedExtension>;
69
+ addExtension(location: URI, metadata: Metadata, profileLocation: URI): Promise<IScannedExtension>;
70
+ removeExtension(extension: IScannedExtension, profileLocation: URI): Promise<void>;
71
+ updateMetadata(extension: IScannedExtension, metadata: Partial<Metadata>, profileLocation: URI): Promise<IScannedExtension>;
72
+ copyExtensions(fromProfileLocation: URI, toProfileLocation: URI, filter: (extension: IScannedExtension) => boolean): Promise<void>;
73
+ private addWebExtension;
74
+ private addToInstalledExtensions;
75
+ private scanInstalledExtensions;
76
+ private toWebExtensionFromGallery;
77
+ private toWebExtensionFromExtensionGalleryResource;
78
+ private getPackageNLSResourceMapFromResources;
79
+ private toWebExtension;
80
+ private toScannedExtension;
81
+ private listExtensionResources;
82
+ private translateManifest;
83
+ private getExtensionManifest;
84
+ private getTranslations;
85
+ private readInstalledExtensions;
86
+ private writeInstalledExtensions;
87
+ private readCustomBuiltinExtensionsCache;
88
+ private writeCustomBuiltinExtensionsCache;
89
+ private readSystemExtensionsCache;
90
+ private writeSystemExtensionsCache;
91
+ private withWebExtensions;
92
+ private migrateWebExtensions;
93
+ private storeWebExtensions;
94
+ private getResourceAccessQueue;
95
+ }