UNPKG

homebridge-config-ui-x

Version:

A web based management, configuration and control platform for Homebridge.

84 lines (83 loc) 3.74 kB
import type { EventEmitter } from 'node:events'; import type { HomebridgePlugin, HomebridgePluginUiMetadata, HomebridgePluginVersions, PluginAlias } from './types'; import { HttpService } from '@nestjs/axios'; import { ConfigService } from '../../core/config/config.service'; import { Logger } from '../../core/logger/logger.service'; import { NodePtyService } from '../../core/node-pty/node-pty.service'; import { HomebridgeUpdateActionDto, PluginActionDto } from './plugins.dto'; export declare class PluginsService { private httpService; private nodePtyService; private logger; private configService; private static readonly PLUGIN_IDENTIFIER_PATTERN; private npm; private paths; private installedPlugins; private npmPackage; private pluginListUrl; private pluginListFile; private pluginListRetryTimeout; private hiddenPlugins; private maintainedPlugins; private pluginIcons; private pluginAuthors; private pluginNames; private newScopePlugins; private verifiedPlugins; private verifiedPlusPlugins; private npmPluginCache; private pluginAliasCache; private pluginAliasHints; constructor(httpService: HttpService, nodePtyService: NodePtyService, logger: Logger, configService: ConfigService); private fixDisplayName; getInstalledPlugins(): Promise<HomebridgePlugin[]>; getOutOfDatePlugins(): Promise<HomebridgePlugin[]>; lookupPlugin(pluginName: string): Promise<HomebridgePlugin>; getAvailablePluginVersions(pluginName: string): Promise<HomebridgePluginVersions>; searchNpmRegistry(query: string): Promise<HomebridgePlugin[]>; searchNpmRegistrySingle(query: string): Promise<HomebridgePlugin[]>; manageUi(action: 'install' | 'uninstall', pluginAction: PluginActionDto, client: EventEmitter): Promise<boolean>; managePlugin(action: 'install' | 'uninstall', pluginAction: PluginActionDto, client: EventEmitter): Promise<boolean>; getHomebridgePackage(): Promise<HomebridgePlugin>; updateHomebridgePackage(homebridgeUpdateAction: HomebridgeUpdateActionDto, client: EventEmitter): Promise<boolean>; getHomebridgeUiPackage(): Promise<HomebridgePlugin & { readyForV5: { node: boolean; pnpm: boolean; arch: boolean; service: boolean; }; }>; getNpmPackage(): Promise<HomebridgePlugin>; isPluginBundleAvailable(pluginAction: PluginActionDto): Promise<boolean>; doPluginBundleUpdate(pluginAction: PluginActionDto, client: EventEmitter): Promise<boolean>; isUiUpdateBundleAvailable(pluginAction: PluginActionDto): Promise<string>; doUiBundleUpdate(pluginAction: PluginActionDto, client: EventEmitter, githubReleaseName: string): Promise<void>; updateSelfOffline(client: EventEmitter): Promise<void>; getPluginConfigSchema(pluginName: string): Promise<any>; getPluginChangeLog(pluginName: string): Promise<{ changelog: string; }>; getPluginRelease(pluginName: string): Promise<{ name: any; changelog: any; }>; getPluginAlias(pluginName: string): Promise<PluginAlias>; getPluginUiMetadata(pluginName: string): Promise<HomebridgePluginUiMetadata>; private getDisabledPlugins; private getInstalledScopedModules; private getInstalledModules; private isScopedPlugin; private getNpmPath; private getBasePaths; private getNpmPrefixToSearchPaths; private parsePackageJson; private getPluginFromNpm; getNpmModuleLatestVersion(npmModuleName: string): Promise<string>; private runNpmCommand; private ensureCustomPluginDirExists; private removeSynologyMetadata; private cleanNpmCache; private loadPluginList; }