UNPKG

bc-webclient-mcp

Version:

Model Context Protocol (MCP) server for Microsoft Dynamics 365 Business Central via WebUI protocol. Enables AI assistants to interact with BC through the web client protocol, supporting Card, List, and Document pages with full line item support and server

167 lines 8.36 kB
/** * BC Protocol Type Discriminator Mapping * * This module provides a single source of truth for all BC protocol type discriminators. * BC uses both shorthand codes (from .NET TypeAlias) and full type names (BC Web Client). * Some types have MULTIPLE shorthand variants. * * Usage: * import { matchesBcType, isPropertyChangesType } from './bc-type-discriminators.js'; * * // Generic matcher * if (matchesBcType(change.t, 'PropertyChanges')) { ... } * * // Pre-built matcher * if (isPropertyChangesType(change.t)) { ... } */ /** * BC Change Type Discriminator Mapping * * Maps canonical type names to all known discriminator values. * First value is the full type name, followed by shorthand codes. */ export declare const BC_CHANGE_TYPES: { readonly PropertyChanges: readonly ["PropertyChanges", "lcpchs", "prc"]; readonly PropertyChange: readonly ["PropertyChange", "lcpch", "prch"]; readonly DataRefreshChange: readonly ["DataRefreshChange", "drch"]; readonly DataRowInserted: readonly ["DataRowInserted", "drich"]; readonly DataRowUpdated: readonly ["DataRowUpdated", "druch"]; readonly DataRowRemoved: readonly ["DataRowRemoved", "drrch"]; readonly DataRowPropertyChange: readonly ["DataRowPropertyChange", "drpch"]; readonly DataRowBookmarkChange: readonly ["DataRowBookmarkChange", "drbch"]; readonly ChildInserted: readonly ["ChildInserted", "cich"]; readonly ChildRemoved: readonly ["ChildRemoved", "crch"]; readonly ChildMoved: readonly ["ChildMoved", "cmch"]; readonly EventRaisedChange: readonly ["EventRaisedChange", "lcerch"]; readonly MethodInvokedChange: readonly ["MethodInvokedChange", "mich"]; readonly FormToShowChange: readonly ["ftserc"]; readonly DialogToShowChange: readonly ["dtserc"]; readonly MessageToShowChange: readonly ["mtserc"]; readonly LookupFormToShowChange: readonly ["lftserc"]; readonly UriToShowChange: readonly ["utserc"]; readonly SessionPropertyChange: readonly ["spch"]; readonly SessionSettingsChange: readonly ["settc"]; readonly ExtensionObjectCreatedChange: readonly ["ExtensionObjectCreatedChange", "eocch"]; readonly ExtensionObjectDisposedChange: readonly ["ExtensionObjectDisposedChange", "eodch"]; readonly ExtensionObjectMethodInvokedChange: readonly ["ExtensionObjectMethodInvokedChange", "eomich"]; readonly NavigationServicePropertyChange: readonly ["cnsp"]; readonly NavigationNodeInserted: readonly ["cnni"]; readonly NavigationNodeMoved: readonly ["cnnm"]; readonly NavigationNodeRemoved: readonly ["cnnr"]; readonly NavigationNodePropertyChange: readonly ["cnnp"]; readonly ChangeSet: readonly ["chs"]; readonly InitializeChange: readonly ["InitializeChange"]; readonly ControlAddChange: readonly ["ControlAddChange"]; }; /** Canonical change type names */ export type BcChangeTypeName = keyof typeof BC_CHANGE_TYPES; /** All valid change type discriminator values */ export type BcChangeTypeDiscriminator = typeof BC_CHANGE_TYPES[BcChangeTypeName][number]; /** * BC Control Type Discriminator Mapping * * Maps canonical control type names to their discriminator values. * Control types typically only have shorthand codes (no full names). */ export declare const BC_CONTROL_TYPES: { readonly LogicalForm: readonly ["lf"]; readonly LogicalMessageDialog: readonly ["lmd"]; readonly RepeaterControl: readonly ["rc"]; readonly ListRepeaterControl: readonly ["lrc"]; readonly RepeaterColumnControl: readonly ["rcc"]; readonly RepeaterRowControl: readonly ["rrc"]; readonly GroupControl: readonly ["gc"]; readonly StackControl: readonly ["stackc"]; readonly StackGroupControl: readonly ["stackgc"]; readonly FormHostControl: readonly ["fhc"]; readonly MatrixControl: readonly ["matrixc"]; readonly StringControl: readonly ["sc"]; readonly BooleanControl: readonly ["bc"]; readonly DecimalControl: readonly ["dc"]; readonly Int32Control: readonly ["i32c"]; readonly Int16Control: readonly ["i16c"]; readonly Int64Control: readonly ["i64c"]; readonly DateTimeControl: readonly ["dtc"]; readonly SelectionControl: readonly ["sec"]; readonly NumberControl: readonly ["nuc"]; readonly PercentControl: readonly ["pc"]; readonly GuidControl: readonly ["guc"]; readonly ByteControl: readonly ["byc"]; readonly CharControl: readonly ["chc"]; readonly DoubleControl: readonly ["douc"]; readonly FloatingPointControl: readonly ["fpc"]; readonly SByteControl: readonly ["sbyc"]; readonly SingleControl: readonly ["sinc"]; readonly StaticStringControl: readonly ["ssc"]; readonly TimeSpanControl: readonly ["tsc"]; readonly UInt16Control: readonly ["ui16c"]; readonly UInt32Control: readonly ["ui32c"]; readonly UInt64Control: readonly ["ui64c"]; readonly ActionControl: readonly ["ac"]; readonly ActionListControl: readonly ["alc"]; readonly ActionReferenceControl: readonly ["arc"]; readonly CustomActionControl: readonly ["ca"]; readonly FileUploadActionControl: readonly ["fla"]; readonly FilterLogicalControl: readonly ["filc"]; readonly FilterLineControl: readonly ["flc"]; readonly FilterValueControl: readonly ["fvc"]; readonly FilterSelectionControl: readonly ["fsec"]; readonly SearchFilterLineControl: readonly ["sfcl"]; readonly AgentControl: readonly ["agc"]; readonly BlobControl: readonly ["blobc"]; readonly ClickableStringControl: readonly ["cssc"]; readonly EditLogicalControl: readonly ["edc"]; readonly ImageControl: readonly ["imgc"]; readonly LogicalControl: readonly ["lc"]; readonly MediaThumbnailControl: readonly ["mtc"]; readonly NotificationLogicalControl: readonly ["nlc"]; readonly TreeNodeControl: readonly ["tnc"]; readonly ReportControl: readonly ["repc"]; }; /** Canonical control type names */ export type BcControlTypeName = keyof typeof BC_CONTROL_TYPES; /** All valid control type discriminator values */ export type BcControlTypeDiscriminator = typeof BC_CONTROL_TYPES[BcControlTypeName][number]; /** * Checks if a discriminator value matches a canonical change type. * Handles all known variants (full names and shorthands). * * @param discriminator - The `.t` value from a BC protocol object * @param typeName - The canonical type name to match against * @returns true if discriminator matches any variant of the type * * @example * matchesBcChangeType(change.t, 'PropertyChanges') // matches 'PropertyChanges', 'lcpchs', 'prc' */ export declare function matchesBcChangeType(discriminator: string | undefined, typeName: BcChangeTypeName): boolean; /** * Checks if a discriminator value matches a canonical control type. * * @param discriminator - The `.t` value from a BC control object * @param typeName - The canonical control type name to match against * @returns true if discriminator matches */ export declare function matchesBcControlType(discriminator: string | undefined, typeName: BcControlTypeName): boolean; /** * Normalizes a change type discriminator to its canonical name. * * @param discriminator - Any valid change type discriminator value * @returns The canonical type name, or undefined if not recognized * * @example * normalizeChangeType('prc') // returns 'PropertyChanges' * normalizeChangeType('drch') // returns 'DataRefreshChange' */ export declare function normalizeChangeType(discriminator: string): BcChangeTypeName | undefined; export declare const isPropertyChangesType: (t?: string) => boolean; export declare const isPropertyChangeType: (t?: string) => boolean; export declare const isDataRefreshChangeType: (t?: string) => boolean; export declare const isDataRowInsertedType: (t?: string) => boolean; export declare const isDataRowUpdatedType: (t?: string) => boolean; export declare const isDataRowRemovedType: (t?: string) => boolean; export declare const isFormToShowChangeType: (t?: string) => boolean; export declare const isDialogToShowChangeType: (t?: string) => boolean; export declare const isMessageToShowChangeType: (t?: string) => boolean; export declare const isLogicalFormType: (t?: string) => boolean; export declare const isRepeaterControlType: (t?: string) => boolean; //# sourceMappingURL=bc-type-discriminators.d.ts.map