cbrowser 6.3.1 → 6.4.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.
- package/dist/browser.d.ts +43 -1
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +365 -0
- package/dist/browser.js.map +1 -1
- package/dist/cli.js +294 -2
- package/dist/cli.js.map +1 -1
- package/dist/daemon.d.ts +61 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +358 -0
- package/dist/daemon.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +103 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/browser.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* AI-powered browser automation with constitutional safety.
|
|
5
5
|
*/
|
|
6
6
|
import { type CBrowserConfig } from "./config.js";
|
|
7
|
-
import type { SavedSession, NavigationResult, ClickResult, ExtractResult, JourneyResult, CleanupOptions, CleanupResult, JourneyOptions, NetworkMock, NetworkRequest, PerformanceMetrics, PerformanceAuditResult, SmartRetryResult, AssertionResult, SelectorCacheEntry, SelectorCacheStats, PageAnalysis, TestGenerationResult, PersonaComparisonResult, NLTestStep, NLTestCase, NLTestSuiteResult, TestRepairResult, TestRepairSuiteResult, FlakyTestSuiteResult } from "./types.js";
|
|
7
|
+
import type { SavedSession, NavigationResult, ClickResult, ExtractResult, JourneyResult, CleanupOptions, CleanupResult, JourneyOptions, NetworkMock, NetworkRequest, PerformanceMetrics, PerformanceAuditResult, SmartRetryResult, AssertionResult, SelectorCacheEntry, SelectorCacheStats, PageAnalysis, TestGenerationResult, PersonaComparisonResult, NLTestStep, NLTestCase, NLTestSuiteResult, TestRepairResult, TestRepairSuiteResult, FlakyTestSuiteResult, PerformanceBaseline, PerformanceRegressionThresholds, PerformanceRegressionResult } from "./types.js";
|
|
8
8
|
export declare class CBrowser {
|
|
9
9
|
private config;
|
|
10
10
|
private paths;
|
|
@@ -679,4 +679,46 @@ export declare function detectFlakyTests(suite: {
|
|
|
679
679
|
* Format a flaky test report.
|
|
680
680
|
*/
|
|
681
681
|
export declare function formatFlakyTestReport(result: FlakyTestSuiteResult): string;
|
|
682
|
+
export interface PerformanceBaselineOptions {
|
|
683
|
+
/** Number of runs to average (default: 3) */
|
|
684
|
+
runs?: number;
|
|
685
|
+
/** Human-readable name for baseline */
|
|
686
|
+
name?: string;
|
|
687
|
+
/** Headless mode */
|
|
688
|
+
headless?: boolean;
|
|
689
|
+
/** Device to emulate */
|
|
690
|
+
device?: string;
|
|
691
|
+
/** Network throttling */
|
|
692
|
+
throttle?: "3g" | "4g" | "wifi";
|
|
693
|
+
}
|
|
694
|
+
export interface PerformanceRegressionOptions {
|
|
695
|
+
/** Regression thresholds */
|
|
696
|
+
thresholds?: PerformanceRegressionThresholds;
|
|
697
|
+
/** Headless mode */
|
|
698
|
+
headless?: boolean;
|
|
699
|
+
}
|
|
700
|
+
/**
|
|
701
|
+
* Capture a performance baseline for a URL
|
|
702
|
+
*/
|
|
703
|
+
export declare function capturePerformanceBaseline(url: string, options?: PerformanceBaselineOptions): Promise<PerformanceBaseline>;
|
|
704
|
+
/**
|
|
705
|
+
* List all saved performance baselines
|
|
706
|
+
*/
|
|
707
|
+
export declare function listPerformanceBaselines(): PerformanceBaseline[];
|
|
708
|
+
/**
|
|
709
|
+
* Load a specific baseline by ID or name
|
|
710
|
+
*/
|
|
711
|
+
export declare function loadPerformanceBaseline(idOrName: string): PerformanceBaseline | null;
|
|
712
|
+
/**
|
|
713
|
+
* Delete a performance baseline
|
|
714
|
+
*/
|
|
715
|
+
export declare function deletePerformanceBaseline(idOrName: string): boolean;
|
|
716
|
+
/**
|
|
717
|
+
* Compare current performance against a baseline
|
|
718
|
+
*/
|
|
719
|
+
export declare function detectPerformanceRegression(url: string, baselineIdOrName: string, options?: PerformanceRegressionOptions): Promise<PerformanceRegressionResult>;
|
|
720
|
+
/**
|
|
721
|
+
* Format a performance regression report
|
|
722
|
+
*/
|
|
723
|
+
export declare function formatPerformanceRegressionReport(result: PerformanceRegressionResult): string;
|
|
682
724
|
//# sourceMappingURL=browser.d.ts.map
|
package/dist/browser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
package/dist/browser.js
CHANGED
|
@@ -27,6 +27,12 @@ exports.formatRepairReport = formatRepairReport;
|
|
|
27
27
|
exports.exportRepairedTest = exportRepairedTest;
|
|
28
28
|
exports.detectFlakyTests = detectFlakyTests;
|
|
29
29
|
exports.formatFlakyTestReport = formatFlakyTestReport;
|
|
30
|
+
exports.capturePerformanceBaseline = capturePerformanceBaseline;
|
|
31
|
+
exports.listPerformanceBaselines = listPerformanceBaselines;
|
|
32
|
+
exports.loadPerformanceBaseline = loadPerformanceBaseline;
|
|
33
|
+
exports.deletePerformanceBaseline = deletePerformanceBaseline;
|
|
34
|
+
exports.detectPerformanceRegression = detectPerformanceRegression;
|
|
35
|
+
exports.formatPerformanceRegressionReport = formatPerformanceRegressionReport;
|
|
30
36
|
const playwright_1 = require("playwright");
|
|
31
37
|
const fs_1 = require("fs");
|
|
32
38
|
const path_1 = require("path");
|
|
@@ -4141,4 +4147,363 @@ function formatFlakyTestReport(result) {
|
|
|
4141
4147
|
lines.push("");
|
|
4142
4148
|
return lines.join("\n");
|
|
4143
4149
|
}
|
|
4150
|
+
// ============================================================================
|
|
4151
|
+
// Performance Regression Detection (v6.4.0)
|
|
4152
|
+
// ============================================================================
|
|
4153
|
+
const DEFAULT_REGRESSION_THRESHOLDS = {
|
|
4154
|
+
lcp: 20, // 20% increase
|
|
4155
|
+
fid: 50, // 50% increase
|
|
4156
|
+
cls: 0.1, // Absolute increase of 0.1
|
|
4157
|
+
fcp: 20, // 20% increase
|
|
4158
|
+
ttfb: 30, // 30% increase
|
|
4159
|
+
tti: 25, // 25% increase
|
|
4160
|
+
tbt: 50, // 50% increase
|
|
4161
|
+
transferSize: 25, // 25% increase
|
|
4162
|
+
};
|
|
4163
|
+
/**
|
|
4164
|
+
* Capture a performance baseline for a URL
|
|
4165
|
+
*/
|
|
4166
|
+
async function capturePerformanceBaseline(url, options = {}) {
|
|
4167
|
+
const { runs = 3, name, headless = true, device, throttle } = options;
|
|
4168
|
+
const paths = (0, config_js_1.getPaths)();
|
|
4169
|
+
(0, config_js_1.ensureDirectories)();
|
|
4170
|
+
const browser = new CBrowser({ headless });
|
|
4171
|
+
const allMetrics = [];
|
|
4172
|
+
try {
|
|
4173
|
+
for (let i = 0; i < runs; i++) {
|
|
4174
|
+
await browser.navigate(url);
|
|
4175
|
+
// Wait for page to stabilize
|
|
4176
|
+
await new Promise((r) => setTimeout(r, 2000));
|
|
4177
|
+
const metrics = await browser.getPerformanceMetrics();
|
|
4178
|
+
allMetrics.push(metrics);
|
|
4179
|
+
// Brief pause between runs
|
|
4180
|
+
if (i < runs - 1) {
|
|
4181
|
+
await new Promise((r) => setTimeout(r, 1000));
|
|
4182
|
+
}
|
|
4183
|
+
}
|
|
4184
|
+
}
|
|
4185
|
+
finally {
|
|
4186
|
+
await browser.close();
|
|
4187
|
+
}
|
|
4188
|
+
// Average the metrics
|
|
4189
|
+
const avgMetrics = {};
|
|
4190
|
+
const numericMetricKeys = [
|
|
4191
|
+
"lcp", "fid", "cls", "fcp", "ttfb", "tti", "tbt",
|
|
4192
|
+
"domContentLoaded", "load", "resourceCount", "transferSize"
|
|
4193
|
+
];
|
|
4194
|
+
for (const key of numericMetricKeys) {
|
|
4195
|
+
const values = allMetrics
|
|
4196
|
+
.map((m) => m[key])
|
|
4197
|
+
.filter((v) => v !== undefined && v !== null);
|
|
4198
|
+
if (values.length > 0) {
|
|
4199
|
+
avgMetrics[key] = values.reduce((a, b) => a + b, 0) / values.length;
|
|
4200
|
+
}
|
|
4201
|
+
}
|
|
4202
|
+
// Determine ratings
|
|
4203
|
+
if (avgMetrics.lcp !== undefined) {
|
|
4204
|
+
avgMetrics.lcpRating = avgMetrics.lcp <= 2500 ? "good" : avgMetrics.lcp <= 4000 ? "needs-improvement" : "poor";
|
|
4205
|
+
}
|
|
4206
|
+
if (avgMetrics.cls !== undefined) {
|
|
4207
|
+
avgMetrics.clsRating = avgMetrics.cls <= 0.1 ? "good" : avgMetrics.cls <= 0.25 ? "needs-improvement" : "poor";
|
|
4208
|
+
}
|
|
4209
|
+
const baseline = {
|
|
4210
|
+
id: `baseline-${Date.now()}`,
|
|
4211
|
+
url,
|
|
4212
|
+
name: name || new URL(url).hostname,
|
|
4213
|
+
timestamp: new Date().toISOString(),
|
|
4214
|
+
metrics: avgMetrics,
|
|
4215
|
+
runsAveraged: runs,
|
|
4216
|
+
environment: {
|
|
4217
|
+
browser: "chromium",
|
|
4218
|
+
viewport: { width: 1280, height: 720 },
|
|
4219
|
+
device,
|
|
4220
|
+
connection: throttle,
|
|
4221
|
+
},
|
|
4222
|
+
};
|
|
4223
|
+
// Save baseline
|
|
4224
|
+
const baselinesDir = (0, path_1.join)(paths.dataDir, "baselines");
|
|
4225
|
+
if (!(0, fs_1.existsSync)(baselinesDir)) {
|
|
4226
|
+
(0, fs_1.mkdirSync)(baselinesDir, { recursive: true });
|
|
4227
|
+
}
|
|
4228
|
+
const baselineFile = (0, path_1.join)(baselinesDir, `${baseline.id}.json`);
|
|
4229
|
+
(0, fs_1.writeFileSync)(baselineFile, JSON.stringify(baseline, null, 2));
|
|
4230
|
+
return baseline;
|
|
4231
|
+
}
|
|
4232
|
+
/**
|
|
4233
|
+
* List all saved performance baselines
|
|
4234
|
+
*/
|
|
4235
|
+
function listPerformanceBaselines() {
|
|
4236
|
+
const paths = (0, config_js_1.getPaths)();
|
|
4237
|
+
const baselinesDir = (0, path_1.join)(paths.dataDir, "baselines");
|
|
4238
|
+
if (!(0, fs_1.existsSync)(baselinesDir)) {
|
|
4239
|
+
return [];
|
|
4240
|
+
}
|
|
4241
|
+
const files = (0, fs_1.readdirSync)(baselinesDir).filter((f) => f.endsWith(".json"));
|
|
4242
|
+
const baselines = [];
|
|
4243
|
+
for (const file of files) {
|
|
4244
|
+
try {
|
|
4245
|
+
const content = (0, fs_1.readFileSync)((0, path_1.join)(baselinesDir, file), "utf-8");
|
|
4246
|
+
baselines.push(JSON.parse(content));
|
|
4247
|
+
}
|
|
4248
|
+
catch {
|
|
4249
|
+
// Skip invalid files
|
|
4250
|
+
}
|
|
4251
|
+
}
|
|
4252
|
+
return baselines.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
|
|
4253
|
+
}
|
|
4254
|
+
/**
|
|
4255
|
+
* Load a specific baseline by ID or name
|
|
4256
|
+
*/
|
|
4257
|
+
function loadPerformanceBaseline(idOrName) {
|
|
4258
|
+
const baselines = listPerformanceBaselines();
|
|
4259
|
+
// Try exact ID match first
|
|
4260
|
+
let baseline = baselines.find((b) => b.id === idOrName);
|
|
4261
|
+
if (baseline)
|
|
4262
|
+
return baseline;
|
|
4263
|
+
// Try name match
|
|
4264
|
+
baseline = baselines.find((b) => b.name === idOrName);
|
|
4265
|
+
if (baseline)
|
|
4266
|
+
return baseline;
|
|
4267
|
+
// Try URL match
|
|
4268
|
+
baseline = baselines.find((b) => b.url.includes(idOrName));
|
|
4269
|
+
return baseline || null;
|
|
4270
|
+
}
|
|
4271
|
+
/**
|
|
4272
|
+
* Delete a performance baseline
|
|
4273
|
+
*/
|
|
4274
|
+
function deletePerformanceBaseline(idOrName) {
|
|
4275
|
+
const baseline = loadPerformanceBaseline(idOrName);
|
|
4276
|
+
if (!baseline)
|
|
4277
|
+
return false;
|
|
4278
|
+
const paths = (0, config_js_1.getPaths)();
|
|
4279
|
+
const baselineFile = (0, path_1.join)(paths.dataDir, "baselines", `${baseline.id}.json`);
|
|
4280
|
+
if ((0, fs_1.existsSync)(baselineFile)) {
|
|
4281
|
+
(0, fs_1.unlinkSync)(baselineFile);
|
|
4282
|
+
return true;
|
|
4283
|
+
}
|
|
4284
|
+
return false;
|
|
4285
|
+
}
|
|
4286
|
+
/**
|
|
4287
|
+
* Compare current performance against a baseline
|
|
4288
|
+
*/
|
|
4289
|
+
async function detectPerformanceRegression(url, baselineIdOrName, options = {}) {
|
|
4290
|
+
const { thresholds = DEFAULT_REGRESSION_THRESHOLDS, headless = true } = options;
|
|
4291
|
+
const startTime = Date.now();
|
|
4292
|
+
// Load baseline
|
|
4293
|
+
const baseline = loadPerformanceBaseline(baselineIdOrName);
|
|
4294
|
+
if (!baseline) {
|
|
4295
|
+
throw new Error(`Baseline not found: ${baselineIdOrName}`);
|
|
4296
|
+
}
|
|
4297
|
+
// Capture current metrics
|
|
4298
|
+
const browser = new CBrowser({ headless });
|
|
4299
|
+
let currentMetrics;
|
|
4300
|
+
try {
|
|
4301
|
+
await browser.navigate(url);
|
|
4302
|
+
await new Promise((r) => setTimeout(r, 2000));
|
|
4303
|
+
currentMetrics = await browser.getPerformanceMetrics();
|
|
4304
|
+
}
|
|
4305
|
+
finally {
|
|
4306
|
+
await browser.close();
|
|
4307
|
+
}
|
|
4308
|
+
// Compare metrics
|
|
4309
|
+
const comparisons = [];
|
|
4310
|
+
const regressions = [];
|
|
4311
|
+
const metricsToCompare = [
|
|
4312
|
+
"lcp", "fid", "cls", "fcp", "ttfb", "tti", "tbt", "transferSize"
|
|
4313
|
+
];
|
|
4314
|
+
for (const metric of metricsToCompare) {
|
|
4315
|
+
const baselineValue = baseline.metrics[metric];
|
|
4316
|
+
const currentValue = currentMetrics[metric];
|
|
4317
|
+
if (baselineValue === undefined || currentValue === undefined)
|
|
4318
|
+
continue;
|
|
4319
|
+
const change = currentValue - baselineValue;
|
|
4320
|
+
const changePercent = baselineValue > 0 ? (change / baselineValue) * 100 : 0;
|
|
4321
|
+
// Determine threshold and if it's a regression
|
|
4322
|
+
const threshold = thresholds[metric] || 20;
|
|
4323
|
+
const isClsMetric = metric === "cls";
|
|
4324
|
+
// For CLS, threshold is absolute; for others, it's percentage
|
|
4325
|
+
const exceedsThreshold = isClsMetric
|
|
4326
|
+
? change > threshold
|
|
4327
|
+
: changePercent > threshold;
|
|
4328
|
+
let status = "stable";
|
|
4329
|
+
let severity = "warning";
|
|
4330
|
+
if (changePercent < -10 || (isClsMetric && change < -0.05)) {
|
|
4331
|
+
status = "improved";
|
|
4332
|
+
}
|
|
4333
|
+
else if (exceedsThreshold) {
|
|
4334
|
+
if (isClsMetric ? change > threshold * 2 : changePercent > threshold * 2) {
|
|
4335
|
+
status = "critical";
|
|
4336
|
+
severity = "critical";
|
|
4337
|
+
}
|
|
4338
|
+
else {
|
|
4339
|
+
status = "regression";
|
|
4340
|
+
severity = "regression";
|
|
4341
|
+
}
|
|
4342
|
+
}
|
|
4343
|
+
else if (changePercent > 5 || (isClsMetric && change > 0.02)) {
|
|
4344
|
+
status = "warning";
|
|
4345
|
+
}
|
|
4346
|
+
const comparison = {
|
|
4347
|
+
metric,
|
|
4348
|
+
baseline: baselineValue,
|
|
4349
|
+
current: currentValue,
|
|
4350
|
+
change,
|
|
4351
|
+
changePercent,
|
|
4352
|
+
isRegression: status === "regression" || status === "critical",
|
|
4353
|
+
isImprovement: status === "improved",
|
|
4354
|
+
status,
|
|
4355
|
+
};
|
|
4356
|
+
comparisons.push(comparison);
|
|
4357
|
+
if (comparison.isRegression) {
|
|
4358
|
+
regressions.push({
|
|
4359
|
+
metric,
|
|
4360
|
+
baselineValue,
|
|
4361
|
+
currentValue,
|
|
4362
|
+
change,
|
|
4363
|
+
changePercent,
|
|
4364
|
+
threshold,
|
|
4365
|
+
severity,
|
|
4366
|
+
});
|
|
4367
|
+
}
|
|
4368
|
+
}
|
|
4369
|
+
// Calculate summary
|
|
4370
|
+
const improved = comparisons.filter((c) => c.isImprovement).length;
|
|
4371
|
+
const regressed = comparisons.filter((c) => c.status === "regression").length;
|
|
4372
|
+
const critical = comparisons.filter((c) => c.status === "critical").length;
|
|
4373
|
+
const stable = comparisons.filter((c) => c.status === "stable" || c.status === "warning").length;
|
|
4374
|
+
const overallChange = comparisons.length > 0
|
|
4375
|
+
? comparisons.reduce((sum, c) => sum + c.changePercent, 0) / comparisons.length
|
|
4376
|
+
: 0;
|
|
4377
|
+
return {
|
|
4378
|
+
url,
|
|
4379
|
+
baseline,
|
|
4380
|
+
currentMetrics,
|
|
4381
|
+
timestamp: new Date().toISOString(),
|
|
4382
|
+
duration: Date.now() - startTime,
|
|
4383
|
+
comparisons,
|
|
4384
|
+
regressions,
|
|
4385
|
+
passed: regressions.length === 0,
|
|
4386
|
+
summary: {
|
|
4387
|
+
totalMetrics: comparisons.length,
|
|
4388
|
+
improved,
|
|
4389
|
+
stable,
|
|
4390
|
+
regressed,
|
|
4391
|
+
critical,
|
|
4392
|
+
overallChange,
|
|
4393
|
+
},
|
|
4394
|
+
};
|
|
4395
|
+
}
|
|
4396
|
+
/**
|
|
4397
|
+
* Format a performance regression report
|
|
4398
|
+
*/
|
|
4399
|
+
function formatPerformanceRegressionReport(result) {
|
|
4400
|
+
const lines = [];
|
|
4401
|
+
lines.push("🔍 PERFORMANCE REGRESSION REPORT");
|
|
4402
|
+
lines.push("═".repeat(60));
|
|
4403
|
+
lines.push("");
|
|
4404
|
+
lines.push(`📍 URL: ${result.url}`);
|
|
4405
|
+
lines.push(`📊 Baseline: ${result.baseline.name} (${new Date(result.baseline.timestamp).toLocaleDateString()})`);
|
|
4406
|
+
lines.push(`⏱️ Duration: ${(result.duration / 1000).toFixed(1)}s`);
|
|
4407
|
+
lines.push("");
|
|
4408
|
+
// Overall result
|
|
4409
|
+
if (result.passed) {
|
|
4410
|
+
lines.push("✅ PASSED - No performance regressions detected");
|
|
4411
|
+
}
|
|
4412
|
+
else {
|
|
4413
|
+
lines.push(`❌ FAILED - ${result.regressions.length} regression(s) detected`);
|
|
4414
|
+
}
|
|
4415
|
+
lines.push("");
|
|
4416
|
+
// Detailed comparisons
|
|
4417
|
+
lines.push("─".repeat(60));
|
|
4418
|
+
lines.push("METRIC COMPARISON");
|
|
4419
|
+
lines.push("─".repeat(60));
|
|
4420
|
+
lines.push("");
|
|
4421
|
+
const metricNames = {
|
|
4422
|
+
lcp: "LCP (Largest Contentful Paint)",
|
|
4423
|
+
fid: "FID (First Input Delay)",
|
|
4424
|
+
cls: "CLS (Cumulative Layout Shift)",
|
|
4425
|
+
fcp: "FCP (First Contentful Paint)",
|
|
4426
|
+
ttfb: "TTFB (Time to First Byte)",
|
|
4427
|
+
tti: "TTI (Time to Interactive)",
|
|
4428
|
+
tbt: "TBT (Total Blocking Time)",
|
|
4429
|
+
transferSize: "Transfer Size",
|
|
4430
|
+
};
|
|
4431
|
+
for (const comp of result.comparisons) {
|
|
4432
|
+
const name = metricNames[comp.metric] || comp.metric;
|
|
4433
|
+
const icon = comp.isImprovement ? "✅" :
|
|
4434
|
+
comp.status === "critical" ? "🔴" :
|
|
4435
|
+
comp.status === "regression" ? "❌" :
|
|
4436
|
+
comp.status === "warning" ? "⚠️" : "✓";
|
|
4437
|
+
const unit = comp.metric === "cls" ? "" :
|
|
4438
|
+
comp.metric === "transferSize" ? " KB" : " ms";
|
|
4439
|
+
const baseVal = comp.metric === "transferSize"
|
|
4440
|
+
? (comp.baseline / 1024).toFixed(1)
|
|
4441
|
+
: comp.baseline.toFixed(1);
|
|
4442
|
+
const currVal = comp.metric === "transferSize"
|
|
4443
|
+
? (comp.current / 1024).toFixed(1)
|
|
4444
|
+
: comp.current.toFixed(1);
|
|
4445
|
+
const changeStr = comp.changePercent >= 0
|
|
4446
|
+
? `+${comp.changePercent.toFixed(1)}%`
|
|
4447
|
+
: `${comp.changePercent.toFixed(1)}%`;
|
|
4448
|
+
lines.push(`${icon} ${name}`);
|
|
4449
|
+
lines.push(` Baseline: ${baseVal}${unit} → Current: ${currVal}${unit} (${changeStr})`);
|
|
4450
|
+
lines.push("");
|
|
4451
|
+
}
|
|
4452
|
+
// Summary
|
|
4453
|
+
lines.push("─".repeat(60));
|
|
4454
|
+
lines.push("SUMMARY");
|
|
4455
|
+
lines.push("─".repeat(60));
|
|
4456
|
+
lines.push("");
|
|
4457
|
+
lines.push(` Total Metrics: ${result.summary.totalMetrics}`);
|
|
4458
|
+
lines.push(` ✅ Improved: ${result.summary.improved}`);
|
|
4459
|
+
lines.push(` ✓ Stable: ${result.summary.stable}`);
|
|
4460
|
+
lines.push(` ❌ Regressed: ${result.summary.regressed}`);
|
|
4461
|
+
lines.push(` 🔴 Critical: ${result.summary.critical}`);
|
|
4462
|
+
lines.push(` 📊 Overall Change: ${result.summary.overallChange >= 0 ? "+" : ""}${result.summary.overallChange.toFixed(1)}%`);
|
|
4463
|
+
lines.push("");
|
|
4464
|
+
// Recommendations if regressions found
|
|
4465
|
+
if (result.regressions.length > 0) {
|
|
4466
|
+
lines.push("─".repeat(60));
|
|
4467
|
+
lines.push("💡 RECOMMENDATIONS");
|
|
4468
|
+
lines.push("─".repeat(60));
|
|
4469
|
+
lines.push("");
|
|
4470
|
+
for (const reg of result.regressions) {
|
|
4471
|
+
const name = metricNames[reg.metric] || reg.metric;
|
|
4472
|
+
lines.push(`⚠️ ${name}:`);
|
|
4473
|
+
switch (reg.metric) {
|
|
4474
|
+
case "lcp":
|
|
4475
|
+
lines.push(" - Optimize largest content element (images, videos)");
|
|
4476
|
+
lines.push(" - Consider lazy loading below-fold content");
|
|
4477
|
+
lines.push(" - Improve server response times");
|
|
4478
|
+
break;
|
|
4479
|
+
case "cls":
|
|
4480
|
+
lines.push(" - Set explicit dimensions on images/embeds");
|
|
4481
|
+
lines.push(" - Avoid inserting content above existing content");
|
|
4482
|
+
lines.push(" - Reserve space for dynamic content");
|
|
4483
|
+
break;
|
|
4484
|
+
case "fcp":
|
|
4485
|
+
case "ttfb":
|
|
4486
|
+
lines.push(" - Optimize server response time");
|
|
4487
|
+
lines.push(" - Use CDN for static assets");
|
|
4488
|
+
lines.push(" - Enable compression (gzip/brotli)");
|
|
4489
|
+
break;
|
|
4490
|
+
case "tbt":
|
|
4491
|
+
case "tti":
|
|
4492
|
+
lines.push(" - Split long JavaScript tasks");
|
|
4493
|
+
lines.push(" - Defer non-critical JavaScript");
|
|
4494
|
+
lines.push(" - Remove unused code");
|
|
4495
|
+
break;
|
|
4496
|
+
case "transferSize":
|
|
4497
|
+
lines.push(" - Compress and optimize assets");
|
|
4498
|
+
lines.push(" - Remove unused CSS/JavaScript");
|
|
4499
|
+
lines.push(" - Optimize images (WebP, proper sizing)");
|
|
4500
|
+
break;
|
|
4501
|
+
default:
|
|
4502
|
+
lines.push(" - Review recent changes for performance impact");
|
|
4503
|
+
}
|
|
4504
|
+
lines.push("");
|
|
4505
|
+
}
|
|
4506
|
+
}
|
|
4507
|
+
return lines.join("\n");
|
|
4508
|
+
}
|
|
4144
4509
|
//# sourceMappingURL=browser.js.map
|