@vibe-validate/extractors 0.17.3 → 0.17.5-rc.1

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 (134) hide show
  1. package/dist/extractor-registry.d.ts.map +1 -1
  2. package/dist/extractor-registry.js +8 -8
  3. package/dist/extractor-registry.js.map +1 -1
  4. package/dist/extractors/ava/index.d.ts.map +1 -1
  5. package/dist/extractors/ava/index.js +15 -14
  6. package/dist/extractors/ava/index.js.map +1 -1
  7. package/dist/extractors/ava/index.test.js +30 -20
  8. package/dist/extractors/ava/index.test.js.map +1 -1
  9. package/dist/extractors/eslint/index.d.ts.map +1 -1
  10. package/dist/extractors/eslint/index.js +1 -1
  11. package/dist/extractors/eslint/index.js.map +1 -1
  12. package/dist/extractors/eslint/index.test.js.map +1 -1
  13. package/dist/extractors/generic/index.test.js.map +1 -1
  14. package/dist/extractors/jasmine/index.test.js.map +1 -1
  15. package/dist/extractors/jest/index.d.ts.map +1 -1
  16. package/dist/extractors/jest/index.js.map +1 -1
  17. package/dist/extractors/jest/index.test.js.map +1 -1
  18. package/dist/extractors/junit/index.d.ts.map +1 -1
  19. package/dist/extractors/junit/index.js +5 -5
  20. package/dist/extractors/junit/index.js.map +1 -1
  21. package/dist/extractors/junit/index.test.js.map +1 -1
  22. package/dist/extractors/maven-checkstyle/index.d.ts.map +1 -1
  23. package/dist/extractors/maven-checkstyle/index.js +1 -1
  24. package/dist/extractors/maven-checkstyle/index.js.map +1 -1
  25. package/dist/extractors/maven-checkstyle/index.test.js +2 -2
  26. package/dist/extractors/maven-checkstyle/index.test.js.map +1 -1
  27. package/dist/extractors/maven-compiler/index.d.ts.map +1 -1
  28. package/dist/extractors/maven-compiler/index.js +1 -1
  29. package/dist/extractors/maven-compiler/index.js.map +1 -1
  30. package/dist/extractors/maven-compiler/index.test.js +1 -1
  31. package/dist/extractors/maven-compiler/index.test.js.map +1 -1
  32. package/dist/extractors/maven-surefire/index.d.ts.map +1 -1
  33. package/dist/extractors/maven-surefire/index.js.map +1 -1
  34. package/dist/extractors/maven-surefire/index.test.js.map +1 -1
  35. package/dist/extractors/mocha/index.test.js.map +1 -1
  36. package/dist/extractors/playwright/index.test.js.map +1 -1
  37. package/dist/extractors/tap/index.test.js +2 -2
  38. package/dist/extractors/tap/index.test.js.map +1 -1
  39. package/dist/extractors/typescript/index.d.ts.map +1 -1
  40. package/dist/extractors/typescript/index.js +16 -19
  41. package/dist/extractors/typescript/index.js.map +1 -1
  42. package/dist/extractors/typescript/index.test.js.map +1 -1
  43. package/dist/extractors/vitest/index.d.ts.map +1 -1
  44. package/dist/extractors/vitest/index.js +16 -7
  45. package/dist/extractors/vitest/index.js.map +1 -1
  46. package/dist/extractors/vitest/index.test.js +38 -0
  47. package/dist/extractors/vitest/index.test.js.map +1 -1
  48. package/dist/plugin-loader.d.ts.map +1 -1
  49. package/dist/plugin-loader.js +1 -1
  50. package/dist/plugin-loader.js.map +1 -1
  51. package/dist/result-schema-export.d.ts.map +1 -1
  52. package/dist/result-schema-export.js.map +1 -1
  53. package/dist/result-schema.d.ts.map +1 -1
  54. package/dist/result-schema.js +1 -1
  55. package/dist/result-schema.js.map +1 -1
  56. package/dist/sandboxed-extractor.d.ts +1 -1
  57. package/dist/sandboxed-extractor.d.ts.map +1 -1
  58. package/dist/sandboxed-extractor.js.map +1 -1
  59. package/dist/scripts/generate-result-schema.js +1 -1
  60. package/dist/scripts/generate-result-schema.js.map +1 -1
  61. package/dist/smart-extractor.d.ts.map +1 -1
  62. package/dist/smart-extractor.js.map +1 -1
  63. package/dist/utils/guidance-generator.d.ts.map +1 -1
  64. package/dist/utils/guidance-generator.js +4 -7
  65. package/dist/utils/guidance-generator.js.map +1 -1
  66. package/dist/utils/test-framework-utils.d.ts.map +1 -1
  67. package/dist/utils/test-framework-utils.js.map +1 -1
  68. package/dist/utils.js +1 -1
  69. package/dist/utils.js.map +1 -1
  70. package/package.json +8 -8
  71. package/dist/ava-extractor.d.ts +0 -24
  72. package/dist/ava-extractor.d.ts.map +0 -1
  73. package/dist/ava-extractor.js +0 -343
  74. package/dist/ava-extractor.js.map +0 -1
  75. package/dist/eslint-extractor.d.ts +0 -25
  76. package/dist/eslint-extractor.d.ts.map +0 -1
  77. package/dist/eslint-extractor.js +0 -145
  78. package/dist/eslint-extractor.js.map +0 -1
  79. package/dist/generic-extractor.d.ts +0 -35
  80. package/dist/generic-extractor.d.ts.map +0 -1
  81. package/dist/generic-extractor.js +0 -128
  82. package/dist/generic-extractor.js.map +0 -1
  83. package/dist/jasmine-extractor.d.ts +0 -23
  84. package/dist/jasmine-extractor.d.ts.map +0 -1
  85. package/dist/jasmine-extractor.js +0 -151
  86. package/dist/jasmine-extractor.js.map +0 -1
  87. package/dist/jest-extractor.d.ts +0 -29
  88. package/dist/jest-extractor.d.ts.map +0 -1
  89. package/dist/jest-extractor.js +0 -174
  90. package/dist/jest-extractor.js.map +0 -1
  91. package/dist/junit-extractor.d.ts +0 -24
  92. package/dist/junit-extractor.d.ts.map +0 -1
  93. package/dist/junit-extractor.js +0 -193
  94. package/dist/junit-extractor.js.map +0 -1
  95. package/dist/maven-checkstyle-extractor.d.ts +0 -20
  96. package/dist/maven-checkstyle-extractor.d.ts.map +0 -1
  97. package/dist/maven-checkstyle-extractor.js +0 -208
  98. package/dist/maven-checkstyle-extractor.js.map +0 -1
  99. package/dist/maven-compiler-extractor.d.ts +0 -20
  100. package/dist/maven-compiler-extractor.d.ts.map +0 -1
  101. package/dist/maven-compiler-extractor.js +0 -218
  102. package/dist/maven-compiler-extractor.js.map +0 -1
  103. package/dist/maven-surefire-extractor.d.ts +0 -20
  104. package/dist/maven-surefire-extractor.d.ts.map +0 -1
  105. package/dist/maven-surefire-extractor.js +0 -228
  106. package/dist/maven-surefire-extractor.js.map +0 -1
  107. package/dist/mocha-extractor.d.ts +0 -23
  108. package/dist/mocha-extractor.d.ts.map +0 -1
  109. package/dist/mocha-extractor.js +0 -160
  110. package/dist/mocha-extractor.js.map +0 -1
  111. package/dist/playwright-extractor.d.ts +0 -38
  112. package/dist/playwright-extractor.d.ts.map +0 -1
  113. package/dist/playwright-extractor.js +0 -239
  114. package/dist/playwright-extractor.js.map +0 -1
  115. package/dist/sandbox.test.d.ts +0 -8
  116. package/dist/sandbox.test.d.ts.map +0 -1
  117. package/dist/sandbox.test.js +0 -395
  118. package/dist/sandbox.test.js.map +0 -1
  119. package/dist/sandboxed-extractor.test.d.ts +0 -5
  120. package/dist/sandboxed-extractor.test.d.ts.map +0 -1
  121. package/dist/sandboxed-extractor.test.js +0 -346
  122. package/dist/sandboxed-extractor.test.js.map +0 -1
  123. package/dist/tap-extractor.d.ts +0 -24
  124. package/dist/tap-extractor.d.ts.map +0 -1
  125. package/dist/tap-extractor.js +0 -217
  126. package/dist/tap-extractor.js.map +0 -1
  127. package/dist/typescript-extractor.d.ts +0 -25
  128. package/dist/typescript-extractor.d.ts.map +0 -1
  129. package/dist/typescript-extractor.js +0 -96
  130. package/dist/typescript-extractor.js.map +0 -1
  131. package/dist/vitest-extractor.d.ts +0 -38
  132. package/dist/vitest-extractor.d.ts.map +0 -1
  133. package/dist/vitest-extractor.js +0 -540
  134. package/dist/vitest-extractor.js.map +0 -1
