@bimatrix-aud-platform/aud_mcp_server 1.1.40 → 1.1.42

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.
@@ -287,12 +287,246 @@ export declare function iGridDefaults(): {
287
287
  ServerScript: string;
288
288
  TemplateCode: string;
289
289
  };
290
+ export declare function defaultOlapViewOptions(): {
291
+ ViewType: number;
292
+ IsExpandAll: boolean;
293
+ ShowExpandButtons: boolean;
294
+ EmptyCellText: string;
295
+ NotAvaliableCellText: string;
296
+ ZeroDivisioinCellText: string;
297
+ ErrorCellText: string;
298
+ RowGrandTotalText: string;
299
+ ColumnGrandTotalText: string;
300
+ RowTotalText: string;
301
+ ColumnTotalText: string;
302
+ RowTotalLocation: number;
303
+ ColumnTotalLocation: number;
304
+ RowGrandTotalLocation: number;
305
+ ColumnGrandTotalLocation: number;
306
+ DisplayColumnSubTotal: boolean;
307
+ HideTotalChildIsOneColumn: boolean;
308
+ HideTotalChildIsOneRow: boolean;
309
+ HideEmptyMeasureRows: boolean;
310
+ HideEmptyMeasureColumns: boolean;
311
+ DisplayRowSubTotal: boolean;
312
+ DisplayColumnGrandTotal: boolean;
313
+ DisplayRowGrandTotal: boolean;
314
+ ShowFilterArea: boolean;
315
+ ShowColumnrArea: boolean;
316
+ ShowRowArea: boolean;
317
+ ShowDataArea: boolean;
318
+ UseMultiHeader: boolean;
319
+ RowAreaText: string;
320
+ ColumnAreaText: string;
321
+ DataAreaText: string;
322
+ FilterAreaText: string;
323
+ MeasuresText: string;
324
+ AutoSelection: boolean;
325
+ AutoSelectionRangeLeft: number;
326
+ AutoSelectionRangeTop: number;
327
+ AutoSelectionRangeRight: number;
328
+ AutoSelectionRangeBottom: number;
329
+ HideHorizontalScrollBar: boolean;
330
+ HideVerticalScrollBar: boolean;
331
+ DisableClipBoard: boolean;
332
+ CellHeight: number;
333
+ HeaderCellHeight: number;
334
+ CanResizeCellWidth: boolean;
335
+ RowHeaderUnFix: boolean;
336
+ MeasuresCreateArea: number;
337
+ TreeHeaderWidth: number;
338
+ TreeIndentWidth: number;
339
+ DisableColumnSort: boolean;
340
+ MergeColumnHeaders: boolean;
341
+ MergeRowHeaders: boolean;
342
+ OptimizingHybridFilter: boolean;
343
+ AutoHideGrandTotalRow: boolean;
344
+ AutoHideGrandTotalColumn: boolean;
345
+ ExportOption: {
346
+ ExportSheetSize: number;
347
+ ExportDisableRowMerge: boolean;
348
+ UseServerExport: boolean;
349
+ };
350
+ PagerInfo: {
351
+ PageSize: number;
352
+ UsePaging: boolean;
353
+ IgnoreTotalCount: boolean;
354
+ };
355
+ Style: {
356
+ ColumnHeaderVerticalAlignment: number;
357
+ RowHeaderVerticalAlignment: number;
358
+ LineColor: string;
359
+ BackgroundColor: string;
360
+ };
361
+ CacheOption: {
362
+ CacheMode: number;
363
+ ExpiredMinutes: number;
364
+ UpdateMinutes: number;
365
+ UseHybrid: boolean;
366
+ HybridSort: boolean;
367
+ };
368
+ };
369
+ export declare function defaultOlapExtraOption(): {
370
+ CurrentPageSize: number;
371
+ UseMeta: boolean;
372
+ UseChartSourceTotal: boolean;
373
+ UseChartSourceGrandTotal: boolean;
374
+ UseChartSourceReverse: boolean;
375
+ ChartLabelDepth: number;
376
+ ConditionalStyleName: string;
377
+ BackgroundColorBoxStyleKey: string;
378
+ EtcExportData: boolean;
379
+ EtcExportExcel: boolean;
380
+ EtcExportCSV: boolean;
381
+ EtcExportText: boolean;
382
+ EtcExpandAll: boolean;
383
+ EtcExpandAllClose: boolean;
384
+ EtcFormat: boolean;
385
+ EtcVisibleTotal: boolean;
386
+ EtcSort: boolean;
387
+ EtcFilterClean: boolean;
388
+ EtcSwitchRowAndColumn: boolean;
389
+ EtcLayoutEditor: boolean;
390
+ EtcProperties: boolean;
391
+ EtcAnalysisItemsSettings: boolean;
392
+ EtcFormulaEditor: boolean;
393
+ EtcCustomDimensionFields: boolean;
394
+ EtcHiding: boolean;
395
+ EtcStyle: boolean;
396
+ EtcMultiHeader: boolean;
397
+ EtcCacheInfo: boolean;
398
+ EtcFieldGroup: boolean;
399
+ EtcFilterManager: boolean;
400
+ EtcTopFilter: boolean;
401
+ };
290
402
  export declare function olapGridDefaults(): {
291
403
  AutoRefresh: boolean;
292
404
  DoRefresh: boolean;
293
405
  DoExport: boolean;
294
- iOLAPView: Record<string, any>;
295
- ExtraOption: Record<string, any>;
406
+ iOLAPView: {
407
+ Options: {
408
+ ViewType: number;
409
+ IsExpandAll: boolean;
410
+ ShowExpandButtons: boolean;
411
+ EmptyCellText: string;
412
+ NotAvaliableCellText: string;
413
+ ZeroDivisioinCellText: string;
414
+ ErrorCellText: string;
415
+ RowGrandTotalText: string;
416
+ ColumnGrandTotalText: string;
417
+ RowTotalText: string;
418
+ ColumnTotalText: string;
419
+ RowTotalLocation: number;
420
+ ColumnTotalLocation: number;
421
+ RowGrandTotalLocation: number;
422
+ ColumnGrandTotalLocation: number;
423
+ DisplayColumnSubTotal: boolean;
424
+ HideTotalChildIsOneColumn: boolean;
425
+ HideTotalChildIsOneRow: boolean;
426
+ HideEmptyMeasureRows: boolean;
427
+ HideEmptyMeasureColumns: boolean;
428
+ DisplayRowSubTotal: boolean;
429
+ DisplayColumnGrandTotal: boolean;
430
+ DisplayRowGrandTotal: boolean;
431
+ ShowFilterArea: boolean;
432
+ ShowColumnrArea: boolean;
433
+ ShowRowArea: boolean;
434
+ ShowDataArea: boolean;
435
+ UseMultiHeader: boolean;
436
+ RowAreaText: string;
437
+ ColumnAreaText: string;
438
+ DataAreaText: string;
439
+ FilterAreaText: string;
440
+ MeasuresText: string;
441
+ AutoSelection: boolean;
442
+ AutoSelectionRangeLeft: number;
443
+ AutoSelectionRangeTop: number;
444
+ AutoSelectionRangeRight: number;
445
+ AutoSelectionRangeBottom: number;
446
+ HideHorizontalScrollBar: boolean;
447
+ HideVerticalScrollBar: boolean;
448
+ DisableClipBoard: boolean;
449
+ CellHeight: number;
450
+ HeaderCellHeight: number;
451
+ CanResizeCellWidth: boolean;
452
+ RowHeaderUnFix: boolean;
453
+ MeasuresCreateArea: number;
454
+ TreeHeaderWidth: number;
455
+ TreeIndentWidth: number;
456
+ DisableColumnSort: boolean;
457
+ MergeColumnHeaders: boolean;
458
+ MergeRowHeaders: boolean;
459
+ OptimizingHybridFilter: boolean;
460
+ AutoHideGrandTotalRow: boolean;
461
+ AutoHideGrandTotalColumn: boolean;
462
+ ExportOption: {
463
+ ExportSheetSize: number;
464
+ ExportDisableRowMerge: boolean;
465
+ UseServerExport: boolean;
466
+ };
467
+ PagerInfo: {
468
+ PageSize: number;
469
+ UsePaging: boolean;
470
+ IgnoreTotalCount: boolean;
471
+ };
472
+ Style: {
473
+ ColumnHeaderVerticalAlignment: number;
474
+ RowHeaderVerticalAlignment: number;
475
+ LineColor: string;
476
+ BackgroundColor: string;
477
+ };
478
+ CacheOption: {
479
+ CacheMode: number;
480
+ ExpiredMinutes: number;
481
+ UpdateMinutes: number;
482
+ UseHybrid: boolean;
483
+ HybridSort: boolean;
484
+ };
485
+ };
486
+ TopFilter: {
487
+ Dimension: string;
488
+ Measure: string;
489
+ Rank: number;
490
+ IsTop: boolean;
491
+ GroupBy: any[];
492
+ };
493
+ PreFilters: any[];
494
+ Fields: any[];
495
+ MultiHeaderCells: any[];
496
+ };
497
+ ExtraOption: {
498
+ CurrentPageSize: number;
499
+ UseMeta: boolean;
500
+ UseChartSourceTotal: boolean;
501
+ UseChartSourceGrandTotal: boolean;
502
+ UseChartSourceReverse: boolean;
503
+ ChartLabelDepth: number;
504
+ ConditionalStyleName: string;
505
+ BackgroundColorBoxStyleKey: string;
506
+ EtcExportData: boolean;
507
+ EtcExportExcel: boolean;
508
+ EtcExportCSV: boolean;
509
+ EtcExportText: boolean;
510
+ EtcExpandAll: boolean;
511
+ EtcExpandAllClose: boolean;
512
+ EtcFormat: boolean;
513
+ EtcVisibleTotal: boolean;
514
+ EtcSort: boolean;
515
+ EtcFilterClean: boolean;
516
+ EtcSwitchRowAndColumn: boolean;
517
+ EtcLayoutEditor: boolean;
518
+ EtcProperties: boolean;
519
+ EtcAnalysisItemsSettings: boolean;
520
+ EtcFormulaEditor: boolean;
521
+ EtcCustomDimensionFields: boolean;
522
+ EtcHiding: boolean;
523
+ EtcStyle: boolean;
524
+ EtcMultiHeader: boolean;
525
+ EtcCacheInfo: boolean;
526
+ EtcFieldGroup: boolean;
527
+ EtcFilterManager: boolean;
528
+ EtcTopFilter: boolean;
529
+ };
296
530
  };
