### Description
This PR updates oxlint to 1.8.0 and fixes the resulting errors in order
to keep oxlint's ecosystem CI green.
Thanks for using oxlint
---------
Co-authored-by: Miodec <jack@monkeytype.com>
Create config metadata object
Move all the special code on config change to config listeners
Create a generic set function which will work with the metadata object
to update any config key
Update all setters to use the generic set.
(Later probably only use the generic settter and remove all the specific
ones)
Also orders config groups and config schema.
---------
Co-authored-by: Christian Fehmer <cfe@sexy-developer.com>
If frontend and backend are deployed with a new COMPATABILITY_CHECK
header frontend might show the backend version is lower because of the
http header of a cached response.
Adding the COMPATABILITY_CHECK version as part of the etag fixes this.
### Description
refactored backend files to enhance type safety and reliability using
Zod validation and Redis instead of JSON.parse , I tried to avoid the
files that isn't necessary tho so I hope I don't miss any or included
unnecessary ones!! didn't fully test only verified code compilation and
partial tests without Redis!!.
Should Close#5881
Related to #6207
---------
Co-authored-by: Miodec <jack@monkeytype.com>
Optimize results endpoint by removing heavy or unused data.
We load the whole result chart data for up to 1000 results each time,
but it is very unlikely the user will view the charts for all old
results. By removing the size in my tests went down from 1152kb to
276kb.
---------
Co-authored-by: Miodec <jack@monkeytype.com>
### Description
1. fix openapi specification path so that /docs endpoint would work on
dev.
> Error: ENOENT: no such file or directory, stat
'backend/src/static/api/public.html' Stack: Error: ENOENT: no such file
or directory
2. fix openapi specification path so that API Operation would work on
/stats endpoint on dev.
> Cannot read openApi specification from
backend/src/api/routes/../../static/api/openapi.json. Swagger stats will
not fully work.

3. remove unneeded `files` & `ts-node` options from `tsconfig.json` in
various places.
> File 'backend/src/types/types.d.ts' not found.
The file is in the program because:
Part of 'files' list in tsconfig.json
4. add the missing `pnpm test` script to the funbox package.