@ibm/ibmi-mcp-server 0.1.2 → 0.3.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 (207) hide show
  1. package/README.md +2178 -46
  2. package/dist/config/index.d.ts +2 -0
  3. package/dist/config/index.d.ts.map +1 -1
  4. package/dist/config/index.js +57 -24
  5. package/dist/config/index.js.map +1 -1
  6. package/dist/config/resolver.d.ts.map +1 -1
  7. package/dist/config/resolver.js.map +1 -1
  8. package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.js +1 -1
  9. package/dist/ibmi-mcp-server/services/connectionPool.js +2 -2
  10. package/dist/ibmi-mcp-server/tools/executeSql.tool.d.ts +80 -0
  11. package/dist/ibmi-mcp-server/tools/executeSql.tool.d.ts.map +1 -0
  12. package/dist/ibmi-mcp-server/tools/executeSql.tool.js +356 -0
  13. package/dist/ibmi-mcp-server/tools/executeSql.tool.js.map +1 -0
  14. package/dist/ibmi-mcp-server/tools/generateSql.tool.d.ts +36 -0
  15. package/dist/ibmi-mcp-server/tools/generateSql.tool.d.ts.map +1 -0
  16. package/dist/ibmi-mcp-server/tools/generateSql.tool.js +281 -0
  17. package/dist/ibmi-mcp-server/tools/generateSql.tool.js.map +1 -0
  18. package/dist/ibmi-mcp-server/tools/index.d.ts +85 -0
  19. package/dist/ibmi-mcp-server/tools/index.d.ts.map +1 -0
  20. package/dist/ibmi-mcp-server/tools/index.js +21 -0
  21. package/dist/ibmi-mcp-server/tools/index.js.map +1 -0
  22. package/dist/ibmi-mcp-server/utils/config/configParser.d.ts +9 -0
  23. package/dist/ibmi-mcp-server/utils/config/configParser.d.ts.map +1 -1
  24. package/dist/ibmi-mcp-server/utils/config/configParser.js +58 -0
  25. package/dist/ibmi-mcp-server/utils/config/configParser.js.map +1 -1
  26. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js +1 -1
  27. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js.map +1 -1
  28. package/dist/ibmi-mcp-server/utils/config/toolDefinitions.d.ts +4 -4
  29. package/dist/ibmi-mcp-server/utils/config/toolDefinitions.d.ts.map +1 -1
  30. package/dist/ibmi-mcp-server/utils/config/toolDefinitions.js +7 -8
  31. package/dist/ibmi-mcp-server/utils/config/toolDefinitions.js.map +1 -1
  32. package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts +0 -8
  33. package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts.map +1 -1
  34. package/dist/ibmi-mcp-server/utils/config/toolFactory.js +0 -31
  35. package/dist/ibmi-mcp-server/utils/config/toolFactory.js.map +1 -1
  36. package/dist/ibmi-mcp-server/utils/config/toolsetManager.d.ts +1 -1
  37. package/dist/ibmi-mcp-server/utils/config/toolsetManager.d.ts.map +1 -1
  38. package/dist/ibmi-mcp-server/utils/config/toolsetManager.js +2 -2
  39. package/dist/ibmi-mcp-server/utils/config/toolsetManager.js.map +1 -1
  40. package/dist/ibmi-mcp-server/utils/language/document.d.ts +26 -0
  41. package/dist/ibmi-mcp-server/utils/language/document.d.ts.map +1 -0
  42. package/dist/ibmi-mcp-server/utils/language/document.js +318 -0
  43. package/dist/ibmi-mcp-server/utils/language/document.js.map +1 -0
  44. package/dist/ibmi-mcp-server/utils/language/statement.d.ts +43 -0
  45. package/dist/ibmi-mcp-server/utils/language/statement.d.ts.map +1 -0
  46. package/dist/ibmi-mcp-server/utils/language/statement.js +796 -0
  47. package/dist/ibmi-mcp-server/utils/language/statement.js.map +1 -0
  48. package/dist/ibmi-mcp-server/utils/language/tokens.d.ts +32 -0
  49. package/dist/ibmi-mcp-server/utils/language/tokens.d.ts.map +1 -0
  50. package/dist/ibmi-mcp-server/utils/language/tokens.js +532 -0
  51. package/dist/ibmi-mcp-server/utils/language/tokens.js.map +1 -0
  52. package/dist/ibmi-mcp-server/utils/language/types.d.ts +138 -0
  53. package/dist/ibmi-mcp-server/utils/language/types.d.ts.map +1 -0
  54. package/dist/ibmi-mcp-server/utils/language/types.js +93 -0
  55. package/dist/ibmi-mcp-server/utils/language/types.js.map +1 -0
  56. package/dist/ibmi-mcp-server/utils/security/ibmiSqlParser.d.ts +48 -0
  57. package/dist/ibmi-mcp-server/utils/security/ibmiSqlParser.d.ts.map +1 -0
  58. package/dist/ibmi-mcp-server/utils/security/ibmiSqlParser.js +93 -0
  59. package/dist/ibmi-mcp-server/utils/security/ibmiSqlParser.js.map +1 -0
  60. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.d.ts +35 -59
  61. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.d.ts.map +1 -1
  62. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.js +108 -288
  63. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.js.map +1 -1
  64. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidatorFallback.d.ts +54 -0
  65. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidatorFallback.d.ts.map +1 -0
  66. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidatorFallback.js +91 -0
  67. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidatorFallback.js.map +1 -0
  68. package/dist/index.js +4 -1
  69. package/dist/index.js.map +1 -1
  70. package/dist/mcp-server/tools/index.d.ts +13 -2
  71. package/dist/mcp-server/tools/index.d.ts.map +1 -1
  72. package/dist/mcp-server/tools/index.js +29 -9
  73. package/dist/mcp-server/tools/index.js.map +1 -1
  74. package/dist/mcp-server/tools/utils/index.d.ts +7 -0
  75. package/dist/mcp-server/tools/utils/index.d.ts.map +1 -0
  76. package/dist/mcp-server/tools/utils/index.js +7 -0
  77. package/dist/mcp-server/tools/utils/index.js.map +1 -0
  78. package/dist/mcp-server/tools/utils/tool-factory.d.ts +129 -0
  79. package/dist/mcp-server/tools/utils/tool-factory.d.ts.map +1 -0
  80. package/dist/mcp-server/tools/utils/tool-factory.js +179 -0
  81. package/dist/mcp-server/tools/utils/tool-factory.js.map +1 -0
  82. package/dist/mcp-server/tools/utils/types.d.ts +117 -0
  83. package/dist/mcp-server/tools/utils/types.d.ts.map +1 -0
  84. package/dist/mcp-server/tools/utils/types.js +11 -0
  85. package/dist/mcp-server/tools/utils/types.js.map +1 -0
  86. package/dist/mcp-server/transports/core/cleanupTransformStream.d.ts +26 -0
  87. package/dist/mcp-server/transports/core/cleanupTransformStream.d.ts.map +1 -0
  88. package/dist/mcp-server/transports/core/cleanupTransformStream.js +60 -0
  89. package/dist/mcp-server/transports/core/cleanupTransformStream.js.map +1 -0
  90. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts +1 -1
  91. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts.map +1 -1
  92. package/dist/mcp-server/transports/core/statefulTransportManager.js +50 -40
  93. package/dist/mcp-server/transports/core/statefulTransportManager.js.map +1 -1
  94. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts +2 -13
  95. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts.map +1 -1
  96. package/dist/mcp-server/transports/core/statelessTransportManager.js +35 -62
  97. package/dist/mcp-server/transports/core/statelessTransportManager.js.map +1 -1
  98. package/dist/mcp-server/transports/core/transportRequest.d.ts +1 -2
  99. package/dist/mcp-server/transports/core/transportRequest.d.ts.map +1 -1
  100. package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts.map +1 -1
  101. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js +1 -3
  102. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js.map +1 -1
  103. package/dist/utils/internal/logger.d.ts +5 -0
  104. package/dist/utils/internal/logger.d.ts.map +1 -1
  105. package/dist/utils/internal/logger.js +65 -36
  106. package/dist/utils/internal/logger.js.map +1 -1
  107. package/package.json +29 -23
  108. package/dist/ibmi-mcp-server/tools/executeSql/index.d.ts +0 -9
  109. package/dist/ibmi-mcp-server/tools/executeSql/index.d.ts.map +0 -1
  110. package/dist/ibmi-mcp-server/tools/executeSql/index.js +0 -9
  111. package/dist/ibmi-mcp-server/tools/executeSql/index.js.map +0 -1
  112. package/dist/ibmi-mcp-server/tools/executeSql/logic.d.ts +0 -51
  113. package/dist/ibmi-mcp-server/tools/executeSql/logic.d.ts.map +0 -1
  114. package/dist/ibmi-mcp-server/tools/executeSql/logic.js +0 -179
  115. package/dist/ibmi-mcp-server/tools/executeSql/logic.js.map +0 -1
  116. package/dist/ibmi-mcp-server/tools/executeSql/registration.d.ts +0 -52
  117. package/dist/ibmi-mcp-server/tools/executeSql/registration.d.ts.map +0 -1
  118. package/dist/ibmi-mcp-server/tools/executeSql/registration.js +0 -161
  119. package/dist/ibmi-mcp-server/tools/executeSql/registration.js.map +0 -1
  120. package/dist/ibmi-mcp-server/tools/generateSql/index.d.ts +0 -13
  121. package/dist/ibmi-mcp-server/tools/generateSql/index.d.ts.map +0 -1
  122. package/dist/ibmi-mcp-server/tools/generateSql/index.js +0 -13
  123. package/dist/ibmi-mcp-server/tools/generateSql/index.js.map +0 -1
  124. package/dist/ibmi-mcp-server/tools/generateSql/logic.d.ts +0 -64
  125. package/dist/ibmi-mcp-server/tools/generateSql/logic.d.ts.map +0 -1
  126. package/dist/ibmi-mcp-server/tools/generateSql/logic.js +0 -190
  127. package/dist/ibmi-mcp-server/tools/generateSql/logic.js.map +0 -1
  128. package/dist/ibmi-mcp-server/tools/generateSql/registration.d.ts +0 -18
  129. package/dist/ibmi-mcp-server/tools/generateSql/registration.d.ts.map +0 -1
  130. package/dist/ibmi-mcp-server/tools/generateSql/registration.js +0 -64
  131. package/dist/ibmi-mcp-server/tools/generateSql/registration.js.map +0 -1
  132. package/dist/mcp-server/tools/catFactFetcher/index.d.ts +0 -8
  133. package/dist/mcp-server/tools/catFactFetcher/index.d.ts.map +0 -1
  134. package/dist/mcp-server/tools/catFactFetcher/index.js +0 -8
  135. package/dist/mcp-server/tools/catFactFetcher/index.js.map +0 -1
  136. package/dist/mcp-server/tools/catFactFetcher/logic.d.ts +0 -52
  137. package/dist/mcp-server/tools/catFactFetcher/logic.d.ts.map +0 -1
  138. package/dist/mcp-server/tools/catFactFetcher/logic.js +0 -95
  139. package/dist/mcp-server/tools/catFactFetcher/logic.js.map +0 -1
  140. package/dist/mcp-server/tools/catFactFetcher/registration.d.ts +0 -9
  141. package/dist/mcp-server/tools/catFactFetcher/registration.d.ts.map +0 -1
  142. package/dist/mcp-server/tools/catFactFetcher/registration.js +0 -43
  143. package/dist/mcp-server/tools/catFactFetcher/registration.js.map +0 -1
  144. package/dist/mcp-server/tools/echoTool/index.d.ts +0 -13
  145. package/dist/mcp-server/tools/echoTool/index.d.ts.map +0 -1
  146. package/dist/mcp-server/tools/echoTool/index.js +0 -13
  147. package/dist/mcp-server/tools/echoTool/index.js.map +0 -1
  148. package/dist/mcp-server/tools/echoTool/logic.d.ts +0 -69
  149. package/dist/mcp-server/tools/echoTool/logic.d.ts.map +0 -1
  150. package/dist/mcp-server/tools/echoTool/logic.js +0 -119
  151. package/dist/mcp-server/tools/echoTool/logic.js.map +0 -1
  152. package/dist/mcp-server/tools/echoTool/registration.d.ts +0 -9
  153. package/dist/mcp-server/tools/echoTool/registration.d.ts.map +0 -1
  154. package/dist/mcp-server/tools/echoTool/registration.js +0 -45
  155. package/dist/mcp-server/tools/echoTool/registration.js.map +0 -1
  156. package/dist/mcp-server/tools/imageTest/index.d.ts +0 -7
  157. package/dist/mcp-server/tools/imageTest/index.d.ts.map +0 -1
  158. package/dist/mcp-server/tools/imageTest/index.js +0 -7
  159. package/dist/mcp-server/tools/imageTest/index.js.map +0 -1
  160. package/dist/mcp-server/tools/imageTest/logic.d.ts +0 -27
  161. package/dist/mcp-server/tools/imageTest/logic.d.ts.map +0 -1
  162. package/dist/mcp-server/tools/imageTest/logic.js +0 -44
  163. package/dist/mcp-server/tools/imageTest/logic.js.map +0 -1
  164. package/dist/mcp-server/tools/imageTest/registration.d.ts +0 -9
  165. package/dist/mcp-server/tools/imageTest/registration.d.ts.map +0 -1
  166. package/dist/mcp-server/tools/imageTest/registration.js +0 -49
  167. package/dist/mcp-server/tools/imageTest/registration.js.map +0 -1
  168. package/dist/mcp-server/tools/utils/tool-utils.d.ts +0 -43
  169. package/dist/mcp-server/tools/utils/tool-utils.d.ts.map +0 -1
  170. package/dist/mcp-server/tools/utils/tool-utils.js +0 -44
  171. package/dist/mcp-server/tools/utils/tool-utils.js.map +0 -1
  172. package/dist/mcp-server/transports/core/headerUtils.d.ts +0 -27
  173. package/dist/mcp-server/transports/core/headerUtils.d.ts.map +0 -1
  174. package/dist/mcp-server/transports/core/headerUtils.js +0 -53
  175. package/dist/mcp-server/transports/core/headerUtils.js.map +0 -1
  176. package/dist/mcp-server/transports/core/honoNodeBridge.d.ts +0 -77
  177. package/dist/mcp-server/transports/core/honoNodeBridge.d.ts.map +0 -1
  178. package/dist/mcp-server/transports/core/honoNodeBridge.js +0 -150
  179. package/dist/mcp-server/transports/core/honoNodeBridge.js.map +0 -1
  180. package/dist/services/duck-db/duckDBConnectionManager.d.ts +0 -55
  181. package/dist/services/duck-db/duckDBConnectionManager.d.ts.map +0 -1
  182. package/dist/services/duck-db/duckDBConnectionManager.js +0 -184
  183. package/dist/services/duck-db/duckDBConnectionManager.js.map +0 -1
  184. package/dist/services/duck-db/duckDBQueryExecutor.d.ts +0 -18
  185. package/dist/services/duck-db/duckDBQueryExecutor.d.ts.map +0 -1
  186. package/dist/services/duck-db/duckDBQueryExecutor.js +0 -115
  187. package/dist/services/duck-db/duckDBQueryExecutor.js.map +0 -1
  188. package/dist/services/duck-db/duckDBService.d.ts +0 -27
  189. package/dist/services/duck-db/duckDBService.d.ts.map +0 -1
  190. package/dist/services/duck-db/duckDBService.js +0 -151
  191. package/dist/services/duck-db/duckDBService.js.map +0 -1
  192. package/dist/services/duck-db/types.d.ts +0 -135
  193. package/dist/services/duck-db/types.d.ts.map +0 -1
  194. package/dist/services/duck-db/types.js +0 -6
  195. package/dist/services/duck-db/types.js.map +0 -1
  196. package/dist/services/llm-providers/openRouterProvider.d.ts +0 -36
  197. package/dist/services/llm-providers/openRouterProvider.d.ts.map +0 -1
  198. package/dist/services/llm-providers/openRouterProvider.js +0 -235
  199. package/dist/services/llm-providers/openRouterProvider.js.map +0 -1
  200. package/dist/services/supabase/supabaseClient.d.ts +0 -25
  201. package/dist/services/supabase/supabaseClient.d.ts.map +0 -1
  202. package/dist/services/supabase/supabaseClient.js +0 -68
  203. package/dist/services/supabase/supabaseClient.js.map +0 -1
  204. package/dist/storage/duckdbExample.d.ts +0 -8
  205. package/dist/storage/duckdbExample.d.ts.map +0 -1
  206. package/dist/storage/duckdbExample.js +0 -197
  207. package/dist/storage/duckdbExample.js.map +0 -1
