executable-stories-react 0.10.1 → 0.12.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/parse.cjs CHANGED
@@ -167,7 +167,7 @@ var story_report_v1_default = {
167
167
  title: {
168
168
  type: "string",
169
169
  minLength: 1,
170
- description: "Display title. Derived from describe block when present, otherwise the file basename."
170
+ description: "Display title. Comes from story.feature(...) when declared, otherwise the describe block or file basename."
171
171
  },
172
172
  sourceFile: {
173
173
  type: "string",
@@ -183,15 +183,25 @@ var story_report_v1_default = {
183
183
  $ref: "#/$defs/Scenario"
184
184
  },
185
185
  description: "Scenarios in this feature, in declaration order."
186
+ },
187
+ kind: {
188
+ type: "string",
189
+ enum: ["feature", "ability", "business-need"],
190
+ description: "How the feature was declared. Absent when the title was derived rather than declared."
191
+ },
192
+ narrative: {
193
+ type: "string",
194
+ description: "Markdown explaining why the feature exists and who it serves."
195
+ },
196
+ glossary: {
197
+ type: "array",
198
+ items: {
199
+ $ref: "#/$defs/GlossaryTerm"
200
+ },
201
+ description: "Terms this feature defines, linked wherever they appear in scenario text."
186
202
  }
187
203
  },
188
- required: [
189
- "id",
190
- "title",
191
- "sourceFile",
192
- "summary",
193
- "scenarios"
194
- ],
204
+ required: ["id", "title", "sourceFile", "summary", "scenarios"],
195
205
  additionalProperties: false
196
206
  },
197
207
  Scenario: {
@@ -321,6 +331,11 @@ var story_report_v1_default = {
321
331
  type: "number",
322
332
  minimum: 0
323
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
+ },
324
339
  errorMessage: {
325
340
  type: "string"
326
341
  },
@@ -348,33 +363,15 @@ var story_report_v1_default = {
348
363
  },
349
364
  StepKeyword: {
350
365
  type: "string",
351
- enum: [
352
- "Given",
353
- "When",
354
- "Then",
355
- "And",
356
- "But"
357
- ]
366
+ enum: ["Given", "When", "Then", "And", "But"]
358
367
  },
359
368
  StepMode: {
360
369
  type: "string",
361
- enum: [
362
- "normal",
363
- "skip",
364
- "only",
365
- "todo",
366
- "fails",
367
- "concurrent"
368
- ]
370
+ enum: ["normal", "skip", "only", "todo", "fails", "concurrent"]
369
371
  },
370
372
  TestStatus: {
371
373
  type: "string",
372
- enum: [
373
- "passed",
374
- "failed",
375
- "skipped",
376
- "pending"
377
- ]
374
+ enum: ["passed", "failed", "skipped", "pending"]
378
375
  },
379
376
  Ticket: {
380
377
  type: "object",
@@ -387,9 +384,7 @@ var story_report_v1_default = {
387
384
  type: "string"
388
385
  }
389
386
  },
390
- required: [
391
- "id"
392
- ],
387
+ required: ["id"],
393
388
  additionalProperties: false
394
389
  },
395
390
  Attachment: {
@@ -407,18 +402,10 @@ var story_report_v1_default = {
407
402
  },
408
403
  contentEncoding: {
409
404
  type: "string",
410
- enum: [
411
- "BASE64",
412
- "IDENTITY"
413
- ]
405
+ enum: ["BASE64", "IDENTITY"]
414
406
  }
415
407
  },
416
- required: [
417
- "name",
418
- "mediaType",
419
- "body",
420
- "contentEncoding"
421
- ],
408
+ required: ["name", "mediaType", "body", "contentEncoding"],
422
409
  additionalProperties: false
423
410
  },
424
411
  CIInfo: {
@@ -443,9 +430,7 @@ var story_report_v1_default = {
443
430
  type: "string"
444
431
  }
445
432
  },
446
- required: [
447
- "name"
448
- ],
433
+ required: ["name"],
449
434
  additionalProperties: false
450
435
  },
