UNPKG

memepack-builder

Version:
367 lines (318 loc) 7.72 kB
/** * @public */ export declare interface ArchiveContentEntry { content: Record<string, any>; } /** * @public */ export declare type ArchiveEntry = ArchiveFileEntry | ArchiveContentEntry; /** * @public */ export declare interface ArchiveFileEntry { filePath: string; } /** * @public */ export declare interface ArchiveJsonContentEntry extends ArchiveContentEntry { patch?: JsonContentPatch; } /** * @public */ export declare type ArchiveJsonEntry = ArchiveJsonContentEntry | ArchiveJsonFileEntry; /** * @public */ export declare interface ArchiveJsonFileEntry extends ArchiveFileEntry { patch?: JsonContentPatch; } /** * @public */ export declare interface ArchiveLangFileEntry extends ArchiveFileEntry { patch?: JsonContentPatch; } /** * @public */ export declare type ArchiveMap = Map<string, ArchiveEntry>; /** * @public */ export declare type ArchivePatchableEntry = ArchiveJsonContentEntry | ArchiveLangFileEntry | ArchiveJsonFileEntry; /** * @public */ export declare interface BaseBuildOptions { modules: { resource: string[]; collection: string[]; }; compatible: boolean; } /** * @public */ export declare interface BaseModuleManifest { name: string; description: string; author: string[]; incompatibleWith?: string[]; } /** * @public */ export declare interface BedrockBuildOptions extends BaseBuildOptions { platform: 'bedrock'; type: 'normal'; } /** * @public */ export declare class BedrockOptionValidator { #private; constructor(options: BedrockBuildOptions); validateOptions(): boolean; } /** * @public */ export declare class BedrockPackBuilder extends PackBuilder { #private; build(options: BedrockBuildOptions): Promise<Buffer>; } /** * @public */ export declare interface BedrockTextureFile { texture_data: Record<string, unknown>; } /** * @public */ export declare interface CollectionModule { path: string; manifest: CollectionModuleManifest; } /** * @public */ export declare interface CollectionModuleManifest extends BaseModuleManifest { type: 'collection'; contains?: string[]; } /** * @public */ export declare const COMPATIBLE_FILENAME_CONFIG: { 'assets/minecraft/lang/zh_meme\\.(.+)': string; }; /** * * @param selectedModules - modules to be processed. * @returns * @public */ export declare function generateArchiveEntries(selectedModules: ResourceModule[]): Promise<ArchiveMap>; /** * * @param textureFileName - output file name * @param selectedModules - generate file from these modules * @returns * @public */ export declare function generateBedrockTextureFile(textureFileName: string, selectedModules: ResourceModule[]): Promise<BedrockTextureFile>; /** * @public */ export declare function generateJsonModification(selectedModules: ResourceModule[]): Promise<JsonModification>; /** * @public */ export declare const JAVA_LEGACY_FORMAT_VERSION = 3; /** * @public */ export declare interface JavaBuildOptions extends BaseBuildOptions { platform: 'java'; type: 'normal' | 'legacy'; format: number; mod: string[]; } /** * @public */ export declare class JavaOptionValidator { #private; constructor(options: JavaBuildOptions); validateOptions(): boolean; } /** * @public */ export declare class JavaPackBuilder extends PackBuilder { #private; constructor(parsedModules: ResourceModule[], priorityFilePath: string, legacyMappingFilePath: string); build(options: JavaBuildOptions): Promise<Buffer>; } /** * @public */ export declare type JsonAdditionPatch = Map<string, string>; /** * @public */ export declare interface JsonContentPatch { flatKey?: JsonFlatKeyPatch; nestedKey?: JsonNestedKeyPatch; } /** * @public */ export declare type JsonDeletionPatch = Set<string>; /** * @public */ export declare type JsonFlatAdditionMap = Map<string, JsonAdditionPatch>; /** * @public */ export declare type JsonFlatDeletionMap = Map<string, JsonDeletionPatch>; /** * @public */ export declare interface JsonFlatKeyPatch { addition?: JsonAdditionPatch; deletion?: JsonDeletionPatch; } /** * @public */ export declare interface JsonModification { addition: JsonFlatAdditionMap; deletion: JsonFlatDeletionMap; } /** * @public */ export declare interface JsonNestedKeyPatch { addition?: Map<string, any>; deletion?: JsonDeletionPatch; } /** * @public */ export declare class JsonPatch { static applyJsonContentPatch(content: Record<string, any>, patch: JsonContentPatch): Record<string, any>; static applyJsonFilePatch(filePath: string, patch: JsonContentPatch): Promise<Record<string, any>>; static applyJsonFlatKeyPatch(content: Record<string, any>, patch: JsonFlatKeyPatch): Record<string, any>; static applyJsonNestedKeyPatch(content: Record<string, any>, patch: JsonNestedKeyPatch): Record<string, any>; } /** * @public */ export declare interface JsonPatchDefinition { file: string; add?: string; remove?: string; } /** * @public */ export declare class LangFileConverter { static parseJavaLang(rawContent: string): any; static dumpJavaLang(obj: PureJson): string; static parseBedrockLang(rawContent: string): any; static dumpBedrockLang(obj: PureJson): string; } /** * @public */ export declare interface LanguageModificationDefinition { file: string; add?: string; remove?: string; } /** * @public */ export declare const LEGACY_FILE_CONTENT_CONFIG: { 'assets/minecraft/lang/zh_cn.lang': { requireLegacyMapping: boolean; }; }; /** * @public */ export declare const LEGACY_FILENAME_CONFIG: { 'assets/minecraft/lang/zh_meme\\.(.+)': string; 'assets/minecraft/lang/zh_cn\\.(.+)': string; 'assets/minecraft/textures/block/(.+)': string; 'assets/minecraft/textures/item/(.+)': string; }; /** * @public */ export declare type MemeModule = ResourceModule | CollectionModule; /** * @public */ export declare type MemeModuleManifest = ResourceModuleManifest | CollectionModuleManifest; /** * @public */ export declare const MODULE_MANIFEST_FILENAME = "module_manifest.json"; /** * @public */ export declare class ModuleParser { #private; addSearchPaths(...paths: string[]): void; searchModules(): Promise<MemeModule[]>; } /** * @public */ export declare class PackBuilder { #private; parsedModules: MemeModule[]; priorityFilePath: string; entries: ArchiveMap; constructor(parsedModules: MemeModule[], priorityFilePath: string); get selectedModules(): ResourceModule[]; protected sortModules(): Promise<void>; getPackEntries(): Promise<ArchiveMap>; static getPackHash(content: Buffer): string; decideSelectedModules(options: BaseBuildOptions): ResourceModule[]; } /** * @public */ export declare type PureJson = Record<string, string>; /** * @public */ export declare interface ResourceModule { path: string; manifest: ResourceModuleManifest; files: string[]; } /** * @public */ export declare interface ResourceModuleManifest extends BaseModuleManifest { type: 'resource'; languageModification?: JsonPatchDefinition[]; } /** * @public */ export declare interface TransformOptions { compatible: boolean; format: number; } export { }