@vibe-validate/extractors 0.18.3 → 0.18.4-rc.2

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 (81) hide show
  1. package/dist/extractors/ava/index.d.ts.map +1 -1
  2. package/dist/extractors/ava/index.js +37 -33
  3. package/dist/extractors/ava/index.js.map +1 -1
  4. package/dist/extractors/ava/index.test.js +16 -18
  5. package/dist/extractors/ava/index.test.js.map +1 -1
  6. package/dist/extractors/eslint/index.d.ts.map +1 -1
  7. package/dist/extractors/eslint/index.js +7 -4
  8. package/dist/extractors/eslint/index.js.map +1 -1
  9. package/dist/extractors/eslint/index.test.js +8 -7
  10. package/dist/extractors/eslint/index.test.js.map +1 -1
  11. package/dist/extractors/generic/index.test.js +6 -4
  12. package/dist/extractors/generic/index.test.js.map +1 -1
  13. package/dist/extractors/jasmine/index.d.ts.map +1 -1
  14. package/dist/extractors/jasmine/index.js +33 -38
  15. package/dist/extractors/jasmine/index.js.map +1 -1
  16. package/dist/extractors/jasmine/index.test.js +7 -15
  17. package/dist/extractors/jasmine/index.test.js.map +1 -1
  18. package/dist/extractors/jest/index.d.ts.map +1 -1
  19. package/dist/extractors/jest/index.js +2 -1
  20. package/dist/extractors/jest/index.js.map +1 -1
  21. package/dist/extractors/jest/index.test.js +1 -1
  22. package/dist/extractors/jest/index.test.js.map +1 -1
  23. package/dist/extractors/junit/index.d.ts.map +1 -1
  24. package/dist/extractors/junit/index.js +7 -3
  25. package/dist/extractors/junit/index.js.map +1 -1
  26. package/dist/extractors/junit/index.test.js +4 -2
  27. package/dist/extractors/junit/index.test.js.map +1 -1
  28. package/dist/extractors/maven-checkstyle/index.d.ts.map +1 -1
  29. package/dist/extractors/maven-checkstyle/index.js +7 -36
  30. package/dist/extractors/maven-checkstyle/index.js.map +1 -1
  31. package/dist/extractors/maven-checkstyle/index.test.js +3 -19
  32. package/dist/extractors/maven-checkstyle/index.test.js.map +1 -1
  33. package/dist/extractors/maven-compiler/index.d.ts.map +1 -1
  34. package/dist/extractors/maven-compiler/index.js +7 -36
  35. package/dist/extractors/maven-compiler/index.js.map +1 -1
  36. package/dist/extractors/maven-surefire/index.d.ts.map +1 -1
  37. package/dist/extractors/maven-surefire/index.js +9 -19
  38. package/dist/extractors/maven-surefire/index.js.map +1 -1
  39. package/dist/extractors/maven-surefire/index.test.js +4 -19
  40. package/dist/extractors/maven-surefire/index.test.js.map +1 -1
  41. package/dist/extractors/mocha/index.d.ts.map +1 -1
  42. package/dist/extractors/mocha/index.js +12 -22
  43. package/dist/extractors/mocha/index.js.map +1 -1
  44. package/dist/extractors/mocha/index.test.js +6 -13
  45. package/dist/extractors/mocha/index.test.js.map +1 -1
  46. package/dist/extractors/playwright/index.d.ts.map +1 -1
  47. package/dist/extractors/playwright/index.js +2 -1
  48. package/dist/extractors/playwright/index.js.map +1 -1
  49. package/dist/extractors/playwright/index.test.js +8 -12
  50. package/dist/extractors/playwright/index.test.js.map +1 -1
  51. package/dist/extractors/tap/index.d.ts.map +1 -1
  52. package/dist/extractors/tap/index.js +24 -20
  53. package/dist/extractors/tap/index.js.map +1 -1
  54. package/dist/extractors/tap/index.test.js +6 -4
  55. package/dist/extractors/tap/index.test.js.map +1 -1
  56. package/dist/extractors/vitest/index.d.ts.map +1 -1
  57. package/dist/extractors/vitest/index.js +4 -2
  58. package/dist/extractors/vitest/index.js.map +1 -1
  59. package/dist/extractors/vitest/index.test.js +1 -0
  60. package/dist/extractors/vitest/index.test.js.map +1 -1
  61. package/dist/plugin-loader.js +0 -1
  62. package/dist/plugin-loader.js.map +1 -1
  63. package/dist/sandboxed-extractor.js +1 -3
  64. package/dist/sandboxed-extractor.js.map +1 -1
  65. package/dist/test/helpers/extractor-test-helpers.d.ts +67 -0
  66. package/dist/test/helpers/extractor-test-helpers.d.ts.map +1 -1
  67. package/dist/test/helpers/extractor-test-helpers.js +97 -0
  68. package/dist/test/helpers/extractor-test-helpers.js.map +1 -1
  69. package/dist/utils/maven-extractor-utils.d.ts +26 -0
  70. package/dist/utils/maven-extractor-utils.d.ts.map +1 -0
  71. package/dist/utils/maven-extractor-utils.js +55 -0
  72. package/dist/utils/maven-extractor-utils.js.map +1 -0
  73. package/dist/utils/parser-utils.d.ts +119 -0
  74. package/dist/utils/parser-utils.d.ts.map +1 -0
  75. package/dist/utils/parser-utils.js +158 -0
  76. package/dist/utils/parser-utils.js.map +1 -0
  77. package/dist/utils/parser-utils.test.d.ts +7 -0
  78. package/dist/utils/parser-utils.test.d.ts.map +1 -0
  79. package/dist/utils/parser-utils.test.js +147 -0
  80. package/dist/utils/parser-utils.test.js.map +1 -0
  81. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"extractor-test-helpers.d.ts","sourceRoot":"","sources":["../../../src/test/helpers/extractor-test-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE5F;;GAEG;AACH,UAAU,mBAAmB;IAC3B,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,UAAU,oBAAoB;IAC5B,yDAAyD;IACzD,UAAU,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,UAAU,qBAAqB;IAC7B,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,UAAU,gBAAgB;IACxB,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACpC,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAyBjG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,oBAAoB,GAC7B,IAAI,CA0BN;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,EAAE,qBAAqB,GAC9B,IAAI,CAuBN;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,oBAAoB,EACpD,eAAe,EAAE,MAAM,GAAG,MAAM,GAC/B,IAAI,CAWN;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CA8BzF"}
