@panguard-ai/panguard-report 1.5.5 → 1.6.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,mBAAmB,EAEnB,YAAY,EACZ,YAAY,EACZ,cAAc,EACf,MAAM,aAAa,CAAC;AAUrB,0CAA0C;AAC1C,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,iBAAiB,GACjB,UAAU,GACV,SAAS,GACT,QAAQ,GACR,MAAM,CAAC;AAEX,2BAA2B;AAC3B,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAmC7D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY,CAoB9E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAgBzD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAU5C;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAqCpC;AA6CD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4J9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,mBAAmB,EAEnB,YAAY,EACZ,YAAY,EACZ,cAAc,EACf,MAAM,aAAa,CAAC;AAWrB,0CAA0C;AAC1C,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,iBAAiB,GACjB,UAAU,GACV,SAAS,GACT,QAAQ,GACR,MAAM,CAAC;AAEX,2BAA2B;AAC3B,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAmC7D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY,CAoB9E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAgBzD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAU5C;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAqCpC;AA6CD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsL9D"}
package/dist/cli/index.js CHANGED
@@ -8,6 +8,7 @@
8
8
  import { DEFAULT_REPORT_CONFIG } from '../types.js';
9
9
  import { generateComplianceReport, generateComplianceReportWithAssessment, reportToJSON, generateSummaryText, } from '../generator/report-generator.js';
10
10
  import { generatePDFReport } from '../generator/pdf-generator.js';
