CodeVetter · Repo Unpack · System map
webdriverio/webdriverio
The product is a collection of cooperating packages rather than one deployed application. Standalone clients and CLI test execution share protocol bindings but have different lifecycle owners. Node workers, real browsers, driver processes, and optional cloud backends form the principal runtime boundaries. Build artifacts are published as packages, while the documentation website has a separate deployment workflow.
- The private ESM root workspace selects pnpm 10.34.5; workspace membership includes packages, compiler infrastructure, website, e2e, typing fixtures, and selected examples.
- webdriverio exposes browser, Node ESM, and CommonJS entrypoints; its Node source installs filesystem-backed helpers and process environment access into the shared environment object.
- The webdriver package owns session creation and protocol composition: WebDriver.newSession starts a driver, negotiates capabilities, constructs a client monad, and optionally connects BiDi.
- The wdio executable imports the compiled CLI; run() dispatches registered commands or treats a configuration path as the default run command.
- Launcher owns capability scheduling and worker capacity; local workers execute @wdio/runner and exchange commands and results through Node IPC.
- BrowserRunner extends LocalRunner, requires Mocha, starts Vite servers for worker runs, registers a server-worker communicator, and aggregates coverage during shutdown.
- The inspected storage boundaries are caller-selected artifact files and an optional process-memory shared store served over loopback HTTP.
- Root scripts define build, unit, typing, smoke, component, and e2e checks; CI uploads compiled package artifacts, manual publishing invokes Lerna, and documentation deployment invokes the separate docs pipeline.