297
531
  export declare function chartDefaults(): {
298
532
  AutoRefresh: boolean;
@@ -275,13 +275,141 @@ export function iGridDefaults() {
275
275
  TemplateCode: "",
276
276
  };
277
277
  }
278
+ export function defaultOlapViewOptions() {
279
+ return {
280
+ ViewType: 0,
281
+ IsExpandAll: true,
282
+ ShowExpandButtons: true,
283
+ EmptyCellText: "-",
284
+ NotAvaliableCellText: "N/A",
285
+ ZeroDivisioinCellText: "#DIV/0!",
286
+ ErrorCellText: "NG",
287
+ RowGrandTotalText: "Grand Total",
288
+ ColumnGrandTotalText: "Grand Total",
289
+ RowTotalText: " Total",
290
+ ColumnTotalText: " Total",
291
+ RowTotalLocation: 0,
292
+ ColumnTotalLocation: 0,
293
+ RowGrandTotalLocation: 0,
294
+ ColumnGrandTotalLocation: 0,
295
+ DisplayColumnSubTotal: true,
296
+ HideTotalChildIsOneColumn: false,
297
+ HideTotalChildIsOneRow: false,
298
+ HideEmptyMeasureRows: false,
299
+ HideEmptyMeasureColumns: false,
300
+ DisplayRowSubTotal: true,
301
+ DisplayColumnGrandTotal: true,
302
+ DisplayRowGrandTotal: true,
303
+ ShowFilterArea: true,
304
+ ShowColumnrArea: true,
305
+ ShowRowArea: true,
306
+ ShowDataArea: true,
307
+ UseMultiHeader: false,
308
+ RowAreaText: "Row Area",
309
+ ColumnAreaText: "Column Area",
310
+ DataAreaText: "Data Area",
311
+ FilterAreaText: "Filter Area",
312
+ MeasuresText: "Measures",
313
+ AutoSelection: false,
314
+ AutoSelectionRangeLeft: 0,
315
+ AutoSelectionRangeTop: 0,
316
+ AutoSelectionRangeRight: 0,
317
+ AutoSelectionRangeBottom: 0,
318
+ HideHorizontalScrollBar: false,
319
+ HideVerticalScrollBar: false,
320
+ DisableClipBoard: false,
321
+ CellHeight: 23,
322
+ HeaderCellHeight: 23,
323
+ CanResizeCellWidth: true,
324
+ RowHeaderUnFix: false,
325
+ MeasuresCreateArea: 2,
326
+ TreeHeaderWidth: 300,
327
+ TreeIndentWidth: 20,
328
+ DisableColumnSort: false,
329
+ MergeColumnHeaders: false,
330
+ MergeRowHeaders: false,
331
+ OptimizingHybridFilter: false,
332
+ AutoHideGrandTotalRow: false,
333
+ AutoHideGrandTotalColumn: false,
334
+ ExportOption: {
335
+ ExportSheetSize: 1000000,
336
+ ExportDisableRowMerge: false,
337
+ UseServerExport: true,
338
+ },
339
+ PagerInfo: {
340
+ PageSize: 100,
341
+ UsePaging: true,
342
+ IgnoreTotalCount: false,
343
+ },
344
+ Style: {
345
+ ColumnHeaderVerticalAlignment: 0,
346
+ RowHeaderVerticalAlignment: 0,
347
+ LineColor: "",
348
+ BackgroundColor: "",
349
+ },
350
+ CacheOption: {
351
+ CacheMode: 1,
352
+ ExpiredMinutes: 480,
353
+ UpdateMinutes: 60,
354
+ UseHybrid: true,
355
+ HybridSort: false,
356
+ },
357
+ };
358
+ }
359
+ export function defaultOlapExtraOption() {
360
+ return {
361
+ CurrentPageSize: 0,
362
+ UseMeta: false,
363
+ UseChartSourceTotal: false,
364
+ UseChartSourceGrandTotal: false,
365
+ UseChartSourceReverse: false,
366
+ ChartLabelDepth: -1,
367
+ ConditionalStyleName: "",
368
+ BackgroundColorBoxStyleKey: "",
369
+ EtcExportData: true,
370
+ EtcExportExcel: true,
371
+ EtcExportCSV: true,
372
+ EtcExportText: true,
373
+ EtcExpandAll: true,
374
+ EtcExpandAllClose: true,
375
+ EtcFormat: false,
376
+ EtcVisibleTotal: true,
377
+ EtcSort: true,
378
+ EtcFilterClean: true,
379
+ EtcSwitchRowAndColumn: true,
380
+ EtcLayoutEditor: true,
381
+ EtcProperties: false,
382
+ EtcAnalysisItemsSettings: true,
383
+ EtcFormulaEditor: true,
384
+ EtcCustomDimensionFields: true,
385
+ EtcHiding: false,
386
+ EtcStyle: true,
387
+ EtcMultiHeader: false,
388
+ EtcCacheInfo: true,
389
+ EtcFieldGroup: true,
390
+ EtcFilterManager: true,
391
+ EtcTopFilter: true,
392
+ };
393
+ }
278
394
  export function olapGridDefaults() {
279
395
  return {
280
396
  AutoRefresh: false,
281
397
  DoRefresh: true,
282
398
  DoExport: true,
283
- iOLAPView: {},
284
- ExtraOption: {},
399
+ iOLAPView: {
400
+ Options: defaultOlapViewOptions(),
401
+ TopFilter: {
402
+ Dimension: "",
403
+ Measure: "",
404
+ Rank: 10,
405
+ IsTop: true,
406
+ GroupBy: [],
407
+ },
408
+ PreFilters: [],
409
+ Fields: [],
410
+ MultiHeaderCells: [],
411
+ },
412
+ ExtraOption: defaultOlapExtraOption(),
285
413
  };
286
414
  }
