@riddledc/riddle-proof 0.7.174 → 0.7.176
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/{chunk-BD4RHTGW.js → chunk-GDFGO66T.js} +77 -7
- package/dist/cli.cjs +77 -7
- package/dist/cli.js +1 -1
- package/dist/index.cjs +77 -7
- package/dist/index.js +1 -1
- package/dist/profile.cjs +77 -7
- package/dist/profile.js +1 -1
- package/package.json +1 -1
|
@@ -2637,6 +2637,27 @@ function successfulRoute(route, targetUrl) {
|
|
|
2637
2637
|
const matched = route.matched || routePathMatches(route.observed, route.expected_path, targetUrl);
|
|
2638
2638
|
return matched && !route.error && (route.http_status === null || route.http_status === void 0 || route.http_status < 400);
|
|
2639
2639
|
}
|
|
2640
|
+
function routeReadinessFailed(route, targetUrl) {
|
|
2641
|
+
const matched = route.matched || routePathMatches(route.observed, route.expected_path, targetUrl);
|
|
2642
|
+
const httpOk = route.http_status === null || route.http_status === void 0 || route.http_status < 400;
|
|
2643
|
+
return matched && httpOk && Boolean(route.error);
|
|
2644
|
+
}
|
|
2645
|
+
function compactRouteError(error) {
|
|
2646
|
+
const text = typeof error === "string" ? error.replace(/\s+/g, " ").trim() : "";
|
|
2647
|
+
return text ? text.slice(0, 240) : void 0;
|
|
2648
|
+
}
|
|
2649
|
+
function routeLoadedFailureMessage(failedRoutes, expectedPath, targetUrl) {
|
|
2650
|
+
const readinessFailures = failedRoutes.filter((route) => routeReadinessFailed(route, targetUrl));
|
|
2651
|
+
if (readinessFailures.length === failedRoutes.length && readinessFailures.length) {
|
|
2652
|
+
const sample = compactRouteError(readinessFailures.find((route) => route.error)?.error);
|
|
2653
|
+
return `Route matched ${expectedPath}, but readiness failed in ${readinessFailures.length} viewport(s)${sample ? `: ${sample}` : "."}`;
|
|
2654
|
+
}
|
|
2655
|
+
if (readinessFailures.length) {
|
|
2656
|
+
const sample = compactRouteError(readinessFailures.find((route) => route.error)?.error);
|
|
2657
|
+
return `Route did not become ready as ${expectedPath} in ${failedRoutes.length} viewport(s); ${readinessFailures.length} matched path and HTTP but failed readiness${sample ? `: ${sample}` : "."}`;
|
|
2658
|
+
}
|
|
2659
|
+
return `Route did not load as ${expectedPath} in ${failedRoutes.length} viewport(s).`;
|
|
2660
|
+
}
|
|
2640
2661
|
function parseEvidenceUrl(value, targetUrl) {
|
|
2641
2662
|
if (!value) return void 0;
|
|
2642
2663
|
try {
|
|
@@ -2706,11 +2727,12 @@ function assessCheckFromEvidence(check, evidence) {
|
|
|
2706
2727
|
}
|
|
2707
2728
|
if (check.type === "route_loaded") {
|
|
2708
2729
|
const expectedPath = check.expected_path || new URL(evidence.target_url).pathname || "/";
|
|
2709
|
-
const
|
|
2730
|
+
const routes = viewports.map((viewport) => ({
|
|
2710
2731
|
...viewport.route,
|
|
2711
2732
|
expected_path: expectedPath,
|
|
2712
2733
|
matched: routePathMatches(viewport.route.observed, expectedPath, evidence.target_url) || viewport.route.matched
|
|
2713
|
-
}
|
|
2734
|
+
}));
|
|
2735
|
+
const failed = routes.filter((route) => !successfulRoute(route, evidence.target_url));
|
|
2714
2736
|
return {
|
|
2715
2737
|
type: check.type,
|
|
2716
2738
|
label: checkLabel(check),
|
|
@@ -2718,9 +2740,10 @@ function assessCheckFromEvidence(check, evidence) {
|
|
|
2718
2740
|
evidence: {
|
|
2719
2741
|
expected_path: expectedPath,
|
|
2720
2742
|
observed_paths: viewports.map((viewport) => viewport.route.observed),
|
|
2721
|
-
http_statuses: viewports.map((viewport) => viewport.route.http_status ?? null)
|
|
2743
|
+
http_statuses: viewports.map((viewport) => viewport.route.http_status ?? null),
|
|
2744
|
+
route_errors: viewports.map((viewport) => viewport.route.error ?? null)
|
|
2722
2745
|
},
|
|
2723
|
-
message: failed.length ?
|
|
2746
|
+
message: failed.length ? routeLoadedFailureMessage(failed, expectedPath, evidence.target_url) : void 0
|
|
2724
2747
|
};
|
|
2725
2748
|
}
|
|
2726
2749
|
if (check.type === "url_search_param_equals") {
|
|
@@ -3588,6 +3611,29 @@ function routePathMatches(observed, expected, targetUrl) {
|
|
|
3588
3611
|
function routeOk(route, targetUrl) {
|
|
3589
3612
|
return Boolean(route && (route.matched || routePathMatches(route.observed, route.expected_path, targetUrl)) && !route.error && (route.http_status == null || route.http_status < 400));
|
|
3590
3613
|
}
|
|
3614
|
+
function routeReadinessFailed(route, targetUrl) {
|
|
3615
|
+
const matched = route && (route.matched || routePathMatches(route.observed, route.expected_path, targetUrl));
|
|
3616
|
+
const httpOk = route && (route.http_status == null || route.http_status < 400);
|
|
3617
|
+
return Boolean(matched && httpOk && route.error);
|
|
3618
|
+
}
|
|
3619
|
+
function compactRouteError(error) {
|
|
3620
|
+
const text = typeof error === "string" ? error.replace(/\s+/g, " ").trim() : "";
|
|
3621
|
+
return text ? text.slice(0, 240) : undefined;
|
|
3622
|
+
}
|
|
3623
|
+
function routeLoadedFailureMessage(failedRoutes, expectedPath, targetUrl) {
|
|
3624
|
+
const readinessFailures = failedRoutes.filter((route) => routeReadinessFailed(route, targetUrl));
|
|
3625
|
+
if (readinessFailures.length === failedRoutes.length && readinessFailures.length) {
|
|
3626
|
+
const sampleRoute = readinessFailures.find((route) => route && route.error);
|
|
3627
|
+
const sample = compactRouteError(sampleRoute && sampleRoute.error);
|
|
3628
|
+
return "Route matched " + expectedPath + ", but readiness failed in " + readinessFailures.length + " viewport(s)" + (sample ? ": " + sample : ".");
|
|
3629
|
+
}
|
|
3630
|
+
if (readinessFailures.length) {
|
|
3631
|
+
const sampleRoute = readinessFailures.find((route) => route && route.error);
|
|
3632
|
+
const sample = compactRouteError(sampleRoute && sampleRoute.error);
|
|
3633
|
+
return "Route did not become ready as " + expectedPath + " in " + failedRoutes.length + " viewport(s); " + readinessFailures.length + " matched path and HTTP but failed readiness" + (sample ? ": " + sample : ".");
|
|
3634
|
+
}
|
|
3635
|
+
return "Route did not load as " + expectedPath + " in " + failedRoutes.length + " viewport(s).";
|
|
3636
|
+
}
|
|
3591
3637
|
function parseEvidenceUrl(value, targetUrl) {
|
|
3592
3638
|
if (!value) return null;
|
|
3593
3639
|
try { return targetUrl ? new URL(value, targetUrl) : new URL(value); } catch {}
|
|
@@ -4409,6 +4455,23 @@ function profileSetupDragReceipts(results) {
|
|
|
4409
4455
|
reason: result.reason || result.error || null,
|
|
4410
4456
|
}));
|
|
4411
4457
|
}
|
|
4458
|
+
function profileSetupTapReceipts(results) {
|
|
4459
|
+
return (results || [])
|
|
4460
|
+
.filter((result) => result && profileSetupResultAction(result) === "tap")
|
|
4461
|
+
.map((result) => ({
|
|
4462
|
+
ordinal: result.ordinal ?? null,
|
|
4463
|
+
ok: result.ok !== false,
|
|
4464
|
+
selector: result.selector ?? null,
|
|
4465
|
+
frame_selector: result.frame_selector ?? null,
|
|
4466
|
+
pointer_type: result.pointer_type ?? null,
|
|
4467
|
+
input_dispatch: result.input_dispatch ?? null,
|
|
4468
|
+
coordinate_mode: result.coordinate_mode ?? null,
|
|
4469
|
+
x: result.x ?? null,
|
|
4470
|
+
y: result.y ?? null,
|
|
4471
|
+
duration_ms: result.duration_ms ?? null,
|
|
4472
|
+
reason: result.reason || result.error || null,
|
|
4473
|
+
}));
|
|
4474
|
+
}
|
|
4412
4475
|
function profileSetupCanvasSignatureReceipts(results) {
|
|
4413
4476
|
return (results || [])
|
|
4414
4477
|
.filter((result) => result && profileSetupResultAction(result) === "canvas_signature")
|
|
@@ -4595,6 +4658,8 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountsByViewp
|
|
|
4595
4658
|
const sampledRangeValueReceipts = sampleProfileSetupSummaryItems(rangeValueReceipts, 8);
|
|
4596
4659
|
const dragReceipts = profileSetupDragReceipts(results);
|
|
4597
4660
|
const sampledDragReceipts = sampleProfileSetupSummaryItems(dragReceipts, 8);
|
|
4661
|
+
const tapReceipts = profileSetupTapReceipts(results);
|
|
4662
|
+
const sampledTapReceipts = sampleProfileSetupSummaryItems(tapReceipts, 8);
|
|
4598
4663
|
const canvasSignatureReceipts = profileSetupCanvasSignatureReceipts(results);
|
|
4599
4664
|
const sampledCanvasSignatureReceipts = sampleProfileSetupSummaryItems(canvasSignatureReceipts, 8);
|
|
4600
4665
|
const clickedItems = results
|
|
@@ -4669,6 +4734,9 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountsByViewp
|
|
|
4669
4734
|
drag_total: dragReceipts.length,
|
|
4670
4735
|
drag_truncated: dragReceipts.length > sampledDragReceipts.length,
|
|
4671
4736
|
drag: sampledDragReceipts,
|
|
4737
|
+
tap_total: tapReceipts.length,
|
|
4738
|
+
tap_truncated: tapReceipts.length > sampledTapReceipts.length,
|
|
4739
|
+
tap: sampledTapReceipts,
|
|
4672
4740
|
canvas_signature_total: canvasSignatureReceipts.length,
|
|
4673
4741
|
canvas_signature_truncated: canvasSignatureReceipts.length > sampledCanvasSignatureReceipts.length,
|
|
4674
4742
|
canvas_signature: sampledCanvasSignatureReceipts,
|
|
@@ -4867,11 +4935,12 @@ function assessProfile(profile, evidence) {
|
|
|
4867
4935
|
}
|
|
4868
4936
|
if (check.type === "route_loaded") {
|
|
4869
4937
|
const expectedPath = check.expected_path || new URL(evidence.target_url).pathname || "/";
|
|
4870
|
-
const
|
|
4938
|
+
const routes = checkViewports.map((viewport) => {
|
|
4871
4939
|
const route = { ...(viewport.route || {}), expected_path: expectedPath };
|
|
4872
4940
|
route.matched = routePathMatches(route.observed, expectedPath, evidence.target_url) || route.matched;
|
|
4873
|
-
return
|
|
4941
|
+
return route;
|
|
4874
4942
|
});
|
|
4943
|
+
const failed = routes.filter((route) => !routeOk(route, evidence.target_url));
|
|
4875
4944
|
checks.push({
|
|
4876
4945
|
type: check.type,
|
|
4877
4946
|
label: check.label || check.type,
|
|
@@ -4880,8 +4949,9 @@ function assessProfile(profile, evidence) {
|
|
|
4880
4949
|
expected_path: expectedPath,
|
|
4881
4950
|
observed_paths: checkViewports.map((viewport) => viewport.route && viewport.route.observed),
|
|
4882
4951
|
http_statuses: checkViewports.map((viewport) => viewport.route ? viewport.route.http_status ?? null : null),
|
|
4952
|
+
route_errors: checkViewports.map((viewport) => viewport.route ? viewport.route.error ?? null : null),
|
|
4883
4953
|
},
|
|
4884
|
-
message: failed.length ?
|
|
4954
|
+
message: failed.length ? routeLoadedFailureMessage(failed, expectedPath, evidence.target_url) : undefined,
|
|
4885
4955
|
});
|
|
4886
4956
|
continue;
|
|
4887
4957
|
}
|
package/dist/cli.cjs
CHANGED
|
@@ -9594,6 +9594,27 @@ function successfulRoute(route, targetUrl) {
|
|
|
9594
9594
|
const matched = route.matched || routePathMatches(route.observed, route.expected_path, targetUrl);
|
|
9595
9595
|
return matched && !route.error && (route.http_status === null || route.http_status === void 0 || route.http_status < 400);
|
|
9596
9596
|
}
|
|
9597
|
+
function routeReadinessFailed(route, targetUrl) {
|
|
9598
|
+
const matched = route.matched || routePathMatches(route.observed, route.expected_path, targetUrl);
|
|
9599
|
+
const httpOk = route.http_status === null || route.http_status === void 0 || route.http_status < 400;
|
|
9600
|
+
return matched && httpOk && Boolean(route.error);
|
|
9601
|
+
}
|
|
9602
|
+
function compactRouteError(error) {
|
|
9603
|
+
const text = typeof error === "string" ? error.replace(/\s+/g, " ").trim() : "";
|
|
9604
|
+
return text ? text.slice(0, 240) : void 0;
|
|
9605
|
+
}
|
|
9606
|
+
function routeLoadedFailureMessage(failedRoutes, expectedPath, targetUrl) {
|
|
9607
|
+
const readinessFailures = failedRoutes.filter((route) => routeReadinessFailed(route, targetUrl));
|
|
9608
|
+
if (readinessFailures.length === failedRoutes.length && readinessFailures.length) {
|
|
9609
|
+
const sample = compactRouteError(readinessFailures.find((route) => route.error)?.error);
|
|
9610
|
+
return `Route matched ${expectedPath}, but readiness failed in ${readinessFailures.length} viewport(s)${sample ? `: ${sample}` : "."}`;
|
|
9611
|
+
}
|
|
9612
|
+
if (readinessFailures.length) {
|
|
9613
|
+
const sample = compactRouteError(readinessFailures.find((route) => route.error)?.error);
|
|
9614
|
+
return `Route did not become ready as ${expectedPath} in ${failedRoutes.length} viewport(s); ${readinessFailures.length} matched path and HTTP but failed readiness${sample ? `: ${sample}` : "."}`;
|
|
9615
|
+
}
|
|
9616
|
+
return `Route did not load as ${expectedPath} in ${failedRoutes.length} viewport(s).`;
|
|
9617
|
+
}
|
|
9597
9618
|
function parseEvidenceUrl(value, targetUrl) {
|
|
9598
9619
|
if (!value) return void 0;
|
|
9599
9620
|
try {
|
|
@@ -9663,11 +9684,12 @@ function assessCheckFromEvidence(check, evidence) {
|
|
|
9663
9684
|
}
|
|
9664
9685
|
if (check.type === "route_loaded") {
|
|
9665
9686
|
const expectedPath = check.expected_path || new URL(evidence.target_url).pathname || "/";
|
|
9666
|
-
const
|
|
9687
|
+
const routes = viewports.map((viewport) => ({
|
|
9667
9688
|
...viewport.route,
|
|
9668
9689
|
expected_path: expectedPath,
|
|
9669
9690
|
matched: routePathMatches(viewport.route.observed, expectedPath, evidence.target_url) || viewport.route.matched
|
|
9670
|
-
}
|
|
9691
|
+
}));
|
|
9692
|
+
const failed = routes.filter((route) => !successfulRoute(route, evidence.target_url));
|
|
9671
9693
|
return {
|
|
9672
9694
|
type: check.type,
|
|
9673
9695
|
label: checkLabel(check),
|
|
@@ -9675,9 +9697,10 @@ function assessCheckFromEvidence(check, evidence) {
|
|
|
9675
9697
|
evidence: {
|
|
9676
9698
|
expected_path: expectedPath,
|
|
9677
9699
|
observed_paths: viewports.map((viewport) => viewport.route.observed),
|
|
9678
|
-
http_statuses: viewports.map((viewport) => viewport.route.http_status ?? null)
|
|
9700
|
+
http_statuses: viewports.map((viewport) => viewport.route.http_status ?? null),
|
|
9701
|
+
route_errors: viewports.map((viewport) => viewport.route.error ?? null)
|
|
9679
9702
|
},
|
|
9680
|
-
message: failed.length ?
|
|
9703
|
+
message: failed.length ? routeLoadedFailureMessage(failed, expectedPath, evidence.target_url) : void 0
|
|
9681
9704
|
};
|
|
9682
9705
|
}
|
|
9683
9706
|
if (check.type === "url_search_param_equals") {
|
|
@@ -10529,6 +10552,29 @@ function routePathMatches(observed, expected, targetUrl) {
|
|
|
10529
10552
|
function routeOk(route, targetUrl) {
|
|
10530
10553
|
return Boolean(route && (route.matched || routePathMatches(route.observed, route.expected_path, targetUrl)) && !route.error && (route.http_status == null || route.http_status < 400));
|
|
10531
10554
|
}
|
|
10555
|
+
function routeReadinessFailed(route, targetUrl) {
|
|
10556
|
+
const matched = route && (route.matched || routePathMatches(route.observed, route.expected_path, targetUrl));
|
|
10557
|
+
const httpOk = route && (route.http_status == null || route.http_status < 400);
|
|
10558
|
+
return Boolean(matched && httpOk && route.error);
|
|
10559
|
+
}
|
|
10560
|
+
function compactRouteError(error) {
|
|
10561
|
+
const text = typeof error === "string" ? error.replace(/\s+/g, " ").trim() : "";
|
|
10562
|
+
return text ? text.slice(0, 240) : undefined;
|
|
10563
|
+
}
|
|
10564
|
+
function routeLoadedFailureMessage(failedRoutes, expectedPath, targetUrl) {
|
|
10565
|
+
const readinessFailures = failedRoutes.filter((route) => routeReadinessFailed(route, targetUrl));
|
|
10566
|
+
if (readinessFailures.length === failedRoutes.length && readinessFailures.length) {
|
|
10567
|
+
const sampleRoute = readinessFailures.find((route) => route && route.error);
|
|
10568
|
+
const sample = compactRouteError(sampleRoute && sampleRoute.error);
|
|
10569
|
+
return "Route matched " + expectedPath + ", but readiness failed in " + readinessFailures.length + " viewport(s)" + (sample ? ": " + sample : ".");
|
|
10570
|
+
}
|
|
10571
|
+
if (readinessFailures.length) {
|
|
10572
|
+
const sampleRoute = readinessFailures.find((route) => route && route.error);
|
|
10573
|
+
const sample = compactRouteError(sampleRoute && sampleRoute.error);
|
|
10574
|
+
return "Route did not become ready as " + expectedPath + " in " + failedRoutes.length + " viewport(s); " + readinessFailures.length + " matched path and HTTP but failed readiness" + (sample ? ": " + sample : ".");
|
|
10575
|
+
}
|
|
10576
|
+
return "Route did not load as " + expectedPath + " in " + failedRoutes.length + " viewport(s).";
|
|
10577
|
+
}
|
|
10532
10578
|
function parseEvidenceUrl(value, targetUrl) {
|
|
10533
10579
|
if (!value) return null;
|
|
10534
10580
|
try { return targetUrl ? new URL(value, targetUrl) : new URL(value); } catch {}
|
|
@@ -11350,6 +11396,23 @@ function profileSetupDragReceipts(results) {
|
|
|
11350
11396
|
reason: result.reason || result.error || null,
|
|
11351
11397
|
}));
|
|
11352
11398
|
}
|
|
11399
|
+
function profileSetupTapReceipts(results) {
|
|
11400
|
+
return (results || [])
|
|
11401
|
+
.filter((result) => result && profileSetupResultAction(result) === "tap")
|
|
11402
|
+
.map((result) => ({
|
|
11403
|
+
ordinal: result.ordinal ?? null,
|
|
11404
|
+
ok: result.ok !== false,
|
|
11405
|
+
selector: result.selector ?? null,
|
|
11406
|
+
frame_selector: result.frame_selector ?? null,
|
|
11407
|
+
pointer_type: result.pointer_type ?? null,
|
|
11408
|
+
input_dispatch: result.input_dispatch ?? null,
|
|
11409
|
+
coordinate_mode: result.coordinate_mode ?? null,
|
|
11410
|
+
x: result.x ?? null,
|
|
11411
|
+
y: result.y ?? null,
|
|
11412
|
+
duration_ms: result.duration_ms ?? null,
|
|
11413
|
+
reason: result.reason || result.error || null,
|
|
11414
|
+
}));
|
|
11415
|
+
}
|
|
11353
11416
|
function profileSetupCanvasSignatureReceipts(results) {
|
|
11354
11417
|
return (results || [])
|
|
11355
11418
|
.filter((result) => result && profileSetupResultAction(result) === "canvas_signature")
|
|
@@ -11536,6 +11599,8 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountsByViewp
|
|
|
11536
11599
|
const sampledRangeValueReceipts = sampleProfileSetupSummaryItems(rangeValueReceipts, 8);
|
|
11537
11600
|
const dragReceipts = profileSetupDragReceipts(results);
|
|
11538
11601
|
const sampledDragReceipts = sampleProfileSetupSummaryItems(dragReceipts, 8);
|
|
11602
|
+
const tapReceipts = profileSetupTapReceipts(results);
|
|
11603
|
+
const sampledTapReceipts = sampleProfileSetupSummaryItems(tapReceipts, 8);
|
|
11539
11604
|
const canvasSignatureReceipts = profileSetupCanvasSignatureReceipts(results);
|
|
11540
11605
|
const sampledCanvasSignatureReceipts = sampleProfileSetupSummaryItems(canvasSignatureReceipts, 8);
|
|
11541
11606
|
const clickedItems = results
|
|
@@ -11610,6 +11675,9 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountsByViewp
|
|
|
11610
11675
|
drag_total: dragReceipts.length,
|
|
11611
11676
|
drag_truncated: dragReceipts.length > sampledDragReceipts.length,
|
|
11612
11677
|
drag: sampledDragReceipts,
|
|
11678
|
+
tap_total: tapReceipts.length,
|
|
11679
|
+
tap_truncated: tapReceipts.length > sampledTapReceipts.length,
|
|
11680
|
+
tap: sampledTapReceipts,
|
|
11613
11681
|
canvas_signature_total: canvasSignatureReceipts.length,
|
|
11614
11682
|
canvas_signature_truncated: canvasSignatureReceipts.length > sampledCanvasSignatureReceipts.length,
|
|
11615
11683
|
canvas_signature: sampledCanvasSignatureReceipts,
|
|
@@ -11808,11 +11876,12 @@ function assessProfile(profile, evidence) {
|
|
|
11808
11876
|
}
|
|
11809
11877
|
if (check.type === "route_loaded") {
|
|
11810
11878
|
const expectedPath = check.expected_path || new URL(evidence.target_url).pathname || "/";
|
|
11811
|
-
const
|
|
11879
|
+
const routes = checkViewports.map((viewport) => {
|
|
11812
11880
|
const route = { ...(viewport.route || {}), expected_path: expectedPath };
|
|
11813
11881
|
route.matched = routePathMatches(route.observed, expectedPath, evidence.target_url) || route.matched;
|
|
11814
|
-
return
|
|
11882
|
+
return route;
|
|
11815
11883
|
});
|
|
11884
|
+
const failed = routes.filter((route) => !routeOk(route, evidence.target_url));
|
|
11816
11885
|
checks.push({
|
|
11817
11886
|
type: check.type,
|
|
11818
11887
|
label: check.label || check.type,
|
|
@@ -11821,8 +11890,9 @@ function assessProfile(profile, evidence) {
|
|
|
11821
11890
|
expected_path: expectedPath,
|
|
11822
11891
|
observed_paths: checkViewports.map((viewport) => viewport.route && viewport.route.observed),
|
|
11823
11892
|
http_statuses: checkViewports.map((viewport) => viewport.route ? viewport.route.http_status ?? null : null),
|
|
11893
|
+
route_errors: checkViewports.map((viewport) => viewport.route ? viewport.route.error ?? null : null),
|
|
11824
11894
|
},
|
|
11825
|
-
message: failed.length ?
|
|
11895
|
+
message: failed.length ? routeLoadedFailureMessage(failed, expectedPath, evidence.target_url) : undefined,
|
|
11826
11896
|
});
|
|
11827
11897
|
continue;
|
|
11828
11898
|
}
|
package/dist/cli.js
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -11370,6 +11370,27 @@ function successfulRoute(route, targetUrl) {
|
|
|
11370
11370
|
const matched = route.matched || routePathMatches(route.observed, route.expected_path, targetUrl);
|
|
11371
11371
|
return matched && !route.error && (route.http_status === null || route.http_status === void 0 || route.http_status < 400);
|
|
11372
11372
|
}
|
|
11373
|
+
function routeReadinessFailed(route, targetUrl) {
|
|
11374
|
+
const matched = route.matched || routePathMatches(route.observed, route.expected_path, targetUrl);
|
|
11375
|
+
const httpOk = route.http_status === null || route.http_status === void 0 || route.http_status < 400;
|
|
11376
|
+
return matched && httpOk && Boolean(route.error);
|
|
11377
|
+
}
|
|
11378
|
+
function compactRouteError(error) {
|
|
11379
|
+
const text = typeof error === "string" ? error.replace(/\s+/g, " ").trim() : "";
|
|
11380
|
+
return text ? text.slice(0, 240) : void 0;
|
|
11381
|
+
}
|
|
11382
|
+
function routeLoadedFailureMessage(failedRoutes, expectedPath, targetUrl) {
|
|
11383
|
+
const readinessFailures = failedRoutes.filter((route) => routeReadinessFailed(route, targetUrl));
|
|
11384
|
+
if (readinessFailures.length === failedRoutes.length && readinessFailures.length) {
|
|
11385
|
+
const sample = compactRouteError(readinessFailures.find((route) => route.error)?.error);
|
|
11386
|
+
return `Route matched ${expectedPath}, but readiness failed in ${readinessFailures.length} viewport(s)${sample ? `: ${sample}` : "."}`;
|
|
11387
|
+
}
|
|
11388
|
+
if (readinessFailures.length) {
|
|
11389
|
+
const sample = compactRouteError(readinessFailures.find((route) => route.error)?.error);
|
|
11390
|
+
return `Route did not become ready as ${expectedPath} in ${failedRoutes.length} viewport(s); ${readinessFailures.length} matched path and HTTP but failed readiness${sample ? `: ${sample}` : "."}`;
|
|
11391
|
+
}
|
|
11392
|
+
return `Route did not load as ${expectedPath} in ${failedRoutes.length} viewport(s).`;
|
|
11393
|
+
}
|
|
11373
11394
|
function parseEvidenceUrl(value, targetUrl) {
|
|
11374
11395
|
if (!value) return void 0;
|
|
11375
11396
|
try {
|
|
@@ -11439,11 +11460,12 @@ function assessCheckFromEvidence(check, evidence) {
|
|
|
11439
11460
|
}
|
|
11440
11461
|
if (check.type === "route_loaded") {
|
|
11441
11462
|
const expectedPath = check.expected_path || new URL(evidence.target_url).pathname || "/";
|
|
11442
|
-
const
|
|
11463
|
+
const routes = viewports.map((viewport) => ({
|
|
11443
11464
|
...viewport.route,
|
|
11444
11465
|
expected_path: expectedPath,
|
|
11445
11466
|
matched: routePathMatches(viewport.route.observed, expectedPath, evidence.target_url) || viewport.route.matched
|
|
11446
|
-
}
|
|
11467
|
+
}));
|
|
11468
|
+
const failed = routes.filter((route) => !successfulRoute(route, evidence.target_url));
|
|
11447
11469
|
return {
|
|
11448
11470
|
type: check.type,
|
|
11449
11471
|
label: checkLabel(check),
|
|
@@ -11451,9 +11473,10 @@ function assessCheckFromEvidence(check, evidence) {
|
|
|
11451
11473
|
evidence: {
|
|
11452
11474
|
expected_path: expectedPath,
|
|
11453
11475
|
observed_paths: viewports.map((viewport) => viewport.route.observed),
|
|
11454
|
-
http_statuses: viewports.map((viewport) => viewport.route.http_status ?? null)
|
|
11476
|
+
http_statuses: viewports.map((viewport) => viewport.route.http_status ?? null),
|
|
11477
|
+
route_errors: viewports.map((viewport) => viewport.route.error ?? null)
|
|
11455
11478
|
},
|
|
11456
|
-
message: failed.length ?
|
|
11479
|
+
message: failed.length ? routeLoadedFailureMessage(failed, expectedPath, evidence.target_url) : void 0
|
|
11457
11480
|
};
|
|
11458
11481
|
}
|
|
11459
11482
|
if (check.type === "url_search_param_equals") {
|
|
@@ -12321,6 +12344,29 @@ function routePathMatches(observed, expected, targetUrl) {
|
|
|
12321
12344
|
function routeOk(route, targetUrl) {
|
|
12322
12345
|
return Boolean(route && (route.matched || routePathMatches(route.observed, route.expected_path, targetUrl)) && !route.error && (route.http_status == null || route.http_status < 400));
|
|
12323
12346
|
}
|
|
12347
|
+
function routeReadinessFailed(route, targetUrl) {
|
|
12348
|
+
const matched = route && (route.matched || routePathMatches(route.observed, route.expected_path, targetUrl));
|
|
12349
|
+
const httpOk = route && (route.http_status == null || route.http_status < 400);
|
|
12350
|
+
return Boolean(matched && httpOk && route.error);
|
|
12351
|
+
}
|
|
12352
|
+
function compactRouteError(error) {
|
|
12353
|
+
const text = typeof error === "string" ? error.replace(/\s+/g, " ").trim() : "";
|
|
12354
|
+
return text ? text.slice(0, 240) : undefined;
|
|
12355
|
+
}
|
|
12356
|
+
function routeLoadedFailureMessage(failedRoutes, expectedPath, targetUrl) {
|
|
12357
|
+
const readinessFailures = failedRoutes.filter((route) => routeReadinessFailed(route, targetUrl));
|
|
12358
|
+
if (readinessFailures.length === failedRoutes.length && readinessFailures.length) {
|
|
12359
|
+
const sampleRoute = readinessFailures.find((route) => route && route.error);
|
|
12360
|
+
const sample = compactRouteError(sampleRoute && sampleRoute.error);
|
|
12361
|
+
return "Route matched " + expectedPath + ", but readiness failed in " + readinessFailures.length + " viewport(s)" + (sample ? ": " + sample : ".");
|
|
12362
|
+
}
|
|
12363
|
+
if (readinessFailures.length) {
|
|
12364
|
+
const sampleRoute = readinessFailures.find((route) => route && route.error);
|
|
12365
|
+
const sample = compactRouteError(sampleRoute && sampleRoute.error);
|
|
12366
|
+
return "Route did not become ready as " + expectedPath + " in " + failedRoutes.length + " viewport(s); " + readinessFailures.length + " matched path and HTTP but failed readiness" + (sample ? ": " + sample : ".");
|
|
12367
|
+
}
|
|
12368
|
+
return "Route did not load as " + expectedPath + " in " + failedRoutes.length + " viewport(s).";
|
|
12369
|
+
}
|
|
12324
12370
|
function parseEvidenceUrl(value, targetUrl) {
|
|
12325
12371
|
if (!value) return null;
|
|
12326
12372
|
try { return targetUrl ? new URL(value, targetUrl) : new URL(value); } catch {}
|
|
@@ -13142,6 +13188,23 @@ function profileSetupDragReceipts(results) {
|
|
|
13142
13188
|
reason: result.reason || result.error || null,
|
|
13143
13189
|
}));
|
|
13144
13190
|
}
|
|
13191
|
+
function profileSetupTapReceipts(results) {
|
|
13192
|
+
return (results || [])
|
|
13193
|
+
.filter((result) => result && profileSetupResultAction(result) === "tap")
|
|
13194
|
+
.map((result) => ({
|
|
13195
|
+
ordinal: result.ordinal ?? null,
|
|
13196
|
+
ok: result.ok !== false,
|
|
13197
|
+
selector: result.selector ?? null,
|
|
13198
|
+
frame_selector: result.frame_selector ?? null,
|
|
13199
|
+
pointer_type: result.pointer_type ?? null,
|
|
13200
|
+
input_dispatch: result.input_dispatch ?? null,
|
|
13201
|
+
coordinate_mode: result.coordinate_mode ?? null,
|
|
13202
|
+
x: result.x ?? null,
|
|
13203
|
+
y: result.y ?? null,
|
|
13204
|
+
duration_ms: result.duration_ms ?? null,
|
|
13205
|
+
reason: result.reason || result.error || null,
|
|
13206
|
+
}));
|
|
13207
|
+
}
|
|
13145
13208
|
function profileSetupCanvasSignatureReceipts(results) {
|
|
13146
13209
|
return (results || [])
|
|
13147
13210
|
.filter((result) => result && profileSetupResultAction(result) === "canvas_signature")
|
|
@@ -13328,6 +13391,8 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountsByViewp
|
|
|
13328
13391
|
const sampledRangeValueReceipts = sampleProfileSetupSummaryItems(rangeValueReceipts, 8);
|
|
13329
13392
|
const dragReceipts = profileSetupDragReceipts(results);
|
|
13330
13393
|
const sampledDragReceipts = sampleProfileSetupSummaryItems(dragReceipts, 8);
|
|
13394
|
+
const tapReceipts = profileSetupTapReceipts(results);
|
|
13395
|
+
const sampledTapReceipts = sampleProfileSetupSummaryItems(tapReceipts, 8);
|
|
13331
13396
|
const canvasSignatureReceipts = profileSetupCanvasSignatureReceipts(results);
|
|
13332
13397
|
const sampledCanvasSignatureReceipts = sampleProfileSetupSummaryItems(canvasSignatureReceipts, 8);
|
|
13333
13398
|
const clickedItems = results
|
|
@@ -13402,6 +13467,9 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountsByViewp
|
|
|
13402
13467
|
drag_total: dragReceipts.length,
|
|
13403
13468
|
drag_truncated: dragReceipts.length > sampledDragReceipts.length,
|
|
13404
13469
|
drag: sampledDragReceipts,
|
|
13470
|
+
tap_total: tapReceipts.length,
|
|
13471
|
+
tap_truncated: tapReceipts.length > sampledTapReceipts.length,
|
|
13472
|
+
tap: sampledTapReceipts,
|
|
13405
13473
|
canvas_signature_total: canvasSignatureReceipts.length,
|
|
13406
13474
|
canvas_signature_truncated: canvasSignatureReceipts.length > sampledCanvasSignatureReceipts.length,
|
|
13407
13475
|
canvas_signature: sampledCanvasSignatureReceipts,
|
|
@@ -13600,11 +13668,12 @@ function assessProfile(profile, evidence) {
|
|
|
13600
13668
|
}
|
|
13601
13669
|
if (check.type === "route_loaded") {
|
|
13602
13670
|
const expectedPath = check.expected_path || new URL(evidence.target_url).pathname || "/";
|
|
13603
|
-
const
|
|
13671
|
+
const routes = checkViewports.map((viewport) => {
|
|
13604
13672
|
const route = { ...(viewport.route || {}), expected_path: expectedPath };
|
|
13605
13673
|
route.matched = routePathMatches(route.observed, expectedPath, evidence.target_url) || route.matched;
|
|
13606
|
-
return
|
|
13674
|
+
return route;
|
|
13607
13675
|
});
|
|
13676
|
+
const failed = routes.filter((route) => !routeOk(route, evidence.target_url));
|
|
13608
13677
|
checks.push({
|
|
13609
13678
|
type: check.type,
|
|
13610
13679
|
label: check.label || check.type,
|
|
@@ -13613,8 +13682,9 @@ function assessProfile(profile, evidence) {
|
|
|
13613
13682
|
expected_path: expectedPath,
|
|
13614
13683
|
observed_paths: checkViewports.map((viewport) => viewport.route && viewport.route.observed),
|
|
13615
13684
|
http_statuses: checkViewports.map((viewport) => viewport.route ? viewport.route.http_status ?? null : null),
|
|
13685
|
+
route_errors: checkViewports.map((viewport) => viewport.route ? viewport.route.error ?? null : null),
|
|
13616
13686
|
},
|
|
13617
|
-
message: failed.length ?
|
|
13687
|
+
message: failed.length ? routeLoadedFailureMessage(failed, expectedPath, evidence.target_url) : undefined,
|
|
13618
13688
|
});
|
|
13619
13689
|
continue;
|
|
13620
13690
|
}
|
package/dist/index.js
CHANGED
|
@@ -62,7 +62,7 @@ import {
|
|
|
62
62
|
resolveRiddleProofProfileTimeoutSec,
|
|
63
63
|
slugifyRiddleProofProfileName,
|
|
64
64
|
summarizeRiddleProofProfileResult
|
|
65
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-GDFGO66T.js";
|
|
66
66
|
import {
|
|
67
67
|
DEFAULT_RIDDLE_API_BASE_URL,
|
|
68
68
|
DEFAULT_RIDDLE_API_KEY_FILE,
|
package/dist/profile.cjs
CHANGED
|
@@ -2684,6 +2684,27 @@ function successfulRoute(route, targetUrl) {
|
|
|
2684
2684
|
const matched = route.matched || routePathMatches(route.observed, route.expected_path, targetUrl);
|
|
2685
2685
|
return matched && !route.error && (route.http_status === null || route.http_status === void 0 || route.http_status < 400);
|
|
2686
2686
|
}
|
|
2687
|
+
function routeReadinessFailed(route, targetUrl) {
|
|
2688
|
+
const matched = route.matched || routePathMatches(route.observed, route.expected_path, targetUrl);
|
|
2689
|
+
const httpOk = route.http_status === null || route.http_status === void 0 || route.http_status < 400;
|
|
2690
|
+
return matched && httpOk && Boolean(route.error);
|
|
2691
|
+
}
|
|
2692
|
+
function compactRouteError(error) {
|
|
2693
|
+
const text = typeof error === "string" ? error.replace(/\s+/g, " ").trim() : "";
|
|
2694
|
+
return text ? text.slice(0, 240) : void 0;
|
|
2695
|
+
}
|
|
2696
|
+
function routeLoadedFailureMessage(failedRoutes, expectedPath, targetUrl) {
|
|
2697
|
+
const readinessFailures = failedRoutes.filter((route) => routeReadinessFailed(route, targetUrl));
|
|
2698
|
+
if (readinessFailures.length === failedRoutes.length && readinessFailures.length) {
|
|
2699
|
+
const sample = compactRouteError(readinessFailures.find((route) => route.error)?.error);
|
|
2700
|
+
return `Route matched ${expectedPath}, but readiness failed in ${readinessFailures.length} viewport(s)${sample ? `: ${sample}` : "."}`;
|
|
2701
|
+
}
|
|
2702
|
+
if (readinessFailures.length) {
|
|
2703
|
+
const sample = compactRouteError(readinessFailures.find((route) => route.error)?.error);
|
|
2704
|
+
return `Route did not become ready as ${expectedPath} in ${failedRoutes.length} viewport(s); ${readinessFailures.length} matched path and HTTP but failed readiness${sample ? `: ${sample}` : "."}`;
|
|
2705
|
+
}
|
|
2706
|
+
return `Route did not load as ${expectedPath} in ${failedRoutes.length} viewport(s).`;
|
|
2707
|
+
}
|
|
2687
2708
|
function parseEvidenceUrl(value, targetUrl) {
|
|
2688
2709
|
if (!value) return void 0;
|
|
2689
2710
|
try {
|
|
@@ -2753,11 +2774,12 @@ function assessCheckFromEvidence(check, evidence) {
|
|
|
2753
2774
|
}
|
|
2754
2775
|
if (check.type === "route_loaded") {
|
|
2755
2776
|
const expectedPath = check.expected_path || new URL(evidence.target_url).pathname || "/";
|
|
2756
|
-
const
|
|
2777
|
+
const routes = viewports.map((viewport) => ({
|
|
2757
2778
|
...viewport.route,
|
|
2758
2779
|
expected_path: expectedPath,
|
|
2759
2780
|
matched: routePathMatches(viewport.route.observed, expectedPath, evidence.target_url) || viewport.route.matched
|
|
2760
|
-
}
|
|
2781
|
+
}));
|
|
2782
|
+
const failed = routes.filter((route) => !successfulRoute(route, evidence.target_url));
|
|
2761
2783
|
return {
|
|
2762
2784
|
type: check.type,
|
|
2763
2785
|
label: checkLabel(check),
|
|
@@ -2765,9 +2787,10 @@ function assessCheckFromEvidence(check, evidence) {
|
|
|
2765
2787
|
evidence: {
|
|
2766
2788
|
expected_path: expectedPath,
|
|
2767
2789
|
observed_paths: viewports.map((viewport) => viewport.route.observed),
|
|
2768
|
-
http_statuses: viewports.map((viewport) => viewport.route.http_status ?? null)
|
|
2790
|
+
http_statuses: viewports.map((viewport) => viewport.route.http_status ?? null),
|
|
2791
|
+
route_errors: viewports.map((viewport) => viewport.route.error ?? null)
|
|
2769
2792
|
},
|
|
2770
|
-
message: failed.length ?
|
|
2793
|
+
message: failed.length ? routeLoadedFailureMessage(failed, expectedPath, evidence.target_url) : void 0
|
|
2771
2794
|
};
|
|
2772
2795
|
}
|
|
2773
2796
|
if (check.type === "url_search_param_equals") {
|
|
@@ -3635,6 +3658,29 @@ function routePathMatches(observed, expected, targetUrl) {
|
|
|
3635
3658
|
function routeOk(route, targetUrl) {
|
|
3636
3659
|
return Boolean(route && (route.matched || routePathMatches(route.observed, route.expected_path, targetUrl)) && !route.error && (route.http_status == null || route.http_status < 400));
|
|
3637
3660
|
}
|
|
3661
|
+
function routeReadinessFailed(route, targetUrl) {
|
|
3662
|
+
const matched = route && (route.matched || routePathMatches(route.observed, route.expected_path, targetUrl));
|
|
3663
|
+
const httpOk = route && (route.http_status == null || route.http_status < 400);
|
|
3664
|
+
return Boolean(matched && httpOk && route.error);
|
|
3665
|
+
}
|
|
3666
|
+
function compactRouteError(error) {
|
|
3667
|
+
const text = typeof error === "string" ? error.replace(/\s+/g, " ").trim() : "";
|
|
3668
|
+
return text ? text.slice(0, 240) : undefined;
|
|
3669
|
+
}
|
|
3670
|
+
function routeLoadedFailureMessage(failedRoutes, expectedPath, targetUrl) {
|
|
3671
|
+
const readinessFailures = failedRoutes.filter((route) => routeReadinessFailed(route, targetUrl));
|
|
3672
|
+
if (readinessFailures.length === failedRoutes.length && readinessFailures.length) {
|
|
3673
|
+
const sampleRoute = readinessFailures.find((route) => route && route.error);
|
|
3674
|
+
const sample = compactRouteError(sampleRoute && sampleRoute.error);
|
|
3675
|
+
return "Route matched " + expectedPath + ", but readiness failed in " + readinessFailures.length + " viewport(s)" + (sample ? ": " + sample : ".");
|
|
3676
|
+
}
|
|
3677
|
+
if (readinessFailures.length) {
|
|
3678
|
+
const sampleRoute = readinessFailures.find((route) => route && route.error);
|
|
3679
|
+
const sample = compactRouteError(sampleRoute && sampleRoute.error);
|
|
3680
|
+
return "Route did not become ready as " + expectedPath + " in " + failedRoutes.length + " viewport(s); " + readinessFailures.length + " matched path and HTTP but failed readiness" + (sample ? ": " + sample : ".");
|
|
3681
|
+
}
|
|
3682
|
+
return "Route did not load as " + expectedPath + " in " + failedRoutes.length + " viewport(s).";
|
|
3683
|
+
}
|
|
3638
3684
|
function parseEvidenceUrl(value, targetUrl) {
|
|
3639
3685
|
if (!value) return null;
|
|
3640
3686
|
try { return targetUrl ? new URL(value, targetUrl) : new URL(value); } catch {}
|
|
@@ -4456,6 +4502,23 @@ function profileSetupDragReceipts(results) {
|
|
|
4456
4502
|
reason: result.reason || result.error || null,
|
|
4457
4503
|
}));
|
|
4458
4504
|
}
|
|
4505
|
+
function profileSetupTapReceipts(results) {
|
|
4506
|
+
return (results || [])
|
|
4507
|
+
.filter((result) => result && profileSetupResultAction(result) === "tap")
|
|
4508
|
+
.map((result) => ({
|
|
4509
|
+
ordinal: result.ordinal ?? null,
|
|
4510
|
+
ok: result.ok !== false,
|
|
4511
|
+
selector: result.selector ?? null,
|
|
4512
|
+
frame_selector: result.frame_selector ?? null,
|
|
4513
|
+
pointer_type: result.pointer_type ?? null,
|
|
4514
|
+
input_dispatch: result.input_dispatch ?? null,
|
|
4515
|
+
coordinate_mode: result.coordinate_mode ?? null,
|
|
4516
|
+
x: result.x ?? null,
|
|
4517
|
+
y: result.y ?? null,
|
|
4518
|
+
duration_ms: result.duration_ms ?? null,
|
|
4519
|
+
reason: result.reason || result.error || null,
|
|
4520
|
+
}));
|
|
4521
|
+
}
|
|
4459
4522
|
function profileSetupCanvasSignatureReceipts(results) {
|
|
4460
4523
|
return (results || [])
|
|
4461
4524
|
.filter((result) => result && profileSetupResultAction(result) === "canvas_signature")
|
|
@@ -4642,6 +4705,8 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountsByViewp
|
|
|
4642
4705
|
const sampledRangeValueReceipts = sampleProfileSetupSummaryItems(rangeValueReceipts, 8);
|
|
4643
4706
|
const dragReceipts = profileSetupDragReceipts(results);
|
|
4644
4707
|
const sampledDragReceipts = sampleProfileSetupSummaryItems(dragReceipts, 8);
|
|
4708
|
+
const tapReceipts = profileSetupTapReceipts(results);
|
|
4709
|
+
const sampledTapReceipts = sampleProfileSetupSummaryItems(tapReceipts, 8);
|
|
4645
4710
|
const canvasSignatureReceipts = profileSetupCanvasSignatureReceipts(results);
|
|
4646
4711
|
const sampledCanvasSignatureReceipts = sampleProfileSetupSummaryItems(canvasSignatureReceipts, 8);
|
|
4647
4712
|
const clickedItems = results
|
|
@@ -4716,6 +4781,9 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountsByViewp
|
|
|
4716
4781
|
drag_total: dragReceipts.length,
|
|
4717
4782
|
drag_truncated: dragReceipts.length > sampledDragReceipts.length,
|
|
4718
4783
|
drag: sampledDragReceipts,
|
|
4784
|
+
tap_total: tapReceipts.length,
|
|
4785
|
+
tap_truncated: tapReceipts.length > sampledTapReceipts.length,
|
|
4786
|
+
tap: sampledTapReceipts,
|
|
4719
4787
|
canvas_signature_total: canvasSignatureReceipts.length,
|
|
4720
4788
|
canvas_signature_truncated: canvasSignatureReceipts.length > sampledCanvasSignatureReceipts.length,
|
|
4721
4789
|
canvas_signature: sampledCanvasSignatureReceipts,
|
|
@@ -4914,11 +4982,12 @@ function assessProfile(profile, evidence) {
|
|
|
4914
4982
|
}
|
|
4915
4983
|
if (check.type === "route_loaded") {
|
|
4916
4984
|
const expectedPath = check.expected_path || new URL(evidence.target_url).pathname || "/";
|
|
4917
|
-
const
|
|
4985
|
+
const routes = checkViewports.map((viewport) => {
|
|
4918
4986
|
const route = { ...(viewport.route || {}), expected_path: expectedPath };
|
|
4919
4987
|
route.matched = routePathMatches(route.observed, expectedPath, evidence.target_url) || route.matched;
|
|
4920
|
-
return
|
|
4988
|
+
return route;
|
|
4921
4989
|
});
|
|
4990
|
+
const failed = routes.filter((route) => !routeOk(route, evidence.target_url));
|
|
4922
4991
|
checks.push({
|
|
4923
4992
|
type: check.type,
|
|
4924
4993
|
label: check.label || check.type,
|
|
@@ -4927,8 +4996,9 @@ function assessProfile(profile, evidence) {
|
|
|
4927
4996
|
expected_path: expectedPath,
|
|
4928
4997
|
observed_paths: checkViewports.map((viewport) => viewport.route && viewport.route.observed),
|
|
4929
4998
|
http_statuses: checkViewports.map((viewport) => viewport.route ? viewport.route.http_status ?? null : null),
|
|
4999
|
+
route_errors: checkViewports.map((viewport) => viewport.route ? viewport.route.error ?? null : null),
|
|
4930
5000
|
},
|
|
4931
|
-
message: failed.length ?
|
|
5001
|
+
message: failed.length ? routeLoadedFailureMessage(failed, expectedPath, evidence.target_url) : undefined,
|
|
4932
5002
|
});
|
|
4933
5003
|
continue;
|
|
4934
5004
|
}
|
package/dist/profile.js
CHANGED
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
resolveRiddleProofProfileTimeoutSec,
|
|
24
24
|
slugifyRiddleProofProfileName,
|
|
25
25
|
summarizeRiddleProofProfileResult
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-GDFGO66T.js";
|
|
27
27
|
export {
|
|
28
28
|
RIDDLE_PROOF_PROFILE_CHECK_TYPES,
|
|
29
29
|
RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION,
|