* fix(client): convert challengeFiles->files before sending to api * update use of user.completeChallenges * parse response in ajax, pre-typing * add typing to getSessionUser * refactor: use Omit * fix: reorganise getSessionUser * refactor ajax for simplicity * refactor to be worse * allow for undefined completedChallenges Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com> Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>