# amql-predicates
> Expression tokenizer and predicate parser for AQL selectors
## Role
- Parses predicate expressions inside attribute selectors (e.g. `[method="POST"]`)
- Evaluates predicates against node attribute values
- Dependency of [amql-selector](../amql-selector)
## Features
- `wasm` — WASM bindings via `wasm_bindgen`
- `ts` — TypeScript type generation via `ts-rs`
## Types
- `Predicate` — parsed predicate (operator + value)
- `PredicateOp` — comparison operators (Eq, PrefixMatch, WordMatch, ...)
- `PredicateValue` — typed value (String, Number, Bool, Null)
- `Token` — tokenizer output
## Getting Started
```rust
use aql_predicates::{parse_predicate, eval_predicate};
let pred = parse_predicate("POST")?;
assert!(eval_predicate("Eq", "POST", "POST"));
```
## npm
- Package: `@aql/predicates`
- Build: `bun run build` (wasm-pack + codegen)
- Types: branded newtypes, generated via `ts-rs`
## License
[MIT](../../LICENSE)