@connorbritain/mssql-mcp-server 0.3.5 → 0.4.0

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.
Files changed (99) hide show
  1. package/dist/index.js +6 -747
  2. package/dist/index.js.map +1 -1
  3. package/package.json +2 -5
  4. package/dist/audit/AuditLogger.d.ts +0 -37
  5. package/dist/audit/AuditLogger.d.ts.map +0 -1
  6. package/dist/audit/AuditLogger.js +0 -145
  7. package/dist/audit/AuditLogger.js.map +0 -1
  8. package/dist/config/EnvironmentManager.d.ts +0 -75
  9. package/dist/config/EnvironmentManager.d.ts.map +0 -1
  10. package/dist/config/EnvironmentManager.js +0 -297
  11. package/dist/config/EnvironmentManager.js.map +0 -1
  12. package/dist/config/ScriptManager.d.ts +0 -69
  13. package/dist/config/ScriptManager.d.ts.map +0 -1
  14. package/dist/config/ScriptManager.js +0 -166
  15. package/dist/config/ScriptManager.js.map +0 -1
  16. package/dist/config/SecretResolver.d.ts +0 -66
  17. package/dist/config/SecretResolver.d.ts.map +0 -1
  18. package/dist/config/SecretResolver.js +0 -230
  19. package/dist/config/SecretResolver.js.map +0 -1
  20. package/dist/tools/CreateIndexTool.d.ts +0 -24
  21. package/dist/tools/CreateIndexTool.d.ts.map +0 -1
  22. package/dist/tools/CreateIndexTool.js +0 -64
  23. package/dist/tools/CreateIndexTool.js.map +0 -1
  24. package/dist/tools/CreateTableTool.d.ts +0 -12
  25. package/dist/tools/CreateTableTool.d.ts.map +0 -1
  26. package/dist/tools/CreateTableTool.js +0 -49
  27. package/dist/tools/CreateTableTool.js.map +0 -1
  28. package/dist/tools/DeleteDataTool.d.ts +0 -56
  29. package/dist/tools/DeleteDataTool.d.ts.map +0 -1
  30. package/dist/tools/DeleteDataTool.js +0 -103
  31. package/dist/tools/DeleteDataTool.js.map +0 -1
  32. package/dist/tools/DescribeTableTool.d.ts +0 -32
  33. package/dist/tools/DescribeTableTool.d.ts.map +0 -1
  34. package/dist/tools/DescribeTableTool.js +0 -108
  35. package/dist/tools/DescribeTableTool.js.map +0 -1
  36. package/dist/tools/DropTableTool.d.ts +0 -12
  37. package/dist/tools/DropTableTool.d.ts.map +0 -1
  38. package/dist/tools/DropTableTool.js +0 -37
  39. package/dist/tools/DropTableTool.js.map +0 -1
  40. package/dist/tools/ExplainQueryTool.d.ts +0 -24
  41. package/dist/tools/ExplainQueryTool.d.ts.map +0 -1
  42. package/dist/tools/ExplainQueryTool.js +0 -98
  43. package/dist/tools/ExplainQueryTool.js.map +0 -1
  44. package/dist/tools/InsertDataTool.d.ts +0 -17
  45. package/dist/tools/InsertDataTool.d.ts.map +0 -1
  46. package/dist/tools/InsertDataTool.js +0 -102
  47. package/dist/tools/InsertDataTool.js.map +0 -1
  48. package/dist/tools/InspectDependenciesTool.d.ts +0 -45
  49. package/dist/tools/InspectDependenciesTool.d.ts.map +0 -1
  50. package/dist/tools/InspectDependenciesTool.js +0 -215
  51. package/dist/tools/InspectDependenciesTool.js.map +0 -1
  52. package/dist/tools/ListDatabasesTool.d.ts +0 -27
  53. package/dist/tools/ListDatabasesTool.d.ts.map +0 -1
  54. package/dist/tools/ListDatabasesTool.js +0 -107
  55. package/dist/tools/ListDatabasesTool.js.map +0 -1
  56. package/dist/tools/ListEnvironmentsTool.d.ts +0 -49
  57. package/dist/tools/ListEnvironmentsTool.d.ts.map +0 -1
  58. package/dist/tools/ListEnvironmentsTool.js +0 -73
  59. package/dist/tools/ListEnvironmentsTool.js.map +0 -1
  60. package/dist/tools/ListScriptsTool.d.ts +0 -41
  61. package/dist/tools/ListScriptsTool.d.ts.map +0 -1
  62. package/dist/tools/ListScriptsTool.js +0 -86
  63. package/dist/tools/ListScriptsTool.js.map +0 -1
  64. package/dist/tools/ListTableTool.d.ts +0 -24
  65. package/dist/tools/ListTableTool.d.ts.map +0 -1
  66. package/dist/tools/ListTableTool.js +0 -85
  67. package/dist/tools/ListTableTool.js.map +0 -1
  68. package/dist/tools/ProfileTableTool.d.ts +0 -78
  69. package/dist/tools/ProfileTableTool.d.ts.map +0 -1
  70. package/dist/tools/ProfileTableTool.js +0 -373
  71. package/dist/tools/ProfileTableTool.js.map +0 -1
  72. package/dist/tools/ReadDataTool.d.ts +0 -61
  73. package/dist/tools/ReadDataTool.d.ts.map +0 -1
  74. package/dist/tools/ReadDataTool.js +0 -299
  75. package/dist/tools/ReadDataTool.js.map +0 -1
  76. package/dist/tools/RelationshipInspectorTool.d.ts +0 -46
  77. package/dist/tools/RelationshipInspectorTool.d.ts.map +0 -1
  78. package/dist/tools/RelationshipInspectorTool.js +0 -156
  79. package/dist/tools/RelationshipInspectorTool.js.map +0 -1
  80. package/dist/tools/RunScriptTool.d.ts +0 -215
  81. package/dist/tools/RunScriptTool.d.ts.map +0 -1
  82. package/dist/tools/RunScriptTool.js +0 -177
  83. package/dist/tools/RunScriptTool.js.map +0 -1
  84. package/dist/tools/SearchSchemaTool.d.ts +0 -88
  85. package/dist/tools/SearchSchemaTool.d.ts.map +0 -1
  86. package/dist/tools/SearchSchemaTool.js +0 -237
  87. package/dist/tools/SearchSchemaTool.js.map +0 -1
  88. package/dist/tools/TestConnectionTool.d.ts +0 -36
  89. package/dist/tools/TestConnectionTool.d.ts.map +0 -1
  90. package/dist/tools/TestConnectionTool.js +0 -155
  91. package/dist/tools/TestConnectionTool.js.map +0 -1
  92. package/dist/tools/UpdateDataTool.d.ts +0 -61
  93. package/dist/tools/UpdateDataTool.d.ts.map +0 -1
  94. package/dist/tools/UpdateDataTool.js +0 -117
  95. package/dist/tools/UpdateDataTool.js.map +0 -1
  96. package/dist/tools/ValidateEnvironmentConfigTool.d.ts +0 -51
  97. package/dist/tools/ValidateEnvironmentConfigTool.d.ts.map +0 -1
  98. package/dist/tools/ValidateEnvironmentConfigTool.js +0 -320
  99. package/dist/tools/ValidateEnvironmentConfigTool.js.map +0 -1
