frontend-guardian-core 3.8.0 → 3.10.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 (43) hide show
  1. package/bin/fg-core.js +90 -6
  2. package/bin/fg-lsp.js +1 -1
  3. package/bin/fg-server.js +2 -2
  4. package/dist/index.d.ts +4 -2
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +22 -3
  7. package/dist/index.js.map +1 -1
  8. package/dist/integrations/index.d.ts +6 -0
  9. package/dist/integrations/index.d.ts.map +1 -1
  10. package/dist/integrations/index.js +21 -1
  11. package/dist/integrations/index.js.map +1 -1
  12. package/dist/integrations/page-health.d.ts +33 -0
  13. package/dist/integrations/page-health.d.ts.map +1 -1
  14. package/dist/integrations/page-health.js +182 -19
  15. package/dist/integrations/page-health.js.map +1 -1
  16. package/dist/mcp/mcp-server.js +1 -1
  17. package/dist/mcp/mcp-server.js.map +1 -1
  18. package/dist/mcp/tools.d.ts.map +1 -1
  19. package/dist/mcp/tools.js +92 -1
  20. package/dist/mcp/tools.js.map +1 -1
  21. package/dist/mcp/types.d.ts +25 -2
  22. package/dist/mcp/types.d.ts.map +1 -1
  23. package/dist/utils/e2e-gap-detector.d.ts +4 -0
  24. package/dist/utils/e2e-gap-detector.d.ts.map +1 -1
  25. package/dist/utils/e2e-gap-detector.js +23 -21
  26. package/dist/utils/e2e-gap-detector.js.map +1 -1
  27. package/dist/utils/lighthouse-metrics.d.ts +49 -0
  28. package/dist/utils/lighthouse-metrics.d.ts.map +1 -0
  29. package/dist/utils/lighthouse-metrics.js +113 -0
  30. package/dist/utils/lighthouse-metrics.js.map +1 -0
  31. package/dist/utils/runtime-a11y.d.ts +40 -0
  32. package/dist/utils/runtime-a11y.d.ts.map +1 -0
  33. package/dist/utils/runtime-a11y.js +100 -0
  34. package/dist/utils/runtime-a11y.js.map +1 -0
  35. package/dist/utils/test-recommender.d.ts +68 -0
  36. package/dist/utils/test-recommender.d.ts.map +1 -0
  37. package/dist/utils/test-recommender.js +334 -0
  38. package/dist/utils/test-recommender.js.map +1 -0
  39. package/dist/utils/visual-regression.d.ts +55 -0
  40. package/dist/utils/visual-regression.d.ts.map +1 -0
  41. package/dist/utils/visual-regression.js +141 -0
  42. package/dist/utils/visual-regression.js.map +1 -0
  43. package/package.json +1 -1
package/bin/fg-core.js CHANGED
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  import { writeFileSync } from "node:fs";
8
- import { join } from "node:path";
8
+ import { join, resolve } from "node:path";
9
9
  import pc from "picocolors";