@@ -0,0 +1,318 @@
1
+ /* eslint-disable */
2
+ // @ts-nocheck
3
+ // Vendored from vscode-db2i - TypeScript strict mode and ESLint disabled
4
+ import Statement from "./statement.js";
5
+ import SQLTokeniser from "./tokens.js";
6
+ import { StatementType, StatementTypeWord, } from "./types.js";
7
+ export default class Document {
8
+ content;
9
+ statements;
10
+ debug = false;
11
+ constructor(content, keepComments = false) {
12
+ this.content = content;
13
+ this.statements = [];
14
+ const tokeniser = new SQLTokeniser();
15
+ tokeniser.storeComments = keepComments;
16
+ this.parseStatements(tokeniser.tokenise(content));
17
+ }
18
+ log(content) {
19
+ if (this.debug) {
20
+ console.log(content);
21
+ }
22
+ }
23
+ addStatement(tokens) {
24
+ if (tokens.length > 0) {
25
+ tokens = Statement.trimTokens(tokens);
26
+ if (tokens.length > 0) {
27
+ this.statements.push(new Statement(tokens, {
28
+ start: tokens[0].range.start,
29
+ end: tokens[tokens.length - 1].range.end,
30
+ }));
31
+ }
32
+ }
33
+ }
34
+ parseStatements(tokens) {
35
+ let currentStatementType = StatementType.Unknown;
36
+ let statementStart = 0;
37
+ let bracketDepth = 0;
38
+ for (let i = 0; i < tokens.length; i++) {
39
+ const upperValue = tokens[i].value?.toUpperCase();
40
+ switch (tokens[i].type) {
41
+ case `openbracket`:
42
+ bracketDepth++;
43
+ break;
44
+ case `closebracket`:
45
+ bracketDepth--;
46
+ break;
47
+ case `semicolon`:
48
+ const statementTokens = tokens.slice(statementStart, i);
49
+ this.addStatement(statementTokens);
50
+ statementStart = i + 1;
51
+ break;
52
+ case `statementType`:
53
+ currentStatementType = StatementTypeWord[upperValue];
54
+ break;
55
+ case `keyword`:
56
+ if (bracketDepth === 0) {
57
+ switch (upperValue) {
58
+ case `LOOP`:
59
+ case `THEN`:
60
+ case `BEGIN`:
61
+ case `ELSE`:
62
+ case `DO`:
63
+ // This handles the case that 'END LOOP' is supported.
64
+ if (upperValue === `LOOP` &&
65
+ currentStatementType === StatementType.End) {
66
+ break;
67
+ }
68
+ // Support for THEN in conditionals
69
+ if (upperValue === `THEN` &&
70
+ !Statement.typeIsConditional(currentStatementType)) {
71
+ break;
72
+ }
73
+ if (upperValue === `ELSE` &&
74
+ !Statement.typeIsConditional(currentStatementType)) {
75
+ break;
76
+ }
77
+ if (upperValue === `BEGIN` &&
78
+ currentStatementType === StatementType.Alter) {
79
+ break;
80
+ }
81
+ // We include BEGIN in the current statement
82
+ // then the next statement beings
83
+ const statementTokens = tokens.slice(statementStart, i + 1);
84
+ this.addStatement(statementTokens);
85
+ statementStart = i + 1;
86
+ break;
87
+ case `END`:
88
+ // We ignore the END statement keyword when it's solo.
89
+ if (statementStart === i &&
90
+ (tokens[i] === undefined || tokens[i].type === `semicolon`)) {
91
+ statementStart = i + 1;
92
+ }
93
+ break;
94
+ }
95
+ }
96
+ break;
97
+ }
98
+ }
99
+ const lastStatementTokens = tokens.slice(statementStart, tokens.length);
100
+ this.addStatement(lastStatementTokens);
101
+ }
102
+ getStatementByOffset(offset) {
103
+ return this.statements.find((statement, i) => {
104
+ const end = this.statements[i + 1]
105
+ ? this.statements[i + 1].range.start
106
+ : statement.range.end;
107
+ return ((offset >= statement.range.start && offset < end) ||
108
+ (i === this.statements.length - 1 && offset >= end));
109
+ });
110
+ }
111
+ getTokenByOffset(offset) {
112
+ const statement = this.getStatementByOffset(offset);
113
+ if (statement) {
114
+ return statement.getTokenByOffset(offset);
115
+ }
116
+ }
117
+ getStatementGroups() {
118
+ let groups = [];
119
+ let currentGroup = [];
120
+ let depth = 0;
121
+ for (const statement of this.statements) {
122
+ if (statement.isCompoundEnd()) {
123
+ if (depth > 0) {
124
+ currentGroup.push(statement);
125
+ depth--;
126
+ this.log(`<` +
127
+ ``.padEnd(depth * 2) +
128
+ Statement.formatSimpleTokens(statement.tokens.slice(0, 2)));
129
+ }
130
+ if (depth === 0) {
131
+ if (currentGroup.length > 0) {
132
+ groups.push({
133
+ range: {
134
+ start: currentGroup[0].range.start,
135
+ end: currentGroup[currentGroup.length - 1].range.end,
136
+ },
137
+ statements: currentGroup,
138
+ });
139
+ currentGroup = [];
140
+ }
141
+ }
142
+ }
143
+ else if (statement.isCompoundStart()) {
144
+ this.log(`>` +
145
+ ``.padEnd(depth * 2) +
146
+ Statement.formatSimpleTokens(statement.tokens.slice(0, 2)));
147
+ if (depth > 0) {
148
+ currentGroup.push(statement);
149
+ }
150
+ else {
151
+ currentGroup = [statement];
152
+ }
153
+ depth++;
154
+ }
155
+ else {
156
+ this.log(` ` +
157
+ ``.padEnd(depth * 2) +
158
+ Statement.formatSimpleTokens(statement.tokens.slice(0, 2)));
159
+ if (depth > 0) {
160
+ currentGroup.push(statement);
161
+ }
162
+ else {
163
+ groups.push({
164
+ range: statement.range,
165
+ statements: [statement],
166
+ });
167
+ }
168
+ }
169
+ }
170
+ if (currentGroup.length > 0) {
171
+ groups.push({
172
+ range: {
173
+ start: currentGroup[0].range.start,
174
+ end: currentGroup[currentGroup.length - 1].range.end,
175
+ },
176
+ statements: currentGroup,
177
+ });
178
+ }
179
+ return groups;
180
+ }
181
+ getDefinitions() {
182
+ const groups = this.getStatementGroups();
183
+ let list = [];
184
+ for (let i = 0; i < groups.length; i++) {
185
+ const group = groups[i];
186
+ if (group.statements.length > 0) {
187
+ if (group.statements.length === 1) {
188
+ list.push(...getSymbolsForStatements(group.statements));
189
+ }
190
+ else {
191
+ const [baseDef] = getSymbolsForStatements([group.statements[0]]);
192
+ if (baseDef) {
193
+ baseDef.children = getSymbolsForStatements(group.statements.slice(1));
194
+ }
195
+ list.push(baseDef);
196
+ }
197
+ }
198
+ }
199
+ return list;
200
+ }
201
+ getGroupByOffset(offset) {
202
+ const groups = this.getStatementGroups();
203
+ return groups.find((statement, i) => {
204
+ const end = groups[i + 1]
205
+ ? groups[i + 1].range.start
206
+ : statement.range.end;
207
+ return ((offset >= statement.range.start && offset < end) ||
208
+ (i === groups.length - 1 && offset >= end));
209
+ });
210
+ }
211
+ removeEmbeddedAreas(statement, options = {
212
+ replacement: `?`,
213
+ }) {
214
+ const areas = statement.getEmbeddedStatementAreas();
215
+ const totalParameters = areas.filter((a) => a.type === `marker`).length;
216
+ let newContent = this.content.substring(statement.range.start, statement.range.end);
217
+ let parameterCount = 0;
218
+ const startRange = statement.range.start;
219
+ // We do it in reverse so the substring ranges doesn't change
220
+ for (let x = areas.length - 1; x >= 0; x--) {
221
+ const area = areas[x];
222
+ let start = area.range.start - startRange, end = area.range.end - startRange;
223
+ switch (area.type) {
224
+ case `marker`:
225
+ const markerContent = newContent.substring(start, end);
226
+ switch (options.replacement) {
227
+ case `snippet`:
228
+ newContent =
229
+ newContent.substring(0, start) +
230
+ `\${${totalParameters - parameterCount}:${markerContent}}` +
231
+ newContent.substring(end) +
232
+ `$0`;
233
+ break;
234
+ case `?`:
235
+ newContent =
236
+ newContent.substring(0, start) +
237
+ `?` +
238
+ newContent.substring(end);
239
+ break;
240
+ case `values`:
241
+ let valueIndex = totalParameters - parameterCount - 1;
242
+ if (options.values && options.values.length > valueIndex) {
243
+ let value = options.values[valueIndex];
244
+ if (typeof value === `string`) {
245
+ value = `'${value.replace(/'/g, `''`)}'`; // Escape single quotes in strings
246
+ }
247
+ newContent =
248
+ newContent.substring(0, start) +
249
+ value +
250
+ newContent.substring(end);
251
+ }
252
+ else {
253
+ newContent =
254
+ newContent.substring(0, start) +
255
+ `?` +
256
+ newContent.substring(end);
257
+ }
258
+ break;
259
+ }
260
+ parameterCount++;
261
+ break;
262
+ case `remove`:
263
+ newContent =
264
+ newContent.substring(0, start) + newContent.substring(end);
265
+ if (newContent[start - 1] === ` ` && newContent[start] === ` `) {
266
+ newContent =
267
+ newContent.substring(0, start - 1) + newContent.substring(start);
268
+ }
269
+ break;
270
+ }
271
+ }
272
+ return {
273
+ changed: areas.length > 0,
274
+ content: newContent.trim(),
275
+ parameterCount,
276
+ };
277
+ }
278
+ }
279
+ export function getPositionData(ref, offset) {
280
+ const paramCommas = ref.tokens.filter((token) => token.type === `comma`);
281
+ let currentParm = paramCommas.findIndex((t) => offset < t.range.start);
282
+ if (currentParm === -1) {
283
+ currentParm = paramCommas.length;
284
+ }
285
+ const firstNamedPipe = ref.tokens.find((token, i) => token.type === `rightpipe`);
286
+ let firstNamedParameter = firstNamedPipe
287
+ ? paramCommas.findIndex((token, i) => token.range.start > firstNamedPipe.range.start)
288
+ : undefined;
289
+ if (firstNamedParameter === -1) {
290
+ firstNamedParameter = undefined;
291
+ }
292
+ return {
293
+ currentParm,
294
+ currentCount: paramCommas.length + 1,
295
+ firstNamedParameter,
296
+ };
297
+ }
298
+ function getSymbolsForStatements(statements) {
299
+ let defintions = [];
300
+ for (let i = 0; i < statements.length; i++) {
301
+ const statement = statements[i];
302
+ const [objectRef] = statement.getObjectReferences();
303
+ switch (statement.type) {
304
+ case StatementType.Declare:
305
+ case StatementType.Create:
306
+ if (objectRef) {
307
+ defintions.push({
308
+ ...objectRef,
309
+ children: [],
310
+ range: statement.range,
311
+ });
312
+ }
313
+ break;
314
+ }
315
+ }
316
+ return defintions;
317
+ }
318
+ //# sourceMappingURL=document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/utils/language/document.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,cAAc;AACd,yEAAyE;AACzE,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,YAAY,MAAM,aAAa,CAAC;AACvC,OAAO,EAKL,aAAa,EACb,iBAAiB,GAElB,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,OAAO,CAAS;IAChB,UAAU,CAAc;IACxB,KAAK,GAAY,KAAK,CAAC;IAEvB,YAAY,OAAe,EAAE,YAAY,GAAG,KAAK;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,MAAM,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;QACrC,SAAS,CAAC,aAAa,GAAG,YAAY,CAAC;QAEvC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,GAAG,CAAC,OAAe;QACjB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,MAAe;QAClC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAEtC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,SAAS,CAAC,MAAM,EAAE;oBACpB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;oBAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;iBACzC,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,MAAe;QACrC,IAAI,oBAAoB,GAAkB,aAAa,CAAC,OAAO,CAAC;QAChE,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;YAClD,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACvB,KAAK,aAAa;oBAChB,YAAY,EAAE,CAAC;oBACf,MAAM;gBACR,KAAK,cAAc;oBACjB,YAAY,EAAE,CAAC;oBACf,MAAM;gBACR,KAAK,WAAW;oBACd,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;oBAExD,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;oBAEnC,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC;oBACvB,MAAM;gBAER,KAAK,eAAe;oBAClB,oBAAoB,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;oBACrD,MAAM;gBAER,KAAK,SAAS;oBACZ,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;wBACvB,QAAQ,UAAU,EAAE,CAAC;4BACnB,KAAK,MAAM,CAAC;4BACZ,KAAK,MAAM,CAAC;4BACZ,KAAK,OAAO,CAAC;4BACb,KAAK,MAAM,CAAC;4BACZ,KAAK,IAAI;gCACP,sDAAsD;gCACtD,IACE,UAAU,KAAK,MAAM;oCACrB,oBAAoB,KAAK,aAAa,CAAC,GAAG,EAC1C,CAAC;oCACD,MAAM;gCACR,CAAC;gCAED,mCAAmC;gCACnC,IACE,UAAU,KAAK,MAAM;oCACrB,CAAC,SAAS,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,EAClD,CAAC;oCACD,MAAM;gCACR,CAAC;gCAED,IACE,UAAU,KAAK,MAAM;oCACrB,CAAC,SAAS,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,EAClD,CAAC;oCACD,MAAM;gCACR,CAAC;gCAED,IACE,UAAU,KAAK,OAAO;oCACtB,oBAAoB,KAAK,aAAa,CAAC,KAAK,EAC5C,CAAC;oCACD,MAAM;gCACR,CAAC;gCAED,4CAA4C;gCAC5C,iCAAiC;gCACjC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gCAC5D,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;gCACnC,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC;gCACvB,MAAM;4BACR,KAAK,KAAK;gCACR,sDAAsD;gCACtD,IACE,cAAc,KAAK,CAAC;oCACpB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,EAC3D,CAAC;oCACD,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC;gCACzB,CAAC;gCACD,MAAM;wBACV,CAAC;oBACH,CAAC;oBACD,MAAM;YACV,CAAC;QACH,CAAC;QAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IAED,oBAAoB,CAAC,MAAc;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;gBAChC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;gBACpC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;YACxB,OAAO,CACL,CAAC,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM,GAAG,GAAG,CAAC;gBACjD,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,GAAG,CAAC,CACpD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,MAAc;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAEpD,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,IAAI,MAAM,GAAqB,EAAE,CAAC;QAElC,IAAI,YAAY,GAAgB,EAAE,CAAC;QAEnC,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC;gBAC9B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACd,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAE7B,KAAK,EAAE,CAAC;oBAER,IAAI,CAAC,GAAG,CACN,GAAG;wBACD,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;wBACpB,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC7D,CAAC;gBACJ,CAAC;gBAED,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBAChB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC5B,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE;gCACL,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;gCAClC,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;6BACrD;4BACD,UAAU,EAAE,YAAY;yBACzB,CAAC,CAAC;wBAEH,YAAY,GAAG,EAAE,CAAC;oBACpB,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,SAAS,CAAC,eAAe,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC,GAAG,CACN,GAAG;oBACD,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;oBACpB,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC7D,CAAC;gBACF,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACd,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,YAAY,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC7B,CAAC;gBAED,KAAK,EAAE,CAAC;YACV,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CACN,GAAG;oBACD,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;oBACpB,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC7D,CAAC;gBACF,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACd,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,SAAS,CAAC,KAAK;wBACtB,UAAU,EAAE,CAAC,SAAS,CAAC;qBACxB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE;oBACL,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;oBAClC,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;iBACrD;gBACD,UAAU,EAAE,YAAY;aACzB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACzC,IAAI,IAAI,GAAiB,EAAE,CAAC;QAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAExB,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAClC,IAAI,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,OAAO,CAAC,GAAG,uBAAuB,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEjE,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,CAAC,QAAQ,GAAG,uBAAuB,CACxC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAC1B,CAAC;oBACJ,CAAC;oBAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,MAAc;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;gBAC3B,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;YACxB,OAAO,CACL,CAAC,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM,GAAG,GAAG,CAAC;gBACjD,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,GAAG,CAAC,CAC3C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB,CACjB,SAAoB,EACpB,UAAuE;QACrE,WAAW,EAAE,GAAG;KACjB;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,yBAAyB,EAAE,CAAC;QAEpD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QACxE,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CACrC,SAAS,CAAC,KAAK,CAAC,KAAK,EACrB,SAAS,CAAC,KAAK,CAAC,GAAG,CACpB,CAAC;QACF,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;QAEzC,6DAA6D;QAC7D,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEtB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,EACvC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC;YAEpC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,QAAQ;oBACX,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAEvD,QAAQ,OAAO,CAAC,WAAW,EAAE,CAAC;wBAC5B,KAAK,SAAS;4BACZ,UAAU;gCACR,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC;oCAC9B,MAAM,eAAe,GAAG,cAAc,IAAI,aAAa,GAAG;oCAC1D,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC;oCACzB,IAAI,CAAC;4BACP,MAAM;wBACR,KAAK,GAAG;4BACN,UAAU;gCACR,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC;oCAC9B,GAAG;oCACH,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;4BAC5B,MAAM;wBACR,KAAK,QAAQ;4BACX,IAAI,UAAU,GAAG,eAAe,GAAG,cAAc,GAAG,CAAC,CAAC;4BACtD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;gCACzD,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gCAEvC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oCAC9B,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,kCAAkC;gCAC9E,CAAC;gCAED,UAAU;oCACR,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC;wCAC9B,KAAK;wCACL,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;4BAC9B,CAAC;iCAAM,CAAC;gCACN,UAAU;oCACR,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC;wCAC9B,GAAG;wCACH,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;4BAC9B,CAAC;4BACD,MAAM;oBACV,CAAC;oBAED,cAAc,EAAE,CAAC;oBACjB,MAAM;gBAER,KAAK,QAAQ;oBACX,UAAU;wBACR,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBAC7D,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;wBAC/D,UAAU;4BACR,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACrE,CAAC;oBACD,MAAM;YACV,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC;YACzB,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE;YAC1B,cAAc;SACf,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,GAAsB,EAAE,MAAc;IACpE,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAEzE,IAAI,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEvE,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;QACvB,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;IACnC,CAAC;IAED,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CACpC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CACzC,CAAC;IACF,IAAI,mBAAmB,GAAG,cAAc;QACtC,CAAC,CAAC,WAAW,CAAC,SAAS,CACnB,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAC7D;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,mBAAmB,KAAK,CAAC,CAAC,EAAE,CAAC;QAC/B,mBAAmB,GAAG,SAAS,CAAC;IAClC,CAAC;IAED,OAAO;QACL,WAAW;QACX,YAAY,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC;QACpC,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAuB;IACtD,IAAI,UAAU,GAAiB,EAAE,CAAC;IAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,mBAAmB,EAAE,CAAC;QAEpD,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;YACvB,KAAK,aAAa,CAAC,OAAO,CAAC;YAC3B,KAAK,aAAa,CAAC,MAAM;gBACvB,IAAI,SAAS,EAAE,CAAC;oBACd,UAAU,CAAC,IAAI,CAAC;wBACd,GAAG,SAAS;wBACZ,QAAQ,EAAE,EAAE;wBACZ,KAAK,EAAE,SAAS,CAAC,KAAK;qBACvB,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { CTEReference, CallableReference, ClauseType, IRange, ObjectRef, StatementType, Token } from "./types.js";
2
+ export declare const tokenIs: (token: Token | undefined, type: string, value?: string) => boolean | undefined;
3
+ export default class Statement {
4
+ tokens: Token[];
5
+ range: IRange;
6
+ type: StatementType;
7
+ private label;
8
+ private _blockTokens;
9
+ private get blockTokens();
10
+ constructor(tokens: Token[], range: IRange);
11
+ getLabel(): string | undefined;
12
+ isCompoundStart(): boolean;
13
+ static typeIsConditional(type: StatementType): boolean;
14
+ isConditionStart(): boolean;
15
+ isConditionEnd(): boolean;
16
+ isCompoundEnd(): boolean;
17
+ getTokenByOffset(offset: number): Token | undefined;
18
+ getClauseForOffset(offset: number): ClauseType;
19
+ getBlockRangeAt(offset: number): IRange | undefined;
20
+ getCallableDetail(offset: number, withBlocks?: boolean): CallableReference;
21
+ getBlockAt(offset: number): Token[];
22
+ getReferenceByOffset(offset: number): ObjectRef | undefined;
23
+ getCTEReferences(): CTEReference[];
24
+ getRoutineParameters(): ObjectRef[];
25
+ private static readonly BANNED_NAMES;
26
+ getObjectReferences(): ObjectRef[];
27
+ private getRefAtToken;
28
+ /**
29
+ * Gets areas of statement that are likely from embedded statements
30
+ * EXEC SQL
31
+ * INTO area
32
+ * Host variables
33
+ * DECLARE .. CURSOR FOR
34
+ */
35
+ getEmbeddedStatementAreas(): {
36
+ type: "remove" | "marker";
37
+ range: IRange;
38
+ named?: string;
39
+ }[];
40
+ static trimTokens(tokens: Token[]): Token[];
41
+ static formatSimpleTokens(tokens: Token[]): string;
42
+ }
43
+ //# sourceMappingURL=statement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statement.d.ts","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/utils/language/statement.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,UAAU,EAEV,MAAM,EACN,SAAS,EAET,aAAa,EAEb,KAAK,EACN,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,OAAO,GAClB,OAAO,KAAK,GAAG,SAAS,EACxB,MAAM,MAAM,EACZ,QAAQ,MAAM,wBAOf,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,SAAS;IAcnB,MAAM,EAAE,KAAK,EAAE;IACf,KAAK,EAAE,MAAM;IAdf,IAAI,EAAE,aAAa,CAAyB;IACnD,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,YAAY,CAAsB;IAE1C,OAAO,KAAK,WAAW,GAMtB;gBAGQ,MAAM,EAAE,KAAK,EAAE,EACf,KAAK,EAAE,MAAM;IA8BtB,QAAQ,IAAI,MAAM,GAAG,SAAS;IAI9B,eAAe;IAmBf,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa;IAS5C,gBAAgB;IAIhB,cAAc;IAId,aAAa;IAIb,gBAAgB,CAAC,MAAM,EAAE,MAAM;IAgB/B,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAgB9C,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAsDnD,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,iBAAiB;IAyBxE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE;IAsBnC,oBAAoB,CAAC,MAAM,EAAE,MAAM;IA0CnC,gBAAgB,IAAI,YAAY,EAAE;IAmDlC,oBAAoB,IAAI,SAAS,EAAE;IA6DnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAc;IAClD,mBAAmB,IAAI,SAAS,EAAE;IA+PlC,OAAO,CAAC,aAAa;IAyIrB;;;;;;OAMG;IACH,yBAAyB;cAQH,QAAQ,GAAG,QAAQ;eAAS,MAAM;gBAAU,MAAM;;IAyIxE,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE;WAmBnB,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE;CAuCjD"}