UNPKG

sussudio

Version:

An unofficial VS Code Internal API

94 lines (93 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 { CancellationToken } from "../../../base/common/cancellation.mjs"; import { URI } from "../../../base/common/uri.mjs"; import { IConfigurationService } from "../../configuration/common/configuration.mjs"; import { IEnvironmentService } from "../../environment/common/environment.mjs"; import { IExtensionGalleryService, IExtensionManagementService, ILocalExtension } from "../../extensionManagement/common/extensionManagement.mjs"; import { IExtensionStorageService } from "../../extensionManagement/common/extensionStorage.mjs"; import { IExtensionIdentifier } 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 { IStorageService } from "../../storage/common/storage.mjs"; import { ITelemetryService } from "../../telemetry/common/telemetry.mjs"; import { IUriIdentityService } from "../../uriIdentity/common/uriIdentity.mjs"; import { IUserDataProfile, IUserDataProfilesService } from "../../userDataProfile/common/userDataProfile.mjs"; import { AbstractInitializer, AbstractSynchroniser, IAcceptResult, IMergeResult, IResourcePreview } from "./abstractSynchronizer.mjs"; import { IMergeResult as IExtensionMergeResult } from "./extensionsMerge.mjs"; import { IIgnoredExtensionsManagementService } from "./ignoredExtensions.mjs"; import { IRemoteUserData, ISyncData, ISyncExtension, ISyncExtensionWithVersion, IUserDataSyncBackupStoreService, IUserDataSynchroniser, IUserDataSyncLogService, IUserDataSyncEnablementService, IUserDataSyncStoreService } from "./userDataSync.mjs"; import { IUserDataProfileStorageService } from "../../userDataProfile/common/userDataProfileStorageService.mjs"; type IExtensionResourceMergeResult = IAcceptResult & IExtensionMergeResult; interface IExtensionResourcePreview extends IResourcePreview { readonly localExtensions: ISyncExtensionWithVersion[]; readonly remoteExtensions: ISyncExtension[] | null; readonly skippedExtensions: ISyncExtension[]; readonly builtinExtensions: IExtensionIdentifier[]; readonly previewResult: IExtensionResourceMergeResult; } interface ILastSyncUserData extends IRemoteUserData { skippedExtensions: ISyncExtension[] | undefined; builtinExtensions: IExtensionIdentifier[] | undefined; } export declare function parseExtensions(syncData: ISyncData): ISyncExtension[]; export declare function stringify(extensions: ISyncExtension[], format: boolean): string; export declare class ExtensionsSynchroniser extends AbstractSynchroniser implements IUserDataSynchroniser { private readonly extensionManagementService; private readonly ignoredExtensionsManagementService; private readonly instantiationService; protected readonly version: number; private readonly previewResource; private readonly baseResource; private readonly localResource; private readonly remoteResource; private readonly acceptedResource; private readonly localExtensionsProvider; constructor(profile: IUserDataProfile, collection: string | undefined, environmentService: IEnvironmentService, fileService: IFileService, storageService: IStorageService, userDataSyncStoreService: IUserDataSyncStoreService, userDataSyncBackupStoreService: IUserDataSyncBackupStoreService, extensionManagementService: IExtensionManagementService, ignoredExtensionsManagementService: IIgnoredExtensionsManagementService, logService: IUserDataSyncLogService, configurationService: IConfigurationService, userDataSyncEnablementService: IUserDataSyncEnablementService, telemetryService: ITelemetryService, extensionStorageService: IExtensionStorageService, uriIdentityService: IUriIdentityService, userDataProfileStorageService: IUserDataProfileStorageService, instantiationService: IInstantiationService); protected generateSyncPreview(remoteUserData: IRemoteUserData, lastSyncUserData: ILastSyncUserData | null): Promise<IExtensionResourcePreview[]>; protected hasRemoteChanged(lastSyncUserData: ILastSyncUserData): Promise<boolean>; private getPreviewContent; protected getMergeResult(resourcePreview: IExtensionResourcePreview, token: CancellationToken): Promise<IMergeResult>; protected getAcceptResult(resourcePreview: IExtensionResourcePreview, resource: URI, content: string | null | undefined, token: CancellationToken): Promise<IExtensionResourceMergeResult>; private acceptLocal; private acceptRemote; protected applyResult(remoteUserData: IRemoteUserData, lastSyncUserData: IRemoteUserData | null, resourcePreviews: [IExtensionResourcePreview, IExtensionResourceMergeResult][], force: boolean): Promise<void>; resolveContent(uri: URI): Promise<string | null>; private stringify; hasLocalData(): Promise<boolean>; } export declare class LocalExtensionsProvider { private readonly extensionManagementService; private readonly userDataProfileStorageService; private readonly extensionGalleryService; private readonly ignoredExtensionsManagementService; private readonly instantiationService; private readonly logService; constructor(extensionManagementService: IExtensionManagementService, userDataProfileStorageService: IUserDataProfileStorageService, extensionGalleryService: IExtensionGalleryService, ignoredExtensionsManagementService: IIgnoredExtensionsManagementService, instantiationService: IInstantiationService, logService: IUserDataSyncLogService); getLocalExtensions(profile: IUserDataProfile): Promise<{ localExtensions: ISyncExtensionWithVersion[]; ignoredExtensions: string[]; }>; updateLocalExtensions(added: ISyncExtension[], removed: IExtensionIdentifier[], updated: ISyncExtension[], skippedExtensions: ISyncExtension[], profile: IUserDataProfile): Promise<ISyncExtension[]>; private updateExtensionState; private withProfileScopedServices; } export interface IExtensionsInitializerPreviewResult { readonly installedExtensions: ILocalExtension[]; readonly disabledExtensions: IExtensionIdentifier[]; readonly newExtensions: (IExtensionIdentifier & { preRelease: boolean; })[]; readonly remoteExtensions: ISyncExtension[]; } export declare abstract class AbstractExtensionsInitializer extends AbstractInitializer { protected readonly extensionManagementService: IExtensionManagementService; private readonly ignoredExtensionsManagementService; constructor(extensionManagementService: IExtensionManagementService, ignoredExtensionsManagementService: IIgnoredExtensionsManagementService, fileService: IFileService, userDataProfilesService: IUserDataProfilesService, environmentService: IEnvironmentService, logService: ILogService, storageService: IStorageService, uriIdentityService: IUriIdentityService); protected parseExtensions(remoteUserData: IRemoteUserData): Promise<ISyncExtension[] | null>; protected generatePreview(remoteExtensions: ISyncExtension[], localExtensions: ILocalExtension[]): IExtensionsInitializerPreviewResult; } export {};