@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.
- package/ai-dev-tools-csharp-copilot-core-0.0.19.tgz +0 -0
- package/azure-pipelines.yml +52 -0
- package/out/analyze/cecil.d.ts +1 -0
- package/out/analyze/cecil.js +42 -0
- package/out/analyze/cecil.js.map +1 -0
- package/out/analyze/checkCodeSyntax.d.ts +7 -0
- package/out/analyze/checkCodeSyntax.js +67 -0
- package/out/analyze/checkCodeSyntax.js.map +1 -0
- package/out/analyze/generateCodeDependency.d.ts +6 -0
- package/out/analyze/generateCodeDependency.js +122 -0
- package/out/analyze/generateCodeDependency.js.map +1 -0
- package/out/analyze/installAnalyzerTool.d.ts +1 -0
- package/out/analyze/installAnalyzerTool.js +82 -0
- package/out/analyze/installAnalyzerTool.js.map +1 -0
- package/out/atmpCache/deps/EplantRequestCategoryCondition_Conditions_Eplant_Workflows_SharedSegmentsPlugins_SharedSegments_SharedSegments_CSServiceFundamental_code_D.deps +281 -0
- package/out/atmpCache/deps/IdentitySelectAnalyzer_ToListinatorAnalyzers_src_AIUnitTestExample_code_d.deps +1 -0
- package/out/atmpCache/deps/SqmidHelperTests_Utils_HttpRequestParser_Overview_Workflows_SharedSegmentsTests_SharedSegments_SharedSegments_CSServiceFundamental_code_D.deps +1 -0
- package/out/atmpCache/deps/SqmidHelper_Utils_HttpRequestParser_Overview_Workflows_SharedSegmentsPlugins_SharedSegments_SharedSegments_CSServiceFundamental_code_D.deps +1 -0
- package/out/atmpCache/deps/ToListCountAnalyzerTests_ToListinatorTests_test_AIUnitTestExample_code_d.deps +4037 -0
- package/out/atmpCache/deps/ToListCountAnalyzer_ToListinatorAnalyzers_src_AIUnitTestExample_code_d.deps +1 -0
- package/out/atmpCache/deps/ToListCountCodeFixProvider_ToListinatorCodeFixes_src_AIUnitTestExample_code_d.deps +1 -0
- package/out/atmpCache/deps/ToListForEachAnalyzer_ToListinatorAnalyzers_src_AIUnitTestExample_code_d.deps +1 -0
- package/out/atmpCache/dllref/ToListinatorTests_ToListinatorTests_test_AIUnitTestExample_code_d.dllref +202 -0
- package/out/batch/generateCodeTests.d.ts +6 -0
- package/out/batch/generateCodeTests.js +147 -0
- package/out/batch/generateCodeTests.js.map +1 -0
- package/out/batch/getFolderCodeFile.d.ts +1 -0
- package/out/batch/getFolderCodeFile.js +19 -0
- package/out/batch/getFolderCodeFile.js.map +1 -0
- package/out/batch/getProjectCodeFile.d.ts +4 -0
- package/out/batch/getProjectCodeFile.js +87 -0
- package/out/batch/getProjectCodeFile.js.map +1 -0
- package/out/batch/getSolutionCodeFile.d.ts +8 -0
- package/out/batch/getSolutionCodeFile.js +70 -0
- package/out/batch/getSolutionCodeFile.js.map +1 -0
- package/out/benchmark/formatToMarkdown.d.ts +2 -0
- package/out/benchmark/formatToMarkdown.js +101 -0
- package/out/benchmark/formatToMarkdown.js.map +1 -0
- package/out/benchmark/generateBenchmarkReport.d.ts +1 -0
- package/out/benchmark/generateBenchmarkReport.js +82 -0
- package/out/benchmark/generateBenchmarkReport.js.map +1 -0
- package/out/codeCoverage/codeCoverage.d.ts +6 -0
- package/out/codeCoverage/codeCoverage.js +35 -0
- package/out/codeCoverage/codeCoverage.js.map +1 -0
- package/out/codeCoverage/codeCoverageReport.d.ts +6 -0
- package/out/codeCoverage/codeCoverageReport.js +72 -0
- package/out/codeCoverage/codeCoverageReport.js.map +1 -0
- package/out/codeCoverage/extractCodeCoverageInfo.d.ts +2 -0
- package/out/codeCoverage/extractCodeCoverageInfo.js +80 -0
- package/out/codeCoverage/extractCodeCoverageInfo.js.map +1 -0
- package/out/codeCoverage/generateCodeCoverageReport.d.ts +1 -0
- package/out/codeCoverage/generateCodeCoverageReport.js +27 -0
- package/out/codeCoverage/generateCodeCoverageReport.js.map +1 -0
- package/out/codeCoverage/getCodeCoverageSetting.d.ts +1 -0
- package/out/codeCoverage/getCodeCoverageSetting.js +58 -0
- package/out/codeCoverage/getCodeCoverageSetting.js.map +1 -0
- package/out/codeCoverage/reportTool.d.ts +2 -0
- package/out/codeCoverage/reportTool.js +22 -0
- package/out/codeCoverage/reportTool.js.map +1 -0
- package/out/codeCoverage/simplifyCoverageXml.d.ts +2 -0
- package/out/codeCoverage/simplifyCoverageXml.js +116 -0
- package/out/codeCoverage/simplifyCoverageXml.js.map +1 -0
- package/out/codebk/250804prompt/buildAfGuidelines.liquid +15 -0
- package/out/codebk/250804prompt/general/generalBuildAutofixGuidelines.liquid +13 -0
- package/out/codebk/250804prompt/general/generalUtGuidelines.liquid +18 -0
- package/out/codebk/250804prompt/generateUtAutoFix.liquid +19 -0
- package/out/codebk/250804prompt/generateUtGuidelines.liquid +13 -0
- package/out/codebk/250804prompt/generateUtSystem.liquid +5 -0
- package/out/codebk/250804prompt/generateUtUserInput.liquid +27 -0
- package/out/codebk/250804prompt/testAfGuidelines.liquid +6 -0
- package/out/codebk/250804prompt/xap/xapBuildAutofixGuidelines.liquid +13 -0
- package/out/codebk/250804prompt/xap/xapCodeCodeDependency.liquid +0 -0
- package/out/codebk/250804prompt/xap/xapCodeSample.liquid +38 -0
- package/out/codebk/250804prompt/xap/xapUtGuideline-240804.liquid +36 -0
- package/out/codebk/250804prompt/xap/xapUtGuideline.liquid +36 -0
- package/out/codebk/childProcessManager.d.ts +1 -0
- package/out/codebk/childProcessManager.js +50 -0
- package/out/codebk/childProcessManager.js.map +1 -0
- package/out/codebk/msBuidSpawn.d.ts +1 -0
- package/out/codebk/msBuidSpawn.js +58 -0
- package/out/codebk/msBuidSpawn.js.map +1 -0
- package/out/codebk/msBuild.d.ts +1 -0
- package/out/codebk/msBuild.js +123 -0
- package/out/codebk/msBuild.js.map +1 -0
- package/out/codebk/old/generateXapTestAutoFix.liquid +12 -0
- package/out/codebk/old/generateXapTestGuidelines-fm.liquid +68 -0
- package/out/codebk/old/generateXapTestGuidelines.liquid +28 -0
- package/out/codebk/old/xapGuideline-fm.liquid +149 -0
- package/out/codebk/old/xapGuideline.liquid +37 -0
- package/out/codebk/oldExec/checkCodeSyntax.d.ts +1 -0
- package/out/codebk/oldExec/checkCodeSyntax.js +81 -0
- package/out/codebk/oldExec/checkCodeSyntax.js.map +1 -0
- package/out/codebk/oldExec/codeCoverage.d.ts +1 -0
- package/out/codebk/oldExec/codeCoverage.js +54 -0
- package/out/codebk/oldExec/codeCoverage.js.map +1 -0
- package/out/codebk/oldExec/codeCoverageReport.d.ts +1 -0
- package/out/codebk/oldExec/codeCoverageReport.js +64 -0
- package/out/codebk/oldExec/codeCoverageReport.js.map +1 -0
- package/out/codebk/oldExec/containsMethods.d.ts +1 -0
- package/out/codebk/oldExec/containsMethods.js +74 -0
- package/out/codebk/oldExec/containsMethods.js.map +1 -0
- package/out/codebk/oldExec/generateCodeDependency.d.ts +1 -0
- package/out/codebk/oldExec/generateCodeDependency.js +95 -0
- package/out/codebk/oldExec/generateCodeDependency.js.map +1 -0
- package/out/codebk/oldExec/msBuild.d.ts +1 -0
- package/out/codebk/oldExec/msBuild.js +53 -0
- package/out/codebk/oldExec/msBuild.js.map +1 -0
- package/out/codebk/oldExec/vsTest.d.ts +1 -0
- package/out/codebk/oldExec/vsTest.js +71 -0
- package/out/codebk/oldExec/vsTest.js.map +1 -0
- package/out/codebk/prompts/general/generalUnitTestGuidelines-20250702.liquid +56 -0
- package/out/codebk/prompts/generateXapTestGuidelines-20250704.liquid +21 -0
- package/out/codebk/prompts/generateXapTestGuidelines-o.liquid +29 -0
- package/out/codebk/prompts/xap/xapGuideline-o.liquid +45 -0
- package/out/codebk/testbuildkill.d.ts +1 -0
- package/out/codebk/testbuildkill.js +37 -0
- package/out/codebk/testbuildkill.js.map +1 -0
- package/out/command/index.d.ts +2 -0
- package/out/command/index.js +85 -0
- package/out/command/index.js.map +1 -0
- package/out/command/utGenWrapper.d.ts +3 -0
- package/out/command/utGenWrapper.js +40 -0
- package/out/command/utGenWrapper.js.map +1 -0
- package/out/exit/childProcessManager.d.ts +2 -0
- package/out/exit/childProcessManager.js +43 -0
- package/out/exit/childProcessManager.js.map +1 -0
- package/out/exit/setupProcessSignalHandler.d.ts +1 -0
- package/out/exit/setupProcessSignalHandler.js +18 -0
- package/out/exit/setupProcessSignalHandler.js.map +1 -0
- package/out/gen/autoFix.d.ts +4 -0
- package/out/gen/autoFix.js +125 -0
- package/out/gen/autoFix.js.map +1 -0
- package/out/gen/csharpUtGen.d.ts +2 -0
- package/out/gen/csharpUtGen.js +151 -0
- package/out/gen/csharpUtGen.js.map +1 -0
- package/out/gen/ensureValidLLMResponse.d.ts +1 -0
- package/out/gen/ensureValidLLMResponse.js +19 -0
- package/out/gen/ensureValidLLMResponse.js.map +1 -0
- package/out/gen/postGen/extractCodeFromResponse.d.ts +1 -0
- package/out/gen/postGen/extractCodeFromResponse.js +37 -0
- package/out/gen/postGen/extractCodeFromResponse.js.map +1 -0
- package/out/gen/postGen/postGenProcess.d.ts +1 -0
- package/out/gen/postGen/postGenProcess.js +36 -0
- package/out/gen/postGen/postGenProcess.js.map +1 -0
- package/out/gen/postGen/removeComments.d.ts +1 -0
- package/out/gen/postGen/removeComments.js +92 -0
- package/out/gen/postGen/removeComments.js.map +1 -0
- package/out/gen/postGen/removeSingleLines.d.ts +1 -0
- package/out/gen/postGen/removeSingleLines.js +28 -0
- package/out/gen/postGen/removeSingleLines.js.map +1 -0
- package/out/gen/postGen/repairRequiredNameSpaces.d.ts +1 -0
- package/out/gen/postGen/repairRequiredNameSpaces.js +116 -0
- package/out/gen/postGen/repairRequiredNameSpaces.js.map +1 -0
- package/out/gen/postGen/validateTestCode.d.ts +1 -0
- package/out/gen/postGen/validateTestCode.js +14 -0
- package/out/gen/postGen/validateTestCode.js.map +1 -0
- package/out/gen/preGen/excludeFileName.d.ts +1 -0
- package/out/gen/preGen/excludeFileName.js +49 -0
- package/out/gen/preGen/excludeFileName.js.map +1 -0
- package/out/gen/preGen/excludeSpecificTag.d.ts +1 -0
- package/out/gen/preGen/excludeSpecificTag.js +18 -0
- package/out/gen/preGen/excludeSpecificTag.js.map +1 -0
- package/out/gen/preGen/preGenProcess.d.ts +1 -0
- package/out/gen/preGen/preGenProcess.js +22 -0
- package/out/gen/preGen/preGenProcess.js.map +1 -0
- package/out/gen/preGen/validateCode.d.ts +3 -0
- package/out/gen/preGen/validateCode.js +62 -0
- package/out/gen/preGen/validateCode.js.map +1 -0
- package/out/index.d.ts +2 -0
- package/out/index.js +8 -0
- package/out/index.js.map +1 -0
- package/out/llm/model/Gpt4o.d.ts +1 -0
- package/out/llm/model/Gpt4o.js +91 -0
- package/out/llm/model/Gpt4o.js.map +1 -0
- package/out/llm/model/claude4.d.ts +1 -0
- package/out/llm/model/claude4.js +3 -0
- package/out/llm/model/claude4.js.map +1 -0
- package/out/llm/preparePrompt.d.ts +2 -0
- package/out/llm/preparePrompt.js +110 -0
- package/out/llm/preparePrompt.js.map +1 -0
- package/out/llm/prompt/buildAfGuidelines.liquid +15 -0
- package/out/llm/prompt/general/generalBuildAutofixGuidelines.liquid +13 -0
- package/out/llm/prompt/general/generalUtGuidelines.liquid +16 -0
- package/out/llm/prompt/generateUtAutoFix.liquid +19 -0
- package/out/llm/prompt/generateUtDependency.liquid +3 -0
- package/out/llm/prompt/generateUtGuidelines.liquid +29 -0
- package/out/llm/prompt/generateUtSystem.liquid +5 -0
- package/out/llm/prompt/generateUtTemplate.liquid +30 -0
- package/out/llm/prompt/generateUtUserInput.liquid +4 -0
- package/out/llm/prompt/testAfGuidelines.liquid +6 -0
- package/out/llm/prompt/userCustomPrompt.liquid +0 -0
- package/out/llm/prompt/xap/xapBuildAutofixGuidelines.liquid +13 -0
- package/out/llm/prompt/xap/xapCodeCodeDependency.liquid +0 -0
- package/out/llm/prompt/xap/xapCodeSample.liquid +38 -0
- package/out/llm/prompt/xap/xapUtGuideline-240804.liquid +36 -0
- package/out/llm/prompt/xap/xapUtGuideline.liquid +37 -0
- package/out/llm/sendRequestToLLM.d.ts +4 -0
- package/out/llm/sendRequestToLLM.js +12 -0
- package/out/llm/sendRequestToLLM.js.map +1 -0
- package/out/llm/sendRequestToSelfHostLLM.d.ts +4 -0
- package/out/llm/sendRequestToSelfHostLLM.js +41 -0
- package/out/llm/sendRequestToSelfHostLLM.js.map +1 -0
- package/out/metrics/appInsightTelemetry.d.ts +6 -0
- package/out/metrics/appInsightTelemetry.js +77 -0
- package/out/metrics/appInsightTelemetry.js.map +1 -0
- package/out/metrics/machineId.d.ts +11 -0
- package/out/metrics/machineId.js +85 -0
- package/out/metrics/machineId.js.map +1 -0
- package/out/setup/setup.d.ts +1 -0
- package/out/setup/setup.js +10 -0
- package/out/setup/setup.js.map +1 -0
- package/out/setup/setupConsole.d.ts +1 -0
- package/out/setup/setupConsole.js +23 -0
- package/out/setup/setupConsole.js.map +1 -0
- package/out/setup/setupLLMRequest.d.ts +2 -0
- package/out/setup/setupLLMRequest.js +10 -0
- package/out/setup/setupLLMRequest.js.map +1 -0
- package/out/tools/devenvcom.cmd +13 -0
- package/out/tools/devenvexe.cmd +13 -0
- package/out/tools/msbuildexe.cmd +13 -0
- package/out/tools/vstestexe.cmd +13 -0
- package/out/types/benchmark.d.ts +11 -0
- package/out/types/benchmark.js +3 -0
- package/out/types/benchmark.js.map +1 -0
- package/out/types/buildResult.d.ts +8 -0
- package/out/types/buildResult.js +3 -0
- package/out/types/buildResult.js.map +1 -0
- package/out/types/constants.d.ts +3 -0
- package/out/types/constants.js +7 -0
- package/out/types/constants.js.map +1 -0
- package/out/types/genResult.d.ts +10 -0
- package/out/types/genResult.js +3 -0
- package/out/types/genResult.js.map +1 -0
- package/out/types/testResult.d.ts +12 -0
- package/out/types/testResult.js +3 -0
- package/out/types/testResult.js.map +1 -0
- package/out/types/verifyResult.d.ts +8 -0
- package/out/types/verifyResult.js +3 -0
- package/out/types/verifyResult.js.map +1 -0
- package/out/utils/checkTestProject.d.ts +2 -0
- package/out/utils/checkTestProject.js +79 -0
- package/out/utils/checkTestProject.js.map +1 -0
- package/out/utils/checkXapCode.d.ts +2 -0
- package/out/utils/checkXapCode.js +59 -0
- package/out/utils/checkXapCode.js.map +1 -0
- package/out/utils/delay.d.ts +1 -0
- package/out/utils/delay.js +7 -0
- package/out/utils/delay.js.map +1 -0
- package/out/utils/detectTestFramework.d.ts +1 -0
- package/out/utils/detectTestFramework.js +32 -0
- package/out/utils/detectTestFramework.js.map +1 -0
- package/out/utils/fileUtils.d.ts +2 -0
- package/out/utils/fileUtils.js +42 -0
- package/out/utils/fileUtils.js.map +1 -0
- package/out/utils/generateCodeSha256.d.ts +1 -0
- package/out/utils/generateCodeSha256.js +46 -0
- package/out/utils/generateCodeSha256.js.map +1 -0
- package/out/utils/getCodeStructurePath.d.ts +5 -0
- package/out/utils/getCodeStructurePath.js +155 -0
- package/out/utils/getCodeStructurePath.js.map +1 -0
- package/out/utils/getOrCreateDir.d.ts +2 -0
- package/out/utils/getOrCreateDir.js +63 -0
- package/out/utils/getOrCreateDir.js.map +1 -0
- package/out/utils/getTestCodeInfo.d.ts +2 -0
- package/out/utils/getTestCodeInfo.js +121 -0
- package/out/utils/getTestCodeInfo.js.map +1 -0
- package/out/utils/getTestFile.d.ts +13 -0
- package/out/utils/getTestFile.js +295 -0
- package/out/utils/getTestFile.js.map +1 -0
- package/out/utils/parseBuildResult.d.ts +3 -0
- package/out/utils/parseBuildResult.js +44 -0
- package/out/utils/parseBuildResult.js.map +1 -0
- package/out/utils/parseSyntaxCheckResult.d.ts +2 -0
- package/out/utils/parseSyntaxCheckResult.js +38 -0
- package/out/utils/parseSyntaxCheckResult.js.map +1 -0
- package/out/utils/parseVstestResult.d.ts +3 -0
- package/out/utils/parseVstestResult.js +61 -0
- package/out/utils/parseVstestResult.js.map +1 -0
- package/out/utils/removeFailedTestMethods.d.ts +3 -0
- package/out/utils/removeFailedTestMethods.js +207 -0
- package/out/utils/removeFailedTestMethods.js.map +1 -0
- package/out/utils/runCommand.d.ts +1 -0
- package/out/utils/runCommand.js +14 -0
- package/out/utils/runCommand.js.map +1 -0
- package/out/utils/spawnExec.d.ts +1 -0
- package/out/utils/spawnExec.js +80 -0
- package/out/utils/spawnExec.js.map +1 -0
- package/out/utils/verifyBuildErrorCausedFile.d.ts +1 -0
- package/out/utils/verifyBuildErrorCausedFile.js +60 -0
- package/out/utils/verifyBuildErrorCausedFile.js.map +1 -0
- package/out/utils/verifyTestCode.d.ts +2 -0
- package/out/utils/verifyTestCode.js +25 -0
- package/out/utils/verifyTestCode.js.map +1 -0
- package/out/utils/writeGenCode.d.ts +1 -0
- package/out/utils/writeGenCode.js +50 -0
- package/out/utils/writeGenCode.js.map +1 -0
- package/out/vs/msBuild.d.ts +13 -0
- package/out/vs/msBuild.js +81 -0
- package/out/vs/msBuild.js.map +1 -0
- package/out/vs/vsTest.d.ts +15 -0
- package/out/vs/vsTest.js +107 -0
- package/out/vs/vsTest.js.map +1 -0
- package/out/vs/vsTools.d.ts +7 -0
- package/out/vs/vsTools.js +177 -0
- package/out/vs/vsTools.js.map +1 -0
- package/out/vsPlugin/getVsPluginVerifyResult.d.ts +2 -0
- package/out/vsPlugin/getVsPluginVerifyResult.js +41 -0
- package/out/vsPlugin/getVsPluginVerifyResult.js.map +1 -0
- package/out/vsPlugin/interactionConstants.d.ts +2 -0
- package/out/vsPlugin/interactionConstants.js +10 -0
- package/out/vsPlugin/interactionConstants.js.map +1 -0
- package/out/vsPlugin/sendStdToVsPlugin.d.ts +1 -0
- package/out/vsPlugin/sendStdToVsPlugin.js +12 -0
- package/out/vsPlugin/sendStdToVsPlugin.js.map +1 -0
- package/out/vsPlugin/stdListener.d.ts +3 -0
- package/out/vsPlugin/stdListener.js +57 -0
- package/out/vsPlugin/stdListener.js.map +1 -0
- package/package.json +33 -0
- package/tools/devenvcom.cmd +13 -0
- package/tools/devenvexe.cmd +13 -0
- package/tools/msbuildexe.cmd +13 -0
- 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,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// });"]}
|