This updates the eslint configuration to the new flat file format, which
is the future format.
Also adds eslint as a dev dependency. JS Projects should have locally
installed the correct versions of development tools like
eslint/prettier, etc. So developer experience is consistent; and not
depending on external context, like globally installed versions; but the
version that matches the configuration.
Also updates outdated packages, like typescript
Would have liked to update to eslint@9, but the typescript module does
not yet support 9 as a peer dependency.