/**
* This file is part of the NocoBase (R) project.
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
* Authors: NocoBase Team.
*
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
///
import { CleanOptions, Collection, SyncOptions } from '@nocobase/database';
import net from 'net';
import Application from '../application';
import { Plugin } from '../plugin';
import { PluginManagerRepository } from './plugin-manager-repository';
import { PluginData } from './types';
import { checkAndGetCompatible } from './utils';
export declare const sleep: (timeout?: number) => Promise;
export interface PluginManagerOptions {
app: Application;
plugins?: any[];
}
export interface InstallOptions {
cliArgs?: any[];
clean?: CleanOptions | boolean;
force?: boolean;
sync?: SyncOptions;
}
export declare class AddPresetError extends Error {
}
export declare class PluginManager {
options: PluginManagerOptions;
static checkAndGetCompatible: typeof checkAndGetCompatible;
/**
* @internal
*/
app: Application;
/**
* @internal
*/
collection: Collection;
/**
* @internal
*/
pluginInstances: Map>;
/**
* @internal
*/
pluginAliases: Map>;
/**
* @internal
*/
server: net.Server;
/**
* @internal
*/
constructor(options: PluginManagerOptions);
/**
* @internal
*/
_repository: PluginManagerRepository;
get repository(): PluginManagerRepository;
static packageExists(nameOrPkg: string): Promise;
/**
* @internal
*/
static getPackageJson(nameOrPkg: string): Promise;
/**
* @internal
*/
static getPackageName(name: string): Promise;
/**
* @internal
*/
static getPluginPkgPrefix(): string[];
/**
* @internal
*/
static findPackage(name: string): Promise;
/**
* @internal
*/
static clearCache(packageName: string): void;
/**
* @internal
*/
static resolvePlugin(pluginName: string | typeof Plugin, isUpgrade?: boolean, isPkg?: boolean): Promise;
static parsedNames: {};
static parseName(nameOrPkg: string): Promise;
addPreset(plugin: string | typeof Plugin, options?: any): void;
getPlugins(): Map>;
getAliases(): IterableIterator;
get(name: string | typeof Plugin | (new () => T)): T;
has(name: string | typeof Plugin): boolean;
del(name: any): void;
create(pluginName: string, options?: {
forceRecreate?: boolean;
}): Promise;
addOrThrow(plugin?: string | typeof Plugin, options?: any, insert?: boolean, isUpgrade?: boolean): Promise;
add(plugin?: string | typeof Plugin, options?: any, insert?: boolean, isUpgrade?: boolean): Promise;
/**
* @internal
*/
initPlugins(): Promise;
/**
* @internal
*/
loadCommands(): Promise;
load(options?: any): Promise;
install(options?: InstallOptions): Promise;
enable(nameOrPkg: string | string[]): Promise;
disable(name: string | string[]): Promise;
remove(name: string | string[], options?: {
removeDir?: boolean;
force?: boolean;
}): Promise;
pull(urlOrName: string | string[], options?: PluginData, emitStartedEvent?: boolean): Promise;
/**
* @internal
*/
addViaCLI(urlOrName: string | string[], options?: PluginData, emitStartedEvent?: boolean): Promise;
/**
* @internal
*/
addByNpm(options: {
packageName: string;
name?: string;
registry: string;
authToken?: string;
}, throwError?: boolean): Promise;
/**
* @internal
*/
addByFile(options: {
file: string;
registry?: string;
authToken?: string;
type?: string;
name?: string;
}, throwError?: boolean): Promise;
/**
* @internal
*/
addByCompressedFileUrl(options: {
compressedFileUrl: string;
registry?: string;
authToken?: string;
type?: string;
name?: string;
}, throwError?: boolean): Promise;
update(nameOrPkg: string | string[], options: PluginData, emitStartedEvent?: boolean): Promise;
/**
* @internal
*/
upgradeByNpm(values: PluginData): Promise;
/**
* @internal
*/
upgradeByCompressedFileUrl(options: PluginData): Promise;
/**
* @internal
*/
getNameByPackageName(packageName: string): string;
list(options?: any): Promise;
/**
* @internal
*/
getNpmVersionList(name: string): Promise;
/**
* @internal
*/
loadPresetMigrations(): Promise<{
beforeLoad: {
up: () => Promise;
};
afterSync: {
up: () => Promise;
};
afterLoad: {
up: () => Promise;
};
}>;
/**
* @internal
*/
loadOtherMigrations(): Promise<{
beforeLoad: {
up: () => Promise;
};
afterSync: {
up: () => Promise;
};
afterLoad: {
up: () => Promise;
};
}>;
/**
* @internal
*/
loadPresetPlugins(): Promise;
upgrade(): Promise;
/**
* @internal
*/
initOtherPlugins(): Promise;
/**
* @internal
*/
initPresetPlugins(): Promise;
private sort;
}
export default PluginManager;