executable-stories-formatters 0.7.14 → 0.7.15

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,8 +1,8 @@
1
- import { S as StoryMeta, R as RawStatus, C as CIInfo$1, a as StoryStep, D as DocEntry, N as NormalizedTicket, O as OtelSpan, b as CIProvider, c as RawAttachment, d as RawRun, e as RawCIInfo, f as adaptJestRun, g as adaptPlaywrightRun, h as adaptVitestRun } from './index-fqrm5-Xr.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-fqrm5-Xr.cjs';
1
+ import { S as StoryMeta, R as RawStatus, C as CIInfo$1, a as StoryStep, D as DocEntry, N as NormalizedTicket, b as DocPhase, O as OtelSpan, c as CIProvider, d as RawAttachment, e as RawRun, f as RawCIInfo, g as adaptJestRun, h as adaptPlaywrightRun, i as adaptVitestRun } from './index-BiAYcEiz.cjs';
2
+ export { 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-BiAYcEiz.cjs';
3
3
 
4
4
  /** Canonical test status (Cucumber-compatible) */
5
- type TestStatus = "passed" | "failed" | "skipped" | "pending";
5
+ type TestStatus$1 = "passed" | "failed" | "skipped" | "pending";
6
6
  /** Step result with status and timing */
7
7
  interface StepResult {
8
8
  /** Step index (0-based) */
@@ -10,7 +10,7 @@ interface StepResult {
10
10
  /** Stable step ID when available */
11
11
  stepId?: string;
12
12
  /** Step status */
13
- status: TestStatus;
13
+ status: TestStatus$1;
14
14
  /** Duration in milliseconds (default 0) */
15
15
  durationMs: number;
16
16
  /** Error message if step failed */
@@ -32,7 +32,7 @@ interface TestCaseAttempt {
32
32
  /** Attempt number (0-based) */
33
33
  attempt: number;
34
34
  /** Status of this attempt */
35
- status: TestStatus;
35
+ status: TestStatus$1;
36
36
  /** Duration of this attempt in milliseconds */
37
37
  durationMs: number;
38
38
  /** Error message if this attempt failed */
@@ -51,7 +51,7 @@ interface TestCaseResult {
51
51
  /** Source line number (required, default 1) */
52
52
  sourceLine: number;
53
53
  /** Test status (required) */
54
- status: TestStatus;
54
+ status: TestStatus$1;
55
55
  /** Original adapter/framework status (preserved for diagnostics). */
56
56
  rawStatus?: RawStatus;
57
57
  /** Duration in milliseconds (required, default 0) */
@@ -270,7 +270,7 @@ interface CanonicalizeOptions {
270
270
  };
271
271
  }
272
272
  /** Output format for report generation */
273
- type OutputFormat = "astro" | "confluence" | "cucumber-json" | "cucumber-messages" | "cucumber-html" | "html" | "junit" | "markdown";
273
+ type OutputFormat = "astro" | "confluence" | "cucumber-json" | "cucumber-messages" | "cucumber-html" | "html" | "junit" | "markdown" | "story-report-json";
274
274
  /** Sort order for test cases in reports (deterministic for diff-friendly output) */
275
275
  type SortTestCasesMode = "id" | "source" | "none";
276
276
  /** Output mode for report routing */
@@ -336,6 +336,11 @@ interface FormatterOptions {
336
336
  /** Pretty-print JSON output. Default: false */
337
337
  pretty?: boolean;
338
338
  };
339
+ /** StoryReport JSON specific options */
340
+ storyReportJson?: {
341
+ /** Pretty-print JSON output. Default: true */
342
+ pretty?: boolean;
343
+ };
339
344
  /** HTML specific options */
340
345
  html?: {
341
346
  /** Report title. Default: "Test Results" */
@@ -499,6 +504,9 @@ interface ResolvedFormatterOptions {
499
504
  cucumberJson: {
500
505
  pretty: boolean;
501
506
  };
507
+ storyReportJson: {
508
+ pretty: boolean;
509
+ };
502
510
  cucumberMessages: {
503
511
  uriStrategy: "sourceFile" | "virtual";
504
512
  includeSynthetics: boolean;
@@ -598,7 +606,7 @@ interface ScenarioSnapshot {
598
606
  scenario: string;
599
607
  sourceFile: string;
600
608
  sourceLine: number;
601
- status: TestStatus;
609
+ status: TestStatus$1;
602
610
  durationMs: number;
603
611
  tags: string[];
604
612
  titlePath: string[];
@@ -755,6 +763,175 @@ interface ExecutableStoriesConfig {
755
763
  formatters?: Record<string, Formatter>;
756
764
  }
757
765
 
766
+ /**
767
+ * StoryReport — public, frozen contract for UI renderers.
768
+ *
769
+ * Distinct from internal TestRunResult. Pre-grouped feature → scenario tree,
770
+ * with pre-computed summaries at every level. Adapter concerns (rawStatus,
771
+ * projectName, titlePath) are stripped at the toStoryReport boundary.
772
+ *
773
+ * Versioning: semver-style "<major>.<minor>". Additive-only within a major.
774
+ * Source of truth: schemas/story-report-v1.json. Types here must stay in sync.
775
+ */
776
+
777
+ type StoryReportSchemaVersion = `1.${number}`;
778
+ type TestStatus = "passed" | "failed" | "skipped" | "pending";
779
+ type StepKeyword = "Given" | "When" | "Then" | "And" | "But";
780
+ type StepMode = "normal" | "skip" | "only" | "todo" | "fails" | "concurrent";
781
+ interface ReportSummary {
782
+ total: number;
783
+ passed: number;
784
+ failed: number;
785
+ skipped: number;
786
+ pending: number;
787
+ durationMs: number;
788
+ }
789
+ interface ReportTicket {
790
+ id: string;
791
+ url?: string;
792
+ }
793
+ interface ReportAttachment {
794
+ name: string;
795
+ mediaType: string;
796
+ body: string;
797
+ contentEncoding: "BASE64" | "IDENTITY";
798
+ }
799
+ interface ReportCIInfo {
800
+ name: string;
801
+ url?: string;
802
+ buildNumber?: string;
803
+ branch?: string;
804
+ commitSha?: string;
805
+ prNumber?: string;
806
+ }
807
+ interface ReportCoverageSummary {
808
+ linesPct?: number;
809
+ branchesPct?: number;
810
+ functionsPct?: number;
811
+ statementsPct?: number;
812
+ }
813
+ type ReportDocEntry = ReportDocNote | ReportDocTag | ReportDocKv | ReportDocCode | ReportDocTable | ReportDocLink | ReportDocSection | ReportDocMermaid | ReportDocScreenshot | ReportDocCustom;
814
+ interface ReportDocNote {
815
+ kind: "note";
816
+ text: string;
817
+ phase: DocPhase;
818
+ children?: ReportDocEntry[];
819
+ }
820
+ interface ReportDocTag {
821
+ kind: "tag";
822
+ names: string[];
823
+ phase: DocPhase;
824
+ children?: ReportDocEntry[];
825
+ }
826
+ interface ReportDocKv {
827
+ kind: "kv";
828
+ label: string;
829
+ value: unknown;
830
+ phase: DocPhase;
831
+ children?: ReportDocEntry[];
832
+ }
833
+ interface ReportDocCode {
834
+ kind: "code";
835
+ label: string;
836
+ content: string;
837
+ lang?: string;
838
+ phase: DocPhase;
839
+ children?: ReportDocEntry[];
840
+ }
841
+ interface ReportDocTable {
842
+ kind: "table";
843
+ label: string;
844
+ columns: string[];
845
+ rows: string[][];
846
+ phase: DocPhase;
847
+ children?: ReportDocEntry[];
848
+ }
849
+ interface ReportDocLink {
850
+ kind: "link";
851
+ label: string;
852
+ url: string;
853
+ phase: DocPhase;
854
+ children?: ReportDocEntry[];
855
+ }
856
+ interface ReportDocSection {
857
+ kind: "section";
858
+ title: string;
859
+ markdown: string;
860
+ phase: DocPhase;
861
+ children?: ReportDocEntry[];
862
+ }
863
+ interface ReportDocMermaid {
864
+ kind: "mermaid";
865
+ code: string;
866
+ title?: string;
867
+ phase: DocPhase;
868
+ children?: ReportDocEntry[];
869
+ }
870
+ interface ReportDocScreenshot {
871
+ kind: "screenshot";
872
+ path: string;
873
+ alt?: string;
874
+ phase: DocPhase;
875
+ children?: ReportDocEntry[];
876
+ }
877
+ interface ReportDocCustom {
878
+ kind: "custom";
879
+ type: string;
880
+ data: unknown;
881
+ phase: DocPhase;
882
+ children?: ReportDocEntry[];
883
+ }
884
+ interface ReportStep {
885
+ id: string;
886
+ index: number;
887
+ keyword: StepKeyword;
888
+ text: string;
889
+ status: TestStatus;
890
+ durationMs: number;
891
+ errorMessage?: string;
892
+ mode?: StepMode;
893
+ docEntries: ReportDocEntry[];
894
+ }
895
+ interface ReportScenario {
896
+ id: string;
897
+ title: string;
898
+ status: TestStatus;
899
+ durationMs: number;
900
+ tags: string[];
901
+ tickets?: ReportTicket[];
902
+ sourceLine?: number;
903
+ errorMessage?: string;
904
+ errorStack?: string;
905
+ retry: number;
906
+ retries: number;
907
+ docEntries: ReportDocEntry[];
908
+ steps: ReportStep[];
909
+ attachments: ReportAttachment[];
910
+ }
911
+ interface ReportFeature {
912
+ id: string;
913
+ title: string;
914
+ sourceFile: string;
915
+ summary: ReportSummary;
916
+ scenarios: ReportScenario[];
917
+ }
918
+ interface StoryReport {
919
+ schemaVersion: StoryReportSchemaVersion;
920
+ runId: string;
921
+ startedAtMs: number;
922
+ finishedAtMs: number;
923
+ durationMs: number;
924
+ projectRoot: string;
925
+ packageVersion?: string;
926
+ gitSha?: string;
927
+ ci?: ReportCIInfo;
928
+ coverage?: ReportCoverageSummary;
929
+ summary: ReportSummary;
930
+ features: ReportFeature[];
931
+ }
932
+ declare const STORY_REPORT_SCHEMA_VERSION: StoryReportSchemaVersion;
933
+ declare const STORY_REPORT_SCHEMA_MAJOR: 1;
934
+
758
935
  /**
759
936
  * Render an OTel trace waterfall (fn(args, deps)).
760
937
  */
@@ -795,7 +972,7 @@ interface RenderStepsArgs {
795
972
  }
796
973
  interface RenderStepsDeps {
797
974
  escapeHtml: (str: string) => string;
798
- getStatusIcon: (status: TestStatus) => string;
975
+ getStatusIcon: (status: TestStatus$1) => string;
799
976
  renderDocs: (docs: DocEntry[] | undefined, containerClass: string) => string;
800
977
  highlightStepParams?: (text: string) => string;
801
978
  }
@@ -851,7 +1028,7 @@ interface RenderScenarioArgs {
851
1028
  }
852
1029
  interface RenderScenarioDeps {
853
1030
  escapeHtml: (str: string) => string;
854
- getStatusIcon: (status: TestStatus) => string;
1031
+ getStatusIcon: (status: TestStatus$1) => string;
855
1032
  startCollapsed: boolean;
856
1033
  renderSteps: (args: RenderStepsArgs, deps: RenderStepsDeps) => string;
857
1034
  renderDocs: (docs: DocEntry[] | undefined, containerClass: string) => string;
@@ -1012,6 +1189,56 @@ declare function getAvailableThemes(): string[];
1012
1189
  /** Get all themes that only use CSS (no custom body/template overrides). */
1013
1190
  declare function getCssOnlyThemes(): HtmlTheme[];
1014
1191
 
1192
+ /**
1193
+ * Canonical executable-stories theme tokens (--es-*).
1194
+ *
1195
+ * Source of truth for the `--es-color-*`, `--es-space-*`, `--es-font-*`,
1196
+ * `--es-size-*`, `--es-radius`, `--es-line`, and `--es-measure` CSS custom
1197
+ * properties consumed by:
1198
+ *
1199
+ * - executable-stories-react (styles.css)
1200
+ * - executable-stories-formatters HTML report (CSS_STYLES, via this module)
1201
+ *
1202
+ * Consumer-side overrides on `:root` or any ancestor of the report cascade
1203
+ * through both: setting `--es-color-failed: red` on body re-colors failures
1204
+ * in both the standalone HTML report and the React component.
1205
+ *
1206
+ * The HTML formatter's pre-existing tokens (--success, --error, etc.)
1207
+ * remain in place for backward compatibility; the --es-* tokens are emitted
1208
+ * alongside them as the public override surface.
1209
+ */
1210
+ declare const ES_THEME_TOKENS_CSS: string;
1211
+ /**
1212
+ * JS-level mirror of the token values (for cases where TypeScript code needs
1213
+ * to read them — e.g., dynamic style injection or theme generators).
1214
+ */
1215
+ declare const ES_THEME_TOKEN_VALUES: {
1216
+ readonly light: {
1217
+ readonly "--es-color-bg": "#ffffff";
1218
+ readonly "--es-color-fg": "#111827";
1219
+ readonly "--es-color-muted": "#6b7280";
1220
+ readonly "--es-color-border": "#e5e7eb";
1221
+ readonly "--es-color-surface": "#f9fafb";
1222
+ readonly "--es-color-link": "#2563eb";
1223
+ readonly "--es-color-passed": "#16a34a";
1224
+ readonly "--es-color-failed": "#dc2626";
1225
+ readonly "--es-color-skipped": "#9ca3af";
1226
+ readonly "--es-color-pending": "#d97706";
1227
+ };
1228
+ readonly dark: {
1229
+ readonly "--es-color-bg": "#0b0f17";
1230
+ readonly "--es-color-fg": "#e5e7eb";
1231
+ readonly "--es-color-muted": "#9ca3af";
1232
+ readonly "--es-color-border": "#1f2937";
1233
+ readonly "--es-color-surface": "#111827";
1234
+ readonly "--es-color-link": "#60a5fa";
1235
+ readonly "--es-color-passed": "#4ade80";
1236
+ readonly "--es-color-failed": "#f87171";
1237
+ readonly "--es-color-skipped": "#6b7280";
1238
+ readonly "--es-color-pending": "#fbbf24";
1239
+ };
1240
+ };
1241
+
1015
1242
  /**
1016
1243
  * Status mapping from raw framework statuses to canonical TestStatus.
1017
1244
  */
@@ -1022,7 +1249,7 @@ declare function getCssOnlyThemes(): HtmlTheme[];
1022
1249
  * @param raw - The raw status from a framework
1023
1250
  * @returns The canonical TestStatus
1024
1251
  */
1025
- declare function normalizeStatus(raw: RawStatus): TestStatus;
1252
+ declare function normalizeStatus(raw: RawStatus): TestStatus$1;
1026
1253
 
1027
1254
  /**
1028
1255
  * ID generation and slug helpers for deterministic, Cucumber-compatible IDs.
@@ -1075,7 +1302,7 @@ declare function slugify(text: string): string;
1075
1302
  * @param error - Optional error information to help identify failing step
1076
1303
  * @returns Array of step results
1077
1304
  */
1078
- declare function deriveStepResults(steps: StoryStep[], scenarioStatus: TestStatus, error?: {
1305
+ declare function deriveStepResults(steps: StoryStep[], scenarioStatus: TestStatus$1, error?: {
1079
1306
  message?: string;
1080
1307
  stack?: string;
1081
1308
  }): StepResult[];
@@ -1286,6 +1513,40 @@ declare class CucumberJsonFormatter {
1286
1513
  private docEntryToArgument;
1287
1514
  }
1288
1515
 
1516
+ /**
1517
+ * StoryReportJsonFormatter — emit the public StoryReport contract as JSON.
1518
+ *
1519
+ * Wraps toStoryReport with a Formatter-compatible class interface and a
1520
+ * pretty-print option.
1521
+ */
1522
+
1523
+ interface StoryReportJsonOptions {
1524
+ /** Pretty-print JSON output with 2-space indent. Default: true. */
1525
+ pretty?: boolean;
1526
+ }
1527
+ declare class StoryReportJsonFormatter {
1528
+ private options;
1529
+ constructor(options?: StoryReportJsonOptions);
1530
+ toReport(run: TestRunResult): StoryReport;
1531
+ format(run: TestRunResult): string;
1532
+ }
1533
+
1534
+ /**
1535
+ * toStoryReport — convert a canonical TestRunResult into the public
1536
+ * StoryReport shape consumed by UI renderers.
1537
+ *
1538
+ * - Groups by sourceFile (relative to projectRoot when possible).
1539
+ * - Derives feature title from titlePath[0] when available, otherwise file basename.
1540
+ * - Strips adapter-only fields (rawStatus, projectName, raw titlePath).
1541
+ * - Pre-computes summary counts at every level.
1542
+ * - Generates stable IDs suitable for deep linking.
1543
+ */
1544
+
1545
+ /**
1546
+ * Convert a canonical TestRunResult into a frozen-shape StoryReport for UI renderers.
1547
+ */
1548
+ declare function toStoryReport(run: TestRunResult): StoryReport;
1549
+
1289
1550
  /**
1290
1551
  * HTML Formatter - Layer 3.
1291
1552
  *
@@ -2559,4 +2820,4 @@ declare function normalizeVitestResults(testModules: Parameters<typeof adaptVite
2559
2820
  */
2560
2821
  declare function normalizePlaywrightResults(testResults: Parameters<typeof adaptPlaywrightRun>[0], adapterOptions?: Parameters<typeof adaptPlaywrightRun>[1], canonicalizeOptions?: CanonicalizeOptions): TestRunResult;
2561
2822
 
2562
- export { type AstroAssetResult, AstroFormatter, type AstroFormatterOptions as AstroFormatterOpts, type Attachment, type BundleOptions, type BundleResult, type CIInfo, CIProvider, type CanonicalizeOptions, type ColocatedStyle, type CompareFormat, type CompareFormatterOptions, type ConfluenceAuth, ConfluenceFormatter, type ConfluenceFormatterOptions as ConfluenceFormatterOpts, type CopyMarkdownAssetsOptions, type CoverageSummary, CucumberHtmlFormatter, type CucumberHtmlOptions, CucumberJsonFormatter, type CucumberJsonOptions, CucumberMessagesFormatter, type CucumberMessagesOptions, DocEntry, type ExecutableStoriesConfig, type FetchFn, type FlakinessLevel, type Formatter, 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 JiraAuth, type JiraPublishMode, type ListScenariosArgs, type ListScenariosDeps, type Logger, MIN_FLAKINESS_SAMPLES, MIN_METRIC_SAMPLES, MIN_PERF_SAMPLES, MarkdownFormatter, type MarkdownFormatterOptions, type MarkdownOptions, type MarkdownRenderers, NormalizedTicket, type NotificationSummary, type NotifyCondition, OtelSpan, type OtelTraceContext, type OutputConfig, type OutputFormat, type OutputMode, type OutputRule, type PerformanceTrend, type PublishConfluenceArgs, type PublishConfluenceDeps, type PublishConfluenceResult, type PublishJiraArgs, type PublishJiraDeps, type PublishJiraResult, 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 StarlightBadge, 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, bundleAssets, calculateFlakiness, calculateStability, canonicalizeRun, clearVersionCache, computeTestMetrics, copyMarkdownAssets, createPrCommentSummary, createReportGenerator, deriveStepResults, detectCI, detectPerformanceTrend, diffRuns, findGitDir, formatDuration, generateRunComparison, generateRunId, generateTestCaseId, getAvailableThemes, getCssOnlyThemes, hasSufficientHistory, listScenarios, loadHistory, mergeStepResults, msToNanoseconds, nanosecondsToMs, normalizeJestResults, normalizePlaywrightResults, normalizeStatus, normalizeVitestResults, parseEnvelopes, parseNdjson, publishConfluencePage, publishJiraIssue, readBranchName, readGitSha, readPackageVersion, resolveAttachment, resolveAttachments, resolveTheme, resolveTraceUrl, rewriteAssetPaths, saveHistory, sendNotifications, sendSlackNotification, sendTeamsNotification, sendWebhookNotification, signBody, slugify, stripAnsi, tryGetActiveOtelContext, updateHistory, validateCanonicalRun };
2823
+ export { type AstroAssetResult, AstroFormatter, type AstroFormatterOptions as AstroFormatterOpts, type Attachment, type BundleOptions, type BundleResult, type CIInfo, CIProvider, type CanonicalizeOptions, type ColocatedStyle, type CompareFormat, type CompareFormatterOptions, type ConfluenceAuth, ConfluenceFormatter, type ConfluenceFormatterOptions as ConfluenceFormatterOpts, type CopyMarkdownAssetsOptions, type CoverageSummary, CucumberHtmlFormatter, type CucumberHtmlOptions, CucumberJsonFormatter, type CucumberJsonOptions, CucumberMessagesFormatter, type CucumberMessagesOptions, DocEntry, DocPhase, ES_THEME_TOKENS_CSS, ES_THEME_TOKEN_VALUES, type ExecutableStoriesConfig, type FetchFn, type FlakinessLevel, type Formatter, 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 JiraAuth, type JiraPublishMode, type ListScenariosArgs, type ListScenariosDeps, type Logger, MIN_FLAKINESS_SAMPLES, MIN_METRIC_SAMPLES, MIN_PERF_SAMPLES, MarkdownFormatter, type MarkdownFormatterOptions, type MarkdownOptions, type MarkdownRenderers, NormalizedTicket, type NotificationSummary, type NotifyCondition, OtelSpan, type OtelTraceContext, type OutputConfig, type OutputFormat, type OutputMode, type OutputRule, type PerformanceTrend, type PublishConfluenceArgs, type PublishConfluenceDeps, type PublishConfluenceResult, type PublishJiraArgs, type PublishJiraDeps, type PublishJiraResult, RawAttachment, RawCIInfo, RawRun, RawStatus, type ReportAttachment, type ReportCIInfo, type ReportCoverageSummary, type ReportDocCode, type ReportDocCustom, type ReportDocEntry, type ReportDocKv, type ReportDocLink, type ReportDocMermaid, type ReportDocNote, type ReportDocScreenshot, type ReportDocSection, type ReportDocTable, type ReportDocTag, type ReportFeature, ReportGenerator, type ReportScenario, type ReportStep, type ReportSummary, type ReportTicket, type ResolvedFormatterOptions, RunDiffHtmlFormatter, type RunDiffHtmlOptions, RunDiffMarkdownFormatter, type RunDiffMarkdownOptions, type RunDiffResult, type RunDiffSummary, STORY_REPORT_SCHEMA_MAJOR, STORY_REPORT_SCHEMA_VERSION, type ScenarioChangeFlags, type ScenarioChangeKind, type ScenarioDiff, type ScenarioSnapshot, type SortTestCasesMode, type StabilityGrade, type StarlightBadge, type StepResult, StoryMeta, type StoryReport, StoryReportJsonFormatter, type StoryReportJsonOptions, type StoryReportSchemaVersion, StoryStep, type TestCaseAttempt, type TestCaseResult, type TestHistory, type TestMetrics, type TestRunResult, type TestStatus$1 as TestStatus, CIInfo$1 as TypedCIInfo, type ValidationResult, type WebhookPayload, type WebhookSignerHmac, type WriteFile, adaptJestRun, adaptPlaywrightRun, adaptVitestRun, assertValidRun, bundleAssets, calculateFlakiness, calculateStability, canonicalizeRun, clearVersionCache, computeTestMetrics, copyMarkdownAssets, createPrCommentSummary, createReportGenerator, deriveStepResults, detectCI, detectPerformanceTrend, diffRuns, findGitDir, formatDuration, generateRunComparison, generateRunId, generateTestCaseId, getAvailableThemes, getCssOnlyThemes, hasSufficientHistory, listScenarios, loadHistory, mergeStepResults, msToNanoseconds, nanosecondsToMs, normalizeJestResults, normalizePlaywrightResults, normalizeStatus, normalizeVitestResults, parseEnvelopes, parseNdjson, publishConfluencePage, publishJiraIssue, readBranchName, readGitSha, readPackageVersion, resolveAttachment, resolveAttachments, resolveTheme, resolveTraceUrl, rewriteAssetPaths, saveHistory, sendNotifications, sendSlackNotification, sendTeamsNotification, sendWebhookNotification, signBody, slugify, stripAnsi, toStoryReport, tryGetActiveOtelContext, updateHistory, validateCanonicalRun };