UNPKG

sussudio

Version:

An unofficial VS Code Internal API

350 lines (349 loc) 15 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 { IStringDictionary } from "../../../base/common/collections.mjs"; import { Event } from "../../../base/common/event.mjs"; import { IPager } from "../../../base/common/paging.mjs"; import { Platform } from "../../../base/common/platform.mjs"; import { URI } from "../../../base/common/uri.mjs"; import { ExtensionType, IExtension, IExtensionManifest, TargetPlatform } from "../../extensions/common/extensions.mjs"; export declare const EXTENSION_IDENTIFIER_PATTERN = "^([a-z0-9A-Z][a-z0-9-A-Z]*)\\.([a-z0-9A-Z][a-z0-9-A-Z]*)$"; export declare const EXTENSION_IDENTIFIER_REGEX: RegExp; export declare const WEB_EXTENSION_TAG = "__web_extension"; export declare function TargetPlatformToString(targetPlatform: TargetPlatform): "Web" | "Mac" | TargetPlatform.UNIVERSAL | TargetPlatform.UNKNOWN | TargetPlatform.UNDEFINED | "Windows 64 bit" | "Windows 32 bit" | "Windows ARM" | "Linux 64 bit" | "Linux ARM 64" | "Linux ARM" | "Alpine Linux 64 bit" | "Alpine ARM 64" | "Mac Silicon"; export declare function toTargetPlatform(targetPlatform: string): TargetPlatform; export declare function getTargetPlatform(platform: Platform | 'alpine', arch: string | undefined): TargetPlatform; export declare function isNotWebExtensionInWebTargetPlatform(allTargetPlatforms: TargetPlatform[], productTargetPlatform: TargetPlatform): boolean; export declare function isTargetPlatformCompatible(extensionTargetPlatform: TargetPlatform, allTargetPlatforms: TargetPlatform[], productTargetPlatform: TargetPlatform): boolean; export declare function getFallbackTargetPlarforms(targetPlatform: TargetPlatform): TargetPlatform[]; export interface IGalleryExtensionProperties { dependencies?: string[]; extensionPack?: string[]; engine?: string; localizedLanguages?: string[]; targetPlatform: TargetPlatform; isPreReleaseVersion: boolean; } export interface IGalleryExtensionAsset { uri: string; fallbackUri: string; } export interface IGalleryExtensionAssets { manifest: IGalleryExtensionAsset | null; readme: IGalleryExtensionAsset | null; changelog: IGalleryExtensionAsset | null; license: IGalleryExtensionAsset | null; repository: IGalleryExtensionAsset | null; download: IGalleryExtensionAsset; icon: IGalleryExtensionAsset | null; signature: IGalleryExtensionAsset | null; coreTranslations: [string, IGalleryExtensionAsset][]; } export declare function isIExtensionIdentifier(thing: any): thing is IExtensionIdentifier; export interface IExtensionIdentifier { id: string; uuid?: string; } export interface IGalleryExtensionIdentifier extends IExtensionIdentifier { uuid: string; } export interface IGalleryExtensionVersion { version: string; date: string; isPreReleaseVersion: boolean; } export interface IGalleryExtension { name: string; identifier: IGalleryExtensionIdentifier; version: string; displayName: string; publisherId: string; publisher: string; publisherDisplayName: string; publisherDomain?: { link: string; verified: boolean; }; publisherSponsorLink?: string; description: string; installCount: number; rating: number; ratingCount: number; categories: readonly string[]; tags: readonly string[]; releaseDate: number; lastUpdated: number; preview: boolean; hasPreReleaseVersion: boolean; hasReleaseVersion: boolean; isSigned: boolean; allTargetPlatforms: TargetPlatform[]; assets: IGalleryExtensionAssets; properties: IGalleryExtensionProperties; telemetryData?: any; } export interface IGalleryMetadata { id: string; publisherId: string; publisherDisplayName: string; isPreReleaseVersion: boolean; targetPlatform?: TargetPlatform; } export type Metadata = Partial<IGalleryMetadata & { isApplicationScoped: boolean; isMachineScoped: boolean; isBuiltin: boolean; isSystem: boolean; updated: boolean; preRelease: boolean; installedTimestamp: number; }>; export interface ILocalExtension extends IExtension { isMachineScoped: boolean; isApplicationScoped: boolean; publisherId: string | null; publisherDisplayName: string | null; installedTimestamp?: number; isPreReleaseVersion: boolean; preRelease: boolean; updated: boolean; } export declare const enum SortBy { NoneOrRelevance = 0, LastUpdatedDate = 1, Title = 2, PublisherName = 3, InstallCount = 4, PublishedDate = 10, AverageRating = 6, WeightedRating = 12 } export declare const enum SortOrder { Default = 0, Ascending = 1, Descending = 2 } export interface IQueryOptions { text?: string; ids?: string[]; names?: string[]; pageSize?: number; sortBy?: SortBy; sortOrder?: SortOrder; source?: string; includePreRelease?: boolean; } export declare const enum StatisticType { Install = "install", Uninstall = "uninstall" } export interface IDeprecationInfo { readonly disallowInstall?: boolean; readonly extension?: { readonly id: string; readonly displayName: string; readonly autoMigrate?: { readonly storage: boolean; }; readonly preRelease?: boolean; }; readonly settings?: readonly string[]; } export interface IExtensionsControlManifest { readonly malicious: IExtensionIdentifier[]; readonly deprecated: IStringDictionary<IDeprecationInfo>; } export declare const enum InstallOperation { None = 1, Install = 2, Update = 3, Migrate = 4 } export interface ITranslation { contents: { [key: string]: {}; }; } export interface IExtensionInfo extends IExtensionIdentifier { version?: string; preRelease?: boolean; hasPreRelease?: boolean; } export interface IExtensionQueryOptions { targetPlatform?: TargetPlatform; compatible?: boolean; queryAllVersions?: boolean; source?: string; } export declare const IExtensionGalleryService: import("../../instantiation/common/instantiation.mjs").ServiceIdentifier<IExtensionGalleryService>; export interface IExtensionGalleryService { readonly _serviceBrand: undefined; isEnabled(): boolean; query(options: IQueryOptions, token: CancellationToken): Promise<IPager<IGalleryExtension>>; getExtensions(extensionInfos: ReadonlyArray<IExtensionInfo>, token: CancellationToken): Promise<IGalleryExtension[]>; getExtensions(extensionInfos: ReadonlyArray<IExtensionInfo>, options: IExtensionQueryOptions, token: CancellationToken): Promise<IGalleryExtension[]>; isExtensionCompatible(extension: IGalleryExtension, includePreRelease: boolean, targetPlatform: TargetPlatform): Promise<boolean>; getCompatibleExtension(extension: IGalleryExtension, includePreRelease: boolean, targetPlatform: TargetPlatform): Promise<IGalleryExtension | null>; getAllCompatibleVersions(extension: IGalleryExtension, includePreRelease: boolean, targetPlatform: TargetPlatform): Promise<IGalleryExtensionVersion[]>; download(extension: IGalleryExtension, location: URI, operation: InstallOperation): Promise<void>; downloadSignatureArchive(extension: IGalleryExtension, location: URI): Promise<void>; reportStatistic(publisher: string, name: string, version: string, type: StatisticType): Promise<void>; getReadme(extension: IGalleryExtension, token: CancellationToken): Promise<string>; getManifest(extension: IGalleryExtension, token: CancellationToken): Promise<IExtensionManifest | null>; getChangelog(extension: IGalleryExtension, token: CancellationToken): Promise<string>; getCoreTranslation(extension: IGalleryExtension, languageId: string): Promise<ITranslation | null>; getExtensionsControlManifest(): Promise<IExtensionsControlManifest>; } export interface InstallExtensionEvent { readonly identifier: IExtensionIdentifier; readonly source: URI | IGalleryExtension; readonly profileLocation?: URI; readonly applicationScoped?: boolean; } export interface InstallExtensionResult { readonly identifier: IExtensionIdentifier; readonly operation: InstallOperation; readonly source?: URI | IGalleryExtension; readonly local?: ILocalExtension; readonly context?: IStringDictionary<any>; readonly profileLocation?: URI; readonly applicationScoped?: boolean; } export interface UninstallExtensionEvent { readonly identifier: IExtensionIdentifier; readonly profileLocation?: URI; readonly applicationScoped?: boolean; } export interface DidUninstallExtensionEvent { readonly identifier: IExtensionIdentifier; readonly error?: string; readonly profileLocation?: URI; readonly applicationScoped?: boolean; } export declare enum ExtensionManagementErrorCode { Unsupported = "Unsupported", Deprecated = "Deprecated", Malicious = "Malicious", Incompatible = "Incompatible", IncompatiblePreRelease = "IncompatiblePreRelease", IncompatibleTargetPlatform = "IncompatibleTargetPlatform", ReleaseVersionNotFound = "ReleaseVersionNotFound", Invalid = "Invalid", Download = "Download", Extract = "Extract", Delete = "Delete", Rename = "Rename", CorruptZip = "CorruptZip", IncompleteZip = "IncompleteZip", Internal = "Internal", Signature = "Signature" } export declare class ExtensionManagementError extends Error { readonly code: ExtensionManagementErrorCode; constructor(message: string, code: ExtensionManagementErrorCode); } export type InstallOptions = { isBuiltin?: boolean; isMachineScoped?: boolean; donotIncludePackAndDependencies?: boolean; installGivenVersion?: boolean; installPreReleaseVersion?: boolean; operation?: InstallOperation; /** * Context passed through to InstallExtensionResult */ context?: IStringDictionary<any>; profileLocation?: URI; }; export type InstallVSIXOptions = Omit<InstallOptions, 'installGivenVersion'> & { installOnlyNewlyAddedFromExtensionPack?: boolean; }; export type UninstallOptions = { readonly donotIncludePack?: boolean; readonly donotCheckDependents?: boolean; readonly versionOnly?: boolean; readonly remove?: boolean; readonly profileLocation?: URI; }; export interface IExtensionManagementParticipant { postInstall(local: ILocalExtension, source: URI | IGalleryExtension, options: InstallOptions | InstallVSIXOptions, token: CancellationToken): Promise<void>; postUninstall(local: ILocalExtension, options: UninstallOptions, token: CancellationToken): Promise<void>; } export declare const IExtensionManagementService: import("../../instantiation/common/instantiation.mjs").ServiceIdentifier<IExtensionManagementService>; export interface IExtensionManagementService { readonly _serviceBrand: undefined; onInstallExtension: Event<InstallExtensionEvent>; onDidInstallExtensions: Event<readonly InstallExtensionResult[]>; onUninstallExtension: Event<UninstallExtensionEvent>; onDidUninstallExtension: Event<DidUninstallExtensionEvent>; zip(extension: ILocalExtension): Promise<URI>; unzip(zipLocation: URI): Promise<IExtensionIdentifier>; getManifest(vsix: URI): Promise<IExtensionManifest>; install(vsix: URI, options?: InstallVSIXOptions): Promise<ILocalExtension>; canInstall(extension: IGalleryExtension): Promise<boolean>; installFromGallery(extension: IGalleryExtension, options?: InstallOptions): Promise<ILocalExtension>; installFromLocation(location: URI, profileLocation: URI): Promise<ILocalExtension>; uninstall(extension: ILocalExtension, options?: UninstallOptions): Promise<void>; reinstallFromGallery(extension: ILocalExtension): Promise<ILocalExtension>; getInstalled(type?: ExtensionType, profileLocation?: URI): Promise<ILocalExtension[]>; getExtensionsControlManifest(): Promise<IExtensionsControlManifest>; download(extension: IGalleryExtension, operation: InstallOperation): Promise<URI>; getMetadata(extension: ILocalExtension): Promise<Metadata | undefined>; updateMetadata(local: ILocalExtension, metadata: IGalleryMetadata): Promise<ILocalExtension>; updateExtensionScope(local: ILocalExtension, isMachineScoped: boolean): Promise<ILocalExtension>; registerParticipant(pariticipant: IExtensionManagementParticipant): void; getTargetPlatform(): Promise<TargetPlatform>; } export declare const DISABLED_EXTENSIONS_STORAGE_PATH = "extensionsIdentifiers/disabled"; export declare const ENABLED_EXTENSIONS_STORAGE_PATH = "extensionsIdentifiers/enabled"; export declare const IGlobalExtensionEnablementService: import("../../instantiation/common/instantiation.mjs").ServiceIdentifier<IGlobalExtensionEnablementService>; export interface IGlobalExtensionEnablementService { readonly _serviceBrand: undefined; readonly onDidChangeEnablement: Event<{ readonly extensions: IExtensionIdentifier[]; readonly source?: string; }>; getDisabledExtensions(): IExtensionIdentifier[]; enableExtension(extension: IExtensionIdentifier, source?: string): Promise<boolean>; disableExtension(extension: IExtensionIdentifier, source?: string): Promise<boolean>; } export type IConfigBasedExtensionTip = { readonly extensionId: string; readonly extensionName: string; readonly isExtensionPack: boolean; readonly configName: string; readonly important: boolean; readonly whenNotInstalled?: string[]; }; export type IExecutableBasedExtensionTip = { readonly extensionId: string; readonly extensionName: string; readonly isExtensionPack: boolean; readonly exeName: string; readonly exeFriendlyName: string; readonly windowsPath?: string; readonly whenNotInstalled?: string[]; }; export declare const IExtensionTipsService: import("../../instantiation/common/instantiation.mjs").ServiceIdentifier<IExtensionTipsService>; export interface IExtensionTipsService { readonly _serviceBrand: undefined; getConfigBasedTips(folder: URI): Promise<IConfigBasedExtensionTip[]>; getImportantExecutableBasedTips(): Promise<IExecutableBasedExtensionTip[]>; getOtherExecutableBasedTips(): Promise<IExecutableBasedExtensionTip[]>; } export declare const ExtensionsLabel: string; export declare const ExtensionsLocalizedLabel: { value: string; original: string; }; export declare const PreferencesLabel: string; export declare const PreferencesLocalizedLabel: { value: string; original: string; }; export interface CLIOutput { log(s: string): void; error(s: string): void; }