UNPKG

homebridge-config-ui-x

Version:

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

102 lines (101 loc) 4.54 kB
import type { HomebridgePlugin, HomebridgePluginUiMetadata, HomebridgePluginVersions, PluginAlias } from './plugins.interfaces.js'; import { EventEmitter } from 'node:events'; import { HttpService } from '@nestjs/axios'; import { ConfigService } from '../../core/config/config.service.js'; import { HomebridgeIpcService } from '../../core/homebridge-ipc/homebridge-ipc.service.js'; import { Logger } from '../../core/logger/logger.service.js'; import { NodePtyService } from '../../core/node-pty/node-pty.service.js'; import { ChildBridgesService } from '../child-bridges/child-bridges.service.js'; import { HomebridgeUpdateActionDto, PluginActionDto } from './plugins.dto.js'; export declare class PluginsService { private readonly httpService; private readonly nodePtyService; private readonly logger; private readonly configService; private readonly homebridgeIpcService; private readonly childBridgesService; private _npm; private _paths; private get npm(); private get paths(); private static readonly UI_RESTART_DELAY_MS; private installedPlugins; private npmPackage; private pluginListUrl; private pluginListFile; private pluginListRetryTimeout; private hiddenPlugins; private hiddenScopes; private unmaintainedPlugins; private pluginIcons; private pluginAuthors; private pluginNames; private pluginChangelogs; private newScopePlugins; private scopedPluginNames; private verifiedPlugins; private verifiedPlusPlugins; private npmPluginCache; private pluginAliasCache; private installedPluginsCache; private pluginAliasHints; constructor(httpService: HttpService, nodePtyService: NodePtyService, logger: Logger, configService: ConfigService, homebridgeIpcService: HomebridgeIpcService, childBridgesService: ChildBridgesService); private fixDisplayName; getInstalledPlugins(): Promise<HomebridgePlugin[]>; getOutOfDatePlugins(): Promise<HomebridgePlugin[]>; lookupPlugin(pluginName: string): Promise<HomebridgePlugin>; getAvailablePluginVersions(pluginName: string): Promise<HomebridgePluginVersions>; private extractTerms; private getPluginKeywords; private matchesPlugin; searchNpmRegistry(query: string): Promise<HomebridgePlugin[]>; searchNpmRegistrySingle(query: string): Promise<HomebridgePlugin[]>; private manageUi; managePlugin(action: 'install' | 'uninstall', pluginAction: PluginActionDto, client: EventEmitter): Promise<boolean>; getHomebridgePackage(): Promise<HomebridgePlugin>; updateHomebridgePackage(homebridgeUpdateAction: HomebridgeUpdateActionDto, client: EventEmitter): Promise<boolean>; triggerUpdate(name: string, version?: string): Promise<{ ok: boolean; name: string; version: string; }>; clearInstalledPluginsCache(): void; getHomebridgeUiPackage(): Promise<HomebridgePlugin>; getNpmPackage(): Promise<HomebridgePlugin>; isPluginBundleAvailable(pluginAction: PluginActionDto): Promise<boolean>; doPluginBundleUpdate(pluginAction: PluginActionDto, client: EventEmitter): Promise<boolean>; private getPluginReleaseTag; 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; notes: any; changelog: any; latestVersion: string; }>; getPluginAlias(pluginName: string): Promise<PluginAlias>; getPluginChildBridgeUsernames(pluginName: string): Promise<string[]>; getPluginUiMetadata(pluginName: string): Promise<HomebridgePluginUiMetadata>; private getDisabledPlugins; private getInstalledScopedModules; private getInstalledModules; private isScopedPlugin; private isHiddenPlugin; private getNpmPath; private getBasePaths; private getNpmPrefixToSearchPaths; private checkForBetaUpdates; private parsePackageJson; private getPluginFromNpm; getNpmModuleLatestVersion(npmModuleName: string): Promise<string>; private runNpmCommand; private ensureCustomPluginDirExists; private removeSynologyMetadata; private cleanNpmCache; private loadPluginList; }