Files
sanderling/pkg/spec
pj 43970686d7 fix(spec): an editable or scrollable selector names what this host derives
Both facts are derived from the live element rather than written by the
markup, and matching them as attributes built [editable="true"], which
no page carries. Both resolve against the dump on the goja host, so a
spec naming a field or a scroll container that way found it there and no
element at all here, with no unknown-key error to say so.

Each reads the same function the fact is derived with, so a selector
cannot name an element this host calls something else: the handle, the
picker's target list and the editable selector all go through
isEditable, and scrollable reads the overflow test collectTargets reads.

scrollable false names nothing rather than every element that does not
scroll: both producers state the fact only where it holds, the way an
element that is no field at all answers to neither value of secure.
2026-08-19 10:12:12 +05:30
..

@sanderling/spec

TypeScript spec API for sanderling, a property-based UI fuzzer for Android, iOS and web apps.

A spec exports properties (what the app must always or eventually do), extractors (structured state read off the UI), and action generators (what sanderling is allowed to do). The sanderling CLI evaluates the spec against a running app once per step.

npm install --save-dev @sanderling/spec

Getting started installs the CLI and runs a first spec. The spec language reference lists every primitive, and the case study walks a complete spec end to end.

The CLI bundles this package's TypeScript sources at run time, so keep the CLI and the package on the same release.