This fixes not being able to build the repo due to type issues
introduced by the Typescript 4.4 option "useUnknownInCatchVariables",
which is enabled by default in strict mode.
* api: pass user object to auth hooks
The motivation for this is the ability to migrate from
bcrypt passwords to argon2 seamlessly.
Fixes#4718Fixes#4335
* receive user from `auth.login.before` hook
* pass `otp` as well on `auth.login` hooks
* api: last registered hook should have priority
When registering multiple hooks for a single event,
the last hook should have priority on return value.
* Fix linter warning
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Adds `not_found` hook
* Separate hooks and endpoints initialization process
* Adds additional application events
* Remove unused import
* Change the event order to accound for notFound and errorHandler
* Change emitAsync.catch to use the emitAsyncSafe function
* Updated docs, reordered table by lifecycle and usage