Setup typescript in the server.
Links to relevant issues
Description of changes, providing context that may help others understand the changes
Setup Typescript in the server.
The "allowJs" option is used so that we can migrate over time.
Any js file in the server can be converted to a typescript file by changing its file extension to ".ts".
Babel has been removed and replaced by webpack and typescript.
Jest has been configured to work with typescript and javascript.
ESLint has been updated to include the rules from @typescript-eslint/recommended.
The pre-commit hooks configured via lint-staged now include a check for typescript compilation errors.
In the ci pipeline, typescript compilation errors are caught by the server build job.
The node version for the project has been bumped from 14 to 16. The server is ready to upgrade to 20, but the client cannot until the Vue 3 upgrade is completed. Once it is completed, we can update the entire project to node 20.