glamsterdam-compat-lab 0.2.2 → 0.3.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,5 +1,5 @@
1
1
  import { z } from "zod";
2
- export declare const TOOL_VERSION = "0.2.2";
2
+ export declare const TOOL_VERSION = "0.3.0";
3
3
  export declare const severitySchema: z.ZodEnum<{
4
4
  unknown: "unknown";
5
5
  low: "low";
@@ -131,12 +131,527 @@ export declare const compatibilityReportSchema: z.ZodObject<{
131
131
  assumptions: z.ZodDefault<z.ZodArray<z.ZodString>>;
132
132
  limitations: z.ZodDefault<z.ZodArray<z.ZodString>>;
133
133
  }, z.core.$strip>;
134
+ export declare const comparisonDirectionSchema: z.ZodEnum<{
135
+ unchanged: "unchanged";
136
+ increased: "increased";
137
+ decreased: "decreased";
138
+ changed: "changed";
139
+ }>;
140
+ export declare const comparisonFieldSchema: z.ZodEnum<{
141
+ domain: "domain";
142
+ severity: "severity";
143
+ confidence: "confidence";
144
+ title: "title";
145
+ relatedEips: "relatedEips";
146
+ description: "description";
147
+ evidence: "evidence";
148
+ recommendation: "recommendation";
149
+ }>;
150
+ export declare const comparisonReportReferenceSchema: z.ZodObject<{
151
+ toolVersion: z.ZodString;
152
+ fork: z.ZodString;
153
+ target: z.ZodObject<{
154
+ kind: z.ZodEnum<{
155
+ indexer: "indexer";
156
+ validator: "validator";
157
+ bytecode: "bytecode";
158
+ trace: "trace";
159
+ combined: "combined";
160
+ }>;
161
+ name: z.ZodString;
162
+ }, z.core.$strip>;
163
+ summary: z.ZodObject<{
164
+ risk: z.ZodEnum<{
165
+ unknown: "unknown";
166
+ low: "low";
167
+ medium: "medium";
168
+ high: "high";
169
+ }>;
170
+ findingCount: z.ZodNumber;
171
+ highCount: z.ZodNumber;
172
+ mediumCount: z.ZodNumber;
173
+ lowCount: z.ZodNumber;
174
+ unknownCount: z.ZodNumber;
175
+ }, z.core.$strip>;
176
+ }, z.core.$strip>;
177
+ export declare const comparisonFindingReferenceSchema: z.ZodObject<{
178
+ key: z.ZodString;
179
+ id: z.ZodString;
180
+ title: z.ZodString;
181
+ severity: z.ZodEnum<{
182
+ unknown: "unknown";
183
+ low: "low";
184
+ medium: "medium";
185
+ high: "high";
186
+ }>;
187
+ confidence: z.ZodEnum<{
188
+ low: "low";
189
+ medium: "medium";
190
+ high: "high";
191
+ }>;
192
+ domain: z.ZodArray<z.ZodEnum<{
193
+ execution: "execution";
194
+ consensus: "consensus";
195
+ networking: "networking";
196
+ tooling: "tooling";
197
+ monitoring: "monitoring";
198
+ indexer: "indexer";
199
+ validator: "validator";
200
+ builder: "builder";
201
+ contracts: "contracts";
202
+ }>>;
203
+ relatedEips: z.ZodDefault<z.ZodArray<z.ZodString>>;
204
+ }, z.core.$strip>;
205
+ export declare const severityChangeSchema: z.ZodObject<{
206
+ from: z.ZodEnum<{
207
+ unknown: "unknown";
208
+ low: "low";
209
+ medium: "medium";
210
+ high: "high";
211
+ }>;
212
+ to: z.ZodEnum<{
213
+ unknown: "unknown";
214
+ low: "low";
215
+ medium: "medium";
216
+ high: "high";
217
+ }>;
218
+ direction: z.ZodEnum<{
219
+ unchanged: "unchanged";
220
+ increased: "increased";
221
+ decreased: "decreased";
222
+ changed: "changed";
223
+ }>;
224
+ }, z.core.$strip>;
225
+ export declare const confidenceChangeSchema: z.ZodObject<{
226
+ from: z.ZodEnum<{
227
+ low: "low";
228
+ medium: "medium";
229
+ high: "high";
230
+ }>;
231
+ to: z.ZodEnum<{
232
+ low: "low";
233
+ medium: "medium";
234
+ high: "high";
235
+ }>;
236
+ direction: z.ZodEnum<{
237
+ unchanged: "unchanged";
238
+ increased: "increased";
239
+ decreased: "decreased";
240
+ changed: "changed";
241
+ }>;
242
+ }, z.core.$strip>;
243
+ export declare const changedFindingSchema: z.ZodObject<{
244
+ key: z.ZodString;
245
+ id: z.ZodString;
246
+ changedFields: z.ZodArray<z.ZodEnum<{
247
+ domain: "domain";
248
+ severity: "severity";
249
+ confidence: "confidence";
250
+ title: "title";
251
+ relatedEips: "relatedEips";
252
+ description: "description";
253
+ evidence: "evidence";
254
+ recommendation: "recommendation";
255
+ }>>;
256
+ baseline: z.ZodObject<{
257
+ key: z.ZodString;
258
+ id: z.ZodString;
259
+ title: z.ZodString;
260
+ severity: z.ZodEnum<{
261
+ unknown: "unknown";
262
+ low: "low";
263
+ medium: "medium";
264
+ high: "high";
265
+ }>;
266
+ confidence: z.ZodEnum<{
267
+ low: "low";
268
+ medium: "medium";
269
+ high: "high";
270
+ }>;
271
+ domain: z.ZodArray<z.ZodEnum<{
272
+ execution: "execution";
273
+ consensus: "consensus";
274
+ networking: "networking";
275
+ tooling: "tooling";
276
+ monitoring: "monitoring";
277
+ indexer: "indexer";
278
+ validator: "validator";
279
+ builder: "builder";
280
+ contracts: "contracts";
281
+ }>>;
282
+ relatedEips: z.ZodDefault<z.ZodArray<z.ZodString>>;
283
+ }, z.core.$strip>;
284
+ candidate: z.ZodObject<{
285
+ key: z.ZodString;
286
+ id: z.ZodString;
287
+ title: z.ZodString;
288
+ severity: z.ZodEnum<{
289
+ unknown: "unknown";
290
+ low: "low";
291
+ medium: "medium";
292
+ high: "high";
293
+ }>;
294
+ confidence: z.ZodEnum<{
295
+ low: "low";
296
+ medium: "medium";
297
+ high: "high";
298
+ }>;
299
+ domain: z.ZodArray<z.ZodEnum<{
300
+ execution: "execution";
301
+ consensus: "consensus";
302
+ networking: "networking";
303
+ tooling: "tooling";
304
+ monitoring: "monitoring";
305
+ indexer: "indexer";
306
+ validator: "validator";
307
+ builder: "builder";
308
+ contracts: "contracts";
309
+ }>>;
310
+ relatedEips: z.ZodDefault<z.ZodArray<z.ZodString>>;
311
+ }, z.core.$strip>;
312
+ severityChange: z.ZodOptional<z.ZodObject<{
313
+ from: z.ZodEnum<{
314
+ unknown: "unknown";
315
+ low: "low";
316
+ medium: "medium";
317
+ high: "high";
318
+ }>;
319
+ to: z.ZodEnum<{
320
+ unknown: "unknown";
321
+ low: "low";
322
+ medium: "medium";
323
+ high: "high";
324
+ }>;
325
+ direction: z.ZodEnum<{
326
+ unchanged: "unchanged";
327
+ increased: "increased";
328
+ decreased: "decreased";
329
+ changed: "changed";
330
+ }>;
331
+ }, z.core.$strip>>;
332
+ confidenceChange: z.ZodOptional<z.ZodObject<{
333
+ from: z.ZodEnum<{
334
+ low: "low";
335
+ medium: "medium";
336
+ high: "high";
337
+ }>;
338
+ to: z.ZodEnum<{
339
+ low: "low";
340
+ medium: "medium";
341
+ high: "high";
342
+ }>;
343
+ direction: z.ZodEnum<{
344
+ unchanged: "unchanged";
345
+ increased: "increased";
346
+ decreased: "decreased";
347
+ changed: "changed";
348
+ }>;
349
+ }, z.core.$strip>>;
350
+ }, z.core.$strip>;
351
+ export declare const comparisonReportSchema: z.ZodObject<{
352
+ toolVersion: z.ZodString;
353
+ fork: z.ZodString;
354
+ comparison: z.ZodObject<{
355
+ baseline: z.ZodObject<{
356
+ toolVersion: z.ZodString;
357
+ fork: z.ZodString;
358
+ target: z.ZodObject<{
359
+ kind: z.ZodEnum<{
360
+ indexer: "indexer";
361
+ validator: "validator";
362
+ bytecode: "bytecode";
363
+ trace: "trace";
364
+ combined: "combined";
365
+ }>;
366
+ name: z.ZodString;
367
+ }, z.core.$strip>;
368
+ summary: z.ZodObject<{
369
+ risk: z.ZodEnum<{
370
+ unknown: "unknown";
371
+ low: "low";
372
+ medium: "medium";
373
+ high: "high";
374
+ }>;
375
+ findingCount: z.ZodNumber;
376
+ highCount: z.ZodNumber;
377
+ mediumCount: z.ZodNumber;
378
+ lowCount: z.ZodNumber;
379
+ unknownCount: z.ZodNumber;
380
+ }, z.core.$strip>;
381
+ }, z.core.$strip>;
382
+ candidate: z.ZodObject<{
383
+ toolVersion: z.ZodString;
384
+ fork: z.ZodString;
385
+ target: z.ZodObject<{
386
+ kind: z.ZodEnum<{
387
+ indexer: "indexer";
388
+ validator: "validator";
389
+ bytecode: "bytecode";
390
+ trace: "trace";
391
+ combined: "combined";
392
+ }>;
393
+ name: z.ZodString;
394
+ }, z.core.$strip>;
395
+ summary: z.ZodObject<{
396
+ risk: z.ZodEnum<{
397
+ unknown: "unknown";
398
+ low: "low";
399
+ medium: "medium";
400
+ high: "high";
401
+ }>;
402
+ findingCount: z.ZodNumber;
403
+ highCount: z.ZodNumber;
404
+ mediumCount: z.ZodNumber;
405
+ lowCount: z.ZodNumber;
406
+ unknownCount: z.ZodNumber;
407
+ }, z.core.$strip>;
408
+ }, z.core.$strip>;
409
+ }, z.core.$strip>;
410
+ summary: z.ZodObject<{
411
+ riskChange: z.ZodObject<{
412
+ from: z.ZodEnum<{
413
+ unknown: "unknown";
414
+ low: "low";
415
+ medium: "medium";
416
+ high: "high";
417
+ }>;
418
+ to: z.ZodEnum<{
419
+ unknown: "unknown";
420
+ low: "low";
421
+ medium: "medium";
422
+ high: "high";
423
+ }>;
424
+ direction: z.ZodEnum<{
425
+ unchanged: "unchanged";
426
+ increased: "increased";
427
+ decreased: "decreased";
428
+ changed: "changed";
429
+ }>;
430
+ }, z.core.$strip>;
431
+ findingCount: z.ZodObject<{
432
+ baseline: z.ZodNumber;
433
+ candidate: z.ZodNumber;
434
+ delta: z.ZodNumber;
435
+ }, z.core.$strip>;
436
+ addedCount: z.ZodNumber;
437
+ removedCount: z.ZodNumber;
438
+ changedCount: z.ZodNumber;
439
+ unchangedCount: z.ZodNumber;
440
+ severityIncreasedCount: z.ZodNumber;
441
+ severityDecreasedCount: z.ZodNumber;
442
+ severityChangedCount: z.ZodNumber;
443
+ confidenceIncreasedCount: z.ZodNumber;
444
+ confidenceDecreasedCount: z.ZodNumber;
445
+ confidenceChangedCount: z.ZodNumber;
446
+ }, z.core.$strip>;
447
+ changes: z.ZodObject<{
448
+ added: z.ZodArray<z.ZodObject<{
449
+ key: z.ZodString;
450
+ id: z.ZodString;
451
+ title: z.ZodString;
452
+ severity: z.ZodEnum<{
453
+ unknown: "unknown";
454
+ low: "low";
455
+ medium: "medium";
456
+ high: "high";
457
+ }>;
458
+ confidence: z.ZodEnum<{
459
+ low: "low";
460
+ medium: "medium";
461
+ high: "high";
462
+ }>;
463
+ domain: z.ZodArray<z.ZodEnum<{
464
+ execution: "execution";
465
+ consensus: "consensus";
466
+ networking: "networking";
467
+ tooling: "tooling";
468
+ monitoring: "monitoring";
469
+ indexer: "indexer";
470
+ validator: "validator";
471
+ builder: "builder";
472
+ contracts: "contracts";
473
+ }>>;
474
+ relatedEips: z.ZodDefault<z.ZodArray<z.ZodString>>;
475
+ }, z.core.$strip>>;
476
+ removed: z.ZodArray<z.ZodObject<{
477
+ key: z.ZodString;
478
+ id: z.ZodString;
479
+ title: z.ZodString;
480
+ severity: z.ZodEnum<{
481
+ unknown: "unknown";
482
+ low: "low";
483
+ medium: "medium";
484
+ high: "high";
485
+ }>;
486
+ confidence: z.ZodEnum<{
487
+ low: "low";
488
+ medium: "medium";
489
+ high: "high";
490
+ }>;
491
+ domain: z.ZodArray<z.ZodEnum<{
492
+ execution: "execution";
493
+ consensus: "consensus";
494
+ networking: "networking";
495
+ tooling: "tooling";
496
+ monitoring: "monitoring";
497
+ indexer: "indexer";
498
+ validator: "validator";
499
+ builder: "builder";
500
+ contracts: "contracts";
501
+ }>>;
502
+ relatedEips: z.ZodDefault<z.ZodArray<z.ZodString>>;
503
+ }, z.core.$strip>>;
504
+ changed: z.ZodArray<z.ZodObject<{
505
+ key: z.ZodString;
506
+ id: z.ZodString;
507
+ changedFields: z.ZodArray<z.ZodEnum<{
508
+ domain: "domain";
509
+ severity: "severity";
510
+ confidence: "confidence";
511
+ title: "title";
512
+ relatedEips: "relatedEips";
513
+ description: "description";
514
+ evidence: "evidence";
515
+ recommendation: "recommendation";
516
+ }>>;
517
+ baseline: z.ZodObject<{
518
+ key: z.ZodString;
519
+ id: z.ZodString;
520
+ title: z.ZodString;
521
+ severity: z.ZodEnum<{
522
+ unknown: "unknown";
523
+ low: "low";
524
+ medium: "medium";
525
+ high: "high";
526
+ }>;
527
+ confidence: z.ZodEnum<{
528
+ low: "low";
529
+ medium: "medium";
530
+ high: "high";
531
+ }>;
532
+ domain: z.ZodArray<z.ZodEnum<{
533
+ execution: "execution";
534
+ consensus: "consensus";
535
+ networking: "networking";
536
+ tooling: "tooling";
537
+ monitoring: "monitoring";
538
+ indexer: "indexer";
539
+ validator: "validator";
540
+ builder: "builder";
541
+ contracts: "contracts";
542
+ }>>;
543
+ relatedEips: z.ZodDefault<z.ZodArray<z.ZodString>>;
544
+ }, z.core.$strip>;
545
+ candidate: z.ZodObject<{
546
+ key: z.ZodString;
547
+ id: z.ZodString;
548
+ title: z.ZodString;
549
+ severity: z.ZodEnum<{
550
+ unknown: "unknown";
551
+ low: "low";
552
+ medium: "medium";
553
+ high: "high";
554
+ }>;
555
+ confidence: z.ZodEnum<{
556
+ low: "low";
557
+ medium: "medium";
558
+ high: "high";
559
+ }>;
560
+ domain: z.ZodArray<z.ZodEnum<{
561
+ execution: "execution";
562
+ consensus: "consensus";
563
+ networking: "networking";
564
+ tooling: "tooling";
565
+ monitoring: "monitoring";
566
+ indexer: "indexer";
567
+ validator: "validator";
568
+ builder: "builder";
569
+ contracts: "contracts";
570
+ }>>;
571
+ relatedEips: z.ZodDefault<z.ZodArray<z.ZodString>>;
572
+ }, z.core.$strip>;
573
+ severityChange: z.ZodOptional<z.ZodObject<{
574
+ from: z.ZodEnum<{
575
+ unknown: "unknown";
576
+ low: "low";
577
+ medium: "medium";
578
+ high: "high";
579
+ }>;
580
+ to: z.ZodEnum<{
581
+ unknown: "unknown";
582
+ low: "low";
583
+ medium: "medium";
584
+ high: "high";
585
+ }>;
586
+ direction: z.ZodEnum<{
587
+ unchanged: "unchanged";
588
+ increased: "increased";
589
+ decreased: "decreased";
590
+ changed: "changed";
591
+ }>;
592
+ }, z.core.$strip>>;
593
+ confidenceChange: z.ZodOptional<z.ZodObject<{
594
+ from: z.ZodEnum<{
595
+ low: "low";
596
+ medium: "medium";
597
+ high: "high";
598
+ }>;
599
+ to: z.ZodEnum<{
600
+ low: "low";
601
+ medium: "medium";
602
+ high: "high";
603
+ }>;
604
+ direction: z.ZodEnum<{
605
+ unchanged: "unchanged";
606
+ increased: "increased";
607
+ decreased: "decreased";
608
+ changed: "changed";
609
+ }>;
610
+ }, z.core.$strip>>;
611
+ }, z.core.$strip>>;
612
+ unchanged: z.ZodArray<z.ZodObject<{
613
+ key: z.ZodString;
614
+ id: z.ZodString;
615
+ title: z.ZodString;
616
+ severity: z.ZodEnum<{
617
+ unknown: "unknown";
618
+ low: "low";
619
+ medium: "medium";
620
+ high: "high";
621
+ }>;
622
+ confidence: z.ZodEnum<{
623
+ low: "low";
624
+ medium: "medium";
625
+ high: "high";
626
+ }>;
627
+ domain: z.ZodArray<z.ZodEnum<{
628
+ execution: "execution";
629
+ consensus: "consensus";
630
+ networking: "networking";
631
+ tooling: "tooling";
632
+ monitoring: "monitoring";
633
+ indexer: "indexer";
634
+ validator: "validator";
635
+ builder: "builder";
636
+ contracts: "contracts";
637
+ }>>;
638
+ relatedEips: z.ZodDefault<z.ZodArray<z.ZodString>>;
639
+ }, z.core.$strip>>;
640
+ }, z.core.$strip>;
641
+ assumptions: z.ZodDefault<z.ZodArray<z.ZodString>>;
642
+ limitations: z.ZodDefault<z.ZodArray<z.ZodString>>;
643
+ }, z.core.$strip>;
134
644
  export type Severity = z.infer<typeof severitySchema>;
135
645
  export type Confidence = z.infer<typeof confidenceSchema>;
136
646
  export type ReportDomain = z.infer<typeof reportDomainSchema>;
137
647
  export type TargetKind = z.infer<typeof targetKindSchema>;
138
648
  export type CompatibilityFinding = z.infer<typeof findingSchema>;
139
649
  export type CompatibilityReport = z.infer<typeof compatibilityReportSchema>;
650
+ export type ComparisonDirection = z.infer<typeof comparisonDirectionSchema>;
651
+ export type ComparisonField = z.infer<typeof comparisonFieldSchema>;
652
+ export type ComparisonFindingReference = z.infer<typeof comparisonFindingReferenceSchema>;
653
+ export type ChangedFinding = z.infer<typeof changedFindingSchema>;
654
+ export type ComparisonReport = z.infer<typeof comparisonReportSchema>;
140
655
  export interface MakeReportInput {
141
656
  fork?: string;
142
657
  target: CompatibilityReport["target"];
@@ -147,4 +662,5 @@ export interface MakeReportInput {
147
662
  export declare function summarizeFindings(findings: CompatibilityFinding[]): CompatibilityReport["summary"];
148
663
  export declare function makeReport(input: MakeReportInput): CompatibilityReport;
149
664
  export declare function validateCompatibilityReport(value: unknown): CompatibilityReport;
665
+ export declare function validateComparisonReport(value: unknown): ComparisonReport;
150
666
  export declare function combineReports(reports: CompatibilityReport[]): CompatibilityReport;
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- export const TOOL_VERSION = "0.2.2";
2
+ export const TOOL_VERSION = "0.3.0";
3
3
  export const severitySchema = z.enum(["low", "medium", "high", "unknown"]);
4
4
  export const confidenceSchema = z.enum(["low", "medium", "high"]);
5
5
  export const reportDomainSchema = z.enum([
@@ -51,6 +51,88 @@ export const compatibilityReportSchema = z.object({
51
51
  assumptions: z.array(z.string()).default([]),
52
52
  limitations: z.array(z.string()).default([])
53
53
  });
54
+ export const comparisonDirectionSchema = z.enum(["unchanged", "increased", "decreased", "changed"]);
55
+ export const comparisonFieldSchema = z.enum([
56
+ "title",
57
+ "severity",
58
+ "confidence",
59
+ "domain",
60
+ "relatedEips",
61
+ "description",
62
+ "evidence",
63
+ "recommendation"
64
+ ]);
65
+ export const comparisonReportReferenceSchema = z.object({
66
+ toolVersion: z.string().min(1),
67
+ fork: z.string().min(1),
68
+ target: z.object({
69
+ kind: targetKindSchema,
70
+ name: z.string().min(1)
71
+ }),
72
+ summary: reportSummarySchema
73
+ });
74
+ export const comparisonFindingReferenceSchema = z.object({
75
+ key: z.string().min(1),
76
+ id: z.string().min(1),
77
+ title: z.string().min(1),
78
+ severity: severitySchema,
79
+ confidence: confidenceSchema,
80
+ domain: z.array(reportDomainSchema).min(1),
81
+ relatedEips: z.array(z.string()).default([])
82
+ });
83
+ export const severityChangeSchema = z.object({
84
+ from: severitySchema,
85
+ to: severitySchema,
86
+ direction: comparisonDirectionSchema
87
+ });
88
+ export const confidenceChangeSchema = z.object({
89
+ from: confidenceSchema,
90
+ to: confidenceSchema,
91
+ direction: comparisonDirectionSchema
92
+ });
93
+ export const changedFindingSchema = z.object({
94
+ key: z.string().min(1),
95
+ id: z.string().min(1),
96
+ changedFields: z.array(comparisonFieldSchema).min(1),
97
+ baseline: comparisonFindingReferenceSchema,
98
+ candidate: comparisonFindingReferenceSchema,
99
+ severityChange: severityChangeSchema.optional(),
100
+ confidenceChange: confidenceChangeSchema.optional()
101
+ });
102
+ export const comparisonReportSchema = z.object({
103
+ toolVersion: z.string().min(1),
104
+ fork: z.string().min(1),
105
+ comparison: z.object({
106
+ baseline: comparisonReportReferenceSchema,
107
+ candidate: comparisonReportReferenceSchema
108
+ }),
109
+ summary: z.object({
110
+ riskChange: severityChangeSchema,
111
+ findingCount: z.object({
112
+ baseline: z.number().int().nonnegative(),
113
+ candidate: z.number().int().nonnegative(),
114
+ delta: z.number().int()
115
+ }),
116
+ addedCount: z.number().int().nonnegative(),
117
+ removedCount: z.number().int().nonnegative(),
118
+ changedCount: z.number().int().nonnegative(),
119
+ unchangedCount: z.number().int().nonnegative(),
120
+ severityIncreasedCount: z.number().int().nonnegative(),
121
+ severityDecreasedCount: z.number().int().nonnegative(),
122
+ severityChangedCount: z.number().int().nonnegative(),
123
+ confidenceIncreasedCount: z.number().int().nonnegative(),
124
+ confidenceDecreasedCount: z.number().int().nonnegative(),
125
+ confidenceChangedCount: z.number().int().nonnegative()
126
+ }),
127
+ changes: z.object({
128
+ added: z.array(comparisonFindingReferenceSchema),
129
+ removed: z.array(comparisonFindingReferenceSchema),
130
+ changed: z.array(changedFindingSchema),
131
+ unchanged: z.array(comparisonFindingReferenceSchema)
132
+ }),
133
+ assumptions: z.array(z.string()).default([]),
134
+ limitations: z.array(z.string()).default([])
135
+ });
54
136
  export function summarizeFindings(findings) {
55
137
  const highCount = findings.filter((finding) => finding.severity === "high").length;
56
138
  const mediumCount = findings.filter((finding) => finding.severity === "medium").length;
@@ -88,6 +170,9 @@ export function makeReport(input) {
88
170
  export function validateCompatibilityReport(value) {
89
171
  return compatibilityReportSchema.parse(value);
90
172
  }
173
+ export function validateComparisonReport(value) {
174
+ return comparisonReportSchema.parse(value);
175
+ }
91
176
  export function combineReports(reports) {
92
177
  const findings = reports.flatMap((report) => report.findings.map((finding) => ({
93
178
  ...finding,
@@ -1 +1 @@
1
- {"version":3,"file":"reportTypes.js","sourceRoot":"","sources":["../../src/reports/reportTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reportTypes.js","sourceRoot":"","sources":["../../src/reports/reportTypes.ts"],"names":[],"mappings":"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"}
package/docs/fixtures.md CHANGED
@@ -44,6 +44,8 @@ pnpm build
44
44
 
45
45
  Snapshots are part of the product. They protect report language from accidental drift.
46
46
 
47
+ Comparison fixtures live under `fixtures/reports/`. They should be small JSON reports that make added, removed, changed, and unchanged findings obvious. Keep them deterministic and avoid embedding inferred gas deltas unless the input report already contains explicit sourced values.
48
+
47
49
  ## Capturing RPC Traces
48
50
 
49
51
  Use `scan-tx --trace-out` when you have an execution RPC endpoint that supports `debug_traceTransaction`: