* feat(auth): add OAuth2 login with GitHub and Google
* chore(translations): add files for Japanese
* fix(auth): fix link function for GitHub
* feat(oauth): basic oidc implementation
* feat(oauth): oauth guard
* fix: disable image optimizations for logo to prevent caching issues with custom logos
* fix: memory leak while downloading large files
* chore(translations): update translations via Crowdin (#278)
* New translations en-us.ts (Japanese)
* New translations en-us.ts (Japanese)
* New translations en-us.ts (Japanese)
* release: 0.18.2
* doc(translations): Add Japanese README (#279)
* Added Japanese README.
* Added JAPANESE README link to README.md.
* Updated Japanese README.
* Updated Environment Variable Table.
* updated zh-cn README.
* feat(oauth): unlink account
* refactor(oauth): make providers extensible
* fix(oauth): fix discoveryUri error when toggle google-enabled
* feat(oauth): add microsoft and discord as oauth provider
* docs(oauth): update README.md
* docs(oauth): update oauth2-guide.md
* set password to null for new oauth users
* New translations en-us.ts (Japanese) (#281)
* chore(translations): add Polish files
* fix(oauth): fix random username and password
* feat(oauth): add totp
* fix(oauth): fix totp throttle
* fix(oauth): fix qrcode and remove comment
* feat(oauth): add error page
* fix(oauth): i18n of error page
* feat(auth): add OAuth2 login
* fix(auth): fix link function for GitHub
* feat(oauth): basic oidc implementation
* feat(oauth): oauth guard
* feat(oauth): unlink account
* refactor(oauth): make providers extensible
* fix(oauth): fix discoveryUri error when toggle google-enabled
* feat(oauth): add microsoft and discord as oauth provider
* docs(oauth): update README.md
* docs(oauth): update oauth2-guide.md
* set password to null for new oauth users
* fix(oauth): fix random username and password
* feat(oauth): add totp
* fix(oauth): fix totp throttle
* fix(oauth): fix qrcode and remove comment
* feat(oauth): add error page
* fix(oauth): i18n of error page
* refactor: return null instead of `false` in `getIdOfCurrentUser` functiom
* feat: show original oauth error if available
* refactor: run formatter
* refactor(oauth): error message i18n
* refactor(oauth): make OAuth token available
someone may use it (to revoke token or get other info etc.)
also improved the i18n message
* chore(oauth): remove unused import
* chore: add database migration
* fix: missing python installation for nanoid
---------
Co-authored-by: Elias Schneider <login@eliasschneider.com>
Co-authored-by: ふうせん <10260662+fusengum@users.noreply.github.com>