This is a very big commit that does an initial job of upgrading everything to the latest version. TSLint gets replaced by ESLint. Instead of plain node, now ts-node is being used. Old modules also get replaced with new ones (mostly ng2 to ngx). Also obsolete configs have been replaced with how it's used today with Angular.
This includes:
* Upgrade to:
** Angular 12
** Typescript 4
** ESLint 7 and replace TSLint
** Bootstrap 5
** Eerything connected to these
* Run with ts-node
* Convert wepack config to angular config
* Remove typescript-ioc
* Update tsconfigs
* Run a git command instead of using a library for sshort hash
* Move assets to a new location align with default Angular settings
* Database migration for new avatarUrl locations
* Simplify Model extension align with newest sequelize version
* Remove breadcrumb hack
* Fix homeserver typo
* A few general fixes that are necessary with newest Typescript rules
* Define Express.User interface
We were accidentally setting the createMeeting query parameter when
creating a widget through Dimension's UI, which tells the widget to use
the non-UI method of connecting to a meeting.
This adds the widget and the configuration for it to the integration
manager, so that the user can add a BBB widget. The code that will
actually run inside of the widget is not yet here.
A few CSS things are updated as well to make them more generic, as
we reused a few things that were previously jitsi only.
The unconditional access to `widgets.response[0]` would fail if
results was null or empty, leading to an exception that prevented
replacing the sticker picker.
The text box allowing a user to add a new sticker pack was behind
a `packs > 0` check, making it impossible to add new packs unless
at least one other pack was already present.