d365fo-mcp 1.0.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 (1055) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +205 -0
  3. package/dist/bridge/bridgeAdapter.d.ts +319 -0
  4. package/dist/bridge/bridgeAdapter.d.ts.map +1 -0
  5. package/dist/bridge/bridgeAdapter.js +2003 -0
  6. package/dist/bridge/bridgeAdapter.js.map +1 -0
  7. package/dist/bridge/bridgeClient.d.ts +255 -0
  8. package/dist/bridge/bridgeClient.d.ts.map +1 -0
  9. package/dist/bridge/bridgeClient.js +741 -0
  10. package/dist/bridge/bridgeClient.js.map +1 -0
  11. package/dist/bridge/bridgeTypes.d.ts +561 -0
  12. package/dist/bridge/bridgeTypes.d.ts.map +1 -0
  13. package/dist/bridge/bridgeTypes.js +6 -0
  14. package/dist/bridge/bridgeTypes.js.map +1 -0
  15. package/dist/bridge/debouncedRefresh.d.ts +16 -0
  16. package/dist/bridge/debouncedRefresh.d.ts.map +1 -0
  17. package/dist/bridge/debouncedRefresh.js +77 -0
  18. package/dist/bridge/debouncedRefresh.js.map +1 -0
  19. package/dist/bridge/index.d.ts +21 -0
  20. package/dist/bridge/index.d.ts.map +1 -0
  21. package/dist/bridge/index.js +20 -0
  22. package/dist/bridge/index.js.map +1 -0
  23. package/dist/cli/commands/config.d.ts +8 -0
  24. package/dist/cli/commands/config.d.ts.map +1 -0
  25. package/dist/cli/commands/config.js +77 -0
  26. package/dist/cli/commands/config.js.map +1 -0
  27. package/dist/cli/commands/doctor.d.ts +2 -0
  28. package/dist/cli/commands/doctor.d.ts.map +1 -0
  29. package/dist/cli/commands/doctor.js +177 -0
  30. package/dist/cli/commands/doctor.js.map +1 -0
  31. package/dist/cli/commands/indexCmd.d.ts +8 -0
  32. package/dist/cli/commands/indexCmd.d.ts.map +1 -0
  33. package/dist/cli/commands/indexCmd.js +78 -0
  34. package/dist/cli/commands/indexCmd.js.map +1 -0
  35. package/dist/cli/commands/instance.d.ts +4 -0
  36. package/dist/cli/commands/instance.d.ts.map +1 -0
  37. package/dist/cli/commands/instance.js +183 -0
  38. package/dist/cli/commands/instance.js.map +1 -0
  39. package/dist/cli/commands/setup.d.ts +4 -0
  40. package/dist/cli/commands/setup.d.ts.map +1 -0
  41. package/dist/cli/commands/setup.js +246 -0
  42. package/dist/cli/commands/setup.js.map +1 -0
  43. package/dist/cli/commands/start.d.ts +2 -0
  44. package/dist/cli/commands/start.d.ts.map +1 -0
  45. package/dist/cli/commands/start.js +49 -0
  46. package/dist/cli/commands/start.js.map +1 -0
  47. package/dist/cli/commands/update.d.ts +4 -0
  48. package/dist/cli/commands/update.d.ts.map +1 -0
  49. package/dist/cli/commands/update.js +55 -0
  50. package/dist/cli/commands/update.js.map +1 -0
  51. package/dist/cli/context.d.ts +26 -0
  52. package/dist/cli/context.d.ts.map +1 -0
  53. package/dist/cli/context.js +38 -0
  54. package/dist/cli/context.js.map +1 -0
  55. package/dist/cli/envFile.d.ts +23 -0
  56. package/dist/cli/envFile.d.ts.map +1 -0
  57. package/dist/cli/envFile.js +79 -0
  58. package/dist/cli/envFile.js.map +1 -0
  59. package/dist/cli/exec.d.ts +13 -0
  60. package/dist/cli/exec.d.ts.map +1 -0
  61. package/dist/cli/exec.js +47 -0
  62. package/dist/cli/exec.js.map +1 -0
  63. package/dist/cli/index.d.ts +3 -0
  64. package/dist/cli/index.d.ts.map +1 -0
  65. package/dist/cli/index.js +122 -0
  66. package/dist/cli/index.js.map +1 -0
  67. package/dist/cli/instances.d.ts +19 -0
  68. package/dist/cli/instances.d.ts.map +1 -0
  69. package/dist/cli/instances.js +60 -0
  70. package/dist/cli/instances.js.map +1 -0
  71. package/dist/cli/mcpJson.d.ts +15 -0
  72. package/dist/cli/mcpJson.d.ts.map +1 -0
  73. package/dist/cli/mcpJson.js +44 -0
  74. package/dist/cli/mcpJson.js.map +1 -0
  75. package/dist/cli/settingsPrompt.d.ts +20 -0
  76. package/dist/cli/settingsPrompt.d.ts.map +1 -0
  77. package/dist/cli/settingsPrompt.js +150 -0
  78. package/dist/cli/settingsPrompt.js.map +1 -0
  79. package/dist/cli/settingsStore.d.ts +47 -0
  80. package/dist/cli/settingsStore.d.ts.map +1 -0
  81. package/dist/cli/settingsStore.js +144 -0
  82. package/dist/cli/settingsStore.js.map +1 -0
  83. package/dist/cli/target.d.ts +23 -0
  84. package/dist/cli/target.d.ts.map +1 -0
  85. package/dist/cli/target.js +62 -0
  86. package/dist/cli/target.js.map +1 -0
  87. package/dist/cli/ui.d.ts +26 -0
  88. package/dist/cli/ui.d.ts.map +1 -0
  89. package/dist/cli/ui.js +48 -0
  90. package/dist/cli/ui.js.map +1 -0
  91. package/dist/cli/xppConfig.d.ts +35 -0
  92. package/dist/cli/xppConfig.d.ts.map +1 -0
  93. package/dist/cli/xppConfig.js +97 -0
  94. package/dist/cli/xppConfig.js.map +1 -0
  95. package/dist/config/configFile.d.ts +50 -0
  96. package/dist/config/configFile.d.ts.map +1 -0
  97. package/dist/config/configFile.js +152 -0
  98. package/dist/config/configFile.js.map +1 -0
  99. package/dist/config/settings.d.ts +58 -0
  100. package/dist/config/settings.d.ts.map +1 -0
  101. package/dist/config/settings.js +641 -0
  102. package/dist/config/settings.js.map +1 -0
  103. package/dist/database/download.d.ts +27 -0
  104. package/dist/database/download.d.ts.map +1 -0
  105. package/dist/database/download.js +241 -0
  106. package/dist/database/download.js.map +1 -0
  107. package/dist/eval/audit/knowledgeAudit.d.ts +66 -0
  108. package/dist/eval/audit/knowledgeAudit.d.ts.map +1 -0
  109. package/dist/eval/audit/knowledgeAudit.js +117 -0
  110. package/dist/eval/audit/knowledgeAudit.js.map +1 -0
  111. package/dist/eval/audit/knowledgeAuditCli.d.ts +17 -0
  112. package/dist/eval/audit/knowledgeAuditCli.d.ts.map +1 -0
  113. package/dist/eval/audit/knowledgeAuditCli.js +83 -0
  114. package/dist/eval/audit/knowledgeAuditCli.js.map +1 -0
  115. package/dist/eval/audit/knowledgeRefs.d.ts +37 -0
  116. package/dist/eval/audit/knowledgeRefs.d.ts.map +1 -0
  117. package/dist/eval/audit/knowledgeRefs.js +150 -0
  118. package/dist/eval/audit/knowledgeRefs.js.map +1 -0
  119. package/dist/eval/audit/symbolLookup.d.ts +23 -0
  120. package/dist/eval/audit/symbolLookup.d.ts.map +1 -0
  121. package/dist/eval/audit/symbolLookup.js +80 -0
  122. package/dist/eval/audit/symbolLookup.js.map +1 -0
  123. package/dist/eval/coverage/coverage.d.ts +65 -0
  124. package/dist/eval/coverage/coverage.d.ts.map +1 -0
  125. package/dist/eval/coverage/coverage.js +136 -0
  126. package/dist/eval/coverage/coverage.js.map +1 -0
  127. package/dist/eval/coverage/coverageCli.d.ts +13 -0
  128. package/dist/eval/coverage/coverageCli.d.ts.map +1 -0
  129. package/dist/eval/coverage/coverageCli.js +106 -0
  130. package/dist/eval/coverage/coverageCli.js.map +1 -0
  131. package/dist/eval/coverage/sources.d.ts +17 -0
  132. package/dist/eval/coverage/sources.d.ts.map +1 -0
  133. package/dist/eval/coverage/sources.js +40 -0
  134. package/dist/eval/coverage/sources.js.map +1 -0
  135. package/dist/eval/coverage/taxonomy.d.ts +59 -0
  136. package/dist/eval/coverage/taxonomy.d.ts.map +1 -0
  137. package/dist/eval/coverage/taxonomy.js +400 -0
  138. package/dist/eval/coverage/taxonomy.js.map +1 -0
  139. package/dist/eval/improver/caseMining.d.ts +55 -0
  140. package/dist/eval/improver/caseMining.d.ts.map +1 -0
  141. package/dist/eval/improver/caseMining.js +64 -0
  142. package/dist/eval/improver/caseMining.js.map +1 -0
  143. package/dist/eval/improver/caseMiningCli.d.ts +10 -0
  144. package/dist/eval/improver/caseMiningCli.d.ts.map +1 -0
  145. package/dist/eval/improver/caseMiningCli.js +50 -0
  146. package/dist/eval/improver/caseMiningCli.js.map +1 -0
  147. package/dist/eval/improver/cli.d.ts +11 -0
  148. package/dist/eval/improver/cli.d.ts.map +1 -0
  149. package/dist/eval/improver/cli.js +73 -0
  150. package/dist/eval/improver/cli.js.map +1 -0
  151. package/dist/eval/improver/cluster.d.ts +47 -0
  152. package/dist/eval/improver/cluster.d.ts.map +1 -0
  153. package/dist/eval/improver/cluster.js +0 -0
  154. package/dist/eval/improver/cluster.js.map +1 -0
  155. package/dist/eval/improver/corpusIO.d.ts +26 -0
  156. package/dist/eval/improver/corpusIO.d.ts.map +1 -0
  157. package/dist/eval/improver/corpusIO.js +50 -0
  158. package/dist/eval/improver/corpusIO.js.map +1 -0
  159. package/dist/eval/improver/fixBrief.d.ts +34 -0
  160. package/dist/eval/improver/fixBrief.d.ts.map +1 -0
  161. package/dist/eval/improver/fixBrief.js +69 -0
  162. package/dist/eval/improver/fixBrief.js.map +1 -0
  163. package/dist/eval/improver/fixBriefCli.d.ts +11 -0
  164. package/dist/eval/improver/fixBriefCli.d.ts.map +1 -0
  165. package/dist/eval/improver/fixBriefCli.js +46 -0
  166. package/dist/eval/improver/fixBriefCli.js.map +1 -0
  167. package/dist/eval/improver/flakeDetection.d.ts +50 -0
  168. package/dist/eval/improver/flakeDetection.d.ts.map +1 -0
  169. package/dist/eval/improver/flakeDetection.js +0 -0
  170. package/dist/eval/improver/flakeDetection.js.map +1 -0
  171. package/dist/eval/improver/flakeDetectionCli.d.ts +8 -0
  172. package/dist/eval/improver/flakeDetectionCli.d.ts.map +1 -0
  173. package/dist/eval/improver/flakeDetectionCli.js +27 -0
  174. package/dist/eval/improver/flakeDetectionCli.js.map +1 -0
  175. package/dist/eval/improver/heldout.d.ts +44 -0
  176. package/dist/eval/improver/heldout.d.ts.map +1 -0
  177. package/dist/eval/improver/heldout.js +52 -0
  178. package/dist/eval/improver/heldout.js.map +1 -0
  179. package/dist/eval/improver/knowledgeFeedback.d.ts +56 -0
  180. package/dist/eval/improver/knowledgeFeedback.d.ts.map +1 -0
  181. package/dist/eval/improver/knowledgeFeedback.js +88 -0
  182. package/dist/eval/improver/knowledgeFeedback.js.map +1 -0
  183. package/dist/eval/improver/knowledgeFeedbackCli.d.ts +8 -0
  184. package/dist/eval/improver/knowledgeFeedbackCli.d.ts.map +1 -0
  185. package/dist/eval/improver/knowledgeFeedbackCli.js +28 -0
  186. package/dist/eval/improver/knowledgeFeedbackCli.js.map +1 -0
  187. package/dist/eval/improver/report.d.ts +36 -0
  188. package/dist/eval/improver/report.d.ts.map +1 -0
  189. package/dist/eval/improver/report.js +61 -0
  190. package/dist/eval/improver/report.js.map +1 -0
  191. package/dist/eval/improver/reportCli.d.ts +7 -0
  192. package/dist/eval/improver/reportCli.d.ts.map +1 -0
  193. package/dist/eval/improver/reportCli.js +27 -0
  194. package/dist/eval/improver/reportCli.js.map +1 -0
  195. package/dist/eval/oracle/actualArtifactResolution.d.ts +49 -0
  196. package/dist/eval/oracle/actualArtifactResolution.d.ts.map +1 -0
  197. package/dist/eval/oracle/actualArtifactResolution.js +73 -0
  198. package/dist/eval/oracle/actualArtifactResolution.js.map +1 -0
  199. package/dist/eval/oracle/cli.d.ts +30 -0
  200. package/dist/eval/oracle/cli.d.ts.map +1 -0
  201. package/dist/eval/oracle/cli.js +179 -0
  202. package/dist/eval/oracle/cli.js.map +1 -0
  203. package/dist/eval/oracle/diff.d.ts +26 -0
  204. package/dist/eval/oracle/diff.d.ts.map +1 -0
  205. package/dist/eval/oracle/diff.js +51 -0
  206. package/dist/eval/oracle/diff.js.map +1 -0
  207. package/dist/eval/oracle/index.d.ts +81 -0
  208. package/dist/eval/oracle/index.d.ts.map +1 -0
  209. package/dist/eval/oracle/index.js +55 -0
  210. package/dist/eval/oracle/index.js.map +1 -0
  211. package/dist/eval/oracle/normalize.d.ts +85 -0
  212. package/dist/eval/oracle/normalize.d.ts.map +1 -0
  213. package/dist/eval/oracle/normalize.js +321 -0
  214. package/dist/eval/oracle/normalize.js.map +1 -0
  215. package/dist/eval/oracle/score.d.ts +26 -0
  216. package/dist/eval/oracle/score.d.ts.map +1 -0
  217. package/dist/eval/oracle/score.js +15 -0
  218. package/dist/eval/oracle/score.js.map +1 -0
  219. package/dist/eval/oracle/systest.d.ts +30 -0
  220. package/dist/eval/oracle/systest.d.ts.map +1 -0
  221. package/dist/eval/oracle/systest.js +98 -0
  222. package/dist/eval/oracle/systest.js.map +1 -0
  223. package/dist/index.d.ts +6 -0
  224. package/dist/index.d.ts.map +1 -0
  225. package/dist/index.js +753 -0
  226. package/dist/index.js.map +1 -0
  227. package/dist/knowledge/formPatterns/catalog/subPatterns/customFilters.d.ts +10 -0
  228. package/dist/knowledge/formPatterns/catalog/subPatterns/customFilters.d.ts.map +1 -0
  229. package/dist/knowledge/formPatterns/catalog/subPatterns/customFilters.js +38 -0
  230. package/dist/knowledge/formPatterns/catalog/subPatterns/customFilters.js.map +1 -0
  231. package/dist/knowledge/formPatterns/catalog/subPatterns/fields.d.ts +21 -0
  232. package/dist/knowledge/formPatterns/catalog/subPatterns/fields.d.ts.map +1 -0
  233. package/dist/knowledge/formPatterns/catalog/subPatterns/fields.js +168 -0
  234. package/dist/knowledge/formPatterns/catalog/subPatterns/fields.js.map +1 -0
  235. package/dist/knowledge/formPatterns/catalog/subPatterns/panels.d.ts +9 -0
  236. package/dist/knowledge/formPatterns/catalog/subPatterns/panels.d.ts.map +1 -0
  237. package/dist/knowledge/formPatterns/catalog/subPatterns/panels.js +47 -0
  238. package/dist/knowledge/formPatterns/catalog/subPatterns/panels.js.map +1 -0
  239. package/dist/knowledge/formPatterns/catalog/subPatterns/toolbar.d.ts +16 -0
  240. package/dist/knowledge/formPatterns/catalog/subPatterns/toolbar.d.ts.map +1 -0
  241. package/dist/knowledge/formPatterns/catalog/subPatterns/toolbar.js +124 -0
  242. package/dist/knowledge/formPatterns/catalog/subPatterns/toolbar.js.map +1 -0
  243. package/dist/knowledge/formPatterns/catalog/subPatterns/workspaceSections.d.ts +12 -0
  244. package/dist/knowledge/formPatterns/catalog/subPatterns/workspaceSections.d.ts.map +1 -0
  245. package/dist/knowledge/formPatterns/catalog/subPatterns/workspaceSections.js +36 -0
  246. package/dist/knowledge/formPatterns/catalog/subPatterns/workspaceSections.js.map +1 -0
  247. package/dist/knowledge/formPatterns/catalog/topLevel/common.d.ts +11 -0
  248. package/dist/knowledge/formPatterns/catalog/topLevel/common.d.ts.map +1 -0
  249. package/dist/knowledge/formPatterns/catalog/topLevel/common.js +37 -0
  250. package/dist/knowledge/formPatterns/catalog/topLevel/common.js.map +1 -0
  251. package/dist/knowledge/formPatterns/catalog/topLevel/detailsMaster.d.ts +8 -0
  252. package/dist/knowledge/formPatterns/catalog/topLevel/detailsMaster.d.ts.map +1 -0
  253. package/dist/knowledge/formPatterns/catalog/topLevel/detailsMaster.js +86 -0
  254. package/dist/knowledge/formPatterns/catalog/topLevel/detailsMaster.js.map +1 -0
  255. package/dist/knowledge/formPatterns/catalog/topLevel/detailsTransaction.d.ts +7 -0
  256. package/dist/knowledge/formPatterns/catalog/topLevel/detailsTransaction.d.ts.map +1 -0
  257. package/dist/knowledge/formPatterns/catalog/topLevel/detailsTransaction.js +69 -0
  258. package/dist/knowledge/formPatterns/catalog/topLevel/detailsTransaction.js.map +1 -0
  259. package/dist/knowledge/formPatterns/catalog/topLevel/dialog.d.ts +14 -0
  260. package/dist/knowledge/formPatterns/catalog/topLevel/dialog.d.ts.map +1 -0
  261. package/dist/knowledge/formPatterns/catalog/topLevel/dialog.js +187 -0
  262. package/dist/knowledge/formPatterns/catalog/topLevel/dialog.js.map +1 -0
  263. package/dist/knowledge/formPatterns/catalog/topLevel/factBox.d.ts +10 -0
  264. package/dist/knowledge/formPatterns/catalog/topLevel/factBox.d.ts.map +1 -0
  265. package/dist/knowledge/formPatterns/catalog/topLevel/factBox.js +54 -0
  266. package/dist/knowledge/formPatterns/catalog/topLevel/factBox.js.map +1 -0
  267. package/dist/knowledge/formPatterns/catalog/topLevel/listPage.d.ts +7 -0
  268. package/dist/knowledge/formPatterns/catalog/topLevel/listPage.d.ts.map +1 -0
  269. package/dist/knowledge/formPatterns/catalog/topLevel/listPage.js +33 -0
  270. package/dist/knowledge/formPatterns/catalog/topLevel/listPage.js.map +1 -0
  271. package/dist/knowledge/formPatterns/catalog/topLevel/lookup.d.ts +10 -0
  272. package/dist/knowledge/formPatterns/catalog/topLevel/lookup.d.ts.map +1 -0
  273. package/dist/knowledge/formPatterns/catalog/topLevel/lookup.js +95 -0
  274. package/dist/knowledge/formPatterns/catalog/topLevel/lookup.js.map +1 -0
  275. package/dist/knowledge/formPatterns/catalog/topLevel/simpleDetails.d.ts +16 -0
  276. package/dist/knowledge/formPatterns/catalog/topLevel/simpleDetails.d.ts.map +1 -0
  277. package/dist/knowledge/formPatterns/catalog/topLevel/simpleDetails.js +158 -0
  278. package/dist/knowledge/formPatterns/catalog/topLevel/simpleDetails.js.map +1 -0
  279. package/dist/knowledge/formPatterns/catalog/topLevel/simpleList.d.ts +7 -0
  280. package/dist/knowledge/formPatterns/catalog/topLevel/simpleList.d.ts.map +1 -0
  281. package/dist/knowledge/formPatterns/catalog/topLevel/simpleList.js +34 -0
  282. package/dist/knowledge/formPatterns/catalog/topLevel/simpleList.js.map +1 -0
  283. package/dist/knowledge/formPatterns/catalog/topLevel/simpleListDetails.d.ts +9 -0
  284. package/dist/knowledge/formPatterns/catalog/topLevel/simpleListDetails.d.ts.map +1 -0
  285. package/dist/knowledge/formPatterns/catalog/topLevel/simpleListDetails.js +99 -0
  286. package/dist/knowledge/formPatterns/catalog/topLevel/simpleListDetails.js.map +1 -0
  287. package/dist/knowledge/formPatterns/catalog/topLevel/tableOfContents.d.ts +8 -0
  288. package/dist/knowledge/formPatterns/catalog/topLevel/tableOfContents.d.ts.map +1 -0
  289. package/dist/knowledge/formPatterns/catalog/topLevel/tableOfContents.js +95 -0
  290. package/dist/knowledge/formPatterns/catalog/topLevel/tableOfContents.js.map +1 -0
  291. package/dist/knowledge/formPatterns/catalog/topLevel/task.d.ts +9 -0
  292. package/dist/knowledge/formPatterns/catalog/topLevel/task.d.ts.map +1 -0
  293. package/dist/knowledge/formPatterns/catalog/topLevel/task.js +42 -0
  294. package/dist/knowledge/formPatterns/catalog/topLevel/task.js.map +1 -0
  295. package/dist/knowledge/formPatterns/catalog/topLevel/wizard.d.ts +7 -0
  296. package/dist/knowledge/formPatterns/catalog/topLevel/wizard.d.ts.map +1 -0
  297. package/dist/knowledge/formPatterns/catalog/topLevel/wizard.js +42 -0
  298. package/dist/knowledge/formPatterns/catalog/topLevel/wizard.js.map +1 -0
  299. package/dist/knowledge/formPatterns/catalog/topLevel/workspace.d.ts +17 -0
  300. package/dist/knowledge/formPatterns/catalog/topLevel/workspace.d.ts.map +1 -0
  301. package/dist/knowledge/formPatterns/catalog/topLevel/workspace.js +157 -0
  302. package/dist/knowledge/formPatterns/catalog/topLevel/workspace.js.map +1 -0
  303. package/dist/knowledge/formPatterns/crossCheck.d.ts +44 -0
  304. package/dist/knowledge/formPatterns/crossCheck.d.ts.map +1 -0
  305. package/dist/knowledge/formPatterns/crossCheck.js +109 -0
  306. package/dist/knowledge/formPatterns/crossCheck.js.map +1 -0
  307. package/dist/knowledge/formPatterns/index.d.ts +30 -0
  308. package/dist/knowledge/formPatterns/index.d.ts.map +1 -0
  309. package/dist/knowledge/formPatterns/index.js +158 -0
  310. package/dist/knowledge/formPatterns/index.js.map +1 -0
  311. package/dist/knowledge/formPatterns/methodStubs.d.ts +45 -0
  312. package/dist/knowledge/formPatterns/methodStubs.d.ts.map +1 -0
  313. package/dist/knowledge/formPatterns/methodStubs.js +257 -0
  314. package/dist/knowledge/formPatterns/methodStubs.js.map +1 -0
  315. package/dist/knowledge/formPatterns/types.d.ts +115 -0
  316. package/dist/knowledge/formPatterns/types.d.ts.map +1 -0
  317. package/dist/knowledge/formPatterns/types.js +44 -0
  318. package/dist/knowledge/formPatterns/types.js.map +1 -0
  319. package/dist/metadata/enhancedParser.d.ts +91 -0
  320. package/dist/metadata/enhancedParser.d.ts.map +1 -0
  321. package/dist/metadata/enhancedParser.js +379 -0
  322. package/dist/metadata/enhancedParser.js.map +1 -0
  323. package/dist/metadata/formPatternMiner.d.ts +78 -0
  324. package/dist/metadata/formPatternMiner.d.ts.map +1 -0
  325. package/dist/metadata/formPatternMiner.js +220 -0
  326. package/dist/metadata/formPatternMiner.js.map +1 -0
  327. package/dist/metadata/labelParser.d.ts +71 -0
  328. package/dist/metadata/labelParser.d.ts.map +1 -0
  329. package/dist/metadata/labelParser.js +258 -0
  330. package/dist/metadata/labelParser.js.map +1 -0
  331. package/dist/metadata/symbolCountsWorker.d.ts +16 -0
  332. package/dist/metadata/symbolCountsWorker.d.ts.map +1 -0
  333. package/dist/metadata/symbolCountsWorker.js +42 -0
  334. package/dist/metadata/symbolCountsWorker.js.map +1 -0
  335. package/dist/metadata/symbolIndex.d.ts +474 -0
  336. package/dist/metadata/symbolIndex.d.ts.map +1 -0
  337. package/dist/metadata/symbolIndex.js +3152 -0
  338. package/dist/metadata/symbolIndex.js.map +1 -0
  339. package/dist/metadata/types.d.ts +267 -0
  340. package/dist/metadata/types.d.ts.map +1 -0
  341. package/dist/metadata/types.js +5 -0
  342. package/dist/metadata/types.js.map +1 -0
  343. package/dist/metadata/xmlParser.d.ts +232 -0
  344. package/dist/metadata/xmlParser.d.ts.map +1 -0
  345. package/dist/metadata/xmlParser.js +1021 -0
  346. package/dist/metadata/xmlParser.js.map +1 -0
  347. package/dist/metadata/xppDeclaration.d.ts +116 -0
  348. package/dist/metadata/xppDeclaration.d.ts.map +1 -0
  349. package/dist/metadata/xppDeclaration.js +350 -0
  350. package/dist/metadata/xppDeclaration.js.map +1 -0
  351. package/dist/middleware/apiKeyAuth.d.ts +7 -0
  352. package/dist/middleware/apiKeyAuth.d.ts.map +1 -0
  353. package/dist/middleware/apiKeyAuth.js +70 -0
  354. package/dist/middleware/apiKeyAuth.js.map +1 -0
  355. package/dist/middleware/rateLimiter.d.ts +7 -0
  356. package/dist/middleware/rateLimiter.d.ts.map +1 -0
  357. package/dist/middleware/rateLimiter.js +78 -0
  358. package/dist/middleware/rateLimiter.js.map +1 -0
  359. package/dist/prompts/codeReview.d.ts +8 -0
  360. package/dist/prompts/codeReview.d.ts.map +1 -0
  361. package/dist/prompts/codeReview.js +619 -0
  362. package/dist/prompts/codeReview.js.map +1 -0
  363. package/dist/prompts/index.d.ts +6 -0
  364. package/dist/prompts/index.d.ts.map +1 -0
  365. package/dist/prompts/index.js +6 -0
  366. package/dist/prompts/index.js.map +1 -0
  367. package/dist/prompts/systemInstructions.d.ts +33 -0
  368. package/dist/prompts/systemInstructions.d.ts.map +1 -0
  369. package/dist/prompts/systemInstructions.js +154 -0
  370. package/dist/prompts/systemInstructions.js.map +1 -0
  371. package/dist/resources/classResource.d.ts +17 -0
  372. package/dist/resources/classResource.d.ts.map +1 -0
  373. package/dist/resources/classResource.js +33 -0
  374. package/dist/resources/classResource.js.map +1 -0
  375. package/dist/resources/index.d.ts +20 -0
  376. package/dist/resources/index.d.ts.map +1 -0
  377. package/dist/resources/index.js +154 -0
  378. package/dist/resources/index.js.map +1 -0
  379. package/dist/server/mcpServer.d.ts +11 -0
  380. package/dist/server/mcpServer.d.ts.map +1 -0
  381. package/dist/server/mcpServer.js +185 -0
  382. package/dist/server/mcpServer.js.map +1 -0
  383. package/dist/server/serverMode.d.ts +53 -0
  384. package/dist/server/serverMode.d.ts.map +1 -0
  385. package/dist/server/serverMode.js +72 -0
  386. package/dist/server/serverMode.js.map +1 -0
  387. package/dist/server/toolAnnotations.d.ts +28 -0
  388. package/dist/server/toolAnnotations.d.ts.map +1 -0
  389. package/dist/server/toolAnnotations.js +70 -0
  390. package/dist/server/toolAnnotations.js.map +1 -0
  391. package/dist/server/toolSchemas/analyzeCode.d.ts +71 -0
  392. package/dist/server/toolSchemas/analyzeCode.d.ts.map +1 -0
  393. package/dist/server/toolSchemas/analyzeCode.js +50 -0
  394. package/dist/server/toolSchemas/analyzeCode.js.map +1 -0
  395. package/dist/server/toolSchemas/batchGetInfo.d.ts +32 -0
  396. package/dist/server/toolSchemas/batchGetInfo.d.ts.map +1 -0
  397. package/dist/server/toolSchemas/batchGetInfo.js +35 -0
  398. package/dist/server/toolSchemas/batchGetInfo.js.map +1 -0
  399. package/dist/server/toolSchemas/buildD365foProject.d.ts +44 -0
  400. package/dist/server/toolSchemas/buildD365foProject.d.ts.map +1 -0
  401. package/dist/server/toolSchemas/buildD365foProject.js +47 -0
  402. package/dist/server/toolSchemas/buildD365foProject.js.map +1 -0
  403. package/dist/server/toolSchemas/d365foFile.d.ts +99 -0
  404. package/dist/server/toolSchemas/d365foFile.d.ts.map +1 -0
  405. package/dist/server/toolSchemas/d365foFile.js +163 -0
  406. package/dist/server/toolSchemas/d365foFile.js.map +1 -0
  407. package/dist/server/toolSchemas/extensionInfo.d.ts +65 -0
  408. package/dist/server/toolSchemas/extensionInfo.d.ts.map +1 -0
  409. package/dist/server/toolSchemas/extensionInfo.js +73 -0
  410. package/dist/server/toolSchemas/extensionInfo.js.map +1 -0
  411. package/dist/server/toolSchemas/findReferences.d.ts +35 -0
  412. package/dist/server/toolSchemas/findReferences.d.ts.map +1 -0
  413. package/dist/server/toolSchemas/findReferences.js +35 -0
  414. package/dist/server/toolSchemas/findReferences.js.map +1 -0
  415. package/dist/server/toolSchemas/generateObject.d.ts +246 -0
  416. package/dist/server/toolSchemas/generateObject.d.ts.map +1 -0
  417. package/dist/server/toolSchemas/generateObject.js +158 -0
  418. package/dist/server/toolSchemas/generateObject.js.map +1 -0
  419. package/dist/server/toolSchemas/getKnowledge.d.ts +39 -0
  420. package/dist/server/toolSchemas/getKnowledge.d.ts.map +1 -0
  421. package/dist/server/toolSchemas/getKnowledge.js +46 -0
  422. package/dist/server/toolSchemas/getKnowledge.js.map +1 -0
  423. package/dist/server/toolSchemas/getMethod.d.ts +30 -0
  424. package/dist/server/toolSchemas/getMethod.d.ts.map +1 -0
  425. package/dist/server/toolSchemas/getMethod.js +34 -0
  426. package/dist/server/toolSchemas/getMethod.js.map +1 -0
  427. package/dist/server/toolSchemas/getObjectInfo.d.ts +24 -0
  428. package/dist/server/toolSchemas/getObjectInfo.d.ts.map +1 -0
  429. package/dist/server/toolSchemas/getObjectInfo.js +30 -0
  430. package/dist/server/toolSchemas/getObjectInfo.js.map +1 -0
  431. package/dist/server/toolSchemas/getWorkspaceInfo.d.ts +29 -0
  432. package/dist/server/toolSchemas/getWorkspaceInfo.d.ts.map +1 -0
  433. package/dist/server/toolSchemas/getWorkspaceInfo.js +29 -0
  434. package/dist/server/toolSchemas/getWorkspaceInfo.js.map +1 -0
  435. package/dist/server/toolSchemas/index.d.ts +1142 -0
  436. package/dist/server/toolSchemas/index.d.ts.map +1 -0
  437. package/dist/server/toolSchemas/index.js +60 -0
  438. package/dist/server/toolSchemas/index.js.map +1 -0
  439. package/dist/server/toolSchemas/labels.d.ts +172 -0
  440. package/dist/server/toolSchemas/labels.d.ts.map +1 -0
  441. package/dist/server/toolSchemas/labels.js +159 -0
  442. package/dist/server/toolSchemas/labels.js.map +1 -0
  443. package/dist/server/toolSchemas/objectPatterns.d.ts +93 -0
  444. package/dist/server/toolSchemas/objectPatterns.d.ts.map +1 -0
  445. package/dist/server/toolSchemas/objectPatterns.js +104 -0
  446. package/dist/server/toolSchemas/objectPatterns.js.map +1 -0
  447. package/dist/server/toolSchemas/prepare.d.ts +49 -0
  448. package/dist/server/toolSchemas/prepare.d.ts.map +1 -0
  449. package/dist/server/toolSchemas/prepare.js +57 -0
  450. package/dist/server/toolSchemas/prepare.js.map +1 -0
  451. package/dist/server/toolSchemas/reviewWorkspaceChanges.d.ts +20 -0
  452. package/dist/server/toolSchemas/reviewWorkspaceChanges.d.ts.map +1 -0
  453. package/dist/server/toolSchemas/reviewWorkspaceChanges.js +19 -0
  454. package/dist/server/toolSchemas/reviewWorkspaceChanges.js.map +1 -0
  455. package/dist/server/toolSchemas/runBpCheck.d.ts +36 -0
  456. package/dist/server/toolSchemas/runBpCheck.d.ts.map +1 -0
  457. package/dist/server/toolSchemas/runBpCheck.js +21 -0
  458. package/dist/server/toolSchemas/runBpCheck.js.map +1 -0
  459. package/dist/server/toolSchemas/runSystestClass.d.ts +32 -0
  460. package/dist/server/toolSchemas/runSystestClass.d.ts.map +1 -0
  461. package/dist/server/toolSchemas/runSystestClass.js +20 -0
  462. package/dist/server/toolSchemas/runSystestClass.js.map +1 -0
  463. package/dist/server/toolSchemas/search.d.ts +109 -0
  464. package/dist/server/toolSchemas/search.d.ts.map +1 -0
  465. package/dist/server/toolSchemas/search.js +123 -0
  466. package/dist/server/toolSchemas/search.js.map +1 -0
  467. package/dist/server/toolSchemas/securityInfo.d.ts +45 -0
  468. package/dist/server/toolSchemas/securityInfo.d.ts.map +1 -0
  469. package/dist/server/toolSchemas/securityInfo.js +39 -0
  470. package/dist/server/toolSchemas/securityInfo.js.map +1 -0
  471. package/dist/server/toolSchemas/suggestEdt.d.ts +29 -0
  472. package/dist/server/toolSchemas/suggestEdt.d.ts.map +1 -0
  473. package/dist/server/toolSchemas/suggestEdt.js +29 -0
  474. package/dist/server/toolSchemas/suggestEdt.js.map +1 -0
  475. package/dist/server/toolSchemas/triggerDbSync.d.ts +47 -0
  476. package/dist/server/toolSchemas/triggerDbSync.d.ts.map +1 -0
  477. package/dist/server/toolSchemas/triggerDbSync.js +31 -0
  478. package/dist/server/toolSchemas/triggerDbSync.js.map +1 -0
  479. package/dist/server/toolSchemas/undoLastModification.d.ts +20 -0
  480. package/dist/server/toolSchemas/undoLastModification.d.ts.map +1 -0
  481. package/dist/server/toolSchemas/undoLastModification.js +17 -0
  482. package/dist/server/toolSchemas/undoLastModification.js.map +1 -0
  483. package/dist/server/toolSchemas/updateSymbolIndex.d.ts +19 -0
  484. package/dist/server/toolSchemas/updateSymbolIndex.d.ts.map +1 -0
  485. package/dist/server/toolSchemas/updateSymbolIndex.js +18 -0
  486. package/dist/server/toolSchemas/updateSymbolIndex.js.map +1 -0
  487. package/dist/server/toolSchemas/validateCode.d.ts +35 -0
  488. package/dist/server/toolSchemas/validateCode.d.ts.map +1 -0
  489. package/dist/server/toolSchemas/validateCode.js +38 -0
  490. package/dist/server/toolSchemas/validateCode.js.map +1 -0
  491. package/dist/server/toolSchemas/validateObjectNaming.d.ts +33 -0
  492. package/dist/server/toolSchemas/validateObjectNaming.d.ts.map +1 -0
  493. package/dist/server/toolSchemas/validateObjectNaming.js +32 -0
  494. package/dist/server/toolSchemas/validateObjectNaming.js.map +1 -0
  495. package/dist/server/toolSchemas/verifyD365foProject.d.ts +50 -0
  496. package/dist/server/toolSchemas/verifyD365foProject.d.ts.map +1 -0
  497. package/dist/server/toolSchemas/verifyD365foProject.js +46 -0
  498. package/dist/server/toolSchemas/verifyD365foProject.js.map +1 -0
  499. package/dist/server/transport.d.ts +30 -0
  500. package/dist/server/transport.d.ts.map +1 -0
  501. package/dist/server/transport.js +391 -0
  502. package/dist/server/transport.js.map +1 -0
  503. package/dist/tools/analyzeCode.d.ts +17 -0
  504. package/dist/tools/analyzeCode.d.ts.map +1 -0
  505. package/dist/tools/analyzeCode.js +63 -0
  506. package/dist/tools/analyzeCode.js.map +1 -0
  507. package/dist/tools/analyzeCompleteness.d.ts +20 -0
  508. package/dist/tools/analyzeCompleteness.d.ts.map +1 -0
  509. package/dist/tools/analyzeCompleteness.js +103 -0
  510. package/dist/tools/analyzeCompleteness.js.map +1 -0
  511. package/dist/tools/analyzeExtensionPoints.d.ts +21 -0
  512. package/dist/tools/analyzeExtensionPoints.d.ts.map +1 -0
  513. package/dist/tools/analyzeExtensionPoints.js +343 -0
  514. package/dist/tools/analyzeExtensionPoints.js.map +1 -0
  515. package/dist/tools/analyzePatterns.d.ts +20 -0
  516. package/dist/tools/analyzePatterns.d.ts.map +1 -0
  517. package/dist/tools/analyzePatterns.js +71 -0
  518. package/dist/tools/analyzePatterns.js.map +1 -0
  519. package/dist/tools/apiUsagePatterns.d.ts +20 -0
  520. package/dist/tools/apiUsagePatterns.d.ts.map +1 -0
  521. package/dist/tools/apiUsagePatterns.js +136 -0
  522. package/dist/tools/apiUsagePatterns.js.map +1 -0
  523. package/dist/tools/batchGetInfo.d.ts +50 -0
  524. package/dist/tools/batchGetInfo.d.ts.map +1 -0
  525. package/dist/tools/batchGetInfo.js +52 -0
  526. package/dist/tools/batchGetInfo.js.map +1 -0
  527. package/dist/tools/batchSearch.d.ts +64 -0
  528. package/dist/tools/batchSearch.d.ts.map +1 -0
  529. package/dist/tools/batchSearch.js +265 -0
  530. package/dist/tools/batchSearch.js.map +1 -0
  531. package/dist/tools/buildProject.d.ts +28 -0
  532. package/dist/tools/buildProject.d.ts.map +1 -0
  533. package/dist/tools/buildProject.js +929 -0
  534. package/dist/tools/buildProject.js.map +1 -0
  535. package/dist/tools/classInfo.d.ts +8 -0
  536. package/dist/tools/classInfo.d.ts.map +1 -0
  537. package/dist/tools/classInfo.js +235 -0
  538. package/dist/tools/classInfo.js.map +1 -0
  539. package/dist/tools/codeGen.d.ts +19 -0
  540. package/dist/tools/codeGen.d.ts.map +1 -0
  541. package/dist/tools/codeGen.js +1956 -0
  542. package/dist/tools/codeGen.js.map +1 -0
  543. package/dist/tools/completion.d.ts +8 -0
  544. package/dist/tools/completion.d.ts.map +1 -0
  545. package/dist/tools/completion.js +272 -0
  546. package/dist/tools/completion.js.map +1 -0
  547. package/dist/tools/configKeyInfo.d.ts +22 -0
  548. package/dist/tools/configKeyInfo.d.ts.map +1 -0
  549. package/dist/tools/configKeyInfo.js +74 -0
  550. package/dist/tools/configKeyInfo.js.map +1 -0
  551. package/dist/tools/createD365File.d.ts +479 -0
  552. package/dist/tools/createD365File.d.ts.map +1 -0
  553. package/dist/tools/createD365File.js +4185 -0
  554. package/dist/tools/createD365File.js.map +1 -0
  555. package/dist/tools/createLabel.d.ts +51 -0
  556. package/dist/tools/createLabel.d.ts.map +1 -0
  557. package/dist/tools/createLabel.js +761 -0
  558. package/dist/tools/createLabel.js.map +1 -0
  559. package/dist/tools/d365foErrorHelp.d.ts +29 -0
  560. package/dist/tools/d365foErrorHelp.d.ts.map +1 -0
  561. package/dist/tools/d365foErrorHelp.js +389 -0
  562. package/dist/tools/d365foErrorHelp.js.map +1 -0
  563. package/dist/tools/d365foFile.d.ts +20 -0
  564. package/dist/tools/d365foFile.d.ts.map +1 -0
  565. package/dist/tools/d365foFile.js +58 -0
  566. package/dist/tools/d365foFile.js.map +1 -0
  567. package/dist/tools/d365foFileOpSpecs.d.ts +41 -0
  568. package/dist/tools/d365foFileOpSpecs.d.ts.map +1 -0
  569. package/dist/tools/d365foFileOpSpecs.js +336 -0
  570. package/dist/tools/d365foFileOpSpecs.js.map +1 -0
  571. package/dist/tools/dataEntityInfo.d.ts +23 -0
  572. package/dist/tools/dataEntityInfo.d.ts.map +1 -0
  573. package/dist/tools/dataEntityInfo.js +45 -0
  574. package/dist/tools/dataEntityInfo.js.map +1 -0
  575. package/dist/tools/dataEntityXml.d.ts +31 -0
  576. package/dist/tools/dataEntityXml.d.ts.map +1 -0
  577. package/dist/tools/dataEntityXml.js +131 -0
  578. package/dist/tools/dataEntityXml.js.map +1 -0
  579. package/dist/tools/dbSync.d.ts +8 -0
  580. package/dist/tools/dbSync.d.ts.map +1 -0
  581. package/dist/tools/dbSync.js +285 -0
  582. package/dist/tools/dbSync.js.map +1 -0
  583. package/dist/tools/edtInfo.d.ts +23 -0
  584. package/dist/tools/edtInfo.d.ts.map +1 -0
  585. package/dist/tools/edtInfo.js +122 -0
  586. package/dist/tools/edtInfo.js.map +1 -0
  587. package/dist/tools/enumInfo.d.ts +17 -0
  588. package/dist/tools/enumInfo.d.ts.map +1 -0
  589. package/dist/tools/enumInfo.js +44 -0
  590. package/dist/tools/enumInfo.js.map +1 -0
  591. package/dist/tools/extensionInfo.d.ts +26 -0
  592. package/dist/tools/extensionInfo.d.ts.map +1 -0
  593. package/dist/tools/extensionInfo.js +73 -0
  594. package/dist/tools/extensionInfo.js.map +1 -0
  595. package/dist/tools/extensionSearch.d.ts +20 -0
  596. package/dist/tools/extensionSearch.d.ts.map +1 -0
  597. package/dist/tools/extensionSearch.js +72 -0
  598. package/dist/tools/extensionSearch.js.map +1 -0
  599. package/dist/tools/extensionStrategyAdvisor.d.ts +15 -0
  600. package/dist/tools/extensionStrategyAdvisor.d.ts.map +1 -0
  601. package/dist/tools/extensionStrategyAdvisor.js +519 -0
  602. package/dist/tools/extensionStrategyAdvisor.js.map +1 -0
  603. package/dist/tools/findCocExtensions.d.ts +20 -0
  604. package/dist/tools/findCocExtensions.d.ts.map +1 -0
  605. package/dist/tools/findCocExtensions.js +285 -0
  606. package/dist/tools/findCocExtensions.js.map +1 -0
  607. package/dist/tools/findEventHandlers.d.ts +21 -0
  608. package/dist/tools/findEventHandlers.d.ts.map +1 -0
  609. package/dist/tools/findEventHandlers.js +196 -0
  610. package/dist/tools/findEventHandlers.js.map +1 -0
  611. package/dist/tools/findReferences.d.ts +30 -0
  612. package/dist/tools/findReferences.d.ts.map +1 -0
  613. package/dist/tools/findReferences.js +551 -0
  614. package/dist/tools/findReferences.js.map +1 -0
  615. package/dist/tools/formInfo.d.ts +13 -0
  616. package/dist/tools/formInfo.d.ts.map +1 -0
  617. package/dist/tools/formInfo.js +407 -0
  618. package/dist/tools/formInfo.js.map +1 -0
  619. package/dist/tools/formPattern.d.ts +19 -0
  620. package/dist/tools/formPattern.d.ts.map +1 -0
  621. package/dist/tools/formPattern.js +52 -0
  622. package/dist/tools/formPattern.js.map +1 -0
  623. package/dist/tools/generateD365Xml.d.ts +12 -0
  624. package/dist/tools/generateD365Xml.d.ts.map +1 -0
  625. package/dist/tools/generateD365Xml.js +1454 -0
  626. package/dist/tools/generateD365Xml.js.map +1 -0
  627. package/dist/tools/generateFindMethods.d.ts +69 -0
  628. package/dist/tools/generateFindMethods.d.ts.map +1 -0
  629. package/dist/tools/generateFindMethods.js +207 -0
  630. package/dist/tools/generateFindMethods.js.map +1 -0
  631. package/dist/tools/generateMetadata.d.ts +37 -0
  632. package/dist/tools/generateMetadata.d.ts.map +1 -0
  633. package/dist/tools/generateMetadata.js +213 -0
  634. package/dist/tools/generateMetadata.js.map +1 -0
  635. package/dist/tools/generateObject.d.ts +34 -0
  636. package/dist/tools/generateObject.d.ts.map +1 -0
  637. package/dist/tools/generateObject.js +47 -0
  638. package/dist/tools/generateObject.js.map +1 -0
  639. package/dist/tools/generateRelationXpp.d.ts +45 -0
  640. package/dist/tools/generateRelationXpp.d.ts.map +1 -0
  641. package/dist/tools/generateRelationXpp.js +129 -0
  642. package/dist/tools/generateRelationXpp.js.map +1 -0
  643. package/dist/tools/generateSmart.d.ts +32 -0
  644. package/dist/tools/generateSmart.d.ts.map +1 -0
  645. package/dist/tools/generateSmart.js +52 -0
  646. package/dist/tools/generateSmart.js.map +1 -0
  647. package/dist/tools/generateSmartForm.d.ts +82 -0
  648. package/dist/tools/generateSmartForm.d.ts.map +1 -0
  649. package/dist/tools/generateSmartForm.js +996 -0
  650. package/dist/tools/generateSmartForm.js.map +1 -0
  651. package/dist/tools/generateSmartReport.d.ts +90 -0
  652. package/dist/tools/generateSmartReport.d.ts.map +1 -0
  653. package/dist/tools/generateSmartReport.js +1254 -0
  654. package/dist/tools/generateSmartReport.js.map +1 -0
  655. package/dist/tools/generateSmartTable.d.ts +138 -0
  656. package/dist/tools/generateSmartTable.d.ts.map +1 -0
  657. package/dist/tools/generateSmartTable.js +1305 -0
  658. package/dist/tools/generateSmartTable.js.map +1 -0
  659. package/dist/tools/generateTableFields.d.ts +48 -0
  660. package/dist/tools/generateTableFields.d.ts.map +1 -0
  661. package/dist/tools/generateTableFields.js +186 -0
  662. package/dist/tools/generateTableFields.js.map +1 -0
  663. package/dist/tools/generateTableRelation.d.ts +35 -0
  664. package/dist/tools/generateTableRelation.d.ts.map +1 -0
  665. package/dist/tools/generateTableRelation.js +161 -0
  666. package/dist/tools/generateTableRelation.js.map +1 -0
  667. package/dist/tools/getFormPatternSpec.d.ts +13 -0
  668. package/dist/tools/getFormPatternSpec.d.ts.map +1 -0
  669. package/dist/tools/getFormPatternSpec.js +290 -0
  670. package/dist/tools/getFormPatternSpec.js.map +1 -0
  671. package/dist/tools/getFormPatterns.d.ts +68 -0
  672. package/dist/tools/getFormPatterns.d.ts.map +1 -0
  673. package/dist/tools/getFormPatterns.js +471 -0
  674. package/dist/tools/getFormPatterns.js.map +1 -0
  675. package/dist/tools/getKnowledge.d.ts +27 -0
  676. package/dist/tools/getKnowledge.d.ts.map +1 -0
  677. package/dist/tools/getKnowledge.js +50 -0
  678. package/dist/tools/getKnowledge.js.map +1 -0
  679. package/dist/tools/getLabelInfo.d.ts +21 -0
  680. package/dist/tools/getLabelInfo.d.ts.map +1 -0
  681. package/dist/tools/getLabelInfo.js +138 -0
  682. package/dist/tools/getLabelInfo.js.map +1 -0
  683. package/dist/tools/getMethod.d.ts +19 -0
  684. package/dist/tools/getMethod.d.ts.map +1 -0
  685. package/dist/tools/getMethod.js +77 -0
  686. package/dist/tools/getMethod.js.map +1 -0
  687. package/dist/tools/getMethodSource.d.ts +17 -0
  688. package/dist/tools/getMethodSource.d.ts.map +1 -0
  689. package/dist/tools/getMethodSource.js +161 -0
  690. package/dist/tools/getMethodSource.js.map +1 -0
  691. package/dist/tools/getObjectInfo.d.ts +17 -0
  692. package/dist/tools/getObjectInfo.d.ts.map +1 -0
  693. package/dist/tools/getObjectInfo.js +88 -0
  694. package/dist/tools/getObjectInfo.js.map +1 -0
  695. package/dist/tools/getTablePatterns.d.ts +45 -0
  696. package/dist/tools/getTablePatterns.d.ts.map +1 -0
  697. package/dist/tools/getTablePatterns.js +235 -0
  698. package/dist/tools/getTablePatterns.js.map +1 -0
  699. package/dist/tools/index.d.ts +11 -0
  700. package/dist/tools/index.d.ts.map +1 -0
  701. package/dist/tools/index.js +11 -0
  702. package/dist/tools/index.js.map +1 -0
  703. package/dist/tools/labels.d.ts +25 -0
  704. package/dist/tools/labels.d.ts.map +1 -0
  705. package/dist/tools/labels.js +111 -0
  706. package/dist/tools/labels.js.map +1 -0
  707. package/dist/tools/macroInfo.d.ts +23 -0
  708. package/dist/tools/macroInfo.d.ts.map +1 -0
  709. package/dist/tools/macroInfo.js +62 -0
  710. package/dist/tools/macroInfo.js.map +1 -0
  711. package/dist/tools/mapInfo.d.ts +21 -0
  712. package/dist/tools/mapInfo.d.ts.map +1 -0
  713. package/dist/tools/mapInfo.js +54 -0
  714. package/dist/tools/mapInfo.js.map +1 -0
  715. package/dist/tools/mapXml.d.ts +26 -0
  716. package/dist/tools/mapXml.d.ts.map +1 -0
  717. package/dist/tools/mapXml.js +88 -0
  718. package/dist/tools/mapXml.js.map +1 -0
  719. package/dist/tools/menuItemInfo.d.ts +20 -0
  720. package/dist/tools/menuItemInfo.d.ts.map +1 -0
  721. package/dist/tools/menuItemInfo.js +185 -0
  722. package/dist/tools/menuItemInfo.js.map +1 -0
  723. package/dist/tools/methodSignature.d.ts +33 -0
  724. package/dist/tools/methodSignature.d.ts.map +1 -0
  725. package/dist/tools/methodSignature.js +348 -0
  726. package/dist/tools/methodSignature.js.map +1 -0
  727. package/dist/tools/modifyD365File.d.ts +130 -0
  728. package/dist/tools/modifyD365File.d.ts.map +1 -0
  729. package/dist/tools/modifyD365File.js +2179 -0
  730. package/dist/tools/modifyD365File.js.map +1 -0
  731. package/dist/tools/objectInfoRegistry.d.ts +36 -0
  732. package/dist/tools/objectInfoRegistry.d.ts.map +1 -0
  733. package/dist/tools/objectInfoRegistry.js +98 -0
  734. package/dist/tools/objectInfoRegistry.js.map +1 -0
  735. package/dist/tools/objectPatterns.d.ts +16 -0
  736. package/dist/tools/objectPatterns.d.ts.map +1 -0
  737. package/dist/tools/objectPatterns.js +84 -0
  738. package/dist/tools/objectPatterns.js.map +1 -0
  739. package/dist/tools/prepare.d.ts +18 -0
  740. package/dist/tools/prepare.d.ts.map +1 -0
  741. package/dist/tools/prepare.js +47 -0
  742. package/dist/tools/prepare.js.map +1 -0
  743. package/dist/tools/prepareChange.d.ts +43 -0
  744. package/dist/tools/prepareChange.d.ts.map +1 -0
  745. package/dist/tools/prepareChange.js +327 -0
  746. package/dist/tools/prepareChange.js.map +1 -0
  747. package/dist/tools/prepareCreate.d.ts +45 -0
  748. package/dist/tools/prepareCreate.d.ts.map +1 -0
  749. package/dist/tools/prepareCreate.js +263 -0
  750. package/dist/tools/prepareCreate.js.map +1 -0
  751. package/dist/tools/queryInfo.d.ts +17 -0
  752. package/dist/tools/queryInfo.d.ts.map +1 -0
  753. package/dist/tools/queryInfo.js +46 -0
  754. package/dist/tools/queryInfo.js.map +1 -0
  755. package/dist/tools/queryViewXml.d.ts +36 -0
  756. package/dist/tools/queryViewXml.d.ts.map +1 -0
  757. package/dist/tools/queryViewXml.js +129 -0
  758. package/dist/tools/queryViewXml.js.map +1 -0
  759. package/dist/tools/renameLabel.d.ts +29 -0
  760. package/dist/tools/renameLabel.d.ts.map +1 -0
  761. package/dist/tools/renameLabel.js +377 -0
  762. package/dist/tools/renameLabel.js.map +1 -0
  763. package/dist/tools/repairFormControls.d.ts +21 -0
  764. package/dist/tools/repairFormControls.d.ts.map +1 -0
  765. package/dist/tools/repairFormControls.js +151 -0
  766. package/dist/tools/repairFormControls.js.map +1 -0
  767. package/dist/tools/reportInfo.d.ts +14 -0
  768. package/dist/tools/reportInfo.d.ts.map +1 -0
  769. package/dist/tools/reportInfo.js +302 -0
  770. package/dist/tools/reportInfo.js.map +1 -0
  771. package/dist/tools/resolveReferences.d.ts +89 -0
  772. package/dist/tools/resolveReferences.d.ts.map +1 -0
  773. package/dist/tools/resolveReferences.js +791 -0
  774. package/dist/tools/resolveReferences.js.map +1 -0
  775. package/dist/tools/reviewWorkspaceChanges.d.ts +14 -0
  776. package/dist/tools/reviewWorkspaceChanges.d.ts.map +1 -0
  777. package/dist/tools/reviewWorkspaceChanges.js +73 -0
  778. package/dist/tools/reviewWorkspaceChanges.js.map +1 -0
  779. package/dist/tools/runBpCheck.d.ts +14 -0
  780. package/dist/tools/runBpCheck.d.ts.map +1 -0
  781. package/dist/tools/runBpCheck.js +241 -0
  782. package/dist/tools/runBpCheck.js.map +1 -0
  783. package/dist/tools/search.d.ts +20 -0
  784. package/dist/tools/search.d.ts.map +1 -0
  785. package/dist/tools/search.js +246 -0
  786. package/dist/tools/search.js.map +1 -0
  787. package/dist/tools/searchLabels.d.ts +26 -0
  788. package/dist/tools/searchLabels.d.ts.map +1 -0
  789. package/dist/tools/searchLabels.js +91 -0
  790. package/dist/tools/searchLabels.js.map +1 -0
  791. package/dist/tools/searchUnified.d.ts +28 -0
  792. package/dist/tools/searchUnified.d.ts.map +1 -0
  793. package/dist/tools/searchUnified.js +48 -0
  794. package/dist/tools/searchUnified.js.map +1 -0
  795. package/dist/tools/securityArtifactInfo.d.ts +14 -0
  796. package/dist/tools/securityArtifactInfo.d.ts.map +1 -0
  797. package/dist/tools/securityArtifactInfo.js +192 -0
  798. package/dist/tools/securityArtifactInfo.js.map +1 -0
  799. package/dist/tools/securityCoverageInfo.d.ts +21 -0
  800. package/dist/tools/securityCoverageInfo.d.ts.map +1 -0
  801. package/dist/tools/securityCoverageInfo.js +248 -0
  802. package/dist/tools/securityCoverageInfo.js.map +1 -0
  803. package/dist/tools/securityInfo.d.ts +22 -0
  804. package/dist/tools/securityInfo.d.ts.map +1 -0
  805. package/dist/tools/securityInfo.js +43 -0
  806. package/dist/tools/securityInfo.js.map +1 -0
  807. package/dist/tools/securityPolicyInfo.d.ts +22 -0
  808. package/dist/tools/securityPolicyInfo.d.ts.map +1 -0
  809. package/dist/tools/securityPolicyInfo.js +49 -0
  810. package/dist/tools/securityPolicyInfo.js.map +1 -0
  811. package/dist/tools/securityPrivilegeXml.d.ts +21 -0
  812. package/dist/tools/securityPrivilegeXml.d.ts.map +1 -0
  813. package/dist/tools/securityPrivilegeXml.js +61 -0
  814. package/dist/tools/securityPrivilegeXml.js.map +1 -0
  815. package/dist/tools/serviceInfo.d.ts +25 -0
  816. package/dist/tools/serviceInfo.d.ts.map +1 -0
  817. package/dist/tools/serviceInfo.js +93 -0
  818. package/dist/tools/serviceInfo.js.map +1 -0
  819. package/dist/tools/suggestEdt.d.ts +15 -0
  820. package/dist/tools/suggestEdt.d.ts.map +1 -0
  821. package/dist/tools/suggestEdt.js +348 -0
  822. package/dist/tools/suggestEdt.js.map +1 -0
  823. package/dist/tools/suggestImplementation.d.ts +20 -0
  824. package/dist/tools/suggestImplementation.d.ts.map +1 -0
  825. package/dist/tools/suggestImplementation.js +144 -0
  826. package/dist/tools/suggestImplementation.js.map +1 -0
  827. package/dist/tools/sysTestRunner.d.ts +14 -0
  828. package/dist/tools/sysTestRunner.d.ts.map +1 -0
  829. package/dist/tools/sysTestRunner.js +145 -0
  830. package/dist/tools/sysTestRunner.js.map +1 -0
  831. package/dist/tools/tableExtensionInfo.d.ts +91 -0
  832. package/dist/tools/tableExtensionInfo.d.ts.map +1 -0
  833. package/dist/tools/tableExtensionInfo.js +305 -0
  834. package/dist/tools/tableExtensionInfo.js.map +1 -0
  835. package/dist/tools/tableInfo.d.ts +23 -0
  836. package/dist/tools/tableInfo.d.ts.map +1 -0
  837. package/dist/tools/tableInfo.js +125 -0
  838. package/dist/tools/tableInfo.js.map +1 -0
  839. package/dist/tools/toolHandler.d.ts +4 -0
  840. package/dist/tools/toolHandler.d.ts.map +1 -0
  841. package/dist/tools/toolHandler.js +508 -0
  842. package/dist/tools/toolHandler.js.map +1 -0
  843. package/dist/tools/undoLastModification.d.ts +15 -0
  844. package/dist/tools/undoLastModification.d.ts.map +1 -0
  845. package/dist/tools/undoLastModification.js +147 -0
  846. package/dist/tools/undoLastModification.js.map +1 -0
  847. package/dist/tools/updateSymbolIndex.d.ts +15 -0
  848. package/dist/tools/updateSymbolIndex.d.ts.map +1 -0
  849. package/dist/tools/updateSymbolIndex.js +520 -0
  850. package/dist/tools/updateSymbolIndex.js.map +1 -0
  851. package/dist/tools/validateCode.d.ts +24 -0
  852. package/dist/tools/validateCode.d.ts.map +1 -0
  853. package/dist/tools/validateCode.js +201 -0
  854. package/dist/tools/validateCode.js.map +1 -0
  855. package/dist/tools/validateFormPattern.d.ts +51 -0
  856. package/dist/tools/validateFormPattern.d.ts.map +1 -0
  857. package/dist/tools/validateFormPattern.js +201 -0
  858. package/dist/tools/validateFormPattern.js.map +1 -0
  859. package/dist/tools/validateObjectNaming.d.ts +21 -0
  860. package/dist/tools/validateObjectNaming.d.ts.map +1 -0
  861. package/dist/tools/validateObjectNaming.js +319 -0
  862. package/dist/tools/validateObjectNaming.js.map +1 -0
  863. package/dist/tools/validateXpp.d.ts +79 -0
  864. package/dist/tools/validateXpp.d.ts.map +1 -0
  865. package/dist/tools/validateXpp.js +705 -0
  866. package/dist/tools/validateXpp.js.map +1 -0
  867. package/dist/tools/verifyD365Project.d.ts +21 -0
  868. package/dist/tools/verifyD365Project.d.ts.map +1 -0
  869. package/dist/tools/verifyD365Project.js +299 -0
  870. package/dist/tools/verifyD365Project.js.map +1 -0
  871. package/dist/tools/viewInfo.d.ts +17 -0
  872. package/dist/tools/viewInfo.d.ts.map +1 -0
  873. package/dist/tools/viewInfo.js +46 -0
  874. package/dist/tools/viewInfo.js.map +1 -0
  875. package/dist/tools/xppKnowledge.d.ts +45 -0
  876. package/dist/tools/xppKnowledge.d.ts.map +1 -0
  877. package/dist/tools/xppKnowledge.js +2815 -0
  878. package/dist/tools/xppKnowledge.js.map +1 -0
  879. package/dist/types/context.d.ts +56 -0
  880. package/dist/types/context.d.ts.map +1 -0
  881. package/dist/types/context.js +5 -0
  882. package/dist/types/context.js.map +1 -0
  883. package/dist/utils/callDedup.d.ts +29 -0
  884. package/dist/utils/callDedup.d.ts.map +1 -0
  885. package/dist/utils/callDedup.js +87 -0
  886. package/dist/utils/callDedup.js.map +1 -0
  887. package/dist/utils/configManager.d.ts +307 -0
  888. package/dist/utils/configManager.d.ts.map +1 -0
  889. package/dist/utils/configManager.js +1169 -0
  890. package/dist/utils/configManager.js.map +1 -0
  891. package/dist/utils/d365XmlNormalizer.d.ts +9 -0
  892. package/dist/utils/d365XmlNormalizer.d.ts.map +1 -0
  893. package/dist/utils/d365XmlNormalizer.js +24 -0
  894. package/dist/utils/d365XmlNormalizer.js.map +1 -0
  895. package/dist/utils/edtExtensionValidator.d.ts +110 -0
  896. package/dist/utils/edtExtensionValidator.d.ts.map +1 -0
  897. package/dist/utils/edtExtensionValidator.js +367 -0
  898. package/dist/utils/edtExtensionValidator.js.map +1 -0
  899. package/dist/utils/eolUtils.d.ts +15 -0
  900. package/dist/utils/eolUtils.d.ts.map +1 -0
  901. package/dist/utils/eolUtils.js +21 -0
  902. package/dist/utils/eolUtils.js.map +1 -0
  903. package/dist/utils/extractManifest.d.ts +34 -0
  904. package/dist/utils/extractManifest.d.ts.map +1 -0
  905. package/dist/utils/extractManifest.js +43 -0
  906. package/dist/utils/extractManifest.js.map +1 -0
  907. package/dist/utils/fieldControlTypes.d.ts +44 -0
  908. package/dist/utils/fieldControlTypes.d.ts.map +1 -0
  909. package/dist/utils/fieldControlTypes.js +97 -0
  910. package/dist/utils/fieldControlTypes.js.map +1 -0
  911. package/dist/utils/formCloner.d.ts +77 -0
  912. package/dist/utils/formCloner.d.ts.map +1 -0
  913. package/dist/utils/formCloner.js +364 -0
  914. package/dist/utils/formCloner.js.map +1 -0
  915. package/dist/utils/formControlExpander.d.ts +68 -0
  916. package/dist/utils/formControlExpander.d.ts.map +1 -0
  917. package/dist/utils/formControlExpander.js +207 -0
  918. package/dist/utils/formControlExpander.js.map +1 -0
  919. package/dist/utils/formControlRepair.d.ts +81 -0
  920. package/dist/utils/formControlRepair.d.ts.map +1 -0
  921. package/dist/utils/formControlRepair.js +203 -0
  922. package/dist/utils/formControlRepair.js.map +1 -0
  923. package/dist/utils/formExtensionShapeValidator.d.ts +44 -0
  924. package/dist/utils/formExtensionShapeValidator.d.ts.map +1 -0
  925. package/dist/utils/formExtensionShapeValidator.js +99 -0
  926. package/dist/utils/formExtensionShapeValidator.js.map +1 -0
  927. package/dist/utils/formPatternTemplates.d.ts +77 -0
  928. package/dist/utils/formPatternTemplates.d.ts.map +1 -0
  929. package/dist/utils/formPatternTemplates.js +1917 -0
  930. package/dist/utils/formPatternTemplates.js.map +1 -0
  931. package/dist/utils/fsExtensionScanner.d.ts +76 -0
  932. package/dist/utils/fsExtensionScanner.d.ts.map +1 -0
  933. package/dist/utils/fsExtensionScanner.js +271 -0
  934. package/dist/utils/fsExtensionScanner.js.map +1 -0
  935. package/dist/utils/fuzzyMatching.d.ts +41 -0
  936. package/dist/utils/fuzzyMatching.d.ts.map +1 -0
  937. package/dist/utils/fuzzyMatching.js +186 -0
  938. package/dist/utils/fuzzyMatching.js.map +1 -0
  939. package/dist/utils/indexStaleness.d.ts +30 -0
  940. package/dist/utils/indexStaleness.d.ts.map +1 -0
  941. package/dist/utils/indexStaleness.js +104 -0
  942. package/dist/utils/indexStaleness.js.map +1 -0
  943. package/dist/utils/loadEnv.d.ts +32 -0
  944. package/dist/utils/loadEnv.d.ts.map +1 -0
  945. package/dist/utils/loadEnv.js +83 -0
  946. package/dist/utils/loadEnv.js.map +1 -0
  947. package/dist/utils/logger.d.ts +4 -0
  948. package/dist/utils/logger.d.ts.map +1 -0
  949. package/dist/utils/logger.js +11 -0
  950. package/dist/utils/logger.js.map +1 -0
  951. package/dist/utils/metadataResolver.d.ts +155 -0
  952. package/dist/utils/metadataResolver.d.ts.map +1 -0
  953. package/dist/utils/metadataResolver.js +277 -0
  954. package/dist/utils/metadataResolver.js.map +1 -0
  955. package/dist/utils/modelClassifier.d.ts +180 -0
  956. package/dist/utils/modelClassifier.d.ts.map +1 -0
  957. package/dist/utils/modelClassifier.js +373 -0
  958. package/dist/utils/modelClassifier.js.map +1 -0
  959. package/dist/utils/operationLocks.d.ts +26 -0
  960. package/dist/utils/operationLocks.d.ts.map +1 -0
  961. package/dist/utils/operationLocks.js +182 -0
  962. package/dist/utils/operationLocks.js.map +1 -0
  963. package/dist/utils/packageResolver.d.ts +52 -0
  964. package/dist/utils/packageResolver.d.ts.map +1 -0
  965. package/dist/utils/packageResolver.js +174 -0
  966. package/dist/utils/packageResolver.js.map +1 -0
  967. package/dist/utils/pathContainment.d.ts +60 -0
  968. package/dist/utils/pathContainment.d.ts.map +1 -0
  969. package/dist/utils/pathContainment.js +270 -0
  970. package/dist/utils/pathContainment.js.map +1 -0
  971. package/dist/utils/projectUtils.d.ts +14 -0
  972. package/dist/utils/projectUtils.d.ts.map +1 -0
  973. package/dist/utils/projectUtils.js +48 -0
  974. package/dist/utils/projectUtils.js.map +1 -0
  975. package/dist/utils/provenanceStore.d.ts +54 -0
  976. package/dist/utils/provenanceStore.d.ts.map +1 -0
  977. package/dist/utils/provenanceStore.js +203 -0
  978. package/dist/utils/provenanceStore.js.map +1 -0
  979. package/dist/utils/richContext.d.ts +45 -0
  980. package/dist/utils/richContext.d.ts.map +1 -0
  981. package/dist/utils/richContext.js +316 -0
  982. package/dist/utils/richContext.js.map +1 -0
  983. package/dist/utils/smartXmlBuilder.d.ts +187 -0
  984. package/dist/utils/smartXmlBuilder.d.ts.map +1 -0
  985. package/dist/utils/smartXmlBuilder.js +504 -0
  986. package/dist/utils/smartXmlBuilder.js.map +1 -0
  987. package/dist/utils/stdioSessionInfo.d.ts +53 -0
  988. package/dist/utils/stdioSessionInfo.d.ts.map +1 -0
  989. package/dist/utils/stdioSessionInfo.js +47 -0
  990. package/dist/utils/stdioSessionInfo.js.map +1 -0
  991. package/dist/utils/suggestionEngine.d.ts +20 -0
  992. package/dist/utils/suggestionEngine.d.ts.map +1 -0
  993. package/dist/utils/suggestionEngine.js +145 -0
  994. package/dist/utils/suggestionEngine.js.map +1 -0
  995. package/dist/utils/symbolLookup.d.ts +60 -0
  996. package/dist/utils/symbolLookup.d.ts.map +1 -0
  997. package/dist/utils/symbolLookup.js +0 -0
  998. package/dist/utils/symbolLookup.js.map +1 -0
  999. package/dist/utils/terminalUi.d.ts +85 -0
  1000. package/dist/utils/terminalUi.d.ts.map +1 -0
  1001. package/dist/utils/terminalUi.js +182 -0
  1002. package/dist/utils/terminalUi.js.map +1 -0
  1003. package/dist/utils/toolMetrics.d.ts +32 -0
  1004. package/dist/utils/toolMetrics.d.ts.map +1 -0
  1005. package/dist/utils/toolMetrics.js +89 -0
  1006. package/dist/utils/toolMetrics.js.map +1 -0
  1007. package/dist/utils/toolProgressMessage.d.ts +8 -0
  1008. package/dist/utils/toolProgressMessage.d.ts.map +1 -0
  1009. package/dist/utils/toolProgressMessage.js +182 -0
  1010. package/dist/utils/toolProgressMessage.js.map +1 -0
  1011. package/dist/utils/workspaceDetector.d.ts +51 -0
  1012. package/dist/utils/workspaceDetector.d.ts.map +1 -0
  1013. package/dist/utils/workspaceDetector.js +328 -0
  1014. package/dist/utils/workspaceDetector.js.map +1 -0
  1015. package/dist/utils/xppConfigProvider.d.ts +48 -0
  1016. package/dist/utils/xppConfigProvider.d.ts.map +1 -0
  1017. package/dist/utils/xppConfigProvider.js +121 -0
  1018. package/dist/utils/xppConfigProvider.js.map +1 -0
  1019. package/dist/utils/xppDocGen.d.ts +39 -0
  1020. package/dist/utils/xppDocGen.d.ts.map +1 -0
  1021. package/dist/utils/xppDocGen.js +518 -0
  1022. package/dist/utils/xppDocGen.js.map +1 -0
  1023. package/dist/utils/xppFormat.d.ts +21 -0
  1024. package/dist/utils/xppFormat.d.ts.map +1 -0
  1025. package/dist/utils/xppFormat.js +102 -0
  1026. package/dist/utils/xppFormat.js.map +1 -0
  1027. package/dist/utils/xppSelectLint.d.ts +18 -0
  1028. package/dist/utils/xppSelectLint.d.ts.map +1 -0
  1029. package/dist/utils/xppSelectLint.js +80 -0
  1030. package/dist/utils/xppSelectLint.js.map +1 -0
  1031. package/dist/validation/formPatternValidator.d.ts +53 -0
  1032. package/dist/validation/formPatternValidator.d.ts.map +1 -0
  1033. package/dist/validation/formPatternValidator.js +454 -0
  1034. package/dist/validation/formPatternValidator.js.map +1 -0
  1035. package/dist/workspace/contextRanker.d.ts +58 -0
  1036. package/dist/workspace/contextRanker.d.ts.map +1 -0
  1037. package/dist/workspace/contextRanker.js +216 -0
  1038. package/dist/workspace/contextRanker.js.map +1 -0
  1039. package/dist/workspace/contextSnapshot.d.ts +68 -0
  1040. package/dist/workspace/contextSnapshot.d.ts.map +1 -0
  1041. package/dist/workspace/contextSnapshot.js +193 -0
  1042. package/dist/workspace/contextSnapshot.js.map +1 -0
  1043. package/dist/workspace/hybridSearch.d.ts +39 -0
  1044. package/dist/workspace/hybridSearch.d.ts.map +1 -0
  1045. package/dist/workspace/hybridSearch.js +96 -0
  1046. package/dist/workspace/hybridSearch.js.map +1 -0
  1047. package/dist/workspace/workspaceScanner.d.ts +95 -0
  1048. package/dist/workspace/workspaceScanner.d.ts.map +1 -0
  1049. package/dist/workspace/workspaceScanner.js +247 -0
  1050. package/dist/workspace/workspaceScanner.js.map +1 -0
  1051. package/dist/workspace/workspaceUtils.d.ts +23 -0
  1052. package/dist/workspace/workspaceUtils.d.ts.map +1 -0
  1053. package/dist/workspace/workspaceUtils.js +77 -0
  1054. package/dist/workspace/workspaceUtils.js.map +1 -0
  1055. package/package.json +94 -0
