Browse Source

upgrade node+nuxt, post upgrade fixes

Olivier Massot 2 years ago
parent
commit
df7f0a8c24
100 changed files with 221 additions and 210 deletions
  1. 1 0
      .nuxtignore
  2. 2 2
      components/Layout/Alert/Container.vue
  3. 2 2
      components/Layout/Alert/Content.vue
  4. 1 1
      components/Layout/AlertBar/Cotisation.vue
  5. 1 1
      components/Layout/AlertBar/SuperAdmin.vue
  6. 1 1
      components/Layout/AlertBar/SwitchYear.vue
  7. 0 1
      components/Layout/Dialog.vue
  8. 3 2
      components/Layout/Header.vue
  9. 0 1
      components/Layout/Header/HomeBtn.vue
  10. 3 2
      components/Layout/Header/Notification.vue
  11. 3 3
      components/Layout/Header/UniversalCreation/Card.vue
  12. 3 2
      components/Layout/Header/UniversalCreation/CreateButton.vue
  13. 3 2
      components/Layout/Header/UniversalCreation/EventParams.vue
  14. 2 3
      components/Layout/Header/UniversalCreation/GenerateCardsSteps.vue
  15. 1 1
      components/Layout/MainMenu.vue
  16. 1 1
      components/Layout/ParametersMenu.vue
  17. 3 2
      components/Layout/SubHeader/Breadcrumbs.vue
  18. 1 1
      components/Layout/SubHeader/DataTiming.vue
  19. 1 1
      components/Layout/SubHeader/DataTimingRange.vue
  20. 3 2
      components/Layout/SubHeader/PersonnalizedList.vue
  21. 5 4
      components/Layout/Subheader.vue
  22. 1 1
      components/Layout/ThemeSwitcher.vue
  23. 1 1
      components/Ui/Button/Delete.vue
  24. 2 1
      components/Ui/Button/Submit.vue
  25. 3 2
      components/Ui/Collection.vue
  26. 3 2
      components/Ui/DataTable.vue
  27. 1 1
      components/Ui/DatePicker.vue
  28. 1 1
      components/Ui/DateRangePicker.vue
  29. 6 4
      components/Ui/Form.vue
  30. 3 3
      components/Ui/Form/Creation.vue
  31. 3 6
      components/Ui/Form/Edition.vue
  32. 1 1
      components/Ui/Help.vue
  33. 4 2
      components/Ui/Image.vue
  34. 4 3
      components/Ui/Input/Autocomplete.vue
  35. 4 3
      components/Ui/Input/Autocomplete/Accesses.vue
  36. 2 1
      components/Ui/Input/AutocompleteWithAPI.vue
  37. 4 3
      components/Ui/Input/AutocompleteWithAp2i.vue
  38. 3 3
      components/Ui/Input/AutocompleteWithEnum.vue
  39. 1 1
      components/Ui/Input/DatePicker.vue
  40. 5 3
      components/Ui/Input/Image.vue
  41. 1 1
      components/Ui/Input/Number.vue
  42. 1 1
      components/Ui/Input/Phone.vue
  43. 5 11
      components/Ui/Input/Text.vue
  44. 2 3
      components/Ui/ItemFromUri.vue
  45. 2 1
      components/Ui/Template/Date.vue
  46. 2 1
      components/Ui/Xeditable/Text.vue
  47. 3 3
      composables/data/useAp2iRequestService.ts
  48. 3 3
      composables/data/useEntityFetch.ts
  49. 2 2
      composables/data/useEnumFetch.ts
  50. 1 1
      composables/data/useImageFetch.ts
  51. 3 3
      composables/data/useRefreshProfile.ts
  52. 2 1
      composables/form/useFieldViolation.ts
  53. 1 1
      composables/form/useValidation.ts
  54. 1 1
      composables/layout/useExtensionPanel.ts
  55. 2 2
      composables/layout/useMenu.ts
  56. 0 1
      composables/utils/useHomeUrl.ts
  57. 1 1
      models/Access/Access.ts
  58. 1 1
      models/Access/MyProfile.ts
  59. 1 1
      nuxt.config.ts
  60. 43 43
      package.json
  61. 1 2
      pages/cmf_licence/organization.vue
  62. 2 1
      pages/organization/index.vue
  63. 1 1
      pages/parameters/attendances.vue
  64. 1 1
      pages/parameters/bulletin.vue
  65. 0 1
      pages/parameters/cycles/[id].vue
  66. 1 1
      pages/parameters/education_notation.vue
  67. 1 1
      pages/parameters/education_timings.vue
  68. 1 1
      pages/parameters/education_timings/[id].vue
  69. 1 1
      pages/parameters/general_parameters.vue
  70. 1 1
      pages/parameters/intranet.vue
  71. 1 1
      pages/parameters/sms.vue
  72. 2 2
      pages/parameters/subdomains/new.vue
  73. 2 2
      pages/parameters/teaching.vue
  74. 1 2
      pages/parameters/website.vue
  75. 2 1
      pages/poc/[id].vue
  76. 2 1
      pages/poc/index.vue
  77. 0 1
      pages/poc/new.vue
  78. 2 1
      pages/poc/test.vue
  79. 1 1
      pages/subscription.vue
  80. 3 1
      plugins/init.server.ts
  81. 1 1
      plugins/sse.client.ts
  82. 3 3
      services/data/apiRequestService.ts
  83. 1 1
      services/data/entityManager.ts
  84. 2 2
      services/data/enumManager.ts
  85. 1 1
      services/data/normalizer/hydraNormalizer.ts
  86. 4 4
      services/layout/menuBuilder/abstractMenuBuilder.ts
  87. 1 2
      services/layout/menuBuilder/accessMenuBuilder.ts
  88. 1 1
      services/layout/menuBuilder/accountMenuBuilder.ts
  89. 1 1
      services/layout/menuBuilder/admin2iosMenuBuilder.ts
  90. 1 1
      services/layout/menuBuilder/agendaMenuBuilder.ts
  91. 1 1
      services/layout/menuBuilder/billingMenuBuilder.ts
  92. 1 1
      services/layout/menuBuilder/communicationMenuBuilder.ts
  93. 1 1
      services/layout/menuBuilder/configurationMenuBuilder.ts
  94. 1 1
      services/layout/menuBuilder/cotisationsMenuBuilder.ts
  95. 1 1
      services/layout/menuBuilder/donorsMenuBuilder.ts
  96. 1 1
      services/layout/menuBuilder/educationalMenuBuilder.ts
  97. 1 1
      services/layout/menuBuilder/equipmentMenuBuilder.ts
  98. 1 1
      services/layout/menuBuilder/mainMenuBuilder.ts
  99. 1 1
      services/layout/menuBuilder/medalsMenuBuilder.ts
  100. 1 1
      services/layout/menuBuilder/myAccessesMenuBuilder.ts

+ 1 - 0
.nuxtignore

@@ -0,0 +1 @@
+coverage

+ 2 - 2
components/Layout/Alert/Container.vue

@@ -16,9 +16,9 @@ Container principal pour l'affichage d'une ou plusieurs alertes
 </template>
 
 <script setup lang="ts">
-import { Alert } from '~/types/interfaces'
+import type { Alert } from '~/types/interfaces'
 import {usePageStore} from "~/stores/page";
-import {ComputedRef} from "@vue/reactivity";
+import type {ComputedRef} from "@vue/reactivity";
 
 const pageStore = usePageStore()
 

+ 2 - 2
components/Layout/Alert/Content.vue

@@ -24,8 +24,8 @@
 </template>
 
 <script setup lang="ts">
