test-genie-mcp 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.md +219 -0
  2. package/dist/analyzers/astAnalyzer.d.ts +108 -0
  3. package/dist/analyzers/astAnalyzer.d.ts.map +1 -0
  4. package/dist/analyzers/astAnalyzer.js +800 -0
  5. package/dist/analyzers/astAnalyzer.js.map +1 -0
  6. package/dist/analyzers/performanceAnalyzer.d.ts +90 -0
  7. package/dist/analyzers/performanceAnalyzer.d.ts.map +1 -0
  8. package/dist/analyzers/performanceAnalyzer.js +647 -0
  9. package/dist/analyzers/performanceAnalyzer.js.map +1 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +683 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/platforms/android/index.d.ts +90 -0
  15. package/dist/platforms/android/index.d.ts.map +1 -0
  16. package/dist/platforms/android/index.js +519 -0
  17. package/dist/platforms/android/index.js.map +1 -0
  18. package/dist/platforms/flutter/index.d.ts +105 -0
  19. package/dist/platforms/flutter/index.d.ts.map +1 -0
  20. package/dist/platforms/flutter/index.js +533 -0
  21. package/dist/platforms/flutter/index.js.map +1 -0
  22. package/dist/platforms/ios/index.d.ts +79 -0
  23. package/dist/platforms/ios/index.d.ts.map +1 -0
  24. package/dist/platforms/ios/index.js +393 -0
  25. package/dist/platforms/ios/index.js.map +1 -0
  26. package/dist/platforms/react-native/index.d.ts +160 -0
  27. package/dist/platforms/react-native/index.d.ts.map +1 -0
  28. package/dist/platforms/react-native/index.js +602 -0
  29. package/dist/platforms/react-native/index.js.map +1 -0
  30. package/dist/platforms/web/index.d.ts +177 -0
  31. package/dist/platforms/web/index.d.ts.map +1 -0
  32. package/dist/platforms/web/index.js +637 -0
  33. package/dist/platforms/web/index.js.map +1 -0
  34. package/dist/storage/index.d.ts +35 -0
  35. package/dist/storage/index.d.ts.map +1 -0
  36. package/dist/storage/index.js +351 -0
  37. package/dist/storage/index.js.map +1 -0
  38. package/dist/tools/analysis/analyzeAppStructure.d.ts +9 -0
  39. package/dist/tools/analysis/analyzeAppStructure.d.ts.map +1 -0
  40. package/dist/tools/analysis/analyzeAppStructure.js +289 -0
  41. package/dist/tools/analysis/analyzeAppStructure.js.map +1 -0
  42. package/dist/tools/analysis/createTestPlan.d.ts +21 -0
  43. package/dist/tools/analysis/createTestPlan.d.ts.map +1 -0
  44. package/dist/tools/analysis/createTestPlan.js +214 -0
  45. package/dist/tools/analysis/createTestPlan.js.map +1 -0
  46. package/dist/tools/analysis/generateScenarios.d.ts +21 -0
  47. package/dist/tools/analysis/generateScenarios.d.ts.map +1 -0
  48. package/dist/tools/analysis/generateScenarios.js +567 -0
  49. package/dist/tools/analysis/generateScenarios.js.map +1 -0
  50. package/dist/tools/automation/cicdIntegration.d.ts +41 -0
  51. package/dist/tools/automation/cicdIntegration.d.ts.map +1 -0
  52. package/dist/tools/automation/cicdIntegration.js +825 -0
  53. package/dist/tools/automation/cicdIntegration.js.map +1 -0
  54. package/dist/tools/automation/generateReport.d.ts +16 -0
  55. package/dist/tools/automation/generateReport.d.ts.map +1 -0
  56. package/dist/tools/automation/generateReport.js +406 -0
  57. package/dist/tools/automation/generateReport.js.map +1 -0
  58. package/dist/tools/automation/runFullAutomation.d.ts +25 -0
  59. package/dist/tools/automation/runFullAutomation.d.ts.map +1 -0
  60. package/dist/tools/automation/runFullAutomation.js +296 -0
  61. package/dist/tools/automation/runFullAutomation.js.map +1 -0
  62. package/dist/tools/detection/detectLogicErrors.d.ts +18 -0
  63. package/dist/tools/detection/detectLogicErrors.d.ts.map +1 -0
  64. package/dist/tools/detection/detectLogicErrors.js +470 -0
  65. package/dist/tools/detection/detectLogicErrors.js.map +1 -0
  66. package/dist/tools/detection/detectMemoryLeaks.d.ts +23 -0
  67. package/dist/tools/detection/detectMemoryLeaks.d.ts.map +1 -0
  68. package/dist/tools/detection/detectMemoryLeaks.js +453 -0
  69. package/dist/tools/detection/detectMemoryLeaks.js.map +1 -0
  70. package/dist/tools/execution/runScenarioTest.d.ts +34 -0
  71. package/dist/tools/execution/runScenarioTest.d.ts.map +1 -0
  72. package/dist/tools/execution/runScenarioTest.js +334 -0
  73. package/dist/tools/execution/runScenarioTest.js.map +1 -0
  74. package/dist/tools/execution/runSimulation.d.ts +17 -0
  75. package/dist/tools/execution/runSimulation.d.ts.map +1 -0
  76. package/dist/tools/execution/runSimulation.js +250 -0
  77. package/dist/tools/execution/runSimulation.js.map +1 -0
  78. package/dist/tools/execution/runStressTest.d.ts +52 -0
  79. package/dist/tools/execution/runStressTest.d.ts.map +1 -0
  80. package/dist/tools/execution/runStressTest.js +176 -0
  81. package/dist/tools/execution/runStressTest.js.map +1 -0
  82. package/dist/tools/fixing/applyFix.d.ts +44 -0
  83. package/dist/tools/fixing/applyFix.d.ts.map +1 -0
  84. package/dist/tools/fixing/applyFix.js +399 -0
  85. package/dist/tools/fixing/applyFix.js.map +1 -0
  86. package/dist/tools/fixing/confirmFix.d.ts +31 -0
  87. package/dist/tools/fixing/confirmFix.d.ts.map +1 -0
  88. package/dist/tools/fixing/confirmFix.js +136 -0
  89. package/dist/tools/fixing/confirmFix.js.map +1 -0
  90. package/dist/tools/fixing/suggestFixes.d.ts +23 -0
  91. package/dist/tools/fixing/suggestFixes.d.ts.map +1 -0
  92. package/dist/tools/fixing/suggestFixes.js +349 -0
  93. package/dist/tools/fixing/suggestFixes.js.map +1 -0
  94. package/dist/types.d.ts +322 -0
  95. package/dist/types.d.ts.map +1 -0
  96. package/dist/types.js +6 -0
  97. package/dist/types.js.map +1 -0
  98. package/dist/utils/codeParser.d.ts +12 -0
  99. package/dist/utils/codeParser.d.ts.map +1 -0
  100. package/dist/utils/codeParser.js +487 -0
  101. package/dist/utils/codeParser.js.map +1 -0
  102. package/package.json +68 -0
