@10up/block-renderer-benchmark 0.1.4

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 (77) hide show
  1. package/dist/analysis/comparison.d.ts +29 -0
  2. package/dist/analysis/comparison.d.ts.map +1 -0
  3. package/dist/analysis/comparison.js +94 -0
  4. package/dist/analysis/comparison.js.map +1 -0
  5. package/dist/analysis/index.d.ts +6 -0
  6. package/dist/analysis/index.d.ts.map +1 -0
  7. package/dist/analysis/index.js +6 -0
  8. package/dist/analysis/index.js.map +1 -0
  9. package/dist/analysis/regression.d.ts +34 -0
  10. package/dist/analysis/regression.d.ts.map +1 -0
  11. package/dist/analysis/regression.js +63 -0
  12. package/dist/analysis/regression.js.map +1 -0
  13. package/dist/cli/commands/compare.d.ts +9 -0
  14. package/dist/cli/commands/compare.d.ts.map +1 -0
  15. package/dist/cli/commands/compare.js +142 -0
  16. package/dist/cli/commands/compare.js.map +1 -0
  17. package/dist/cli/commands/report.d.ts +9 -0
  18. package/dist/cli/commands/report.d.ts.map +1 -0
  19. package/dist/cli/commands/report.js +158 -0
  20. package/dist/cli/commands/report.js.map +1 -0
  21. package/dist/cli/commands/run.d.ts +9 -0
  22. package/dist/cli/commands/run.d.ts.map +1 -0
  23. package/dist/cli/commands/run.js +107 -0
  24. package/dist/cli/commands/run.js.map +1 -0
  25. package/dist/cli/index.d.ts +8 -0
  26. package/dist/cli/index.d.ts.map +1 -0
  27. package/dist/cli/index.js +165 -0
  28. package/dist/cli/index.js.map +1 -0
  29. package/dist/index.d.ts +16 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +19 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/reporters/console-reporter.d.ts +47 -0
  34. package/dist/reporters/console-reporter.d.ts.map +1 -0
  35. package/dist/reporters/console-reporter.js +191 -0
  36. package/dist/reporters/console-reporter.js.map +1 -0
  37. package/dist/reporters/index.d.ts +6 -0
  38. package/dist/reporters/index.d.ts.map +1 -0
  39. package/dist/reporters/index.js +6 -0
  40. package/dist/reporters/index.js.map +1 -0
  41. package/dist/reporters/markdown-reporter.d.ts +32 -0
  42. package/dist/reporters/markdown-reporter.d.ts.map +1 -0
  43. package/dist/reporters/markdown-reporter.js +133 -0
  44. package/dist/reporters/markdown-reporter.js.map +1 -0
  45. package/dist/runner/benchmark-runner.d.ts +37 -0
  46. package/dist/runner/benchmark-runner.d.ts.map +1 -0
  47. package/dist/runner/benchmark-runner.js +133 -0
  48. package/dist/runner/benchmark-runner.js.map +1 -0
  49. package/dist/runner/index.d.ts +6 -0
  50. package/dist/runner/index.d.ts.map +1 -0
  51. package/dist/runner/index.js +6 -0
  52. package/dist/runner/index.js.map +1 -0
  53. package/dist/runner/timing.d.ts +43 -0
  54. package/dist/runner/timing.d.ts.map +1 -0
  55. package/dist/runner/timing.js +115 -0
  56. package/dist/runner/timing.js.map +1 -0
  57. package/dist/runner/vitest-reporter.d.ts +38 -0
  58. package/dist/runner/vitest-reporter.d.ts.map +1 -0
  59. package/dist/runner/vitest-reporter.js +134 -0
  60. package/dist/runner/vitest-reporter.js.map +1 -0
  61. package/dist/storage/index.d.ts +6 -0
  62. package/dist/storage/index.d.ts.map +1 -0
  63. package/dist/storage/index.js +6 -0
  64. package/dist/storage/index.js.map +1 -0
  65. package/dist/storage/json-storage.d.ts +59 -0
  66. package/dist/storage/json-storage.d.ts.map +1 -0
  67. package/dist/storage/json-storage.js +142 -0
  68. package/dist/storage/json-storage.js.map +1 -0
  69. package/dist/storage/sqlite-storage.d.ts +72 -0
  70. package/dist/storage/sqlite-storage.d.ts.map +1 -0
  71. package/dist/storage/sqlite-storage.js +305 -0
  72. package/dist/storage/sqlite-storage.js.map +1 -0
  73. package/dist/types.d.ts +253 -0
  74. package/dist/types.d.ts.map +1 -0
  75. package/dist/types.js +21 -0
  76. package/dist/types.js.map +1 -0
  77. package/package.json +79 -0