11
+ import { generateHTMLReport } from '../generator/html-generator.js';
11
12
  /**
12
13
  * Parse CLI arguments
13
14
  * 解析 CLI 參數
@@ -276,6 +277,31 @@ export async function executeCli(args) {
276
277
  });
277
278
  console.log(`PDF report saved to / PDF 報告已儲存至: ${pdfPath}`);
278
279
  }
280
+ else if (format === 'html') {
281
+ // Bug 3 fix (2026-05-19): previously fell through to the summary
282
+ // branch — CLI said "Report generated successfully" but wrote no
283
+ // file. Now generates a real single-file HTML report (inline CSS,
284
+ // print-friendly).
285
+ const { mkdir } = await import('node:fs/promises');
286
+ const outputDir = options.outputDir ?? DEFAULT_REPORT_CONFIG.outputDir;
287
+ await mkdir(outputDir, { recursive: true });
288
+ const htmlPath = `${outputDir}/${report.metadata.reportId}.html`;
289
+ const isZh = language === 'zh-TW';
290
+ const htmlTitle = isZh
291
+ ? `Panguard AI - ${framework} 合規報告`
292
+ : `Panguard AI - ${framework} Compliance Report`;
293
+ await generateHTMLReport({
294
+ title: htmlTitle,
295
+ framework,
296
+ lang: language,
297
+ outputPath: htmlPath,
298
+ findings: report.findings,
299
+ assessmentResult: report,
300
+ organizationName: options.organizationName,
301
+ generatedAt: report.metadata.generatedAt.toISOString().split('T')[0],
302
+ });
303
+ console.log(`HTML report saved to / HTML 報告已儲存至: ${htmlPath}`);
304
+ }
279
305
  else if (format === 'json') {
280
306
  const json = reportToJSON(report);
281
307
  if (options.outputDir) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Compliance Report HTML Generator
3
+ * 合規報告 HTML 產生器
4
+ *
5
+ * Brand-aligned customer-facing report (2026-05-19 rebrand): warm-black
6
+ * dark theme on screen matching panguard.ai design system (Surface 0
7
+ * #1A1614 + Sage #8B9A8E + Active Emerald #34D399 + Space Grotesk
8
+ * headings + Inter body + JetBrains Mono for IDs and code spans).
9
+ *
10
+ * Print stylesheet (@media print) switches to a warm-light variant so
11
+ * the artifact prints cleanly to PDF while keeping sage accents — same
12
+ * pattern Linear / Vercel use for branded dashboards that also need
13
+ * printable receipts.
14
+ *
15
+ * Bilingual labels for zh-TW vs en. Single self-contained file:
16
+ * inline CSS, inline Google Font @import, inline shield SVG logo.
17
+ * Auditors can open offline, email, or browser-print to PDF.
18
+ *
19
+ * @module @panguard-ai/panguard-report/generator/html-generator
20
+ */
21
+ import type { ComplianceFinding, ComplianceReportData, ReportLanguage } from '../types.js';
22
+ export interface HTMLReportOptions {
23
+ title: string;
24
+ framework: string;
25
+ lang: ReportLanguage;
26
+ outputPath: string;
27
+ findings: ComplianceFinding[];
28
+ assessmentResult?: ComplianceReportData;
29
+ generatedAt?: string;
30
+ organizationName?: string;
31
+ }
32
+ export declare function generateHTMLReport(opts: HTMLReportOptions): Promise<string>;
33
+ //# sourceMappingURL=html-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-generator.d.ts","sourceRoot":"","sources":["../../src/generator/html-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAa3F,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AA+lBD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBjF"}
@@ -0,0 +1,605 @@
1
+ /**
2
+ * Compliance Report HTML Generator
3
+ * 合規報告 HTML 產生器
4
+ *
5
+ * Brand-aligned customer-facing report (2026-05-19 rebrand): warm-black
6
+ * dark theme on screen matching panguard.ai design system (Surface 0
7
+ * #1A1614 + Sage #8B9A8E + Active Emerald #34D399 + Space Grotesk
8
+ * headings + Inter body + JetBrains Mono for IDs and code spans).
9
+ *
10
+ * Print stylesheet (@media print) switches to a warm-light variant so
11
+ * the artifact prints cleanly to PDF while keeping sage accents — same
12
+ * pattern Linear / Vercel use for branded dashboards that also need
13
+ * printable receipts.
14
+ *
15
+ * Bilingual labels for zh-TW vs en. Single self-contained file:
16
+ * inline CSS, inline Google Font @import, inline shield SVG logo.
17
+ * Auditors can open offline, email, or browser-print to PDF.
18
+ *
19
+ * @module @panguard-ai/panguard-report/generator/html-generator
20
+ */
21
+ import { writeFile, mkdir } from 'node:fs/promises';
22
+ import { dirname } from 'node:path';
23
+ import { createLogger } from '@panguard-ai/core';
24
+ import { getFrameworkName, getFrameworkControls } from '../frameworks/index.js';
25
+ import { evaluateControls, generateExecutiveSummary, generateStatistics, generateRecommendations, } from '../mapper/index.js';
26
+ import { getSectionLabels, getSeverityLabel, getStatusLabel } from '../templates/index.js';
27
+ const logger = createLogger('panguard-report:html');
28
+ /**
29
+ * Brand tokens — keep in lockstep with /Users/user/Downloads/panguard-ai/
30
+ * packages/website/DESIGN.md and packages/app/tailwind.config.ts.
31
+ */
32
+ const BRAND = {
33
+ // Dark surfaces
34
+ surface0: '#1A1614',
35
+ surface1: '#1F1C19',
36
+ surface2: '#272320',
37
+ surface3: '#302B27',
38
+ // Borders
39
+ borderDefault: '#2E2A27',
40
+ borderHover: '#3D3835',
41
+ // Text
42
+ textPrimary: '#F5F1E8',
43
+ textSecondary: '#A09890',
44
+ textMuted: '#9A9490',
45
+ // Brand sage
46
+ sage: '#8B9A8E',
47
+ sageLight: '#A3B0A6',
48
+ sageDark: '#6B7A6E',
49
+ sageGlow: 'rgba(139, 154, 142, 0.15)',
50
+ // Active emerald
51
+ emerald: '#34D399',
52
+ emeraldLight: '#6EE7B7',
53
+ emeraldDark: '#059669',
54
+ // Severity
55
+ critical: '#EF4444',
56
+ high: '#F97316',
57
+ medium: '#EAB308',
58
+ low: '#34D399',
59
+ info: '#9CA3AF',
60
+ // Semantic
61
+ redAlert: '#C75050',
62
+ };
63
+ const SEVERITY_COLOR = {
64
+ critical: BRAND.critical,
65
+ high: BRAND.high,
66
+ medium: BRAND.medium,
67
+ low: BRAND.low,
68
+ info: BRAND.info,
69
+ };
70
+ const STATUS_COLOR = {
71
+ pass: BRAND.emerald,
72
+ fail: BRAND.redAlert,
73
+ partial: BRAND.medium,
74
+ not_applicable: BRAND.textMuted,
75
+ };
76
+ /** Inline shield logo (currentColor — fill via CSS) */
77
+ const SHIELD_SVG = `<svg viewBox="385 323 1278 1403" xmlns="http://www.w3.org/2000/svg" aria-label="PanGuard shield">
78
+ <path fill="currentColor" d="M 1021.5 830.423 C 1026.54 829.911 1045.81 832.659 1051.64 833.401 C 1072.38 835.99 1093.1 838.746 1113.8 841.667 L 1329.99 871.428 L 1329.95 1306.51 L 1330 1422.21 C 1330.01 1450.54 1332.08 1491.81 1325.18 1518.04 C 1318.79 1541.46 1305.62 1562.47 1287.31 1578.42 C 1269.98 1593.59 1234.62 1610.78 1212.96 1622.97 C 1151.4 1657.6 1087.44 1689.5 1026.42 1725.08 L 1024.58 1725.72 C 1020.72 1724.57 1005.67 1715.74 1001.44 1713.38 C 986.676 1705.08 971.857 1696.88 956.982 1688.79 L 836.342 1623.07 C 818.678 1613.37 800.537 1603.48 783.285 1593.93 C 741.183 1570.62 718.225 1528.6 718.162 1480.8 C 718.14 1463.85 718.093 1446.28 718.119 1429.07 L 718.13 1313.33 L 718.15 871.408 C 819.171 858.462 920.068 841.835 1021.5 830.423 z"/>
79
+ <path fill="currentColor" d="M 687.515 577.4 C 696.504 576.451 715.718 579.584 725.68 580.913 L 782.266 588.553 C 853.62 598.25 926.853 607.634 997.939 618.387 L 997.872 779.654 C 966.188 784.487 928.734 789.954 897.039 793.352 L 897.073 705.399 C 831.524 696.853 760.432 685.286 694.176 678.356 C 683.151 677.203 646.195 683.753 632.643 685.485 L 487.112 705.406 C 488.77 841.757 487.098 980.17 487.357 1116.69 L 487.339 1188.98 C 487.213 1243.94 479.328 1246.69 530.666 1273.69 C 574.625 1298.03 623.372 1322.43 666.093 1347.35 C 665.454 1385.26 666.06 1424.82 666.087 1462.87 C 649.609 1452.6 628.321 1441.62 610.88 1432.12 L 500.871 1372.76 C 476.603 1359.56 440.159 1342.09 421.535 1323.57 C 404.11 1306.02 392.433 1283.59 388.055 1259.25 C 384.254 1237.81 385.323 1203.28 385.354 1180.66 L 385.478 1064.48 L 385.312 618.209 C 414.868 615.376 445.833 609.518 475.437 605.863 C 545.54 597.208 617.46 584.737 687.515 577.4 z"/>
80
+ <path fill="currentColor" d="M 1348.89 577.369 C 1360.73 575.936 1415.83 584.528 1431.77 586.589 C 1508.75 596.536 1585.62 608.685 1662.67 618.335 L 1662.73 1028.87 L 1662.69 1154.09 C 1662.67 1223.3 1674.33 1293.75 1609.64 1337.92 C 1596.01 1347.22 1581.75 1354.57 1567.33 1362.44 L 1512.89 1391.87 L 1382 1462.6 C 1383.76 1427.96 1382.35 1382.83 1382.21 1347.24 C 1420 1324.81 1467.93 1301.58 1507.58 1279.5 C 1524.53 1270.36 1558.74 1256.3 1560.1 1235.39 C 1561.42 1215.18 1560.95 1193.69 1560.9 1173.32 L 1560.87 1066.29 L 1560.68 705.345 C 1543.39 703.65 1521.51 700.068 1504.1 697.576 C 1473.23 693.054 1442.33 688.801 1411.39 684.819 C 1399.03 683.204 1369.09 678.563 1357.99 678.482 C 1343.65 678.377 1310.02 683.839 1294.14 685.904 C 1246.36 692.092 1198.63 698.627 1150.95 705.51 C 1151.37 734.567 1151.1 764.255 1151.14 793.361 C 1118.48 789.558 1083.43 784.206 1050.79 779.597 L 1050.69 617.847 L 1348.89 577.369 z"/>
81
+ <path fill="currentColor" d="M 1017.32 323.354 C 1027.15 321.591 1105.66 333.344 1122.51 335.603 C 1166.74 341.267 1210.92 347.328 1255.05 353.786 C 1279.68 357.183 1305.51 360.23 1329.92 364.192 L 1329.98 526.684 C 1296.55 530.372 1261.73 535.721 1228.25 540.29 C 1228.4 510.591 1228.39 480.892 1228.23 451.193 C 1219.27 449.729 1209.61 448.427 1200.57 447.329 C 1144.13 440.467 1086.78 429.864 1030.24 424.572 C 1018.71 422.967 967.642 430.978 952.027 433.125 L 819.579 450.968 C 820.252 479.945 819.726 511.22 819.879 540.382 C 785.991 535.397 752.051 530.778 718.064 526.526 L 717.99 364.358 C 745.543 359.872 774.642 356.332 802.417 352.399 L 1017.32 323.354 z"/>
82
+ </svg>`;
83
+ function escapeHtml(s) {
84
+ if (s === undefined || s === null)
85
+ return '';
86
+ return String(s)
87
+ .replace(/&/g, '&amp;')
88
+ .replace(/</g, '&lt;')
89
+ .replace(/>/g, '&gt;')
90
+ .replace(/"/g, '&quot;')
91
+ .replace(/'/g, '&#39;');
92
+ }
93
+ function renderHTML(opts) {
94
+ const labels = getSectionLabels(opts.lang);
95
+ const isZh = opts.lang === 'zh-TW';
96
+ const t = (en, zh) => (isZh ? zh : en);
97
+ const framework = opts.framework;
98
+ const frameworkName = getFrameworkName(framework, opts.lang);
99
+ const assessment = opts.assessmentResult ??
100
+ {
101
+ findings: opts.findings,
102
+ metadata: {
103
+ reportId: '—',
104
+ generatedAt: new Date(),
105
+ framework: opts.framework,
106
+ language: opts.lang,
107
+ },
108
+ };
109
+ const controls = getFrameworkControls(framework);
110
+ const evaluated = evaluateControls(controls, opts.findings);
111
+ const exec = generateExecutiveSummary(evaluated, opts.findings, opts.lang);
112
+ const stats = generateStatistics(evaluated, opts.findings);
113
+ const recs = generateRecommendations(evaluated, opts.lang);
114
+ void stats;
115
+ const sevCounts = opts.findings.reduce((acc, f) => {
116
+ acc[f.severity] = (acc[f.severity] ?? 0) + 1;
117
+ return acc;
118
+ }, {});
119
+ const findingRows = opts.findings
120
+ .map((f) => {
121
+ const sevColor = SEVERITY_COLOR[f.severity] ?? BRAND.textPrimary;
122
+ return `
123
+ <tr>
124
+ <td class="mono">${escapeHtml(f.findingId)}</td>
125
+ <td><span class="badge" style="background:${sevColor}1A;color:${sevColor};border-color:${sevColor}4D">${escapeHtml(getSeverityLabel(f.severity, opts.lang))}</span></td>
126
+ <td class="cell-title">${escapeHtml(f.title)}</td>
127
+ <td class="cell-cat">${escapeHtml(f.category)}</td>
128
+ <td class="muted">${escapeHtml(f.description ?? '')}</td>
129
+ </tr>`;
130
+ })
131
+ .join('');
132
+ const controlRows = evaluated
133
+ .map((c) => {
134
+ const statusColor = STATUS_COLOR[c.status] ?? BRAND.textPrimary;
135
+ const controlTitle = isZh ? c.titleZh : c.titleEn;
136
+ const evidenceText = Array.isArray(c.evidence) ? c.evidence.join('; ') : (c.evidence ?? '');
137
+ return `
138
+ <tr>
139
+ <td class="mono">${escapeHtml(c.controlId)}</td>
140
+ <td class="cell-title">${escapeHtml(controlTitle)}</td>
141
+ <td><span class="badge" style="background:${statusColor}1A;color:${statusColor};border-color:${statusColor}4D">${escapeHtml(getStatusLabel(c.status, opts.lang))}</span></td>
142
+ <td>${c.relatedFindings.length}</td>
143
+ <td class="muted">${escapeHtml(evidenceText)}</td>
144
+ </tr>`;
145
+ })
146
+ .join('');
147
+ const recRows = recs
148
+ .map((r, i) => `
149
+ <li>
150
+ <div class="rec-head"><span class="rec-num">${String(i + 1).padStart(2, '0')}</span> <strong>${escapeHtml(r.title)}</strong></div>
151
+ <div class="rec-body">${escapeHtml(r.description)}</div>
152
+ <div class="rec-meta">
153
+ ${labels.priority}: <strong>${escapeHtml(r.priority)}</strong>
154
+ <span class="dot">·</span>
155
+ ${labels.estimatedEffort}: ${escapeHtml(r.estimatedEffort ?? '—')}
156
+ </div>
157
+ </li>`)
158
+ .join('');
159
+ const generatedDate = opts.generatedAt ?? new Date().toISOString().split('T')[0];
160
+ const totalControlsLabel = t('Total Controls', '總控制項');
161
+ const generatedLabel = t('Generated', '產生時間');
162
+ const noFindingsText = t('No findings recorded.', '本期未記錄任何發現。');
163
+ const confidentialText = t('Confidential — Panguard AI Compliance Report', '機密 — Panguard AI 合規報告');
164
+ const findingIdLabel = t('Finding ID', '發現編號');
165
+ const titleColLabel = t('Title', '標題');
166
+ const descColLabel = t('Description', '描述');
167
+ const controlIdLabel = t('Control ID', '控制項編號');
168
+ const controlTitleLabel = t('Control', '控制項');
169
+ const overlineText = t('AI Agent Compliance Report', 'AI Agent 合規報告');
170
+ const lang = isZh ? 'zh-TW' : 'en';
171
+ return `<!DOCTYPE html>
172
+ <html lang="${lang}">
173
+ <head>
174
+ <meta charset="UTF-8">
175
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
176
+ <title>${escapeHtml(opts.title)}</title>
177
+ <link rel="preconnect" href="https://fonts.googleapis.com">
178
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
179
+ <link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&family=Noto+Sans+TC:wght@400;500;600&display=swap" rel="stylesheet">
180
+ <style>
181
+ :root {
182
+ --surface-0: ${BRAND.surface0};
183
+ --surface-1: ${BRAND.surface1};
184
+ --surface-2: ${BRAND.surface2};
185
+ --surface-3: ${BRAND.surface3};
186
+ --border: ${BRAND.borderDefault};
187
+ --border-hover: ${BRAND.borderHover};
188
+ --text-primary: ${BRAND.textPrimary};
189
+ --text-secondary: ${BRAND.textSecondary};
190
+ --text-muted: ${BRAND.textMuted};
191
+ --sage: ${BRAND.sage};
192
+ --sage-light: ${BRAND.sageLight};
193
+ --emerald: ${BRAND.emerald};
194
+ --emerald-light: ${BRAND.emeraldLight};
195
+ }
196
+ * { box-sizing: border-box; }
197
+ html, body {
198
+ margin: 0; padding: 0;
199
+ background: var(--surface-0);
200
+ color: var(--text-primary);
201
+ font-family: 'Inter', system-ui, -apple-system, sans-serif;
202
+ font-size: 14px;
203
+ line-height: 1.6;
204
+ -webkit-font-smoothing: antialiased;
205
+ }
206
+ :lang(zh-TW), :lang(zh) {
207
+ font-family: 'Inter', 'Noto Sans TC', 'PingFang TC', 'Microsoft JhengHei', sans-serif;
208
+ }
209
+ .page {
210
+ max-width: 1024px;
211
+ margin: 0 auto;
212
+ padding: 48px 56px 64px;
213
+ }
214
+ /* Header */
215
+ header.cover {
216
+ margin-bottom: 48px;
217
+ }
218
+ .brand-row {
219
+ display: flex;
220
+ align-items: center;
221
+ gap: 12px;
222
+ margin-bottom: 32px;
223
+ }
224
+ .brand-shield {
225
+ color: var(--sage);
226
+ width: 24px;
227
+ height: 24px;
228
+ flex-shrink: 0;
229
+ }
230
+ .brand-shield svg { width: 100%; height: 100%; display: block; }
231
+ .brand-name {
232
+ font-family: 'Space Grotesk', system-ui, sans-serif;
233
+ font-weight: 700;
234
+ font-size: 14px;
235
+ letter-spacing: 0.1em;
236
+ text-transform: uppercase;
237
+ color: var(--text-primary);
238
+ }
239
+ .overline {
240
+ font-family: 'Inter', sans-serif;
241
+ font-size: 11px;
242
+ font-weight: 600;
243
+ letter-spacing: 0.15em;
244
+ text-transform: uppercase;
245
+ color: var(--sage);
246
+ margin-bottom: 12px;
247
+ }
248
+ h1.title {
249
+ font-family: 'Space Grotesk', system-ui, sans-serif;
250
+ font-size: 32px;
251
+ font-weight: 700;
252
+ line-height: 1.2;
253
+ letter-spacing: -0.01em;
254
+ margin: 0 0 8px 0;
255
+ color: var(--text-primary);
256
+ }
257
+ .sub {
258
+ font-size: 14px;
259
+ color: var(--text-secondary);
260
+ margin-bottom: 32px;
261
+ }
262
+ .meta-grid {
263
+ display: grid;
264
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
265
+ gap: 1px;
266
+ background: var(--border);
267
+ border: 1px solid var(--border);
268
+ border-radius: 16px;
269
+ overflow: hidden;
270
+ }
271
+ .meta-cell {
272
+ background: var(--surface-1);
273
+ padding: 16px 20px;
274
+ }
275
+ .meta-cell dt {
276
+ font-family: 'Inter', sans-serif;
277
+ font-size: 10px;
278
+ font-weight: 600;
279
+ letter-spacing: 0.12em;
280
+ text-transform: uppercase;
281
+ color: var(--text-muted);
282
+ margin-bottom: 6px;
283
+ }
284
+ .meta-cell dd {
285
+ margin: 0;
286
+ font-size: 15px;
287
+ font-weight: 600;
288
+ color: var(--text-primary);
289
+ font-family: 'Inter', sans-serif;
290
+ }
291
+ .meta-cell dd.mono {
292
+ font-family: 'JetBrains Mono', 'SF Mono', monospace;
293
+ font-size: 13px;
294
+ }
295
+ .meta-cell dd.score {
296
+ font-family: 'Space Grotesk', sans-serif;
297
+ font-size: 24px;
298
+ font-weight: 700;
299
+ color: var(--emerald);
300
+ }
301
+ /* Sections */
302
+ section { margin: 48px 0; }
303
+ section h2 {
304
+ font-family: 'Space Grotesk', system-ui, sans-serif;
305
+ font-size: 20px;
306
+ font-weight: 700;
307
+ color: var(--text-primary);
308
+ margin: 0 0 8px 0;
309
+ padding-bottom: 16px;
310
+ border-bottom: 1px solid var(--border);
311
+ }
312
+ section h2 .count {
313
+ color: var(--text-muted);
314
+ font-weight: 500;
315
+ font-size: 14px;
316
+ margin-left: 6px;
317
+ }
318
+ section .lead {
319
+ font-size: 15px;
320
+ line-height: 1.65;
321
+ color: var(--text-secondary);
322
+ margin: 20px 0;
323
+ }
324
+ .key-risks {
325
+ font-size: 13px;
326
+ color: var(--text-muted);
327
+ margin-top: 16px;
328
+ }
329
+ .key-risks strong { color: var(--sage); }
330
+ /* Stat grid */
331
+ .stat-grid {
332
+ display: grid;
333
+ grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
334
+ gap: 12px;
335
+ margin: 20px 0;
336
+ }
337
+ .stat {
338
+ background: var(--surface-1);
339
+ border: 1px solid var(--border);
340
+ border-radius: 12px;
341
+ padding: 20px;
342
+ text-align: center;
343
+ transition: border-color 200ms;
344
+ }
345
+ .stat:hover { border-color: var(--sage); }
346
+ .stat .n {
347
+ font-family: 'Space Grotesk', sans-serif;
348
+ font-size: 28px;
349
+ font-weight: 700;
350
+ line-height: 1;
351
+ color: var(--text-primary);
352
+ }
353
+ .stat .l {
354
+ font-family: 'Inter', sans-serif;
355
+ font-size: 11px;
356
+ font-weight: 600;
357
+ letter-spacing: 0.12em;
358
+ text-transform: uppercase;
359
+ color: var(--text-muted);
360
+ margin-top: 8px;
361
+ }
362
+ /* Tables */
363
+ table {
364
+ width: 100%;
365
+ border-collapse: collapse;
366
+ margin-top: 16px;
367
+ background: var(--surface-1);
368
+ border: 1px solid var(--border);
369
+ border-radius: 12px;
370
+ overflow: hidden;
371
+ }
372
+ thead {
373
+ background: var(--surface-2);
374
+ }
375
+ th {
376
+ font-family: 'Inter', sans-serif;
377
+ font-size: 10px;
378
+ font-weight: 600;
379
+ letter-spacing: 0.12em;
380
+ text-transform: uppercase;
381
+ color: var(--text-muted);
382
+ padding: 12px 16px;
383
+ text-align: left;
384
+ border-bottom: 1px solid var(--border);
385
+ }
386
+ td {
387
+ padding: 14px 16px;
388
+ border-bottom: 1px solid var(--border);
389
+ vertical-align: top;
390
+ font-size: 13px;
391
+ color: var(--text-primary);
392
+ }
393
+ tbody tr:last-child td { border-bottom: none; }
394
+ td.mono, .mono {
395
+ font-family: 'JetBrains Mono', monospace;
396
+ font-size: 12px;
397
+ color: var(--text-secondary);
398
+ }
399
+ td.muted, .muted {
400
+ color: var(--text-muted);
401
+ font-size: 12px;
402
+ }
403
+ td.cell-title { font-weight: 500; }
404
+ td.cell-cat { color: var(--text-secondary); }
405
+ /* Badge */
406
+ .badge {
407
+ display: inline-block;
408
+ padding: 3px 10px;
409
+ border-radius: 9999px;
410
+ font-family: 'Inter', sans-serif;
411
+ font-size: 11px;
412
+ font-weight: 600;
413
+ letter-spacing: 0.02em;
414
+ border: 1px solid;
415
+ }
416
+ /* Recommendations */
417
+ ul.recs { list-style: none; padding: 0; margin: 16px 0 0; }
418
+ ul.recs li {
419
+ background: var(--surface-1);
420
+ border: 1px solid var(--border);
421
+ border-left: 3px solid var(--sage);
422
+ border-radius: 0 12px 12px 0;
423
+ padding: 20px 24px;
424
+ margin-bottom: 12px;
425
+ transition: border-left-color 200ms;
426
+ }
427
+ ul.recs li:hover { border-left-color: var(--emerald); }
428
+ .rec-head {
429
+ display: flex;
430
+ gap: 12px;
431
+ align-items: baseline;
432
+ margin-bottom: 8px;
433
+ }
434
+ .rec-num {
435
+ font-family: 'JetBrains Mono', monospace;
436
+ font-size: 11px;
437
+ color: var(--text-muted);
438
+ font-weight: 500;
439
+ }
440
+ .rec-head strong {
441
+ font-size: 14px;
442
+ font-weight: 600;
443
+ color: var(--text-primary);
444
+ }
445
+ .rec-body {
446
+ font-size: 13px;
447
+ color: var(--text-secondary);
448
+ margin-bottom: 10px;
449
+ line-height: 1.6;
450
+ }
451
+ .rec-meta {
452
+ font-size: 11px;
453
+ color: var(--text-muted);
454
+ font-weight: 500;
455
+ }
456
+ .rec-meta strong { color: var(--sage); }
457
+ .dot { margin: 0 4px; color: var(--border); }
458
+ /* Footer */
459
+ footer.confidential {
460
+ margin-top: 64px;
461
+ padding-top: 24px;
462
+ border-top: 1px solid var(--border);
463
+ font-size: 11px;
464
+ color: var(--text-muted);
465
+ text-align: center;
466
+ letter-spacing: 0.05em;
467
+ }
468
+ /* Print stylesheet — warm-light variant preserving sage accent */
469
+ @media print {
470
+ :root {
471
+ --surface-0: #FAF8F2;
472
+ --surface-1: #FFFFFF;
473
+ --surface-2: #F5F1E8;
474
+ --surface-3: #EFE9DC;
475
+ --border: #E5DFD0;
476
+ --border-hover: #D1C9B5;
477
+ --text-primary: #1A1614;
478
+ --text-secondary: #4A4540;
479
+ --text-muted: #8A847A;
480
+ }
481
+ body { background: white; color: var(--text-primary); }
482
+ .page { padding: 24px 32px; max-width: none; }
483
+ section { page-break-inside: avoid; margin: 28px 0; }
484
+ header.cover { page-break-after: avoid; margin-bottom: 28px; }
485
+ .stat { background: var(--surface-2); }
486
+ ul.recs li { background: var(--surface-2); page-break-inside: avoid; }
487
+ table { border: 1px solid var(--border); }
488
+ thead { background: var(--surface-2); }
489
+ a { color: var(--sage); text-decoration: underline; }
490
+ }
491
+ </style>
492
+ </head>
493
+ <body>
494
+ <div class="page">
495
+
496
+ <header class="cover">
497
+ <div class="brand-row">
498
+ <span class="brand-shield">${SHIELD_SVG}</span>
499
+ <span class="brand-name">PanGuard AI</span>
500
+ </div>
501
+ <p class="overline">${overlineText}</p>
502
+ <h1 class="title">${escapeHtml(opts.title)}</h1>
503
+ <p class="sub">${escapeHtml(frameworkName)}${opts.organizationName ? ` &middot; ${escapeHtml(opts.organizationName)}` : ''}</p>
504
+ <dl class="meta-grid">
505
+ <div class="meta-cell">
506
+ <dt>${labels.reportId}</dt>
507
+ <dd class="mono">${escapeHtml(assessment.metadata.reportId)}</dd>
508
+ </div>
509
+ <div class="meta-cell">
510
+ <dt>${generatedLabel}</dt>
511
+ <dd>${escapeHtml(generatedDate)}</dd>
512
+ </div>
513
+ <div class="meta-cell">
514
+ <dt>${t('Framework', '框架')}</dt>
515
+ <dd>${escapeHtml(frameworkName)}</dd>
516
+ </div>
517
+ <div class="meta-cell">
518
+ <dt>${labels.overallScore}</dt>
519
+ <dd class="score">${exec.overallScore}%</dd>
520
+ </div>
521
+ </dl>
522
+ </header>
523
+
524
+ <section>
525
+ <h2>${labels.executiveSummary}</h2>
526
+ <p class="lead">${escapeHtml(t(`Overall compliance score: ${exec.overallScore}%. ${exec.controlsPassed} of ${exec.totalControls} controls passed, ${exec.controlsFailed} failed, ${exec.controlsPartial} partial. ${exec.totalFindings} findings recorded (${exec.criticalFindings} critical, ${exec.highFindings} high).`, `整體合規分數:${exec.overallScore}%。${exec.totalControls} 項控制項中 ${exec.controlsPassed} 項通過、${exec.controlsFailed} 項未通過、${exec.controlsPartial} 項部分符合。共 ${exec.totalFindings} 項發現(${exec.criticalFindings} 嚴重、${exec.highFindings} 高風險)。`))}</p>
527
+ ${exec.keyRisks.length > 0
528
+ ? `<p class="key-risks"><strong>${t('Key risks', '主要風險')}:</strong> ${exec.keyRisks
529
+ .map((r) => escapeHtml(r))
530
+ .join(' &middot; ')}</p>`
531
+ : ''}
532
+ <div class="stat-grid">
533
+ <div class="stat"><div class="n">${exec.totalControls}</div><div class="l">${totalControlsLabel}</div></div>
534
+ <div class="stat"><div class="n" style="color:${BRAND.emerald}">${exec.controlsPassed}</div><div class="l">${labels.controlsPassed}</div></div>
535
+ <div class="stat"><div class="n" style="color:${BRAND.redAlert}">${exec.controlsFailed}</div><div class="l">${labels.controlsFailed}</div></div>
536
+ <div class="stat"><div class="n" style="color:${BRAND.medium}">${exec.controlsPartial}</div><div class="l">${labels.controlsPartial}</div></div>
537
+ </div>
538
+ </section>
539
+
540
+ <section>
541
+ <h2>${labels.findings}<span class="count">${opts.findings.length}</span></h2>
542
+ <div class="stat-grid">
543
+ ${['critical', 'high', 'medium', 'low']
544
+ .map((s) => `<div class="stat"><div class="n" style="color:${SEVERITY_COLOR[s]}">${sevCounts[s] ?? 0}</div><div class="l">${escapeHtml(getSeverityLabel(s, opts.lang))}</div></div>`)
545
+ .join('')}
546
+ </div>
547
+ ${opts.findings.length === 0
548
+ ? `<p class="muted" style="margin-top:24px">${noFindingsText}</p>`
549
+ : `<table>
550
+ <thead><tr>
551
+ <th>${findingIdLabel}</th>
552
+ <th>${labels.severity}</th>
553
+ <th>${titleColLabel}</th>
554
+ <th>${labels.category}</th>
555
+ <th>${descColLabel}</th>
556
+ </tr></thead>
557
+ <tbody>${findingRows}</tbody>
558
+ </table>`}
559
+ </section>
560
+
561
+ <section>
562
+ <h2>${labels.controlDetails}<span class="count">${evaluated.length}</span></h2>
563
+ <table>
564
+ <thead><tr>
565
+ <th>${controlIdLabel}</th>
566
+ <th>${controlTitleLabel}</th>
567
+ <th>${labels.status}</th>
568
+ <th>#</th>
569
+ <th>${labels.evidence}</th>
570
+ </tr></thead>
571
+ <tbody>${controlRows}</tbody>
572
+ </table>
573
+ </section>
574
+
575
+ ${recs.length > 0
576
+ ? `<section>
577
+ <h2>${labels.recommendations}<span class="count">${recs.length}</span></h2>
578
+ <ul class="recs">${recRows}</ul>
579
+ </section>`
580
+ : ''}
581
+
582
+ <footer class="confidential">
583
+ ${confidentialText} &middot; ${escapeHtml(assessment.metadata.reportId)} &middot; ${escapeHtml(generatedDate)}
584
+ </footer>
585
+
586
+ </div>
587
+ </body>
588
+ </html>`;
589
+ }
590
+ export async function generateHTMLReport(opts) {
591
+ logger.info('Starting HTML compliance report generation', {
592
+ outputPath: opts.outputPath,
593
+ lang: opts.lang,
594
+ framework: opts.framework,
595
+ });
596
+ await mkdir(dirname(opts.outputPath), { recursive: true });
597
+ const html = renderHTML(opts);
598
+ await writeFile(opts.outputPath, html, 'utf-8');
599
+ logger.info('HTML compliance report written', {
600
+ outputPath: opts.outputPath,
601
+ sizeBytes: html.length,
602
+ });
603
+ return opts.outputPath;
604
+ }
605
+ //# sourceMappingURL=html-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-generator.js","sourceRoot":"","sources":["../../src/generator/html-generator.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -55,7 +55,7 @@ export interface ComplianceFinding {
55
55
  /** Report type / 報告類型 */
56
56
  export type ReportType = 'compliance' | 'incident' | 'monthly' | 'quarterly' | 'annual';
57
57
  /** Report format / 報告格式 */
58
- export type ReportFormat = 'pdf' | 'json';
58
+ export type ReportFormat = 'pdf' | 'json' | 'html';
59
59
  /** Report language / 報告語言 */
60
60
  export type ReportLanguage = 'zh-TW' | 'en';
61
61
  /** Report metadata / 報告元資料 */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panguard-ai/panguard-report",
3
- "version": "1.5.5",
3
+ "version": "1.6.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -33,7 +33,7 @@
33
33
  ],
34
34
  "dependencies": {
35
35
  "pdfkit": "^0.15.0",
36
- "@panguard-ai/core": "1.5.5"
36
+ "@panguard-ai/core": "1.6.0"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/node": "^22.14.0",