@@ -0,0 +1,35 @@
1
+ import { TestScenario, TestPlan, TestResult, DetectedIssue, FixSuggestion, FixConfirmation, FixApplication, StoredScenario, StoredTestResult, StoredFix } from '../types.js';
2
+ export declare function saveScenario(scenario: TestScenario, projectPath: string): void;
3
+ export declare function getScenarios(projectPath?: string): StoredScenario[];
4
+ export declare function getScenarioById(id: string): StoredScenario | undefined;
5
+ export declare function deleteScenario(id: string): boolean;
6
+ export declare function saveTestPlan(plan: TestPlan, projectPath: string): void;
7
+ export declare function getTestPlans(projectPath?: string): TestPlan[];
8
+ export declare function getTestPlanById(id: string): TestPlan | undefined;
9
+ export declare function saveTestResult(result: TestResult, projectPath: string): void;
10
+ export declare function getTestResults(projectPath?: string, limit?: number): StoredTestResult[];
11
+ export declare function getTestResultsByScenario(scenarioId: string): TestResult[];
12
+ export declare function saveIssue(issue: DetectedIssue, projectPath: string): void;
13
+ export declare function saveIssues(issueList: DetectedIssue[], projectPath: string): void;
14
+ export declare function getIssues(projectPath?: string): DetectedIssue[];
15
+ export declare function getIssueById(id: string): DetectedIssue | undefined;
16
+ export declare function deleteIssue(id: string): boolean;
17
+ export declare function saveFix(fix: FixSuggestion, projectPath: string): void;
18
+ export declare function saveFixes(fixList: FixSuggestion[], projectPath: string): void;
19
+ export declare function getFixes(projectPath?: string): StoredFix[];
20
+ export declare function getFixById(id: string): StoredFix | undefined;
21
+ export declare function updateFixConfirmation(fixId: string, confirmation: FixConfirmation): boolean;
22
+ export declare function updateFixApplication(fixId: string, application: FixApplication): boolean;
23
+ export declare function getPendingFixes(projectPath?: string): StoredFix[];
24
+ export declare function getConfirmedFixes(projectPath?: string): StoredFix[];
25
+ export declare function getStats(projectPath?: string): {
26
+ totalScenarios: number;
27
+ totalResults: number;
28
+ totalIssues: number;
29
+ totalFixes: number;
30
+ pendingFixes: number;
31
+ appliedFixes: number;
32
+ };
33
+ export declare function clearAll(): void;
34
+ export declare function clearProject(projectPath: string): void;
35
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,SAAS,EACV,MAAM,aAAa,CAAC;AAsCrB,wBAAgB,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAoB9E;AAED,wBAAgB,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,CAMnE;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAGtE;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAQlD;AAKD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAiBtE;AAED,wBAAgB,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAM7D;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAGhE;AAKD,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAe5E;AAED,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,gBAAgB,EAAE,CAIpF;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,EAAE,CAGzE;AAKD,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAiBzE;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAIhF;AAED,wBAAgB,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE,CAM/D;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAGlE;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAQ/C;AAKD,wBAAgB,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAoBrE;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAI7E;AAED,wBAAgB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAM1D;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAG5D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,GAAG,OAAO,CAY3F;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,GAAG,OAAO,CAYxF;AAED,wBAAgB,eAAe,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAEjE;AAED,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAEnE;AAKD,wBAAgB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CASA;AAKD,wBAAgB,QAAQ,IAAI,IAAI,CAM/B;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAoBtD"}
@@ -0,0 +1,351 @@
1
+ "use strict";
2
+ // ============================================
3
+ // Storage Module for Test Genie MCP
4
+ // ============================================
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.saveScenario = saveScenario;
40
+ exports.getScenarios = getScenarios;
41
+ exports.getScenarioById = getScenarioById;
42
+ exports.deleteScenario = deleteScenario;
43
+ exports.saveTestPlan = saveTestPlan;
44
+ exports.getTestPlans = getTestPlans;
45
+ exports.getTestPlanById = getTestPlanById;
46
+ exports.saveTestResult = saveTestResult;
47
+ exports.getTestResults = getTestResults;
48
+ exports.getTestResultsByScenario = getTestResultsByScenario;
49
+ exports.saveIssue = saveIssue;
50
+ exports.saveIssues = saveIssues;
51
+ exports.getIssues = getIssues;
52
+ exports.getIssueById = getIssueById;
53
+ exports.deleteIssue = deleteIssue;
54
+ exports.saveFix = saveFix;
55
+ exports.saveFixes = saveFixes;
56
+ exports.getFixes = getFixes;
57
+ exports.getFixById = getFixById;
58
+ exports.updateFixConfirmation = updateFixConfirmation;
59
+ exports.updateFixApplication = updateFixApplication;
60
+ exports.getPendingFixes = getPendingFixes;
61
+ exports.getConfirmedFixes = getConfirmedFixes;
62
+ exports.getStats = getStats;
63
+ exports.clearAll = clearAll;
64
+ exports.clearProject = clearProject;
65
+ const fs = __importStar(require("fs"));
66
+ const path = __importStar(require("path"));
67
+ const STORAGE_DIR = path.join(process.env.HOME || '~', '.test-genie-mcp');
68
+ const SCENARIOS_FILE = path.join(STORAGE_DIR, 'scenarios.json');
69
+ const RESULTS_FILE = path.join(STORAGE_DIR, 'results.json');
70
+ const FIXES_FILE = path.join(STORAGE_DIR, 'fixes.json');
71
+ const PLANS_FILE = path.join(STORAGE_DIR, 'plans.json');
72
+ const ISSUES_FILE = path.join(STORAGE_DIR, 'issues.json');
73
+ // Ensure storage directory exists
74
+ function ensureStorageDir() {
75
+ if (!fs.existsSync(STORAGE_DIR)) {
76
+ fs.mkdirSync(STORAGE_DIR, { recursive: true });
77
+ }
78
+ }
79
+ // Generic JSON read/write
80
+ function readJson(filePath, defaultValue) {
81
+ ensureStorageDir();
82
+ if (!fs.existsSync(filePath)) {
83
+ return defaultValue;
84
+ }
85
+ try {
86
+ const content = fs.readFileSync(filePath, 'utf-8');
87
+ return JSON.parse(content);
88
+ }
89
+ catch {
90
+ return defaultValue;
91
+ }
92
+ }
93
+ function writeJson(filePath, data) {
94
+ ensureStorageDir();
95
+ fs.writeFileSync(filePath, JSON.stringify(data, null, 2), 'utf-8');
96
+ }
97
+ // ============================================
98
+ // Scenario Storage
99
+ // ============================================
100
+ function saveScenario(scenario, projectPath) {
101
+ const scenarios = readJson(SCENARIOS_FILE, []);
102
+ const existing = scenarios.findIndex(s => s.scenario.id === scenario.id && s.projectPath === projectPath);
103
+ const stored = {
104
+ scenario,
105
+ projectPath,
106
+ createdAt: existing >= 0 ? scenarios[existing].createdAt : new Date().toISOString(),
107
+ updatedAt: new Date().toISOString(),
108
+ };
109
+ if (existing >= 0) {
110
+ scenarios[existing] = stored;
111
+ }
112
+ else {
113
+ scenarios.push(stored);
114
+ }
115
+ writeJson(SCENARIOS_FILE, scenarios);
116
+ }
117
+ function getScenarios(projectPath) {
118
+ const scenarios = readJson(SCENARIOS_FILE, []);
119
+ if (projectPath) {
120
+ return scenarios.filter(s => s.projectPath === projectPath);
121
+ }
122
+ return scenarios;
123
+ }
124
+ function getScenarioById(id) {
125
+ const scenarios = readJson(SCENARIOS_FILE, []);
126
+ return scenarios.find(s => s.scenario.id === id);
127
+ }
128
+ function deleteScenario(id) {
129
+ const scenarios = readJson(SCENARIOS_FILE, []);
130
+ const filtered = scenarios.filter(s => s.scenario.id !== id);
131
+ if (filtered.length < scenarios.length) {
132
+ writeJson(SCENARIOS_FILE, filtered);
133
+ return true;
134
+ }
135
+ return false;
136
+ }
137
+ // ============================================
138
+ // Test Plan Storage
139
+ // ============================================
140
+ function saveTestPlan(plan, projectPath) {
141
+ const plans = readJson(PLANS_FILE, []);
142
+ const existing = plans.findIndex(p => p.plan.id === plan.id);
143
+ const stored = {
144
+ plan,
145
+ projectPath,
146
+ createdAt: existing >= 0 ? plans[existing].createdAt : new Date().toISOString(),
147
+ };
148
+ if (existing >= 0) {
149
+ plans[existing] = stored;
150
+ }
151
+ else {
152
+ plans.push(stored);
153
+ }
154
+ writeJson(PLANS_FILE, plans);
155
+ }
156
+ function getTestPlans(projectPath) {
157
+ const plans = readJson(PLANS_FILE, []);
158
+ if (projectPath) {
159
+ return plans.filter(p => p.projectPath === projectPath).map(p => p.plan);
160
+ }
161
+ return plans.map(p => p.plan);
162
+ }
163
+ function getTestPlanById(id) {
164
+ const plans = readJson(PLANS_FILE, []);
165
+ return plans.find(p => p.plan.id === id)?.plan;
166
+ }
167
+ // ============================================
168
+ // Test Result Storage
169
+ // ============================================
170
+ function saveTestResult(result, projectPath) {
171
+ const results = readJson(RESULTS_FILE, []);
172
+ results.push({
173
+ result,
174
+ projectPath,
175
+ createdAt: new Date().toISOString(),
176
+ });
177
+ // Keep only last 1000 results
178
+ if (results.length > 1000) {
179
+ results.splice(0, results.length - 1000);
180
+ }
181
+ writeJson(RESULTS_FILE, results);
182
+ }
183
+ function getTestResults(projectPath, limit = 100) {
184
+ const results = readJson(RESULTS_FILE, []);
185
+ let filtered = projectPath ? results.filter(r => r.projectPath === projectPath) : results;
186
+ return filtered.slice(-limit);
187
+ }
188
+ function getTestResultsByScenario(scenarioId) {
189
+ const results = readJson(RESULTS_FILE, []);
190
+ return results.filter(r => r.result.scenarioId === scenarioId).map(r => r.result);
191
+ }
192
+ // ============================================
193
+ // Detected Issues Storage
194
+ // ============================================
195
+ function saveIssue(issue, projectPath) {
196
+ const issues = readJson(ISSUES_FILE, []);
197
+ const existing = issues.findIndex(i => i.issue.id === issue.id);
198
+ const stored = {
199
+ issue,
200
+ projectPath,
201
+ createdAt: existing >= 0 ? issues[existing].createdAt : new Date().toISOString(),
202
+ };
203
+ if (existing >= 0) {
204
+ issues[existing] = stored;
205
+ }
206
+ else {
207
+ issues.push(stored);
208
+ }
209
+ writeJson(ISSUES_FILE, issues);
210
+ }
211
+ function saveIssues(issueList, projectPath) {
212
+ for (const issue of issueList) {
213
+ saveIssue(issue, projectPath);
214
+ }
215
+ }
216
+ function getIssues(projectPath) {
217
+ const issues = readJson(ISSUES_FILE, []);
218
+ if (projectPath) {
219
+ return issues.filter(i => i.projectPath === projectPath).map(i => i.issue);
220
+ }
221
+ return issues.map(i => i.issue);
222
+ }
223
+ function getIssueById(id) {
224
+ const issues = readJson(ISSUES_FILE, []);
225
+ return issues.find(i => i.issue.id === id)?.issue;
226
+ }
227
+ function deleteIssue(id) {
228
+ const issues = readJson(ISSUES_FILE, []);
229
+ const filtered = issues.filter(i => i.issue.id !== id);
230
+ if (filtered.length < issues.length) {
231
+ writeJson(ISSUES_FILE, filtered);
232
+ return true;
233
+ }
234
+ return false;
235
+ }
236
+ // ============================================
237
+ // Fix Storage
238
+ // ============================================
239
+ function saveFix(fix, projectPath) {
240
+ const fixes = readJson(FIXES_FILE, []);
241
+ const existing = fixes.findIndex(f => f.fix.id === fix.id);
242
+ const stored = {
243
+ fix,
244
+ projectPath,
245
+ createdAt: existing >= 0 ? fixes[existing].createdAt : new Date().toISOString(),
246
+ updatedAt: new Date().toISOString(),
247
+ };
248
+ if (existing >= 0) {
249
+ stored.confirmation = fixes[existing].confirmation;
250
+ stored.application = fixes[existing].application;
251
+ fixes[existing] = stored;
252
+ }
253
+ else {
254
+ fixes.push(stored);
255
+ }
256
+ writeJson(FIXES_FILE, fixes);
257
+ }
258
+ function saveFixes(fixList, projectPath) {
259
+ for (const fix of fixList) {
260
+ saveFix(fix, projectPath);
261
+ }
262
+ }
263
+ function getFixes(projectPath) {
264
+ const fixes = readJson(FIXES_FILE, []);
265
+ if (projectPath) {
266
+ return fixes.filter(f => f.projectPath === projectPath);
267
+ }
268
+ return fixes;
269
+ }
270
+ function getFixById(id) {
271
+ const fixes = readJson(FIXES_FILE, []);
272
+ return fixes.find(f => f.fix.id === id);
273
+ }
274
+ function updateFixConfirmation(fixId, confirmation) {
275
+ const fixes = readJson(FIXES_FILE, []);
276
+ const fix = fixes.find(f => f.fix.id === fixId);
277
+ if (fix) {
278
+ fix.confirmation = confirmation;
279
+ fix.fix.status = confirmation.action === 'approve' ? 'confirmed' : 'rejected';
280
+ fix.fix.confirmedAt = confirmation.confirmedAt;
281
+ fix.updatedAt = new Date().toISOString();
282
+ writeJson(FIXES_FILE, fixes);
283
+ return true;
284
+ }
285
+ return false;
286
+ }
287
+ function updateFixApplication(fixId, application) {
288
+ const fixes = readJson(FIXES_FILE, []);
289
+ const fix = fixes.find(f => f.fix.id === fixId);
290
+ if (fix) {
291
+ fix.application = application;
292
+ fix.fix.status = application.success ? 'applied' : 'failed';
293
+ fix.fix.appliedAt = application.appliedAt;
294
+ fix.updatedAt = new Date().toISOString();
295
+ writeJson(FIXES_FILE, fixes);
296
+ return true;
297
+ }
298
+ return false;
299
+ }
300
+ function getPendingFixes(projectPath) {
301
+ return getFixes(projectPath).filter(f => f.fix.status === 'pending');
302
+ }
303
+ function getConfirmedFixes(projectPath) {
304
+ return getFixes(projectPath).filter(f => f.fix.status === 'confirmed');
305
+ }
306
+ // ============================================
307
+ // Stats
308
+ // ============================================
309
+ function getStats(projectPath) {
310
+ return {
311
+ totalScenarios: getScenarios(projectPath).length,
312
+ totalResults: getTestResults(projectPath).length,
313
+ totalIssues: getIssues(projectPath).length,
314
+ totalFixes: getFixes(projectPath).length,
315
+ pendingFixes: getPendingFixes(projectPath).length,
316
+ appliedFixes: getFixes(projectPath).filter(f => f.fix.status === 'applied').length,
317
+ };
318
+ }
319
+ // ============================================
320
+ // Clear Storage
321
+ // ============================================
322
+ function clearAll() {
323
+ if (fs.existsSync(SCENARIOS_FILE))
324
+ fs.unlinkSync(SCENARIOS_FILE);
325
+ if (fs.existsSync(RESULTS_FILE))
326
+ fs.unlinkSync(RESULTS_FILE);
327
+ if (fs.existsSync(FIXES_FILE))
328
+ fs.unlinkSync(FIXES_FILE);
329
+ if (fs.existsSync(PLANS_FILE))
330
+ fs.unlinkSync(PLANS_FILE);
331
+ if (fs.existsSync(ISSUES_FILE))
332
+ fs.unlinkSync(ISSUES_FILE);
333
+ }
334
+ function clearProject(projectPath) {
335
+ // Scenarios
336
+ const scenarios = readJson(SCENARIOS_FILE, []);
337
+ writeJson(SCENARIOS_FILE, scenarios.filter(s => s.projectPath !== projectPath));
338
+ // Results
339
+ const results = readJson(RESULTS_FILE, []);
340
+ writeJson(RESULTS_FILE, results.filter(r => r.projectPath !== projectPath));
341
+ // Issues
342
+ const issues = readJson(ISSUES_FILE, []);
343
+ writeJson(ISSUES_FILE, issues.filter(i => i.projectPath !== projectPath));
344
+ // Fixes
345
+ const fixes = readJson(FIXES_FILE, []);
346
+ writeJson(FIXES_FILE, fixes.filter(f => f.projectPath !== projectPath));
347
+ // Plans
348
+ const plans = readJson(PLANS_FILE, []);
349
+ writeJson(PLANS_FILE, plans.filter(p => p.projectPath !== projectPath));
350
+ }
351
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Platform, AppStructure } from '../../types.js';
2
+ interface AnalyzeAppStructureParams {
3
+ projectPath: string;
4
+ platform?: Platform;
5
+ depth?: 'shallow' | 'normal' | 'deep';
6
+ }
7
+ export declare function analyzeAppStructure(params: AnalyzeAppStructureParams): AppStructure;
8
+ export default analyzeAppStructure;
9
+ //# sourceMappingURL=analyzeAppStructure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzeAppStructure.d.ts","sourceRoot":"","sources":["../../../src/tools/analysis/analyzeAppStructure.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,QAAQ,EAER,YAAY,EAOb,MAAM,gBAAgB,CAAC;AAYxB,UAAU,yBAAyB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;CACvC;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,yBAAyB,GAAG,YAAY,CA6DnF;AA4ND,eAAe,mBAAmB,CAAC"}