waygraph 0.15.19 → 0.15.21

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.
Files changed (47) hide show
  1. package/README.md +72 -1309
  2. package/dist/auto-session.d.ts +10 -1
  3. package/dist/auto-session.js +27 -7
  4. package/dist/cli.js +98 -31
  5. package/dist/engine.d.ts +20 -0
  6. package/dist/engine.js +18 -0
  7. package/dist/highlight-shorthand.d.ts +24 -0
  8. package/dist/highlight-shorthand.js +30 -0
  9. package/dist/index.d.ts +2 -1
  10. package/dist/index.js +2 -1
  11. package/dist/mem-stub.d.ts +41 -0
  12. package/dist/mem-stub.js +36 -0
  13. package/examples/saucedemo/.waygraph-auto/11c497cd.log +44 -0
  14. package/examples/saucedemo/.waygraph-auto/29d11a49.log +44 -0
  15. package/examples/saucedemo/.waygraph-auto/2c9a4003.log +44 -0
  16. package/examples/saucedemo/.waygraph-auto/32ef32a8.log +44 -0
  17. package/examples/saucedemo/.waygraph-auto/36ba01f7.log +44 -0
  18. package/examples/saucedemo/.waygraph-auto/537af83d.log +44 -0
  19. package/examples/saucedemo/.waygraph-auto/5adfacd5.log +44 -0
  20. package/examples/saucedemo/.waygraph-auto/76c7d418.log +44 -0
  21. package/examples/saucedemo/.waygraph-auto/78197960.log +44 -0
  22. package/examples/saucedemo/.waygraph-auto/7c2acbc2.log +44 -0
  23. package/examples/saucedemo/.waygraph-auto/844b63ff.log +44 -0
  24. package/examples/saucedemo/.waygraph-auto/88a4200b.log +0 -0
  25. package/examples/saucedemo/.waygraph-auto/b0eed995.log +44 -0
  26. package/examples/saucedemo/.waygraph-auto/bb69dc1a.log +44 -0
  27. package/examples/saucedemo/.waygraph-auto/bc4ae56f.log +0 -0
  28. package/examples/saucedemo/.waygraph-auto/c17253b0.log +44 -0
  29. package/examples/saucedemo/.waygraph-auto/c31a9465.log +0 -0
  30. package/examples/saucedemo/.waygraph-auto/c5ac2393.log +44 -0
  31. package/examples/saucedemo/.waygraph-auto/c701e3c2.log +0 -0
  32. package/examples/saucedemo/.waygraph-auto/d207a000.log +44 -0
  33. package/examples/saucedemo/.waygraph-auto/fa3c5655.log +44 -0
  34. package/examples/saucedemo/package-lock.json +20 -532
  35. package/examples/saucedemo/package.json +0 -1
  36. package/examples/saucedemo/src/flows/mem-stub-demo.flow.ts +23 -0
  37. package/package.json +1 -1
  38. package/templates/scaffold/README.md +21 -19
  39. package/templates/scaffold/STRUCTURE.md +37 -70
  40. package/templates/scaffold/src/map/(app_base)/docs/_nav.block.ts +1 -1
  41. package/templates/scaffold/src/map/(external)/mailpit/_methods/assert-email-content.method.block.ts +1 -1
  42. package/templates/skills/waygraph-convention.skill.md +5 -1
  43. package/templates/skills/waygraph-pilot.skill.md +1 -1
  44. package/examples/saucedemo/.waygraph-auto/4adfbe91.json +0 -8
  45. package/examples/saucedemo/.waygraph-auto/9f0287e6.json +0 -8
  46. /package/examples/saucedemo/.waygraph-auto/{4adfbe91.log → 32e2c26f.log} +0 -0
  47. /package/examples/saucedemo/.waygraph-auto/{9f0287e6.log → 4c6b9e15.log} +0 -0
@@ -11,546 +11,42 @@
11
11
  "waygraph": "file:../.."
12
12
  },
13
13
  "devDependencies": {
14
- "@playwright/test": "^1.55.0",
15
14
  "@types/node": "^26.0.0",
16
15
  "typescript": "^5.6.0"
17
16
  }
