@empline/preflight 1.1.43 → 1.1.45

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 (36) hide show
  1. package/dist/checks/react/state-update-during-render.d.ts +3 -5
  2. package/dist/checks/react/state-update-during-render.d.ts.map +1 -1
  3. package/dist/checks/react/state-update-during-render.js +77 -144
  4. package/dist/checks/react/state-update-during-render.js.map +1 -1
  5. package/dist/checks/system/preflight-metadata-validator.d.ts.map +1 -1
  6. package/dist/checks/system/preflight-metadata-validator.js +97 -2
  7. package/dist/checks/system/preflight-metadata-validator.js.map +1 -1
  8. package/dist/checks/ui/layout-overflow-containment.d.ts +23 -0
  9. package/dist/checks/ui/layout-overflow-containment.d.ts.map +1 -0
  10. package/dist/checks/ui/layout-overflow-containment.js +240 -0
  11. package/dist/checks/ui/layout-overflow-containment.js.map +1 -0
  12. package/dist/index.d.ts +3 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +19 -4
  15. package/dist/index.js.map +1 -1
  16. package/dist/runner.d.ts +1 -0
  17. package/dist/runner.d.ts.map +1 -1
  18. package/dist/runner.js +36 -0
  19. package/dist/runner.js.map +1 -1
  20. package/dist/shared/concurrency-config.d.ts +2 -0
  21. package/dist/shared/concurrency-config.d.ts.map +1 -1
  22. package/dist/shared/concurrency-config.js +2 -0
  23. package/dist/shared/concurrency-config.js.map +1 -1
  24. package/dist/shared/consolidated-check-base.d.ts +112 -0
  25. package/dist/shared/consolidated-check-base.d.ts.map +1 -0
  26. package/dist/shared/consolidated-check-base.js +247 -0
  27. package/dist/shared/consolidated-check-base.js.map +1 -0
  28. package/dist/shared/exclusions.d.ts +31 -0
  29. package/dist/shared/exclusions.d.ts.map +1 -1
  30. package/dist/shared/exclusions.js +108 -0
  31. package/dist/shared/exclusions.js.map +1 -1
  32. package/dist/shared/performance-tracker.d.ts +103 -0
  33. package/dist/shared/performance-tracker.d.ts.map +1 -0
  34. package/dist/shared/performance-tracker.js +267 -0
  35. package/dist/shared/performance-tracker.js.map +1 -0
  36. package/package.json +1 -1
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Performance Tracker for Preflight Checks
3
+ *
4
+ * Tracks execution times across runs and detects performance regressions.
5
+ * Stores baseline metrics in .preflight-perf.json for comparison.
6
+ *
7
+ * Features:
8
+ * - Track check execution times
9
+ * - Detect significant regressions (>50% slower)
10
+ * - Store historical baselines
11
+ * - Generate performance reports
12
+ *
13
+ * @example
14
+ * const tracker = new PerformanceTracker();
15
+ * tracker.load();
16
+ *
17
+ * // After running checks
18
+ * tracker.record("ui/console-log-check", 1.5);
19
+ * tracker.record("security/api-key-exposure", 0.8);
20
+ *
21
+ * const regressions = tracker.detectRegressions();
22
+ * tracker.save();
23
+ */
24
+ export interface CheckPerformanceData {
25
+ /** Last recorded duration in seconds */
26
+ lastDuration: number;
27
+ /** Rolling average duration (last 5 runs) */
28
+ avgDuration: number;
29
+ /** Minimum recorded duration */
30
+ minDuration: number;
31
+ /** Maximum recorded duration */
32
+ maxDuration: number;
33
+ /** Number of times this check has run */
34
+ runCount: number;
35
+ /** Last 5 durations for rolling average */
36
+ history: number[];
37
+ /** ISO timestamp of last run */
38
+ lastRun: string;
39
+ }
40
+ export interface PerformanceData {
41
+ version: number;
42
+ lastUpdated: string;
43
+ checks: Record<string, CheckPerformanceData>;
44
+ }
45
+ export interface PerformanceRegression {
46
+ checkId: string;
47
+ currentDuration: number;
48
+ baselineDuration: number;
49
+ percentageIncrease: number;
50
+ severity: "warning" | "critical";
51
+ }
52
+ export declare class PerformanceTracker {
53
+ private data;
54
+ private currentRunMetrics;
55
+ private filePath;
56
+ constructor(appRoot?: string);
57
+ /**
58
+ * Load performance data from disk
59
+ */
60
+ load(): boolean;
61
+ /**
62
+ * Save performance data to disk
63
+ */
64
+ save(): void;
65
+ /**
66
+ * Record a check's execution time
67
+ */
68
+ record(checkId: string, durationSec: number): void;
69
+ /**
70
+ * Detect performance regressions compared to baseline
71
+ */
72
+ detectRegressions(): PerformanceRegression[];
73
+ /**
74
+ * Get summary statistics
75
+ */
76
+ getSummary(): {
77
+ totalChecks: number;
78
+ avgDuration: number;
79
+ slowestChecks: Array<{
80
+ id: string;
81
+ duration: number;
82
+ }>;
83
+ fastestChecks: Array<{
84
+ id: string;
85
+ duration: number;
86
+ }>;
87
+ };
88
+ /**
89
+ * Print performance report
90
+ */
91
+ printReport(verbose?: boolean): void;
92
+ /**
93
+ * Reset all performance data
94
+ */
95
+ reset(): void;
96
+ /**
97
+ * Get baseline for a specific check
98
+ */
99
+ getBaseline(checkId: string): CheckPerformanceData | null;
100
+ }
101
+ export declare function getPerformanceTracker(appRoot?: string): PerformanceTracker;
102
+ export declare function resetPerformanceTracker(): void;
103
+ //# sourceMappingURL=performance-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-tracker.d.ts","sourceRoot":"","sources":["../../src/shared/performance-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,MAAM,WAAW,oBAAoB;IACnC,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,SAAS,GAAG,UAAU,CAAC;CAClC;AAOD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,GAAE,MAAsB;IAS3C;;OAEG;IACH,IAAI,IAAI,OAAO;IAaf;;OAEG;IACH,IAAI,IAAI,IAAI;IASZ;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAoClD;;OAEG;IACH,iBAAiB,IAAI,qBAAqB,EAAE;IA0C5C;;OAEG;IACH,UAAU,IAAI;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACvD,aAAa,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACxD;IA6BD;;OAEG;IACH,WAAW,CAAC,OAAO,GAAE,OAAe,GAAG,IAAI;IAgC3C;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;CAG1D;AAKD,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAK1E;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C"}
@@ -0,0 +1,267 @@
1
+ "use strict";
2
+ /**
3
+ * Performance Tracker for Preflight Checks
4
+ *
5
+ * Tracks execution times across runs and detects performance regressions.
6
+ * Stores baseline metrics in .preflight-perf.json for comparison.
7
+ *
8
+ * Features:
9
+ * - Track check execution times
10
+ * - Detect significant regressions (>50% slower)
11
+ * - Store historical baselines
12
+ * - Generate performance reports
13
+ *
14
+ * @example
15
+ * const tracker = new PerformanceTracker();
16
+ * tracker.load();
17
+ *
18
+ * // After running checks
19
+ * tracker.record("ui/console-log-check", 1.5);
20
+ * tracker.record("security/api-key-exposure", 0.8);
21
+ *
22
+ * const regressions = tracker.detectRegressions();
23
+ * tracker.save();
24
+ */
25
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
26
+ if (k2 === undefined) k2 = k;
27
+ var desc = Object.getOwnPropertyDescriptor(m, k);
28
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
29
+ desc = { enumerable: true, get: function() { return m[k]; } };
30
+ }
31
+ Object.defineProperty(o, k2, desc);
32
+ }) : (function(o, m, k, k2) {
33
+ if (k2 === undefined) k2 = k;
34
+ o[k2] = m[k];
35
+ }));
36
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
37
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
38
+ }) : function(o, v) {
39
+ o["default"] = v;
40
+ });
41
+ var __importStar = (this && this.__importStar) || (function () {
42
+ var ownKeys = function(o) {
43
+ ownKeys = Object.getOwnPropertyNames || function (o) {
44
+ var ar = [];
45
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
46
+ return ar;
47
+ };
48
+ return ownKeys(o);
49
+ };
50
+ return function (mod) {
51
+ if (mod && mod.__esModule) return mod;
52
+ var result = {};
53
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
54
+ __setModuleDefault(result, mod);
55
+ return result;
56
+ };
57
+ })();
58
+ Object.defineProperty(exports, "__esModule", { value: true });
59
+ exports.PerformanceTracker = void 0;
60
+ exports.getPerformanceTracker = getPerformanceTracker;
61
+ exports.resetPerformanceTracker = resetPerformanceTracker;
62
+ const fs = __importStar(require("node:fs"));
63
+ const path = __importStar(require("node:path"));
64
+ const PERFORMANCE_FILE = ".preflight-perf.json";
65
+ const HISTORY_SIZE = 5;
66
+ const WARNING_THRESHOLD = 0.5; // 50% slower
67
+ const CRITICAL_THRESHOLD = 1.0; // 100% slower (2x)
68
+ class PerformanceTracker {
69
+ data;
70
+ currentRunMetrics = new Map();
71
+ filePath;
72
+ constructor(appRoot = process.cwd()) {
73
+ this.filePath = path.join(appRoot, PERFORMANCE_FILE);
74
+ this.data = {
75
+ version: 1,
76
+ lastUpdated: new Date().toISOString(),
77
+ checks: {},
78
+ };
79
+ }
80
+ /**
81
+ * Load performance data from disk
82
+ */
83
+ load() {
84
+ try {
85
+ if (fs.existsSync(this.filePath)) {
86
+ const content = fs.readFileSync(this.filePath, "utf-8");
87
+ this.data = JSON.parse(content);
88
+ return true;
89
+ }
90
+ }
91
+ catch {
92
+ // If file is corrupted, start fresh
93
+ }
94
+ return false;
95
+ }
96
+ /**
97
+ * Save performance data to disk
98
+ */
99
+ save() {
100
+ try {
101
+ this.data.lastUpdated = new Date().toISOString();
102
+ fs.writeFileSync(this.filePath, JSON.stringify(this.data, null, 2));
103
+ }
104
+ catch {
105
+ // Ignore save errors - performance tracking is optional
106
+ }
107
+ }
108
+ /**
109
+ * Record a check's execution time
110
+ */
111
+ record(checkId, durationSec) {
112
+ this.currentRunMetrics.set(checkId, durationSec);
113
+ const existing = this.data.checks[checkId];
114
+ if (existing) {
115
+ // Update existing record
116
+ existing.lastDuration = durationSec;
117
+ existing.minDuration = Math.min(existing.minDuration, durationSec);
118
+ existing.maxDuration = Math.max(existing.maxDuration, durationSec);
119
+ existing.runCount++;
120
+ existing.lastRun = new Date().toISOString();
121
+ // Update history (keep last HISTORY_SIZE)
122
+ existing.history.push(durationSec);
123
+ if (existing.history.length > HISTORY_SIZE) {
124
+ existing.history.shift();
125
+ }
126
+ // Calculate rolling average
127
+ existing.avgDuration =
128
+ existing.history.reduce((a, b) => a + b, 0) / existing.history.length;
129
+ }
130
+ else {
131
+ // Create new record
132
+ this.data.checks[checkId] = {
133
+ lastDuration: durationSec,
134
+ avgDuration: durationSec,
135
+ minDuration: durationSec,
136
+ maxDuration: durationSec,
137
+ runCount: 1,
138
+ history: [durationSec],
139
+ lastRun: new Date().toISOString(),
140
+ };
141
+ }
142
+ }
143
+ /**
144
+ * Detect performance regressions compared to baseline
145
+ */
146
+ detectRegressions() {
147
+ const regressions = [];
148
+ for (const [checkId, duration] of this.currentRunMetrics) {
149
+ const baseline = this.data.checks[checkId];
150
+ // Need at least 3 runs to establish a baseline
151
+ if (!baseline || baseline.runCount < 3) {
152
+ continue;
153
+ }
154
+ const baselineDuration = baseline.avgDuration;
155
+ const increase = (duration - baselineDuration) / baselineDuration;
156
+ if (increase >= CRITICAL_THRESHOLD) {
157
+ regressions.push({
158
+ checkId,
159
+ currentDuration: duration,
160
+ baselineDuration,
161
+ percentageIncrease: increase * 100,
162
+ severity: "critical",
163
+ });
164
+ }
165
+ else if (increase >= WARNING_THRESHOLD) {
166
+ regressions.push({
167
+ checkId,
168
+ currentDuration: duration,
169
+ baselineDuration,
170
+ percentageIncrease: increase * 100,
171
+ severity: "warning",
172
+ });
173
+ }
174
+ }
175
+ // Sort by severity (critical first) then by percentage
176
+ return regressions.sort((a, b) => {
177
+ if (a.severity !== b.severity) {
178
+ return a.severity === "critical" ? -1 : 1;
179
+ }
180
+ return b.percentageIncrease - a.percentageIncrease;
181
+ });
182
+ }
183
+ /**
184
+ * Get summary statistics
185
+ */
186
+ getSummary() {
187
+ const checks = Object.entries(this.data.checks);
188
+ if (checks.length === 0) {
189
+ return {
190
+ totalChecks: 0,
191
+ avgDuration: 0,
192
+ slowestChecks: [],
193
+ fastestChecks: [],
194
+ };
195
+ }
196
+ const durations = checks.map(([id, data]) => ({
197
+ id,
198
+ duration: data.avgDuration,
199
+ }));
200
+ const sorted = durations.sort((a, b) => b.duration - a.duration);
201
+ const totalDuration = durations.reduce((sum, d) => sum + d.duration, 0);
202
+ return {
203
+ totalChecks: checks.length,
204
+ avgDuration: totalDuration / checks.length,
205
+ slowestChecks: sorted.slice(0, 5),
206
+ fastestChecks: sorted.slice(-5).reverse(),
207
+ };
208
+ }
209
+ /**
210
+ * Print performance report
211
+ */
212
+ printReport(verbose = false) {
213
+ const regressions = this.detectRegressions();
214
+ const summary = this.getSummary();
215
+ console.log("\n⏱️ Performance Report");
216
+ console.log("─".repeat(50));
217
+ if (regressions.length > 0) {
218
+ console.log("\n🚨 Performance Regressions Detected:");
219
+ for (const reg of regressions) {
220
+ const icon = reg.severity === "critical" ? "🔴" : "🟡";
221
+ console.log(` ${icon} ${reg.checkId}: ${reg.currentDuration.toFixed(2)}s ` +
222
+ `(baseline: ${reg.baselineDuration.toFixed(2)}s, +${reg.percentageIncrease.toFixed(0)}%)`);
223
+ }
224
+ }
225
+ if (verbose && summary.totalChecks > 0) {
226
+ console.log(`\n📊 Summary:`);
227
+ console.log(` Total tracked checks: ${summary.totalChecks}`);
228
+ console.log(` Average duration: ${summary.avgDuration.toFixed(2)}s`);
229
+ if (summary.slowestChecks.length > 0) {
230
+ console.log(`\n🐢 Slowest Checks:`);
231
+ for (const check of summary.slowestChecks) {
232
+ console.log(` - ${check.id}: ${check.duration.toFixed(2)}s`);
233
+ }
234
+ }
235
+ }
236
+ }
237
+ /**
238
+ * Reset all performance data
239
+ */
240
+ reset() {
241
+ this.data = {
242
+ version: 1,
243
+ lastUpdated: new Date().toISOString(),
244
+ checks: {},
245
+ };
246
+ this.currentRunMetrics.clear();
247
+ }
248
+ /**
249
+ * Get baseline for a specific check
250
+ */
251
+ getBaseline(checkId) {
252
+ return this.data.checks[checkId] || null;
253
+ }
254
+ }
255
+ exports.PerformanceTracker = PerformanceTracker;
256
+ // Singleton instance for easy access
257
+ let tracker = null;
258
+ function getPerformanceTracker(appRoot) {
259
+ if (!tracker) {
260
+ tracker = new PerformanceTracker(appRoot);
261
+ }
262
+ return tracker;
263
+ }
264
+ function resetPerformanceTracker() {
265
+ tracker = null;
266
+ }
267
+ //# sourceMappingURL=performance-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-tracker.js","sourceRoot":"","sources":["../../src/shared/performance-tracker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@empline/preflight",
3
- "version": "1.1.43",
3
+ "version": "1.1.45",
4
4
  "description": "Distributable preflight validation system with app-specific plugin support",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",