@swmansion/argent 0.24.1-next.13 → 0.24.1-next.15
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/cli-cmds.mjs
CHANGED
|
@@ -21857,7 +21857,7 @@ var _CI_VENDOR_COUNT_FOR_TEST = vendors_default.length;
|
|
|
21857
21857
|
var SESSION_ID2 = randomUUID5();
|
|
21858
21858
|
function readCliVersion() {
|
|
21859
21859
|
if (true) {
|
|
21860
|
-
return "0.24.1-next.
|
|
21860
|
+
return "0.24.1-next.15";
|
|
21861
21861
|
}
|
|
21862
21862
|
return "0.0.0";
|
|
21863
21863
|
}
|
package/dist/installer.mjs
CHANGED
|
@@ -16710,7 +16710,7 @@ var _CI_VENDOR_COUNT_FOR_TEST = vendors_default.length;
|
|
|
16710
16710
|
var SESSION_ID = randomUUID4();
|
|
16711
16711
|
function readCliVersion() {
|
|
16712
16712
|
if (true) {
|
|
16713
|
-
return "0.24.1-next.
|
|
16713
|
+
return "0.24.1-next.15";
|
|
16714
16714
|
}
|
|
16715
16715
|
return "0.0.0";
|
|
16716
16716
|
}
|
package/dist/tool-server.cjs
CHANGED
|
@@ -94702,7 +94702,7 @@ var _CI_VENDOR_COUNT_FOR_TEST = vendors_default.length;
|
|
|
94702
94702
|
var SESSION_ID = (0, import_node_crypto3.randomUUID)();
|
|
94703
94703
|
function readCliVersion() {
|
|
94704
94704
|
if (true) {
|
|
94705
|
-
return "0.24.1-next.
|
|
94705
|
+
return "0.24.1-next.15";
|
|
94706
94706
|
}
|
|
94707
94707
|
return "0.0.0";
|
|
94708
94708
|
}
|
|
@@ -154369,85 +154369,11 @@ function createRunFlowTool(registry2) {
|
|
|
154369
154369
|
completedMsg: ({ params }) => `Ran flow ${displayFlowName(params)}`,
|
|
154370
154370
|
failedMsg: ({ params, failureSignal: failureSignal2 }) => `Failed to run flow ${displayFlowName(params)}: ${failureSignal2.error_code}`
|
|
154371
154371
|
},
|
|
154372
|
-
description: `Run a saved flow
|
|
154373
|
-
|
|
154374
|
-
|
|
154375
|
-
|
|
154376
|
-
|
|
154377
|
-
ready (on iOS it also pins later element lookups to that app rather than auto-detecting the frontmost
|
|
154378
|
-
one); \`tool\` calls dispatch through the registry (a raw \`tool\` step ends that iOS pin, so lookups
|
|
154379
|
-
auto-detect again until the next \`launch\`, though a tool that cannot change the foreground app leaves the
|
|
154380
|
-
launched id as a fallback for a timed-out auto-detect, and \`launch-app\`/\`restart-app\` leave the id they
|
|
154381
|
-
started as that fallback instead); \`tap\`/\`long-press\`/\`type\` resolve a selector to an
|
|
154382
|
-
element and act on it (\`tap: { on, times: 2 }\` double-taps; \`long-press: { on, duration }\` presses and
|
|
154383
|
-
holds; \`tap\`/\`long-press\` alternatively take a raw normalized point \u2014 bare \`{ x, y }\` or \`on: { x, y }\`;
|
|
154384
|
-
any selector may scope its matches geometrically, the CSS combinators read off frames: \`within: <selector>\`
|
|
154385
|
-
(descendant \u2014 inside that container's frame), \`after: <selector>\` (CSS \`~\` \u2014 following it in reading
|
|
154386
|
-
order), \`next: <selector>\` (CSS \`+\` \u2014 the nearest such follower, which unlike CSS reaches past a
|
|
154387
|
-
non-matching neighbour rather than failing), plus \`any: true\` (CSS \`*\` \u2014 legal only WITH a scope and
|
|
154388
|
-
never beside text/id/role). Scopes nest to disambiguate \u2014 \`within: { id: card, within: { id: list } }\`
|
|
154389
|
-
reads "inside card inside list", each container's frame inside the next);
|
|
154390
|
-
\`swipe\` performs one finger flick (\`swipe: left\`, or \`swipe: { from?, direction|to|by, momentum?, duration? }\` \u2014
|
|
154391
|
-
direction is the FINGER's travel, the opposite sense of scroll-to's content direction; \`by: { x?, y? }\` \u2014 signed
|
|
154392
|
-
0\u20131 screen fractions, combined length at least 0.03 (a diagonal clears it where neither axis does); duration in ms,
|
|
154393
|
-
default 300, minimum 150, maximum 10000; each bound is a parse error that rejects the file before any step runs;
|
|
154394
|
-
\`momentum: false\` lands exactly where the finger lifts instead of flinging);
|
|
154395
|
-
\`scroll-to\` scrolls (momentum-free) until a target is visible; \`pinch\` zooms
|
|
154396
|
-
(\`pinch: { on?, scale }\` \u2014 scale > 1 in, < 1 out; screen center when \`on\` is omitted); \`rotate\` is the
|
|
154397
|
-
two-finger rotation gesture (\`rotate: { on?, by }\` \u2014 degrees, + clockwise, within \xB13000\xB0; screen center
|
|
154398
|
-
when \`on\` is omitted; distinct from the \`rotate\` tool, which changes device orientation); \`await\` waits
|
|
154399
|
-
for a UI condition, and additionally takes the one condition that has no selector: \`idle: true\` waits
|
|
154400
|
-
until the screen has content and stops moving in BOTH the UI tree and the rendered pixels (it never
|
|
154401
|
-
fails a run \u2014 a screen that never settles passes carrying a \`warning\`, which is what makes it safe to
|
|
154402
|
-
persist; the one idle outcome that does stop the run is an \`error\` for a tree source THIS step could not
|
|
154403
|
-
read at all \u2014 a broken window rather than a verdict about the app, which leaves the run not-ok and skips
|
|
154404
|
-
every later step; it says nothing about WHICH screen settled \u2014 a dropped tap leaves the source screen
|
|
154405
|
-
perfectly idle \u2014 so pair it with the element check that names the destination); \`wait\` pauses for a fixed number of milliseconds; \`assert\` checks one now; \`snapshot\`
|
|
154406
|
-
diffs a screenshot \u2014 or, with \`cropOn: <selector>\`, one element's cropped region \u2014 against a stored
|
|
154407
|
-
baseline (a missing baseline fails the step \u2014 set updateBaselines to adopt the current screen; a
|
|
154408
|
-
cropped element whose size drifted fails on dimensions); \`echo\` annotates; \`run\` executes another flow
|
|
154409
|
-
inline \u2014 a YAML path resolved against the directory of the flow file that references it (co-located
|
|
154410
|
-
runs only); \`script\` runs a local .mjs file in a fresh Node process for setup, cleanup, or any work a device step cannot do
|
|
154411
|
-
(\`script: { path: ../../scripts/seed.mjs, timeout?: <ms> }\` \u2014 always a map, never a bare path; the path
|
|
154412
|
-
is resolved against the flow file that names the step, exactly as a \`run\` target is, so a saved flow
|
|
154413
|
-
climbs out of .argent/flows/ to reach the project's own scripts/ directory. The step needs no device, so
|
|
154414
|
-
a script-only flow runs with nothing booted \u2014 but a \`run\` or a \`when\` step beside it still resolves
|
|
154415
|
-
one, \`when\` even when the only thing it guards is another script, so a platform-gated seed needs a
|
|
154416
|
-
device of that platform. Its stdout and stderr come back on the step report. Co-located runs only.).
|
|
154417
|
-
A selector-less gesture \u2014 a coordinate \`tap\`/\`long-press\`/\`swipe\`, or a \`pinch\`/\`rotate\` with no \`on\` \u2014 resolves
|
|
154418
|
-
no frame out of the tree, so an unreadable tree source does NOT stop it the way it stops \`idle\`: it
|
|
154419
|
-
settles best-effort, dispatches anyway, and the step PASSES carrying a \`warning\` that quotes the source's
|
|
154420
|
-
own error. That green says the gesture was SENT, not that it landed. Restore the tree source (usually
|
|
154421
|
-
relaunch the app so the instrumentation loads), or accept the warning where the app can serve no tree;
|
|
154422
|
-
the first such gesture proves the outage and later ones spend that verdict without paying the settle
|
|
154423
|
-
window again. A tree read that comes back, or a relaunch, retires that verdict \u2014 which only makes the
|
|
154424
|
-
next gesture pay a fresh window, and it warns again if the source is still down.
|
|
154425
|
-
A \`when:\` block (condition + \`steps:\`, no else) runs its steps only if the condition holds \u2014
|
|
154426
|
-
checked once with the short assert grace \u2014 for one-sided divergences like interstitials and coach
|
|
154427
|
-
marks; a skipped block reports distinctly and failures inside an entered block are real failures.
|
|
154428
|
-
A flow is self-contained when its first non-\`echo\`/\`script\` step is \`launch\`; it must not declare
|
|
154429
|
-
\`executionPrerequisite\`. Other flows use the device's current state. Device id is injected by the runner (flows store none) \u2014 pass \`device\` or
|
|
154430
|
-
\`platform\` to pick one, else the single booted device is used. On Chromium a \`launch\` step's value is an
|
|
154431
|
-
Electron app path ({ chromium: <path> | { path, args } }) the runner boots (on the tool-server host) rather
|
|
154432
|
-
than an installed app id it relaunches. With no explicit \`device\`, a run whose leading launch is
|
|
154433
|
-
unambiguously chromium (\`platform: chromium\`, or a lone \`{ chromium: \u2026 }\` target) boots that app and
|
|
154434
|
-
starts there \u2014 following a leading \`run:\`, \`echo:\` or \`script:\`, so a fragment that composes a chromium
|
|
154435
|
-
e2e flow boots too, and so does a flow that seeds a backend before it launches;
|
|
154436
|
-
otherwise the first launch attaches to an already-running instance and never kills it. Every later
|
|
154437
|
-
launch \u2014 a nested e2e flow's own, or a mid-flow relaunch \u2014 boots a fresh instance the run moves onto;
|
|
154438
|
-
an instance the run already owns for that same app is killed first (its exit awaited) so the
|
|
154439
|
-
replacement can't lose the race against its single-instance lock. Instances the runner still owns at
|
|
154440
|
-
run end are torn down then. A launch declaring no id for the run's platform is an error, not a cue to
|
|
154441
|
-
switch platforms. Every step hard-stops the flow on failure; later steps are reported as skipped.
|
|
154442
|
-
Returns a structured report ({ flow, device, executionPrerequisite, ok, aborted?, passed, failed,
|
|
154443
|
-
skipped, errored, steps }) \u2014 \`device\` is the device the run STARTED on; when launches moved it onto
|
|
154444
|
-
runner-booted instances, each names its instance in that step's reason and marks the move \u2014 \`run moved
|
|
154445
|
-
off <id>\`, or \`retired <id> (same app relaunched)\` when the instance it left was the one killed \u2014
|
|
154446
|
-
a relaunch that retired an older owned instance names both.
|
|
154447
|
-
|
|
154448
|
-
If a fragment has an execution prerequisite and prerequisiteAcknowledged is not set to true, the tool
|
|
154449
|
-
returns a notice with the prerequisite instead of running.
|
|
154450
|
-
Pass exactly one flow source: name for a saved flow under project_root, or flow_path for an explicit YAML \u2014 both together, or neither, fails the call.`,
|
|
154372
|
+
description: `Run a saved YAML flow end to end. Use when
|
|
154373
|
+
asked to replay a recorded path, re-run a QA regression, or check that a known journey still passes; for a
|
|
154374
|
+
one-off interaction use the gesture tools instead, and to author a flow use flow-start-recording. Pass
|
|
154375
|
+
exactly one flow source: name (under project_root) or flow_path.
|
|
154376
|
+
Returns a per-step report: the first failure stops the run and the rest report as skipped.`,
|
|
154451
154377
|
longRunning: true,
|
|
154452
154378
|
zodSchema: zodSchema66,
|
|
154453
154379
|
fileInputs: fileInputs3,
|
package/package.json
CHANGED
|
@@ -109,7 +109,7 @@ Scopes can combine and nest, with at most six scope keys. Use strict selectors f
|
|
|
109
109
|
|
|
110
110
|
## Directives
|
|
111
111
|
|
|
112
|
-
Directives stop the flow on failure and skip later steps.
|
|
112
|
+
Directives stop the flow on failure and skip later steps. The available directives are `launch`, `tap`, `long-press`, `swipe`, `type`, `scroll-to`, `pinch`, `rotate`, `await`, `assert`, `wait`, `snapshot`, `run`, `script`, `when`, `echo`, and `tool`.
|
|
113
113
|
|
|
114
114
|
Use the launch map for cross-platform flows. A bare launch applies everywhere and becomes an app path on Chromium. The map takes `native:`, `ios:`, `android:`, `vega:`, and `chromium:`. `native:` is one id shared by iOS, Android, and Vega, and a per-platform key overrides it for that platform. `chromium:` accepts a relative or absolute app path. A launch that declares no id for the run's platform is an error, not a cue to switch platforms. On iOS, a successful launch also pins later tree reads to that app until the next raw `tool:` step, so read [The runner tree is not the discovery tree](#the-runner-tree-is-not-the-discovery-tree) when a read describes the wrong screen.
|
|
115
115
|
|