@bimatrix-aud-platform/aud_mcp_server 1.1.21 → 1.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generators/fixer.js +10 -0
- package/package.json +4 -2
- package/schemas/mtsd.interface.ts +90 -2
- package/schemas/mtsd.schema.json +71 -3
package/dist/generators/fixer.js
CHANGED
|
@@ -471,5 +471,15 @@ function walkElements(elements, callback, parentPath = "") {
|
|
|
471
471
|
if (el.ChildElements && Array.isArray(el.ChildElements)) {
|
|
472
472
|
walkElements(el.ChildElements, callback, path);
|
|
473
473
|
}
|
|
474
|
+
else if (el.Type === "Tab" && el.TabItems && Array.isArray(el.TabItems)) {
|
|
475
|
+
// 탭이면 TabItems(탭 페이지) > Controls(자식 컨트롤) 재귀 순회
|
|
476
|
+
for (let i = 0; i < el.TabItems.length; i++) {
|
|
477
|
+
const tabPage = el.TabItems[i];
|
|
478
|
+
const tabPagePath = `${path} > TabItem[${i}](${tabPage.Name || "?"})`;
|
|
479
|
+
if (tabPage.Controls && Array.isArray(tabPage.Controls)) {
|
|
480
|
+
walkElements(tabPage.Controls, callback, tabPagePath);
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
}
|
|
474
484
|
}
|
|
475
485
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bimatrix-aud-platform/aud_mcp_server",
|
|
3
|
-
"version": "1.1.
|
|
4
|
-
"description": "MCP Server for i-AUD MTSD document validation and
|
|
3
|
+
"version": "1.1.23",
|
|
4
|
+
"description": "MCP Server for i-AUD MTSD document validation, generation, schema querying, control info extraction, and database operations",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
|
@@ -24,6 +24,8 @@
|
|
|
24
24
|
"mtsd",
|
|
25
25
|
"i-aud",
|
|
26
26
|
"validator",
|
|
27
|
+
"generator",
|
|
28
|
+
"database",
|
|
27
29
|
"model-context-protocol",
|
|
28
30
|
"claude"
|
|
29
31
|
],
|
|
@@ -2483,7 +2483,7 @@ export interface IMaskTextBoxElement extends IBaseElement {
|
|
|
2483
2483
|
/** 텍스트 값 */
|
|
2484
2484
|
Text?: string;
|
|
2485
2485
|
/** 입력 값 */
|
|
2486
|
-
Value?:
|
|
2486
|
+
Value?: string;
|
|
2487
2487
|
/** 데이터 바인딩 정보 */
|
|
2488
2488
|
BindingInfo?: IBindingInfo;
|
|
2489
2489
|
/** MX-Grid와의 바인딩 정보 */
|
|
@@ -2658,6 +2658,94 @@ export interface ITableLayoutElement extends IBaseElement {
|
|
|
2658
2658
|
MergeCellList?: any[];
|
|
2659
2659
|
}
|
|
2660
2660
|
|
|
2661
|
+
// ============================================
|
|
2662
|
+
// Tab Item (탭 페이지)
|
|
2663
|
+
// ============================================
|
|
2664
|
+
|
|
2665
|
+
/**
|
|
2666
|
+
* 탭 아이템(탭 페이지) 스타일 속성
|
|
2667
|
+
* BackColor의 UseYn/BoxStyle을 직렬화한 구조입니다.
|
|
2668
|
+
* @see 2.Sources/src/control/group/Tab/TabItem.ts - Serialize()
|
|
2669
|
+
*/
|
|
2670
|
+
export interface ITabItemStyle {
|
|
2671
|
+
/** 스타일 사용 여부 */
|
|
2672
|
+
UseYn?: boolean;
|
|
2673
|
+
/** CSS BoxStyle 문자열 */
|
|
2674
|
+
BoxStyle?: string;
|
|
2675
|
+
}
|
|
2676
|
+
|
|
2677
|
+
/**
|
|
2678
|
+
* 탭 아이템 기본 속성
|
|
2679
|
+
* @see 2.Sources/src/control/group/Tab/TabItem.ts - ITabItemBaseProperties
|
|
2680
|
+
*/
|
|
2681
|
+
export interface ITabItemBaseProperties {
|
|
2682
|
+
/** 탭 아이템 이름 */
|
|
2683
|
+
Name: string;
|
|
2684
|
+
/** 탭 버튼에 표시되는 텍스트 */
|
|
2685
|
+
Text: string;
|
|
2686
|
+
/** 툴팁 텍스트 */
|
|
2687
|
+
Tooltip: string;
|
|
2688
|
+
/** 탭 너비 설정 */
|
|
2689
|
+
Width: {
|
|
2690
|
+
/** 너비 설정 타입 (0: FitToLength, 1: Pixel) */
|
|
2691
|
+
WidthSettingType: number;
|
|
2692
|
+
/** 너비 값 (px) */
|
|
2693
|
+
WidthValue: number;
|
|
2694
|
+
};
|
|
2695
|
+
/** 표시 여부 */
|
|
2696
|
+
Visible: boolean;
|
|
2697
|
+
/** 커서 타입 */
|
|
2698
|
+
Cursor: string;
|
|
2699
|
+
}
|
|
2700
|
+
|
|
2701
|
+
/**
|
|
2702
|
+
* 탭 아이템 스타일 속성 모음
|
|
2703
|
+
* @see 2.Sources/src/control/group/Tab/TabItem.ts - ITabItemStyleProperties
|
|
2704
|
+
*/
|
|
2705
|
+
export interface ITabItemStyleProperties {
|
|
2706
|
+
/** 활성 상태 스타일 */
|
|
2707
|
+
ActiveStyle?: ITabItemStyle;
|
|
2708
|
+
/** 비활성 상태 스타일 */
|
|
2709
|
+
InactiveStyle?: ITabItemStyle;
|
|
2710
|
+
/** 마우스 오버 시 스타일 */
|
|
2711
|
+
MouseOverStyle?: ITabItemStyle;
|
|
2712
|
+
/** 마우스 다운 시 스타일 */
|
|
2713
|
+
MouseDownStyle?: ITabItemStyle;
|
|
2714
|
+
}
|
|
2715
|
+
|
|
2716
|
+
/**
|
|
2717
|
+
* 탭 아이템 기타 속성
|
|
2718
|
+
* @see 2.Sources/src/control/group/Tab/TabItem.ts - ITabItemEtcProperties
|
|
2719
|
+
*/
|
|
2720
|
+
export interface ITabItemEtcProperties {
|
|
2721
|
+
/** 툴팁 다국어 코드 */
|
|
2722
|
+
TooltipLanguageCode?: string;
|
|
2723
|
+
/** 텍스트 다국어 코드 */
|
|
2724
|
+
TextLanguageCode?: string;
|
|
2725
|
+
}
|
|
2726
|
+
|
|
2727
|
+
/**
|
|
2728
|
+
* 탭 아이템(탭 페이지) 인터페이스 - 직렬화된 MTSD 구조
|
|
2729
|
+
* 각 탭 페이지는 이름, 자식 컨트롤들, 활성 상태, 스타일 등을 가집니다.
|
|
2730
|
+
* @see 2.Sources/src/control/group/Tab/TabItem.ts - ITabItem, TabItem.Serialize()
|
|
2731
|
+
*/
|
|
2732
|
+
export interface ITabItem {
|
|
2733
|
+
/** 탭 아이템 이름 */
|
|
2734
|
+
Name: string;
|
|
2735
|
+
/** 자식 컨트롤 배열 (탭 페이지 안에 배치된 컨트롤들) */
|
|
2736
|
+
Controls: IElement[];
|
|
2737
|
+
/** 탭 아이템 고유 ID */
|
|
2738
|
+
Id: string;
|
|
2739
|
+
/** 현재 활성(선택) 상태 여부 */
|
|
2740
|
+
IsActive: boolean;
|
|
2741
|
+
/** 기본 속성 (이름, 텍스트, 툴팁, 너비, 표시 여부, 커서) */
|
|
2742
|
+
BaseProperties: ITabItemBaseProperties;
|
|
2743
|
+
/** 스타일 속성 (활성/비활성/마우스오버/마우스다운 스타일) */
|
|
2744
|
+
StyleProperties?: ITabItemStyleProperties;
|
|
2745
|
+
/** 기타 속성 (다국어 코드) */
|
|
2746
|
+
EtcProperties?: ITabItemEtcProperties;
|
|
2747
|
+
}
|
|
2748
|
+
|
|
2661
2749
|
// ============================================
|
|
2662
2750
|
// Tab Element
|
|
2663
2751
|
// ============================================
|
|
@@ -2683,7 +2771,7 @@ export interface ITabElement extends IBaseElement {
|
|
|
2683
2771
|
/** 파일 내보내기(다운로드) 가능 여부 */
|
|
2684
2772
|
DoExport?: boolean;
|
|
2685
2773
|
/** 탭 아이템 배열 (각 탭 페이지와 자식 컨트롤) */
|
|
2686
|
-
TabItems?:
|
|
2774
|
+
TabItems?: ITabItem[];
|
|
2687
2775
|
}
|
|
2688
2776
|
|
|
2689
2777
|
// ============================================
|
package/schemas/mtsd.schema.json
CHANGED
|
@@ -619,7 +619,7 @@
|
|
|
619
619
|
"Formula": { "type": "string", "description": "동적 수식" },
|
|
620
620
|
"IsReadOnly": { "type": "boolean", "description": "읽기 전용" },
|
|
621
621
|
"Text": { "type": "string", "description": "텍스트 값" },
|
|
622
|
-
"Value": { "description": "입력 값" },
|
|
622
|
+
"Value": { "type": "string", "description": "입력 값" },
|
|
623
623
|
"BindingInfo": { "$ref": "#/$defs/BindingInfo", "description": "데이터 바인딩 정보" },
|
|
624
624
|
"MxBinding": { "type": "string", "description": "MX-Grid 바인딩" }
|
|
625
625
|
}
|
|
@@ -665,6 +665,70 @@
|
|
|
665
665
|
"DialogHeight": { "type": "number", "description": "팝업 높이" }
|
|
666
666
|
}
|
|
667
667
|
},
|
|
668
|
+
"TabItemStyle": {
|
|
669
|
+
"type": "object",
|
|
670
|
+
"description": "탭 아이템 BackColor 스타일 (UseYn/BoxStyle)",
|
|
671
|
+
"properties": {
|
|
672
|
+
"UseYn": { "type": "boolean", "description": "스타일 사용 여부" },
|
|
673
|
+
"BoxStyle": { "type": "string", "description": "CSS BoxStyle 문자열" }
|
|
674
|
+
}
|
|
675
|
+
},
|
|
676
|
+
"TabItemBaseProperties": {
|
|
677
|
+
"type": "object",
|
|
678
|
+
"description": "탭 아이템 기본 속성",
|
|
679
|
+
"required": ["Name", "Text"],
|
|
680
|
+
"properties": {
|
|
681
|
+
"Name": { "type": "string", "description": "탭 아이템 이름" },
|
|
682
|
+
"Text": { "type": "string", "description": "탭 버튼에 표시되는 텍스트" },
|
|
683
|
+
"Tooltip": { "type": "string", "description": "툴팁 텍스트" },
|
|
684
|
+
"Width": {
|
|
685
|
+
"type": "object",
|
|
686
|
+
"description": "탭 너비 설정",
|
|
687
|
+
"properties": {
|
|
688
|
+
"WidthSettingType": { "type": "integer", "description": "너비 설정 타입 (0: FitToLength, 1: Pixel)" },
|
|
689
|
+
"WidthValue": { "type": "number", "description": "너비 값 (px)" }
|
|
690
|
+
}
|
|
691
|
+
},
|
|
692
|
+
"Visible": { "type": "boolean", "description": "표시 여부" },
|
|
693
|
+
"Cursor": { "type": "string", "description": "커서 타입" }
|
|
694
|
+
}
|
|
695
|
+
},
|
|
696
|
+
"TabItemStyleProperties": {
|
|
697
|
+
"type": "object",
|
|
698
|
+
"description": "탭 아이템 스타일 속성 모음",
|
|
699
|
+
"properties": {
|
|
700
|
+
"ActiveStyle": { "$ref": "#/$defs/TabItemStyle", "description": "활성 상태 스타일" },
|
|
701
|
+
"InactiveStyle": { "$ref": "#/$defs/TabItemStyle", "description": "비활성 상태 스타일" },
|
|
702
|
+
"MouseOverStyle": { "$ref": "#/$defs/TabItemStyle", "description": "마우스 오버 시 스타일" },
|
|
703
|
+
"MouseDownStyle": { "$ref": "#/$defs/TabItemStyle", "description": "마우스 다운 시 스타일" }
|
|
704
|
+
}
|
|
705
|
+
},
|
|
706
|
+
"TabItemEtcProperties": {
|
|
707
|
+
"type": "object",
|
|
708
|
+
"description": "탭 아이템 기타 속성",
|
|
709
|
+
"properties": {
|
|
710
|
+
"TooltipLanguageCode": { "type": "string", "description": "툴팁 다국어 코드" },
|
|
711
|
+
"TextLanguageCode": { "type": "string", "description": "텍스트 다국어 코드" }
|
|
712
|
+
}
|
|
713
|
+
},
|
|
714
|
+
"TabItem": {
|
|
715
|
+
"type": "object",
|
|
716
|
+
"description": "탭 아이템(탭 페이지) - 자식 컨트롤을 포함하는 탭 페이지 단위",
|
|
717
|
+
"required": ["Name", "Id", "IsActive", "BaseProperties"],
|
|
718
|
+
"properties": {
|
|
719
|
+
"Name": { "type": "string", "description": "탭 아이템 이름" },
|
|
720
|
+
"Controls": {
|
|
721
|
+
"type": "array",
|
|
722
|
+
"description": "자식 컨트롤 배열 (탭 페이지 안에 배치된 컨트롤들)",
|
|
723
|
+
"items": { "$ref": "#/$defs/Element" }
|
|
724
|
+
},
|
|
725
|
+
"Id": { "type": "string", "description": "탭 아이템 고유 ID" },
|
|
726
|
+
"IsActive": { "type": "boolean", "description": "현재 활성(선택) 상태 여부" },
|
|
727
|
+
"BaseProperties": { "$ref": "#/$defs/TabItemBaseProperties", "description": "기본 속성" },
|
|
728
|
+
"StyleProperties": { "$ref": "#/$defs/TabItemStyleProperties", "description": "스타일 속성" },
|
|
729
|
+
"EtcProperties": { "$ref": "#/$defs/TabItemEtcProperties", "description": "기타 속성 (다국어 코드)" }
|
|
730
|
+
}
|
|
731
|
+
},
|
|
668
732
|
"TabElement": {
|
|
669
733
|
"type": "object",
|
|
670
734
|
"description": "탭 컨테이너 컨트롤",
|
|
@@ -676,7 +740,11 @@
|
|
|
676
740
|
"MouseOverStyle": { "type": "object", "description": "마우스 오버 스타일" },
|
|
677
741
|
"MouseDownStyle": { "type": "object", "description": "마우스 다운 스타일" },
|
|
678
742
|
"DoExport": { "type": "boolean", "description": "내보내기 버튼 표시" },
|
|
679
|
-
"TabItems": {
|
|
743
|
+
"TabItems": {
|
|
744
|
+
"type": "array",
|
|
745
|
+
"description": "탭 아이템 배열 (각 탭 페이지와 자식 컨트롤)",
|
|
746
|
+
"items": { "$ref": "#/$defs/TabItem" }
|
|
747
|
+
}
|
|
680
748
|
}
|
|
681
749
|
},
|
|
682
750
|
"CalendarElement": {
|
|
@@ -1021,7 +1089,7 @@
|
|
|
1021
1089
|
"ToolTipText": { "type": "string", "description": "툴팁 텍스트" },
|
|
1022
1090
|
"Category": { "type": "number", "description": "카테고리 (0: Default, 1: Dimension, 2: Measure, 3: Attribute, 4: Period)" },
|
|
1023
1091
|
"Area": { "type": "number", "description": "영역 (0:Hidden, 1:Row, 2:Column, 3:Filter, 4:Data)" },
|
|
1024
|
-
"SummaryType": { "type": "number", "description": "요약 유형 (0
|
|
1092
|
+
"SummaryType": { "type": "number", "description": "요약 유형 (0:None, 1:Sum, 2:Min, 3:Max, 4:Average, 5:Count, 9:Calculate, 13:DistinctCount, 14:Text)" },
|
|
1025
1093
|
"TotalSummaryType": { "type": "number", "description": "합계 요약 유형 (0:None, 1:SumOfChild, 2:MinOfChild, 3:MaxOfChild, 4:AverageOfChild, 5:CountOfChild)" },
|
|
1026
1094
|
"SummaryVariation": { "type": "number", "description": "요약 변형 (0:None, 1:Absolute, 2:Percent, 3:PercentOfColumn, 4:PercentOfRow, 5:SubTotalPercentOfColumn, 6:SubTotalPercentOfRow, 7:RunningAverage, 8:RunningCount, 9:RunningMax, 10:RunningMin, 11:RunningProduct, 12:RunningSum, 15:FirstPeriod, 16:LastPeriod, 17:PeriodIncrease, 18:PeriodIncreaseRate)" },
|
|
1027
1095
|
"GroupByType": { "type": "number", "description": "그룹 함수 유형 (0:Auto, 1:Sum, 2:Count, 3:Max, 4:Min, 5:Average, 6:DistinctCount, 7:None, 8:AlwaysGroupBy)" },
|