451
436
  CoverageSummary: {
@@ -476,10 +461,7 @@ var story_report_v1_default = {
476
461
  },
477
462
  DocPhase: {
478
463
  type: "string",
479
- enum: [
480
- "static",
481
- "runtime"
482
- ]
464
+ enum: ["static", "runtime"]
483
465
  },
484
466
  DocEntry: {
485
467
  oneOf: [
@@ -543,11 +525,7 @@ var story_report_v1_default = {
543
525
  }
544
526
  }
545
527
  },
546
- required: [
547
- "kind",
548
- "text",
549
- "phase"
550
- ],
528
+ required: ["kind", "text", "phase"],
551
529
  additionalProperties: false
552
530
  },
553
531
  DocTag: {
@@ -572,11 +550,7 @@ var story_report_v1_default = {
572
550
  }
573
551
  }
574
552
  },
575
- required: [
576
- "kind",
577
- "names",
578
- "phase"
579
- ],
553
+ required: ["kind", "names", "phase"],
580
554
  additionalProperties: false
581
555
  },
582
556
  DocKv: {
@@ -599,12 +573,7 @@ var story_report_v1_default = {
599
573
  }
600
574
  }
601
575
  },
602
- required: [
603
- "kind",
604
- "label",
605
- "value",
606
- "phase"
607
- ],
576
+ required: ["kind", "label", "value", "phase"],
608
577
  additionalProperties: false
609
578
  },
610
579
  DocCode: {
@@ -632,12 +601,7 @@ var story_report_v1_default = {
632
601
  }
633
602
  }
634
603
  },
635
- required: [
636
- "kind",
637
- "label",
638
- "content",
639
- "phase"
640
- ],
604
+ required: ["kind", "label", "content", "phase"],
641
605
  additionalProperties: false
642
606
  },
643
607
  DocTable: {
@@ -674,13 +638,7 @@ var story_report_v1_default = {
674
638
  }
675
639
  }
676
640
  },
677
- required: [
678
- "kind",
679
- "label",
680
- "columns",
681
- "rows",
682
- "phase"
683
- ],
641
+ required: ["kind", "label", "columns", "rows", "phase"],
684
642
  additionalProperties: false
685
643
  },
686
644
  DocLink: {
@@ -705,12 +663,7 @@ var story_report_v1_default = {
705
663
  }
706
664
  }
707
665
  },
708
- required: [
709
- "kind",
710
- "label",
711
- "url",
712
- "phase"
713
- ],
666
+ required: ["kind", "label", "url", "phase"],
714
667
  additionalProperties: false
715
668
  },
716
669
  DocSection: {
@@ -735,12 +688,7 @@ var story_report_v1_default = {
735
688
  }
736
689
  }
737
690
  },
738
- required: [
739
- "kind",
740
- "title",
741
- "markdown",
742
- "phase"
743
- ],
691
+ required: ["kind", "title", "markdown", "phase"],
744
692
  additionalProperties: false
745
693
  },
746
694
  DocMermaid: {
@@ -765,11 +713,7 @@ var story_report_v1_default = {
765
713
  }
766
714
  }
767
715
  },
768
- required: [
769
- "kind",
770
- "code",
771
- "phase"
772
- ],
716
+ required: ["kind", "code", "phase"],
773
717
  additionalProperties: false
774
718
  },
775
719
  DocScreenshot: {
@@ -794,11 +738,7 @@ var story_report_v1_default = {
794
738
  }
795
739
  }
796
740
  },
797
- required: [
798
- "kind",
799
- "path",
800
- "phase"
801
- ],
741
+ required: ["kind", "path", "phase"],
802
742
  additionalProperties: false
803
743
  },
804
744
  DocVideo: {
@@ -826,11 +766,7 @@ var story_report_v1_default = {
826
766
  }
827
767
  }
828
768
  },
829
- required: [
830
- "kind",
831
- "path",
832
- "phase"
833
- ],
769
+ required: ["kind", "path", "phase"],
834
770
  additionalProperties: false
835
771
  },
836
772
  DocHtml: {
@@ -871,26 +807,17 @@ var story_report_v1_default = {
871
807
  }
872
808
  }
873
809
  },