18
17
  },
19
- "node_modules/@esbuild/aix-ppc64": {
20
- "version": "0.28.2",
21
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz",
22
- "integrity": "sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==",
23
- "cpu": [
24
- "ppc64"
25
- ],
18
+ "../..": {
19
+ "version": "0.15.19",
26
20
  "license": "MIT",
27
- "optional": true,
28
- "os": [
29
- "aix"
30
- ],
31
- "engines": {
32
- "node": ">=18"
33
- }
34
- },
35
- "node_modules/@esbuild/android-arm": {
36
- "version": "0.28.2",
37
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz",
38
- "integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==",
39
- "cpu": [
40
- "arm"
41
- ],
42
- "license": "MIT",
43
- "optional": true,
44
- "os": [
45
- "android"
46
- ],
47
- "engines": {
48
- "node": ">=18"
49
- }
50
- },
51
- "node_modules/@esbuild/android-arm64": {
52
- "version": "0.28.2",
53
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz",
54
- "integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==",
55
- "cpu": [
56
- "arm64"
57
- ],
58
- "license": "MIT",
59
- "optional": true,
60
- "os": [
61
- "android"
62
- ],
63
- "engines": {
64
- "node": ">=18"
65
- }
66
- },
67
- "node_modules/@esbuild/android-x64": {
68
- "version": "0.28.2",
69
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz",
70
- "integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==",
71
- "cpu": [
72
- "x64"
73
- ],
74
- "license": "MIT",
75
- "optional": true,
76
- "os": [
77
- "android"
78
- ],
79
- "engines": {
80
- "node": ">=18"
81
- }
82
- },
83
- "node_modules/@esbuild/darwin-arm64": {
84
- "version": "0.28.2",
85
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz",
86
- "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==",
87
- "cpu": [
88
- "arm64"
89
- ],
90
- "license": "MIT",
91
- "optional": true,
92
- "os": [
93
- "darwin"
94
- ],
95
- "engines": {
96
- "node": ">=18"
97
- }
98
- },
99
- "node_modules/@esbuild/darwin-x64": {
100
- "version": "0.28.2",
101
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz",
102
- "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==",
103
- "cpu": [
104
- "x64"
105
- ],
106
- "license": "MIT",
107
- "optional": true,
108
- "os": [
109
- "darwin"
110
- ],
111
- "engines": {
112
- "node": ">=18"
113
- }
114
- },
115
- "node_modules/@esbuild/freebsd-arm64": {
116
- "version": "0.28.2",
117
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz",
118
- "integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==",
119
- "cpu": [
120
- "arm64"
121
- ],
122
- "license": "MIT",
123
- "optional": true,
124
- "os": [
125
- "freebsd"
126
- ],
127
- "engines": {
128
- "node": ">=18"
129
- }
130
- },
131
- "node_modules/@esbuild/freebsd-x64": {
132
- "version": "0.28.2",
133
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz",
134
- "integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==",
135
- "cpu": [
136
- "x64"
137
- ],
138
- "license": "MIT",
139
- "optional": true,
140
- "os": [
141
- "freebsd"
142
- ],
143
- "engines": {
144
- "node": ">=18"
145
- }
146
- },
147
- "node_modules/@esbuild/linux-arm": {
148
- "version": "0.28.2",
149
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz",
150
- "integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==",
151
- "cpu": [
152
- "arm"
153
- ],
154
- "license": "MIT",
155
- "optional": true,
156
- "os": [
157
- "linux"
158
- ],
159
- "engines": {
160
- "node": ">=18"
161
- }
162
- },
163
- "node_modules/@esbuild/linux-arm64": {
164
- "version": "0.28.2",
165
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz",
166
- "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==",
167
- "cpu": [
168
- "arm64"
169
- ],
170
- "license": "MIT",
171
- "optional": true,
172
- "os": [
173
- "linux"
174
- ],
175
- "engines": {
176
- "node": ">=18"
177
- }
178
- },
179
- "node_modules/@esbuild/linux-ia32": {
180
- "version": "0.28.2",
181
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz",
182
- "integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==",
183
- "cpu": [
184
- "ia32"
185
- ],
186
- "license": "MIT",
187
- "optional": true,
188
- "os": [
189
- "linux"
190
- ],
191
- "engines": {
192
- "node": ">=18"
193
- }
194
- },
195
- "node_modules/@esbuild/linux-loong64": {
196
- "version": "0.28.2",
197
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz",
198
- "integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==",
199
- "cpu": [
200
- "loong64"
201
- ],
202
- "license": "MIT",
203
- "optional": true,
204
- "os": [
205
- "linux"
206
- ],
207
- "engines": {
208
- "node": ">=18"
209
- }
210
- },
211
- "node_modules/@esbuild/linux-mips64el": {
212
- "version": "0.28.2",
213
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz",
214
- "integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==",
215
- "cpu": [
216
- "mips64el"
217
- ],
218
- "license": "MIT",
219
- "optional": true,
220
- "os": [
221
- "linux"
222
- ],
223
- "engines": {
224
- "node": ">=18"
225
- }
226
- },
227
- "node_modules/@esbuild/linux-ppc64": {
228
- "version": "0.28.2",
229
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz",
230
- "integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==",
231
- "cpu": [
232
- "ppc64"
233
- ],
234
- "license": "MIT",
235
- "optional": true,
236
- "os": [
237
- "linux"
238
- ],
239
- "engines": {
240
- "node": ">=18"
241
- }
242
- },
243
- "node_modules/@esbuild/linux-riscv64": {
244
- "version": "0.28.2",
245
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz",
246
- "integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==",
247
- "cpu": [
248
- "riscv64"
249
- ],
250
- "license": "MIT",
251
- "optional": true,
252
- "os": [
253
- "linux"
254
- ],
255
- "engines": {
256
- "node": ">=18"
257
- }
258
- },
259
- "node_modules/@esbuild/linux-s390x": {
260
- "version": "0.28.2",
261
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz",
262
- "integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==",
263
- "cpu": [
264
- "s390x"
265
- ],
266
- "license": "MIT",
267
- "optional": true,
268
- "os": [
269
- "linux"
270
- ],
271
- "engines": {
272
- "node": ">=18"
273
- }
274
- },
275
- "node_modules/@esbuild/linux-x64": {
276
- "version": "0.28.2",
277
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz",
278
- "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==",
279
- "cpu": [
280
- "x64"
281
- ],
282
- "license": "MIT",
283
- "optional": true,
284
- "os": [
285
- "linux"
286
- ],
287
- "engines": {
288
- "node": ">=18"
289
- }
290
- },
291
- "node_modules/@esbuild/netbsd-arm64": {
292
- "version": "0.28.2",
293
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz",
294
- "integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==",
295
- "cpu": [
296
- "arm64"
297
- ],
298
- "license": "MIT",
299
- "optional": true,
300
- "os": [
301
- "netbsd"
302
- ],
303
- "engines": {
304
- "node": ">=18"
305
- }
306
- },
307
- "node_modules/@esbuild/netbsd-x64": {
308
- "version": "0.28.2",
309
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz",
310
- "integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==",
311
- "cpu": [
312
- "x64"
313
- ],
314
- "license": "MIT",
315
- "optional": true,
316
- "os": [
317
- "netbsd"
318
- ],
319
- "engines": {
320
- "node": ">=18"
321
- }
322
- },
323
- "node_modules/@esbuild/openbsd-arm64": {
324
- "version": "0.28.2",
325
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz",
326
- "integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==",
327
- "cpu": [
328
- "arm64"
329
- ],
330
- "license": "MIT",
331
- "optional": true,
332
- "os": [
333
- "openbsd"
334
- ],
335
- "engines": {
336
- "node": ">=18"
337
- }
338
- },
339
- "node_modules/@esbuild/openbsd-x64": {
340
- "version": "0.28.2",
341
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz",
342
- "integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==",
343
- "cpu": [
344
- "x64"
345
- ],
346
- "license": "MIT",
347
- "optional": true,
348
- "os": [
349
- "openbsd"
350
- ],
351
- "engines": {
352
- "node": ">=18"
353
- }
354
- },
355
- "node_modules/@esbuild/openharmony-arm64": {
356
- "version": "0.28.2",
357
- "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz",
358
- "integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==",
359
- "cpu": [
360
- "arm64"
361
- ],
362
- "license": "MIT",
363
- "optional": true,
364
- "os": [
365
- "openharmony"
366
- ],
367
- "engines": {
368
- "node": ">=18"
369
- }
370
- },
371
- "node_modules/@esbuild/sunos-x64": {
372
- "version": "0.28.2",
373
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz",
374
- "integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==",
375
- "cpu": [
376
- "x64"
377
- ],
378
- "license": "MIT",
379
- "optional": true,
380
- "os": [
381
- "sunos"
382
- ],
383
- "engines": {
384
- "node": ">=18"
385
- }
386
- },
387
- "node_modules/@esbuild/win32-arm64": {
388
- "version": "0.28.2",
389
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz",
390
- "integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==",
391
- "cpu": [
392
- "arm64"
393
- ],
394
- "license": "MIT",
395
- "optional": true,
396
- "os": [
397
- "win32"
398
- ],
399
- "engines": {
400
- "node": ">=18"
401
- }
402
- },
403
- "node_modules/@esbuild/win32-ia32": {
404
- "version": "0.28.2",
405
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz",
406
- "integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==",
407
- "cpu": [
408
- "ia32"
409
- ],
410
- "license": "MIT",
411
- "optional": true,
412
- "os": [
413
- "win32"
414
- ],
415
- "engines": {
416
- "node": ">=18"
417
- }
418
- },
419
- "node_modules/@esbuild/win32-x64": {
420
- "version": "0.28.2",
421
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz",
422
- "integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==",
423
- "cpu": [
424
- "x64"
425
- ],
426
- "license": "MIT",
427
- "optional": true,
428
- "os": [
429
- "win32"
430
- ],
431
- "engines": {
432
- "node": ">=18"
433
- }
434
- },
435
- "node_modules/@playwright/test": {
436
- "version": "1.63.0",
437
- "license": "Apache-2.0",
438
21
  "dependencies": {
439
- "playwright": "1.63.0"
22
+ "tsx": "^4.0.0"
440
23
  },
441
24
  "bin": {
442
- "playwright": "cli.js"
25
+ "waygraph": "bin/waygraph"
443
26
  },
444
- "engines": {
445
- "node": ">=20"
27
+ "devDependencies": {
28
+ "@playwright/test": "^1.63.0",
29
+ "@types/node": "^26.0.0",
30
+ "typescript": "^5.6.0"
31
+ },
32
+ "peerDependencies": {
33
+ "@playwright/test": "^1.40.0"
446
34
  }
447
35
  },
448
36
  "node_modules/@types/node": {
449
- "version": "26.6.1",
37
+ "version": "26.6.2",
38
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.2.tgz",
39
+ "integrity": "sha512-X1P21scMv4zGKLYqjdGjaKa7COa0RKVYYZZN/NfvLQ1JegxFhdhpZG/Lyn8AXx6CDUavKAd11v6BvfpkDByK8g==",
450
40
  "dev": true,
451
41
  "license": "MIT",
452
42
  "dependencies": {
453
43
  "undici-types": "~8.9.0"
454
44
  }
455
45
  },
456
- "node_modules/esbuild": {
457
- "version": "0.28.2",
458
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz",
459
- "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==",
460
- "hasInstallScript": true,
461
- "license": "MIT",
462
- "bin": {
463
- "esbuild": "bin/esbuild"
464
- },
465
- "engines": {
466
- "node": ">=18"
467
- },
468
- "optionalDependencies": {
469
- "@esbuild/aix-ppc64": "0.28.2",
470
- "@esbuild/android-arm": "0.28.2",
471
- "@esbuild/android-arm64": "0.28.2",
472
- "@esbuild/android-x64": "0.28.2",
473
- "@esbuild/darwin-arm64": "0.28.2",
474
- "@esbuild/darwin-x64": "0.28.2",
475
- "@esbuild/freebsd-arm64": "0.28.2",
476
- "@esbuild/freebsd-x64": "0.28.2",
477
- "@esbuild/linux-arm": "0.28.2",
478
- "@esbuild/linux-arm64": "0.28.2",
479
- "@esbuild/linux-ia32": "0.28.2",
480
- "@esbuild/linux-loong64": "0.28.2",
481
- "@esbuild/linux-mips64el": "0.28.2",
482
- "@esbuild/linux-ppc64": "0.28.2",
483
- "@esbuild/linux-riscv64": "0.28.2",
484
- "@esbuild/linux-s390x": "0.28.2",
485
- "@esbuild/linux-x64": "0.28.2",
486
- "@esbuild/netbsd-arm64": "0.28.2",
487
- "@esbuild/netbsd-x64": "0.28.2",
488
- "@esbuild/openbsd-arm64": "0.28.2",
489
- "@esbuild/openbsd-x64": "0.28.2",
490
- "@esbuild/openharmony-arm64": "0.28.2",
491
- "@esbuild/sunos-x64": "0.28.2",
492
- "@esbuild/win32-arm64": "0.28.2",
493
- "@esbuild/win32-ia32": "0.28.2",
494
- "@esbuild/win32-x64": "0.28.2"
495
- }
496
- },
497
- "node_modules/fsevents": {
498
- "version": "2.3.3",
499
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
500
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
501
- "hasInstallScript": true,
502
- "license": "MIT",
503
- "optional": true,
504
- "os": [
505
- "darwin"
506
- ],
507
- "engines": {
508
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
509
- }
510
- },
511
- "node_modules/playwright": {
512
- "version": "1.63.0",
513
- "license": "Apache-2.0",
514
- "dependencies": {
515
- "playwright-core": "1.63.0"
516
- },
517
- "bin": {
518
- "playwright": "cli.js"
519
- },
520
- "engines": {
521
- "node": ">=20"
522
- }
523
- },
524
- "node_modules/playwright-core": {
525
- "version": "1.63.0",
526
- "license": "Apache-2.0",
527
- "bin": {
528
- "playwright-core": "cli.js"
529
- },
530
- "engines": {
531
- "node": ">=20"
532
- }
533
- },
534
- "node_modules/tsx": {
535
- "version": "4.23.15",
536
- "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.23.15.tgz",
537
- "integrity": "sha512-Yiex1Ovn8z2xPpOWckIiysV1SSyRMY9BkLF++q0yKiDxCqRhosKfMg3janKkiLBwZ5c/YryloKwGZcrEmtwxKw==",
538
- "license": "MIT",
539
- "dependencies": {
540
- "esbuild": "~0.28.0"
541
- },
542
- "bin": {
543
- "tsx": "dist/cli.mjs"
544
- },
545
- "engines": {
546
- "node": ">=18.0.0"
547
- },
548
- "optionalDependencies": {
549
- "fsevents": "~2.3.3"
550
- }
551
- },
552
46
  "node_modules/typescript": {
553
47
  "version": "5.9.3",
48
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
49
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
554
50
  "dev": true,
555
51
  "license": "Apache-2.0",
556
52
  "bin": {
@@ -563,22 +59,14 @@
563
59
  },
564
60
  "node_modules/undici-types": {
565
61
  "version": "8.9.0",
62
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.9.0.tgz",
63
+ "integrity": "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==",
566
64
  "dev": true,
567
65
  "license": "MIT"
568
66
  },
569
67
  "node_modules/waygraph": {
570
- "version": "0.15.17",
571
- "resolved": "file:../..",
572
- "license": "MIT",
573
- "dependencies": {
574
- "tsx": "^4.0.0"
575
- },
576
- "bin": {
577
- "waygraph": "bin/waygraph"
578
- },
579
- "peerDependencies": {
580
- "@playwright/test": "^1.40.0"
581
- }
68
+ "resolved": "../..",
69
+ "link": true
582
70
  }
583
71
  }
584
72
  }
@@ -41,7 +41,6 @@
41
41
  "waygraph": "file:../.."
42
42
  },