287
415
  // -- 차트 컨트롤 --
@@ -66,8 +66,8 @@ export declare class DataGridBuilder {
66
66
  declare abstract class ElementContainer {
67
67
  protected _elements: Record<string, any>[];
68
68
  protected _gridBuilders: DataGridBuilder[];
69
- addLabel(name: string, text: string, opts?: ElementOpts): this;
70
- addButton(name: string, text: string, opts?: ElementOpts): this;
69
+ addLabel(name: string, textOrOpts?: string | ElementOpts, opts?: ElementOpts): this;
70
+ addButton(name: string, textOrOpts?: string | ElementOpts, opts?: ElementOpts): this;
71
71
  addCalendar(name: string, opts?: ElementOpts): this;
72
72
  addTextBox(name: string, opts?: ElementOpts): this;
73
73
  addNumberBox(name: string, opts?: ElementOpts & {
@@ -80,7 +80,11 @@ declare abstract class ElementContainer {
80
80
  labelField?: string;
81
81
  valueField?: string;
82
82
  }): this;
83
- addCheckBox(name: string, text: string, opts?: ElementOpts & {
83
+ addCheckBox(name: string, textOrOpts?: string | (ElementOpts & {
84
+ checkedValue?: string;
85
+ uncheckedValue?: string;
86
+ checked?: boolean;
87
+ }), opts?: ElementOpts & {
84
88
  checkedValue?: string;
85
89
  uncheckedValue?: string;
86
90
  checked?: boolean;
@@ -97,7 +101,11 @@ declare abstract class ElementContainer {
97
101
  valueField?: string;
98
102
  }): this;
99
103
  addPickList(name: string, opts?: ElementOpts): this;
100
- addRadioButton(name: string, text: string, opts?: ElementOpts & {
104
+ addRadioButton(name: string, textOrOpts?: string | (ElementOpts & {
105
+ groupName?: string;
106
+ checkedValue?: string;
107
+ checked?: boolean;
108
+ }), opts?: ElementOpts & {
101
109
  groupName?: string;
102
110
  checkedValue?: string;
103
111
  checked?: boolean;
@@ -107,7 +115,10 @@ declare abstract class ElementContainer {
107
115
  addSlider(name: string, opts?: ElementOpts): this;
108
116
  addCalendarYear(name: string, opts?: ElementOpts): this;
109
117
  addCalendarYM(name: string, opts?: ElementOpts): this;
110
- addFileUploadButton(name: string, text?: string, opts?: ElementOpts & {
118
+ addFileUploadButton(name: string, textOrOpts?: string | (ElementOpts & {
119
+ allowExt?: string;
120
+ saveFolderName?: string;
121
+ }), opts?: ElementOpts & {
111
122
  allowExt?: string;
112
123
  saveFolderName?: string;
113
124
  }): this;
@@ -133,6 +144,7 @@ declare abstract class ElementContainer {
133
144
  addDiagramControl(name: string, opts?: ElementOpts): this;
134
145
  addSlicer(name: string, opts?: ElementOpts): this;
135
146
  addGroup(name: string, opts?: ElementOpts): GroupBuilder;
147
+ addGroup(name: string, opts: ElementOpts, fn: (g: GroupBuilder) => void): this;
136
148
  addDataGrid(name: string, opts?: ElementOpts): DataGridBuilder;
137
149
  /** Generic element adder for types not covered by specific methods */
138
150
  addElement(type: string, name: string, opts?: ElementOpts): this;
@@ -163,7 +175,7 @@ export declare class MtsdBuilder extends ElementContainer {
163
175
  moduleCode?: string;
164
176
  });
165
177
  /** Add a DataSource */
166
- addDataSource(name: string, connection: string, sql: string, opts?: {
178
+ addDataSource(nameOrOpts: string | Record<string, any>, connection?: string, sql?: string, opts?: {
167
179
  columns?: Array<{
168
180
  name: string;
169
181
  type?: string;
@@ -186,7 +186,15 @@ class ElementContainer {
186
186
  _elements = [];
187
187
  _gridBuilders = [];
188
188
  // ---- Element factories ----
189
- addLabel(name, text, opts = {}) {
189
+ addLabel(name, textOrOpts = "", opts = {}) {
190
+ let text;
191
+ if (typeof textOrOpts === "object" && textOrOpts !== null) {
192
+ opts = textOrOpts;
193
+ text = opts.text ?? "";
194
+ }
195
+ else {
196
+ text = textOrOpts;
197
+ }
190
198
  const id = generateId("Label");
191
199
  const element = {
192
200
  Type: "Label", Id: id, Name: name,
@@ -199,7 +207,15 @@ class ElementContainer {
199
207
  this._addElement(element);
200
208
  return this;
201
209
  }
202
- addButton(name, text, opts = {}) {
210
+ addButton(name, textOrOpts = "", opts = {}) {
211
+ let text;
212
+ if (typeof textOrOpts === "object" && textOrOpts !== null) {
213
+ opts = textOrOpts;
214
+ text = opts.value ?? opts.text ?? "";
215
+ }
216
+ else {
217
+ text = textOrOpts;
218
+ }
203
219
  const id = generateId("Button");
204
220
  const element = {
205
221
  Type: "Button", Id: id, Name: name,
@@ -269,7 +285,15 @@ class ElementContainer {
269
285
  this._addElement(element);
270
286
  return this;
271
287
  }
272
- addCheckBox(name, text, opts = {}) {
288
+ addCheckBox(name, textOrOpts = "", opts = {}) {
289
+ let text;
290
+ if (typeof textOrOpts === "object" && textOrOpts !== null) {
291
+ opts = textOrOpts;
292
+ text = opts.text ?? "";
293
+ }
294
+ else {
295
+ text = textOrOpts;
296
+ }
273
297
  const id = generateId("CheckBox");
274
298
  const element = {
275
299
  Type: "CheckBox", Id: id, Name: name,
@@ -378,7 +402,15 @@ class ElementContainer {
378
402
  this._addElement(element);
379
403
  return this;
380
404
  }
381
- addRadioButton(name, text, opts = {}) {
405
+ addRadioButton(name, textOrOpts = "", opts = {}) {
406
+ let text;
407
+ if (typeof textOrOpts === "object" && textOrOpts !== null) {
408
+ opts = textOrOpts;
409
+ text = opts.text ?? "";
410
+ }
411
+ else {
412
+ text = textOrOpts;
413
+ }
382
414
  const id = generateId("RadioButton");
383
415
  const element = {
384
416
  Type: "RadioButton", Id: id, Name: name,
@@ -458,7 +490,15 @@ class ElementContainer {
458
490
  return this;
459
491
  }
460
492
  // ---- Upload ----
461
- addFileUploadButton(name, text = "Upload", opts = {}) {
493
+ addFileUploadButton(name, textOrOpts = "Upload", opts = {}) {
494
+ let text;
495
+ if (typeof textOrOpts === "object" && textOrOpts !== null) {
496
+ opts = textOrOpts;
497
+ text = opts.value ?? opts.text ?? "Upload";
498
+ }
499
+ else {
500
+ text = textOrOpts;
501
+ }
462
502
  const id = generateId("FileUploadButton");
463
503
  const element = {
464
504
  Type: "FileUploadButton", Id: id, Name: name,
@@ -661,7 +701,7 @@ class ElementContainer {
661
701
  this._addElement(element);
662
702
  return this;
663
703
  }
664
- addGroup(name, opts = {}) {
704
+ addGroup(name, opts = {}, fn) {
665
705
  const id = generateId("Group");
666
706
  const element = {
667
707
  Type: "Group", Id: id, Name: name,
@@ -671,7 +711,13 @@ class ElementContainer {
671
711
  };
672
712
  this._applyPassThrough(element, opts);
673
713
  this._addElement(element);
674
- return new GroupBuilder(this, element);
714
+ const builder = new GroupBuilder(this, element);
715
+ if (fn) {
716
+ fn(builder);
717
+ builder._finalize();
718
+ return this;
719
+ }
720
+ return builder;
675
721
  }
676
722
  addDataGrid(name, opts = {}) {
677
723
  const id = generateId("DataGrid");
@@ -712,7 +758,7 @@ class ElementContainer {
712
758
  for (const [key, value] of Object.entries(opts)) {
713
759
  if (!COMMON_OPTS.has(key) && value !== undefined) {
714
760
  // Skip element-specific keys already handled
715
- if (["format", "value", "min", "max", "labelField", "valueField",
761
+ if (["text", "format", "value", "min", "max", "labelField", "valueField",
716
762
  "checkedValue", "uncheckedValue", "checked", "groupName",
717
763
  "url", "serverScript", "templateCode", "reportCode",
718
764
  "allowExt", "saveFolderName"].includes(key))
@@ -781,13 +827,33 @@ export class MtsdBuilder extends ElementContainer {
781
827
  this._moduleCode = opts.moduleCode;
782
828
  }
783
829
  /** Add a DataSource */
784
- addDataSource(name, connection, sql, opts) {
785
- const paramNames = extractParamsFromSQL(sql);
830
+ addDataSource(nameOrOpts, connection, sql, opts) {
831
+ // Support single-object argument: addDataSource({ name, connection, sql, ... })
832
+ let dsName;
833
+ let dsConnection;
834
+ let dsSql;
835
+ if (typeof nameOrOpts === "object" && nameOrOpts !== null) {
836
+ dsName = nameOrOpts.name ?? "";
837
+ dsConnection = nameOrOpts.connection ?? "";
838
+ dsSql = nameOrOpts.sql ?? "";
839
+ opts = {
840
+ columns: nameOrOpts.columns,
841
+ useMeta: nameOrOpts.useMeta,
842
+ useCache: nameOrOpts.useCache,
843
+ encrypted: nameOrOpts.encrypted,
844
+ };
845
+ }
846
+ else {
847
+ dsName = nameOrOpts;
848
+ dsConnection = connection ?? "";
849
+ dsSql = sql ?? "";
850
+ }
851
+ const paramNames = extractParamsFromSQL(dsSql);
786
852
  this._dataSources.push({
787
853
  id: generateId("DS"),
788
- name,
789
- connection,
790
- sql,
854
+ name: dsName,
855
+ connection: dsConnection,
856
+ sql: dsSql,
791
857
  columns: opts?.columns || [],
792
858
  params: paramNames.map(n => ({
793
859
  Name: n.startsWith(":") ? n : `:${n}`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bimatrix-aud-platform/aud_mcp_server",
3
- "version": "1.1.40",
3
+ "version": "1.1.42",
4
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",
@@ -1072,67 +1072,67 @@ export interface IOlapGridElement extends IBaseElement {
1072
1072
  */
1073
1073
  export interface IOlapGridExtraOption {
1074
1074
  /** 속성창에서 마지막으로 설정한 페이지 사이즈 */
1075
- CurrentPageSize?: number;
1075
+ CurrentPageSize: number;
1076
1076
  /** 메타 사용 여부 */
1077
- UseMeta?: boolean;
1077
+ UseMeta: boolean;
1078
1078
  /** 차트 소스 소계 표시 */
1079
- UseChartSourceTotal?: boolean;
1079
+ UseChartSourceTotal: boolean;
1080
1080
  /** 차트 소스 총계 표시 */
1081
- UseChartSourceGrandTotal?: boolean;
1081
+ UseChartSourceGrandTotal: boolean;
1082
1082
  /** 차트 소스 테이블 반대 */
1083
- UseChartSourceReverse?: boolean;
1083
+ UseChartSourceReverse: boolean;
1084
1084
  /** 차트 레이블 필드 최대 계층 수 */
1085
- ChartLabelDepth?: number;
1085
+ ChartLabelDepth: number;
1086
1086
  /** 조건부 서식명 */
1087
- ConditionalStyleName?: string;
1087
+ ConditionalStyleName : string;
1088
1088
  /** 배경색 박스 스타일 키 */
1089
- BackgroundColorBoxStyleKey?: string;
1089
+ BackgroundColorBoxStyleKey: string;
1090
1090
  /** 컨텍스트 메뉴: 내보내기 */
1091
- EtcExportData?: boolean;
1091
+ EtcExportData: boolean;
1092
1092
  /** 컨텍스트 메뉴: 내보내기 엑셀 */
1093
- EtcExportExcel?: boolean;
1093
+ EtcExportExcel: boolean;
1094
1094
  /** 컨텍스트 메뉴: 내보내기 CSV */
1095
- EtcExportCSV?: boolean;
1095
+ EtcExportCSV: boolean;
1096
1096
  /** 컨텍스트 메뉴: 내보내기 텍스트 */
1097
- EtcExportText?: boolean;
1097
+ EtcExportText: boolean;
1098
1098
  /** 컨텍스트 메뉴: 전체 확장 */
1099
- EtcExpandAll?: boolean;
1099
+ EtcExpandAll: boolean;
1100
1100
  /** 컨텍스트 메뉴: 전체 축소 */
1101
- EtcExpandAllClose?: boolean;
1101
+ EtcExpandAllClose: boolean;
1102
1102
  /** 컨텍스트 메뉴: 서식 설정 */
1103
- EtcFormat?: boolean;
1103
+ EtcFormat: boolean;
1104
1104
  /** 컨텍스트 메뉴: 합계 표시 */
1105
- EtcVisibleTotal?: boolean;
1105
+ EtcVisibleTotal: boolean;
1106
1106
  /** 컨텍스트 메뉴: 정렬 */
1107
- EtcSort?: boolean;
1107
+ EtcSort: boolean;
1108
1108
  /** 컨텍스트 메뉴: 필터 해제 */
1109
- EtcFilterClean?: boolean;
1109
+ EtcFilterClean: boolean;
1110
1110
  /** 컨텍스트 메뉴: 축 변경(행/열) */
1111
- EtcSwitchRowAndColumn?: boolean;
1111
+ EtcSwitchRowAndColumn: boolean;
1112
1112
  /** 컨텍스트 메뉴: 레이아웃 관리자 */
1113
- EtcLayoutEditor?: boolean;
1113
+ EtcLayoutEditor: boolean;
1114
1114
  /** 컨텍스트 메뉴: 디자인(속성) */
1115
- EtcProperties?: boolean;
1115
+ EtcProperties: boolean;
1116
1116
  /** 컨텍스트 메뉴: 분석 항목 설정 */
1117
- EtcAnalysisItemsSettings?: boolean;
1117
+ EtcAnalysisItemsSettings: boolean;
1118
1118
  /** 컨텍스트 메뉴: 수식 편집기 */
1119
- EtcFormulaEditor?: boolean;
1119
+ EtcFormulaEditor: boolean;
1120
1120
  /** 컨텍스트 메뉴: 사용자 정의 항목 */
1121
- EtcCustomDimensionFields?: boolean;
1121
+ EtcCustomDimensionFields: boolean;
1122
1122
  /** 컨텍스트 메뉴: Hiding */
1123
- EtcHiding?: boolean;
1123
+ EtcHiding: boolean;
1124
1124
  /** 컨텍스트 메뉴: Style */
1125
- EtcStyle?: boolean;
1125
+ EtcStyle: boolean;
1126
1126
  /** 컨텍스트 메뉴: 멀티 헤더 */
1127
- EtcMultiHeader?: boolean;
1127
+ EtcMultiHeader: boolean;
1128
1128
  /** 컨텍스트 메뉴: 캐시 정보 */
1129
- EtcCacheInfo?: boolean;
1129
+ EtcCacheInfo: boolean;
1130
1130
  /** 컨텍스트 메뉴: 필드 그룹 */
1131
- EtcFieldGroup?: boolean;
1131
+ EtcFieldGroup: boolean;
1132
1132
  /** 컨텍스트 메뉴: 필터 관리 */
1133
- EtcFilterManager?: boolean;
1133
+ EtcFilterManager: boolean;
1134
1134
  /** 컨텍스트 메뉴: Top N Filter */
1135
- EtcTopFilter?: boolean;
1135
+ EtcTopFilter: boolean;
1136
1136
  }
1137
1137
 
1138
1138
  // ============================================