874
- required: [
875
- "kind",
876
- "phase"
877
- ],
810
+ required: ["kind", "phase"],
878
811
  additionalProperties: false,
879
812
  oneOf: [
880
813
  {
881
- required: [
882
- "path"
883
- ]
814
+ required: ["path"]
884
815
  },
885
816
  {
886
- required: [
887
- "url"
888
- ]
817
+ required: ["url"]
889
818
  },
890
819
  {
891
- required: [
892
- "content"
893
- ]
820
+ required: ["content"]
894
821
  }
895
822
  ]
896
823
  },
@@ -914,11 +841,7 @@ var story_report_v1_default = {
914
841
  }
915
842
  }
916
843
  },
917
- required: [
918
- "kind",
919
- "value",
920
- "phase"
921
- ],
844
+ required: ["kind", "value", "phase"],
922
845
  additionalProperties: false
923
846
  },
924
847
  DocCustom: {
@@ -942,21 +865,12 @@ var story_report_v1_default = {
942
865
  }
943
866
  }
944
867
  },
945
- required: [
946
- "kind",
947
- "type",
948
- "data",
949
- "phase"
950
- ],
868
+ required: ["kind", "type", "data", "phase"],
951
869
  additionalProperties: false
952
870
  },
953
871
  OtelSpan: {
954
872
  type: "object",
955
- required: [
956
- "spanId",
957
- "name",
958
- "status"
959
- ],
873
+ required: ["spanId", "name", "status"],
960
874
  properties: {
961
875
  spanId: {
962
876
  type: "string"
@@ -980,11 +894,7 @@ var story_report_v1_default = {
980
894
  type: "number"
981
895
  },
982
896
  status: {
983
- enum: [
984
- "ok",
985
- "error",
986
- "unset"
987
- ]
897
+ enum: ["ok", "error", "unset"]
988
898
  },
989
899
  statusMessage: {
990
900
  type: "string"
@@ -994,6 +904,22 @@ var story_report_v1_default = {
994
904
  }
995
905
  },
996
906
  additionalProperties: false
907
+ },
908
+ GlossaryTerm: {
909
+ type: "object",
910
+ description: "One glossary entry: a term the scenarios use and what it means.",
911
+ properties: {
912
+ term: {
913
+ type: "string",
914
+ minLength: 1
915
+ },
916
+ definition: {
917
+ type: "string",
918
+ minLength: 1
919
+ }
920
+ },
921
+ required: ["term", "definition"],
922
+ additionalProperties: false
997
923
  }
998
924
  }
999
925
  };
