Maha Bouchiba 2 роки тому
батько
коміт
41f2c677f9

+ 12 - 12
.gitlab-ci.yml

@@ -1,20 +1,20 @@
 image: node:14
 
 stages:
-  - test
-  - deploy_test
+  - qa
+  # - deploy_test
 
 test:
-  stage: test
+  stage: qa
   script:
     - yarn install
-    - yarn test
+    - yarn lint 
 
-deploy_test:
-  stage: deploy_test
-  script:
-    - apt-get update -qq && apt-get install -y -qq sshpass
-    - export SSHPASS=$DEPLOY_PASS
-    - sshpass -e ssh $DEPLOY_USER@$DEPLOY_SERVER "cd /var/opentalent/git/portail_v2 && git pull && echo 'Deploy successful' "
-  only:
-    - home
+# deploy_test:
+#   stage: deploy_test
+#   script:
+#     - apt-get update -qq && apt-get install -y -qq sshpass
+#     - export SSHPASS=$DEPLOY_PASS
+#     - sshpass -e ssh $DEPLOY_USER@$DEPLOY_SERVER "cd /var/opentalent/git/portail_v2 && git pull && echo 'Deploy successful' "
+#   only:
+#     - home

+ 12 - 12
components/Home/Besoin.vue

@@ -2,8 +2,11 @@
   <LayoutContainer :overflow="false">
     <v-row class="white-container">
       <v-row>
-        <v-col  :cols="smAndDown ? 12 : 6">
-          <v-img src="/images/eventAgenda/logiciel.png" :class="smAndDown ? 'screen-img-sm' : 'screen-img'">
+        <v-col :cols="smAndDown ? 12 : 6">
+          <v-img
+            src="/images/eventAgenda/logiciel.png"
+            :class="smAndDown ? 'screen-img-sm' : 'screen-img'"
+          >
           </v-img>
         </v-col>
         <div :class="smAndDown ? 'circle-sm' : 'circle'">
@@ -11,7 +14,11 @@
           <div class="circle-text">Réponse aux besoins</div>
         </div>
         <v-col cols="6">
-          <h3 :class="smAndDown ? 'title-event-sm d-flex justify-center' : 'title-event'">
+          <h3
+            :class="
+              smAndDown ? 'title-event-sm d-flex justify-center' : 'title-event'
+            "
+          >
             Une solution évolutive pour vous donner entière satisfaction
           </h3>
 
@@ -34,7 +41,6 @@ const { lgAndUp, smAndDown, mdAndDown } = useDisplay();
 </script>
 
 <style scoped>
-
 .btn-event-sm {
   font-family: "Barlow";
   font-style: normal;
@@ -42,7 +48,6 @@ const { lgAndUp, smAndDown, mdAndDown } = useDisplay();
   padding-top: 2rem;
   padding-bottom: 2rem;
   margin-top: 3rem;
-  
 }
 .icon-arrow {
   font-size: 1rem;
@@ -100,7 +105,7 @@ const { lgAndUp, smAndDown, mdAndDown } = useDisplay();
   border-radius: 50%;
 }
 
-.circle-sm{
+.circle-sm {
   position: absolute;
   left: 25%;
   margin-top: 15rem;
@@ -129,7 +134,6 @@ const { lgAndUp, smAndDown, mdAndDown } = useDisplay();
   margin-top: 2rem;
 }
 
-
 .title-event {
   font-family: "Barlow";
   font-style: normal;
@@ -156,7 +160,6 @@ const { lgAndUp, smAndDown, mdAndDown } = useDisplay();
   text-align: center;
 }
 
-
 .details {
   font-weight: 400;
   font-size: 1rem;
@@ -169,7 +172,6 @@ const { lgAndUp, smAndDown, mdAndDown } = useDisplay();
   font-style: normal;
 }
 
-
 .details-sm {
   font-weight: 400;
   font-size: 1rem;
@@ -182,8 +184,6 @@ const { lgAndUp, smAndDown, mdAndDown } = useDisplay();
   text-align: center;
 }
 
-
-
 .container-sm {
   margin-bottom: 60rem;
 }
@@ -199,7 +199,7 @@ const { lgAndUp, smAndDown, mdAndDown } = useDisplay();
   border-radius: 20%;
 }
 