@@ -1,215 +0,0 @@
1
- import sql from "mssql";
2
- import { Tool } from "@modelcontextprotocol/sdk/types.js";
3
- export declare class RunScriptTool implements Tool {
4
- [key: string]: any;
5
- name: string;
6
- description: string;
7
- inputSchema: any;
8
- run(params: {
9
- scriptName: string;
10
- parameters?: Record<string, any>;
11
- preview?: boolean;
12
- confirm?: boolean;
13
- environment?: string;
14
- environmentPolicy?: any;
15
- }): Promise<{
16
- success: boolean;
17
- error: string;
18
- message: string;
19
- availableScripts: string[];
20
- script?: undefined;
21
- environment?: undefined;
22
- requiredTier?: undefined;
23
- environmentTier?: undefined;
24
- hint?: undefined;
25
- errors?: undefined;
26
- expectedParameters?: undefined;
27
- providedParameters?: undefined;
28
- preview?: undefined;
29
- description?: undefined;
30
- resolvedSql?: undefined;
31
- parameters?: undefined;
32
- requiresApproval?: undefined;
33
- rowsAffected?: undefined;
34
- recordCount?: undefined;
35
- data?: undefined;
36
- sqlError?: undefined;
37
- } | {
38
- success: boolean;
39
- error: string;
40
- message: string | undefined;
41
- script: string;
42
- environment: string;
43
- availableScripts?: undefined;
44
- requiredTier?: undefined;
45
- environmentTier?: undefined;
46
- hint?: undefined;
47
- errors?: undefined;
48
- expectedParameters?: undefined;
49
- providedParameters?: undefined;
50
- preview?: undefined;
51
- description?: undefined;
52
- resolvedSql?: undefined;
53
- parameters?: undefined;
54
- requiresApproval?: undefined;
55
- rowsAffected?: undefined;
56
- recordCount?: undefined;
57
- data?: undefined;
58
- sqlError?: undefined;
59
- } | {
60
- success: boolean;
61
- error: string;
62
- message: string;
63
- script: string;
64
- requiredTier: import("../config/EnvironmentManager.js").TierLevel;
65
- environmentTier: import("../config/EnvironmentManager.js").TierLevel | undefined;
66
- availableScripts?: undefined;
67
- environment?: undefined;
68
- hint?: undefined;
69
- errors?: undefined;
70
- expectedParameters?: undefined;
71
- providedParameters?: undefined;
72
- preview?: undefined;
73
- description?: undefined;
74
- resolvedSql?: undefined;
75
- parameters?: undefined;
76
- requiresApproval?: undefined;
77
- rowsAffected?: undefined;
78
- recordCount?: undefined;
79
- data?: undefined;
80
- sqlError?: undefined;
81
- } | {
82
- success: boolean;
83
- error: string;
84
- message: string;
85
- hint: string;
86
- availableScripts?: undefined;
87
- script?: undefined;
88
- environment?: undefined;
89
- requiredTier?: undefined;
90
- environmentTier?: undefined;
91
- errors?: undefined;
92
- expectedParameters?: undefined;
93
- providedParameters?: undefined;
94
- preview?: undefined;
95
- description?: undefined;
96
- resolvedSql?: undefined;
97
- parameters?: undefined;
98
- requiresApproval?: undefined;
99
- rowsAffected?: undefined;
100
- recordCount?: undefined;
101
- data?: undefined;
102
- sqlError?: undefined;
103
- } | {
104
- success: boolean;
105
- error: string;
106
- message: string;
107
- errors: string[];
108
- script: string;
109
- expectedParameters: import("../config/ScriptManager.js").ScriptParameter[] | undefined;
110
- providedParameters: Record<string, any>;
111
- availableScripts?: undefined;
112
- environment?: undefined;
113
- requiredTier?: undefined;
114
- environmentTier?: undefined;
115
- hint?: undefined;
116
- preview?: undefined;
117
- description?: undefined;
118
- resolvedSql?: undefined;
119
- parameters?: undefined;
120
- requiresApproval?: undefined;
121
- rowsAffected?: undefined;
122
- recordCount?: undefined;
123
- data?: undefined;
124
- sqlError?: undefined;
125
- } | {
126
- success: boolean;
127
- preview: boolean;
128
- script: string;
129
- description: string;
130
- environment: string;
131
- resolvedSql: string;
132
- parameters: Record<string, any>;
133
- requiresApproval: boolean | undefined;
134
- hint: string;
135
- error?: undefined;
136
- message?: undefined;
137
- availableScripts?: undefined;
138
- requiredTier?: undefined;
139
- environmentTier?: undefined;
140
- errors?: undefined;
141
- expectedParameters?: undefined;
142
- providedParameters?: undefined;
143
- rowsAffected?: undefined;
144
- recordCount?: undefined;
145
- data?: undefined;
146
- sqlError?: undefined;
147
- } | {
148
- success: boolean;
149
- error: string;
150
- requiresApproval: boolean;
151
- script: string;
152
- environment: string;
153
- resolvedSql: string;
154
- message: string;
155
- availableScripts?: undefined;
156
- requiredTier?: undefined;
157
- environmentTier?: undefined;
158
- hint?: undefined;
159
- errors?: undefined;
160
- expectedParameters?: undefined;
161
- providedParameters?: undefined;
162
- preview?: undefined;
163
- description?: undefined;
164
- parameters?: undefined;
165
- rowsAffected?: undefined;
166
- recordCount?: undefined;
167
- data?: undefined;
168
- sqlError?: undefined;
169
- } | {
170
- success: boolean;
171
- script: string;
172
- environment: string;
173
- rowsAffected: number;
174
- recordCount: number;
175
- data: sql.IRecordSet<any>;
176
- message: string;
177
- error?: undefined;
178
- availableScripts?: undefined;
179
- requiredTier?: undefined;
180
- environmentTier?: undefined;
181
- hint?: undefined;
182
- errors?: undefined;
183
- expectedParameters?: undefined;
184
- providedParameters?: undefined;
185
- preview?: undefined;
186
- description?: undefined;
187
- resolvedSql?: undefined;
188
- parameters?: undefined;
189
- requiresApproval?: undefined;
190
- sqlError?: undefined;
191
- } | {
192
- success: boolean;
193
- error: string;
194
- script: string;
195
- environment: string;
196
- message: string;
197
- sqlError: any;
198
- availableScripts?: undefined;
199
- requiredTier?: undefined;
200
- environmentTier?: undefined;
201
- hint?: undefined;
202
- errors?: undefined;
203
- expectedParameters?: undefined;
204
- providedParameters?: undefined;
205
- preview?: undefined;
206
- description?: undefined;
207
- resolvedSql?: undefined;
208
- parameters?: undefined;
209
- requiresApproval?: undefined;
210
- rowsAffected?: undefined;
211
- recordCount?: undefined;
212
- data?: undefined;
213
- }>;
214
- }
215
- //# sourceMappingURL=RunScriptTool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RunScriptTool.d.ts","sourceRoot":"","sources":["../../src/tools/RunScriptTool.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI1D,qBAAa,aAAc,YAAW,IAAI;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,IAAI,SAAgB;IACpB,WAAW,SAAqI;IAEhJ,WAAW,EA0BN,GAAG,CAAC;IAEH,GAAG,CAAC,MAAM,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjC,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,iBAAiB,CAAC,EAAE,GAAG,CAAC;KACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyJF"}
@@ -1,177 +0,0 @@
1
- import sql from "mssql";
2
- import { getScriptManager } from "../config/ScriptManager.js";
3
- import { getEnvironmentManager } from "../config/EnvironmentManager.js";
4
- export class RunScriptTool {
5
- constructor() {
6
- this.name = "run_script";
7
- this.description = "Executes a named SQL script with parameters. Scripts are pre-approved SQL templates. Use list_scripts to see available scripts.";
8
- this.inputSchema = {
9
- type: "object",
10
- properties: {
11
- scriptName: {
12
- type: "string",
13
- description: "Name of the script to execute (from list_scripts)",
14
- },
15
- parameters: {
16
- type: "object",
17
- description: "Parameter values for the script (key-value pairs)",
18
- additionalProperties: true,
19
- },
20
- preview: {
21
- type: "boolean",
22
- description: "If true, shows the resolved SQL without executing. Default: false",
23
- },
24
- confirm: {
25
- type: "boolean",
26
- description: "Required for scripts with requiresApproval or in environments with requireApproval. Set to true after reviewing preview.",
27
- },
28
- environment: {
29
- type: "string",
30
- description: "Target environment (optional, uses default if not specified)",
31
- },
32
- },
33
- required: ["scriptName"],
34
- };
35
- }
36
- async run(params) {
37
- const { scriptName, parameters = {}, preview = false, confirm = false, environment } = params;
38
- const scriptManager = getScriptManager();
39
- const envManager = getEnvironmentManager();
40
- // Get the script
41
- const script = scriptManager.getScript(scriptName);
42
- if (!script) {
43
- const available = scriptManager.listScripts().map((s) => s.name);
44
- return {
45
- success: false,
46
- error: "SCRIPT_NOT_FOUND",
47
- message: `Script '${scriptName}' not found.`,
48
- availableScripts: available,
49
- };
50
- }
51
- // Get environment config
52
- const envConfig = envManager.getEnvironment(environment);
53
- const envName = envConfig.name;
54
- // Check if script can run in this environment
55
- const envCheck = scriptManager.canRunInEnvironment(scriptName, envName);
56
- if (!envCheck.allowed) {
57
- return {
58
- success: false,
59
- error: "SCRIPT_NOT_ALLOWED",
60
- message: envCheck.reason,
61
- script: scriptName,
62
- environment: envName,
63
- };
64
- }
65
- // Check tier compatibility
66
- if (script.tier) {
67
- const tierOrder = ["reader", "writer", "admin"];
68
- const scriptTierIndex = tierOrder.indexOf(script.tier);
69
- const envTierIndex = envConfig.tier ? tierOrder.indexOf(envConfig.tier) : 2; // default to admin
70
- if (envTierIndex < scriptTierIndex) {
71
- return {
72
- success: false,
73
- error: "INSUFFICIENT_TIER",
74
- message: `Script '${scriptName}' requires tier '${script.tier}' but environment '${envName}' is tier '${envConfig.tier}'.`,
75
- script: scriptName,
76
- requiredTier: script.tier,
77
- environmentTier: envConfig.tier,
78
- };
79
- }
80
- }
81
- // Check readonly constraints
82
- if (envConfig.readonly && !script.readonly) {
83
- return {
84
- success: false,
85
- error: "ENVIRONMENT_READONLY",
86
- message: `Environment '${envName}' is read-only. Script '${scriptName}' is not marked as readonly.`,
87
- hint: "Mark the script as readonly: true in scripts.json if it only performs SELECT operations.",
88
- };
89
- }
90
- // Resolve parameters
91
- const { sql: resolvedSql, errors } = scriptManager.resolveParameters(script, parameters);
92
- if (errors.length > 0) {
93
- return {
94
- success: false,
95
- error: "PARAMETER_ERROR",
96
- message: "Failed to resolve script parameters.",
97
- errors,
98
- script: scriptName,
99
- expectedParameters: script.parameters,
100
- providedParameters: parameters,
101
- };
102
- }
103
- // Preview mode - just return the resolved SQL
104
- if (preview) {
105
- return {
106
- success: true,
107
- preview: true,
108
- script: scriptName,
109
- description: script.description,
110
- environment: envName,
111
- resolvedSql,
112
- parameters: parameters,
113
- requiresApproval: script.requiresApproval || envConfig.requireApproval,
114
- hint: script.requiresApproval || envConfig.requireApproval
115
- ? "This script requires confirmation. Run again with confirm: true to execute."
116
- : "Run again with preview: false to execute.",
117
- };
118
- }
119
- // Check approval requirements
120
- const needsApproval = script.requiresApproval || envConfig.requireApproval;
121
- if (needsApproval && !confirm) {
122
- return {
123
- success: false,
124
- error: "APPROVAL_REQUIRED",
125
- requiresApproval: true,
126
- script: scriptName,
127
- environment: envName,
128
- resolvedSql,
129
- message: `Script '${scriptName}' requires explicit approval. Review the SQL and run again with confirm: true.`,
130
- };
131
- }
132
- // Execute the script
133
- try {
134
- const pool = await envManager.getConnection(envName);
135
- const request = pool.request();
136
- // For actual execution, we use parameterized queries for safety
137
- // Add parameters to the request
138
- for (const param of script.parameters || []) {
139
- const value = parameters[param.name] ?? param.default;
140
- if (value !== undefined) {
141
- // Map our types to SQL types
142
- switch (param.type) {
143
- case "number":
144
- request.input(param.name, sql.Float, value);
145
- break;
146
- case "boolean":
147
- request.input(param.name, sql.Bit, value);
148
- break;
149
- default:
150
- request.input(param.name, sql.NVarChar(sql.MAX), value);
151
- }
152
- }
153
- }
154
- const result = await request.query(script.sql);
155
- return {
156
- success: true,
157
- script: scriptName,
158
- environment: envName,
159
- rowsAffected: result.rowsAffected.reduce((a, b) => a + b, 0),
160
- recordCount: result.recordset?.length,
161
- data: result.recordset,
162
- message: `Script '${scriptName}' executed successfully.`,
163
- };
164
- }
165
- catch (error) {
166
- return {
167
- success: false,
168
- error: "EXECUTION_ERROR",
169
- script: scriptName,
170
- environment: envName,
171
- message: `Script execution failed: ${error.message}`,
172
- sqlError: error.message,
173
- };
174
- }
175
- }
176
- }
177
- //# sourceMappingURL=RunScriptTool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RunScriptTool.js","sourceRoot":"","sources":["../../src/tools/RunScriptTool.ts"],"names":[],"mappings":"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"}
@@ -1,88 +0,0 @@
1
- import { Tool } from "@modelcontextprotocol/sdk/types.js";
2
- type SearchParams = {
3
- tablePattern?: string;
4
- columnPattern?: string;
5
- limit?: number;
6
- tableLimit?: number;
7
- columnLimit?: number;
8
- tableOffset?: number;
9
- columnOffset?: number;
10
- };
11
- type PaginationInfo = {
12
- offset: number;
13
- limit: number;
14
- total: number;
15
- hasMore: boolean;
16
- };
17
- type SearchResult = {
18
- success: boolean;
19
- message?: string;
20
- totalTables?: number;
21
- totalColumns?: number;
22
- tables?: Array<{
23
- schemaName: string;
24
- tableName: string;
25
- }>;
26
- columns?: Array<{
27
- schemaName: string;
28
- tableName: string;
29
- columnName: string;
30
- dataType: string;
31
- }>;
32
- fuzzySuggestions?: Array<{
33
- schemaName: string;
34
- tableName: string;
35
- similarity: number;
36
- }>;
37
- fuzzySearchTerm?: string;
38
- tablesPage?: PaginationInfo;
39
- columnsPage?: PaginationInfo;
40
- };
41
- export declare class SearchSchemaTool implements Tool {
42
- [key: string]: any;
43
- name: string;
44
- description: string;
45
- inputSchema: {
46
- readonly type: "object";
47
- readonly properties: {
48
- readonly tablePattern: {
49
- readonly type: "string";
50
- readonly description: "Wildcard pattern for table names (e.g. 'doc%').";
51
- };
52
- readonly columnPattern: {
53
- readonly type: "string";
54
- readonly description: "Wildcard pattern for column names (e.g. '%id').";
55
- };
56
- readonly limit: {
57
- readonly type: "number";
58
- readonly description: "Maximum rows to return per section (default 50, max 200).";
59
- };
60
- readonly tableLimit: {
61
- readonly type: "number";
62
- readonly description: "Override for table section limit (defaults to limit).";
63
- };
64
- readonly columnLimit: {
65
- readonly type: "number";
66
- readonly description: "Override for column section limit (defaults to limit).";
67
- };
68
- readonly tableOffset: {
69
- readonly type: "number";
70
- readonly description: "Number of table rows to skip (for pagination).";
71
- };
72
- readonly columnOffset: {
73
- readonly type: "number";
74
- readonly description: "Number of column rows to skip (for pagination).";
75
- };
76
- };
77
- };
78
- private normalizePattern;
79
- private stripWildcards;
80
- private normalizeLimit;
81
- private normalizeOffset;
82
- private levenshteinDistance;
83
- private calculateSimilarity;
84
- private findSimilarTables;
85
- run(params: SearchParams): Promise<SearchResult>;
86
- }
87
- export {};
88
- //# sourceMappingURL=SearchSchemaTool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SearchSchemaTool.d.ts","sourceRoot":"","sources":["../../src/tools/SearchSchemaTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAe1D,KAAK,YAAY,GAAG;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjG,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,WAAW,CAAC,EAAE,cAAc,CAAC;CAC9B,CAAC;AAEF,qBAAa,gBAAiB,YAAW,IAAI;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,IAAI,SAAmB;IACvB,WAAW,SAAmF;IAC9F,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgCA;IAEX,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,mBAAmB;YAWb,iBAAiB;IAwBzB,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;CA0HvD"}