-import {Alert} from '~/types/interfaces'
-import {Ref} from "@vue/reactivity";
+import type {Alert} from '~/types/interfaces'
+import type {Ref} from "@vue/reactivity";
 import {usePageStore} from "~/stores/page";
 
 const props = defineProps({

+ 1 - 1
components/Layout/AlertBar/Cotisation.vue

@@ -18,7 +18,7 @@ Barre d'alerte qui s'affiche pour donner l'état de la cotisation
 
 <script setup lang="ts">
 import {useOrganizationProfileStore} from "~/stores/organizationProfile";
-import {Ref} from "vue";
+import type {Ref} from "vue";
 import UrlUtils from "~/services/utils/urlUtils";
 import {ALERT_STATE_COTISATION} from "~/types/enum/enums";
 import {useEntityFetch} from "~/composables/data/useEntityFetch";

+ 1 - 1
components/Layout/AlertBar/SuperAdmin.vue

@@ -15,7 +15,7 @@ Barre d'alerte qui s'affiche lorsque l'utilisateur est un super admin en mode sw
 <script setup lang="ts">
   import {useAccessProfileStore} from "~/stores/accessProfile";
   import UrlUtils from "~/services/utils/urlUtils";
-  import {ComputedRef} from "@vue/reactivity";
+  import type {ComputedRef} from "@vue/reactivity";
 
   const runtimeConfig = useRuntimeConfig()
 

+ 1 - 1
components/Layout/AlertBar/SwitchYear.vue

@@ -20,7 +20,7 @@ Barre d'alerte qui s'affiche lorsque l'utilisateur n'est pas sur l'année couran
 <script setup lang="ts">
   import {useAccessProfileStore} from "~/stores/accessProfile";
   import {useOrganizationProfileStore} from "~/stores/organizationProfile";
-  import {ComputedRef} from "@vue/reactivity";
+  import type {ComputedRef} from "@vue/reactivity";
   import {useFormStore} from "~/stores/form";
   import Access from "~/models/Access/Access";
   import {usePageStore} from "~/stores/page";

+ 0 - 1
components/Layout/Dialog.vue

@@ -34,7 +34,6 @@
 </template>
 
 <script setup lang="ts">
-import {PropType} from "@vue/runtime-core";
 
 const props = defineProps({
   show: {

+ 3 - 2
components/Layout/Header.vue

@@ -61,10 +61,11 @@ Contient entre autres le nom de l'organisation, l'accès à l'aide et aux préf
 
 <script setup lang="ts">
 
-import {computed, ComputedRef} from "@vue/reactivity";
+import {computed} from "@vue/reactivity";
+import type {ComputedRef} from "@vue/reactivity";
 import {useMenu} from "~/composables/layout/useMenu";
 import {useAbility} from "@casl/vue";
-import {useDisplay, useTheme} from 'vuetify'
+import {useDisplay} from 'vuetify'
 import {useOrganizationProfileStore} from "~/stores/organizationProfile";
 import {useLayoutStore} from "~/stores/layout";
 

+ 0 - 1
components/Layout/Header/HomeBtn.vue

@@ -17,7 +17,6 @@
   import {useHomeUrl} from "~/composables/utils/useHomeUrl";
 
   const { homeUrl } = useHomeUrl()
-  const { mdAndUp } = useDisplay()
 
   const btn = ref(null);
 </script>

+ 3 - 2
components/Layout/Header/Notification.vue

@@ -95,9 +95,10 @@ import {NOTIFICATION_TYPE} from "~/types/enum/enums";
 import Notification from "~/models/Core/Notification";
 import NotificationUsers from "~/models/Core/NotificationUsers";
 import {useAccessProfileStore} from "~/stores/accessProfile";
-import {computed, ComputedRef, Ref, ref} from "@vue/reactivity";
+import {computed, ref} from "@vue/reactivity";
+import type {ComputedRef, Ref} from "@vue/reactivity";
 import {useEntityFetch} from "~/composables/data/useEntityFetch";
-import {AnyJson, Pagination} from "~/types/data";
+import type {AnyJson, Pagination} from "~/types/data";
 import {useEntityManager} from "~/composables/data/useEntityManager";
 import UrlUtils from "~/services/utils/urlUtils";
 import {useRepo} from "pinia-orm";

+ 3 - 3
components/Layout/Header/UniversalCreation/Card.vue

@@ -12,11 +12,11 @@
   <v-card
     class="col-md-6"
     color=""
-    flat
+    :flat="true"
     border="solid 1px"
     @click="onClick"
   >
-    <v-row no-gutters style="height: 100px">
+    <v-row :no-gutters="true" style="height: 100px">
       <v-col cols="3" class="flex-grow-0 flex-shrink-0 d-flex justify-center">
         <v-icon
             :icon="icon"
@@ -39,7 +39,7 @@
 </template>
 
 <script setup lang="ts">
-  import {PropType} from "@vue/runtime-core";
+  import type {PropType} from "@vue/runtime-core";
   import {MENU_LINK_TYPE} from "~/types/enum/layout";
   import {useAdminUrl} from "~/composables/utils/useAdminUrl";
   import UrlUtils from "~/services/utils/urlUtils";

+ 3 - 2
components/Layout/Header/UniversalCreation/CreateButton.vue

@@ -64,9 +64,10 @@
 </template>
 
 <script setup lang="ts">
-  import {Ref, ref} from "@vue/reactivity";
+  import {ref} from "@vue/reactivity";
+  import type {Ref} from "@vue/reactivity";
   import {useDisplay} from "vuetify";
-  import {ComputedRef} from "vue";
+  import type {ComputedRef} from "vue";
   import {usePageStore} from "~/stores/page";
 
   const { mdAndDown: asIcon } = useDisplay()

+ 3 - 2
components/Layout/Header/UniversalCreation/EventParams.vue

@@ -52,9 +52,10 @@ Event parameters page in the create dialog
 </template>
 
 <script setup lang="ts">
-  import {ref, Ref} from "@vue/reactivity";
+  import {ref} from "@vue/reactivity";
+  import type {Ref} from "@vue/reactivity";
   import {add, format, startOfHour, formatISO} from "date-fns";
-  import {ComputedRef} from "vue";
+  import type {ComputedRef} from "vue";
   import DateUtils, {supportedLocales} from "~/services/utils/dateUtils";
 
   const i18n = useI18n()

+ 2 - 3
components/Layout/Header/UniversalCreation/GenerateCardsSteps.vue

@@ -280,11 +280,10 @@
 </template>
 
 <script setup lang="ts">
-  import {Ref, ref} from "@vue/reactivity";
+  import type {Ref} from "@vue/reactivity";
   import {useOrganizationProfileStore} from "~/stores/organizationProfile";
   import {useAbility} from "@casl/vue";
-  import {ComputedRef} from "vue";
-  import {useAdminUrl} from "~/composables/utils/useAdminUrl";
+  import type {ComputedRef} from "vue";
   import UrlUtils from "~/services/utils/urlUtils";
 
   const props = defineProps({

+ 1 - 1
components/Layout/MainMenu.vue

@@ -75,7 +75,7 @@ Prend en paramètre une liste de ItemMenu et les met en forme
 import {useMenu} from "~/composables/layout/useMenu";
 import {computed} from "@vue/reactivity";
 import { useDisplay } from 'vuetify'
-import { MenuGroup, MenuItem } from "~/types/layout";
+import type { MenuGroup, MenuItem } from "~/types/layout";
 
 const { getMenu, hasMenu, isInternalLink, setMenuState, isMenuOpened } = useMenu()
 

+ 1 - 1
components/Layout/ParametersMenu.vue

@@ -35,7 +35,7 @@
   import {useHomeUrl} from "~/composables/utils/useHomeUrl";
   import {useDisplay} from "vuetify";
   import {computed} from "@vue/reactivity";
-  import {MenuGroup, MenuItem} from "~/types/layout";
+  import type {MenuGroup, MenuItem} from "~/types/layout";
 
   const { mdAndUp } = useDisplay()
 

+ 3 - 2
components/Layout/SubHeader/Breadcrumbs.vue

@@ -5,8 +5,9 @@
 </template>
 
 <script setup lang="ts">
-import {computed, ComputedRef} from "@vue/reactivity";
-import {AnyJson} from "~/types/data";
+import {computed} from "@vue/reactivity";
+import type {ComputedRef} from "@vue/reactivity";
+import type {AnyJson} from "~/types/data";
 import {useI18n} from "vue-i18n";
 import UrlUtils from "~/services/utils/urlUtils";
 

+ 1 - 1
components/Layout/SubHeader/DataTiming.vue

@@ -31,7 +31,7 @@
 <script setup lang="ts">
 import {useFormStore} from "~/stores/form";
 import {useAccessProfileStore} from "~/stores/accessProfile";
-import {Ref} from "@vue/reactivity";
+import type {Ref} from "@vue/reactivity";
 import {useEntityManager} from "~/composables/data/useEntityManager";
 import {useDisplay, useTheme} from "vuetify";
 import Access from "~/models/Access/Access";

+ 1 - 1
components/Layout/SubHeader/DataTimingRange.vue

@@ -15,7 +15,7 @@
 </template>
 
 <script setup lang="ts">
-import {Ref} from "@vue/reactivity";
+import type {Ref} from "@vue/reactivity";
 import {useAccessProfileStore} from "~/stores/accessProfile";
 import {useFormStore} from "~/stores/form";
 import {useEntityManager} from "~/composables/data/useEntityManager";

+ 3 - 2
components/Layout/SubHeader/PersonnalizedList.vue

@@ -49,8 +49,9 @@
 <script setup lang="ts">
 import PersonalizedList from '~/models/Access/PersonalizedList'
 import {useEntityFetch} from "~/composables/data/useEntityFetch";
-import {ComputedRef, Ref, ref} from "@vue/reactivity";
-import {AnyJson} from "~/types/data";
+import {ref} from "@vue/reactivity";
+import type {ComputedRef, Ref} from "@vue/reactivity";
+import type {AnyJson} from "~/types/data";
 import ApiResource from "~/models/ApiResource";
 import UrlUtils from "~/services/utils/urlUtils";
 

+ 5 - 4
components/Layout/Subheader.vue

@@ -8,7 +8,7 @@ Contient entre autres le breadcrumb, les commandes de changement d'année et les
     <v-card
       id="subheader"
       class="d-flex theme-neutral text-body-2 px-2"
-      flat
+      :flat="true"
       rounded="0"
     >
       <LayoutSubHeaderBreadcrumbs v-if="lgAndUp" class="mr-auto d-flex" />
@@ -17,7 +17,7 @@ Contient entre autres le breadcrumb, les commandes de changement d'année et les
 
       <v-card
         class="d-flex flex-row align-center mr-6"
-        flat
+        :flat="true"
         tile
       >
         <LayoutSubHeaderActivityYear v-if="smAndUp && !showDateTimeRange" class="activity-year" />
@@ -57,11 +57,12 @@ Contient entre autres le breadcrumb, les commandes de changement d'année et les
 
 <script setup lang="ts">
     import {useAccessProfileStore} from "~/stores/accessProfile";
-    import {computed, ComputedRef, ref, Ref} from "@vue/reactivity";
+    import {computed, ref} from "@vue/reactivity";
+    import type {ComputedRef, Ref} from "@vue/reactivity";
     import {useMenu} from "~/composables/layout/useMenu";
     import {useDisplay} from "vuetify";
 
-    const { smAndUp, mdAndUp, lgAndUp } = useDisplay()
+    const { smAndUp, lgAndUp } = useDisplay()
     const accessProfile = useAccessProfileStore()
     const { hasMenu } = useMenu()
     const btn: Ref = ref(null)

+ 1 - 1
components/Layout/ThemeSwitcher.vue

@@ -2,7 +2,7 @@
   <v-switch
       v-model="theme.global.name.value"
       density="compact"
-      inline
+      :inline="true"
       false-value="light"
       false-icon="fas fa-sun"
       true-value="dark"

+ 1 - 1
components/Ui/Button/Delete.vue

@@ -32,7 +32,7 @@ Bouton Delete avec modale de confirmation de la suppression
 
 <script setup lang="ts">
 import {TYPE_ALERT} from '~/types/enum/enums'
-import {Ref} from "@vue/reactivity";
+import type {Ref} from "@vue/reactivity";
 import {useEntityManager} from "~/composables/data/useEntityManager";
 import ApiResource from "~/models/ApiResource";
 import {usePageStore} from "~/stores/page";

+ 2 - 1
components/Ui/Button/Submit.vue

@@ -44,7 +44,8 @@
 </template>
 
 <script setup lang="ts">
-import {computed, ComputedRef, ref, Ref} from "@vue/reactivity";
+import {computed, ref} from "@vue/reactivity";
+import type {ComputedRef, Ref} from "@vue/reactivity";
 
 const props = defineProps({
   actions: {

+ 3 - 2
components/Ui/Collection.vue

@@ -22,9 +22,10 @@
 
 <script setup lang="ts">
 
-import {computed, ComputedRef, toRefs, ToRefs} from "@vue/reactivity";
+import {computed, toRefs} from "@vue/reactivity";
+import type {ComputedRef, ToRefs} from "@vue/reactivity";
 import {useEntityFetch} from "~/composables/data/useEntityFetch";
-import {Collection} from "~/types/data";
+import type {Collection} from "~/types/data";
 
 const props = defineProps({
   model: {

+ 3 - 2
components/Ui/DataTable.vue

@@ -43,10 +43,11 @@ Tableau interactif conçu pour l'affichage d'une collection d'entités
 
 <script setup lang="ts">
 
-import {ref, Ref, toRefs} from "@vue/reactivity";
+import {ref, toRefs} from "@vue/reactivity";
+import type {Ref} from "@vue/reactivity";
 import {useEntityFetch} from "~/composables/data/useEntityFetch";
 import ApiResource from "~/models/ApiResource";
-import {AnyJson} from "~/types/data";
+import type {AnyJson} from "~/types/data";
 
 const props = defineProps({
   parent: {

+ 1 - 1
components/Ui/DatePicker.vue

@@ -26,7 +26,7 @@ Sélecteur de dates
 
 <script setup lang="ts">
 import DateUtils, {supportedLocales} from "~/services/utils/dateUtils";
-import {PropType} from "@vue/runtime-core";
+import type {PropType} from "@vue/runtime-core";
 
 const i18n = useI18n()
 

+ 1 - 1
components/Ui/DateRangePicker.vue

@@ -25,7 +25,7 @@
 
 <script setup lang="ts">
 import DateUtils, {supportedLocales} from "~/services/utils/dateUtils";
-import {PropType} from "@vue/runtime-core";
+import type {PropType} from "@vue/runtime-core";
 
 const props = defineProps({
   modelValue: {

+ 6 - 4
components/Ui/Form.vue

@@ -89,15 +89,17 @@ de quitter si des données ont été modifiées.
 </template>
 
 <script setup lang="ts">
-import {computed, ComputedRef, ref, Ref} from "@vue/reactivity";
+import {computed, ref} from "@vue/reactivity";
+import type {ComputedRef, Ref} from "@vue/reactivity";
 import {FORM_FUNCTION, SUBMIT_TYPE, TYPE_ALERT} from "~/types/enum/enums";
 import { useFormStore } from "~/stores/form";
-import {Route, RouteLocationRaw} from "@intlify/vue-router-bridge";
+import type {Route, RouteLocationRaw} from "@intlify/vue-router-bridge";
 import {useEntityManager} from "~/composables/data/useEntityManager";
 import ApiModel from "~/models/ApiModel";
 import {usePageStore} from "~/stores/page";
-import {PropType, watch} from "@vue/runtime-core";
-import {AnyJson} from "~/types/data";
+import {watch} from "@vue/runtime-core";
+import type {PropType} from "@vue/runtime-core";
+import type {AnyJson} from "~/types/data";
 import * as _ from 'lodash-es'
 import {useRefreshProfile} from "~/composables/data/useRefreshProfile";
 

+ 3 - 3
components/Ui/Form/Creation.vue

@@ -16,10 +16,10 @@
 
 <script setup lang="ts">
 
-import {PropType} from "@vue/runtime-core";
-import {RouteLocationRaw} from "@intlify/vue-router-bridge";
+import type {PropType} from "@vue/runtime-core";
+import type {RouteLocationRaw} from "@intlify/vue-router-bridge";
 import ApiModel from "~/models/ApiModel";
-import {AnyJson} from "~/types/data";
+import type {AnyJson} from "~/types/data";
 import {SUBMIT_TYPE} from "~/types/enum/enums";
 import {useEntityManager} from "~/composables/data/useEntityManager";
 

+ 3 - 6
components/Ui/Form/Edition.vue

@@ -18,15 +18,12 @@
 
 <script setup lang="ts">
 
-import {PropType} from "@vue/runtime-core";
-import {RouteLocationRaw} from "@intlify/vue-router-bridge";
+import type {PropType} from "@vue/runtime-core";
+import type {RouteLocationRaw} from "@intlify/vue-router-bridge";
 import ApiModel from "~/models/ApiModel";
-import {AnyJson} from "~/types/data";
+import type {AnyJson} from "~/types/data";
 import {SUBMIT_TYPE} from "~/types/enum/enums";
-import {useEntityManager} from "~/composables/data/useEntityManager";
-import {ref} from "vue/dist/vue";
 import {useRoute} from "vue-router";
-import ResidenceArea from "~/models/Billing/ResidenceArea";
 import {useEntityFetch} from "~/composables/data/useEntityFetch";
 
 const props = defineProps({

+ 1 - 1
components/Ui/Help.vue

@@ -29,7 +29,7 @@
 </template>
 
 <script setup lang="ts">
-import {Ref} from "@vue/reactivity";
+import type {Ref} from "@vue/reactivity";
 
 const props = defineProps({
   left: {

+ 4 - 2
components/Ui/Image.vue

@@ -48,9 +48,11 @@ Si la propriété 'upload' est à 'true', propose aussi un input pour uploader u
 
 
 <script setup lang="ts">
-import {ref, Ref} from "@vue/reactivity";
+import {ref} from "@vue/reactivity";
+import type {Ref} from "@vue/reactivity";
 import {useImageFetch} from "~/composables/data/useImageFetch";
-import {onUnmounted, watch, WatchStopHandle} from "@vue/runtime-core";
+import {onUnmounted, watch} from "@vue/runtime-core";
+import type {WatchStopHandle} from "@vue/runtime-core";
 import {useImageManager} from "~/composables/data/useImageManager";
 import ImageManager from "~/services/data/imageManager";
 

+ 4 - 3
components/Ui/Input/Autocomplete.vue

@@ -39,11 +39,12 @@ Liste déroulante avec autocompletion, à placer dans un composant `UiForm`
 </template>
 
 <script setup lang="ts">
-import {computed, ComputedRef, Ref} from "@vue/reactivity";
+import {computed} from "@vue/reactivity";
+import type {ComputedRef, Ref} from "@vue/reactivity";
 import {useFieldViolation} from "~/composables/form/useFieldViolation";
 import ObjectUtils from "~/services/utils/objectUtils";
-import {AnyJson} from "~/types/data";
-import {PropType} from "@vue/runtime-core";
+import type {AnyJson} from "~/types/data";
+import type {PropType} from "@vue/runtime-core";
 
 const props = defineProps({
   /**

+ 4 - 3
components/Ui/Input/Autocomplete/Accesses.vue

@@ -27,9 +27,10 @@ Champs autocomplete dédié à la recherche des access d'une structure
 </template>
 
 <script setup lang="ts">
-import {PropType} from "@vue/runtime-core";
-import {computed, ComputedRef, Ref} from "@vue/reactivity";
-import {AnyJson, AssociativeArray} from "~/types/data";
+import type {PropType} from "@vue/runtime-core";
+import {computed} from "@vue/reactivity";
+import type {ComputedRef, Ref} from "@vue/reactivity";
+import type {AnyJson, AssociativeArray} from "~/types/data";
 import {useEntityFetch} from "~/composables/data/useEntityFetch";
 import Access from "~/models/Access/Access";
 import {useEntityManager} from "~/composables/data/useEntityManager";

+ 2 - 1
components/Ui/Input/AutocompleteWithAPI.vue

@@ -28,7 +28,8 @@ d'une api)
 
 <script setup lang="ts">
 
-import {Ref, ref, toRefs} from "@vue/reactivity";
+import {ref, toRefs} from "@vue/reactivity";
+import type {Ref} from "@vue/reactivity";
 import UrlUtils from "~/services/utils/urlUtils";
 import {useFetch} from "#app";
 import {watch} from "@vue/runtime-core";

+ 4 - 3
components/Ui/Input/AutocompleteWithAp2i.vue

@@ -23,12 +23,13 @@ Liste déroulante avec autocompletion issue de Ap2i
 
 <script setup lang="ts">
 
-import {computed, ComputedRef, Ref} from "@vue/reactivity";
-import {PropType} from "@vue/runtime-core";
+import {computed} from "@vue/reactivity";
+import type {ComputedRef, Ref} from "@vue/reactivity";
+import type {PropType} from "@vue/runtime-core";
 import {useEntityFetch} from "~/composables/data/useEntityFetch";
 import ApiResource from "~/models/ApiResource";
 import ApiModel from "~/models/ApiModel";
-import {AnyJson, AssociativeArray, Collection} from "~/types/data";
+import type {AnyJson, AssociativeArray} from "~/types/data";
 
 const props = defineProps({
   /**

+ 3 - 3
components/Ui/Input/AutocompleteWithEnum.vue

@@ -18,9 +18,9 @@
 
 import {useEnumFetch} from "~/composables/data/useEnumFetch";
 import ArrayUtils from "~/services/utils/arrayUtils";
-import {ComputedRef} from "@vue/reactivity";
-import {Enum} from "~/types/data";
-import {PropType} from "@vue/runtime-core";
+import type {ComputedRef} from "@vue/reactivity";
+import type {Enum} from "~/types/data";
+import type {PropType} from "@vue/runtime-core";
 
 const props = defineProps({
   modelValue: {

+ 1 - 1
components/Ui/Input/DatePicker.vue

@@ -25,7 +25,7 @@ Sélecteur de dates, à placer dans un composant `UiForm`
 <script setup lang="ts">
 import {useFieldViolation} from "~/composables/form/useFieldViolation";
 import {formatISO} from "date-fns";
-import {PropType} from "@vue/runtime-core";
+import type {PropType} from "@vue/runtime-core";
 
 const props = defineProps({
   /**

+ 5 - 3
components/Ui/Input/Image.vue

@@ -60,14 +60,16 @@ https://norserium.github.io/vue-advanced-cropper/
 <script setup lang="ts">
 
 import {useNuxtApp} from "#app";
-import {ref, Ref} from "@vue/reactivity";
+import {ref} from "@vue/reactivity";
+import type {Ref} from "@vue/reactivity";
 import File from '~/models/Core/File'
 import {useAp2iRequestService} from "~/composables/data/useAp2iRequestService";
 import UrlUtils from "~/services/utils/urlUtils";
 import {useImageFetch} from "~/composables/data/useImageFetch";
-import {onUnmounted, watch, WatchStopHandle} from "@vue/runtime-core";
+import {onUnmounted, watch} from "@vue/runtime-core";
+import type {WatchStopHandle} from "@vue/runtime-core";
 import {useEntityManager} from "~/composables/data/useEntityManager";
-import {AnyJson} from "~/types/data";
+import type {AnyJson} from "~/types/data";
 
 const props = defineProps({
   imageId: {

+ 1 - 1
components/Ui/Input/Number.vue

@@ -17,7 +17,7 @@ An input for numeric values
 
 <script setup lang="ts">
 
-import {PropType} from "@vue/runtime-core";
+import type {PropType} from "@vue/runtime-core";
 
 type Density = null | 'default' | 'comfortable' | 'compact';
 

+ 1 - 1
components/Ui/Input/Phone.vue

@@ -29,7 +29,7 @@ Champs de saisie d'un numéro de téléphone
 
 import {useNuxtApp} from "#app";
 import {useFieldViolation} from "~/composables/form/useFieldViolation";
-import {Ref} from "@vue/reactivity";
+import type {Ref} from "@vue/reactivity";
 
 const props = defineProps({
   label: {

+ 5 - 11
components/Ui/Input/Text.vue

@@ -25,12 +25,9 @@ Champs de saisie de texte, à placer dans un composant `UiForm`
 </template>
 
 <script setup lang="ts">
-import {ref} from "@vue/reactivity";
+import {type Ref, ref} from "@vue/reactivity";
 import {useFieldViolation} from "~/composables/form/useFieldViolation";
-import {useNuxtApp} from "#app";
-import {useI18n} from "vue-i18n";
-import {mask} from "vue-the-mask";
-import {PropType} from "@vue/runtime-core";
+import type {PropType} from "@vue/runtime-core";
 
 const props = defineProps({
   /**
@@ -82,7 +79,7 @@ const props = defineProps({
    * @see https://vuetify.cn/en/components/forms/#validation-with-submit-clear
    */
   rules: {
-    type: Array,
+    type: Array as PropType<any>,
     required: false,
     default: () => []
   },
@@ -115,18 +112,15 @@ const props = defineProps({
    * @see https://vuetifyjs.com/en/api/v-autocomplete/#props-variant
    */
   variant: {
-    type: String,
+    type: String as PropType<"filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled" | undefined>,
     required: false,
     default: 'filled'
   }
 })
 
-const { app } = useNuxtApp()
-const i18n = useI18n()
-
 const { fieldViolations, updateViolationState } = useFieldViolation(props.field)
 
-const show = ref(false)
+const show: Ref<boolean> = ref(false)
 
 const emit = defineEmits(['update:model-value', 'change'])
 

+ 2 - 3
components/Ui/ItemFromUri.vue

@@ -20,9 +20,8 @@ Espace permettant de récupérer un item via une uri et de gérer son affichage
 import {Query} from "pinia-orm";
 import UrlUtils from "~/services/utils/urlUtils";
 import {useEntityFetch} from "~/composables/data/useEntityFetch";
-import {object} from "@ucast/core";
-import {computed, ComputedRef} from "@vue/reactivity";
-import {schema} from "@pinia-orm/normalizr";
+import {computed} from "@vue/reactivity";
+import type {ComputedRef} from "@vue/reactivity";
 import ApiResource from "~/models/ApiResource";
 
 const props = defineProps({

+ 2 - 1
components/Ui/Template/Date.vue

@@ -8,7 +8,8 @@ Date formatée
 
 <script setup lang="ts">
 import DateUtils from "~/services/utils/dateUtils";
-import {computed, ComputedRef} from "@vue/reactivity";
+import {computed} from "@vue/reactivity";
+import type {ComputedRef} from "@vue/reactivity";
 
 const props = defineProps({
   data: {

+ 2 - 1
components/Ui/Xeditable/Text.vue

@@ -38,7 +38,8 @@ Utilisé par exemple pour le choix de l'année active
 </template>
 
 <script setup lang="ts">
-import {ref, Ref} from "@vue/reactivity";
+import {ref} from "@vue/reactivity";
+import type {Ref} from "@vue/reactivity";
 
   const props = defineProps({
     type: {

+ 3 - 3
composables/data/useAp2iRequestService.ts

@@ -1,11 +1,11 @@
 import {TYPE_ALERT} from "~/types/enum/enums";
 import ApiRequestService from "~/services/data/apiRequestService";
-import {Ref} from "@vue/reactivity";
+import type {Ref} from "@vue/reactivity";
 import {usePageStore} from "~/stores/page";
 import UnauthorizedError from "~/services/error/UnauthorizedError";
 import {useAccessProfileStore} from "~/stores/accessProfile";
-import {AssociativeArray} from "~/types/data";
-import {FetchContext, FetchOptions} from "ofetch";
+import type {AssociativeArray} from "~/types/data";
+import type {FetchContext, FetchOptions} from "ofetch";
 
 /**
  * Retourne une instance de ApiRequestService configurée pour interroger l'api Ap2i

+ 3 - 3
composables/data/useEntityFetch.ts

@@ -1,8 +1,8 @@
 import {useEntityManager} from "~/composables/data/useEntityManager";
 import ApiResource from "~/models/ApiResource";
-import {AssociativeArray, Collection} from "~/types/data";
-import {AsyncData} from "#app";
-import {ComputedRef, Ref} from "vue";
+import type {AssociativeArray, Collection} from "~/types/data";
+import type {AsyncData} from "#app";
+import type {ComputedRef, Ref} from "vue";
 import {v4 as uuid4} from "uuid";
 
 interface useEntityFetchReturnType {

+ 2 - 2
composables/data/useEnumFetch.ts

@@ -1,6 +1,6 @@
 import {useEnumManager} from "~/composables/data/useEnumManager";
-import {Enum} from "~/types/data";
-import {AsyncData} from "#app";
+import type {Enum} from "~/types/data";
+import type {AsyncData} from "#app";
 
 interface useEnumFetchReturnType {
     fetch: (enumName: string) => AsyncData<Enum, null | true | Error>,

+ 1 - 1
composables/data/useImageFetch.ts

@@ -1,5 +1,5 @@
 import {useImageManager} from "~/composables/data/useImageManager";
-import {FetchResult} from "#app";
+import type {FetchResult} from "#app";
 
 interface useImageFetchReturnType {
     fetch: (id: number | null, defaultImage?: string | null, height?: number, width?: number) => FetchResult<any, any>

+ 3 - 3
composables/data/useRefreshProfile.ts

@@ -32,13 +32,13 @@ export const useRefreshProfile = () => {
             id: accessId,
             switchId: switchId
         })
-
+        console.log('toto!')
         const profile = await fetchProfile(accessId)
-
+        console.log(profile)
         // Sans le flush, on observe un bug non-expliqué au rechargement de la page en mode dev : la fonction save
         //  du repo de MyProfile ne fonctionne pas quand le plugin init.server.ts re-fetch le profil
         em.flush(MyProfile)
-
+        console.log('tototo!')
         accessProfileStore.initiateProfile(profile)
         organizationProfileStore.initiateProfile(profile.organization)
     }

+ 2 - 1
composables/form/useFieldViolation.ts

@@ -1,4 +1,5 @@
-import {computed, ComputedRef} from "@vue/reactivity";
+import {computed} from "@vue/reactivity";
+import type {ComputedRef} from "@vue/reactivity";
 import {useFormStore} from "~/stores/form";
 import * as _ from 'lodash-es'
 

+ 1 - 1
composables/form/useValidation.ts

@@ -1,7 +1,7 @@
 import  {useI18n} from 'vue-i18n'
 import {useAp2iRequestService} from "~/composables/data/useAp2iRequestService";
 import UrlUtils from "~/services/utils/urlUtils";
-import {Ref} from "@vue/reactivity";
+import type {Ref} from "@vue/reactivity";
 
 /**
  * @category composables/form

+ 1 - 1
composables/layout/useExtensionPanel.ts

@@ -1,4 +1,4 @@
-import {Ref} from "@vue/reactivity";
+import type {Ref} from "@vue/reactivity";
 import * as _ from 'lodash-es'
 
 /**

+ 2 - 2
composables/layout/useMenu.ts

@@ -1,9 +1,9 @@
 import {useAccessProfileStore} from "~/stores/accessProfile";
 import {useAbility} from "@casl/vue";
 import {useOrganizationProfileStore} from "~/stores/organizationProfile";
-import {MenuGroup, MenuItem} from "~/types/layout";
+import type {MenuGroup, MenuItem} from "~/types/layout";
 import {MENU_LINK_TYPE} from "~/types/enum/layout";
-import {AccessProfile} from "~/types/interfaces";
+import type {AccessProfile} from "~/types/interfaces";
 import {useLayoutStore} from "~/stores/layout";
 import MenuComposer from "~/services/layout/menuComposer";
 

+ 0 - 1
composables/utils/useHomeUrl.ts

@@ -1,4 +1,3 @@
-import UrlUtils from "~/services/utils/urlUtils";
 import {useAdminUrl} from "~/composables/utils/useAdminUrl";
 
 export const useHomeUrl = () => {

+ 1 - 1
models/Access/Access.ts

@@ -1,4 +1,4 @@
-import { Historical } from '~/types/interfaces'
+import type { Historical } from '~/types/interfaces'
 import Person from "~/models/Person/Person";
 import ApiModel from "~/models/ApiModel";
 import {HasOne, Num, Uid, Attr} from "pinia-orm/dist/decorators";

+ 1 - 1
models/Access/MyProfile.ts

@@ -1,5 +1,5 @@
 import {Num, Uid, Attr, Bool, Str} from 'pinia-orm/dist/decorators'
-import { Historical } from '~/types/interfaces'
+import type { Historical } from '~/types/interfaces'
 import Access from "~/models/Access/Access";
 import OrganizationProfile from "~/models/Organization/OrganizationProfile";
 import ApiResource from "~/models/ApiResource";

+ 1 - 1
nuxt.config.ts

@@ -153,6 +153,6 @@ export default defineNuxtConfig({
         provider: 'none'
     },
     build: {
-        transpile: ['vuetify', '@vuepic/vue-datepicker', 'pinia', 'pinia-orm', 'date-fns', 'lodash'],
+        transpile: ['vuetify', '@vuepic/vue-datepicker', 'pinia', 'pinia-orm', 'date-fns'],
     }
 })

+ 43 - 43
package.json

@@ -19,32 +19,28 @@
     "nuxt-upgrade": "nuxi upgrade --force"
   },
   "dependencies": {
-    "@casl/ability": "^6.3.3",
+    "@casl/ability": "^6.5.0",
     "@casl/vue": "2.2.1",
-    "@fortawesome/fontawesome-free": "^6.3.0",
-    "@mdi/font": "^7.0.96",
-    "@nuxt/image": "rc",
-    "@nuxtjs/i18n": "^8.0.0-beta.12",
-    "@pinia-orm/nuxt": "^1.6.7",
-    "@pinia/nuxt": "0.4.11",
-    "@types/file-saver": "^2.0.5",
-    "@types/js-yaml": "^4.0.5",
-    "@types/vue-the-mask": "^0.11.1",
-    "@vitest/coverage-v8": "^0.32.4",
-    "@vuepic/vue-datepicker": "^5.3.0",
+    "@fortawesome/fontawesome-free": "^6.5.1",
+    "@mdi/font": "^7.3.67",
+    "@nuxt/image": "1.1.0",
+    "@nuxtjs/i18n": "^8.0.0-rc.8",
+    "@pinia-orm/nuxt": "^1.7.0",
+    "@pinia/nuxt": "0.5.1",
+    "@vuepic/vue-datepicker": "^7.4.0",
     "cleave.js": "^1.6.0",
-    "date-fns": "^2.29.3",
+    "date-fns": "^2.30.0",
     "event-source-polyfill": "^1.0.31",
     "file-saver": "^2.0.5",
     "js-yaml": "^4.1.0",
-    "libphonenumber-js": "1.10.36",
+    "libphonenumber-js": "1.10.51",
     "lodash": "^4.17.21",
     "lodash-es": "^4.17.21",
-    "nuxt": "^3.5.3",
-    "pinia": "^2.1.4",
-    "pinia-orm": "^1.6.7",
-    "sass": "^1.59.3",
-    "uuid": "^9.0.0",
+    "nuxt": "^3.8.2",
+    "pinia": "^2.1.7",
+    "pinia-orm": "^1.7.0",
+    "sass": "^1.69.5",
+    "uuid": "^9.0.1",
     "vite-plugin-vuetify": "^1.0.2",
     "vue-tel-input-vuetify": "^1.5.3",
     "vue-the-mask": "^0.11.1",
@@ -52,34 +48,38 @@
     "yaml-import": "^2.0.0"
   },
   "devDependencies": {
-    "@nuxt/devtools": "^0.6.2",
-    "@nuxt/test-utils": "^3.3.1",
-    "@nuxt/test-utils-edge": "3.6.0-28122147.c3c56c14",
+    "@nuxt/devtools": "^1.0.5",
+    "@nuxt/test-utils": "^3.8.1",
+    "@nuxt/test-utils-edge": "3.8.0-28284309.b3d3d7f4",
     "@nuxtjs/eslint-config": "^12.0.0",
-    "@nuxtjs/eslint-config-typescript": "^12.0.0",
-    "@nuxtjs/eslint-module": "^4.0.2",
-    "@types/cleave.js": "^1.4.7",
-    "@types/event-source-polyfill": "^1.0.1",
-    "@types/jest": "^29.4.2",
-    "@types/lodash": "^4.14.189",
-    "@types/lodash-es": "^4.17.7",
-    "@types/uuid": "^9.0.0",
-    "@typescript-eslint/eslint-plugin": "^5.55.0",
-    "@typescript-eslint/parser": "^5.55.0",
-    "@vitejs/plugin-vue": "^4.0.0",
+    "@nuxtjs/eslint-config-typescript": "^12.1.0",
+    "@nuxtjs/eslint-module": "^4.1.0",
+    "@types/cleave.js": "^1.4.12",
+    "@types/event-source-polyfill": "^1.0.5",
+    "@types/jest": "^29.5.11",
+    "@types/lodash": "^4.14.202",
+    "@types/lodash-es": "^4.17.12",
+    "@types/uuid": "^9.0.7",
+    "@types/file-saver": "^2.0.7",
+    "@types/js-yaml": "^4.0.9",
+    "@types/vue-the-mask": "^0.11.1",
+    "@typescript-eslint/eslint-plugin": "^6.13.2",
+    "@typescript-eslint/parser": "^6.13.2",
+    "@vitejs/plugin-vue": "^4.5.2",
+    "@vitest/coverage-v8": "^1.0.2",
     "@vue/eslint-config-standard": "^8.0.1",
-    "@vue/test-utils": "^2.3.1",
+    "@vue/test-utils": "^2.4.3",
     "blob-polyfill": "^7.0.20220408",
-    "eslint": "^8.36.0",
-    "eslint-config-prettier": "^8.7.0",
+    "eslint": "^8.55.0",
+    "eslint-config-prettier": "^9.1.0",
     "eslint-plugin-nuxt": "^4.0.0",
-    "eslint-plugin-prettier": "^4.2.1",
-    "eslint-plugin-vue": "^9.7.0",
-    "jsdom": "^22.1.0",
-    "prettier": "^2.8.4",
-    "ts-jest": "^29.0.3",
-    "typescript": "^5.2",
-    "vitest": "0.32.2",
+    "eslint-plugin-prettier": "^5.0.1",
+    "eslint-plugin-vue": "^9.19.2",
+    "jsdom": "^23.0.1",
+    "prettier": "^3.1.0",
+    "ts-jest": "^29.1.1",
+    "typescript": "^5.3.3",
+    "vitest": "1.0.2",
     "vue-jest": "^3.0.7"
   }
 }

+ 1 - 2
pages/cmf_licence/organization.vue

@@ -37,13 +37,12 @@
 
 <script setup lang="ts">
 import File from "~/models/Core/File"
-import {ComputedRef, Ref} from "vue";
+import type {ComputedRef, Ref} from "vue";
 import {useEntityFetch} from "~/composables/data/useEntityFetch";
 import {useSseStore} from "~/stores/sse";
 import {useEntityManager} from "~/composables/data/useEntityManager";
 import LicenceCmfOrganizationER from "~/models/Export/LicenceCmfOrganizationER";
 import {useDownloadFile} from "~/composables/utils/useDownloadFile";
-import {useRepo} from "pinia-orm";
 
 const { em } = useEntityManager()
 const { getRef } = useEntityFetch()

+ 2 - 1
pages/organization/index.vue

@@ -447,7 +447,8 @@ Contient toutes les informations sur l'organization courante
 
 import {useEntityFetch} from "~/composables/data/useEntityFetch";
 import TypeOfPractice from "~/models/Organization/TypeOfPractice";
-import {computed, ComputedRef, reactive, ref} from "@vue/reactivity";
+import {computed, reactive, ref} from "@vue/reactivity";
+import type {ComputedRef} from "@vue/reactivity";
 import {useExtensionPanel} from "~/composables/layout/useExtensionPanel";
 import {useRoute} from "#app";
 import { useValidation } from "~/composables/form/useValidation";

+ 1 - 1
pages/parameters/attendances.vue

@@ -33,7 +33,7 @@
 import Parameters from '~/models/Organization/Parameters'
 import { useEntityFetch } from '~/composables/data/useEntityFetch'
 import { useOrganizationProfileStore } from '~/stores/organizationProfile'
-import { AsyncData } from '#app'
+import type { AsyncData } from '#app'
 
 
 const { fetch } = useEntityFetch()

+ 1 - 1
pages/parameters/bulletin.vue

@@ -71,7 +71,7 @@
 import Parameters from "~/models/Organization/Parameters";
 import {useEntityFetch} from "~/composables/data/useEntityFetch";
 import {useOrganizationProfileStore} from "~/stores/organizationProfile";
-import {AsyncData} from "#app";
+import type {AsyncData} from "#app";
 
 const { fetch } = useEntityFetch()
 

+ 0 - 1
pages/parameters/cycles/[id].vue

@@ -18,7 +18,6 @@
   </LayoutContainer>
 </template>
 <script setup lang="ts">
-import {RouteLocationPathRaw} from 'vue-router'
 import { useI18n } from 'vue-i18n'
 import Cycle from "~/models/Education/Cycle";
 

+ 1 - 1
pages/parameters/education_notation.vue

@@ -62,7 +62,7 @@
 import Parameters from "~/models/Organization/Parameters";
 import {useEntityFetch} from "~/composables/data/useEntityFetch";
 import {useOrganizationProfileStore} from "~/stores/organizationProfile";
-import {AsyncData} from "#app";
+import type {AsyncData} from "#app";
 
 const i18n = useI18n()
 const { fetch } = useEntityFetch()

+ 1 - 1
pages/parameters/education_timings.vue

@@ -53,7 +53,7 @@ import { useEntityFetch } from '~/composables/data/useEntityFetch'
 import EducationTiming from '~/models/Education/EducationTiming'
 import { useRepo } from 'pinia-orm'
 import EducationTimingsRepository from '~/stores/repositories/EducationTimingsRepository'
-import {ComputedRef} from "vue";
+import type {ComputedRef} from "vue";
 import {useOrganizationProfileStore} from "~/stores/organizationProfile";
 import UrlUtils from "~/services/utils/urlUtils";
 

+ 1 - 1
pages/parameters/education_timings/[id].vue

@@ -19,7 +19,7 @@
 </template>
 <script setup lang="ts">
 import EducationTiming from '~/models/Education/EducationTiming'
-import {RouteLocationPathRaw} from 'vue-router'
+import type {RouteLocationPathRaw} from 'vue-router'
 import { useI18n } from 'vue-i18n'
 
 const i18n = useI18n()

+ 1 - 1
pages/parameters/general_parameters.vue

@@ -81,7 +81,7 @@
 import Parameters from "~/models/Organization/Parameters";
 import {useEntityFetch} from "~/composables/data/useEntityFetch";
 import {useOrganizationProfileStore} from "~/stores/organizationProfile";
-import {AsyncData} from "#app";
+import type {AsyncData} from "#app";
 
 const { fetch } = useEntityFetch()
 

+ 1 - 1
pages/parameters/intranet.vue

@@ -54,7 +54,7 @@
   import Parameters from "~/models/Organization/Parameters";
   import {useEntityFetch} from "~/composables/data/useEntityFetch";
   import {useOrganizationProfileStore} from "~/stores/organizationProfile";
-  import {AsyncData} from "#app";
+  import type {AsyncData} from "#app";
 
   const { fetch } = useEntityFetch()
 

+ 1 - 1
pages/parameters/sms.vue

@@ -37,7 +37,7 @@
 import Parameters from '~/models/Organization/Parameters'
 import { useEntityFetch } from '~/composables/data/useEntityFetch'
 import { useOrganizationProfileStore } from '~/stores/organizationProfile'
-import { AsyncData } from '#app'
+import type { AsyncData } from '#app'
 
 const { fetch } = useEntityFetch()
 

+ 2 - 2
pages/parameters/subdomains/new.vue

@@ -54,9 +54,9 @@
 import { useEntityManager } from '~/composables/data/useEntityManager'
 import Subdomain from '~/models/Organization/Subdomain'
 import { SUBMIT_TYPE } from '~/types/enum/enums'
-import { AnyJson } from '~/types/data'
+import type { AnyJson } from '~/types/data'
 import SubdomainValidation from '~/services/validation/subdomainValidation'
-import { Ref } from '@vue/reactivity'
+import type { Ref } from '@vue/reactivity'
 import { useSubdomainValidation } from '~/composables/form/validation/useSubdomainValidation'
 import _ from 'lodash'
 

+ 2 - 2
pages/parameters/teaching.vue

@@ -47,9 +47,9 @@
 import Parameters from "~/models/Organization/Parameters";
 import {useEntityFetch} from "~/composables/data/useEntityFetch";
 import Cycle from "~/models/Education/Cycle";
-import {AsyncData} from "#app";
+import type {AsyncData} from "#app";
 import {useOrganizationProfileStore} from "~/stores/organizationProfile";
-import {AnyJson} from "~/types/data";
+import type {AnyJson} from "~/types/data";
 import {useEnumFetch} from "~/composables/data/useEnumFetch";
 
 const organizationProfile = useOrganizationProfileStore()

+ 1 - 2
pages/parameters/website.vue

@@ -123,7 +123,6 @@
               </template>
             </LazyLayoutDialog>
           </div>
-
         </v-col>
       </v-row>
     </UiForm>
@@ -134,7 +133,7 @@
 import {useOrganizationProfileStore} from "~/stores/organizationProfile";
 import Parameters from "~/models/Organization/Parameters";
 import {useEntityFetch} from "~/composables/data/useEntityFetch";
-import {AsyncData} from "#app";
+import type {AsyncData} from "#app";
 import Subdomain from "~/models/Organization/Subdomain";
 
 const i18n = useI18n()

+ 2 - 1
pages/poc/[id].vue

@@ -31,7 +31,8 @@
 
 <script setup lang="ts">
 import {useEntityManager} from "~/composables/data/useEntityManager";
-import {ref, Ref} from "@vue/reactivity";
+import {ref} from "@vue/reactivity";
+import type {Ref} from "@vue/reactivity";
 import File from "~/models/Core/File";
 import {useEntityFetch} from "~/composables/data/useEntityFetch";
 import {useI18n} from "vue-i18n";

+ 2 - 1
pages/poc/index.vue

@@ -28,7 +28,8 @@
 
 <script setup lang="ts">
   import {useEntityManager} from "~/composables/data/useEntityManager";
-  import {computed, ComputedRef, ref, Ref} from "@vue/reactivity";
+  import {computed, ref} from "@vue/reactivity";
+  import type {ComputedRef, Ref} from "@vue/reactivity";
   import ApiResource from "~/models/ApiResource";
   import File from "~/models/Core/File";
 

+ 0 - 1
pages/poc/new.vue

@@ -20,7 +20,6 @@
 
 <script setup lang="ts">
 import {useEntityManager} from "~/composables/data/useEntityManager";
-import {ref, Ref} from "@vue/reactivity";
 import ApiResource from "~/models/ApiResource";
 import File from "~/models/Core/File";
 

+ 2 - 1
pages/poc/test.vue

@@ -18,7 +18,8 @@
 </template>
 
 <script setup lang="ts">
-  import {computed, ref, Ref} from "@vue/reactivity";
+  import type {Ref} from "@vue/reactivity";
+  import {computed, ref} from "@vue/reactivity";
   import {useAp2iRequestService} from "~/composables/data/useAp2iRequestService";
   import {useEntityFetch} from "~/composables/data/useEntityFetch";
   import Access from "~/models/Access/Access";

+ 1 - 1
pages/subscription.vue

@@ -281,7 +281,7 @@ Page 'Mon abonnement'
   import {useEntityFetch} from "~/composables/data/useEntityFetch";
   import DolibarrAccount from "~/models/Organization/DolibarrAccount";
   import MobytUserStatus from "~/models/Organization/MobytUserStatus";
-  import {Ref} from "@vue/reactivity";
+  import type {Ref} from "@vue/reactivity";
   import {useDisplay} from "vuetify";
 
   const ability = useAbility()

+ 3 - 1
plugins/init.server.ts

@@ -1,7 +1,7 @@
 import UnauthorizedError from "~/services/error/UnauthorizedError";
 import {useRedirectToLogout} from "~/composables/utils/useRedirectToLogout";
 import {useRefreshProfile} from "~/composables/data/useRefreshProfile";
-import {CookieRef} from "#app";
+import type {CookieRef} from "#app";
 
 export default defineNuxtPlugin(async () => {
     const redirectToLogout = useRedirectToLogout()
@@ -19,6 +19,8 @@ export default defineNuxtPlugin(async () => {
 
     const { initiateProfile } = useRefreshProfile()
 
+    console.log('to!')
+
     try {
         await initiateProfile(
             accessId,

+ 1 - 1
plugins/sse.client.ts

@@ -1,7 +1,7 @@
 import SseSource from "~/services/sse/sseSource";
 import {useAccessProfileStore} from "~/stores/accessProfile";
 import {useSseStore} from "~/stores/sse";
-import {AnyJson} from "~/types/data";
+import type {AnyJson} from "~/types/data";
 
 /**
  * Setup SSE EventSource, allowing the app to listen for Mercure updates

+ 3 - 3
services/data/apiRequestService.ts

@@ -3,10 +3,10 @@
  *
  * It will send basic http requests and returns raw results
  */
-import {AssociativeArray} from "~/types/data";
+import type {AssociativeArray} from "~/types/data";
 import {HTTP_METHOD} from "~/types/enum/data";
-import {FetchOptions} from "ofetch";
-import {$Fetch} from "nitropack";
+import type {FetchOptions} from "ofetch";
+import type {$Fetch} from "nitropack";
 
 class ApiRequestService {
     private readonly fetch: $Fetch

+ 1 - 1
services/data/entityManager.ts

@@ -4,7 +4,7 @@ import UrlUtils from "~/services/utils/urlUtils"
 import ApiModel from "~/models/ApiModel"
 import ApiResource from "~/models/ApiResource"
 import {v4 as uuid4} from 'uuid'
-import {AssociativeArray, Collection} from "~/types/data.d"
+import type {AssociativeArray, Collection} from "~/types/data.d"
 import models from "~/models/models";
 import * as _ from "lodash-es"
 import HydraNormalizer from "~/services/data/normalizer/hydraNormalizer";

+ 2 - 2
services/data/enumManager.ts

@@ -1,8 +1,8 @@
 import ApiRequestService from "./apiRequestService";
 import UrlUtils from "~/services/utils/urlUtils";
 import HydraNormalizer from "~/services/data/normalizer/hydraNormalizer";
-import {Enum} from "~/types/data.d";
-import {VueI18n} from "vue-i18n";
+import type {Enum} from "~/types/data.d";
+import type {VueI18n} from "vue-i18n";
 
 class EnumManager {
     private apiRequestService: ApiRequestService;

+ 1 - 1
services/data/normalizer/hydraNormalizer.ts

@@ -1,4 +1,4 @@
-import {AnyJson, ApiResponse, HydraMetadata} from '~/types/data'
+import type {AnyJson, ApiResponse, HydraMetadata} from '~/types/data'
 import UrlUtils from '~/services/utils/urlUtils'
 import {METADATA_TYPE} from '~/types/enum/data'
 import models from "~/models/models";

+ 4 - 4
services/layout/menuBuilder/abstractMenuBuilder.ts

@@ -1,9 +1,9 @@
-import {IconItem, MenuBuilder, MenuGroup, MenuItem, MenuItems} from '~/types/layout'
+import type {IconItem, MenuBuilder, MenuGroup, MenuItem, MenuItems} from '~/types/layout'
 import {MENU_LINK_TYPE} from "~/types/enum/layout";
-import {RuntimeConfig} from "@nuxt/schema";
+import type {RuntimeConfig} from "@nuxt/schema";
 import UrlUtils from "~/services/utils/urlUtils";
-import {AnyAbility} from "@casl/ability";
-import {AccessProfile, organizationState} from "~/types/interfaces";
+import type {AnyAbility} from "@casl/ability";
+import type {AccessProfile, organizationState} from "~/types/interfaces";
 
 /**
  * Classe de base des menus et sous-menus.

+ 1 - 2
services/layout/menuBuilder/accessMenuBuilder.ts

@@ -1,7 +1,6 @@
 import AbstractMenuBuilder from '~/services/layout/menuBuilder/abstractMenuBuilder'
-import {MenuGroup, MenuItem, MenuItems} from "~/types/layout";
+import type {MenuGroup, MenuItem, MenuItems} from "~/types/layout";
 import {MENU_LINK_TYPE} from "~/types/enum/layout";
-import {useOrganizationProfileStore} from "~/stores/organizationProfile";
 
 /**
  * Menu Répertoire

+ 1 - 1
services/layout/menuBuilder/accountMenuBuilder.ts

@@ -1,4 +1,4 @@
-import {MenuGroup, MenuItem, MenuItems} from '~/types/layout'
+import type {MenuGroup, MenuItem, MenuItems} from '~/types/layout'
 import {MENU_LINK_TYPE} from "~/types/enum/layout";
 import AbstractMenuBuilder from '~/services/layout/menuBuilder/abstractMenuBuilder'
 

+ 1 - 1
services/layout/menuBuilder/admin2iosMenuBuilder.ts

@@ -1,5 +1,5 @@
 import AbstractMenuBuilder from '~/services/layout/menuBuilder/abstractMenuBuilder'
-import {MenuGroup, MenuItem, MenuItems} from "~/types/layout";
+import type {MenuGroup, MenuItem, MenuItems} from "~/types/layout";
 import {MENU_LINK_TYPE} from "~/types/enum/layout";
 
 /**

+ 1 - 1
services/layout/menuBuilder/agendaMenuBuilder.ts

@@ -1,5 +1,5 @@
 import AbstractMenuBuilder from '~/services/layout/menuBuilder/abstractMenuBuilder'
-import {MenuGroup, MenuItem, MenuItems} from "~/types/layout";
+import type {MenuGroup, MenuItem, MenuItems} from "~/types/layout";
 import {MENU_LINK_TYPE} from "~/types/enum/layout";
 
 /**

+ 1 - 1
services/layout/menuBuilder/billingMenuBuilder.ts

@@ -1,5 +1,5 @@
 import AbstractMenuBuilder from '~/services/layout/menuBuilder/abstractMenuBuilder'
-import {MenuGroup, MenuItem, MenuItems} from "~/types/layout";
+import type {MenuGroup, MenuItem, MenuItems} from "~/types/layout";
 import {MENU_LINK_TYPE} from "~/types/enum/layout";
 
 /**

+ 1 - 1
services/layout/menuBuilder/communicationMenuBuilder.ts

@@ -1,5 +1,5 @@
 import AbstractMenuBuilder from '~/services/layout/menuBuilder/abstractMenuBuilder'
-import {MenuGroup, MenuItem, MenuItems} from "~/types/layout";
+import type {MenuGroup, MenuItem, MenuItems} from "~/types/layout";
 import {MENU_LINK_TYPE} from "~/types/enum/layout";
 
 /**

+ 1 - 1
services/layout/menuBuilder/configurationMenuBuilder.ts

@@ -1,5 +1,5 @@
 import AbstractMenuBuilder from '~/services/layout/menuBuilder/abstractMenuBuilder'
-import {MenuGroup, MenuItem, MenuItems} from "~/types/layout";
+import type {MenuGroup, MenuItem, MenuItems} from "~/types/layout";
 import {MENU_LINK_TYPE} from "~/types/enum/layout";
 import UrlUtils from "~/services/utils/urlUtils";
 

+ 1 - 1
services/layout/menuBuilder/cotisationsMenuBuilder.ts

@@ -1,5 +1,5 @@
 import AbstractMenuBuilder from '~/services/layout/menuBuilder/abstractMenuBuilder'
-import {MenuItems, MenuGroup, MenuItem} from "~/types/layout";
+import type {MenuItems, MenuGroup, MenuItem} from "~/types/layout";
 import {MENU_LINK_TYPE} from "~/types/enum/layout";
 
 /**

+ 1 - 1
services/layout/menuBuilder/donorsMenuBuilder.ts

@@ -1,5 +1,5 @@
 import AbstractMenuBuilder from '~/services/layout/menuBuilder/abstractMenuBuilder'
-import {MenuItem} from "~/types/layout";
+import type {MenuItem} from "~/types/layout";
 import {MENU_LINK_TYPE} from "~/types/enum/layout";
 
 /**

+ 1 - 1
services/layout/menuBuilder/educationalMenuBuilder.ts

@@ -1,5 +1,5 @@
 import AbstractMenuBuilder from '~/services/layout/menuBuilder/abstractMenuBuilder'
-import {MenuGroup, MenuItem, MenuItems} from "~/types/layout";
+import type {MenuGroup, MenuItem, MenuItems} from "~/types/layout";
 import {MENU_LINK_TYPE} from "~/types/enum/layout";
 
 /**

+ 1 - 1
services/layout/menuBuilder/equipmentMenuBuilder.ts

@@ -1,4 +1,4 @@
-import {MenuItem} from "~/types/layout";
+import type {MenuItem} from "~/types/layout";
 import {MENU_LINK_TYPE} from "~/types/enum/layout";
 import AbstractMenuBuilder from "~/services/layout/menuBuilder/abstractMenuBuilder";
 

+ 1 - 1
services/layout/menuBuilder/mainMenuBuilder.ts

@@ -1,5 +1,5 @@
 import AbstractMenuBuilder from '~/services/layout/menuBuilder/abstractMenuBuilder'
-import {MenuGroup, MenuItem, MenuItems} from "~/types/layout";
+import type {MenuGroup, MenuItem, MenuItems} from "~/types/layout";
 import AccessMenuBuilder from "~/services/layout/menuBuilder/accessMenuBuilder";
 import AgendaMenuBuilder from "~/services/layout/menuBuilder/agendaMenuBuilder";
 import EquipmentMenuBuilder from "~/services/layout/menuBuilder/equipmentMenuBuilder";

+ 1 - 1
services/layout/menuBuilder/medalsMenuBuilder.ts

@@ -1,5 +1,5 @@
 import AbstractMenuBuilder from '~/services/layout/menuBuilder/abstractMenuBuilder'
-import {MenuItem} from "~/types/layout";
+import type {MenuItem} from "~/types/layout";
 import {MENU_LINK_TYPE} from "~/types/enum/layout";
 
 /**

+ 1 - 1
services/layout/menuBuilder/myAccessesMenuBuilder.ts

@@ -1,5 +1,5 @@
 import AbstractMenuBuilder from '~/services/layout/menuBuilder/abstractMenuBuilder'
-import {MenuGroup, MenuItems} from "~/types/layout";
+import type {MenuGroup, MenuItems} from "~/types/layout";
 import {MENU_LINK_TYPE} from "~/types/enum/layout";
 import * as _ from 'lodash-es'
 

Some files were not shown because too many files changed in this diff