UNPKG

@sussudio/platform

Version:

Internal APIs for VS Code's service injection the base services.

188 lines (186 loc) 7.48 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { Disposable } from '@sussudio/base/common/lifecycle.mjs'; import Severity from '@sussudio/base/common/severity.mjs'; import { URI } from '@sussudio/base/common/uri.mjs'; import { IEnvironmentService } from '../../environment/common/environment.mjs'; import { Metadata } from './extensionManagement.mjs'; import { ExtensionType, IExtensionManifest, TargetPlatform, IExtensionIdentifier, IRelaxedExtensionManifest, IExtensionDescription, } from '../../extensions/common/extensions.mjs'; import { IFileService } from '../../files/common/files.mjs'; import { IInstantiationService } from '../../instantiation/common/instantiation.mjs'; import { ILogService } from '../../log/common/log.mjs'; import { IProductService } from '../../product/common/productService.mjs'; import { Event } from '@sussudio/base/common/event.mjs'; import { IExtensionsProfileScannerService } from './extensionsProfileScannerService.mjs'; import { IUserDataProfilesService } from '../../userDataProfile/common/userDataProfile.mjs'; import { IUriIdentityService } from '../../uriIdentity/common/uriIdentity.mjs'; export type IScannedExtensionManifest = IRelaxedExtensionManifest & { __metadata?: Metadata; }; interface IRelaxedScannedExtension { type: ExtensionType; isBuiltin: boolean; identifier: IExtensionIdentifier; manifest: IRelaxedExtensionManifest; location: URI; targetPlatform: TargetPlatform; metadata: Metadata | undefined; isValid: boolean; validations: readonly [Severity, string][]; } export type IScannedExtension = Readonly<IRelaxedScannedExtension> & { manifest: IExtensionManifest; }; export interface Translations { [id: string]: string; } export declare namespace Translations { function equals(a: Translations, b: Translations): boolean; } export type ScanOptions = { readonly profileLocation?: URI; readonly includeInvalid?: boolean; readonly includeAllVersions?: boolean; readonly includeUninstalled?: boolean; readonly checkControlFile?: boolean; readonly language?: string; readonly useCache?: boolean; }; export declare const IExtensionsScannerService: import('../../instantiation/common/instantiation.mjs').ServiceIdentifier<IExtensionsScannerService>; export interface IExtensionsScannerService { readonly _serviceBrand: undefined; readonly systemExtensionsLocation: URI; readonly userExtensionsLocation: URI; readonly onDidChangeCache: Event<ExtensionType>; getTargetPlatform(): Promise<TargetPlatform>; scanAllExtensions( systemScanOptions: ScanOptions, userScanOptions: ScanOptions, includeExtensionsUnderDev: boolean, ): Promise<IScannedExtension[]>; scanSystemExtensions(scanOptions: ScanOptions): Promise<IScannedExtension[]>; scanUserExtensions(scanOptions: ScanOptions): Promise<IScannedExtension[]>; scanExtensionsUnderDevelopment( scanOptions: ScanOptions, existingExtensions: IScannedExtension[], ): Promise<IScannedExtension[]>; scanExistingExtension( extensionLocation: URI, extensionType: ExtensionType, scanOptions: ScanOptions, ): Promise<IScannedExtension | null>; scanOneOrMultipleExtensions( extensionLocation: URI, extensionType: ExtensionType, scanOptions: ScanOptions, ): Promise<IScannedExtension[]>; scanMetadata(extensionLocation: URI): Promise<Metadata | undefined>; updateMetadata(extensionLocation: URI, metadata: Partial<Metadata>): Promise<void>; initializeDefaultProfileExtensions(): Promise<void>; } export declare abstract class AbstractExtensionsScannerService extends Disposable implements IExtensionsScannerService { readonly systemExtensionsLocation: URI; readonly userExtensionsLocation: URI; private readonly extensionsControlLocation; private readonly cacheLocation; private readonly userDataProfilesService; protected readonly extensionsProfileScannerService: IExtensionsProfileScannerService; protected readonly fileService: IFileService; protected readonly logService: ILogService; private readonly environmentService; private readonly productService; private readonly uriIdentityService; private readonly instantiationService; readonly _serviceBrand: undefined; protected abstract getTranslations(language: string): Promise<Translations>; private readonly _onDidChangeCache; readonly onDidChangeCache: Event<ExtensionType>; private readonly obsoleteFile; private readonly systemExtensionsCachedScanner; private readonly userExtensionsCachedScanner; private readonly extensionsScanner; constructor( systemExtensionsLocation: URI, userExtensionsLocation: URI, extensionsControlLocation: URI, cacheLocation: URI, userDataProfilesService: IUserDataProfilesService, extensionsProfileScannerService: IExtensionsProfileScannerService, fileService: IFileService, logService: ILogService, environmentService: IEnvironmentService, productService: IProductService, uriIdentityService: IUriIdentityService, instantiationService: IInstantiationService, ); private _targetPlatformPromise; getTargetPlatform(): Promise<TargetPlatform>; scanAllExtensions( systemScanOptions: ScanOptions, userScanOptions: ScanOptions, includeExtensionsUnderDev: boolean, ): Promise<IScannedExtension[]>; scanSystemExtensions(scanOptions: ScanOptions): Promise<IScannedExtension[]>; scanUserExtensions(scanOptions: ScanOptions): Promise<IScannedExtension[]>; scanExtensionsUnderDevelopment( scanOptions: ScanOptions, existingExtensions: IScannedExtension[], ): Promise<IScannedExtension[]>; scanExistingExtension( extensionLocation: URI, extensionType: ExtensionType, scanOptions: ScanOptions, ): Promise<IScannedExtension | null>; scanOneOrMultipleExtensions( extensionLocation: URI, extensionType: ExtensionType, scanOptions: ScanOptions, ): Promise<IScannedExtension[]>; scanMetadata(extensionLocation: URI): Promise<Metadata | undefined>; updateMetadata(extensionLocation: URI, metaData: Partial<Metadata>): Promise<void>; initializeDefaultProfileExtensions(): Promise<void>; private initializeDefaultProfileExtensionsPromise; private doInitializeDefaultProfileExtensions; private applyScanOptions; private dedupExtensions; private scanDefaultSystemExtensions; private scanDevSystemExtensions; private getBuiltInExtensionControl; private createExtensionScannerInput; private getMtime; } export declare function toExtensionDescription( extension: IScannedExtension, isUnderDevelopment: boolean, ): IExtensionDescription; export declare class NativeExtensionsScannerService extends AbstractExtensionsScannerService implements IExtensionsScannerService { private readonly translationsPromise; constructor( systemExtensionsLocation: URI, userExtensionsLocation: URI, userHome: URI, userDataPath: URI, userDataProfilesService: IUserDataProfilesService, extensionsProfileScannerService: IExtensionsProfileScannerService, fileService: IFileService, logService: ILogService, environmentService: IEnvironmentService, productService: IProductService, uriIdentityService: IUriIdentityService, instantiationService: IInstantiationService, ); protected getTranslations(language: string): Promise<Translations>; } export {};