1
+ {"version":3,"file":"extractor-test-helpers.d.ts","sourceRoot":"","sources":["../../../src/test/helpers/extractor-test-helpers.ts"],"names":[],"mappings":"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"}
@@ -235,4 +235,101 @@ export function expectErrorObject(error, expected) {
235
235
  expect(error.code).toBe(expected.code);
236
236
  }
237
237
  }
238
+ /**
239
+ * Verify that all sample inputs in a plugin can be successfully parsed
240
+ * and match expected error counts
241
+ *
242
+ * Reduces duplication in plugin sample tests by consolidating validation
243
+ * logic for plugin.samples array.
244
+ *
245
+ * @param plugin - The extractor plugin to test
246
+ *
247
+ * @example
248
+ * ```typescript
249
+ * expectSamplesParseSuccessfully(vitestPlugin);
250
+ * ```
251
+ */
252
+ export function expectSamplesParseSuccessfully(plugin) {
253
+ for (const sample of plugin.samples) {
254
+ expect(sample.input).toBeDefined();
255
+ const result = plugin.extract(sample.input ?? '');
256
+ expect(result.errors.length).toBeGreaterThan(0);
257
+ expect(result.errors.length).toBe(sample.expectedErrors);
258
+ }
259
+ }
260
+ /**
261
+ * Verify extraction result has expected number of failures with specific line numbers
262
+ *
263
+ * Reduces duplication in tests that check multiple test failures
264
+ *
265
+ * @param result - Extract result to verify
266
+ * @param expectedLines - Array of expected line numbers
267
+ *
268
+ * @example
269
+ * ```typescript
270
+ * const result = plugin.extract(output);
271
+ * expectMultipleFailures(result, [10, 20, 30]);
272
+ * ```
273
+ */
274
+ export function expectMultipleFailures(result, expectedLines) {
275
+ expect(result.summary).toBe(`${expectedLines.length} test(s) failed`);
276
+ expect(result.errors).toHaveLength(expectedLines.length);
277
+ for (const [index, expectedLine] of expectedLines.entries()) {
278
+ expect(result.errors[index].line).toBe(expectedLine);
279
+ }
280
+ }
281
+ /**
282
+ * Validate a specific sample from a plugin's samples array
283
+ *
284
+ * Reduces duplication in tests that validate individual named samples
285
+ *
286
+ * @param plugin - The extractor plugin
287
+ * @param sampleName - Name of the sample to validate
288
+ * @param extractFn - Optional extract function (defaults to plugin.extract)
289
+ *
290
+ * @example
291
+ * ```typescript
292
+ * expectSampleValidation(mavenPlugin, 'basic-assertion-failure');
293
+ * expectSampleValidation(checkstylePlugin, 'basic-warn-format', extractMavenCheckstyle);
294
+ * ```
295
+ */
296
+ export function expectSampleValidation(plugin, sampleName, extractFn) {
297
+ const sample = plugin.samples.find((s) => s.name === sampleName);
298
+ expect(sample).toBeDefined();
299
+ if (sample && 'input' in sample) {
300
+ expect(sample.input).toBeDefined();
301
+ const fn = extractFn ?? plugin.extract.bind(plugin);
302
+ const result = fn(sample.input ?? '');
303
+ const expected = sample.expected;
304
+ expect(result.totalErrors).toBe(expected?.totalErrors ?? 0);
305
+ if (expected?.errors && expected.errors.length > 0) {
306
+ expect(result.errors[0]).toMatchObject(expected.errors[0]);
307
+ }
308
+ }
309
+ }
310
+ /**
311
+ * Verify path extraction from test framework output
312
+ *
313
+ * Reduces duplication in path extraction tests for jasmine/mocha/etc
314
+ *
315
+ * @param plugin - The extractor plugin
316
+ * @param input - Test output containing path
317
+ * @param expectedFile - Expected file path
318
+ * @param expectedLine - Expected line number
319
+ *
320
+ * @example
321
+ * ```typescript
322
+ * expectPathExtraction(
323
+ * jasminePlugin,
324
+ * 'at UserContext.<anonymous> (/path/to/test.js:42:15)',
325
+ * '/path/to/test.js',
326
+ * 42
327
+ * );
328
+ * ```
329
+ */
330
+ export function expectPathExtraction(plugin, input, expectedFile, expectedLine) {
331
+ const result = plugin.extract(input);
332
+ expect(result.errors[0].file).toBe(expectedFile);
333
+ expect(result.errors[0].line).toBe(expectedLine);
334
+ }
238
335
  //# sourceMappingURL=extractor-test-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extractor-test-helpers.js","sourceRoot":"","sources":["../../../src/test/helpers/extractor-test-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAgEhC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAuB,EAAE,QAA6B;IACzF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEhD,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACzC,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAC1C,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAuB,EACvB,MAAc,EACd,QAA8B;IAE9B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAErC,0CAA0C;IAC1C,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpC,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,eAAe;IACf,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAA4B,EAC5B,QAA+B;IAE/B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAErD,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC1C,IAAI,OAAO,QAAQ,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC5C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;QAChD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,oBAAoB,EAAE,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAoD,EACpD,eAAgC;IAEhC,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAE7B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAqB,EAAE,QAA0B;IACjF,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;YACtD,CAAC,CAAC,QAAQ,CAAC,eAAe;YAC1B,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAE/B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"extractor-test-helpers.js","sourceRoot":"","sources":["../../../src/test/helpers/extractor-test-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Shared utility functions for Maven extractors
