UNPKG

sussudio

Version:

An unofficial VS Code Internal API

196 lines (195 loc) 10.8 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { localize } from "../../../nls.mjs"; import { createDecorator } from "../../instantiation/common/instantiation.mjs"; export const EXTENSION_IDENTIFIER_PATTERN = '^([a-z0-9A-Z][a-z0-9-A-Z]*)\\.([a-z0-9A-Z][a-z0-9-A-Z]*)$'; export const EXTENSION_IDENTIFIER_REGEX = new RegExp(EXTENSION_IDENTIFIER_PATTERN); export const WEB_EXTENSION_TAG = '__web_extension'; export function TargetPlatformToString(targetPlatform) { switch (targetPlatform) { case "win32-x64" /* TargetPlatform.WIN32_X64 */: return 'Windows 64 bit'; case "win32-ia32" /* TargetPlatform.WIN32_IA32 */: return 'Windows 32 bit'; case "win32-arm64" /* TargetPlatform.WIN32_ARM64 */: return 'Windows ARM'; case "linux-x64" /* TargetPlatform.LINUX_X64 */: return 'Linux 64 bit'; case "linux-arm64" /* TargetPlatform.LINUX_ARM64 */: return 'Linux ARM 64'; case "linux-armhf" /* TargetPlatform.LINUX_ARMHF */: return 'Linux ARM'; case "alpine-x64" /* TargetPlatform.ALPINE_X64 */: return 'Alpine Linux 64 bit'; case "alpine-arm64" /* TargetPlatform.ALPINE_ARM64 */: return 'Alpine ARM 64'; case "darwin-x64" /* TargetPlatform.DARWIN_X64 */: return 'Mac'; case "darwin-arm64" /* TargetPlatform.DARWIN_ARM64 */: return 'Mac Silicon'; case "web" /* TargetPlatform.WEB */: return 'Web'; case "universal" /* TargetPlatform.UNIVERSAL */: return "universal" /* TargetPlatform.UNIVERSAL */; case "unknown" /* TargetPlatform.UNKNOWN */: return "unknown" /* TargetPlatform.UNKNOWN */; case "undefined" /* TargetPlatform.UNDEFINED */: return "undefined" /* TargetPlatform.UNDEFINED */; } } export function toTargetPlatform(targetPlatform) { switch (targetPlatform) { case "win32-x64" /* TargetPlatform.WIN32_X64 */: return "win32-x64" /* TargetPlatform.WIN32_X64 */; case "win32-ia32" /* TargetPlatform.WIN32_IA32 */: return "win32-ia32" /* TargetPlatform.WIN32_IA32 */; case "win32-arm64" /* TargetPlatform.WIN32_ARM64 */: return "win32-arm64" /* TargetPlatform.WIN32_ARM64 */; case "linux-x64" /* TargetPlatform.LINUX_X64 */: return "linux-x64" /* TargetPlatform.LINUX_X64 */; case "linux-arm64" /* TargetPlatform.LINUX_ARM64 */: return "linux-arm64" /* TargetPlatform.LINUX_ARM64 */; case "linux-armhf" /* TargetPlatform.LINUX_ARMHF */: return "linux-armhf" /* TargetPlatform.LINUX_ARMHF */; case "alpine-x64" /* TargetPlatform.ALPINE_X64 */: return "alpine-x64" /* TargetPlatform.ALPINE_X64 */; case "alpine-arm64" /* TargetPlatform.ALPINE_ARM64 */: return "alpine-arm64" /* TargetPlatform.ALPINE_ARM64 */; case "darwin-x64" /* TargetPlatform.DARWIN_X64 */: return "darwin-x64" /* TargetPlatform.DARWIN_X64 */; case "darwin-arm64" /* TargetPlatform.DARWIN_ARM64 */: return "darwin-arm64" /* TargetPlatform.DARWIN_ARM64 */; case "web" /* TargetPlatform.WEB */: return "web" /* TargetPlatform.WEB */; case "universal" /* TargetPlatform.UNIVERSAL */: return "universal" /* TargetPlatform.UNIVERSAL */; default: return "unknown" /* TargetPlatform.UNKNOWN */; } } export function getTargetPlatform(platform, arch) { switch (platform) { case 3 /* Platform.Windows */: if (arch === 'x64') { return "win32-x64" /* TargetPlatform.WIN32_X64 */; } if (arch === 'ia32') { return "win32-ia32" /* TargetPlatform.WIN32_IA32 */; } if (arch === 'arm64') { return "win32-arm64" /* TargetPlatform.WIN32_ARM64 */; } return "unknown" /* TargetPlatform.UNKNOWN */; case 2 /* Platform.Linux */: if (arch === 'x64') { return "linux-x64" /* TargetPlatform.LINUX_X64 */; } if (arch === 'arm64') { return "linux-arm64" /* TargetPlatform.LINUX_ARM64 */; } if (arch === 'arm') { return "linux-armhf" /* TargetPlatform.LINUX_ARMHF */; } return "unknown" /* TargetPlatform.UNKNOWN */; case 'alpine': if (arch === 'x64') { return "alpine-x64" /* TargetPlatform.ALPINE_X64 */; } if (arch === 'arm64') { return "alpine-arm64" /* TargetPlatform.ALPINE_ARM64 */; } return "unknown" /* TargetPlatform.UNKNOWN */; case 1 /* Platform.Mac */: if (arch === 'x64') { return "darwin-x64" /* TargetPlatform.DARWIN_X64 */; } if (arch === 'arm64') { return "darwin-arm64" /* TargetPlatform.DARWIN_ARM64 */; } return "unknown" /* TargetPlatform.UNKNOWN */; case 0 /* Platform.Web */: return "web" /* TargetPlatform.WEB */; } } export function isNotWebExtensionInWebTargetPlatform(allTargetPlatforms, productTargetPlatform) { // Not a web extension in web target platform return productTargetPlatform === "web" /* TargetPlatform.WEB */ && !allTargetPlatforms.includes("web" /* TargetPlatform.WEB */); } export function isTargetPlatformCompatible(extensionTargetPlatform, allTargetPlatforms, productTargetPlatform) { // Not compatible when extension is not a web extension in web target platform if (isNotWebExtensionInWebTargetPlatform(allTargetPlatforms, productTargetPlatform)) { return false; } // Compatible when extension target platform is not defined if (extensionTargetPlatform === "undefined" /* TargetPlatform.UNDEFINED */) { return true; } // Compatible when extension target platform is universal if (extensionTargetPlatform === "universal" /* TargetPlatform.UNIVERSAL */) { return true; } // Not compatible when extension target platform is unknown if (extensionTargetPlatform === "unknown" /* TargetPlatform.UNKNOWN */) { return false; } // Compatible when extension and product target platforms matches if (extensionTargetPlatform === productTargetPlatform) { return true; } // Fallback const fallbackTargetPlatforms = getFallbackTargetPlarforms(productTargetPlatform); return fallbackTargetPlatforms.includes(extensionTargetPlatform); } export function getFallbackTargetPlarforms(targetPlatform) { switch (targetPlatform) { case "win32-x64" /* TargetPlatform.WIN32_X64 */: return ["win32-ia32" /* TargetPlatform.WIN32_IA32 */]; case "win32-arm64" /* TargetPlatform.WIN32_ARM64 */: return ["win32-ia32" /* TargetPlatform.WIN32_IA32 */]; } return []; } export function isIExtensionIdentifier(thing) { return thing && typeof thing === 'object' && typeof thing.id === 'string' && (!thing.uuid || typeof thing.uuid === 'string'); } export var SortBy; (function (SortBy) { SortBy[SortBy["NoneOrRelevance"] = 0] = "NoneOrRelevance"; SortBy[SortBy["LastUpdatedDate"] = 1] = "LastUpdatedDate"; SortBy[SortBy["Title"] = 2] = "Title"; SortBy[SortBy["PublisherName"] = 3] = "PublisherName"; SortBy[SortBy["InstallCount"] = 4] = "InstallCount"; SortBy[SortBy["PublishedDate"] = 10] = "PublishedDate"; SortBy[SortBy["AverageRating"] = 6] = "AverageRating"; SortBy[SortBy["WeightedRating"] = 12] = "WeightedRating"; })(SortBy || (SortBy = {})); export var SortOrder; (function (SortOrder) { SortOrder[SortOrder["Default"] = 0] = "Default"; SortOrder[SortOrder["Ascending"] = 1] = "Ascending"; SortOrder[SortOrder["Descending"] = 2] = "Descending"; })(SortOrder || (SortOrder = {})); export var StatisticType; (function (StatisticType) { StatisticType["Install"] = "install"; StatisticType["Uninstall"] = "uninstall"; })(StatisticType || (StatisticType = {})); export var InstallOperation; (function (InstallOperation) { InstallOperation[InstallOperation["None"] = 1] = "None"; InstallOperation[InstallOperation["Install"] = 2] = "Install"; InstallOperation[InstallOperation["Update"] = 3] = "Update"; InstallOperation[InstallOperation["Migrate"] = 4] = "Migrate"; })(InstallOperation || (InstallOperation = {})); export const IExtensionGalleryService = createDecorator('extensionGalleryService'); export var ExtensionManagementErrorCode; (function (ExtensionManagementErrorCode) { ExtensionManagementErrorCode["Unsupported"] = "Unsupported"; ExtensionManagementErrorCode["Deprecated"] = "Deprecated"; ExtensionManagementErrorCode["Malicious"] = "Malicious"; ExtensionManagementErrorCode["Incompatible"] = "Incompatible"; ExtensionManagementErrorCode["IncompatiblePreRelease"] = "IncompatiblePreRelease"; ExtensionManagementErrorCode["IncompatibleTargetPlatform"] = "IncompatibleTargetPlatform"; ExtensionManagementErrorCode["ReleaseVersionNotFound"] = "ReleaseVersionNotFound"; ExtensionManagementErrorCode["Invalid"] = "Invalid"; ExtensionManagementErrorCode["Download"] = "Download"; ExtensionManagementErrorCode["Extract"] = "Extract"; ExtensionManagementErrorCode["Delete"] = "Delete"; ExtensionManagementErrorCode["Rename"] = "Rename"; ExtensionManagementErrorCode["CorruptZip"] = "CorruptZip"; ExtensionManagementErrorCode["IncompleteZip"] = "IncompleteZip"; ExtensionManagementErrorCode["Internal"] = "Internal"; ExtensionManagementErrorCode["Signature"] = "Signature"; })(ExtensionManagementErrorCode || (ExtensionManagementErrorCode = {})); export class ExtensionManagementError extends Error { code; constructor(message, code) { super(message); this.code = code; this.name = code; } } export const IExtensionManagementService = createDecorator('extensionManagementService'); export const DISABLED_EXTENSIONS_STORAGE_PATH = 'extensionsIdentifiers/disabled'; export const ENABLED_EXTENSIONS_STORAGE_PATH = 'extensionsIdentifiers/enabled'; export const IGlobalExtensionEnablementService = createDecorator('IGlobalExtensionEnablementService'); export const IExtensionTipsService = createDecorator('IExtensionTipsService'); export const ExtensionsLabel = localize('extensions', "Extensions"); export const ExtensionsLocalizedLabel = { value: ExtensionsLabel, original: 'Extensions' }; export const PreferencesLabel = localize('preferences', "Preferences"); export const PreferencesLocalizedLabel = { value: PreferencesLabel, original: 'Preferences' };