@riddledc/riddle-proof 0.7.73 → 0.7.75
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/README.md +10 -5
- package/dist/{chunk-HXYLTNZT.js → chunk-ILB4HKPH.js} +9 -1
- package/dist/cli.cjs +80 -2
- package/dist/cli.js +72 -2
- package/dist/index.cjs +9 -1
- package/dist/index.js +1 -1
- package/dist/profile.cjs +9 -1
- package/dist/profile.d.cts +1 -1
- package/dist/profile.d.ts +1 -1
- package/dist/profile.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -262,7 +262,8 @@ transport control, or other bounded interaction. Supported setup actions are
|
|
|
262
262
|
`click`, `drag`, `press`, `fill`, `set_input_value`, `assert_text_visible`,
|
|
263
263
|
`assert_text_absent`, `assert_selector_count`, `assert_window_value`,
|
|
264
264
|
`assert_window_number`, `local_storage`, `session_storage`, `clear_storage`,
|
|
265
|
-
`screenshot`, `wait`, `wait_for_selector`, `wait_for_text`,
|
|
265
|
+
`clear_console`, `screenshot`, `wait`, `wait_for_selector`, `wait_for_text`,
|
|
266
|
+
and `window_call`;
|
|
266
267
|
a failed setup action is recorded as a failed `setup_actions_succeeded` check so
|
|
267
268
|
the profile cannot pass without reaching the intended state. Text-matched `click` actions prefer
|
|
268
269
|
visible matching elements, which keeps responsive layouts from selecting hidden
|
|
@@ -294,10 +295,14 @@ distance, elapsed time, score, or retry counters.
|
|
|
294
295
|
`local_storage` and `session_storage` accept a `key` plus string `value` or
|
|
295
296
|
JSON `json` / `value_json`, and can reload the page with `reload: true`.
|
|
296
297
|
`clear_storage` clears `local`, `session`, or `both` browser storage scopes,
|
|
297
|
-
defaults to `both`, and can also reload with `reload: true`.
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
298
|
+
defaults to `both`, and can also reload with `reload: true`. Use
|
|
299
|
+
`clear_console` after setup reaches the intended proof state when expected
|
|
300
|
+
bootstrap console or page errors should not count against the final
|
|
301
|
+
`no_fatal_console_errors` invariant. It clears recorded console events and page
|
|
302
|
+
errors, but keeps network mock hit evidence intact. Any setup action can include
|
|
303
|
+
`repeat` / `repeat_count` / `times` from 1 to 100; each repetition is recorded
|
|
304
|
+
with `repeat_index` and `repeat_count`, and `after_ms` runs after each
|
|
305
|
+
repetition. Use it for bounded game proof helpers, retry controls, or other
|
|
301
306
|
workflows where one declarative action needs to advance the app several times.
|
|
302
307
|
Use `screenshot` with an optional `label` to capture durable Riddle screenshots
|
|
303
308
|
at important setup milestones, such as after a route switch, terminal state, or
|
|
@@ -46,6 +46,7 @@ var RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES = [
|
|
|
46
46
|
"local_storage",
|
|
47
47
|
"session_storage",
|
|
48
48
|
"clear_storage",
|
|
49
|
+
"clear_console",
|
|
49
50
|
"screenshot",
|
|
50
51
|
"wait",
|
|
51
52
|
"wait_for_selector",
|
|
@@ -307,7 +308,7 @@ function isSupportedCheckType(value) {
|
|
|
307
308
|
}
|
|
308
309
|
function normalizeSetupActionType(value, index) {
|
|
309
310
|
const normalizedInput = String(value || "").trim().replace(/-/g, "_");
|
|
310
|
-
const normalized = normalizedInput === "clear_browser_storage" ? "clear_storage" : normalizedInput === "pointer_drag" || normalizedInput === "mouse_drag" || normalizedInput === "drag_to" ? "drag" : normalizedInput === "keyboard_press" || normalizedInput === "key_press" ? "press" : normalizedInput === "capture_screenshot" || normalizedInput === "save_screenshot" || normalizedInput === "setup_screenshot" ? "screenshot" : normalizedInput;
|
|
311
|
+
const normalized = normalizedInput === "clear_browser_storage" ? "clear_storage" : normalizedInput === "reset_console" || normalizedInput === "clear_browser_console" || normalizedInput === "reset_browser_console" ? "clear_console" : normalizedInput === "pointer_drag" || normalizedInput === "mouse_drag" || normalizedInput === "drag_to" ? "drag" : normalizedInput === "keyboard_press" || normalizedInput === "key_press" ? "press" : normalizedInput === "capture_screenshot" || normalizedInput === "save_screenshot" || normalizedInput === "setup_screenshot" ? "screenshot" : normalizedInput;
|
|
311
312
|
if (RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES.includes(normalized)) {
|
|
312
313
|
return normalized;
|
|
313
314
|
}
|
|
@@ -2859,6 +2860,13 @@ async function executeSetupAction(action, ordinal, viewport) {
|
|
|
2859
2860
|
await saveScreenshot(label);
|
|
2860
2861
|
return { ...base, ok: true, label: rawLabel, screenshot_label: label };
|
|
2861
2862
|
}
|
|
2863
|
+
if (type === "clear_console") {
|
|
2864
|
+
const cleared_console_event_count = consoleEvents.length;
|
|
2865
|
+
const cleared_page_error_count = pageErrors.length;
|
|
2866
|
+
consoleEvents.length = 0;
|
|
2867
|
+
pageErrors.length = 0;
|
|
2868
|
+
return { ...base, ok: true, cleared_console_event_count, cleared_page_error_count };
|
|
2869
|
+
}
|
|
2862
2870
|
if (type === "wait_for_selector") {
|
|
2863
2871
|
const scope = await setupActionScope(action, timeout);
|
|
2864
2872
|
if (!scope.ok) return setupScopeFailure(base, scope);
|
package/dist/cli.cjs
CHANGED
|
@@ -6919,6 +6919,7 @@ var RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES = [
|
|
|
6919
6919
|
"local_storage",
|
|
6920
6920
|
"session_storage",
|
|
6921
6921
|
"clear_storage",
|
|
6922
|
+
"clear_console",
|
|
6922
6923
|
"screenshot",
|
|
6923
6924
|
"wait",
|
|
6924
6925
|
"wait_for_selector",
|
|
@@ -7180,7 +7181,7 @@ function isSupportedCheckType(value) {
|
|
|
7180
7181
|
}
|
|
7181
7182
|
function normalizeSetupActionType(value, index) {
|
|
7182
7183
|
const normalizedInput = String(value || "").trim().replace(/-/g, "_");
|
|
7183
|
-
const normalized = normalizedInput === "clear_browser_storage" ? "clear_storage" : normalizedInput === "pointer_drag" || normalizedInput === "mouse_drag" || normalizedInput === "drag_to" ? "drag" : normalizedInput === "keyboard_press" || normalizedInput === "key_press" ? "press" : normalizedInput === "capture_screenshot" || normalizedInput === "save_screenshot" || normalizedInput === "setup_screenshot" ? "screenshot" : normalizedInput;
|
|
7184
|
+
const normalized = normalizedInput === "clear_browser_storage" ? "clear_storage" : normalizedInput === "reset_console" || normalizedInput === "clear_browser_console" || normalizedInput === "reset_browser_console" ? "clear_console" : normalizedInput === "pointer_drag" || normalizedInput === "mouse_drag" || normalizedInput === "drag_to" ? "drag" : normalizedInput === "keyboard_press" || normalizedInput === "key_press" ? "press" : normalizedInput === "capture_screenshot" || normalizedInput === "save_screenshot" || normalizedInput === "setup_screenshot" ? "screenshot" : normalizedInput;
|
|
7184
7185
|
if (RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES.includes(normalized)) {
|
|
7185
7186
|
return normalized;
|
|
7186
7187
|
}
|
|
@@ -9716,6 +9717,13 @@ async function executeSetupAction(action, ordinal, viewport) {
|
|
|
9716
9717
|
await saveScreenshot(label);
|
|
9717
9718
|
return { ...base, ok: true, label: rawLabel, screenshot_label: label };
|
|
9718
9719
|
}
|
|
9720
|
+
if (type === "clear_console") {
|
|
9721
|
+
const cleared_console_event_count = consoleEvents.length;
|
|
9722
|
+
const cleared_page_error_count = pageErrors.length;
|
|
9723
|
+
consoleEvents.length = 0;
|
|
9724
|
+
pageErrors.length = 0;
|
|
9725
|
+
return { ...base, ok: true, cleared_console_event_count, cleared_page_error_count };
|
|
9726
|
+
}
|
|
9719
9727
|
if (type === "wait_for_selector") {
|
|
9720
9728
|
const scope = await setupActionScope(action, timeout);
|
|
9721
9729
|
if (!scope.ok) return setupScopeFailure(base, scope);
|
|
@@ -11252,7 +11260,7 @@ function profileResultMarkdown(result) {
|
|
|
11252
11260
|
""
|
|
11253
11261
|
];
|
|
11254
11262
|
for (const check of result.checks) {
|
|
11255
|
-
lines.push(`- ${check.status}: ${check
|
|
11263
|
+
lines.push(`- ${check.status}: ${profileCheckMarkdownLabel(check)}`);
|
|
11256
11264
|
if (check.message) lines.push(` ${check.message}`);
|
|
11257
11265
|
}
|
|
11258
11266
|
const setupSummaryLines = profileSetupSummaryMarkdown(result);
|
|
@@ -11276,6 +11284,76 @@ function profileResultMarkdown(result) {
|
|
|
11276
11284
|
return `${lines.join("\n")}
|
|
11277
11285
|
`;
|
|
11278
11286
|
}
|
|
11287
|
+
function markdownInlineCode(value, maxLength = 80) {
|
|
11288
|
+
const normalized = value.replace(/\s+/g, " ").trim();
|
|
11289
|
+
const clipped = normalized.length > maxLength ? `${normalized.slice(0, Math.max(0, maxLength - 3))}...` : normalized;
|
|
11290
|
+
return `\`${clipped.replace(/`/g, "'")}\``;
|
|
11291
|
+
}
|
|
11292
|
+
function profileCheckTextTarget(evidence) {
|
|
11293
|
+
const text = cliString(evidence.text);
|
|
11294
|
+
if (text) return markdownInlineCode(text);
|
|
11295
|
+
const pattern = cliString(evidence.pattern);
|
|
11296
|
+
return pattern ? `pattern ${markdownInlineCode(pattern)}` : void 0;
|
|
11297
|
+
}
|
|
11298
|
+
function profileCheckMarkdownTarget(check) {
|
|
11299
|
+
const evidence = cliRecord(check.evidence);
|
|
11300
|
+
if (!evidence) return void 0;
|
|
11301
|
+
const selector = cliString(evidence.selector);
|
|
11302
|
+
if (check.type === "route_loaded") {
|
|
11303
|
+
const expectedPath = cliString(evidence.expected_path);
|
|
11304
|
+
return expectedPath ? markdownInlineCode(expectedPath) : void 0;
|
|
11305
|
+
}
|
|
11306
|
+
if (check.type === "selector_visible" || check.type === "selector_absent") {
|
|
11307
|
+
return selector ? markdownInlineCode(selector) : void 0;
|
|
11308
|
+
}
|
|
11309
|
+
if (check.type === "selector_count_at_least") {
|
|
11310
|
+
const minCount = cliFiniteNumber(evidence.min_count);
|
|
11311
|
+
return selector && minCount !== void 0 ? `${markdownInlineCode(selector)} >= ${minCount}` : void 0;
|
|
11312
|
+
}
|
|
11313
|
+
if (check.type === "selector_count_equals" || check.type === "selector_count_equal" || check.type === "selector_count_eq") {
|
|
11314
|
+
const expectedCount = cliFiniteNumber(evidence.expected_count);
|
|
11315
|
+
return selector && expectedCount !== void 0 ? `${markdownInlineCode(selector)} = ${expectedCount}` : void 0;
|
|
11316
|
+
}
|
|
11317
|
+
if (check.type === "selector_text_order") {
|
|
11318
|
+
return selector ? `${markdownInlineCode(selector)} text order` : void 0;
|
|
11319
|
+
}
|
|
11320
|
+
if (check.type === "text_visible" || check.type === "text_absent") {
|
|
11321
|
+
return profileCheckTextTarget(evidence);
|
|
11322
|
+
}
|
|
11323
|
+
if (check.type === "frame_text_visible") {
|
|
11324
|
+
const textTarget = profileCheckTextTarget(evidence);
|
|
11325
|
+
if (selector && textTarget) return `${markdownInlineCode(selector)} contains ${textTarget}`;
|
|
11326
|
+
return selector ? markdownInlineCode(selector) : textTarget;
|
|
11327
|
+
}
|
|
11328
|
+
if (check.type === "frame_url_equals") {
|
|
11329
|
+
const expectedUrl = cliString(evidence.expected_url);
|
|
11330
|
+
if (selector && expectedUrl) return `${markdownInlineCode(selector)} = ${markdownInlineCode(expectedUrl)}`;
|
|
11331
|
+
return selector ? markdownInlineCode(selector) : expectedUrl ? markdownInlineCode(expectedUrl) : void 0;
|
|
11332
|
+
}
|
|
11333
|
+
if (check.type === "frame_url_matches") {
|
|
11334
|
+
const pattern = cliString(evidence.pattern);
|
|
11335
|
+
if (selector && pattern) return `${markdownInlineCode(selector)} matches ${markdownInlineCode(pattern)}`;
|
|
11336
|
+
return selector ? markdownInlineCode(selector) : pattern ? `pattern ${markdownInlineCode(pattern)}` : void 0;
|
|
11337
|
+
}
|
|
11338
|
+
if (check.type === "frame_no_horizontal_overflow") {
|
|
11339
|
+
const maxOverflow = cliFiniteNumber(evidence.max_overflow_px);
|
|
11340
|
+
if (selector && maxOverflow !== void 0) return `${markdownInlineCode(selector)} <= ${maxOverflow}px`;
|
|
11341
|
+
return selector ? markdownInlineCode(selector) : maxOverflow !== void 0 ? `<= ${maxOverflow}px` : void 0;
|
|
11342
|
+
}
|
|
11343
|
+
if (check.type === "no_horizontal_overflow" || check.type === "no_mobile_horizontal_overflow") {
|
|
11344
|
+
const maxOverflow = cliFiniteNumber(evidence.max_overflow_px);
|
|
11345
|
+
return maxOverflow !== void 0 ? `<= ${maxOverflow}px` : void 0;
|
|
11346
|
+
}
|
|
11347
|
+
if (check.type === "no_fatal_console_errors") {
|
|
11348
|
+
return "0 unallowed fatal errors";
|
|
11349
|
+
}
|
|
11350
|
+
return void 0;
|
|
11351
|
+
}
|
|
11352
|
+
function profileCheckMarkdownLabel(check) {
|
|
11353
|
+
const label = check.label || check.type;
|
|
11354
|
+
const target = profileCheckMarkdownTarget(check);
|
|
11355
|
+
return target ? `${label} (${target})` : label;
|
|
11356
|
+
}
|
|
11279
11357
|
function cliRecord(value) {
|
|
11280
11358
|
return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
11281
11359
|
}
|
package/dist/cli.js
CHANGED
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
profileStatusExitCode,
|
|
11
11
|
resolveRiddleProofProfileTargetUrl,
|
|
12
12
|
resolveRiddleProofProfileTimeoutSec
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-ILB4HKPH.js";
|
|
14
14
|
import {
|
|
15
15
|
createRiddleApiClient,
|
|
16
16
|
parseRiddleViewport
|
|
@@ -316,7 +316,7 @@ function profileResultMarkdown(result) {
|
|
|
316
316
|
""
|
|
317
317
|
];
|
|
318
318
|
for (const check of result.checks) {
|
|
319
|
-
lines.push(`- ${check.status}: ${check
|
|
319
|
+
lines.push(`- ${check.status}: ${profileCheckMarkdownLabel(check)}`);
|
|
320
320
|
if (check.message) lines.push(` ${check.message}`);
|
|
321
321
|
}
|
|
322
322
|
const setupSummaryLines = profileSetupSummaryMarkdown(result);
|
|
@@ -340,6 +340,76 @@ function profileResultMarkdown(result) {
|
|
|
340
340
|
return `${lines.join("\n")}
|
|
341
341
|
`;
|
|
342
342
|
}
|
|
343
|
+
function markdownInlineCode(value, maxLength = 80) {
|
|
344
|
+
const normalized = value.replace(/\s+/g, " ").trim();
|
|
345
|
+
const clipped = normalized.length > maxLength ? `${normalized.slice(0, Math.max(0, maxLength - 3))}...` : normalized;
|
|
346
|
+
return `\`${clipped.replace(/`/g, "'")}\``;
|
|
347
|
+
}
|
|
348
|
+
function profileCheckTextTarget(evidence) {
|
|
349
|
+
const text = cliString(evidence.text);
|
|
350
|
+
if (text) return markdownInlineCode(text);
|
|
351
|
+
const pattern = cliString(evidence.pattern);
|
|
352
|
+
return pattern ? `pattern ${markdownInlineCode(pattern)}` : void 0;
|
|
353
|
+
}
|
|
354
|
+
function profileCheckMarkdownTarget(check) {
|
|
355
|
+
const evidence = cliRecord(check.evidence);
|
|
356
|
+
if (!evidence) return void 0;
|
|
357
|
+
const selector = cliString(evidence.selector);
|
|
358
|
+
if (check.type === "route_loaded") {
|
|
359
|
+
const expectedPath = cliString(evidence.expected_path);
|
|
360
|
+
return expectedPath ? markdownInlineCode(expectedPath) : void 0;
|
|
361
|
+
}
|
|
362
|
+
if (check.type === "selector_visible" || check.type === "selector_absent") {
|
|
363
|
+
return selector ? markdownInlineCode(selector) : void 0;
|
|
364
|
+
}
|
|
365
|
+
if (check.type === "selector_count_at_least") {
|
|
366
|
+
const minCount = cliFiniteNumber(evidence.min_count);
|
|
367
|
+
return selector && minCount !== void 0 ? `${markdownInlineCode(selector)} >= ${minCount}` : void 0;
|
|
368
|
+
}
|
|
369
|
+
if (check.type === "selector_count_equals" || check.type === "selector_count_equal" || check.type === "selector_count_eq") {
|
|
370
|
+
const expectedCount = cliFiniteNumber(evidence.expected_count);
|
|
371
|
+
return selector && expectedCount !== void 0 ? `${markdownInlineCode(selector)} = ${expectedCount}` : void 0;
|
|
372
|
+
}
|
|
373
|
+
if (check.type === "selector_text_order") {
|
|
374
|
+
return selector ? `${markdownInlineCode(selector)} text order` : void 0;
|
|
375
|
+
}
|
|
376
|
+
if (check.type === "text_visible" || check.type === "text_absent") {
|
|
377
|
+
return profileCheckTextTarget(evidence);
|
|
378
|
+
}
|
|
379
|
+
if (check.type === "frame_text_visible") {
|
|
380
|
+
const textTarget = profileCheckTextTarget(evidence);
|
|
381
|
+
if (selector && textTarget) return `${markdownInlineCode(selector)} contains ${textTarget}`;
|
|
382
|
+
return selector ? markdownInlineCode(selector) : textTarget;
|
|
383
|
+
}
|
|
384
|
+
if (check.type === "frame_url_equals") {
|
|
385
|
+
const expectedUrl = cliString(evidence.expected_url);
|
|
386
|
+
if (selector && expectedUrl) return `${markdownInlineCode(selector)} = ${markdownInlineCode(expectedUrl)}`;
|
|
387
|
+
return selector ? markdownInlineCode(selector) : expectedUrl ? markdownInlineCode(expectedUrl) : void 0;
|
|
388
|
+
}
|
|
389
|
+
if (check.type === "frame_url_matches") {
|
|
390
|
+
const pattern = cliString(evidence.pattern);
|
|
391
|
+
if (selector && pattern) return `${markdownInlineCode(selector)} matches ${markdownInlineCode(pattern)}`;
|
|
392
|
+
return selector ? markdownInlineCode(selector) : pattern ? `pattern ${markdownInlineCode(pattern)}` : void 0;
|
|
393
|
+
}
|
|
394
|
+
if (check.type === "frame_no_horizontal_overflow") {
|
|
395
|
+
const maxOverflow = cliFiniteNumber(evidence.max_overflow_px);
|
|
396
|
+
if (selector && maxOverflow !== void 0) return `${markdownInlineCode(selector)} <= ${maxOverflow}px`;
|
|
397
|
+
return selector ? markdownInlineCode(selector) : maxOverflow !== void 0 ? `<= ${maxOverflow}px` : void 0;
|
|
398
|
+
}
|
|
399
|
+
if (check.type === "no_horizontal_overflow" || check.type === "no_mobile_horizontal_overflow") {
|
|
400
|
+
const maxOverflow = cliFiniteNumber(evidence.max_overflow_px);
|
|
401
|
+
return maxOverflow !== void 0 ? `<= ${maxOverflow}px` : void 0;
|
|
402
|
+
}
|
|
403
|
+
if (check.type === "no_fatal_console_errors") {
|
|
404
|
+
return "0 unallowed fatal errors";
|
|
405
|
+
}
|
|
406
|
+
return void 0;
|
|
407
|
+
}
|
|
408
|
+
function profileCheckMarkdownLabel(check) {
|
|
409
|
+
const label = check.label || check.type;
|
|
410
|
+
const target = profileCheckMarkdownTarget(check);
|
|
411
|
+
return target ? `${label} (${target})` : label;
|
|
412
|
+
}
|
|
343
413
|
function cliRecord(value) {
|
|
344
414
|
return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
345
415
|
}
|
package/dist/index.cjs
CHANGED
|
@@ -8760,6 +8760,7 @@ var RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES = [
|
|
|
8760
8760
|
"local_storage",
|
|
8761
8761
|
"session_storage",
|
|
8762
8762
|
"clear_storage",
|
|
8763
|
+
"clear_console",
|
|
8763
8764
|
"screenshot",
|
|
8764
8765
|
"wait",
|
|
8765
8766
|
"wait_for_selector",
|
|
@@ -9021,7 +9022,7 @@ function isSupportedCheckType(value) {
|
|
|
9021
9022
|
}
|
|
9022
9023
|
function normalizeSetupActionType(value, index) {
|
|
9023
9024
|
const normalizedInput = String(value || "").trim().replace(/-/g, "_");
|
|
9024
|
-
const normalized = normalizedInput === "clear_browser_storage" ? "clear_storage" : normalizedInput === "pointer_drag" || normalizedInput === "mouse_drag" || normalizedInput === "drag_to" ? "drag" : normalizedInput === "keyboard_press" || normalizedInput === "key_press" ? "press" : normalizedInput === "capture_screenshot" || normalizedInput === "save_screenshot" || normalizedInput === "setup_screenshot" ? "screenshot" : normalizedInput;
|
|
9025
|
+
const normalized = normalizedInput === "clear_browser_storage" ? "clear_storage" : normalizedInput === "reset_console" || normalizedInput === "clear_browser_console" || normalizedInput === "reset_browser_console" ? "clear_console" : normalizedInput === "pointer_drag" || normalizedInput === "mouse_drag" || normalizedInput === "drag_to" ? "drag" : normalizedInput === "keyboard_press" || normalizedInput === "key_press" ? "press" : normalizedInput === "capture_screenshot" || normalizedInput === "save_screenshot" || normalizedInput === "setup_screenshot" ? "screenshot" : normalizedInput;
|
|
9025
9026
|
if (RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES.includes(normalized)) {
|
|
9026
9027
|
return normalized;
|
|
9027
9028
|
}
|
|
@@ -11573,6 +11574,13 @@ async function executeSetupAction(action, ordinal, viewport) {
|
|
|
11573
11574
|
await saveScreenshot(label);
|
|
11574
11575
|
return { ...base, ok: true, label: rawLabel, screenshot_label: label };
|
|
11575
11576
|
}
|
|
11577
|
+
if (type === "clear_console") {
|
|
11578
|
+
const cleared_console_event_count = consoleEvents.length;
|
|
11579
|
+
const cleared_page_error_count = pageErrors.length;
|
|
11580
|
+
consoleEvents.length = 0;
|
|
11581
|
+
pageErrors.length = 0;
|
|
11582
|
+
return { ...base, ok: true, cleared_console_event_count, cleared_page_error_count };
|
|
11583
|
+
}
|
|
11576
11584
|
if (type === "wait_for_selector") {
|
|
11577
11585
|
const scope = await setupActionScope(action, timeout);
|
|
11578
11586
|
if (!scope.ok) return setupScopeFailure(base, scope);
|
package/dist/index.js
CHANGED
|
@@ -58,7 +58,7 @@ import {
|
|
|
58
58
|
resolveRiddleProofProfileTimeoutSec,
|
|
59
59
|
slugifyRiddleProofProfileName,
|
|
60
60
|
summarizeRiddleProofProfileResult
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-ILB4HKPH.js";
|
|
62
62
|
import {
|
|
63
63
|
DEFAULT_RIDDLE_API_BASE_URL,
|
|
64
64
|
DEFAULT_RIDDLE_API_KEY_FILE,
|
package/dist/profile.cjs
CHANGED
|
@@ -89,6 +89,7 @@ var RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES = [
|
|
|
89
89
|
"local_storage",
|
|
90
90
|
"session_storage",
|
|
91
91
|
"clear_storage",
|
|
92
|
+
"clear_console",
|
|
92
93
|
"screenshot",
|
|
93
94
|
"wait",
|
|
94
95
|
"wait_for_selector",
|
|
@@ -350,7 +351,7 @@ function isSupportedCheckType(value) {
|
|
|
350
351
|
}
|
|
351
352
|
function normalizeSetupActionType(value, index) {
|
|
352
353
|
const normalizedInput = String(value || "").trim().replace(/-/g, "_");
|
|
353
|
-
const normalized = normalizedInput === "clear_browser_storage" ? "clear_storage" : normalizedInput === "pointer_drag" || normalizedInput === "mouse_drag" || normalizedInput === "drag_to" ? "drag" : normalizedInput === "keyboard_press" || normalizedInput === "key_press" ? "press" : normalizedInput === "capture_screenshot" || normalizedInput === "save_screenshot" || normalizedInput === "setup_screenshot" ? "screenshot" : normalizedInput;
|
|
354
|
+
const normalized = normalizedInput === "clear_browser_storage" ? "clear_storage" : normalizedInput === "reset_console" || normalizedInput === "clear_browser_console" || normalizedInput === "reset_browser_console" ? "clear_console" : normalizedInput === "pointer_drag" || normalizedInput === "mouse_drag" || normalizedInput === "drag_to" ? "drag" : normalizedInput === "keyboard_press" || normalizedInput === "key_press" ? "press" : normalizedInput === "capture_screenshot" || normalizedInput === "save_screenshot" || normalizedInput === "setup_screenshot" ? "screenshot" : normalizedInput;
|
|
354
355
|
if (RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES.includes(normalized)) {
|
|
355
356
|
return normalized;
|
|
356
357
|
}
|
|
@@ -2902,6 +2903,13 @@ async function executeSetupAction(action, ordinal, viewport) {
|
|
|
2902
2903
|
await saveScreenshot(label);
|
|
2903
2904
|
return { ...base, ok: true, label: rawLabel, screenshot_label: label };
|
|
2904
2905
|
}
|
|
2906
|
+
if (type === "clear_console") {
|
|
2907
|
+
const cleared_console_event_count = consoleEvents.length;
|
|
2908
|
+
const cleared_page_error_count = pageErrors.length;
|
|
2909
|
+
consoleEvents.length = 0;
|
|
2910
|
+
pageErrors.length = 0;
|
|
2911
|
+
return { ...base, ok: true, cleared_console_event_count, cleared_page_error_count };
|
|
2912
|
+
}
|
|
2905
2913
|
if (type === "wait_for_selector") {
|
|
2906
2914
|
const scope = await setupActionScope(action, timeout);
|
|
2907
2915
|
if (!scope.ok) return setupScopeFailure(base, scope);
|
package/dist/profile.d.cts
CHANGED
|
@@ -5,7 +5,7 @@ declare const RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION: "riddle-proof.profile-evide
|
|
|
5
5
|
declare const RIDDLE_PROOF_PROFILE_RESULT_VERSION: "riddle-proof.profile-result.v1";
|
|
6
6
|
declare const RIDDLE_PROOF_PROFILE_STATUSES: readonly ["passed", "product_regression", "proof_insufficient", "environment_blocked", "configuration_error", "needs_human_review"];
|
|
7
7
|
declare const RIDDLE_PROOF_PROFILE_CHECK_TYPES: readonly ["route_loaded", "url_search_param_equals", "url_search_param_absent", "selector_visible", "selector_absent", "selector_count_at_least", "selector_count_equals", "selector_count_equal", "selector_count_eq", "selector_text_order", "frame_text_visible", "frame_url_equals", "frame_url_matches", "frame_no_horizontal_overflow", "text_visible", "text_absent", "route_inventory", "no_horizontal_overflow", "no_mobile_horizontal_overflow", "no_fatal_console_errors"];
|
|
8
|
-
declare const RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES: readonly ["click", "drag", "press", "fill", "set_input_value", "assert_text_visible", "assert_text_absent", "assert_selector_count", "assert_window_value", "assert_window_number", "local_storage", "session_storage", "clear_storage", "screenshot", "wait", "wait_for_selector", "wait_for_text", "window_call"];
|
|
8
|
+
declare const RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES: readonly ["click", "drag", "press", "fill", "set_input_value", "assert_text_visible", "assert_text_absent", "assert_selector_count", "assert_window_value", "assert_window_number", "local_storage", "session_storage", "clear_storage", "clear_console", "screenshot", "wait", "wait_for_selector", "wait_for_text", "window_call"];
|
|
9
9
|
type RiddleProofProfileStatus = typeof RIDDLE_PROOF_PROFILE_STATUSES[number];
|
|
10
10
|
type RiddleProofProfileCheckType = typeof RIDDLE_PROOF_PROFILE_CHECK_TYPES[number];
|
|
11
11
|
type RiddleProofProfileSetupActionType = typeof RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES[number];
|
package/dist/profile.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ declare const RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION: "riddle-proof.profile-evide
|
|
|
5
5
|
declare const RIDDLE_PROOF_PROFILE_RESULT_VERSION: "riddle-proof.profile-result.v1";
|
|
6
6
|
declare const RIDDLE_PROOF_PROFILE_STATUSES: readonly ["passed", "product_regression", "proof_insufficient", "environment_blocked", "configuration_error", "needs_human_review"];
|
|
7
7
|
declare const RIDDLE_PROOF_PROFILE_CHECK_TYPES: readonly ["route_loaded", "url_search_param_equals", "url_search_param_absent", "selector_visible", "selector_absent", "selector_count_at_least", "selector_count_equals", "selector_count_equal", "selector_count_eq", "selector_text_order", "frame_text_visible", "frame_url_equals", "frame_url_matches", "frame_no_horizontal_overflow", "text_visible", "text_absent", "route_inventory", "no_horizontal_overflow", "no_mobile_horizontal_overflow", "no_fatal_console_errors"];
|
|
8
|
-
declare const RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES: readonly ["click", "drag", "press", "fill", "set_input_value", "assert_text_visible", "assert_text_absent", "assert_selector_count", "assert_window_value", "assert_window_number", "local_storage", "session_storage", "clear_storage", "screenshot", "wait", "wait_for_selector", "wait_for_text", "window_call"];
|
|
8
|
+
declare const RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES: readonly ["click", "drag", "press", "fill", "set_input_value", "assert_text_visible", "assert_text_absent", "assert_selector_count", "assert_window_value", "assert_window_number", "local_storage", "session_storage", "clear_storage", "clear_console", "screenshot", "wait", "wait_for_selector", "wait_for_text", "window_call"];
|
|
9
9
|
type RiddleProofProfileStatus = typeof RIDDLE_PROOF_PROFILE_STATUSES[number];
|
|
10
10
|
type RiddleProofProfileCheckType = typeof RIDDLE_PROOF_PROFILE_CHECK_TYPES[number];
|
|
11
11
|
type RiddleProofProfileSetupActionType = typeof RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES[number];
|
package/dist/profile.js
CHANGED
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
resolveRiddleProofProfileTimeoutSec,
|
|
20
20
|
slugifyRiddleProofProfileName,
|
|
21
21
|
summarizeRiddleProofProfileResult
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-ILB4HKPH.js";
|
|
23
23
|
export {
|
|
24
24
|
RIDDLE_PROOF_PROFILE_CHECK_TYPES,
|
|
25
25
|
RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION,
|