43
43
  "devDependencies": {
44
- "@playwright/test": "^1.55.0",
45
44
  "@types/node": "^26.0.0",
46
45
  "typescript": "^5.6.0"
47
46
  }
@@ -0,0 +1,23 @@
1
+ import { Engine, withMemStub, registerMemStub } from "waygraph";
2
+ import { NavLoginBlock } from "../blocks/saucedemo-web/nav-login.block.js";
3
+ import { FillUsernameBlock } from "../blocks/saucedemo-web/methods/fill-username.method.block.js";
4
+ import { LoginCreds } from "../states/checkout.mem-keys.js";
5
+
6
+ /**
7
+ * Test-only fixture for waygraph's own `--mem-stub` CLI flag
8
+ * (tests/cli/mem-stub.spec.ts) - not part of the saucedemo showcase's own
9
+ * demo/story. Registers a fake LoginCreds so `waygraph run
10
+ * mem-stub-demo.flow.ts --mem-stub` succeeds with zero --data, proving the
11
+ * registry + preflight fallback work against the real CLI, not just the
12
+ * in-process engine tests in tests/core/mem-stub.spec.ts.
13
+ */
14
+ registerMemStub(LoginCreds.key, () => ({
15
+ username: "standard_user",
16
+ password: "secret_sauce",
17
+ }));
18
+
19
+ const engine = new Engine();
20
+
21
+ export const memStubDemoFlow = withMemStub(
22
+ engine.map().start().gotoPage(NavLoginBlock).method(FillUsernameBlock).end(),
23
+ );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "waygraph",
3
- "version": "0.15.19",
3
+ "version": "0.15.21",
4
4
  "type": "module",
