executable-stories-react 0.11.0 → 0.13.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.cjs +414 -464
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +14 -2
- package/dist/index.d.ts +14 -2
- package/dist/index.js +313 -361
- package/dist/index.js.map +1 -1
- package/dist/interactive.cjs +1779 -1340
- package/dist/interactive.cjs.map +1 -1
- package/dist/interactive.d.cts +32 -32
- package/dist/interactive.d.ts +32 -32
- package/dist/interactive.js +1694 -1246
- package/dist/interactive.js.map +1 -1
- package/dist/parse.cjs +34 -147
- package/dist/parse.cjs.map +1 -1
- package/dist/parse.js +34 -147
- package/dist/parse.js.map +1 -1
- package/dist/report-island.global.js +64 -54
- package/dist/ssr.cjs +331 -260
- package/dist/ssr.cjs.map +1 -1
- package/dist/ssr.js +250 -176
- package/dist/ssr.js.map +1 -1
- package/dist/tailwind.css +2 -2
- package/package.json +24 -23
package/dist/parse.cjs
CHANGED
|
@@ -186,11 +186,7 @@ var story_report_v1_default = {
|
|
|
186
186
|
},
|
|
187
187
|
kind: {
|
|
188
188
|
type: "string",
|
|
189
|
-
enum: [
|
|
190
|
-
"feature",
|
|
191
|
-
"ability",
|
|
192
|
-
"business-need"
|
|
193
|
-
],
|
|
189
|
+
enum: ["feature", "ability", "business-need"],
|
|
194
190
|
description: "How the feature was declared. Absent when the title was derived rather than declared."
|
|
195
191
|
},
|
|
196
192
|
narrative: {
|
|
@@ -205,13 +201,7 @@ var story_report_v1_default = {
|
|
|
205
201
|
description: "Terms this feature defines, linked wherever they appear in scenario text."
|
|
206
202
|
}
|
|
207
203
|
},
|
|
208
|
-
required: [
|
|
209
|
-
"id",
|
|
210
|
-
"title",
|
|
211
|
-
"sourceFile",
|
|
212
|
-
"summary",
|
|
213
|
-
"scenarios"
|
|
214
|
-
],
|
|
204
|
+
required: ["id", "title", "sourceFile", "summary", "scenarios"],
|
|
215
205
|
additionalProperties: false
|
|
216
206
|
},
|
|
217
207
|
Scenario: {
|
|
@@ -341,6 +331,11 @@ var story_report_v1_default = {
|
|
|
341
331
|
type: "number",
|
|
342
332
|
minimum: 0
|
|
343
333
|
},
|
|
334
|
+
assertions: {
|
|
335
|
+
type: "integer",
|
|
336
|
+
minimum: 0,
|
|
337
|
+
description: "Assertions observed or declared for this step. Omit when the adapter cannot observe assertions; zero means observed none."
|
|
338
|
+
},
|
|
344
339
|
errorMessage: {
|
|
345
340
|
type: "string"
|
|
346
341
|
},
|
|
@@ -368,33 +363,15 @@ var story_report_v1_default = {
|
|
|
368
363
|
},
|
|
369
364
|
StepKeyword: {
|
|
370
365
|
type: "string",
|
|
371
|
-
enum: [
|
|
372
|
-
"Given",
|
|
373
|
-
"When",
|
|
374
|
-
"Then",
|
|
375
|
-
"And",
|
|
376
|
-
"But"
|
|
377
|
-
]
|
|
366
|
+
enum: ["Given", "When", "Then", "And", "But"]
|
|
378
367
|
},
|
|
379
368
|
StepMode: {
|
|
380
369
|
type: "string",
|
|
381
|
-
enum: [
|
|
382
|
-
"normal",
|
|
383
|
-
"skip",
|
|
384
|
-
"only",
|
|
385
|
-
"todo",
|
|
386
|
-
"fails",
|
|
387
|
-
"concurrent"
|
|
388
|
-
]
|
|
370
|
+
enum: ["normal", "skip", "only", "todo", "fails", "concurrent"]
|
|
389
371
|
},
|
|
390
372
|
TestStatus: {
|
|
391
373
|
type: "string",
|
|
392
|
-
enum: [
|
|
393
|
-
"passed",
|
|
394
|
-
"failed",
|
|
395
|
-
"skipped",
|
|
396
|
-
"pending"
|
|
397
|
-
]
|
|
374
|
+
enum: ["passed", "failed", "skipped", "pending"]
|
|
398
375
|
},
|
|
399
376
|
Ticket: {
|
|
400
377
|
type: "object",
|
|
@@ -407,9 +384,7 @@ var story_report_v1_default = {
|
|
|
407
384
|
type: "string"
|
|
408
385
|
}
|
|
409
386
|
},
|
|
410
|
-
required: [
|
|
411
|
-
"id"
|
|
412
|
-
],
|
|
387
|
+
required: ["id"],
|
|
413
388
|
additionalProperties: false
|
|
414
389
|
},
|
|
415
390
|
Attachment: {
|
|
@@ -427,18 +402,10 @@ var story_report_v1_default = {
|
|
|
427
402
|
},
|
|
428
403
|
contentEncoding: {
|
|
429
404
|
type: "string",
|
|
430
|
-
enum: [
|
|
431
|
-
"BASE64",
|
|
432
|
-
"IDENTITY"
|
|
433
|
-
]
|
|
405
|
+
enum: ["BASE64", "IDENTITY"]
|
|
434
406
|
}
|
|
435
407
|
},
|
|
436
|
-
required: [
|
|
437
|
-
"name",
|
|
438
|
-
"mediaType",
|
|
439
|
-
"body",
|
|
440
|
-
"contentEncoding"
|
|
441
|
-
],
|
|
408
|
+
required: ["name", "mediaType", "body", "contentEncoding"],
|
|
442
409
|
additionalProperties: false
|
|
443
410
|
},
|
|
444
411
|
CIInfo: {
|
|
@@ -463,9 +430,7 @@ var story_report_v1_default = {
|
|
|
463
430
|
type: "string"
|
|
464
431
|
}
|
|
465
432
|
},
|
|
466
|
-
required: [
|
|
467
|
-
"name"
|
|
468
|
-
],
|
|
433
|
+
required: ["name"],
|
|
469
434
|
additionalProperties: false
|
|
470
435
|
},
|
|
471
436
|
CoverageSummary: {
|
|
@@ -496,10 +461,7 @@ var story_report_v1_default = {
|
|
|
496
461
|
},
|
|
497
462
|
DocPhase: {
|
|
498
463
|
type: "string",
|
|
499
|
-
enum: [
|
|
500
|
-
"static",
|
|
501
|
-
"runtime"
|
|
502
|
-
]
|
|
464
|
+
enum: ["static", "runtime"]
|
|
503
465
|
},
|
|
504
466
|
DocEntry: {
|
|
505
467
|
oneOf: [
|
|
@@ -563,11 +525,7 @@ var story_report_v1_default = {
|
|
|
563
525
|
}
|
|
564
526
|
}
|
|
565
527
|
},
|
|
566
|
-
required: [
|
|
567
|
-
"kind",
|
|
568
|
-
"text",
|
|
569
|
-
"phase"
|
|
570
|
-
],
|
|
528
|
+
required: ["kind", "text", "phase"],
|
|
571
529
|
additionalProperties: false
|
|
572
530
|
},
|
|
573
531
|
DocTag: {
|
|
@@ -592,11 +550,7 @@ var story_report_v1_default = {
|
|
|
592
550
|
}
|
|
593
551
|
}
|
|
594
552
|
},
|
|
595
|
-
required: [
|
|
596
|
-
"kind",
|
|
597
|
-
"names",
|
|
598
|
-
"phase"
|
|
599
|
-
],
|
|
553
|
+
required: ["kind", "names", "phase"],
|
|
600
554
|
additionalProperties: false
|
|
601
555
|
},
|
|
602
556
|
DocKv: {
|
|
@@ -619,12 +573,7 @@ var story_report_v1_default = {
|
|
|
619
573
|
}
|
|
620
574
|
}
|
|
621
575
|
},
|
|
622
|
-
required: [
|
|
623
|
-
"kind",
|
|
624
|
-
"label",
|
|
625
|
-
"value",
|
|
626
|
-
"phase"
|
|
627
|
-
],
|
|
576
|
+
required: ["kind", "label", "value", "phase"],
|
|
628
577
|
additionalProperties: false
|
|
629
578
|
},
|
|
630
579
|
DocCode: {
|
|
@@ -652,12 +601,7 @@ var story_report_v1_default = {
|
|
|
652
601
|
}
|
|
653
602
|
}
|
|
654
603
|
},
|
|
655
|
-
required: [
|
|
656
|
-
"kind",
|
|
657
|
-
"label",
|
|
658
|
-
"content",
|
|
659
|
-
"phase"
|
|
660
|
-
],
|
|
604
|
+
required: ["kind", "label", "content", "phase"],
|
|
661
605
|
additionalProperties: false
|
|
662
606
|
},
|
|
663
607
|
DocTable: {
|
|
@@ -694,13 +638,7 @@ var story_report_v1_default = {
|
|
|
694
638
|
}
|
|
695
639
|
}
|
|
696
640
|
},
|
|
697
|
-
required: [
|
|
698
|
-
"kind",
|
|
699
|
-
"label",
|
|
700
|
-
"columns",
|
|
701
|
-
"rows",
|
|
702
|
-
"phase"
|
|
703
|
-
],
|
|
641
|
+
required: ["kind", "label", "columns", "rows", "phase"],
|
|
704
642
|
additionalProperties: false
|
|
705
643
|
},
|
|
706
644
|
DocLink: {
|
|
@@ -725,12 +663,7 @@ var story_report_v1_default = {
|
|
|
725
663
|
}
|
|
726
664
|
}
|
|
727
665
|
},
|
|
728
|
-
required: [
|
|
729
|
-
"kind",
|
|
730
|
-
"label",
|
|
731
|
-
"url",
|
|
732
|
-
"phase"
|
|
733
|
-
],
|
|
666
|
+
required: ["kind", "label", "url", "phase"],
|
|
734
667
|
additionalProperties: false
|
|
735
668
|
},
|
|
736
669
|
DocSection: {
|
|
@@ -755,12 +688,7 @@ var story_report_v1_default = {
|
|
|
755
688
|
}
|
|
756
689
|
}
|
|
757
690
|
},
|
|
758
|
-
required: [
|
|
759
|
-
"kind",
|
|
760
|
-
"title",
|
|
761
|
-
"markdown",
|
|
762
|
-
"phase"
|
|
763
|
-
],
|
|
691
|
+
required: ["kind", "title", "markdown", "phase"],
|
|
764
692
|
additionalProperties: false
|
|
765
693
|
},
|
|
766
694
|
DocMermaid: {
|
|
@@ -785,11 +713,7 @@ var story_report_v1_default = {
|
|
|
785
713
|
}
|
|
786
714
|
}
|
|
787
715
|
},
|
|
788
|
-
required: [
|
|
789
|
-
"kind",
|
|
790
|
-
"code",
|
|
791
|
-
"phase"
|
|
792
|
-
],
|
|
716
|
+
required: ["kind", "code", "phase"],
|
|
793
717
|
additionalProperties: false
|
|
794
718
|
},
|
|
795
719
|
DocScreenshot: {
|
|
@@ -814,11 +738,7 @@ var story_report_v1_default = {
|
|
|
814
738
|
}
|
|
815
739
|
}
|
|
816
740
|
},
|
|
817
|
-
required: [
|
|
818
|
-
"kind",
|
|
819
|
-
"path",
|
|
820
|
-
"phase"
|
|
821
|
-
],
|
|
741
|
+
required: ["kind", "path", "phase"],
|
|
822
742
|
additionalProperties: false
|
|
823
743
|
},
|
|
824
744
|
DocVideo: {
|
|
@@ -846,11 +766,7 @@ var story_report_v1_default = {
|
|
|
846
766
|
}
|
|
847
767
|
}
|
|
848
768
|
},
|
|
849
|
-
required: [
|
|
850
|
-
"kind",
|
|
851
|
-
"path",
|
|
852
|
-
"phase"
|
|
853
|
-
],
|
|
769
|
+
required: ["kind", "path", "phase"],
|
|
854
770
|
additionalProperties: false
|
|
855
771
|
},
|
|
856
772
|
DocHtml: {
|
|
@@ -891,26 +807,17 @@ var story_report_v1_default = {
|
|
|
891
807
|
}
|
|
892
808
|
}
|
|
893
809
|
},
|
|
894
|
-
required: [
|
|
895
|
-
"kind",
|
|
896
|
-
"phase"
|
|
897
|
-
],
|
|
810
|
+
required: ["kind", "phase"],
|
|
898
811
|
additionalProperties: false,
|
|
899
812
|
oneOf: [
|
|
900
813
|
{
|
|
901
|
-
required: [
|
|
902
|
-
"path"
|
|
903
|
-
]
|
|
814
|
+
required: ["path"]
|
|
904
815
|
},
|
|
905
816
|
{
|
|
906
|
-
required: [
|
|
907
|
-
"url"
|
|
908
|
-
]
|
|
817
|
+
required: ["url"]
|
|
909
818
|
},
|
|
910
819
|
{
|
|
911
|
-
required: [
|
|
912
|
-
"content"
|
|
913
|
-
]
|
|
820
|
+
required: ["content"]
|
|
914
821
|
}
|
|
915
822
|
]
|
|
916
823
|
},
|
|
@@ -934,11 +841,7 @@ var story_report_v1_default = {
|
|
|
934
841
|
}
|
|
935
842
|
}
|
|
936
843
|
},
|
|
937
|
-
required: [
|
|
938
|
-
"kind",
|
|
939
|
-
"value",
|
|
940
|
-
"phase"
|
|
941
|
-
],
|
|
844
|
+
required: ["kind", "value", "phase"],
|
|
942
845
|
additionalProperties: false
|
|
943
846
|
},
|
|
944
847
|
DocCustom: {
|
|
@@ -962,21 +865,12 @@ var story_report_v1_default = {
|
|
|
962
865
|
}
|
|
963
866
|
}
|
|
964
867
|
},
|
|
965
|
-
required: [
|
|
966
|
-
"kind",
|
|
967
|
-
"type",
|
|
968
|
-
"data",
|
|
969
|
-
"phase"
|
|
970
|
-
],
|
|
868
|
+
required: ["kind", "type", "data", "phase"],
|
|
971
869
|
additionalProperties: false
|
|
972
870
|
},
|
|
973
871
|
OtelSpan: {
|
|
974
872
|
type: "object",
|
|
975
|
-
required: [
|
|
976
|
-
"spanId",
|
|
977
|
-
"name",
|
|
978
|
-
"status"
|
|
979
|
-
],
|
|
873
|
+
required: ["spanId", "name", "status"],
|
|
980
874
|
properties: {
|
|
981
875
|
spanId: {
|
|
982
876
|
type: "string"
|
|
@@ -1000,11 +894,7 @@ var story_report_v1_default = {
|
|
|
1000
894
|
type: "number"
|
|
1001
895
|
},
|
|
1002
896
|
status: {
|
|
1003
|
-
enum: [
|
|
1004
|
-
"ok",
|
|
1005
|
-
"error",
|
|
1006
|
-
"unset"
|
|
1007
|
-
]
|
|
897
|
+
enum: ["ok", "error", "unset"]
|
|
1008
898
|
},
|
|
1009
899
|
statusMessage: {
|
|
1010
900
|
type: "string"
|
|
@@ -1028,10 +918,7 @@ var story_report_v1_default = {
|
|
|
1028
918
|
minLength: 1
|
|
1029
919
|
}
|
|
1030
920
|
},
|
|
1031
|
-
required: [
|
|
1032
|
-
"term",
|
|
1033
|
-
"definition"
|
|
1034
|
-
],
|
|
921
|
+
required: ["term", "definition"],
|
|
1035
922
|
additionalProperties: false
|
|
1036
923
|
}
|
|
1037
924
|
}
|
package/dist/parse.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/parse-entry.ts","../src/result.ts","../src/schema/story-report.schema.ts","../../executable-stories-core/schemas/story-report-v1.json","../src/schema/version.ts","../src/schema/parse.ts"],"sourcesContent":["/**\n * Server-safe entry: parseStoryReport, Result types, schema constants.\n *\n * No React, no hooks, no client-only code. Safe to call from Next.js Server\n * Components, build scripts, edge functions, or anywhere else outside the\n * browser. The main \"executable-stories-react\" entry is marked \"use client\"\n * because it touches createContext; this entry stays clean.\n */\n\nexport { parseStoryReport } from \"./schema/parse\";\nexport { storyReportSchema, STORY_REPORT_SCHEMA_MAJOR } from \"./schema/story-report.schema\";\nexport type { Result, ReportParseError, ReportParseErrorCode } from \"./result\";\nexport { ok, err } from \"./result\";\nexport type {\n StoryReport,\n ReportFeature as StoryReportFeature,\n ReportScenario as StoryReportScenario,\n ReportStep as StoryReportStep,\n ReportDocEntry as StoryReportDocEntry,\n ReportSummary as StoryReportSummary,\n} from \"executable-stories-core\";\n","/**\n * Result<T> — explicit success/error type matching the cookbook convention.\n *\n * Used at the boundary where a StoryReport is parsed: the consumer hands us\n * an unknown value (file contents, fetch body, prop) and we return a Result.\n */\nimport type { StoryReport } from \"executable-stories-core\";\n\nexport type Result<T, E = ReportParseError> =\n | { ok: true; data: T }\n | { ok: false; error: E };\n\nexport interface ReportParseError {\n message: string;\n code: ReportParseErrorCode;\n issues?: readonly { path: string; message: string }[];\n}\n\nexport type ReportParseErrorCode =\n | \"INVALID_INPUT\"\n | \"SCHEMA_VERSION_MISMATCH\"\n | \"VALIDATION_FAILED\";\n\nexport const ok = <T>(data: T): Result<T> => ({ ok: true, data });\nexport const err = (error: ReportParseError): Result<never> => ({ ok: false, error });\n\n/**\n * Normalize the `StoryReport | Result<StoryReport>` prop accepted across the\n * render entrypoints (`Report`, `ReportInteractive`, `renderReportToHtml`) into\n * a single `Result`. A bare report becomes `ok(report)`; an already-wrapped\n * value passes through. One place owns the \"is this a Result?\" discrimination.\n */\nexport function unwrapReport(value: StoryReport | Result<StoryReport>): Result<StoryReport> {\n if (\n typeof value === \"object\" &&\n value !== null &&\n \"ok\" in value &&\n typeof (value as { ok: unknown }).ok === \"boolean\"\n ) {\n return value as Result<StoryReport>;\n }\n return ok(value as StoryReport);\n}\n","/**\n * StoryReport runtime Zod schema, derived from the canonical JSON Schema\n * at executable-stories-core/schemas/story-report-v1.json.\n *\n * Uses z.fromJSONSchema (experimental in Zod 4.x). If the API changes upstream,\n * only this file needs updating — the rest of the package consumes\n * `storyReportSchema` and `StoryReportSchemaShape` via parse.ts.\n *\n * The JSON Schema is bundled at build time by tsup (resolveJsonModule).\n */\n\nimport { z } from \"zod\";\nimport schemaJson from \"executable-stories-core/schemas/story-report-v1.json\" with { type: \"json\" };\n\nexport { STORY_REPORT_SCHEMA_MAJOR } from \"./version\";\n\n// z.fromJSONSchema (experimental in Zod 4.x) can't translate DocHtml's nested\n// `oneOf` (the exactly-one-of path/url/content constraint) and rejects every\n// html doc entry. The on-disk schema keeps that constraint for Ajv + the\n// machine contract; here we drop it from the in-memory copy the runtime\n// validator is built from. The React DocHtml component already resolves\n// precedence (content → url → path), so the looser runtime check is safe.\nconst schemaForZod = structuredClone(schemaJson) as {\n $defs?: { DocHtml?: { oneOf?: unknown } };\n};\nif (schemaForZod.$defs?.DocHtml) {\n delete schemaForZod.$defs.DocHtml.oneOf;\n}\n\nconst compiled = z.fromJSONSchema(schemaForZod as Parameters<typeof z.fromJSONSchema>[0]);\n\nexport const storyReportSchema = compiled;\nexport type StoryReportSchemaShape = z.infer<typeof compiled>;\n","{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://executable-stories.dev/schemas/story-report-v1.schema.json\",\n \"title\": \"StoryReport\",\n \"description\": \"Pre-grouped, denormalized report shape consumed by UI renderers (React, Svelte, Vue, etc.). Stable public contract \\u2014 additive-only within a major. Distinct from internal TestRunResult.\",\n \"type\": \"object\",\n \"$ref\": \"#/$defs/StoryReport\",\n \"$defs\": {\n \"StoryReport\": {\n \"type\": \"object\",\n \"description\": \"Top-level report containing all features, runtime metadata, and a pre-computed summary.\",\n \"properties\": {\n \"schemaVersion\": {\n \"type\": \"string\",\n \"pattern\": \"^1\\\\.[0-9]+$\",\n \"description\": \"Schema version as 'major.minor'. Major bumps are breaking; minors are additive-only. UI packages must accept any 1.x.\"\n },\n \"runId\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Unique deterministic identifier for this run.\"\n },\n \"startedAtMs\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"description\": \"Run start time as Unix epoch milliseconds.\"\n },\n \"finishedAtMs\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"description\": \"Run finish time as Unix epoch milliseconds.\"\n },\n \"durationMs\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"description\": \"Total run duration in milliseconds.\"\n },\n \"projectRoot\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Absolute path to the project root (for context only; relative paths in features.sourceFile are preferred).\"\n },\n \"packageVersion\": {\n \"type\": \"string\",\n \"description\": \"Version of the package under test, if known.\"\n },\n \"gitSha\": {\n \"type\": \"string\",\n \"description\": \"Git commit SHA at the time of the run.\"\n },\n \"ci\": {\n \"$ref\": \"#/$defs/CIInfo\"\n },\n \"coverage\": {\n \"$ref\": \"#/$defs/CoverageSummary\"\n },\n \"summary\": {\n \"$ref\": \"#/$defs/Summary\",\n \"description\": \"Pre-computed counts across all features and scenarios.\"\n },\n \"features\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/Feature\"\n },\n \"description\": \"Features grouped by sourceFile, sorted by title.\"\n }\n },\n \"required\": [\n \"schemaVersion\",\n \"runId\",\n \"startedAtMs\",\n \"finishedAtMs\",\n \"durationMs\",\n \"projectRoot\",\n \"summary\",\n \"features\"\n ],\n \"additionalProperties\": false\n },\n \"Summary\": {\n \"type\": \"object\",\n \"description\": \"Counts by status. Sums equal 'total'.\",\n \"properties\": {\n \"total\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"passed\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"failed\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"skipped\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"pending\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"durationMs\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n },\n \"required\": [\n \"total\",\n \"passed\",\n \"failed\",\n \"skipped\",\n \"pending\",\n \"durationMs\"\n ],\n \"additionalProperties\": false\n },\n \"Feature\": {\n \"type\": \"object\",\n \"description\": \"A group of scenarios from the same source file.\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Stable slug derived from the relative source path. Suitable for use as a deep-link anchor.\"\n },\n \"title\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Display title. Comes from story.feature(...) when declared, otherwise the describe block or file basename.\"\n },\n \"sourceFile\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Source path, relative to projectRoot when possible.\"\n },\n \"summary\": {\n \"$ref\": \"#/$defs/Summary\"\n },\n \"scenarios\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/Scenario\"\n },\n \"description\": \"Scenarios in this feature, in declaration order.\"\n },\n \"kind\": {\n \"type\": \"string\",\n \"enum\": [\n \"feature\",\n \"ability\",\n \"business-need\"\n ],\n \"description\": \"How the feature was declared. Absent when the title was derived rather than declared.\"\n },\n \"narrative\": {\n \"type\": \"string\",\n \"description\": \"Markdown explaining why the feature exists and who it serves.\"\n },\n \"glossary\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/GlossaryTerm\"\n },\n \"description\": \"Terms this feature defines, linked wherever they appear in scenario text.\"\n }\n },\n \"required\": [\n \"id\",\n \"title\",\n \"sourceFile\",\n \"summary\",\n \"scenarios\"\n ],\n \"additionalProperties\": false\n },\n \"Scenario\": {\n \"type\": \"object\",\n \"description\": \"A single scenario with its steps, story-level doc entries, and attachments.\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Stable identifier: '<feature.id>--<slug-of-title>'. Suitable for use as a deep-link anchor.\"\n },\n \"title\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"status\": {\n \"$ref\": \"#/$defs/TestStatus\"\n },\n \"planned\": {\n \"type\": \"boolean\",\n \"description\": \"True for scenarios authored with the framework's todo modifier (e.g. it.todo): specified behavior with no implementation yet. Canonical status stays 'pending'; this flags why.\"\n },\n \"durationMs\": {\n \"type\": \"number\",\n \"minimum\": 0\n },\n \"tags\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"Normalized tags, deduplicated, lowercased.\"\n },\n \"tickets\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/Ticket\"\n }\n },\n \"covers\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"Product-code paths/globs this scenario exercises.\"\n },\n \"sourceLine\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"errorMessage\": {\n \"type\": \"string\"\n },\n \"errorStack\": {\n \"type\": \"string\"\n },\n \"retry\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"retries\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"docEntries\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n },\n \"description\": \"Story-level doc entries (rendered before steps).\"\n },\n \"steps\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/Step\"\n }\n },\n \"attachments\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/Attachment\"\n }\n },\n \"otelSpans\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/OtelSpan\"\n }\n }\n },\n \"required\": [\n \"id\",\n \"title\",\n \"status\",\n \"durationMs\",\n \"tags\",\n \"retry\",\n \"retries\",\n \"docEntries\",\n \"steps\",\n \"attachments\"\n ],\n \"additionalProperties\": false\n },\n \"Step\": {\n \"type\": \"object\",\n \"description\": \"A single BDD step.\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"index\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"keyword\": {\n \"$ref\": \"#/$defs/StepKeyword\"\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"$ref\": \"#/$defs/TestStatus\"\n },\n \"durationMs\": {\n \"type\": \"number\",\n \"minimum\": 0\n },\n \"errorMessage\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"$ref\": \"#/$defs/StepMode\"\n },\n \"docEntries\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n },\n \"description\": \"Doc entries attached to this step.\"\n }\n },\n \"required\": [\n \"id\",\n \"index\",\n \"keyword\",\n \"text\",\n \"status\",\n \"durationMs\",\n \"docEntries\"\n ],\n \"additionalProperties\": false\n },\n \"StepKeyword\": {\n \"type\": \"string\",\n \"enum\": [\n \"Given\",\n \"When\",\n \"Then\",\n \"And\",\n \"But\"\n ]\n },\n \"StepMode\": {\n \"type\": \"string\",\n \"enum\": [\n \"normal\",\n \"skip\",\n \"only\",\n \"todo\",\n \"fails\",\n \"concurrent\"\n ]\n },\n \"TestStatus\": {\n \"type\": \"string\",\n \"enum\": [\n \"passed\",\n \"failed\",\n \"skipped\",\n \"pending\"\n ]\n },\n \"Ticket\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"url\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"additionalProperties\": false\n },\n \"Attachment\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"mediaType\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"body\": {\n \"type\": \"string\"\n },\n \"contentEncoding\": {\n \"type\": \"string\",\n \"enum\": [\n \"BASE64\",\n \"IDENTITY\"\n ]\n }\n },\n \"required\": [\n \"name\",\n \"mediaType\",\n \"body\",\n \"contentEncoding\"\n ],\n \"additionalProperties\": false\n },\n \"CIInfo\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n },\n \"buildNumber\": {\n \"type\": \"string\"\n },\n \"branch\": {\n \"type\": \"string\"\n },\n \"commitSha\": {\n \"type\": \"string\"\n },\n \"prNumber\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"additionalProperties\": false\n },\n \"CoverageSummary\": {\n \"type\": \"object\",\n \"properties\": {\n \"linesPct\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 100\n },\n \"branchesPct\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 100\n },\n \"functionsPct\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 100\n },\n \"statementsPct\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 100\n }\n },\n \"additionalProperties\": false\n },\n \"DocPhase\": {\n \"type\": \"string\",\n \"enum\": [\n \"static\",\n \"runtime\"\n ]\n },\n \"DocEntry\": {\n \"oneOf\": [\n {\n \"$ref\": \"#/$defs/DocNote\"\n },\n {\n \"$ref\": \"#/$defs/DocTag\"\n },\n {\n \"$ref\": \"#/$defs/DocKv\"\n },\n {\n \"$ref\": \"#/$defs/DocCode\"\n },\n {\n \"$ref\": \"#/$defs/DocTable\"\n },\n {\n \"$ref\": \"#/$defs/DocLink\"\n },\n {\n \"$ref\": \"#/$defs/DocSection\"\n },\n {\n \"$ref\": \"#/$defs/DocMermaid\"\n },\n {\n \"$ref\": \"#/$defs/DocScreenshot\"\n },\n {\n \"$ref\": \"#/$defs/DocVideo\"\n },\n {\n \"$ref\": \"#/$defs/DocHtml\"\n },\n {\n \"$ref\": \"#/$defs/DocState\"\n },\n {\n \"$ref\": \"#/$defs/DocCustom\"\n }\n ]\n },\n \"DocNote\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"note\"\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\n \"kind\",\n \"text\",\n \"phase\"\n ],\n \"additionalProperties\": false\n },\n \"DocTag\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"tag\"\n },\n \"names\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\n \"kind\",\n \"names\",\n \"phase\"\n ],\n \"additionalProperties\": false\n },\n \"DocKv\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"kv\"\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"value\": {},\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\n \"kind\",\n \"label\",\n \"value\",\n \"phase\"\n ],\n \"additionalProperties\": false\n },\n \"DocCode\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"code\"\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"content\": {\n \"type\": \"string\"\n },\n \"lang\": {\n \"type\": \"string\"\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\n \"kind\",\n \"label\",\n \"content\",\n \"phase\"\n ],\n \"additionalProperties\": false\n },\n \"DocTable\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"table\"\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"columns\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"rows\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\n \"kind\",\n \"label\",\n \"columns\",\n \"rows\",\n \"phase\"\n ],\n \"additionalProperties\": false\n },\n \"DocLink\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"link\"\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\n \"kind\",\n \"label\",\n \"url\",\n \"phase\"\n ],\n \"additionalProperties\": false\n },\n \"DocSection\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"section\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"markdown\": {\n \"type\": \"string\"\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\n \"kind\",\n \"title\",\n \"markdown\",\n \"phase\"\n ],\n \"additionalProperties\": false\n },\n \"DocMermaid\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"mermaid\"\n },\n \"code\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\n \"kind\",\n \"code\",\n \"phase\"\n ],\n \"additionalProperties\": false\n },\n \"DocScreenshot\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"screenshot\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"alt\": {\n \"type\": \"string\"\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\n \"kind\",\n \"path\",\n \"phase\"\n ],\n \"additionalProperties\": false\n },\n \"DocVideo\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"video\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"caption\": {\n \"type\": \"string\"\n },\n \"poster\": {\n \"type\": \"string\"\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\n \"kind\",\n \"path\",\n \"phase\"\n ],\n \"additionalProperties\": false\n },\n \"DocHtml\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"html\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n },\n \"content\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"height\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\n \"kind\",\n \"phase\"\n ],\n \"additionalProperties\": false,\n \"oneOf\": [\n {\n \"required\": [\n \"path\"\n ]\n },\n {\n \"required\": [\n \"url\"\n ]\n },\n {\n \"required\": [\n \"content\"\n ]\n }\n ]\n },\n \"DocState\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"state\"\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"value\": {},\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\n \"kind\",\n \"value\",\n \"phase\"\n ],\n \"additionalProperties\": false\n },\n \"DocCustom\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"custom\"\n },\n \"type\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"data\": {},\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\n \"kind\",\n \"type\",\n \"data\",\n \"phase\"\n ],\n \"additionalProperties\": false\n },\n \"OtelSpan\": {\n \"type\": \"object\",\n \"required\": [\n \"spanId\",\n \"name\",\n \"status\"\n ],\n \"properties\": {\n \"spanId\": {\n \"type\": \"string\"\n },\n \"parentSpanId\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"startTimeMs\": {\n \"type\": \"number\"\n },\n \"durationMs\": {\n \"type\": \"number\"\n },\n \"startTimeUnixNano\": {\n \"type\": \"number\"\n },\n \"endTimeUnixNano\": {\n \"type\": \"number\"\n },\n \"status\": {\n \"enum\": [\n \"ok\",\n \"error\",\n \"unset\"\n ]\n },\n \"statusMessage\": {\n \"type\": \"string\"\n },\n \"attributes\": {\n \"type\": \"object\"\n }\n },\n \"additionalProperties\": false\n },\n \"GlossaryTerm\": {\n \"type\": \"object\",\n \"description\": \"One glossary entry: a term the scenarios use and what it means.\",\n \"properties\": {\n \"term\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"definition\": {\n \"type\": \"string\",\n \"minLength\": 1\n }\n },\n \"required\": [\n \"term\",\n \"definition\"\n ],\n \"additionalProperties\": false\n }\n }\n}\n","/**\n * The supported StoryReport schema major version, factored out of\n * story-report.schema.ts so the client island can do a cheap version check\n * WITHOUT importing the Zod schema module (which evaluates z.fromJSONSchema at\n * module load and pulls ~315kb of zod + locales into the bundle).\n */\nexport const STORY_REPORT_SCHEMA_MAJOR = 1 as const;\n","/**\n * parseStoryReport — boundary validator. Accepts unknown input (file contents,\n * fetch body, prop) and returns a Result-typed StoryReport.\n */\n\nimport type { StoryReport } from \"executable-stories-core\";\nimport type { Result } from \"../result\";\nimport { ok, err } from \"../result\";\nimport { storyReportSchema, STORY_REPORT_SCHEMA_MAJOR } from \"./story-report.schema\";\n\nexport function parseStoryReport(input: unknown): Result<StoryReport> {\n if (input === null || typeof input !== \"object\") {\n return err({\n message: \"Expected a StoryReport object.\",\n code: \"INVALID_INPUT\",\n });\n }\n\n const versionRaw = (input as { schemaVersion?: unknown }).schemaVersion;\n if (typeof versionRaw === \"string\") {\n const major = versionRaw.split(\".\")[0];\n if (major !== String(STORY_REPORT_SCHEMA_MAJOR)) {\n return err({\n message: `Schema major ${major} is not supported by this version of executable-stories-react (expected ${STORY_REPORT_SCHEMA_MAJOR}.x). Upgrade the package.`,\n code: \"SCHEMA_VERSION_MISMATCH\",\n });\n }\n }\n\n const parsed = storyReportSchema.safeParse(input);\n if (parsed.success) {\n return ok(parsed.data as StoryReport);\n }\n\n const issues = parsed.error.issues.map((i) => ({\n path: i.path.join(\".\") || \"/\",\n message: i.message,\n }));\n\n return err({\n message: `StoryReport failed validation (${issues.length} issue${issues.length === 1 ? \"\" : \"s\"}).`,\n code: \"VALIDATION_FAILED\",\n issues,\n });\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/parse-entry.ts","../src/result.ts","../src/schema/story-report.schema.ts","../../executable-stories-core/schemas/story-report-v1.json","../src/schema/version.ts","../src/schema/parse.ts"],"sourcesContent":["/**\n * Server-safe entry: parseStoryReport, Result types, schema constants.\n *\n * No React, no hooks, no client-only code. Safe to call from Next.js Server\n * Components, build scripts, edge functions, or anywhere else outside the\n * browser. The main \"executable-stories-react\" entry is marked \"use client\"\n * because it touches createContext; this entry stays clean.\n */\n\nexport { parseStoryReport } from \"./schema/parse\";\nexport { storyReportSchema, STORY_REPORT_SCHEMA_MAJOR } from \"./schema/story-report.schema\";\nexport type { Result, ReportParseError, ReportParseErrorCode } from \"./result\";\nexport { ok, err } from \"./result\";\nexport type {\n StoryReport,\n ReportFeature as StoryReportFeature,\n ReportScenario as StoryReportScenario,\n ReportStep as StoryReportStep,\n ReportDocEntry as StoryReportDocEntry,\n ReportSummary as StoryReportSummary,\n} from \"executable-stories-core\";\n","/**\n * Result<T> — explicit success/error type matching the cookbook convention.\n *\n * Used at the boundary where a StoryReport is parsed: the consumer hands us\n * an unknown value (file contents, fetch body, prop) and we return a Result.\n */\nimport type { StoryReport } from \"executable-stories-core\";\n\nexport type Result<T, E = ReportParseError> =\n | { ok: true; data: T }\n | { ok: false; error: E };\n\nexport interface ReportParseError {\n message: string;\n code: ReportParseErrorCode;\n issues?: readonly { path: string; message: string }[];\n}\n\nexport type ReportParseErrorCode =\n | \"INVALID_INPUT\"\n | \"SCHEMA_VERSION_MISMATCH\"\n | \"VALIDATION_FAILED\";\n\nexport const ok = <T>(data: T): Result<T> => ({ ok: true, data });\nexport const err = (error: ReportParseError): Result<never> => ({ ok: false, error });\n\n/**\n * Normalize the `StoryReport | Result<StoryReport>` prop accepted across the\n * render entrypoints (`Report`, `ReportInteractive`, `renderReportToHtml`) into\n * a single `Result`. A bare report becomes `ok(report)`; an already-wrapped\n * value passes through. One place owns the \"is this a Result?\" discrimination.\n */\nexport function unwrapReport(value: StoryReport | Result<StoryReport>): Result<StoryReport> {\n if (\n typeof value === \"object\" &&\n value !== null &&\n \"ok\" in value &&\n typeof (value as { ok: unknown }).ok === \"boolean\"\n ) {\n return value as Result<StoryReport>;\n }\n return ok(value as StoryReport);\n}\n","/**\n * StoryReport runtime Zod schema, derived from the canonical JSON Schema\n * at executable-stories-core/schemas/story-report-v1.json.\n *\n * Uses z.fromJSONSchema (experimental in Zod 4.x). If the API changes upstream,\n * only this file needs updating — the rest of the package consumes\n * `storyReportSchema` and `StoryReportSchemaShape` via parse.ts.\n *\n * The JSON Schema is bundled at build time by tsup (resolveJsonModule).\n */\n\nimport { z } from \"zod\";\nimport schemaJson from \"executable-stories-core/schemas/story-report-v1.json\" with { type: \"json\" };\n\nexport { STORY_REPORT_SCHEMA_MAJOR } from \"./version\";\n\n// z.fromJSONSchema (experimental in Zod 4.x) can't translate DocHtml's nested\n// `oneOf` (the exactly-one-of path/url/content constraint) and rejects every\n// html doc entry. The on-disk schema keeps that constraint for Ajv + the\n// machine contract; here we drop it from the in-memory copy the runtime\n// validator is built from. The React DocHtml component already resolves\n// precedence (content → url → path), so the looser runtime check is safe.\nconst schemaForZod = structuredClone(schemaJson) as {\n $defs?: { DocHtml?: { oneOf?: unknown } };\n};\nif (schemaForZod.$defs?.DocHtml) {\n delete schemaForZod.$defs.DocHtml.oneOf;\n}\n\nconst compiled = z.fromJSONSchema(schemaForZod as Parameters<typeof z.fromJSONSchema>[0]);\n\nexport const storyReportSchema = compiled;\nexport type StoryReportSchemaShape = z.infer<typeof compiled>;\n","{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://executable-stories.dev/schemas/story-report-v1.schema.json\",\n \"title\": \"StoryReport\",\n \"description\": \"Pre-grouped, denormalized report shape consumed by UI renderers (React, Svelte, Vue, etc.). Stable public contract \\u2014 additive-only within a major. Distinct from internal TestRunResult.\",\n \"type\": \"object\",\n \"$ref\": \"#/$defs/StoryReport\",\n \"$defs\": {\n \"StoryReport\": {\n \"type\": \"object\",\n \"description\": \"Top-level report containing all features, runtime metadata, and a pre-computed summary.\",\n \"properties\": {\n \"schemaVersion\": {\n \"type\": \"string\",\n \"pattern\": \"^1\\\\.[0-9]+$\",\n \"description\": \"Schema version as 'major.minor'. Major bumps are breaking; minors are additive-only. UI packages must accept any 1.x.\"\n },\n \"runId\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Unique deterministic identifier for this run.\"\n },\n \"startedAtMs\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"description\": \"Run start time as Unix epoch milliseconds.\"\n },\n \"finishedAtMs\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"description\": \"Run finish time as Unix epoch milliseconds.\"\n },\n \"durationMs\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"description\": \"Total run duration in milliseconds.\"\n },\n \"projectRoot\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Absolute path to the project root (for context only; relative paths in features.sourceFile are preferred).\"\n },\n \"packageVersion\": {\n \"type\": \"string\",\n \"description\": \"Version of the package under test, if known.\"\n },\n \"gitSha\": {\n \"type\": \"string\",\n \"description\": \"Git commit SHA at the time of the run.\"\n },\n \"ci\": {\n \"$ref\": \"#/$defs/CIInfo\"\n },\n \"coverage\": {\n \"$ref\": \"#/$defs/CoverageSummary\"\n },\n \"summary\": {\n \"$ref\": \"#/$defs/Summary\",\n \"description\": \"Pre-computed counts across all features and scenarios.\"\n },\n \"features\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/Feature\"\n },\n \"description\": \"Features grouped by sourceFile, sorted by title.\"\n }\n },\n \"required\": [\n \"schemaVersion\",\n \"runId\",\n \"startedAtMs\",\n \"finishedAtMs\",\n \"durationMs\",\n \"projectRoot\",\n \"summary\",\n \"features\"\n ],\n \"additionalProperties\": false\n },\n \"Summary\": {\n \"type\": \"object\",\n \"description\": \"Counts by status. Sums equal 'total'.\",\n \"properties\": {\n \"total\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"passed\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"failed\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"skipped\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"pending\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"durationMs\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n },\n \"required\": [\n \"total\",\n \"passed\",\n \"failed\",\n \"skipped\",\n \"pending\",\n \"durationMs\"\n ],\n \"additionalProperties\": false\n },\n \"Feature\": {\n \"type\": \"object\",\n \"description\": \"A group of scenarios from the same source file.\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Stable slug derived from the relative source path. Suitable for use as a deep-link anchor.\"\n },\n \"title\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Display title. Comes from story.feature(...) when declared, otherwise the describe block or file basename.\"\n },\n \"sourceFile\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Source path, relative to projectRoot when possible.\"\n },\n \"summary\": {\n \"$ref\": \"#/$defs/Summary\"\n },\n \"scenarios\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/Scenario\"\n },\n \"description\": \"Scenarios in this feature, in declaration order.\"\n },\n \"kind\": {\n \"type\": \"string\",\n \"enum\": [\"feature\", \"ability\", \"business-need\"],\n \"description\": \"How the feature was declared. Absent when the title was derived rather than declared.\"\n },\n \"narrative\": {\n \"type\": \"string\",\n \"description\": \"Markdown explaining why the feature exists and who it serves.\"\n },\n \"glossary\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/GlossaryTerm\"\n },\n \"description\": \"Terms this feature defines, linked wherever they appear in scenario text.\"\n }\n },\n \"required\": [\"id\", \"title\", \"sourceFile\", \"summary\", \"scenarios\"],\n \"additionalProperties\": false\n },\n \"Scenario\": {\n \"type\": \"object\",\n \"description\": \"A single scenario with its steps, story-level doc entries, and attachments.\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Stable identifier: '<feature.id>--<slug-of-title>'. Suitable for use as a deep-link anchor.\"\n },\n \"title\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"status\": {\n \"$ref\": \"#/$defs/TestStatus\"\n },\n \"planned\": {\n \"type\": \"boolean\",\n \"description\": \"True for scenarios authored with the framework's todo modifier (e.g. it.todo): specified behavior with no implementation yet. Canonical status stays 'pending'; this flags why.\"\n },\n \"durationMs\": {\n \"type\": \"number\",\n \"minimum\": 0\n },\n \"tags\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"Normalized tags, deduplicated, lowercased.\"\n },\n \"tickets\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/Ticket\"\n }\n },\n \"covers\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"Product-code paths/globs this scenario exercises.\"\n },\n \"sourceLine\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"errorMessage\": {\n \"type\": \"string\"\n },\n \"errorStack\": {\n \"type\": \"string\"\n },\n \"retry\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"retries\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"docEntries\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n },\n \"description\": \"Story-level doc entries (rendered before steps).\"\n },\n \"steps\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/Step\"\n }\n },\n \"attachments\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/Attachment\"\n }\n },\n \"otelSpans\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/OtelSpan\"\n }\n }\n },\n \"required\": [\n \"id\",\n \"title\",\n \"status\",\n \"durationMs\",\n \"tags\",\n \"retry\",\n \"retries\",\n \"docEntries\",\n \"steps\",\n \"attachments\"\n ],\n \"additionalProperties\": false\n },\n \"Step\": {\n \"type\": \"object\",\n \"description\": \"A single BDD step.\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"index\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"keyword\": {\n \"$ref\": \"#/$defs/StepKeyword\"\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"$ref\": \"#/$defs/TestStatus\"\n },\n \"durationMs\": {\n \"type\": \"number\",\n \"minimum\": 0\n },\n \"assertions\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"Assertions observed or declared for this step. Omit when the adapter cannot observe assertions; zero means observed none.\"\n },\n \"errorMessage\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"$ref\": \"#/$defs/StepMode\"\n },\n \"docEntries\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n },\n \"description\": \"Doc entries attached to this step.\"\n }\n },\n \"required\": [\n \"id\",\n \"index\",\n \"keyword\",\n \"text\",\n \"status\",\n \"durationMs\",\n \"docEntries\"\n ],\n \"additionalProperties\": false\n },\n \"StepKeyword\": {\n \"type\": \"string\",\n \"enum\": [\"Given\", \"When\", \"Then\", \"And\", \"But\"]\n },\n \"StepMode\": {\n \"type\": \"string\",\n \"enum\": [\"normal\", \"skip\", \"only\", \"todo\", \"fails\", \"concurrent\"]\n },\n \"TestStatus\": {\n \"type\": \"string\",\n \"enum\": [\"passed\", \"failed\", \"skipped\", \"pending\"]\n },\n \"Ticket\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"url\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\"],\n \"additionalProperties\": false\n },\n \"Attachment\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"mediaType\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"body\": {\n \"type\": \"string\"\n },\n \"contentEncoding\": {\n \"type\": \"string\",\n \"enum\": [\"BASE64\", \"IDENTITY\"]\n }\n },\n \"required\": [\"name\", \"mediaType\", \"body\", \"contentEncoding\"],\n \"additionalProperties\": false\n },\n \"CIInfo\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n },\n \"buildNumber\": {\n \"type\": \"string\"\n },\n \"branch\": {\n \"type\": \"string\"\n },\n \"commitSha\": {\n \"type\": \"string\"\n },\n \"prNumber\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"name\"],\n \"additionalProperties\": false\n },\n \"CoverageSummary\": {\n \"type\": \"object\",\n \"properties\": {\n \"linesPct\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 100\n },\n \"branchesPct\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 100\n },\n \"functionsPct\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 100\n },\n \"statementsPct\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 100\n }\n },\n \"additionalProperties\": false\n },\n \"DocPhase\": {\n \"type\": \"string\",\n \"enum\": [\"static\", \"runtime\"]\n },\n \"DocEntry\": {\n \"oneOf\": [\n {\n \"$ref\": \"#/$defs/DocNote\"\n },\n {\n \"$ref\": \"#/$defs/DocTag\"\n },\n {\n \"$ref\": \"#/$defs/DocKv\"\n },\n {\n \"$ref\": \"#/$defs/DocCode\"\n },\n {\n \"$ref\": \"#/$defs/DocTable\"\n },\n {\n \"$ref\": \"#/$defs/DocLink\"\n },\n {\n \"$ref\": \"#/$defs/DocSection\"\n },\n {\n \"$ref\": \"#/$defs/DocMermaid\"\n },\n {\n \"$ref\": \"#/$defs/DocScreenshot\"\n },\n {\n \"$ref\": \"#/$defs/DocVideo\"\n },\n {\n \"$ref\": \"#/$defs/DocHtml\"\n },\n {\n \"$ref\": \"#/$defs/DocState\"\n },\n {\n \"$ref\": \"#/$defs/DocCustom\"\n }\n ]\n },\n \"DocNote\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"note\"\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\"kind\", \"text\", \"phase\"],\n \"additionalProperties\": false\n },\n \"DocTag\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"tag\"\n },\n \"names\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\"kind\", \"names\", \"phase\"],\n \"additionalProperties\": false\n },\n \"DocKv\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"kv\"\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"value\": {},\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\"kind\", \"label\", \"value\", \"phase\"],\n \"additionalProperties\": false\n },\n \"DocCode\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"code\"\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"content\": {\n \"type\": \"string\"\n },\n \"lang\": {\n \"type\": \"string\"\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\"kind\", \"label\", \"content\", \"phase\"],\n \"additionalProperties\": false\n },\n \"DocTable\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"table\"\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"columns\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"rows\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\"kind\", \"label\", \"columns\", \"rows\", \"phase\"],\n \"additionalProperties\": false\n },\n \"DocLink\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"link\"\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\"kind\", \"label\", \"url\", \"phase\"],\n \"additionalProperties\": false\n },\n \"DocSection\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"section\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"markdown\": {\n \"type\": \"string\"\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\"kind\", \"title\", \"markdown\", \"phase\"],\n \"additionalProperties\": false\n },\n \"DocMermaid\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"mermaid\"\n },\n \"code\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\"kind\", \"code\", \"phase\"],\n \"additionalProperties\": false\n },\n \"DocScreenshot\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"screenshot\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"alt\": {\n \"type\": \"string\"\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\"kind\", \"path\", \"phase\"],\n \"additionalProperties\": false\n },\n \"DocVideo\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"video\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"caption\": {\n \"type\": \"string\"\n },\n \"poster\": {\n \"type\": \"string\"\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\"kind\", \"path\", \"phase\"],\n \"additionalProperties\": false\n },\n \"DocHtml\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"html\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n },\n \"content\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"height\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\"kind\", \"phase\"],\n \"additionalProperties\": false,\n \"oneOf\": [\n {\n \"required\": [\"path\"]\n },\n {\n \"required\": [\"url\"]\n },\n {\n \"required\": [\"content\"]\n }\n ]\n },\n \"DocState\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"state\"\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"value\": {},\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\"kind\", \"value\", \"phase\"],\n \"additionalProperties\": false\n },\n \"DocCustom\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"const\": \"custom\"\n },\n \"type\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"data\": {},\n \"phase\": {\n \"$ref\": \"#/$defs/DocPhase\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/DocEntry\"\n }\n }\n },\n \"required\": [\"kind\", \"type\", \"data\", \"phase\"],\n \"additionalProperties\": false\n },\n \"OtelSpan\": {\n \"type\": \"object\",\n \"required\": [\"spanId\", \"name\", \"status\"],\n \"properties\": {\n \"spanId\": {\n \"type\": \"string\"\n },\n \"parentSpanId\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"startTimeMs\": {\n \"type\": \"number\"\n },\n \"durationMs\": {\n \"type\": \"number\"\n },\n \"startTimeUnixNano\": {\n \"type\": \"number\"\n },\n \"endTimeUnixNano\": {\n \"type\": \"number\"\n },\n \"status\": {\n \"enum\": [\"ok\", \"error\", \"unset\"]\n },\n \"statusMessage\": {\n \"type\": \"string\"\n },\n \"attributes\": {\n \"type\": \"object\"\n }\n },\n \"additionalProperties\": false\n },\n \"GlossaryTerm\": {\n \"type\": \"object\",\n \"description\": \"One glossary entry: a term the scenarios use and what it means.\",\n \"properties\": {\n \"term\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"definition\": {\n \"type\": \"string\",\n \"minLength\": 1\n }\n },\n \"required\": [\"term\", \"definition\"],\n \"additionalProperties\": false\n }\n }\n}\n","/**\n * The supported StoryReport schema major version, factored out of\n * story-report.schema.ts so the client island can do a cheap version check\n * WITHOUT importing the Zod schema module (which evaluates z.fromJSONSchema at\n * module load and pulls ~315kb of zod + locales into the bundle).\n */\nexport const STORY_REPORT_SCHEMA_MAJOR = 1 as const;\n","/**\n * parseStoryReport — boundary validator. Accepts unknown input (file contents,\n * fetch body, prop) and returns a Result-typed StoryReport.\n */\n\nimport type { StoryReport } from \"executable-stories-core\";\nimport type { Result } from \"../result\";\nimport { ok, err } from \"../result\";\nimport { storyReportSchema, STORY_REPORT_SCHEMA_MAJOR } from \"./story-report.schema\";\n\nexport function parseStoryReport(input: unknown): Result<StoryReport> {\n if (input === null || typeof input !== \"object\") {\n return err({\n message: \"Expected a StoryReport object.\",\n code: \"INVALID_INPUT\",\n });\n }\n\n const versionRaw = (input as { schemaVersion?: unknown }).schemaVersion;\n if (typeof versionRaw === \"string\") {\n const major = versionRaw.split(\".\")[0];\n if (major !== String(STORY_REPORT_SCHEMA_MAJOR)) {\n return err({\n message: `Schema major ${major} is not supported by this version of executable-stories-react (expected ${STORY_REPORT_SCHEMA_MAJOR}.x). Upgrade the package.`,\n code: \"SCHEMA_VERSION_MISMATCH\",\n });\n }\n }\n\n const parsed = storyReportSchema.safeParse(input);\n if (parsed.success) {\n return ok(parsed.data as StoryReport);\n }\n\n const issues = parsed.error.issues.map((i) => ({\n path: i.path.join(\".\") || \"/\",\n message: i.message,\n }));\n\n return err({\n message: `StoryReport failed validation (${issues.length} issue${issues.length === 1 ? \"\" : \"s\"}).`,\n code: \"VALIDATION_FAILED\",\n issues,\n });\n}\n"],"mappings":"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","names":[]}
|