UNPKG

@banana020/ast-plugin-system

Version:

AST插件系统 - 支持JavaScript/TypeScript代码转换,包含十六进制转换、代码清理等功能

190 lines (189 loc) 4.99 kB
import { type ASTPlugin, type PluginInfo } from './src/types/index.ts'; /** * 转换配置 */ export interface TransformConfig { inputDir: string; outputDir: string; plugins: PluginInfo[]; include: string[]; exclude: string[]; preserveStructure: boolean; } /** * 默认转换配置 */ export declare const defaultConfig: TransformConfig; /** * 自定义配置示例 */ export declare const customConfigs: { jsOnly: { include: string[]; inputDir: string; outputDir: string; plugins: PluginInfo[]; exclude: string[]; preserveStructure: boolean; }; typeSpecific: { plugins: { name: string; description: string; version: string; plugin: ASTPlugin; nodeTypes: string[]; }[]; inputDir: string; outputDir: string; include: string[]; exclude: string[]; preserveStructure: boolean; }; delExtraOnly: { plugins: PluginInfo[]; inputDir: string; outputDir: string; include: string[]; exclude: string[]; preserveStructure: boolean; }; deadCodeCleanup: { plugins: { name: string; description: string; version: string; plugin: ASTPlugin; nodeTypes: string[]; }[]; inputDir: string; outputDir: string; include: string[]; exclude: string[]; preserveStructure: boolean; }; constantCalculation: { plugins: { name: string; description: string; version: string; plugin: ASTPlugin; nodeTypes: string[]; }[]; inputDir: string; outputDir: string; include: string[]; exclude: string[]; preserveStructure: boolean; }; codeOptimization: { plugins: { name: string; description: string; version: string; plugin: ASTPlugin; nodeTypes: string[]; }[]; inputDir: string; outputDir: string; include: string[]; exclude: string[]; preserveStructure: boolean; }; flatten: { preserveStructure: boolean; inputDir: string; outputDir: string; plugins: PluginInfo[]; include: string[]; exclude: string[]; }; errorHandlingEnhancement: { plugins: { name: string; description: string; version: string; plugin: ASTPlugin; nodeTypes: string[]; }[]; inputDir: string; outputDir: string; include: string[]; exclude: string[]; preserveStructure: boolean; }; variableRenaming: { plugins: { name: string; description: string; version: string; plugin: ASTPlugin<import("./src/plugins/rename-var.ts").PluginOptions>; nodeTypes: string[]; }[]; inputDir: string; outputDir: string; include: string[]; exclude: string[]; preserveStructure: boolean; }; hexVariableRenaming: { plugins: { name: string; description: string; version: string; plugin: ASTPlugin<import("./src/plugins/rename-var.ts").PluginOptions>; nodeTypes: string[]; options: { hexadecimalOnly: boolean; }; }[]; inputDir: string; outputDir: string; include: string[]; exclude: string[]; preserveStructure: boolean; }; customPrefixRenaming: { plugins: { name: string; description: string; version: string; plugin: ASTPlugin<import("./src/plugins/rename-var.ts").PluginOptions>; nodeTypes: string[]; options: { variablePrefix: string; functionPrefix: string; paramPrefix: string; }; }[]; inputDir: string; outputDir: string; include: string[]; exclude: string[]; preserveStructure: boolean; }; deobfuscation: { plugins: ({ name: string; description: string; version: string; plugin: ASTPlugin; nodeTypes: string[]; options?: undefined; } | { name: string; description: string; version: string; plugin: ASTPlugin<import("./src/plugins/rename-var.ts").PluginOptions>; nodeTypes: string[]; options: { hexadecimalOnly: boolean; }; })[]; inputDir: string; outputDir: string; include: string[]; exclude: string[]; preserveStructure: boolean; }; };