@@ -1,160 +0,0 @@
1
- /**
2
- * Mocha Error Extractor
3
- *
4
- * Parses Mocha test output and formats failures for LLM consumption.
5
- *
6
- * @package @vibe-validate/extractors
7
- */
8
- import { processTestFailures } from './utils/test-framework-utils.js';
9
- /**
10
- * Extract errors from Mocha test output
11
- *
12
- * @param output - Mocha text output
13
- * @returns Structured error information
14
- *
15
- * @example
16
- * ```typescript
17
- * const mochaOutput = execSync('mocha tests/**\/*.test.js', { encoding: 'utf-8' });
18
- * const result = extractMochaErrors(mochaOutput);
19
- * console.log(result.summary); // "5 test(s) failed"
20
- * ```
21
- */
22
- export function extractMochaErrors(output) {
23
- // Note: ANSI codes are stripped centrally in smart-extractor.ts
24
- // Check if this looks like Mocha output
25
- if (!output.includes('failing') && !output.includes('passing')) {
26
- return {
27
- summary: 'Unable to parse Mocha output - invalid format',
28
- errors: [],
29
- totalErrors: 0,
30
- errorSummary: output.trim(),
31
- guidance: 'Ensure the input is valid Mocha test output',
32
- metadata: {
33
- confidence: 0,
34
- completeness: 0,
35
- issues: ['Not Mocha output format']
36
- }
37
- };
38
- }
39
- // Extract failure count
40
- // eslint-disable-next-line sonarjs/slow-regex -- Safe: only parses Mocha test framework summary (controlled output), not user input
41
- const failingMatch = /(\d+) failing/.exec(output);
42
- const failureCount = failingMatch ? Number.parseInt(failingMatch[1], 10) : 0;
43
- // Extract all failures
44
- const failures = extractFailures(output);
45
- // Early return if no failures detected (but failure count suggested there should be)
46
- if (failureCount === 0 && failures.length === 0) {
47
- return processTestFailures([], 95);
48
- }
49
- // Process failures using shared utility
50
- return processTestFailures(failures, 95);
51
- }
52
- /**
53
- * Extract failure information from Mocha output
54
- */
55
- // eslint-disable-next-line sonarjs/cognitive-complexity -- Complexity 30 acceptable for Mocha output parsing (handles test hierarchies, error messages, and stack trace extraction)
56
- function extractFailures(output) {
57
- const failures = [];
58
- const lines = output.split('\n');
59
- let i = 0;
60
- while (i < lines.length) {
61
- const line = lines[i];
62
- // Look for numbered failure markers (e.g., " 1) ")
63
- // Only match detailed format (2 spaces), not summary format (6+ spaces)
64
- // eslint-disable-next-line sonarjs/slow-regex -- Safe: only parses Mocha test framework output (controlled output), not user input
65
- const failureMatch = /^ {2}(\d+)\)\s+(.*)$/.exec(line);
66
- if (failureMatch) {
67
- // failureMatch[1] contains the failure number (not used - test name is more important)
68
- const firstPart = failureMatch[2].trim();
69
- // Collect test hierarchy lines
70
- const testNameParts = [];
71
- // Check if first part ends with colon (simple format: "1) Test:")
72
- const isSimpleFormat = firstPart.endsWith(':');
73
- if (firstPart) {
74
- testNameParts.push(firstPart.replace(/:$/, '')); // Remove trailing colon
75
- }
76
- let j = i + 1;
77
- // If simple format, don't try to collect more hierarchy
78
- if (!isSimpleFormat) {
79
- // Continue collecting hierarchy lines until we hit blank line or error
80
- while (j < lines.length) {
81
- const nextLine = lines[j];
82
- // Blank line marks end of hierarchy
83
- if (nextLine.trim() === '') {
84
- break;
85
- }
86
- // Error line marks end of hierarchy
87
- if (/^\s+(Error|AssertionError|TypeError)/.exec(nextLine)) {
88
- break;
89
- }
90
- // Indented lines are part of hierarchy (at least 5 spaces for Mocha)
91
- if (/^\s{5,}\S/.exec(nextLine)) {
92
- const part = nextLine.trim().replace(/:$/, ''); // Remove trailing colon
93
- testNameParts.push(part);
94
- }
95
- j++;
96
- }
97
- }
98
- const testName = testNameParts.join(' > ');
99
- // Now scan for error message and stack trace
100
- let message;
101
- let errorType;
102
- let file;
103
- let lineNumber;
104
- // Continue from where we left off
105
- while (j < lines.length && j < i + 40) {
106
- const nextLine = lines[j];
107
- // Stop if we hit the next failure
108
- if (/^\s+\d+\)\s+/.exec(nextLine)) {
109
- break;
110
- }
111
- // Extract error type and message
112
- // Pattern 1: " AssertionError [ERR_ASSERTION]: Expected..."
113
- // Pattern 2: " Error: ENOENT: no such file..."
114
- // Pattern 3: " TypeError: Cannot read..."
115
- if (!message) {
116
- // Match plain "Error" or prefixed errors like "TypeError", "AssertionError"
117
- const errorMatch = /^\s+([A-Za-z]*Error)(?:\s\[\w+\])?\s*:\s*(.+)/.exec(nextLine);
118
- if (errorMatch) {
119
- errorType = errorMatch[1];
120
- message = errorMatch[2].trim();
121
- }
122
- }
123
- // Extract file location from stack trace
124
- if (!file && nextLine.includes('at Context.<anonymous>')) {
125
- // Match various path formats:
126
- // - file:///path/to/file.js:10:20
127
- // - /absolute/path/file.js:10:20
128
- // - relative/path/file.js:10:20
129
- const locationMatch = /at Context\.<anonymous> \((?:file:\/\/)?([^:)]+):(\d+)(?::(\d+))?\)/.exec(nextLine);
130
- if (locationMatch) {
131
- file = locationMatch[1];
132
- lineNumber = Number.parseInt(locationMatch[2], 10);
133
- }
134
- }
135
- // Extract file from timeout error messages: "Error: Timeout... (/path/to/file.js)"
136
- if (!file && message?.includes('Timeout')) {
137
- // eslint-disable-next-line sonarjs/slow-regex -- Safe: only parses Mocha test framework timeout messages (controlled output), not user input
138
- const timeoutFileMatch = /\(([^)]+\.(?:js|ts|mjs|cjs))\)/.exec(message);
139
- if (timeoutFileMatch) {
140
- file = timeoutFileMatch[1];
141
- }
142
- }
143
- j++;
144
- }
145
- failures.push({
146
- testName,
147
- message,
148
- errorType,
149
- file,
150
- line: lineNumber
151
- });
152
- i = j; // Skip to after this failure
153
- }
154
- else {
155
- i++;
156
- }
157
- }
158
- return failures;
159
- }
160
- //# sourceMappingURL=mocha-extractor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mocha-extractor.js","sourceRoot":"","sources":["../src/mocha-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iCAAiC,CAAC;AAE5F;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,gEAAgE;IAEhE,wCAAwC;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/D,OAAO;YACL,OAAO,EAAE,+CAA+C;YACxD,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE;YAC3B,QAAQ,EAAE,6CAA6C;YACvD,QAAQ,EAAE;gBACR,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,CAAC;gBACf,MAAM,EAAE,CAAC,yBAAyB,CAAC;aACpC;SACF,CAAC;IACJ,CAAC;IAED,wBAAwB;IACxB,oIAAoI;IACpI,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7E,uBAAuB;IACvB,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAEzC,qFAAqF;IACrF,IAAI,YAAY,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,wCAAwC;IACxC,OAAO,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,oLAAoL;AACpL,SAAS,eAAe,CAAC,MAAc;IACrC,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEjC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,oDAAoD;QACpD,wEAAwE;QACxE,mIAAmI;QACnI,MAAM,YAAY,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvD,IAAI,YAAY,EAAE,CAAC;YACjB,uFAAuF;YACvF,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAEzC,+BAA+B;YAC/B,MAAM,aAAa,GAAa,EAAE,CAAC;YAEnC,kEAAkE;YAClE,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAE/C,IAAI,SAAS,EAAE,CAAC;gBACd,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,wBAAwB;YAC3E,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEd,wDAAwD;YACxD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,uEAAuE;gBACvE,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;oBACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAE1B,oCAAoC;oBACpC,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;wBAC3B,MAAM;oBACR,CAAC;oBAED,oCAAoC;oBACpC,IAAI,sCAAsC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC1D,MAAM;oBACR,CAAC;oBAED,qEAAqE;oBACrE,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,wBAAwB;wBACxE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC;oBAED,CAAC,EAAE,CAAC;gBACN,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE3C,6CAA6C;YAC7C,IAAI,OAA2B,CAAC;YAChC,IAAI,SAA6B,CAAC;YAClC,IAAI,IAAwB,CAAC;YAC7B,IAAI,UAA8B,CAAC;YAEnC,kCAAkC;YAClC,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;gBACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAE1B,kCAAkC;gBAClC,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClC,MAAM;gBACR,CAAC;gBAED,iCAAiC;gBACjC,gEAAgE;gBAChE,mDAAmD;gBACnD,8CAA8C;gBAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,4EAA4E;oBAC5E,MAAM,UAAU,GAAG,+CAA+C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAClF,IAAI,UAAU,EAAE,CAAC;wBACf,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;wBAC1B,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACjC,CAAC;gBACH,CAAC;gBAED,yCAAyC;gBACzC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;oBACzD,8BAA8B;oBAC9B,kCAAkC;oBAClC,iCAAiC;oBACjC,gCAAgC;oBAChC,MAAM,aAAa,GAAG,qEAAqE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC3G,IAAI,aAAa,EAAE,CAAC;wBAClB,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;wBACxB,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrD,CAAC;gBACH,CAAC;gBAED,mFAAmF;gBACnF,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC1C,6IAA6I;oBAC7I,MAAM,gBAAgB,GAAG,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACxE,IAAI,gBAAgB,EAAE,CAAC;wBACrB,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBAED,CAAC,EAAE,CAAC;YACN,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC;gBACZ,QAAQ;gBACR,OAAO;gBACP,SAAS;gBACT,IAAI;gBACJ,IAAI,EAAE,UAAU;aACjB,CAAC,CAAC;YAEH,CAAC,GAAG,CAAC,CAAC,CAAC,6BAA6B;QACtC,CAAC;aAAM,CAAC;YACN,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Playwright Test Error Extractor
3
- *
4
- * Extracts error information from Playwright test output.
5
- *
6
- * Output format:
7
- * ```
8
- * Running N tests using M workers
9
- *
10
- * ✘ 1 test.spec.ts:10:5 › Describe › test name (100ms)
11
- * ✓ 2 test.spec.ts:20:5 › passing test (50ms)
12
- *
13
- * 1) test.spec.ts:10:5 › Describe › test name
14
- *
15
- * Error: expect(received).toBe(expected)
16
- *
17
- * Expected: "foo"
18
- * Received: "bar"
19
- *
20
- * 10 | test('test name', async () => {
21
- * 11 | const value = 'bar';
22
- * > 12 | expect(value).toBe('foo');
23
- * | ^
24
- * 13 | });
25
- *
26
- * at test.spec.ts:12:21
27
- * ```
28
- */
29
- import type { ErrorExtractorResult } from './types.js';
30
- /**
31
- * Extract errors from Playwright test output
32
- */
33
- export declare function extractPlaywrightErrors(output: string): ErrorExtractorResult;
34
- /**
35
- * Check if output is from Playwright
36
- */
37
- export declare function isPlaywrightOutput(output: string): boolean;
38
- //# sourceMappingURL=playwright-extractor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"playwright-extractor.d.ts","sourceRoot":"","sources":["../src/playwright-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAkB,oBAAoB,EAAsB,MAAM,YAAY,CAAC;AAG3F;;GAEG;AAEH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CA+H5E;AAyGD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAY1D"}
@@ -1,239 +0,0 @@
1
- /**
2
- * Playwright Test Error Extractor
3
- *
4
- * Extracts error information from Playwright test output.
5
- *
6
- * Output format:
7
- * ```
8
- * Running N tests using M workers
9
- *
10
- * ✘ 1 test.spec.ts:10:5 › Describe › test name (100ms)
11
- * ✓ 2 test.spec.ts:20:5 › passing test (50ms)
12
- *
13
- * 1) test.spec.ts:10:5 › Describe › test name
14
- *
15
- * Error: expect(received).toBe(expected)
16
- *
17
- * Expected: "foo"
18
- * Received: "bar"
19
- *
20
- * 10 | test('test name', async () => {
21
- * 11 | const value = 'bar';
22
- * > 12 | expect(value).toBe('foo');
23
- * | ^
24
- * 13 | });
25
- *
26
- * at test.spec.ts:12:21
27
- * ```
28
- */
29
- import { stripAnsiCodes } from './utils.js';
30
- /**
31
- * Extract errors from Playwright test output
32
- */
33
- // eslint-disable-next-line sonarjs/cognitive-complexity -- Complexity 22 acceptable for Playwright output parsing (handles numbered failures, error blocks, and file path normalization)
34
- export function extractPlaywrightErrors(output) {
35
- const errors = [];
36
- const issues = [];
37
- // Note: ANSI codes are stripped centrally in smart-extractor.ts
38
- // Split into lines for processing
39
- const lines = output.split('\n');
40
- // Parse numbered failure blocks: " 1) tests/path/test.spec.ts:10:5 › test name"
41
- let i = 0;
42
- while (i < lines.length) {
43
- const line = lines[i];
44
- // Match numbered failure header: " 1) tests/path/test.spec.ts:10:5 › test name"
45
- // File path can include directories: "tests/playwright/test.spec.ts" or just "test.spec.ts"
46
- // Allow trailing whitespace
47
- // eslint-disable-next-line sonarjs/slow-regex -- Safe: only parses Playwright test framework output (controlled output), not user input
48
- const failureMatch = /^\s+(\d+)\)\s+(.*\.spec\.ts):(\d+):(\d+)\s+›\s+(.+?)\s*$/.exec(line);
49
- if (failureMatch) {
50
- const [, , file, , , testName] = failureMatch;
51
- // Extract error block (everything until next numbered failure or end)
52
- const errorLines = [];
53
- i++;
54
- while (i < lines.length) {
55
- const nextLine = lines[i];
56
- // Stop at next numbered failure
57
- if (/^\s+\d+\)\s+/.exec(nextLine)) {
58
- break;
59
- }
60
- errorLines.push(nextLine);
61
- i++;
62
- }
63
- // Parse the error block
64
- const errorBlock = errorLines.join('\n');
65
- // Extract error message (first Error: line and subsequent details)
66
- // eslint-disable-next-line sonarjs/slow-regex -- Safe: only parses Playwright test framework error messages (controlled output), not user input
67
- const errorMessageMatch = /Error:\s*(.+?)(?:\n\n|\n(?=\s+at\s))/s.exec(errorBlock);
68
- const errorMessage = errorMessageMatch ? errorMessageMatch[1].trim() : testName;
69
- // Extract file location from stack trace (last line with "at file:line:col")
70
- // eslint-disable-next-line sonarjs/slow-regex -- Safe: only parses Playwright test framework stack traces (controlled output), not user input
71
- const stackMatch = /at\s+(.*\.spec\.ts):(\d+):(\d+)/.exec(errorBlock);
72
- let errorFile = file;
73
- let errorLine = 0;
74
- let errorColumn = 0;
75
- if (stackMatch) {
76
- errorFile = stackMatch[1];
77
- errorLine = Number.parseInt(stackMatch[2], 10);
78
- errorColumn = Number.parseInt(stackMatch[3], 10);
79
- }
80
- else {
81
- // No stack trace found - track as an issue
82
- issues.push(`No stack trace found for failure: ${testName}`);
83
- }
84
- // Normalize file path (remove absolute path prefix if present, keep relative paths)
85
- // If it's an absolute path, extract just the tests/... part or the filename
86
- if (errorFile.includes('/') && !errorFile.startsWith('tests')) {
87
- // Absolute path - extract relative part
88
- const testsMatch = /(tests?\/.+\.spec\.ts)/i.exec(errorFile);
89
- if (testsMatch) {
90
- errorFile = testsMatch[1];
91
- }
92
- else {
93
- // Just keep filename if no tests/ path found
94
- errorFile = errorFile.replace(/^.*\/([^/]+\.spec\.ts)$/i, '$1');
95
- }
96
- }
97
- // If it already starts with tests/ or is just a filename, keep it as-is
98
- // Detect error type
99
- const type = detectErrorType(errorMessage, errorBlock);
100
- // Generate guidance
101
- const guidance = generateGuidance(type, errorMessage);
102
- // Build complete error message
103
- const completeMessage = `${testName}\n${errorMessage}`;
104
- errors.push({
105
- file: errorFile,
106
- line: errorLine,
107
- column: errorColumn,
108
- message: completeMessage,
109
- context: testName,
110
- guidance,
111
- });
112
- }
113
- else {
114
- i++;
115
- }
116
- }
117
- // Calculate quality metadata
118
- const metadata = calculateQualityMetadata(errors, issues);
119
- // Generate summary
120
- const summary = errors.length > 0
121
- ? `${errors.length} test(s) failed`
122
- : '0 test(s) failed';
123
- // Generate guidance
124
- const guidance = errors.length > 0
125
- ? 'Review test failures and fix the underlying issues. Check assertions, selectors, and test logic.'
126
- : '';
127
- // Generate clean output
128
- const formattedOutput = errors
129
- .map(e => {
130
- const location = e.file && e.line ? `${e.file}:${e.line}` : e.file ?? 'unknown';
131
- return `${location}: ${e.message}`;
132
- })
133
- .join('\n');
134
- return {
135
- errors,
136
- summary,
137
- totalErrors: errors.length,
138
- guidance,
139
- errorSummary: formattedOutput,
140
- metadata,
141
- };
142
- }
143
- /**
144
- * Detect error type from error message and block
145
- */
146
- function detectErrorType(message, block) {
147
- // Element not found (waiting for locator with timeout)
148
- // Check this BEFORE generic timeout to avoid false positives
149
- if (block.includes('waiting for locator') && (message.includes('timeout') || message.includes('exceeded'))) {
150
- return 'element-not-found';
151
- }
152
- // Navigation errors
153
- if (message.includes('net::ERR') || message.includes('page.goto:')) {
154
- return 'navigation-error';
155
- }
156
- // Timeout errors (generic)
157
- if (message.includes('timeout') || message.includes('exceeded')) {
158
- return 'timeout';
159
- }
160
- // Assertion errors (expect())
161
- if (message.includes('expect(') ||
162
- message.includes('toBe') ||
163
- message.includes('toContain') ||
164
- message.includes('toBeVisible') ||
165
- message.includes('toHaveValue') ||
166
- message.includes('toHaveCount')) {
167
- return 'assertion-error';
168
- }
169
- // Generic error
170
- return 'error';
171
- }
172
- /**
173
- * Generate guidance for common error types
174
- */
175
- function generateGuidance(type, _message) {
176
- switch (type) {
177
- case 'assertion-error':
178
- return 'Check the assertion expectation and ensure the actual value matches. Review the test logic and the application state.';
179
- case 'timeout':
180
- return 'The operation exceeded the timeout limit. Consider increasing the timeout, checking for slow operations, or verifying the application is responding correctly.';
181
- case 'element-not-found':
182
- return 'The element was not found on the page. Verify the selector is correct, the element exists, and it is rendered when expected.';
183
- case 'navigation-error':
184
- return 'Failed to navigate to the page. Check the URL is correct, the server is running, and the page exists.';
185
- default:
186
- return undefined;
187
- }
188
- }
189
- /**
190
- * Calculate quality metadata
191
- */
192
- function calculateQualityMetadata(errors, issues) {
193
- if (errors.length === 0 && issues.length === 0) {
194
- // No errors and no issues = perfect extraction (or no failures)
195
- return {
196
- confidence: 100,
197
- completeness: 100,
198
- issues: [],
199
- };
200
- }
201
- // Calculate completeness: % of errors with file + line + message
202
- const completeErrors = errors.filter(e => e.file &&
203
- e.line !== undefined &&
204
- e.line > 0 &&
205
- e.message).length;
206
- const completeness = errors.length > 0
207
- ? Math.round((completeErrors / errors.length) * 100)
208
- : 100;
209
- // Calculate confidence based on pattern matching quality
210
- let confidence = 90; // Base confidence for Playwright (distinctive format)
211
- // Reduce confidence if we have issues
212
- if (issues.length > 0) {
213
- confidence -= Math.min(issues.length * 10, 40);
214
- }
215
- // Reduce confidence if completeness is low
216
- if (completeness < 80) {
217
- confidence -= (100 - completeness) / 2;
218
- }
219
- confidence = Math.max(0, Math.min(100, confidence));
220
- return {
221
- confidence: Math.round(confidence),
222
- completeness,
223
- issues,
224
- };
225
- }
226
- /**
227
- * Check if output is from Playwright
228
- */
229
- export function isPlaywrightOutput(output) {
230
- // Look for distinctive Playwright markers
231
- const errorSummary = stripAnsiCodes(output);
232
- // Playwright uses ✘ symbol and .spec.ts files
233
- const hasPlaywrightMarker = errorSummary.includes('✘') && errorSummary.includes('.spec.ts');
234
- // Or has numbered failures with › separator
235
- // eslint-disable-next-line sonarjs/slow-regex -- Safe: only tests Playwright output format (controlled test framework output), not user input
236
- const hasNumberedFailures = /^\s+\d+\)\s+.+\.spec\.ts:\d+:\d+\s+›/.test(errorSummary);
237
- return hasPlaywrightMarker || hasNumberedFailures;
238
- }
239
- //# sourceMappingURL=playwright-extractor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"playwright-extractor.js","sourceRoot":"","sources":["../src/playwright-extractor.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Sandbox Module Tests
3
- *
4
- * Tests secure extractor execution using isolated-vm.
5
- * These tests validate the sandbox can execute real extractor code safely.
6
- */
7
- export {};
8
- //# sourceMappingURL=sandbox.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sandbox.test.d.ts","sourceRoot":"","sources":["../src/sandbox.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}