This release adds module uninstallation, a configurable install profile for the parallelWorker fixture, and an ESLint plugin to catch root-relative paths that break on Drupal.org CI.

✨ New Features

A new `drupal.uninstallModules(modules: string[])` method uninstalls modules via the UI, handling the confirmation step. It throws a clear error if a module isn't installed, or can't be uninstalled because another module depends on it or it has content that must be deleted first.

The `parallelWorker` fixture now accepts a worker-scoped `installProfile` option (default `'minimal'`), which is passed to `Drupal.install()`:

```typescript
import { parallelWorker as test } from '@drupal/playwright';

test.use({ installProfile: 'standard' });
```

Tests declaring different profiles run in separate workers, each with its own site install.

Drupal may be installed in a subdirectory (e.g. `http://localhost/web/` on Drupal.org CI), so a leading `/` in `page.goto()`, `waitForURL()`, `toHaveURL()` or `page.request` drops that path and tests 404 in CI despite passing locally. Always use `./`-relative paths, and add the new ESLint plugin to catch (and `--fix`) root-relative ones:

```js
import drupalPlaywright from '@drupal/playwright/eslint';

export default [
  // ...
  drupalPlaywright.configs.recommended,
];
```

The fixtures now also add the trailing slash `baseURL` needs for relative paths to resolve correctly.

🐛 Bug Fixes

- `Drupal.logout()` no longer asserts the presence of an `h1` that isn't guaranteed to be there.
- Added the missing `"default"` export condition to `package.json`.

- A pre-commit hook now regenerates the API docs automatically.