10
10
  import {
11
11
  AIFixSuggester,
@@ -107,7 +107,7 @@ const MODULE_RULES = {
107
107
 
108
108
  function showHelp() {
109
109
  console.log(`
110
- Frontend Guardian Core v3.8.0
110
+ Frontend Guardian Core v3.10.0
111
111
 
112
112
  Usage:
113
113
  fg-core <project-dir> [options]
@@ -176,9 +176,18 @@ Options:
176
176
  --no-check-interactive 禁用交互元素检查(配合 --page-health)
177
177
  --update-baseline 更新基线截图(配合 --page-health)
178
178
  --page-health-concurrency <n> 页面健康检查并发数(默认 3,配合 --page-health)
179
+ --screenshot-selector <selector> 元素级截图选择器(配合 --page-health)
180
+ --max-diff-pixels <n> 视觉回归最大差异像素数(默认 100,配合 --page-health)
181
+ --max-diff-pixel-ratio <n> 视觉回归最大差异比例(默认 0.01,配合 --page-health)
182
+ --mask-selectors <list> 额外遮罩选择器,逗号分隔(配合 --page-health)
183
+ --no-mask 禁用动态内容遮罩(配合 --page-health)
184
+ --page-health-metrics 启用 Lighthouse Core Web Vitals(配合 --page-health)
185
+ --a11y 启用运行时无障碍检测(配合 --page-health)
186
+ --a11y-tags <list> axe-core 过滤标签,逗号分隔(默认 wcag2a,wcag2aa,配合 --page-health)
179
187
  --build-index 建立项目索引(预索引文件结构、符号、路由)
180
188
  --watch-index 监听文件变更并自动同步索引
181
189
  --index-status 查看项目索引状态
190
+ --recommend-tests 智能测试推荐:基于变更影响分析推荐需要运行的测试(可配合 --staged/--diff/--auto-scope/--files)
182
191
  --mcp 启动 MCP Server(stdio,供 AI Agent 调用)
183
192
  --help, -h 显示帮助
184
193
 
@@ -265,9 +274,20 @@ async function main() {
265
274
  checkInteractive: true,
266
275
  pageHealthConcurrency: 3,
267
276
  updateBaseline: false,
277
+ // v3.10.0
278
+ screenshotSelector: undefined,
279
+ maxDiffPixels: undefined,
280
+ maxDiffPixelRatio: undefined,
281
+ noMask: false,
282
+ maskSelectors: undefined,
283
+ pageHealthMetrics: false,
284
+ cwvThresholds: undefined,
285
+ a11y: false,
286
+ a11yTags: undefined,
268
287
  buildIndex: false,
269
288
  watchIndex: false,
270
289
  indexStatus: false,
290
+ recommendTests: false,
271
291
  mcp: false,
272
292
  };
273
293
 
@@ -434,7 +454,13 @@ async function main() {
434
454
  options.server = args[++i];
435
455
  break;
436
456
  case "--serve":
437
- options.serve = true;
457
+ // --serve 单独使用:启动本地看板服务
458
+ // --serve <cmd>:为 page-health 启动 dev server
459
+ if (i + 1 < args.length && !args[i + 1].startsWith("-")) {
460
+ options.serveCommand = args[++i];
461
+ } else {
462
+ options.serve = true;
463
+ }
438
464
  break;
439
465
  case "--e2e-detect-gaps":
440
466
  options.e2eDetectGaps = true;
@@ -445,9 +471,6 @@ async function main() {
445
471
  case "--page-health":
446
472
  options.pageHealth = true;
447
473
  break;
448
- case "--serve":
449
- options.serveCommand = args[++i];
450
- break;
451
474
  case "--port":
452
475
  options.servePort = parseInt(args[++i], 10) || 5173;
453
476
  break;
@@ -469,6 +492,31 @@ async function main() {
469
492
  case "--page-health-concurrency":
470
493
  options.pageHealthConcurrency = parseInt(args[++i], 10) || 3;
471
494
  break;
495
+ // v3.10.0 页面测试进阶
496
+ case "--screenshot-selector":
497
+ options.screenshotSelector = args[++i];
498
+ break;
499
+ case "--max-diff-pixels":
500
+ options.maxDiffPixels = parseInt(args[++i], 10);
501
+ break;
502
+ case "--max-diff-pixel-ratio":
503
+ options.maxDiffPixelRatio = parseFloat(args[++i]);
504
+ break;
505
+ case "--mask-selectors":
506
+ options.maskSelectors = args[++i].split(",");
507
+ break;
508
+ case "--no-mask":
509
+ options.noMask = true;
510
+ break;
511
+ case "--page-health-metrics":
512
+ options.pageHealthMetrics = true;
513
+ break;
514
+ case "--a11y":
515
+ options.a11y = true;
516
+ break;
517
+ case "--a11y-tags":
518
+ options.a11yTags = args[++i].split(",");
519
+ break;
472
520
  case "--build-index":
473
521
  options.buildIndex = true;
474
522
  break;
@@ -478,6 +526,9 @@ async function main() {
478
526
  case "--index-status":
479
527
  options.indexStatus = true;
480
528
  break;
529
+ case "--recommend-tests":
530
+ options.recommendTests = true;
531
+ break;
481
532
  case "--mcp":
482
533
  options.mcp = true;
483
534
  break;
@@ -598,6 +649,16 @@ async function main() {
598
649
  concurrency: options.pageHealthConcurrency,
599
650
  checkInteractive: options.checkInteractive,
600
651
  updateBaseline: options.updateBaseline,
652
+ // v3.10.0
653
+ screenshotSelector: options.screenshotSelector,
654
+ maxDiffPixels: options.maxDiffPixels,
655
+ maxDiffPixelRatio: options.maxDiffPixelRatio,
656
+ noMask: options.noMask,
657
+ maskSelectors: options.maskSelectors,
658
+ metrics: options.pageHealthMetrics,
659
+ cwvThresholds: options.cwvThresholds,
660
+ a11y: options.a11y,
661
+ a11yTags: options.a11yTags,
601
662
  });
602
663
 
603
664
  if (options.json) {
@@ -672,6 +733,29 @@ async function main() {
672
733
  process.exit(0);
673
734
  }
674
735
 
736
+ // v3.9.0: 智能测试推荐
737
+ if (options.recommendTests) {
738
+ const { recommendTests, formatRecommendations, formatRecommendationsJson } = await import("../dist/index.js");
739
+ const changedFiles = options.files?.map((f) => resolve(options.projectDir, f));
740
+
741
+ const result = await recommendTests({
742
+ projectDir: options.projectDir,
743
+ changedFiles,
744
+ staged: options.staged,
745
+ diffRange: options.diffRange,
746
+ autoScope: options.autoScope,
747
+ minPriority: 1,
748
+ });
749
+
750
+ if (options.json) {
751
+ console.log(JSON.stringify(formatRecommendationsJson(result), null, 2));
752
+ } else {
753
+ console.log(formatRecommendations(result));
754
+ }
755
+
756
+ process.exit(result.uncoveredChanges.length > 0 ? 1 : 0);
757
+ }
758
+
675
759
  // v3.7.0: 建立项目索引
676
760
  if (options.buildIndex) {
677
761
  console.log(pc.cyan("📦 正在建立项目索引..."));
package/bin/fg-lsp.js CHANGED
@@ -27,7 +27,7 @@ for (let i = 0; i < args.length; i++) {
27
27
  } else if (arg === "--severity" || arg === "-s") {
28
28
  minSeverity = args[++i] ?? "suggestion";
29
29
  } else if (arg === "--help" || arg === "-h") {
30
- console.log(`Frontend Guardian LSP Server v3.8.0
30
+ console.log(`Frontend Guardian LSP Server v3.10.0
31
31
 
32
32
  Usage: fg-lsp [options]
33
33
 
package/bin/fg-server.js CHANGED
@@ -10,7 +10,7 @@ import { DashboardServer } from "../dist/index.js";
10
10
 
11
11
  function showHelp() {
12
12
  console.log(`
13
- Frontend Guardian Dashboard Server v3.8.0
13
+ Frontend Guardian Dashboard Server v3.10.0
14
14
 
15
15
  Usage:
16
16
  fg-server [options]
@@ -62,7 +62,7 @@ async function main() {
62
62
  }
63
63
 
64
64
  console.log(pc.cyan("Frontend Guardian Dashboard Server"));
65
- console.log(pc.gray(` Version: 3.8.0`));
65
+ console.log(pc.gray(` Version: 3.10.0`));
66
66
  console.log("");
67
67
 
68
68
  const server = new DashboardServer({
package/dist/index.d.ts CHANGED
@@ -17,8 +17,8 @@ export type { DiagnosticResult, IncrementalDiagnosticOptions } from "./ide/incre
17
17
  export { createIncrementalDiagnostic, IncrementalDiagnostic } from "./ide/incremental-diagnostic.js";
18
18
  export type { LSPServerOptions } from "./ide/lsp-server.js";
19
19
  export { runLSPServer } from "./ide/lsp-server.js";
20
- export type { CheckedRoute, ExternalTool, ExternalToolResult, PageHealthOptions, PageHealthResult, } from "./integrations/index.js";
21
- export { allExternalTools, eslintIntegration, formatPageHealthJson, formatPageHealthReport, isPlaywrightAvailable, playwrightIntegration, runAllExternalTools, runPageHealthCheck, stylelintIntegration, toScanResult, typescriptIntegration, uploadPageHealthResult, } from "./integrations/index.js";
20
+ export type { CheckedRoute, CoreWebVitalsResult, CWVThresholds, ExternalTool, ExternalToolResult, PageHealthOptions, PageHealthResult, VisualRegressionOptions, VisualRegressionResult, } from "./integrations/index.js";
21
+ export { allExternalTools, axeViolationsToIssues, checkCWVThresholds, compareScreenshotsPixel, eslintIntegration, extractCoreWebVitals, formatCoreWebVitals, formatPageHealthJson, formatPageHealthReport, getBaselinePath, getCurrentScreenshotPath, getDiffImagePath, isAxeCoreAvailable, isLighthouseAvailable, isPixelmatchAvailable, isPlaywrightAvailable, isPngjsAvailable, playwrightIntegration, runAllExternalTools, runLighthouseForUrl, runPageHealthCheck, safeRouteName, stylelintIntegration, toScanResult, typescriptIntegration, uploadPageHealthResult, } from "./integrations/index.js";
22
22
  export type { MCPServerOptions } from "./mcp/mcp-server.js";
23
23
  export { runMCPServer } from "./mcp/mcp-server.js";
24
24
  export { getToolDefinitions } from "./mcp/tools.js";
@@ -79,6 +79,8 @@ export type { UploadConfig, UploadResult } from "./utils/report-uploader.js";
79
79
  export { detectUploadConfig, uploadReport } from "./utils/report-uploader.js";
80
80
  export type { Framework, ParsedRoutes } from "./utils/route-parser.js";
81
81
  export { detectRouteFramework, findRouteFiles, parseAllRoutes, parseNextJsRoutes, parseNuxtRoutes, parseReactRouterConfig, parseRoutes, parseTaroRoutes, parseUniAppRoutes, parseVueRouterConfig, } from "./utils/route-parser.js";
82
+ export type { RecommendTestsOptions, RecommendTestsResult, TestRecommendation } from "./utils/test-recommender.js";
83
+ export { formatRecommendations, formatRecommendationsJson, recommendTests, } from "./utils/test-recommender.js";
82
84
  export type { PackageScanResult, WorkspaceScanOptions, WorkspaceScanResult, WorkspaceSummary, } from "./utils/workspace-scanner.js";
83
85
  export { formatWorkspaceJson, formatWorkspaceReport, scanWorkspace } from "./utils/workspace-scanner.js";
84
86
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,9 +4,9 @@
4
4
  * 导出所有公共 API
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.generateAIFixSuggestions = exports.detectAIConfig = exports.AIFixSuggester = exports.DashboardServer = exports.generateDashboardHtml = exports.svelteRules = exports.securityRules = exports.platformRules = exports.performanceRules = exports.namingRules = exports.i18nRules = exports.hooksRules = exports.e2eRules = exports.crossFileRules = exports.componentRules = exports.a11yRules = exports.RuleRegistry = exports.createRegistry = exports.getToolDefinitions = exports.runMCPServer = exports.uploadPageHealthResult = exports.typescriptIntegration = exports.toScanResult = exports.stylelintIntegration = exports.runPageHealthCheck = exports.runAllExternalTools = exports.playwrightIntegration = exports.isPlaywrightAvailable = exports.formatPageHealthReport = exports.formatPageHealthJson = exports.eslintIntegration = exports.allExternalTools = exports.runLSPServer = exports.IncrementalDiagnostic = exports.createIncrementalDiagnostic = exports.generateSarif = exports.formatSarif = exports.isGuardianComment = exports.generatePRCommentSummary = exports.generatePRComment = exports.COMMENT_MARKER = exports.writeJobSummary = exports.isGitHubActions = exports.formatIssuesAnnotations = exports.formatIssueAnnotation = exports.formatAllAnnotations = exports.RuleEngine = exports.createEngine = exports.ProjectIndexer = exports.SmartCache = void 0;
8
- exports.detectMonorepo = exports.analyzeCrossPackageDeps = exports.initConfig = exports.generateDefaultConfig = exports.HistoryReport = exports.formatHistoryCompareJson = exports.formatHistoryCompare = exports.compareHistoryReports = exports.uninstallGitHooks = exports.installGitHooks = exports.hasGitHook = exports.detectHusky = exports.runFixBot = exports.detectFixBotConfig = exports.watchProject = exports.FileWatcher = exports.formatE2EGapReport = exports.formatE2EGapJson = exports.detectE2EGaps = exports.uploadToDashboardServer = exports.detectDashboardConfig = exports.generateDashboard = exports.loadConfig = exports.getAdaptiveConcurrency = exports.saveComplianceReport = exports.registerComplianceMapping = exports.getComplianceMapping = exports.generateComplianceReport = exports.complianceReportToMarkdown = exports.getJSXTagName = exports.getFileExt = exports.parseCodeowners = exports.matchOwner = exports.loadCodeowners = exports.findCodeowners = exports.CodeownersParser = exports.generateCIConfig = exports.detectCIProvider = exports.toBaselineIssue = exports.saveBaseline = exports.loadBaselineAsync = exports.loadBaseline = exports.generateBaseline = exports.downloadBaseline = exports.compareWithBaseline = exports.BaselineManager = exports.walkAST = exports.parseAST = exports.hasImport = exports.getImports = void 0;
9
- exports.scanWorkspace = exports.formatWorkspaceReport = exports.formatWorkspaceJson = exports.parseVueRouterConfig = exports.parseUniAppRoutes = exports.parseTaroRoutes = exports.parseRoutes = exports.parseReactRouterConfig = exports.parseNuxtRoutes = exports.parseNextJsRoutes = exports.parseAllRoutes = exports.findRouteFiles = exports.detectRouteFramework = exports.uploadReport = exports.detectUploadConfig = exports.detectProjectMeta = exports.GitLabMRPublisher = exports.GitHubPRPublisher = exports.detectPublisherConfig = exports.createPublisher = exports.autoPublishComment = exports.sendNotifications = exports.detectNotificationConfig = exports.buildNotificationPayload = void 0;
7
+ exports.componentRules = exports.a11yRules = exports.RuleRegistry = exports.createRegistry = exports.getToolDefinitions = exports.runMCPServer = exports.uploadPageHealthResult = exports.typescriptIntegration = exports.toScanResult = exports.stylelintIntegration = exports.safeRouteName = exports.runPageHealthCheck = exports.runLighthouseForUrl = exports.runAllExternalTools = exports.playwrightIntegration = exports.isPngjsAvailable = exports.isPlaywrightAvailable = exports.isPixelmatchAvailable = exports.isLighthouseAvailable = exports.isAxeCoreAvailable = exports.getDiffImagePath = exports.getCurrentScreenshotPath = exports.getBaselinePath = exports.formatPageHealthReport = exports.formatPageHealthJson = exports.formatCoreWebVitals = exports.extractCoreWebVitals = exports.eslintIntegration = exports.compareScreenshotsPixel = exports.checkCWVThresholds = exports.axeViolationsToIssues = exports.allExternalTools = exports.runLSPServer = exports.IncrementalDiagnostic = exports.createIncrementalDiagnostic = exports.generateSarif = exports.formatSarif = exports.isGuardianComment = exports.generatePRCommentSummary = exports.generatePRComment = exports.COMMENT_MARKER = exports.writeJobSummary = exports.isGitHubActions = exports.formatIssuesAnnotations = exports.formatIssueAnnotation = exports.formatAllAnnotations = exports.RuleEngine = exports.createEngine = exports.ProjectIndexer = exports.SmartCache = void 0;
8
+ exports.watchProject = exports.FileWatcher = exports.formatE2EGapReport = exports.formatE2EGapJson = exports.detectE2EGaps = exports.uploadToDashboardServer = exports.detectDashboardConfig = exports.generateDashboard = exports.loadConfig = exports.getAdaptiveConcurrency = exports.saveComplianceReport = exports.registerComplianceMapping = exports.getComplianceMapping = exports.generateComplianceReport = exports.complianceReportToMarkdown = exports.getJSXTagName = exports.getFileExt = exports.parseCodeowners = exports.matchOwner = exports.loadCodeowners = exports.findCodeowners = exports.CodeownersParser = exports.generateCIConfig = exports.detectCIProvider = exports.toBaselineIssue = exports.saveBaseline = exports.loadBaselineAsync = exports.loadBaseline = exports.generateBaseline = exports.downloadBaseline = exports.compareWithBaseline = exports.BaselineManager = exports.walkAST = exports.parseAST = exports.hasImport = exports.getImports = exports.generateAIFixSuggestions = exports.detectAIConfig = exports.AIFixSuggester = exports.DashboardServer = exports.generateDashboardHtml = exports.svelteRules = exports.securityRules = exports.platformRules = exports.performanceRules = exports.namingRules = exports.i18nRules = exports.hooksRules = exports.e2eRules = exports.crossFileRules = void 0;
9
+ exports.scanWorkspace = exports.formatWorkspaceReport = exports.formatWorkspaceJson = exports.recommendTests = exports.formatRecommendationsJson = exports.formatRecommendations = exports.parseVueRouterConfig = exports.parseUniAppRoutes = exports.parseTaroRoutes = exports.parseRoutes = exports.parseReactRouterConfig = exports.parseNuxtRoutes = exports.parseNextJsRoutes = exports.parseAllRoutes = exports.findRouteFiles = exports.detectRouteFramework = exports.uploadReport = exports.detectUploadConfig = exports.detectProjectMeta = exports.GitLabMRPublisher = exports.GitHubPRPublisher = exports.detectPublisherConfig = exports.createPublisher = exports.autoPublishComment = exports.sendNotifications = exports.detectNotificationConfig = exports.buildNotificationPayload = exports.detectMonorepo = exports.analyzeCrossPackageDeps = exports.initConfig = exports.generateDefaultConfig = exports.HistoryReport = exports.formatHistoryCompareJson = exports.formatHistoryCompare = exports.compareHistoryReports = exports.uninstallGitHooks = exports.installGitHooks = exports.hasGitHook = exports.detectHusky = exports.runFixBot = exports.detectFixBotConfig = void 0;
10
10
  var cache_js_1 = require("./engine/cache.js");
11
11
  Object.defineProperty(exports, "SmartCache", { enumerable: true, get: function () { return cache_js_1.SmartCache; } });
12
12
  // v3.7.0: Incremental Index & Impact Analysis
@@ -41,13 +41,27 @@ Object.defineProperty(exports, "runLSPServer", { enumerable: true, get: function
41
41
  // Phase 4: 外部工具集成
42
42
  var index_js_1 = require("./integrations/index.js");
43
43
  Object.defineProperty(exports, "allExternalTools", { enumerable: true, get: function () { return index_js_1.allExternalTools; } });
44
+ Object.defineProperty(exports, "axeViolationsToIssues", { enumerable: true, get: function () { return index_js_1.axeViolationsToIssues; } });
45
+ Object.defineProperty(exports, "checkCWVThresholds", { enumerable: true, get: function () { return index_js_1.checkCWVThresholds; } });
46
+ Object.defineProperty(exports, "compareScreenshotsPixel", { enumerable: true, get: function () { return index_js_1.compareScreenshotsPixel; } });
44
47
  Object.defineProperty(exports, "eslintIntegration", { enumerable: true, get: function () { return index_js_1.eslintIntegration; } });
48
+ Object.defineProperty(exports, "extractCoreWebVitals", { enumerable: true, get: function () { return index_js_1.extractCoreWebVitals; } });
49
+ Object.defineProperty(exports, "formatCoreWebVitals", { enumerable: true, get: function () { return index_js_1.formatCoreWebVitals; } });
45
50
  Object.defineProperty(exports, "formatPageHealthJson", { enumerable: true, get: function () { return index_js_1.formatPageHealthJson; } });
46
51
  Object.defineProperty(exports, "formatPageHealthReport", { enumerable: true, get: function () { return index_js_1.formatPageHealthReport; } });
52
+ Object.defineProperty(exports, "getBaselinePath", { enumerable: true, get: function () { return index_js_1.getBaselinePath; } });
53
+ Object.defineProperty(exports, "getCurrentScreenshotPath", { enumerable: true, get: function () { return index_js_1.getCurrentScreenshotPath; } });
54
+ Object.defineProperty(exports, "getDiffImagePath", { enumerable: true, get: function () { return index_js_1.getDiffImagePath; } });
55
+ Object.defineProperty(exports, "isAxeCoreAvailable", { enumerable: true, get: function () { return index_js_1.isAxeCoreAvailable; } });
56
+ Object.defineProperty(exports, "isLighthouseAvailable", { enumerable: true, get: function () { return index_js_1.isLighthouseAvailable; } });
57
+ Object.defineProperty(exports, "isPixelmatchAvailable", { enumerable: true, get: function () { return index_js_1.isPixelmatchAvailable; } });
47
58
  Object.defineProperty(exports, "isPlaywrightAvailable", { enumerable: true, get: function () { return index_js_1.isPlaywrightAvailable; } });
59
+ Object.defineProperty(exports, "isPngjsAvailable", { enumerable: true, get: function () { return index_js_1.isPngjsAvailable; } });
48
60
  Object.defineProperty(exports, "playwrightIntegration", { enumerable: true, get: function () { return index_js_1.playwrightIntegration; } });
49
61
  Object.defineProperty(exports, "runAllExternalTools", { enumerable: true, get: function () { return index_js_1.runAllExternalTools; } });
62
+ Object.defineProperty(exports, "runLighthouseForUrl", { enumerable: true, get: function () { return index_js_1.runLighthouseForUrl; } });
50
63
  Object.defineProperty(exports, "runPageHealthCheck", { enumerable: true, get: function () { return index_js_1.runPageHealthCheck; } });
64
+ Object.defineProperty(exports, "safeRouteName", { enumerable: true, get: function () { return index_js_1.safeRouteName; } });
51
65
  Object.defineProperty(exports, "stylelintIntegration", { enumerable: true, get: function () { return index_js_1.stylelintIntegration; } });
52
66
  Object.defineProperty(exports, "toScanResult", { enumerable: true, get: function () { return index_js_1.toScanResult; } });
53
67
  Object.defineProperty(exports, "typescriptIntegration", { enumerable: true, get: function () { return index_js_1.typescriptIntegration; } });
@@ -195,6 +209,11 @@ Object.defineProperty(exports, "parseRoutes", { enumerable: true, get: function
195
209
  Object.defineProperty(exports, "parseTaroRoutes", { enumerable: true, get: function () { return route_parser_js_1.parseTaroRoutes; } });
196
210
  Object.defineProperty(exports, "parseUniAppRoutes", { enumerable: true, get: function () { return route_parser_js_1.parseUniAppRoutes; } });
197
211
  Object.defineProperty(exports, "parseVueRouterConfig", { enumerable: true, get: function () { return route_parser_js_1.parseVueRouterConfig; } });
212
+ // v3.9.0: Intelligent Test Recommendation
213
+ var test_recommender_js_1 = require("./utils/test-recommender.js");
214
+ Object.defineProperty(exports, "formatRecommendations", { enumerable: true, get: function () { return test_recommender_js_1.formatRecommendations; } });
215
+ Object.defineProperty(exports, "formatRecommendationsJson", { enumerable: true, get: function () { return test_recommender_js_1.formatRecommendationsJson; } });
216
+ Object.defineProperty(exports, "recommendTests", { enumerable: true, get: function () { return test_recommender_js_1.recommendTests; } });
198
217
  var workspace_scanner_js_1 = require("./utils/workspace-scanner.js");
199
218
  Object.defineProperty(exports, "formatWorkspaceJson", { enumerable: true, get: function () { return workspace_scanner_js_1.formatWorkspaceJson; } });
200
219
  Object.defineProperty(exports, "formatWorkspaceReport", { enumerable: true, get: function () { return workspace_scanner_js_1.formatWorkspaceReport; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAGH,8CAA+C;AAAtC,sGAAA,UAAU,OAAA;AAOnB,8CAA8C;AAC9C,kDAAqD;AAA5C,4GAAA,cAAc,OAAA;AAEvB,0DAAmE;AAA1D,8GAAA,YAAY,OAAA;AAAE,4GAAA,UAAU,OAAA;AACjC,0CAA0C;AAC1C,0EAM2C;AALvC,4HAAA,oBAAoB,OAAA;AACpB,6HAAA,qBAAqB,OAAA;AACrB,+HAAA,uBAAuB,OAAA;AACvB,uHAAA,eAAe,OAAA;AACf,uHAAA,eAAe,OAAA;AAGnB,qBAAqB;AACrB,4DAKoC;AAJhC,+GAAA,cAAc,OAAA;AACd,kHAAA,iBAAiB,OAAA;AACjB,yHAAA,wBAAwB,OAAA;AACxB,kHAAA,iBAAiB,OAAA;AAGrB,0BAA0B;AAC1B,kDAAmE;AAA1D,uGAAA,WAAW,OAAA;AAAE,yGAAA,aAAa,OAAA;AAEnC,iBAAiB;AACjB,6EAAqG;AAA5F,wIAAA,2BAA2B,OAAA;AAAE,kIAAA,qBAAqB,OAAA;AAE3D,qDAAmD;AAA1C,6GAAA,YAAY,OAAA;AAQrB,kBAAkB;AAClB,oDAaiC;AAZ7B,4GAAA,gBAAgB,OAAA;AAChB,6GAAA,iBAAiB,OAAA;AACjB,gHAAA,oBAAoB,OAAA;AACpB,kHAAA,sBAAsB,OAAA;AACtB,iHAAA,qBAAqB,OAAA;AACrB,iHAAA,qBAAqB,OAAA;AACrB,+GAAA,mBAAmB,OAAA;AACnB,8GAAA,kBAAkB,OAAA;AAClB,gHAAA,oBAAoB,OAAA;AACpB,wGAAA,YAAY,OAAA;AACZ,iHAAA,qBAAqB,OAAA;AACrB,kHAAA,sBAAsB,OAAA;AAG1B,qBAAqB;AACrB,qDAAmD;AAA1C,6GAAA,YAAY,OAAA;AACrB,2CAAoD;AAA3C,8GAAA,kBAAkB,OAAA;AAC3B,mDAAmE;AAA1D,6GAAA,cAAc,OAAA;AAAE,2GAAA,YAAY,OAAA;AACrC,8DAAuD;AAA9C,4GAAA,SAAS,OAAA;AAClB,wEAAiE;AAAxD,sHAAA,cAAc,OAAA;AACvB,0EAAkE;AAAzD,uHAAA,cAAc,OAAA;AACvB,mBAAmB;AACnB,4DAAqD;AAA5C,0GAAA,QAAQ,OAAA;AACjB,gEAAyD;AAAhD,8GAAA,UAAU,OAAA;AACnB,8DAAuD;AAA9C,4GAAA,SAAS,OAAA;AAClB,kEAA2D;AAAlD,gHAAA,WAAW,OAAA;AACpB,4EAAqE;AAA5D,0HAAA,gBAAgB,OAAA;AACzB,sEAA+D;AAAtD,oHAAA,aAAa,OAAA;AACtB,sEAA+D;AAAtD,oHAAA,aAAa,OAAA;AACtB,kEAA2D;AAAlD,gHAAA,WAAW,OAAA;AACpB,gEAAmE;AAA1D,0HAAA,qBAAqB,OAAA;AAQ9B,sCAAsC;AACtC,oEAA+D;AAAtD,sHAAA,eAAe,OAAA;AAsBxB,kBAAkB;AAClB,mEAAuG;AAA9F,qHAAA,cAAc,OAAA;AAAE,qHAAA,cAAc,OAAA;AAAE,+HAAA,wBAAwB,OAAA;AACjE,uDAAiF;AAAxE,2GAAA,UAAU,OAAA;AAAE,0GAAA,SAAS,OAAA;AAAE,yGAAA,QAAQ,OAAA;AAAE,wGAAA,OAAO,OAAA;AAEjD,4BAA4B;AAC5B,mDAS6B;AARzB,8GAAA,eAAe,OAAA;AACf,kHAAA,mBAAmB,OAAA;AACnB,+GAAA,gBAAgB,OAAA;AAChB,+GAAA,gBAAgB,OAAA;AAChB,2GAAA,YAAY,OAAA;AACZ,gHAAA,iBAAiB,OAAA;AACjB,2GAAA,YAAY,OAAA;AACZ,8GAAA,eAAe,OAAA;AAGnB,2DAA6E;AAApE,mHAAA,gBAAgB,OAAA;AAAE,mHAAA,gBAAgB,OAAA;AAE3C,wCAAwC;AACxC,uDAAsH;AAA7G,iHAAA,gBAAgB,OAAA;AAAE,+GAAA,cAAc,OAAA;AAAE,+GAAA,cAAc,OAAA;AAAE,2GAAA,UAAU,OAAA;AAAE,gHAAA,eAAe,OAAA;AACtF,+CAA8D;AAArD,uGAAA,UAAU,OAAA;AAAE,0GAAA,aAAa,OAAA;AAQlC,4BAA4B;AAC5B,uDAM+B;AAL3B,2HAAA,0BAA0B,OAAA;AAC1B,yHAAA,wBAAwB,OAAA;AACxB,qHAAA,oBAAoB,OAAA;AACpB,0HAAA,yBAAyB,OAAA;AACzB,qHAAA,oBAAoB,OAAA;AAExB,uDAA+D;AAAtD,uHAAA,sBAAsB,OAAA;AAC/B,6DAAsD;AAA7C,8GAAA,UAAU,OAAA;AAEnB,eAAe;AACf,qDAAyD;AAAhD,iHAAA,iBAAiB,OAAA;AAM1B,mEAGqC;AAFjC,4HAAA,qBAAqB,OAAA;AACrB,8HAAA,uBAAuB,OAAA;AAS3B,mEAIqC;AAHjC,oHAAA,aAAa,OAAA;AACb,uHAAA,gBAAgB,OAAA;AAChB,yHAAA,kBAAkB,OAAA;AAGtB,2DAAoE;AAA3D,8GAAA,WAAW,OAAA;AAAE,+GAAA,YAAY,OAAA;AAElC,mBAAmB;AACnB,iDAAmE;AAA1D,gHAAA,kBAAkB,OAAA;AAAE,uGAAA,SAAS,OAAA;AACtC,qDAAmG;AAA1F,2GAAA,WAAW,OAAA;AAAE,0GAAA,UAAU,OAAA;AAAE,+GAAA,eAAe,OAAA;AAAE,iHAAA,iBAAiB,OAAA;AAQpE,iBAAiB;AACjB,iEAAmH;AAA1G,2HAAA,qBAAqB,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AAAE,8HAAA,wBAAwB,OAAA;AAE9E,+DAA0D;AAAjD,kHAAA,aAAa,OAAA;AACtB,yDAA2E;AAAlE,uHAAA,qBAAqB,OAAA;AAAE,4GAAA,UAAU,OAAA;AAE1C,yBAAyB;AACzB,mDAA8E;AAArE,sHAAA,uBAAuB,OAAA;AAAE,6GAAA,cAAc,OAAA;AAEhD,2DAIiC;AAH7B,2HAAA,wBAAwB,OAAA;AACxB,2HAAA,wBAAwB,OAAA;AACxB,oHAAA,iBAAiB,OAAA;AAGrB,2DAMiC;AAL7B,qHAAA,kBAAkB,OAAA;AAClB,kHAAA,eAAe,OAAA;AACf,wHAAA,qBAAqB,OAAA;AACrB,oHAAA,iBAAiB,OAAA;AACjB,oHAAA,iBAAiB,OAAA;AAErB,mEAAgE;AAAvD,wHAAA,iBAAiB,OAAA;AAE1B,eAAe;AACf,iEAA8E;AAArE,wHAAA,kBAAkB,OAAA;AAAE,kHAAA,YAAY,OAAA;AAEzC,2DAWiC;AAV7B,uHAAA,oBAAoB,OAAA;AACpB,iHAAA,cAAc,OAAA;AACd,iHAAA,cAAc,OAAA;AACd,oHAAA,iBAAiB,OAAA;AACjB,kHAAA,eAAe,OAAA;AACf,yHAAA,sBAAsB,OAAA;AACtB,8GAAA,WAAW,OAAA;AACX,kHAAA,eAAe,OAAA;AACf,oHAAA,iBAAiB,OAAA;AACjB,uHAAA,oBAAoB,OAAA;AAQxB,qEAAyG;AAAhG,2HAAA,mBAAmB,OAAA;AAAE,6HAAA,qBAAqB,OAAA;AAAE,qHAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,12 @@ import { playwrightIntegration as _playwrightIntegration } from "./playwright.js
14
14
  export { _playwrightIntegration as playwrightIntegration };
15
15
  export { runPageHealthCheck, isPlaywrightAvailable, formatPageHealthReport, formatPageHealthJson, toScanResult, uploadPageHealthResult, } from "./page-health.js";
16
16
  export type { PageHealthOptions, PageHealthResult, CheckedRoute, } from "./page-health.js";
17
+ export { compareScreenshotsPixel, getBaselinePath, getCurrentScreenshotPath, getDiffImagePath, isPixelmatchAvailable, isPngjsAvailable, safeRouteName, } from "../utils/visual-regression.js";
18
+ export type { VisualRegressionOptions, VisualRegressionResult } from "../utils/visual-regression.js";
19
+ export { checkCWVThresholds, extractCoreWebVitals, formatCoreWebVitals, isLighthouseAvailable, runLighthouseForUrl, } from "../utils/lighthouse-metrics.js";
20
+ export type { CoreWebVitalsResult, CWVThresholds } from "../utils/lighthouse-metrics.js";
21
+ export { axeViolationsToIssues, isAxeCoreAvailable, mapAxeImpact, runAxeOnPage } from "../utils/runtime-a11y.js";
22
+ export type { AxeRunResult, AxeViolation } from "../utils/runtime-a11y.js";
17
23
  /** 所有可用的外部工具列表 */
18
24
  export declare const allExternalTools: import("./base.js").ExternalTool[];
19
25
  export { detectFormatter, runFormat } from "./formatter.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5F,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,qBAAqB,IAAI,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE/E,OAAO,EAAE,kBAAkB,IAAI,iBAAiB,EAAE,CAAC;AACnD,OAAO,EAAE,sBAAsB,IAAI,qBAAqB,EAAE,CAAC;AAC3D,OAAO,EAAE,qBAAqB,IAAI,oBAAoB,EAAE,CAAC;AAGzD,OAAO,EAAE,qBAAqB,IAAI,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,sBAAsB,IAAI,qBAAqB,EAAE,CAAC;AAG3D,OAAO,EACH,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACR,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACf,MAAM,kBAAkB,CAAC;AAE1B,kBAAkB;AAClB,eAAO,MAAM,gBAAgB,oCAK5B,CAAC;AAGF,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC5D,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5F,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,qBAAqB,IAAI,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE/E,OAAO,EAAE,kBAAkB,IAAI,iBAAiB,EAAE,CAAC;AACnD,OAAO,EAAE,sBAAsB,IAAI,qBAAqB,EAAE,CAAC;AAC3D,OAAO,EAAE,qBAAqB,IAAI,oBAAoB,EAAE,CAAC;AAGzD,OAAO,EAAE,qBAAqB,IAAI,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,sBAAsB,IAAI,qBAAqB,EAAE,CAAC;AAG3D,OAAO,EACH,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACR,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACH,uBAAuB,EACvB,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,GAChB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACrG,OAAO,EACH,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACtB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACjH,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE3E,kBAAkB;AAClB,eAAO,MAAM,gBAAgB,oCAK5B,CAAC;AAGF,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC5D,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Phase 4: 覆盖全面化 — 集成 ESLint / TypeScript / Stylelint
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.runFormat = exports.detectFormatter = exports.allExternalTools = exports.uploadPageHealthResult = exports.toScanResult = exports.formatPageHealthJson = exports.formatPageHealthReport = exports.isPlaywrightAvailable = exports.runPageHealthCheck = exports.playwrightIntegration = exports.stylelintIntegration = exports.typescriptIntegration = exports.eslintIntegration = exports.hasPackage = exports.eslintSeverityToFg = exports.runCommand = exports.runAllExternalTools = void 0;
7
+ exports.runFormat = exports.detectFormatter = exports.allExternalTools = exports.runAxeOnPage = exports.mapAxeImpact = exports.isAxeCoreAvailable = exports.axeViolationsToIssues = exports.runLighthouseForUrl = exports.isLighthouseAvailable = exports.formatCoreWebVitals = exports.extractCoreWebVitals = exports.checkCWVThresholds = exports.safeRouteName = exports.isPngjsAvailable = exports.isPixelmatchAvailable = exports.getDiffImagePath = exports.getCurrentScreenshotPath = exports.getBaselinePath = exports.compareScreenshotsPixel = exports.uploadPageHealthResult = exports.toScanResult = exports.formatPageHealthJson = exports.formatPageHealthReport = exports.isPlaywrightAvailable = exports.runPageHealthCheck = exports.playwrightIntegration = exports.stylelintIntegration = exports.typescriptIntegration = exports.eslintIntegration = exports.hasPackage = exports.eslintSeverityToFg = exports.runCommand = exports.runAllExternalTools = void 0;
8
8
  var base_js_1 = require("./base.js");
9
9
  Object.defineProperty(exports, "runAllExternalTools", { enumerable: true, get: function () { return base_js_1.runAllExternalTools; } });
10
10
  Object.defineProperty(exports, "runCommand", { enumerable: true, get: function () { return base_js_1.runCommand; } });
@@ -27,6 +27,26 @@ Object.defineProperty(exports, "formatPageHealthReport", { enumerable: true, get
27
27
  Object.defineProperty(exports, "formatPageHealthJson", { enumerable: true, get: function () { return page_health_js_1.formatPageHealthJson; } });
28
28
  Object.defineProperty(exports, "toScanResult", { enumerable: true, get: function () { return page_health_js_1.toScanResult; } });
29
29
  Object.defineProperty(exports, "uploadPageHealthResult", { enumerable: true, get: function () { return page_health_js_1.uploadPageHealthResult; } });
30
+ // v3.10.0: 页面测试进阶工具
31
+ var visual_regression_js_1 = require("../utils/visual-regression.js");
32
+ Object.defineProperty(exports, "compareScreenshotsPixel", { enumerable: true, get: function () { return visual_regression_js_1.compareScreenshotsPixel; } });
33
+ Object.defineProperty(exports, "getBaselinePath", { enumerable: true, get: function () { return visual_regression_js_1.getBaselinePath; } });
34
+ Object.defineProperty(exports, "getCurrentScreenshotPath", { enumerable: true, get: function () { return visual_regression_js_1.getCurrentScreenshotPath; } });
35
+ Object.defineProperty(exports, "getDiffImagePath", { enumerable: true, get: function () { return visual_regression_js_1.getDiffImagePath; } });
36
+ Object.defineProperty(exports, "isPixelmatchAvailable", { enumerable: true, get: function () { return visual_regression_js_1.isPixelmatchAvailable; } });
37
+ Object.defineProperty(exports, "isPngjsAvailable", { enumerable: true, get: function () { return visual_regression_js_1.isPngjsAvailable; } });
38
+ Object.defineProperty(exports, "safeRouteName", { enumerable: true, get: function () { return visual_regression_js_1.safeRouteName; } });
39
+ var lighthouse_metrics_js_1 = require("../utils/lighthouse-metrics.js");
40
+ Object.defineProperty(exports, "checkCWVThresholds", { enumerable: true, get: function () { return lighthouse_metrics_js_1.checkCWVThresholds; } });
41
+ Object.defineProperty(exports, "extractCoreWebVitals", { enumerable: true, get: function () { return lighthouse_metrics_js_1.extractCoreWebVitals; } });
42
+ Object.defineProperty(exports, "formatCoreWebVitals", { enumerable: true, get: function () { return lighthouse_metrics_js_1.formatCoreWebVitals; } });
43
+ Object.defineProperty(exports, "isLighthouseAvailable", { enumerable: true, get: function () { return lighthouse_metrics_js_1.isLighthouseAvailable; } });
44
+ Object.defineProperty(exports, "runLighthouseForUrl", { enumerable: true, get: function () { return lighthouse_metrics_js_1.runLighthouseForUrl; } });
45
+ var runtime_a11y_js_1 = require("../utils/runtime-a11y.js");
46
+ Object.defineProperty(exports, "axeViolationsToIssues", { enumerable: true, get: function () { return runtime_a11y_js_1.axeViolationsToIssues; } });
47
+ Object.defineProperty(exports, "isAxeCoreAvailable", { enumerable: true, get: function () { return runtime_a11y_js_1.isAxeCoreAvailable; } });
48
+ Object.defineProperty(exports, "mapAxeImpact", { enumerable: true, get: function () { return runtime_a11y_js_1.mapAxeImpact; } });
49
+ Object.defineProperty(exports, "runAxeOnPage", { enumerable: true, get: function () { return runtime_a11y_js_1.runAxeOnPage; } });
30
50
  /** 所有可用的外部工具列表 */
31
51
  exports.allExternalTools = [
32
52
  eslint_js_1.eslintIntegration,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,qCAA4F;AAAnF,8GAAA,mBAAmB,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,6GAAA,kBAAkB,OAAA;AAAE,qGAAA,UAAU,OAAA;AAExE,2CAAsE;AAIvC,kGAJD,6BAAkB,OAIA;AAHhD,mDAAkF;AAI/C,sGAJD,qCAAsB,OAIA;AAHxD,iDAA+E;AAI7C,qGAJD,mCAAqB,OAIA;AAEtD,8BAA8B;AAC9B,mDAAkF;AAC/C,sGADD,qCAAsB,OACA;AAExD,iBAAiB;AACjB,mDAO0B;AANtB,oHAAA,kBAAkB,OAAA;AAClB,uHAAA,qBAAqB,OAAA;AACrB,wHAAA,sBAAsB,OAAA;AACtB,sHAAA,oBAAoB,OAAA;AACpB,8GAAA,YAAY,OAAA;AACZ,wHAAA,sBAAsB,OAAA;AAQ1B,kBAAkB;AACL,QAAA,gBAAgB,GAAG;IAC5B,6BAAkB;IAClB,qCAAsB;IACtB,mCAAqB;IACrB,qCAAsB;CACzB,CAAC;AAEF,oBAAoB;AACpB,+CAA4D;AAAnD,+GAAA,eAAe,OAAA;AAAE,yGAAA,SAAS,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,qCAA4F;AAAnF,8GAAA,mBAAmB,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,6GAAA,kBAAkB,OAAA;AAAE,qGAAA,UAAU,OAAA;AAExE,2CAAsE;AAIvC,kGAJD,6BAAkB,OAIA;AAHhD,mDAAkF;AAI/C,sGAJD,qCAAsB,OAIA;AAHxD,iDAA+E;AAI7C,qGAJD,mCAAqB,OAIA;AAEtD,8BAA8B;AAC9B,mDAAkF;AAC/C,sGADD,qCAAsB,OACA;AAExD,iBAAiB;AACjB,mDAO0B;AANtB,oHAAA,kBAAkB,OAAA;AAClB,uHAAA,qBAAqB,OAAA;AACrB,wHAAA,sBAAsB,OAAA;AACtB,sHAAA,oBAAoB,OAAA;AACpB,8GAAA,YAAY,OAAA;AACZ,wHAAA,sBAAsB,OAAA;AAQ1B,oBAAoB;AACpB,sEAQuC;AAPnC,+HAAA,uBAAuB,OAAA;AACvB,uHAAA,eAAe,OAAA;AACf,gIAAA,wBAAwB,OAAA;AACxB,wHAAA,gBAAgB,OAAA;AAChB,6HAAA,qBAAqB,OAAA;AACrB,wHAAA,gBAAgB,OAAA;AAChB,qHAAA,aAAa,OAAA;AAGjB,wEAMwC;AALpC,2HAAA,kBAAkB,OAAA;AAClB,6HAAA,oBAAoB,OAAA;AACpB,4HAAA,mBAAmB,OAAA;AACnB,8HAAA,qBAAqB,OAAA;AACrB,4HAAA,mBAAmB,OAAA;AAGvB,4DAAiH;AAAxG,wHAAA,qBAAqB,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AAAE,+GAAA,YAAY,OAAA;AAAE,+GAAA,YAAY,OAAA;AAG9E,kBAAkB;AACL,QAAA,gBAAgB,GAAG;IAC5B,6BAAkB;IAClB,qCAAsB;IACtB,mCAAqB;IACrB,qCAAsB;CACzB,CAAC;AAEF,oBAAoB;AACpB,+CAA4D;AAAnD,+GAAA,eAAe,OAAA;AAAE,yGAAA,SAAS,OAAA"}
@@ -12,6 +12,9 @@
12
12
  */
13
13
  import { type ChildProcess } from "node:child_process";
14
14
  import type { Issue, ScanResult } from "../types.js";
15
+ import { type CoreWebVitalsResult } from "../utils/lighthouse-metrics.js";
16
+ import { type AxeViolation } from "../utils/runtime-a11y.js";
17
+ import { type VisualRegressionResult } from "../utils/visual-regression.js";
15
18
  import { type DashboardClientConfig, type DashboardUploadResult } from "../utils/dashboard-client.js";
16
19
  export interface PageHealthOptions {
17
20
  /** 项目根目录 */
@@ -48,6 +51,30 @@ export interface PageHealthOptions {
48
51
  updateBaseline?: boolean;
49
52
  /** 基线截图目录 */
50
53
  baselineDir?: string;
54
+ /** 元素级截图选择器(默认全页截图) */
55
+ screenshotSelector?: string;
56
+ /** 视觉回归最大差异像素数(默认 100) */
57
+ maxDiffPixels?: number;
58
+ /** 视觉回归最大差异像素比例(默认 0.01) */
59
+ maxDiffPixelRatio?: number;
60
+ /** 禁用动态内容遮罩 */
61
+ noMask?: boolean;
62
+ /** 额外遮罩选择器 */
63
+ maskSelectors?: string[];
64
+ /** 启用 Lighthouse Core Web Vitals */
65
+ metrics?: boolean;
66
+ /** CWV 阈值覆盖 */
67
+ cwvThresholds?: {
68
+ lcp?: number;
69
+ cls?: number;
70
+ fcp?: number;
71
+ ttfb?: number;
72
+ inp?: number;
73
+ };
74
+ /** 启用运行时无障碍检测 */
75
+ a11y?: boolean;
76
+ /** axe-core 过滤标签 */
77
+ a11yTags?: string[];
51
78
  }
52
79
  export interface CheckedRoute {
53
80
  /** 路由路径 */
@@ -80,6 +107,12 @@ export interface CheckedRoute {
80
107
  screenshotChanged?: boolean;
81
108
  /** 基线截图路径 */
82
109
  baselinePath?: string;
110
+ /** v3.10.0: 像素级视觉回归结果 */
111
+ visualRegression?: VisualRegressionResult;
112
+ /** v3.10.0: Lighthouse Core Web Vitals */
113
+ metrics?: CoreWebVitalsResult;
114
+ /** v3.10.0: axe-core 运行时无障碍问题 */
115
+ a11yViolations?: AxeViolation[];
83
116
  }
84
117
  export interface PageHealthResult {
85
118
  /** 发现的 Issue */
@@ -1 +1 @@
1
- {"version":3,"file":"page-health.d.ts","sourceRoot":"","sources":["../../src/integrations/page-health.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page-health.d.ts","sourceRoot":"","sources":["../../src/integrations/page-health.ts"],"names":[],"mappings":"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"}