@ai-dev-tools/csharp-copilot-core 0.0.31 → 0.0.32
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/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 +127 -0
- package/out/analyze/generateCodeDependency.js.map +1 -0
- package/out/analyze/installAnalyzerTool.d.ts +1 -0
- package/out/analyze/installAnalyzerTool.js +83 -0
- package/out/analyze/installAnalyzerTool.js.map +1 -0
- package/out/batch/generateCodeTests.d.ts +6 -0
- package/out/batch/generateCodeTests.js +163 -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 +86 -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 +39 -0
- package/out/codeCoverage/codeCoverage.js.map +1 -0
- package/out/codeCoverage/codeCoverageReport.d.ts +6 -0
- package/out/codeCoverage/codeCoverageReport.js +76 -0
- package/out/codeCoverage/codeCoverageReport.js.map +1 -0
- package/out/codeCoverage/extractCodeCoverageInfo.d.ts +2 -0
- package/out/codeCoverage/extractCodeCoverageInfo.js +81 -0
- package/out/codeCoverage/extractCodeCoverageInfo.js.map +1 -0
- package/out/codeCoverage/extractCoverageReportPath.d.ts +1 -0
- package/out/codeCoverage/extractCoverageReportPath.js +25 -0
- package/out/codeCoverage/extractCoverageReportPath.js.map +1 -0
- package/out/codeCoverage/generateCodeCoverageReport.d.ts +1 -0
- package/out/codeCoverage/generateCodeCoverageReport.js +30 -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 +23 -0
- package/out/codeCoverage/reportTool.js.map +1 -0
- package/out/codeCoverage/simplifyCoverageXml.d.ts +2 -0
- package/out/codeCoverage/simplifyCoverageXml.js +117 -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 +90 -0
- package/out/command/index.js.map +1 -0
- package/out/command/utGenWrapper.d.ts +3 -0
- package/out/command/utGenWrapper.js +53 -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 +129 -0
- package/out/gen/autoFix.js.map +1 -0
- package/out/gen/csharpUtGen.d.ts +2 -0
- package/out/gen/csharpUtGen.js +125 -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/addAiAnnotation.d.ts +1 -0
- package/out/gen/postGen/addAiAnnotation.js +57 -0
- package/out/gen/postGen/addAiAnnotation.js.map +1 -0
- package/out/gen/postGen/extractCodeFromResponse.d.ts +1 -0
- package/out/gen/postGen/extractCodeFromResponse.js +38 -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 +39 -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 +29 -0
- package/out/gen/postGen/removeSingleLines.js.map +1 -0
- package/out/gen/postGen/repairRequiredNameSpaces.d.ts +2 -0
- package/out/gen/postGen/repairRequiredNameSpaces.js +142 -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 +19 -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 +63 -0
- package/out/gen/preGen/validateCode.js.map +1 -0
- package/out/index.d.ts +3 -0
- package/out/index.js +10 -0
- package/out/index.js.map +1 -0
- package/out/llm/model/Gpt.d.ts +1 -0
- package/out/llm/model/Gpt.js +93 -0
- package/out/llm/model/Gpt.js.map +1 -0
- package/out/llm/preparePrompt.d.ts +2 -0
- package/out/llm/preparePrompt.js +135 -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 +23 -0
- package/out/llm/prompt/generateUtDependency.liquid +3 -0
- package/out/llm/prompt/generateUtSystem.liquid +5 -0
- package/out/llm/prompt/generateUtTemplate.liquid +32 -0
- package/out/llm/prompt/generateUtUserInput.liquid +4 -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.liquid +37 -0
- package/out/llm/sendRequestToLLM.d.ts +4 -0
- package/out/llm/sendRequestToLLM.js +9 -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 +10 -0
- package/out/types/constants.js +14 -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 +33 -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 +297 -0
- package/out/utils/getTestFile.js.map +1 -0
- package/out/utils/parseBuildResult.d.ts +3 -0
- package/out/utils/parseBuildResult.js +45 -0
- package/out/utils/parseBuildResult.js.map +1 -0
- package/out/utils/parseSyntaxCheckResult.d.ts +2 -0
- package/out/utils/parseSyntaxCheckResult.js +39 -0
- package/out/utils/parseSyntaxCheckResult.js.map +1 -0
- package/out/utils/parseVstestResult.d.ts +3 -0
- package/out/utils/parseVstestResult.js +62 -0
- package/out/utils/parseVstestResult.js.map +1 -0
- package/out/utils/removeFailedTestMethods.d.ts +3 -0
- package/out/utils/removeFailedTestMethods.js +208 -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/writeFailedVerifyResult.d.ts +1 -0
- package/out/utils/writeFailedVerifyResult.js +67 -0
- package/out/utils/writeFailedVerifyResult.js.map +1 -0
- package/out/utils/writeGenCode.d.ts +1 -0
- package/out/utils/writeGenCode.js +63 -0
- package/out/utils/writeGenCode.js.map +1 -0
- package/out/vs/msBuild.d.ts +13 -0
- package/out/vs/msBuild.js +49 -0
- package/out/vs/msBuild.js.map +1 -0
- package/out/vs/vsTest.d.ts +15 -0
- package/out/vs/vsTest.js +75 -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 +1 -1
|
@@ -0,0 +1,85 @@
|
|
|
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.execAsync = execAsync;
|
|
7
|
+
exports.removeFile = removeFile;
|
|
8
|
+
exports.sleep = sleep;
|
|
9
|
+
exports.getMachineId = getMachineId;
|
|
10
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
11
|
+
const child_process_1 = require("child_process");
|
|
12
|
+
const fs_1 = __importDefault(require("fs"));
|
|
13
|
+
const os_1 = __importDefault(require("os"));
|
|
14
|
+
function execAsync(command, params, options) {
|
|
15
|
+
return new Promise((resolve) => {
|
|
16
|
+
let execData = {
|
|
17
|
+
process: undefined,
|
|
18
|
+
};
|
|
19
|
+
const abortListener = () => {
|
|
20
|
+
if (execData.process) {
|
|
21
|
+
execData.process.kill();
|
|
22
|
+
execData.process = undefined;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
execData.process = (0, child_process_1.execFile)(command, params, {
|
|
26
|
+
shell: true,
|
|
27
|
+
...options
|
|
28
|
+
}, (error, stdout, stderr) => {
|
|
29
|
+
if (options?.abortSignal) {
|
|
30
|
+
options.abortSignal.removeEventListener('abort', abortListener);
|
|
31
|
+
}
|
|
32
|
+
resolve({
|
|
33
|
+
error,
|
|
34
|
+
stdout,
|
|
35
|
+
stderr
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
console.log(`PID: ${execData.process.pid}`);
|
|
39
|
+
if (options?.abortSignal) {
|
|
40
|
+
options.abortSignal.addEventListener('abort', abortListener);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function removeFile(filePath) {
|
|
45
|
+
try {
|
|
46
|
+
if (fs_1.default.existsSync(filePath)) {
|
|
47
|
+
fs_1.default.unlinkSync(filePath);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
console.log(`Remove file error: ${error}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function sleep(ms) {
|
|
55
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
56
|
+
}
|
|
57
|
+
function getMacAddress() {
|
|
58
|
+
const interfaces = os_1.default.networkInterfaces();
|
|
59
|
+
for (const name of Object.keys(interfaces)) {
|
|
60
|
+
for (const net of interfaces[name]) {
|
|
61
|
+
if (net.family === 'IPv4' &&
|
|
62
|
+
!net.internal &&
|
|
63
|
+
net.mac &&
|
|
64
|
+
net.mac !== '00:00:00:00:00:00') {
|
|
65
|
+
return net.mac;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return 'unknown';
|
|
70
|
+
}
|
|
71
|
+
let _cachedMachineId = null;
|
|
72
|
+
function getMachineId() {
|
|
73
|
+
if (_cachedMachineId) {
|
|
74
|
+
return _cachedMachineId;
|
|
75
|
+
}
|
|
76
|
+
const mac = getMacAddress();
|
|
77
|
+
const hostname = os_1.default.hostname();
|
|
78
|
+
const user = os_1.default.userInfo().username;
|
|
79
|
+
_cachedMachineId = crypto_1.default
|
|
80
|
+
.createHash('sha256')
|
|
81
|
+
.update(`${mac}-${hostname}-${user}`)
|
|
82
|
+
.digest('hex');
|
|
83
|
+
return _cachedMachineId;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=machineId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machineId.js","sourceRoot":"","sources":["../../src/metrics/machineId.ts"],"names":[],"mappings":"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","sourcesContent":["import crypto from 'crypto';\r\nimport { execFile } from 'child_process';\r\nimport fs from 'fs';\r\nimport os from 'os';\r\n\r\nexport function execAsync(command: string, params: string[], options?: { cwd?: string, abortSignal?: AbortSignal }): Promise<{\r\n error: Error | null;\r\n stdout: string;\r\n stderr: string;\r\n}> {\r\n return new Promise((resolve) => {\r\n let execData = {\r\n process: undefined,\r\n };\r\n const abortListener = () => {\r\n if (execData.process) {\r\n execData.process.kill();\r\n execData.process = undefined;\r\n }\r\n };\r\n execData.process = execFile(\r\n command,\r\n params,\r\n {\r\n shell: true,\r\n ...options\r\n },\r\n (error, stdout, stderr) => {\r\n if (options?.abortSignal) {\r\n options.abortSignal.removeEventListener('abort', abortListener);\r\n }\r\n resolve({\r\n error,\r\n stdout,\r\n stderr\r\n });\r\n }\r\n );\r\n console.log(`PID: ${execData.process.pid}`);\r\n if (options?.abortSignal) {\r\n options.abortSignal.addEventListener('abort', abortListener);\r\n }\r\n });\r\n}\r\n\r\nexport function removeFile(filePath: string) {\r\n try {\r\n if (fs.existsSync(filePath)) {\r\n fs.unlinkSync(filePath);\r\n }\r\n } catch (error) {\r\n console.log(`Remove file error: ${error}`);\r\n }\r\n}\r\n\r\nexport function sleep(ms: number) {\r\n return new Promise((resolve) => setTimeout(resolve, ms));\r\n}\r\n\r\nfunction getMacAddress() {\r\n const interfaces = os.networkInterfaces();\r\n\r\n for (const name of Object.keys(interfaces)) {\r\n for (const net of interfaces[name]) {\r\n if (\r\n net.family === 'IPv4' &&\r\n !net.internal &&\r\n net.mac &&\r\n net.mac !== '00:00:00:00:00:00'\r\n ) {\r\n return net.mac;\r\n }\r\n }\r\n }\r\n\r\n return 'unknown';\r\n}\r\n\r\nlet _cachedMachineId: string | null = null;\r\nexport function getMachineId() {\r\n if (_cachedMachineId) {\r\n return _cachedMachineId;\r\n }\r\n const mac = getMacAddress();\r\n const hostname = os.hostname();\r\n const user = os.userInfo().username;\r\n\r\n _cachedMachineId = crypto\r\n .createHash('sha256')\r\n .update(`${mac}-${hostname}-${user}`)\r\n .digest('hex');\r\n return _cachedMachineId;\r\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function setup(config: any): void;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setup = setup;
|
|
4
|
+
const setupConsole_1 = require("./setupConsole");
|
|
5
|
+
const setupLLMRequest_1 = require("./setupLLMRequest");
|
|
6
|
+
function setup(config) {
|
|
7
|
+
(0, setupLLMRequest_1.setupSendRequestToLLMFunc)(config.getLLMResponse);
|
|
8
|
+
config.getConsole && (0, setupConsole_1.setupConsole)(config.getConsole);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/setup/setup.ts"],"names":[],"mappings":";;AAGA,sBAGC;AAND,iDAA8C;AAC9C,uDAA8D;AAE9D,SAAgB,KAAK,CAAC,MAAM;IACxB,IAAA,2CAAyB,EAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,CAAC,UAAU,IAAI,IAAA,2BAAY,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACzD,CAAC","sourcesContent":["import { setupConsole } from \"./setupConsole\";\r\nimport { setupSendRequestToLLMFunc } from \"./setupLLMRequest\";\r\n\r\nexport function setup(config) {\r\n setupSendRequestToLLMFunc(config.getLLMResponse);\r\n config.getConsole && setupConsole(config.getConsole);\r\n}\r\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function setupConsole(consoleLogger: any): void;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// keep original console functions
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.setupConsole = setupConsole;
|
|
5
|
+
function setupConsole(consoleLogger) {
|
|
6
|
+
if (!consoleLogger) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
const originalConsole = global.console;
|
|
10
|
+
const customConsole = {
|
|
11
|
+
...originalConsole, // 保留其他方法,如 console.info/warn
|
|
12
|
+
log: (...args) => {
|
|
13
|
+
consoleLogger.log(...args);
|
|
14
|
+
originalConsole.log(...args);
|
|
15
|
+
},
|
|
16
|
+
error: (...args) => {
|
|
17
|
+
consoleLogger.error(...args);
|
|
18
|
+
originalConsole.error(...args);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
global.console = customConsole;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=setupConsole.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupConsole.js","sourceRoot":"","sources":["../../src/setup/setupConsole.ts"],"names":[],"mappings":";AACA,kCAAkC;;AAElC,oCAoBC;AApBD,SAAgB,YAAY,CAAC,aAAa;IACtC,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,OAAO;IACX,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC;IAEvC,MAAM,aAAa,GAAY;QAC3B,GAAG,eAAe,EAAE,6BAA6B;QACjD,GAAG,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YACpB,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAC3B,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YACtB,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAC7B,eAAe,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACnC,CAAC;KACJ,CAAC;IAEF,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC;AACnC,CAAC","sourcesContent":["\r\n// keep original console functions\r\n\r\nexport function setupConsole(consoleLogger) {\r\n if (!consoleLogger) {\r\n return;\r\n }\r\n\r\n const originalConsole = global.console;\r\n\r\n const customConsole: Console = {\r\n ...originalConsole, // 保留其他方法,如 console.info/warn\r\n log: (...args: any[]) => {\r\n consoleLogger.log(...args);\r\n originalConsole.log(...args);\r\n },\r\n error: (...args: any[]) => {\r\n consoleLogger.error(...args);\r\n originalConsole.error(...args);\r\n }\r\n };\r\n\r\n global.console = customConsole;\r\n}"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._sendRequestToLLM = void 0;
|
|
4
|
+
exports.setupSendRequestToLLMFunc = setupSendRequestToLLMFunc;
|
|
5
|
+
const sendRequestToSelfHostLLM_1 = require("../llm/sendRequestToSelfHostLLM");
|
|
6
|
+
exports._sendRequestToLLM = sendRequestToSelfHostLLM_1.sendRequestToSelfHostLLM;
|
|
7
|
+
function setupSendRequestToLLMFunc(sendRequestToLLMFunc) {
|
|
8
|
+
exports._sendRequestToLLM = sendRequestToLLMFunc;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=setupLLMRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupLLMRequest.js","sourceRoot":"","sources":["../../src/setup/setupLLMRequest.ts"],"names":[],"mappings":";;;AAGA,8DAEC;AALD,8EAA2E;AAEhE,QAAA,iBAAiB,GAAQ,mDAAwB,CAAC;AAC7D,SAAgB,yBAAyB,CAAC,oBAAyB;IAC/D,yBAAiB,GAAG,oBAAoB,CAAC;AAC7C,CAAC","sourcesContent":["import { sendRequestToSelfHostLLM } from \"../llm/sendRequestToSelfHostLLM\";\r\n\r\nexport let _sendRequestToLLM: any = sendRequestToSelfHostLLM;\r\nexport function setupSendRequestToLLMFunc(sendRequestToLLMFunc: any) {\r\n _sendRequestToLLM = sendRequestToLLMFunc;\r\n}\r\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@echo OFF
|
|
2
|
+
|
|
3
|
+
IF EXIST "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\devenv.com" (
|
|
4
|
+
SET DEVENVCOM="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\devenv.com"
|
|
5
|
+
) ELSE IF EXIST "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv.com" (
|
|
6
|
+
SET DEVENVCOM="C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv.com"
|
|
7
|
+
) ELSE IF EXIST "C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\devenv.com" (
|
|
8
|
+
SET DEVENVCOM="C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\devenv.com"
|
|
9
|
+
) ELSE (
|
|
10
|
+
SET DEVENVCOM="devenv.com"
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
%DEVENVCOM% %*
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@echo OFF
|
|
2
|
+
|
|
3
|
+
IF EXIST "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\devenv.exe" (
|
|
4
|
+
SET DEVENVEXE="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\devenv.exe"
|
|
5
|
+
) ELSE IF EXIST "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv.exe" (
|
|
6
|
+
SET DEVENVEXE="C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv.exe"
|
|
7
|
+
) ELSE IF EXIST "C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\devenv.exe" (
|
|
8
|
+
SET DEVENVEXE="C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\devenv.exe"
|
|
9
|
+
) ELSE (
|
|
10
|
+
SET DEVENVEXE="devenv.exe"
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
%DEVENVEXE% %*
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@echo OFF
|
|
2
|
+
|
|
3
|
+
IF EXIST "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\amd64\MSbuild.exe" (
|
|
4
|
+
SET MSBUILDEXE="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\amd64\MSbuild.exe"
|
|
5
|
+
) ELSE IF EXIST "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\MSbuild.exe" (
|
|
6
|
+
SET MSBUILDEXE="C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\MSbuild.exe"
|
|
7
|
+
) ELSE IF EXIST "C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\MSbuild.exe" (
|
|
8
|
+
SET MSBUILDEXE="C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\MSbuild.exe"
|
|
9
|
+
) ELSE (
|
|
10
|
+
SET MSBUILDEXE="msbuild.exe"
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
%MSBUILDEXE% %*
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@echo OFF
|
|
2
|
+
|
|
3
|
+
IF EXIST "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\TestPlatform\vstest.console.exe" (
|
|
4
|
+
SET VSTESTEXE="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\TestPlatform\vstest.console.exe"
|
|
5
|
+
) ELSE IF EXIST "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\TestPlatform\vstest.console.exe" (
|
|
6
|
+
SET VSTESTEXE="C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\TestPlatform\vstest.console.exe"
|
|
7
|
+
) ELSE IF EXIST "C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\TestPlatform\vstest.console.exe" (
|
|
8
|
+
SET VSTESTEXE="C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\TestPlatform\vstest.console.exe"
|
|
9
|
+
) ELSE (
|
|
10
|
+
SET VSTESTEXE="vstest.console.exe"
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
%VSTESTEXE% %*
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BuildResult } from "./buildResult";
|
|
2
|
+
import { TestResult } from "./testResult";
|
|
3
|
+
export interface BenchmarkRow {
|
|
4
|
+
solutionPath: string;
|
|
5
|
+
projectPath: string;
|
|
6
|
+
codeFilePath: string;
|
|
7
|
+
testFilePath: string;
|
|
8
|
+
success: boolean;
|
|
9
|
+
buildResult?: BuildResult;
|
|
10
|
+
testResult?: TestResult;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../../src/types/benchmark.ts"],"names":[],"mappings":"","sourcesContent":["import { BuildResult } from \"./buildResult\";\r\nimport { TestResult } from \"./testResult\";\r\n\r\nexport interface BenchmarkRow {\r\n solutionPath: string;\r\n projectPath: string;\r\n codeFilePath: string;\r\n testFilePath: string;\r\n success: boolean;\r\n buildResult?: BuildResult;\r\n testResult?: TestResult;\r\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildResult.js","sourceRoot":"","sources":["../../src/types/buildResult.ts"],"names":[],"mappings":"","sourcesContent":["export interface BuildResult {\r\n file: string;\r\n line: number;\r\n column: number;\r\n errorCode: string;\r\n message: string;\r\n project: string;\r\n}\r\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const CSVSPLUGIN = "csvsplugin";
|
|
2
|
+
export declare const CSHARPUTGEN = "csharpUtGen";
|
|
3
|
+
export declare const CSVSCODEPLUGIN = "csVsCodePlugin";
|
|
4
|
+
export declare const PIPELINE = "pipeline";
|
|
5
|
+
export declare const LINESEPARATOR: RegExp;
|
|
6
|
+
export declare const AICONTRIBUTED = "@aiContributed";
|
|
7
|
+
export declare const NAMESPACE = "namespace";
|
|
8
|
+
export declare const MSTESTFRAMEWORK = "MSTest";
|
|
9
|
+
export declare const NUNITTESTFRAMEWORK = "NUnit";
|
|
10
|
+
export declare const XUNITTESTFRAMEWORK = "xUnit";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XUNITTESTFRAMEWORK = exports.NUNITTESTFRAMEWORK = exports.MSTESTFRAMEWORK = exports.NAMESPACE = exports.AICONTRIBUTED = exports.LINESEPARATOR = exports.PIPELINE = exports.CSVSCODEPLUGIN = exports.CSHARPUTGEN = exports.CSVSPLUGIN = void 0;
|
|
4
|
+
exports.CSVSPLUGIN = 'csvsplugin';
|
|
5
|
+
exports.CSHARPUTGEN = 'csharpUtGen';
|
|
6
|
+
exports.CSVSCODEPLUGIN = 'csVsCodePlugin';
|
|
7
|
+
exports.PIPELINE = 'pipeline';
|
|
8
|
+
exports.LINESEPARATOR = /\r?\n/;
|
|
9
|
+
exports.AICONTRIBUTED = '@aiContributed';
|
|
10
|
+
exports.NAMESPACE = 'namespace';
|
|
11
|
+
exports.MSTESTFRAMEWORK = 'MSTest';
|
|
12
|
+
exports.NUNITTESTFRAMEWORK = 'NUnit';
|
|
13
|
+
exports.XUNITTESTFRAMEWORK = 'xUnit';
|
|
14
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/types/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,cAAc,GAAG,gBAAgB,CAAC;AAClC,QAAA,QAAQ,GAAG,UAAU,CAAC;AACtB,QAAA,aAAa,GAAG,OAAO,CAAC;AACxB,QAAA,aAAa,GAAG,gBAAgB,CAAC;AACjC,QAAA,SAAS,GAAG,WAAW,CAAC;AACxB,QAAA,eAAe,GAAG,QAAQ,CAAC;AAC3B,QAAA,kBAAkB,GAAG,OAAO,CAAC;AAC7B,QAAA,kBAAkB,GAAG,OAAO,CAAC","sourcesContent":["export const CSVSPLUGIN = 'csvsplugin';\r\nexport const CSHARPUTGEN = 'csharpUtGen';\r\nexport const CSVSCODEPLUGIN = 'csVsCodePlugin';\r\nexport const PIPELINE = 'pipeline';\r\nexport const LINESEPARATOR = /\\r?\\n/;\r\nexport const AICONTRIBUTED = '@aiContributed';\r\nexport const NAMESPACE = 'namespace';\r\nexport const MSTESTFRAMEWORK = 'MSTest';\r\nexport const NUNITTESTFRAMEWORK = 'NUnit';\r\nexport const XUNITTESTFRAMEWORK = 'xUnit';\r\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BuildResult } from "./buildResult";
|
|
2
|
+
import { TestResult } from "./testResult";
|
|
3
|
+
export interface GenResult {
|
|
4
|
+
testFilePath: string;
|
|
5
|
+
testProjectPath: string;
|
|
6
|
+
codeFilePath: string;
|
|
7
|
+
success: boolean;
|
|
8
|
+
buildResult?: BuildResult;
|
|
9
|
+
testResult?: TestResult;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genResult.js","sourceRoot":"","sources":["../../src/types/genResult.ts"],"names":[],"mappings":"","sourcesContent":["import { BuildResult } from \"./buildResult\";\r\nimport { TestResult } from \"./testResult\";\r\n\r\nexport interface GenResult {\r\n testFilePath: string;\r\n testProjectPath: string;\r\n codeFilePath: string;\r\n success: boolean;\r\n buildResult?: BuildResult;\r\n testResult?: TestResult;\r\n}\r\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testResult.js","sourceRoot":"","sources":["../../src/types/testResult.ts"],"names":[],"mappings":"","sourcesContent":["export interface FailedTest {\r\n name: string;\r\n errorMessage: string;\r\n stackTrace: string;\r\n}\r\n\r\nexport interface TestResult {\r\n passedTests: string[];\r\n failedTests: FailedTest[];\r\n totalTests?: number;\r\n passed?: number;\r\n failed?: number;\r\n}\r\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifyResult.js","sourceRoot":"","sources":["../../src/types/verifyResult.ts"],"names":[],"mappings":"","sourcesContent":["import { BuildResult } from \"./buildResult\";\r\nimport { TestResult } from \"./testResult\";\r\n\r\nexport interface VerifyResult {\r\n success: boolean;\r\n message: string;\r\n buildErrors: BuildResult[];\r\n testResult: TestResult;\r\n}\r\n"]}
|
|
@@ -0,0 +1,79 @@
|
|
|
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.isTestProject = isTestProject;
|
|
37
|
+
exports.checkTestProject = checkTestProject;
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const fast_xml_parser_1 = require("fast-xml-parser");
|
|
41
|
+
function isTestProject(csprojPath) {
|
|
42
|
+
const xml = fs.readFileSync(csprojPath, 'utf-8');
|
|
43
|
+
const parser = new fast_xml_parser_1.XMLParser({ ignoreAttributes: false, attributeNamePrefix: '' });
|
|
44
|
+
const parsed = parser.parse(xml);
|
|
45
|
+
const itemGroups = parsed.Project?.ItemGroup ?? [];
|
|
46
|
+
const groups = Array.isArray(itemGroups) ? itemGroups : [itemGroups];
|
|
47
|
+
const testFrameworks = [
|
|
48
|
+
'Microsoft.NET.Test.Sdk',
|
|
49
|
+
'xunit',
|
|
50
|
+
'nunit',
|
|
51
|
+
'MSTest.TestAdapter',
|
|
52
|
+
'MSTest.TestFramework',
|
|
53
|
+
'NUnit3TestAdapter',
|
|
54
|
+
];
|
|
55
|
+
for (const group of groups) {
|
|
56
|
+
const packages = group.PackageReference;
|
|
57
|
+
if (!packages)
|
|
58
|
+
continue;
|
|
59
|
+
const packageArray = Array.isArray(packages) ? packages : [packages];
|
|
60
|
+
for (const pkg of packageArray) {
|
|
61
|
+
const pkgName = pkg.Include;
|
|
62
|
+
if (pkgName && testFrameworks.some(name => pkgName.toLowerCase().includes(name.toLowerCase()))) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
function checkTestProject(csprojPath) {
|
|
70
|
+
try {
|
|
71
|
+
const isPathLikelyTest = /[/\\](test|tests)[/\\]?/i.test(csprojPath) || /test/i.test(path.basename(csprojPath));
|
|
72
|
+
return isTestProject(csprojPath) && isPathLikelyTest;
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
console.error(`Error checking test project for ${csprojPath}:`, error);
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=checkTestProject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkTestProject.js","sourceRoot":"","sources":["../../src/utils/checkTestProject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,sCAgCC;AAED,4CAQC;AA/CD,uCAAyB;AACzB,2CAA6B;AAE7B,qDAA4C;AAE5C,SAAgB,aAAa,CAAC,UAAkB;IAC5C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,2BAAS,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEjC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAErE,MAAM,cAAc,GAAG;QACnB,wBAAwB;QACxB,OAAO;QACP,OAAO;QACP,oBAAoB;QACpB,sBAAsB;QACtB,mBAAmB;KACtB,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,gBAAgB,CAAC;QACxC,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAErE,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;YAC5B,IAAI,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC7F,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAgB,gBAAgB,CAAC,UAAkB;IAC/C,IAAI,CAAC;QACD,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAChH,OAAO,aAAa,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,mCAAmC,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;QACvE,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC","sourcesContent":["import * as fs from 'fs';\r\nimport * as path from 'path';\r\n\r\nimport { XMLParser } from 'fast-xml-parser';\r\n\r\nexport function isTestProject(csprojPath: string): boolean {\r\n const xml = fs.readFileSync(csprojPath, 'utf-8');\r\n const parser = new XMLParser({ ignoreAttributes: false, attributeNamePrefix: '' });\r\n const parsed = parser.parse(xml);\r\n\r\n const itemGroups = parsed.Project?.ItemGroup ?? [];\r\n const groups = Array.isArray(itemGroups) ? itemGroups : [itemGroups];\r\n\r\n const testFrameworks = [\r\n 'Microsoft.NET.Test.Sdk',\r\n 'xunit',\r\n 'nunit',\r\n 'MSTest.TestAdapter',\r\n 'MSTest.TestFramework',\r\n 'NUnit3TestAdapter',\r\n ];\r\n\r\n for (const group of groups) {\r\n const packages = group.PackageReference;\r\n if (!packages) continue;\r\n\r\n const packageArray = Array.isArray(packages) ? packages : [packages];\r\n\r\n for (const pkg of packageArray) {\r\n const pkgName = pkg.Include;\r\n if (pkgName && testFrameworks.some(name => pkgName.toLowerCase().includes(name.toLowerCase()))) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n\r\nexport function checkTestProject(csprojPath: string): boolean {\r\n try {\r\n const isPathLikelyTest = /[/\\\\](test|tests)[/\\\\]?/i.test(csprojPath) || /test/i.test(path.basename(csprojPath));\r\n return isTestProject(csprojPath) && isPathLikelyTest;\r\n } catch (error) {\r\n console.error(`Error checking test project for ${csprojPath}:`, error);\r\n return false;\r\n }\r\n}"]}
|
|
@@ -0,0 +1,59 @@
|
|
|
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.checkXapCodeInterface = checkXapCodeInterface;
|
|
37
|
+
exports.checkXapCode = checkXapCode;
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const XapInterfaces = [
|
|
40
|
+
"IPlugin",
|
|
41
|
+
"IConditionPlugin",
|
|
42
|
+
"Workflow",
|
|
43
|
+
"IExperiment",
|
|
44
|
+
"IPluginDataStore",
|
|
45
|
+
"IAsyncPlugin"
|
|
46
|
+
];
|
|
47
|
+
function checkXapCodeInterface(codePath) {
|
|
48
|
+
try {
|
|
49
|
+
const content = fs.readFileSync(codePath, 'utf-8');
|
|
50
|
+
return XapInterfaces.some(iface => content.includes(`:${iface}`) || content.includes(`: ${iface}`));
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function checkXapCode(code) {
|
|
57
|
+
return code.includes('using Xap.PluginFramework;');
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=checkXapCode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkXapCode.js","sourceRoot":"","sources":["../../src/utils/checkXapCode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,sDAOC;AAED,oCAEC;AAtBD,uCAAyB;AAEzB,MAAM,aAAa,GAAG;IAClB,SAAS;IACT,kBAAkB;IAClB,UAAU;IACV,aAAa;IACb,kBAAkB;IAClB,cAAc;CACjB,CAAC;AAEF,SAAgB,qBAAqB,CAAC,QAAgB;IAClD,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;IACxG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,SAAgB,YAAY,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;AACvD,CAAC","sourcesContent":["import * as fs from 'fs';\r\n\r\nconst XapInterfaces = [\r\n \"IPlugin\",\r\n \"IConditionPlugin\",\r\n \"Workflow\",\r\n \"IExperiment\",\r\n \"IPluginDataStore\",\r\n \"IAsyncPlugin\"\r\n];\r\n\r\nexport function checkXapCodeInterface(codePath: string): boolean {\r\n try {\r\n const content = fs.readFileSync(codePath, 'utf-8');\r\n return XapInterfaces.some(iface => content.includes(`:${iface}`) || content.includes(`: ${iface}`));\r\n } catch (err) {\r\n return false;\r\n }\r\n}\r\n\r\nexport function checkXapCode(code: string): boolean {\r\n return code.includes('using Xap.PluginFramework;');\r\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function delay(ms: number): Promise<unknown>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delay.js","sourceRoot":"","sources":["../../src/utils/delay.ts"],"names":[],"mappings":";;AAAA,sBAEC;AAFD,SAAgB,KAAK,CAAC,EAAU;IAC5B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC","sourcesContent":["export function delay(ms: number) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function detectTestFramework(csprojPath: string): string;
|
|
@@ -0,0 +1,33 @@
|
|
|
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.detectTestFramework = detectTestFramework;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const constants_1 = require("../types/constants");
|
|
9
|
+
function detectTestFramework(csprojPath) {
|
|
10
|
+
const frameworks = [];
|
|
11
|
+
const csprojXml = fs_1.default.readFileSync(csprojPath, "utf-8");
|
|
12
|
+
if (/PackageReference.+Include\s*=\s*["']MSTest\.TestFramework["']/i.test(csprojXml) ||
|
|
13
|
+
/PackageReference.+Include\s*=\s*["']MSTest\.TestAdapter["']/i.test(csprojXml)) {
|
|
14
|
+
return constants_1.MSTESTFRAMEWORK;
|
|
15
|
+
}
|
|
16
|
+
if (/PackageReference.+Include\s*=\s*["']NUnit["']/i.test(csprojXml) ||
|
|
17
|
+
/PackageReference.+Include\s*=\s*["']NUnit3TestAdapter["']/i.test(csprojXml)) {
|
|
18
|
+
return constants_1.NUNITTESTFRAMEWORK;
|
|
19
|
+
}
|
|
20
|
+
if (/PackageReference.+Include\s*=\s*["']xunit["']/i.test(csprojXml)) {
|
|
21
|
+
return constants_1.XUNITTESTFRAMEWORK;
|
|
22
|
+
}
|
|
23
|
+
if (frameworks.length === 0) {
|
|
24
|
+
console.error(`No recognized test framework found in ${csprojPath}. Defaulting to 'MSTest'.`);
|
|
25
|
+
}
|
|
26
|
+
return constants_1.MSTESTFRAMEWORK;
|
|
27
|
+
}
|
|
28
|
+
// detectTestFramework("D:\\code\\AIUnitTestExample\\test\\ToListinator.Tests\\ToListinator.Tests.csproj").forEach(framework => {
|
|
29
|
+
// console.log(`Detected test framework: ${framework}`);
|
|
30
|
+
// });
|
|
31
|
+
// const test = detectTestFramework("D:\\code\\CS.Service.Fundamental\\SharedSegments\\SharedSegments\\SharedSegments.Plugins\\SharedSegments.Plugins.csproj");
|
|
32
|
+
// console.log(`Detected test framework: ${test}`);
|
|
33
|
+
//# sourceMappingURL=detectTestFramework.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detectTestFramework.js","sourceRoot":"","sources":["../../src/utils/detectTestFramework.ts"],"names":[],"mappings":";;;;;AAGA,kDAuBC;AA1BD,4CAAoB;AACpB,kDAA6F;AAE7F,SAAgB,mBAAmB,CAAC,UAAkB;IACrD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEvD,IAAI,gEAAgE,CAAC,IAAI,CAAC,SAAS,CAAC;QACnF,8DAA8D,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACjF,OAAO,2BAAe,CAAC;IACxB,CAAC;IAED,IAAI,gDAAgD,CAAC,IAAI,CAAC,SAAS,CAAC;QACnE,4DAA4D,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/E,OAAO,8BAAkB,CAAC;IAC3B,CAAC;IAED,IAAI,gDAAgD,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACtE,OAAO,8BAAkB,CAAC;IAC3B,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,yCAAyC,UAAU,2BAA2B,CAAC,CAAC;IAC/F,CAAC;IAED,OAAO,2BAAe,CAAC;AACxB,CAAC;AAED,iIAAiI;AACjI,0DAA0D;AAC1D,MAAM;AAEN,+JAA+J;AAC/J,mDAAmD","sourcesContent":["import fs from 'fs';\r\nimport { MSTESTFRAMEWORK, NUNITTESTFRAMEWORK, XUNITTESTFRAMEWORK } from '../types/constants';\r\n\r\nexport function detectTestFramework(csprojPath: string): string {\r\n\tconst frameworks: string[] = [];\r\n\tconst csprojXml = fs.readFileSync(csprojPath, \"utf-8\");\r\n\r\n\tif (/PackageReference.+Include\\s*=\\s*[\"']MSTest\\.TestFramework[\"']/i.test(csprojXml) ||\r\n\t\t/PackageReference.+Include\\s*=\\s*[\"']MSTest\\.TestAdapter[\"']/i.test(csprojXml)) {\r\n\t\treturn MSTESTFRAMEWORK;\r\n\t}\r\n\r\n\tif (/PackageReference.+Include\\s*=\\s*[\"']NUnit[\"']/i.test(csprojXml) ||\r\n\t\t/PackageReference.+Include\\s*=\\s*[\"']NUnit3TestAdapter[\"']/i.test(csprojXml)) {\r\n\t\treturn NUNITTESTFRAMEWORK;\r\n\t}\r\n\r\n\tif (/PackageReference.+Include\\s*=\\s*[\"']xunit[\"']/i.test(csprojXml)) {\r\n\t\treturn XUNITTESTFRAMEWORK;\r\n\t}\r\n\r\n\tif (frameworks.length === 0) {\r\n\t\tconsole.error(`No recognized test framework found in ${csprojPath}. Defaulting to 'MSTest'.`);\r\n\t}\r\n\r\n\treturn MSTESTFRAMEWORK;\r\n}\r\n\r\n// detectTestFramework(\"D:\\\\code\\\\AIUnitTestExample\\\\test\\\\ToListinator.Tests\\\\ToListinator.Tests.csproj\").forEach(framework => {\r\n// console.log(`Detected test framework: ${framework}`);\r\n// });\r\n\r\n// const test = detectTestFramework(\"D:\\\\code\\\\CS.Service.Fundamental\\\\SharedSegments\\\\SharedSegments\\\\SharedSegments.Plugins\\\\SharedSegments.Plugins.csproj\");\r\n// console.log(`Detected test framework: ${test}`);"]}
|