Modules
An Elixir client for Picnic's unofficial supermarket API.
Login, password hashing, and the two-factor handshake.
The client struct — plain data, not a process.
Resolves client configuration.
Lenient decoding of API payloads.
The error struct returned by every function in this library.
The single HTTP chokepoint.
Flattens Picnic's display-page payloads into plain lists.
The shopping cart.
Past and upcoming deliveries.
Meal recipes and their ingredient lists.
Product search.
The account profile — address, contact details, and household settings.
Behaviour for the optional, deliberately loose domain structs under
Picnic.Schema.*.
Loose struct for the shopping cart. Prices are integers in cents, as the
API sends them. Unknown fields are ignored; the complete original payload
is always available under :raw.
Loose struct for a delivery. Unknown fields are ignored; the complete
original payload is always available under :raw.
Loose struct for a recipe. Unknown fields are ignored; the complete
original payload is always available under :raw.
Loose struct for one product matched by a search. Prices are integer cents,
so 129 is €1.29. Unknown fields are ignored; the complete original payload
is always available under :raw.
Loose struct for the account profile. Unknown fields are ignored; the
complete original payload is always available under :raw.
Optional managed-auth layer: a GenServer that holds the client and re-authenticates for you.
Behaviour for persisting the auth token across Picnic.Session restarts.
The default token store: keeps the token in the session's own state.