[Value Stream Analytics][FE] Migrate EE code into a core module with EE specific extensions
:exclamation: In order to avoid a massacre of conflicts, this should only begin after https://gitlab.com/groups/gitlab-org/-/epics/2434 :exclamation: ---- ### Description As per https://gitlab.com/gitlab-org/gitlab/-/issues/30079#note_316199209 ---- * The premium VSA FE code will need to be split into a core module with EE specific extensions / mixins. This includes; * The main Vue application * The Vuex store * VSA specific utils * FE related tests i.e. RSpec and Jest * Shared analytics utils will need to be migrated and potentially split with references updated in other features such as productivity analytics * Licensing checks will need to be added in order to provide the feature with limited functionality within ee for projects which are not on a premium tier * Additional tests will need to be added to ensure that licensing restrictions are adhered to ---- ### What can be done without BE The VSA code can be migrated into a core module with EE extensions and simply **not yet** be initialised within the project level feature (at least for core). Integration tests and unit tests depending on fixtures will need to remain in EE until there is a working API. Once we have the core code migrated for the group level feature, we can begin looking into how this will be implemented for the project level. As the project level feature is shared between core and EE, the EE specific mixins will require licence checks in order to determine which parts of the EE specific code can be loaded. We should be able to go ahead with pushing the licensing information via the `gl` object without input from BE. We would even go as far as enabling the migrated code on EE for the project level as we'd have a working API within the EE context. ### Documentation on EE specific FE code https://docs.gitlab.com/ee/development/ee_features.html#for-js-code-that-is-ee-only-like-props-computed-properties-methods-etc-we-will-keep-the-current-approach ### Documentation on the `gl` object https://docs.gitlab.com/ee/development/fe_guide/vue.html#accessing-the-gl-object
epic