bc-symbols-mcp
Version:
MCP server for analyzing Business Central .app files and BC object structures
60 lines • 1.77 kB
TypeScript
import { BCSymbolReference } from '../types/bc-types.js';
interface StreamingSymbolIndex {
runtimeVersion: string;
objectIndex: Map<string, ObjectMetadata>;
totalObjects: number;
loadedObjects: number;
}
interface ObjectMetadata {
objectType: string;
objectId: number;
name: string;
namespace: string;
offset: number;
size: number;
loaded: boolean;
}
export declare class StreamingSymbolParser {
private symbolIndex;
private rawData;
constructor();
/**
* Parse symbols with progressive loading - builds index first, loads objects on demand
*/
parseSymbolsProgressive(symbolsBuffer: Buffer): Promise<StreamingSymbolIndex>;
/**
* Build a lightweight index of all objects without loading their full data
*/
private buildObjectIndex;
/**
* Load specific object on demand
*/
loadObject(objectType: string, objectId: number, objectName: string): Promise<any>;
/**
* Load objects of a specific type on demand
*/
loadObjectsByType(objectType: string): Promise<any[]>;
/**
* Get object metadata without loading full object
*/
getObjectMetadata(objectType: string, objectId?: number, objectName?: string): ObjectMetadata[];
/**
* Get loading statistics
*/
getLoadingStats(): {
total: number;
loaded: number;
percentage: number;
};
/**
* Create minimal compatible symbol reference for existing code
*/
createLazySymbolReference(): BCSymbolReference;
private createLazyNamespace;
private isObjectArray;
private getObjectTypeFromPath;
private createObjectMetadata;
private parseObjectAtOffset;
}
export {};
//# sourceMappingURL=streaming-parser.d.ts.map