5
5
  "description": "A typed graph of reusable Blocks for driving a browser through E2E flows.",
6
6
  "license": "MIT",
@@ -1,28 +1,30 @@
1
1
  # __PROJECT_NAME__
2
2
 
3
- Offline waygraph scaffold - Nav, Page hub, Method, Effect (`instanceOptions` for
4
- `waygraph auto`), stubs/fixtures/YAP, mem keys.
3
+ A waygraph project on the **Waygraph Map** layout: `src/map/` folders mirror your app's URLs.
4
+ Runs fully offline - `npm test` is green on a local fixture page.
5
5
 
6
- ## Layout
7
-
8
- See [STRUCTURE.md](./STRUCTURE.md). Docs:
9
- https://deviate-dv8.github.io/waygraph/scaffold.html
10
-
11
- ## Commands
6
+ ## Run it
12
7
 
13
8
  ```bash
14
9
  npm install
15
10
  npx playwright install chromium
16
- npm test
17
- npm run list && npm run check && npm run graph
18
- npm run demo # exampleFlow (hello + YAP)
19
- npm run demo:shop # Effect path (needs --data selectedItem)
20
- npm run auto # headed explore - pick Add Alpha / …
21
- npm run auto:cli
22
- npx waygraph agent-dive --loop claude # coding-agent defs (optional)
11
+ npm test # run the tests
12
+ npm run test:ui # same, in Playwright's interactive UI
13
+ npm run demo # watch a flow with the step overlay
14
+ npm run auto # explore the app by picking Blocks
23
15
  ```
24
16
 
25
- Point `package.json` `waygraph.baseUrl` at your real app when you leave the
26
- fixture (and drop `scripts/with-fixture.mjs` wrappers). Keep route folders =
27
- app URLs (consumer layout).
28
- Offline fixture is HTTP `http://127.0.0.1:4177/home.html` (Flatpak-safe).
17
+ More: `npm run check` (lint your Blocks), `npm run graph` (see the whole graph),
18
+ `npx waygraph test report` (open the last report + traces).
19
+
20
+ ## Where things live
21
+
22
+ See [STRUCTURE.md](./STRUCTURE.md). Short version: one folder per page under `src/map/`,
23
+ one Block per action, flows in `src/flows/`.
24
+
25
+ ## Point it at your real app
26
+
27
+ Set `waygraph.baseUrl` in `package.json`, drop the `scripts/with-fixture.mjs` wrappers, and
28
+ keep each `src/map/` folder matching the URL it represents (`waygraph map` enforces this).
29
+
30
+ Docs: https://deviate-dv8.github.io/waygraph/