d9b89520

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Trim the HTTP API to the endpoints the clients use

The intray server now serves only the endpoints that the CLI, the
notification tool and Stripe actually use, so trim the shared API and
client to match:

- Collapse the nested site records into a single IntrayRoutes record with
  the five remaining endpoints: register, login, stripe-hook, add-item and
  sync. Reduce Intray.Client to the matching client functions.
- Move the Stripe checkout-session types (InitiateStripeCheckoutSession,
  InitiatedCheckoutSession) into intray-server, where the web checkout flow
  uses them; no client needs them over the wire anymore.
- Drop the now-unused Permission constructors, keeping only the ones still
  enforced, and merge adminPermissions into userPermissions.
- Remove the JSON (and HttpApiData) instances, and their roundtrip tests,
  for types that are no longer serialised over the wire (access-key types,
  AccountInfo, PaidStatus, AdminStats, ActiveUsers, ChangePassphrase,
  Pricing, Username), keeping the types and their validity tests.
- Refresh the intray-cli nix options golden.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 0s 2s 2s 2s 0s
Eval 1s 31s 31s 32s 0s
Build 7s 2m11s 1m09s 1m16s 0s
Suite 0s 2m44s 1m16s 1m16s 0s

Timeline

0s10s20s30s40s50s1m1m10s