vue-router migration
We need to ensure our `vue-router` code runs well after we apply `vue-compat`. In order to do this we must create wrappers for the `vue-router` API that works well with both `vue-router@v3` and `vue-router@v4` (this one is for Vue 3). This is needed because `vue-router` has introduced [many breaking changes](https://router.vuejs.org/guide/migration/) that we must handle.
- [New bootstrapping API](https://gitlab.com/gitlab-org/gitlab/-/issues/396471):
- [`new VueRouter` → `createRouter`](https://router.vuejs.org/guide/migration/#new-router-becomes-createrouter)
- [`mode` → `history`](https://router.vuejs.org/guide/migration/#new-history-option-to-replace-mode)
- [`base` being part of `history`](https://router.vuejs.org/guide/migration/#moved-the-base-option)
- [`*` route paths must use a `pathMatch`](https://router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes) (only 2 instances found)
- [`scrollBehavior` new format](https://router.vuejs.org/guide/migration/#scrollbehavior-changes)
- [Component changes](https://gitlab.com/gitlab-org/gitlab/-/issues/396472):
- [`<keep-alive>` must be used inside `<router-view>`](https://router.vuejs.org/guide/migration/#router-view-keep-alive-and-transition) (1 instance)
This list is not exhaustive and might not contain all the things we need to migrate.
epic