@ai-dev-tools/csharp-copilot-core 0.0.19

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 (322) hide show
  1. package/ai-dev-tools-csharp-copilot-core-0.0.19.tgz +0 -0
  2. package/azure-pipelines.yml +52 -0
  3. package/out/analyze/cecil.d.ts +1 -0
  4. package/out/analyze/cecil.js +42 -0
  5. package/out/analyze/cecil.js.map +1 -0
  6. package/out/analyze/checkCodeSyntax.d.ts +7 -0
  7. package/out/analyze/checkCodeSyntax.js +67 -0
  8. package/out/analyze/checkCodeSyntax.js.map +1 -0
  9. package/out/analyze/generateCodeDependency.d.ts +6 -0
  10. package/out/analyze/generateCodeDependency.js +122 -0
  11. package/out/analyze/generateCodeDependency.js.map +1 -0
  12. package/out/analyze/installAnalyzerTool.d.ts +1 -0
  13. package/out/analyze/installAnalyzerTool.js +82 -0
  14. package/out/analyze/installAnalyzerTool.js.map +1 -0
  15. package/out/atmpCache/deps/EplantRequestCategoryCondition_Conditions_Eplant_Workflows_SharedSegmentsPlugins_SharedSegments_SharedSegments_CSServiceFundamental_code_D.deps +281 -0
  16. package/out/atmpCache/deps/IdentitySelectAnalyzer_ToListinatorAnalyzers_src_AIUnitTestExample_code_d.deps +1 -0
  17. package/out/atmpCache/deps/SqmidHelperTests_Utils_HttpRequestParser_Overview_Workflows_SharedSegmentsTests_SharedSegments_SharedSegments_CSServiceFundamental_code_D.deps +1 -0
  18. package/out/atmpCache/deps/SqmidHelper_Utils_HttpRequestParser_Overview_Workflows_SharedSegmentsPlugins_SharedSegments_SharedSegments_CSServiceFundamental_code_D.deps +1 -0
  19. package/out/atmpCache/deps/ToListCountAnalyzerTests_ToListinatorTests_test_AIUnitTestExample_code_d.deps +4037 -0
  20. package/out/atmpCache/deps/ToListCountAnalyzer_ToListinatorAnalyzers_src_AIUnitTestExample_code_d.deps +1 -0
  21. package/out/atmpCache/deps/ToListCountCodeFixProvider_ToListinatorCodeFixes_src_AIUnitTestExample_code_d.deps +1 -0
  22. package/out/atmpCache/deps/ToListForEachAnalyzer_ToListinatorAnalyzers_src_AIUnitTestExample_code_d.deps +1 -0
  23. package/out/atmpCache/dllref/ToListinatorTests_ToListinatorTests_test_AIUnitTestExample_code_d.dllref +202 -0
  24. package/out/batch/generateCodeTests.d.ts +6 -0
  25. package/out/batch/generateCodeTests.js +147 -0
  26. package/out/batch/generateCodeTests.js.map +1 -0
  27. package/out/batch/getFolderCodeFile.d.ts +1 -0
  28. package/out/batch/getFolderCodeFile.js +19 -0
  29. package/out/batch/getFolderCodeFile.js.map +1 -0
  30. package/out/batch/getProjectCodeFile.d.ts +4 -0
  31. package/out/batch/getProjectCodeFile.js +87 -0
  32. package/out/batch/getProjectCodeFile.js.map +1 -0
  33. package/out/batch/getSolutionCodeFile.d.ts +8 -0
  34. package/out/batch/getSolutionCodeFile.js +70 -0
  35. package/out/batch/getSolutionCodeFile.js.map +1 -0
  36. package/out/benchmark/formatToMarkdown.d.ts +2 -0
  37. package/out/benchmark/formatToMarkdown.js +101 -0
  38. package/out/benchmark/formatToMarkdown.js.map +1 -0
  39. package/out/benchmark/generateBenchmarkReport.d.ts +1 -0
  40. package/out/benchmark/generateBenchmarkReport.js +82 -0
  41. package/out/benchmark/generateBenchmarkReport.js.map +1 -0
  42. package/out/codeCoverage/codeCoverage.d.ts +6 -0
  43. package/out/codeCoverage/codeCoverage.js +35 -0
  44. package/out/codeCoverage/codeCoverage.js.map +1 -0
  45. package/out/codeCoverage/codeCoverageReport.d.ts +6 -0
  46. package/out/codeCoverage/codeCoverageReport.js +72 -0
  47. package/out/codeCoverage/codeCoverageReport.js.map +1 -0
  48. package/out/codeCoverage/extractCodeCoverageInfo.d.ts +2 -0
  49. package/out/codeCoverage/extractCodeCoverageInfo.js +80 -0
  50. package/out/codeCoverage/extractCodeCoverageInfo.js.map +1 -0
  51. package/out/codeCoverage/generateCodeCoverageReport.d.ts +1 -0
  52. package/out/codeCoverage/generateCodeCoverageReport.js +27 -0
  53. package/out/codeCoverage/generateCodeCoverageReport.js.map +1 -0
  54. package/out/codeCoverage/getCodeCoverageSetting.d.ts +1 -0
  55. package/out/codeCoverage/getCodeCoverageSetting.js +58 -0
  56. package/out/codeCoverage/getCodeCoverageSetting.js.map +1 -0
  57. package/out/codeCoverage/reportTool.d.ts +2 -0
  58. package/out/codeCoverage/reportTool.js +22 -0
  59. package/out/codeCoverage/reportTool.js.map +1 -0
  60. package/out/codeCoverage/simplifyCoverageXml.d.ts +2 -0
  61. package/out/codeCoverage/simplifyCoverageXml.js +116 -0
  62. package/out/codeCoverage/simplifyCoverageXml.js.map +1 -0
  63. package/out/codebk/250804prompt/buildAfGuidelines.liquid +15 -0
  64. package/out/codebk/250804prompt/general/generalBuildAutofixGuidelines.liquid +13 -0
  65. package/out/codebk/250804prompt/general/generalUtGuidelines.liquid +18 -0
  66. package/out/codebk/250804prompt/generateUtAutoFix.liquid +19 -0
  67. package/out/codebk/250804prompt/generateUtGuidelines.liquid +13 -0
  68. package/out/codebk/250804prompt/generateUtSystem.liquid +5 -0
  69. package/out/codebk/250804prompt/generateUtUserInput.liquid +27 -0
  70. package/out/codebk/250804prompt/testAfGuidelines.liquid +6 -0
  71. package/out/codebk/250804prompt/xap/xapBuildAutofixGuidelines.liquid +13 -0
  72. package/out/codebk/250804prompt/xap/xapCodeCodeDependency.liquid +0 -0
  73. package/out/codebk/250804prompt/xap/xapCodeSample.liquid +38 -0
  74. package/out/codebk/250804prompt/xap/xapUtGuideline-240804.liquid +36 -0
  75. package/out/codebk/250804prompt/xap/xapUtGuideline.liquid +36 -0
  76. package/out/codebk/childProcessManager.d.ts +1 -0
  77. package/out/codebk/childProcessManager.js +50 -0
  78. package/out/codebk/childProcessManager.js.map +1 -0
  79. package/out/codebk/msBuidSpawn.d.ts +1 -0
  80. package/out/codebk/msBuidSpawn.js +58 -0
  81. package/out/codebk/msBuidSpawn.js.map +1 -0
  82. package/out/codebk/msBuild.d.ts +1 -0
  83. package/out/codebk/msBuild.js +123 -0
  84. package/out/codebk/msBuild.js.map +1 -0
  85. package/out/codebk/old/generateXapTestAutoFix.liquid +12 -0
  86. package/out/codebk/old/generateXapTestGuidelines-fm.liquid +68 -0
  87. package/out/codebk/old/generateXapTestGuidelines.liquid +28 -0
  88. package/out/codebk/old/xapGuideline-fm.liquid +149 -0
  89. package/out/codebk/old/xapGuideline.liquid +37 -0
  90. package/out/codebk/oldExec/checkCodeSyntax.d.ts +1 -0
  91. package/out/codebk/oldExec/checkCodeSyntax.js +81 -0
  92. package/out/codebk/oldExec/checkCodeSyntax.js.map +1 -0
  93. package/out/codebk/oldExec/codeCoverage.d.ts +1 -0
  94. package/out/codebk/oldExec/codeCoverage.js +54 -0
  95. package/out/codebk/oldExec/codeCoverage.js.map +1 -0
  96. package/out/codebk/oldExec/codeCoverageReport.d.ts +1 -0
  97. package/out/codebk/oldExec/codeCoverageReport.js +64 -0
  98. package/out/codebk/oldExec/codeCoverageReport.js.map +1 -0
  99. package/out/codebk/oldExec/containsMethods.d.ts +1 -0
  100. package/out/codebk/oldExec/containsMethods.js +74 -0
  101. package/out/codebk/oldExec/containsMethods.js.map +1 -0
  102. package/out/codebk/oldExec/generateCodeDependency.d.ts +1 -0
  103. package/out/codebk/oldExec/generateCodeDependency.js +95 -0
  104. package/out/codebk/oldExec/generateCodeDependency.js.map +1 -0
  105. package/out/codebk/oldExec/msBuild.d.ts +1 -0
  106. package/out/codebk/oldExec/msBuild.js +53 -0
  107. package/out/codebk/oldExec/msBuild.js.map +1 -0
  108. package/out/codebk/oldExec/vsTest.d.ts +1 -0
  109. package/out/codebk/oldExec/vsTest.js +71 -0
  110. package/out/codebk/oldExec/vsTest.js.map +1 -0
  111. package/out/codebk/prompts/general/generalUnitTestGuidelines-20250702.liquid +56 -0
  112. package/out/codebk/prompts/generateXapTestGuidelines-20250704.liquid +21 -0
  113. package/out/codebk/prompts/generateXapTestGuidelines-o.liquid +29 -0
  114. package/out/codebk/prompts/xap/xapGuideline-o.liquid +45 -0
  115. package/out/codebk/testbuildkill.d.ts +1 -0
  116. package/out/codebk/testbuildkill.js +37 -0
  117. package/out/codebk/testbuildkill.js.map +1 -0
  118. package/out/command/index.d.ts +2 -0
  119. package/out/command/index.js +85 -0
  120. package/out/command/index.js.map +1 -0
  121. package/out/command/utGenWrapper.d.ts +3 -0
  122. package/out/command/utGenWrapper.js +40 -0
  123. package/out/command/utGenWrapper.js.map +1 -0
  124. package/out/exit/childProcessManager.d.ts +2 -0
  125. package/out/exit/childProcessManager.js +43 -0
  126. package/out/exit/childProcessManager.js.map +1 -0
  127. package/out/exit/setupProcessSignalHandler.d.ts +1 -0
  128. package/out/exit/setupProcessSignalHandler.js +18 -0
  129. package/out/exit/setupProcessSignalHandler.js.map +1 -0
  130. package/out/gen/autoFix.d.ts +4 -0
  131. package/out/gen/autoFix.js +125 -0
  132. package/out/gen/autoFix.js.map +1 -0
  133. package/out/gen/csharpUtGen.d.ts +2 -0
  134. package/out/gen/csharpUtGen.js +151 -0
  135. package/out/gen/csharpUtGen.js.map +1 -0
  136. package/out/gen/ensureValidLLMResponse.d.ts +1 -0
  137. package/out/gen/ensureValidLLMResponse.js +19 -0
  138. package/out/gen/ensureValidLLMResponse.js.map +1 -0
  139. package/out/gen/postGen/extractCodeFromResponse.d.ts +1 -0
  140. package/out/gen/postGen/extractCodeFromResponse.js +37 -0
  141. package/out/gen/postGen/extractCodeFromResponse.js.map +1 -0
  142. package/out/gen/postGen/postGenProcess.d.ts +1 -0
  143. package/out/gen/postGen/postGenProcess.js +36 -0
  144. package/out/gen/postGen/postGenProcess.js.map +1 -0
  145. package/out/gen/postGen/removeComments.d.ts +1 -0
  146. package/out/gen/postGen/removeComments.js +92 -0
  147. package/out/gen/postGen/removeComments.js.map +1 -0
  148. package/out/gen/postGen/removeSingleLines.d.ts +1 -0
  149. package/out/gen/postGen/removeSingleLines.js +28 -0
  150. package/out/gen/postGen/removeSingleLines.js.map +1 -0
  151. package/out/gen/postGen/repairRequiredNameSpaces.d.ts +1 -0
  152. package/out/gen/postGen/repairRequiredNameSpaces.js +116 -0
  153. package/out/gen/postGen/repairRequiredNameSpaces.js.map +1 -0
  154. package/out/gen/postGen/validateTestCode.d.ts +1 -0
  155. package/out/gen/postGen/validateTestCode.js +14 -0
  156. package/out/gen/postGen/validateTestCode.js.map +1 -0
  157. package/out/gen/preGen/excludeFileName.d.ts +1 -0
  158. package/out/gen/preGen/excludeFileName.js +49 -0
  159. package/out/gen/preGen/excludeFileName.js.map +1 -0
  160. package/out/gen/preGen/excludeSpecificTag.d.ts +1 -0
  161. package/out/gen/preGen/excludeSpecificTag.js +18 -0
  162. package/out/gen/preGen/excludeSpecificTag.js.map +1 -0
  163. package/out/gen/preGen/preGenProcess.d.ts +1 -0
  164. package/out/gen/preGen/preGenProcess.js +22 -0
  165. package/out/gen/preGen/preGenProcess.js.map +1 -0
  166. package/out/gen/preGen/validateCode.d.ts +3 -0
  167. package/out/gen/preGen/validateCode.js +62 -0
  168. package/out/gen/preGen/validateCode.js.map +1 -0
  169. package/out/index.d.ts +2 -0
  170. package/out/index.js +8 -0
  171. package/out/index.js.map +1 -0
  172. package/out/llm/model/Gpt4o.d.ts +1 -0
  173. package/out/llm/model/Gpt4o.js +91 -0
  174. package/out/llm/model/Gpt4o.js.map +1 -0
  175. package/out/llm/model/claude4.d.ts +1 -0
  176. package/out/llm/model/claude4.js +3 -0
  177. package/out/llm/model/claude4.js.map +1 -0
  178. package/out/llm/preparePrompt.d.ts +2 -0
  179. package/out/llm/preparePrompt.js +110 -0
  180. package/out/llm/preparePrompt.js.map +1 -0
  181. package/out/llm/prompt/buildAfGuidelines.liquid +15 -0
  182. package/out/llm/prompt/general/generalBuildAutofixGuidelines.liquid +13 -0
  183. package/out/llm/prompt/general/generalUtGuidelines.liquid +16 -0
  184. package/out/llm/prompt/generateUtAutoFix.liquid +19 -0
  185. package/out/llm/prompt/generateUtDependency.liquid +3 -0
  186. package/out/llm/prompt/generateUtGuidelines.liquid +29 -0
  187. package/out/llm/prompt/generateUtSystem.liquid +5 -0
  188. package/out/llm/prompt/generateUtTemplate.liquid +30 -0
  189. package/out/llm/prompt/generateUtUserInput.liquid +4 -0
  190. package/out/llm/prompt/testAfGuidelines.liquid +6 -0
  191. package/out/llm/prompt/userCustomPrompt.liquid +0 -0
  192. package/out/llm/prompt/xap/xapBuildAutofixGuidelines.liquid +13 -0
  193. package/out/llm/prompt/xap/xapCodeCodeDependency.liquid +0 -0
  194. package/out/llm/prompt/xap/xapCodeSample.liquid +38 -0
  195. package/out/llm/prompt/xap/xapUtGuideline-240804.liquid +36 -0
  196. package/out/llm/prompt/xap/xapUtGuideline.liquid +37 -0
  197. package/out/llm/sendRequestToLLM.d.ts +4 -0
  198. package/out/llm/sendRequestToLLM.js +12 -0
  199. package/out/llm/sendRequestToLLM.js.map +1 -0
  200. package/out/llm/sendRequestToSelfHostLLM.d.ts +4 -0
  201. package/out/llm/sendRequestToSelfHostLLM.js +41 -0
  202. package/out/llm/sendRequestToSelfHostLLM.js.map +1 -0
  203. package/out/metrics/appInsightTelemetry.d.ts +6 -0
  204. package/out/metrics/appInsightTelemetry.js +77 -0
  205. package/out/metrics/appInsightTelemetry.js.map +1 -0
  206. package/out/metrics/machineId.d.ts +11 -0
  207. package/out/metrics/machineId.js +85 -0
  208. package/out/metrics/machineId.js.map +1 -0
  209. package/out/setup/setup.d.ts +1 -0
  210. package/out/setup/setup.js +10 -0
  211. package/out/setup/setup.js.map +1 -0
  212. package/out/setup/setupConsole.d.ts +1 -0
  213. package/out/setup/setupConsole.js +23 -0
  214. package/out/setup/setupConsole.js.map +1 -0
  215. package/out/setup/setupLLMRequest.d.ts +2 -0
  216. package/out/setup/setupLLMRequest.js +10 -0
  217. package/out/setup/setupLLMRequest.js.map +1 -0
  218. package/out/tools/devenvcom.cmd +13 -0
  219. package/out/tools/devenvexe.cmd +13 -0
  220. package/out/tools/msbuildexe.cmd +13 -0
  221. package/out/tools/vstestexe.cmd +13 -0
  222. package/out/types/benchmark.d.ts +11 -0
  223. package/out/types/benchmark.js +3 -0
  224. package/out/types/benchmark.js.map +1 -0
  225. package/out/types/buildResult.d.ts +8 -0
  226. package/out/types/buildResult.js +3 -0
  227. package/out/types/buildResult.js.map +1 -0
  228. package/out/types/constants.d.ts +3 -0
  229. package/out/types/constants.js +7 -0
  230. package/out/types/constants.js.map +1 -0
  231. package/out/types/genResult.d.ts +10 -0
  232. package/out/types/genResult.js +3 -0
  233. package/out/types/genResult.js.map +1 -0
  234. package/out/types/testResult.d.ts +12 -0
  235. package/out/types/testResult.js +3 -0
  236. package/out/types/testResult.js.map +1 -0
  237. package/out/types/verifyResult.d.ts +8 -0
  238. package/out/types/verifyResult.js +3 -0
  239. package/out/types/verifyResult.js.map +1 -0
  240. package/out/utils/checkTestProject.d.ts +2 -0
  241. package/out/utils/checkTestProject.js +79 -0
  242. package/out/utils/checkTestProject.js.map +1 -0
  243. package/out/utils/checkXapCode.d.ts +2 -0
  244. package/out/utils/checkXapCode.js +59 -0
  245. package/out/utils/checkXapCode.js.map +1 -0
  246. package/out/utils/delay.d.ts +1 -0
  247. package/out/utils/delay.js +7 -0
  248. package/out/utils/delay.js.map +1 -0
  249. package/out/utils/detectTestFramework.d.ts +1 -0
  250. package/out/utils/detectTestFramework.js +32 -0
  251. package/out/utils/detectTestFramework.js.map +1 -0
  252. package/out/utils/fileUtils.d.ts +2 -0
  253. package/out/utils/fileUtils.js +42 -0
  254. package/out/utils/fileUtils.js.map +1 -0
  255. package/out/utils/generateCodeSha256.d.ts +1 -0
  256. package/out/utils/generateCodeSha256.js +46 -0
  257. package/out/utils/generateCodeSha256.js.map +1 -0
  258. package/out/utils/getCodeStructurePath.d.ts +5 -0
  259. package/out/utils/getCodeStructurePath.js +155 -0
  260. package/out/utils/getCodeStructurePath.js.map +1 -0
  261. package/out/utils/getOrCreateDir.d.ts +2 -0
  262. package/out/utils/getOrCreateDir.js +63 -0
  263. package/out/utils/getOrCreateDir.js.map +1 -0
  264. package/out/utils/getTestCodeInfo.d.ts +2 -0
  265. package/out/utils/getTestCodeInfo.js +121 -0
  266. package/out/utils/getTestCodeInfo.js.map +1 -0
  267. package/out/utils/getTestFile.d.ts +13 -0
  268. package/out/utils/getTestFile.js +295 -0
  269. package/out/utils/getTestFile.js.map +1 -0
  270. package/out/utils/parseBuildResult.d.ts +3 -0
  271. package/out/utils/parseBuildResult.js +44 -0
  272. package/out/utils/parseBuildResult.js.map +1 -0
  273. package/out/utils/parseSyntaxCheckResult.d.ts +2 -0
  274. package/out/utils/parseSyntaxCheckResult.js +38 -0
  275. package/out/utils/parseSyntaxCheckResult.js.map +1 -0
  276. package/out/utils/parseVstestResult.d.ts +3 -0
  277. package/out/utils/parseVstestResult.js +61 -0
  278. package/out/utils/parseVstestResult.js.map +1 -0
  279. package/out/utils/removeFailedTestMethods.d.ts +3 -0
  280. package/out/utils/removeFailedTestMethods.js +207 -0
  281. package/out/utils/removeFailedTestMethods.js.map +1 -0
  282. package/out/utils/runCommand.d.ts +1 -0
  283. package/out/utils/runCommand.js +14 -0
  284. package/out/utils/runCommand.js.map +1 -0
  285. package/out/utils/spawnExec.d.ts +1 -0
  286. package/out/utils/spawnExec.js +80 -0
  287. package/out/utils/spawnExec.js.map +1 -0
  288. package/out/utils/verifyBuildErrorCausedFile.d.ts +1 -0
  289. package/out/utils/verifyBuildErrorCausedFile.js +60 -0
  290. package/out/utils/verifyBuildErrorCausedFile.js.map +1 -0
  291. package/out/utils/verifyTestCode.d.ts +2 -0
  292. package/out/utils/verifyTestCode.js +25 -0
  293. package/out/utils/verifyTestCode.js.map +1 -0
  294. package/out/utils/writeGenCode.d.ts +1 -0
  295. package/out/utils/writeGenCode.js +50 -0
  296. package/out/utils/writeGenCode.js.map +1 -0
  297. package/out/vs/msBuild.d.ts +13 -0
  298. package/out/vs/msBuild.js +81 -0
  299. package/out/vs/msBuild.js.map +1 -0
  300. package/out/vs/vsTest.d.ts +15 -0
  301. package/out/vs/vsTest.js +107 -0
  302. package/out/vs/vsTest.js.map +1 -0
  303. package/out/vs/vsTools.d.ts +7 -0
  304. package/out/vs/vsTools.js +177 -0
  305. package/out/vs/vsTools.js.map +1 -0
  306. package/out/vsPlugin/getVsPluginVerifyResult.d.ts +2 -0
  307. package/out/vsPlugin/getVsPluginVerifyResult.js +41 -0
  308. package/out/vsPlugin/getVsPluginVerifyResult.js.map +1 -0
  309. package/out/vsPlugin/interactionConstants.d.ts +2 -0
  310. package/out/vsPlugin/interactionConstants.js +10 -0
  311. package/out/vsPlugin/interactionConstants.js.map +1 -0
  312. package/out/vsPlugin/sendStdToVsPlugin.d.ts +1 -0
  313. package/out/vsPlugin/sendStdToVsPlugin.js +12 -0
  314. package/out/vsPlugin/sendStdToVsPlugin.js.map +1 -0
  315. package/out/vsPlugin/stdListener.d.ts +3 -0
  316. package/out/vsPlugin/stdListener.js +57 -0
  317. package/out/vsPlugin/stdListener.js.map +1 -0
  318. package/package.json +33 -0
  319. package/tools/devenvcom.cmd +13 -0
  320. package/tools/devenvexe.cmd +13 -0
  321. package/tools/msbuildexe.cmd +13 -0
  322. package/tools/vstestexe.cmd +13 -0
