waygraph 0.15.46 → 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 +55 -43
- 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 +21 -0
- package/dist/runner/inpage/banner.js +29 -4
- 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/02f7dd22.log +20 -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/1c58a174.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/41e6feae.log +0 -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/61333142.log +5 -0
- package/examples/saucedemo/.waygraph-auto/6134afe8.log +20 -0
- package/examples/saucedemo/.waygraph-auto/61937e83.log +22 -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/8d960d31.log +1 -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/ae3a9b06.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/ded5511a.log +6 -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
package/dist/errors.d.ts
CHANGED
|
@@ -9,102 +9,102 @@
|
|
|
9
9
|
*/
|
|
10
10
|
export declare const WAYGRAPH_ERRORS: {
|
|
11
11
|
readonly WG_PREFLIGHT_MISSING_KEY: {
|
|
12
|
-
readonly where: "
|
|
12
|
+
readonly where: "core/run-graph.ts - preflight()";
|
|
13
13
|
readonly means: "A Flow/chain needs a MemKey that mem.set() never received before run() started.";
|
|
14
14
|
readonly fix: "Pass --data / a mem.set() call for that key, or registerMemStub + --mem-stub for a fake value.";
|
|
15
15
|
};
|
|
16
16
|
readonly WG_RUNGRAPH_MAX_STEPS: {
|
|
17
|
-
readonly where: "
|
|
17
|
+
readonly where: "core/run-graph.ts - runGraph()";
|
|
18
18
|
readonly means: "A chain took more steps than maxSteps without reaching a Block with no .next() - almost always an unintended self-loop in branch()/next routing.";
|
|
19
19
|
readonly fix: "Check the Block(s) involved in the loop; raise maxSteps only if the loop is genuinely intended.";
|
|
20
20
|
};
|
|
21
21
|
readonly WG_RUNGRAPH_NOT_TERMINAL: {
|
|
22
|
-
readonly where: "
|
|
22
|
+
readonly where: "core/run-graph.ts - runGraph()";
|
|
23
23
|
readonly means: "A Block with no .next() resolved to a Checkpoint that wasn't in the caller's declared `terminals` set.";
|
|
24
24
|
readonly fix: "Add that Checkpoint to `terminals`, or fix the Block's resolve() - it landed somewhere the caller didn't expect.";
|
|
25
25
|
};
|
|
26
26
|
readonly WG_MAP_WRONG_KIND: {
|
|
27
|
-
readonly where: "
|
|
27
|
+
readonly where: "core/map-builder.ts - MapBuilder.gotoPage/gotoExternal/assert/method()";
|
|
28
28
|
readonly means: "A Block passed to a MapBuilder step method doesn't carry the __waygraphKind a real defineNavBlock/definePageBlock/defineAssertBlock/defineMethodBlock/defineEffectBlock stamps - either the wrong factory was used, or the object was hand-rolled instead of going through one.";
|
|
29
29
|
readonly fix: "Use the factory the error names, or move this Block to the matching .gotoPage()/.assert()/.method() call.";
|
|
30
30
|
};
|
|
31
31
|
readonly WG_MAP_WRONG_SALT: {
|
|
32
|
-
readonly where: "
|
|
32
|
+
readonly where: "core/map-builder.ts - MapBuilder.method()";
|
|
33
33
|
readonly means: "A Block passed to .method() isn't a real Method/Effect Block (missing __waygraphSalt).";
|
|
34
34
|
readonly fix: "Build it with defineMethodBlock/defineEffectBlock, or use .assert() if it's actually a defineAssertBlock.";
|
|
35
35
|
};
|
|
36
36
|
readonly WG_MAP_WRONG_ORIGIN: {
|
|
37
|
-
readonly where: "
|
|
37
|
+
readonly where: "core/map-builder.ts - MapBuilder.gotoPage/gotoExternal()";
|
|
38
38
|
readonly means: "A Block's static `url` origin doesn't match what .gotoPage() (same-origin) or .gotoExternal() (cross-origin) expects, given this map()'s homeOrigin.";
|
|
39
39
|
readonly fix: "Use .gotoExternal() for a genuinely different origin, .gotoPage() for the app's own homeOrigin, or fix the Block's url.";
|
|
40
40
|
};
|
|
41
41
|
readonly WG_MAP_FF_ALREADY_OPEN: {
|
|
42
|
-
readonly where: "
|
|
42
|
+
readonly where: "core/map-builder.ts - MapBuilder.ffStart()";
|
|
43
43
|
readonly means: ".ffStart() was called while a previous .ffStart() window is still open.";
|
|
44
44
|
readonly fix: "Call .ffEnd() before opening another fast-forward window.";
|
|
45
45
|
};
|
|
46
46
|
readonly WG_MAP_FF_EMPTY: {
|
|
47
|
-
readonly where: "
|
|
47
|
+
readonly where: "core/map-builder.ts - MapBuilder.ffEnd()";
|
|
48
48
|
readonly means: ".ffEnd() closed a window with zero steps inside it.";
|
|
49
49
|
readonly fix: "Add at least one .gotoPage()/.method()/.assert() inside the .ffStart()/.ffEnd() window.";
|
|
50
50
|
};
|
|
51
51
|
readonly WG_MAP_FF_NOT_CLOSED: {
|
|
52
|
-
readonly where: "
|
|
52
|
+
readonly where: "core/map-builder.ts - MapBuilder.end()";
|
|
53
53
|
readonly means: ".end() was called while a .ffStart() window was still open.";
|
|
54
54
|
readonly fix: "Call .ffEnd() before .end().";
|
|
55
55
|
};
|
|
56
56
|
readonly WG_MAP_FF_NOT_OPEN: {
|
|
57
|
-
readonly where: "
|
|
57
|
+
readonly where: "core/map-builder.ts - MapBuilder.ffEnd()";
|
|
58
58
|
readonly means: ".ffEnd() was called with no matching .ffStart().";
|
|
59
59
|
readonly fix: "Remove the stray .ffEnd(), or add the .ffStart() it's meant to close.";
|
|
60
60
|
};
|
|
61
61
|
readonly WG_MAP_EMPTY: {
|
|
62
|
-
readonly where: "
|
|
62
|
+
readonly where: "core/map-builder.ts - MapBuilder.end()";
|
|
63
63
|
readonly means: ".end() was called with zero steps added.";
|
|
64
64
|
readonly fix: "Add at least one .gotoPage()/.gotoExternal()/.assert()/.method() before .end().";
|
|
65
65
|
};
|
|
66
66
|
readonly WG_MAP_BRANCH_NO_PRIOR_STEP: {
|
|
67
|
-
readonly where: "
|
|
67
|
+
readonly where: "core/map-builder.ts - MapBuilder.branch()";
|
|
68
68
|
readonly means: ".branch() was called before any step existed to branch FROM.";
|
|
69
69
|
readonly fix: "Add a .gotoPage()/.gotoExternal()/.method()/.assert() before .branch().";
|
|
70
70
|
};
|
|
71
71
|
readonly WG_MAP_BRANCH_SHARED_SESSION_UNSUPPORTED: {
|
|
72
|
-
readonly where: "
|
|
72
|
+
readonly where: "core/map-builder.ts - a .branch()-built Flow's run()";
|
|
73
73
|
readonly means: "run(mem, config) was called on a branched Flow - that convenience form always closes its own browser/page before the branch's tag is known, so the branch can never be reached.";
|
|
74
74
|
readonly fix: "Call run(context, mem[, options]) instead, keeping the same page across the branch.";
|
|
75
75
|
};
|
|
76
76
|
readonly WG_BRANCH_REGRESSION_NO_BROWSER: {
|
|
77
|
-
readonly where: "
|
|
77
|
+
readonly where: "core/branch-regression.ts - runBranchRegression()";
|
|
78
78
|
readonly means: "cloneSession is on (the default) but context.browser() returned null - a persistent context has no Browser to clone a new context from.";
|
|
79
79
|
readonly fix: "Pass { cloneSession: false } to run the single live path in this context instead.";
|
|
80
80
|
};
|
|
81
81
|
readonly WG_COMPOSE_EMPTY: {
|
|
82
|
-
readonly where: "
|
|
82
|
+
readonly where: "core/compose.ts - composeBlock()";
|
|
83
83
|
readonly means: "composeBlock() was called with zero steps.";
|
|
84
84
|
readonly fix: "Pass at least one Block.";
|
|
85
85
|
};
|
|
86
86
|
readonly WG_FASTFORWARD_EMPTY: {
|
|
87
|
-
readonly where: "
|
|
87
|
+
readonly where: "core/compose.ts - fastForwardComposeBlock()";
|
|
88
88
|
readonly means: "A fast-forward window was closed with zero steps inside it.";
|
|
89
89
|
readonly fix: "Add at least one Block between ffStart()/ffEnd() (or the equivalent Map builder call).";
|
|
90
90
|
};
|
|
91
91
|
readonly WG_FLOW_BLOCK_NOT_FOUND: {
|
|
92
|
-
readonly where: "
|
|
92
|
+
readonly where: "core/block.ts - findBlockIndex() (used by withBlockVerify/modBlockVerify/chainFlow)";
|
|
93
93
|
readonly means: "The Block name/index/reference given doesn't exist in this Flow (or chained Flows).";
|
|
94
94
|
readonly fix: "Check the name/index against flow.blocks() - it lists every Block this Flow actually has, tag-prefixed for branches.";
|
|
95
95
|
};
|
|
96
96
|
readonly WG_CHAINFLOW_EMPTY: {
|
|
97
|
-
readonly where: "
|
|
97
|
+
readonly where: "core/flow.ts - chainFlow()";
|
|
98
98
|
readonly means: "chainFlow() was called with zero Flows.";
|
|
99
99
|
readonly fix: "Pass at least one Flow.";
|
|
100
100
|
};
|
|
101
101
|
readonly WG_MODVERIFY_FUNCTION_FORM: {
|
|
102
|
-
readonly where: "
|
|
102
|
+
readonly where: "core/block.ts - modVerify()";
|
|
103
103
|
readonly means: "modVerify() was called on a Block whose verify is a function (tag-driven), which has no fixed list to address an item into.";
|
|
104
104
|
readonly fix: "Use withVerify() to replace the whole verify instead.";
|
|
105
105
|
};
|
|
106
106
|
readonly WG_MODVERIFY_NOT_FOUND: {
|
|
107
|
-
readonly where: "
|
|
107
|
+
readonly where: "core/block.ts - modVerify()";
|
|
108
108
|
readonly means: "The Trait name/index given doesn't exist in this Block's verify list.";
|
|
109
109
|
readonly fix: "Check the Block's actual verify list for the right name/index.";
|
|
110
110
|
};
|
|
@@ -114,6 +114,40 @@ export declare const WAYGRAPH_ERRORS: {
|
|
|
114
114
|
readonly fix: "Set it first, or use mem.has(key) to check before an optional read.";
|
|
115
115
|
};
|
|
116
116
|
};
|
|
117
|
+
/**
|
|
118
|
+
* The actual text every `throw new WaygraphError(...)` site uses - one named export per throw
|
|
119
|
+
* site (several throw sites can share a `WAYGRAPH_ERRORS` code but always have their own distinct
|
|
120
|
+
* message here, since the same code can legitimately fire from more than one spot with different
|
|
121
|
+
* detail). Plain strings for a message with no runtime values; a function for one that needs them.
|
|
122
|
+
* `grep MSG_ src/errors.ts` finds every fixed string the engine can throw, in one place.
|
|
123
|
+
*/
|
|
124
|
+
export declare const MSG_PREFLIGHT_MISSING_KEY: (blockName: string, missingKeys: string) => string;
|
|
125
|
+
export declare const MSG_RUNGRAPH_MAX_STEPS: (maxSteps: number) => string;
|
|
126
|
+
export declare const MSG_RUNGRAPH_NOT_TERMINAL: (blockName: string, state: string, terminals: string) => string;
|
|
127
|
+
export declare const MSG_FLOW_BLOCK_NOT_FOUND_BY_INDEX: (index: number, length: number) => string;
|
|
128
|
+
export declare const MSG_FLOW_BLOCK_NOT_FOUND_BY_NAME: (blockName: string, names: string) => string;
|
|
129
|
+
export declare const MSG_MODVERIFY_FUNCTION_FORM: (blockName: string) => string;
|
|
130
|
+
export declare const MSG_MODVERIFY_NOT_FOUND_BY_INDEX: (blockName: string, index: number, length: number) => string;
|
|
131
|
+
export declare const MSG_MODVERIFY_NOT_FOUND_BY_NAME: (blockName: string, name: string, names: string) => string;
|
|
132
|
+
export declare const MSG_MAP_WRONG_KIND: (method: string, blockName: string, wanted: string, found: string) => string;
|
|
133
|
+
export declare const MSG_MAP_WRONG_SALT: (method: string, blockName: string, wanted: string, found: string) => string;
|
|
134
|
+
export declare const MSG_MAP_WRONG_ORIGIN_INTERNAL: (blockName: string, targetOrigin: string, wantOrigin: string) => string;
|
|
135
|
+
export declare const MSG_MAP_WRONG_ORIGIN_EXTERNAL: (blockName: string, targetOrigin: string, wantOrigin: string) => string;
|
|
136
|
+
export declare const MSG_MAP_BRANCH_SHARED_SESSION_UNSUPPORTED: string;
|
|
137
|
+
export declare const MSG_MAP_FF_ALREADY_OPEN: (ffName: string) => string;
|
|
138
|
+
export declare const MSG_MAP_FF_NOT_OPEN = "Waygraph map: .ffEnd() with no open .ffStart()";
|
|
139
|
+
export declare const MSG_MAP_FF_EMPTY: (ffName: string) => string;
|
|
140
|
+
export declare const MSG_MAP_METHOD_GOT_ASSERT: (blockName: string) => string;
|
|
141
|
+
export declare const MSG_MAP_BRANCH_NO_PRIOR_STEP: string;
|
|
142
|
+
export declare const MSG_MAP_FF_NOT_CLOSED: (ffName: string) => string;
|
|
143
|
+
export declare const MSG_MAP_EMPTY: string;
|
|
144
|
+
export declare const MSG_BRANCH_REGRESSION_NO_BROWSER: string;
|
|
145
|
+
export declare const MSG_MEM_READ_BEFORE_SET: (keyName: string) => string;
|
|
146
|
+
export declare const MSG_COMPOSE_EMPTY: (name: string) => string;
|
|
147
|
+
export declare const MSG_FASTFORWARD_EMPTY: (name: string) => string;
|
|
148
|
+
export declare const MSG_CHAINFLOW_BLOCK_NOT_FOUND_BY_INDEX: (index: number, count: number) => string;
|
|
149
|
+
export declare const MSG_CHAINFLOW_BLOCK_NOT_FOUND_BY_NAME: (blockName: string) => string;
|
|
150
|
+
export declare const MSG_CHAINFLOW_EMPTY = "chainFlow: give at least one Flow";
|
|
117
151
|
export type WaygraphErrorCode = keyof typeof WAYGRAPH_ERRORS;
|
|
118
152
|
/** A thrown engine error with a stable, greppable `.code` - see WAYGRAPH_ERRORS for the full list. */
|
|
119
153
|
export declare class WaygraphError extends Error {
|
package/dist/errors.js
CHANGED
|
@@ -9,102 +9,102 @@
|
|
|
9
9
|
*/
|
|
10
10
|
export const WAYGRAPH_ERRORS = {
|
|
11
11
|
WG_PREFLIGHT_MISSING_KEY: {
|
|
12
|
-
where: "
|
|
12
|
+
where: "core/run-graph.ts - preflight()",
|
|
13
13
|
means: "A Flow/chain needs a MemKey that mem.set() never received before run() started.",
|
|
14
14
|
fix: "Pass --data / a mem.set() call for that key, or registerMemStub + --mem-stub for a fake value.",
|
|
15
15
|
},
|
|
16
16
|
WG_RUNGRAPH_MAX_STEPS: {
|
|
17
|
-
where: "
|
|
17
|
+
where: "core/run-graph.ts - runGraph()",
|
|
18
18
|
means: "A chain took more steps than maxSteps without reaching a Block with no .next() - almost always an unintended self-loop in branch()/next routing.",
|
|
19
19
|
fix: "Check the Block(s) involved in the loop; raise maxSteps only if the loop is genuinely intended.",
|
|
20
20
|
},
|
|
21
21
|
WG_RUNGRAPH_NOT_TERMINAL: {
|
|
22
|
-
where: "
|
|
22
|
+
where: "core/run-graph.ts - runGraph()",
|
|
23
23
|
means: "A Block with no .next() resolved to a Checkpoint that wasn't in the caller's declared `terminals` set.",
|
|
24
24
|
fix: "Add that Checkpoint to `terminals`, or fix the Block's resolve() - it landed somewhere the caller didn't expect.",
|
|
25
25
|
},
|
|
26
26
|
WG_MAP_WRONG_KIND: {
|
|
27
|
-
where: "
|
|
27
|
+
where: "core/map-builder.ts - MapBuilder.gotoPage/gotoExternal/assert/method()",
|
|
28
28
|
means: "A Block passed to a MapBuilder step method doesn't carry the __waygraphKind a real defineNavBlock/definePageBlock/defineAssertBlock/defineMethodBlock/defineEffectBlock stamps - either the wrong factory was used, or the object was hand-rolled instead of going through one.",
|
|
29
29
|
fix: "Use the factory the error names, or move this Block to the matching .gotoPage()/.assert()/.method() call.",
|
|
30
30
|
},
|
|
31
31
|
WG_MAP_WRONG_SALT: {
|
|
32
|
-
where: "
|
|
32
|
+
where: "core/map-builder.ts - MapBuilder.method()",
|
|
33
33
|
means: "A Block passed to .method() isn't a real Method/Effect Block (missing __waygraphSalt).",
|
|
34
34
|
fix: "Build it with defineMethodBlock/defineEffectBlock, or use .assert() if it's actually a defineAssertBlock.",
|
|
35
35
|
},
|
|
36
36
|
WG_MAP_WRONG_ORIGIN: {
|
|
37
|
-
where: "
|
|
37
|
+
where: "core/map-builder.ts - MapBuilder.gotoPage/gotoExternal()",
|
|
38
38
|
means: "A Block's static `url` origin doesn't match what .gotoPage() (same-origin) or .gotoExternal() (cross-origin) expects, given this map()'s homeOrigin.",
|
|
39
39
|
fix: "Use .gotoExternal() for a genuinely different origin, .gotoPage() for the app's own homeOrigin, or fix the Block's url.",
|
|
40
40
|
},
|
|
41
41
|
WG_MAP_FF_ALREADY_OPEN: {
|
|
42
|
-
where: "
|
|
42
|
+
where: "core/map-builder.ts - MapBuilder.ffStart()",
|
|
43
43
|
means: ".ffStart() was called while a previous .ffStart() window is still open.",
|
|
44
44
|
fix: "Call .ffEnd() before opening another fast-forward window.",
|
|
45
45
|
},
|
|
46
46
|
WG_MAP_FF_EMPTY: {
|
|
47
|
-
where: "
|
|
47
|
+
where: "core/map-builder.ts - MapBuilder.ffEnd()",
|
|
48
48
|
means: ".ffEnd() closed a window with zero steps inside it.",
|
|
49
49
|
fix: "Add at least one .gotoPage()/.method()/.assert() inside the .ffStart()/.ffEnd() window.",
|
|
50
50
|
},
|
|
51
51
|
WG_MAP_FF_NOT_CLOSED: {
|
|
52
|
-
where: "
|
|
52
|
+
where: "core/map-builder.ts - MapBuilder.end()",
|
|
53
53
|
means: ".end() was called while a .ffStart() window was still open.",
|
|
54
54
|
fix: "Call .ffEnd() before .end().",
|
|
55
55
|
},
|
|
56
56
|
WG_MAP_FF_NOT_OPEN: {
|
|
57
|
-
where: "
|
|
57
|
+
where: "core/map-builder.ts - MapBuilder.ffEnd()",
|
|
58
58
|
means: ".ffEnd() was called with no matching .ffStart().",
|
|
59
59
|
fix: "Remove the stray .ffEnd(), or add the .ffStart() it's meant to close.",
|
|
60
60
|
},
|
|
61
61
|
WG_MAP_EMPTY: {
|
|
62
|
-
where: "
|
|
62
|
+
where: "core/map-builder.ts - MapBuilder.end()",
|
|
63
63
|
means: ".end() was called with zero steps added.",
|
|
64
64
|
fix: "Add at least one .gotoPage()/.gotoExternal()/.assert()/.method() before .end().",
|
|
65
65
|
},
|
|
66
66
|
WG_MAP_BRANCH_NO_PRIOR_STEP: {
|
|
67
|
-
where: "
|
|
67
|
+
where: "core/map-builder.ts - MapBuilder.branch()",
|
|
68
68
|
means: ".branch() was called before any step existed to branch FROM.",
|
|
69
69
|
fix: "Add a .gotoPage()/.gotoExternal()/.method()/.assert() before .branch().",
|
|
70
70
|
},
|
|
71
71
|
WG_MAP_BRANCH_SHARED_SESSION_UNSUPPORTED: {
|
|
72
|
-
where: "
|
|
72
|
+
where: "core/map-builder.ts - a .branch()-built Flow's run()",
|
|
73
73
|
means: "run(mem, config) was called on a branched Flow - that convenience form always closes its own browser/page before the branch's tag is known, so the branch can never be reached.",
|
|
74
74
|
fix: "Call run(context, mem[, options]) instead, keeping the same page across the branch.",
|
|
75
75
|
},
|
|
76
76
|
WG_BRANCH_REGRESSION_NO_BROWSER: {
|
|
77
|
-
where: "
|
|
77
|
+
where: "core/branch-regression.ts - runBranchRegression()",
|
|
78
78
|
means: "cloneSession is on (the default) but context.browser() returned null - a persistent context has no Browser to clone a new context from.",
|
|
79
79
|
fix: "Pass { cloneSession: false } to run the single live path in this context instead.",
|
|
80
80
|
},
|
|
81
81
|
WG_COMPOSE_EMPTY: {
|
|
82
|
-
where: "
|
|
82
|
+
where: "core/compose.ts - composeBlock()",
|
|
83
83
|
means: "composeBlock() was called with zero steps.",
|
|
84
84
|
fix: "Pass at least one Block.",
|
|
85
85
|
},
|
|
86
86
|
WG_FASTFORWARD_EMPTY: {
|
|
87
|
-
where: "
|
|
87
|
+
where: "core/compose.ts - fastForwardComposeBlock()",
|
|
88
88
|
means: "A fast-forward window was closed with zero steps inside it.",
|
|
89
89
|
fix: "Add at least one Block between ffStart()/ffEnd() (or the equivalent Map builder call).",
|
|
90
90
|
},
|
|
91
91
|
WG_FLOW_BLOCK_NOT_FOUND: {
|
|
92
|
-
where: "
|
|
92
|
+
where: "core/block.ts - findBlockIndex() (used by withBlockVerify/modBlockVerify/chainFlow)",
|
|
93
93
|
means: "The Block name/index/reference given doesn't exist in this Flow (or chained Flows).",
|
|
94
94
|
fix: "Check the name/index against flow.blocks() - it lists every Block this Flow actually has, tag-prefixed for branches.",
|
|
95
95
|
},
|
|
96
96
|
WG_CHAINFLOW_EMPTY: {
|
|
97
|
-
where: "
|
|
97
|
+
where: "core/flow.ts - chainFlow()",
|
|
98
98
|
means: "chainFlow() was called with zero Flows.",
|
|
99
99
|
fix: "Pass at least one Flow.",
|
|
100
100
|
},
|
|
101
101
|
WG_MODVERIFY_FUNCTION_FORM: {
|
|
102
|
-
where: "
|
|
102
|
+
where: "core/block.ts - modVerify()",
|
|
103
103
|
means: "modVerify() was called on a Block whose verify is a function (tag-driven), which has no fixed list to address an item into.",
|
|
104
104
|
fix: "Use withVerify() to replace the whole verify instead.",
|
|
105
105
|
},
|
|
106
106
|
WG_MODVERIFY_NOT_FOUND: {
|
|
107
|
-
where: "
|
|
107
|
+
where: "core/block.ts - modVerify()",
|
|
108
108
|
means: "The Trait name/index given doesn't exist in this Block's verify list.",
|
|
109
109
|
fix: "Check the Block's actual verify list for the right name/index.",
|
|
110
110
|
},
|
|
@@ -114,6 +114,53 @@ export const WAYGRAPH_ERRORS = {
|
|
|
114
114
|
fix: "Set it first, or use mem.has(key) to check before an optional read.",
|
|
115
115
|
},
|
|
116
116
|
};
|
|
117
|
+
/**
|
|
118
|
+
* The actual text every `throw new WaygraphError(...)` site uses - one named export per throw
|
|
119
|
+
* site (several throw sites can share a `WAYGRAPH_ERRORS` code but always have their own distinct
|
|
120
|
+
* message here, since the same code can legitimately fire from more than one spot with different
|
|
121
|
+
* detail). Plain strings for a message with no runtime values; a function for one that needs them.
|
|
122
|
+
* `grep MSG_ src/errors.ts` finds every fixed string the engine can throw, in one place.
|
|
123
|
+
*/
|
|
124
|
+
export const MSG_PREFLIGHT_MISSING_KEY = (blockName, missingKeys) => `preflight: MemPage is missing required key(s) before "${blockName}" can run: ${missingKeys}`;
|
|
125
|
+
export const MSG_RUNGRAPH_MAX_STEPS = (maxSteps) => `runGraph: exceeded ${maxSteps} steps - check for an unintended self-loop`;
|
|
126
|
+
export const MSG_RUNGRAPH_NOT_TERMINAL = (blockName, state, terminals) => `runGraph: "${blockName}" resolved to "${state}", which is not a registered terminal (expected one of: ${terminals})`;
|
|
127
|
+
export const MSG_FLOW_BLOCK_NOT_FOUND_BY_INDEX = (index, length) => `Flow: no Block at index ${index} in this flow (has ${length})`;
|
|
128
|
+
export const MSG_FLOW_BLOCK_NOT_FOUND_BY_NAME = (blockName, names) => `Flow: no Block named "${blockName}" in this flow (has: ${names})`;
|
|
129
|
+
export const MSG_MODVERIFY_FUNCTION_FORM = (blockName) => `modVerify: "${blockName}" has a function-form verify, which has no fixed list to address into - ` +
|
|
130
|
+
"use withVerify to replace it wholesale instead";
|
|
131
|
+
export const MSG_MODVERIFY_NOT_FOUND_BY_INDEX = (blockName, index, length) => `modVerify: "${blockName}" has no verify trait at index ${index} (has ${length})`;
|
|
132
|
+
export const MSG_MODVERIFY_NOT_FOUND_BY_NAME = (blockName, name, names) => `modVerify: "${blockName}" has no verify trait named "${name}" (has: ${names || "none"})`;
|
|
133
|
+
export const MSG_MAP_WRONG_KIND = (method, blockName, wanted, found) => `Waygraph map: .${method}("${blockName}") requires a Block built with ${wanted} ` +
|
|
134
|
+
`(found ${found} - a hand-built plain object doesn't count). This check is the whole point ` +
|
|
135
|
+
"of the map() builder: only real Blocks from waygraph's own factories can enter a chain.";
|
|
136
|
+
export const MSG_MAP_WRONG_SALT = (method, blockName, wanted, found) => `Waygraph map: .${method}("${blockName}") requires a Block built with ${wanted} ` +
|
|
137
|
+
`(found ${found} - a hand-built plain object doesn't count). This check is the whole point ` +
|
|
138
|
+
"of the map() builder: only real Blocks from waygraph's own factories can enter a chain.";
|
|
139
|
+
export const MSG_MAP_WRONG_ORIGIN_INTERNAL = (blockName, targetOrigin, wantOrigin) => `Waygraph map: .gotoPage("${blockName}") targets ${targetOrigin}, which is NOT this map's ` +
|
|
140
|
+
`home origin (${wantOrigin}) - use .gotoExternal() for a genuinely cross-origin destination.`;
|
|
141
|
+
export const MSG_MAP_WRONG_ORIGIN_EXTERNAL = (blockName, targetOrigin, wantOrigin) => `Waygraph map: .gotoExternal("${blockName}") targets ${targetOrigin}, which IS this map's ` +
|
|
142
|
+
`home origin (${wantOrigin}) - use .gotoPage() for an internal destination.`;
|
|
143
|
+
export const MSG_MAP_BRANCH_SHARED_SESSION_UNSUPPORTED = "Waygraph map: a .branch()-ed Flow can't run via run(mem, config) - that convenience form " +
|
|
144
|
+
"always closes its own browser/page before a branch's tag is even known. Call " +
|
|
145
|
+
"run(context, mem[, options]) instead, keeping the same page across the branch.";
|
|
146
|
+
export const MSG_MAP_FF_ALREADY_OPEN = (ffName) => `Waygraph map: .ffStart() while already inside "${ffName}" - call .ffEnd() first`;
|
|
147
|
+
export const MSG_MAP_FF_NOT_OPEN = "Waygraph map: .ffEnd() with no open .ffStart()";
|
|
148
|
+
export const MSG_MAP_FF_EMPTY = (ffName) => `Waygraph map: .ffEnd() for "${ffName}" has no steps - add .gotoPage/.method/… inside the window`;
|
|
149
|
+
export const MSG_MAP_METHOD_GOT_ASSERT = (blockName) => `Waygraph map: .method("${blockName}") got a defineAssertBlock - use .assert() for ` +
|
|
150
|
+
"self-loop verify steps (Assert Blocks share method salt internally but are not methods).";
|
|
151
|
+
export const MSG_MAP_BRANCH_NO_PRIOR_STEP = "Waygraph map: .branch() needs at least one prior step - nothing to branch from. " +
|
|
152
|
+
"Add .gotoPage()/.gotoExternal()/.method()/.assert() first.";
|
|
153
|
+
export const MSG_MAP_FF_NOT_CLOSED = (ffName) => `Waygraph map: .end() while .ffStart("${ffName}") is still open - call .ffEnd() first`;
|
|
154
|
+
export const MSG_MAP_EMPTY = "Waygraph map: .end() called with zero steps - add at least one .gotoPage()/.gotoExternal()/" +
|
|
155
|
+
".assert()/.method() before .end()";
|
|
156
|
+
export const MSG_BRANCH_REGRESSION_NO_BROWSER = "Waygraph runBranchRegression: cloneSession needs context.browser() (a persistent context " +
|
|
157
|
+
"has none) - pass { cloneSession: false } to run the single live path in this context instead.";
|
|
158
|
+
export const MSG_MEM_READ_BEFORE_SET = (keyName) => `MemPage: "${keyName}" read before it was set`;
|
|
159
|
+
export const MSG_COMPOSE_EMPTY = (name) => `composeBlock: "${name}" needs at least one step`;
|
|
160
|
+
export const MSG_FASTFORWARD_EMPTY = (name) => `fastForwardComposeBlock: "${name}" needs at least one step`;
|
|
161
|
+
export const MSG_CHAINFLOW_BLOCK_NOT_FOUND_BY_INDEX = (index, count) => `chainFlow: no Block at index ${index} across ${count} chained flows`;
|
|
162
|
+
export const MSG_CHAINFLOW_BLOCK_NOT_FOUND_BY_NAME = (blockName) => `chainFlow: no Block named "${blockName}" in any chained flow`;
|
|
163
|
+
export const MSG_CHAINFLOW_EMPTY = "chainFlow: give at least one Flow";
|
|
117
164
|
/** A thrown engine error with a stable, greppable `.code` - see WAYGRAPH_ERRORS for the full list. */
|
|
118
165
|
export class WaygraphError extends Error {
|
|
119
166
|
code;
|
|
@@ -28,8 +28,14 @@ export async function runStubPhase(block, phase, opts) {
|
|
|
28
28
|
catch {
|
|
29
29
|
/* best-effort */
|
|
30
30
|
}
|
|
31
|
-
// Compat: legacy `(out) => map` that expected Checkpoint (__state on arg)
|
|
32
|
-
|
|
31
|
+
// Compat: legacy `(out) => map` that expected Checkpoint (__state on arg). Only worth trying
|
|
32
|
+
// when the real ctx call genuinely did nothing - checked against the WHOLE bag, not just
|
|
33
|
+
// highlights/todos, so a stubBefore that only calls e.g. ctx.caption()/ctx.title()/ctx.zoom()
|
|
34
|
+
// (no highlights, no todos) isn't mistaken for "didn't run" and re-invoked with a bare
|
|
35
|
+
// Checkpoint that has none of StubCtx's methods - a real, previously-triggered bug (caught via
|
|
36
|
+
// examples/saucedemo/src/flows/checkout.flow.ts's own stubBefore(ctx) { ctx.caption(...) }).
|
|
37
|
+
const bagUntouched = Object.keys(bag).length === 1 && Object.keys(bag.highlights).length === 0;
|
|
38
|
+
if (bagUntouched) {
|
|
33
39
|
try {
|
|
34
40
|
const legacyOut = (opts?.out ?? { __state: "" });
|
|
35
41
|
const ret2 = raw(legacyOut);
|
|
@@ -109,6 +115,13 @@ export async function runStubPhase(block, phase, opts) {
|
|
|
109
115
|
...(bag.title !== undefined && bag.title !== "" ? { title: bag.title } : {}),
|
|
110
116
|
...(bag.titlePos !== undefined ? { titlePos: bag.titlePos } : {}),
|
|
111
117
|
...(bag.bannerUi !== undefined ? { bannerUi: bag.bannerUi } : {}),
|
|
118
|
+
// Unlike title, "" is meaningful here (ctx.hideCaption()/caption("")) - forwarded so it can
|
|
119
|
+
// actually hide the bar, not filtered out the way an empty title is (title's own "" means
|
|
120
|
+
// "author didn't touch it this step", handled by simply omitting the field).
|
|
121
|
+
...(bag.caption !== undefined ? { caption: bag.caption } : {}),
|
|
122
|
+
// Boolean, not string - "" isn't a state here, so a plain undefined-check (like zoom/title)
|
|
123
|
+
// is enough; false is real ("author called hideNetworkTab()") and must still be forwarded.
|
|
124
|
+
...(bag.networkTabVisible !== undefined ? { networkTabVisible: bag.networkTabVisible } : {}),
|
|
112
125
|
...(bag.todoPos !== undefined ? { todoPos: bag.todoPos } : {}),
|
|
113
126
|
...(bag.todoDockUi !== undefined ? { todoDockUi: bag.todoDockUi } : {}),
|
|
114
127
|
...(bag.todoParallel === true ? { todoParallel: true } : {}),
|
|
@@ -179,6 +179,18 @@ export function createStubCtx(bag, opts) {
|
|
|
179
179
|
if (p)
|
|
180
180
|
bag.titlePos = p;
|
|
181
181
|
},
|
|
182
|
+
caption(text) {
|
|
183
|
+
bag.caption = String(text ?? "");
|
|
184
|
+
},
|
|
185
|
+
hideCaption() {
|
|
186
|
+
bag.caption = "";
|
|
187
|
+
},
|
|
188
|
+
showNetworkTab() {
|
|
189
|
+
bag.networkTabVisible = true;
|
|
190
|
+
},
|
|
191
|
+
hideNetworkTab() {
|
|
192
|
+
bag.networkTabVisible = false;
|
|
193
|
+
},
|
|
182
194
|
bannerPos(side) {
|
|
183
195
|
const p = normalizeBannerPos(side);
|
|
184
196
|
if (p)
|
|
@@ -280,6 +292,10 @@ export function createStubCtx(bag, opts) {
|
|
|
280
292
|
bag.zoomOut = !!partial.zoomOut;
|
|
281
293
|
if (partial.title !== undefined)
|
|
282
294
|
bag.title = String(partial.title ?? "");
|
|
295
|
+
if (partial.caption !== undefined)
|
|
296
|
+
bag.caption = String(partial.caption ?? "");
|
|
297
|
+
if (partial.networkTabVisible !== undefined)
|
|
298
|
+
bag.networkTabVisible = !!partial.networkTabVisible;
|
|
283
299
|
const bp = normalizeBannerPos(partial.titlePos);
|
|
284
300
|
if (bp)
|
|
285
301
|
bag.titlePos = bp;
|
|
@@ -49,6 +49,11 @@ export interface BannerUiOpts {
|
|
|
49
49
|
collision?: boolean;
|
|
50
50
|
/** Hide the banner entirely for this phase. */
|
|
51
51
|
hidden?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Fade duration (ms) when the banner's title text changes, so a change reads as a deliberate
|
|
54
|
+
* beat instead of an instant flicker. Default 220; 0 disables the fade (instant swap).
|
|
55
|
+
*/
|
|
56
|
+
captionFadeMs?: number;
|
|
52
57
|
}
|
|
53
58
|
/** One titled group in the floating todo dock (FR / Scenarios / ACs, etc.). */
|
|
54
59
|
export type WaygraphTodoGroupInput = {
|
|
@@ -159,6 +164,18 @@ export type StubPhaseFixtures = {
|
|
|
159
164
|
titlePos?: BannerPos;
|
|
160
165
|
/** Banner UX: collision (move away from a ring it overlaps), hidden. See {@link BannerUiOpts}. */
|
|
161
166
|
bannerUi?: BannerUiOpts;
|
|
167
|
+
/**
|
|
168
|
+
* Bottom subtitle-bar caption (ported from zsign's help-center-clip-engine) - a full-width,
|
|
169
|
+
* bottom-anchored gradient scrim with centered text, distinct from the banner (top, card-shaped).
|
|
170
|
+
* Omit/clear to hide it; set again to change the text, fading out/in.
|
|
171
|
+
*/
|
|
172
|
+
caption?: string;
|
|
173
|
+
/**
|
|
174
|
+
* Network-tab overlay visibility - capture always happens in the background regardless; this
|
|
175
|
+
* only controls whether the panel itself is shown. Intentionally hidden by default (`undefined`
|
|
176
|
+
* on the very first phase); omit to leave whatever the previous step set alone.
|
|
177
|
+
*/
|
|
178
|
+
networkTabVisible?: boolean;
|
|
162
179
|
/**
|
|
163
180
|
* Floating checklist dock side. `left` | `right`.
|
|
164
181
|
* Authored control (also click / WAYGRAPH_TODO_POS / --todo-left|right).
|
|
@@ -403,8 +420,25 @@ export type StubCtx<Out extends Checkpoint<string> = Checkpoint<string>> = {
|
|
|
403
420
|
* @example ctx.bannerUi({ collision: false });
|
|
404
421
|
*/
|
|
405
422
|
bannerUi(opts: BannerUiOpts): void;
|
|
423
|
+
/**
|
|
424
|
+
* Bottom subtitle-bar caption (ported from zsign's help-center-clip-engine) - a full-width,
|
|
425
|
+
* bottom-anchored gradient scrim with centered text; distinct from {@link StubCtx.title}, which
|
|
426
|
+
* is the top card. Fades in/out on change. Pass `""` (or call {@link StubCtx.hideCaption}) to clear.
|
|
427
|
+
* @example ctx.caption("Click Add to cart to continue");
|
|
428
|
+
*/
|
|
429
|
+
caption(text: string): void;
|
|
430
|
+
/** Clears the caption (fades it out). */
|
|
431
|
+
hideCaption(): void;
|
|
406
432
|
/** Shorthand for `bannerUi({ hidden: true })`. */
|
|
407
433
|
hideBanner(): void;
|
|
434
|
+
/**
|
|
435
|
+
* Shows the network-tab overlay (Postman-style inspector of real page traffic + defineApiBlock
|
|
436
|
+
* calls) - capture always runs in the background; this just reveals the panel. Hidden by default.
|
|
437
|
+
* @example ctx.showNetworkTab();
|
|
438
|
+
*/
|
|
439
|
+
showNetworkTab(): void;
|
|
440
|
+
/** Hides the network-tab overlay (capture keeps running - only the panel disappears). */
|
|
441
|
+
hideNetworkTab(): void;
|
|
408
442
|
/**
|
|
409
443
|
* Floating checklist dock side (`left` | `right`). Authors control this in
|
|
410
444
|
* code; click / env / --todo-left|right are fallbacks.
|
|
@@ -463,6 +497,8 @@ export type StubPhaseResult = {
|
|
|
463
497
|
title?: string;
|
|
464
498
|
titlePos?: BannerPos;
|
|
465
499
|
bannerUi?: BannerUiOpts;
|
|
500
|
+
caption?: string;
|
|
501
|
+
networkTabVisible?: boolean;
|
|
466
502
|
todoPos?: "left" | "right";
|
|
467
503
|
/** When true, keep other docks (multi-todo). Default false = replace. */
|
|
468
504
|
todoParallel?: boolean;
|
|
@@ -560,6 +596,8 @@ export type StubBagState = {
|
|
|
560
596
|
title?: string | undefined;
|
|
561
597
|
titlePos?: BannerPos | undefined;
|
|
562
598
|
bannerUi?: BannerUiOpts | undefined;
|
|
599
|
+
caption?: string | undefined;
|
|
600
|
+
networkTabVisible?: boolean | undefined;
|
|
563
601
|
todoPos?: "left" | "right" | undefined;
|
|
564
602
|
/** Author patched todo-dock UX this phase. */
|
|
565
603
|
todoDockUi?: TodoDockUiOpts | undefined;
|
package/dist/index.d.ts
CHANGED
|
@@ -6,11 +6,13 @@ export { css, byText, byRole } from "./selector.js";
|
|
|
6
6
|
export { WaygraphError, WAYGRAPH_ERRORS } from "./errors.js";
|
|
7
7
|
export type { WaygraphErrorCode } from "./errors.js";
|
|
8
8
|
export { Trait, urlMatches, textEquals, visible, disabled, enabled, frameVisible, frameTextEquals, frameContainsText, } from "./trait.js";
|
|
9
|
-
export { runGraph, spawnTab, narrate, Engine, start, end, branch, withVerify, modVerify, modVerifyAll, defineBlock, defineNavBlock, defineNavClickBlock, defineMethodBlock, defineActionBlock, defineAssertBlock, definePageBlock, defineEffectBlock, defineMemEffectBlock, defineMemNavBlock, locate, composeBlock, fastForwardComposeBlock, isFastForwardBlock, preflight, withSessionReset, withTitle, withMemStub, withDemoPace, withBlockPace, withHighlightStyle, withExpectedFailure, withHighlightFixtures, withStubBefore, withStubAfter, withStubOnError, chainFlow, defineLayout, map, MapBuilder, branchRoutes, collectBranchFlows, runBranchRegression, } from "./
|
|
10
|
-
export type { BranchEntry, BranchRunResult, RunBranchRegressionOptions } from "./
|
|
9
|
+
export { runGraph, spawnTab, narrate, Engine, start, end, branch, withVerify, modVerify, modVerifyAll, defineBlock, defineNavBlock, defineNavClickBlock, defineMethodBlock, defineActionBlock, defineAssertBlock, definePageBlock, defineEffectBlock, defineMemEffectBlock, defineMemNavBlock, defineApiBlock, locate, composeBlock, fastForwardComposeBlock, isFastForwardBlock, preflight, withSessionReset, withTitle, withMemStub, withDemoPace, withBlockPace, withHighlightStyle, withExpectedFailure, withHighlightFixtures, withStubBefore, withStubAfter, withStubOnError, chainFlow, defineLayout, map, MapBuilder, branchRoutes, collectBranchFlows, runBranchRegression, } from "./core.js";
|
|
10
|
+
export type { BranchEntry, BranchRunResult, RunBranchRegressionOptions } from "./core/branch-regression.js";
|
|
11
|
+
export type { ApiBlockOptions, ApiCallResult } from "./core/blocks/api.js";
|
|
12
|
+
export type { MapStepOpts } from "./core/map-builder.js";
|
|
11
13
|
export { resolveHighlightSlots, resolveSlides, runStubPhase, resolveFixtureDwellMs, resolveSlideDwellMs, formatHighlightCaption, hasAuthoredStubAfter, hasAuthoredStubOnError, normalizeHighlightTone, normalizeDemoPace, normalizeHighlightSize, normalizeHighlightWeight, applyHighlightStyleDefaults, toneIconPrefix, resolveStepDemoPace, demoPaceScale, demoPaceIsBlitz, demoPaceIsFast, demoPaceIsSlow, demoPaceGateMs, formatDemoPaceBadge, formatDemoPaceLabel, normalizeTodos, normalizeTodoPos, normalizeTodoStyle, buildTodoDock, applyTodoPhase, advanceTodoDock, completeSequentialTodoDock, applyDevicePhase, resolveDeviceState, normalizeDevicePreset, normalizeDeviceOrientation, applyOrientation, orientationFromViewport, DEVICE_PRESETS, resolveTodoDockUi, FIXTURE_DURATION_MS_DEFAULT, FIXTURE_DURATION_FAST_MS_DEFAULT, FIXTURE_DURATION_SLOW_MS_DEFAULT, SLIDE_DURATION_MS_DEFAULT, SLIDE_DURATION_FAST_MS_DEFAULT, WAYGRAPH_RING_CSS, } from "./highlights.js";
|
|
12
14
|
export type { WaygraphHighlightStub, WaygraphHighlightFixture, WaygraphSlide, WaygraphTodoItem, WaygraphTodoInput, WaygraphTodoGroup, WaygraphTodoGroupInput, WaygraphTodosOpts, TodoDockUiOpts, BannerPos, BannerUiOpts, TodoDockUiResolved, TodoDockState, TodoListStyle, FixtureDurationFields, HighlightStubPhase, HighlightStubPhaseName, HighlightFixtureMap, ResolvedHighlight, WaygraphHighlight, HighlightTone, HighlightSize, HighlightWeight, HighlightStyleDefaults, DemoPace, DemoPaceName, StubCtx, StubLifecycleFn, StubPhaseResult, StubPhaseFixtures, DevicePreset, DeviceViewport, DeviceState, DeviceOrientation, } from "./highlights.js";
|
|
13
|
-
export type { Flow, EngineConfig, ComposedBlock, FastForwardComposedBlock, RunGraphOptions, BlockInfo, NavBlock, NavBlockOptions, NavClickBlock, NavClickBlockOptions, MethodBlock, ActionBlock, AssertBlock, AssertBlockOptions, PageBlock, PageBlockOptions, PageMethodEntry, EffectBlock, MemEffectBlock, MemNavBlock, Layout, LayoutOptions, MapBuilderOptions, } from "./
|
|
15
|
+
export type { Flow, EngineConfig, ComposedBlock, FastForwardComposedBlock, RunGraphOptions, BlockInfo, NavBlock, NavBlockOptions, NavClickBlock, NavClickBlockOptions, MethodBlock, ActionBlock, AssertBlock, AssertBlockOptions, PageBlock, PageBlockOptions, PageMethodEntry, EffectBlock, MemEffectBlock, MemNavBlock, Layout, LayoutOptions, MapBuilderOptions, } from "./core.js";
|
|
14
16
|
export type { ActionPage } from "./types.js";
|
|
15
17
|
export { discoverGraph, toMermaid, findOrphanBlocks, findBlockPath } from "./analysis/graph.js";
|
|
16
18
|
export type { WaygraphGraph, WaygraphNode, WaygraphEdge, SkippedBlock, OrphanBlock } from "./analysis/graph.js";
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ export { registerMemStub, seedMemStub, getMemStub } from "./mem-stub.js";
|
|
|
4
4
|
export { css, byText, byRole } from "./selector.js";
|
|
5
5
|
export { WaygraphError, WAYGRAPH_ERRORS } from "./errors.js";
|
|
6
6
|
export { Trait, urlMatches, textEquals, visible, disabled, enabled, frameVisible, frameTextEquals, frameContainsText, } from "./trait.js";
|
|
7
|
-
export { runGraph, spawnTab, narrate, Engine, start, end, branch, withVerify, modVerify, modVerifyAll, defineBlock, defineNavBlock, defineNavClickBlock, defineMethodBlock, defineActionBlock, defineAssertBlock, definePageBlock, defineEffectBlock, defineMemEffectBlock, defineMemNavBlock, locate, composeBlock, fastForwardComposeBlock, isFastForwardBlock, preflight, withSessionReset, withTitle, withMemStub, withDemoPace, withBlockPace, withHighlightStyle, withExpectedFailure, withHighlightFixtures, withStubBefore, withStubAfter, withStubOnError, chainFlow, defineLayout, map, MapBuilder, branchRoutes, collectBranchFlows, runBranchRegression, } from "./
|
|
7
|
+
export { runGraph, spawnTab, narrate, Engine, start, end, branch, withVerify, modVerify, modVerifyAll, defineBlock, defineNavBlock, defineNavClickBlock, defineMethodBlock, defineActionBlock, defineAssertBlock, definePageBlock, defineEffectBlock, defineMemEffectBlock, defineMemNavBlock, defineApiBlock, locate, composeBlock, fastForwardComposeBlock, isFastForwardBlock, preflight, withSessionReset, withTitle, withMemStub, withDemoPace, withBlockPace, withHighlightStyle, withExpectedFailure, withHighlightFixtures, withStubBefore, withStubAfter, withStubOnError, chainFlow, defineLayout, map, MapBuilder, branchRoutes, collectBranchFlows, runBranchRegression, } from "./core.js";
|
|
8
8
|
export { resolveHighlightSlots, resolveSlides, runStubPhase, resolveFixtureDwellMs, resolveSlideDwellMs, formatHighlightCaption, hasAuthoredStubAfter, hasAuthoredStubOnError, normalizeHighlightTone, normalizeDemoPace, normalizeHighlightSize, normalizeHighlightWeight, applyHighlightStyleDefaults, toneIconPrefix, resolveStepDemoPace, demoPaceScale, demoPaceIsBlitz, demoPaceIsFast, demoPaceIsSlow, demoPaceGateMs, formatDemoPaceBadge, formatDemoPaceLabel, normalizeTodos, normalizeTodoPos, normalizeTodoStyle, buildTodoDock, applyTodoPhase, advanceTodoDock, completeSequentialTodoDock, applyDevicePhase, resolveDeviceState, normalizeDevicePreset, normalizeDeviceOrientation, applyOrientation, orientationFromViewport, DEVICE_PRESETS, resolveTodoDockUi, FIXTURE_DURATION_MS_DEFAULT, FIXTURE_DURATION_FAST_MS_DEFAULT, FIXTURE_DURATION_SLOW_MS_DEFAULT, SLIDE_DURATION_MS_DEFAULT, SLIDE_DURATION_FAST_MS_DEFAULT, WAYGRAPH_RING_CSS, } from "./highlights.js";
|
|
9
9
|
export { discoverGraph, toMermaid, findOrphanBlocks, findBlockPath } from "./analysis/graph.js";
|
|
10
10
|
export { isFileSelectToken, parseBlocksSelect, matchBlocksSelect, globToRegExp, } from "./blocks-select.js";
|
package/dist/mem-page.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { WaygraphError } from "./errors.js";
|
|
1
|
+
import { WaygraphError, MSG_MEM_READ_BEFORE_SET } from "./errors.js";
|
|
2
2
|
/**
|
|
3
3
|
* A typed key into MemPage. The phantom `_phantom` field is never assigned - it
|
|
4
4
|
* exists only so TypeScript can infer `T` at each call site. The store is keyed by
|
|
@@ -52,7 +52,7 @@ export class MemPage {
|
|
|
52
52
|
*/
|
|
53
53
|
get(k) {
|
|
54
54
|
if (!this.store.has(k)) {
|
|
55
|
-
throw new WaygraphError("WG_MEM_READ_BEFORE_SET",
|
|
55
|
+
throw new WaygraphError("WG_MEM_READ_BEFORE_SET", MSG_MEM_READ_BEFORE_SET(k.name));
|
|
56
56
|
}
|
|
57
57
|
return this.store.get(k);
|
|
58
58
|
}
|
package/dist/mem-stub.d.ts
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import type { MemKey } from "./mem-page.js";
|
|
19
19
|
import type { MemPage } from "./mem-page.js";
|
|
20
|
-
import type { Flow } from "./
|
|
20
|
+
import type { Flow } from "./core.js";
|
|
21
21
|
/**
|
|
22
22
|
* Registers a fake-value generator for one required MemKey.
|
|
23
23
|
* @example registerMemStub(LoginCreds.key, () => ({
|