3
+ *
4
+ * These utilities eliminate duplication across maven-compiler, maven-surefire, and maven-checkstyle extractors.
5
+ */
6
+ import type { DetectionResult, ErrorExtractorResult } from '../types.js';
7
+ /**
8
+ * Create a low-confidence result when detection confidence is below threshold
9
+ *
10
+ * All Maven extractors return early with this structure when confidence < 40
11
+ */
12
+ export declare function createLowConfidenceResult(extractorName: string, detection: DetectionResult): ErrorExtractorResult;
13
+ /**
14
+ * Create final result with detection metadata
15
+ *
16
+ * Used by maven-compiler and maven-checkstyle for final result construction
17
+ */
18
+ export declare function createMavenResult(extractorName: string, detection: DetectionResult, summary: string, errors: Array<{
19
+ file?: string;
20
+ line?: number;
21
+ column?: number;
22
+ message: string;
23
+ context?: string;
24
+ guidance?: string;
25
+ }>, totalErrors: number, guidance: string | undefined, errorSummary: string | undefined): ErrorExtractorResult;
26
+ //# sourceMappingURL=maven-extractor-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maven-extractor-utils.d.ts","sourceRoot":"","sources":["../../src/utils/maven-extractor-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAsB,MAAM,aAAa,CAAC;AAE7F;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,eAAe,GACzB,oBAAoB,CAiBtB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,KAAK,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC,EACF,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,oBAAoB,CAqBtB"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Shared utility functions for Maven extractors
3
+ *
4
+ * These utilities eliminate duplication across maven-compiler, maven-surefire, and maven-checkstyle extractors.
5
+ */
6
+ /**
7
+ * Create a low-confidence result when detection confidence is below threshold
8
+ *
9
+ * All Maven extractors return early with this structure when confidence < 40
10
+ */
11
+ export function createLowConfidenceResult(extractorName, detection) {
12
+ return {
13
+ summary: `Not Maven ${extractorName} output`,
14
+ totalErrors: 0,
15
+ errors: [],
16
+ metadata: {
17
+ detection: {
18
+ extractor: extractorName,
19
+ confidence: detection.confidence,
20
+ patterns: detection.patterns,
21
+ reason: detection.reason,
22
+ },
23
+ confidence: detection.confidence,
24
+ completeness: 100,
25
+ issues: [],
26
+ },
27
+ };
28
+ }
29
+ /**
30
+ * Create final result with detection metadata
31
+ *
32
+ * Used by maven-compiler and maven-checkstyle for final result construction
33
+ */
34
+ export function createMavenResult(extractorName, detection, summary, errors, totalErrors, guidance, errorSummary) {
35
+ const metadata = {
36
+ detection: {
37
+ extractor: extractorName,
38
+ confidence: detection.confidence,
39
+ patterns: detection.patterns,
40
+ reason: detection.reason,
41
+ },
42
+ confidence: 100,
43
+ completeness: 100,
44
+ issues: [],
45
+ };
46
+ return {
47
+ summary,
48
+ totalErrors,
49
+ errors,
50
+ guidance,
51
+ errorSummary,
52
+ metadata,
53
+ };
54
+ }
55
+ //# sourceMappingURL=maven-extractor-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maven-extractor-utils.js","sourceRoot":"","sources":["../../src/utils/maven-extractor-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,aAAqB,EACrB,SAA0B;IAE1B,OAAO;QACL,OAAO,EAAE,aAAa,aAAa,SAAS;QAC5C,WAAW,EAAE,CAAC;QACd,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,SAAS,EAAE;gBACT,SAAS,EAAE,aAAa;gBACxB,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,MAAM,EAAE,SAAS,CAAC,MAAM;aACzB;YACD,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,YAAY,EAAE,GAAG;YACjB,MAAM,EAAE,EAAE;SACX;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,aAAqB,EACrB,SAA0B,EAC1B,OAAe,EACf,MAOE,EACF,WAAmB,EACnB,QAA4B,EAC5B,YAAgC;IAEhC,MAAM,QAAQ,GAAuB;QACnC,SAAS,EAAE;YACT,SAAS,EAAE,aAAa;YACxB,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,MAAM,EAAE,SAAS,CAAC,MAAM;SACzB;QACD,UAAU,EAAE,GAAG;QACf,YAAY,EAAE,GAAG;QACjB,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,OAAO;QACL,OAAO;QACP,WAAW;QACX,MAAM;QACN,QAAQ;QACR,YAAY;QACZ,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Shared parser utilities for test framework extractors
3
+ *
4
+ * Common patterns extracted from jasmine/mocha/ava/tap extractors to reduce duplication.
5
+ * These utilities handle multi-line collection, stack trace parsing, and error type detection.
6
+ *
7
+ * @package @vibe-validate/extractors
8
+ */
9
+ /**
10
+ * Collect lines from an array until a condition is met
11
+ *
12
+ * @param lines - Array of lines to iterate through
13
+ * @param startIndex - Index to start collecting from
14
+ * @param shouldStop - Function that returns true when collection should stop
15
+ * @returns Object containing collected lines and the next index to process
16
+ *
17
+ * @example
18
+ * // Collect until blank line or specific marker
19
+ * const { lines: messageLines, nextIndex } = collectLinesUntil(
20
+ * allLines,
21
+ * i + 1,
22
+ * (line) => line.trim() === '' || line.includes('Stack:')
23
+ * );
24
+ */
25
+ export declare function collectLinesUntil(lines: string[], startIndex: number, shouldStop: (_line: string, _index: number) => boolean): {
26
+ lines: string[];
27
+ nextIndex: number;
28
+ };
29
+ /**
30
+ * Configuration for stack location pattern matching
31
+ */
32
+ export interface StackLocationPattern {
33
+ /** Regular expression to match the stack line */
34
+ regex: RegExp;
35
+ /** Capture group index for file path (1-based) */
36
+ fileGroup: number;
37
+ /** Capture group index for line number (1-based) */
38
+ lineGroup: number;
39
+ /** Optional capture group index for column number (1-based) */
40
+ columnGroup?: number;
41
+ }
42
+ /**
43
+ * Parsed location from stack trace
44
+ */
45
+ export interface ParsedLocation {
46
+ /** File path */
47
+ file?: string;
48
+ /** Line number */
49
+ line?: number;
50
+ /** Column number (if available) */
51
+ column?: number;
52
+ }
53
+ /**
54
+ * Parse a stack trace line to extract file location
55
+ *
56
+ * Handles multiple common stack trace formats:
57
+ * - file:///path/to/file.js:line:col
58
+ * - /absolute/path/file.js:line:col
59
+ * - relative/path/file.js:line:col
60
+ * - at Context.<anonymous> (path:line:col)
61
+ * - at UserContext.<anonymous> (path:line:col)
62
+ *
63
+ * @param line - Stack trace line to parse
64
+ * @param patterns - Array of patterns to try in order
65
+ * @returns Parsed location or empty object if no match
66
+ *
67
+ * @example
68
+ * const location = parseStackLocation(
69
+ * 'at Context.<anonymous> (test.js:42:10)',
70
+ * [{
71
+ * regex: /at Context\.<anonymous> \(([^:)]+):(\d+)(?::(\d+))?\)/,
72
+ * fileGroup: 1,
73
+ * lineGroup: 2,
74
+ * columnGroup: 3
75
+ * }]
76
+ * );
77
+ */
78
+ export declare function parseStackLocation(line: string, patterns: StackLocationPattern[]): ParsedLocation;
79
+ /**
80
+ * Extract error type from error message
81
+ *
82
+ * Detects common error type prefixes like:
83
+ * - "TypeError: message"
84
+ * - "AssertionError [ERR_ASSERTION]: message"
85
+ * - "Error: message"
86
+ *
87
+ * @param message - Error message to analyze
88
+ * @returns Error type (e.g., "TypeError") or undefined if none detected
89
+ *
90
+ * @example
91
+ * extractErrorType("TypeError: Cannot read properties of null")
92
+ * // Returns: "TypeError"
93
+ *
94
+ * extractErrorType("AssertionError [ERR_ASSERTION]: Expected 1 to equal 2")
95
+ * // Returns: "AssertionError"
96
+ */
97
+ export declare function extractErrorType(message: string): string | undefined;
98
+ /**
99
+ * Common stack location patterns for popular test frameworks
100
+ */
101
+ export declare const COMMON_STACK_PATTERNS: {
102
+ /**
103
+ * Mocha/Jasmine patterns for Context.<anonymous> and UserContext.<anonymous>
104
+ */
105
+ contextAnonymous: StackLocationPattern[];
106
+ /**
107
+ * Generic stack trace pattern for any function call
108
+ */
109
+ generic: StackLocationPattern[];
110
+ /**
111
+ * Ava file:// URL format
112
+ */
113
+ avaFileUrl: StackLocationPattern[];
114
+ /**
115
+ * Simple file:line format (used by some frameworks)
116
+ */
117
+ simpleFileLine: StackLocationPattern[];
118
+ };
119
+ //# sourceMappingURL=parser-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-utils.d.ts","sourceRoot":"","sources":["../../src/utils/parser-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,GACrD;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAcxC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gBAAgB;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,oBAAoB,EAAE,GAC/B,cAAc,CAehB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIpE;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB;IAChC;;OAEG;sBASE,oBAAoB,EAAE;IAE3B;;OAEG;aASE,oBAAoB,EAAE;IAE3B;;OAEG;gBAgBE,oBAAoB,EAAE;IAE3B;;OAEG;oBAOE,oBAAoB,EAAE;CAC5B,CAAC"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Shared parser utilities for test framework extractors
3
+ *
4
+ * Common patterns extracted from jasmine/mocha/ava/tap extractors to reduce duplication.
5
+ * These utilities handle multi-line collection, stack trace parsing, and error type detection.
6
+ *
7
+ * @package @vibe-validate/extractors
8
+ */
9
+ /**
10
+ * Collect lines from an array until a condition is met
11
+ *
12
+ * @param lines - Array of lines to iterate through
13
+ * @param startIndex - Index to start collecting from
14
+ * @param shouldStop - Function that returns true when collection should stop
15
+ * @returns Object containing collected lines and the next index to process
16
+ *
17
+ * @example
18
+ * // Collect until blank line or specific marker
19
+ * const { lines: messageLines, nextIndex } = collectLinesUntil(
20
+ * allLines,
21
+ * i + 1,
22
+ * (line) => line.trim() === '' || line.includes('Stack:')
23
+ * );
24
+ */
25
+ export function collectLinesUntil(lines, startIndex, shouldStop) {
26
+ const collected = [];
27
+ let j = startIndex;
28
+ while (j < lines.length) {
29
+ const currentLine = lines[j];
30
+ if (shouldStop(currentLine, j)) {
31
+ break;
32
+ }
33
+ collected.push(currentLine);
34
+ j++;
35
+ }
36
+ return { lines: collected, nextIndex: j };
37
+ }
38
+ /**
39
+ * Parse a stack trace line to extract file location
40
+ *
41
+ * Handles multiple common stack trace formats:
42
+ * - file:///path/to/file.js:line:col
43
+ * - /absolute/path/file.js:line:col
44
+ * - relative/path/file.js:line:col
45
+ * - at Context.<anonymous> (path:line:col)
46
+ * - at UserContext.<anonymous> (path:line:col)
47
+ *
48
+ * @param line - Stack trace line to parse
49
+ * @param patterns - Array of patterns to try in order
50
+ * @returns Parsed location or empty object if no match
51
+ *
52
+ * @example
53
+ * const location = parseStackLocation(
54
+ * 'at Context.<anonymous> (test.js:42:10)',
55
+ * [{
56
+ * regex: /at Context\.<anonymous> \(([^:)]+):(\d+)(?::(\d+))?\)/,
57
+ * fileGroup: 1,
58
+ * lineGroup: 2,
59
+ * columnGroup: 3
60
+ * }]
61
+ * );
62
+ */
63
+ export function parseStackLocation(line, patterns) {
64
+ for (const pattern of patterns) {
65
+ const match = pattern.regex.exec(line);
66
+ if (match) {
67
+ const file = match[pattern.fileGroup];
68
+ const lineStr = match[pattern.lineGroup];
69
+ const line = lineStr ? Number.parseInt(lineStr, 10) : undefined;
70
+ const columnStr = pattern.columnGroup ? match[pattern.columnGroup] : undefined;
71
+ const column = columnStr ? Number.parseInt(columnStr, 10) : undefined;
72
+ return { file, line, column };
73
+ }
74
+ }
75
+ return {};
76
+ }
77
+ /**
78
+ * Extract error type from error message
79
+ *
80
+ * Detects common error type prefixes like:
81
+ * - "TypeError: message"
82
+ * - "AssertionError [ERR_ASSERTION]: message"
83
+ * - "Error: message"
84
+ *
85
+ * @param message - Error message to analyze
86
+ * @returns Error type (e.g., "TypeError") or undefined if none detected
87
+ *
88
+ * @example
89
+ * extractErrorType("TypeError: Cannot read properties of null")
90
+ * // Returns: "TypeError"
91
+ *
92
+ * extractErrorType("AssertionError [ERR_ASSERTION]: Expected 1 to equal 2")
93
+ * // Returns: "AssertionError"
94
+ */
95
+ export function extractErrorType(message) {
96
+ // eslint-disable-next-line security/detect-unsafe-regex -- Safe: only parses controlled test framework error messages, not user input
97
+ const errorMatch = /^([A-Za-z]*Error)(?:\s\[\w+\])?\s*:/.exec(message);
98
+ return errorMatch ? errorMatch[1] : undefined;
99
+ }
100
+ /**
101
+ * Common stack location patterns for popular test frameworks
102
+ */
103
+ export const COMMON_STACK_PATTERNS = {
104
+ /**
105
+ * Mocha/Jasmine patterns for Context.<anonymous> and UserContext.<anonymous>
106
+ */
107
+ contextAnonymous: [
108
+ {
109
+ // eslint-disable-next-line security/detect-unsafe-regex -- Safe: only parses controlled test framework output, not user input
110
+ regex: /at (?:User)?Context\.<anonymous> \((?:file:\/\/)?([^:)]+):(\d+)(?::(\d+))?\)/,
111
+ fileGroup: 1,
112
+ lineGroup: 2,
113
+ columnGroup: 3,
114
+ },
115
+ ],
116
+ /**
117
+ * Generic stack trace pattern for any function call
118
+ */
119
+ generic: [
120
+ {
121
+ // eslint-disable-next-line security/detect-unsafe-regex -- Safe: only parses controlled test framework output, not user input
122
+ regex: /at .+ \((?:file:\/\/)?([^:)]+):(\d+)(?::(\d+))?\)/,
123
+ fileGroup: 1,
124
+ lineGroup: 2,
125
+ columnGroup: 3,
126
+ },
127
+ ],
128
+ /**
129
+ * Ava file:// URL format
130
+ */
131
+ avaFileUrl: [
132
+ {
133
+ // eslint-disable-next-line security/detect-unsafe-regex -- Safe: only parses controlled test framework output, not user input
134
+ regex: /› file:\/\/([^:]+):(\d+)(?::(\d+))?/,
135
+ fileGroup: 1,
136
+ lineGroup: 2,
137
+ columnGroup: 3,
138
+ },
139
+ {
140
+ // eslint-disable-next-line security/detect-unsafe-regex -- Safe: only parses controlled test framework output, not user input
141
+ regex: /at file:\/\/([^:]+):(\d+)(?::(\d+))?/,
142
+ fileGroup: 1,
143
+ lineGroup: 2,
144
+ columnGroup: 3,
145
+ },
146
+ ],
147
+ /**
148
+ * Simple file:line format (used by some frameworks)
149
+ */
150
+ simpleFileLine: [
151
+ {
152
+ regex: /^([^:]+\.(?:js|ts|mjs|cjs)):(\d+)$/,
153
+ fileGroup: 1,
154
+ lineGroup: 2,
155
+ },
156
+ ],
157
+ };
158
+ //# sourceMappingURL=parser-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-utils.js","sourceRoot":"","sources":["../../src/utils/parser-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAe,EACf,UAAkB,EAClB,UAAsD;IAEtD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,CAAC,GAAG,UAAU,CAAC;IAEnB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM;QACR,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC,EAAE,CAAC;IACN,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;AAC5C,CAAC;AA4BD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,QAAgC;IAEhC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/E,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEtE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,sIAAsI;IACtI,MAAM,UAAU,GAAG,qCAAqC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvE,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC;;OAEG;IACH,gBAAgB,EAAE;QAChB;YACE,8HAA8H;YAC9H,KAAK,EAAE,8EAA8E;YACrF,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACf;KACwB;IAE3B;;OAEG;IACH,OAAO,EAAE;QACP;YACE,8HAA8H;YAC9H,KAAK,EAAE,mDAAmD;YAC1D,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACf;KACwB;IAE3B;;OAEG;IACH,UAAU,EAAE;QACV;YACE,8HAA8H;YAC9H,KAAK,EAAE,qCAAqC;YAC5C,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACf;QACD;YACE,8HAA8H;YAC9H,KAAK,EAAE,sCAAsC;YAC7C,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACf;KACwB;IAE3B;;OAEG;IACH,cAAc,EAAE;QACd;YACE,KAAK,EAAE,oCAAoC;YAC3C,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;SACb;KACwB;CAC5B,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Tests for parser-utils.ts shared parsing utilities
3
+ *
4
+ * @package @vibe-validate/extractors
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=parser-utils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-utils.test.d.ts","sourceRoot":"","sources":["../../src/utils/parser-utils.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}