import base64, json from typing import Any def encode_cursor(values: list[Any] | None, desc_flags: list[bool], backward: bool) -> str | None: if not values: return None payload = {"v": values, "d": desc_flags, "b": backward} return base64.urlsafe_b64encode(json.dumps(payload).encode()).decode() def decode_cursor(token: str | None) -> tuple[list[Any] | None, bool] | tuple[None, bool]: if not token: return None, False try: obj = json.loads(base64.urlsafe_b64decode(token.encode()).decode()) vals = obj.get("v") backward = bool(obj.get("b", False)) if isinstance(vals, list): return vals, backward except Exception: pass return None, False