UNPKG

@iamevan/electron-chrome-web-store

Version:

Install and update Chrome extensions from the Chrome Web Store for Electron

64 lines (63 loc) 2.17 kB
export type ExtensionId = Electron.Extension['id']; export interface ExtensionInstallDetails { id: string; localizedName: string; manifest: chrome.runtime.Manifest; icon: Electron.NativeImage; browserWindow?: Electron.BrowserWindow; frame: Electron.WebFrameMain; } export type BeforeInstall = (details: ExtensionInstallDetails) => Promise<{ action: 'allow' | 'deny'; }>; export type AfterInstall = (details: ExtensionInstallDetails) => Promise<void>; export type AfterUninstall = (details: { id: ExtensionId; }) => Promise<void>; export type ExtensionStatusDetails = { session: Electron.Session; extensionsPath: string; }; export type SetExtensionEnabled = (extensionId: ExtensionId, details: ExtensionStatusDetails, enabled: boolean) => Promise<void>; export type GetExtensionInstallStatus = (extensionId: ExtensionId, details: ExtensionStatusDetails, manifest?: chrome.runtime.Manifest) => string | undefined; export interface WebStoreState { session: Electron.Session; extensionsPath: string; installing: Set<ExtensionId>; allowlist?: Set<ExtensionId>; denylist?: Set<ExtensionId>; minimumManifestVersion: number; beforeInstall?: BeforeInstall; afterInstall?: AfterInstall; afterUninstall?: AfterUninstall; setExtensionEnabled?: SetExtensionEnabled; getExtensionInstallStatus?: GetExtensionInstallStatus; getAllExtensions?: () => Promise<ChromeWebStoreExtensionInfo[]>; } interface ChromeWebStoreExtensionIcon { size: number; url: string; } export interface ChromeWebStoreExtensionInfo { id: string; name: string; shortName: string; description: string; version: string; versionName?: string; type: 'extension'; enabled: boolean; disabledReason?: 'unknown' | 'permissions_increase' | (string & {}); installType: 'normal' | 'sideload' | 'development'; isApp: boolean; offlineEnabled: boolean; mayDisable: boolean; mayEnable?: boolean; permissions: string[]; hostPermissions: string[]; homepageUrl: string; optionsUrl: string; updateUrl?: string; icons: ChromeWebStoreExtensionIcon[]; } export {};