@@ -0,0 +1,305 @@
1
+ /**
2
+ * SQLite storage for historical benchmark data
3
+ *
4
+ * Stores all benchmark runs and measurements for trend analysis
5
+ * and historical comparisons.
6
+ */
7
+ import Database from 'better-sqlite3';
8
+ import * as fs from 'fs';
9
+ import * as path from 'path';
10
+ const SCHEMA = `
11
+ -- Benchmark runs
12
+ CREATE TABLE IF NOT EXISTS benchmark_runs (
13
+ id TEXT PRIMARY KEY,
14
+ start_time TEXT NOT NULL,
15
+ end_time TEXT NOT NULL,
16
+ duration_ms REAL NOT NULL,
17
+ node_version TEXT NOT NULL,
18
+ platform TEXT NOT NULL,
19
+ arch TEXT NOT NULL,
20
+ cpu_count INTEGER,
21
+ total_memory INTEGER,
22
+ commit_hash TEXT,
23
+ branch TEXT,
24
+ is_dirty INTEGER DEFAULT 0,
25
+ created_at TEXT DEFAULT CURRENT_TIMESTAMP
26
+ );
27
+
28
+ -- Individual measurements
29
+ CREATE TABLE IF NOT EXISTS measurements (
30
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
31
+ run_id TEXT NOT NULL REFERENCES benchmark_runs(id),
32
+ name TEXT NOT NULL,
33
+ package TEXT NOT NULL,
34
+ function_name TEXT NOT NULL,
35
+ mean_ms REAL NOT NULL,
36
+ median_ms REAL NOT NULL,
37
+ min_ms REAL NOT NULL,
38
+ max_ms REAL NOT NULL,
39
+ std_dev REAL NOT NULL,
40
+ p95_ms REAL NOT NULL,
41
+ p99_ms REAL NOT NULL,
42
+ iterations INTEGER NOT NULL,
43
+ ops_per_second REAL,
44
+ heap_used INTEGER,
45
+ heap_total INTEGER,
46
+ external_memory INTEGER,
47
+ timestamp TEXT NOT NULL,
48
+ metadata TEXT,
49
+ UNIQUE(run_id, name)
50
+ );
51
+
52
+ -- Indexes for common queries
53
+ CREATE INDEX IF NOT EXISTS idx_measurements_name ON measurements(name);
54
+ CREATE INDEX IF NOT EXISTS idx_measurements_package ON measurements(package);
55
+ CREATE INDEX IF NOT EXISTS idx_runs_commit ON benchmark_runs(commit_hash);
56
+ CREATE INDEX IF NOT EXISTS idx_runs_branch ON benchmark_runs(branch);
57
+ CREATE INDEX IF NOT EXISTS idx_runs_timestamp ON benchmark_runs(start_time);
58
+ `;
59
+ /**
60
+ * SQLite storage for benchmark data
61
+ */
62
+ export class SqliteStorage {
63
+ db;
64
+ dbPath;
65
+ constructor(dbPath) {
66
+ this.dbPath = dbPath;
67
+ // Ensure directory exists
68
+ const dir = path.dirname(dbPath);
69
+ if (!fs.existsSync(dir)) {
70
+ fs.mkdirSync(dir, { recursive: true });
71
+ }
72
+ this.db = new Database(dbPath);
73
+ this.db.pragma('journal_mode = WAL');
74
+ this.initSchema();
75
+ }
76
+ /**
77
+ * Initialize the database schema
78
+ */
79
+ initSchema() {
80
+ this.db.exec(SCHEMA);
81
+ }
82
+ /**
83
+ * Save a benchmark run
84
+ */
85
+ saveRun(run) {
86
+ const insertRun = this.db.prepare(`
87
+ INSERT OR REPLACE INTO benchmark_runs (
88
+ id, start_time, end_time, duration_ms,
89
+ node_version, platform, arch, cpu_count, total_memory,
90
+ commit_hash, branch, is_dirty
91
+ ) VALUES (
92
+ @id, @startTime, @endTime, @duration,
93
+ @nodeVersion, @platform, @arch, @cpuCount, @totalMemory,
94
+ @commitHash, @branch, @isDirty
95
+ )
96
+ `);
97
+ const insertMeasurement = this.db.prepare(`
98
+ INSERT OR REPLACE INTO measurements (
99
+ run_id, name, package, function_name,
100
+ mean_ms, median_ms, min_ms, max_ms, std_dev, p95_ms, p99_ms,
101
+ iterations, ops_per_second, heap_used, heap_total, external_memory,
102
+ timestamp, metadata
103
+ ) VALUES (
104
+ @runId, @name, @package, @functionName,
105
+ @meanMs, @medianMs, @minMs, @maxMs, @stdDev, @p95Ms, @p99Ms,
106
+ @iterations, @opsPerSecond, @heapUsed, @heapTotal, @externalMemory,
107
+ @timestamp, @metadata
108
+ )
109
+ `);
110
+ const transaction = this.db.transaction(() => {
111
+ insertRun.run({
112
+ id: run.id,
113
+ startTime: run.startTime,
114
+ endTime: run.endTime,
115
+ duration: run.duration,
116
+ nodeVersion: run.environment.nodeVersion,
117
+ platform: run.environment.platform,
118
+ arch: run.environment.arch,
119
+ cpuCount: run.environment.cpuCount,
120
+ totalMemory: run.environment.totalMemory,
121
+ commitHash: run.git?.commitHash ?? null,
122
+ branch: run.git?.branch ?? null,
123
+ isDirty: run.git?.isDirty ? 1 : 0,
124
+ });
125
+ for (const measurement of run.measurements) {
126
+ insertMeasurement.run({
127
+ runId: run.id,
128
+ name: measurement.name,
129
+ package: measurement.package,
130
+ functionName: measurement.function,
131
+ meanMs: measurement.timing.mean,
132
+ medianMs: measurement.timing.median,
133
+ minMs: measurement.timing.min,
134
+ maxMs: measurement.timing.max,
135
+ stdDev: measurement.timing.stdDev,
136
+ p95Ms: measurement.timing.p95,
137
+ p99Ms: measurement.timing.p99,
138
+ iterations: measurement.iterations,
139
+ opsPerSecond: measurement.opsPerSecond ?? null,
140
+ heapUsed: measurement.memory?.heapUsed ?? null,
141
+ heapTotal: measurement.memory?.heapTotal ?? null,
142
+ externalMemory: measurement.memory?.external ?? null,
143
+ timestamp: measurement.timestamp,
144
+ metadata: measurement.metadata ? JSON.stringify(measurement.metadata) : null,
145
+ });
146
+ }
147
+ });
148
+ transaction();
149
+ }
150
+ /**
151
+ * Get the latest run
152
+ */
153
+ getLatestRun() {
154
+ const row = this.db.prepare(`
155
+ SELECT * FROM benchmark_runs
156
+ ORDER BY start_time DESC
157
+ LIMIT 1
158
+ `).get();
159
+ if (!row)
160
+ return null;
161
+ return this.loadRunWithMeasurements(row);
162
+ }
163
+ /**
164
+ * Get a run by ID
165
+ */
166
+ getRun(id) {
167
+ const row = this.db.prepare(`
168
+ SELECT * FROM benchmark_runs WHERE id = ?
169
+ `).get(id);
170
+ if (!row)
171
+ return null;
172
+ return this.loadRunWithMeasurements(row);
173
+ }
174
+ /**
175
+ * Get a run by commit hash
176
+ */
177
+ getRunByCommit(commitHash) {
178
+ const row = this.db.prepare(`
179
+ SELECT * FROM benchmark_runs
180
+ WHERE commit_hash = ?
181
+ ORDER BY start_time DESC
182
+ LIMIT 1
183
+ `).get(commitHash);
184
+ if (!row)
185
+ return null;
186
+ return this.loadRunWithMeasurements(row);
187
+ }
188
+ /**
189
+ * Get recent runs
190
+ */
191
+ getRecentRuns(limit = 10) {
192
+ const rows = this.db.prepare(`
193
+ SELECT * FROM benchmark_runs
194
+ ORDER BY start_time DESC
195
+ LIMIT ?
196
+ `).all(limit);
197
+ return rows.map((row) => this.loadRunWithMeasurements(row));
198
+ }
199
+ /**
200
+ * Get measurement history for a specific benchmark
201
+ */
202
+ getMeasurementHistory(name, limit = 50) {
203
+ const rows = this.db.prepare(`
204
+ SELECT m.*, r.commit_hash, r.branch
205
+ FROM measurements m
206
+ JOIN benchmark_runs r ON m.run_id = r.id
207
+ WHERE m.name = ?
208
+ ORDER BY m.timestamp DESC
209
+ LIMIT ?
210
+ `).all(name, limit);
211
+ return rows.map((row) => this.rowToMeasurement(row));
212
+ }
213
+ /**
214
+ * Get all measurements for a run
215
+ */
216
+ getMeasurementsForRun(runId) {
217
+ const rows = this.db.prepare(`
218
+ SELECT * FROM measurements WHERE run_id = ?
219
+ `).all(runId);
220
+ return rows.map((row) => this.rowToMeasurement(row));
221
+ }
222
+ /**
223
+ * Load a run with its measurements
224
+ */
225
+ loadRunWithMeasurements(row) {
226
+ const measurements = this.getMeasurementsForRun(row.id);
227
+ const environment = {
228
+ nodeVersion: row.node_version,
229
+ platform: row.platform,
230
+ arch: row.arch,
231
+ cpuCount: row.cpu_count,
232
+ totalMemory: row.total_memory,
233
+ };
234
+ const git = row.commit_hash
235
+ ? {
236
+ commitHash: row.commit_hash,
237
+ branch: row.branch ?? 'unknown',
238
+ isDirty: row.is_dirty === 1,
239
+ }
240
+ : undefined;
241
+ return {
242
+ id: row.id,
243
+ startTime: row.start_time,
244
+ endTime: row.end_time,
245
+ duration: row.duration_ms,
246
+ measurements,
247
+ environment,
248
+ git,
249
+ };
250
+ }
251
+ /**
252
+ * Convert a measurement row to a BenchmarkMeasurement
253
+ */
254
+ rowToMeasurement(row) {
255
+ return {
256
+ runId: row.run_id,
257
+ name: row.name,
258
+ package: row.package,
259
+ function: row.function_name,
260
+ timing: {
261
+ mean: row.mean_ms,
262
+ median: row.median_ms,
263
+ min: row.min_ms,
264
+ max: row.max_ms,
265
+ stdDev: row.std_dev,
266
+ p95: row.p95_ms,
267
+ p99: row.p99_ms,
268
+ },
269
+ iterations: row.iterations,
270
+ timestamp: row.timestamp,
271
+ opsPerSecond: row.ops_per_second ?? undefined,
272
+ memory: row.heap_used
273
+ ? {
274
+ heapUsed: row.heap_used,
275
+ heapTotal: row.heap_total ?? 0,
276
+ external: row.external_memory ?? 0,
277
+ }
278
+ : undefined,
279
+ metadata: row.metadata ? JSON.parse(row.metadata) : undefined,
280
+ };
281
+ }
282
+ /**
283
+ * Close the database connection
284
+ */
285
+ close() {
286
+ this.db.close();
287
+ }
288
+ /**
289
+ * Get the database file path
290
+ */
291
+ getPath() {
292
+ return this.dbPath;
293
+ }
294
+ }
295
+ /**
296
+ * Default database path relative to project root
297
+ */
298
+ export const DEFAULT_DB_PATH = 'benchmarks/.benchmark.db';
299
+ /**
300
+ * Create a SQLite storage instance with the default path
301
+ */
302
+ export function createSqliteStorage(rootDir) {
303
+ return new SqliteStorage(path.join(rootDir, DEFAULT_DB_PATH));
304
+ }
305
+ //# sourceMappingURL=sqlite-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-storage.js","sourceRoot":"","sources":["../../src/storage/sqlite-storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,253 @@
1
+ /**
2
+ * Core types for the benchmark package
3
+ */
4
+ /**
5
+ * Timing statistics for a benchmark measurement
6
+ */
7
+ export interface TimingStats {
8
+ /** Mean execution time in milliseconds */
9
+ mean: number;
10
+ /** Median execution time in milliseconds */
11
+ median: number;
12
+ /** Minimum execution time in milliseconds */
13
+ min: number;
14
+ /** Maximum execution time in milliseconds */
15
+ max: number;
16
+ /** Standard deviation in milliseconds */
17
+ stdDev: number;
18
+ /** 95th percentile in milliseconds */
19
+ p95: number;
20
+ /** 99th percentile in milliseconds */
21
+ p99: number;
22
+ }
23
+ /**
24
+ * Memory statistics for a benchmark measurement
25
+ */
26
+ export interface MemoryStats {
27
+ /** Heap used in bytes */
28
+ heapUsed: number;
29
+ /** Total heap in bytes */
30
+ heapTotal: number;
31
+ /** External memory in bytes */
32
+ external: number;
33
+ }
34
+ /**
35
+ * A single benchmark measurement
36
+ */
37
+ export interface BenchmarkMeasurement {
38
+ /** Unique identifier for this measurement */
39
+ id?: string;
40
+ /** Run identifier (timestamp-based) */
41
+ runId: string;
42
+ /** Full name of the benchmark (package/function) */
43
+ name: string;
44
+ /** Package being benchmarked */
45
+ package: string;
46
+ /** Function being benchmarked */
47
+ function: string;
48
+ /** Timing statistics */
49
+ timing: TimingStats;
50
+ /** Memory statistics (optional) */
51
+ memory?: MemoryStats;
52
+ /** Number of iterations */
53
+ iterations: number;
54
+ /** Timestamp of the measurement */
55
+ timestamp: string;
56
+ /** Operations per second */
57
+ opsPerSecond?: number;
58
+ /** Custom metadata */
59
+ metadata?: Record<string, unknown>;
60
+ }
61
+ /**
62
+ * Environment information for a benchmark run
63
+ */
64
+ export interface EnvironmentInfo {
65
+ /** Node.js version */
66
+ nodeVersion: string;
67
+ /** Operating system platform */
68
+ platform: string;
69
+ /** CPU architecture */
70
+ arch: string;
71
+ /** Number of CPU cores */
72
+ cpuCount: number;
73
+ /** Total system memory in bytes */
74
+ totalMemory: number;
75
+ }
76
+ /**
77
+ * Git information for a benchmark run
78
+ */
79
+ export interface GitInfo {
80
+ /** Git commit hash */
81
+ commitHash: string;
82
+ /** Git branch name */
83
+ branch: string;
84
+ /** Whether the working directory has uncommitted changes */
85
+ isDirty: boolean;
86
+ }
87
+ /**
88
+ * A complete benchmark run (multiple measurements)
89
+ */
90
+ export interface BenchmarkRun {
91
+ /** Unique run identifier */
92
+ id: string;
93
+ /** When the run started */
94
+ startTime: string;
95
+ /** When the run ended */
96
+ endTime: string;
97
+ /** Total duration in milliseconds */
98
+ duration: number;
99
+ /** All measurements in this run */
100
+ measurements: BenchmarkMeasurement[];
101
+ /** Environment information */
102
+ environment: EnvironmentInfo;
103
+ /** Git information (optional) */
104
+ git?: GitInfo;
105
+ }
106
+ /**
107
+ * Benchmark configuration
108
+ */
109
+ export interface BenchmarkConfig {
110
+ /** Number of warmup iterations */
111
+ warmupIterations: number;
112
+ /** Number of measurement iterations */
113
+ iterations: number;
114
+ /** Timeout per benchmark in milliseconds */
115
+ timeout: number;
116
+ /** Whether to collect memory stats */
117
+ collectMemory: boolean;
118
+ /** Minimum time to run benchmark in milliseconds */
119
+ minTime: number;
120
+ }
121
+ /**
122
+ * Default benchmark configuration
123
+ */
124
+ export declare const DEFAULT_BENCHMARK_CONFIG: BenchmarkConfig;
125
+ /**
126
+ * Baseline entry for JSON storage
127
+ */
128
+ export interface BaselineEntry {
129
+ /** Mean execution time in milliseconds */
130
+ mean: number;
131
+ /** Median execution time in milliseconds */
132
+ median: number;
133
+ /** 95th percentile in milliseconds */
134
+ p95: number;
135
+ /** Number of iterations used */
136
+ iterations?: number;
137
+ }
138
+ /**
139
+ * JSON baseline file format
140
+ */
141
+ export interface BaselineFile {
142
+ /** Schema version */
143
+ version: number;
144
+ /** When the baseline was generated */
145
+ generated: string;
146
+ /** Git commit hash */
147
+ commit?: string;
148
+ /** Git branch name */
149
+ branch?: string;
150
+ /** Baseline measurements by name */
151
+ baselines: Record<string, BaselineEntry>;
152
+ }
153
+ /**
154
+ * Comparison result between two measurements
155
+ */
156
+ export interface ComparisonResult {
157
+ /** Benchmark name */
158
+ name: string;
159
+ /** Baseline measurement */
160
+ baseline: BaselineEntry;
161
+ /** Current measurement */
162
+ current: BaselineEntry;
163
+ /** Change in mean time (percentage, positive = slower) */
164
+ meanChange: number;
165
+ /** Change in p95 time (percentage, positive = slower) */
166
+ p95Change: number;
167
+ /** Is this a regression? */
168
+ isRegression: boolean;
169
+ /** Is this an improvement? */
170
+ isImprovement: boolean;
171
+ /** Status indicator */
172
+ status: 'regression' | 'improvement' | 'unchanged';
173
+ }
174
+ /**
175
+ * Summary of a comparison
176
+ */
177
+ export interface ComparisonSummary {
178
+ /** Total number of benchmarks compared */
179
+ total: number;
180
+ /** Number of regressions */
181
+ regressions: number;
182
+ /** Number of improvements */
183
+ improvements: number;
184
+ /** Number of unchanged */
185
+ unchanged: number;
186
+ /** Individual comparison results */
187
+ results: ComparisonResult[];
188
+ /** Whether any regressions were detected */
189
+ hasRegressions: boolean;
190
+ }
191
+ /**
192
+ * Regression detection thresholds
193
+ */
194
+ export interface RegressionThresholds {
195
+ /** Percentage increase to flag as regression (default: 10) */
196
+ regressionThreshold: number;
197
+ /** Percentage decrease to flag as improvement (default: 10) */
198
+ improvementThreshold: number;
199
+ }
200
+ /**
201
+ * Default regression thresholds
202
+ */
203
+ export declare const DEFAULT_REGRESSION_THRESHOLDS: RegressionThresholds;
204
+ /**
205
+ * CLI run options
206
+ */
207
+ export interface RunOptions {
208
+ /** Only run benchmarks for specific package */
209
+ package?: string;
210
+ /** Filter benchmarks by name pattern */
211
+ filter?: string;
212
+ /** Update baseline JSON after run */
213
+ baseline?: boolean;
214
+ /** Output as JSON */
215
+ json?: boolean;
216
+ /** Custom database path */
217
+ dbPath?: string;
218
+ /** Number of iterations */
219
+ iterations?: number;
220
+ /** Verbose output */
221
+ verbose?: boolean;
222
+ }
223
+ /**
224
+ * CLI compare options
225
+ */
226
+ export interface CompareOptions {
227
+ /** Baseline to compare against (commit hash, 'latest', or path) */
228
+ baseline: string;
229
+ /** Current run to compare (commit hash, 'latest', or path) */
230
+ current?: string;
231
+ /** Regression threshold percentage */
232
+ threshold?: number;
233
+ /** Output format */
234
+ format?: 'console' | 'markdown' | 'json';
235
+ /** Output file path */
236
+ output?: string;
237
+ /** Fail on regression */
238
+ failOnRegression?: boolean;
239
+ }
240
+ /**
241
+ * CLI report options
242
+ */
243
+ export interface ReportOptions {
244
+ /** Number of runs to include in history */
245
+ history?: number;
246
+ /** Output format */
247
+ format?: 'console' | 'markdown' | 'json';
248
+ /** Output file path */
249
+ output?: string;
250
+ /** Include trend analysis */
251
+ trends?: boolean;
252
+ }
253
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Core types for the benchmark package
3
+ */
4
+ /**
5
+ * Default benchmark configuration
6
+ */
7
+ export const DEFAULT_BENCHMARK_CONFIG = {
8
+ warmupIterations: 10,
9
+ iterations: 100,
10
+ timeout: 30000,
11
+ collectMemory: false,
12
+ minTime: 500,
13
+ };
14
+ /**
15
+ * Default regression thresholds
16
+ */
17
+ export const DEFAULT_REGRESSION_THRESHOLDS = {
18
+ regressionThreshold: 10,
19
+ improvementThreshold: 10,
20
+ };
21
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA8HH;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACvD,gBAAgB,EAAE,EAAE;IACpB,UAAU,EAAE,GAAG;IACf,OAAO,EAAE,KAAK;IACd,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,GAAG;CACb,CAAC;AAkFF;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAyB;IACjE,mBAAmB,EAAE,EAAE;IACvB,oBAAoB,EAAE,EAAE;CACzB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,79 @@
1
+ {
2
+ "name": "@10up/block-renderer-benchmark",
3
+ "version": "0.1.4",
4
+ "description": "Performance benchmarking for block-renderer",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ },
14
+ "./vitest": {
15
+ "types": "./dist/runner/vitest-reporter.d.ts",
16
+ "import": "./dist/runner/vitest-reporter.js"
17
+ },
18
+ "./cli/commands/run.js": {
19
+ "types": "./dist/cli/commands/run.d.ts",
20
+ "import": "./dist/cli/commands/run.js"
21
+ },
22
+ "./cli/commands/compare.js": {
23
+ "types": "./dist/cli/commands/compare.d.ts",
24
+ "import": "./dist/cli/commands/compare.js"
25
+ },
26
+ "./cli/commands/report.js": {
27
+ "types": "./dist/cli/commands/report.d.ts",
28
+ "import": "./dist/cli/commands/report.js"
29
+ }
30
+ },
31
+ "bin": {
32
+ "benchmark": "./dist/cli/index.js"
33
+ },
34
+ "files": [
35
+ "dist"
36
+ ],
37
+ "dependencies": {
38
+ "better-sqlite3": "^11.7.0",
39
+ "tinybench": "^3.0.0",
40
+ "@10up/block-renderer-core": "0.1.4"
41
+ },
42
+ "devDependencies": {
43
+ "@types/better-sqlite3": "^7.6.12",
44
+ "typescript": "^5.7.0",
45
+ "vitest": "^2.1.0"
46
+ },
47
+ "peerDependencies": {
48
+ "vitest": "^2.0.0"
49
+ },
50
+ "peerDependenciesMeta": {
51
+ "vitest": {
52
+ "optional": true
53
+ }
54
+ },
55
+ "keywords": [
56
+ "benchmark",
57
+ "performance",
58
+ "vitest",
59
+ "testing"
60
+ ],
61
+ "license": "MIT",
62
+ "repository": {
63
+ "type": "git",
64
+ "url": "https://github.com/10up/json-block-renderer",
65
+ "directory": "packages/benchmark"
66
+ },
67
+ "publishConfig": {
68
+ "access": "public"
69
+ },
70
+ "scripts": {
71
+ "build": "tsc -p tsconfig.build.json",
72
+ "dev": "tsc -p tsconfig.build.json --watch",
73
+ "typecheck": "tsc --noEmit",
74
+ "clean": "rm -rf dist",
75
+ "test": "vitest run",
76
+ "test:watch": "vitest",
77
+ "bench": "vitest bench"
78
+ }
79
+ }