executable-stories-formatters 0.6.1 → 0.7.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/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { S as StoryMeta, C as CIInfo$1, a as StoryStep, D as DocEntry, R as RawStatus, b as RawAttachment, c as RawRun, d as CIProvider, e as RawCIInfo, f as adaptJestRun, g as adaptPlaywrightRun, h as adaptVitestRun } from './index-C4QO-SVT.cjs';
2
- export { i as DocPhase, J as JestAdapterOptions, j as JestAggregatedResult, k as JestFileResult, l as JestTestResult, O as OtelAttributeValue, m as OtelSpan, P as PlaywrightAdapterOptions, n as PlaywrightAnnotation, o as PlaywrightAttachment, p as PlaywrightError, q as PlaywrightLocation, r as PlaywrightStatus, s as PlaywrightTestCase, t as PlaywrightTestResult, u as RawStepEvent, v as RawTestCase, w as STORY_META_KEY, x as StepKeyword, y as StepMode, z as StoryFileReport, V as VitestAdapterOptions, A as VitestSerializedError, B as VitestState, E as VitestTestCase, F as VitestTestModule, G as VitestTestResult, H as toCIInfo, I as toRawCIInfo } from './index-C4QO-SVT.cjs';
1
+ import { S as StoryMeta, C as CIInfo$1, a as StoryStep, D as DocEntry, O as OtelSpan, b as CIProvider, R as RawStatus, c as RawAttachment, d as RawRun, e as RawCIInfo, f as adaptJestRun, g as adaptPlaywrightRun, h as adaptVitestRun } from './index-BndkylIV.cjs';
2
+ export { i as DocPhase, J as JestAdapterOptions, j as JestAggregatedResult, k as JestFileResult, l as JestTestResult, m as OtelAttributeValue, P as PlaywrightAdapterOptions, n as PlaywrightAnnotation, o as PlaywrightAttachment, p as PlaywrightError, q as PlaywrightLocation, r as PlaywrightStatus, s as PlaywrightTestCase, t as PlaywrightTestResult, u as RawStepEvent, v as RawTestCase, w as STORY_META_KEY, x as StepKeyword, y as StepMode, z as StoryFileReport, V as VitestAdapterOptions, A as VitestSerializedError, B as VitestState, E as VitestTestCase, F as VitestTestModule, G as VitestTestResult, H as toCIInfo, I as toRawCIInfo } from './index-BndkylIV.cjs';
3
3
 
4
4
  /**
5
5
  * Canonical types for Layer 2: Anti-Corruption Layer output.
@@ -201,6 +201,8 @@ interface CanonicalizeOptions {
201
201
  }
202
202
  /** Output format for report generation */
203
203
  type OutputFormat = "cucumber-json" | "cucumber-messages" | "cucumber-html" | "html" | "junit" | "markdown";
204
+ /** Sort order for test cases in reports (deterministic for diff-friendly output) */
205
+ type SortTestCasesMode = "id" | "source" | "none";
204
206
  /** Output mode for report routing */
205
207
  type OutputMode = "aggregated" | "colocated";
206
208
  /** Colocated output style */