@@ -0,0 +1 @@
1
+ 0ceebca7c0ab517ff9b8dab8d42bc884b637a901a779e9ad38dbd165032b428d
@@ -0,0 +1 @@
1
+ d261fccdb937c1b944d210de34d7e3e159cd308d534481e8c9b8eb8b6b7aafcc
@@ -0,0 +1 @@
1
+ 999ee141184710f79ea1066dde2647480d6a9b0ea36cdc6e3f5cb414131b56e5
@@ -0,0 +1,202 @@
1
+ 481480f2b7115c89959863f12fd16b017252b0e510ca5e6e3a2183509a3e5527
2
+ d:\code\AIUnitTestExample\src\ToListinator.Analyzers\bin\Debug\netstandard2.0\ToListinator.Analyzers.dll
3
+ d:\code\AIUnitTestExample\src\ToListinator.CodeFixes\bin\Debug\netstandard2.0\ToListinator.CodeFixes.dll
4
+ C:\Users\jixiongge\.nuget\packages\castle.core\5.1.1\lib\net6.0\Castle.Core.dll
5
+ C:\Users\jixiongge\.nuget\packages\microsoft.codeanalysis.analyzer.testing\1.1.2\lib\netcoreapp3.1\Microsoft.CodeAnalysis.Analyzer.Testing.dll
6
+ C:\Users\jixiongge\.nuget\packages\microsoft.codeanalysis.codefix.testing\1.1.2\lib\netcoreapp3.1\Microsoft.CodeAnalysis.CodeFix.Testing.dll
7
+ C:\Users\jixiongge\.nuget\packages\microsoft.codeanalysis.csharp.analyzer.testing\1.1.2\lib\netcoreapp3.1\Microsoft.CodeAnalysis.CSharp.Analyzer.Testing.dll
8
+ C:\Users\jixiongge\.nuget\packages\microsoft.codeanalysis.csharp.codefix.testing\1.1.2\lib\netcoreapp3.1\Microsoft.CodeAnalysis.CSharp.CodeFix.Testing.dll
9
+ C:\Users\jixiongge\.nuget\packages\microsoft.codeanalysis.csharp\4.14.0\lib\net8.0\Microsoft.CodeAnalysis.CSharp.dll
10
+ C:\Users\jixiongge\.nuget\packages\microsoft.codeanalysis.csharp.workspaces\4.14.0\lib\net8.0\Microsoft.CodeAnalysis.CSharp.Workspaces.dll
11
+ C:\Users\jixiongge\.nuget\packages\microsoft.codeanalysis.common\4.14.0\lib\net8.0\Microsoft.CodeAnalysis.dll
12
+ C:\Users\jixiongge\.nuget\packages\microsoft.codeanalysis.workspaces.common\4.14.0\lib\net8.0\Microsoft.CodeAnalysis.Workspaces.dll
13
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\Microsoft.CSharp.dll
14
+ C:\Users\jixiongge\.nuget\packages\microsoft.testplatform.testhost\17.14.1\lib\net8.0\Microsoft.TestPlatform.CommunicationUtilities.dll
15
+ C:\Users\jixiongge\.nuget\packages\microsoft.testplatform.testhost\17.14.1\lib\net8.0\Microsoft.TestPlatform.CoreUtilities.dll
16
+ C:\Users\jixiongge\.nuget\packages\microsoft.testplatform.testhost\17.14.1\lib\net8.0\Microsoft.TestPlatform.CrossPlatEngine.dll
17
+ C:\Users\jixiongge\.nuget\packages\microsoft.testplatform.testhost\17.14.1\lib\net8.0\Microsoft.TestPlatform.PlatformAbstractions.dll
18
+ C:\Users\jixiongge\.nuget\packages\microsoft.testplatform.testhost\17.14.1\lib\net8.0\Microsoft.TestPlatform.Utilities.dll
19
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\Microsoft.VisualBasic.Core.dll
20
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\Microsoft.VisualBasic.dll
21
+ C:\Users\jixiongge\.nuget\packages\microsoft.codecoverage\17.14.1\lib\net8.0\Microsoft.VisualStudio.CodeCoverage.Shim.dll
22
+ C:\Users\jixiongge\.nuget\packages\microsoft.visualstudio.composition\16.1.8\lib\netcoreapp2.0\Microsoft.VisualStudio.Composition.dll
23
+ C:\Users\jixiongge\.nuget\packages\microsoft.visualstudio.composition.netfxattributes\16.1.8\lib\netstandard2.0\Microsoft.VisualStudio.Composition.NetFxAttributes.dll
24
+ C:\Users\jixiongge\.nuget\packages\microsoft.testplatform.testhost\17.14.1\lib\net8.0\Microsoft.VisualStudio.TestPlatform.Common.dll
25
+ C:\Users\jixiongge\.nuget\packages\microsoft.testplatform.testhost\17.14.1\lib\net8.0\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll
26
+ C:\Users\jixiongge\.nuget\packages\microsoft.visualstudio.validation\15.0.82\lib\netstandard1.0\Microsoft.VisualStudio.Validation.dll
27
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\Microsoft.Win32.Primitives.dll
28
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\Microsoft.Win32.Registry.dll
29
+ C:\Users\jixiongge\.nuget\packages\moq\4.20.72\lib\net6.0\Moq.dll
30
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\mscorlib.dll
31
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\netstandard.dll
32
+ C:\Users\jixiongge\.nuget\packages\newtonsoft.json\13.0.3\lib\net6.0\Newtonsoft.Json.dll
33
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.AppContext.dll
34
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Buffers.dll
35
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Collections.Concurrent.dll
36
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Collections.dll
37
+ C:\Users\jixiongge\.nuget\packages\system.collections.immutable\9.0.0\lib\net8.0\System.Collections.Immutable.dll
38
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Collections.NonGeneric.dll
39
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Collections.Specialized.dll
40
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.ComponentModel.Annotations.dll
41
+ C:\Users\jixiongge\.nuget\packages\system.componentmodel.composition\4.5.0\ref\netstandard2.0\System.ComponentModel.Composition.dll
42
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.ComponentModel.DataAnnotations.dll
43
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.ComponentModel.dll
44
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.ComponentModel.EventBasedAsync.dll
45
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.ComponentModel.Primitives.dll
46
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.ComponentModel.TypeConverter.dll
47
+ C:\Users\jixiongge\.nuget\packages\system.composition.attributedmodel\9.0.0\lib\net8.0\System.Composition.AttributedModel.dll
48
+ C:\Users\jixiongge\.nuget\packages\system.composition.convention\9.0.0\lib\net8.0\System.Composition.Convention.dll
49
+ C:\Users\jixiongge\.nuget\packages\system.composition.hosting\9.0.0\lib\net8.0\System.Composition.Hosting.dll
50
+ C:\Users\jixiongge\.nuget\packages\system.composition.runtime\9.0.0\lib\net8.0\System.Composition.Runtime.dll
51
+ C:\Users\jixiongge\.nuget\packages\system.composition.typedparts\9.0.0\lib\net8.0\System.Composition.TypedParts.dll
52
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Configuration.dll
53
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Console.dll
54
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Core.dll
55
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Data.Common.dll
56
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Data.DataSetExtensions.dll
57
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Data.dll
58
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Diagnostics.Contracts.dll
59
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Diagnostics.Debug.dll
60
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Diagnostics.DiagnosticSource.dll
61
+ C:\Users\jixiongge\.nuget\packages\system.diagnostics.eventlog\6.0.0\lib\net6.0\System.Diagnostics.EventLog.dll
62
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Diagnostics.FileVersionInfo.dll
63
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Diagnostics.Process.dll
64
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Diagnostics.StackTrace.dll
65
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Diagnostics.TextWriterTraceListener.dll
66
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Diagnostics.Tools.dll
67
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Diagnostics.TraceSource.dll
68
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Diagnostics.Tracing.dll
69
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.dll
70
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Drawing.dll
71
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Drawing.Primitives.dll
72
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Dynamic.Runtime.dll
73
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Formats.Asn1.dll
74
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Formats.Tar.dll
75
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Globalization.Calendars.dll
76
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Globalization.dll
77
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Globalization.Extensions.dll
78
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.IO.Compression.Brotli.dll
79
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.IO.Compression.dll
80
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.IO.Compression.FileSystem.dll
81
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.IO.Compression.ZipFile.dll
82
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.IO.dll
83
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.IO.FileSystem.AccessControl.dll
84
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.IO.FileSystem.dll
85
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.IO.FileSystem.DriveInfo.dll
86
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.IO.FileSystem.Primitives.dll
87
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.IO.FileSystem.Watcher.dll
88
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.IO.IsolatedStorage.dll
89
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.IO.MemoryMappedFiles.dll
90
+ C:\Users\jixiongge\.nuget\packages\system.io.pipelines\9.0.0\lib\net8.0\System.IO.Pipelines.dll
91
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.IO.Pipes.AccessControl.dll
92
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.IO.Pipes.dll
93
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.IO.UnmanagedMemoryStream.dll
94
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Linq.dll
95
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Linq.Expressions.dll
96
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Linq.Parallel.dll
97
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Linq.Queryable.dll
98
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Memory.dll
99
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.dll
100
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.Http.dll
101
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.Http.Json.dll
102
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.HttpListener.dll
103
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.Mail.dll
104
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.NameResolution.dll
105
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.NetworkInformation.dll
106
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.Ping.dll
107
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.Primitives.dll
108
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.Quic.dll
109
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.Requests.dll
110
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.Security.dll
111
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.ServicePoint.dll
112
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.Sockets.dll
113
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.WebClient.dll
114
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.WebHeaderCollection.dll
115
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.WebProxy.dll
116
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.WebSockets.Client.dll
117
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Net.WebSockets.dll
118
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Numerics.dll
119
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Numerics.Vectors.dll
120
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.ObjectModel.dll
121
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Reflection.DispatchProxy.dll
122
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Reflection.dll
123
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Reflection.Emit.dll
124
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Reflection.Emit.ILGeneration.dll
125
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Reflection.Emit.Lightweight.dll
126
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Reflection.Extensions.dll
127
+ C:\Users\jixiongge\.nuget\packages\system.reflection.metadata\9.0.0\lib\net8.0\System.Reflection.Metadata.dll
128
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Reflection.Primitives.dll
129
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Reflection.TypeExtensions.dll
130
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Resources.Reader.dll
131
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Resources.ResourceManager.dll
132
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Resources.Writer.dll
133
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Runtime.CompilerServices.Unsafe.dll
134
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Runtime.CompilerServices.VisualC.dll
135
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Runtime.dll
136
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Runtime.Extensions.dll
137
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Runtime.Handles.dll
138
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Runtime.InteropServices.dll
139
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Runtime.InteropServices.JavaScript.dll
140
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Runtime.InteropServices.RuntimeInformation.dll
141
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Runtime.Intrinsics.dll
142
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Runtime.Loader.dll
143
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Runtime.Numerics.dll
144
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Runtime.Serialization.dll
145
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Runtime.Serialization.Formatters.dll
146
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Runtime.Serialization.Json.dll
147
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Runtime.Serialization.Primitives.dll
148
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Runtime.Serialization.Xml.dll
149
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Security.AccessControl.dll
150
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Security.Claims.dll
151
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Security.Cryptography.Algorithms.dll
152
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Security.Cryptography.Cng.dll
153
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Security.Cryptography.Csp.dll
154
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Security.Cryptography.dll
155
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Security.Cryptography.Encoding.dll
156
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Security.Cryptography.OpenSsl.dll
157
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Security.Cryptography.Primitives.dll
158
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Security.Cryptography.X509Certificates.dll
159
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Security.dll
160
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Security.Principal.dll
161
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Security.Principal.Windows.dll
162
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Security.SecureString.dll
163
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.ServiceModel.Web.dll
164
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.ServiceProcess.dll
165
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Text.Encoding.CodePages.dll
166
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Text.Encoding.dll
167
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Text.Encoding.Extensions.dll
168
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Text.Encodings.Web.dll
169
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Text.Json.dll
170
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Text.RegularExpressions.dll
171
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Threading.Channels.dll
172
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Threading.dll
173
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Threading.Overlapped.dll
174
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Threading.Tasks.Dataflow.dll
175
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Threading.Tasks.dll
176
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Threading.Tasks.Extensions.dll
177
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Threading.Tasks.Parallel.dll
178
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Threading.Thread.dll
179
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Threading.ThreadPool.dll
180
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Threading.Timer.dll
181
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Transactions.dll
182
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Transactions.Local.dll
183
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.ValueTuple.dll
184
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Web.dll
185
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Web.HttpUtility.dll
186
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Windows.dll
187
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Xml.dll
188
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Xml.Linq.dll
189
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Xml.ReaderWriter.dll
190
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Xml.Serialization.dll
191
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Xml.XDocument.dll
192
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Xml.XmlDocument.dll
193
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Xml.XmlSerializer.dll
194
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Xml.XPath.dll
195
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\System.Xml.XPath.XDocument.dll
196
+ C:\Users\jixiongge\.nuget\packages\microsoft.testplatform.testhost\17.14.1\lib\net8.0\testhost.dll
197
+ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.18\ref\net8.0\WindowsBase.dll
198
+ C:\Users\jixiongge\.nuget\packages\xunit.abstractions\2.0.3\lib\netstandard2.0\xunit.abstractions.dll
199
+ C:\Users\jixiongge\.nuget\packages\xunit.assert\2.9.3\lib\net6.0\xunit.assert.dll
200
+ C:\Users\jixiongge\.nuget\packages\xunit.extensibility.core\2.9.3\lib\netstandard1.1\xunit.core.dll
201
+ C:\Users\jixiongge\.nuget\packages\xunit.extensibility.execution\2.9.3\lib\netstandard1.1\xunit.execution.dotnet.dll
202
+ d:\code\AIUnitTestExample\test\ToListinator.Tests\bin\Debug\net8.0\ToListinator.Tests.dll
@@ -0,0 +1,6 @@
1
+ import { BenchmarkRow } from '../types/benchmark';
2
+ export declare const CACHEFile: string;
3
+ export declare function generateBatchTests(path: any, enableAutoFix: boolean, keepFailedTests: boolean, isBenchmark?: boolean): Promise<BenchmarkRow[]>;
4
+ export declare function generateTestByCodeFiles(paths: string[], enableAutoFix: boolean, keepFailedTests: boolean, isBenchmark?: boolean, projectPath?: string, solutionPath?: string): Promise<BenchmarkRow[]>;
5
+ export declare function commentOutCsFile(testFilePath: string): void;
6
+ export declare function isDirectory(path: string): boolean;
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.CACHEFile = void 0;
37
+ exports.generateBatchTests = generateBatchTests;
38
+ exports.generateTestByCodeFiles = generateTestByCodeFiles;
39
+ exports.commentOutCsFile = commentOutCsFile;
40
+ exports.isDirectory = isDirectory;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const constants_1 = require("../types/constants");
44
+ const generateCodeCoverageReport_1 = require("../codeCoverage/generateCodeCoverageReport");
45
+ const csharpUtGen_1 = require("../gen/csharpUtGen");
46
+ const getFolderCodeFile_1 = require("./getFolderCodeFile");
47
+ const getProjectCodeFile_1 = require("./getProjectCodeFile");
48
+ const getSolutionCodeFile_1 = require("./getSolutionCodeFile");
49
+ exports.CACHEFile = path.join(__dirname, "../genResultsCache.json");
50
+ async function generateBatchTests(path, enableAutoFix, keepFailedTests, isBenchmark = false) {
51
+ let benchmarkRows;
52
+ let projectPath;
53
+ let solutionPath;
54
+ if (Array.isArray(path)) {
55
+ benchmarkRows = await generateTestByCodeFiles(path, enableAutoFix, keepFailedTests, isBenchmark);
56
+ }
57
+ else if (isFileWithSuffix(path, '.csproj')) {
58
+ projectPath = path;
59
+ const codeFiles = await (0, getProjectCodeFile_1.getSourceFilesFromCsproj)(path);
60
+ benchmarkRows = await generateTestByCodeFiles(codeFiles, enableAutoFix, keepFailedTests, isBenchmark);
61
+ }
62
+ else if (isFileWithSuffix(path, '.sln')) {
63
+ solutionPath = path;
64
+ const projectToFiles = await (0, getSolutionCodeFile_1.getSourceFilesFromSolution)(path);
65
+ Object.entries(projectToFiles).forEach(async ([project, files]) => {
66
+ console.log(`Project: ${project}`);
67
+ const projectBenchmarkRows = await generateTestByCodeFiles(files, enableAutoFix, keepFailedTests, isBenchmark, project, solutionPath);
68
+ benchmarkRows.push(...projectBenchmarkRows);
69
+ });
70
+ }
71
+ else {
72
+ if (!isDirectory(path)) {
73
+ console.error(`Invalid path: ${path}. It should be a directory, .csproj, or .sln file.`);
74
+ return [];
75
+ }
76
+ const codeFiles = await (0, getFolderCodeFile_1.getAllCsFiles)(path);
77
+ benchmarkRows = await generateTestByCodeFiles(codeFiles, enableAutoFix, keepFailedTests, isBenchmark);
78
+ }
79
+ return benchmarkRows;
80
+ }
81
+ async function generateTestByCodeFiles(paths, enableAutoFix, keepFailedTests, isBenchmark = false, projectPath, solutionPath) {
82
+ const startTime = Date.now();
83
+ const testProjectPaths = [];
84
+ const genResults = getCachedGenResults();
85
+ for (const codeFilePath of paths) {
86
+ if (!fs.existsSync(codeFilePath)) {
87
+ console.error(`Path does not exist: ${codeFilePath}`);
88
+ continue;
89
+ }
90
+ if (isBenchmark && genResults.some(result => result.codeFilePath === codeFilePath)) {
91
+ console.log(`Test code already generated for: ${codeFilePath}`);
92
+ continue;
93
+ }
94
+ const genResult = await (0, csharpUtGen_1.generateCsharpUtCode)(codeFilePath, "", enableAutoFix, keepFailedTests, constants_1.CSHARPUTGEN, true);
95
+ if (!genResult?.success && genResult?.buildResult) {
96
+ // comment build failed code to unblock following tests
97
+ commentOutCsFile(genResult.testFilePath);
98
+ }
99
+ genResult.testFilePath && console.log(`Updated gen test to file: ${genResult.testFilePath}`);
100
+ genResult && genResults.push({
101
+ solutionPath,
102
+ projectPath,
103
+ codeFilePath,
104
+ testFilePath: genResult.testFilePath,
105
+ success: genResult.success,
106
+ buildResult: genResult.buildResult,
107
+ testResult: genResult.testResult,
108
+ });
109
+ if (genResult.testProjectPath && !testProjectPaths.includes(genResult.testProjectPath)) {
110
+ testProjectPaths.push(genResult.testProjectPath);
111
+ }
112
+ fs.writeFileSync(exports.CACHEFile, JSON.stringify(genResults), 'utf-8');
113
+ console.log(`Current progress: ${genResults?.length / paths.length} (${genResults?.length}/${paths.length})`);
114
+ }
115
+ await (0, generateCodeCoverageReport_1.generateCodeCoverageReport)(testProjectPaths, paths);
116
+ console.log(`Batch Generate UT time: ${(Date.now() - startTime) / 1000} seconds`);
117
+ return genResults;
118
+ }
119
+ function isFileWithSuffix(filePath, suffix) {
120
+ return filePath.toLowerCase().endsWith(suffix.toLowerCase());
121
+ }
122
+ function getCachedGenResults() {
123
+ if (!fs.existsSync(exports.CACHEFile)) {
124
+ return [];
125
+ }
126
+ const cachedData = fs.readFileSync(exports.CACHEFile, 'utf-8');
127
+ const genResults = JSON.parse(cachedData);
128
+ return genResults;
129
+ }
130
+ function commentOutCsFile(testFilePath) {
131
+ const content = fs.readFileSync(testFilePath, 'utf-8');
132
+ const commented = content
133
+ .split(/\r?\n/)
134
+ .map(line => `// ${line}`)
135
+ .join('\n');
136
+ fs.writeFileSync(testFilePath, commented, 'utf-8');
137
+ console.log(`Commented out test file: ${testFilePath}`);
138
+ }
139
+ function isDirectory(path) {
140
+ try {
141
+ return fs.statSync(path).isDirectory();
142
+ }
143
+ catch (err) {
144
+ return false;
145
+ }
146
+ }
147
+ //# sourceMappingURL=generateCodeTests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateCodeTests.js","sourceRoot":"","sources":["../../src/batch/generateCodeTests.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from 'fs';\r\nimport * as path from 'path';\r\n\r\nimport { BenchmarkRow } from '../types/benchmark';\r\nimport { CSHARPUTGEN } from '../types/constants';\r\nimport { generateCodeCoverageReport } from '../codeCoverage/generateCodeCoverageReport';\r\nimport { generateCsharpUtCode } from \"../gen/csharpUtGen\";\r\nimport { getAllCsFiles } from './getFolderCodeFile';\r\nimport { getSourceFilesFromCsproj } from './getProjectCodeFile';\r\nimport { getSourceFilesFromSolution } from './getSolutionCodeFile';\r\n\r\nexport const CACHEFile = path.join(__dirname, \"../genResultsCache.json\");\r\nexport async function generateBatchTests(\r\n path: any,\r\n enableAutoFix: boolean,\r\n keepFailedTests: boolean,\r\n isBenchmark: boolean = false): Promise<BenchmarkRow[]> {\r\n let benchmarkRows;\r\n let projectPath;\r\n let solutionPath;\r\n if (Array.isArray(path)) {\r\n benchmarkRows = await generateTestByCodeFiles(path, enableAutoFix, keepFailedTests, isBenchmark);\r\n } else if (isFileWithSuffix(path, '.csproj')) {\r\n projectPath = path;\r\n const codeFiles = await getSourceFilesFromCsproj(path);\r\n benchmarkRows = await generateTestByCodeFiles(codeFiles, enableAutoFix, keepFailedTests, isBenchmark);\r\n } else if (isFileWithSuffix(path, '.sln')) {\r\n solutionPath = path;\r\n const projectToFiles = await getSourceFilesFromSolution(path);\r\n Object.entries(projectToFiles).forEach(async ([project, files]) => {\r\n console.log(`Project: ${project}`);\r\n const projectBenchmarkRows = await generateTestByCodeFiles(files, enableAutoFix, keepFailedTests, isBenchmark, project, solutionPath);\r\n benchmarkRows.push(...projectBenchmarkRows);\r\n });\r\n } else {\r\n if (!isDirectory(path)) {\r\n console.error(`Invalid path: ${path}. It should be a directory, .csproj, or .sln file.`);\r\n return [];\r\n }\r\n const codeFiles = await getAllCsFiles(path);\r\n benchmarkRows = await generateTestByCodeFiles(codeFiles, enableAutoFix, keepFailedTests, isBenchmark);\r\n }\r\n\r\n return benchmarkRows;\r\n}\r\n\r\nexport async function generateTestByCodeFiles(\r\n paths: string[],\r\n enableAutoFix: boolean,\r\n keepFailedTests: boolean,\r\n isBenchmark: boolean = false,\r\n projectPath?: string,\r\n solutionPath?: string\r\n): Promise<BenchmarkRow[]> {\r\n const startTime = Date.now();\r\n\r\n const testProjectPaths = [];\r\n const genResults = getCachedGenResults();\r\n for (const codeFilePath of paths) {\r\n if (!fs.existsSync(codeFilePath)) {\r\n console.error(`Path does not exist: ${codeFilePath}`);\r\n continue;\r\n }\r\n\r\n if (isBenchmark && genResults.some(result => result.codeFilePath === codeFilePath)) {\r\n console.log(`Test code already generated for: ${codeFilePath}`);\r\n continue;\r\n }\r\n\r\n const genResult = await generateCsharpUtCode(codeFilePath, \"\", enableAutoFix, keepFailedTests, CSHARPUTGEN, true);\r\n if (!genResult?.success && genResult?.buildResult) {\r\n // comment build failed code to unblock following tests\r\n commentOutCsFile(genResult.testFilePath);\r\n }\r\n genResult.testFilePath && console.log(`Updated gen test to file: ${genResult.testFilePath}`);\r\n\r\n genResult && genResults.push({\r\n solutionPath,\r\n projectPath,\r\n codeFilePath,\r\n testFilePath: genResult.testFilePath, \r\n success: genResult.success,\r\n buildResult: genResult.buildResult,\r\n testResult: genResult.testResult,\r\n });\r\n\r\n if (genResult.testProjectPath && !testProjectPaths.includes(genResult.testProjectPath)) {\r\n testProjectPaths.push(genResult.testProjectPath);\r\n }\r\n\r\n fs.writeFileSync(CACHEFile, JSON.stringify(genResults), 'utf-8');\r\n console.log(`Current progress: ${genResults?.length / paths.length} (${genResults?.length}/${paths.length})`);\r\n }\r\n\r\n await generateCodeCoverageReport(testProjectPaths, paths);\r\n\r\n console.log(`Batch Generate UT time: ${(Date.now() - startTime) / 1000} seconds`);\r\n\r\n return genResults;\r\n}\r\n\r\nfunction isFileWithSuffix(filePath: string, suffix: string): boolean {\r\n return filePath.toLowerCase().endsWith(suffix.toLowerCase());\r\n}\r\n\r\nfunction getCachedGenResults() {\r\n if (!fs.existsSync(CACHEFile)) {\r\n return [];\r\n }\r\n const cachedData = fs.readFileSync(CACHEFile, 'utf-8');\r\n const genResults = JSON.parse(cachedData);\r\n return genResults;\r\n}\r\n\r\nexport function commentOutCsFile(testFilePath: string) {\r\n const content = fs.readFileSync(testFilePath, 'utf-8');\r\n const commented = content\r\n .split(/\\r?\\n/)\r\n .map(line => `// ${line}`)\r\n .join('\\n');\r\n\r\n fs.writeFileSync(testFilePath, commented, 'utf-8');\r\n console.log(`Commented out test file: ${testFilePath}`);\r\n}\r\n\r\nexport function isDirectory(path: string): boolean {\r\n try {\r\n return fs.statSync(path).isDirectory();\r\n } catch (err) {\r\n return false;\r\n }\r\n}"]}
@@ -0,0 +1 @@
1
+ export declare function getAllCsFiles(rootDir: string): Promise<string[]>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getAllCsFiles = getAllCsFiles;
7
+ const fast_glob_1 = __importDefault(require("fast-glob"));
8
+ async function getAllCsFiles(rootDir) {
9
+ return await (0, fast_glob_1.default)('**/*.cs', {
10
+ cwd: rootDir,
11
+ absolute: true,
12
+ onlyFiles: true,
13
+ ignore: ['**/bin/**', '**/obj/**', '**/node_modules/**'],
14
+ });
15
+ }
16
+ // getAllCsFiles("D:\\code\\CS.Service.Fundamental\\SharedSegments\\SharedSegments\\SharedSegments.Plugins\\Workflows\\Eplant\\").then(files => {
17
+ // console.log('Found .cs files:', files);
18
+ // });
19
+ //# sourceMappingURL=getFolderCodeFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFolderCodeFile.js","sourceRoot":"","sources":["../../src/batch/getFolderCodeFile.ts"],"names":[],"mappings":";;;;;AAGA,sCAOC;AAVD,0DAA2B;AAGpB,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,OAAO,MAAM,IAAA,mBAAE,EAAC,SAAS,EAAE;QACzB,GAAG,EAAE,OAAO;QACZ,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,oBAAoB,CAAC;KACzD,CAAC,CAAC;AACL,CAAC;AAGD,iJAAiJ;AACjJ,4CAA4C;AAC5C,MAAM","sourcesContent":["import fg from 'fast-glob';\r\nimport path from 'path';\r\n\r\nexport async function getAllCsFiles(rootDir: string): Promise<string[]> {\r\n return await fg('**/*.cs', {\r\n cwd: rootDir,\r\n absolute: true,\r\n onlyFiles: true,\r\n ignore: ['**/bin/**', '**/obj/**', '**/node_modules/**'],\r\n });\r\n}\r\n\r\n\r\n// getAllCsFiles(\"D:\\\\code\\\\CS.Service.Fundamental\\\\SharedSegments\\\\SharedSegments\\\\SharedSegments.Plugins\\\\Workflows\\\\Eplant\\\\\").then(files => {\r\n// console.log('Found .cs files:', files);\r\n// });"]}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * parse .csproj to extract all source files
3
+ */
4
+ export declare function getSourceFilesFromCsproj(csprojPath: string): Promise<string[]>;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.getSourceFilesFromCsproj = getSourceFilesFromCsproj;
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ const fast_xml_parser_1 = require("fast-xml-parser");
43
+ const checkTestProject_1 = require("../utils/checkTestProject");
44
+ const fast_glob_1 = __importDefault(require("fast-glob"));
45
+ /**
46
+ * parse .csproj to extract all source files
47
+ */
48
+ async function getSourceFilesFromCsproj(csprojPath) {
49
+ if ((0, checkTestProject_1.checkTestProject)(csprojPath)) {
50
+ console.error(`This is a test project: ${csprojPath}, skip it...`);
51
+ return [];
52
+ }
53
+ const xml = fs.readFileSync(csprojPath, 'utf-8');
54
+ const parser = new fast_xml_parser_1.XMLParser({
55
+ ignoreAttributes: false,
56
+ attributeNamePrefix: '',
57
+ });
58
+ const result = parser.parse(xml);
59
+ const projectDir = path.dirname(csprojPath);
60
+ const files = [];
61
+ const itemGroups = result.Project?.ItemGroup ?? [];
62
+ const groups = Array.isArray(itemGroups) ? itemGroups : [itemGroups];
63
+ for (const group of groups) {
64
+ const compiles = group.Compile;
65
+ if (compiles) {
66
+ const compileArray = Array.isArray(compiles) ? compiles : [compiles];
67
+ for (const item of compileArray) {
68
+ if (item.Include) {
69
+ const filePath = path.resolve(projectDir, item.Include);
70
+ files.push(filePath);
71
+ }
72
+ }
73
+ }
74
+ }
75
+ // SDK-style project files contains all source files in the project directory as default
76
+ if (files.length === 0 && result.Project?.Sdk) {
77
+ const csFiles = await (0, fast_glob_1.default)(['**/*.cs'], {
78
+ cwd: projectDir,
79
+ absolute: true,
80
+ ignore: ['**/bin/**', '**/obj/**']
81
+ });
82
+ const normalizedCsFiles = csFiles.map(file => path.normalize(file));
83
+ files.push(...normalizedCsFiles);
84
+ }
85
+ return files;
86
+ }
87
+ //# sourceMappingURL=getProjectCodeFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getProjectCodeFile.js","sourceRoot":"","sources":["../../src/batch/getProjectCodeFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,4DA+CC;AAzDD,uCAAyB;AACzB,2CAA6B;AAE7B,qDAA4C;AAC5C,gEAA6D;AAC7D,0DAA2B;AAE3B;;GAEG;AACI,KAAK,UAAU,wBAAwB,CAAC,UAAkB;IAC7D,IAAI,IAAA,mCAAgB,EAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,2BAA2B,UAAU,cAAc,CAAC,CAAC;QACnE,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,2BAAS,CAAC;QACzB,gBAAgB,EAAE,KAAK;QACvB,mBAAmB,EAAE,EAAE;KAC1B,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC;IAEnD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAErE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;QAE/B,IAAI,QAAQ,EAAE,CAAC;YACX,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAErE,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBACxD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,wFAAwF;IACxF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAA,mBAAE,EAAC,CAAC,SAAS,CAAC,EAAE;YAClC,GAAG,EAAE,UAAU;YACf,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;SACrC,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC","sourcesContent":["import * as fs from 'fs';\r\nimport * as path from 'path';\r\n\r\nimport { XMLParser } from 'fast-xml-parser';\r\nimport { checkTestProject } from '../utils/checkTestProject';\r\nimport fg from 'fast-glob';\r\n\r\n/**\r\n * parse .csproj to extract all source files\r\n */\r\nexport async function getSourceFilesFromCsproj(csprojPath: string): Promise<string[]> {\r\n if (checkTestProject(csprojPath)) {\r\n console.error(`This is a test project: ${csprojPath}, skip it...`);\r\n return [];\r\n }\r\n\r\n const xml = fs.readFileSync(csprojPath, 'utf-8');\r\n const parser = new XMLParser({\r\n ignoreAttributes: false,\r\n attributeNamePrefix: '',\r\n });\r\n const result = parser.parse(xml);\r\n\r\n const projectDir = path.dirname(csprojPath);\r\n const files: string[] = [];\r\n\r\n const itemGroups = result.Project?.ItemGroup ?? [];\r\n\r\n const groups = Array.isArray(itemGroups) ? itemGroups : [itemGroups];\r\n\r\n for (const group of groups) {\r\n const compiles = group.Compile;\r\n\r\n if (compiles) {\r\n const compileArray = Array.isArray(compiles) ? compiles : [compiles];\r\n\r\n for (const item of compileArray) {\r\n if (item.Include) {\r\n const filePath = path.resolve(projectDir, item.Include);\r\n files.push(filePath);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // SDK-style project files contains all source files in the project directory as default\r\n if (files.length === 0 && result.Project?.Sdk) {\r\n const csFiles = await fg(['**/*.cs'], {\r\n cwd: projectDir,\r\n absolute: true,\r\n ignore: ['**/bin/**', '**/obj/**']\r\n });\r\n const normalizedCsFiles = csFiles.map(file => path.normalize(file));\r\n files.push(...normalizedCsFiles);\r\n }\r\n\r\n return files;\r\n}\r\n\r\n\r\n"]}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * parse .sln file to get all .csproj paths
3
+ */
4
+ export declare function getProjectPathsFromSolution(slnPath: string): Promise<string[]>;
5
+ /**
6
+ * get project -> project source file by .sln
7
+ */
8
+ export declare function getSourceFilesFromSolution(slnPath: string): Promise<Record<string, string[]>>;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getProjectPathsFromSolution = getProjectPathsFromSolution;
37
+ exports.getSourceFilesFromSolution = getSourceFilesFromSolution;
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ const getProjectCodeFile_1 = require("./getProjectCodeFile");
41
+ /**
42
+ * parse .sln file to get all .csproj paths
43
+ */
44
+ async function getProjectPathsFromSolution(slnPath) {
45
+ const slnContent = fs.readFileSync(slnPath, 'utf-8');
46
+ const projectRegex = /Project\(".*"\)\s=\s".*?",\s*"(.*?)",/g;
47
+ const projectPaths = [];
48
+ let match;
49
+ while ((match = projectRegex.exec(slnContent)) !== null) {
50
+ const relativePath = match[1].replace(/\\/g, path.sep);
51
+ projectPaths.push(path.resolve(path.dirname(slnPath), relativePath));
52
+ }
53
+ return projectPaths.filter(p => p.endsWith('.csproj'));
54
+ }
55
+ /**
56
+ * get project -> project source file by .sln
57
+ */
58
+ async function getSourceFilesFromSolution(slnPath) {
59
+ const csprojPaths = await getProjectPathsFromSolution(slnPath);
60
+ const result = {};
61
+ for (const csprojPath of csprojPaths) {
62
+ const sourceFiles = await (0, getProjectCodeFile_1.getSourceFilesFromCsproj)(csprojPath);
63
+ result[csprojPath] = sourceFiles;
64
+ }
65
+ return result;
66
+ }
67
+ // getSolutionStructure('D:\\code\\CS.Service.Fundamental\\SharedSegments\\SharedSegments.sln').then(structure => {
68
+ // console.log(JSON.stringify(structure, null, 2));
69
+ // });
70
+ //# sourceMappingURL=getSolutionCodeFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSolutionCodeFile.js","sourceRoot":"","sources":["../../src/batch/getSolutionCodeFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,kEAYC;AAMD,gEAUC;AApCD,uCAAyB;AACzB,2CAA6B;AAE7B,6DAAgE;AAEhE;;GAEG;AACI,KAAK,UAAU,2BAA2B,CAAC,OAAe;IAC7D,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,wCAAwC,CAAC;IAE9D,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACtD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAC3D,CAAC;AAGD;;GAEG;AACI,KAAK,UAAU,0BAA0B,CAAC,OAAe;IAC5D,MAAM,WAAW,GAAG,MAAM,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,MAAM,GAA6B,EAAE,CAAC;IAE5C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,MAAM,IAAA,6CAAwB,EAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;IACrC,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAGD,mHAAmH;AACnH,uDAAuD;AACvD,MAAM","sourcesContent":["import * as fs from 'fs';\r\nimport * as path from 'path';\r\n\r\nimport { getSourceFilesFromCsproj } from './getProjectCodeFile';\r\n\r\n/**\r\n * parse .sln file to get all .csproj paths\r\n */\r\nexport async function getProjectPathsFromSolution(slnPath: string): Promise<string[]> {\r\n const slnContent = fs.readFileSync(slnPath, 'utf-8');\r\n const projectRegex = /Project\\(\".*\"\\)\\s=\\s\".*?\",\\s*\"(.*?)\",/g;\r\n\r\n const projectPaths: string[] = [];\r\n let match: RegExpExecArray | null;\r\n while ((match = projectRegex.exec(slnContent)) !== null) {\r\n const relativePath = match[1].replace(/\\\\/g, path.sep);\r\n projectPaths.push(path.resolve(path.dirname(slnPath), relativePath));\r\n }\r\n\r\n return projectPaths.filter(p => p.endsWith('.csproj'));\r\n}\r\n\r\n\r\n/**\r\n * get project -> project source file by .sln\r\n */\r\nexport async function getSourceFilesFromSolution(slnPath: string): Promise<Record<string, string[]>> {\r\n const csprojPaths = await getProjectPathsFromSolution(slnPath);\r\n const result: Record<string, string[]> = {};\r\n\r\n for (const csprojPath of csprojPaths) {\r\n const sourceFiles = await getSourceFilesFromCsproj(csprojPath);\r\n result[csprojPath] = sourceFiles;\r\n }\r\n\r\n return result;\r\n}\r\n\r\n\r\n// getSolutionStructure('D:\\\\code\\\\CS.Service.Fundamental\\\\SharedSegments\\\\SharedSegments.sln').then(structure => {\r\n// console.log(JSON.stringify(structure, null, 2));\r\n// });"]}
@@ -0,0 +1,2 @@
1
+ import { BenchmarkRow } from "../types/benchmark";
2
+ export declare function toMarkdownTable(rows: BenchmarkRow[]): string;