waygraph 0.15.47 → 0.15.49
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/analysis/graph.js +2 -2
- package/dist/auto-session/session.js +2 -2
- package/dist/cli/discover.d.ts +1 -1
- package/dist/cli/discover.js +1 -1
- package/dist/cli.js +1 -1
- package/dist/{agent-dive.js → commands/agent-dive-scaffold.js} +2 -2
- package/dist/commands/agent-dive.js +1 -1
- package/dist/{engine/core.js → core/block.js} +6 -6
- package/dist/core/blocks/api.d.ts +54 -0
- package/dist/core/blocks/api.js +75 -0
- package/dist/{engine → core}/blocks/effect.d.ts +1 -1
- package/dist/{engine → core}/blocks/effect.js +1 -1
- package/dist/{engine → core}/blocks/method.d.ts +1 -1
- package/dist/{engine → core}/blocks/method.js +1 -1
- package/dist/{engine → core}/blocks/nav.js +1 -1
- package/dist/{engine → core}/blocks/page.js +1 -1
- package/dist/{engine → core}/branch-regression.js +2 -3
- package/dist/{engine → core}/compose.js +4 -4
- package/dist/{engine/engine-class.d.ts → core/engine.d.ts} +2 -133
- package/dist/core/engine.js +50 -0
- package/dist/{engine → core}/flow.js +5 -5
- package/dist/core/map-builder.d.ts +171 -0
- package/dist/{engine/engine-class.js → core/map-builder.js} +82 -98
- package/dist/{engine → core}/run-graph.js +4 -6
- package/dist/core.d.ts +14 -0
- package/dist/core.js +15 -0
- package/dist/errors.d.ts +54 -20
- package/dist/errors.js +67 -20
- package/dist/highlights/run-phase.js +15 -2
- package/dist/highlights/stub-ctx.js +16 -0
- package/dist/highlights/types.d.ts +38 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.js +1 -1
- package/dist/mem-page.js +2 -2
- package/dist/mem-stub.d.ts +1 -1
- package/dist/pilot-overlay/fixtures.js +42 -10
- package/dist/pilot-overlay/shell.js +23 -10
- package/dist/runner/banner-log.js +1 -0
- package/dist/runner/device-stage.js +35 -15
- package/dist/runner/inpage/banner.d.ts +9 -1
- package/dist/runner/inpage/banner.js +27 -2
- package/dist/runner/inpage/caption.d.ts +3 -0
- package/dist/runner/inpage/caption.js +23 -0
- package/dist/runner/inpage/core.js +32 -9
- package/dist/runner/inpage/network.d.ts +15 -0
- package/dist/runner/inpage/network.js +217 -0
- package/dist/runner/inpage/panel-chrome.js +41 -1
- package/dist/runner/inpage/swipe-zoom.js +1 -1
- package/dist/runner/inpage/todos.js +6 -1
- package/dist/runner/main.js +9 -2
- package/dist/runner/network-capture.d.ts +9 -0
- package/dist/runner/network-capture.js +126 -0
- package/dist/runner/overlay-css.js +71 -7
- package/dist/runner/overlay-install.js +39 -2
- package/dist/runner/overlay-stage.js +5 -0
- package/dist/runner/rings.js +69 -45
- package/dist/runner/slides.js +14 -8
- package/dist/runner/step-mode.js +12 -0
- package/dist/runner/step-panels.js +9 -3
- package/dist/runner/teardown.js +16 -9
- package/dist/session/auto-explore-run.d.ts +1 -1
- package/dist/session/auto-explore-run.js +47 -10
- package/dist/{step-overlay.d.ts → session/step-overlay.d.ts} +1 -1
- package/dist/{step-overlay.js → session/step-overlay.js} +1 -1
- package/dist/trait.d.ts +1 -0
- package/dist/trait.js +15 -0
- package/dist/traverse/run.js +1 -1
- package/dist/ui/components/ring.js +4 -2
- package/dist/ui/overlay.css +36 -3
- package/examples/saucedemo/.waygraph-auto/00d147d1.log +21 -0
- package/examples/saucedemo/.waygraph-auto/0402cfcf.log +6 -0
- package/examples/saucedemo/.waygraph-auto/062b581f.log +20 -0
- package/examples/saucedemo/.waygraph-auto/0681582b.log +6 -0
- package/examples/saucedemo/.waygraph-auto/07f3e964.log +6 -0
- package/examples/saucedemo/.waygraph-auto/0868ae4d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/0924ddaa.log +22 -0
- package/examples/saucedemo/.waygraph-auto/092d6173.log +5 -0
- package/examples/saucedemo/.waygraph-auto/09924510.log +0 -0
- package/examples/saucedemo/.waygraph-auto/0998c941.log +21 -0
- package/examples/saucedemo/.waygraph-auto/0bf74300.log +21 -0
- package/examples/saucedemo/.waygraph-auto/0c01fd29.log +4 -0
- package/examples/saucedemo/.waygraph-auto/0c302590.log +0 -0
- package/examples/saucedemo/.waygraph-auto/0dee62d6.log +5 -0
- package/examples/saucedemo/.waygraph-auto/0eb4c081.log +5 -0
- package/examples/saucedemo/.waygraph-auto/10fd431c.log +0 -0
- package/examples/saucedemo/.waygraph-auto/13c6fe3c.log +0 -0
- package/examples/saucedemo/.waygraph-auto/1581b677.log +0 -0
- package/examples/saucedemo/.waygraph-auto/164761a5.log +6 -0
- package/examples/saucedemo/.waygraph-auto/1905ceb2.log +0 -0
- package/examples/saucedemo/.waygraph-auto/1b1d55c6.log +0 -0
- package/examples/saucedemo/.waygraph-auto/1b80fd24.log +6 -0
- package/examples/saucedemo/.waygraph-auto/1c30a3c2.log +0 -0
- package/examples/saucedemo/.waygraph-auto/1d90aa9a.log +0 -0
- package/examples/saucedemo/.waygraph-auto/1de7d889.log +0 -0
- package/examples/saucedemo/.waygraph-auto/1f233a4c.log +6 -0
- package/examples/saucedemo/.waygraph-auto/20e66801.log +0 -0
- package/examples/saucedemo/.waygraph-auto/20ffdb77.log +0 -0
- package/examples/saucedemo/.waygraph-auto/22f1a704.log +5 -0
- package/examples/saucedemo/.waygraph-auto/239cced3.log +20 -0
- package/examples/saucedemo/.waygraph-auto/25204b46.log +4 -0
- package/examples/saucedemo/.waygraph-auto/25e2e90f.log +0 -0
- package/examples/saucedemo/.waygraph-auto/2708455e.log +22 -0
- package/examples/saucedemo/.waygraph-auto/272a96fd.log +20 -0
- package/examples/saucedemo/.waygraph-auto/28d7be5d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/2a6a8266.log +6 -0
- package/examples/saucedemo/.waygraph-auto/2b3401cf.log +20 -0
- package/examples/saucedemo/.waygraph-auto/2ceccd6d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/2f1b0c13.log +6 -0
- package/examples/saucedemo/.waygraph-auto/2f8d4073.log +6 -0
- package/examples/saucedemo/.waygraph-auto/30739278.log +6 -0
- package/examples/saucedemo/.waygraph-auto/31cb2e80.log +0 -0
- package/examples/saucedemo/.waygraph-auto/322d63cd.log +0 -0
- package/examples/saucedemo/.waygraph-auto/3239aa8a.log +6 -0
- package/examples/saucedemo/.waygraph-auto/326d87b7.log +6 -0
- package/examples/saucedemo/.waygraph-auto/3351c0b6.log +0 -0
- package/examples/saucedemo/.waygraph-auto/33df0770.log +0 -0
- package/examples/saucedemo/.waygraph-auto/340d624d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/36367ccf.log +0 -0
- package/examples/saucedemo/.waygraph-auto/372536a5.log +6 -0
- package/examples/saucedemo/.waygraph-auto/3a412f3c.log +0 -0
- package/examples/saucedemo/.waygraph-auto/3a859bd7.log +0 -0
- package/examples/saucedemo/.waygraph-auto/3cb0add7.log +0 -0
- package/examples/saucedemo/.waygraph-auto/3e42f0d8.log +0 -0
- package/examples/saucedemo/.waygraph-auto/4144071d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/4176a3c6.log +0 -0
- package/examples/saucedemo/.waygraph-auto/41d0793d.log +4 -0
- package/examples/saucedemo/.waygraph-auto/424b4d5d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/43253aba.log +0 -0
- package/examples/saucedemo/.waygraph-auto/438c6c53.log +22 -0
- package/examples/saucedemo/.waygraph-auto/4477db12.log +0 -0
- package/examples/saucedemo/.waygraph-auto/4a1258b7.log +0 -0
- package/examples/saucedemo/.waygraph-auto/4adcd179.log +20 -0
- package/examples/saucedemo/.waygraph-auto/4c9d9b16.log +21 -0
- package/examples/saucedemo/.waygraph-auto/4da39c36.log +6 -0
- package/examples/saucedemo/.waygraph-auto/4dbefa7e.log +5 -0
- package/examples/saucedemo/.waygraph-auto/4efa7035.log +6 -0
- package/examples/saucedemo/.waygraph-auto/505affdc.log +4 -0
- package/examples/saucedemo/.waygraph-auto/51bcb60a.log +0 -0
- package/examples/saucedemo/.waygraph-auto/5291bc78.log +22 -0
- package/examples/saucedemo/.waygraph-auto/54274c39.log +5 -0
- package/examples/saucedemo/.waygraph-auto/5440ce7e.log +0 -0
- package/examples/saucedemo/.waygraph-auto/5738175f.log +22 -0
- package/examples/saucedemo/.waygraph-auto/57ce5643.log +22 -0
- package/examples/saucedemo/.waygraph-auto/5984426b.log +6 -0
- package/examples/saucedemo/.waygraph-auto/5a682e7c.log +22 -0
- package/examples/saucedemo/.waygraph-auto/5b79320c.log +21 -0
- package/examples/saucedemo/.waygraph-auto/5c55aaac.log +21 -0
- package/examples/saucedemo/.waygraph-auto/5ed00b16.log +4 -0
- package/examples/saucedemo/.waygraph-auto/60b9c066.log +6 -0
- package/examples/saucedemo/.waygraph-auto/610dd127.log +0 -0
- package/examples/saucedemo/.waygraph-auto/61105500.log +5 -0
- package/examples/saucedemo/.waygraph-auto/6134afe8.log +20 -0
- package/examples/saucedemo/.waygraph-auto/62a0bdc9.log +22 -0
- package/examples/saucedemo/.waygraph-auto/6376fc15.log +0 -0
- package/examples/saucedemo/.waygraph-auto/6599cbca.log +22 -0
- package/examples/saucedemo/.waygraph-auto/67aaca30.log +0 -0
- package/examples/saucedemo/.waygraph-auto/68b10298.log +0 -0
- package/examples/saucedemo/.waygraph-auto/68be5e12.log +0 -0
- package/examples/saucedemo/.waygraph-auto/68df05a6.log +22 -0
- package/examples/saucedemo/.waygraph-auto/693f67c4.log +20 -0
- package/examples/saucedemo/.waygraph-auto/69ae030a.log +6 -0
- package/examples/saucedemo/.waygraph-auto/69e73f35.log +6 -0
- package/examples/saucedemo/.waygraph-auto/6b2333b0.log +5 -0
- package/examples/saucedemo/.waygraph-auto/6c4c3817.log +0 -0
- package/examples/saucedemo/.waygraph-auto/6c954911.log +0 -0
- package/examples/saucedemo/.waygraph-auto/6d65a439.log +5 -0
- package/examples/saucedemo/.waygraph-auto/6d700055.log +0 -0
- package/examples/saucedemo/.waygraph-auto/6ead848f.log +0 -0
- package/examples/saucedemo/.waygraph-auto/72675b2d.log +6 -0
- package/examples/saucedemo/.waygraph-auto/733dd260.log +5 -0
- package/examples/saucedemo/.waygraph-auto/75016486.log +0 -0
- package/examples/saucedemo/.waygraph-auto/752b01c6.log +22 -0
- package/examples/saucedemo/.waygraph-auto/75675227.log +6 -0
- package/examples/saucedemo/.waygraph-auto/75e2e658.log +0 -0
- package/examples/saucedemo/.waygraph-auto/76ac1a86.log +0 -0
- package/examples/saucedemo/.waygraph-auto/77605295.log +0 -0
- package/examples/saucedemo/.waygraph-auto/792671f4.log +22 -0
- package/examples/saucedemo/.waygraph-auto/79915adb.log +20 -0
- package/examples/saucedemo/.waygraph-auto/7a398774.log +6 -0
- package/examples/saucedemo/.waygraph-auto/7a72f66e.log +6 -0
- package/examples/saucedemo/.waygraph-auto/7a984334.log +4 -0
- package/examples/saucedemo/.waygraph-auto/7c6ee793.log +20 -0
- package/examples/saucedemo/.waygraph-auto/7c726dc4.log +22 -0
- package/examples/saucedemo/.waygraph-auto/7c72e8a5.log +4 -0
- package/examples/saucedemo/.waygraph-auto/7dbee625.log +22 -0
- package/examples/saucedemo/.waygraph-auto/7df66956.log +0 -0
- package/examples/saucedemo/.waygraph-auto/7e053160.log +0 -0
- package/examples/saucedemo/.waygraph-auto/802a0b5b.log +0 -0
- package/examples/saucedemo/.waygraph-auto/80322e0b.log +0 -0
- package/examples/saucedemo/.waygraph-auto/80a4978e.log +6 -0
- package/examples/saucedemo/.waygraph-auto/81cfe480.log +22 -0
- package/examples/saucedemo/.waygraph-auto/832f5add.log +0 -0
- package/examples/saucedemo/.waygraph-auto/8337b6ad.log +0 -0
- package/examples/saucedemo/.waygraph-auto/8493928e.log +0 -0
- package/examples/saucedemo/.waygraph-auto/853bde43.log +0 -0
- package/examples/saucedemo/.waygraph-auto/86350ea6.log +22 -0
- package/examples/saucedemo/.waygraph-auto/86bb598a.log +0 -0
- package/examples/saucedemo/.waygraph-auto/86d09876.log +22 -0
- package/examples/saucedemo/.waygraph-auto/878ad01b.log +4 -0
- package/examples/saucedemo/.waygraph-auto/87c88ba5.log +0 -0
- package/examples/saucedemo/.waygraph-auto/87cb80ff.log +0 -0
- package/examples/saucedemo/.waygraph-auto/880b2e78.log +6 -0
- package/examples/saucedemo/.waygraph-auto/88527936.log +5 -0
- package/examples/saucedemo/.waygraph-auto/893023ea.log +5 -0
- package/examples/saucedemo/.waygraph-auto/89416718.log +0 -0
- package/examples/saucedemo/.waygraph-auto/8996a857.log +6 -0
- package/examples/saucedemo/.waygraph-auto/8a64ba0f.log +6 -0
- package/examples/saucedemo/.waygraph-auto/8b1cc2aa.log +6 -0
- package/examples/saucedemo/.waygraph-auto/8b73d13e.log +6 -0
- package/examples/saucedemo/.waygraph-auto/8d9e5cd2.log +21 -0
- package/examples/saucedemo/.waygraph-auto/8ec7d260.log +0 -0
- package/examples/saucedemo/.waygraph-auto/8ed43279.log +0 -0
- package/examples/saucedemo/.waygraph-auto/93acae32.log +5 -0
- package/examples/saucedemo/.waygraph-auto/96321a08.log +0 -0
- package/examples/saucedemo/.waygraph-auto/9742b6c2.log +6 -0
- package/examples/saucedemo/.waygraph-auto/99cc93eb.log +6 -0
- package/examples/saucedemo/.waygraph-auto/9cbfbedc.log +0 -0
- package/examples/saucedemo/.waygraph-auto/9dc147d2.log +22 -0
- package/examples/saucedemo/.waygraph-auto/a215a395.log +22 -0
- package/examples/saucedemo/.waygraph-auto/a23b7086.log +4 -0
- package/examples/saucedemo/.waygraph-auto/a35bd5ec.log +0 -0
- package/examples/saucedemo/.waygraph-auto/a68995e9.log +22 -0
- package/examples/saucedemo/.waygraph-auto/a6e4f936.log +22 -0
- package/examples/saucedemo/.waygraph-auto/a7da862b.log +0 -0
- package/examples/saucedemo/.waygraph-auto/a82e2a48.log +0 -0
- package/examples/saucedemo/.waygraph-auto/a952eb91.log +0 -0
- package/examples/saucedemo/.waygraph-auto/a9559653.log +5 -0
- package/examples/saucedemo/.waygraph-auto/aa478de2.log +0 -0
- package/examples/saucedemo/.waygraph-auto/ac350fc7.log +20 -0
- package/examples/saucedemo/.waygraph-auto/acc1b63a.log +0 -0
- package/examples/saucedemo/.waygraph-auto/ad12d191.log +0 -0
- package/examples/saucedemo/.waygraph-auto/b04638f4.log +6 -0
- package/examples/saucedemo/.waygraph-auto/b48863e5.log +22 -0
- package/examples/saucedemo/.waygraph-auto/b56968e1.log +6 -0
- package/examples/saucedemo/.waygraph-auto/b64e0620.log +20 -0
- package/examples/saucedemo/.waygraph-auto/b86a6218.log +6 -0
- package/examples/saucedemo/.waygraph-auto/b8e9e956.log +22 -0
- package/examples/saucedemo/.waygraph-auto/b9b310ff.log +21 -0
- package/examples/saucedemo/.waygraph-auto/bc111745.log +22 -0
- package/examples/saucedemo/.waygraph-auto/bf7a77a2.log +0 -0
- package/examples/saucedemo/.waygraph-auto/c0d6f353.log +21 -0
- package/examples/saucedemo/.waygraph-auto/c0febcf2.log +20 -0
- package/examples/saucedemo/.waygraph-auto/c4c52998.log +6 -0
- package/examples/saucedemo/.waygraph-auto/c809ceb4.log +22 -0
- package/examples/saucedemo/.waygraph-auto/ca6de7e7.log +0 -0
- package/examples/saucedemo/.waygraph-auto/ca8561bc.log +0 -0
- package/examples/saucedemo/.waygraph-auto/cb86d45b.log +0 -0
- package/examples/saucedemo/.waygraph-auto/cb9a1978.log +6 -0
- package/examples/saucedemo/.waygraph-auto/cbbc689c.log +6 -0
- package/examples/saucedemo/.waygraph-auto/cd88364b.log +0 -0
- package/examples/saucedemo/.waygraph-auto/cd919e1d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/cfff9eef.log +20 -0
- package/examples/saucedemo/.waygraph-auto/d0f59b21.log +4 -0
- package/examples/saucedemo/.waygraph-auto/d1195079.log +20 -0
- package/examples/saucedemo/.waygraph-auto/d2ef067a.log +5 -0
- package/examples/saucedemo/.waygraph-auto/d425471f.log +6 -0
- package/examples/saucedemo/.waygraph-auto/d5293921.log +0 -0
- package/examples/saucedemo/.waygraph-auto/d62a22c2.log +21 -0
- package/examples/saucedemo/.waygraph-auto/d6d1761f.log +22 -0
- package/examples/saucedemo/.waygraph-auto/d6d5f411.log +22 -0
- package/examples/saucedemo/.waygraph-auto/d6df2771.log +6 -0
- package/examples/saucedemo/.waygraph-auto/d7075012.log +21 -0
- package/examples/saucedemo/.waygraph-auto/d9ddc297.log +0 -0
- package/examples/saucedemo/.waygraph-auto/db4ac845.log +0 -0
- package/examples/saucedemo/.waygraph-auto/db6d7774.log +0 -0
- package/examples/saucedemo/.waygraph-auto/db839827.log +5 -0
- package/examples/saucedemo/.waygraph-auto/dde5e859.log +22 -0
- package/examples/saucedemo/.waygraph-auto/de8cac58.log +0 -0
- package/examples/saucedemo/.waygraph-auto/dedfcb18.log +0 -0
- package/examples/saucedemo/.waygraph-auto/def4d9b1.log +0 -0
- package/examples/saucedemo/.waygraph-auto/e1549e40.log +0 -0
- package/examples/saucedemo/.waygraph-auto/e1b0676d.log +21 -0
- package/examples/saucedemo/.waygraph-auto/e5111463.log +0 -0
- package/examples/saucedemo/.waygraph-auto/e5fc1d7c.log +5 -0
- package/examples/saucedemo/.waygraph-auto/e6fd2202.log +0 -0
- package/examples/saucedemo/.waygraph-auto/edaa806d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/edaf33de.log +0 -0
- package/examples/saucedemo/.waygraph-auto/edd40cbb.log +20 -0
- package/examples/saucedemo/.waygraph-auto/eddfbffc.log +6 -0
- package/examples/saucedemo/.waygraph-auto/ee9fa1ad.log +5 -0
- package/examples/saucedemo/.waygraph-auto/ef319474.log +22 -0
- package/examples/saucedemo/.waygraph-auto/f28eee8d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/f33bde90.log +0 -0
- package/examples/saucedemo/.waygraph-auto/f6ba7cb4.log +6 -0
- package/examples/saucedemo/.waygraph-auto/f7ac4d62.log +20 -0
- package/examples/saucedemo/.waygraph-auto/f929bb79.log +0 -0
- package/examples/saucedemo/.waygraph-auto/f92d4c6c.log +22 -0
- package/examples/saucedemo/.waygraph-auto/f92faf40.log +5 -0
- package/examples/saucedemo/.waygraph-auto/fa784369.log +21 -0
- package/examples/saucedemo/.waygraph-auto/fb55f723.log +20 -0
- package/examples/saucedemo/.waygraph-auto/fba3b738.log +0 -0
- package/examples/saucedemo/.waygraph-auto/ffdf2854.log +6 -0
- package/examples/saucedemo/README.md +13 -2
- package/examples/saucedemo/package.json +4 -0
- package/examples/saucedemo/src/flows/api-demo.flow.ts +37 -0
- package/examples/saucedemo/src/flows/checkout.flow.ts +34 -11
- package/package.json +5 -3
- package/dist/auto-explore-run.d.ts +0 -37
- package/dist/auto-explore-run.js +0 -670
- package/dist/auto-explore.d.ts +0 -57
- package/dist/auto-explore.js +0 -376
- package/dist/auto-session-ipc.d.ts +0 -150
- package/dist/auto-session-ipc.js +0 -497
- package/dist/block-inject.d.ts +0 -15
- package/dist/block-inject.js +0 -91
- package/dist/browser.d.ts +0 -15
- package/dist/browser.js +0 -29
- package/dist/coverage-gap.d.ts +0 -11
- package/dist/coverage-gap.js +0 -119
- package/dist/engine.d.ts +0 -12
- package/dist/engine.js +0 -13
- package/dist/graph.d.ts +0 -92
- package/dist/graph.js +0 -467
- package/dist/highlight-shorthand.d.ts +0 -24
- package/dist/highlight-shorthand.js +0 -30
- package/dist/map-check.d.ts +0 -18
- package/dist/map-check.js +0 -140
- package/dist/overlay-beacon.d.ts +0 -44
- package/dist/overlay-beacon.js +0 -85
- package/dist/pilot.d.ts +0 -54
- package/dist/pilot.js +0 -80
- package/dist/practices-check.d.ts +0 -14
- package/dist/practices-check.js +0 -195
- package/dist/traverse-coverage.d.ts +0 -59
- package/dist/traverse-coverage.js +0 -127
- package/dist/traverse-lease.d.ts +0 -18
- package/dist/traverse-lease.js +0 -62
- package/dist/traverse-run.d.ts +0 -47
- package/dist/traverse-run.js +0 -439
- package/dist/ui/compose.d.ts +0 -4
- package/dist/ui/compose.js +0 -7
- /package/dist/{verbose-log.d.ts → auto-session/verbose-log.d.ts} +0 -0
- /package/dist/{verbose-log.js → auto-session/verbose-log.js} +0 -0
- /package/dist/{agent-dive.d.ts → commands/agent-dive-scaffold.d.ts} +0 -0
- /package/dist/{engine/core.d.ts → core/block.d.ts} +0 -0
- /package/dist/{engine → core}/blocks/nav.d.ts +0 -0
- /package/dist/{engine → core}/blocks/page.d.ts +0 -0
- /package/dist/{engine → core}/branch-regression.d.ts +0 -0
- /package/dist/{engine → core}/compose.d.ts +0 -0
- /package/dist/{engine → core}/config.d.ts +0 -0
- /package/dist/{engine → core}/config.js +0 -0
- /package/dist/{engine → core}/flow.d.ts +0 -0
- /package/dist/{engine → core}/locate.d.ts +0 -0
- /package/dist/{engine → core}/locate.js +0 -0
- /package/dist/{engine → core}/run-graph.d.ts +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
[17:12:04.227] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[17:12:04.227] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[17:12:04.227] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[17:12:04.227] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[17:12:04.227] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[17:12:05.374] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[18:15:34.184] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[18:15:34.184] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[18:15:34.185] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[18:15:34.185] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[18:15:34.185] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[18:15:35.099] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
7
|
+
[18:15:36.183] waygraph pilot: stub.before ring #password tone=planned label="Password"
|
|
8
|
+
[18:15:36.312] waygraph pilot: stub.after ctx.todos n=6 index=2
|
|
9
|
+
[18:15:37.354] waygraph pilot: stub.before ring #login-button tone=warning label="Login"
|
|
10
|
+
[18:15:37.582] waygraph pilot: stub.after ctx.title("Inventory · landscape")
|
|
11
|
+
[18:15:37.582] waygraph pilot: stub.after ctx.todos n=6 index=3
|
|
12
|
+
[18:15:37.582] waygraph pilot: stub.after ctx.device(mobile)
|
|
13
|
+
[18:15:37.582] waygraph pilot: stub.after ring .inventory_list tone=success label="Product shelf"
|
|
14
|
+
[18:15:40.551] waygraph pilot: stub.before ctx.title("Open cart · landscape")
|
|
15
|
+
[18:15:40.551] waygraph pilot: stub.before ctx.todos n=6 index=5
|
|
16
|
+
[18:15:40.551] waygraph pilot: stub.before ctx.device(mobile)
|
|
17
|
+
[18:15:40.551] waygraph pilot: stub.before ctx.zoom(1.4)
|
|
18
|
+
[18:15:40.551] waygraph pilot: stub.before ring .shopping_cart_link tone=planned label="Cart"
|
|
19
|
+
[18:15:40.803] waygraph pilot: stub.after ctx.title("Your cart · desktop")
|
|
20
|
+
[18:15:40.803] waygraph pilot: stub.after ring .cart_item tone=success label="Cart items"
|
|
21
|
+
[18:16:10.840] waygraph pilot: ring not painted - selector matched nothing (or a zero-size element): .cart_item
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
[17:26:02.863] waygraph pilot: highlight ctx.todos n=3 index=0
|
|
2
|
+
[17:26:02.864] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
3
|
+
[17:26:02.864] waygraph pilot: highlight ring #password tone=info label="Password"
|
|
4
|
+
[17:26:06.607] waygraph pilot: highlight ring #no-such-element-waygraph tone=danger label="Gone"
|
|
5
|
+
[17:26:08.425] waygraph pilot: highlight ring #login-button tone=success label="Login"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
[17:11:27.933] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[17:11:27.934] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[17:11:27.934] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[17:11:27.934] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[17:11:27.934] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[17:11:28.942] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
7
|
+
[17:11:30.599] waygraph pilot: stub.before ring #password tone=planned label="Password"
|
|
8
|
+
[17:11:30.688] waygraph pilot: stub.after ctx.todos n=6 index=2
|
|
9
|
+
[17:11:32.735] waygraph pilot: stub.before ring #login-button tone=warning label="Login"
|
|
10
|
+
[17:11:32.932] waygraph pilot: stub.after ctx.title("Inventory · landscape")
|
|
11
|
+
[17:11:32.932] waygraph pilot: stub.after ctx.todos n=6 index=3
|
|
12
|
+
[17:11:32.932] waygraph pilot: stub.after ctx.device(mobile)
|
|
13
|
+
[17:11:32.932] waygraph pilot: stub.after ring .inventory_list tone=success label="Product shelf"
|
|
14
|
+
[17:11:37.836] waygraph pilot: stub.before ctx.title("Pick a product · tablet")
|
|
15
|
+
[17:11:37.836] waygraph pilot: stub.before ctx.todos n=6 index=3
|
|
16
|
+
[17:11:37.836] waygraph pilot: stub.before ctx.device(tablet)
|
|
17
|
+
[17:11:37.836] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
18
|
+
[17:11:37.836] waygraph pilot: stub.before ring div.inventory_item:has(button[data-test="add-to-cart-sauce-labs-backpack"], button[data-test="remove-sauce-labs-backpack"]) .inventory_item_name tone=info label="Sauce Labs Backpack"
|
|
19
|
+
[17:11:37.836] waygraph pilot: stub.before ring [data-test="add-to-cart-sauce-labs-backpack"] tone=success label="Add to cart"
|
|
20
|
+
[17:11:38.779] waygraph pilot: stub.after ctx.title("In the cart")
|
|
21
|
+
[17:11:38.780] waygraph pilot: stub.after ctx.todos n=6 index=4
|
|
22
|
+
[17:11:38.780] waygraph pilot: stub.after ring .shopping_cart_badge tone=success label="Cart badge"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[21:21:23.818] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[21:21:23.818] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[21:21:23.818] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[21:21:23.819] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[21:21:23.819] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[21:21:24.690] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
7
|
+
[21:21:25.888] waygraph pilot: stub.before ring #password tone=planned label="Password"
|
|
8
|
+
[21:21:26.064] waygraph pilot: stub.after ctx.todos n=6 index=2
|
|
9
|
+
[21:21:27.395] waygraph pilot: stub.before ring #login-button tone=warning label="Login"
|
|
10
|
+
[21:21:27.568] waygraph pilot: stub.after ctx.title("Inventory · landscape")
|
|
11
|
+
[21:21:27.568] waygraph pilot: stub.after ctx.todos n=6 index=3
|
|
12
|
+
[21:21:27.568] waygraph pilot: stub.after ctx.device(mobile)
|
|
13
|
+
[21:21:27.568] waygraph pilot: stub.after ring .inventory_list tone=success label="Product shelf"
|
|
14
|
+
[21:21:29.892] waygraph pilot: stub.before ctx.title("Open cart · landscape")
|
|
15
|
+
[21:21:29.892] waygraph pilot: stub.before ctx.todos n=6 index=5
|
|
16
|
+
[21:21:29.892] waygraph pilot: stub.before ctx.device(mobile)
|
|
17
|
+
[21:21:29.892] waygraph pilot: stub.before ctx.zoom(1.4)
|
|
18
|
+
[21:21:29.892] waygraph pilot: stub.before ring .shopping_cart_link tone=planned label="Cart"
|
|
19
|
+
[21:21:30.241] waygraph pilot: stub.after ctx.title("Your cart · desktop")
|
|
20
|
+
[21:21:30.241] waygraph pilot: stub.after ring .cart_item tone=success label="Cart items"
|
|
21
|
+
[21:21:30.312] waygraph pilot: ring not painted - selector matched nothing (or a zero-size element): .cart_item
|
|
File without changes
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
[14:11:07.228] waygraph pilot: highlight ctx.todos n=3 index=0
|
|
2
|
+
[14:11:07.228] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
3
|
+
[14:11:07.228] waygraph pilot: highlight ring #password tone=info label="Password"
|
|
4
|
+
[14:11:10.899] waygraph pilot: highlight ring #no-such-element-waygraph tone=danger label="Gone"
|
|
5
|
+
[14:11:12.859] waygraph pilot: highlight ring #login-button tone=success label="Login"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[14:06:47.793] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[14:06:47.793] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[14:06:47.793] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[14:06:47.794] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[14:06:47.794] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[14:06:48.667] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
7
|
+
[14:06:49.789] waygraph pilot: stub.before ring #password tone=planned label="Password"
|
|
8
|
+
[14:06:49.897] waygraph pilot: stub.after ctx.todos n=6 index=2
|
|
9
|
+
[14:06:51.311] waygraph pilot: stub.before ring #login-button tone=warning label="Login"
|
|
10
|
+
[14:06:51.432] waygraph pilot: stub.after ctx.title("Inventory · landscape")
|
|
11
|
+
[14:06:51.432] waygraph pilot: stub.after ctx.todos n=6 index=3
|
|
12
|
+
[14:06:51.432] waygraph pilot: stub.after ctx.device(mobile)
|
|
13
|
+
[14:06:51.432] waygraph pilot: stub.after ring .inventory_list tone=success label="Product shelf"
|
|
14
|
+
[14:06:54.278] waygraph pilot: stub.before ctx.title("Open cart · landscape")
|
|
15
|
+
[14:06:54.278] waygraph pilot: stub.before ctx.todos n=6 index=5
|
|
16
|
+
[14:06:54.278] waygraph pilot: stub.before ctx.device(mobile)
|
|
17
|
+
[14:06:54.279] waygraph pilot: stub.before ctx.zoom(1.4)
|
|
18
|
+
[14:06:54.279] waygraph pilot: stub.before ring .shopping_cart_link tone=planned label="Cart"
|
|
19
|
+
[14:06:54.569] waygraph pilot: stub.after ctx.title("Your cart · desktop")
|
|
20
|
+
[14:06:54.570] waygraph pilot: stub.after ring .cart_item tone=success label="Cart items"
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
[13:55:50.142] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[13:55:50.142] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[13:55:50.142] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[13:55:50.142] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[13:55:50.142] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[13:55:51.352] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
[14:06:39.547] waygraph pilot: highlight ctx.todos n=3 index=0
|
|
2
|
+
[14:06:39.547] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
3
|
+
[14:06:39.547] waygraph pilot: highlight ring #password tone=info label="Password"
|
|
4
|
+
[14:06:43.410] waygraph pilot: highlight ring #no-such-element-waygraph tone=danger label="Gone"
|
|
5
|
+
[14:06:45.509] waygraph pilot: highlight ring #login-button tone=success label="Login"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
[13:55:10.634] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[13:55:10.635] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[13:55:10.635] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[13:55:10.635] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[13:55:10.635] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[13:55:11.696] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
7
|
+
[13:55:13.705] waygraph pilot: stub.before ring #password tone=planned label="Password"
|
|
8
|
+
[13:55:13.820] waygraph pilot: stub.after ctx.todos n=6 index=2
|
|
9
|
+
[13:55:16.320] waygraph pilot: stub.before ring #login-button tone=warning label="Login"
|
|
10
|
+
[13:55:16.531] waygraph pilot: stub.after ctx.title("Inventory · landscape")
|
|
11
|
+
[13:55:16.531] waygraph pilot: stub.after ctx.todos n=6 index=3
|
|
12
|
+
[13:55:16.531] waygraph pilot: stub.after ctx.device(mobile)
|
|
13
|
+
[13:55:16.531] waygraph pilot: stub.after ring .inventory_list tone=success label="Product shelf"
|
|
14
|
+
[13:55:21.623] waygraph pilot: stub.before ctx.title("Pick a product · tablet")
|
|
15
|
+
[13:55:21.623] waygraph pilot: stub.before ctx.todos n=6 index=3
|
|
16
|
+
[13:55:21.623] waygraph pilot: stub.before ctx.device(tablet)
|
|
17
|
+
[13:55:21.623] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
18
|
+
[13:55:21.623] waygraph pilot: stub.before ring div.inventory_item:has(button[data-test="add-to-cart-sauce-labs-backpack"], button[data-test="remove-sauce-labs-backpack"]) .inventory_item_name tone=info label="Sauce Labs Backpack"
|
|
19
|
+
[13:55:21.623] waygraph pilot: stub.before ring [data-test="add-to-cart-sauce-labs-backpack"] tone=success label="Add to cart"
|
|
20
|
+
[13:55:22.739] waygraph pilot: stub.after ctx.title("In the cart")
|
|
21
|
+
[13:55:22.739] waygraph pilot: stub.after ctx.todos n=6 index=4
|
|
22
|
+
[13:55:22.739] waygraph pilot: stub.after ring .shopping_cart_badge tone=success label="Cart badge"
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
[14:11:52.958] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[14:11:52.959] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[14:11:52.959] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[14:11:52.959] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[14:11:52.959] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[14:11:54.228] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[14:00:36.038] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[14:00:36.038] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[14:00:36.038] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[14:00:36.038] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[14:00:36.039] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[14:00:37.012] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
7
|
+
[14:00:38.516] waygraph pilot: stub.before ring #password tone=planned label="Password"
|
|
8
|
+
[14:00:38.588] waygraph pilot: stub.after ctx.todos n=6 index=2
|
|
9
|
+
[14:00:39.825] waygraph pilot: stub.before ring #login-button tone=warning label="Login"
|
|
10
|
+
[14:00:40.139] waygraph pilot: stub.after ctx.title("Inventory · landscape")
|
|
11
|
+
[14:00:40.139] waygraph pilot: stub.after ctx.todos n=6 index=3
|
|
12
|
+
[14:00:40.139] waygraph pilot: stub.after ctx.device(mobile)
|
|
13
|
+
[14:00:40.139] waygraph pilot: stub.after ring .inventory_list tone=success label="Product shelf"
|
|
14
|
+
[14:00:43.111] waygraph pilot: stub.before ctx.title("Open cart · landscape")
|
|
15
|
+
[14:00:43.111] waygraph pilot: stub.before ctx.todos n=6 index=5
|
|
16
|
+
[14:00:43.111] waygraph pilot: stub.before ctx.device(mobile)
|
|
17
|
+
[14:00:43.111] waygraph pilot: stub.before ctx.zoom(1.4)
|
|
18
|
+
[14:00:43.111] waygraph pilot: stub.before ring .shopping_cart_link tone=planned label="Cart"
|
|
19
|
+
[14:00:43.323] waygraph pilot: stub.after ctx.title("Your cart · desktop")
|
|
20
|
+
[14:00:43.323] waygraph pilot: stub.after ring .cart_item tone=success label="Cart items"
|
|
File without changes
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
[18:20:03.075] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[18:20:03.076] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[18:20:03.077] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[18:20:03.077] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[18:20:03.077] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[18:20:04.426] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
7
|
+
[18:20:06.573] waygraph pilot: stub.before ring #password tone=planned label="Password"
|
|
8
|
+
[18:20:06.738] waygraph pilot: stub.after ctx.todos n=6 index=2
|
|
9
|
+
[18:20:08.639] waygraph pilot: stub.before ring #login-button tone=warning label="Login"
|
|
10
|
+
[18:20:08.736] waygraph pilot: stub.after ctx.title("Inventory · landscape")
|
|
11
|
+
[18:20:08.736] waygraph pilot: stub.after ctx.todos n=6 index=3
|
|
12
|
+
[18:20:08.736] waygraph pilot: stub.after ctx.device(mobile)
|
|
13
|
+
[18:20:08.736] waygraph pilot: stub.after ring .inventory_list tone=success label="Product shelf"
|
|
14
|
+
[18:20:11.298] waygraph pilot: stub.before ctx.title("Pick a product · tablet")
|
|
15
|
+
[18:20:11.298] waygraph pilot: stub.before ctx.todos n=6 index=3
|
|
16
|
+
[18:20:11.298] waygraph pilot: stub.before ctx.device(tablet)
|
|
17
|
+
[18:20:11.298] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
18
|
+
[18:20:11.298] waygraph pilot: stub.before ring div.inventory_item:has(button[data-test="add-to-cart-sauce-labs-backpack"], button[data-test="remove-sauce-labs-backpack"]) .inventory_item_name tone=info label="Sauce Labs Backpack"
|
|
19
|
+
[18:20:11.298] waygraph pilot: stub.before ring [data-test="add-to-cart-sauce-labs-backpack"] tone=success label="Add to cart"
|
|
20
|
+
[18:20:11.986] waygraph pilot: stub.after ctx.title("In the cart")
|
|
21
|
+
[18:20:11.986] waygraph pilot: stub.after ctx.todos n=6 index=4
|
|
22
|
+
[18:20:11.986] waygraph pilot: stub.after ring .shopping_cart_badge tone=success label="Cart badge"
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
[17:11:21.484] waygraph pilot: highlight ctx.todos n=3 index=0
|
|
2
|
+
[17:11:21.486] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
3
|
+
[17:11:21.487] waygraph pilot: highlight ring #password tone=info label="Password"
|
|
4
|
+
[17:11:25.138] waygraph pilot: highlight ring #no-such-element-waygraph tone=danger label="Gone"
|
|
5
|
+
[17:11:26.947] waygraph pilot: highlight ring #login-button tone=success label="Login"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[18:19:57.299] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[18:19:57.300] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[18:19:57.300] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[18:19:57.300] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[18:19:57.300] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[18:19:58.498] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
7
|
+
[18:19:59.896] waygraph pilot: stub.before ring #password tone=planned label="Password"
|
|
8
|
+
[18:20:00.105] waygraph pilot: stub.after ctx.todos n=6 index=2
|
|
9
|
+
[18:20:01.394] waygraph pilot: stub.before ring #login-button tone=warning label="Login"
|
|
10
|
+
[18:20:01.596] waygraph pilot: stub.after ctx.title("Inventory · landscape")
|
|
11
|
+
[18:20:01.597] waygraph pilot: stub.after ctx.todos n=6 index=3
|
|
12
|
+
[18:20:01.597] waygraph pilot: stub.after ctx.device(mobile)
|
|
13
|
+
[18:20:01.597] waygraph pilot: stub.after ring .inventory_list tone=success label="Product shelf"
|
|
14
|
+
[18:20:04.415] waygraph pilot: stub.before ctx.title("Open cart · landscape")
|
|
15
|
+
[18:20:04.415] waygraph pilot: stub.before ctx.todos n=6 index=5
|
|
16
|
+
[18:20:04.415] waygraph pilot: stub.before ctx.device(mobile)
|
|
17
|
+
[18:20:04.415] waygraph pilot: stub.before ctx.zoom(1.4)
|
|
18
|
+
[18:20:04.415] waygraph pilot: stub.before ring .shopping_cart_link tone=planned label="Cart"
|
|
19
|
+
[18:20:04.708] waygraph pilot: stub.after ctx.title("Your cart · desktop")
|
|
20
|
+
[18:20:04.708] waygraph pilot: stub.after ring .cart_item tone=success label="Cart items"
|
|
21
|
+
[18:20:04.740] waygraph pilot: ring not painted - selector matched nothing (or a zero-size element): .cart_item
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[16:12:39.604] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[16:12:39.605] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[16:12:39.605] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[16:12:39.605] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[16:12:39.605] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[16:12:40.582] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
7
|
+
[16:12:42.304] waygraph pilot: stub.before ring #password tone=planned label="Password"
|
|
8
|
+
[16:12:42.445] waygraph pilot: stub.after ctx.todos n=6 index=2
|
|
9
|
+
[16:12:44.041] waygraph pilot: stub.before ring #login-button tone=warning label="Login"
|
|
10
|
+
[16:12:44.385] waygraph pilot: stub.after ctx.title("Inventory · landscape")
|
|
11
|
+
[16:12:44.385] waygraph pilot: stub.after ctx.todos n=6 index=3
|
|
12
|
+
[16:12:44.385] waygraph pilot: stub.after ctx.device(mobile)
|
|
13
|
+
[16:12:44.385] waygraph pilot: stub.after ring .inventory_list tone=success label="Product shelf"
|
|
14
|
+
[16:12:47.747] waygraph pilot: stub.before ctx.title("Open cart · landscape")
|
|
15
|
+
[16:12:47.747] waygraph pilot: stub.before ctx.todos n=6 index=5
|
|
16
|
+
[16:12:47.747] waygraph pilot: stub.before ctx.device(mobile)
|
|
17
|
+
[16:12:47.747] waygraph pilot: stub.before ctx.zoom(1.4)
|
|
18
|
+
[16:12:47.747] waygraph pilot: stub.before ring .shopping_cart_link tone=planned label="Cart"
|
|
19
|
+
[16:12:48.104] waygraph pilot: stub.after ctx.title("Your cart · desktop")
|
|
20
|
+
[16:12:48.104] waygraph pilot: stub.after ring .cart_item tone=success label="Cart items"
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
[16:13:18.032] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[16:13:18.033] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[16:13:18.033] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[16:13:18.033] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[16:13:18.033] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[16:13:19.279] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
@@ -9,6 +9,13 @@ the **reference** for waygraph consumer conventions:
|
|
|
9
9
|
- `instanceOptions` menus for `waygraph auto` (Add/Remove + Open details)
|
|
10
10
|
- Detailed Kind / Helper / Route comments on every Block file
|
|
11
11
|
- Per-route `NAV.md` + root `src/blocks/SITE-MAP.md`
|
|
12
|
+
- Inline `{ ff: true }` fast-forward, no `.ffStart()/.ffEnd()` bracket - see
|
|
13
|
+
`checkoutFlow` (`src/flows/checkout.flow.ts`)
|
|
14
|
+
- `defineApiBlock` - a real backend/HTTP check as one step in the same Flow as
|
|
15
|
+
a UI step, with its own live network-activity panel during a demo - see
|
|
16
|
+
`apiDemoFlow` (`src/flows/api-demo.flow.ts`)
|
|
17
|
+
- `ctx.caption()` (bottom subtitle-bar) + `ctx.titlePos()` (banner
|
|
18
|
+
left/center/right) - also on `checkoutFlow`
|
|
12
19
|
|
|
13
20
|
**GitHub Pages walkthrough:**
|
|
14
21
|
[docs/saucedemo](https://deviate-dv8.github.io/waygraph/saucedemo/)
|
|
@@ -38,11 +45,15 @@ npx playwright install chromium
|
|
|
38
45
|
| Parallel crawl + leases | `npm run traverse:parallel` |
|
|
39
46
|
| Coverage JSON + min gate (10%) | `npm run traverse:coverage` |
|
|
40
47
|
| Shop demo stepper | `npm run demo:step` |
|
|
41
|
-
| Shop demo autoplay | `npm run demo:
|
|
48
|
+
| Shop demo autoplay | `npm run demo:auto-next` |
|
|
42
49
|
| **Device showcase** (mobile/tablet + portrait/landscape) | `npm run demo:device` |
|
|
43
50
|
| Device showcase + `.webm` | `npm run demo:device:video` |
|
|
44
51
|
| **Cart bulk** demo (add-all → remove-all) | `npm run demo:bulk` |
|
|
45
|
-
| Cart bulk
|
|
52
|
+
| Cart bulk autoplay | `npm run demo:bulk:auto-next` |
|
|
53
|
+
| **Owner checkout** (inline `{ ff: true }`, `ctx.caption()`, banner position) | `npm run demo:checkout` |
|
|
54
|
+
| Owner checkout + `.webm` | `npm run demo:checkout:video` |
|
|
55
|
+
| **FE + BE in one Flow** (`defineApiBlock`, live network panel) | `npm run demo:api` |
|
|
56
|
+
| FE + BE demo + `.webm` | `npm run demo:api:video` |
|
|
46
57
|
| List flows | `npm run flows` |
|
|
47
58
|
|
|
48
59
|
**Demo vs auto vs run for cart bulk**
|
|
@@ -31,6 +31,10 @@
|
|
|
31
31
|
"demo:bulk": "waygraph demo --blocks cartBulkFlow --data \"{\\\"saucedemo.credentials\\\":{\\\"username\\\":\\\"standard_user\\\",\\\"password\\\":\\\"secret_sauce\\\"}}\"",
|
|
32
32
|
"demo:bulk:auto-next": "waygraph demo --blocks cartBulkFlow --data \"{\\\"saucedemo.credentials\\\":{\\\"username\\\":\\\"standard_user\\\",\\\"password\\\":\\\"secret_sauce\\\"}}\" --auto-next --title \"Cart bulk demo\"",
|
|
33
33
|
"demo:bulk:video": "waygraph demo --blocks cartBulkFlow --data \"{\\\"saucedemo.credentials\\\":{\\\"username\\\":\\\"standard_user\\\",\\\"password\\\":\\\"secret_sauce\\\"}}\" --auto-play-video --title \"Cart bulk demo\"",
|
|
34
|
+
"demo:checkout": "waygraph demo --blocks checkoutFlow --auto-next --title \"Owner: Full Checkout\" --data \"{\\\"saucedemo.credentials\\\":{\\\"username\\\":\\\"standard_user\\\",\\\"password\\\":\\\"secret_sauce\\\"},\\\"saucedemo.selectedItem\\\":{\\\"id\\\":\\\"sauce-labs-backpack\\\",\\\"name\\\":\\\"Sauce Labs Backpack\\\"}}\"",
|
|
35
|
+
"demo:checkout:video": "waygraph demo --blocks checkoutFlow --auto-play-video --title \"Owner: Full Checkout\" --data \"{\\\"saucedemo.credentials\\\":{\\\"username\\\":\\\"standard_user\\\",\\\"password\\\":\\\"secret_sauce\\\"},\\\"saucedemo.selectedItem\\\":{\\\"id\\\":\\\"sauce-labs-backpack\\\",\\\"name\\\":\\\"Sauce Labs Backpack\\\"}}\"",
|
|
36
|
+
"demo:api": "waygraph demo --blocks apiDemoFlow --auto-next --title \"FE + BE in one Flow\" --data \"{\\\"saucedemo.credentials\\\":{\\\"username\\\":\\\"standard_user\\\",\\\"password\\\":\\\"secret_sauce\\\"}}\"",
|
|
37
|
+
"demo:api:video": "waygraph demo --blocks apiDemoFlow --auto-play-video --title \"FE + BE in one Flow\" --data \"{\\\"saucedemo.credentials\\\":{\\\"username\\\":\\\"standard_user\\\",\\\"password\\\":\\\"secret_sauce\\\"}}\"",
|
|
34
38
|
"run:bulk": "waygraph run --blocks \"loginFlow then add-all-to-cart then remove-all-from-cart\" --data \"{\\\"saucedemo.credentials\\\":{\\\"username\\\":\\\"standard_user\\\",\\\"password\\\":\\\"secret_sauce\\\"}}\"",
|
|
35
39
|
"chain:bulk": "waygraph run --blocks \"loginFlow then add-all-to-cart then remove-all-from-cart\" --data \"{\\\"saucedemo.credentials\\\":{\\\"username\\\":\\\"standard_user\\\",\\\"password\\\":\\\"secret_sauce\\\"}}\" --non-headless"
|
|
36
40
|
},
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Engine, start, end, withTitle, chainFlow, checkpoint, defineApiBlock } from "waygraph";
|
|
2
|
+
import type { Checkpoint, StubCtx } from "waygraph";
|
|
3
|
+
import { loginFlow } from "./login.flow.js";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Proof of concept for FE+BE in one Flow: a real backend check
|
|
7
|
+
* (defineApiBlock, Playwright's own page.request - no browser, no curl
|
|
8
|
+
* shell-out) resolved into a Checkpoint exactly like a UI Block, chained
|
|
9
|
+
* right after the UI login. This is the QA-team ask: show a mixed
|
|
10
|
+
* frontend + backend journey narrated as one state machine, not two
|
|
11
|
+
* separate test files with no shared story.
|
|
12
|
+
*
|
|
13
|
+
* saucedemo.com is a static demo site with no backend of its own, so this
|
|
14
|
+
* hits a well-known public REST test API (jsonplaceholder) purely to prove
|
|
15
|
+
* the mechanism - a real project would point `call` at its own backend.
|
|
16
|
+
*/
|
|
17
|
+
export type BackendHealthy = Checkpoint<"BackendHealthy">;
|
|
18
|
+
export type BackendDown = Checkpoint<"BackendDown">;
|
|
19
|
+
|
|
20
|
+
const engine = new Engine();
|
|
21
|
+
|
|
22
|
+
const CheckBackendHealth = defineApiBlock<any, BackendHealthy | BackendDown>({
|
|
23
|
+
name: "check-backend-health",
|
|
24
|
+
call: ({ request }) => request.get("https://jsonplaceholder.typicode.com/todos/1"),
|
|
25
|
+
resolve: (result) => (result.ok ? checkpoint("BackendHealthy") : checkpoint("BackendDown")),
|
|
26
|
+
stubBefore: (ctx: StubCtx<BackendHealthy | BackendDown>) => {
|
|
27
|
+
ctx.title("Checking backend health · real HTTP request, no browser");
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
export const apiDemoEpisode = withTitle(
|
|
32
|
+
engine.defineFlow([start, CheckBackendHealth, end]),
|
|
33
|
+
"Backend health check (defineApiBlock)",
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
/** Full demo: Sign In (FE) -> backend health check (BE), one narrated Flow. */
|
|
37
|
+
export const apiDemoFlow = chainFlow(loginFlow, apiDemoEpisode);
|
|
@@ -16,17 +16,23 @@ import { LoginSel } from "../blocks/saucedemo-web/methods/login.sel.js";
|
|
|
16
16
|
const engine = new Engine({ headless: false, slowMo: 250 });
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
-
* Owner checkout via map()
|
|
20
|
-
* no HighlightFixtureMap
|
|
21
|
-
*
|
|
22
|
-
*
|
|
19
|
+
* Owner checkout via map() with inline `{ ff: true }` (no separate
|
|
20
|
+
* FfOwnerAuthBlock, no HighlightFixtureMap, no .ffStart()/.ffEnd() bracket -
|
|
21
|
+
* the three auth steps below merge into one fast-forward block just by
|
|
22
|
+
* flagging each one). Auth collapses to one blitz step; post-login blocks
|
|
23
|
+
* keep their own ctx stubBefore/stubAfter. Call-site decorate example on
|
|
24
|
+
* fill-username when --ff-expand shows inners again.
|
|
25
|
+
*
|
|
26
|
+
* Also demonstrates two other recent conventions on the checkout-step-one
|
|
27
|
+
* leg: ctx.caption() (bottom subtitle-bar, ported from zsign's help-center
|
|
28
|
+
* clip engine) narrating each field, and ctx.titlePos() moving the banner
|
|
29
|
+
* left -> center -> right across three consecutive steps.
|
|
23
30
|
*/
|
|
24
31
|
export const checkoutFlow = withTitle(
|
|
25
32
|
engine
|
|
26
33
|
.map()
|
|
27
34
|
.start()
|
|
28
|
-
.
|
|
29
|
-
.gotoPage(NavLoginBlock)
|
|
35
|
+
.gotoPage(NavLoginBlock, { ff: true })
|
|
30
36
|
.method(
|
|
31
37
|
FillUsernameBlock.stubBefore((ctx) => {
|
|
32
38
|
ctx.ring("username", {
|
|
@@ -38,6 +44,7 @@ export const checkoutFlow = withTitle(
|
|
|
38
44
|
focus: true,
|
|
39
45
|
});
|
|
40
46
|
}),
|
|
47
|
+
{ ff: true },
|
|
41
48
|
)
|
|
42
49
|
.method(
|
|
43
50
|
FillPasswordBlock.stubBefore((ctx) => {
|
|
@@ -49,6 +56,7 @@ export const checkoutFlow = withTitle(
|
|
|
49
56
|
focus: true,
|
|
50
57
|
});
|
|
51
58
|
}),
|
|
59
|
+
{ ff: true },
|
|
52
60
|
)
|
|
53
61
|
.method(
|
|
54
62
|
SubmitLoginForFlow.stubBefore((ctx) => {
|
|
@@ -62,15 +70,30 @@ export const checkoutFlow = withTitle(
|
|
|
62
70
|
weight: "bold",
|
|
63
71
|
});
|
|
64
72
|
}),
|
|
73
|
+
{ ff: true },
|
|
65
74
|
)
|
|
66
|
-
.ffEnd()
|
|
67
75
|
.method(AddToCartBlock)
|
|
68
76
|
.gotoPage(NavCartBlock)
|
|
69
77
|
.gotoPage(NavCheckoutInfoBlock)
|
|
70
|
-
.method(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
78
|
+
.method(
|
|
79
|
+
FillFirstNameBlock.stubBefore((ctx) => {
|
|
80
|
+
ctx.caption("Enter the first name on the order");
|
|
81
|
+
ctx.titlePos("left");
|
|
82
|
+
}),
|
|
83
|
+
)
|
|
84
|
+
.method(
|
|
85
|
+
FillLastNameBlock.stubBefore((ctx) => {
|
|
86
|
+
ctx.caption("Enter the last name on the order");
|
|
87
|
+
ctx.titlePos("center");
|
|
88
|
+
}),
|
|
89
|
+
)
|
|
90
|
+
.method(
|
|
91
|
+
FillPostalCodeBlock.stubBefore((ctx) => {
|
|
92
|
+
ctx.caption("Enter a postal code to calculate shipping");
|
|
93
|
+
ctx.titlePos("right");
|
|
94
|
+
}),
|
|
95
|
+
)
|
|
96
|
+
.method(SubmitCheckoutInfoBlock.stubBefore((ctx) => ctx.hideCaption()))
|
|
74
97
|
.method(FinishOrderBlock)
|
|
75
98
|
.end(),
|
|
76
99
|
"Owner: Full Checkout",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "waygraph",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.49",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A typed graph of reusable Blocks for driving a browser through E2E flows.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -37,7 +37,8 @@
|
|
|
37
37
|
"url": "git+https://github.com/deviate-dv8/waygraph.git"
|
|
38
38
|
},
|
|
39
39
|
"scripts": {
|
|
40
|
-
"
|
|
40
|
+
"clean": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"",
|
|
41
|
+
"build": "npm run clean && tsc -p tsconfig.build.json && node scripts/copy-runner.mjs && node scripts/copy-ui-css.mjs",
|
|
41
42
|
"typecheck": "node bin/waygraph typecheck .",
|
|
42
43
|
"test": "npm run check:structure && npm run test:unit && playwright test",
|
|
43
44
|
"test:ui": "playwright test --ui",
|
|
@@ -55,7 +56,8 @@
|
|
|
55
56
|
},
|
|
56
57
|
"dependencies": {
|
|
57
58
|
"open-props": "^1.7.23",
|
|
58
|
-
"tsx": "^4.0.0"
|
|
59
|
+
"tsx": "^4.0.0",
|
|
60
|
+
"urlpattern-polyfill": "^10.1.0"
|
|
59
61
|
},
|
|
60
62
|
"devDependencies": {
|
|
61
63
|
"@playwright/test": "^1.63.0",
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type { Page, BrowserContext } from "@playwright/test";
|
|
2
|
-
import { Engine } from "./engine.js";
|
|
3
|
-
import { MemPage } from "./mem-page.js";
|
|
4
|
-
import { type BlockEntry } from "./auto-explore.js";
|
|
5
|
-
import type { Checkpoint } from "./types.js";
|
|
6
|
-
export interface AutoExploreOptions {
|
|
7
|
-
/** Terminal menu (browser still runs for act()). Default false = headful picker panel. */
|
|
8
|
-
cli?: boolean;
|
|
9
|
-
baseURL?: string;
|
|
10
|
-
/** Initial URL when the page is blank (defaults to baseURL). */
|
|
11
|
-
startUrl?: string;
|
|
12
|
-
/** Phase C: glob / regex / bare `--blocks` file select for discovery. */
|
|
13
|
-
blocksSelect?: import("./blocks-select.js").BlocksSelect;
|
|
14
|
-
}
|
|
15
|
-
export declare function resolveBaseUrl(projectDir: string): string | undefined;
|
|
16
|
-
export declare function detectHere(page: Page, navBlocks: BlockEntry[]): Promise<string | null>;
|
|
17
|
-
export declare function ensureLivePage(context: BrowserContext, page: Page, startUrl: string | undefined): Promise<Page>;
|
|
18
|
-
/**
|
|
19
|
-
* Saucedemo-only defaults. Exact key names only — never substring `"login"`.
|
|
20
|
-
* A consumer's own `key<string>("login-email")` must stay unset here, or it
|
|
21
|
-
* silently gets a saucedemo credentials object instead of its own default.
|
|
22
|
-
*/
|
|
23
|
-
export declare function defaultMemValueForKey(keyName: string): unknown | undefined;
|
|
24
|
-
/** Pre-seed known demo keys (saucedemo creds) so headful/cli do not stop for mem forms. */
|
|
25
|
-
export declare function seedDefaultMem(library: Map<string, BlockEntry>, mem: MemPage): void;
|
|
26
|
-
export declare function ensureMem(entry: BlockEntry, mem: MemPage, cli: boolean): Promise<void>;
|
|
27
|
-
export declare function runOneBlock(engine: Engine, entry: BlockEntry, context: BrowserContext, page: Page, mem: MemPage, headful: boolean): Promise<Checkpoint<string>>;
|
|
28
|
-
export type PickResult = {
|
|
29
|
-
type: "pick";
|
|
30
|
-
index: number;
|
|
31
|
-
} | {
|
|
32
|
-
type: "quit";
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* Interactive waygraph auto: locate current Checkpoint, list runnable Blocks, pick one, repeat.
|
|
36
|
-
*/
|
|
37
|
-
export declare function runAutoExplore(projectDir: string, options?: AutoExploreOptions): Promise<void>;
|