@@ -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. Derived from describe block when present, otherwise the 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 },\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 }\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":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACuBO,IAAM,KAAK,CAAI,UAAwB,EAAE,IAAI,MAAM,KAAK;AACxD,IAAM,MAAM,CAAC,WAA4C,EAAE,IAAI,OAAO,MAAM;;;ACbnF,iBAAkB;;;ACXlB;AAAA,EACE,SAAW;AAAA,EACX,KAAO;AAAA,EACP,OAAS;AAAA,EACT,aAAe;AAAA,EACf,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,OAAS;AAAA,IACP,aAAe;AAAA,MACb,MAAQ;AAAA,MACR,aAAe;AAAA,MACf,YAAc;AAAA,QACZ,eAAiB;AAAA,UACf,MAAQ;AAAA,UACR,SAAW;AAAA,UACX,aAAe;AAAA,QACjB;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,QACA,aAAe;AAAA,UACb,MAAQ;AAAA,UACR,SAAW;AAAA,UACX,aAAe;AAAA,QACjB;AAAA,QACA,cAAgB;AAAA,UACd,MAAQ;AAAA,UACR,SAAW;AAAA,UACX,aAAe;AAAA,QACjB;AAAA,QACA,YAAc;AAAA,UACZ,MAAQ;AAAA,UACR,SAAW;AAAA,UACX,aAAe;AAAA,QACjB;AAAA,QACA,aAAe;AAAA,UACb,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,QACA,gBAAkB;AAAA,UAChB,MAAQ;AAAA,UACR,aAAe;AAAA,QACjB;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,UACR,aAAe;AAAA,QACjB;AAAA,QACA,IAAM;AAAA,UACJ,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,UACR,aAAe;AAAA,QACjB;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,UACA,aAAe;AAAA,QACjB;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,aAAe;AAAA,MACf,YAAc;AAAA,QACZ,OAAS;AAAA,UACP,MAAQ;AAAA,UACR,SAAW;AAAA,QACb;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,UACR,SAAW;AAAA,QACb;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,UACR,SAAW;AAAA,QACb;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,UACR,SAAW;AAAA,QACb;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,UACR,SAAW;AAAA,QACb;AAAA,QACA,YAAc;AAAA,UACZ,MAAQ;AAAA,UACR,SAAW;AAAA,QACb;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,aAAe;AAAA,MACf,YAAc;AAAA,QACZ,IAAM;AAAA,UACJ,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,QACA,YAAc;AAAA,UACZ,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,QACA,WAAa;AAAA,UACX,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,UACA,aAAe;AAAA,QACjB;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,UAAY;AAAA,MACV,MAAQ;AAAA,MACR,aAAe;AAAA,MACf,YAAc;AAAA,QACZ,IAAM;AAAA,UACJ,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,UACR,WAAa;AAAA,QACf;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,UACR,aAAe;AAAA,QACjB;AAAA,QACA,YAAc;AAAA,UACZ,MAAQ;AAAA,UACR,SAAW;AAAA,QACb;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,UACA,aAAe;AAAA,QACjB;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,UACA,aAAe;AAAA,QACjB;AAAA,QACA,YAAc;AAAA,UACZ,MAAQ;AAAA,UACR,SAAW;AAAA,QACb;AAAA,QACA,cAAgB;AAAA,UACd,MAAQ;AAAA,QACV;AAAA,QACA,YAAc;AAAA,UACZ,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,UACR,SAAW;AAAA,QACb;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,UACR,SAAW;AAAA,QACb;AAAA,QACA,YAAc;AAAA,UACZ,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,UACA,aAAe;AAAA,QACjB;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,QACA,aAAe;AAAA,UACb,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,QACA,WAAa;AAAA,UACX,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,MAAQ;AAAA,MACN,MAAQ;AAAA,MACR,aAAe;AAAA,MACf,YAAc;AAAA,QACZ,IAAM;AAAA,UACJ,MAAQ;AAAA,UACR,WAAa;AAAA,QACf;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,UACR,SAAW;AAAA,QACb;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,QACV;AAAA,QACA,YAAc;AAAA,UACZ,MAAQ;AAAA,UACR,SAAW;AAAA,QACb;AAAA,QACA,cAAgB;AAAA,UACd,MAAQ;AAAA,QACV;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,YAAc;AAAA,UACZ,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,UACA,aAAe;AAAA,QACjB;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,aAAe;AAAA,MACb,MAAQ;AAAA,MACR,MAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA,UAAY;AAAA,MACV,MAAQ;AAAA,MACR,MAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA,YAAc;AAAA,MACZ,MAAQ;AAAA,MACR,MAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA,QAAU;AAAA,MACR,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,IAAM;AAAA,UACJ,MAAQ;AAAA,UACR,WAAa;AAAA,QACf;AAAA,QACA,KAAO;AAAA,UACL,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,YAAc;AAAA,MACZ,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,WAAa;AAAA,UACX,MAAQ;AAAA,UACR,WAAa;AAAA,QACf;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,iBAAmB;AAAA,UACjB,MAAQ;AAAA,UACR,MAAQ;AAAA,YACN;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,QAAU;AAAA,MACR,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,KAAO;AAAA,UACL,MAAQ;AAAA,QACV;AAAA,QACA,aAAe;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,QACV;AAAA,QACA,WAAa;AAAA,UACX,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,iBAAmB;AAAA,MACjB,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,SAAW;AAAA,UACX,SAAW;AAAA,QACb;AAAA,QACA,aAAe;AAAA,UACb,MAAQ;AAAA,UACR,SAAW;AAAA,UACX,SAAW;AAAA,QACb;AAAA,QACA,cAAgB;AAAA,UACd,MAAQ;AAAA,UACR,SAAW;AAAA,UACX,SAAW;AAAA,QACb;AAAA,QACA,eAAiB;AAAA,UACf,MAAQ;AAAA,UACR,SAAW;AAAA,UACX,SAAW;AAAA,QACb;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,UAAY;AAAA,MACV,MAAQ;AAAA,MACR,MAAQ;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA,UAAY;AAAA,MACV,OAAS;AAAA,QACP;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,QAAU;AAAA,MACR,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,OAAS;AAAA,MACP,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,OAAS,CAAC;AAAA,QACV,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,UAAY;AAAA,MACV,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,YACR,OAAS;AAAA,cACP,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,KAAO;AAAA,UACL,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,YAAc;AAAA,MACZ,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,YAAc;AAAA,MACZ,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,eAAiB;AAAA,MACf,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,KAAO;AAAA,UACL,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,UAAY;AAAA,MACV,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,KAAO;AAAA,UACL,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,MACxB,OAAS;AAAA,QACP;AAAA,UACE,UAAY;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,UAAY;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,UAAY;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,UAAY;AAAA,MACV,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,OAAS,CAAC;AAAA,QACV,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,WAAa;AAAA,MACX,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,UACR,WAAa;AAAA,QACf;AAAA,QACA,MAAQ,CAAC;AAAA,QACT,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,UAAY;AAAA,MACV,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,QAAU;AAAA,UACR,MAAQ;AAAA,QACV;AAAA,QACA,cAAgB;AAAA,UACd,MAAQ;AAAA,QACV;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,aAAe;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA,YAAc;AAAA,UACZ,MAAQ;AAAA,QACV;AAAA,QACA,mBAAqB;AAAA,UACnB,MAAQ;AAAA,QACV;AAAA,QACA,iBAAmB;AAAA,UACjB,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,YACN;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA,eAAiB;AAAA,UACf,MAAQ;AAAA,QACV;AAAA,QACA,YAAc;AAAA,UACZ,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,EACF;AACF;;;AC17BO,IAAM,4BAA4B;;;AFgBzC,IAAM,eAAe,gBAAgB,uBAAU;AAG/C,IAAI,aAAa,OAAO,SAAS;AAC/B,SAAO,aAAa,MAAM,QAAQ;AACpC;AAEA,IAAM,WAAW,aAAE,eAAe,YAAsD;AAEjF,IAAM,oBAAoB;;;AGrB1B,SAAS,iBAAiB,OAAqC;AACpE,MAAI,UAAU,QAAQ,OAAO,UAAU,UAAU;AAC/C,WAAO,IAAI;AAAA,MACT,SAAS;AAAA,MACT,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAEA,QAAM,aAAc,MAAsC;AAC1D,MAAI,OAAO,eAAe,UAAU;AAClC,UAAM,QAAQ,WAAW,MAAM,GAAG,EAAE,CAAC;AACrC,QAAI,UAAU,OAAO,yBAAyB,GAAG;AAC/C,aAAO,IAAI;AAAA,QACT,SAAS,gBAAgB,KAAK,2EAA2E,yBAAyB;AAAA,QAClI,MAAM;AAAA,MACR,CAAC;AAAA,IACH;AAAA,EACF;AAEA,QAAM,SAAS,kBAAkB,UAAU,KAAK;AAChD,MAAI,OAAO,SAAS;AAClB,WAAO,GAAG,OAAO,IAAmB;AAAA,EACtC;AAEA,QAAM,SAAS,OAAO,MAAM,OAAO,IAAI,CAAC,OAAO;AAAA,IAC7C,MAAM,EAAE,KAAK,KAAK,GAAG,KAAK;AAAA,IAC1B,SAAS,EAAE;AAAA,EACb,EAAE;AAEF,SAAO,IAAI;AAAA,IACT,SAAS,kCAAkC,OAAO,MAAM,SAAS,OAAO,WAAW,IAAI,KAAK,GAAG;AAAA,IAC/F,MAAM;AAAA,IACN;AAAA,EACF,CAAC;AACH;","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":[]}