frontend-guardian-core 3.5.1 → 3.5.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.
package/bin/fg-core.js CHANGED
@@ -56,6 +56,8 @@ import {
56
56
  generateComplianceReport,
57
57
  complianceReportToMarkdown,
58
58
  saveComplianceReport,
59
+ uploadToDashboardServer,
60
+ detectDashboardConfig,
59
61
  } from "../dist/index.js";
60
62
  import pc from "picocolors";
61
63
  import { runWatchMode } from "./watch-mode.js";
@@ -88,7 +90,7 @@ const MODULE_RULES = {
88
90
 
89
91
  function showHelp() {
90
92
  console.log(`
91
- Frontend Guardian Core v3.5.1
93
+ Frontend Guardian Core v3.5.2
92
94
 
93
95
  Usage:
94
96
  fg-core <project-dir> [options]
@@ -144,6 +146,8 @@ Options:
144
146
  --assign 通过 CODEOWNERS 为 issue 推断责任人
145
147
  --strategy <s> 扫描策略: strict | standard | loose (默认: standard)
146
148
  --compliance <file> 生成 SOC2/ISO27001 合规报告到指定文件
149
+ --server <url> 扫描后上报到治理看板服务器
150
+ --serve 扫描前启动本地看板服务(扫描完成后停止)
147
151
  --help, -h 显示帮助
148
152
 
149
153
  Examples:
@@ -216,6 +220,8 @@ async function main() {
216
220
  assign: false,
217
221
  strategy: "standard",
218
222
  compliance: undefined,
223
+ server: undefined,
224
+ serve: false,
219
225
  };
220
226
 
221
227
  for (let i = 0; i < args.length; i++) {
@@ -377,6 +383,12 @@ async function main() {
377
383
  case "--compliance":
378
384
  options.compliance = args[++i];
379
385
  break;
386
+ case "--server":
387
+ options.server = args[++i];
388
+ break;
389
+ case "--serve":
390
+ options.serve = true;
391
+ break;
380
392
  case "--help":
381
393
  case "-h":
382
394
  showHelp();
@@ -1152,6 +1164,44 @@ async function runAllModules(options, cacheInstance) {
1152
1164
  }
1153
1165
  }
1154
1166
 
1167
+ // v3.5.2: 上报到治理看板服务器
1168
+ const dashboardUrl = options.server || (options.serve ? "http://localhost:3456" : null);
1169
+ if (dashboardUrl) {
1170
+ const allIssues = collectAllIssues(allResults, externalResults);
1171
+ const projectName = options.projectDir.split("/").pop() || "unknown";
1172
+ const dashboardConfig = { serverUrl: dashboardUrl };
1173
+
1174
+ for (const mod of MODULES) {
1175
+ const r = allResults[mod];
1176
+ if (!r) continue;
1177
+ const moduleIssues = [...r.issues.critical, ...r.issues.warning, ...r.issues.suggestion];
1178
+ const payload = {
1179
+ projectName,
1180
+ projectPath: options.projectDir,
1181
+ module: mod,
1182
+ result: r,
1183
+ issues: moduleIssues,
1184
+ meta: {
1185
+ strategy: options.strategy,
1186
+ duration: r.duration,
1187
+ filesScanned: r.filesScanned,
1188
+ },
1189
+ };
1190
+ const result = await uploadToDashboardServer(payload, dashboardConfig);
1191
+ if (!options.json) {
1192
+ if (result.success) {
1193
+ console.log(pc.cyan(`📊 已上报到看板服务器: ${mod}`));
1194
+ } else {
1195
+ console.log(pc.yellow(` ⚠️ 看板上报失败 (${mod}): ${result.error}`));
1196
+ }
1197
+ }
1198
+ }
1199
+ if (!options.json) {
1200
+ console.log(pc.gray(` Dashboard: ${dashboardUrl}`));
1201
+ console.log("");
1202
+ }
1203
+ }
1204
+
1155
1205
  console.log(
1156
1206
  pc.gray(
1157
1207
  `⏱️ 总耗时: ${totalDuration}ms | 扫描 ${totalFilesScanned} 个文件 | ${totalFilesWithIssues} 个文件有问题`
@@ -1479,6 +1529,36 @@ async function runSingleModule(options, cacheInstance) {
1479
1529
  }
1480
1530
  }
1481
1531
 
1532
+ // v3.5.2: 上报到治理看板服务器
1533
+ const singleDashboardUrl = options.server || (options.serve ? "http://localhost:3456" : null);
1534
+ if (singleDashboardUrl) {
1535
+ const allIssues = [...issues.critical, ...issues.warning, ...issues.suggestion];
1536
+ const projectName = options.projectDir.split("/").pop() || "unknown";
1537
+ const dashboardConfig = { serverUrl: singleDashboardUrl };
1538
+ const payload = {
1539
+ projectName,
1540
+ projectPath: options.projectDir,
1541
+ module: options.module,
1542
+ result,
1543
+ issues: allIssues,
1544
+ meta: {
1545
+ strategy: options.strategy,
1546
+ duration: result.duration,
1547
+ filesScanned: result.filesScanned,
1548
+ },
1549
+ };
1550
+ const uploadResult = await uploadToDashboardServer(payload, dashboardConfig);
1551
+ if (!options.json) {
1552
+ if (uploadResult.success) {
1553
+ console.log(pc.cyan(`📊 已上报到看板服务器: ${options.module}`));
1554
+ } else {
1555
+ console.log(pc.yellow(` ⚠️ 看板上报失败: ${uploadResult.error}`));
1556
+ }
1557
+ console.log(pc.gray(` Dashboard: ${singleDashboardUrl}`));
1558
+ console.log("");
1559
+ }
1560
+ }
1561
+
1482
1562
  // v3.0.0: AI 修复建议
1483
1563
  if (options.aiFix) {
1484
1564
  const aiConfig = detectAIConfig();
@@ -0,0 +1,102 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Frontend Guardian Dashboard Server CLI
4
+ * Usage: fg-server [options]
5
+ */
6
+
7
+ import { DashboardServer } from "../dist/index.js";
8
+ import pc from "picocolors";
9
+
10
+ function showHelp() {
11
+ console.log(`
12
+ Frontend Guardian Dashboard Server v3.5.2
13
+
14
+ Usage:
15
+ fg-server [options]
16
+
17
+ Options:
18
+ --port <n> Server port (default: 3456)
19
+ --data-dir <dir> Data storage directory (default: ~/.frontend-guardian-server)
20
+ --cors <origin> Enable CORS for the given origin (e.g. "*" or "http://localhost:3000")
21
+ --auth-token <t> Require Bearer token for POST /api/reports
22
+ --help, -h Show this help
23
+
24
+ Examples:
25
+ fg-server # Start on default port 3456
26
+ fg-server --port 8765 # Start on port 8765
27
+ fg-server --cors "*" # Enable CORS for all origins
28
+ fg-server --auth-token secret123 # Require auth token for report uploads
29
+ `);
30
+ }
31
+
32
+ async function main() {
33
+ const args = process.argv.slice(2);
34
+
35
+ const options = {
36
+ port: 3456,
37
+ dataDir: undefined,
38
+ cors: undefined,
39
+ authToken: undefined,
40
+ };
41
+
42
+ for (let i = 0; i < args.length; i++) {
43
+ switch (args[i]) {
44
+ case "--port":
45
+ options.port = parseInt(args[++i], 10) || 3456;
46
+ break;
47
+ case "--data-dir":
48
+ options.dataDir = args[++i];
49
+ break;
50
+ case "--cors":
51
+ options.cors = args[++i];
52
+ break;
53
+ case "--auth-token":
54
+ options.authToken = args[++i];
55
+ break;
56
+ case "--help":
57
+ case "-h":
58
+ showHelp();
59
+ process.exit(0);
60
+ }
61
+ }
62
+
63
+ console.log(pc.cyan("Frontend Guardian Dashboard Server"));
64
+ console.log(pc.gray(` Version: 3.5.2`));
65
+ console.log("");
66
+
67
+ const server = new DashboardServer({
68
+ dataDir: options.dataDir,
69
+ cors: options.cors,
70
+ authToken: options.authToken,
71
+ });
72
+
73
+ // Graceful shutdown
74
+ process.on("SIGINT", async () => {
75
+ console.log(pc.gray("\nShutting down..."));
76
+ await server.stop();
77
+ process.exit(0);
78
+ });
79
+
80
+ process.on("SIGTERM", async () => {
81
+ await server.stop();
82
+ process.exit(0);
83
+ });
84
+
85
+ await server.start(options.port);
86
+
87
+ console.log(pc.green(` Server: http://localhost:${options.port}`));
88
+ console.log(pc.gray(` Data directory: ${server.getDataDir()}`));
89
+ if (options.cors) {
90
+ console.log(pc.gray(` CORS: ${options.cors}`));
91
+ }
92
+ if (options.authToken) {
93
+ console.log(pc.gray(` Auth: Bearer token required for uploads`));
94
+ }
95
+ console.log("");
96
+ console.log(pc.gray("Press Ctrl+C to stop"));
97
+ }
98
+
99
+ main().catch((err) => {
100
+ console.error(pc.red("Server error:"), err.message || err);
101
+ process.exit(1);
102
+ });
package/dist/index.d.ts CHANGED
@@ -65,4 +65,9 @@ export { downloadBaseline, loadBaselineAsync } from "./utils/baseline.js";
65
65
  export { generateComplianceReport, complianceReportToMarkdown, saveComplianceReport, getComplianceMapping, registerComplianceMapping, } from "./utils/compliance.js";
66
66
  export type { ComplianceControl, ComplianceFinding, ComplianceRecommendation, ComplianceReport, RuleComplianceMapping, } from "./utils/compliance.js";
67
67
  export { getFileExt, getJSXTagName } from "./utils/common.js";
68
+ export { DashboardServer } from "./server/dashboard-server.js";
69
+ export type { DashboardProject, DashboardReport, DashboardServerOptions, ReportPayload, TrendPoint, } from "./server/dashboard-server.js";
70
+ export { generateDashboardHtml } from "./server/dashboard-html.js";
71
+ export { uploadToDashboardServer, detectDashboardConfig, } from "./utils/dashboard-client.js";
72
+ export type { DashboardClientConfig, DashboardUploadResult, DashboardReportPayload, } from "./utils/dashboard-client.js";
68
73
  //# 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
@@ -5,7 +5,7 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.writeJobSummary = exports.isGitHubActions = exports.formatAllAnnotations = exports.formatIssuesAnnotations = exports.formatIssueAnnotation = exports.formatSarif = exports.generateSarif = exports.toBaselineIssue = exports.saveBaseline = exports.loadBaseline = exports.generateBaseline = exports.compareWithBaseline = exports.BaselineManager = exports.detectFixBotConfig = exports.runFixBot = exports.detectUploadConfig = exports.uploadReport = exports.formatHistoryCompareJson = exports.formatHistoryCompare = exports.compareHistoryReports = exports.generateAIFixSuggestions = exports.detectAIConfig = exports.AIFixSuggester = exports.formatWorkspaceJson = exports.formatWorkspaceReport = exports.scanWorkspace = exports.analyzeCrossPackageDeps = exports.detectMonorepo = exports.generateDashboard = exports.HistoryReport = exports.detectCIProvider = exports.generateCIConfig = exports.detectHusky = exports.hasGitHook = exports.uninstallGitHooks = exports.installGitHooks = exports.generateDefaultConfig = exports.initConfig = exports.loadConfig = exports.detectProjectMeta = exports.getAdaptiveConcurrency = exports.walkAST = exports.hasImport = exports.getImports = exports.parseAST = exports.createRegistry = exports.RuleRegistry = exports.SmartCache = exports.createEngine = exports.RuleEngine = void 0;
8
- exports.getJSXTagName = exports.getFileExt = exports.registerComplianceMapping = exports.getComplianceMapping = exports.saveComplianceReport = exports.complianceReportToMarkdown = exports.generateComplianceReport = exports.loadBaselineAsync = exports.downloadBaseline = exports.buildNotificationPayload = exports.detectNotificationConfig = exports.sendNotifications = exports.matchOwner = exports.loadCodeowners = exports.parseCodeowners = exports.findCodeowners = exports.CodeownersParser = exports.runLSPServer = exports.createIncrementalDiagnostic = exports.IncrementalDiagnostic = exports.svelteRules = exports.platformRules = exports.hooksRules = exports.componentRules = exports.crossFileRules = exports.namingRules = exports.securityRules = exports.a11yRules = exports.performanceRules = exports.i18nRules = exports.runAllExternalTools = exports.stylelintIntegration = exports.typescriptIntegration = exports.eslintIntegration = exports.allExternalTools = exports.autoPublishComment = exports.createPublisher = exports.detectPublisherConfig = exports.GitLabMRPublisher = exports.GitHubPRPublisher = exports.isGuardianComment = exports.COMMENT_MARKER = exports.generatePRCommentSummary = exports.generatePRComment = void 0;
8
+ exports.detectDashboardConfig = exports.uploadToDashboardServer = exports.generateDashboardHtml = exports.DashboardServer = exports.getJSXTagName = exports.getFileExt = exports.registerComplianceMapping = exports.getComplianceMapping = exports.saveComplianceReport = exports.complianceReportToMarkdown = exports.generateComplianceReport = exports.loadBaselineAsync = exports.downloadBaseline = exports.buildNotificationPayload = exports.detectNotificationConfig = exports.sendNotifications = exports.matchOwner = exports.loadCodeowners = exports.parseCodeowners = exports.findCodeowners = exports.CodeownersParser = exports.runLSPServer = exports.createIncrementalDiagnostic = exports.IncrementalDiagnostic = exports.svelteRules = exports.platformRules = exports.hooksRules = exports.componentRules = exports.crossFileRules = exports.namingRules = exports.securityRules = exports.a11yRules = exports.performanceRules = exports.i18nRules = exports.runAllExternalTools = exports.stylelintIntegration = exports.typescriptIntegration = exports.eslintIntegration = exports.allExternalTools = exports.autoPublishComment = exports.createPublisher = exports.detectPublisherConfig = exports.GitLabMRPublisher = exports.GitHubPRPublisher = exports.isGuardianComment = exports.COMMENT_MARKER = exports.generatePRCommentSummary = exports.generatePRComment = void 0;
9
9
  var rule_engine_js_1 = require("./engine/rule-engine.js");
10
10
  Object.defineProperty(exports, "RuleEngine", { enumerable: true, get: function () { return rule_engine_js_1.RuleEngine; } });
11
11
  Object.defineProperty(exports, "createEngine", { enumerable: true, get: function () { return rule_engine_js_1.createEngine; } });
@@ -155,4 +155,12 @@ Object.defineProperty(exports, "registerComplianceMapping", { enumerable: true,
155
155
  var common_js_1 = require("./utils/common.js");
156
156
  Object.defineProperty(exports, "getFileExt", { enumerable: true, get: function () { return common_js_1.getFileExt; } });
157
157
  Object.defineProperty(exports, "getJSXTagName", { enumerable: true, get: function () { return common_js_1.getJSXTagName; } });
158
+ // v3.5.2: Governance Dashboard Server
159
+ var dashboard_server_js_1 = require("./server/dashboard-server.js");
160
+ Object.defineProperty(exports, "DashboardServer", { enumerable: true, get: function () { return dashboard_server_js_1.DashboardServer; } });
161
+ var dashboard_html_js_1 = require("./server/dashboard-html.js");
162
+ Object.defineProperty(exports, "generateDashboardHtml", { enumerable: true, get: function () { return dashboard_html_js_1.generateDashboardHtml; } });
163
+ var dashboard_client_js_1 = require("./utils/dashboard-client.js");
164
+ Object.defineProperty(exports, "uploadToDashboardServer", { enumerable: true, get: function () { return dashboard_client_js_1.uploadToDashboardServer; } });
165
+ Object.defineProperty(exports, "detectDashboardConfig", { enumerable: true, get: function () { return dashboard_client_js_1.detectDashboardConfig; } });
158
166
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Dashboard HTML Generator
3
+ *
4
+ * Generates a self-contained SPA that fetches data from the
5
+ * dashboard server APIs and renders charts using Canvas.
6
+ *
7
+ * Zero external dependencies: pure native JS + Canvas.
8
+ */
9
+ export declare function generateDashboardHtml(): string;
10
+ //# sourceMappingURL=dashboard-html.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-html.d.ts","sourceRoot":"","sources":["../../src/server/dashboard-html.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,wBAAgB,qBAAqB,IAAI,MAAM,CAkV9C"}