homebridge-config-ui-x
Version:
A web based management, configuration and control platform for Homebridge
57 lines (56 loc) • 1.93 kB
TypeScript
import { Logger } from '../../core/logger/logger.service';
import { ConfigService } from '../../core/config/config.service';
export interface HomebridgePlugin {
name: string;
displayName?: string;
description?: string;
certifiedPlugin?: boolean;
publicPackage?: boolean;
installedVersion?: string;
latestVersion?: boolean;
lastUpdated?: string;
updateAvailable?: boolean;
installPath?: string;
globalInstall?: boolean;
settingsSchema?: boolean;
links?: {
npm?: string;
homepage?: string;
bugs?: string;
};
author?: string;
}
export declare class PluginsService {
private configService;
private logger;
private npm;
private paths;
private installedPlugins;
private rp;
constructor(configService: ConfigService, logger: Logger);
getInstalledPlugins(): Promise<HomebridgePlugin[]>;
getOutOfDatePlugins(): Promise<HomebridgePlugin[]>;
searchNpmRegistry(query: string): Promise<HomebridgePlugin[]>;
searchNpmRegistrySingle(query: string): Promise<HomebridgePlugin[]>;
installPlugin(pluginName: string, client: any): Promise<boolean>;
uninstallPlugin(pluginName: string, client: any): Promise<boolean>;
updatePlugin(pluginName: string, client: any): Promise<boolean>;
getHomebridgePackage(): Promise<HomebridgePlugin>;
updateHomebridgePackage(client: any): Promise<boolean>;
updateSelfOffline(client: any): Promise<void>;
getPluginConfigSchema(pluginName: string): Promise<any>;
getPluginChangeLog(pluginName: string): Promise<{
changelog: string;
}>;
getPluginRelease(pluginName: string): Promise<{
name: any;
changelog: any;
}>;
private getInstalledModules;
private getNpmPath;
private getBasePaths;
private parsePackageJson;
private getPluginFromNpm;
private runNpmCommand;
private ensureCustomPluginDirExists;
}