bc-symbols-mcp
Version:
MCP server for analyzing Business Central .app files and BC object structures
297 lines • 6.92 kB
TypeScript
export interface BCApp {
id: string;
name: string;
publisher: string;
version: string;
description: string;
brief: string;
platform: string;
application: string;
runtime: string;
target: string;
dependencies: BCAppDependency[];
idRanges: BCIdRange[];
filePath: string;
fileHash: string;
manifest: BCManifest;
symbols: BCSymbolReference;
}
export interface BCAppDependency {
id: string;
name: string;
publisher: string;
minVersion: string;
compatibilityId: string;
}
export interface BCIdRange {
minObjectId: number;
maxObjectId: number;
}
export interface BCManifest {
app: BCAppInfo;
idRanges: BCIdRange[];
dependencies: BCAppDependency[];
internalsVisibleTo: string[];
features: string[];
preprocessorSymbols: string[];
suppressWarnings: BCSuppressWarning[];
resourceExposurePolicy: BCResourceExposurePolicy;
keyVaultUrls: string[];
build: BCBuildInfo;
}
export interface BCAppInfo {
id: string;
name: string;
publisher: string;
brief: string;
description: string;
version: string;
compatibilityId: string;
privacyStatement: string;
eula: string;
help: string;
helpBaseUrl: string;
url: string;
logo: string;
platform: string;
application: string;
runtime: string;
target: string;
showMyCode: boolean;
}
export interface BCSuppressWarning {
name: string;
}
export interface BCResourceExposurePolicy {
allowDebugging: boolean;
allowDownloadingSource: boolean;
includeSourceInSymbolFile: boolean;
applyToDevExtension: boolean;
}
export interface BCBuildInfo {
by: string;
timestamp: string;
compilerVersion: string;
}
export interface BCSymbolReference {
runtimeVersion: string;
namespaces: BCNamespace[];
}
export interface BCNamespace {
name: string;
namespaces: BCNamespace[];
tables: BCTable[];
codeunits: BCCodeunit[];
pages: BCPage[];
pageExtensions: BCPageExtension[];
reports: BCReport[];
xmlPorts: BCXmlPort[];
queries: BCQuery[];
controlAddIns: BCControlAddIn[];
enumTypes: BCEnumType[];
dotNetPackages: BCDotNetPackage[];
interfaces: BCInterface[];
permissionSets: BCPermissionSet[];
permissionSetExtensions: BCPermissionSetExtension[];
reportExtensions: BCReportExtension[];
}
export interface BCTable {
id: number;
name: string;
referenceSourceFileName: string;
properties: BCProperty[];
fields: BCField[];
keys: BCKey[];
methods: BCMethod[];
variables: BCVariable[];
targetObject?: string;
}
export interface BCCodeunit {
id: number;
name: string;
referenceSourceFileName: string;
properties: BCProperty[];
methods: BCMethod[];
variables: BCVariable[];
}
export interface BCPage {
id: number;
name: string;
referenceSourceFileName: string;
properties: BCProperty[];
controls: BCControl[];
actions: BCAction[];
methods: BCMethod[];
variables: BCVariable[];
hasActionsV2: boolean;
}
export interface BCPageExtension {
id: number;
name: string;
referenceSourceFileName: string;
targetObject: string;
variables: BCVariable[];
actionChanges: BCActionChange[];
}
export interface BCReport {
id: number;
name: string;
referenceSourceFileName: string;
properties: BCProperty[];
methods: BCMethod[];
variables: BCVariable[];
}
export interface BCXmlPort {
id: number;
name: string;
referenceSourceFileName: string;
properties: BCProperty[];
methods: BCMethod[];
variables: BCVariable[];
}
export interface BCQuery {
id: number;
name: string;
referenceSourceFileName: string;
properties: BCProperty[];
methods: BCMethod[];
variables: BCVariable[];
}
export interface BCControlAddIn {
id: number;
name: string;
referenceSourceFileName: string;
properties: BCProperty[];
}
export interface BCEnumType {
id: number;
name: string;
referenceSourceFileName: string;
properties: BCProperty[];
values: BCEnumValue[];
}
export interface BCEnumValue {
ordinal: number;
name: string;
properties: BCProperty[];
}
export interface BCDotNetPackage {
id: number;
name: string;
referenceSourceFileName: string;
}
export interface BCInterface {
id: number;
name: string;
referenceSourceFileName: string;
properties: BCProperty[];
methods: BCMethod[];
}
export interface BCPermissionSet {
id: number;
name: string;
referenceSourceFileName: string;
properties: BCProperty[];
}
export interface BCPermissionSetExtension {
id: number;
name: string;
referenceSourceFileName: string;
properties: BCProperty[];
}
export interface BCReportExtension {
id: number;
name: string;
referenceSourceFileName: string;
properties: BCProperty[];
}
export interface BCField {
id: number;
name: string;
typeDefinition: BCTypeDefinition;
properties: BCProperty[];
}
export interface BCKey {
name: string;
fieldNames: string[];
properties: BCProperty[];
}
export interface BCMethod {
id: number;
name: string;
parameters: BCParameter[];
returnTypeDefinition?: BCTypeDefinition;
}
export interface BCVariable {
name: string;
typeDefinition: BCTypeDefinition;
}
export interface BCParameter {
name: string;
typeDefinition: BCTypeDefinition;
isVar?: boolean;
}
export interface BCTypeDefinition {
name: string;
subtype?: BCSubtype;
typeArguments?: BCTypeDefinition[];
}
export interface BCSubtype {
name: string;
id?: number;
moduleId?: string;
}
export interface BCProperty {
name: string;
value: string;
}
export interface BCControl {
id: number;
name: string;
kind: number;
typeDefinition: BCTypeDefinition;
properties: BCProperty[];
controls: BCControl[];
}
export interface BCAction {
id: number;
name: string;
kind: number;
properties: BCProperty[];
actions: BCAction[];
targetId?: number;
targetName?: string;
}
export interface BCActionChange {
anchor: string;
changeKind: number;
actions: BCAction[];
}
export interface CacheEntry<T> {
data: T;
timestamp: number;
fileHash: string;
}
export interface AppCache {
[filePath: string]: CacheEntry<BCApp>;
}
export interface ObjectQuery {
appIds?: string[];
objectType?: string;
objectName?: string;
objectId?: number;
includeExtensions?: boolean;
}
export interface DependencyQuery {
appId: string;
includeTransitive?: boolean;
direction?: 'incoming' | 'outgoing' | 'both';
}
export interface ReferenceQuery {
appIds?: string[];
objectType: string;
objectName: string;
fieldName?: string;
methodName?: string;
}
//# sourceMappingURL=bc-types.d.ts.map