@@ -243,12 +245,20 @@ interface FormatterOptions {
243
245
  include?: string[];
244
246
  /** Glob patterns to exclude test cases by sourceFile (forward slashes). Applied after include. */
245
247
  exclude?: string[];
248
+ /** Tags to include test cases (any match). If empty, all are considered. */
249
+ includeTags?: string[];
250
+ /** Tags to exclude test cases (any match). Applied after includeTags. */
251
+ excludeTags?: string[];
246
252
  /** Output formats to generate. Default: ["cucumber-json"] */
247
253
  formats?: OutputFormat[];
248
254
  /** Output directory for generated reports. Default: "reports" */
249
255
  outputDir?: string;
250
256
  /** Base filename (without extension). Default: "test-results" */
251
257
  outputName?: string;
258
+ /** Append run timestamp (UTC seconds) to output filename for before/after diffs. Default: false */
259
+ outputNameTimestamp?: boolean;
260
+ /** Sort test cases deterministically so report content order is stable across runs. Default: "none" */
261
+ sortTestCases?: SortTestCasesMode;
252
262
  /** Output routing configuration */
253
263
  output?: OutputConfig;
254
264
  /** Cucumber JSON specific options */
@@ -274,6 +284,10 @@ interface FormatterOptions {
274
284
  mermaidEnabled?: boolean;
275
285
  /** Enable Markdown parsing for section doc entries (via marked.js CDN). Default: true */
276
286
  markdownEnabled?: boolean;
287
+ /** Base URL for source permalinks. E.g., "https://github.com/user/repo/blob/main" */
288
+ permalinkBaseUrl?: string;
289
+ /** Theme name. Default: "default". Available: default, corporate, terminal, minimal, dashboard, playful */
290
+ theme?: string;
277
291
  };
278
292
  /** JUnit XML specific options */
279
293
  junit?: {
@@ -376,9 +390,13 @@ interface MarkdownRenderers {
376
390
  interface ResolvedFormatterOptions {
377
391
  include: string[];
378
392
  exclude: string[];
393
+ includeTags: string[];
394
+ excludeTags: string[];
379
395
  formats: OutputFormat[];
380
396
  outputDir: string;
381
397
  outputName: string;
398
+ outputNameTimestamp: boolean;
399
+ sortTestCases: SortTestCasesMode;
382
400
  output: {
383
401
  mode: OutputMode;
384
402
  colocatedStyle: ColocatedStyle;
@@ -406,6 +424,8 @@ interface ResolvedFormatterOptions {
406
424
  syntaxHighlighting: boolean;
407
425
  mermaidEnabled: boolean;
408
426
  markdownEnabled: boolean;
427
+ permalinkBaseUrl?: string;
428
+ theme: string;
409
429
  };
410
430
  junit: {
411
431
  suiteName: string;
@@ -431,6 +451,67 @@ interface ResolvedFormatterOptions {
431
451
  };
432
452
  }
433
453
 
454
+ type ScenarioChangeKind = "added" | "removed" | "regressed" | "fixed" | "changed" | "unchanged";
455
+ interface ScenarioChangeFlags {
456
+ status: boolean;
457
+ steps: boolean;
458
+ docs: boolean;
459
+ tags: boolean;
460
+ tickets: boolean;
461
+ source: boolean;
462
+ duration: boolean;
463
+ attachments: boolean;
464
+ error: boolean;
465
+ titlePath: boolean;
466
+ }
467
+ interface ScenarioSnapshot {
468
+ id: string;
469
+ scenario: string;
470
+ sourceFile: string;
471
+ sourceLine: number;
472
+ status: TestStatus;
473
+ durationMs: number;
474
+ tags: string[];
475
+ titlePath: string[];
476
+ steps: StoryStep[];
477
+ docs: DocEntry[];
478
+ tickets: string[];
479
+ attachments: Attachment[];
480
+ errorMessage?: string;
481
+ }
482
+ interface ScenarioDiff {
483
+ kind: ScenarioChangeKind;
484
+ id: string;
485
+ scenario: string;
486
+ sourceFile: string;
487
+ sourceLine: number;
488
+ baseline?: ScenarioSnapshot;
489
+ current?: ScenarioSnapshot;
490
+ flags: ScenarioChangeFlags;
491
+ changedFields: string[];
492
+ durationDeltaMs?: number;
493
+ }
494
+ interface RunDiffSummary {
495
+ totalBaseline: number;
496
+ totalCurrent: number;
497
+ added: number;
498
+ removed: number;
499
+ changed: number;
500
+ regressed: number;
501
+ fixed: number;
502
+ unchanged: number;
503
+ }
504
+ interface RunDiffResult {
505
+ baseline: TestRunResult;
506
+ current: TestRunResult;
507
+ summary: RunDiffSummary;
508
+ scenarios: ScenarioDiff[];
509
+ }
510
+ type CompareFormat = "html" | "markdown";
511
+ interface CompareFormatterOptions {
512
+ title?: string;
513
+ }
514
+
434
515
  /**
435
516
  * Cucumber JSON format types.
436
517
  *
@@ -536,6 +617,248 @@ interface IJsonFeature {
536
617
  uri: string;
537
618
  }
538
619
 
620
+ /**
621
+ * Render an OTel trace waterfall (fn(args, deps)).
622
+ */
623
+
624
+ interface RenderTraceViewArgs {
625
+ spans: OtelSpan[] | undefined;
626
+ }
627
+ interface RenderTraceViewDeps {
628
+ escapeHtml: (str: string) => string;
629
+ }
630
+
631
+ /**
632
+ * Render attachments section (fn(args, deps)).
633
+ */
634
+
635
+ interface RenderAttachmentsArgs {
636
+ attachments: Attachment[];
637
+ }
638
+ interface RenderAttachmentsDeps {
639
+ escapeHtml: (str: string) => string;
640
+ embedScreenshots: boolean;
641
+ }
642
+
643
+ /**
644
+ * Render error box (fn(args, deps)).
645
+ */
646
+ interface RenderErrorBoxArgs {
647
+ message: string;
648
+ stack?: string;
649
+ }
650
+ interface RenderErrorBoxDeps {
651
+ escapeHtml: (str: string) => string;
652
+ }
653
+
654
+ interface RenderStepsArgs {
655
+ steps: StoryStep[];
656
+ stepResults: StepResult[];
657
+ }
658
+ interface RenderStepsDeps {
659
+ escapeHtml: (str: string) => string;
660
+ getStatusIcon: (status: TestStatus) => string;
661
+ renderDocs: (docs: DocEntry[] | undefined, containerClass: string) => string;
662
+ highlightStepParams?: (text: string) => string;
663
+ }
664
+
665
+ /**
666
+ * Types for history tracking and test metrics.
667
+ */
668
+
669
+ interface HistoryEntry {
670
+ runId: string;
671
+ timestamp: number;
672
+ status: "passed" | "failed" | "skipped" | "pending";
673
+ durationMs: number;
674
+ ci?: {
675
+ provider?: CIProvider;
676
+ branch?: string;
677
+ commitSha?: string;
678
+ };
679
+ }
680
+ interface TestHistory {
681
+ testId: string;
682
+ testName: string;
683
+ sourceFile: string;
684
+ sourceLine?: number;
685
+ entries: HistoryEntry[];
686
+ }
687
+ interface HistoryStore {
688
+ version: 1;
689
+ maxRuns: number;
690
+ tests: Record<string, TestHistory>;
691
+ lastUpdated: number;
692
+ }
693
+ type StabilityGrade = "A" | "B" | "C" | "D" | "F";
694
+ type FlakinessLevel = "stable" | "unstable" | "flaky";
695
+ type PerformanceTrend = "improving" | "stable" | "regressing";
696
+ interface TestMetrics {
697
+ testId: string;
698
+ flakinessLevel: FlakinessLevel;
699
+ flakinessScore: number;
700
+ failureRate: number;
701
+ stabilityGrade: StabilityGrade;
702
+ performanceTrend: PerformanceTrend;
703
+ avgDurationMs: number;
704
+ passRate: number;
705
+ longestPassStreak: number;
706
+ consecutiveFailures: number;
707
+ sampleSize: number;
708
+ }
709
+
710
+ interface RenderScenarioArgs {
711
+ tc: TestCaseResult;
712
+ metrics?: TestMetrics;
713
+ }
714
+ interface RenderScenarioDeps {
715
+ escapeHtml: (str: string) => string;
716
+ getStatusIcon: (status: TestStatus) => string;
717
+ startCollapsed: boolean;
718
+ renderSteps: (args: RenderStepsArgs, deps: RenderStepsDeps) => string;
719
+ renderDocs: (docs: DocEntry[] | undefined, containerClass: string) => string;
720
+ renderErrorBox: (args: RenderErrorBoxArgs, deps: RenderErrorBoxDeps) => string;
721
+ renderAttachments: (args: RenderAttachmentsArgs, deps: RenderAttachmentsDeps) => string;
722
+ renderTraceView: (args: RenderTraceViewArgs, deps: RenderTraceViewDeps) => string;
723
+ embedScreenshots: boolean;
724
+ permalinkBaseUrl?: string;
725
+ }
726
+
727
+ interface RenderFeatureArgs {
728
+ file: string;
729
+ testCases: TestCaseResult[];
730
+ metricsMap?: Map<string, TestMetrics>;
731
+ }
732
+ interface RenderFeatureDeps {
733
+ escapeHtml: (str: string) => string;
734
+ startCollapsed: boolean;
735
+ renderScenario: (args: RenderScenarioArgs, deps: RenderScenarioDeps) => string;
736
+ scenarioDeps: RenderScenarioDeps;
737
+ }
738
+
739
+ /**
740
+ * Render summary cards section (fn(args, deps)).
741
+ * No deps: pure counts to HTML.
742
+ */
743
+ interface RenderSummaryArgs {
744
+ total: number;
745
+ passed: number;
746
+ failed: number;
747
+ skipped: number;
748
+ }
749
+ interface RenderSummaryDeps {
750
+ }
751
+
752
+ /**
753
+ * Render meta info section (fn(args, deps)).
754
+ */
755
+ interface RenderMetaInfoArgs {
756
+ startedAtMs: number;
757
+ durationMs: number;
758
+ packageVersion?: string;
759
+ gitSha?: string;
760
+ ciName?: string;
761
+ ciBranch?: string;
762
+ ciUrl?: string;
763
+ ciCommitSha?: string;
764
+ ciBuildNumber?: string;
765
+ }
766
+ interface RenderMetaInfoDeps {
767
+ escapeHtml: (str: string) => string;
768
+ }
769
+
770
+ /**
771
+ * Render tag filter bar (fn(args, deps)).
772
+ * Displays a collapsible tag bar with clickable tag pills for filtering scenarios,
773
+ * ARIA attributes for accessibility, and a results counter.
774
+ */
775
+ interface RenderTagBarArgs {
776
+ tags: string[];
777
+ totalScenarios: number;
778
+ }
779
+ interface RenderTagBarDeps {
780
+ escapeHtml: (str: string) => string;
781
+ }
782
+
783
+ /**
784
+ * Render failure summary block with deep links to failed scenarios (fn(args, deps)).
785
+ */
786
+
787
+ interface RenderFailureSummaryArgs {
788
+ failedCases: TestCaseResult[];
789
+ }
790
+ interface RenderFailureSummaryDeps {
791
+ escapeHtml: (str: string) => string;
792
+ }
793
+
794
+ interface BuildBodyArgs {
795
+ run: TestRunResult;
796
+ metricsMap?: Map<string, TestMetrics>;
797
+ }
798
+ interface BuildBodyDeps {
799
+ renderMetaInfo: (args: RenderMetaInfoArgs, deps: RenderMetaInfoDeps) => string;
800
+ renderSummary: (args: RenderSummaryArgs, deps: RenderSummaryDeps) => string;
801
+ renderTagBar: (args: RenderTagBarArgs, deps: RenderTagBarDeps) => string;
802
+ renderFeature: (args: RenderFeatureArgs, deps: RenderFeatureDeps) => string;
803
+ renderFailureSummary: (args: RenderFailureSummaryArgs, deps: RenderFailureSummaryDeps) => string;
804
+ metaDeps: RenderMetaInfoDeps;
805
+ summaryDeps: RenderSummaryDeps;
806
+ tagBarDeps: RenderTagBarDeps;
807
+ featureDeps: RenderFeatureDeps;
808
+ failureSummaryDeps: RenderFailureSummaryDeps;
809
+ }
810
+
811
+ /**
812
+ * HTML Report Template.
813
+ *
814
+ * Generates the JavaScript for interactivity (theme toggle, search, collapse).
815
+ */
816
+ /** Options for HTML template generation */
817
+ interface HtmlTemplateOptions {
818
+ includeSearch?: boolean;
819
+ includeDarkMode?: boolean;
820
+ syntaxHighlighting?: boolean;
821
+ mermaidEnabled?: boolean;
822
+ markdownEnabled?: boolean;
823
+ /** Additional inline JS injected after core JS (used by themes). */
824
+ additionalJs?: string;
825
+ /** Additional ESM import statements for CDN libraries (used by themes). */
826
+ additionalImports?: string[];
827
+ }
828
+
829
+ /**
830
+ * HTML theme type definitions.
831
+ */
832
+
833
+ /** Built-in theme names */
834
+ type HtmlThemeName = "default" | "corporate" | "terminal" | "minimal" | "dashboard" | "playful";
835
+ /** A theme definition */
836
+ interface HtmlTheme {
837
+ /** Theme identifier */
838
+ name: string;
839
+ /** Display label */
840
+ label: string;
841
+ /** Full CSS string (replaces CSS_STYLES). Must define all custom properties for both light and dark modes. */
842
+ css: string;
843
+ /** Optional: override body rendering. Receives the same (args, deps) as buildBody. */
844
+ buildBody?: (args: BuildBodyArgs, deps: BuildBodyDeps) => string;
845
+ /** Optional: override the HTML template wrapper. */
846
+ generateTemplate?: (title: string, styles: string, body: string, options: HtmlTemplateOptions) => string;
847
+ /** Optional: additional inline JS injected after core JS. */
848
+ additionalJs?: string;
849
+ /** Optional: additional ESM import statements for CDN libraries. */
850
+ additionalImports?: string[];
851
+ }
852
+
853
+ /**
854
+ * Theme registry — resolves theme names to theme objects.
855
+ */
856
+
857
+ /** Resolve a theme by name or pass through a custom theme object. */
858
+ declare function resolveTheme(nameOrTheme: string | HtmlTheme): HtmlTheme;
859
+ /** List available built-in theme names. */
860
+ declare function getAvailableThemes(): string[];
861
+
539
862
  /**
540
863
  * Status mapping from raw framework statuses to canonical TestStatus.
541
864
  */
@@ -809,51 +1132,6 @@ declare class CucumberJsonFormatter {
809
1132
  private docEntryToArgument;
810
1133
  }
811
1134
 
812
- /**
813
- * Types for history tracking and test metrics.
814
- */
815
-
816
- interface HistoryEntry {
817
- runId: string;
818
- timestamp: number;
819
- status: "passed" | "failed" | "skipped" | "pending";
820
- durationMs: number;
821
- ci?: {
822
- provider?: CIProvider;
823
- branch?: string;
824
- commitSha?: string;
825
- };
826
- }
827
- interface TestHistory {
828
- testId: string;
829
- testName: string;
830
- sourceFile: string;
831
- sourceLine?: number;
832
- entries: HistoryEntry[];
833
- }
834
- interface HistoryStore {
835
- version: 1;
836
- maxRuns: number;
837
- tests: Record<string, TestHistory>;
838
- lastUpdated: number;
839
- }
840
- type StabilityGrade = "A" | "B" | "C" | "D" | "F";
841
- type FlakinessLevel = "stable" | "unstable" | "flaky";
842
- type PerformanceTrend = "improving" | "stable" | "regressing";
843
- interface TestMetrics {
844
- testId: string;
845
- flakinessLevel: FlakinessLevel;
846
- flakinessScore: number;
847
- failureRate: number;
848
- stabilityGrade: StabilityGrade;
849
- performanceTrend: PerformanceTrend;
850
- avgDurationMs: number;
851
- passRate: number;
852
- longestPassStreak: number;
853
- consecutiveFailures: number;
854
- sampleSize: number;
855
- }
856
-
857
1135
  /**
858
1136
  * HTML Formatter - Layer 3.
859
1137
  *
@@ -879,6 +1157,10 @@ interface HtmlOptions {
879
1157
  mermaidEnabled?: boolean;
880
1158
  /** Enable Markdown parsing for section doc entries (via marked.js CDN). Default: true */
881
1159
  markdownEnabled?: boolean;
1160
+ /** Base URL for source permalinks. E.g., "https://github.com/user/repo/blob/main" */
1161
+ permalinkBaseUrl?: string;
1162
+ /** Theme name or custom theme object. Default: "default" */
1163
+ theme?: string | HtmlTheme;
882
1164
  }
883
1165
  /**
884
1166
  * HTML Formatter.
@@ -1386,6 +1668,30 @@ declare class CucumberHtmlFormatter {
1386
1668
  formatToString(run: TestRunResult): Promise<string>;
1387
1669
  }
1388
1670
 
1671
+ interface RunDiffHtmlOptions {
1672
+ title?: string;
1673
+ /** Theme name or custom theme object. Default: "default" */
1674
+ theme?: string | HtmlTheme;
1675
+ /** Enable dark mode toggle. Default: true */
1676
+ darkMode?: boolean;
1677
+ }
1678
+ declare class RunDiffHtmlFormatter {
1679
+ private title;
1680
+ private theme;
1681
+ private darkMode;
1682
+ constructor(options?: RunDiffHtmlOptions);
1683
+ format(diff: RunDiffResult): string;
1684
+ }
1685
+
1686
+ interface RunDiffMarkdownOptions {
1687
+ title?: string;
1688
+ }
1689
+ declare class RunDiffMarkdownFormatter {
1690
+ private title;
1691
+ constructor(options?: RunDiffMarkdownOptions);
1692
+ format(diff: RunDiffResult): string;
1693
+ }
1694
+
1389
1695
  /**
1390
1696
  * NDJSON-to-TestRunResult parser.
1391
1697
  *
@@ -1800,6 +2106,22 @@ declare const MIN_FLAKINESS_SAMPLES = 3;
1800
2106
  /** Check whether an array meets the minimum sample threshold. */
1801
2107
  declare function hasSufficientHistory(entries: unknown[], min: number): boolean;
1802
2108
 
2109
+ /**
2110
+ * List scenarios from a test run (fn(args, deps) pattern).
2111
+ * Produces text table or JSON output.
2112
+ */
2113
+
2114
+ interface ListScenariosArgs {
2115
+ testCases: TestCaseResult[];
2116
+ format: "text" | "json";
2117
+ }
2118
+ type ListScenariosDeps = Record<string, never>;
2119
+ declare function listScenarios(args: ListScenariosArgs, _deps: ListScenariosDeps): string;
2120
+
2121
+ declare function createPrCommentSummary(diff: RunDiffResult, maxScenarios?: number): string;
2122
+
2123
+ declare function diffRuns(baseline: TestRunResult, current: TestRunResult): RunDiffResult;
2124
+
1803
2125
  /**
1804
2126
  * @executable-stories/formatters
1805
2127
  *
@@ -1828,6 +2150,10 @@ interface GenerateDeps {
1828
2150
  }
1829
2151
  /** Result of generate function: Map of format to array of file paths */
1830
2152
  type GenerateResult = Map<OutputFormat, string[]>;
2153
+ interface GenerateCompareResult {
2154
+ files: string[];
2155
+ diff: RunDiffResult;
2156
+ }
1831
2157
  /**
1832
2158
  * High-level report generator that combines multiple formatters.
1833
2159
  *
@@ -1869,6 +2195,14 @@ declare class ReportGenerator {
1869
2195
  * Useful for testing and custom configurations.
1870
2196
  */
1871
2197
  declare function createReportGenerator(options?: FormatterOptions, deps?: Partial<GenerateDeps>): ReportGenerator;
2198
+ declare function generateRunComparison(args: {
2199
+ baseline: TestRunResult;
2200
+ current: TestRunResult;
2201
+ formats: Array<"html" | "markdown">;
2202
+ outputDir?: string;
2203
+ outputName?: string;
2204
+ title?: string;
2205
+ }): Promise<GenerateCompareResult>;
1872
2206
 
1873
2207
  /**
1874
2208
  * Normalize Jest results to canonical TestRunResult.
@@ -1889,4 +2223,4 @@ declare function normalizeVitestResults(testModules: Parameters<typeof adaptVite
1889
2223
  */
1890
2224
  declare function normalizePlaywrightResults(testResults: Parameters<typeof adaptPlaywrightRun>[0], adapterOptions?: Parameters<typeof adaptPlaywrightRun>[1], canonicalizeOptions?: CanonicalizeOptions): TestRunResult;
1891
2225
 
1892
- export { type Attachment, type CIInfo, CIProvider, type CanonicalizeOptions, type ColocatedStyle, type CoverageSummary, CucumberHtmlFormatter, type CucumberHtmlOptions, CucumberJsonFormatter, type CucumberJsonOptions, CucumberMessagesFormatter, type CucumberMessagesOptions, DocEntry, type FlakinessLevel, type FormatterOptions, type GenerateArgs, type GenerateDeps, type GenerateResult, type GenericWebhookNotifierOptions, type HistoryEntry, type HistoryStore, HtmlFormatter, type HtmlOptions, type IJsonDataTable, type IJsonDocString, type IJsonEmbedding, type IJsonFeature, type IJsonScenario, type IJsonStep, type IJsonStepArgument, type IJsonStepResult, type IJsonTableRow, type IJsonTag, JUnitFormatter, type JUnitOptions, type Logger, MIN_FLAKINESS_SAMPLES, MIN_METRIC_SAMPLES, MIN_PERF_SAMPLES, MarkdownFormatter, type MarkdownFormatterOptions, type MarkdownOptions, type MarkdownRenderers, type NotificationSummary, type NotifyCondition, type OtelTraceContext, type OutputConfig, type OutputFormat, type OutputMode, type OutputRule, type PerformanceTrend, RawAttachment, RawCIInfo, RawRun, RawStatus, ReportGenerator, type ResolvedFormatterOptions, type StabilityGrade, type StepResult, StoryMeta, StoryStep, type TestCaseAttempt, type TestCaseResult, type TestHistory, type TestMetrics, type TestRunResult, type TestStatus, CIInfo$1 as TypedCIInfo, type ValidationResult, type WebhookPayload, type WebhookSignerHmac, type WriteFile, adaptJestRun, adaptPlaywrightRun, adaptVitestRun, assertValidRun, calculateFlakiness, calculateStability, canonicalizeRun, clearVersionCache, computeTestMetrics, createReportGenerator, deriveStepResults, detectCI, detectPerformanceTrend, findGitDir, formatDuration, generateRunId, generateTestCaseId, hasSufficientHistory, loadHistory, mergeStepResults, msToNanoseconds, nanosecondsToMs, normalizeJestResults, normalizePlaywrightResults, normalizeStatus, normalizeVitestResults, parseEnvelopes, parseNdjson, readBranchName, readGitSha, readPackageVersion, resolveAttachment, resolveAttachments, resolveTraceUrl, saveHistory, sendNotifications, sendSlackNotification, sendTeamsNotification, sendWebhookNotification, signBody, slugify, stripAnsi, tryGetActiveOtelContext, updateHistory, validateCanonicalRun };
2226
+ export { type Attachment, type CIInfo, CIProvider, type CanonicalizeOptions, type ColocatedStyle, type CompareFormat, type CompareFormatterOptions, type CoverageSummary, CucumberHtmlFormatter, type CucumberHtmlOptions, CucumberJsonFormatter, type CucumberJsonOptions, CucumberMessagesFormatter, type CucumberMessagesOptions, DocEntry, type FlakinessLevel, type FormatterOptions, type GenerateArgs, type GenerateCompareResult, type GenerateDeps, type GenerateResult, type GenericWebhookNotifierOptions, type HistoryEntry, type HistoryStore, HtmlFormatter, type HtmlOptions, type HtmlTheme, type HtmlThemeName, type IJsonDataTable, type IJsonDocString, type IJsonEmbedding, type IJsonFeature, type IJsonScenario, type IJsonStep, type IJsonStepArgument, type IJsonStepResult, type IJsonTableRow, type IJsonTag, JUnitFormatter, type JUnitOptions, type ListScenariosArgs, type ListScenariosDeps, type Logger, MIN_FLAKINESS_SAMPLES, MIN_METRIC_SAMPLES, MIN_PERF_SAMPLES, MarkdownFormatter, type MarkdownFormatterOptions, type MarkdownOptions, type MarkdownRenderers, type NotificationSummary, type NotifyCondition, OtelSpan, type OtelTraceContext, type OutputConfig, type OutputFormat, type OutputMode, type OutputRule, type PerformanceTrend, RawAttachment, RawCIInfo, RawRun, RawStatus, ReportGenerator, type ResolvedFormatterOptions, RunDiffHtmlFormatter, type RunDiffHtmlOptions, RunDiffMarkdownFormatter, type RunDiffMarkdownOptions, type RunDiffResult, type RunDiffSummary, type ScenarioChangeFlags, type ScenarioChangeKind, type ScenarioDiff, type ScenarioSnapshot, type SortTestCasesMode, type StabilityGrade, type StepResult, StoryMeta, StoryStep, type TestCaseAttempt, type TestCaseResult, type TestHistory, type TestMetrics, type TestRunResult, type TestStatus, CIInfo$1 as TypedCIInfo, type ValidationResult, type WebhookPayload, type WebhookSignerHmac, type WriteFile, adaptJestRun, adaptPlaywrightRun, adaptVitestRun, assertValidRun, calculateFlakiness, calculateStability, canonicalizeRun, clearVersionCache, computeTestMetrics, createPrCommentSummary, createReportGenerator, deriveStepResults, detectCI, detectPerformanceTrend, diffRuns, findGitDir, formatDuration, generateRunComparison, generateRunId, generateTestCaseId, getAvailableThemes, hasSufficientHistory, listScenarios, loadHistory, mergeStepResults, msToNanoseconds, nanosecondsToMs, normalizeJestResults, normalizePlaywrightResults, normalizeStatus, normalizeVitestResults, parseEnvelopes, parseNdjson, readBranchName, readGitSha, readPackageVersion, resolveAttachment, resolveAttachments, resolveTheme, resolveTraceUrl, saveHistory, sendNotifications, sendSlackNotification, sendTeamsNotification, sendWebhookNotification, signBody, slugify, stripAnsi, tryGetActiveOtelContext, updateHistory, validateCanonicalRun };