@crvy/rprtr 0.0.4 → 0.0.5

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.js CHANGED
@@ -19601,11 +19601,13 @@ var LocationSchema = external_exports.object({
19601
19601
  file: external_exports.string(),
19602
19602
  line: external_exports.number()
19603
19603
  });
19604
+ var VisualSourceSchema = external_exports.enum(["comparison", "baseline-only", "declared-only"]);
19604
19605
  var ImagesSchema = external_exports.object({
19605
- actual: external_exports.string(),
19606
+ actual: external_exports.string().optional(),
19606
19607
  expect: external_exports.string().optional(),
19607
19608
  diff: external_exports.string().optional(),
19608
- error: external_exports.string().optional()
19609
+ error: external_exports.string().optional(),
19610
+ source: VisualSourceSchema.optional()
19609
19611
  });
19610
19612
  var AttachmentSchema = external_exports.object({
19611
19613
  name: external_exports.string(),
@@ -19613,10 +19615,10 @@ var AttachmentSchema = external_exports.object({
19613
19615
  contentType: external_exports.string()
19614
19616
  });
19615
19617
  var TestStatusSchema = external_exports.enum(["unknown", "pending", "running", "failed", "approved", "success", "retrying"]);
19618
+ var TestResultStatusSchema = external_exports.enum(["failed", "success", "pending"]);
19616
19619
  var TestResultSchema = external_exports.object({
19617
- status: external_exports.enum(["failed", "success"]),
19620
+ status: TestResultStatusSchema,
19618
19621
  retries: external_exports.number(),
19619
- // eslint-disable-next-line typescript/no-unsafe-type-assertion
19620
19622
  images: external_exports.record(external_exports.string(), ImagesSchema).optional(),
19621
19623
  error: external_exports.string().optional(),
19622
19624
  duration: external_exports.number().optional()
@@ -19645,7 +19647,6 @@ var CrvyRprtrSuiteSchema = external_exports.lazy(
19645
19647
  opened: external_exports.boolean(),
19646
19648
  checked: external_exports.boolean(),
19647
19649
  indeterminate: external_exports.boolean(),
19648
- // eslint-disable-next-line typescript/no-unsafe-type-assertion
19649
19650
  children: external_exports.record(external_exports.string(), external_exports.union([CrvyRprtrSuiteSchema, CrvyRprtrTestSchema])).optional()
19650
19651
  })
19651
19652
  );
@@ -19664,6 +19665,7 @@ var TestEndDataSchema = external_exports.object({
19664
19665
  id: external_exports.string(),
19665
19666
  status: external_exports.enum(["passed", "failed", "skipped"]),
19666
19667
  attachments: external_exports.array(AttachmentSchema),
19668
+ visualNames: external_exports.array(external_exports.string()).default([]),
19667
19669
  error: external_exports.string().optional(),
19668
19670
  duration: external_exports.number().optional()
19669
19671
  });
@@ -20216,13 +20218,15 @@ function SlideView($$anchor, $$props) {
20216
20218
  delegate(["input"]);
20217
20219
 
20218
20220
  // src/client/components/SideBySideView.svelte
20219
- var root_14 = from_html(`<div class="flex-1 flex flex-col bg-surface-panel rounded-md overflow-hidden min-w-0 border-2 border-green-500/60"><h3 class="m-0 px-3 py-2 text-xs font-bold bg-green-500/25 text-green-800 dark:text-green-200 uppercase tracking-wider">Expected</h3> <div class="flex items-center justify-center p-2"><img alt="Expected" class="w-auto max-w-full object-contain mx-auto" loading="lazy"/></div></div>`);
20220
- var root_24 = from_html(`<div class="flex-1 flex flex-col bg-surface-panel rounded-md overflow-hidden min-w-0 border-2 border-yellow-500/60"><h3 class="m-0 px-3 py-2 text-xs font-bold bg-yellow-500/25 text-yellow-800 dark:text-yellow-200 uppercase tracking-wider">Diff</h3> <div class="flex items-center justify-center p-2"><img alt="Diff" class="w-auto max-w-full object-contain mx-auto" loading="lazy"/></div></div>`);
20221
- var root_32 = from_html(`<div class="flex-1 flex flex-col bg-surface-panel rounded-md overflow-hidden min-w-0 border-2 border-red-500/60"><h3 class="m-0 px-3 py-2 text-xs font-bold bg-red-500/25 text-red-800 dark:text-red-200 uppercase tracking-wider">Actual</h3> <div class="flex items-center justify-center p-2"><img alt="Actual" class="w-auto max-w-full object-contain mx-auto" loading="lazy"/></div></div>`);
20221
+ var root_24 = from_html(`<div class="px-3 py-2 text-xs text-fg-muted border-t border-edge/70">Copied from the snapshot on disk.</div>`);
20222
+ var root_14 = from_html(`<div class="flex-1 flex flex-col bg-surface-panel rounded-md overflow-hidden min-w-0 border-2 border-green-500/60"><h3 class="m-0 px-3 py-2 text-xs font-bold bg-green-500/25 text-green-800 dark:text-green-200 uppercase tracking-wider"> </h3> <div class="flex items-center justify-center p-2"><img alt="Expected" class="w-auto max-w-full object-contain mx-auto" loading="lazy"/></div> <!></div>`);
20223
+ var root_32 = from_html(`<div class="flex-1 flex flex-col bg-surface-panel rounded-md overflow-hidden min-w-0 border-2 border-yellow-500/60"><h3 class="m-0 px-3 py-2 text-xs font-bold bg-yellow-500/25 text-yellow-800 dark:text-yellow-200 uppercase tracking-wider">Diff</h3> <div class="flex items-center justify-center p-2"><img alt="Diff" class="w-auto max-w-full object-contain mx-auto" loading="lazy"/></div></div>`);
20224
+ var root_42 = from_html(`<div class="flex-1 flex flex-col bg-surface-panel rounded-md overflow-hidden min-w-0 border-2 border-red-500/60"><h3 class="m-0 px-3 py-2 text-xs font-bold bg-red-500/25 text-red-800 dark:text-red-200 uppercase tracking-wider">Actual</h3> <div class="flex items-center justify-center p-2"><img alt="Actual" class="w-auto max-w-full object-contain mx-auto" loading="lazy"/></div></div>`);
20222
20225
  var root3 = from_html(`<div><!> <!> <!></div>`);
20223
20226
  function SideBySideView($$anchor, $$props) {
20224
20227
  push($$props, true);
20225
20228
  let isLandscape = state(false);
20229
+ let expectedLabel = user_derived(() => $$props.image.source === "baseline-only" && !$$props.image.actual && !$$props.image.diff ? "Baseline" : "Expected");
20226
20230
  user_effect(() => {
20227
20231
  const src = $$props.image.diff ?? $$props.image.expect ?? $$props.image.actual;
20228
20232
  if (!src) return;
@@ -20238,47 +20242,63 @@ function SideBySideView($$anchor, $$props) {
20238
20242
  let classes;
20239
20243
  var node = child(div);
20240
20244
  {
20241
- var consequent = ($$anchor2) => {
20245
+ var consequent_1 = ($$anchor2) => {
20242
20246
  var div_1 = root_14();
20243
- var div_2 = sibling(child(div_1), 2);
20247
+ var h3 = child(div_1);
20248
+ var text2 = child(h3, true);
20249
+ reset(h3);
20250
+ var div_2 = sibling(h3, 2);
20244
20251
  var img_1 = child(div_2);
20245
20252
  reset(div_2);
20253
+ var node_1 = sibling(div_2, 2);
20254
+ {
20255
+ var consequent = ($$anchor3) => {
20256
+ var div_3 = root_24();
20257
+ append($$anchor3, div_3);
20258
+ };
20259
+ if_block(node_1, ($$render) => {
20260
+ if ($$props.image.source === "baseline-only" && !$$props.image.actual && !$$props.image.diff) $$render(consequent);
20261
+ });
20262
+ }
20246
20263
  reset(div_1);
20247
- template_effect(() => set_attribute2(img_1, "src", $$props.image.expect));
20264
+ template_effect(() => {
20265
+ set_text(text2, get2(expectedLabel));
20266
+ set_attribute2(img_1, "src", $$props.image.expect);
20267
+ });
20248
20268
  append($$anchor2, div_1);
20249
20269
  };
20250
20270
  if_block(node, ($$render) => {
20251
- if ($$props.image.expect) $$render(consequent);
20271
+ if ($$props.image.expect) $$render(consequent_1);
20252
20272
  });
20253
20273
  }
20254
- var node_1 = sibling(node, 2);
20274
+ var node_2 = sibling(node, 2);
20255
20275
  {
20256
- var consequent_1 = ($$anchor2) => {
20257
- var div_3 = root_24();
20258
- var div_4 = sibling(child(div_3), 2);
20259
- var img_2 = child(div_4);
20276
+ var consequent_2 = ($$anchor2) => {
20277
+ var div_4 = root_32();
20278
+ var div_5 = sibling(child(div_4), 2);
20279
+ var img_2 = child(div_5);
20280
+ reset(div_5);
20260
20281
  reset(div_4);
20261
- reset(div_3);
20262
20282
  template_effect(() => set_attribute2(img_2, "src", $$props.image.diff));
20263
- append($$anchor2, div_3);
20283
+ append($$anchor2, div_4);
20264
20284
  };
20265
- if_block(node_1, ($$render) => {
20266
- if ($$props.image.diff) $$render(consequent_1);
20285
+ if_block(node_2, ($$render) => {
20286
+ if ($$props.image.diff) $$render(consequent_2);
20267
20287
  });
20268
20288
  }
20269
- var node_2 = sibling(node_1, 2);
20289
+ var node_3 = sibling(node_2, 2);
20270
20290
  {
20271
- var consequent_2 = ($$anchor2) => {
20272
- var div_5 = root_32();
20273
- var div_6 = sibling(child(div_5), 2);
20274
- var img_3 = child(div_6);
20291
+ var consequent_3 = ($$anchor2) => {
20292
+ var div_6 = root_42();
20293
+ var div_7 = sibling(child(div_6), 2);
20294
+ var img_3 = child(div_7);
20295
+ reset(div_7);
20275
20296
  reset(div_6);
20276
- reset(div_5);
20277
20297
  template_effect(() => set_attribute2(img_3, "src", $$props.image.actual));
20278
- append($$anchor2, div_5);
20298
+ append($$anchor2, div_6);
20279
20299
  };
20280
- if_block(node_2, ($$render) => {
20281
- if ($$props.image.actual) $$render(consequent_2);
20300
+ if_block(node_3, ($$render) => {
20301
+ if ($$props.image.actual) $$render(consequent_3);
20282
20302
  });
20283
20303
  }
20284
20304
  reset(div);
@@ -20425,14 +20445,20 @@ function BlendView($$anchor, $$props) {
20425
20445
 
20426
20446
  // src/client/components/ResultsPage.svelte
20427
20447
  var root_27 = from_html(`<button> </button>`);
20428
- var root_42 = from_html(`<button> </button>`);
20448
+ var root_43 = from_html(`<button> </button>`);
20429
20449
  var root_34 = from_html(`<div class="flex gap-1 flex-wrap justify-center mt-1"></div>`);
20430
20450
  var root_52 = from_html(`<div class="flex-1 flex items-center justify-center text-fg-muted text-base">No image to display</div>`);
20431
- var root_102 = from_html(`<div class="flex flex-col bg-surface-panel rounded-md overflow-hidden min-w-0 border-2 border-red-500/60"><h3 class="m-0 px-3 py-2 text-xs font-bold bg-red-500/25 text-red-800 dark:text-red-200 uppercase tracking-wider">Actual</h3> <div class="flex items-center justify-center p-2"><img alt="Actual" class="w-auto max-w-full object-contain mx-auto" loading="lazy"/></div></div>`);
20432
- var root_82 = from_html(`<div class="flex flex-col gap-3"><!></div>`);
20433
- var root_142 = from_html(`<button> </button>`);
20434
- var root_152 = from_html(`<span class="px-1 text-fg-muted text-xs"></span>`);
20435
- var root_122 = from_html(`<div class="py-2 px-5 bg-surface-alt border-t border-edge flex items-center justify-center gap-1 shrink-0"><button aria-label="Previous retry">&#8249;</button> <div class="flex gap-0.5 items-center"></div> <button aria-label="Next retry">&#8250;</button></div>`);
20451
+ var root_62 = from_html(`<div class="max-w-xl w-full rounded-md border border-edge bg-surface-panel px-5 py-6 text-center"><h3 class="m-0 text-sm font-semibold text-fg-bright uppercase tracking-wide">Passed Visual Assertion</h3> <p class="mt-3 text-sm leading-6 text-fg-muted">Playwright reported this screenshot assertion, but did not emit an actual, expected, or diff artifact for the passing comparison.</p></div>`);
20452
+ var root_82 = from_html(`<div class="mx-auto max-w-2xl w-full rounded-md border border-info/40 bg-info/10 px-4 py-3 text-sm text-fg">Baseline copied from the stored snapshot. Playwright did not emit a passed actual image for this comparison.</div>`);
20453
+ var root_7 = from_html(`<div class="w-full flex flex-col gap-3"><!> <!></div>`);
20454
+ var root_112 = from_html(`<div class="mx-auto max-w-2xl w-full rounded-md border border-info/40 bg-info/10 px-4 py-3 text-sm text-fg">Baseline copied from the stored snapshot. Playwright did not emit a passed actual image for this comparison.</div>`);
20455
+ var root_132 = from_html(`<div class="flex flex-col bg-surface-panel rounded-md overflow-hidden min-w-0 border-2 border-red-500/60"><h3 class="m-0 px-3 py-2 text-xs font-bold bg-red-500/25 text-red-800 dark:text-red-200 uppercase tracking-wider">Actual</h3> <div class="flex items-center justify-center p-2"><img alt="Actual" class="w-auto max-w-full object-contain mx-auto" loading="lazy"/></div></div>`);
20456
+ var root_102 = from_html(`<div class="flex flex-col gap-3"><!> <!></div>`);
20457
+ var root_152 = from_html(`<div class="mx-auto max-w-2xl w-full rounded-md border border-info/40 bg-info/10 px-4 py-3 text-sm text-fg">Baseline copied from the stored snapshot. Playwright did not emit a passed actual image for this comparison.</div>`);
20458
+ var root_142 = from_html(`<div class="w-full flex flex-col gap-3"><!> <!></div>`);
20459
+ var root_18 = from_html(`<button> </button>`);
20460
+ var root_19 = from_html(`<span class="px-1 text-fg-muted text-xs"></span>`);
20461
+ var root_162 = from_html(`<div class="py-2 px-5 bg-surface-alt border-t border-edge flex items-center justify-center gap-1 shrink-0"><button aria-label="Previous retry">&#8249;</button> <div class="flex gap-0.5 items-center"></div> <button aria-label="Next retry">&#8250;</button></div>`);
20436
20462
  var root6 = from_html(`<div class="flex flex-col h-full"><div class="py-3 px-5 max-md:px-3 bg-surface-alt border-b border-edge flex items-center gap-2 shrink-0"><div class="flex shrink-0 mr-3"><!></div> <div class="flex-1 flex flex-col items-center min-w-0 pr-10"><h2 class="text-base text-fg-bright m-0 font-medium whitespace-nowrap overflow-hidden text-ellipsis text-pretty max-w-full"> </h2> <!></div></div> <div class="flex-1 overflow-auto min-h-0"><div class="min-h-full p-4 max-md:p-2 flex justify-center items-center"><!></div></div> <!></div>`);
20437
20463
  function ResultsPage($$anchor, $$props) {
20438
20464
  push($$props, true);
@@ -20441,6 +20467,8 @@ function ResultsPage($$anchor, $$props) {
20441
20467
  let imageNames = user_derived(() => get2(result)?.images ? Object.keys(get2(result).images) : []);
20442
20468
  let totalRetries = user_derived(() => $$props.test.results?.length ?? 0);
20443
20469
  let hasDiffAndExpect = user_derived(() => Boolean(get2(image)?.diff && get2(image)?.expect));
20470
+ let isBaselineOnly = user_derived(() => get2(image)?.source === "baseline-only");
20471
+ let isDeclaredOnly = user_derived(() => get2(image)?.source === "declared-only");
20444
20472
  let imagesWithError = user_derived(() => get2(result)?.images ? Object.keys(get2(result).images).filter((name) => get2(result).status !== "success" && $$props.test.approved?.[name] !== $$props.retry - 1 && get2(result).images?.[name]?.diff !== null) : []);
20445
20473
  let imagesApproved = user_derived(() => get2(result)?.images ? Object.keys(get2(result).images).filter((name) => $$props.test.approved?.[name] === $$props.retry - 1) : []);
20446
20474
  function handleKeydown(e) {
@@ -20501,7 +20529,7 @@ function ResultsPage($$anchor, $$props) {
20501
20529
  var consequent_1 = ($$anchor2) => {
20502
20530
  var div_4 = root_34();
20503
20531
  each(div_4, 21, () => get2(imageNames), index, ($$anchor3, name) => {
20504
- var button_1 = root_42();
20532
+ var button_1 = root_43();
20505
20533
  var text_2 = child(button_1, true);
20506
20534
  reset(button_1);
20507
20535
  template_effect(
@@ -20534,24 +20562,52 @@ function ResultsPage($$anchor, $$props) {
20534
20562
  append($$anchor2, div_7);
20535
20563
  };
20536
20564
  var consequent_3 = ($$anchor2) => {
20537
- SideBySideView($$anchor2, {
20565
+ var div_8 = root_62();
20566
+ append($$anchor2, div_8);
20567
+ };
20568
+ var consequent_5 = ($$anchor2) => {
20569
+ var div_9 = root_7();
20570
+ var node_4 = child(div_9);
20571
+ {
20572
+ var consequent_4 = ($$anchor3) => {
20573
+ var div_10 = root_82();
20574
+ append($$anchor3, div_10);
20575
+ };
20576
+ if_block(node_4, ($$render) => {
20577
+ if (get2(isBaselineOnly)) $$render(consequent_4);
20578
+ });
20579
+ }
20580
+ var node_5 = sibling(node_4, 2);
20581
+ SideBySideView(node_5, {
20538
20582
  get image() {
20539
20583
  return get2(image);
20540
20584
  }
20541
20585
  });
20586
+ reset(div_9);
20587
+ append($$anchor2, div_9);
20542
20588
  };
20543
- var consequent_4 = ($$anchor2) => {
20589
+ var consequent_6 = ($$anchor2) => {
20544
20590
  SwapView($$anchor2, {
20545
20591
  get image() {
20546
20592
  return get2(image);
20547
20593
  }
20548
20594
  });
20549
20595
  };
20550
- var consequent_7 = ($$anchor2) => {
20551
- var div_8 = root_82();
20552
- var node_4 = child(div_8);
20596
+ var consequent_10 = ($$anchor2) => {
20597
+ var div_11 = root_102();
20598
+ var node_6 = child(div_11);
20599
+ {
20600
+ var consequent_7 = ($$anchor3) => {
20601
+ var div_12 = root_112();
20602
+ append($$anchor3, div_12);
20603
+ };
20604
+ if_block(node_6, ($$render) => {
20605
+ if (get2(isBaselineOnly)) $$render(consequent_7);
20606
+ });
20607
+ }
20608
+ var node_7 = sibling(node_6, 2);
20553
20609
  {
20554
- var consequent_5 = ($$anchor3) => {
20610
+ var consequent_8 = ($$anchor3) => {
20555
20611
  SlideView($$anchor3, {
20556
20612
  get actual() {
20557
20613
  return get2(image).actual;
@@ -20564,52 +20620,67 @@ function ResultsPage($$anchor, $$props) {
20564
20620
  }
20565
20621
  });
20566
20622
  };
20567
- var consequent_6 = ($$anchor3) => {
20568
- var div_9 = root_102();
20569
- var div_10 = sibling(child(div_9), 2);
20570
- var img = child(div_10);
20571
- reset(div_10);
20572
- reset(div_9);
20623
+ var consequent_9 = ($$anchor3) => {
20624
+ var div_13 = root_132();
20625
+ var div_14 = sibling(child(div_13), 2);
20626
+ var img = child(div_14);
20627
+ reset(div_14);
20628
+ reset(div_13);
20573
20629
  template_effect(() => set_attribute2(img, "src", get2(image).actual));
20574
- append($$anchor3, div_9);
20630
+ append($$anchor3, div_13);
20575
20631
  };
20576
- if_block(node_4, ($$render) => {
20577
- if (get2(image).actual && get2(image).expect && get2(image).diff) $$render(consequent_5);
20578
- else if (get2(image).actual) $$render(consequent_6, 1);
20632
+ if_block(node_7, ($$render) => {
20633
+ if (get2(image).actual && get2(image).expect && get2(image).diff) $$render(consequent_8);
20634
+ else if (get2(image).actual) $$render(consequent_9, 1);
20579
20635
  });
20580
20636
  }
20581
- reset(div_8);
20582
- append($$anchor2, div_8);
20637
+ reset(div_11);
20638
+ append($$anchor2, div_11);
20583
20639
  };
20584
- var consequent_8 = ($$anchor2) => {
20585
- BlendView($$anchor2, {
20640
+ var consequent_12 = ($$anchor2) => {
20641
+ var div_15 = root_142();
20642
+ var node_8 = child(div_15);
20643
+ {
20644
+ var consequent_11 = ($$anchor3) => {
20645
+ var div_16 = root_152();
20646
+ append($$anchor3, div_16);
20647
+ };
20648
+ if_block(node_8, ($$render) => {
20649
+ if (get2(isBaselineOnly)) $$render(consequent_11);
20650
+ });
20651
+ }
20652
+ var node_9 = sibling(node_8, 2);
20653
+ BlendView(node_9, {
20586
20654
  get image() {
20587
20655
  return get2(image);
20588
20656
  }
20589
20657
  });
20658
+ reset(div_15);
20659
+ append($$anchor2, div_15);
20590
20660
  };
20591
20661
  if_block(node_3, ($$render) => {
20592
20662
  if (!get2(image)) $$render(consequent_2);
20593
- else if ($$props.viewMode === "side-by-side" || !get2(hasDiffAndExpect)) $$render(consequent_3, 1);
20594
- else if ($$props.viewMode === "swap") $$render(consequent_4, 2);
20595
- else if ($$props.viewMode === "slide") $$render(consequent_7, 3);
20596
- else if ($$props.viewMode === "blend") $$render(consequent_8, 4);
20663
+ else if (get2(isDeclaredOnly)) $$render(consequent_3, 1);
20664
+ else if ($$props.viewMode === "side-by-side" || !get2(hasDiffAndExpect)) $$render(consequent_5, 2);
20665
+ else if ($$props.viewMode === "swap") $$render(consequent_6, 3);
20666
+ else if ($$props.viewMode === "slide") $$render(consequent_10, 4);
20667
+ else if ($$props.viewMode === "blend") $$render(consequent_12, 5);
20597
20668
  });
20598
20669
  }
20599
20670
  reset(div_6);
20600
20671
  reset(div_5);
20601
- var node_5 = sibling(div_5, 2);
20672
+ var node_10 = sibling(div_5, 2);
20602
20673
  {
20603
- var consequent_11 = ($$anchor2) => {
20604
- var div_11 = root_122();
20605
- var button_2 = child(div_11);
20606
- var div_12 = sibling(button_2, 2);
20607
- each(div_12, 21, () => Array.from({ length: get2(totalRetries) }, (_, i) => i + 1), index, ($$anchor3, page) => {
20608
- var fragment_5 = comment();
20609
- var node_6 = first_child(fragment_5);
20674
+ var consequent_15 = ($$anchor2) => {
20675
+ var div_17 = root_162();
20676
+ var button_2 = child(div_17);
20677
+ var div_18 = sibling(button_2, 2);
20678
+ each(div_18, 21, () => Array.from({ length: get2(totalRetries) }, (_, i) => i + 1), index, ($$anchor3, page) => {
20679
+ var fragment_3 = comment();
20680
+ var node_11 = first_child(fragment_3);
20610
20681
  {
20611
- var consequent_9 = ($$anchor4) => {
20612
- var button_3 = root_142();
20682
+ var consequent_13 = ($$anchor4) => {
20683
+ var button_3 = root_18();
20613
20684
  var text_3 = child(button_3, true);
20614
20685
  reset(button_3);
20615
20686
  template_effect(
@@ -20625,21 +20696,21 @@ function ResultsPage($$anchor, $$props) {
20625
20696
  append($$anchor4, button_3);
20626
20697
  };
20627
20698
  var d = user_derived(() => get2(totalRetries) <= 7 || get2(page) === 1 || get2(page) === get2(totalRetries) || Math.abs(get2(page) - $$props.retry) <= 1);
20628
- var consequent_10 = ($$anchor4) => {
20629
- var span = root_152();
20699
+ var consequent_14 = ($$anchor4) => {
20700
+ var span = root_19();
20630
20701
  span.textContent = "\u2026";
20631
20702
  append($$anchor4, span);
20632
20703
  };
20633
- if_block(node_6, ($$render) => {
20634
- if (get2(d)) $$render(consequent_9);
20635
- else if (get2(page) === 2 || get2(page) === get2(totalRetries) - 1) $$render(consequent_10, 1);
20704
+ if_block(node_11, ($$render) => {
20705
+ if (get2(d)) $$render(consequent_13);
20706
+ else if (get2(page) === 2 || get2(page) === get2(totalRetries) - 1) $$render(consequent_14, 1);
20636
20707
  });
20637
20708
  }
20638
- append($$anchor3, fragment_5);
20709
+ append($$anchor3, fragment_3);
20639
20710
  });
20640
- reset(div_12);
20641
- var button_4 = sibling(div_12, 2);
20642
- reset(div_11);
20711
+ reset(div_18);
20712
+ var button_4 = sibling(div_18, 2);
20713
+ reset(div_17);
20643
20714
  template_effect(
20644
20715
  ($0, $1) => {
20645
20716
  set_class(button_2, 1, $0);
@@ -20654,10 +20725,10 @@ function ResultsPage($$anchor, $$props) {
20654
20725
  );
20655
20726
  delegated("click", button_2, () => $$props.onRetryChange($$props.retry - 1));
20656
20727
  delegated("click", button_4, () => $$props.onRetryChange($$props.retry + 1));
20657
- append($$anchor2, div_11);
20728
+ append($$anchor2, div_17);
20658
20729
  };
20659
- if_block(node_5, ($$render) => {
20660
- if (get2(totalRetries) > 1) $$render(consequent_11);
20730
+ if_block(node_10, ($$render) => {
20731
+ if (get2(totalRetries) > 1) $$render(consequent_15);
20661
20732
  });
20662
20733
  }
20663
20734
  reset(div);
@@ -1 +1 @@
1
- {"version":3,"file":"report-state.d.ts","sourceRoot":"","sources":["../src/report-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,KAAK,EAAU,QAAQ,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,iBAAiB,CAAA;IAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB;AA0BD,wBAAgB,wBAAwB,CAAC,aAAa,SAAkB,GAAG,kBAAkB,CAW5F;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,GAAG,QAAQ,CAa5F;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5C,kBAAkB,GAAG,IAAI,CAkC3B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAa/G"}
1
+ {"version":3,"file":"report-state.d.ts","sourceRoot":"","sources":["../src/report-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,KAAK,EAAU,QAAQ,EAAc,MAAM,YAAY,CAAA;AAE9D,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,iBAAiB,CAAA;IAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB;AA0DD,wBAAgB,wBAAwB,CAAC,aAAa,SAAkB,GAAG,kBAAkB,CAW5F;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,GAAG,QAAQ,CAa5F;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5C,kBAAkB,GAAG,IAAI,CAoC3B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAa/G"}
@@ -1,5 +1,7 @@
1
1
  import type { Attachment } from './schemas.ts';
2
- import type { Images, TestData } from './types.ts';
2
+ import type { Images, TestData, VisualSource } from './types.ts';
3
+ export declare function classifyImage(image: Images): VisualSource;
4
+ export declare function mergeDeclaredImages(images: Partial<Record<string, Images>>, visualNames: readonly string[]): Partial<Record<string, Images>>;
3
5
  export declare function attachmentsToImages(attachments: Attachment[], screenshotsBaseUrl?: string): Partial<Record<string, Images>>;
4
6
  export declare function mapStatus(status: 'passed' | 'failed' | 'skipped'): TestData['status'];
5
7
  //# sourceMappingURL=report-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"report-utils.d.ts","sourceRoot":"","sources":["../src/report-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAMlD,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,UAAU,EAAE,EACzB,kBAAkB,SAAkB,GACnC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAqCjC;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAWrF"}
1
+ {"version":3,"file":"report-utils.d.ts","sourceRoot":"","sources":["../src/report-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAMhE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAUzD;AASD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACvC,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CASjC;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,UAAU,EAAE,EACzB,kBAAkB,SAAkB,GACnC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgCjC;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAWrF"}
@@ -1,3 +1,13 @@
1
1
  import type { TestStep } from '@playwright/test/reporter';
2
- export declare function extractScreenshotNames(steps: TestStep[]): string[];
2
+ export interface ScreenshotDeclaration {
3
+ visualName: string;
4
+ snapshotBaseName?: string;
5
+ }
6
+ export interface AttachmentData {
7
+ name: string;
8
+ path: string;
9
+ contentType: string;
10
+ }
11
+ export declare function extractScreenshotDeclarations(steps: readonly TestStep[]): ScreenshotDeclaration[];
12
+ export declare function extractScreenshotNames(steps: readonly TestStep[]): string[];
3
13
  //# sourceMappingURL=reporter-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reporter-utils.d.ts","sourceRoot":"","sources":["../src/reporter-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAEzD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAQlE"}
1
+ {"version":3,"file":"reporter-utils.d.ts","sourceRoot":"","sources":["../src/reporter-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAMzD,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB;AAkED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,qBAAqB,EAAE,CAYjG;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,EAAE,CAE3E"}