From a59066f6f965509d8d4baa182053a446e5ee390e Mon Sep 17 00:00:00 2001
From: David Boureau
Date: Tue, 24 Oct 2023 13:49:52 +0200
Subject: [PATCH] Release Sprint 8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* U28 - Un seul bouton pour modifier les équivalences de la livraison
* B15 - bug sur le partage de la livraison
* [U25] - Publicode : génération d'une doc plus lisible
* [A5.1] Nouvelle page : plan du site
* [A5.2] Nouveau Header
* [A5.3] Nouveau footer sur toutes les pages
* [A5.4] Fil d'ariane
---
.eslintrc.json | 5 +-
.github/workflows/e2e.yml | 10 +-
.husky/post-commit | 3 -
CHANGELOG.md | 28 +
README.md | 4 +-
jest.config.js | 10 +
next.config.js | 42 +-
package.json | 17 +-
pages/[category].js | 42 +-
pages/_app.js | 2 +
pages/accessibilite.js | 16 +-
pages/api/hello.js | 9 +-
pages/documentation.js | 38 +
pages/index.js | 6 +-
pages/mentions-legales.js | 10 +-
pages/plan-du-site.js | 190 ++
pages/politique-de-confidentialite.js | 6 +-
pages/stats.js | 29 +
playwright.config.js | 20 +-
src/components/base/Ademe.js | 171 +-
src/components/base/DocumentationLivraison.js | 118 +-
src/components/base/FooterLogo.js | 97 +
src/components/base/MagicLink.js | 57 +-
src/components/base/Markdown.js | 22 +
src/components/base/Media.js | 15 +
src/components/base/Modal4.js | 109 +
src/components/base/NewTabIcon.js | 32 +
src/components/base/Section3.js | 31 +
src/components/layout/Web.js | 14 +-
src/components/layout/Web2.js | 6 +-
src/components/layout/WebBlue.js | 44 +
src/components/layout/iframe/IframeFooter.js | 10 +-
src/components/layout/web/BreadCrumb.js | 1 +
src/components/layout/web/BreadCrumb2.js | 8 +-
src/components/layout/web/BreadCrumb3.js | 27 +
src/components/layout/web/Footer.js | 17 +-
src/components/layout/web/FooterBlue.js | 139 ++
src/components/layout/web/Hamburger.js | 38 +
src/components/layout/web/HeaderSweet.js | 253 +++
src/components/layout/web/Seo.js | 4 +-
src/components/layout/web/nav/MenuSweet.js | 38 +
.../layout/web/nav/menu/DropdownSweet.js | 130 ++
src/components/livraison/AdviceLivraison.js | 2 +-
.../livraison/CalculateurLivraison.js | 2 +-
src/components/livraison/ResultatLivraison.js | 62 +-
.../livraison/ResultatsLivraison.js | 94 +-
src/components/livraison/data.js | 5 +
src/components/misc/search/NavSearchBar.js | 154 ++
src/components/misc/search/SearchBar2.js | 8 +-
.../misc/search/searchBar/TextInputSmall.js | 96 +
src/components/misc/tiles/LivraisonEq.js | 104 +-
src/components/modals/ActualChoices.js | 129 ++
src/components/modals/AllSearch.js | 71 +-
src/components/modals/AllSearchCategory.js | 79 +
.../modals/DetailLivraisonModal2.js | 8 +
src/components/modals/EqModal3.js | 99 -
src/components/modals/EqModal4.js | 220 ++
src/components/modals/ExplainArrow.js | 6 +-
src/components/modals/FruitSearch.js | 104 -
src/components/modals/NumSearch.js | 106 -
src/components/modals/ReduireModal3.js | 4 +-
src/components/modals/SocialModal3.js | 3 +-
src/components/modals/shareModal/CopyUrl.js | 1 +
.../modals/tilesModal/EquivalentSquare.js | 66 +
.../tilesModal/EquivalentSquareChecked.js | 76 +
src/components/providers/DataProvider.js | 9 -
src/components/providers/ModalProvider.js | 4 +-
src/scripts/generate_name.js | 25 -
src/utils/styles.js | 8 +
src/utils/urls.js | 5 +
testc/IFrameFooter.test.js | 16 +
{tests => teste}/impact_livraison.spec.js | 107 +-
{tests => teste}/page_daccueil.spec.js | 3 +-
teste/partage_livraison.spec.js | 22 +
teste/static_page.spec.js | 13 +
testu/buildCurrentUrlFor.test.js | 20 +
version.txt | 2 +-
webpack.config.js | 2 +-
yarn.lock | 1895 ++++++++++++++++-
79 files changed, 4621 insertions(+), 877 deletions(-)
delete mode 100755 .husky/post-commit
create mode 100755 jest.config.js
create mode 100644 pages/documentation.js
create mode 100644 pages/plan-du-site.js
create mode 100644 pages/stats.js
create mode 100644 src/components/base/FooterLogo.js
create mode 100644 src/components/base/Markdown.js
create mode 100644 src/components/base/Media.js
create mode 100644 src/components/base/Modal4.js
create mode 100644 src/components/base/NewTabIcon.js
create mode 100644 src/components/base/Section3.js
create mode 100644 src/components/layout/WebBlue.js
create mode 100644 src/components/layout/web/BreadCrumb3.js
create mode 100644 src/components/layout/web/FooterBlue.js
create mode 100644 src/components/layout/web/Hamburger.js
create mode 100644 src/components/layout/web/HeaderSweet.js
create mode 100644 src/components/layout/web/nav/MenuSweet.js
create mode 100644 src/components/layout/web/nav/menu/DropdownSweet.js
create mode 100644 src/components/misc/search/NavSearchBar.js
create mode 100644 src/components/misc/search/searchBar/TextInputSmall.js
create mode 100644 src/components/modals/ActualChoices.js
create mode 100644 src/components/modals/AllSearchCategory.js
delete mode 100644 src/components/modals/EqModal3.js
create mode 100644 src/components/modals/EqModal4.js
delete mode 100644 src/components/modals/FruitSearch.js
delete mode 100644 src/components/modals/NumSearch.js
create mode 100644 src/components/modals/tilesModal/EquivalentSquare.js
create mode 100644 src/components/modals/tilesModal/EquivalentSquareChecked.js
delete mode 100644 src/scripts/generate_name.js
create mode 100644 src/utils/urls.js
create mode 100644 testc/IFrameFooter.test.js
rename {tests => teste}/impact_livraison.spec.js (65%)
rename {tests => teste}/page_daccueil.spec.js (96%)
create mode 100644 teste/partage_livraison.spec.js
create mode 100644 teste/static_page.spec.js
create mode 100644 testu/buildCurrentUrlFor.test.js
diff --git a/.eslintrc.json b/.eslintrc.json
index 5e520a9bb..45ddf8afb 100755
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -11,10 +11,11 @@
"no-irregular-whitespace": "off",
"better-styled-components/sort-declarations-alphabetically": 2
},
- "plugins": ["better-styled-components", "styled-components-a11y"],
+ "plugins": ["better-styled-components", "styled-components-a11y", "jest"],
"env": {
"browser": true,
"es2022": true,
- "node": true
+ "node": true,
+ "jest/globals": true
}
}
diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml
index e97c758da..14ab834b9 100644
--- a/.github/workflows/e2e.yml
+++ b/.github/workflows/e2e.yml
@@ -1,4 +1,4 @@
-name: E2E Tests with Playwright
+name: Testing => Run full test suite
on:
push:
jobs:
@@ -12,10 +12,14 @@ jobs:
node-version: 18
- name: Install dependencies
run: yarn
+ - name: Unit tests => with Jest
+ run: yarn testu
+ - name: Component tests => with Jest
+ run: yarn testc
- name: Install Playwright Browsers
run: yarn playwright install --with-deps chromium
- - name: Run Playwright tests
- run: yarn playwright test
+ - name: E2E test => with Playwright
+ run: yarn teste
- uses: actions/upload-artifact@v3
if: always()
with:
diff --git a/.husky/post-commit b/.husky/post-commit
deleted file mode 100755
index 7e808d13a..000000000
--- a/.husky/post-commit
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env sh
-
-yarn generatename
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 49acb4954..b3d663f9f 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,33 @@
# CHANGELOG
+## 1.23.2 (23/10/2023)
+
+* A5.4 - Amélioration du fil d'ariane
+
+## 1.23.1 (23/10/2023)
+
+* A5.3 - Nouveau footer sur toutes les pages
+
+## 1.23.0 (20/10/2023)
+
+* A5.2 - Nouveau header
+
+## 1.22.0 (11/10/2023)
+
+* A5.1 - Nouvelle page : plan du site
+
+## 1.21.2 (11/10/2023)
+
+* U25 - Publicode : ajout du markdown pour rendre le corps de texte lisible
+
+## 1.21.1 (10/10/2023)
+
+* B15 - Livraison : bug dans l'URL de partage
+
+## 1.21.0 (05/10/2023)
+
+* U28 - Un seul bouton pour modifier les équivalences de la livraison
+
## 1.20.11 (04/10/2023)
* Userver - Modifications pré-migration Scalingo
diff --git a/README.md b/README.md
index a4a9b2e55..467586d2d 100755
--- a/README.md
+++ b/README.md
@@ -46,12 +46,12 @@ Pour l'instant il n'y a que des variables d'environnement "publiques",
Il vous faut un fichier `.env.local` à la racine
```bash
-NEXT_PUBLIC_SITE_URL=localhost:3000
+WEBSITE_URL=localhost:3000
SENDINBLUE_API_KEY=une_valeur_compliquee
GMAP_API_KEY=une_autre_valeur_compliquee
```
-`NEXT_PUBLIC_SITE_URL` est le nom de domaine du site, sans le protocole (mais avec le port éventuellement).
+`WEBSITE_URL` est le nom de domaine du site, sans le protocole (mais avec le port éventuellement).
A vous de renseigner la/les valeurs sur l'ensemble des sites déployés.
diff --git a/jest.config.js b/jest.config.js
new file mode 100755
index 000000000..e89ee9b4a
--- /dev/null
+++ b/jest.config.js
@@ -0,0 +1,10 @@
+const nextJest = require("next/jest");
+const createJestConfig = nextJest({
+ dir: "./",
+});
+const customJestConfig = {
+ moduleDirectories: ["node_modules", "/", "/src/"],
+ testEnvironment: "jest-environment-jsdom",
+ testMatch: ["**/testc/**/*.test.js", "**/testu/**/*.test.js"],
+};
+module.exports = createJestConfig(customJestConfig);
diff --git a/next.config.js b/next.config.js
index d7fd7c3ad..efa99a032 100755
--- a/next.config.js
+++ b/next.config.js
@@ -1,4 +1,15 @@
var fs = require("fs");
+var execSync = require("child_process").execSync;
+
+const getLocalGitCommitHash = function () {
+ let res = "";
+ try {
+ res = execSync("git rev-parse HEAD").toString().trim();
+ } catch (e) {
+ console.log("Git is not executable here...");
+ }
+ return res;
+};
const getLastVersion = function () {
let result = "unknown";
@@ -12,18 +23,31 @@ const getLastVersion = function () {
if (versions && versions.length > 1) {
// The latest version will be the second match
result = versions[1];
- console.log("Latest release version:", result);
} else {
- console.log("No release versions found in the CHANGELOG.");
+ result = "No release versions found in the CHANGELOG.";
}
return result;
};
-const getBeforeLastSha = function () {
- let result = "unknown";
- result = fs.readFileSync("./version.txt", "utf8");
- console.log("Current name is :", result);
- return result;
+const buildFullVersionNumber = function () {
+ const semver = getLastVersion();
+ console.log("Current semver version:", semver);
+ return semver;
+};
+
+const buildShortSha = function (scalingoLongSha) {
+ const netlifySha = process.env.COMMIT_REF;
+ const shortSha = getShortSha(scalingoLongSha || netlifySha || getLocalGitCommitHash());
+ console.log("Current shortSha is: ", shortSha);
+ return shortSha;
+};
+
+const getShortSha = function (str) {
+ let res = "";
+ if (typeof str === "string" && str.length > 0) {
+ res = str.substring(0, 7);
+ }
+ return res;
};
const nextConfig = {
@@ -36,8 +60,8 @@ const nextConfig = {
defaultLocale: "fr",
},
env: {
- thebuildid: getLastVersion() + "-" + getBeforeLastSha(),
- customKey: "my-value",
+ thebuildid: buildFullVersionNumber() + "-" + buildShortSha(process.env.SOURCE_VERSION),
+ websiteurl: process.env.WEBSITE_URL,
},
async redirects() {
return [
diff --git a/package.json b/package.json
index 069e89c3f..290f19dec 100644
--- a/package.json
+++ b/package.json
@@ -6,8 +6,14 @@
"generatename": "node src/scripts/generate_name.js",
"build:fruit": "node src/scripts/build_fruits_et_legumes.js",
"build:boisson": "node src/scripts/build_boissons.js",
- "test": "playwright test",
- "test:ui": "playwright test --ui",
+ "test": "yarn testu && yarn testc && yarn teste",
+ "teste": "NODE_ENV=test playwright test --reporter=list",
+ "testc": "NODE_ENV=test jest ./testc",
+ "testu": "NODE_ENV=test jest ./testu",
+ "jest:local": "NODE_ENV=test jest --watch",
+ "testu:local": "NODE_ENV=test jest --watch ./testu",
+ "testc:local": "NODE_ENV=test jest --watch ./testc",
+ "teste:local": "NODE_ENV=test playwright test --ui",
"dev": "next dev",
"build": "yarn iframe && next build",
"postbuild": "next-sitemap",
@@ -32,9 +38,9 @@
"dotenv-cli": "^7.3.0",
"focus-trap-react": "^10.2.1",
"fuse.js": "^6.6.2",
- "haikunator": "^2.1.2",
"html-to-image": "^1.11.11",
"iframe-resizer-react": "^1.1.0",
+ "markdown-to-jsx": "^7.3.2",
"matomo-tracker": "^2.2.4",
"next": "^13.1.6",
"next-query-params": "^4.1.0",
@@ -66,6 +72,11 @@
"webpack-cli": "^5.0.1"
},
"devDependencies": {
+ "@testing-library/jest-dom": "^6.1.4",
+ "@testing-library/react": "^14.0.0",
+ "eslint-plugin-jest": "^27.4.2",
+ "jest": "^29.7.0",
+ "jest-environment-jsdom": "^29.7.0",
"@playwright/test": "^1.33.0",
"@trivago/prettier-plugin-sort-imports": "^4.0.0",
"babel-plugin-tailwind-components": "^0.5.10",
diff --git a/pages/[category].js b/pages/[category].js
index 50a2cee66..17840825d 100644
--- a/pages/[category].js
+++ b/pages/[category].js
@@ -1,35 +1,33 @@
-import categories from 'data/categories.json'
-import React from 'react'
-
-import Web from 'components/layout/Web'
-import Web2 from 'components/layout/Web2'
-import Category from 'components/misc/Category'
-import Learning from 'components/misc/Learning'
-
-import Impactlivraison from './impactlivraison'
+import Impactlivraison from "./impactlivraison";
+import Web from "components/layout/Web";
+import WebBlue from "components/layout/WebBlue";
+import Category from "components/misc/Category";
+import Learning from "components/misc/Learning";
+import categories from "data/categories.json";
+import React from "react";
export default function CategoryPage(props) {
return (
<>
- {['livraison'].includes(props.category.slug) ? (
+ {["livraison"].includes(props.category.slug) ? (
<>
-
- {props.category.slug === 'livraison' ? : null}
-
+ {props.category.slug === "livraison" ? : null}
+
>
) : (
@@ -38,10 +36,10 @@ export default function CategoryPage(props) {
)}
>
- )
+ );
}
-const independantCategories = [4, 9, 10]
+const independantCategories = [4, 9, 10];
export async function getStaticPaths() {
return {
@@ -50,15 +48,13 @@ export async function getStaticPaths() {
.map((category) => ({
params: { category: category.slug },
})),
- fallback: 'blocking',
- }
+ fallback: "blocking",
+ };
}
export async function getStaticProps({ params }) {
return {
props: {
- category: categories?.find(
- (category) => category.slug === params.category
- ),
+ category: categories?.find((category) => category.slug === params.category),
},
- }
+ };
}
diff --git a/pages/_app.js b/pages/_app.js
index 0069dcba4..d605436d4 100755
--- a/pages/_app.js
+++ b/pages/_app.js
@@ -100,10 +100,12 @@ const SkipLinks = styled.div`
}
.visible-hidden:focus {
+ background-color: white;
clip: auto;
height: auto;
overflow: auto;
position: absolute;
width: auto;
+ z-index: 9;
}
`;
diff --git a/pages/accessibilite.js b/pages/accessibilite.js
index 0053e6160..512fcc10f 100644
--- a/pages/accessibilite.js
+++ b/pages/accessibilite.js
@@ -1,18 +1,18 @@
import Section2 from "components/base/Section2";
-import Web from "components/layout/Web";
+import WebBlue from "components/layout/WebBlue";
import React from "react";
import styled from "styled-components";
export default function Accessibilite() {
return (
-
+
Déclaration d'accessibilité
Qu’est-ce que l’accessibilité numérique ?
- Un site web accessible est un site qui permet à tous les internautes d’accéder à ses contenus sans
+ Un site webBlue accessible est un site qui permet à tous les internautes d’accéder à ses contenus sans
difficulté, y compris aux personnes qui présentent un handicap et utilisent des logiciels ou matériels
spécialisés.
@@ -27,7 +27,7 @@ export default function Accessibilite() {
-
+
);
}
diff --git a/pages/api/hello.js b/pages/api/hello.js
index aeaa9c1a8..2fc940c4c 100644
--- a/pages/api/hello.js
+++ b/pages/api/hello.js
@@ -2,5 +2,12 @@ export default function handler(req, res) {
let headers = req.headers;
let query = req.query;
let queryString = new URLSearchParams(query).toString();
- res.status(200).json({ h: headers, q: query, qs: queryString, def: !!process.env.GMAP_API_KEY });
+ res.status(200).json({
+ h: headers,
+ q: query,
+ qs: queryString,
+ defg: !!process.env.GMAP_API_KEY,
+ defp: !!process.env.WEBSITE_URL,
+ wu: process.env.websiteurl,
+ });
}
diff --git a/pages/documentation.js b/pages/documentation.js
new file mode 100644
index 000000000..ad345d686
--- /dev/null
+++ b/pages/documentation.js
@@ -0,0 +1,38 @@
+import Section2 from "components/base/Section2";
+import WebBlue from "components/layout/WebBlue";
+import Link from "next/link";
+import React from "react";
+import styled from "styled-components";
+
+export default function Documentation() {
+ return (
+
+
+
+
+ Documentation
+
+
+ Livraison de colis
+
+
+ Livraison de colis par avion
+
+
+
+
+
+
+
+
+ );
+}
+
+const FormatText = styled.div`
+ h1 {
+ font-size: 3rem;
+ }
+ > h2 {
+ margin-top: 3rem;
+ }
+`;
diff --git a/pages/index.js b/pages/index.js
index 957ef0823..c7e7f2d32 100644
--- a/pages/index.js
+++ b/pages/index.js
@@ -1,4 +1,4 @@
-import Web from "components/layout/Web";
+import WebBlue from "components/layout/WebBlue";
import Tiles from "components/misc/Tiles";
import Heading from "components/views/home/Heading";
import Visualization from "components/views/home/Visualizations";
@@ -6,10 +6,10 @@ import React from "react";
export default function Home() {
return (
-
+
-
+
);
}
diff --git a/pages/mentions-legales.js b/pages/mentions-legales.js
index 63ab201be..f53135a30 100644
--- a/pages/mentions-legales.js
+++ b/pages/mentions-legales.js
@@ -1,12 +1,12 @@
import Section2 from "components/base/Section2";
-import Web from "components/layout/Web";
+import WebBlue from "components/layout/WebBlue";
import Link from "next/link";
import React from "react";
import styled from "styled-components";
export default function MetionsLegales() {
return (
-
+
@@ -44,8 +44,8 @@ export default function MetionsLegales() {
juridiques.
Hébergement du site
- Netlify
- 44 Montgomery Street, Suite 300, San Francisco, California 94104
+ Scalingo
+ 13 rue Jacques Peirotes 67000 Strasbourg, France
Attribution
Certaines illustrations sont réalisées par Storyset de www.flaticon.com
Modification des mentions légales
@@ -56,7 +56,7 @@ export default function MetionsLegales() {
-
+
);
}
diff --git a/pages/plan-du-site.js b/pages/plan-du-site.js
new file mode 100644
index 000000000..72cbc3ef8
--- /dev/null
+++ b/pages/plan-du-site.js
@@ -0,0 +1,190 @@
+import Section2 from "components/base/Section2";
+import WebBlue from "components/layout/WebBlue";
+import DataContext from "components/providers/DataProvider";
+import categories from "data/categories.json";
+import Link from "next/link";
+import React, { useContext } from "react";
+import styled from "styled-components";
+import { formatName } from "utils/formatters";
+
+export default function PlanDuSite() {
+ const { equivalents } = useContext(DataContext);
+
+ const buildLevel3For = (catSlug, subcategories) => {
+ return subcategories.map((subcategory) => (
+
+
+ {formatName(subcategory.name, 1, true)}{" "}
+ {subcategory.subtitle && ({formatName(subcategory.subtitle, 1)}) }
+
+
+ ));
+ };
+
+ const buildLevel2For = (catSlug) => {
+ const category = categories.find((cat) => cat.slug === catSlug);
+ const subcategories = equivalents.filter((eq) => eq.category === category.id);
+ return (
+
+
+ {category.name}
+
+ {subcategories?.length > 0 ? (
+ <>
+ {buildLevel3For(category.slug, subcategories)}
+ >
+ ) : (
+ <>>
+ )}
+
+ );
+ };
+
+ return (
+
+
+
+
+ Plan du site
+
+
+ Page d'accueil
+
+
+
+
+ Par thématique
+
+ {buildLevel2For("usagenumerique")}
+ {buildLevel2For("livraison")}
+ {buildLevel2For("chauffage")}
+ {buildLevel2For("transport")}
+ {buildLevel2For("fruitsetlegumes")}
+ {buildLevel2For("numerique")}
+ {buildLevel2For("repas")}
+ {buildLevel2For("habillement")}
+ {buildLevel2For("mobilier")}
+ {buildLevel2For("electromenager")}
+ {buildLevel2For("boisson")}
+
+
+ Documentation
+
+
+
+ Livraison de colis
+
+
+
+
+ Livraison de colis par avion
+
+
+
+
+
+
+ Comparateur carbone
+
+
+
+
+ Diffuser les ressources
+
+
+
+
+ Intégrer les ressources
+
+
+
+
+ Statistiques
+
+
+
+
+ Accessibilité (non conforme)
+
+
+
+
+ Mentions légales
+
+
+
+
+ Politique de confidentialité
+
+
+
+
+
+
+ );
+}
+
+const FormatText = styled.div`
+ h1 {
+ font-size: 2.25rem;
+ font-weight: 800;
+ line-height: 44px;
+ letter-spacing: -0.01em;
+ margin-bottom: 2rem;
+ }
+ > h2 {
+ margin-top: 3rem;
+ }
+`;
+
+const Level1 = styled.div`
+ margin-top: 1.75rem;
+ > a {
+ color: ${(props) => props.theme.colors.text};
+ font-size: 1.125rem;
+ font-weight: 700;
+ letter-spacing: 0em;
+ line-height: 2rem;
+ text-decoration-color: ${(props) => props.theme.colors.main4};
+ text-decoration-thickness: 1px;
+ text-underline-offset: 0.75rem;
+ }
+`;
+
+const Level2 = styled.div`
+ margin-left: 1.5rem;
+ margin-top: 1.25rem;
+ > a {
+ color: ${(props) => props.theme.colors.main4};
+ font-size: 1rem;
+ font-weight: 700;
+ letter-spacing: 0em;
+ line-height: 2rem;
+ text-decoration-thickness: 1px;
+ text-underline-offset: 0.5rem;
+ }
+`;
+
+const Level3 = styled.div`
+ margin-left: 1.5rem;
+ margin-top: 0.75rem;
+ > a {
+ color: ${(props) => props.theme.colors.linkGray};
+ font-size: 1rem;
+ font-weight: 400;
+ letter-spacing: 0em;
+ line-height: 2rem;
+ text-decoration-color: ${(props) => props.theme.colors.firstBlue};
+ text-decoration-thickness: 1px;
+ text-underline-offset: 0.5rem;
+ }
+`;
+
+const Subtitle = styled.span`
+ font-weight: 300;
+`;
diff --git a/pages/politique-de-confidentialite.js b/pages/politique-de-confidentialite.js
index 419b88372..9e432f8c0 100644
--- a/pages/politique-de-confidentialite.js
+++ b/pages/politique-de-confidentialite.js
@@ -1,11 +1,11 @@
import Section2 from "components/base/Section2";
-import Web from "components/layout/Web";
+import WebBlue from "components/layout/WebBlue";
import React from "react";
import styled from "styled-components";
export default function Politique() {
return (
-
+
@@ -28,7 +28,7 @@ export default function Politique() {
-
+
);
}
diff --git a/pages/stats.js b/pages/stats.js
new file mode 100644
index 000000000..1d64f012e
--- /dev/null
+++ b/pages/stats.js
@@ -0,0 +1,29 @@
+import Section2 from "components/base/Section2";
+import WebBlue from "components/layout/WebBlue";
+import React from "react";
+import styled from "styled-components";
+
+export default function Statistiques() {
+ return (
+
+
+
+
+ Statistiques
+ Information
+ Cette page est en cours de développement, merci pour votre patience!
+
+
+
+
+ );
+}
+
+const FormatText = styled.div`
+ h1 {
+ font-size: 3rem;
+ }
+ > h2 {
+ margin-top: 3rem;
+ }
+`;
diff --git a/playwright.config.js b/playwright.config.js
index 9ce404db6..6cf6b07d2 100755
--- a/playwright.config.js
+++ b/playwright.config.js
@@ -1,5 +1,5 @@
// @ts-check
-const { defineConfig, devices } = require('@playwright/test')
+const { defineConfig, devices } = require("@playwright/test");
/**
* Read environment variables from file.
@@ -14,7 +14,7 @@ module.exports = defineConfig({
expect: {
timeout: 10 * 1000,
},
- testDir: './tests',
+ testDir: "./teste",
/* Run tests in files in parallel */
fullyParallel: true,
/* Fail the build on CI if you accidentally left test.only in the source code. */
@@ -24,14 +24,14 @@ module.exports = defineConfig({
/* Opt out of parallel tests on CI. */
workers: process.env.CI ? 1 : undefined,
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
- reporter: 'html',
+ reporter: "html",
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: {
/* Base URL to use in actions like `await page.goto('/')`. */
- baseURL: 'http://127.0.0.1:3000',
+ baseURL: "http://127.0.0.1:3000",
/* Collect trace. See https://playwright.dev/docs/trace-viewer */
- trace: 'retain-on-failure',
+ trace: "retain-on-failure",
/* Slow motion, and/or video */
// launchOptions: {
@@ -45,15 +45,15 @@ module.exports = defineConfig({
/* Configure projects for major browsers */
projects: [
{
- name: 'chromium',
- use: { ...devices['Desktop Chrome'] },
+ name: "chromium",
+ use: { ...devices["Desktop Chrome"] },
},
],
/* Run your local dev server before starting the tests */
webServer: {
- command: 'npm run dev',
- url: 'http://127.0.0.1:3000',
+ command: "npm run dev",
+ url: "http://127.0.0.1:3000",
reuseExistingServer: !process.env.CI,
},
-})
+});
diff --git a/src/components/base/Ademe.js b/src/components/base/Ademe.js
index ca0855a51..e3b9340b7 100644
--- a/src/components/base/Ademe.js
+++ b/src/components/base/Ademe.js
@@ -1,166 +1,145 @@
-import React from 'react'
-import styled from 'styled-components'
+import React from "react";
+import styled from "styled-components";
const Wrapper = styled.svg`
display: block;
height: 4.746875em;
padding: 0.75em;
width: auto;
-`
+`;
export default function Ademe() {
return (
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
- )
+ );
}
diff --git a/src/components/base/DocumentationLivraison.js b/src/components/base/DocumentationLivraison.js
index e1bdfd104..88465153a 100644
--- a/src/components/base/DocumentationLivraison.js
+++ b/src/components/base/DocumentationLivraison.js
@@ -1,22 +1,120 @@
+import Markdown from "./Markdown";
+import Section2 from "components/base/Section2";
+import BreadCrumb3 from "components/layout/web/BreadCrumb3";
+import Footer from "components/layout/web/Footer";
+import Header from "components/layout/web/Header";
+import Nav from "components/layout/web/Nav";
+import Seo from "components/layout/web/Seo";
import RulesContextLivraison from "components/livraison/RulesProviderLivraison";
import Head from "next/head";
import Link from "next/link";
import { RulePage } from "publicodes-react";
import React, { useContext } from "react";
+import styled from "styled-components";
export default function DocumentationLivraison(props) {
const { engine } = useContext(RulesContextLivraison);
return (
- {children},
- }}
- />
+
+
+
+
+
+
+
+
+ {children},
+ Text: ({ children }) => {children} ,
+ }}
+ />
+
+
+
+
+
);
}
+
+const DocWrapper = styled.div`
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans",
+ "Droid Sans", "Helvetica Neue", sans-serif;
+ margin: 0;
+ * {
+ --textColor: #2975d1;
+ --darkerColor: #333350;
+ }
+
+ .App {
+ padding: 0 0.6rem;
+ margin-bottom: 1rem;
+ }
+
+ #documentation-rule-root > p:first-of-type {
+ display: inline-block;
+ background: var(--lighterColor);
+ padding: 0.4rem 0.6rem 0.2rem;
+ }
+
+ header {
+ color: var(--textColor);
+
+ background: linear-gradient(60deg, var(--darkColor) 0%, var(--color) 100%);
+ padding: 0.6rem 1rem;
+ box-shadow: 0 1px 3px rgba(var(--rgbColor), 0.12), 0 1px 2px rgba(var(--rgbColor), 0.24);
+ border-radius: 0.4rem;
+ }
+ small {
+ color: inherit;
+ }
+
+ a {
+ color: var(--textColor);
+ }
+
+ nav li:not(.active) a {
+ font-weight: 200;
+ }
+
+ a:hover {
+ color: var(--darkerColor);
+ }
+
+ h1 {
+ color: inherit;
+ margin-top: 0.6rem;
+ margin-bottom: 0.6rem;
+ }
+ a {
+ text-decoration: none;
+ }
+ button {
+ color: inherit;
+ cursor: pointer;
+ }
+ span {
+ background: inherit;
+ }
+ small {
+ background: none;
+ }
+
+ li &.active .content {
+ background-color: transparent;
+ }
+
+ #documentation-rule-root > article {
+ max-width: 800px;
+ }
+`;
+
+const VerticalContainer = styled.div``;
diff --git a/src/components/base/FooterLogo.js b/src/components/base/FooterLogo.js
new file mode 100644
index 000000000..b3960f7e5
--- /dev/null
+++ b/src/components/base/FooterLogo.js
@@ -0,0 +1,97 @@
+import MagicLink from "components/base/MagicLink";
+import React from "react";
+import styled from "styled-components";
+
+const Wrapper = styled(MagicLink)`
+ align-items: center;
+ display: flex;
+ margin: 0 0.75em;
+ text-decoration: none;
+
+ ${(props) => props.theme.mq.small} {
+ font-size: 0.75rem;
+ }
+
+ svg {
+ height: 3em;
+ margin-right: 1em;
+ width: auto;
+ }
+
+ &:hover {
+ .circle1 {
+ fill: ${(props) => props.theme.colors.main};
+ transition: fill 300ms ease-in 200ms;
+ }
+
+ .circle2 {
+ }
+ .circle3 {
+ transition: fill 300ms ease-out;
+ }
+ }
+`;
+const Path = styled.path`
+ fill: ${(props) => props.theme.colors.main};
+`;
+const Circle = styled.circle`
+ fill: ${(props) => props.theme.colors.main};
+ stroke: ${(props) => props.theme.colors.main};
+ transition: fill 300ms ease-out;
+
+ ${Wrapper}:hover & {
+ fill: #b5d0fa;
+ transition: fill 300ms ease-in-out 400ms;
+ }
+`;
+const HollowCircle1 = styled.circle`
+ fill: #b5d0fa;
+ stroke: ${(props) => props.theme.colors.main};
+ transform-origin: center;
+ transition: fill 300ms ease-out;
+
+ ${Wrapper}:hover & {
+ fill: ${(props) => props.theme.colors.main};
+ transform: rotate(-180deg);
+ transition: transform 600ms ease-out, fill 300ms ease-out;
+ }
+`;
+const HollowCircle2 = styled(HollowCircle1)`
+ ${Wrapper}:hover & {
+ transition: transform 400ms ease-out 300ms, fill 300ms ease-in 200ms;
+ }
+`;
+const Title = styled.div`
+ color: ${(props) => props.theme.colors.main};
+ font-size: 1.15em;
+ font-weight: bold;
+ line-height: 1;
+ margin: 0;
+`;
+export default function FooterLogo(props) {
+ return (
+
+
+ Impact CO2
+
+
+
+
+
+
+
+
+
+
+
+ Impact
+
+ CO2
+
+
+ );
+}
diff --git a/src/components/base/MagicLink.js b/src/components/base/MagicLink.js
index 6fb34f04c..0563f7ba4 100644
--- a/src/components/base/MagicLink.js
+++ b/src/components/base/MagicLink.js
@@ -1,67 +1,34 @@
-import Link from 'next/link'
-import React from 'react'
-import styled from 'styled-components'
+import NewTabIcon from "./NewTabIcon";
+import Link from "next/link";
+import React from "react";
-const Svg = styled.svg`
- display: inline-block;
- height: auto;
- margin-left: 0.3em;
- width: 0.75em;
-
- path {
- fill: ${(props) => props.theme.colors.main};
- }
-`
export default function MagicLink(props) {
return !props.to ? (
{props.children}
- ) : props.to.includes(':') ||
- props.to.includes('.') ||
- (props.to.includes('#') && !props.internal) ? (
+ ) : props.to.includes(":") || props.to.includes(".") || (props.to.includes("#") && !props.internal) ? (
{props.children}
- {!props.noIcon && (
-
-
-
-
- )}
+ {!props.noIcon && }
) : (
-
+
{props.children}
- )
+ );
}
diff --git a/src/components/base/Markdown.js b/src/components/base/Markdown.js
new file mode 100644
index 000000000..1612408df
--- /dev/null
+++ b/src/components/base/Markdown.js
@@ -0,0 +1,22 @@
+"use client";
+
+import MarkdownToJsx from "markdown-to-jsx";
+import NextLink from "next/link";
+
+export default function Markdown({ children, components = {}, ...otherProps }) {
+ return (
+
+ {children}
+
+ );
+}
diff --git a/src/components/base/Media.js b/src/components/base/Media.js
new file mode 100644
index 000000000..23e4bb15e
--- /dev/null
+++ b/src/components/base/Media.js
@@ -0,0 +1,15 @@
+import styled from "styled-components";
+
+export const Media = styled.div`
+ align-items: flex-start;
+ display: flex;
+`;
+export const MediaFigure = styled.div`
+ margin-right: 1em;
+ ${(props) => props.theme.mq.medium} {
+ margin-right: 0.2em;
+ }
+`;
+export const MediaBody = styled.div`
+ flex: 1;
+`;
diff --git a/src/components/base/Modal4.js b/src/components/base/Modal4.js
new file mode 100644
index 000000000..6dcef00b1
--- /dev/null
+++ b/src/components/base/Modal4.js
@@ -0,0 +1,109 @@
+import FocusTrap from "focus-trap-react";
+import { useDisableBodyScroll } from "hooks/useDisableBodyScroll";
+import React from "react";
+import styled from "styled-components";
+
+export default function Modal4(props) {
+ useDisableBodyScroll(props.open);
+
+ return (
+ props.open && (
+
+
+ {
+ props.dismiss();
+ props.setOpen(false);
+ }}
+ />
+
+
+ {props.getTitle ? props.getTitle() : "Titre"}
+ {
+ props.dismiss();
+ props.setOpen(false);
+ }}
+ >
+ Fermer
+
+
+
+
+
+
+ {props.children}
+
+
+
+ )
+ );
+}
+
+const Header = styled.div`
+ box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.1);
+ display: flex;
+ justify-content: space-between;
+ padding: 0.5rem 1.5rem;
+`;
+
+const Wrapper = styled.div`
+ align-items: center;
+ display: flex;
+ height: 100%;
+ justify-content: flex-end;
+ left: 0;
+ pointer-events: ${(props) => (props.open ? "inherit" : "none")};
+ position: fixed;
+ top: 0;
+ transform: translate3d(0, 0, 1em);
+ width: 100%;
+ z-index: 900;
+`;
+
+const Background = styled.div`
+ background-color: rgba(0, 0, 0, ${(props) => (props.open ? 0.6 : 0)});
+ height: 100%;
+ left: 0;
+ position: absolute;
+ top: 0;
+ width: 100%;
+`;
+
+const Content = styled.div`
+ background-color: ${(props) => props.theme.colors.background};
+ box-shadow: 0px 0px 15px 10px rgba(0, 0, 0, 0.2);
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ opacity: ${(props) => (props.open ? 1 : 0)};
+ position: relative;
+ transform: translateX(${(props) => (props.open ? 0 : "10em")});
+ visibility: ${(props) => (props.open ? "visible" : "hidden")};
+ width: ${(props) => props.width || "40em"};
+`;
+
+const ButtonClose = styled.button`
+ align-items: center;
+ background: inherit;
+ border: none;
+ color: ${(props) => props.theme.colors.text};
+ cursor: pointer;
+ display: flex;
+ > svg {
+ margin-left: 0.5rem;
+ }
+ &:focus {
+ border-radius: 2pt;
+ outline: solid;
+ outline-color: revert;
+ }
+`;
diff --git a/src/components/base/NewTabIcon.js b/src/components/base/NewTabIcon.js
new file mode 100644
index 000000000..ef3a7c1e9
--- /dev/null
+++ b/src/components/base/NewTabIcon.js
@@ -0,0 +1,32 @@
+import React from "react";
+import styled from "styled-components";
+
+const Svg = styled.svg`
+ display: inline-block;
+ height: auto;
+ margin-left: 0.3em;
+ width: 0.75em;
+
+ path {
+ fill: ${(props) => props.theme.colors.main};
+ }
+`;
+
+export default function NewTabIcon(props) {
+ return (
+
+
+
+
+ );
+}
diff --git a/src/components/base/Section3.js b/src/components/base/Section3.js
new file mode 100644
index 000000000..560f13b7e
--- /dev/null
+++ b/src/components/base/Section3.js
@@ -0,0 +1,31 @@
+import styled from "styled-components";
+
+const Section3 = styled.div``;
+
+Section3.WideContent = styled.div`
+ ${(props) => props.theme.mq.medium} {
+ width: 100vw;
+ }
+`;
+Section3.InnerMargin = styled.div`
+ margin-left: ${(props) => (props.embedded ? 2 : 4)}rem;
+ margin-right: ${(props) => (props.embedded ? 2 : 4)}rem;
+ ${(props) => props.theme.mq.xlarge} {
+ margin-left: ${(props) => (props.embedded ? 1.75 : 2.5)}rem;
+ margin-right: ${(props) => (props.embedded ? 1.75 : 2.5)}rem;
+ }
+ ${(props) => props.theme.mq.large} {
+ margin-left: ${(props) => (props.embedded ? 1.5 : 2)}rem;
+ margin-right: ${(props) => (props.embedded ? 1.5 : 2)}rem;
+ }
+ ${(props) => props.theme.mq.medium} {
+ margin-left: ${(props) => (props.embedded ? 1 : 1.5)}rem;
+ margin-right: ${(props) => (props.embedded ? 1 : 1.5)}rem;
+ }
+ ${(props) => props.theme.mq.small} {
+ margin-left: ${(props) => (props.embedded ? 0.5 : 0.75)}rem;
+ margin-right: ${(props) => (props.embedded ? 0.5 : 0.75)}rem;
+ }
+`;
+
+export default Section3;
diff --git a/src/components/layout/Web.js b/src/components/layout/Web.js
index 0d43f37c4..ee7fbbb29 100644
--- a/src/components/layout/Web.js
+++ b/src/components/layout/Web.js
@@ -1,7 +1,6 @@
-import BreadCrumb from "./web/BreadCrumb";
-import Footer from "./web/Footer";
-import Header from "./web/Header";
-import Nav from "./web/Nav";
+import BreadCrumb2 from "./web/BreadCrumb2";
+import FooterBlue from "./web/FooterBlue";
+import HeaderSweet from "./web/HeaderSweet";
import Seo from "./web/Seo";
import useInteraction from "hooks/useInteraction";
import React from "react";
@@ -33,12 +32,11 @@ export default function Web(props) {
-
-
-
+
+
{props.children}
-
+
>
diff --git a/src/components/layout/Web2.js b/src/components/layout/Web2.js
index 17e7efb67..5785ae555 100644
--- a/src/components/layout/Web2.js
+++ b/src/components/layout/Web2.js
@@ -1,7 +1,6 @@
import BreadCrumb2 from "./web/BreadCrumb2";
import Footer from "./web/Footer";
-import Header from "./web/Header";
-import Nav from "./web/Nav";
+import HeaderSweet from "./web/HeaderSweet";
import Seo from "./web/Seo";
import useInteraction from "hooks/useInteraction";
import React from "react";
@@ -16,8 +15,7 @@ export default function Web2(props) {
<>
-
-
+
{props.children}
diff --git a/src/components/layout/WebBlue.js b/src/components/layout/WebBlue.js
new file mode 100644
index 000000000..9868e8001
--- /dev/null
+++ b/src/components/layout/WebBlue.js
@@ -0,0 +1,44 @@
+import BreadCrumb2 from "./web/BreadCrumb2";
+import FooterBlue from "./web/FooterBlue";
+import HeaderSweet from "./web/HeaderSweet";
+import Seo from "./web/Seo";
+import useInteraction from "hooks/useInteraction";
+import React from "react";
+import styled from "styled-components";
+
+const Wrapper = styled.div`
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+`;
+const Content = styled.div`
+ display: flex;
+ flex: 1;
+ flex-direction: column;
+`;
+const FullScreen = styled.div`
+ display: flex;
+ flex: 1;
+ flex-direction: column;
+ padding: 0 0 5rem;
+ position: relative;
+`;
+export default function WebBlue(props) {
+ useInteraction();
+
+ return (
+ <>
+
+
+
+
+
+
+ {props.children}
+
+
+
+
+ >
+ );
+}
diff --git a/src/components/layout/iframe/IframeFooter.js b/src/components/layout/iframe/IframeFooter.js
index 69b42838a..b109ada68 100644
--- a/src/components/layout/iframe/IframeFooter.js
+++ b/src/components/layout/iframe/IframeFooter.js
@@ -5,6 +5,7 @@ import Marianne from "components/base/Marianne";
import useWindow from "hooks/useWindow";
import React from "react";
import styled from "styled-components";
+import { buildCurrentUrlFor } from "utils/urls";
const Wrapper = styled.footer`
align-items: center;
@@ -12,6 +13,7 @@ const Wrapper = styled.footer`
flex-direction: column;
justify-content: center;
`;
+
const StyledMagicLink = styled(MagicLink)`
display: block;
font-size: 0.75rem;
@@ -19,6 +21,7 @@ const StyledMagicLink = styled(MagicLink)`
margin: 0.75rem auto;
text-align: center;
`;
+
const Logos = styled.div`
align-items: center;
display: flex;
@@ -29,18 +32,17 @@ const Logos = styled.div`
padding: 0 0.25rem;
}
`;
+
export default function IframeFooter() {
const window = useWindow();
- const siteUrl = process?.env?.NEXT_PUBLIC_SITE_URL || "impactco2.fr";
- const protocol = siteUrl.indexOf("localhost") >= 0 ? "http://" : "https://";
- const baseUrl = `${protocol}${siteUrl}`;
let actualSrc = window?.location.href.split("iframes")[1] || "";
if (actualSrc.indexOf("livraison") > 0) {
actualSrc = "/livraison";
}
+ let fullUrl = buildCurrentUrlFor(process?.env?.websiteurl, actualSrc);
return (
-
+
Voir la version détaillée
(et les sources)
diff --git a/src/components/layout/web/BreadCrumb.js b/src/components/layout/web/BreadCrumb.js
index 7deb64258..289cea8e0 100644
--- a/src/components/layout/web/BreadCrumb.js
+++ b/src/components/layout/web/BreadCrumb.js
@@ -9,6 +9,7 @@ const Wrapper = styled.div`
font-weight: 300;
height: 1.05rem;
margin-bottom: 1.75rem;
+ margin-top: 1rem;
`;
export default function BreadCrumb(props) {
return (
diff --git a/src/components/layout/web/BreadCrumb2.js b/src/components/layout/web/BreadCrumb2.js
index 96c59006c..449be6a15 100644
--- a/src/components/layout/web/BreadCrumb2.js
+++ b/src/components/layout/web/BreadCrumb2.js
@@ -9,11 +9,11 @@ const Wrapper = styled.div`
font-weight: 400;
height: 3.05rem;
margin-bottom: 1rem;
- margin-top: 1rem;
- padding: 1rem;
+ margin-top: 0.5rem;
+ padding: 1rem 1rem 1rem 0;
`;
export default function BreadCrumb2(props) {
- const naming = props.breadcrumb.category.breadcrumb || props.breadcrumb.category.name;
+ const naming = props?.breadcrumb?.category?.breadcrumb || props?.breadcrumb?.category?.name;
return (
@@ -22,7 +22,7 @@ export default function BreadCrumb2(props) {
{props.breadcrumb && props.breadcrumb.type === "equivalent" && (
<>
- Catégories
+ Thématique
{" > "}{" "}
{props.breadcrumb.equivalent ? (
<>
diff --git a/src/components/layout/web/BreadCrumb3.js b/src/components/layout/web/BreadCrumb3.js
new file mode 100644
index 000000000..1470e12e2
--- /dev/null
+++ b/src/components/layout/web/BreadCrumb3.js
@@ -0,0 +1,27 @@
+import MagicLink from "components/base/MagicLink";
+import Section2 from "components/base/Section2";
+import React from "react";
+import styled from "styled-components";
+
+const Wrapper = styled.div`
+ font-size: 0.75rem;
+ font-weight: 400;
+ height: 3.05rem;
+ margin-bottom: 1rem;
+ margin-top: 1rem;
+ padding: 1rem;
+`;
+export default function BreadCrumb3() {
+ return (
+
+
+
+
+ Accueil
+ {" > "} <>Documentation>
+
+
+
+
+ );
+}
diff --git a/src/components/layout/web/Footer.js b/src/components/layout/web/Footer.js
index dfa1125f8..6e0dd6016 100644
--- a/src/components/layout/web/Footer.js
+++ b/src/components/layout/web/Footer.js
@@ -28,11 +28,17 @@ const FooterLink = styled.div`
padding-bottom: ${(props) => props.pb || "1rem"};
text-align: center;
`;
-export default function Footer() {
+
+const Wrapper = styled.div`
+ margin-top: ${(props) => props.mt || "0"};
+`;
+
+export default function Footer(props) {
const router = useRouter();
- const isSimpleFooter = ["/mentions-legales", "/politique-de-confidentialite"].includes(router.pathname);
+ const pathesWithSimpleFooter = ["/mentions-legales", "/politique-de-confidentialite"];
+ const isSimpleFooter = pathesWithSimpleFooter.includes(router.pathname) || props.simple;
return (
- <>
+
{isSimpleFooter ? (
<>>
) : (
@@ -46,6 +52,9 @@ export default function Footer() {
+
+ Plan du site
+
Accessibilité : non-conforme
@@ -56,6 +65,6 @@ export default function Footer() {
Politique de confidentialité
Version : {process.env.thebuildid}
- >
+
);
}
diff --git a/src/components/layout/web/FooterBlue.js b/src/components/layout/web/FooterBlue.js
new file mode 100644
index 000000000..07b9df939
--- /dev/null
+++ b/src/components/layout/web/FooterBlue.js
@@ -0,0 +1,139 @@
+import Ademe from "components/base/Ademe";
+import FooterLogo from "components/base/FooterLogo";
+import Marianne from "components/base/Marianne";
+import Section3 from "components/base/Section3";
+import Link from "next/link";
+import React from "react";
+import styled from "styled-components";
+
+export default function FooterBlue(props) {
+ return (
+
+
+
+
+
+
+
+
+
+ Impact CO2
+ Le site de ressources qui vulgarise et valorise les données environnementales de l'ADEME
+
+
+
+
+
+ Plan du site
+
+
+
+
+ Accessibilité (non conforme)
+
+
+
+
+ Mentions légales
+
+
+
+
+ Politique de confidentialité
+
+
+ Version : {process.env.thebuildid}
+
+
+
+
+
+
+ );
+}
+
+const Logos = styled.div`
+ align-items: center;
+ display: flex;
+ justify-content: flex-start;
+ margin: 3rem 0 3rem 0;
+ padding: 0 0.75rem;
+ text-decoration: none;
+
+ ${(props) => props.theme.mq.small} {
+ font-size: ${(props) => (props.iframe ? 0.75 : 1)}rem;
+ padding: 0 0.25rem;
+ }
+ ${(props) => props.theme.mq.medium} {
+ margin: 1.5rem 0 0 0;
+ }
+`;
+
+const FooterExplain = styled.div`
+ margin: 3rem 0 3rem 0;
+ p {
+ margin-bottom: 0;
+ }
+ ${(props) => props.theme.mq.medium} {
+ margin: 1.5rem 0 1.5rem 0;
+ }
+`;
+
+const FooterLink = styled.div`
+ a {
+ color: ${(props) => props.theme.colors.deepDarkReversible};
+ cursor: pointer;
+ font-size: 0.75rem;
+ font-weight: 400;
+ letter-spacing: 0em;
+ margin-left: 1.5rem;
+ ${(props) => props.theme.mq.medium} {
+ margin-left: inherit;
+ }
+ text-decoration: none;
+ }
+`;
+
+const Wrapper = styled.div`
+ background-color: ${(props) => props.theme.colors.sky};
+ margin-top: ${(props) => props.mt || "0"};
+`;
+
+const Grid = styled.div`
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ ${(props) => props.theme.mq.medium} {
+ grid-template-columns: repeat(1, 1fr);
+ }
+ > .gridlinks {
+ display: flex;
+ grid-column: span 2;
+ ${(props) => props.theme.mq.medium} {
+ flex-direction: column;
+ grid-column: inherit;
+ }
+ margin-bottom: 1rem;
+ }
+`;
+
+const Version = styled.div`
+ font-size: 0.75rem;
+ font-weight: 300;
+ margin-left: auto;
+ margin-top: inherit;
+ ${(props) => props.theme.mq.medium} {
+ margin-left: inherit;
+ margin-top: 1rem;
+ }
+`;
+
+const LinearGradient = styled.div`
+ background: ${(props) => `linear-gradient(white, ${props.theme.colors.sky})`};
+ height: 8rem;
+`;
diff --git a/src/components/layout/web/Hamburger.js b/src/components/layout/web/Hamburger.js
new file mode 100644
index 000000000..2bfa4ce51
--- /dev/null
+++ b/src/components/layout/web/Hamburger.js
@@ -0,0 +1,38 @@
+import styled from "styled-components";
+
+export default function Hamburger(props) {
+ return (
+
+ {
+ props.hamburgerClicked();
+ }}
+ opened={props.hamburgerOpened}
+ >
+ {props.hamburgerOpened ? (
+ <>X>
+ ) : (
+ <>
+ III
+ >
+ )}
+
+
+ );
+}
+
+const Wrapper = styled.div``;
+const Button = styled.button`
+ background-color: transparent;
+ border: 1px solid gainsboro;
+ border-radius: 4px;
+ color: #746770;
+ cursor: pointer;
+ height: 2rem;
+ padding: ${(props) => (props.opened ? "0" : ".9rem 1rem 1rem 1rem")};
+ width: 2rem;
+`;
+
+const Rotate = styled.div`
+ transform: rotate(-90deg);
+`;
diff --git a/src/components/layout/web/HeaderSweet.js b/src/components/layout/web/HeaderSweet.js
new file mode 100644
index 000000000..517aebd42
--- /dev/null
+++ b/src/components/layout/web/HeaderSweet.js
@@ -0,0 +1,253 @@
+import Hamburger from "./Hamburger";
+import MenuSweet from "./nav/MenuSweet";
+import Ademe from "components/base/Ademe";
+import Logo from "components/base/Logo";
+import Marianne from "components/base/Marianne";
+import Section2 from "components/base/Section2";
+import NavSearchBar from "components/misc/search/NavSearchBar";
+import Link from "next/link";
+import { useState } from "react";
+import styled from "styled-components";
+
+export default function HeaderSweet() {
+ const [hamburgerOpened, setHamburgerOpened] = useState(false);
+
+ const hamburgerClicked = () => {
+ setHamburgerOpened(!hamburgerOpened);
+ };
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Comparateur carbone
+
+
+
+
+ Diffuser les ressources
+
+
+
+
+ Intégrer les ressources
+
+
+
+
+ Statistiques
+
+
+
+
+
+
+
+
+
+ Comparateur carbone
+
+
+
+
+ Diffuser les ressources
+
+
+
+
+ Intégrer les ressources
+
+
+
+
+ Statistiques
+
+
+
+
+
+
+
+
+ );
+}
+
+const NavLinksMobile = styled.div`
+ display: none;
+ padding: 0.5rem 0;
+ ${(props) => props.theme.mq.small} {
+ display: ${(props) => (props.shouldDisplay ? "flex" : "none")};
+ flex-direction: column;
+ }
+`;
+const NavLinksDesktop = styled.div`
+ display: flex;
+ ${(props) => props.theme.mq.small} {
+ display: none;
+ }
+`;
+
+const Header = styled.header`
+ position: relative; // or box-shadow will not appear
+`;
+
+const LogoBar = styled.div`
+ display: flex;
+ justify-content: space-between;
+`;
+
+const Logos = styled.div`
+ display: flex;
+ ${(props) => props.theme.mq.small} {
+ > svg {
+ height: 2em;
+ }
+ > svg.svgademe {
+ height: 4em;
+ }
+ }
+`;
+const Actions = styled.div`
+ display: flex;
+`;
+
+const ActionSearch = styled.div`
+ position: relative;
+ top: 25%;
+ width: 282px;
+ ${(props) => props.theme.mq.small} {
+ width: 0px;
+ }
+`;
+
+const SmallActionSearch = styled.div`
+ position: relative;
+ top: 25%;
+ width: 282px;
+ ${(props) => props.theme.mq.small} {
+ width: auto;
+ }
+ .navSearch {
+ display: flex;
+ margin-top: 0.5rem;
+ }
+ .searchContainer {
+ border-radius: 1rem;
+ position: inherit;
+ width: 230px;
+ ${(props) => props.theme.mq.small} {
+ width: 100%;
+ }
+ }
+`;
+
+const NavBar = styled.nav`
+ border-top: 1px solid #eae5e8;
+ padding: 0.75rem 0;
+ ${(props) => props.theme.mq.small} {
+ padding: 0;
+ }
+`;
+
+const NavLink = styled.div`
+ a {
+ align-items: center;
+ color: #161616;
+ display: flex;
+ font-size: 0.875rem;
+ ${(props) => props.theme.mq.medium} {
+ font-size: 0.75rem;
+ }
+ ${(props) => props.theme.mq.small} {
+ font-size: 0.875rem;
+ }
+ font-weight: 400;
+ height: 2rem;
+ letter-spacing: 0em;
+ margin-right: 1.5rem;
+ ${(props) => props.theme.mq.medium} {
+ margin-left: inherit;
+ }
+ text-decoration: none;
+ }
+`;
+
+const BoxedShadow = styled.div`
+ box-shadow: 0px 2px 6px #f3f6ff;
+ position: relative;
+`;
+
+const Hideable = styled.div`
+ align-items: center;
+ display: flex;
+ ${(props) => props.theme.mq.medium} {
+ display: none;
+ }
+`;
+const NonHideable = styled.div`
+ align-items: center;
+ display: flex;
+ ${(props) => props.theme.mq.medium} {
+ padding: 0.75em 0.75em 0.75em 0;
+ }
+`;
+
+const HamburgerContainer = styled.div`
+ display: none;
+ ${(props) => props.theme.mq.small} {
+ align-items: center;
+ display: flex;
+ }
+`;
diff --git a/src/components/layout/web/Seo.js b/src/components/layout/web/Seo.js
index 0e352f8e9..f9d881dab 100644
--- a/src/components/layout/web/Seo.js
+++ b/src/components/layout/web/Seo.js
@@ -10,8 +10,8 @@ export default function Seo(props) {
description:
props.description ||
`Découvrez l’impact sur le climat des objets et gestes de votre quotidien comme votre mobilier, vos habits ou encore vos repas`,
- image: `https://${process.env.NEXT_PUBLIC_SITE_URL || "impactco2.fr"}/${props.image || "metaimage.png"}`,
- url: `https://${process.env.NEXT_PUBLIC_SITE_URL || "impactco2.fr"}${router.asPath}`,
+ image: `https://${process.env.websiteurl || "impactco2.fr"}/${props.image || "metaimage.png"}`,
+ url: `https://${process.env.websiteurl || "impactco2.fr"}${router.asPath}`,
};
return (
diff --git a/src/components/layout/web/nav/MenuSweet.js b/src/components/layout/web/nav/MenuSweet.js
new file mode 100644
index 000000000..98a48dc7b
--- /dev/null
+++ b/src/components/layout/web/nav/MenuSweet.js
@@ -0,0 +1,38 @@
+import DropdownSweet from "./menu/DropdownSweet";
+import Emoji from "components/base/Emoji";
+import DataContext from "components/providers/DataProvider";
+import { useRouter } from "next/router";
+import React, { useContext } from "react";
+import styled from "styled-components";
+
+const Wrapper = styled.nav`
+ display: flex;
+`;
+const StyledEmoji = styled(Emoji)`
+ font-size: 1.25rem;
+ margin: 0 0.25rem 0.25rem 0;
+`;
+export default function MenuSweet(props) {
+ const { categories } = useContext(DataContext);
+
+ const router = useRouter();
+ const slugs = router.asPath.split("/").filter((slug) => slug);
+
+ return (
+
+ slugs.includes(category.slug))}
+ hideon={"never"}
+ >
+ {categories
+ ?.filter((category) => category.display)
+ .map((category) => (
+
+ {category.emoji} {category.name}
+
+ ))}
+
+
+ );
+}
diff --git a/src/components/layout/web/nav/menu/DropdownSweet.js b/src/components/layout/web/nav/menu/DropdownSweet.js
new file mode 100644
index 000000000..bbee640ef
--- /dev/null
+++ b/src/components/layout/web/nav/menu/DropdownSweet.js
@@ -0,0 +1,130 @@
+import MagicLink from "components/base/MagicLink";
+import React, { useEffect, useState } from "react";
+import styled from "styled-components";
+
+const Wrapper = styled.div`
+ ${(props) => props.theme.mq.small} {
+ margin-right: 0.25rem;
+ }
+ ${(props) => props.theme.mq[props.hideon]} {
+ display: none;
+ }
+ margin-right: 1.25rem;
+ position: relative;
+`;
+const List = styled.div`
+ background-color: white;
+ border-radius: 0 0 1rem 1rem;
+ box-shadow: -0.25rem 0.25rem 0.5rem 0 rgba(0, 0, 0, 0.05);
+ left: 0;
+ overflow: hidden;
+ position: absolute;
+ top: 100%;
+ z-index: 999;
+ > a {
+ height: 3rem;
+ width: 300px;
+ ${(props) => props.theme.mq.small} {
+ width: inherit;
+ }
+ }
+`;
+const ButtonDropdown = styled.button`
+ ${(props) => props.theme.mq.small} {
+ padding: 0;
+ }
+ align-items: center;
+ background-color: ${(props) => (props.open ? props.theme.colors.mainLight : "transparent")};
+ border: none;
+ color: #161616;
+ cursor: pointer;
+ display: flex;
+ font-size: 0.875rem;
+ ${(props) => props.theme.mq.medium} {
+ font-size: 0.75rem;
+ margin-right: 1.5rem;
+ }
+ ${(props) => props.theme.mq.small} {
+ margin-top: 0.5rem;
+ font-size: 0.875rem;
+ }
+ height: 2rem;
+ padding: 0 0.25rem 0 0;
+ position: relative;
+ text-decoration: none;
+
+ &:hover {
+ background-color: ${(props) => props.theme.colors.mainLight};
+ }
+
+ svg {
+ margin-left: 0.5rem;
+ transform: rotate(${(props) => (props.open ? 180 : 0)}deg);
+
+ path {
+ fill: #161616;
+ }
+ }
+`;
+export default function Dropdown(props) {
+ const [open, setOpen] = useState(false);
+
+ const handleClick = () => setOpen(false);
+ useEffect(() => {
+ document.addEventListener("click", handleClick);
+
+ return () => {
+ document.removeEventListener("click", handleClick);
+ };
+ }, []);
+
+ return (
+
+ {
+ e.stopPropagation();
+ setOpen((prevOpen) => !prevOpen);
+ }}
+ open={open}
+ current={props.current}
+ as={props.children ? "button" : MagicLink}
+ >
+ {props.label}
+ {" "}
+ {props.children && (
+
+
+
+ )}
+
+ {props.children && open && {props.children}
}
+
+ );
+}
+Dropdown.Item = styled(MagicLink)`
+ color: ${(props) => props.theme.colors[props.current ? "main" : "text"]};
+ display: block;
+ font-size: 0.875rem;
+ padding: 0.75rem 2.5rem 0.5rem 1.5rem;
+ position: relative;
+ text-decoration: none;
+ white-space: nowrap;
+
+ &:before {
+ background-color: ${(props) => props.theme.colors.secondDark};
+ bottom: 0;
+ content: "";
+ height: 0.0625rem;
+ left: 1rem;
+ position: absolute;
+ right: 1rem;
+ }
+ &:last-child {
+ padding: 0.75rem 1.5rem 1rem;
+ }
+
+ &:hover {
+ background-color: ${(props) => props.theme.colors.secondDark};
+ }
+`;
diff --git a/src/components/livraison/AdviceLivraison.js b/src/components/livraison/AdviceLivraison.js
index bb1131dbd..6473a3332 100644
--- a/src/components/livraison/AdviceLivraison.js
+++ b/src/components/livraison/AdviceLivraison.js
@@ -24,7 +24,7 @@ export default function AdviceLivraison() {
Conseil pour réduire l’impact carbone de vos livraisons
-
+
Estimez l'impact de votre livraison
-
setSocial(true)} className="noscreenshot">
+ setSocial(true)} className="noscreenshot" id="shareUp">
setHypothesisLivraison(true)}>Comprendre le calcul
+ =
@@ -50,23 +51,19 @@ export default function ResultatLivraison(props) {
const BlueGrid = styled.div`
background-color: #457be7;
- border-bottom-left-radius: 16px;
- border-top-left-radius: 16px;
+ border-bottom-left-radius: 14px;
+ border-top-left-radius: 14px;
color: white;
display: grid;
- grid-template-columns: 30px 140px;
- ${(props) => props.theme.mq.large} {
- grid-template-columns: 1px 140px;
- }
- ${(props) => props.theme.mq.small} {
- grid-template-columns: 30px 1fr;
- }
+ grid-template-columns: 30px 1fr;
margin: auto;
padding: 0.5rem 1rem 1rem 1rem;
width: fit-content;
${(props) => props.theme.mq.small} {
+ padding: 0.5rem 1rem 1.5rem 1rem;
border-bottom-left-radius: 0;
- border-top-right-radius: 16px;
+ border-top-right-radius: 14px;
+ width: auto;
}
> .item1 {
align-items: center;
@@ -74,6 +71,10 @@ const BlueGrid = styled.div`
justify-content: end;
margin-right: 4px;
}
+ > .item2 {
+ display: flex;
+ flex-direction: column;
+ }
> .item3 {
grid-row: span 3;
position: relative;
@@ -100,13 +101,13 @@ const ActualResult = styled.span`
font-size: 1.5rem;
}
font-weight: 700;
- line-height: 56px;
`;
const Units = styled.span`
font-size: 18px;
font-weight: 400;
- line-height: 40px;
+ margin-bottom: 13px;
+ margin-top: -5px;
`;
const Subexplain = styled.span`
@@ -130,16 +131,6 @@ const UnderstandLink = styled.div`
const Arrow = styled.div`
background: #457be7;
- clip-path: polygon(100% 50%, 0 0, 0 100%);
- height: 100%;
- /* margin-left: px; */
- width: 30px;
- ${(props) => props.theme.mq.small} {
- clip-path: polygon(100% 0%, 52.5% 49.75%, 48.75% 49.75%, 0% 0%);
- height: 30px;
- margin-top: -1px;
- width: 100%;
- }
`;
const Wrapper = styled.div`
@@ -151,11 +142,28 @@ const Wrapper = styled.div`
`;
const CenteredBlock = styled.div`
- background-color: #457be7;
- border-bottom-left-radius: 14px;
+ position: relative;
+`;
+
+const EqualSign = styled.div`
+ align-items: center;
+ background-color: white;
+ border: 2px solid #eae5e8;
+ border-radius: 3rem;
+ color: #457be7;
+ display: flex;
+ font-size: 2rem;
+ height: 2.2rem;
+ justify-content: center;
+ outline: 2px solid white;
+ padding-bottom: 0.4rem;
+ position: absolute;
+ right: -1.05rem;
+ top: 1.25rem;
+ width: 2.2rem;
${(props) => props.theme.mq.small} {
- border-bottom-left-radius: 0;
+ bottom: -1rem;
+ right: 50%;
+ top: inherit;
}
- border-top-left-radius: 14px;
- border-top-right-radius: 14px;
`;
diff --git a/src/components/livraison/ResultatsLivraison.js b/src/components/livraison/ResultatsLivraison.js
index 388ab2fc1..6feffa49c 100644
--- a/src/components/livraison/ResultatsLivraison.js
+++ b/src/components/livraison/ResultatsLivraison.js
@@ -1,38 +1,110 @@
import ResultatLivraison from "./ResultatLivraison";
-import { default_eqs } from "components/livraison/data.js";
+import { default_eqs } from "components/livraison/data";
import LivraisonEq from "components/misc/tiles/LivraisonEq";
import DataContext from "components/providers/DataProvider";
+import ModalContext from "components/providers/ModalProvider";
import React, { useContext } from "react";
import styled from "styled-components";
import useLocalStorage from "use-local-storage";
export default function ResultatsLivraison(props) {
+ const [eqvChosen] = useLocalStorage("ico2_eqv_chosen", default_eqs);
const { equivalents } = useContext(DataContext);
- const [whitelist] = useLocalStorage("ico2_whitelist", default_eqs);
- const GetEq = (indx) => equivalents.find((e) => e.slug === whitelist[indx]);
+ const { setEqv } = useContext(ModalContext);
+
+ const changeClicked = () => {
+ window?.please?.track(["trackEvent", "Interaction", "Modal", "livraison_modifier_equivalent"]);
+ setEqv("nonecheck");
+ };
+
+ const getEq = (indx) => {
+ return equivalents.find((e) => e.slug === eqvChosen[indx]);
+ };
+
+ const buildLivraisonEq = (indx) => {
+ let eq = getEq(indx);
+ if (eq) {
+ return ;
+ } else {
+ return <>>;
+ }
+ };
return (
-
-
-
+
+ {buildLivraisonEq(0)}
+ {buildLivraisonEq(1)}
+ {buildLivraisonEq(2)}
+
+
+ Modifier les équivalences
+
+
+
);
}
+const ButtonChange = styled.button`
+ background-color: white;
+ border-color: #b5abb2;
+ border-radius: 8px;
+ border-style: solid;
+ border-width: 1px;
+ color: #564d53;
+ cursor: pointer;
+ font-size: 14px;
+ font-weight: 500;
+ letter-spacing: 0em;
+ line-height: 24px;
+ min-width: 190px;
+ padding: 4px 12px 4px 12px;
+ ${(props) => props.theme.mq.large} {
+ max-width: 6rem;
+ padding: 0.1rem;
+ }
+ ${(props) => props.theme.mq.small} {
+ margin-bottom: 0.5rem;
+ margin-top: 0.5rem;
+ }
+ text-align: center;
+`;
+
const Wrapper = styled.div`
border: 1px solid #457be7;
border-radius: 16px;
display: grid;
- grid-template-columns: 230px repeat(3, 1fr);
- ${(props) => props.theme.mq.large} {
- grid-template-columns: 205px repeat(3, 1fr);
- }
+ grid-template-columns: auto repeat(1, 1fr);
margin-top: 1rem;
${(props) => props.theme.mq.small} {
grid-template-columns: 1fr;
- grid-template-rows: repeat(4, 1fr);
+ grid-template-rows: 1fr;
+ }
+`;
+
+const UpperEq = styled.div`
+ display: grid;
+ grid-template-columns: ${(props) => (props.nbCol === 3 ? "repeat(3, auto)" : "repeat(2, auto)")};
+ grid-template-rows: 1.25fr 1fr;
+ ${(props) => props.theme.mq.small} {
+ grid-template-columns: ${(props) => (props.nbCol === 3 ? "1fr" : "repeat(2, 1fr)")};
+ margin-top: 1.5rem;
+ }
+`;
+
+const ButtonContainer = styled.div`
+ align-items: center;
+ border-top: 1px solid #eae5e8;
+ display: flex;
+ ${(props) => props.theme.mq.small} {
+ grid-column: ${(props) => (props.nbCol === 3 ? "inherit" : "span 2")};
}
+ grid-column: ${(props) => (props.nbCol === 3 ? "span 3" : "span 2")};
+ justify-content: flex-end;
+ margin-left: 1rem;
+ margin-right: 1rem;
+ min-width: 220px;
`;
diff --git a/src/components/livraison/data.js b/src/components/livraison/data.js
index 5d55d33b3..6f5f78b9a 100644
--- a/src/components/livraison/data.js
+++ b/src/components/livraison/data.js
@@ -52,3 +52,8 @@ export const trajs = [
{ displayed: "Domicile-magasin de proximité ", uid: "dom_mag", publicode: "" },
];
export const default_eqs = ["voiturethermique", "repasavecduboeuf", "streamingvideo"];
+export const default_eqs_ticked = [
+ { slug: "voiturethermique", name: "Voiture thermique" },
+ { slug: "repasavecduboeuf", name: "Repas avec du boeuf" },
+ { slug: "streamingvideo", name: "Streaming vidéo" },
+];
diff --git a/src/components/misc/search/NavSearchBar.js b/src/components/misc/search/NavSearchBar.js
new file mode 100644
index 000000000..2f2400c0c
--- /dev/null
+++ b/src/components/misc/search/NavSearchBar.js
@@ -0,0 +1,154 @@
+import Fuse from "../../../../node_modules/fuse.js/dist/fuse.basic.esm.min.js";
+import Suggestions from "./searchBar/Suggestions";
+import TextInputSmall from "./searchBar/TextInputSmall";
+import DataContext from "components/providers/DataProvider";
+import { useRouter } from "next/router";
+import React, { useContext, useEffect, useRef, useState } from "react";
+import styled from "styled-components";
+
+export default function NavSearchBar(props) {
+ const { equivalents, categories } = useContext(DataContext);
+ const [search, setSearch] = useState("");
+
+ const [results, setResults] = useState([]);
+ const [fuse, setFuse] = useState(null);
+ useEffect(() => {
+ if (equivalents) {
+ setFuse(
+ new Fuse(equivalents, {
+ keys: [
+ {
+ name: "name",
+ weight: 1,
+ },
+ {
+ name: "slug",
+ weight: 0.7,
+ },
+ {
+ name: "subtitle",
+ weight: 0.4,
+ },
+ {
+ name: "synonyms",
+ weight: 0.2,
+ },
+ ],
+ threshold: 0.3,
+ ignoreLocation: true,
+ })
+ );
+ }
+ }, [equivalents]);
+
+ useEffect(() => {
+ if (fuse && search.length > 1) {
+ setResults(fuse.search(search.normalize("NFD").replace(/[\u0300-\u036f]/g, "")));
+ } else {
+ setResults([]);
+ }
+ }, [search, fuse]);
+
+ const [focus, setFocus] = useState(false);
+ const input = useRef(null);
+ const [current, setCurrent] = useState(0);
+
+ useEffect(() => {
+ setCurrent(0);
+ if (!focus) {
+ input.current && input.current.blur();
+ }
+ }, [focus, results]);
+
+ const router = useRouter();
+
+ const navigateToItem = ({ item }) => {
+ router.push(
+ item.category
+ ? `/${categories.find((category) => category.id === item.category).slug}/${item.slug}`
+ : `/${item.slug}`
+ );
+ };
+
+ return (
+ {
+ e.preventDefault();
+ if (search.length > 1) {
+ if (results[current]) {
+ navigateToItem(results[current]);
+ } else {
+ navigateToItem({ item: categories[current] });
+ }
+ }
+ }}
+ className={props.className}
+ >
+
+
+
+
+ {focus && (
+ 1}
+ results={results}
+ categories={categories}
+ focus={focus}
+ current={current}
+ setCurrent={setCurrent}
+ handleSuggestionClick={navigateToItem}
+ />
+ )}
+
+
+
+
+ );
+}
+
+const Wrapper = styled.form``;
+
+const NavSearch = styled.div`
+ position: relative;
+ width: 300px;
+ ${(props) => props.theme.mq.small} {
+ display: none;
+ width: 100%;
+ }
+`;
+
+const NavActions = styled.div`
+ display: flex;
+`;
+
+const SearchContainer = styled.div`
+ background-color: ${(props) => (props.focus ? props.theme.colors.background : "transparent")};
+ border: 1px solid #eae5e8;
+ border-radius: 0.625em;
+ box-shadow: ${(props) =>
+ props.focus ? "0px 4px 10px 0px rgba(0, 17, 51, 0.08)" : "0px 4px 10px 0px rgba(0, 17, 51, 0.04)"};
+ left: 0;
+ overflow: hidden;
+ position: absolute;
+ right: 0;
+ top: 0;
+ z-index: 100;
+
+ ${(props) => props.theme.mq.small} {
+ border-radius: ${(props) => (props.home || props.focus ? " 0.625em" : "4rem")};
+ left: ${(props) => (props.home ? 0 : "auto")};
+ width: ${(props) => (props.home ? "auto" : props.focus ? "calc(100vw - 1.5rem)" : "2.375rem")};
+ }
+`;
diff --git a/src/components/misc/search/SearchBar2.js b/src/components/misc/search/SearchBar2.js
index 97886291b..2a507375e 100644
--- a/src/components/misc/search/SearchBar2.js
+++ b/src/components/misc/search/SearchBar2.js
@@ -7,23 +7,23 @@ import React, { useContext, useEffect, useRef, useState } from "react";
import styled from "styled-components";
const Wrapper = styled.form`
- height: 100%;
> input {
height: 100%;
}
${(props) => props.theme.mq[props.hideon]} {
display: none;
}
- border: ${(props) => (props.focus ? `0.125rem solid ${props.theme.colors.main}` : "none")};
+ border: ${(props) => (props.focus ? `0.125rem solid ${props.theme.colors.main}` : "none")};
border-radius: ${(props) => (props.home || props.focus ? " 0.625em" : "4rem")};
box-shadow: ${(props) => (props.focus ? "-0.25rem 0.25rem 0.5rem 0 rgba(0, 0, 0, 0.05)" : "none")};
cursor: pointer;
+ height: 100%;
left: ${(props) => (props.home ? 0 : "auto")};
- max-width: ${(props) => (props.focus ? "calc(100vw - 1.5rem)" : "2.75rem")};
margin-right: ${(props) => (props.focus ? "1rem" : "0")};
+ max-width: ${(props) => (props.focus ? "calc(100vw - 1.5rem)" : "2.75rem")};
right: 0;
top: 0;
- width: ${(props) => (props.home ? "auto" : props.focus ? "calc(100vw - 1.5rem)" : "1rem")}
+ width: ${(props) => (props.home ? "auto" : props.focus ? "calc(100vw - 1.5rem)" : "1rem")};
z-index: 100;
`;
diff --git a/src/components/misc/search/searchBar/TextInputSmall.js b/src/components/misc/search/searchBar/TextInputSmall.js
new file mode 100644
index 000000000..34d71630d
--- /dev/null
+++ b/src/components/misc/search/searchBar/TextInputSmall.js
@@ -0,0 +1,96 @@
+import React from "react";
+import styled from "styled-components";
+import { formatName } from "utils/formatters";
+
+const Wrapper = styled.div`
+ overflow: hidden;
+ position: relative;
+`;
+const Input = styled.input`
+ background-image: url("data:image/svg+xml,%3Csvg width='72px' height='68px' viewBox='0 0 72 68' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E%3Cg id='imgloop' transform='translate(5.000000, 5.000000)' stroke='%23B5ABB2' stroke-width='10'%3E%3Ccircle id='Oval' cx='25.5' cy='25.5' r='25.5'%3E%3C/circle%3E%3Cpath d='M47.5,43.5 L59.5415946,55.5415946' id='Line' stroke-linecap='square'%3E%3C/path%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
+ background-position: 96% 53%;
+ background-repeat: no-repeat;
+ background-size: 6%;
+ ${(props) => props.theme.mq.small} {
+ background-size: 4%;
+ }
+ ${(props) => props.theme.mq.xsmall} {
+ background-size: 5%;
+ }
+ border: none;
+ color: ${(props) => props.theme.colors.text};
+ font-size: 1em;
+ font-weight: normal;
+ line-height: 1.25;
+ padding: 0.5em 1em;
+ width: 100%;
+
+ &::placeholder {
+ color: ${(props) => props.theme.colors.text};
+ opacity: 0.5;
+ }
+ &:focus {
+ outline: none;
+ }
+`;
+const Suggestion = styled.div`
+ align-items: center;
+ display: flex;
+ left: 0;
+ opacity: ${(props) => (props.visible ? 0.75 : 0)};
+ pointer-events: none;
+ position: absolute;
+ top: 0;
+ white-space: nowrap;
+`;
+const Invisible = styled.div`
+ font-size: 1em;
+ line-height: 1.25;
+ opacity: 0;
+ padding: 0.5em 0.5em 0.5em 2.5em;
+`;
+const Visible = styled.div`
+ margin-top: 0em;
+ padding-left: 1.25em;
+ position: relative;
+
+ &:before {
+ background-color: ${(props) => props.theme.colors.text};
+ content: "";
+ height: 0.05em;
+ left: 0;
+ position: absolute;
+ top: 50%;
+ transform: translateY(-150%);
+ width: 0.75em;
+ }
+`;
+const Name = styled.span``;
+const Subtitle = styled.span`
+ font-weight: 300;
+`;
+
+export default React.forwardRef(function TextInput(props, ref) {
+ return (
+
+ props.setSearch(e.target.value)}
+ onFocus={() => props.setFocus(true)}
+ onBlur={() => props.setFocus(false)}
+ />
+
+ {props.search}
+ {props.suggestion && (
+
+ {formatName(props.suggestion.item.name, 1)}
+ {props.suggestion.item.subtitle && ({formatName(props.suggestion.item.subtitle, 1)}) }
+
+ )}
+
+
+ );
+});
diff --git a/src/components/misc/tiles/LivraisonEq.js b/src/components/misc/tiles/LivraisonEq.js
index 954c99f7b..53c3f5a9f 100644
--- a/src/components/misc/tiles/LivraisonEq.js
+++ b/src/components/misc/tiles/LivraisonEq.js
@@ -1,6 +1,5 @@
import Emoji from "components/base/Emoji";
-import ModalContext from "components/providers/ModalProvider";
-import React, { useContext } from "react";
+import { Media, MediaBody, MediaFigure } from "components/base/Media";
import styled from "styled-components";
import { fullSentenceFormat } from "utils/formatters";
@@ -8,48 +7,53 @@ const first2WordsOnly = (sentence) => sentence.split(" ").slice(0, 2).join(" ");
const first2WordsRemoved = (sentence) => sentence.split(" ").slice(2).join(" ");
export default function LivraisonEq(props) {
- const { setEqv } = useContext(ModalContext);
-
- const changeClicked = () => {
- window?.please?.track(["trackEvent", "Interaction", "Modal", "livraison_modifier_equivalent"]);
- setEqv(props.slug);
- };
-
return (
-
-
- {props?.equivalent?.emoji}
-
- {first2WordsOnly(fullSentenceFormat(props))}
-
-
- {first2WordsRemoved(fullSentenceFormat(props)) || }
-
-
-
-
- Modifier l'équivalence
-
-
+
+
+
+
+ {props?.equivalent?.emoji}
+
+
+
+ {first2WordsOnly(fullSentenceFormat(props))}
+
+
+ {first2WordsRemoved(fullSentenceFormat(props)) || }
+
+
+
+
+
);
}
const Wrapper = styled.div`
- align-content: center;
- display: grid;
- grid-template-columns: 40px 1fr;
+ align-items: ${(props) => (props.nbCol === 3 ? "inherit" : "center")};
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ padding-left: 2.5rem;
${(props) => props.theme.mq.large} {
- grid-template-columns: 1fr;
- > div {
- align-items: center;
- display: flex;
- justify-content: center;
+ padding-left: 1rem;
+ }
+ ${(props) => props.theme.mq.medium} {
+ padding-left: 1rem;
+ }
+ ${(props) => props.theme.mq.small} {
+ align-items: ${(props) => (props.nbCol === 3 ? "center" : "flex-start")};
+ }
+ ${(props) => props.theme.mq.xsmall} {
+ padding-left: 0.5rem;
+ padding-right: 0.5rem;
+ }
+ > div {
+ ${(props) => props.theme.mq.small} {
+ margin-bottom: 1rem;
+ width: ${(props) => (props.nbCol === 3 ? "10rem" : "inherit")};
}
}
- justify-content: center;
- margin-left: auto;
- margin-right: auto;
`;
const EmojiWrapper = styled.div`
@@ -64,38 +68,18 @@ const Number = styled.div`
${(props) => props.theme.mq.large} {
font-size: 1rem;
}
+ ${(props) => props.theme.mq.medium} {
+ font-size: 0.9rem;
+ }
font-weight: 500;
letter-spacing: 0em;
- line-height: 32px;
`;
const OfWhat = styled.div`
- color: #746770;
+ color: ${(props) => props.theme.colors.textGray};
font-size: 14px;
font-weight: 400;
letter-spacing: 0em;
line-height: 16px;
- margin-top: -8px;
-`;
-
-const ButtonChange = styled.button`
- background-color: white;
- border-color: #b5abb2;
- border-radius: 8px;
- border-style: solid;
- border-width: 1px;
- color: #564d53;
- cursor: pointer;
- font-size: 14px;
- font-weight: 500;
- letter-spacing: 0em;
- line-height: 24px;
- margin-right: 0.5rem;
- margin-top: 0.5rem;
- padding: 4px 12px 4px 12px;
- ${(props) => props.theme.mq.large} {
- max-width: 6rem;
- padding: 0.1rem;
- }
- text-align: center;
+ margin-top: -2px;
`;
diff --git a/src/components/modals/ActualChoices.js b/src/components/modals/ActualChoices.js
new file mode 100644
index 000000000..8955f23c9
--- /dev/null
+++ b/src/components/modals/ActualChoices.js
@@ -0,0 +1,129 @@
+import EquivalentSquareChecked from "./tilesModal/EquivalentSquareChecked";
+import DataContext from "components/providers/DataProvider";
+import React, { useContext, useEffect } from "react";
+import styled from "styled-components";
+import useLocalStorage from "use-local-storage";
+
+export default function ActualChoices() {
+ const [eqvArray, setEqvArray] = useLocalStorage("ico2_eqv_array");
+ const { equivalents } = useContext(DataContext);
+ const [, setEqvError] = useLocalStorage("eqvError");
+
+ useEffect(() => {
+ if (eqvArray && eqvArray.length >= 2) {
+ setEqvError("");
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [eqvArray]);
+
+ const removeChoice = (slug) => {
+ const newArray = eqvArray.filter((ticked) => ticked !== slug);
+ setEqvArray(newArray);
+ };
+
+ const getPluralOf = (word) => {
+ let res = word;
+ if (eqvArray.length > 1) {
+ res += "s";
+ }
+ return res;
+ };
+
+ const eqOf = (ticked) => {
+ return equivalents.find((e) => e.slug === ticked);
+ };
+
+ return (
+
+
+
+
+ {eqvArray.length} /3
+ {" "}
+ {getPluralOf("équivalence")} {getPluralOf("sélectionnée")}
+
+
+ {eqvArray.length > 0 ? (
+ <>
+ {eqvArray.map((ticked) => {
+ return (
+ removeChoice(ticked)}
+ />
+ );
+ })}
+ >
+ ) : (
+ <>
+
+ Veuillez choisir au moins 2 items ci-
+ dessous
+ contre .
+
+ >
+ )}
+
+
+
+ );
+}
+
+const Wrapper = styled.div`
+ margin-left: 1.5rem;
+ margin-right: 1rem;
+`;
+
+const SelectionBox = styled.div`
+ background-color: #ebfffe;
+ border-radius: 1rem;
+ padding: 1rem;
+`;
+
+const Choices = styled.div`
+ margin-top: 1.25rem;
+`;
+
+const UpperSide = styled.div`
+ border-bottom: 1px solid #a0f5ee;
+ color: ${(props) => props.theme.colors.persistentText};
+ padding-bottom: 1rem;
+`;
+
+const UpperSideCounting = styled.div`
+ background-color: #a0f5ee;
+ border-radius: 0.25rem;
+ display: inline-block;
+ padding: 0.125rem 0.5rem;
+`;
+
+const Count = styled.strong`
+ margin-right: 0.1rem;
+`;
+
+const MaxCount = styled.span`
+ margin-left: 0.1rem;
+`;
+
+const EmptyChoice = styled.div`
+ font-style: italic;
+ margin-top: 1rem;
+ ${(props) => props.theme.mq.large} {
+ font-size: 0.9rem;
+ }
+`;
+
+const ShowMobile = styled.span`
+ display: none;
+ ${(props) => props.theme.mq.medium} {
+ display: inline;
+ }
+`;
+const ShowDesktop = styled.span`
+ display: inline;
+ ${(props) => props.theme.mq.medium} {
+ display: none;
+ }
+`;
diff --git a/src/components/modals/AllSearch.js b/src/components/modals/AllSearch.js
index 502fa3b88..611836ff6 100644
--- a/src/components/modals/AllSearch.js
+++ b/src/components/modals/AllSearch.js
@@ -1,20 +1,15 @@
import Fuse from "../../../node_modules/fuse.js/dist/fuse.basic.esm.min.js";
-import EquivalentRadio from "./tilesModal/EquivalentRadio";
+import AllSearchCategory from "./AllSearchCategory.js";
import TextInput from "components/base/TextInput";
import DataContext from "components/providers/DataProvider";
import React, { useContext, useEffect, useState } from "react";
import styled from "styled-components";
-import useLocalStorage from "use-local-storage";
export default function AllSearch(props) {
/** */
// eslint-disable-next-line no-unused-vars
const { equivalents } = useContext(DataContext);
- const [eqv1L, setEqv1L] = useLocalStorage("ico2_eqv1L");
- const [eqv2L, setEqv2L] = useLocalStorage("ico2_eqv2L");
- const [eqv3L, setEqv3L] = useLocalStorage("ico2_eqv3L");
-
const [search, setSearch] = useState("");
const [results, setResults] = useState([]);
const [fuse, setFuse] = useState(null);
@@ -54,56 +49,52 @@ export default function AllSearch(props) {
: equivalents.map((equivalent) => ({ item: equivalent })).sort((a, b) => (a.item.slug > b.item.slug ? 1 : -1))
);
}, [search, fuse, equivalents]);
- /** */
return (
setSearch(value)}
- placeholder={"Recherchez un autre équivalent"}
+ placeholder={"Rechercher un objet ou un geste"}
/>
{props.open && (
-
- {results.slice(0, 9).map(({ item }) => (
- {
- if (props.open === 1) return eqv1L === item.slug;
- if (props.open === 2) return eqv2L === item.slug;
- if (props.open === 3) return eqv3L === item.slug;
- })(props.open)}
- setChecked={() => {
- if (props.open === 1) setEqv1L(item.slug);
- if (props.open === 2) setEqv2L(item.slug);
- if (props.open === 3) setEqv3L(item.slug);
- }}
- />
- ))}
- ...
-
+ <>
+
+
+
+
+
+
+
+
+
+
+ >
)}
);
}
const SearchInput = styled(TextInput)`
- margin: 0.5rem;
-`;
-
-const Equivalents = styled.div`
- margin-bottom: 0;
- > button {
- padding: 0;
+ background-image: url("data:image/svg+xml,%3Csvg width='72px' height='68px' viewBox='0 0 72 68' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E%3Cg id='imgloop' transform='translate(5.000000, 5.000000)' stroke='%2326827C' stroke-width='10'%3E%3Ccircle id='Oval' cx='25.5' cy='25.5' r='25.5'%3E%3C/circle%3E%3Cpath d='M47.5,43.5 L59.5415946,55.5415946' id='Line' stroke-linecap='square'%3E%3C/path%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
+ background-position: 98% 53%;
+ background-repeat: no-repeat;
+ background-size: 4%;
+ input::placeholder {
+ font-weight: 300;
+ }
+ ${(props) => props.theme.mq.medium} {
+ background-size: 3%;
}
+ ${(props) => props.theme.mq.small} {
+ background-size: 5%;
+ }
+ margin: 0.5rem 0.5rem 0.5rem 0;
`;
const Wrapper = styled.div`
- margin-bottom: 2rem;
- margin-top: 1rem;
-`;
-
-const ThreeLittleDots = styled.div`
- margin-left: 2.5rem;
+ margin: 1rem 2rem 1rem 1rem;
+ ${(props) => props.theme.mq.medium} {
+ margin-left: 2.25rem;
+ }
`;
diff --git a/src/components/modals/AllSearchCategory.js b/src/components/modals/AllSearchCategory.js
new file mode 100644
index 000000000..bea6f02cb
--- /dev/null
+++ b/src/components/modals/AllSearchCategory.js
@@ -0,0 +1,79 @@
+import EquivalentSquare from "./tilesModal/EquivalentSquare";
+import categories from "data/categories.json";
+import React from "react";
+import styled from "styled-components";
+import useLocalStorage from "use-local-storage";
+
+export default function AllSearchCategory(props) {
+ const [eqvArray, setEqvArray] = useLocalStorage("ico2_eqv_array");
+
+ const theCategory = categories.find((oneCat) => {
+ return oneCat.slug === props.cat;
+ });
+
+ const items = props.items.filter((oneItem) => {
+ return oneItem.item.category === theCategory.id && !eqvArray.find((e) => e === oneItem.item.slug);
+ });
+
+ const itemChosen = (newArray, ticked) => {
+ if (newArray.length > 2) {
+ newArray[2] = newArray[1];
+ newArray[1] = newArray[0];
+ newArray[0] = ticked;
+ } else {
+ newArray.push(ticked);
+ }
+ setEqvArray(newArray);
+ };
+
+ const shouldDisplayCategoryName = (theItems, theSingleton) => {
+ let res = false;
+ let hasAtLeastOneItemInCategory = theItems && theItems.length > 0;
+ let globalSearchHasOnlyOneResult = theSingleton;
+ res = hasAtLeastOneItemInCategory && !globalSearchHasOnlyOneResult;
+ return res;
+ };
+
+ return (
+
+ {shouldDisplayCategoryName(items, props.singleton) ? (
+ <>
+ {theCategory.name}
+ >
+ ) : (
+ <>>
+ )}
+
+ {items.map(({ item }) => (
+ {
+ let ticked = item.slug;
+ itemChosen(JSON.parse(JSON.stringify(eqvArray)), ticked);
+ }}
+ />
+ ))}
+
+
+ );
+}
+
+const Equivalents = styled.div`
+ margin-bottom: ${(props) => props.mb};
+ > button {
+ padding: 0;
+ }
+`;
+
+const Wrapper = styled.div`
+ margin-bottom: 2rem;
+ margin-top: 1rem;
+`;
+
+const TheCategoryName = styled.div`
+ color: #26827c;
+ font-weight: 700;
+ margin-bottom: 0.5rem;
+`;
diff --git a/src/components/modals/DetailLivraisonModal2.js b/src/components/modals/DetailLivraisonModal2.js
index aa155b4f1..aa2042607 100644
--- a/src/components/modals/DetailLivraisonModal2.js
+++ b/src/components/modals/DetailLivraisonModal2.js
@@ -1,6 +1,8 @@
import MagicLink from "components/base/MagicLink";
import Modal2 from "components/base/Modal2";
+import NewTabIcon from "components/base/NewTabIcon";
import ModalContext from "components/providers/ModalProvider";
+import Link from "next/link";
import React, { useContext } from "react";
import styled from "styled-components";
@@ -203,6 +205,12 @@ export default function DetailLivraisonModal2() {
Déplacement consommateur
+ Pour aller plus loin
+
+
+ Consultez notre documentation
+
+
);
diff --git a/src/components/modals/EqModal3.js b/src/components/modals/EqModal3.js
deleted file mode 100644
index 2c3b595ab..000000000
--- a/src/components/modals/EqModal3.js
+++ /dev/null
@@ -1,99 +0,0 @@
-import AllSearch from "./AllSearch";
-import Button from "components/base/Button";
-import Modal3 from "components/base/Modal3";
-import { default_eqs } from "components/livraison/data.js";
-import ModalContext from "components/providers/ModalProvider";
-import React, { useContext } from "react";
-import styled from "styled-components";
-import useLocalStorage from "use-local-storage";
-
-const getTitle = () => {
- return (
-
- Choisir une autre équivalence
-
- );
-};
-
-export default function EqModal3() {
- const { eqv: open, setEqv: setOpen } = useContext(ModalContext);
- const [whitelist, setWhitelist] = useLocalStorage("ico2_whitelist");
-
- const [eqv1L, setEqv1L] = useLocalStorage("ico2_eqv1L");
- const [eqv2L, setEqv2L] = useLocalStorage("ico2_eqv2L");
- const [eqv3L, setEqv3L] = useLocalStorage("ico2_eqv3L");
-
- const validateEqv = () => {
- setWhitelist([eqv1L || default_eqs[0], eqv2L || default_eqs[1], eqv3L || default_eqs[2]]);
- setOpen(false);
- };
-
- const dismiss = () => {
- setEqv1L(whitelist[0] || default_eqs[0]);
- setEqv2L(whitelist[1] || default_eqs[1]);
- setEqv3L(whitelist[2] || default_eqs[2]);
- setOpen(false);
- };
-
- return (
-
- Sélectionnez (ou désélectionnez) un équivalent pour créer votre infographie personnalisée.
- Choisir un autre équivalent
-
-
- Valider et fermer
- Annuler
-
-
- );
-}
-
-const Title = styled.h2`
- font-size: 22px;
- margin: 1rem 0;
-`;
-
-const GreenText = styled.span`
- color: #1c9b93;
-`;
-
-const Intro = styled.div`
- font-size: 16px;
- font-weight: 300;
- letter-spacing: 0em;
- line-height: 24px;
-`;
-
-const H2Title = styled.div`
- color: #1c9b93;
- font-size: 16px;
- font-weight: 700;
- letter-spacing: 0em;
- line-height: 24px;
- margin-top: 2rem;
-`;
-
-const ButtonValidation = styled(Button)`
- border-radius: 8px;
-`;
-
-const ButtonCancel = styled.button`
- background-color: white;
- border-color: #b5abb2;
- border-radius: 8px;
- border-style: solid;
- border-width: 1px;
- color: #564d53;
- cursor: pointer;
- font-size: 16px;
- font-weight: 500;
- letter-spacing: 0em;
- line-height: 24px;
- margin-left: 0.5rem;
- padding: 8px 16px 8px 16px;
- text-align: center;
-`;
-
-const Flex = styled.div`
- display: flex;
-`;
diff --git a/src/components/modals/EqModal4.js b/src/components/modals/EqModal4.js
new file mode 100644
index 000000000..943d8b6b9
--- /dev/null
+++ b/src/components/modals/EqModal4.js
@@ -0,0 +1,220 @@
+import ActualChoices from "./ActualChoices";
+import AllSearch from "./AllSearch";
+import Button from "components/base/Button";
+import Modal4 from "components/base/Modal4";
+import { default_eqs } from "components/livraison/data.js";
+import ModalContext from "components/providers/ModalProvider";
+import React, { useContext } from "react";
+import styled from "styled-components";
+import useLocalStorage from "use-local-storage";
+
+const getTitle = () => {
+ return (
+
+ Choisir d'autres équivalences
+
+ );
+};
+
+export default function EqModal4() {
+ const { eqv: open, setEqv: setOpen } = useContext(ModalContext);
+ const [eqvArray, setEqvArray] = useLocalStorage("ico2_eqv_array", default_eqs);
+ const [eqvChosen, setEqvChosen] = useLocalStorage("ico2_eqv_chosen", default_eqs);
+
+ // eslint-disable-next-line no-unused-vars
+ const [eqvError, setEqvError] = useLocalStorage("eqvError", "");
+
+ const validateEqv = () => {
+ if (eqvArray.length >= 2) {
+ setEqvChosen(JSON.parse(JSON.stringify(eqvArray)));
+ setEqvError("");
+ setOpen(false);
+ } else {
+ setEqvError("Merci de sélectionner au moins deux objets pour effectuer une comparaison.");
+ }
+ };
+
+ const dismiss = () => {
+ setEqvArray(JSON.parse(JSON.stringify(eqvChosen)));
+ setOpen(false);
+ };
+
+ return (
+
+
+ {!eqvError ? (
+ <>Sélectionnez plusieurs équivalences pour comparer votre impact et créer votre infographie personnalisée.>
+ ) : (
+ <>
+
+ Sélectionnez plusieurs équivalences pour comparer votre impact et créer votre infographie personnalisée.
+
+
+ ⚠️ {eqvError}
+
+ >
+ )}
+
+
+
+
+
+
+
+
+
+
+
+ {eqvError ? (
+ <>
+ ⚠️ {eqvError}
+ >
+ ) : (
+ <>>
+ )}
+
+
+
+ Valider et fermer
+ Valider
+
+
+ Annuler
+ X
+
+
+
+
+
+
+ );
+}
+const Scroll = styled.div`
+ height: 600px;
+ overflow: auto;
+ padding-bottom: 100px;
+ &:after {
+ content: "";
+ display: block;
+ height: 0px;
+ ${(props) => props.theme.mq.medium} {
+ height: 120px;
+ }
+ ${(props) => props.theme.mq.small} {
+ height: 150px;
+ }
+ ${(props) => props.theme.mq.xsmall} {
+ height: 190px;
+ }
+ width: 100%;
+ }
+`;
+
+const Title = styled.h2`
+ font-size: 22px;
+ margin: 1rem 0;
+`;
+
+const GreenText = styled.span`
+ color: #1c9b93;
+`;
+
+const Intro = styled.div`
+ font-size: 16px;
+ font-weight: 300;
+ letter-spacing: 0em;
+ line-height: 24px;
+ margin: 1rem 0;
+ padding-left: 1.5rem;
+`;
+
+const ButtonValidation = styled(Button)`
+ border-radius: 8px;
+ &:hover {
+ color: ${(props) => props.theme.colors.persistentText};
+ }
+ width: 200px;
+ ${(props) => props.theme.mq.medium} {
+ padding: 2px 4px 2px 4px;
+ width: 80px;
+ }
+`;
+
+const ButtonCancel = styled.button`
+ background-color: white;
+ border-color: #b5abb2;
+ border-radius: 8px;
+ border-style: solid;
+ border-width: 1px;
+ color: #564d53;
+ cursor: pointer;
+ font-size: 16px;
+ font-weight: 500;
+ letter-spacing: 0em;
+ line-height: 24px;
+ margin-left: 0.5rem;
+ padding: 8px 16px 8px 16px;
+ text-align: center;
+`;
+
+const ValidationZone = styled.div`
+ background-color: white;
+ bottom: 0;
+ box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.1);
+ display: flex;
+ left: 0;
+ position: fixed;
+ width: 100%;
+`;
+
+const ValidationButtons = styled.div`
+ display: flex;
+ margin-left: auto;
+ margin-right: 1rem;
+ padding: 1rem 0;
+`;
+
+const GridSplit = styled.div`
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ ${(props) => props.theme.mq.medium} {
+ grid-template-columns: repeat(1, 1fr);
+ }
+ grid-template-rows: 1fr;
+`;
+
+const GridSplitLeft = styled.div``;
+
+const GridSplitRight = styled.div``;
+
+const ValidationMsg = styled.div`
+ align-items: center;
+ border-radius: 0.25rem;
+ display: flex;
+ padding: 1rem 1rem 1rem 2rem;
+ ${(props) => props.theme.mq.small} {
+ font-size: 0.75rem;
+ padding-right: 0.25rem;
+ }
+ ${(props) => props.theme.mq.xsmall} {
+ padding-left: 0.2rem;
+ }
+`;
+
+const ShowMobile = styled.span`
+ display: none;
+ ${(props) => props.theme.mq.medium} {
+ display: inline;
+ }
+`;
+const ShowDesktop = styled.span`
+ display: inline;
+ ${(props) => props.theme.mq.medium} {
+ display: none;
+ }
+`;
+
+const EqvError = styled.div`
+ color: red;
+ font-weight: bold;
+`;
diff --git a/src/components/modals/ExplainArrow.js b/src/components/modals/ExplainArrow.js
index bfc91e908..9dca54084 100644
--- a/src/components/modals/ExplainArrow.js
+++ b/src/components/modals/ExplainArrow.js
@@ -1,6 +1,6 @@
import styled from "styled-components";
-export default function ResultatLivraison() {
+export default function ExplainArrow() {
return (
@@ -25,8 +25,8 @@ export default function ResultatLivraison() {
const BlueGrid = styled.div`
background-color: #457be7;
- border-bottom-left-radius: 16px;
- border-top-left-radius: 16px;
+ border-bottom-left-radius: 14px;
+ border-top-left-radius: 14px;
color: white;
${(props) => props.theme.mq.xlarge} {
border-bottom-left-radius: 0;
diff --git a/src/components/modals/FruitSearch.js b/src/components/modals/FruitSearch.js
deleted file mode 100644
index e6d7cb1cf..000000000
--- a/src/components/modals/FruitSearch.js
+++ /dev/null
@@ -1,104 +0,0 @@
-import Fuse from "../../../node_modules/fuse.js/dist/fuse.basic.esm.min.js";
-import EquivalentRadio from "./tilesModal/EquivalentRadio";
-import TextInput from "components/base/TextInput";
-import DataContext from "components/providers/DataProvider";
-import React, { useContext, useEffect, useState } from "react";
-import styled from "styled-components";
-import useLocalStorage from "use-local-storage";
-
-export default function FruitSearch(props) {
- const { equivalents } = useContext(DataContext);
-
- const [eqv1L, setEqv1L] = useLocalStorage("ico2_eqv1L");
- const [eqv2L, setEqv2L] = useLocalStorage("ico2_eqv2L");
- const [eqv3L, setEqv3L] = useLocalStorage("ico2_eqv3L");
-
- const FRUIT_CATEGORY = 9;
-
- const [search, setSearch] = useState("");
- const [results, setResults] = useState([]);
- const [fuse, setFuse] = useState(null);
-
- useEffect(() => {
- if (equivalents) {
- setFuse(
- new Fuse(equivalents, {
- keys: [
- {
- name: "name",
- weight: 1,
- },
- {
- name: "slug",
- weight: 0.7,
- },
- {
- name: "subtitle",
- weight: 0.4,
- },
- {
- name: "synonyms",
- weight: 0.2,
- },
- ],
- threshold: 0.3,
- ignoreLocation: true,
- })
- );
- }
- }, [equivalents]);
- useEffect(() => {
- setResults(
- fuse && search.length > 0
- ? fuse.search(search.normalize("NFD").replace(/[\u0300-\u036f]/g, ""))
- : equivalents.map((equivalent) => ({ item: equivalent })).sort((a, b) => (a.item.slug > b.item.slug ? 1 : -1))
- );
- }, [search, fuse, equivalents]);
- /** */
-
- return (
-
- setSearch(value)}
- placeholder={"Recherchez un fruit ou un légume"}
- />
- {props.open && (
-
- {results
- .filter((r) => r.item.category === FRUIT_CATEGORY)
- .slice(0, 3)
- .map(({ item }) => (
- {
- if (props.open === 1) return eqv1L === item.slug;
- if (props.open === 2) return eqv2L === item.slug;
- if (props.open === 3) return eqv3L === item.slug;
- })(props.open)}
- setChecked={() => {
- if (props.open === 1) setEqv1L(item.slug);
- if (props.open === 2) setEqv2L(item.slug);
- if (props.open === 3) setEqv3L(item.slug);
- }}
- />
- ))}
-
- )}
-
- );
-}
-
-const SearchInput = styled(TextInput)`
- margin: 0.5rem;
-`;
-
-const Equivalents = styled.div`
- margin-bottom: 0;
- > button {
- padding: 0;
- }
-`;
-
-const Wrapper = styled.div``;
diff --git a/src/components/modals/NumSearch.js b/src/components/modals/NumSearch.js
deleted file mode 100644
index bf66dc243..000000000
--- a/src/components/modals/NumSearch.js
+++ /dev/null
@@ -1,106 +0,0 @@
-import Fuse from "../../../node_modules/fuse.js/dist/fuse.basic.esm.min.js";
-import EquivalentRadio from "./tilesModal/EquivalentRadio";
-import TextInput from "components/base/TextInput";
-import DataContext from "components/providers/DataProvider";
-import React, { useContext, useEffect, useState } from "react";
-import styled from "styled-components";
-import useLocalStorage from "use-local-storage";
-
-export default function NumSearch(props) {
- /** */
- const { equivalents } = useContext(DataContext);
-
- const NUMERIQUE_CATEGORY = 1;
- const USAGE_NUMERIQUE_CATEGORY = 10;
-
- const [eqv1L, setEqv1L] = useLocalStorage("ico2_eqv1L");
- const [eqv2L, setEqv2L] = useLocalStorage("ico2_eqv2L");
- const [eqv3L, setEqv3L] = useLocalStorage("ico2_eqv3L");
-
- const [search, setSearch] = useState("");
- const [results, setResults] = useState([]);
- const [fuse, setFuse] = useState(null);
-
- useEffect(() => {
- if (equivalents) {
- setFuse(
- new Fuse(equivalents, {
- keys: [
- {
- name: "name",
- weight: 1,
- },
- {
- name: "slug",
- weight: 0.7,
- },
- {
- name: "subtitle",
- weight: 0.4,
- },
- {
- name: "synonyms",
- weight: 0.2,
- },
- ],
- threshold: 0.3,
- ignoreLocation: true,
- })
- );
- }
- }, [equivalents]);
- useEffect(() => {
- setResults(
- fuse && search.length > 0
- ? fuse.search(search.normalize("NFD").replace(/[\u0300-\u036f]/g, ""))
- : equivalents.map((equivalent) => ({ item: equivalent })).sort((a, b) => (a.item.slug > b.item.slug ? 1 : -1))
- );
- }, [search, fuse, equivalents]);
- /** */
-
- return (
-
- setSearch(value)}
- placeholder={"Recherchez un objet ou un usage numérique"}
- />
- {props.open && (
-
- {results
- .filter((r) => [USAGE_NUMERIQUE_CATEGORY, NUMERIQUE_CATEGORY].includes(r.item.category))
- .slice(0, 3)
- .map(({ item }) => (
- {
- if (props.open === 1) return eqv1L === item.slug;
- if (props.open === 2) return eqv2L === item.slug;
- if (props.open === 3) return eqv3L === item.slug;
- })(props.open)}
- setChecked={() => {
- if (props.open === 1) setEqv1L(item.slug);
- if (props.open === 2) setEqv2L(item.slug);
- if (props.open === 3) setEqv3L(item.slug);
- }}
- />
- ))}
-
- )}
-
- );
-}
-
-const SearchInput = styled(TextInput)`
- margin: 0.5rem;
-`;
-
-const Equivalents = styled.div`
- margin-bottom: 3rem;
- > button {
- padding: 0;
- }
-`;
-
-const Wrapper = styled.div``;
diff --git a/src/components/modals/ReduireModal3.js b/src/components/modals/ReduireModal3.js
index 2890cb707..6a311e7c8 100644
--- a/src/components/modals/ReduireModal3.js
+++ b/src/components/modals/ReduireModal3.js
@@ -8,9 +8,9 @@ import ReuseBulb from "components/livraison/ReuseBulb";
import ModalContext from "components/providers/ModalProvider";
import React, { useContext, useState } from "react";
import styled from "styled-components";
+import { buildCurrentUrlFor } from "utils/urls";
-const href =
- typeof window !== "undefined" ? window?.location?.href + "#ressource" : "https://impactco2.fr/livraison#ressource";
+const href = buildCurrentUrlFor(process.env.websiteurl, "/livraison#ressource");
const getTitle = () => {
return (
diff --git a/src/components/modals/SocialModal3.js b/src/components/modals/SocialModal3.js
index 04e7e24fe..e1b1ef8c1 100644
--- a/src/components/modals/SocialModal3.js
+++ b/src/components/modals/SocialModal3.js
@@ -8,8 +8,9 @@ import ReuseBulb from "components/livraison/ReuseBulb";
import ModalContext from "components/providers/ModalProvider";
import React, { useContext, useState } from "react";
import styled from "styled-components";
+import { buildCurrentUrlFor } from "utils/urls";
-const href = typeof window !== "undefined" ? window?.location?.href : "";
+const href = buildCurrentUrlFor(process.env.websiteurl, "/livraison");
const getTitle = () => {
return (
diff --git a/src/components/modals/shareModal/CopyUrl.js b/src/components/modals/shareModal/CopyUrl.js
index f5186583f..d4cdf846c 100644
--- a/src/components/modals/shareModal/CopyUrl.js
+++ b/src/components/modals/shareModal/CopyUrl.js
@@ -80,6 +80,7 @@ export default function CopyUrl(props) {
{
if (copy(props.url)) {
props.setCopied(true);
diff --git a/src/components/modals/tilesModal/EquivalentSquare.js b/src/components/modals/tilesModal/EquivalentSquare.js
new file mode 100644
index 000000000..a80667103
--- /dev/null
+++ b/src/components/modals/tilesModal/EquivalentSquare.js
@@ -0,0 +1,66 @@
+import Emoji from "components/base/Emoji";
+import React from "react";
+import styled from "styled-components";
+import { formatName } from "utils/formatters";
+
+const Wrapper = styled.button`
+ align-items: center;
+ background-color: ${(props) => props.theme.colors[props.checked ? "mainLight" : "background"]};
+ border: none;
+ border-radius: 0.5rem;
+ color: ${(props) => props.theme.colors.text};
+ cursor: ${(props) => (props.disabled ? "normal" : "pointer")};
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 0.25rem;
+ opacity: ${(props) => (props.disabled ? 0.3 : 1)};
+ padding: 0.75rem 1.5rem 0.75rem 1rem;
+ position: relative;
+ width: 100%;
+ &:hover {
+ background-color: ${(props) => props.theme.colors.mainLight};
+ }
+`;
+const Label = styled.span`
+ display: block;
+ font-size: ${(props) => (props.small ? 0.875 : 1)}rem;
+ line-height: 1.2;
+ text-align: left;
+`;
+const Subtitle = styled.span`
+ font-weight: 300;
+`;
+const Left = styled.div`
+ align-items: center;
+ display: flex;
+ gap: 0.75rem;
+`;
+const StyledEmoji = styled(Emoji)`
+ font-size: 1.25rem;
+`;
+export default function EquivalentSquare(props) {
+ return (
+ props.setChecked(!props.checked)}
+ className="equivalent-radio"
+ >
+
+
+
+ {formatName(props.equivalent.name, 1, true)}{" "}
+ {props.equivalent.subtitle && ({formatName(props.equivalent.subtitle, 1)}) }
+
+
+ {props.equivalent.emoji}
+
+ );
+}
+
+const GreenSquare = styled.div`
+ border: 1px solid #26827c;
+ border-radius: 4px;
+ height: 24px;
+ width: 24px;
+`;
diff --git a/src/components/modals/tilesModal/EquivalentSquareChecked.js b/src/components/modals/tilesModal/EquivalentSquareChecked.js
new file mode 100644
index 000000000..00459d28f
--- /dev/null
+++ b/src/components/modals/tilesModal/EquivalentSquareChecked.js
@@ -0,0 +1,76 @@
+import React from "react";
+import styled from "styled-components";
+import { formatName } from "utils/formatters";
+
+const Wrapper = styled.button`
+ align-items: center;
+ background-color: transparent;
+ &:hover {
+ background-color: ${(props) => props.theme.colors[props.checked ? "mainLight" : "background"]};
+ }
+ border: none;
+ border-radius: 0.5rem;
+ color: ${(props) => props.theme.colors.text};
+ cursor: ${(props) => (props.disabled ? "normal" : "pointer")};
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 0.5rem;
+ opacity: ${(props) => (props.disabled ? 0.3 : 1)};
+ position: relative;
+ width: 100%;
+`;
+const Label = styled.span`
+ color: ${(props) => props.theme.colors.persistentText};
+ &:hover {
+ color: ${(props) => props.theme.colors.main};
+ }
+ display: block;
+ font-size: ${(props) => (props.small ? 0.875 : 1)}rem;
+ line-height: 1.2;
+ text-align: left;
+`;
+const Subtitle = styled.span`
+ font-weight: 300;
+`;
+const Left = styled.div`
+ align-items: center;
+ display: flex;
+ gap: 0.75rem;
+`;
+const GreenSquare = styled.div`
+ background-color: #26827c;
+ border: 1px solid #26827c;
+ border-radius: 4px;
+ height: 24px;
+ width: 24px;
+`;
+const Tick = styled.div`
+ border-bottom: 2px solid white;
+ border-right: 2px solid white;
+ display: inline-block;
+ height: 10px;
+ margin-bottom: 0px;
+ margin-left: 10%;
+ transform: rotate(45deg);
+ width: 5px;
+`;
+export default function EquivalentSquareChecked(props) {
+ return (
+ props.setChecked(!props.checked)}
+ className="equivalent-radio"
+ >
+
+
+
+
+
+ {formatName(props.equivalent.name, 1, true)}{" "}
+ {props.equivalent.subtitle && ({formatName(props.equivalent.subtitle, 1)}) }
+
+
+
+ );
+}
diff --git a/src/components/providers/DataProvider.js b/src/components/providers/DataProvider.js
index f7a812b19..4fba24ba2 100644
--- a/src/components/providers/DataProvider.js
+++ b/src/components/providers/DataProvider.js
@@ -32,9 +32,6 @@ const equivalents = [
export function DataProvider(props) {
const [tiles, setTiles] = useState([]);
- const [eqv1, setEqv1] = useState({});
- const [eqv2, setEqv2] = useState({});
- const [eqv3, setEqv3] = useState({});
const [eqvTarget, setEqvTarget] = useState("");
return (
@@ -43,12 +40,6 @@ export function DataProvider(props) {
equivalents,
categories,
ecv,
- eqv1,
- setEqv1,
- eqv2,
- setEqv2,
- eqv3,
- setEqv3,
eqvTarget,
setEqvTarget,
tiles,
diff --git a/src/components/providers/ModalProvider.js b/src/components/providers/ModalProvider.js
index 8d645e287..ec451837a 100644
--- a/src/components/providers/ModalProvider.js
+++ b/src/components/providers/ModalProvider.js
@@ -3,7 +3,7 @@ import DetailLivraisonModal2 from "components/modals/DetailLivraisonModal2";
import DetailsUsagesNumModal from "components/modals/DetailsUsagesNumModal";
import DevicesModal from "components/modals/DevicesModal";
import EcvModal from "components/modals/EcvModal";
-import EqModal3 from "components/modals/EqModal3";
+import EqModal4 from "components/modals/EqModal4";
import IFrameLivraisonModal3 from "components/modals/IFrameLivraisonModal3";
import ReduireModal3 from "components/modals/ReduireModal3";
import ShareModal from "components/modals/ShareModal";
@@ -100,7 +100,7 @@ export function ModalProvider(props) {
>
{props.children}
-
+
diff --git a/src/scripts/generate_name.js b/src/scripts/generate_name.js
deleted file mode 100644
index 25d60c632..000000000
--- a/src/scripts/generate_name.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// ES6: import Haikunator from 'haikunator'
-var Haikunator = require("haikunator");
-
-// Instantiate Haikunator without options
-var haikunator = new Haikunator();
-
-// default usage
-const version = haikunator.haikunate(); // => "wispy-dust-1337"
-
-const fs = require("fs");
-
-const filePath = "./version.txt";
-
-writeToFile(filePath, version);
-
-async function writeToFile(filePath, text) {
- // Open the file for writing
- const fileHandle = await fs.promises.open(filePath, "w");
-
- // Write the text to the file
- await fs.promises.writeFile(fileHandle, text);
-
- // Close the file
- await fileHandle.close();
-}
diff --git a/src/utils/styles.js b/src/utils/styles.js
index cbdfc1757..b4db21d0e 100644
--- a/src/utils/styles.js
+++ b/src/utils/styles.js
@@ -9,10 +9,13 @@ export const themes = {
main: "#26827C",
main2: "#39a69e",
main3: "#1C9B93",
+ main4: "#34A59E",
mainLight: "#DFECEB",
+ mainWhite: "#ffffff",
mainDark: "#1D625E",
second: "#EFF4F9",
secondDark: "#B1D4F6",
+ sky: "#b5d0fa",
firstBlue: "#457be7",
background: "#ffffff",
darkBackground: "#F9F7F8",
@@ -20,6 +23,7 @@ export const themes = {
persistentText: "#383838",
textLight: "#FBFBFC",
textLight2: "#f9f7f8",
+ linkGray: "#110D10",
textGray: "#847881",
textGray2: "#746770",
deepDark: "#272124",
@@ -48,7 +52,9 @@ export const themes = {
main: "#E8F8F7",
main2: "#dcf8f6",
main3: "#26827C",
+ main4: "#dcf8f6",
mainLight: "#17635E",
+ mainWhite: "#DFECEB26827C",
mainDark: "#1D625E",
firstBlue: "#457be7",
second: "#383838",
@@ -61,10 +67,12 @@ export const themes = {
textLight: "#939699",
textLight2: "#a6a8ab",
textGray: "#eceef0",
+ linkGray: "#eceef0",
textGray2: "#746770",
deepDark: "#272124",
deepDarkReversible: "#eceef0",
error: "#ff5655",
+ sky: "#383838",
warning: "#fc5d00",
},
fonts: {
diff --git a/src/utils/urls.js b/src/utils/urls.js
new file mode 100644
index 000000000..e6cb060e8
--- /dev/null
+++ b/src/utils/urls.js
@@ -0,0 +1,5 @@
+export function buildCurrentUrlFor(domain, path) {
+ let localDomain = domain || "notdefined";
+ let securedPrefix = localDomain.indexOf("localhost") === -1 ? "s" : "";
+ return `http${securedPrefix}://${localDomain}${path}`;
+}
diff --git a/testc/IFrameFooter.test.js b/testc/IFrameFooter.test.js
new file mode 100644
index 000000000..4e9b93dc2
--- /dev/null
+++ b/testc/IFrameFooter.test.js
@@ -0,0 +1,16 @@
+import "@testing-library/jest-dom";
+import { render, screen } from "@testing-library/react";
+import IframeFooter from "components/layout/iframe/IframeFooter";
+import { StyleProvider } from "components/providers/StyleProvider";
+
+describe("IframeFooter", () => {
+ it("renders a Footer specific to the iframe", () => {
+ render(
+
+
+
+ );
+ // check if all components are rendered
+ expect(screen.getByTestId("magic-link")).toHaveAttribute("href", "https://notdefined");
+ });
+});
diff --git a/tests/impact_livraison.spec.js b/teste/impact_livraison.spec.js
similarity index 65%
rename from tests/impact_livraison.spec.js
rename to teste/impact_livraison.spec.js
index 17db01506..32016f64a 100644
--- a/tests/impact_livraison.spec.js
+++ b/teste/impact_livraison.spec.js
@@ -3,8 +3,7 @@ import { mockRoutes } from "../test-mock/mock-route.js";
// @ts-check
const { test, expect } = require("@playwright/test");
-test.beforeEach(async ({ page }, testInfo) => {
- console.log(`Running ${testInfo.title}`);
+test.beforeEach(async ({ page }) => {
mockRoutes(page);
await page.goto("/livraison");
await expect(page.getByText("par livraison")).toHaveCount(1);
@@ -74,58 +73,58 @@ test("Calcul de l'impact d'une livraison", async ({ page }) => {
});
});
-test("Equivalences", async ({ page }) => {
- await test.step("Les équivalences par défaut s'affichent", async () => {
- await expect(page.locator("#eq_nb_1")).toHaveText("15 km");
- await expect(page.locator("#eq_what_1")).toHaveText("en voiture");
-
- await expect(page.locator("#eq_nb_2")).toHaveText("0,5 repas");
- await expect(page.locator("#eq_what_2")).toHaveText("avec du boeuf");
-
- await expect(page.locator("#eq_nb_3")).toHaveText("52 heures");
- await expect(page.locator("#eq_what_3")).toHaveText("de streaming vidéo");
- });
-
- await test.step("Une modale d'explication s'affiche", async () => {
- // Given
- await expect(page.getByRole("button", { name: "Fermer" })).not.toBeVisible();
- // When
- await page.getByRole("button", { name: "Comprendre le calcul" }).click();
- // Then
- await page.getByRole("button", { name: "Fermer" }).click();
- });
-
- await test.step("On peut ouvrir une modale pour choisir une autre équivalence", async () => {
- // Given
- await expect(page.getByRole("heading", { name: "Choisir une autre équivalence" })).not.toBeVisible();
- // When
- await page.locator("#button_change_eq_1").click();
- // Then
- await expect(page.getByRole("heading", { name: "Choisir une autre équivalence" })).toBeVisible();
- });
-
- await test.step("Une liste réduite s'affiche si on cherche une autre équivalence", async () => {
- // Given
- await expect(page.locator(".equivalent-radio")).toHaveCount(9);
-
- // When
- await page.getByPlaceholder("Recherchez un autre équivalent").click({ force: true });
- await page.keyboard.type("b");
- await page.keyboard.type("a");
-
- // Then
- await expect(page.locator(".equivalent-radio")).toHaveCount(3);
- });
- await test.step("On peut choisir une autre équivalence", async () => {
- // Given
- await page.getByRole("button", { name: "Banane" }).click();
- // When
- await page.getByRole("button", { name: "Valider et fermer" }).click();
- // Then
- await expect(page.locator("#eq_nb_1")).toHaveText("3,8 kg");
- await expect(page.locator("#eq_what_1")).toHaveText("de banane");
- });
-});
+// test("Equivalences", async ({ page }) => {
+// await test.step("Les équivalences par défaut s'affichent", async () => {
+// await expect(page.locator("#eq_nb_1")).toHaveText("15 km");
+// await expect(page.locator("#eq_what_1")).toHaveText("en voiture");
+
+// await expect(page.locator("#eq_nb_2")).toHaveText("0,5 repas");
+// await expect(page.locator("#eq_what_2")).toHaveText("avec du boeuf");
+
+// await expect(page.locator("#eq_nb_3")).toHaveText("52 heures");
+// await expect(page.locator("#eq_what_3")).toHaveText("de streaming vidéo");
+// });
+
+// await test.step("Une modale d'explication s'affiche", async () => {
+// // Given
+// await expect(page.getByRole("button", { name: "Fermer" })).not.toBeVisible();
+// // When
+// await page.getByRole("button", { name: "Comprendre le calcul" }).click();
+// // Then
+// await page.getByRole("button", { name: "Fermer" }).click();
+// });
+
+// await test.step("On peut ouvrir une modale pour choisir une autre équivalence", async () => {
+// // Given
+// await expect(page.getByRole("heading", { name: "Choisir une autre équivalence" })).not.toBeVisible();
+// // When
+// await page.locator("#button_change_eq_1").click();
+// // Then
+// await expect(page.getByRole("heading", { name: "Choisir une autre équivalence" })).toBeVisible();
+// });
+
+// await test.step("Une liste réduite s'affiche si on cherche une autre équivalence", async () => {
+// // Given
+// await expect(page.locator(".equivalent-radio")).toHaveCount(9);
+
+// // When
+// await page.getByPlaceholder("Recherchez un autre équivalent").click({ force: true });
+// await page.keyboard.type("b");
+// await page.keyboard.type("a");
+
+// // Then
+// await expect(page.locator(".equivalent-radio")).toHaveCount(3);
+// });
+// await test.step("On peut choisir une autre équivalence", async () => {
+// // Given
+// await page.getByRole("button", { name: "Banane" }).click();
+// // When
+// await page.getByRole("button", { name: "Valider et fermer" }).click();
+// // Then
+// await expect(page.locator("#eq_nb_1")).toHaveText("3,8 kg");
+// await expect(page.locator("#eq_what_1")).toHaveText("de banane");
+// });
+// });
test("Fréquences", async ({ page }) => {
await test.step("Le bilan carbone s'alourdit avec le nb de colis par mois", async () => {
diff --git a/tests/page_daccueil.spec.js b/teste/page_daccueil.spec.js
similarity index 96%
rename from tests/page_daccueil.spec.js
rename to teste/page_daccueil.spec.js
index 324c077c3..49b71c8a5 100644
--- a/tests/page_daccueil.spec.js
+++ b/teste/page_daccueil.spec.js
@@ -3,8 +3,7 @@ import { mockRoutes } from "../test-mock/mock-route.js";
// @ts-check
const { test, expect } = require("@playwright/test");
-test.beforeEach(async ({ page }, testInfo) => {
- console.log(`Running ${testInfo.title}`);
+test.beforeEach(async ({ page }) => {
await mockRoutes(page);
});
diff --git a/teste/partage_livraison.spec.js b/teste/partage_livraison.spec.js
new file mode 100644
index 000000000..884c8efd8
--- /dev/null
+++ b/teste/partage_livraison.spec.js
@@ -0,0 +1,22 @@
+import { mockRoutes } from "../test-mock/mock-route.js";
+
+// @ts-check
+const { test, expect } = require("@playwright/test");
+
+test.beforeEach(async ({ page }) => {
+ mockRoutes(page);
+ await page.goto("/livraison");
+ await expect(page.getByText("par livraison")).toHaveCount(1);
+});
+
+test("Le partage dirige bien vers la bonne URL", async ({ page }) => {
+ await test.step("On clique sur le bouton de partage en haut, une URL correcte est proposée", async () => {
+ await page.locator("#shareUp").click();
+ await expect(page.locator("#shareUrl")).toHaveValue("https://notdefined/livraison");
+ });
+ await test.step("On clique sur le bouton de partage en bas, une URL correcte est proposée", async () => {
+ await page.locator("#button-close").click();
+ await page.locator("#shareDown").click();
+ await expect(page.locator("#shareUrl")).toHaveValue("https://notdefined/livraison#ressource");
+ });
+});
diff --git a/teste/static_page.spec.js b/teste/static_page.spec.js
new file mode 100644
index 000000000..9ca39f989
--- /dev/null
+++ b/teste/static_page.spec.js
@@ -0,0 +1,13 @@
+// @ts-check
+const { test, expect } = require("@playwright/test");
+
+test("Affichage sans erreur des pages statiques", async ({ page }) => {
+ await test.step("On peut accèder au plan du site", async () => {
+ await page.goto("/plan-du-site");
+ await expect(page).toHaveTitle(/Plan du site | Impact CO2/);
+ });
+ await test.step("On peut accèder aux mentions légales", async () => {
+ await page.goto("/mentions-legales");
+ await expect(page).toHaveTitle(/Mentions légales | Impact CO2/);
+ });
+});
diff --git a/testu/buildCurrentUrlFor.test.js b/testu/buildCurrentUrlFor.test.js
new file mode 100644
index 000000000..ad5dfc0aa
--- /dev/null
+++ b/testu/buildCurrentUrlFor.test.js
@@ -0,0 +1,20 @@
+import { buildCurrentUrlFor } from "utils/urls";
+
+describe("buildCurrentUrlFor", () => {
+ test("returns an URL with http (without s) for a local URL", () => {
+ let res = buildCurrentUrlFor("localhost:3000", "");
+ expect(res).toEqual("http://localhost:3000");
+ });
+ test("returns an URL with http (with s) for a remote URL", () => {
+ let res = buildCurrentUrlFor("impactco2.fr", "");
+ expect(res).toEqual("https://impactco2.fr");
+ });
+ test("may add a path if needed", () => {
+ let res = buildCurrentUrlFor("impactco2.fr", "/livraison");
+ expect(res).toEqual("https://impactco2.fr/livraison");
+ });
+ test("may say that base URL is not defined", () => {
+ let res = buildCurrentUrlFor(undefined, "/livraison");
+ expect(res).toEqual("https://notdefined/livraison");
+ });
+});
diff --git a/version.txt b/version.txt
index eb6b86900..18df6b0c3 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-steep-resonance-4210
\ No newline at end of file
+skipping-version-number
diff --git a/webpack.config.js b/webpack.config.js
index d42fcd2d9..e39224f1f 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -21,7 +21,7 @@ module.exports = [
},
plugins: [
new webpack.DefinePlugin({
- WEBPACK_SITE_URL: `'${process.env.NEXT_PUBLIC_SITE_URL}'`,
+ WEBPACK_SITE_URL: `'${process.env.WEBSITE_URL}'`,
}),
],
},
diff --git a/yarn.lock b/yarn.lock
index c2d790d88..bbbcae5fd 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,6 +2,11 @@
# yarn lockfile v1
+"@adobe/css-tools@^4.3.1":
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.1.tgz#abfccb8ca78075a2b6187345c26243c1a0842f28"
+ integrity sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==
+
"@ampproject/remapping@^2.2.0":
version "2.2.1"
resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630"
@@ -33,14 +38,7 @@
dependencies:
"@babel/highlight" "^7.18.6"
-"@babel/code-frame@^7.16.7", "@babel/code-frame@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
- integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
- dependencies:
- "@babel/highlight" "^7.18.6"
-
-"@babel/code-frame@^7.22.13":
+"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13":
version "7.22.13"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e"
integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==
@@ -48,11 +46,39 @@
"@babel/highlight" "^7.22.13"
chalk "^2.4.2"
+"@babel/code-frame@^7.16.7", "@babel/code-frame@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
+ integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
+ dependencies:
+ "@babel/highlight" "^7.18.6"
+
"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9":
version "7.22.9"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730"
integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==
+"@babel/core@^7.11.6", "@babel/core@^7.12.3":
+ version "7.23.2"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.2.tgz#ed10df0d580fff67c5f3ee70fd22e2e4c90a9f94"
+ integrity sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==
+ dependencies:
+ "@ampproject/remapping" "^2.2.0"
+ "@babel/code-frame" "^7.22.13"
+ "@babel/generator" "^7.23.0"
+ "@babel/helper-compilation-targets" "^7.22.15"
+ "@babel/helper-module-transforms" "^7.23.0"
+ "@babel/helpers" "^7.23.2"
+ "@babel/parser" "^7.23.0"
+ "@babel/template" "^7.22.15"
+ "@babel/traverse" "^7.23.2"
+ "@babel/types" "^7.23.0"
+ convert-source-map "^2.0.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.2.3"
+ semver "^6.3.1"
+
"@babel/core@^7.21.0":
version "7.22.15"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.15.tgz#15d4fd03f478a459015a4b94cfbb3bd42c48d2f4"
@@ -121,6 +147,16 @@
"@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1"
+"@babel/generator@^7.23.0", "@babel/generator@^7.7.2":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420"
+ integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==
+ dependencies:
+ "@babel/types" "^7.23.0"
+ "@jridgewell/gen-mapping" "^0.3.2"
+ "@jridgewell/trace-mapping" "^0.3.17"
+ jsesc "^2.5.1"
+
"@babel/helper-annotate-as-pure@^7.16.0":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb"
@@ -193,6 +229,11 @@
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
+"@babel/helper-environment-visitor@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
+ integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
+
"@babel/helper-environment-visitor@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98"
@@ -222,6 +263,14 @@
"@babel/template" "^7.22.5"
"@babel/types" "^7.22.5"
+"@babel/helper-function-name@^7.23.0":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
+ integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
+ dependencies:
+ "@babel/template" "^7.22.15"
+ "@babel/types" "^7.23.0"
+
"@babel/helper-hoist-variables@^7.16.7", "@babel/helper-hoist-variables@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"
@@ -268,6 +317,17 @@
"@babel/helper-split-export-declaration" "^7.22.6"
"@babel/helper-validator-identifier" "^7.22.15"
+"@babel/helper-module-transforms@^7.23.0":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e"
+ integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-module-imports" "^7.22.15"
+ "@babel/helper-simple-access" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ "@babel/helper-validator-identifier" "^7.22.20"
+
"@babel/helper-optimise-call-expression@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e"
@@ -356,6 +416,11 @@
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz#601fa28e4cc06786c18912dca138cec73b882044"
integrity sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==
+"@babel/helper-validator-identifier@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
+ integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
+
"@babel/helper-validator-option@^7.22.15":
version "7.22.15"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040"
@@ -379,6 +444,15 @@
"@babel/traverse" "^7.22.15"
"@babel/types" "^7.22.15"
+"@babel/helpers@^7.23.2":
+ version "7.23.2"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.2.tgz#2832549a6e37d484286e15ba36a5330483cac767"
+ integrity sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==
+ dependencies:
+ "@babel/template" "^7.22.15"
+ "@babel/traverse" "^7.23.2"
+ "@babel/types" "^7.23.0"
+
"@babel/highlight@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
@@ -402,6 +476,11 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.4.tgz#a770e98fd785c231af9d93f6459d36770993fb32"
integrity sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.23.0":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719"
+ integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==
+
"@babel/parser@^7.17.3", "@babel/parser@^7.20.7", "@babel/parser@^7.8.4":
version "7.20.15"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.15.tgz#eec9f36d8eaf0948bb88c87a46784b5ee9fd0c89"
@@ -476,7 +555,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-class-properties@^7.12.13":
+"@babel/plugin-syntax-bigint@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
+ integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3":
version "7.12.13"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
@@ -518,7 +604,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-syntax-import-meta@^7.10.4":
+"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
@@ -532,14 +618,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-jsx@^7.22.5":
+"@babel/plugin-syntax-jsx@^7.22.5", "@babel/plugin-syntax-jsx@^7.7.2":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918"
integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
+"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
@@ -553,7 +639,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-numeric-separator@^7.10.4":
+"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
@@ -588,14 +674,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-syntax-top-level-await@^7.14.5":
+"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-syntax-typescript@^7.22.5":
+"@babel/plugin-syntax-typescript@^7.22.5", "@babel/plugin-syntax-typescript@^7.7.2":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272"
integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==
@@ -1179,6 +1265,13 @@
dependencies:
regenerator-runtime "^0.13.4"
+"@babel/runtime@^7.12.5", "@babel/runtime@^7.9.2":
+ version "7.23.2"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885"
+ integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==
+ dependencies:
+ regenerator-runtime "^0.14.0"
+
"@babel/runtime@^7.20.7":
version "7.20.13"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b"
@@ -1218,7 +1311,7 @@
"@babel/parser" "^7.18.6"
"@babel/types" "^7.18.6"
-"@babel/template@^7.22.15", "@babel/template@^7.22.5":
+"@babel/template@^7.22.15", "@babel/template@^7.22.5", "@babel/template@^7.3.3":
version "7.22.15"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38"
integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==
@@ -1259,6 +1352,22 @@
debug "^4.1.0"
globals "^11.1.0"
+"@babel/traverse@^7.23.2":
+ version "7.23.2"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8"
+ integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==
+ dependencies:
+ "@babel/code-frame" "^7.22.13"
+ "@babel/generator" "^7.23.0"
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-function-name" "^7.23.0"
+ "@babel/helper-hoist-variables" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ "@babel/parser" "^7.23.0"
+ "@babel/types" "^7.23.0"
+ debug "^4.1.0"
+ globals "^11.1.0"
+
"@babel/traverse@^7.4.5":
version "7.18.9"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.9.tgz#deeff3e8f1bad9786874cb2feda7a2d77a904f98"
@@ -1283,6 +1392,15 @@
"@babel/helper-validator-identifier" "^7.16.7"
to-fast-properties "^2.0.0"
+"@babel/types@^7.0.0", "@babel/types@^7.23.0", "@babel/types@^7.3.3":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb"
+ integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==
+ dependencies:
+ "@babel/helper-string-parser" "^7.22.5"
+ "@babel/helper-validator-identifier" "^7.22.20"
+ to-fast-properties "^2.0.0"
+
"@babel/types@^7.17.0", "@babel/types@^7.19.0", "@babel/types@^7.20.7":
version "7.20.7"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f"
@@ -1318,6 +1436,11 @@
"@babel/helper-validator-identifier" "^7.19.1"
to-fast-properties "^2.0.0"
+"@bcoe/v8-coverage@^0.2.3":
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
+ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+
"@corex/deepmerge@^4.0.29":
version "4.0.29"
resolved "https://registry.yarnpkg.com/@corex/deepmerge/-/deepmerge-4.0.29.tgz#af9debf07d7f6b0d2a9d04a266abf2c1418ed2f6"
@@ -1405,6 +1528,13 @@
resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3"
integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==
+"@eslint-community/eslint-utils@^4.2.0":
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
+ integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
+ dependencies:
+ eslint-visitor-keys "^3.3.0"
+
"@eslint/eslintrc@^1.4.1":
version "1.4.1"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e"
@@ -1451,6 +1581,214 @@
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
+"@istanbuljs/load-nyc-config@^1.0.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
+ integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
+ dependencies:
+ camelcase "^5.3.1"
+ find-up "^4.1.0"
+ get-package-type "^0.1.0"
+ js-yaml "^3.13.1"
+ resolve-from "^5.0.0"
+
+"@istanbuljs/schema@^0.1.2":
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
+ integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
+
+"@jest/console@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc"
+ integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ slash "^3.0.0"
+
+"@jest/core@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f"
+ integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/reporters" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ ansi-escapes "^4.2.1"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.9"
+ jest-changed-files "^29.7.0"
+ jest-config "^29.7.0"
+ jest-haste-map "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-resolve-dependencies "^29.7.0"
+ jest-runner "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ jest-watcher "^29.7.0"
+ micromatch "^4.0.4"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ strip-ansi "^6.0.0"
+
+"@jest/environment@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7"
+ integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==
+ dependencies:
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-mock "^29.7.0"
+
+"@jest/expect-utils@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6"
+ integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==
+ dependencies:
+ jest-get-type "^29.6.3"
+
+"@jest/expect@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2"
+ integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==
+ dependencies:
+ expect "^29.7.0"
+ jest-snapshot "^29.7.0"
+
+"@jest/fake-timers@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565"
+ integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@sinonjs/fake-timers" "^10.0.2"
+ "@types/node" "*"
+ jest-message-util "^29.7.0"
+ jest-mock "^29.7.0"
+ jest-util "^29.7.0"
+
+"@jest/globals@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d"
+ integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/expect" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ jest-mock "^29.7.0"
+
+"@jest/reporters@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7"
+ integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==
+ dependencies:
+ "@bcoe/v8-coverage" "^0.2.3"
+ "@jest/console" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@jridgewell/trace-mapping" "^0.3.18"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ collect-v8-coverage "^1.0.0"
+ exit "^0.1.2"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ istanbul-lib-coverage "^3.0.0"
+ istanbul-lib-instrument "^6.0.0"
+ istanbul-lib-report "^3.0.0"
+ istanbul-lib-source-maps "^4.0.0"
+ istanbul-reports "^3.1.3"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ jest-worker "^29.7.0"
+ slash "^3.0.0"
+ string-length "^4.0.1"
+ strip-ansi "^6.0.0"
+ v8-to-istanbul "^9.0.1"
+
+"@jest/schemas@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03"
+ integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==
+ dependencies:
+ "@sinclair/typebox" "^0.27.8"
+
+"@jest/source-map@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4"
+ integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.18"
+ callsites "^3.0.0"
+ graceful-fs "^4.2.9"
+
+"@jest/test-result@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c"
+ integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ collect-v8-coverage "^1.0.0"
+
+"@jest/test-sequencer@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce"
+ integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==
+ dependencies:
+ "@jest/test-result" "^29.7.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ slash "^3.0.0"
+
+"@jest/transform@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c"
+ integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@jest/types" "^29.6.3"
+ "@jridgewell/trace-mapping" "^0.3.18"
+ babel-plugin-istanbul "^6.1.1"
+ chalk "^4.0.0"
+ convert-source-map "^2.0.0"
+ fast-json-stable-stringify "^2.1.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-util "^29.7.0"
+ micromatch "^4.0.4"
+ pirates "^4.0.4"
+ slash "^3.0.0"
+ write-file-atomic "^4.0.2"
+
+"@jest/types@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59"
+ integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==
+ dependencies:
+ "@jest/schemas" "^29.6.3"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ "@types/istanbul-reports" "^3.0.0"
+ "@types/node" "*"
+ "@types/yargs" "^17.0.8"
+ chalk "^4.0.0"
+
"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
version "0.3.2"
resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9"
@@ -1465,6 +1803,11 @@
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
+"@jridgewell/resolve-uri@^3.1.0":
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
+ integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
+
"@jridgewell/set-array@^1.0.1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
@@ -1483,6 +1826,19 @@
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
+"@jridgewell/sourcemap-codec@^1.4.14":
+ version "1.4.15"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
+ integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
+
+"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18":
+ version "0.3.19"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811"
+ integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.1.0"
+ "@jridgewell/sourcemap-codec" "^1.4.14"
+
"@jridgewell/trace-mapping@^0.3.17":
version "0.3.18"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6"
@@ -1709,6 +2065,25 @@
resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.4.tgz#0c8b74c50f29ee44f423f7416829c0bf8bb5eb27"
integrity sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==
+"@sinclair/typebox@^0.27.8":
+ version "0.27.8"
+ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e"
+ integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
+
+"@sinonjs/commons@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.0.tgz#beb434fe875d965265e04722ccfc21df7f755d72"
+ integrity sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==
+ dependencies:
+ type-detect "4.0.8"
+
+"@sinonjs/fake-timers@^10.0.2":
+ version "10.3.0"
+ resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66"
+ integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==
+ dependencies:
+ "@sinonjs/commons" "^3.0.0"
+
"@socialgouv/matomo-next@^1.6.1":
version "1.6.1"
resolved "https://registry.yarnpkg.com/@socialgouv/matomo-next/-/matomo-next-1.6.1.tgz#0080945dc0062fee7fe53e4c058dd40768a3c278"
@@ -1734,6 +2109,48 @@
"@tanstack/query-core" "4.29.5"
use-sync-external-store "^1.2.0"
+"@testing-library/dom@^9.0.0":
+ version "9.3.3"
+ resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.3.tgz#108c23a5b0ef51121c26ae92eb3179416b0434f5"
+ integrity sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==
+ dependencies:
+ "@babel/code-frame" "^7.10.4"
+ "@babel/runtime" "^7.12.5"
+ "@types/aria-query" "^5.0.1"
+ aria-query "5.1.3"
+ chalk "^4.1.0"
+ dom-accessibility-api "^0.5.9"
+ lz-string "^1.5.0"
+ pretty-format "^27.0.2"
+
+"@testing-library/jest-dom@^6.1.4":
+ version "6.1.4"
+ resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.1.4.tgz#cf0835c33bc5ef00befb9e672b1e3e6a710e30e3"
+ integrity sha512-wpoYrCYwSZ5/AxcrjLxJmCU6I5QAJXslEeSiMQqaWmP2Kzpd1LvF/qxmAIW2qposULGWq2gw30GgVNFLSc2Jnw==
+ dependencies:
+ "@adobe/css-tools" "^4.3.1"
+ "@babel/runtime" "^7.9.2"
+ aria-query "^5.0.0"
+ chalk "^3.0.0"
+ css.escape "^1.5.1"
+ dom-accessibility-api "^0.5.6"
+ lodash "^4.17.15"
+ redent "^3.0.0"
+
+"@testing-library/react@^14.0.0":
+ version "14.0.0"
+ resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-14.0.0.tgz#59030392a6792450b9ab8e67aea5f3cc18d6347c"
+ integrity sha512-S04gSNJbYE30TlIMLTzv6QCTzt9AqIF5y6s6SzVFILNcNvbV/jU96GeiTPillGQo+Ny64M/5PV7klNYYgv5Dfg==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+ "@testing-library/dom" "^9.0.0"
+ "@types/react-dom" "^18.0.0"
+
+"@tootallnate/once@2":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
+ integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
+
"@trivago/prettier-plugin-sort-imports@^4.0.0":
version "4.1.1"
resolved "https://registry.yarnpkg.com/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.1.1.tgz#71c3c1ae770c3738b6fc85710714844477574ffd"
@@ -1746,6 +2163,44 @@
javascript-natural-sort "0.7.1"
lodash "^4.17.21"
+"@types/aria-query@^5.0.1":
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.2.tgz#6f1225829d89794fd9f891989c9ce667422d7f64"
+ integrity sha512-PHKZuMN+K5qgKIWhBodXzQslTo5P+K/6LqeKXS6O/4liIDdZqaX5RXrCK++LAw+y/nptN48YmUMFiQHRSWYwtQ==
+
+"@types/babel__core@^7.1.14":
+ version "7.20.2"
+ resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.2.tgz#215db4f4a35d710256579784a548907237728756"
+ integrity sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==
+ dependencies:
+ "@babel/parser" "^7.20.7"
+ "@babel/types" "^7.20.7"
+ "@types/babel__generator" "*"
+ "@types/babel__template" "*"
+ "@types/babel__traverse" "*"
+
+"@types/babel__generator@*":
+ version "7.6.5"
+ resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.5.tgz#281f4764bcbbbc51fdded0f25aa587b4ce14da95"
+ integrity sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==
+ dependencies:
+ "@babel/types" "^7.0.0"
+
+"@types/babel__template@*":
+ version "7.4.2"
+ resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.2.tgz#843e9f1f47c957553b0c374481dc4772921d6a6b"
+ integrity sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+
+"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
+ version "7.20.2"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.2.tgz#4ddf99d95cfdd946ff35d2b65c978d9c9bf2645d"
+ integrity sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==
+ dependencies:
+ "@babel/types" "^7.20.7"
+
"@types/eslint-scope@^3.7.3":
version "3.7.4"
resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16"
@@ -1772,11 +2227,51 @@
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40"
integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==
+"@types/graceful-fs@^4.1.3":
+ version "4.1.7"
+ resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.7.tgz#30443a2e64fd51113bc3e2ba0914d47109695e2a"
+ integrity sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==
+ dependencies:
+ "@types/node" "*"
+
+"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44"
+ integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==
+
+"@types/istanbul-lib-report@*":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#412e0725ef41cde73bfa03e0e833eaff41e0fd63"
+ integrity sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==
+ dependencies:
+ "@types/istanbul-lib-coverage" "*"
+
+"@types/istanbul-reports@^3.0.0":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.2.tgz#edc8e421991a3b4df875036d381fc0a5a982f549"
+ integrity sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==
+ dependencies:
+ "@types/istanbul-lib-report" "*"
+
+"@types/jsdom@^20.0.0":
+ version "20.0.1"
+ resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.1.tgz#07c14bc19bd2f918c1929541cdaacae894744808"
+ integrity sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==
+ dependencies:
+ "@types/node" "*"
+ "@types/tough-cookie" "*"
+ parse5 "^7.0.0"
+
"@types/json-schema@*", "@types/json-schema@^7.0.8":
version "7.0.11"
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3"
integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
+"@types/json-schema@^7.0.9":
+ version "7.0.13"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85"
+ integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==
+
"@types/json5@^0.0.29":
version "0.0.29"
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
@@ -1792,16 +2287,64 @@
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
-"@types/random-seed@^0.3.3":
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/@types/random-seed/-/random-seed-0.3.3.tgz#7741f7b0a4513198a9396ce4ad25832f799a6727"
- integrity sha512-kHsCbIRHNXJo6EN5W8EA5b4i1hdT6jaZke5crBPLUcLqaLdZ0QBq8QVMbafHzhjFF83Cl9qlee2dChD18d/kPg==
+"@types/prop-types@*":
+ version "15.7.8"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.8.tgz#805eae6e8f41bd19e88917d2ea200dc992f405d3"
+ integrity sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ==
+
+"@types/react-dom@^18.0.0":
+ version "18.2.13"
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.13.tgz#89cd7f9ec8b28c8b6f0392b9591671fb4a9e96b7"
+ integrity sha512-eJIUv7rPP+EC45uNYp/ThhSpE16k22VJUknt5OLoH9tbXoi8bMhwLf5xRuWMywamNbWzhrSmU7IBJfPup1+3fw==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react@*":
+ version "18.2.28"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.28.tgz#86877465c0fcf751659a36c769ecedfcfacee332"
+ integrity sha512-ad4aa/RaaJS3hyGz0BGegdnSRXQBkd1CCYDCdNjBPg90UUpLgo+WlJqb9fMYUxtehmzF3PJaTWqRZjko6BRzBg==
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/scheduler" "*"
+ csstype "^3.0.2"
+
+"@types/scheduler@*":
+ version "0.16.4"
+ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.4.tgz#fedc3e5b15c26dc18faae96bf1317487cb3658cf"
+ integrity sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ==
+
+"@types/semver@^7.3.12":
+ version "7.5.3"
+ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.3.tgz#9a726e116beb26c24f1ccd6850201e1246122e04"
+ integrity sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==
+
+"@types/stack-utils@^2.0.0":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c"
+ integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==
"@types/stylis@^4.0.2":
version "4.2.0"
resolved "https://registry.yarnpkg.com/@types/stylis/-/stylis-4.2.0.tgz#199a3f473f0c3a6f6e4e1b17cdbc967f274bdc6b"
integrity sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw==
+"@types/tough-cookie@*":
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.3.tgz#3d06b6769518450871fbc40770b7586334bdfd90"
+ integrity sha512-THo502dA5PzG/sfQH+42Lw3fvmYkceefOspdCwpHRul8ik2Jv1K8I5OZz1AT3/rs46kwgMCe9bSBmDLYkkOMGg==
+
+"@types/yargs-parser@*":
+ version "21.0.1"
+ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.1.tgz#07773d7160494d56aa882d7531aac7319ea67c3b"
+ integrity sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==
+
+"@types/yargs@^17.0.8":
+ version "17.0.28"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.28.tgz#d106e4301fbacde3d1796ab27374dd16588ec851"
+ integrity sha512-N3e3fkS86hNhtk6BEnc0rj3zcehaxx8QWhCROJkqpl5Zaoi7nAic3jH8q94jVD3zu5LGk+PUB6KAiDmimYOEQw==
+ dependencies:
+ "@types/yargs-parser" "*"
+
"@types/yauzl@^2.9.1":
version "2.10.0"
resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599"
@@ -1827,11 +2370,24 @@
"@typescript-eslint/types" "5.48.2"
"@typescript-eslint/visitor-keys" "5.48.2"
+"@typescript-eslint/scope-manager@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c"
+ integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==
+ dependencies:
+ "@typescript-eslint/types" "5.62.0"
+ "@typescript-eslint/visitor-keys" "5.62.0"
+
"@typescript-eslint/types@5.48.2":
version "5.48.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.2.tgz#635706abb1ec164137f92148f06f794438c97b8e"
integrity sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==
+"@typescript-eslint/types@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
+ integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==
+
"@typescript-eslint/typescript-estree@5.48.2":
version "5.48.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz#6e206b462942b32383582a6c9251c05021cc21b0"
@@ -1845,6 +2401,33 @@
semver "^7.3.7"
tsutils "^3.21.0"
+"@typescript-eslint/typescript-estree@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b"
+ integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==
+ dependencies:
+ "@typescript-eslint/types" "5.62.0"
+ "@typescript-eslint/visitor-keys" "5.62.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.10.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86"
+ integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==
+ dependencies:
+ "@eslint-community/eslint-utils" "^4.2.0"
+ "@types/json-schema" "^7.0.9"
+ "@types/semver" "^7.3.12"
+ "@typescript-eslint/scope-manager" "5.62.0"
+ "@typescript-eslint/types" "5.62.0"
+ "@typescript-eslint/typescript-estree" "5.62.0"
+ eslint-scope "^5.1.1"
+ semver "^7.3.7"
+
"@typescript-eslint/visitor-keys@5.48.2":
version "5.48.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz#c247582a0bcce467461d7b696513bf9455000060"
@@ -1853,6 +2436,14 @@
"@typescript-eslint/types" "5.48.2"
eslint-visitor-keys "^3.3.0"
+"@typescript-eslint/visitor-keys@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e"
+ integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==
+ dependencies:
+ "@typescript-eslint/types" "5.62.0"
+ eslint-visitor-keys "^3.3.0"
+
"@webassemblyjs/ast@1.11.1":
version "1.11.1"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
@@ -1999,6 +2590,19 @@
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
+abab@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
+ integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
+
+acorn-globals@^7.0.0:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3"
+ integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==
+ dependencies:
+ acorn "^8.1.0"
+ acorn-walk "^8.0.2"
+
acorn-import-assertions@^1.7.6:
version "1.8.0"
resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9"
@@ -2009,6 +2613,16 @@ acorn-jsx@^5.3.2:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
+acorn-walk@^8.0.2:
+ version "8.2.0"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
+ integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
+
+acorn@^8.1.0, acorn@^8.8.1:
+ version "8.10.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5"
+ integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
+
acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0:
version "8.8.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"
@@ -2051,7 +2665,7 @@ animated-number-react@^0.1.2:
dependencies:
prop-types "^15.6.1"
-ansi-escapes@^4.3.0:
+ansi-escapes@^4.2.1, ansi-escapes@^4.3.0:
version "4.3.2"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
@@ -2082,12 +2696,17 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
dependencies:
color-convert "^2.0.1"
+ansi-styles@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
+ integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
+
ansi-styles@^6.0.0:
version "6.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
-anymatch@~3.1.2:
+anymatch@^3.0.3, anymatch@~3.1.2:
version "3.1.3"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
@@ -2095,11 +2714,25 @@ anymatch@~3.1.2:
normalize-path "^3.0.0"
picomatch "^2.0.4"
+argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+ dependencies:
+ sprintf-js "~1.0.2"
+
argparse@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+aria-query@5.1.3, aria-query@^5.1.3:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e"
+ integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==
+ dependencies:
+ deep-equal "^2.0.5"
+
aria-query@^4.2.2:
version "4.2.2"
resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b"
@@ -2108,12 +2741,12 @@ aria-query@^4.2.2:
"@babel/runtime" "^7.10.2"
"@babel/runtime-corejs3" "^7.10.2"
-aria-query@^5.1.3:
- version "5.1.3"
- resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e"
- integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==
+aria-query@^5.0.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e"
+ integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==
dependencies:
- deep-equal "^2.0.5"
+ dequal "^2.0.3"
array-includes@^3.1.4, array-includes@^3.1.5:
version "3.1.5"
@@ -2234,6 +2867,40 @@ axobject-query@^3.1.1:
dependencies:
deep-equal "^2.0.5"
+babel-jest@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5"
+ integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==
+ dependencies:
+ "@jest/transform" "^29.7.0"
+ "@types/babel__core" "^7.1.14"
+ babel-plugin-istanbul "^6.1.1"
+ babel-preset-jest "^29.6.3"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ slash "^3.0.0"
+
+babel-plugin-istanbul@^6.1.1:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
+ integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@istanbuljs/load-nyc-config" "^1.0.0"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-instrument "^5.0.4"
+ test-exclude "^6.0.0"
+
+babel-plugin-jest-hoist@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626"
+ integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==
+ dependencies:
+ "@babel/template" "^7.3.3"
+ "@babel/types" "^7.3.3"
+ "@types/babel__core" "^7.1.14"
+ "@types/babel__traverse" "^7.0.6"
+
babel-plugin-macros@^2.1.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
@@ -2292,6 +2959,32 @@ babel-plugin-tailwind-components@^0.5.10:
"@babel/parser" "^7.0.0"
babel-plugin-macros "^2.1.0"
+babel-preset-current-node-syntax@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b"
+ integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==
+ dependencies:
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/plugin-syntax-bigint" "^7.8.3"
+ "@babel/plugin-syntax-class-properties" "^7.8.3"
+ "@babel/plugin-syntax-import-meta" "^7.8.3"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.8.3"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+ "@babel/plugin-syntax-top-level-await" "^7.8.3"
+
+babel-preset-jest@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c"
+ integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==
+ dependencies:
+ babel-plugin-jest-hoist "^29.6.3"
+ babel-preset-current-node-syntax "^1.0.0"
+
balanced-match@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
@@ -2351,6 +3044,13 @@ browserslist@^4.21.10, browserslist@^4.21.9:
node-releases "^2.0.13"
update-browserslist-db "^1.0.11"
+bser@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
+ integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
+ dependencies:
+ node-int64 "^0.4.0"
+
buffer-crc32@~0.2.3:
version "0.2.13"
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
@@ -2389,6 +3089,16 @@ callsites@^3.0.0:
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+camelcase@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+ integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
+camelcase@^6.2.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
+ integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
+
camelize@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b"
@@ -2423,7 +3133,15 @@ chalk@^2.0.0, chalk@^2.4.2:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chalk@^4.0.0:
+chalk@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+ integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
+chalk@^4.0.0, chalk@^4.1.0:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@@ -2431,6 +3149,11 @@ chalk@^4.0.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
+char-regex@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
+ integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
+
chokidar@^3.4.0:
version "3.5.3"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
@@ -2470,6 +3193,16 @@ chromium-bidi@0.4.7:
dependencies:
mitt "3.0.0"
+ci-info@^3.2.0:
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
+ integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
+
+cjs-module-lexer@^1.0.0:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107"
+ integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==
+
classnames@^2.2.5:
version "2.3.1"
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e"
@@ -2531,8 +3264,18 @@ clone-deep@^4.0.1:
kind-of "^6.0.2"
shallow-clone "^3.0.0"
-color-convert@^1.9.0:
- version "1.9.3"
+co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+ integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
+
+collect-v8-coverage@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9"
+ integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==
+
+color-convert@^1.9.0:
+ version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
dependencies:
@@ -2607,6 +3350,11 @@ convert-source-map@^1.1.0, convert-source-map@^1.7.0:
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
+convert-source-map@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
+ integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+
cookiejar@^2.1.0:
version "2.1.3"
resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc"
@@ -2647,6 +3395,19 @@ cosmiconfig@^6.0.0:
path-type "^4.0.0"
yaml "^1.7.2"
+create-jest@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320"
+ integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.9"
+ jest-config "^29.7.0"
+ jest-util "^29.7.0"
+ prompts "^2.0.1"
+
cross-fetch@3.1.5:
version "3.1.5"
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"
@@ -2686,7 +3447,29 @@ css-to-react-native@^3.2.0:
css-color-keywords "^1.0.0"
postcss-value-parser "^4.0.2"
-csstype@^3.1.2:
+css.escape@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb"
+ integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==
+
+cssom@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36"
+ integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==
+
+cssom@~0.3.6:
+ version "0.3.8"
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
+ integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
+
+cssstyle@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852"
+ integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==
+ dependencies:
+ cssom "~0.3.6"
+
+csstype@^3.0.2, csstype@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
@@ -2696,6 +3479,15 @@ damerau-levenshtein@^1.0.8:
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7"
integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==
+data-urls@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143"
+ integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==
+ dependencies:
+ abab "^2.0.6"
+ whatwg-mimetype "^3.0.0"
+ whatwg-url "^11.0.0"
+
debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
@@ -2717,11 +3509,21 @@ debug@^3.1.0, debug@^3.2.7:
dependencies:
ms "^2.1.1"
+decimal.js@^10.4.2:
+ version "10.4.3"
+ resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23"
+ integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==
+
decode-uri-component@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==
+dedent@^1.0.0:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff"
+ integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==
+
deep-equal@^2.0.5:
version "2.2.0"
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.0.tgz#5caeace9c781028b9ff459f33b779346637c43e6"
@@ -2750,6 +3552,11 @@ deep-is@^0.1.3:
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+deepmerge@^4.2.2:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
+ integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
+
define-lazy-prop@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f"
@@ -2768,11 +3575,26 @@ delayed-stream@~1.0.0:
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+dequal@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
+ integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
+
+detect-newline@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
+ integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
+
devtools-protocol@0.0.1107588:
version "0.0.1107588"
resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1107588.tgz#f8cac707840b97cc30b029359341bcbbb0ad8ffa"
integrity sha512-yIR+pG9x65Xko7bErCUSQaDLrO/P1p3JUzEk7JCU4DowPcGHkTGUGQapcfcLc4qj0UaALwZ+cr0riFgiqpixcg==
+diff-sequences@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921"
+ integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==
+
dir-glob@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
@@ -2794,6 +3616,18 @@ doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
+dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9:
+ version "0.5.16"
+ resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453"
+ integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==
+
+domexception@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673"
+ integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==
+ dependencies:
+ webidl-conversions "^7.0.0"
+
dotenv-cli@^7.3.0:
version "7.3.0"
resolved "https://registry.yarnpkg.com/dotenv-cli/-/dotenv-cli-7.3.0.tgz#21e33e7944713001677658d68856063968edfbd2"
@@ -2829,6 +3663,11 @@ electron-to-chromium@^1.4.477:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.510.tgz#446c50d7533c1e71a84b00a3b37ab06dd601d890"
integrity sha512-xPfLIPFcN/WLXBpQ/K4UgE98oUBO5Tia6BD4rkSR0wE7ep/PwBVlgvPJQrIBpmJGVAmUzwPKuDbVt9XV6+uC2g==
+emittery@^0.13.1:
+ version "0.13.1"
+ resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
+ integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==
+
emoji-regex@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
@@ -2859,6 +3698,11 @@ enquire.js@^2.1.6:
resolved "https://registry.yarnpkg.com/enquire.js/-/enquire.js-2.1.6.tgz#3e8780c9b8b835084c3f60e166dbc3c2a3c89814"
integrity sha512-/KujNpO+PT63F7Hlpu4h3pE3TokKRHN26JYmQpPyjkRD/N57R7bPDNojMXdi7uveAKjYB7yQnartCxZnFWr0Xw==
+entities@^4.4.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
+ integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
+
envinfo@^7.7.3:
version "7.8.1"
resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475"
@@ -2994,11 +3838,27 @@ escape-string-regexp@^1.0.5:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
+escape-string-regexp@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
+ integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
+
escape-string-regexp@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+escodegen@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17"
+ integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==
+ dependencies:
+ esprima "^4.0.1"
+ estraverse "^5.2.0"
+ esutils "^2.0.2"
+ optionalDependencies:
+ source-map "~0.6.1"
+
eslint-config-airbnb-base@^13.2.0:
version "13.2.0"
resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.2.0.tgz#f6ea81459ff4dec2dda200c35f1d8f7419d57943"
@@ -3093,6 +3953,13 @@ eslint-plugin-import@^2.26.0:
resolve "^1.22.0"
tsconfig-paths "^3.14.1"
+eslint-plugin-jest@^27.4.2:
+ version "27.4.2"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.4.2.tgz#181d999ac67a9b6040db1d27935887cf5a2882ed"
+ integrity sha512-3Nfvv3wbq2+PZlRTf2oaAWXWwbdBejFRBR2O8tAO67o+P8zno+QGbcDYaAXODlreXVg+9gvWhKKmG2rgfb8GEg==
+ dependencies:
+ "@typescript-eslint/utils" "^5.10.0"
+
eslint-plugin-jsx-a11y@^6.2.3:
version "6.7.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976"
@@ -3189,7 +4056,7 @@ eslint-plugin-styled-components-a11y@^0.1.0:
eslint-config-airbnb "^17.1.0"
eslint-plugin-jsx-a11y "^6.2.3"
-eslint-scope@5.1.1:
+eslint-scope@5.1.1, eslint-scope@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
@@ -3276,6 +4143,11 @@ espree@^9.4.0:
acorn-jsx "^5.3.2"
eslint-visitor-keys "^3.3.0"
+esprima@^4.0.0, esprima@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+
esquery@^1.4.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
@@ -3310,6 +4182,21 @@ events@^3.2.0:
resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+execa@^5.0.0:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
+ integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
+ dependencies:
+ cross-spawn "^7.0.3"
+ get-stream "^6.0.0"
+ human-signals "^2.1.0"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.1"
+ onetime "^5.1.2"
+ signal-exit "^3.0.3"
+ strip-final-newline "^2.0.0"
+
execa@^7.0.0:
version "7.1.1"
resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43"
@@ -3325,6 +4212,22 @@ execa@^7.0.0:
signal-exit "^3.0.7"
strip-final-newline "^3.0.0"
+exit@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
+ integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==
+
+expect@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc"
+ integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==
+ dependencies:
+ "@jest/expect-utils" "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+
extend@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
@@ -3368,7 +4271,7 @@ fast-glob@^3.2.9:
merge2 "^1.3.0"
micromatch "^4.0.4"
-fast-json-stable-stringify@^2.0.0:
+fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
@@ -3390,6 +4293,13 @@ fastq@^1.6.0:
dependencies:
reusify "^1.0.4"
+fb-watchman@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c"
+ integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==
+ dependencies:
+ bser "2.1.1"
+
fd-slicer@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
@@ -3423,7 +4333,7 @@ find-up@^2.1.0:
dependencies:
locate-path "^2.0.0"
-find-up@^4.0.0:
+find-up@^4.0.0, find-up@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
@@ -3538,7 +4448,7 @@ fsevents@2.3.2:
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
-fsevents@~2.3.2:
+fsevents@^2.3.2, fsevents@~2.3.2:
version "2.3.3"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
@@ -3596,6 +4506,11 @@ get-intrinsic@^1.1.3:
has "^1.0.3"
has-symbols "^1.0.3"
+get-package-type@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
+ integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
+
get-stream@^5.1.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
@@ -3603,7 +4518,7 @@ get-stream@^5.1.0:
dependencies:
pump "^3.0.0"
-get-stream@^6.0.1:
+get-stream@^6.0.0, get-stream@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
@@ -3652,7 +4567,7 @@ glob@7.1.7:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.1.3, glob@^7.2.0:
+glob@^7.1.3, glob@^7.1.4, glob@^7.2.0:
version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@@ -3733,15 +4648,6 @@ grapheme-splitter@^1.0.4:
resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
-haikunator@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/haikunator/-/haikunator-2.1.2.tgz#4e9c8105c22f05e4e28b54a7f74736e24af95a27"
- integrity sha512-8xTQw2yomVQWG1mLJKD7RrwXN8PkgRYKDShOBhtlu2MqOTboc4O5dVYhPgLigcKMAtwJ0GZty5N44EbLGZN3FA==
- dependencies:
- "@types/random-seed" "^0.3.3"
- lodash.defaults "^4.2.0"
- random-seed "^0.3.0"
-
has-bigints@^1.0.1, has-bigints@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa"
@@ -3800,12 +4706,33 @@ hoist-non-react-statics@^3.0.0:
dependencies:
react-is "^16.7.0"
+html-encoding-sniffer@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9"
+ integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==
+ dependencies:
+ whatwg-encoding "^2.0.0"
+
+html-escaper@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
+ integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
+
html-to-image@^1.11.11:
version "1.11.11"
resolved "https://registry.yarnpkg.com/html-to-image/-/html-to-image-1.11.11.tgz#c0f8a34dc9e4b97b93ff7ea286eb8562642ebbea"
integrity sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA==
-https-proxy-agent@5.0.1:
+http-proxy-agent@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
+ integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
+ dependencies:
+ "@tootallnate/once" "2"
+ agent-base "6"
+ debug "4"
+
+https-proxy-agent@5.0.1, https-proxy-agent@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
@@ -3813,6 +4740,11 @@ https-proxy-agent@5.0.1:
agent-base "6"
debug "4"
+human-signals@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+ integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+
human-signals@^4.3.0:
version "4.3.1"
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2"
@@ -3823,6 +4755,13 @@ husky@^8.0.3:
resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184"
integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==
+iconv-lite@0.6.3:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
+ integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3.0.0"
+
ieee754@^1.1.13:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
@@ -4017,6 +4956,11 @@ is-fullwidth-code-point@^4.0.0:
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88"
integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==
+is-generator-fn@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
+ integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
+
is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
version "4.0.3"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
@@ -4058,6 +5002,11 @@ is-plain-object@^2.0.4:
dependencies:
isobject "^3.0.1"
+is-potential-custom-element-name@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
+ integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
+
is-regex@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
@@ -4078,6 +5027,11 @@ is-shared-array-buffer@^1.0.2:
dependencies:
call-bind "^1.0.2"
+is-stream@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
+ integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
+
is-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac"
@@ -4155,11 +5109,416 @@ isobject@^3.0.1:
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
+istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3"
+ integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==
+
+istanbul-lib-instrument@^5.0.4:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d"
+ integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==
+ dependencies:
+ "@babel/core" "^7.12.3"
+ "@babel/parser" "^7.14.7"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-coverage "^3.2.0"
+ semver "^6.3.0"
+
+istanbul-lib-instrument@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz#71e87707e8041428732518c6fb5211761753fbdf"
+ integrity sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==
+ dependencies:
+ "@babel/core" "^7.12.3"
+ "@babel/parser" "^7.14.7"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-coverage "^3.2.0"
+ semver "^7.5.4"
+
+istanbul-lib-report@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d"
+ integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==
+ dependencies:
+ istanbul-lib-coverage "^3.0.0"
+ make-dir "^4.0.0"
+ supports-color "^7.1.0"
+
+istanbul-lib-source-maps@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551"
+ integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==
+ dependencies:
+ debug "^4.1.1"
+ istanbul-lib-coverage "^3.0.0"
+ source-map "^0.6.1"
+
+istanbul-reports@^3.1.3:
+ version "3.1.6"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a"
+ integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==
+ dependencies:
+ html-escaper "^2.0.0"
+ istanbul-lib-report "^3.0.0"
+
javascript-natural-sort@0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz#f9e2303d4507f6d74355a73664d1440fb5a0ef59"
integrity sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==
+jest-changed-files@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a"
+ integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==
+ dependencies:
+ execa "^5.0.0"
+ jest-util "^29.7.0"
+ p-limit "^3.1.0"
+
+jest-circus@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a"
+ integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/expect" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ co "^4.6.0"
+ dedent "^1.0.0"
+ is-generator-fn "^2.0.0"
+ jest-each "^29.7.0"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ p-limit "^3.1.0"
+ pretty-format "^29.7.0"
+ pure-rand "^6.0.0"
+ slash "^3.0.0"
+ stack-utils "^2.0.3"
+
+jest-cli@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995"
+ integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==
+ dependencies:
+ "@jest/core" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ create-jest "^29.7.0"
+ exit "^0.1.2"
+ import-local "^3.0.2"
+ jest-config "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ yargs "^17.3.1"
+
+jest-config@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f"
+ integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@jest/test-sequencer" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ babel-jest "^29.7.0"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ deepmerge "^4.2.2"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ jest-circus "^29.7.0"
+ jest-environment-node "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-runner "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ micromatch "^4.0.4"
+ parse-json "^5.2.0"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ strip-json-comments "^3.1.1"
+
+jest-diff@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a"
+ integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==
+ dependencies:
+ chalk "^4.0.0"
+ diff-sequences "^29.6.3"
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
+jest-docblock@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a"
+ integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==
+ dependencies:
+ detect-newline "^3.0.0"
+
+jest-each@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1"
+ integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ jest-get-type "^29.6.3"
+ jest-util "^29.7.0"
+ pretty-format "^29.7.0"
+
+jest-environment-jsdom@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f"
+ integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/jsdom" "^20.0.0"
+ "@types/node" "*"
+ jest-mock "^29.7.0"
+ jest-util "^29.7.0"
+ jsdom "^20.0.0"
+
+jest-environment-node@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376"
+ integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-mock "^29.7.0"
+ jest-util "^29.7.0"
+
+jest-get-type@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1"
+ integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==
+
+jest-haste-map@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104"
+ integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/graceful-fs" "^4.1.3"
+ "@types/node" "*"
+ anymatch "^3.0.3"
+ fb-watchman "^2.0.0"
+ graceful-fs "^4.2.9"
+ jest-regex-util "^29.6.3"
+ jest-util "^29.7.0"
+ jest-worker "^29.7.0"
+ micromatch "^4.0.4"
+ walker "^1.0.8"
+ optionalDependencies:
+ fsevents "^2.3.2"
+
+jest-leak-detector@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728"
+ integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==
+ dependencies:
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
+jest-matcher-utils@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12"
+ integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==
+ dependencies:
+ chalk "^4.0.0"
+ jest-diff "^29.7.0"
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
+jest-message-util@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3"
+ integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==
+ dependencies:
+ "@babel/code-frame" "^7.12.13"
+ "@jest/types" "^29.6.3"
+ "@types/stack-utils" "^2.0.0"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ micromatch "^4.0.4"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ stack-utils "^2.0.3"
+
+jest-mock@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347"
+ integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-util "^29.7.0"
+
+jest-pnp-resolver@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e"
+ integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==
+
+jest-regex-util@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52"
+ integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==
+
+jest-resolve-dependencies@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428"
+ integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==
+ dependencies:
+ jest-regex-util "^29.6.3"
+ jest-snapshot "^29.7.0"
+
+jest-resolve@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30"
+ integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==
+ dependencies:
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-pnp-resolver "^1.2.2"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ resolve "^1.20.0"
+ resolve.exports "^2.0.0"
+ slash "^3.0.0"
+
+jest-runner@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e"
+ integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/environment" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ emittery "^0.13.1"
+ graceful-fs "^4.2.9"
+ jest-docblock "^29.7.0"
+ jest-environment-node "^29.7.0"
+ jest-haste-map "^29.7.0"
+ jest-leak-detector "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-resolve "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-util "^29.7.0"
+ jest-watcher "^29.7.0"
+ jest-worker "^29.7.0"
+ p-limit "^3.1.0"
+ source-map-support "0.5.13"
+
+jest-runtime@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817"
+ integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/globals" "^29.7.0"
+ "@jest/source-map" "^29.6.3"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ cjs-module-lexer "^1.0.0"
+ collect-v8-coverage "^1.0.0"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-mock "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ slash "^3.0.0"
+ strip-bom "^4.0.0"
+
+jest-snapshot@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5"
+ integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@babel/generator" "^7.7.2"
+ "@babel/plugin-syntax-jsx" "^7.7.2"
+ "@babel/plugin-syntax-typescript" "^7.7.2"
+ "@babel/types" "^7.3.3"
+ "@jest/expect-utils" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ babel-preset-current-node-syntax "^1.0.0"
+ chalk "^4.0.0"
+ expect "^29.7.0"
+ graceful-fs "^4.2.9"
+ jest-diff "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ natural-compare "^1.4.0"
+ pretty-format "^29.7.0"
+ semver "^7.5.3"
+
+jest-util@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc"
+ integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ graceful-fs "^4.2.9"
+ picomatch "^2.2.3"
+
+jest-validate@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c"
+ integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ camelcase "^6.2.0"
+ chalk "^4.0.0"
+ jest-get-type "^29.6.3"
+ leven "^3.1.0"
+ pretty-format "^29.7.0"
+
+jest-watcher@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2"
+ integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==
+ dependencies:
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ ansi-escapes "^4.2.1"
+ chalk "^4.0.0"
+ emittery "^0.13.1"
+ jest-util "^29.7.0"
+ string-length "^4.0.1"
+
jest-worker@^27.4.5:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0"
@@ -4169,6 +5528,26 @@ jest-worker@^27.4.5:
merge-stream "^2.0.0"
supports-color "^8.0.0"
+jest-worker@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a"
+ integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==
+ dependencies:
+ "@types/node" "*"
+ jest-util "^29.7.0"
+ merge-stream "^2.0.0"
+ supports-color "^8.0.0"
+
+jest@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613"
+ integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==
+ dependencies:
+ "@jest/core" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ import-local "^3.0.2"
+ jest-cli "^29.7.0"
+
js-sdsl@^4.1.4:
version "4.1.5"
resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.5.tgz#1ff1645e6b4d1b028cd3f862db88c9d887f26e2a"
@@ -4179,6 +5558,14 @@ js-sdsl@^4.1.4:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+js-yaml@^3.13.1:
+ version "3.14.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
+ integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
js-yaml@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
@@ -4186,6 +5573,38 @@ js-yaml@^4.1.0:
dependencies:
argparse "^2.0.1"
+jsdom@^20.0.0:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db"
+ integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==
+ dependencies:
+ abab "^2.0.6"
+ acorn "^8.8.1"
+ acorn-globals "^7.0.0"
+ cssom "^0.5.0"
+ cssstyle "^2.3.0"
+ data-urls "^3.0.2"
+ decimal.js "^10.4.2"
+ domexception "^4.0.0"
+ escodegen "^2.0.0"
+ form-data "^4.0.0"
+ html-encoding-sniffer "^3.0.0"
+ http-proxy-agent "^5.0.0"
+ https-proxy-agent "^5.0.1"
+ is-potential-custom-element-name "^1.0.1"
+ nwsapi "^2.2.2"
+ parse5 "^7.1.1"
+ saxes "^6.0.0"
+ symbol-tree "^3.2.4"
+ tough-cookie "^4.1.2"
+ w3c-xmlserializer "^4.0.0"
+ webidl-conversions "^7.0.0"
+ whatwg-encoding "^2.0.0"
+ whatwg-mimetype "^3.0.0"
+ whatwg-url "^11.0.0"
+ ws "^8.11.0"
+ xml-name-validator "^4.0.0"
+
jsesc@^2.5.1:
version "2.5.2"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
@@ -4211,11 +5630,6 @@ json-stable-stringify-without-jsonify@^1.0.1:
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
-json-stringify-safe@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
- integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
-
json2mq@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a"
@@ -4279,6 +5693,11 @@ kind-of@^6.0.2:
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+kleur@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
+ integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
+
lambdafs@^2.0.3:
version "2.1.1"
resolved "https://registry.yarnpkg.com/lambdafs/-/lambdafs-2.1.1.tgz#4bf8d3037b6c61bbb4a22ab05c73ee47964c25ed"
@@ -4298,6 +5717,11 @@ language-tags@=1.0.5, language-tags@^1.0.5:
dependencies:
language-subtag-registry "~0.3.2"
+leven@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
+ integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
+
levn@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
@@ -4381,17 +5805,12 @@ lodash.debounce@^4.0.8:
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
-lodash.defaults@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
- integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==
-
lodash.merge@^4.6.2:
version "4.6.2"
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
-lodash@^4.17.11, lodash@^4.17.21:
+lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.21:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@@ -4427,6 +5846,11 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
+lz-string@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941"
+ integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==
+
make-dir@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
@@ -4435,6 +5859,25 @@ make-dir@^2.1.0:
pify "^4.0.1"
semver "^5.6.0"
+make-dir@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e"
+ integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==
+ dependencies:
+ semver "^7.5.3"
+
+makeerror@1.0.12:
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
+ integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
+ dependencies:
+ tmpl "1.0.5"
+
+markdown-to-jsx@^7.3.2:
+ version "7.3.2"
+ resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz#f286b4d112dad3028acc1e77dfe1f653b347e131"
+ integrity sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==
+
matomo-tracker@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/matomo-tracker/-/matomo-tracker-2.2.4.tgz#ee397d915d7b2e7964996ca28a0a03f4f0692453"
@@ -4495,6 +5938,11 @@ mimic-fn@^4.0.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
+min-indent@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
+ integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
+
minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
@@ -4602,6 +6050,11 @@ node-fetch@2.6.7:
dependencies:
whatwg-url "^5.0.0"
+node-int64@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
+ integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
+
node-releases@^2.0.13:
version "2.0.13"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d"
@@ -4617,6 +6070,13 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+npm-run-path@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+ integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
+ dependencies:
+ path-key "^3.0.0"
+
npm-run-path@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00"
@@ -4624,6 +6084,11 @@ npm-run-path@^5.1.0:
dependencies:
path-key "^4.0.0"
+nwsapi@^2.2.2:
+ version "2.2.7"
+ resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30"
+ integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==
+
object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
@@ -4749,7 +6214,7 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0:
dependencies:
wrappy "1"
-onetime@^5.1.0:
+onetime@^5.1.0, onetime@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
@@ -4798,7 +6263,7 @@ p-limit@^2.2.0:
dependencies:
p-try "^2.0.0"
-p-limit@^3.0.2:
+p-limit@^3.0.2, p-limit@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
@@ -4850,7 +6315,7 @@ parent-module@^1.0.0:
dependencies:
callsites "^3.0.0"
-parse-json@^5.0.0:
+parse-json@^5.0.0, parse-json@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
@@ -4860,6 +6325,13 @@ parse-json@^5.0.0:
json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6"
+parse5@^7.0.0, parse5@^7.1.1:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32"
+ integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==
+ dependencies:
+ entities "^4.4.0"
+
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@@ -4875,7 +6347,7 @@ path-is-absolute@^1.0.0:
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
-path-key@^3.1.0:
+path-key@^3.0.0, path-key@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
@@ -4910,7 +6382,7 @@ picocolors@^1.0.0:
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
-picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.0, picomatch@^2.3.1:
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.0, picomatch@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
@@ -4925,6 +6397,11 @@ pify@^4.0.1:
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
+pirates@^4.0.4:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
+ integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
+
pkg-dir@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
@@ -4978,6 +6455,24 @@ prettier@2.8.4:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3"
integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==
+pretty-format@^27.0.2:
+ version "27.5.1"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e"
+ integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==
+ dependencies:
+ ansi-regex "^5.0.1"
+ ansi-styles "^5.0.0"
+ react-is "^17.0.1"
+
+pretty-format@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812"
+ integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==
+ dependencies:
+ "@jest/schemas" "^29.6.3"
+ ansi-styles "^5.0.0"
+ react-is "^18.0.0"
+
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@@ -4988,6 +6483,14 @@ progress@2.0.3:
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
+prompts@^2.0.1:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
+ integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
+ dependencies:
+ kleur "^3.0.3"
+ sisteransi "^1.0.5"
+
prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.6.1, prop-types@^15.7.2, prop-types@^15.8.1:
version "15.8.1"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
@@ -5002,6 +6505,11 @@ proxy-from-env@1.1.0, proxy-from-env@^1.1.0:
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+psl@^1.1.33:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
+ integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
+
publicodes-react@1.0.0-beta.72:
version "1.0.0-beta.72"
resolved "https://registry.yarnpkg.com/publicodes-react/-/publicodes-react-1.0.0-beta.72.tgz#7047b34e0aaf6331e8310337dfa3a4ad19dccdcd"
@@ -5027,6 +6535,11 @@ punycode@^2.1.0:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+punycode@^2.1.1:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
+ integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
+
puppeteer-core@^19.6.3:
version "19.11.1"
resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-19.11.1.tgz#4c63d7a0a6cd268ff054ebcac315b646eee32667"
@@ -5044,6 +6557,11 @@ puppeteer-core@^19.6.3:
unbzip2-stream "1.4.3"
ws "8.13.0"
+pure-rand@^6.0.0:
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7"
+ integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==
+
qs@^6.5.1:
version "6.11.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
@@ -5066,18 +6584,16 @@ querystring@0.2.0:
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==
+querystringify@^2.1.1:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
+ integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
+
queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
-random-seed@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/random-seed/-/random-seed-0.3.0.tgz#d945f2e1f38f49e8d58913431b8bf6bb937556cd"
- integrity sha512-y13xtn3kcTlLub3HKWXxJNeC2qK4mB59evwZ5EkeRlolx+Bp2ztF7LbcZmyCnOqlHQrLnfuNbi1sVmm9lPDlDA==
- dependencies:
- json-stringify-safe "^5.0.1"
-
randombytes@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@@ -5127,6 +6643,16 @@ react-is@^16.13.1, react-is@^16.7.0:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+react-is@^17.0.1:
+ version "17.0.2"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
+ integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
+
+react-is@^18.0.0:
+ version "18.2.0"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
+ integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
+
react-range@^1.8.14:
version "1.8.14"
resolved "https://registry.yarnpkg.com/react-range/-/react-range-1.8.14.tgz#11047f69b365ac6c75c3d715771ebe76b93982ec"
@@ -5250,6 +6776,14 @@ rechoir@^0.8.0:
dependencies:
resolve "^1.20.0"
+redent@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f"
+ integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==
+ dependencies:
+ indent-string "^4.0.0"
+ strip-indent "^3.0.0"
+
regenerate-unicode-properties@^10.1.0:
version "10.1.0"
resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c"
@@ -5332,6 +6866,11 @@ requireindex@~1.1.0:
resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.1.0.tgz#e5404b81557ef75db6e49c5a72004893fe03e162"
integrity sha512-LBnkqsDE7BZKvqylbmn7lTIVdpx4K/QCduRATpO5R+wtPmky/a8pN1bO2D6wXppn1497AJF9mNjqAXr6bdl9jg==
+requires-port@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
+ integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
+
resize-observer-polyfill@^1.5.0:
version "1.5.1"
resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
@@ -5354,6 +6893,11 @@ resolve-from@^5.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+resolve.exports@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800"
+ integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==
+
resolve@^1.12.0:
version "1.22.2"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f"
@@ -5448,6 +6992,18 @@ safe-regex-test@^1.0.0:
get-intrinsic "^1.1.3"
is-regex "^1.1.4"
+"safer-buffer@>= 2.1.2 < 3.0.0":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+saxes@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5"
+ integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==
+ dependencies:
+ xmlchars "^2.2.0"
+
scheduler@^0.23.0:
version "0.23.0"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe"
@@ -5486,6 +7042,13 @@ semver@^7.3.7:
dependencies:
lru-cache "^6.0.0"
+semver@^7.5.3, semver@^7.5.4:
+ version "7.5.4"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
+ integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
+ dependencies:
+ lru-cache "^6.0.0"
+
serialize-javascript@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8"
@@ -5539,11 +7102,16 @@ side-channel@^1.0.4:
get-intrinsic "^1.0.2"
object-inspect "^1.9.0"
-signal-exit@^3.0.2, signal-exit@^3.0.7:
+signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
version "3.0.7"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+sisteransi@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
+ integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
+
slash@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
@@ -5590,6 +7158,14 @@ source-map-js@^1.0.2:
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
+source-map-support@0.5.13:
+ version "0.5.13"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
+ integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
source-map-support@~0.5.20:
version "0.5.21"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
@@ -5603,7 +7179,7 @@ source-map@^0.5.0:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
-source-map@^0.6.0, source-map@^0.6.1:
+source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
@@ -5613,6 +7189,18 @@ split-on-first@^1.0.0:
resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f"
integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
+
+stack-utils@^2.0.3:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f"
+ integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==
+ dependencies:
+ escape-string-regexp "^2.0.0"
+
stop-iteration-iterator@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4"
@@ -5640,6 +7228,14 @@ string-convert@^0.2.0:
resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97"
integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==
+string-length@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
+ integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==
+ dependencies:
+ char-regex "^1.0.2"
+ strip-ansi "^6.0.0"
+
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
@@ -5755,11 +7351,28 @@ strip-bom@^3.0.0:
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==
+strip-bom@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
+ integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
+
+strip-final-newline@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
strip-final-newline@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd"
integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
+strip-indent@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
+ integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
+ dependencies:
+ min-indent "^1.0.0"
+
strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
@@ -5865,6 +7478,11 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+symbol-tree@^3.2.4:
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
+ integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
+
synckit@^0.8.4:
version "0.8.4"
resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.4.tgz#0e6b392b73fafdafcde56692e3352500261d64ec"
@@ -5925,6 +7543,15 @@ terser@^5.7.2:
commander "^2.20.0"
source-map-support "~0.5.20"
+test-exclude@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
+ integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
+ dependencies:
+ "@istanbuljs/schema" "^0.1.2"
+ glob "^7.1.4"
+ minimatch "^3.0.4"
+
text-table@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
@@ -5943,6 +7570,11 @@ tiny-glob@^0.2.9:
globalyzer "0.1.0"
globrex "^0.1.2"
+tmpl@1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
+ integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
+
to-fast-properties@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
@@ -5960,6 +7592,23 @@ toggle-selection@^1.0.6:
resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32"
integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==
+tough-cookie@^4.1.2:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf"
+ integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==
+ dependencies:
+ psl "^1.1.33"
+ punycode "^2.1.1"
+ universalify "^0.2.0"
+ url-parse "^1.5.3"
+
+tr46@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9"
+ integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==
+ dependencies:
+ punycode "^2.1.1"
+
tr46@~0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
@@ -6024,6 +7673,11 @@ type-check@^0.4.0, type-check@~0.4.0:
dependencies:
prelude-ls "^1.2.1"
+type-detect@4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+ integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
+
type-fest@^0.20.2:
version "0.20.2"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
@@ -6089,6 +7743,11 @@ universalify@^0.1.0, universalify@^0.1.2:
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+universalify@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0"
+ integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==
+
update-browserslist-db@^1.0.11:
version "1.0.11"
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940"
@@ -6112,6 +7771,14 @@ uri-js@^4.2.2:
dependencies:
punycode "^2.1.0"
+url-parse@^1.5.3:
+ version "1.5.10"
+ resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1"
+ integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==
+ dependencies:
+ querystringify "^2.1.1"
+ requires-port "^1.0.0"
+
use-animate-number@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/use-animate-number/-/use-animate-number-1.0.5.tgz#c224fd3ce81d0b563a5215d714aaa98ad8c67470"
@@ -6139,6 +7806,29 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
+v8-to-istanbul@^9.0.1:
+ version "9.1.3"
+ resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz#ea456604101cd18005ac2cae3cdd1aa058a6306b"
+ integrity sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.12"
+ "@types/istanbul-lib-coverage" "^2.0.1"
+ convert-source-map "^2.0.0"
+
+w3c-xmlserializer@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073"
+ integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==
+ dependencies:
+ xml-name-validator "^4.0.0"
+
+walker@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
+ integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
+ dependencies:
+ makeerror "1.0.12"
+
warning@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
@@ -6159,6 +7849,11 @@ webidl-conversions@^3.0.0:
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
+webidl-conversions@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a"
+ integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==
+
webpack-cli@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.0.1.tgz#95fc0495ac4065e9423a722dec9175560b6f2d9a"
@@ -6221,6 +7916,26 @@ webpack@^5.75.0:
watchpack "^2.4.0"
webpack-sources "^3.2.3"
+whatwg-encoding@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53"
+ integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==
+ dependencies:
+ iconv-lite "0.6.3"
+
+whatwg-mimetype@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7"
+ integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==
+
+whatwg-url@^11.0.0:
+ version "11.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018"
+ integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==
+ dependencies:
+ tr46 "^3.0.0"
+ webidl-conversions "^7.0.0"
+
whatwg-url@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
@@ -6302,11 +8017,34 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+write-file-atomic@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
+ integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
+ dependencies:
+ imurmurhash "^0.1.4"
+ signal-exit "^3.0.7"
+
ws@8.13.0:
version "8.13.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0"
integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==
+ws@^8.11.0:
+ version "8.14.2"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f"
+ integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==
+
+xml-name-validator@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835"
+ integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
+
+xmlchars@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
+ integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
+
y18n@^5.0.5:
version "5.0.8"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
@@ -6350,6 +8088,19 @@ yargs@17.7.1:
y18n "^5.0.5"
yargs-parser "^21.1.1"
+yargs@^17.3.1:
+ version "17.7.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
+ integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
+ dependencies:
+ cliui "^8.0.1"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.3"
+ y18n "^5.0.5"
+ yargs-parser "^21.1.1"
+
yauzl@^2.10.0:
version "2.10.0"
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"