@@ -0,0 +1,1021 @@
1
+ /**
2
+ * X++ Metadata XML Parser
3
+ * Parses D365 F&O AOT XML files (AxClass, AxTable, etc.)
4
+ */
5
+ import * as fs from 'fs/promises';
6
+ import { Parser } from 'xml2js';
7
+ import { EnhancedXppParser } from './enhancedParser.js';
8
+ import { walkFormDesign, collectPatternNodes } from './formPatternMiner.js';
9
+ import { parseXppDeclaration, parseXppClassHeader, parseExtensionOfAttribute, callsNext, } from './xppDeclaration.js';
10
+ /**
11
+ * Classify the methods of an extension into added / CoC-wrapping / event-
12
+ * subscribing. Shared by parseExtensionFile (Ax*Extension XML) and the class
13
+ * extension path in extract-metadata, which reach the same X++ from different
14
+ * XML shapes and must classify it identically.
15
+ */
16
+ export function extensionMembersFrom(methods) {
17
+ const addedMethods = [];
18
+ const cocMethods = [];
19
+ const eventSubscriptions = [];
20
+ for (const { name, source } of methods) {
21
+ if (!name)
22
+ continue;
23
+ addedMethods.push(name);
24
+ if (callsNext(source || ''))
25
+ cocMethods.push(name);
26
+ if (/\[SubscribesTo\s*\(/i.test(source || '')) {
27
+ eventSubscriptions.push(source.match(/\[SubscribesTo\s*\([^)]+\)/)?.[0] || name);
28
+ }
29
+ }
30
+ return { addedMethods, cocMethods, eventSubscriptions };
31
+ }
32
+ /**
33
+ * Build the class-extension record for an AxClass carrying [ExtensionOf(...)],
34
+ * or null when the class is not an extension.
35
+ *
36
+ * The AOT has no AxClassExtension artifact — class extensions are ordinary
37
+ * AxClass files — so these records are the only source of class-extension rows
38
+ * in symbols/extension_metadata. Extraction writes them into the
39
+ * `class-extensions/` folder symbolIndex.indexExtensions already reads, in the
40
+ * shape parseExtensionFile emits for the other extension kinds (#693).
41
+ */
42
+ export function buildClassExtensionRecord(classInfo, model) {
43
+ if (!classInfo.extensionOf)
44
+ return null;
45
+ const { baseObjectName, baseKind, memberName } = classInfo.extensionOf;
46
+ return {
47
+ name: classInfo.name,
48
+ baseObjectName,
49
+ baseKind,
50
+ ...(memberName ? { baseMemberName: memberName } : {}),
51
+ sourcePath: classInfo.sourcePath,
52
+ addedFields: [],
53
+ addedIndexes: [],
54
+ ...extensionMembersFrom(classInfo.methods),
55
+ model,
56
+ type: 'class-extension',
57
+ };
58
+ }
59
+ export class XppMetadataParser {
60
+ parser;
61
+ enhancedParser;
62
+ constructor() {
63
+ this.parser = new Parser({
64
+ explicitArray: false,
65
+ mergeAttrs: true,
66
+ trim: true,
67
+ });
68
+ this.enhancedParser = new EnhancedXppParser();
69
+ }
70
+ /**
71
+ * Parse an X++ class file (AxClass XML)
72
+ */
73
+ async parseClassFile(filePath, model) {
74
+ try {
75
+ const content = await fs.readFile(filePath, 'utf-8');
76
+ const parsed = await this.parser.parseStringPromise(content);
77
+ if (!parsed.AxClass) {
78
+ return { success: false, error: 'Not a valid AxClass file' };
79
+ }
80
+ const axClass = parsed.AxClass;
81
+ const className = axClass.Name || 'UnknownClass';
82
+ // Methods are nested in SourceCode.Methods.Method
83
+ const methodsData = axClass.SourceCode?.Methods?.Method || axClass.Methods?.Method;
84
+ const parsedMethods = this.parseMethods(methodsData, className);
85
+ // Inheritance lives in the Declaration CDATA as X++ text, not in XML
86
+ // elements — see parseXppClassHeader. The element reads are kept only as
87
+ // a fallback for hand-written/synthetic AxClass XML in tests and tools.
88
+ const declarationCdata = this.cdataText(axClass.SourceCode?.Declaration);
89
+ const header = parseXppClassHeader(declarationCdata);
90
+ // [ExtensionOf(...)] marks this AxClass as a class extension. Extraction
91
+ // reads it to emit an extension record; without it class extensions index
92
+ // as plain classes and every class-extension lookup misses them (#693).
93
+ const extensionOf = parseExtensionOfAttribute(declarationCdata) ?? undefined;
94
+ const parsedImplements = header?.implements.length
95
+ ? header.implements
96
+ : this.parseImplements(axClass.Implements);
97
+ const parsedDeclaration = this.extractClassDeclaration(axClass, header);
98
+ const isAbstract = header?.isAbstract
99
+ ?? (axClass.IsAbstract === 'Yes' || axClass.IsAbstract === 'true');
100
+ const isFinal = header?.isFinal
101
+ ?? (axClass.IsFinal === 'Yes' || axClass.IsFinal === 'true');
102
+ const extendsClass = header?.extends || axClass.Extends || undefined;
103
+ const classInfoBase = {
104
+ name: className,
105
+ model: model || 'Unknown',
106
+ sourcePath: filePath,
107
+ extends: extendsClass,
108
+ implements: parsedImplements,
109
+ isAbstract,
110
+ isFinal,
111
+ declaration: parsedDeclaration,
112
+ extensionOf,
113
+ methods: parsedMethods,
114
+ documentation: axClass.DeveloperDocumentation || undefined,
115
+ };
116
+ const classInfo = {
117
+ ...classInfoBase,
118
+ tags: this.enhancedParser.generateClassTags({ ...classInfoBase, methods: [] }),
119
+ usedTypes: this.enhancedParser.extractClassDependencies(classInfoBase),
120
+ description: axClass.DeveloperDocumentation || `${className} class${extendsClass ? ` extending ${extendsClass}` : ''}`,
121
+ };
122
+ return { success: true, data: classInfo };
123
+ }
124
+ catch (error) {
125
+ return {
126
+ success: false,
127
+ error: error instanceof Error ? error.message : 'Unknown error',
128
+ };
129
+ }
130
+ }
131
+ /**
132
+ * Parse an X++ table file (AxTable XML)
133
+ */
134
+ async parseTableFile(filePath, model) {
135
+ try {
136
+ const content = await fs.readFile(filePath, 'utf-8');
137
+ const parsed = await this.parser.parseStringPromise(content);
138
+ if (!parsed.AxTable) {
139
+ return { success: false, error: 'Not a valid AxTable file' };
140
+ }
141
+ const axTable = parsed.AxTable;
142
+ const tableName = axTable.Name || 'UnknownTable';
143
+ const tableInfo = {
144
+ name: tableName,
145
+ model: model || 'Unknown',
146
+ sourcePath: filePath,
147
+ label: axTable.Label || tableName,
148
+ tableGroup: axTable.TableGroup || 'Main',
149
+ primaryIndex: axTable.PrimaryIndex || undefined,
150
+ clusteredIndex: axTable.ClusteredIndex || undefined,
151
+ fields: this.parseFields(axTable.Fields?.AxTableField),
152
+ indexes: this.parseIndexes(axTable.Indexes?.AxTableIndex),
153
+ relations: this.parseRelations(axTable.Relations?.AxTableRelation),
154
+ methods: this.parseMethods(axTable.SourceCode?.Methods?.Method, tableName),
155
+ };
156
+ return { success: true, data: tableInfo };
157
+ }
158
+ catch (error) {
159
+ return {
160
+ success: false,
161
+ error: error instanceof Error ? error.message : 'Unknown error',
162
+ };
163
+ }
164
+ }
165
+ /**
166
+ * Parse an X++ view/data entity file (AxView or AxDataEntityView XML)
167
+ */
168
+ async parseViewFile(filePath, model) {
169
+ try {
170
+ const content = await fs.readFile(filePath, 'utf-8');
171
+ const parsed = await this.parser.parseStringPromise(content);
172
+ const axView = parsed.AxDataEntityView || parsed.AxView;
173
+ if (!axView) {
174
+ return { success: false, error: 'Not a valid AxView/AxDataEntityView file' };
175
+ }
176
+ const isDataEntity = !!parsed.AxDataEntityView;
177
+ const viewName = axView.Name || 'UnknownView';
178
+ const viewInfo = {
179
+ name: viewName,
180
+ model: model || 'Unknown',
181
+ sourcePath: filePath,
182
+ type: isDataEntity ? 'data-entity' : 'view',
183
+ label: axView.Label || undefined,
184
+ isPublic: axView.IsPublic === 'Yes' || axView.IsPublic === 'true',
185
+ isReadOnly: axView.IsReadOnly === 'Yes' || axView.IsReadOnly === 'true',
186
+ primaryKey: axView.PrimaryKey || undefined,
187
+ primaryKeyFields: this.parseViewPrimaryKeyFields(axView.Keys, axView.PrimaryKey),
188
+ fields: this.parseViewFields(axView.Fields),
189
+ relations: this.parseViewRelations(axView.Relations),
190
+ methods: this.parseMethods(axView.SourceCode?.Methods?.Method, viewName),
191
+ };
192
+ return { success: true, data: viewInfo };
193
+ }
194
+ catch (error) {
195
+ return {
196
+ success: false,
197
+ error: error instanceof Error ? error.message : 'Unknown error',
198
+ };
199
+ }
200
+ }
201
+ /**
202
+ * Text of a CDATA-bearing element. xml2js hands back a plain string, unless
203
+ * the element carries an attribute (mergeAttrs) — then the text sits under
204
+ * `_` and the raw value is an object.
205
+ */
206
+ cdataText(node) {
207
+ if (typeof node === 'string')
208
+ return node;
209
+ const text = node?._;
210
+ return typeof text === 'string' ? text : '';
211
+ }
212
+ parseImplements(implementsStr) {
213
+ if (!implementsStr)
214
+ return [];
215
+ if (typeof implementsStr !== 'string')
216
+ return [];
217
+ return implementsStr.split(',').map(i => i.trim()).filter(Boolean);
218
+ }
219
+ /**
220
+ * The class's declaration line. Rebuilt from the parsed Declaration CDATA so
221
+ * it reflects what the source actually says; falls back to synthesising one
222
+ * from XML elements when there is no declaration to read.
223
+ */
224
+ extractClassDeclaration(axClass, header) {
225
+ const modifiers = [];
226
+ if (header) {
227
+ if (header.isAbstract)
228
+ modifiers.push('abstract');
229
+ if (header.isFinal)
230
+ modifiers.push('final');
231
+ let decl = modifiers.length > 0 ? `${modifiers.join(' ')} ` : '';
232
+ decl += `${header.kind} ${header.name}`;
233
+ if (header.extends)
234
+ decl += ` extends ${header.extends}`;
235
+ if (header.implements.length)
236
+ decl += ` implements ${header.implements.join(', ')}`;
237
+ return decl;
238
+ }
239
+ if (axClass.IsAbstract === 'Yes' || axClass.IsAbstract === 'true')
240
+ modifiers.push('abstract');
241
+ if (axClass.IsFinal === 'Yes' || axClass.IsFinal === 'true')
242
+ modifiers.push('final');
243
+ let decl = modifiers.length > 0 ? `${modifiers.join(' ')} ` : '';
244
+ decl += `class ${axClass.Name}`;
245
+ if (axClass.Extends)
246
+ decl += ` extends ${axClass.Extends}`;
247
+ if (axClass.Implements)
248
+ decl += ` implements ${axClass.Implements}`;
249
+ return decl;
250
+ }
251
+ parseMethods(methodsData, parentClass = 'Unknown') {
252
+ if (!methodsData)
253
+ return [];
254
+ const methods = Array.isArray(methodsData) ? methodsData : [methodsData];
255
+ return methods.map(method => {
256
+ const source = method.Source || '';
257
+ const methodName = method.Name || 'unknown';
258
+ const decl = parseXppDeclaration(source, methodName);
259
+ const baseMethod = {
260
+ name: methodName,
261
+ visibility: this.parseVisibility(method.Visibility),
262
+ returnType: decl?.returnType || method.ReturnType || 'void',
263
+ parameters: this.toParameterInfo(decl),
264
+ isStatic: decl?.modifiers.includes('static') ?? false,
265
+ source: source,
266
+ documentation: method.DeveloperDocumentation || undefined,
267
+ };
268
+ return this.enhancedParser.parseMethodEnhanced(baseMethod, parentClass);
269
+ });
270
+ }
271
+ parseVisibility(vis) {
272
+ if (!vis)
273
+ return 'public';
274
+ const lower = vis.toLowerCase();
275
+ if (lower === 'private')
276
+ return 'private';
277
+ if (lower === 'protected')
278
+ return 'protected';
279
+ return 'public';
280
+ }
281
+ /**
282
+ * Parses <AxTableField i:type="AxTableFieldString"> nodes; the field type
283
+ * comes from the i:type XML attribute (field.$['i:type']), not an element.
284
+ */
285
+ parseFields(fieldsData) {
286
+ if (!fieldsData)
287
+ return [];
288
+ const fields = Array.isArray(fieldsData) ? fieldsData : [fieldsData];
289
+ return fields.map(field => {
290
+ const rawType = field.$?.['i:type'] || 'AxTableFieldString';
291
+ const xppType = rawType.replace('AxTableField', '') || 'String';
292
+ return {
293
+ name: field.Name || 'unknown',
294
+ type: xppType,
295
+ extendedDataType: field.ExtendedDataType || undefined,
296
+ enumType: field.EnumType || undefined,
297
+ mandatory: field.Mandatory === 'Yes' || field.Mandatory === 'true',
298
+ label: field.Label || undefined,
299
+ };
300
+ });
301
+ }
302
+ parseIndexes(indexesData) {
303
+ if (!indexesData)
304
+ return [];
305
+ const indexes = Array.isArray(indexesData) ? indexesData : [indexesData];
306
+ return indexes.map(index => ({
307
+ name: index.Name || 'unknown',
308
+ fields: this.parseIndexFields(index.Fields),
309
+ // Uniqueness is marked via AlternateKey, not AllowDuplicates
310
+ unique: index.AlternateKey === 'Yes' || index.AlternateKey === 'true',
311
+ clustered: index.IsClustered === 'Yes' || index.IsClustered === 'true',
312
+ }));
313
+ }
314
+ parseIndexFields(fieldsStr) {
315
+ if (!fieldsStr)
316
+ return [];
317
+ if (fieldsStr.AxTableIndexField) {
318
+ const indexFields = Array.isArray(fieldsStr.AxTableIndexField)
319
+ ? fieldsStr.AxTableIndexField
320
+ : [fieldsStr.AxTableIndexField];
321
+ return indexFields
322
+ .map((field) => field?.DataField || field?.Name || '')
323
+ .filter((field) => !!field);
324
+ }
325
+ if (typeof fieldsStr !== 'string') {
326
+ if (Array.isArray(fieldsStr)) {
327
+ return fieldsStr
328
+ .map((field) => {
329
+ if (typeof field === 'string') {
330
+ return field;
331
+ }
332
+ if (field?.DataField) {
333
+ return field.DataField;
334
+ }
335
+ if (field?.Name) {
336
+ return field.Name;
337
+ }
338
+ return '';
339
+ })
340
+ .filter(Boolean);
341
+ }
342
+ return [];
343
+ }
344
+ return fieldsStr.split(',').map(f => f.trim()).filter(Boolean);
345
+ }
346
+ parseRelations(relationsData) {
347
+ if (!relationsData)
348
+ return [];
349
+ const relations = Array.isArray(relationsData) ? relationsData : [relationsData];
350
+ return relations.map(rel => ({
351
+ name: rel.Name || 'unknown',
352
+ relatedTable: rel.RelatedTable || 'unknown',
353
+ constraints: this.parseConstraints(rel.Constraints),
354
+ }));
355
+ }
356
+ parseConstraints(constraintsData) {
357
+ if (!constraintsData)
358
+ return [];
359
+ const constraintNodes = constraintsData.AxTableRelationConstraint
360
+ ? (Array.isArray(constraintsData.AxTableRelationConstraint)
361
+ ? constraintsData.AxTableRelationConstraint
362
+ : [constraintsData.AxTableRelationConstraint])
363
+ : (Array.isArray(constraintsData) ? constraintsData : [constraintsData]);
364
+ return constraintNodes.map((constraint) => ({
365
+ field: constraint.Field || '',
366
+ relatedField: constraint.RelatedField || '',
367
+ }));
368
+ }
369
+ parseViewFields(fieldsData) {
370
+ if (!fieldsData)
371
+ return [];
372
+ const entityFields = this.ensureArray(fieldsData.AxDataEntityViewField);
373
+ const viewFields = this.ensureArray(fieldsData.AxViewField);
374
+ const allFields = [...entityFields, ...viewFields];
375
+ return allFields.map((field) => ({
376
+ name: field.Name || 'unknown',
377
+ dataSource: field.DataSource || undefined,
378
+ dataField: field.DataField || undefined,
379
+ dataMethod: field.DataMethod || undefined,
380
+ labelId: this.extractLabelId(field.Label),
381
+ isComputed: !!field.DataMethod,
382
+ }));
383
+ }
384
+ parseViewRelations(relationsData) {
385
+ if (!relationsData)
386
+ return [];
387
+ const entityRelations = this.ensureArray(relationsData.AxDataEntityViewRelation);
388
+ const viewRelations = this.ensureArray(relationsData.AxViewRelation);
389
+ const allRelations = [...entityRelations, ...viewRelations];
390
+ return allRelations.map((relation) => ({
391
+ name: relation.Name || 'unknown',
392
+ relatedTable: relation.RelatedDataEntity || relation.RelatedTable || 'unknown',
393
+ relationType: relation.RelationType || 'Unknown',
394
+ cardinality: relation.Cardinality || 'Unknown',
395
+ fields: this.parseViewRelationFields(relation),
396
+ }));
397
+ }
398
+ parseViewPrimaryKeyFields(keysData, primaryKeyName) {
399
+ if (!keysData)
400
+ return [];
401
+ const keys = this.ensureArray(keysData.AxDataEntityViewKey);
402
+ const keyNode = primaryKeyName
403
+ ? keys.find((key) => key.Name === primaryKeyName)
404
+ : keys[0];
405
+ if (!keyNode || !keyNode.Fields)
406
+ return [];
407
+ const keyFields = this.ensureArray(keyNode.Fields.AxDataEntityViewKeyField);
408
+ return keyFields
409
+ .map((field) => field.DataField || field.Name || '')
410
+ .filter((field) => !!field);
411
+ }
412
+ parseViewRelationFields(relation) {
413
+ const mappings = [];
414
+ const relationFields = this.ensureArray(relation?.Fields?.AxDataEntityViewRelationField);
415
+ for (const field of relationFields) {
416
+ mappings.push({
417
+ field: field.DataField || field.Field || field.Name || '',
418
+ relatedField: field.RelatedDataField || field.RelatedField || '',
419
+ });
420
+ }
421
+ const constraints = this.ensureArray(relation?.Constraints?.AxDataEntityViewRelationConstraint);
422
+ for (const constraint of constraints) {
423
+ mappings.push({
424
+ field: constraint.DataField || constraint.Field || '',
425
+ relatedField: constraint.RelatedDataField || constraint.RelatedField || '',
426
+ });
427
+ }
428
+ return mappings.filter(mapping => !!mapping.field || !!mapping.relatedField);
429
+ }
430
+ extractLabelId(labelValue) {
431
+ if (!labelValue || typeof labelValue !== 'string')
432
+ return undefined;
433
+ const trimmed = labelValue.trim();
434
+ if (!trimmed.startsWith('@'))
435
+ return undefined;
436
+ return trimmed;
437
+ }
438
+ ensureArray(value) {
439
+ if (!value)
440
+ return [];
441
+ return Array.isArray(value) ? value : [value];
442
+ }
443
+ /** Declaration parameters narrowed to the shape XppMethodInfo carries. */
444
+ toParameterInfo(decl) {
445
+ return decl?.parameters.map(p => ({ type: p.type, name: p.name })) ?? [];
446
+ }
447
+ /**
448
+ * Parse Form XML file (AxForm)
449
+ */
450
+ async parseFormFile(filePath, model) {
451
+ try {
452
+ const content = await fs.readFile(filePath, 'utf-8');
453
+ const parsed = await this.parser.parseStringPromise(content);
454
+ if (!parsed.AxForm) {
455
+ return { success: false, error: 'Not a valid AxForm file' };
456
+ }
457
+ const axForm = parsed.AxForm;
458
+ const formName = axForm.Name || 'UnknownForm';
459
+ // Extract form info with full structure
460
+ const formInfo = {
461
+ name: formName,
462
+ model: model || 'Unknown',
463
+ sourcePath: filePath,
464
+ label: axForm.Label || undefined,
465
+ caption: axForm.Caption || axForm.TitleDatasource || undefined,
466
+ formPattern: undefined, // Will be detected from Design
467
+ formPatternVersion: undefined,
468
+ dataSources: [],
469
+ design: [],
470
+ patternNodes: [],
471
+ methods: [],
472
+ };
473
+ // Extract data sources (top-level <DataSources>, not the SourceCode one)
474
+ // xml2js with explicitArray:false yields a plain object here, never an array.
475
+ if (axForm.DataSources && typeof axForm.DataSources === 'object') {
476
+ formInfo.dataSources = this.extractFormDataSources(axForm.DataSources);
477
+ }
478
+ // Extract design (controls) — Design > Controls > AxFormControl tree,
479
+ // including Pattern/PatternVersion on Design and on container controls.
480
+ if (axForm.Design && typeof axForm.Design === 'object') {
481
+ const designInfo = walkFormDesign(axForm.Design);
482
+ formInfo.design = designInfo.controls;
483
+ formInfo.formPattern = designInfo.pattern || designInfo.style;
484
+ formInfo.formPatternVersion = designInfo.patternVersion;
485
+ formInfo.patternNodes = collectPatternNodes(designInfo);
486
+ }
487
+ // Extract methods — form methods live under SourceCode > Methods > Method
488
+ const methodsNode = axForm.SourceCode?.Methods ?? axForm.Methods;
489
+ if (methodsNode && typeof methodsNode === 'object') {
490
+ formInfo.methods = this.extractFormMethods(methodsNode, formName);
491
+ }
492
+ return { success: true, data: formInfo };
493
+ }
494
+ catch (error) {
495
+ return {
496
+ success: false,
497
+ error: error instanceof Error ? error.message : 'Unknown error',
498
+ };
499
+ }
500
+ }
501
+ /**
502
+ * Extract form datasources
503
+ */
504
+ extractFormDataSources(dataSourcesNode) {
505
+ const dataSources = [];
506
+ // Form XML uses <AxFormDataSource>; AxFormDataSourceRoot kept as legacy fallback
507
+ const dsData = dataSourcesNode.AxFormDataSource || dataSourcesNode.AxFormDataSourceRoot;
508
+ if (!dsData) {
509
+ return dataSources;
510
+ }
511
+ const dsRoots = this.ensureArray(dsData);
512
+ for (const dsNode of dsRoots) {
513
+ const ds = {
514
+ name: dsNode.Name || 'Unknown',
515
+ table: dsNode.Table || 'Unknown',
516
+ allowEdit: dsNode.AllowEdit === 'Yes' || dsNode.AllowEdit === 'true',
517
+ allowCreate: dsNode.AllowCreate === 'Yes' || dsNode.AllowCreate === 'true',
518
+ allowDelete: dsNode.AllowDelete === 'Yes' || dsNode.AllowDelete === 'true',
519
+ fields: [],
520
+ methods: [],
521
+ };
522
+ // Extract fields
523
+ if (dsNode.Fields && this.ensureArray(dsNode.Fields).length > 0) {
524
+ const fieldsNode = this.ensureArray(dsNode.Fields)[0];
525
+ if (fieldsNode.AxFormDataSourceField) {
526
+ const fieldNodes = this.ensureArray(fieldsNode.AxFormDataSourceField);
527
+ ds.fields = fieldNodes
528
+ .map((f) => f.DataField || 'Unknown')
529
+ .filter((name) => name !== 'Unknown');
530
+ }
531
+ }
532
+ // Extract methods
533
+ if (dsNode.Methods && this.ensureArray(dsNode.Methods).length > 0) {
534
+ const methodsNode = this.ensureArray(dsNode.Methods)[0];
535
+ if (methodsNode.Method) {
536
+ const methodNodes = this.ensureArray(methodsNode.Method);
537
+ ds.methods = methodNodes.map((m) => m.Name || 'Unknown');
538
+ }
539
+ }
540
+ dataSources.push(ds);
541
+ }
542
+ return dataSources;
543
+ }
544
+ /**
545
+ * Extract form methods
546
+ */
547
+ extractFormMethods(methodsNode, _formName) {
548
+ const methods = [];
549
+ if (!methodsNode.Method) {
550
+ return methods;
551
+ }
552
+ const methodNodes = this.ensureArray(methodsNode.Method);
553
+ for (const methodNode of methodNodes) {
554
+ const name = methodNode.Name || 'Unknown';
555
+ const source = methodNode.Source || '';
556
+ const decl = parseXppDeclaration(source, name);
557
+ // Parse method info (similar to class methods)
558
+ const methodInfo = {
559
+ name,
560
+ visibility: 'public', // Forms typically have public methods
561
+ returnType: decl?.returnType || 'void',
562
+ parameters: this.toParameterInfo(decl),
563
+ isStatic: decl?.modifiers.includes('static') ?? false,
564
+ source,
565
+ sourceSnippet: source.split('\n').slice(0, 10).join('\n'),
566
+ };
567
+ methods.push(methodInfo);
568
+ }
569
+ return methods;
570
+ }
571
+ /**
572
+ * Parse EDT XML file (AxEdt)
573
+ */
574
+ async parseEdtFile(filePath, model) {
575
+ try {
576
+ const content = await fs.readFile(filePath, 'utf-8');
577
+ const parsed = await this.parser.parseStringPromise(content);
578
+ if (!parsed.AxEdt) {
579
+ return { success: false, error: 'Not a valid AxEdt file' };
580
+ }
581
+ const axEdt = parsed.AxEdt;
582
+ const edtName = axEdt.Name || 'UnknownEDT';
583
+ const getValue = (key) => {
584
+ const raw = axEdt[key];
585
+ if (!raw)
586
+ return undefined;
587
+ const value = Array.isArray(raw) ? raw[0] : raw;
588
+ return typeof value === 'string' && value.trim().length > 0 ? value : undefined;
589
+ };
590
+ const edtInfo = {
591
+ name: edtName,
592
+ model: model || 'Unknown',
593
+ sourcePath: filePath,
594
+ extends: getValue('Extends'),
595
+ enumType: getValue('EnumType'),
596
+ referenceTable: getValue('ReferenceTable'),
597
+ relationType: getValue('RelationType'),
598
+ stringSize: getValue('StringSize'),
599
+ databaseStringSize: getValue('DatabaseStringSize'),
600
+ displayLength: getValue('DisplayLength'),
601
+ label: getValue('Label'),
602
+ helpText: getValue('HelpText'),
603
+ formHelp: getValue('FormHelp'),
604
+ configurationKey: getValue('ConfigurationKey'),
605
+ alignment: getValue('Alignment'),
606
+ decimalSeparator: getValue('DecimalSeparator'),
607
+ signDisplay: getValue('SignDisplay'),
608
+ noOfDecimals: getValue('NoOfDecimals'),
609
+ additionalProperties: {},
610
+ };
611
+ // Extract additional properties
612
+ const knownProperties = new Set([
613
+ 'Name', 'Extends', 'EnumType', 'ReferenceTable', 'RelationType', 'StringSize', 'DisplayLength',
614
+ 'DatabaseStringSize',
615
+ 'Label', 'HelpText', 'FormHelp', 'ConfigurationKey', 'Alignment', 'DecimalSeparator',
616
+ 'SignDisplay', 'NoOfDecimals', 'ArrayElements', 'Relations', 'TableReferences'
617
+ ]);
618
+ for (const [key, value] of Object.entries(axEdt)) {
619
+ if (knownProperties.has(key))
620
+ continue;
621
+ const first = Array.isArray(value) ? value[0] : value;
622
+ if (typeof first === 'string' && first.trim().length > 0) {
623
+ edtInfo.additionalProperties[key] = first;
624
+ }
625
+ }
626
+ return { success: true, data: edtInfo };
627
+ }
628
+ catch (error) {
629
+ return {
630
+ success: false,
631
+ error: error instanceof Error ? error.message : 'Unknown error',
632
+ };
633
+ }
634
+ }
635
+ async parseSecurityPrivilegeFile(filePath) {
636
+ try {
637
+ const content = await fs.readFile(filePath, 'utf-8');
638
+ const parsed = await this.parser.parseStringPromise(content);
639
+ const root = parsed?.AxSecurityPrivilege;
640
+ if (!root)
641
+ return { success: false, error: 'Not an AxSecurityPrivilege file' };
642
+ const name = root.Name || '';
643
+ const label = root.Label || undefined;
644
+ const rawEps = root.EntryPoints?.AxSecurityEntryPointReference;
645
+ const epArray = rawEps ? (Array.isArray(rawEps) ? rawEps : [rawEps]) : [];
646
+ const entryPoints = epArray.map((ep) => {
647
+ // Grant / Access can be a plain string (e.g. "Allow") OR an object
648
+ // ({ Read: "Allow", Create: "Allow", ... }) depending on the XML structure.
649
+ // Normalise to a string so it can be stored as TEXT in SQLite.
650
+ const rawAccess = ep.Grant ?? ep.Access;
651
+ let accessLevel;
652
+ if (rawAccess == null) {
653
+ accessLevel = '';
654
+ }
655
+ else if (typeof rawAccess === 'object') {
656
+ // Serialize to "Read:Allow,Create:Allow,..." form
657
+ accessLevel = Object.entries(rawAccess)
658
+ .map(([k, v]) => `${k}:${v}`)
659
+ .join(',');
660
+ }
661
+ else {
662
+ accessLevel = String(rawAccess);
663
+ }
664
+ return { name: ep.Name || '', objectName: ep.ObjectName || ep.Name || '', objectType: ep.ObjectType || '', accessLevel };
665
+ }).filter((ep) => ep.name);
666
+ return { success: true, data: { name, label, sourcePath: filePath, entryPoints } };
667
+ }
668
+ catch (error) {
669
+ return { success: false, error: error instanceof Error ? error.message : 'Unknown error' };
670
+ }
671
+ }
672
+ async parseSecurityDutyFile(filePath) {
673
+ try {
674
+ const content = await fs.readFile(filePath, 'utf-8');
675
+ const parsed = await this.parser.parseStringPromise(content);
676
+ const root = parsed?.AxSecurityDuty;
677
+ if (!root)
678
+ return { success: false, error: 'Not an AxSecurityDuty file' };
679
+ const name = root.Name || '';
680
+ const label = root.Label || undefined;
681
+ const rawPrivs = root.Privileges?.AxSecurityRolePermissionSet ??
682
+ root.Privileges?.AxSecurityPrivilegePermissionSet;
683
+ const privArray = rawPrivs ? (Array.isArray(rawPrivs) ? rawPrivs : [rawPrivs]) : [];
684
+ const privileges = privArray
685
+ .map((p) => (typeof p === 'string' ? p : p.Name || ''))
686
+ .filter(Boolean);
687
+ return { success: true, data: { name, label, sourcePath: filePath, privileges } };
688
+ }
689
+ catch (error) {
690
+ return { success: false, error: error instanceof Error ? error.message : 'Unknown error' };
691
+ }
692
+ }
693
+ async parseSecurityRoleFile(filePath) {
694
+ try {
695
+ const content = await fs.readFile(filePath, 'utf-8');
696
+ const parsed = await this.parser.parseStringPromise(content);
697
+ const root = parsed?.AxSecurityRole;
698
+ if (!root)
699
+ return { success: false, error: 'Not an AxSecurityRole file' };
700
+ const name = root.Name || '';
701
+ const label = root.Label || undefined;
702
+ const description = root.Description || undefined;
703
+ const rawDuties = root.Duties?.AxSecurityRoleDutyPermission ??
704
+ root.Duties?.AxSecurityDutyPermission;
705
+ const dutyArray = rawDuties ? (Array.isArray(rawDuties) ? rawDuties : [rawDuties]) : [];
706
+ const duties = dutyArray
707
+ .map((d) => (typeof d === 'string' ? d : d.Name || ''))
708
+ .filter(Boolean);
709
+ return { success: true, data: { name, label, description, sourcePath: filePath, duties } };
710
+ }
711
+ catch (error) {
712
+ return { success: false, error: error instanceof Error ? error.message : 'Unknown error' };
713
+ }
714
+ }
715
+ async parseMenuItemFile(filePath, itemType) {
716
+ try {
717
+ const content = await fs.readFile(filePath, 'utf-8');
718
+ const parsed = await this.parser.parseStringPromise(content);
719
+ const rootKey = itemType === 'display'
720
+ ? 'AxMenuItemDisplay'
721
+ : itemType === 'action'
722
+ ? 'AxMenuItemAction'
723
+ : 'AxMenuItemOutput';
724
+ const root = parsed?.[rootKey];
725
+ if (!root)
726
+ return { success: false, error: `Not an ${rootKey} file` };
727
+ return {
728
+ success: true,
729
+ data: {
730
+ name: root.Name || '',
731
+ label: root.Label || undefined,
732
+ targetObject: root.Object || undefined,
733
+ targetType: root.ObjectType || undefined,
734
+ securityPrivilege: root.SecurityPrivilege || undefined,
735
+ sourcePath: filePath,
736
+ },
737
+ };
738
+ }
739
+ catch (error) {
740
+ return { success: false, error: error instanceof Error ? error.message : 'Unknown error' };
741
+ }
742
+ }
743
+ async parseExtensionFile(filePath, extensionType) {
744
+ try {
745
+ const content = await fs.readFile(filePath, 'utf-8');
746
+ const parsed = await this.parser.parseStringPromise(content);
747
+ // Determine XML root element by extensionType
748
+ const rootKeyMap = {
749
+ 'table-extension': 'AxTableExtension',
750
+ // Not AxClassExtension: a class extension is an AxClass file carrying
751
+ // [ExtensionOf(...)], so its root element is AxClass like any other class (#693).
752
+ 'class-extension': 'AxClass',
753
+ 'form-extension': 'AxFormExtension',
754
+ 'enum-extension': 'AxEnumExtension',
755
+ 'edt-extension': 'AxEdtExtension',
756
+ 'data-entity-extension': 'AxDataEntityViewExtension',
757
+ 'view-extension': 'AxViewExtension',
758
+ 'query-extension': 'AxQuerySimpleExtension',
759
+ 'map-extension': 'AxMapExtension',
760
+ 'menu-extension': 'AxMenuExtension',
761
+ 'security-duty-extension': 'AxSecurityDutyExtension',
762
+ 'security-role-extension': 'AxSecurityRoleExtension',
763
+ 'menu-item-display-extension': 'AxMenuItemDisplayExtension',
764
+ 'menu-item-action-extension': 'AxMenuItemActionExtension',
765
+ 'menu-item-output-extension': 'AxMenuItemOutputExtension',
766
+ };
767
+ const rootKey = rootKeyMap[extensionType] || Object.keys(parsed || {})[0] || '';
768
+ const root = parsed?.[rootKey];
769
+ if (!root)
770
+ return { success: false, error: `Cannot parse extension type: ${extensionType}` };
771
+ const name = root.Name || '';
772
+ // No Ax*Extension XML carries <Extends>/<BaseObject> — these reads are a
773
+ // fallback for synthetic XML only. Real files identify the base object
774
+ // either by the [ExtensionOf(<kind>Str(Base))] attribute on the
775
+ // declaration (class extensions) or by the "Base.<Suffix>" name
776
+ // convention (every other kind), so both are read here. Leaving this
777
+ // empty silently kills every extension_metadata lookup keyed on
778
+ // base_object_name — resolve_references' extension-method and
779
+ // table-extension-field checks, and table_extension_info.
780
+ let baseObjectName = root.Extends || root.BaseObject || '';
781
+ if (!baseObjectName) {
782
+ // Any intrinsic, any case, one or two arguments — see
783
+ // parseExtensionOfAttribute for the shapes this has to survive.
784
+ baseObjectName =
785
+ parseExtensionOfAttribute(this.cdataText(root.SourceCode?.Declaration))?.baseObjectName || '';
786
+ }
787
+ if (!baseObjectName && name.includes('.')) {
788
+ // "SalesTable.FooExtension" → "SalesTable"; the suffix may itself
789
+ // contain dots ("OMLegalEntity.Extension.Retail"), so split on the first.
790
+ baseObjectName = name.slice(0, name.indexOf('.'));
791
+ }
792
+ // Extract added fields. Each kind stores them under its own typed tag.
793
+ const rawFields = root.Fields?.AxTableField ??
794
+ root.Fields?.AxEdtField ??
795
+ root.Fields?.AxViewField ??
796
+ root.Fields?.AxMapField ??
797
+ root.Fields?.AxQueryExtensionQueryDataSourceField ??
798
+ [];
799
+ const fieldArr = Array.isArray(rawFields) ? rawFields : rawFields ? [rawFields] : [];
800
+ // AxQuerySimpleExtension nests the name one level down, under
801
+ // <QueryDataSourceField>; every other kind carries <Name> on the field itself.
802
+ const addedFields = fieldArr
803
+ .map((f) => f.Name || f.QueryDataSourceField?.Name || '')
804
+ .filter(Boolean);
805
+ // Extract added indexes
806
+ const rawIndexes = root.Indexes?.AxTableIndex ?? [];
807
+ const indexArr = Array.isArray(rawIndexes) ? rawIndexes : rawIndexes ? [rawIndexes] : [];
808
+ const addedIndexes = indexArr.map((i) => i.Name || '').filter(Boolean);
809
+ // Extract methods + detect CoC and event subscriptions
810
+ const rawMethods = root.SourceCode?.Methods?.Method ?? root.Methods?.Method ?? [];
811
+ const methodArr = Array.isArray(rawMethods) ? rawMethods : rawMethods ? [rawMethods] : [];
812
+ const { addedMethods, cocMethods, eventSubscriptions } = extensionMembersFrom(methodArr.map((m) => ({
813
+ name: m.Name || '',
814
+ source: typeof m.Source === 'string' ? m.Source : (m._ || ''),
815
+ })));
816
+ return {
817
+ success: true,
818
+ data: {
819
+ name,
820
+ baseObjectName,
821
+ sourcePath: filePath,
822
+ addedFields,
823
+ addedMethods,
824
+ addedIndexes,
825
+ cocMethods,
826
+ eventSubscriptions,
827
+ },
828
+ };
829
+ }
830
+ catch (error) {
831
+ return { success: false, error: error instanceof Error ? error.message : 'Unknown error' };
832
+ }
833
+ }
834
+ /**
835
+ * Parse an AxService file: backing class, external name, namespace, and the
836
+ * exposed service operations (each maps to a public method on the class).
837
+ */
838
+ async parseServiceFile(filePath) {
839
+ try {
840
+ const content = await fs.readFile(filePath, 'utf-8');
841
+ const parsed = await this.parser.parseStringPromise(content);
842
+ const root = parsed?.AxService;
843
+ if (!root)
844
+ return { success: false, error: 'Not an AxService file' };
845
+ const rawOps = root.ServiceOperations?.AxServiceOperation;
846
+ const opArr = Array.isArray(rawOps) ? rawOps : rawOps ? [rawOps] : [];
847
+ const operations = opArr
848
+ .map((o) => ({
849
+ name: o.Name || '',
850
+ method: o.Method || o.Name || '',
851
+ idempotent: String(o.EnableIdempotence || '').toLowerCase() === 'yes',
852
+ }))
853
+ .filter((o) => o.name);
854
+ return {
855
+ success: true,
856
+ data: {
857
+ name: root.Name || '',
858
+ serviceClass: root.Class || undefined,
859
+ externalName: root.ExternalName || undefined,
860
+ namespace: root.Namespace || undefined,
861
+ sourcePath: filePath,
862
+ operations,
863
+ },
864
+ };
865
+ }
866
+ catch (error) {
867
+ return { success: false, error: error instanceof Error ? error.message : 'Unknown error' };
868
+ }
869
+ }
870
+ /**
871
+ * Parse an AxMap file: the X++ map class (methods) and its table mappings
872
+ * (each mapping binds the map to a table via field connections).
873
+ */
874
+ async parseMapFile(filePath) {
875
+ try {
876
+ const content = await fs.readFile(filePath, 'utf-8');
877
+ const parsed = await this.parser.parseStringPromise(content);
878
+ const root = parsed?.AxMap;
879
+ if (!root)
880
+ return { success: false, error: 'Not an AxMap file' };
881
+ const decl = root.SourceCode?.Declaration || '';
882
+ const extendsMatch = decl.match(/\bextends\s+(\w+)/i);
883
+ const rawMethods = root.SourceCode?.Methods?.Method;
884
+ const methodArr = Array.isArray(rawMethods) ? rawMethods : rawMethods ? [rawMethods] : [];
885
+ const methods = methodArr.map((m) => m.Name || '').filter(Boolean);
886
+ const rawMappings = root.Mappings?.AxTableMapping;
887
+ const mapArr = Array.isArray(rawMappings) ? rawMappings : rawMappings ? [rawMappings] : [];
888
+ const mappings = mapArr.map((m) => {
889
+ const rawConn = m.Connections?.AxTableMappingConnection;
890
+ const connArr = Array.isArray(rawConn) ? rawConn : rawConn ? [rawConn] : [];
891
+ return { table: m.MappingTable || '', fieldConnections: connArr.length };
892
+ }).filter((m) => m.table);
893
+ return {
894
+ success: true,
895
+ data: { name: root.Name || '', extends: extendsMatch?.[1], sourcePath: filePath, methods, mappings },
896
+ };
897
+ }
898
+ catch (error) {
899
+ return { success: false, error: error instanceof Error ? error.message : 'Unknown error' };
900
+ }
901
+ }
902
+ /** Parse an AxConfigurationKey file: label + parent key (feature gating tree). */
903
+ async parseConfigurationKeyFile(filePath) {
904
+ try {
905
+ const content = await fs.readFile(filePath, 'utf-8');
906
+ const parsed = await this.parser.parseStringPromise(content);
907
+ const root = parsed?.AxConfigurationKey;
908
+ if (!root)
909
+ return { success: false, error: 'Not an AxConfigurationKey file' };
910
+ return {
911
+ success: true,
912
+ data: { name: root.Name || '', label: root.Label || undefined, parentKey: root.ParentKey || undefined, sourcePath: filePath },
913
+ };
914
+ }
915
+ catch (error) {
916
+ return { success: false, error: error instanceof Error ? error.message : 'Unknown error' };
917
+ }
918
+ }
919
+ /** Parse an AxLicenseCode file: group, package, type (license-based feature gating). */
920
+ async parseLicenseCodeFile(filePath) {
921
+ try {
922
+ const content = await fs.readFile(filePath, 'utf-8');
923
+ const parsed = await this.parser.parseStringPromise(content);
924
+ const root = parsed?.AxLicenseCode;
925
+ if (!root)
926
+ return { success: false, error: 'Not an AxLicenseCode file' };
927
+ return {
928
+ success: true,
929
+ data: {
930
+ name: root.Name || '',
931
+ label: root.Label || undefined,
932
+ group: root.Group || undefined,
933
+ licensePackage: root.Package || undefined,
934
+ type: root.Type || undefined,
935
+ sourcePath: filePath,
936
+ },
937
+ };
938
+ }
939
+ catch (error) {
940
+ return { success: false, error: error instanceof Error ? error.message : 'Unknown error' };
941
+ }
942
+ }
943
+ /** Parse an AxSecurityPolicy file: row-level (OLS) policy on a primary table. */
944
+ async parseSecurityPolicyFile(filePath) {
945
+ try {
946
+ const content = await fs.readFile(filePath, 'utf-8');
947
+ const parsed = await this.parser.parseStringPromise(content);
948
+ const root = parsed?.AxSecurityPolicy;
949
+ if (!root)
950
+ return { success: false, error: 'Not an AxSecurityPolicy file' };
951
+ return {
952
+ success: true,
953
+ data: {
954
+ name: root.Name || '',
955
+ label: root.Label || undefined,
956
+ primaryTable: root.PrimaryTable || undefined,
957
+ query: root.Query || undefined,
958
+ operation: root.Operation || undefined,
959
+ constrainedTable: String(root.ConstrainedTable || '').toLowerCase() === 'yes',
960
+ sourcePath: filePath,
961
+ },
962
+ };
963
+ }
964
+ catch (error) {
965
+ return { success: false, error: error instanceof Error ? error.message : 'Unknown error' };
966
+ }
967
+ }
968
+ /** Parse an AxMacroDictionary file: the #define entries of a shared macro library. */
969
+ async parseMacroFile(filePath) {
970
+ try {
971
+ const content = await fs.readFile(filePath, 'utf-8');
972
+ const parsed = await this.parser.parseStringPromise(content);
973
+ const root = parsed?.AxMacroDictionary;
974
+ if (!root)
975
+ return { success: false, error: 'Not an AxMacroDictionary file' };
976
+ const source = typeof root.Source === 'string' ? root.Source : (root.Source?._ || '');
977
+ const defines = [];
978
+ // #define.Name(value) and #define.Name (no value)
979
+ const re = /#define\.(\w+)\s*(?:\(([^)]*)\))?/g;
980
+ let m;
981
+ while ((m = re.exec(source)) !== null) {
982
+ defines.push({ name: m[1], value: (m[2] ?? '').trim() });
983
+ }
984
+ return { success: true, data: { name: root.Name || '', sourcePath: filePath, defines } };
985
+ }
986
+ catch (error) {
987
+ return { success: false, error: error instanceof Error ? error.message : 'Unknown error' };
988
+ }
989
+ }
990
+ /**
991
+ * Parse an AxServiceGroup file: member services and deployment flag.
992
+ */
993
+ async parseServiceGroupFile(filePath) {
994
+ try {
995
+ const content = await fs.readFile(filePath, 'utf-8');
996
+ const parsed = await this.parser.parseStringPromise(content);
997
+ const root = parsed?.AxServiceGroup;
998
+ if (!root)
999
+ return { success: false, error: 'Not an AxServiceGroup file' };
1000
+ const rawSvc = root.Services?.AxServiceGroupService;
1001
+ const svcArr = Array.isArray(rawSvc) ? rawSvc : rawSvc ? [rawSvc] : [];
1002
+ const services = svcArr
1003
+ .map((s) => s.Service || s.Name || '')
1004
+ .filter(Boolean);
1005
+ return {
1006
+ success: true,
1007
+ data: {
1008
+ name: root.Name || '',
1009
+ autoDeploy: String(root.AutoDeploy || '').toLowerCase() === 'yes',
1010
+ description: root.Description || undefined,
1011
+ sourcePath: filePath,
1012
+ services,
1013
+ },
1014
+ };
1015
+ }
1016
+ catch (error) {
1017
+ return { success: false, error: error instanceof Error ? error.message : 'Unknown error' };
1018
+ }
1019
+ }
1020
+ }
1021
+ //# sourceMappingURL=xmlParser.js.map