-.screen-img-sm{
+.screen-img-sm {
   width: 90%;
   margin-right: auto;
   margin-left: auto;

+ 31 - 21
components/Home/Caroussel.vue

@@ -1,27 +1,35 @@
 <template>
-  <LayoutContainer :overflow="false">
+  <LayoutContainer>
+    <h1 v-if="smAndDown" class="title-page">
+      Une <span class="color-solution">solution</span> adapatée à chaque
+      structure culturelle
+    </h1>
 
-    <div v-if="smAndDown">
-      <h1 class="title-page">Une <span class="color-solution">solution</span>  adapatée à chaque structure culturelle</h1>
-    </div>
     <v-carousel
       ref="carousel"
       v-model="activeIndex"
       :show-arrows="false"
-      :class="smAndDown ? 'carousel-sm' : 'carousel' "
+      :class="smAndDown ? 'carousel-sm' : 'carousel'"
       :hide-delimiter-background="true"
       :show-delimiters="false"
       :touch="true"
+      :cycle="smAndDown ? true : false"
     >
       <v-carousel-item v-for="(item, index) in carouselItems" :key="index">
         <v-row>
-          <v-col  :cols="smAndDown ? 12 : 6">
-            <v-row :class=" !smAndDown ? 'align-start': '' ">
-              <v-img v-if="!smAndDown" class="logo-school" :src="item.logo"></v-img>
+          <v-col :cols="smAndDown ? 12 : 6">
+            <v-row :class="!smAndDown ? 'align-start' : ''">
+              <v-img
+                v-if="!smAndDown"
+                class="logo-school"
+                :src="item.logo"
+              ></v-img>
             </v-row>
 
             <v-row class="align-start">
-              <p :class="smAndDown ? 'description-sm' : 'description'">{{ item.description }}</p>
+              <p :class="smAndDown ? 'description-sm' : 'description'">
+                {{ item.description }}
+              </p>
             </v-row>
 
             <v-row class="align-start">
@@ -31,10 +39,12 @@
             </v-row>
           </v-col>
 
-          <v-col  :cols="smAndDown ? 12 : 6">
+          <v-col :cols="smAndDown ? 12 : 6">
             <v-row class="justify-end">
               <div
-                :class="smAndDown ? 'background-rectangle-sm' : 'background-rectangle'"
+                :class="
+                  smAndDown ? 'background-rectangle-sm' : 'background-rectangle'
+                "
                 :style="{ backgroundColor: item.color }"
               ></div>
               <v-card v-if="!smAndDown" class="card" elevation="5">
@@ -52,7 +62,10 @@
                 </v-card-text>
               </v-card>
 
-              <v-img :src="item.image" :class="smAndDown ? 'image-sm' : 'image'"></v-img>
+              <v-img
+                :src="item.image"
+                :class="smAndDown ? 'image-sm' : 'image'"
+              ></v-img>
             </v-row>
           </v-col>
         </v-row>
@@ -80,7 +93,6 @@ const changeSlide = (index) => {
   activeIndex.value = index;
 };
 
-
 const carouselItems = ref([
   {
     logo: "/images/carousel/school/school.png",
@@ -132,7 +144,7 @@ const carouselItems = ref([
 .color-solution {
   color: rgba(32, 147, 190, 0.9);
 }
-.title-page{
+.title-page {
   font-family: "Barlow";
   font-style: normal;
   font-weight: bold;
@@ -198,13 +210,12 @@ const carouselItems = ref([
 }
 
 .carousel-sm {
-  height:44rem !important;
+  height: 44rem !important;
   margin-bottom: -14.3rem;
   margin-top: 2rem;
-
 }
 
-.carousel{
+.carousel {
   margin-top: 1rem;
   height: 900% !important;
   margin-bottom: -2rem;
@@ -274,7 +285,7 @@ const carouselItems = ref([
   padding: 25px;
   gap: 9px;
   font-weight: 700;
-  font-size: 10px;
+  font-size: .9rem;
   line-height: 15px;
   width: 10rem;
   height: 4rem;
@@ -289,9 +300,8 @@ const carouselItems = ref([
   padding: 25px;
   gap: 9px;
   font-weight: 700;
-  font-size: 10px;
+  font-size: .9rem;
   line-height: 15px;
-  width: 10rem;
   height: 4rem;
   font-family: "Barlow";
   font-style: normal;
@@ -304,7 +314,7 @@ const carouselItems = ref([
   padding: 25px;
   gap: 9px;
   font-weight: 700;
-  font-size: 10px;
+  font-size: .9rem;
   line-height: 15px;
   width: 10rem;
   height: 4rem;

+ 15 - 14
components/Home/EventAgenda.vue

@@ -9,7 +9,7 @@
 
     <v-row>
       <v-col cols="12" :class="lgAndUp ? 'btn-container' : ''">
-        <v-col :cols="smAndDown ? 12 : 6" class="d-flex justify-center">
+        <v-col md="12" :cols="smAndDown ? 12 : 6" class="d-flex justify-center">
 
           <v-btn :class="smAndDown ? 'btn-event-sm' : 'btn-event'"
             >Découvrir les évènements
@@ -17,7 +17,7 @@
           </v-btn>
         </v-col>
 
-        <v-col col="6">
+        <v-col md="12" col="6">
           <v-btn v-if="lgAndUp"  class="btn-event"
             >Découvrir l’ANNUAIRE
             <v-icon class="fa-solid fa-arrow-right icon-arrow"></v-icon>
@@ -36,15 +36,7 @@ const { lgAndUp, smAndDown, mdAndDown } = useDisplay();
 
 <style scoped>
 
-.btn-event-sm {
-  font-family: "Barlow";
-  font-style: normal;
-  border-radius: 0.5rem;
-  padding-top: 2rem;
-  padding-bottom: 2rem;
-  margin-top: 3rem;
-  
-}
+
 .icon-arrow {
   font-size: 1rem;
   margin-left: 1rem;
@@ -59,18 +51,27 @@ const { lgAndUp, smAndDown, mdAndDown } = useDisplay();
   font-family: "Barlow";
   font-style: normal;
   border-radius: 0.5rem;
-  margin-left: 7vw;
+  margin-left: 9vw;
   gap: 9px;
   font-weight: 700;
   font-size: 0.9rem;
   line-height: 15px;
   width: 18rem;
-  height: 3rem;
   margin-top: 3rem;
+  padding-top: 2.5rem;
+  padding-bottom: 2.5rem;
+  padding-left: 2rem;
+  padding-right: 2rem;
+}
+.btn-event-sm {
+  font-family: "Barlow";
+  font-style: normal;
+  border-radius: 0.5rem;
   padding-top: 2rem;
   padding-bottom: 2rem;
+  margin-top: 3rem;
+  
 }
-
 .title {
   font-family: "Barlow";
   font-style: normal;

+ 6 - 3
components/Home/Help.vue

@@ -2,11 +2,14 @@
   <LayoutContainer>
     <div class="container">
       <v-row>
-        <v-col  :cols="smAndDown ? 12 : 8">
-          <v-img :class="smAndDown ? 'help-img-sm' : 'help-img' " src="/images/help/Help.png"></v-img>
+        <v-col :cols="smAndDown ? 12 : 8">
+          <v-img
+            :class="smAndDown ? 'help-img-sm' : 'help-img'"
+            src="/images/help/Help.png"
+          ></v-img>
         </v-col>
 
-        <v-col  :cols="smAndDown ? 12 : 4">
+        <v-col :cols="smAndDown ? 12 : 4">
           <h4 class="subtitle-team">
             Notre équipe est à vos côtés pour vous guider
           </h4>

+ 83 - 66
components/Home/Reviews.vue

@@ -1,6 +1,6 @@
 <template>
-  <LayoutContainer  :overflow="false">
-    <div  :class="smAndDown ? '' : 'container-color'">
+  <LayoutContainer :overflow="false">
+    <div :class="smAndDown ? '' : 'container-color'">
       <div class="d-flex justify-center align-center flex-column">
         <v-icon size="8" class="fa-solid fa-circle icon-title"></v-icon>
         <h6 class="small-title">Avis Clients</h6>
@@ -9,35 +9,33 @@
       <h1 class="title-review">C'est vous qui le dites</h1>
       <div v-if="smAndDown">
         <Carousel
-        :itemsToShow="2"
-        :itemsToScroll="1"
-        ref="carousel"
+          :itemsToScroll="1"
+          ref="carousel"
+          :autoplay="4000" 
+          :itemsToShow="2" :wrapAround="true" :transition="500"
         >
-        <Slide v-for="(review, index) in reviews" :key="index">
-          <v-col cols="12">
-          <v-card class="review-card-sm  ">
-            <v-avatar size="80" class="profile-img">
-              <v-img :src="review.avatar"></v-img>
-            </v-avatar>
-            <v-card-title>
-              <span class="review-name">{{ review.name}}</span>
-            </v-card-title>
-
-            <v-card-text>
-              <p class="description-review">
-               {{ review.description }}
-              </p>
-            </v-card-text>
-            <small class="status">{{ review.status}}</small>
-
-            <small class="structure"
-              >{{  review.structure}}</small
-            >
-          </v-card>
-        </v-col>
-        </Slide>
-      </Carousel>
-
+          <Slide v-for="(review, index) in reviews" :key="index">
+            <v-col cols="12">
+              <v-card class="review-card-sm">
+                <v-avatar size="80" class="profile-img">
+                  <v-img :src="review.avatar"></v-img>
+                </v-avatar>
+                <v-card-title>
+                  <span class="review-name">{{ review.name }}</span>
+                </v-card-title>
+
+                <v-card-text>
+                  <p class="description-review">
+                    {{ review.description }}
+                  </p>
+                </v-card-text>
+                <small class="status">{{ review.status }}</small>
+
+                <small class="structure">{{ review.structure }}</small>
+              </v-card>
+            </v-col>
+          </Slide>
+        </Carousel>
       </div>
     </div>
 
@@ -189,7 +187,7 @@
     </div>
 
     <div v-if="smAndDown">
-      <v-row class="container-green-sm mt-6" >
+      <v-row class="container-green-sm mt-6">
         <v-col cols="12">
           <div class="d-flex justify-center align-center flex-column">
             <h2 class="title-sm text-center">
@@ -208,13 +206,19 @@
       </v-row>
 
       <Carousel
-        class="carousel-sm "
+        class="carousel-sm"
         :itemsToShow="1"
         :itemsToScroll="1"
         ref="carousel"
       >
         <Slide v-for="(item, index) in items" :key="index">
-            <v-img class="card-img-sm" :src="item.src" alt="Card image cap" contain position="center center" />
+          <v-img
+            class="card-img-sm"
+            :src="item.src"
+            alt="Card image cap"
+            contain
+            position="center center"
+          />
         </Slide>
       </Carousel>
     </div>
@@ -238,35 +242,54 @@ const goNext = () => {
 
 const reviews = [
   {
-    name : "John Doe",
-    status : "DIRECTEUR PÉDAGOGIQUE",
-    structure : "Conservatoire Musique & Danse Sens (78)",
-    description : "C'est un logiciel très bien conçu et efficace avec une équipe ouverte, dynamique et à l'écoute. L’assistance est très réactive, j'ai toujours eu une réponse rapide à mes besoins, ce qui est fort appréciable.",
-    avatar : "/images/reviews/photo1.jpg"
+    name: "John Doe",
+    status: "DIRECTEUR PÉDAGOGIQUE",
+    structure: "Conservatoire Musique & Danse Sens (78)",
+    description:
+      "C'est un logiciel très bien conçu et efficace avec une équipe ouverte, dynamique et à l'écoute. L’assistance est très réactive, j'ai toujours eu une réponse rapide à mes besoins, ce qui est fort appréciable.",
+    avatar: "/images/reviews/photo1.jpg",
+  },
+  {
+    name: "John Doe",
+    status: "DIRECTEUR PÉDAGOGIQUE",
+    structure: "Conservatoire Musique & Danse Sens (78)",
+    avatar: "/images/reviews/photo1.jpg",
+    description:
+      "C'est un logiciel très bien conçu et efficace avec une équipe ouverte, dynamique et à l'écoute. L’assistance est très réactive, j'ai toujours eu une réponse rapide à mes besoins, ce qui est fort appréciable.",
   },
   {
-    name : "John Doe",
-    status : "DIRECTEUR PÉDAGOGIQUE",
-    structure : "Conservatoire Musique & Danse Sens (78)",
-    avatar : "/images/reviews/photo1.jpg",
-    description : "C'est un logiciel très bien conçu et efficace avec une équipe ouverte, dynamique et à l'écoute. L’assistance est très réactive, j'ai toujours eu une réponse rapide à mes besoins, ce qui est fort appréciable.",
+    name: "John Doe",
+    status: "DIRECTEUR PÉDAGOGIQUE",
+    structure: "Conservatoire Musique & Danse Sens (78)",
+    avatar: "/images/reviews/photo1.jpg",
+    description:
+      "C'est un logiciel très bien conçu et efficace avec une équipe ouverte, dynamique et à l'écoute. L’assistance est très réactive, j'ai toujours eu une réponse rapide à mes besoins, ce qui est fort appréciable.",
   },
   {
-    name : "John Doe",
-    status : "DIRECTEUR PÉDAGOGIQUE",
-    structure : "Conservatoire Musique & Danse Sens (78)",
-    avatar : "/images/reviews/photo1.jpg",
-    description : "C'est un logiciel très bien conçu et efficace avec une équipe ouverte, dynamique et à l'écoute. L’assistance est très réactive, j'ai toujours eu une réponse rapide à mes besoins, ce qui est fort appréciable.",
+    name: "John Doe",
+    status: "DIRECTEUR PÉDAGOGIQUE",
+    structure: "Conservatoire Musique & Danse Sens (78)",
+    avatar: "/images/reviews/photo1.jpg",
+    description:
+      "C'est un logiciel très bien conçu et efficace avec une équipe ouverte, dynamique et à l'écoute. L’assistance est très réactive, j'ai toujours eu une réponse rapide à mes besoins, ce qui est fort appréciable.",
   },
   {
-    name : "John Doe",
-    status : "DIRECTEUR PÉDAGOGIQUE",
-    structure : "Conservatoire Musique & Danse Sens (78)",
-    avatar : "/images/reviews/photo1.jpg",
-    description : "C'est un logiciel très bien conçu et efficace avec une équipe ouverte, dynamique et à l'écoute. L’assistance est très réactive, j'ai toujours eu une réponse rapide à mes besoins, ce qui est fort appréciable.",
-  }
-
-]
+    name: "John Doe",
+    status: "DIRECTEUR PÉDAGOGIQUE",
+    structure: "Conservatoire Musique & Danse Sens (78)",
+    avatar: "/images/reviews/photo1.jpg",
+    description:
+      "C'est un logiciel très bien conçu et efficace avec une équipe ouverte, dynamique et à l'écoute. L’assistance est très réactive, j'ai toujours eu une réponse rapide à mes besoins, ce qui est fort appréciable.",
+  },
+  {
+    name: "John Doe",
+    status: "DIRECTEUR PÉDAGOGIQUE",
+    structure: "Conservatoire Musique & Danse Sens (78)",
+    avatar: "/images/reviews/photo1.jpg",
+    description:
+      "C'est un logiciel très bien conçu et efficace avec une équipe ouverte, dynamique et à l'écoute. L’assistance est très réactive, j'ai toujours eu une réponse rapide à mes besoins, ce qui est fort appréciable.",
+  },
+];
 const items = ref([
   { src: "/images/reviews/review1.png" },
   { src: "/images/reviews/review2.png" },
@@ -278,8 +301,7 @@ const items = ref([
 
 <style scoped>
 .title,
-.title-sm
-{
+.title-sm {
   font-family: "Barlow";
   font-style: normal;
   font-size: 2rem;
@@ -292,7 +314,7 @@ const items = ref([
   width: 25rem;
 }
 
-.title-sm{
+.title-sm {
   text-align: center;
   margin-top: 3rem;
 }
@@ -301,15 +323,12 @@ const items = ref([
   color: #64afb7;
 }
 .carousel-button i,
-.carousel-button-sm i
-{
+.carousel-button-sm i {
   color: #ffffff;
 }
 
-
 .carousel-button,
-.carousel-button-sm
-{
+.carousel-button-sm {
   display: flex;
   justify-content: center;
   align-items: center;
@@ -333,7 +352,6 @@ const items = ref([
   margin-left: auto;
   margin-right: 5rem;
   display: block;
-
 }
 
 .card-img-sm {
@@ -341,7 +359,6 @@ const items = ref([
   height: 10rem;
   width: 10rem;
   margin-right: 25rem;
-  
 }
 
 .carousel {

+ 42 - 44
components/Home/Solution.vue

@@ -19,51 +19,51 @@
         v-for="(solution, index) in solutions"
         :key="index"
       >
-      <div class="opentalent-container">
-        <small class="opentalent-small">Opentalent</small>
-        <h2 class="logiciel-name">{{ solution.name }}</h2>
-        <hr class="bar" />
-        <p class="description-logiciel">{{ solution.description }}</p>
+        <div class="opentalent-container">
+          <small class="opentalent-small">Opentalent</small>
+          <h2 class="logiciel-name">{{ solution.name }}</h2>
+          <hr class="bar" />
+          <p class="description-logiciel">{{ solution.description }}</p>
+
+          <nuxt-link :to="solution.link">
+            <v-row>
+              <div :class="solution.class">
+                <v-img :src="solution.image" class="logo"></v-img>
+              </div>
+            </v-row>
+          </nuxt-link>
 
-        <nuxt-link :to="solution.link">
           <v-row>
-            <div :class="solution.class">
-              <v-img :src="solution.image" class="logo"></v-img>
-            </div>
+            <v-col cols="6">
+              <ul class="list-solutions">
+                <li
+                  class="details-solution"
+                  v-for="(sol, i) in solution.solutions.slice(0, 4)"
+                  :key="'sol-' + i"
+                >
+                  {{ sol }}
+                </li>
+              </ul>
+            </v-col>
+            <v-col cols="6">
+              <ul class="list-solutions">
+                <li
+                  class="details-solution"
+                  v-for="(sol, i) in solution.solutions.slice(4)"
+                  :key="'sol-' + i"
+                >
+                  {{ sol }}
+                </li>
+              </ul>
+            </v-col>
           </v-row>
-        </nuxt-link>
-
-        <v-row>
-          <v-col cols="6">
-            <ul class="list-solutions">
-              <li
-                class="details-solution"
-                v-for="(sol, i) in solution.solutions.slice(0, 4)"
-                :key="'sol-' + i"
-              >
-                {{ sol }}
-              </li>
-            </ul>
-          </v-col>
-          <v-col cols="6">
-            <ul class="list-solutions">
-              <li
-                class="details-solution"
-                v-for="(sol, i) in solution.solutions.slice(4)"
-                :key="'sol-' + i"
-              >
-                {{ sol }}
-              </li>
-            </ul>
-          </v-col>
-        </v-row>
-      </div>
+        </div>
       </v-col>
     </v-row>
 
     <div v-if="smAndDown">
       <div class="d-flex justify-center align-center">
-        <div class="carousel-button " @click="goPrevious">
+        <div class="carousel-button" @click="goPrevious">
           <i class="fas fa-chevron-left"></i>
         </div>
         <div class="carousel-button ml-6" @click="goNext">
@@ -131,6 +131,7 @@ import { Carousel, Slide } from "vue3-carousel";
 import "vue3-carousel/dist/carousel.css";
 import { useDisplay } from "vuetify";
 const { lgAndUp, smAndDown } = useDisplay();
+
 const carousel = ref(null);
 
 const goPrevious = () => {
@@ -192,9 +193,8 @@ const solutions = [
   },
 ];
 onMounted(() => {
-  setTimeout(() => goNext(), 0); 
+  setTimeout(() => goNext(), 0);
 });
-
 </script>
 
 <style scoped>
@@ -239,7 +239,7 @@ onMounted(() => {
   color: #000000;
 }
 .solution-column {
-  margin-left: -.5rem;
+  margin-left: -0.5rem;
 }
 .logo-sm {
   width: 8rem;
@@ -357,7 +357,6 @@ onMounted(() => {
   cursor: pointer;
 }
 
-
 .solution-img {
   width: 15rem;
   height: 15rem;
@@ -379,7 +378,7 @@ onMounted(() => {
   font-family: "Barlow";
   font-style: normal;
   font-size: 1.2rem;
-  color : #eff9fb;
+  color: #eff9fb;
   line-height: 1.3rem;
   margin-top: 1rem;
   width: 20rem;
@@ -420,7 +419,7 @@ onMounted(() => {
 
 .details-solution {
   font-size: 1.3rem;
-  margin-bottom: .9rem;
+  margin-bottom: 0.9rem;
   width: 10rem;
   margin-left: 1rem;
   font-family: "Barlow";
@@ -450,7 +449,6 @@ onMounted(() => {
 .bar {
   color: #c3e5e7;
   width: 20rem;
-
 }
 
 .bar-sm {

+ 29 - 21
components/Layout/Footer.vue

@@ -21,7 +21,6 @@
             >Fédérations, confédérations, collectivités</small
           >
         </v-col>
-        
 
         <v-col cols="4">
           <v-img
@@ -36,9 +35,12 @@
     </div>
 
     <div class="footer">
-      <div  class="content-footer">
+      <div class="content-footer">
         <v-row>
-          <v-col :cols="smAndDown ? 12 : 3" :class="smAndDown ? 'logo-opentalent-sm' : ''">
+          <v-col
+            :cols="smAndDown ? 12 : 3"
+            :class="smAndDown ? 'logo-opentalent-sm' : ''"
+          >
             <v-img
               class="logo"
               src="/images/Logo-blanc.png"
@@ -47,8 +49,10 @@
             ></v-img>
           </v-col>
 
-          <v-col  :cols="smAndDown ? 6 : 2" :class="smAndDown ? 'link-sm' : '' ">
-            <v-row :class="smAndDown ? 'title-link-sm' : 'title-link'">Liens Rapides</v-row>
+          <v-col :cols="smAndDown ? 6 : 2" :class="smAndDown ? 'link-sm' : ''">
+            <v-row :class="smAndDown ? 'title-link-sm' : 'title-link'"
+              >Liens Rapides</v-row
+            >
             <v-row>
               <small class="small-link">A propos</small>
             </v-row>
@@ -60,8 +64,10 @@
             </v-row>
           </v-col>
 
-          <v-col  :cols="smAndDown ? 6 : 2" :class="smAndDown ? 'link-sm' : '' ">
-            <v-row :class="smAndDown ? 'title-link-sm' : 'title-link'">Informations</v-row>
+          <v-col :cols="smAndDown ? 6 : 2" :class="smAndDown ? 'link-sm' : ''">
+            <v-row :class="smAndDown ? 'title-link-sm' : 'title-link'"
+              >Informations</v-row
+            >
             <v-row>
               <small class="small-link">FAQ</small>
             </v-row>
@@ -76,8 +82,10 @@
             </v-row>
           </v-col>
 
-          <v-col  :cols="smAndDown ? 6 : 2" :class="smAndDown ? 'link-sm' : '' ">
-            <v-row :class="smAndDown ? 'title-link-sm' : 'title-link'">Espace client</v-row>
+          <v-col :cols="smAndDown ? 6 : 2" :class="smAndDown ? 'link-sm' : ''">
+            <v-row :class="smAndDown ? 'title-link-sm' : 'title-link'"
+              >Espace client</v-row
+            >
             <v-row>
               <small class="small-link">Mon compte</small>
             </v-row>
@@ -86,20 +94,22 @@
             </v-row>
           </v-col>
 
-          <v-col  :cols="smAndDown ? 6 : 2" :class="smAndDown ? 'link-sm' : '' ">
-            <v-row :class="smAndDown ? 'title-link-sm' : 'title-link'" >Liens Rapides</v-row>
+          <v-col :cols="smAndDown ? 6 : 2" :class="smAndDown ? 'link-sm' : ''">
+            <v-row :class="smAndDown ? 'title-link-sm' : 'title-link'"
+              >Liens Rapides</v-row
+            >
 
             <v-row>
-              <v-col  :cols="smAndDown ? 4 : 2">
-                <v-icon  class="fab fa-facebook"></v-icon>
+              <v-col :cols="smAndDown ? 4 : 2">
+                <v-icon class="fab fa-facebook"></v-icon>
               </v-col>
 
-              <v-col  :cols="smAndDown ? 4 : 2">
+              <v-col :cols="smAndDown ? 4 : 2">
                 <v-icon class="fab fa-linkedin"></v-icon>
               </v-col>
 
-              <v-col  :cols="smAndDown ? 4 : 2">
-                <v-icon  class="fab fa-youtube"></v-icon>
+              <v-col :cols="smAndDown ? 4 : 2">
+                <v-icon class="fab fa-youtube"></v-icon>
               </v-col>
             </v-row>
           </v-col>
@@ -115,8 +125,7 @@ const { mdAndDown, smAndDown, lgAndUp } = useDisplay();
 </script>
 
 <style scoped>
-
-.link-sm{
+.link-sm {
   display: flex;
   flex-direction: column;
   justify-content: center;
@@ -124,7 +133,7 @@ const { mdAndDown, smAndDown, lgAndUp } = useDisplay();
   text-align: center;
 }
 
-.logo-opentalent-sm{
+.logo-opentalent-sm {
   display: flex;
   justify-content: center;
   align-items: center;
@@ -140,11 +149,10 @@ const { mdAndDown, smAndDown, lgAndUp } = useDisplay();
   font-size: 1rem;
   line-height: 20px;
   margin-bottom: 1rem;
-  
 }
 
 .title-link-sm {
-  margin-bottom: .1rem;
+  margin-bottom: 0.1rem;
 }
 
 .small-link {

+ 8 - 5
eslintrc.js

@@ -1,11 +1,14 @@
 module.exports = {
+  parser: 'vue-eslint-parser',
   extends: [
+    'plugin:vue/base',
     'eslint:recommended',
-    'plugin:vue/recommended' 
-  ],
-  plugins: [
-    'vue' 
-  ],
+    'plugin:vue/vue3-recommended', 
+    'plugin:vue/essential',
+    'plugin:@typescript-eslint/recommended',     // caused by this line
+    'plugin:prettier/recommended',
+    'eslint-config-prettier'
+],
   rules: {
     'no-console': 'off', 
     'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 

+ 1 - 1
nuxt.config.ts

@@ -9,7 +9,7 @@ import { fa } from "vuetify/lib/locale";
  * @see https://nuxt.com/docs/api/configuration/nuxt-config
  */
 export default defineNuxtConfig({
-  ssr: true,
+  ssr: false,
   title: "Opentalent",
   runtimeConfig: {
     // Private config that is only available on the server

+ 2 - 1
package.json

@@ -54,6 +54,7 @@
   },
   "devDependencies": {
     "@nuxt/devtools": "^0.1.2",
+    "@nuxt/eslint-config": "^0.1.1",
     "@nuxt/test-utils": "^3.2.0",
     "@nuxt/test-utils-edge": "^3.0.1-rc.0-27909581.f711046",
     "@nuxtjs/eslint-config": "^12.0.0",
@@ -71,7 +72,7 @@
     "@vue/eslint-config-standard": "^8.0.1",
     "@vue/test-utils": "^2.2.10",
     "cypress": "8.7.0",
-    "eslint": "^8.43.0",
+    "eslint": "^8.44.0",
     "eslint-config-prettier": "^8.5.0",
     "eslint-plugin-nuxt": "^4.0.0",
     "eslint-plugin-prettier": "^4.2.1",

+ 140 - 30
yarn.lock

@@ -2,6 +2,11 @@
 # yarn lockfile v1
 
 
+"@aashutoshrathi/word-wrap@^1.2.3":
+  version "1.2.6"
+  resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
+  integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
+
 "@ampproject/remapping@^2.2.0":
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d"
@@ -882,14 +887,14 @@
   resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884"
   integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==
 
-"@eslint/eslintrc@^2.0.3":
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331"
-  integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==
+"@eslint/eslintrc@^2.1.0":
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d"
+  integrity sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==
   dependencies:
     ajv "^6.12.4"
     debug "^4.3.2"
-    espree "^9.5.2"
+    espree "^9.6.0"
     globals "^13.19.0"
     ignore "^5.2.0"
     import-fresh "^3.2.1"
@@ -897,10 +902,10 @@
     minimatch "^3.1.2"
     strip-json-comments "^3.1.1"
 
-"@eslint/js@8.43.0":
-  version "8.43.0"
-  resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.43.0.tgz#559ca3d9ddbd6bf907ad524320a0d14b85586af0"
-  integrity sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==
+"@eslint/js@8.44.0":
+  version "8.44.0"
+  resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af"
+  integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==
 
 "@fortawesome/fontawesome-common-types@6.4.0":
   version "6.4.0"
@@ -1281,6 +1286,17 @@
     vite-plugin-inspect "^0.7.15"
     vite-plugin-vue-inspector "^3.3.2"
 
+"@nuxt/eslint-config@^0.1.1":
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/@nuxt/eslint-config/-/eslint-config-0.1.1.tgz#99058b84f92aa2c67028a19e6c66cdf5beb9f5f6"
+  integrity sha512-znm1xlbhldUubB2XGx6Ca5uarwlIieKf0o8CtxtF6eEauDbpa3T2p3JnTcdguMW2nj1YPneoGmhshANfOlghiQ==
+  dependencies:
+    "@rushstack/eslint-patch" "^1.2.0"
+    "@typescript-eslint/eslint-plugin" "^5.45.1"
+    "@typescript-eslint/parser" "^5.45.1"
+    eslint-plugin-vue "^9.8.0"
+    typescript "^4.9.3"
+
 "@nuxt/kit@3.2.3", "@nuxt/kit@^3.0.0", "@nuxt/kit@^3.1.2", "@nuxt/kit@^3.2.0", "@nuxt/kit@^3.2.2":
   version "3.2.3"
   resolved "https://registry.yarnpkg.com/@nuxt/kit/-/kit-3.2.3.tgz#97d8b4a4bedda4452ea18629c73c6301a964d492"
@@ -1676,6 +1692,11 @@
     estree-walker "^2.0.2"
     picomatch "^2.3.1"
 
+"@rushstack/eslint-patch@^1.2.0":
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.3.2.tgz#31b9c510d8cada9683549e1dbb4284cca5001faf"
+  integrity sha512-V+MvGwaHH03hYhY+k6Ef/xKd6RYlc4q8WBx+2ANmipHJcKuktNcI/NgEsJgdSUF6Lw32njT6OnrRsKYCdgHjYw==
+
 "@sinclair/typebox@^0.25.16":
   version "0.25.24"
   resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718"
@@ -3132,6 +3153,22 @@
     semver "^7.3.7"
     tsutils "^3.21.0"
 
+"@typescript-eslint/eslint-plugin@^5.45.1":
+  version "5.61.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.61.0.tgz#a1a5290cf33863b4db3fb79350b3c5275a7b1223"
+  integrity sha512-A5l/eUAug103qtkwccSCxn8ZRwT+7RXWkFECdA4Cvl1dOlDUgTpAOfSEElZn2uSUxhdDpnCdetrf0jvU4qrL+g==
+  dependencies:
+    "@eslint-community/regexpp" "^4.4.0"
+    "@typescript-eslint/scope-manager" "5.61.0"
+    "@typescript-eslint/type-utils" "5.61.0"
+    "@typescript-eslint/utils" "5.61.0"
+    debug "^4.3.4"
+    graphemer "^1.4.0"
+    ignore "^5.2.0"
+    natural-compare-lite "^1.4.0"
+    semver "^7.3.7"
+    tsutils "^3.21.0"
+
 "@typescript-eslint/parser@^5.42.1", "@typescript-eslint/parser@^5.51.0":
   version "5.54.1"
   resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.54.1.tgz#05761d7f777ef1c37c971d3af6631715099b084c"
@@ -3142,6 +3179,16 @@
     "@typescript-eslint/typescript-estree" "5.54.1"
     debug "^4.3.4"
 
+"@typescript-eslint/parser@^5.45.1":
+  version "5.61.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.61.0.tgz#7fbe3e2951904bb843f8932ebedd6e0635bffb70"
+  integrity sha512-yGr4Sgyh8uO6fSi9hw3jAFXNBHbCtKKFMdX2IkT3ZqpKmtAq3lHS4ixB/COFuAIJpwl9/AqF7j72ZDWYKmIfvg==
+  dependencies:
+    "@typescript-eslint/scope-manager" "5.61.0"
+    "@typescript-eslint/types" "5.61.0"
+    "@typescript-eslint/typescript-estree" "5.61.0"
+    debug "^4.3.4"
+
 "@typescript-eslint/scope-manager@5.54.1":
   version "5.54.1"
   resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.54.1.tgz#6d864b4915741c608a58ce9912edf5a02bb58735"
@@ -3150,6 +3197,14 @@
     "@typescript-eslint/types" "5.54.1"
     "@typescript-eslint/visitor-keys" "5.54.1"
 
+"@typescript-eslint/scope-manager@5.61.0":
+  version "5.61.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.61.0.tgz#b670006d069c9abe6415c41f754b1b5d949ef2b2"
+  integrity sha512-W8VoMjoSg7f7nqAROEmTt6LoBpn81AegP7uKhhW5KzYlehs8VV0ZW0fIDVbcZRcaP3aPSW+JZFua+ysQN+m/Nw==
+  dependencies:
+    "@typescript-eslint/types" "5.61.0"
+    "@typescript-eslint/visitor-keys" "5.61.0"
+
 "@typescript-eslint/type-utils@5.54.1":
   version "5.54.1"
   resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.54.1.tgz#4825918ec27e55da8bb99cd07ec2a8e5f50ab748"
@@ -3160,11 +3215,26 @@
     debug "^4.3.4"
     tsutils "^3.21.0"
 
+"@typescript-eslint/type-utils@5.61.0":
+  version "5.61.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.61.0.tgz#e90799eb2045c4435ea8378cb31cd8a9fddca47a"
+  integrity sha512-kk8u//r+oVK2Aj3ph/26XdH0pbAkC2RiSjUYhKD+PExemG4XSjpGFeyZ/QM8lBOa7O8aGOU+/yEbMJgQv/DnCg==
+  dependencies:
+    "@typescript-eslint/typescript-estree" "5.61.0"
+    "@typescript-eslint/utils" "5.61.0"
+    debug "^4.3.4"
+    tsutils "^3.21.0"
+
 "@typescript-eslint/types@5.54.1":
   version "5.54.1"
   resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.54.1.tgz#29fbac29a716d0f08c62fe5de70c9b6735de215c"
   integrity sha512-G9+1vVazrfAfbtmCapJX8jRo2E4MDXxgm/IMOF4oGh3kq7XuK3JRkOg6y2Qu1VsTRmWETyTkWt1wxy7X7/yLkw==
 
+"@typescript-eslint/types@5.61.0":
+  version "5.61.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.61.0.tgz#e99ff11b5792d791554abab0f0370936d8ca50c0"
+  integrity sha512-ldyueo58KjngXpzloHUog/h9REmHl59G1b3a5Sng1GfBo14BkS3ZbMEb3693gnP1k//97lh7bKsp6/V/0v1veQ==
+
 "@typescript-eslint/typescript-estree@5.54.1":
   version "5.54.1"
   resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.1.tgz#df7b6ae05fd8fef724a87afa7e2f57fa4a599be1"
@@ -3178,6 +3248,19 @@
     semver "^7.3.7"
     tsutils "^3.21.0"
 
+"@typescript-eslint/typescript-estree@5.61.0":
+  version "5.61.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.61.0.tgz#4c7caca84ce95bb41aa585d46a764bcc050b92f3"
+  integrity sha512-Fud90PxONnnLZ36oR5ClJBLTLfU4pIWBmnvGwTbEa2cXIqj70AEDEmOmpkFComjBZ/037ueKrOdHuYmSFVD7Rw==
+  dependencies:
+    "@typescript-eslint/types" "5.61.0"
+    "@typescript-eslint/visitor-keys" "5.61.0"
+    debug "^4.3.4"
+    globby "^11.1.0"
+    is-glob "^4.0.3"
+    semver "^7.3.7"
+    tsutils "^3.21.0"
+
 "@typescript-eslint/utils@5.54.1":
   version "5.54.1"
   resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.54.1.tgz#7a3ee47409285387b9d4609ea7e1020d1797ec34"
@@ -3192,6 +3275,20 @@
     eslint-utils "^3.0.0"
     semver "^7.3.7"
 
+"@typescript-eslint/utils@5.61.0":
+  version "5.61.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.61.0.tgz#5064838a53e91c754fffbddd306adcca3fe0af36"
+  integrity sha512-mV6O+6VgQmVE6+xzlA91xifndPW9ElFW8vbSF0xCT/czPXVhwDewKila1jOyRwa9AE19zKnrr7Cg5S3pJVrTWQ==
+  dependencies:
+    "@eslint-community/eslint-utils" "^4.2.0"
+    "@types/json-schema" "^7.0.9"
+    "@types/semver" "^7.3.12"
+    "@typescript-eslint/scope-manager" "5.61.0"
+    "@typescript-eslint/types" "5.61.0"
+    "@typescript-eslint/typescript-estree" "5.61.0"
+    eslint-scope "^5.1.1"
+    semver "^7.3.7"
+
 "@typescript-eslint/visitor-keys@5.54.1":
   version "5.54.1"
   resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.1.tgz#d7a8a0f7181d6ac748f4d47b2306e0513b98bf8b"
@@ -3200,6 +3297,14 @@
     "@typescript-eslint/types" "5.54.1"
     eslint-visitor-keys "^3.3.0"
 
+"@typescript-eslint/visitor-keys@5.61.0":
+  version "5.61.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.61.0.tgz#c79414fa42158fd23bd2bb70952dc5cdbb298140"
+  integrity sha512-50XQ5VdbWrX06mQXhy93WywSFZZGsv3EOjq+lqp6WC2t+j3mb6A9xYVdrRxafvK88vg9k9u+CT4l6D8PEatjKg==
+  dependencies:
+    "@typescript-eslint/types" "5.61.0"
+    eslint-visitor-keys "^3.3.0"
+
 "@unhead/dom@1.1.17", "@unhead/dom@^1.1.15":
   version "1.1.17"
   resolved "https://registry.yarnpkg.com/@unhead/dom/-/dom-1.1.17.tgz#4626870edbfb14511b78e250ca27101bdd84ea8b"
@@ -3526,6 +3631,11 @@ acorn@^8.1.0, acorn@^8.5.0, acorn@^8.6.0, acorn@^8.8.0, acorn@^8.8.1, acorn@^8.8
   resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
   integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
 
+acorn@^8.9.0:
+  version "8.10.0"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5"
+  integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
+
 agent-base@6, agent-base@^6.0.2:
   version "6.0.2"
   resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
@@ -5438,7 +5548,7 @@ eslint-plugin-unicorn@^44.0.2:
     semver "^7.3.7"
     strip-indent "^3.0.0"
 
-eslint-plugin-vue@^9.15.1:
+eslint-plugin-vue@^9.15.1, eslint-plugin-vue@^9.8.0:
   version "9.15.1"
   resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.15.1.tgz#3c09e0edab444b5d4d9239a12a645a0e2e2ea5be"
   integrity sha512-CJE/oZOslvmAR9hf8SClTdQ9JLweghT6JCBQNrT2Iel1uVw0W0OLJxzvPd6CxmABKCvLrtyDnqGV37O7KQv6+A==
@@ -5534,15 +5644,15 @@ eslint-webpack-plugin@^2.6.0:
     normalize-path "^3.0.0"
     schema-utils "^3.1.1"
 
-eslint@^8.43.0:
-  version "8.43.0"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.43.0.tgz#3e8c6066a57097adfd9d390b8fc93075f257a094"
-  integrity sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==
+eslint@^8.44.0:
+  version "8.44.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.44.0.tgz#51246e3889b259bbcd1d7d736a0c10add4f0e500"
+  integrity sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==
   dependencies:
     "@eslint-community/eslint-utils" "^4.2.0"
     "@eslint-community/regexpp" "^4.4.0"
-    "@eslint/eslintrc" "^2.0.3"
-    "@eslint/js" "8.43.0"
+    "@eslint/eslintrc" "^2.1.0"
+    "@eslint/js" "8.44.0"
     "@humanwhocodes/config-array" "^0.11.10"
     "@humanwhocodes/module-importer" "^1.0.1"
     "@nodelib/fs.walk" "^1.2.8"
@@ -5554,7 +5664,7 @@ eslint@^8.43.0:
     escape-string-regexp "^4.0.0"
     eslint-scope "^7.2.0"
     eslint-visitor-keys "^3.4.1"
-    espree "^9.5.2"
+    espree "^9.6.0"
     esquery "^1.4.2"
     esutils "^2.0.2"
     fast-deep-equal "^3.1.3"
@@ -5574,7 +5684,7 @@ eslint@^8.43.0:
     lodash.merge "^4.6.2"
     minimatch "^3.1.2"
     natural-compare "^1.4.0"
-    optionator "^0.9.1"
+    optionator "^0.9.3"
     strip-ansi "^6.0.1"
     strip-json-comments "^3.1.0"
     text-table "^0.2.0"
@@ -5604,12 +5714,12 @@ espree@^9.3.1:
     acorn-jsx "^5.3.2"
     eslint-visitor-keys "^3.3.0"
 
-espree@^9.5.2:
-  version "9.5.2"
-  resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b"
-  integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==
+espree@^9.6.0:
+  version "9.6.0"
+  resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.0.tgz#80869754b1c6560f32e3b6929194a3fe07c5b82f"
+  integrity sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==
   dependencies:
-    acorn "^8.8.0"
+    acorn "^8.9.0"
     acorn-jsx "^5.3.2"
     eslint-visitor-keys "^3.4.1"
 
@@ -8419,17 +8529,17 @@ optionator@^0.8.1:
     type-check "~0.3.2"
     word-wrap "~1.2.3"
 
-optionator@^0.9.1:
-  version "0.9.1"
-  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
-  integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
+optionator@^0.9.3:
+  version "0.9.3"
+  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64"
+  integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==
   dependencies:
+    "@aashutoshrathi/word-wrap" "^1.2.3"
     deep-is "^0.1.3"
     fast-levenshtein "^2.0.6"
     levn "^0.4.1"
     prelude-ls "^1.2.1"
     type-check "^0.4.0"
-    word-wrap "^1.2.3"
 
 ora@^6.1.2:
   version "6.1.2"
@@ -10363,7 +10473,7 @@ typeface-barlow@^1.1.13:
   resolved "https://registry.yarnpkg.com/typeface-barlow/-/typeface-barlow-1.1.13.tgz#cd1112f10a5578ce01299041558db0db0dfd0109"
   integrity sha512-IuXLXcA/U7ZR5gfy1yHVr6Qqrcr/gjmrwAaSXqTXigXbiz6ZR2gsaP4m5i058e67gQ7NyVCjNIgNDsRTE25Wwg==
 
-typescript@4.9.5:
+typescript@4.9.5, typescript@^4.9.3:
   version "4.9.5"
   resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
   integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
@@ -11040,7 +11150,7 @@ wide-align@^1.1.2, wide-align@^1.1.5:
   dependencies:
     string-width "^1.0.2 || 2 || 3 || 4"
 
-word-wrap@^1.2.3, word-wrap@~1.2.3:
+word-wrap@~1.2.3:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
   integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==