bimp-persona 0.0.1

Browser persona configuration and resolved fingerprint values for Bimp.
Documentation
# bimp-persona

`bimp-persona` defines browser persona configuration and resolved fingerprint
values used by Bimp runtimes.

It turns a compact JSON configuration into concrete values for browser identity,
network headers, JavaScript-visible navigator fields, locale/timezone, screen
and window geometry, CSS feature detection, WebGL, canvas, DOMRect, fonts,
media devices, battery, storage, and automation policy.

## Example

```rust
use bimp_persona::{PersonaConfig, Viewport};

let persona = PersonaConfig {
    locale: Some("en-US".to_string()),
    timezone: Some("America/Los_Angeles".to_string()),
    viewport: Viewport {
        width: 1710,
        height: 896,
        device_scale_factor: 2,
    },
    ..PersonaConfig::default()
}
.resolve();

assert_eq!(persona.js.language, "en-US");
assert_eq!(persona.geo.timezone, "America/Los_Angeles");
assert_eq!(persona.viewport.device_scale_factor, 2);
```

## Loading persona.json

By default, `PersonaConfig::load_default_json()` reads `persona.json` from the
current working directory. Set `BIMP_PERSONA_JSON` to use another path.

```json
{
  "locale": "en-US",
  "timezone": "America/Los_Angeles",
  "viewport": { "width": 1710, "height": 896, "device_scale_factor": 2 },
  "css": { "moz_prefix_enabled": false, "webkit_prefix_enabled": true }
}
```

## Stability

`PersonaSeed` provides deterministic seeds for profile-stable fingerprint
values. Use explicit seeds for reproducible personas, or derive them from stable
inputs such as profile paths.