From 8c29d760db8e3c922dc83137547faf56c6786492 Mon Sep 17 00:00:00 2001 From: GauthierWebDev Date: Fri, 11 Apr 2025 11:12:05 +0200 Subject: [PATCH] chore: remove old directory --- old/.docusaurus/DONT-EDIT-THIS-FOLDER | 5 - old/.docusaurus/client-modules.js | 6 - old/.docusaurus/codeTranslations.json | 82 - .../default/__plugin.json | 4 - .../default/__plugin.json | 4 - .../p/category-bases-de-donnees-fba.json | 1 - .../default/p/category-frontend-4de.json | 1 - .../p/category-titres-professionnels-9da.json | 1 - .../default/p/category-️-archives-fd2.json | 1 - .../default/p/index-466.json | 1 - .../default/p/tags-accessibilite-a1d.json | 1 - .../default/p/tags-architecture-02f.json | 1 - .../default/p/tags-b9f.json | 1 - .../default/p/tags-back-end-7fe.json | 1 - .../default/p/tags-base-de-donnees-6c5.json | 1 - .../default/p/tags-bibliotheque-7e0.json | 1 - .../default/p/tags-cda-a60.json | 1 - .../default/p/tags-chiffrement-d68.json | 1 - .../default/p/tags-conception-113.json | 1 - .../default/p/tags-csr-5ca.json | 1 - .../default/p/tags-css-369.json | 1 - .../default/p/tags-deploiement-fb0.json | 1 - .../default/p/tags-design-pattern-4d2.json | 1 - .../p/tags-dictionnaire-de-donnees-6f4.json | 1 - .../default/p/tags-dwwm-ea7.json | 1 - .../default/p/tags-eco-conception-ad6.json | 1 - ...gs-environnement-de-developpement-91b.json | 1 - .../default/p/tags-front-end-b92.json | 1 - .../default/p/tags-frontend-a9a.json | 1 - .../default/p/tags-hachage-a9b.json | 1 - .../default/p/tags-html-ea7.json | 1 - .../default/p/tags-integration-c39.json | 1 - .../p/tags-interface-utilisateur-ui-bec.json | 1 - .../p/tags-java-script-type-script-4ed.json | 1 - .../default/p/tags-maquettage-4e5.json | 1 - .../default/p/tags-merise-88f.json | 1 - ...-modele-conceptuel-de-donnees-mcd-4e2.json | 1 - ...ags-modele-logique-de-donnees-mld-b5b.json | 1 - ...gs-modele-physique-de-donnees-mpd-715.json | 1 - ...modele-relationnel-de-donnees-mrd-c20.json | 1 - .../default/p/tags-modelisation-8ee.json | 1 - .../default/p/tags-orm-odm-4b7.json | 1 - .../default/p/tags-react-df3.json | 1 - .../default/p/tags-responsive-3f9.json | 1 - .../default/p/tags-reverse-proxy-c23.json | 1 - .../default/p/tags-securite-b35.json | 1 - .../p/tags-seo-referencement-naturel-192.json | 1 - .../default/p/tags-serveur-web-fe0.json | 1 - .../default/p/tags-sql-d44.json | 1 - .../default/p/tags-ssg-04a.json | 1 - .../default/p/tags-ssr-9fe.json | 1 - .../default/p/tags-tests-694.json | 1 - .../default/p/tags-vike-d66.json | 1 - .../default/p/tags-vite-893.json | 1 - .../default/p/tags-wireframe-020.json | 1 - .../default/p/tags-zoning-463.json | 1 - .../default/site-docs-contribuer-mdx-70e.json | 24 - ...ossaires-titres-professionnel-mdx-ed4.json | 29 - .../default/site-docs-intro-mdx-f84.json | 24 - ...ation-dictionnaire-de-donnees-mdx-f25.json | 104 - ...s-de-donnees-modelisation-mcd-mdx-bb4.json | 104 - ...e-donnees-modelisation-merise-mdx-5d6.json | 98 - ...rces-frontend-react-contextes-mdx-cbc.json | 62 - ...ssources-frontend-react-hooks-mdx-d19.json | 62 - ...t-initialiser-un-projet-react-mdx-be7.json | 92 - ...ssources-frontend-react-intro-mdx-f04.json | 62 - ...ntend-react-premier-composant-mdx-b78.json | 62 - ...urces-frontend-react-reducers-mdx-68b.json | 62 - ...d-react-state-et-cycle-de-vie-mdx-719.json | 62 - ...es-frontend-react-syntaxe-jsx-mdx-e94.json | 62 - ...ces-influenceurs-et-createurs-mdx-eae.json | 29 - ...ocs-soutiens-et-contributeurs-mdx-d64.json | 28 - ...ives-dwwm-2018-2023-at-1-cp-1-mdx-fff.json | 29 - ...ives-dwwm-2018-2023-at-1-cp-2-mdx-0eb.json | 29 - ...ives-dwwm-2018-2023-at-1-cp-3-mdx-675.json | 29 - ...ives-dwwm-2018-2023-at-1-cp-4-mdx-af6.json | 29 - ...ives-dwwm-2018-2023-at-2-cp-5-mdx-bbc.json | 29 - ...ives-dwwm-2018-2023-at-2-cp-6-mdx-dc9.json | 29 - ...ives-dwwm-2018-2023-at-2-cp-7-mdx-b3f.json | 29 - ...ives-dwwm-2018-2023-at-2-cp-8-mdx-85e.json | 29 - ...archives-dwwm-2018-2023-intro-mdx-710.json | 29 - ...-professionnels-cda-at-1-cp-1-mdx-cca.json | 44 - ...-professionnels-cda-at-1-cp-2-mdx-fe2.json | 38 - ...-professionnels-cda-at-1-cp-3-mdx-829.json | 38 - ...-professionnels-cda-at-1-cp-4-mdx-910.json | 38 - ...-professionnels-cda-at-2-cp-5-mdx-518.json | 38 - ...-professionnels-cda-at-2-cp-6-mdx-061.json | 38 - ...-professionnels-cda-at-2-cp-7-mdx-2b6.json | 38 - ...-professionnels-cda-at-2-cp-8-mdx-c00.json | 38 - ...professionnels-cda-at-3-cp-10-mdx-e45.json | 38 - ...professionnels-cda-at-3-cp-11-mdx-56a.json | 38 - ...-professionnels-cda-at-3-cp-9-mdx-5a4.json | 38 - ...tres-professionnels-cda-intro-mdx-dbc.json | 38 - ...professionnels-dwwm-at-1-cp-1-mdx-00e.json | 44 - ...professionnels-dwwm-at-1-cp-2-mdx-3c4.json | 80 - ...professionnels-dwwm-at-1-cp-3-mdx-9bc.json | 104 - ...professionnels-dwwm-at-1-cp-4-mdx-0c9.json | 68 - ...professionnels-dwwm-at-2-cp-5-mdx-f21.json | 104 - ...professionnels-dwwm-at-2-cp-6-mdx-626.json | 80 - ...professionnels-dwwm-at-2-cp-7-mdx-4bf.json | 68 - ...professionnels-dwwm-at-2-cp-8-mdx-807.json | 62 - ...res-professionnels-dwwm-intro-mdx-1f0.json | 38 - ...rofessionnels-dwwm-soutenance-mdx-b38.json | 29 - ...titres-professionnels-retours-mdx-0ee.json | 29 - ...es-professionnels-se-preparer-mdx-c72.json | 29 - .../default/__plugin.json | 4 - .../site-src-pages-markdown-page-md-393.json | 11 - .../default/__plugin.json | 4 - .../p/docusaurus-debug-content-0d5.json | 1 - old/.docusaurus/docusaurus.config.mjs | 632 - old/.docusaurus/globalData.json | 301 - old/.docusaurus/i18n.json | 17 - old/.docusaurus/lunr.client.js | 7 - old/.docusaurus/registry.js | 123 - old/.docusaurus/routes.js | 625 - old/.docusaurus/routesChunkNames.json | 475 - old/.docusaurus/site-metadata.json | 44 - old/.docusaurus/site-storage.json | 4 - old/.github/workflows/deploy.yml | 61 - old/.prettierignore | 2 - old/.vscode/settings.json | 3 - old/LICENCE-Dicosaurus | 21 - old/LICENCE-Memento-Dev | 21 - old/README.md | 28 - old/babel.config.js | 3 - old/docs/contribuer.mdx | 147 - old/docs/glossaires/_category_.json | 4 - old/docs/glossaires/titres-professionnel.mdx | 84 - old/docs/intro.mdx | 23 - old/docs/ressources/_category_.json | 4 - .../bases-de-donnees/_category_.json | 7 - .../modelisation/_category_.json | 4 - .../modelisation/dictionnaire-de-donnees.mdx | 67 - .../modelisation/img/mcd-exemple.webp | Bin 33714 -> 0 bytes .../modelisation/img/mcd-guide.webp | Bin 15074 -> 0 bytes .../modelisation/img/mld-exemple.webp | Bin 22742 -> 0 bytes .../modelisation/img/mld-guide.webp | Bin 9698 -> 0 bytes .../bases-de-donnees/modelisation/mcd.mdx | 141 - .../bases-de-donnees/modelisation/merise.mdx | 479 - old/docs/ressources/frontend/_category_.json | 7 - .../ressources/frontend/react/_category_.json | 4 - .../ressources/frontend/react/contextes.mdx | 582 - old/docs/ressources/frontend/react/hooks.mdx | 382 - .../react/initialiser-un-projet-react.mdx | 288 - old/docs/ressources/frontend/react/intro.mdx | 246 - .../frontend/react/premier-composant.mdx | 240 - .../ressources/frontend/react/reducers.mdx | 596 - .../frontend/react/state-et-cycle-de-vie.mdx | 212 - .../ressources/frontend/react/syntaxe-jsx.mdx | 306 - .../ressources/influenceurs-et-createurs.mdx | 54 - old/docs/soutiens-et-contributeurs.mdx | 20 - .../titres-professionnels/CDA/AT1/CP1.mdx | 12 - .../titres-professionnels/CDA/AT1/CP2.mdx | 11 - .../titres-professionnels/CDA/AT1/CP3.mdx | 11 - .../titres-professionnels/CDA/AT1/CP4.mdx | 11 - .../CDA/AT1/_category_.json | 4 - .../titres-professionnels/CDA/AT2/CP5.mdx | 11 - .../titres-professionnels/CDA/AT2/CP6.mdx | 11 - .../titres-professionnels/CDA/AT2/CP7.mdx | 11 - .../titres-professionnels/CDA/AT2/CP8.mdx | 11 - .../CDA/AT2/_category_.json | 4 - .../titres-professionnels/CDA/AT3/CP10.mdx | 11 - .../titres-professionnels/CDA/AT3/CP11.mdx | 11 - .../titres-professionnels/CDA/AT3/CP9.mdx | 11 - .../CDA/AT3/_category_.json | 4 - .../titres-professionnels/CDA/_category_.json | 4 - old/docs/titres-professionnels/CDA/intro.mdx | 75 - .../titres-professionnels/DWWM/AT1/CP1.mdx | 63 - .../titres-professionnels/DWWM/AT1/CP2.mdx | 141 - .../titres-professionnels/DWWM/AT1/CP3.mdx | 286 - .../titres-professionnels/DWWM/AT1/CP4.mdx | 274 - .../DWWM/AT1/_category_.json | 4 - .../titres-professionnels/DWWM/AT2/CP5.mdx | 435 - .../titres-professionnels/DWWM/AT2/CP6.mdx | 348 - .../titres-professionnels/DWWM/AT2/CP7.mdx | 331 - .../titres-professionnels/DWWM/AT2/CP8.mdx | 166 - .../DWWM/AT2/_category_.json | 4 - .../DWWM/_category_.json | 4 - old/docs/titres-professionnels/DWWM/intro.mdx | 64 - .../titres-professionnels/DWWM/soutenance.mdx | 196 - .../titres-professionnels/_category_.json | 8 - .../archives/DWWM/2018-2023/AT1/CP1.mdx | 112 - .../archives/DWWM/2018-2023/AT1/CP2.mdx | 129 - .../archives/DWWM/2018-2023/AT1/CP3.mdx | 125 - .../archives/DWWM/2018-2023/AT1/CP4.mdx | 45 - .../archives/DWWM/2018-2023/AT2/CP5.mdx | 91 - .../archives/DWWM/2018-2023/AT2/CP6.mdx | 115 - .../archives/DWWM/2018-2023/AT2/CP7.mdx | 43 - .../archives/DWWM/2018-2023/AT2/CP8.mdx | 44 - .../archives/DWWM/2018-2023/intro.mdx | 64 - .../archives/DWWM/_category_.json | 4 - .../archives/_category_.json | 8 - old/docs/titres-professionnels/retours.mdx | 64 - .../titres-professionnels/se-preparer.mdx | 191 - old/docusaurus.config.ts | 298 - old/i18n/fr/code.json | 289 - .../current.json | 66 - .../fr/docusaurus-theme-classic/footer.json | 46 - .../fr/docusaurus-theme-classic/navbar.json | 42 - old/package.json | 66 - old/pnpm-lock.yaml | 12900 ---------------- old/sidebars.ts | 31 - old/src/components/Button/index.tsx | 38 - old/src/components/HomepageFeatures/index.tsx | 79 - old/src/components/ICalLink/index.tsx | 55 - old/src/components/PwaBanner/index.tsx | 33 - old/src/components/Quiz/index.tsx | 164 - .../TestimonialCardButton/index.tsx | 33 - old/src/components/Testimonials/index.tsx | 225 - old/src/css/custom.css | 240 - old/src/data/testimonials.ts | 105 - old/src/hooks/useDeviceDetector.tsx | 31 - old/src/hooks/usePwaInstaller.tsx | 51 - old/src/pages/index.tsx | 52 - old/src/pages/markdown-page.md | 7 - old/src/pages/mentions-legales.tsx | 113 - old/src/theme/Admonition/Types.tsx | 63 - old/src/theme/DocTagDocListPage/index.tsx | 113 - old/src/theme/DocTagsListPage/index.tsx | 63 - old/src/theme/NotFound/Content/index.tsx | 51 - old/src/theme/NotFound/index.tsx | 20 - old/src/theme/SearchBar/DocSearch.js | 310 - .../SearchBar/HighlightSearchResults.jsx | 53 - old/src/theme/SearchBar/algolia.css | 560 - old/src/theme/SearchBar/index.jsx | 165 - old/src/theme/SearchBar/lunar-search.js | 156 - old/src/theme/SearchBar/styles.css | 40 - old/src/theme/SearchBar/templates.js | 115 - old/src/theme/SearchBar/utils.js | 270 - old/src/theme/Tabs/index.tsx | 188 - old/src/theme/Tabs/styles.module.css | 14 - old/src/theme/Tag/index.tsx | 23 - old/src/theme/TagsListByLetter/index.tsx | 49 - .../theme/TagsListByLetter/styles.module.css | 11 - old/src/theme/TagsListInline/index.tsx | 18 - old/static/.nojekyll | 0 old/static/design_patterns/mvc.svg | 1 - .../fonts/Luciole/Luciole-Bold-Italic.ttf | Bin 171528 -> 0 bytes old/static/fonts/Luciole/Luciole-Bold.ttf | Bin 166076 -> 0 bytes .../fonts/Luciole/Luciole-Regular-Italic.ttf | Bin 170744 -> 0 bytes old/static/fonts/Luciole/Luciole-Regular.ttf | Bin 167572 -> 0 bytes old/static/icons/icon-128x128.png | Bin 9316 -> 0 bytes old/static/icons/icon-128x128.webp | Bin 3680 -> 0 bytes old/static/icons/icon-144x144.png | Bin 10910 -> 0 bytes old/static/icons/icon-144x144.webp | Bin 3972 -> 0 bytes old/static/icons/icon-152x152.png | Bin 11594 -> 0 bytes old/static/icons/icon-152x152.webp | Bin 4206 -> 0 bytes old/static/icons/icon-192x192.png | Bin 16640 -> 0 bytes old/static/icons/icon-192x192.webp | Bin 5410 -> 0 bytes old/static/icons/icon-384x384.png | Bin 52393 -> 0 bytes old/static/icons/icon-384x384.webp | Bin 12422 -> 0 bytes old/static/icons/icon-512x512.png | Bin 77824 -> 0 bytes old/static/icons/icon-512x512.webp | Bin 17866 -> 0 bytes old/static/icons/icon-72x72.png | Bin 4612 -> 0 bytes old/static/icons/icon-72x72.webp | Bin 2278 -> 0 bytes old/static/icons/icon-96x96.png | Bin 6414 -> 0 bytes old/static/icons/icon-96x96.webp | Bin 2840 -> 0 bytes old/static/illustrations/coding.svg | 1 - old/static/illustrations/diversity.svg | 1 - old/static/illustrations/map.svg | 144 - old/static/illustrations/notes.svg | 1 - old/static/img/favicon.webp | Bin 27952 -> 0 bytes old/static/img/logo.webp | Bin 10922 -> 0 bytes old/static/img/undraw_docusaurus_mountain.svg | 171 - old/static/img/undraw_docusaurus_react.svg | 170 - old/static/img/undraw_docusaurus_tree.svg | 40 - old/static/manifest.json | 93 - old/static/merise/mcd.webp | Bin 33714 -> 0 bytes old/static/merise/mld.webp | Bin 22742 -> 0 bytes old/tailwind.config.js | 19 - old/tsconfig.json | 7 - 271 files changed, 30326 deletions(-) delete mode 100644 old/.docusaurus/DONT-EDIT-THIS-FOLDER delete mode 100644 old/.docusaurus/client-modules.js delete mode 100644 old/.docusaurus/codeTranslations.json delete mode 100644 old/.docusaurus/docusaurus-lunr-search/default/__plugin.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/__plugin.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/category-bases-de-donnees-fba.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/category-frontend-4de.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/category-titres-professionnels-9da.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/category-️-archives-fd2.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/index-466.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-accessibilite-a1d.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-architecture-02f.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-b9f.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-back-end-7fe.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-base-de-donnees-6c5.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-bibliotheque-7e0.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-cda-a60.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-chiffrement-d68.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-conception-113.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-csr-5ca.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-css-369.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-deploiement-fb0.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-design-pattern-4d2.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-dictionnaire-de-donnees-6f4.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-dwwm-ea7.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-eco-conception-ad6.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-environnement-de-developpement-91b.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-front-end-b92.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-frontend-a9a.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-hachage-a9b.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-html-ea7.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-integration-c39.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-interface-utilisateur-ui-bec.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-java-script-type-script-4ed.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-maquettage-4e5.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-merise-88f.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modele-conceptuel-de-donnees-mcd-4e2.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modele-logique-de-donnees-mld-b5b.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modele-physique-de-donnees-mpd-715.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modele-relationnel-de-donnees-mrd-c20.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modelisation-8ee.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-orm-odm-4b7.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-react-df3.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-responsive-3f9.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-reverse-proxy-c23.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-securite-b35.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-seo-referencement-naturel-192.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-serveur-web-fe0.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-sql-d44.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-ssg-04a.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-ssr-9fe.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-tests-694.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-vike-d66.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-vite-893.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-wireframe-020.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-zoning-463.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-contribuer-mdx-70e.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-glossaires-titres-professionnel-mdx-ed4.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-intro-mdx-f84.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-bases-de-donnees-modelisation-dictionnaire-de-donnees-mdx-f25.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-bases-de-donnees-modelisation-mcd-mdx-bb4.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-bases-de-donnees-modelisation-merise-mdx-5d6.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-contextes-mdx-cbc.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-hooks-mdx-d19.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-initialiser-un-projet-react-mdx-be7.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-intro-mdx-f04.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-premier-composant-mdx-b78.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-reducers-mdx-68b.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-state-et-cycle-de-vie-mdx-719.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-syntaxe-jsx-mdx-e94.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-influenceurs-et-createurs-mdx-eae.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-soutiens-et-contributeurs-mdx-d64.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-1-cp-1-mdx-fff.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-1-cp-2-mdx-0eb.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-1-cp-3-mdx-675.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-1-cp-4-mdx-af6.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-2-cp-5-mdx-bbc.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-2-cp-6-mdx-dc9.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-2-cp-7-mdx-b3f.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-2-cp-8-mdx-85e.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-intro-mdx-710.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-1-cp-1-mdx-cca.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-1-cp-2-mdx-fe2.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-1-cp-3-mdx-829.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-1-cp-4-mdx-910.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-2-cp-5-mdx-518.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-2-cp-6-mdx-061.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-2-cp-7-mdx-2b6.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-2-cp-8-mdx-c00.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-3-cp-10-mdx-e45.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-3-cp-11-mdx-56a.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-3-cp-9-mdx-5a4.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-intro-mdx-dbc.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-1-cp-1-mdx-00e.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-1-cp-2-mdx-3c4.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-1-cp-3-mdx-9bc.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-1-cp-4-mdx-0c9.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-2-cp-5-mdx-f21.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-2-cp-6-mdx-626.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-2-cp-7-mdx-4bf.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-2-cp-8-mdx-807.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-intro-mdx-1f0.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-soutenance-mdx-b38.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-retours-mdx-0ee.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-se-preparer-mdx-c72.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-pages/default/__plugin.json delete mode 100644 old/.docusaurus/docusaurus-plugin-content-pages/default/site-src-pages-markdown-page-md-393.json delete mode 100644 old/.docusaurus/docusaurus-plugin-debug/default/__plugin.json delete mode 100644 old/.docusaurus/docusaurus-plugin-debug/default/p/docusaurus-debug-content-0d5.json delete mode 100644 old/.docusaurus/docusaurus.config.mjs delete mode 100644 old/.docusaurus/globalData.json delete mode 100644 old/.docusaurus/i18n.json delete mode 100644 old/.docusaurus/lunr.client.js delete mode 100644 old/.docusaurus/registry.js delete mode 100644 old/.docusaurus/routes.js delete mode 100644 old/.docusaurus/routesChunkNames.json delete mode 100644 old/.docusaurus/site-metadata.json delete mode 100644 old/.docusaurus/site-storage.json delete mode 100644 old/.github/workflows/deploy.yml delete mode 100644 old/.prettierignore delete mode 100644 old/.vscode/settings.json delete mode 100644 old/LICENCE-Dicosaurus delete mode 100644 old/LICENCE-Memento-Dev delete mode 100644 old/README.md delete mode 100644 old/babel.config.js delete mode 100644 old/docs/contribuer.mdx delete mode 100644 old/docs/glossaires/_category_.json delete mode 100644 old/docs/glossaires/titres-professionnel.mdx delete mode 100644 old/docs/intro.mdx delete mode 100644 old/docs/ressources/_category_.json delete mode 100644 old/docs/ressources/bases-de-donnees/_category_.json delete mode 100644 old/docs/ressources/bases-de-donnees/modelisation/_category_.json delete mode 100644 old/docs/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees.mdx delete mode 100644 old/docs/ressources/bases-de-donnees/modelisation/img/mcd-exemple.webp delete mode 100644 old/docs/ressources/bases-de-donnees/modelisation/img/mcd-guide.webp delete mode 100644 old/docs/ressources/bases-de-donnees/modelisation/img/mld-exemple.webp delete mode 100644 old/docs/ressources/bases-de-donnees/modelisation/img/mld-guide.webp delete mode 100644 old/docs/ressources/bases-de-donnees/modelisation/mcd.mdx delete mode 100644 old/docs/ressources/bases-de-donnees/modelisation/merise.mdx delete mode 100644 old/docs/ressources/frontend/_category_.json delete mode 100644 old/docs/ressources/frontend/react/_category_.json delete mode 100644 old/docs/ressources/frontend/react/contextes.mdx delete mode 100644 old/docs/ressources/frontend/react/hooks.mdx delete mode 100644 old/docs/ressources/frontend/react/initialiser-un-projet-react.mdx delete mode 100644 old/docs/ressources/frontend/react/intro.mdx delete mode 100644 old/docs/ressources/frontend/react/premier-composant.mdx delete mode 100644 old/docs/ressources/frontend/react/reducers.mdx delete mode 100644 old/docs/ressources/frontend/react/state-et-cycle-de-vie.mdx delete mode 100644 old/docs/ressources/frontend/react/syntaxe-jsx.mdx delete mode 100644 old/docs/ressources/influenceurs-et-createurs.mdx delete mode 100644 old/docs/soutiens-et-contributeurs.mdx delete mode 100644 old/docs/titres-professionnels/CDA/AT1/CP1.mdx delete mode 100644 old/docs/titres-professionnels/CDA/AT1/CP2.mdx delete mode 100644 old/docs/titres-professionnels/CDA/AT1/CP3.mdx delete mode 100644 old/docs/titres-professionnels/CDA/AT1/CP4.mdx delete mode 100644 old/docs/titres-professionnels/CDA/AT1/_category_.json delete mode 100644 old/docs/titres-professionnels/CDA/AT2/CP5.mdx delete mode 100644 old/docs/titres-professionnels/CDA/AT2/CP6.mdx delete mode 100644 old/docs/titres-professionnels/CDA/AT2/CP7.mdx delete mode 100644 old/docs/titres-professionnels/CDA/AT2/CP8.mdx delete mode 100644 old/docs/titres-professionnels/CDA/AT2/_category_.json delete mode 100644 old/docs/titres-professionnels/CDA/AT3/CP10.mdx delete mode 100644 old/docs/titres-professionnels/CDA/AT3/CP11.mdx delete mode 100644 old/docs/titres-professionnels/CDA/AT3/CP9.mdx delete mode 100644 old/docs/titres-professionnels/CDA/AT3/_category_.json delete mode 100644 old/docs/titres-professionnels/CDA/_category_.json delete mode 100644 old/docs/titres-professionnels/CDA/intro.mdx delete mode 100644 old/docs/titres-professionnels/DWWM/AT1/CP1.mdx delete mode 100644 old/docs/titres-professionnels/DWWM/AT1/CP2.mdx delete mode 100644 old/docs/titres-professionnels/DWWM/AT1/CP3.mdx delete mode 100644 old/docs/titres-professionnels/DWWM/AT1/CP4.mdx delete mode 100644 old/docs/titres-professionnels/DWWM/AT1/_category_.json delete mode 100644 old/docs/titres-professionnels/DWWM/AT2/CP5.mdx delete mode 100644 old/docs/titres-professionnels/DWWM/AT2/CP6.mdx delete mode 100644 old/docs/titres-professionnels/DWWM/AT2/CP7.mdx delete mode 100644 old/docs/titres-professionnels/DWWM/AT2/CP8.mdx delete mode 100644 old/docs/titres-professionnels/DWWM/AT2/_category_.json delete mode 100644 old/docs/titres-professionnels/DWWM/_category_.json delete mode 100644 old/docs/titres-professionnels/DWWM/intro.mdx delete mode 100644 old/docs/titres-professionnels/DWWM/soutenance.mdx delete mode 100644 old/docs/titres-professionnels/_category_.json delete mode 100644 old/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1.mdx delete mode 100644 old/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2.mdx delete mode 100644 old/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3.mdx delete mode 100644 old/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4.mdx delete mode 100644 old/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5.mdx delete mode 100644 old/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6.mdx delete mode 100644 old/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7.mdx delete mode 100644 old/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8.mdx delete mode 100644 old/docs/titres-professionnels/archives/DWWM/2018-2023/intro.mdx delete mode 100644 old/docs/titres-professionnels/archives/DWWM/_category_.json delete mode 100644 old/docs/titres-professionnels/archives/_category_.json delete mode 100644 old/docs/titres-professionnels/retours.mdx delete mode 100644 old/docs/titres-professionnels/se-preparer.mdx delete mode 100644 old/docusaurus.config.ts delete mode 100644 old/i18n/fr/code.json delete mode 100644 old/i18n/fr/docusaurus-plugin-content-docs/current.json delete mode 100644 old/i18n/fr/docusaurus-theme-classic/footer.json delete mode 100644 old/i18n/fr/docusaurus-theme-classic/navbar.json delete mode 100644 old/package.json delete mode 100644 old/pnpm-lock.yaml delete mode 100644 old/sidebars.ts delete mode 100644 old/src/components/Button/index.tsx delete mode 100644 old/src/components/HomepageFeatures/index.tsx delete mode 100644 old/src/components/ICalLink/index.tsx delete mode 100644 old/src/components/PwaBanner/index.tsx delete mode 100644 old/src/components/Quiz/index.tsx delete mode 100644 old/src/components/TestimonialCardButton/index.tsx delete mode 100644 old/src/components/Testimonials/index.tsx delete mode 100644 old/src/css/custom.css delete mode 100644 old/src/data/testimonials.ts delete mode 100644 old/src/hooks/useDeviceDetector.tsx delete mode 100644 old/src/hooks/usePwaInstaller.tsx delete mode 100644 old/src/pages/index.tsx delete mode 100644 old/src/pages/markdown-page.md delete mode 100644 old/src/pages/mentions-legales.tsx delete mode 100644 old/src/theme/Admonition/Types.tsx delete mode 100644 old/src/theme/DocTagDocListPage/index.tsx delete mode 100644 old/src/theme/DocTagsListPage/index.tsx delete mode 100644 old/src/theme/NotFound/Content/index.tsx delete mode 100644 old/src/theme/NotFound/index.tsx delete mode 100644 old/src/theme/SearchBar/DocSearch.js delete mode 100644 old/src/theme/SearchBar/HighlightSearchResults.jsx delete mode 100644 old/src/theme/SearchBar/algolia.css delete mode 100644 old/src/theme/SearchBar/index.jsx delete mode 100644 old/src/theme/SearchBar/lunar-search.js delete mode 100644 old/src/theme/SearchBar/styles.css delete mode 100644 old/src/theme/SearchBar/templates.js delete mode 100644 old/src/theme/SearchBar/utils.js delete mode 100644 old/src/theme/Tabs/index.tsx delete mode 100644 old/src/theme/Tabs/styles.module.css delete mode 100644 old/src/theme/Tag/index.tsx delete mode 100644 old/src/theme/TagsListByLetter/index.tsx delete mode 100644 old/src/theme/TagsListByLetter/styles.module.css delete mode 100644 old/src/theme/TagsListInline/index.tsx delete mode 100644 old/static/.nojekyll delete mode 100644 old/static/design_patterns/mvc.svg delete mode 100644 old/static/fonts/Luciole/Luciole-Bold-Italic.ttf delete mode 100644 old/static/fonts/Luciole/Luciole-Bold.ttf delete mode 100644 old/static/fonts/Luciole/Luciole-Regular-Italic.ttf delete mode 100644 old/static/fonts/Luciole/Luciole-Regular.ttf delete mode 100644 old/static/icons/icon-128x128.png delete mode 100644 old/static/icons/icon-128x128.webp delete mode 100644 old/static/icons/icon-144x144.png delete mode 100644 old/static/icons/icon-144x144.webp delete mode 100644 old/static/icons/icon-152x152.png delete mode 100644 old/static/icons/icon-152x152.webp delete mode 100644 old/static/icons/icon-192x192.png delete mode 100644 old/static/icons/icon-192x192.webp delete mode 100644 old/static/icons/icon-384x384.png delete mode 100644 old/static/icons/icon-384x384.webp delete mode 100644 old/static/icons/icon-512x512.png delete mode 100644 old/static/icons/icon-512x512.webp delete mode 100644 old/static/icons/icon-72x72.png delete mode 100644 old/static/icons/icon-72x72.webp delete mode 100644 old/static/icons/icon-96x96.png delete mode 100644 old/static/icons/icon-96x96.webp delete mode 100644 old/static/illustrations/coding.svg delete mode 100644 old/static/illustrations/diversity.svg delete mode 100644 old/static/illustrations/map.svg delete mode 100644 old/static/illustrations/notes.svg delete mode 100644 old/static/img/favicon.webp delete mode 100644 old/static/img/logo.webp delete mode 100644 old/static/img/undraw_docusaurus_mountain.svg delete mode 100644 old/static/img/undraw_docusaurus_react.svg delete mode 100644 old/static/img/undraw_docusaurus_tree.svg delete mode 100644 old/static/manifest.json delete mode 100644 old/static/merise/mcd.webp delete mode 100644 old/static/merise/mld.webp delete mode 100644 old/tailwind.config.js delete mode 100644 old/tsconfig.json diff --git a/old/.docusaurus/DONT-EDIT-THIS-FOLDER b/old/.docusaurus/DONT-EDIT-THIS-FOLDER deleted file mode 100644 index 6c06ae8..0000000 --- a/old/.docusaurus/DONT-EDIT-THIS-FOLDER +++ /dev/null @@ -1,5 +0,0 @@ -This folder stores temp files that Docusaurus' client bundler accesses. - -DO NOT hand-modify files in this folder because they will be overwritten in the -next build. You can clear all build artifacts (including this folder) with the -`docusaurus clear` command. diff --git a/old/.docusaurus/client-modules.js b/old/.docusaurus/client-modules.js deleted file mode 100644 index a4b2732..0000000 --- a/old/.docusaurus/client-modules.js +++ /dev/null @@ -1,6 +0,0 @@ -export default [ - require("/Users/jack/Projets/Perso/memento-dev/node_modules/.pnpm/infima@0.2.0-alpha.45/node_modules/infima/dist/css/default/default.css"), - require("/Users/jack/Projets/Perso/memento-dev/node_modules/.pnpm/@docusaurus+theme-classic@3.6.1_@types+react@18.3.3_react-dom@18.3.1_react@18.3.1__react@18.3.1_typescript@5.2.2/node_modules/@docusaurus/theme-classic/lib/prism-include-languages"), - require("/Users/jack/Projets/Perso/memento-dev/node_modules/.pnpm/@docusaurus+theme-classic@3.6.1_@types+react@18.3.3_react-dom@18.3.1_react@18.3.1__react@18.3.1_typescript@5.2.2/node_modules/@docusaurus/theme-classic/lib/nprogress"), - require("/Users/jack/Projets/Perso/memento-dev/src/css/custom.css"), -]; diff --git a/old/.docusaurus/codeTranslations.json b/old/.docusaurus/codeTranslations.json deleted file mode 100644 index bdb46f7..0000000 --- a/old/.docusaurus/codeTranslations.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "theme.AnnouncementBar.closeButtonAriaLabel": "Fermer", - "theme.BackToTopButton.buttonAriaLabel": "Retour au début de la page", - "theme.CodeBlock.copied": "Copié", - "theme.CodeBlock.copy": "Copier", - "theme.CodeBlock.copyButtonAriaLabel": "Copier le code", - "theme.CodeBlock.wordWrapToggle": "Activer/désactiver le retour à la ligne", - "theme.DocSidebarItem.collapseCategoryAriaLabel": "Réduire la catégorie '{label}' de la barre latérale", - "theme.DocSidebarItem.expandCategoryAriaLabel": "Développer la catégorie '{label}' de la barre latérale", - "theme.ErrorPageContent.title": "Cette page a planté.", - "theme.ErrorPageContent.tryAgain": "Réessayer", - "theme.NavBar.navAriaLabel": "Main", - "theme.NotFound.p1": "Nous n'avons pas trouvé ce que vous recherchez.", - "theme.NotFound.p2": "Veuillez contacter le propriétaire du site qui vous a lié à l'URL d'origine et leur faire savoir que leur lien est cassé.", - "theme.NotFound.title": "Page introuvable", - "theme.TOCCollapsible.toggleButtonLabel": "Sur cette page", - "theme.admonition.caution": "attention", - "theme.admonition.danger": "danger", - "theme.admonition.info": "info", - "theme.admonition.note": "remarque", - "theme.admonition.tip": "astuce", - "theme.admonition.warning": "attention", - "theme.blog.archive.description": "Archive", - "theme.blog.archive.title": "Archive", - "theme.blog.author.noPosts": "This author has not written any posts yet.", - "theme.blog.author.pageTitle": "{authorName} - {nPosts}", - "theme.blog.authorsList.pageTitle": "Authors", - "theme.blog.authorsList.viewAll": "View All Authors", - "theme.blog.paginator.navAriaLabel": "Pagination de la liste des articles du blog", - "theme.blog.paginator.newerEntries": "Nouvelles entrées", - "theme.blog.paginator.olderEntries": "Anciennes entrées", - "theme.blog.post.paginator.navAriaLabel": "Pagination des articles du blog", - "theme.blog.post.paginator.newerPost": "Article plus récent", - "theme.blog.post.paginator.olderPost": "Article plus ancien", - "theme.blog.post.plurals": "Un article|{count} articles", - "theme.blog.post.readMore": "Lire plus", - "theme.blog.post.readMoreLabel": "En savoir plus sur {title}", - "theme.blog.post.readingTime.plurals": "Une minute de lecture|{readingTime} minutes de lecture", - "theme.blog.sidebar.navAriaLabel": "Navigation article de blog récent", - "theme.blog.tagTitle": "{nPosts} tagués avec « {tagName} »", - "theme.colorToggle.ariaLabel": "Basculer entre le mode sombre et clair (actuellement {mode})", - "theme.colorToggle.ariaLabel.mode.dark": "mode sombre", - "theme.colorToggle.ariaLabel.mode.light": "mode clair", - "theme.common.editThisPage": "Éditer cette page", - "theme.common.headingLinkTitle": "Lien direct vers {heading}", - "theme.common.skipToMainContent": "Aller au contenu principal", - "theme.contentVisibility.draftBanner.message": "This page is a draft. It will only be visible in dev and be excluded from the production build.", - "theme.contentVisibility.draftBanner.title": "Draft page", - "theme.contentVisibility.unlistedBanner.message": "Cette page n'est pas répertoriée. Les moteurs de recherche ne l'indexeront pas, et seuls les utilisateurs ayant un lien direct peuvent y accéder.", - "theme.contentVisibility.unlistedBanner.title": "Page non répertoriée", - "theme.docs.DocCard.categoryDescription.plurals": "1 élément|{count} éléments", - "theme.docs.breadcrumbs.home": "Page d'accueil", - "theme.docs.breadcrumbs.navAriaLabel": "Fil d'Ariane", - "theme.docs.paginator.navAriaLabel": "Pages de documentation", - "theme.docs.paginator.next": "Suivant", - "theme.docs.paginator.previous": "Précédent", - "theme.docs.sidebar.closeSidebarButtonAriaLabel": "Fermer la barre de navigation", - "theme.docs.sidebar.collapseButtonAriaLabel": "Réduire le menu latéral", - "theme.docs.sidebar.collapseButtonTitle": "Réduire le menu latéral", - "theme.docs.sidebar.expandButtonAriaLabel": "Déplier le menu latéral", - "theme.docs.sidebar.expandButtonTitle": "Déplier le menu latéral", - "theme.docs.sidebar.navAriaLabel": "Docs sidebar", - "theme.docs.sidebar.toggleSidebarButtonAriaLabel": "Ouvrir/fermer la barre de navigation", - "theme.docs.tagDocListPageTitle": "{nDocsTagged} avec \"{tagName}\"", - "theme.docs.tagDocListPageTitle.nDocsTagged": "Un document tagué|{count} documents tagués", - "theme.docs.versionBadge.label": "Version: {versionLabel}", - "theme.docs.versions.latestVersionLinkLabel": "dernière version", - "theme.docs.versions.latestVersionSuggestionLabel": "Pour une documentation à jour, consultez la {latestVersionLink} ({versionLabel}).", - "theme.docs.versions.unmaintainedVersionLabel": "Ceci est la documentation de {siteTitle} {versionLabel}, qui n'est plus activement maintenue.", - "theme.docs.versions.unreleasedVersionLabel": "Ceci est la documentation de la prochaine version {versionLabel} de {siteTitle}.", - "theme.lastUpdated.atDate": " le {date}", - "theme.lastUpdated.byUser": " par {user}", - "theme.lastUpdated.lastUpdatedAtBy": "Dernière mise à jour{atDate}{byUser}", - "theme.navbar.mobileLanguageDropdown.label": "Langues", - "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": "← Retour au menu principal", - "theme.navbar.mobileVersionsDropdown.label": "Versions", - "theme.tags.tagsListLabel": "Tags :", - "theme.tags.tagsPageLink": "Voir tous les tags", - "theme.tags.tagsPageTitle": "Tags", - "theme.unlistedContent.title": "Page non répertoriée", - "theme.unlistedContent.message": "Cette page n'est pas répertoriée. Les moteurs de recherche ne l'indexeront pas, et seuls les utilisateurs ayant un lien direct peuvent y accéder." -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-lunr-search/default/__plugin.json b/old/.docusaurus/docusaurus-lunr-search/default/__plugin.json deleted file mode 100644 index f17ec96..0000000 --- a/old/.docusaurus/docusaurus-lunr-search/default/__plugin.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "docusaurus-lunr-search", - "id": "default" -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/__plugin.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/__plugin.json deleted file mode 100644 index 3818ad0..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/__plugin.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "docusaurus-plugin-content-docs", - "id": "default" -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/category-bases-de-donnees-fba.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/category-bases-de-donnees-fba.json deleted file mode 100644 index cbfdf5b..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/category-bases-de-donnees-fba.json +++ /dev/null @@ -1 +0,0 @@ -{"categoryGeneratedIndex":{"title":"💽 Bases de données","slug":"/category/-bases-de-données","permalink":"/category/-bases-de-données","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"Retours d'expériences","permalink":"/titres-professionnels/retours"},"next":{"title":"Modélisation avec Merise","permalink":"/ressources/bases-de-donnees/modelisation/merise"}}}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/category-frontend-4de.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/category-frontend-4de.json deleted file mode 100644 index f7a5ffb..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/category-frontend-4de.json +++ /dev/null @@ -1 +0,0 @@ -{"categoryGeneratedIndex":{"title":"🌈 Frontend","slug":"/category/-frontend","permalink":"/category/-frontend","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"Création du MCD","permalink":"/ressources/bases-de-donnees/modelisation/mcd"},"next":{"title":"Introduction à React","permalink":"/ressources/frontend/react/intro"}}}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/category-titres-professionnels-9da.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/category-titres-professionnels-9da.json deleted file mode 100644 index c29c1ff..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/category-titres-professionnels-9da.json +++ /dev/null @@ -1 +0,0 @@ -{"categoryGeneratedIndex":{"title":"🎓 Titres professionnels","description":"Tu retrouveras ici l'ensemble des titres professionnels couverts par la plateforme Memento Dev.","slug":"/category/-titres-professionnels","permalink":"/category/-titres-professionnels","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"Titres professionnels","permalink":"/glossaires/titres-professionnel"},"next":{"title":"Résumé","permalink":"/titres-professionnels/CDA/intro"}}}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/category-️-archives-fd2.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/category-️-archives-fd2.json deleted file mode 100644 index 0a8013b..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/category-️-archives-fd2.json +++ /dev/null @@ -1 +0,0 @@ -{"categoryGeneratedIndex":{"title":"🗃️ Archives","description":"Archives des différents référentiels arrivés à expiration.","slug":"/category/️-archives","permalink":"/category/️-archives","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"CP 8","permalink":"/titres-professionnels/DWWM/AT2/CP8"},"next":{"title":"Résumé","permalink":"/titres-professionnels/archives/DWWM/2018-2023/intro"}}}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/index-466.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/index-466.json deleted file mode 100644 index 68ae3fc..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/index-466.json +++ /dev/null @@ -1 +0,0 @@ -{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"📜 Préambule","href":"/intro","docId":"intro","unlisted":false},{"type":"category","label":"📖 Glossaires","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Titres professionnels","href":"/glossaires/titres-professionnel","docId":"glossaires/titres-professionnel","unlisted":false}]},{"type":"category","label":"🎓 Titres professionnels","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"🧑‍💻 CDA","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Résumé","href":"/titres-professionnels/CDA/intro","docId":"titres-professionnels/CDA/intro","unlisted":false},{"type":"category","label":"Activité Type 1","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"CP 1","href":"/titres-professionnels/CDA/AT1/CP1","docId":"titres-professionnels/CDA/AT1/CP1","unlisted":false},{"type":"link","label":"CP 2","href":"/titres-professionnels/CDA/AT1/CP2","docId":"titres-professionnels/CDA/AT1/CP2","unlisted":false},{"type":"link","label":"CP 3","href":"/titres-professionnels/CDA/AT1/CP3","docId":"titres-professionnels/CDA/AT1/CP3","unlisted":false},{"type":"link","label":"CP 4","href":"/titres-professionnels/CDA/AT1/CP4","docId":"titres-professionnels/CDA/AT1/CP4","unlisted":false}]},{"type":"category","label":"Activité Type 2","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"CP 5","href":"/titres-professionnels/CDA/AT2/CP5","docId":"titres-professionnels/CDA/AT2/CP5","unlisted":false},{"type":"link","label":"CP 6","href":"/titres-professionnels/CDA/AT2/CP6","docId":"titres-professionnels/CDA/AT2/CP6","unlisted":false},{"type":"link","label":"CP 7","href":"/titres-professionnels/CDA/AT2/CP7","docId":"titres-professionnels/CDA/AT2/CP7","unlisted":false},{"type":"link","label":"CP 8","href":"/titres-professionnels/CDA/AT2/CP8","docId":"titres-professionnels/CDA/AT2/CP8","unlisted":false}]},{"type":"category","label":"Activité Type 3","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"CP 9","href":"/titres-professionnels/CDA/AT3/CP9","docId":"titres-professionnels/CDA/AT3/CP9","unlisted":false},{"type":"link","label":"CP 10","href":"/titres-professionnels/CDA/AT3/CP10","docId":"titres-professionnels/CDA/AT3/CP10","unlisted":false},{"type":"link","label":"CP 11","href":"/titres-professionnels/CDA/AT3/CP11","docId":"titres-professionnels/CDA/AT3/CP11","unlisted":false}]}]},{"type":"category","label":"🧑‍💻 DWWM","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Résumé","href":"/titres-professionnels/DWWM/intro","docId":"titres-professionnels/DWWM/intro","unlisted":false},{"type":"link","label":"La soutenance DWWM","href":"/titres-professionnels/DWWM/soutenance","docId":"titres-professionnels/DWWM/soutenance","unlisted":false},{"type":"category","label":"Activité Type 1","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"CP 1","href":"/titres-professionnels/DWWM/AT1/CP1","docId":"titres-professionnels/DWWM/AT1/CP1","unlisted":false},{"type":"link","label":"CP 2","href":"/titres-professionnels/DWWM/AT1/CP2","docId":"titres-professionnels/DWWM/AT1/CP2","unlisted":false},{"type":"link","label":"CP 3","href":"/titres-professionnels/DWWM/AT1/CP3","docId":"titres-professionnels/DWWM/AT1/CP3","unlisted":false},{"type":"link","label":"CP 4","href":"/titres-professionnels/DWWM/AT1/CP4","docId":"titres-professionnels/DWWM/AT1/CP4","unlisted":false}]},{"type":"category","label":"Activité Type 2","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"CP 5","href":"/titres-professionnels/DWWM/AT2/CP5","docId":"titres-professionnels/DWWM/AT2/CP5","unlisted":false},{"type":"link","label":"CP 6","href":"/titres-professionnels/DWWM/AT2/CP6","docId":"titres-professionnels/DWWM/AT2/CP6","unlisted":false},{"type":"link","label":"CP 7","href":"/titres-professionnels/DWWM/AT2/CP7","docId":"titres-professionnels/DWWM/AT2/CP7","unlisted":false},{"type":"link","label":"CP 8","href":"/titres-professionnels/DWWM/AT2/CP8","docId":"titres-professionnels/DWWM/AT2/CP8","unlisted":false}]}]},{"type":"category","label":"🗃️ Archives","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"DWWM","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"2018-2023","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Résumé","href":"/titres-professionnels/archives/DWWM/2018-2023/intro","docId":"titres-professionnels/archives/DWWM/2018-2023/intro","unlisted":false},{"type":"category","label":"AT1","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"CP 1","href":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1","docId":"titres-professionnels/archives/DWWM/2018-2023/AT1/CP1","unlisted":false},{"type":"link","label":"CP 2","href":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2","docId":"titres-professionnels/archives/DWWM/2018-2023/AT1/CP2","unlisted":false},{"type":"link","label":"CP 3","href":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3","docId":"titres-professionnels/archives/DWWM/2018-2023/AT1/CP3","unlisted":false},{"type":"link","label":"CP 4","href":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4","docId":"titres-professionnels/archives/DWWM/2018-2023/AT1/CP4","unlisted":false}]},{"type":"category","label":"AT2","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"CP 5","href":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5","docId":"titres-professionnels/archives/DWWM/2018-2023/AT2/CP5","unlisted":false},{"type":"link","label":"CP 6","href":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6","docId":"titres-professionnels/archives/DWWM/2018-2023/AT2/CP6","unlisted":false},{"type":"link","label":"CP 7","href":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7","docId":"titres-professionnels/archives/DWWM/2018-2023/AT2/CP7","unlisted":false},{"type":"link","label":"CP 8","href":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8","docId":"titres-professionnels/archives/DWWM/2018-2023/AT2/CP8","unlisted":false}]}]}]}],"href":"/category/️-archives"},{"type":"link","label":"Se préparer pour un TP","href":"/titres-professionnels/se-preparer","docId":"titres-professionnels/se-preparer","unlisted":false},{"type":"link","label":"Retours d'expériences","href":"/titres-professionnels/retours","docId":"titres-professionnels/retours","unlisted":false}],"href":"/category/-titres-professionnels"},{"type":"category","label":"📁 Ressources","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"💽 Bases de données","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Modélisation","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Modélisation avec Merise","href":"/ressources/bases-de-donnees/modelisation/merise","docId":"ressources/bases-de-donnees/modelisation/merise","unlisted":false},{"type":"link","label":"Création du MCD","href":"/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","docId":"ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","unlisted":false},{"type":"link","label":"Création du MCD","href":"/ressources/bases-de-donnees/modelisation/mcd","docId":"ressources/bases-de-donnees/modelisation/mcd","unlisted":false}]}],"href":"/category/-bases-de-données"},{"type":"category","label":"🌈 Frontend","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"React","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction à React","href":"/ressources/frontend/react/intro","docId":"ressources/frontend/react/intro","unlisted":false},{"type":"link","label":"Initialisation","href":"/ressources/frontend/react/initialiser-un-projet-react","docId":"ressources/frontend/react/initialiser-un-projet-react","unlisted":false},{"type":"link","label":"Syntaxe JSX","href":"/ressources/frontend/react/syntaxe-jsx","docId":"ressources/frontend/react/syntaxe-jsx","unlisted":false},{"type":"link","label":"Premier composant","href":"/ressources/frontend/react/premier-composant","docId":"ressources/frontend/react/premier-composant","unlisted":false},{"type":"link","label":"State et cycle de vie","href":"/ressources/frontend/react/state-et-cycle-de-vie","docId":"ressources/frontend/react/state-et-cycle-de-vie","unlisted":false},{"type":"link","label":"Les hooks de React","href":"/ressources/frontend/react/hooks","docId":"ressources/frontend/react/hooks","unlisted":false},{"type":"link","label":"Le hook useContext de React","href":"/ressources/frontend/react/contextes","docId":"ressources/frontend/react/contextes","unlisted":false},{"type":"link","label":"Le hook useReducer de React","href":"/ressources/frontend/react/reducers","docId":"ressources/frontend/react/reducers","unlisted":false}]}],"href":"/category/-frontend"},{"type":"link","label":"🎥 Influenceurs et créateurs de contenu","href":"/ressources/influenceurs-et-createurs","docId":"ressources/influenceurs-et-createurs","unlisted":false}]},{"type":"link","label":"🤗 Soutiens et contributeurs","href":"/soutiens-et-contributeurs","docId":"soutiens-et-contributeurs","unlisted":false},{"type":"link","label":"🤝 Contribuer","href":"/contribuer","docId":"contribuer","unlisted":false}]},"docs":{"contribuer":{"id":"contribuer","title":"🤝 Contribuer","description":"Tu souhaites contribuer à Memento Dev ? C'est par ici !","sidebar":"tutorialSidebar"},"glossaires/titres-professionnel":{"id":"glossaires/titres-professionnel","title":"Titres professionnels","description":"Définitions des termes utilisés dans le cadre des titres professionnels.","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"📜 Préambule","description":"Memento Dev, une plateforme open-source de partage de connaissances en développement !","sidebar":"tutorialSidebar"},"ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees":{"id":"ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","sidebar":"tutorialSidebar"},"ressources/bases-de-donnees/modelisation/mcd":{"id":"ressources/bases-de-donnees/modelisation/mcd","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","sidebar":"tutorialSidebar"},"ressources/bases-de-donnees/modelisation/merise":{"id":"ressources/bases-de-donnees/modelisation/merise","title":"Modélisation avec Merise","description":"Voyons ensemble comment on peut modéliser une base de données avec Merise !","sidebar":"tutorialSidebar"},"ressources/frontend/react/contextes":{"id":"ressources/frontend/react/contextes","title":"Le hook useContext de React","description":"Découvrez comment utiliser le hook useContext de React pour gérer les contextes dans vos applications.","sidebar":"tutorialSidebar"},"ressources/frontend/react/hooks":{"id":"ressources/frontend/react/hooks","title":"Les hooks de React","description":"Découvre les hooks de React, une fonctionnalité qui te permet de gérer le state et le cycle de vie de tes composants fonctionnels.","sidebar":"tutorialSidebar"},"ressources/frontend/react/initialiser-un-projet-react":{"id":"ressources/frontend/react/initialiser-un-projet-react","title":"Initialisation","description":"Initialisons un nouveau projet React, avec ou sans TypeScript.","sidebar":"tutorialSidebar"},"ressources/frontend/react/intro":{"id":"ressources/frontend/react/intro","title":"Introduction à React","description":"Parlons un peu de React, ce qu'il est, ce qu'il fait et pourquoi il est si populaire.","sidebar":"tutorialSidebar"},"ressources/frontend/react/premier-composant":{"id":"ressources/frontend/react/premier-composant","title":"Premier composant","description":"Voyons ensemble comment notre premier composant React !","sidebar":"tutorialSidebar"},"ressources/frontend/react/reducers":{"id":"ressources/frontend/react/reducers","title":"Le hook useReducer de React","description":"Découvrez comment utiliser le hook useReducer de React pour gérer l'état de vos composants de manière plus efficace.","sidebar":"tutorialSidebar"},"ressources/frontend/react/state-et-cycle-de-vie":{"id":"ressources/frontend/react/state-et-cycle-de-vie","title":"State et cycle de vie","description":"Voyons ensemble comment gérer le state et le cycle de vie d'un composant React !","sidebar":"tutorialSidebar"},"ressources/frontend/react/syntaxe-jsx":{"id":"ressources/frontend/react/syntaxe-jsx","title":"Syntaxe JSX","description":"Découvrons la syntaxe JSX, un langage de balisage utilisé par React pour décrire l'interface utilisateur.","sidebar":"tutorialSidebar"},"ressources/influenceurs-et-createurs":{"id":"ressources/influenceurs-et-createurs","title":"🎥 Influenceurs et créateurs de contenu","description":"Liste d'influenceurs et créateurs de contenu dans le domaine du développement.","sidebar":"tutorialSidebar"},"soutiens-et-contributeurs":{"id":"soutiens-et-contributeurs","title":"🤗 Soutiens et contributeurs","description":"Soutiens et contributeurs de la plateforme Memento Dev.","sidebar":"tutorialSidebar"},"titres-professionnels/archives/DWWM/2018-2023/AT1/CP1":{"id":"titres-professionnels/archives/DWWM/2018-2023/AT1/CP1","title":"CP 1","description":"Synthèse de la CP 1 \"Maquetter une application\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).","sidebar":"tutorialSidebar"},"titres-professionnels/archives/DWWM/2018-2023/AT1/CP2":{"id":"titres-professionnels/archives/DWWM/2018-2023/AT1/CP2","title":"CP 2","description":"Synthèse de la CP 1 \"Réaliser une interface utilisateur web statique et adaptable\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).","sidebar":"tutorialSidebar"},"titres-professionnels/archives/DWWM/2018-2023/AT1/CP3":{"id":"titres-professionnels/archives/DWWM/2018-2023/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Développer une interface utilisateur web dynamique\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).","sidebar":"tutorialSidebar"},"titres-professionnels/archives/DWWM/2018-2023/AT1/CP4":{"id":"titres-professionnels/archives/DWWM/2018-2023/AT1/CP4","title":"CP 4","description":"Synthèse de la CP 4 \"Réaliser une interface utilisateur avec une solution de gestion de contenu ou e-commerce\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).","sidebar":"tutorialSidebar"},"titres-professionnels/archives/DWWM/2018-2023/AT2/CP5":{"id":"titres-professionnels/archives/DWWM/2018-2023/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Créer une base de données\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).","sidebar":"tutorialSidebar"},"titres-professionnels/archives/DWWM/2018-2023/AT2/CP6":{"id":"titres-professionnels/archives/DWWM/2018-2023/AT2/CP6","title":"CP 6","description":"Synthèse de la CP 5 \"Développer les composants d'accès aux données\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).","sidebar":"tutorialSidebar"},"titres-professionnels/archives/DWWM/2018-2023/AT2/CP7":{"id":"titres-professionnels/archives/DWWM/2018-2023/AT2/CP7","title":"CP 7","description":"Synthèse de la CP 7 \"Développer la partie back-end d'une application web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).","sidebar":"tutorialSidebar"},"titres-professionnels/archives/DWWM/2018-2023/AT2/CP8":{"id":"titres-professionnels/archives/DWWM/2018-2023/AT2/CP8","title":"CP 8","description":"Synthèse de la CP 8 \"Élaborer et mettre en œuvre des composants dans une application de gestion de contenu ou e-commerce\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).","sidebar":"tutorialSidebar"},"titres-professionnels/archives/DWWM/2018-2023/intro":{"id":"titres-professionnels/archives/DWWM/2018-2023/intro","title":"Résumé","description":"Résumé du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, expiré depuis septembre 2023).","sidebar":"tutorialSidebar"},"titres-professionnels/CDA/AT1/CP1":{"id":"titres-professionnels/CDA/AT1/CP1","title":"CP 1","description":"Synthèse de la CP 1 \"Installer et configurer son environnement de travail en fonction du projet\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","sidebar":"tutorialSidebar"},"titres-professionnels/CDA/AT1/CP2":{"id":"titres-professionnels/CDA/AT1/CP2","title":"CP 2","description":"Synthèse de la CP 2 \"Développer des interfaces utilisateur\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","sidebar":"tutorialSidebar"},"titres-professionnels/CDA/AT1/CP3":{"id":"titres-professionnels/CDA/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Développer des composants métier\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","sidebar":"tutorialSidebar"},"titres-professionnels/CDA/AT1/CP4":{"id":"titres-professionnels/CDA/AT1/CP4","title":"CP 4","description":"Synthèse de la CP 4 \"Contribuer à la gestion d’un projet informatique\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","sidebar":"tutorialSidebar"},"titres-professionnels/CDA/AT2/CP5":{"id":"titres-professionnels/CDA/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Analyser les besoins et maquetter une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","sidebar":"tutorialSidebar"},"titres-professionnels/CDA/AT2/CP6":{"id":"titres-professionnels/CDA/AT2/CP6","title":"CP 6","description":"Synthèse de la CP 6 \"Définir l’architecture logicielle d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","sidebar":"tutorialSidebar"},"titres-professionnels/CDA/AT2/CP7":{"id":"titres-professionnels/CDA/AT2/CP7","title":"CP 7","description":"Synthèse de la CP 7 \"Concevoir et mettre en place une base de données relationnelle\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","sidebar":"tutorialSidebar"},"titres-professionnels/CDA/AT2/CP8":{"id":"titres-professionnels/CDA/AT2/CP8","title":"CP 8","description":"Synthèse de la CP 8 \"Développer des composants d’accès aux données SQL et NoSQL\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","sidebar":"tutorialSidebar"},"titres-professionnels/CDA/AT3/CP10":{"id":"titres-professionnels/CDA/AT3/CP10","title":"CP 10","description":"Synthèse de la CP 10 \"Préparer et documenter le déploiement d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","sidebar":"tutorialSidebar"},"titres-professionnels/CDA/AT3/CP11":{"id":"titres-professionnels/CDA/AT3/CP11","title":"CP 11","description":"Synthèse de la CP 11 \"Contribuer à la mise en production dans une démarche DevOps\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","sidebar":"tutorialSidebar"},"titres-professionnels/CDA/AT3/CP9":{"id":"titres-professionnels/CDA/AT3/CP9","title":"CP 9","description":"Synthèse de la CP 9 \"Préparer et exécuter les plans de tests d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","sidebar":"tutorialSidebar"},"titres-professionnels/CDA/intro":{"id":"titres-professionnels/CDA/intro","title":"Résumé","description":"Résumé du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04, actif depuis décembre 2023).","sidebar":"tutorialSidebar"},"titres-professionnels/DWWM/AT1/CP1":{"id":"titres-professionnels/DWWM/AT1/CP1","title":"CP 1","description":"Synthèse de la CP 1 \"Installer et configurer son environnement de travail en fonction du projet web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","sidebar":"tutorialSidebar"},"titres-professionnels/DWWM/AT1/CP2":{"id":"titres-professionnels/DWWM/AT1/CP2","title":"CP 2","description":"Synthèse de la CP 2 \"Maquetter des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","sidebar":"tutorialSidebar"},"titres-professionnels/DWWM/AT1/CP3":{"id":"titres-professionnels/DWWM/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","sidebar":"tutorialSidebar"},"titres-professionnels/DWWM/AT1/CP4":{"id":"titres-professionnels/DWWM/AT1/CP4","title":"CP 4","description":"Synthèse de la CP 4 \"Développer la partie dynamique des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","sidebar":"tutorialSidebar"},"titres-professionnels/DWWM/AT2/CP5":{"id":"titres-professionnels/DWWM/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","sidebar":"tutorialSidebar"},"titres-professionnels/DWWM/AT2/CP6":{"id":"titres-professionnels/DWWM/AT2/CP6","title":"CP 6","description":"Synthèse de la CP 6 \"Développer des composants d'accès aux données SQL et NoSQL\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","sidebar":"tutorialSidebar"},"titres-professionnels/DWWM/AT2/CP7":{"id":"titres-professionnels/DWWM/AT2/CP7","title":"CP 7","description":"Synthèse de la CP 7 \"Développer des composants métier coté serveur\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","sidebar":"tutorialSidebar"},"titres-professionnels/DWWM/AT2/CP8":{"id":"titres-professionnels/DWWM/AT2/CP8","title":"CP 8","description":"Synthèse de la CP 8 \"Documenter le déploiement d'une application dynamique web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","sidebar":"tutorialSidebar"},"titres-professionnels/DWWM/intro":{"id":"titres-professionnels/DWWM/intro","title":"Résumé","description":"Résumé du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04, actif depuis septembre 2023).","sidebar":"tutorialSidebar"},"titres-professionnels/DWWM/soutenance":{"id":"titres-professionnels/DWWM/soutenance","title":"La soutenance DWWM","description":"Tu prépares un TP DWWM et tu te demandes à quoi t'attendre pour la soutenance ? Voici quelques conseils pour te préparer efficacement.","sidebar":"tutorialSidebar"},"titres-professionnels/retours":{"id":"titres-professionnels/retours","title":"Retours d'expériences","description":"Découvre les témoignages de candidats et jury sur leur soutenance de titre professionnel : leurs ressentis avant, pendant et après leur passage devant le jury.","sidebar":"tutorialSidebar"},"titres-professionnels/se-preparer":{"id":"titres-professionnels/se-preparer","title":"Se préparer pour un TP","description":"Tu prépares un titre professionnel et tu te demandes comment bien t'y préparer ? Jette donc un oeil !","sidebar":"tutorialSidebar"}}}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-accessibilite-a1d.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-accessibilite-a1d.json deleted file mode 100644 index 552c027..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-accessibilite-a1d.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Accessibilité","permalink":"/tags/accessibilite","allTagsPath":"/tags","count":3,"items":[{"id":"titres-professionnels/DWWM/AT1/CP2","title":"CP 2","description":"Synthèse de la CP 2 \"Maquetter des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP2"},{"id":"titres-professionnels/DWWM/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP3"},{"id":"titres-professionnels/DWWM/AT1/CP4","title":"CP 4","description":"Synthèse de la CP 4 \"Développer la partie dynamique des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP4"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-architecture-02f.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-architecture-02f.json deleted file mode 100644 index 2820e5e..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-architecture-02f.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Architecture","permalink":"/tags/architecture","allTagsPath":"/tags","count":1,"items":[{"id":"titres-professionnels/DWWM/AT2/CP7","title":"CP 7","description":"Synthèse de la CP 7 \"Développer des composants métier coté serveur\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP7"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-b9f.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-b9f.json deleted file mode 100644 index 1686fa6..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-b9f.json +++ /dev/null @@ -1 +0,0 @@ -{"tags":[{"label":"Conception","permalink":"/tags/conception","count":4},{"label":"Modélisation","permalink":"/tags/modelisation","count":4},{"label":"Base de données","permalink":"/tags/base-de-donnees","count":5},{"label":"Merise","permalink":"/tags/merise","count":4},{"label":"Dictionnaire de Données","permalink":"/tags/dictionnaire-de-donnees","count":4},{"label":"Modèle Conceptuel de Données (MCD)","permalink":"/tags/modele-conceptuel-de-donnees-mcd","count":4},{"label":"Modèle Logique de Données (MLD)","permalink":"/tags/modele-logique-de-donnees-mld","count":4},{"label":"Modèle Relationnel de Données (MRD)","permalink":"/tags/modele-relationnel-de-donnees-mrd","count":4},{"label":"Modèle Physique de Données (MPD)","permalink":"/tags/modele-physique-de-donnees-mpd","count":4},{"label":"SQL","permalink":"/tags/sql","count":5},{"label":"DWWM","permalink":"/tags/dwwm","count":12},{"label":"CDA","permalink":"/tags/cda","count":14},{"label":"Frontend","permalink":"/tags/frontend","count":8},{"label":"React","permalink":"/tags/react","count":8},{"label":"JavaScript/TypeScript","permalink":"/tags/java-script-type-script","count":9},{"label":"Bibliothèque","permalink":"/tags/bibliotheque","count":8},{"label":"Interface utilisateur (UI)","permalink":"/tags/interface-utilisateur-ui","count":8},{"label":"Vite","permalink":"/tags/vite","count":1},{"label":"Vike","permalink":"/tags/vike","count":1},{"label":"SSR","permalink":"/tags/ssr","count":1},{"label":"SSG","permalink":"/tags/ssg","count":1},{"label":"CSR","permalink":"/tags/csr","count":1},{"label":"Environnement de développement","permalink":"/tags/environnement-de-developpement","count":2},{"label":"Eco-conception","permalink":"/tags/eco-conception","count":3},{"label":"Accessibilité","permalink":"/tags/accessibilite","count":3},{"label":"SEO/Référencement naturel","permalink":"/tags/seo-referencement-naturel","count":3},{"label":"Maquettage","permalink":"/tags/maquettage","count":1},{"label":"Wireframe","permalink":"/tags/wireframe","count":1},{"label":"Zoning","permalink":"/tags/zoning","count":1},{"label":"Front-end","permalink":"/tags/front-end","count":3},{"label":"Intégration","permalink":"/tags/integration","count":1},{"label":"Responsive","permalink":"/tags/responsive","count":1},{"label":"HTML","permalink":"/tags/html","count":1},{"label":"CSS","permalink":"/tags/css","count":1},{"label":"Déploiement","permalink":"/tags/deploiement","count":2},{"label":"Reverse Proxy","permalink":"/tags/reverse-proxy","count":2},{"label":"Serveur web","permalink":"/tags/serveur-web","count":2},{"label":"Back-end","permalink":"/tags/back-end","count":4},{"label":"ORM/ODM","permalink":"/tags/orm-odm","count":1},{"label":"Sécurité","permalink":"/tags/securite","count":2},{"label":"Chiffrement","permalink":"/tags/chiffrement","count":1},{"label":"Hachage","permalink":"/tags/hachage","count":1},{"label":"Architecture","permalink":"/tags/architecture","count":1},{"label":"Design Pattern","permalink":"/tags/design-pattern","count":1},{"label":"Tests","permalink":"/tags/tests","count":1}]} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-back-end-7fe.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-back-end-7fe.json deleted file mode 100644 index 700ec80..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-back-end-7fe.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Back-end","permalink":"/tags/back-end","allTagsPath":"/tags","count":4,"items":[{"id":"titres-professionnels/DWWM/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP5"},{"id":"titres-professionnels/DWWM/AT2/CP6","title":"CP 6","description":"Synthèse de la CP 6 \"Développer des composants d'accès aux données SQL et NoSQL\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP6"},{"id":"titres-professionnels/DWWM/AT2/CP7","title":"CP 7","description":"Synthèse de la CP 7 \"Développer des composants métier coté serveur\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP7"},{"id":"titres-professionnels/DWWM/AT2/CP8","title":"CP 8","description":"Synthèse de la CP 8 \"Documenter le déploiement d'une application dynamique web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP8"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-base-de-donnees-6c5.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-base-de-donnees-6c5.json deleted file mode 100644 index fbf0b01..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-base-de-donnees-6c5.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Base de données","permalink":"/tags/base-de-donnees","allTagsPath":"/tags","count":5,"items":[{"id":"titres-professionnels/DWWM/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP5"},{"id":"titres-professionnels/DWWM/AT2/CP6","title":"CP 6","description":"Synthèse de la CP 6 \"Développer des composants d'accès aux données SQL et NoSQL\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP6"},{"id":"ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees"},{"id":"ressources/bases-de-donnees/modelisation/mcd","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/mcd"},{"id":"ressources/bases-de-donnees/modelisation/merise","title":"Modélisation avec Merise","description":"Voyons ensemble comment on peut modéliser une base de données avec Merise !","permalink":"/ressources/bases-de-donnees/modelisation/merise"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-bibliotheque-7e0.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-bibliotheque-7e0.json deleted file mode 100644 index 2552018..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-bibliotheque-7e0.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Bibliothèque","permalink":"/tags/bibliotheque","allTagsPath":"/tags","count":8,"items":[{"id":"ressources/frontend/react/initialiser-un-projet-react","title":"Initialisation","description":"Initialisons un nouveau projet React, avec ou sans TypeScript.","permalink":"/ressources/frontend/react/initialiser-un-projet-react"},{"id":"ressources/frontend/react/intro","title":"Introduction à React","description":"Parlons un peu de React, ce qu'il est, ce qu'il fait et pourquoi il est si populaire.","permalink":"/ressources/frontend/react/intro"},{"id":"ressources/frontend/react/contextes","title":"Le hook useContext de React","description":"Découvrez comment utiliser le hook useContext de React pour gérer les contextes dans vos applications.","permalink":"/ressources/frontend/react/contextes"},{"id":"ressources/frontend/react/reducers","title":"Le hook useReducer de React","description":"Découvrez comment utiliser le hook useReducer de React pour gérer l'état de vos composants de manière plus efficace.","permalink":"/ressources/frontend/react/reducers"},{"id":"ressources/frontend/react/hooks","title":"Les hooks de React","description":"Découvre les hooks de React, une fonctionnalité qui te permet de gérer le state et le cycle de vie de tes composants fonctionnels.","permalink":"/ressources/frontend/react/hooks"},{"id":"ressources/frontend/react/premier-composant","title":"Premier composant","description":"Voyons ensemble comment notre premier composant React !","permalink":"/ressources/frontend/react/premier-composant"},{"id":"ressources/frontend/react/state-et-cycle-de-vie","title":"State et cycle de vie","description":"Voyons ensemble comment gérer le state et le cycle de vie d'un composant React !","permalink":"/ressources/frontend/react/state-et-cycle-de-vie"},{"id":"ressources/frontend/react/syntaxe-jsx","title":"Syntaxe JSX","description":"Découvrons la syntaxe JSX, un langage de balisage utilisé par React pour décrire l'interface utilisateur.","permalink":"/ressources/frontend/react/syntaxe-jsx"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-cda-a60.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-cda-a60.json deleted file mode 100644 index dd0fc56..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-cda-a60.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"CDA","permalink":"/tags/cda","allTagsPath":"/tags","count":14,"items":[{"id":"titres-professionnels/CDA/AT1/CP1","title":"CP 1","description":"Synthèse de la CP 1 \"Installer et configurer son environnement de travail en fonction du projet\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","permalink":"/titres-professionnels/CDA/AT1/CP1"},{"id":"titres-professionnels/CDA/AT3/CP10","title":"CP 10","description":"Synthèse de la CP 10 \"Préparer et documenter le déploiement d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","permalink":"/titres-professionnels/CDA/AT3/CP10"},{"id":"titres-professionnels/CDA/AT3/CP11","title":"CP 11","description":"Synthèse de la CP 11 \"Contribuer à la mise en production dans une démarche DevOps\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","permalink":"/titres-professionnels/CDA/AT3/CP11"},{"id":"titres-professionnels/CDA/AT1/CP2","title":"CP 2","description":"Synthèse de la CP 2 \"Développer des interfaces utilisateur\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","permalink":"/titres-professionnels/CDA/AT1/CP2"},{"id":"titres-professionnels/CDA/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Développer des composants métier\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","permalink":"/titres-professionnels/CDA/AT1/CP3"},{"id":"titres-professionnels/CDA/AT1/CP4","title":"CP 4","description":"Synthèse de la CP 4 \"Contribuer à la gestion d’un projet informatique\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","permalink":"/titres-professionnels/CDA/AT1/CP4"},{"id":"titres-professionnels/CDA/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Analyser les besoins et maquetter une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","permalink":"/titres-professionnels/CDA/AT2/CP5"},{"id":"titres-professionnels/CDA/AT2/CP6","title":"CP 6","description":"Synthèse de la CP 6 \"Définir l’architecture logicielle d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","permalink":"/titres-professionnels/CDA/AT2/CP6"},{"id":"titres-professionnels/CDA/AT2/CP7","title":"CP 7","description":"Synthèse de la CP 7 \"Concevoir et mettre en place une base de données relationnelle\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","permalink":"/titres-professionnels/CDA/AT2/CP7"},{"id":"titres-professionnels/CDA/AT2/CP8","title":"CP 8","description":"Synthèse de la CP 8 \"Développer des composants d’accès aux données SQL et NoSQL\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","permalink":"/titres-professionnels/CDA/AT2/CP8"},{"id":"titres-professionnels/CDA/AT3/CP9","title":"CP 9","description":"Synthèse de la CP 9 \"Préparer et exécuter les plans de tests d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","permalink":"/titres-professionnels/CDA/AT3/CP9"},{"id":"ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees"},{"id":"ressources/bases-de-donnees/modelisation/mcd","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/mcd"},{"id":"titres-professionnels/CDA/intro","title":"Résumé","description":"Résumé du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04, actif depuis décembre 2023).","permalink":"/titres-professionnels/CDA/intro"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-chiffrement-d68.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-chiffrement-d68.json deleted file mode 100644 index 59cbce8..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-chiffrement-d68.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Chiffrement","permalink":"/tags/chiffrement","allTagsPath":"/tags","count":1,"items":[{"id":"titres-professionnels/DWWM/AT2/CP6","title":"CP 6","description":"Synthèse de la CP 6 \"Développer des composants d'accès aux données SQL et NoSQL\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP6"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-conception-113.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-conception-113.json deleted file mode 100644 index 84f7ed8..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-conception-113.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Conception","permalink":"/tags/conception","allTagsPath":"/tags","count":4,"items":[{"id":"titres-professionnels/DWWM/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP5"},{"id":"ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees"},{"id":"ressources/bases-de-donnees/modelisation/mcd","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/mcd"},{"id":"ressources/bases-de-donnees/modelisation/merise","title":"Modélisation avec Merise","description":"Voyons ensemble comment on peut modéliser une base de données avec Merise !","permalink":"/ressources/bases-de-donnees/modelisation/merise"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-csr-5ca.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-csr-5ca.json deleted file mode 100644 index 3e30e78..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-csr-5ca.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"CSR","permalink":"/tags/csr","allTagsPath":"/tags","count":1,"items":[{"id":"ressources/frontend/react/initialiser-un-projet-react","title":"Initialisation","description":"Initialisons un nouveau projet React, avec ou sans TypeScript.","permalink":"/ressources/frontend/react/initialiser-un-projet-react"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-css-369.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-css-369.json deleted file mode 100644 index f1251eb..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-css-369.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"CSS","permalink":"/tags/css","allTagsPath":"/tags","count":1,"items":[{"id":"titres-professionnels/DWWM/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP3"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-deploiement-fb0.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-deploiement-fb0.json deleted file mode 100644 index 23e1cca..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-deploiement-fb0.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Déploiement","permalink":"/tags/deploiement","allTagsPath":"/tags","count":2,"items":[{"id":"titres-professionnels/DWWM/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP3"},{"id":"titres-professionnels/DWWM/AT2/CP8","title":"CP 8","description":"Synthèse de la CP 8 \"Documenter le déploiement d'une application dynamique web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP8"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-design-pattern-4d2.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-design-pattern-4d2.json deleted file mode 100644 index 34bdf20..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-design-pattern-4d2.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Design Pattern","permalink":"/tags/design-pattern","allTagsPath":"/tags","count":1,"items":[{"id":"titres-professionnels/DWWM/AT2/CP7","title":"CP 7","description":"Synthèse de la CP 7 \"Développer des composants métier coté serveur\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP7"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-dictionnaire-de-donnees-6f4.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-dictionnaire-de-donnees-6f4.json deleted file mode 100644 index 798ea7b..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-dictionnaire-de-donnees-6f4.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Dictionnaire de Données","permalink":"/tags/dictionnaire-de-donnees","allTagsPath":"/tags","count":4,"items":[{"id":"titres-professionnels/DWWM/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP5"},{"id":"ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees"},{"id":"ressources/bases-de-donnees/modelisation/mcd","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/mcd"},{"id":"ressources/bases-de-donnees/modelisation/merise","title":"Modélisation avec Merise","description":"Voyons ensemble comment on peut modéliser une base de données avec Merise !","permalink":"/ressources/bases-de-donnees/modelisation/merise"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-dwwm-ea7.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-dwwm-ea7.json deleted file mode 100644 index 8e028b7..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-dwwm-ea7.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"DWWM","permalink":"/tags/dwwm","allTagsPath":"/tags","count":12,"items":[{"id":"titres-professionnels/DWWM/AT1/CP1","title":"CP 1","description":"Synthèse de la CP 1 \"Installer et configurer son environnement de travail en fonction du projet web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP1"},{"id":"titres-professionnels/DWWM/AT1/CP2","title":"CP 2","description":"Synthèse de la CP 2 \"Maquetter des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP2"},{"id":"titres-professionnels/DWWM/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP3"},{"id":"titres-professionnels/DWWM/AT1/CP4","title":"CP 4","description":"Synthèse de la CP 4 \"Développer la partie dynamique des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP4"},{"id":"titres-professionnels/DWWM/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP5"},{"id":"titres-professionnels/DWWM/AT2/CP6","title":"CP 6","description":"Synthèse de la CP 6 \"Développer des composants d'accès aux données SQL et NoSQL\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP6"},{"id":"titres-professionnels/DWWM/AT2/CP7","title":"CP 7","description":"Synthèse de la CP 7 \"Développer des composants métier coté serveur\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP7"},{"id":"titres-professionnels/DWWM/AT2/CP8","title":"CP 8","description":"Synthèse de la CP 8 \"Documenter le déploiement d'une application dynamique web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP8"},{"id":"ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees"},{"id":"ressources/bases-de-donnees/modelisation/mcd","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/mcd"},{"id":"ressources/bases-de-donnees/modelisation/merise","title":"Modélisation avec Merise","description":"Voyons ensemble comment on peut modéliser une base de données avec Merise !","permalink":"/ressources/bases-de-donnees/modelisation/merise"},{"id":"titres-professionnels/DWWM/intro","title":"Résumé","description":"Résumé du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04, actif depuis septembre 2023).","permalink":"/titres-professionnels/DWWM/intro"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-eco-conception-ad6.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-eco-conception-ad6.json deleted file mode 100644 index 59604a6..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-eco-conception-ad6.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Eco-conception","permalink":"/tags/eco-conception","allTagsPath":"/tags","count":3,"items":[{"id":"titres-professionnels/DWWM/AT1/CP2","title":"CP 2","description":"Synthèse de la CP 2 \"Maquetter des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP2"},{"id":"titres-professionnels/DWWM/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP3"},{"id":"titres-professionnels/DWWM/AT1/CP4","title":"CP 4","description":"Synthèse de la CP 4 \"Développer la partie dynamique des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP4"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-environnement-de-developpement-91b.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-environnement-de-developpement-91b.json deleted file mode 100644 index 49c827d..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-environnement-de-developpement-91b.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Environnement de développement","permalink":"/tags/environnement-de-developpement","allTagsPath":"/tags","count":2,"items":[{"id":"titres-professionnels/CDA/AT1/CP1","title":"CP 1","description":"Synthèse de la CP 1 \"Installer et configurer son environnement de travail en fonction du projet\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","permalink":"/titres-professionnels/CDA/AT1/CP1"},{"id":"titres-professionnels/DWWM/AT1/CP1","title":"CP 1","description":"Synthèse de la CP 1 \"Installer et configurer son environnement de travail en fonction du projet web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP1"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-front-end-b92.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-front-end-b92.json deleted file mode 100644 index c0a15f2..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-front-end-b92.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Front-end","permalink":"/tags/front-end","allTagsPath":"/tags","count":3,"items":[{"id":"titres-professionnels/DWWM/AT1/CP2","title":"CP 2","description":"Synthèse de la CP 2 \"Maquetter des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP2"},{"id":"titres-professionnels/DWWM/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP3"},{"id":"titres-professionnels/DWWM/AT1/CP4","title":"CP 4","description":"Synthèse de la CP 4 \"Développer la partie dynamique des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP4"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-frontend-a9a.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-frontend-a9a.json deleted file mode 100644 index 88e654f..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-frontend-a9a.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Frontend","permalink":"/tags/frontend","allTagsPath":"/tags","count":8,"items":[{"id":"ressources/frontend/react/initialiser-un-projet-react","title":"Initialisation","description":"Initialisons un nouveau projet React, avec ou sans TypeScript.","permalink":"/ressources/frontend/react/initialiser-un-projet-react"},{"id":"ressources/frontend/react/intro","title":"Introduction à React","description":"Parlons un peu de React, ce qu'il est, ce qu'il fait et pourquoi il est si populaire.","permalink":"/ressources/frontend/react/intro"},{"id":"ressources/frontend/react/contextes","title":"Le hook useContext de React","description":"Découvrez comment utiliser le hook useContext de React pour gérer les contextes dans vos applications.","permalink":"/ressources/frontend/react/contextes"},{"id":"ressources/frontend/react/reducers","title":"Le hook useReducer de React","description":"Découvrez comment utiliser le hook useReducer de React pour gérer l'état de vos composants de manière plus efficace.","permalink":"/ressources/frontend/react/reducers"},{"id":"ressources/frontend/react/hooks","title":"Les hooks de React","description":"Découvre les hooks de React, une fonctionnalité qui te permet de gérer le state et le cycle de vie de tes composants fonctionnels.","permalink":"/ressources/frontend/react/hooks"},{"id":"ressources/frontend/react/premier-composant","title":"Premier composant","description":"Voyons ensemble comment notre premier composant React !","permalink":"/ressources/frontend/react/premier-composant"},{"id":"ressources/frontend/react/state-et-cycle-de-vie","title":"State et cycle de vie","description":"Voyons ensemble comment gérer le state et le cycle de vie d'un composant React !","permalink":"/ressources/frontend/react/state-et-cycle-de-vie"},{"id":"ressources/frontend/react/syntaxe-jsx","title":"Syntaxe JSX","description":"Découvrons la syntaxe JSX, un langage de balisage utilisé par React pour décrire l'interface utilisateur.","permalink":"/ressources/frontend/react/syntaxe-jsx"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-hachage-a9b.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-hachage-a9b.json deleted file mode 100644 index 1c72f8b..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-hachage-a9b.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Hachage","permalink":"/tags/hachage","allTagsPath":"/tags","count":1,"items":[{"id":"titres-professionnels/DWWM/AT2/CP6","title":"CP 6","description":"Synthèse de la CP 6 \"Développer des composants d'accès aux données SQL et NoSQL\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP6"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-html-ea7.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-html-ea7.json deleted file mode 100644 index 97d8d6e..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-html-ea7.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"HTML","permalink":"/tags/html","allTagsPath":"/tags","count":1,"items":[{"id":"titres-professionnels/DWWM/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP3"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-integration-c39.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-integration-c39.json deleted file mode 100644 index 125702b..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-integration-c39.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Intégration","permalink":"/tags/integration","allTagsPath":"/tags","count":1,"items":[{"id":"titres-professionnels/DWWM/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP3"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-interface-utilisateur-ui-bec.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-interface-utilisateur-ui-bec.json deleted file mode 100644 index 0711e19..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-interface-utilisateur-ui-bec.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Interface utilisateur (UI)","permalink":"/tags/interface-utilisateur-ui","allTagsPath":"/tags","count":8,"items":[{"id":"ressources/frontend/react/initialiser-un-projet-react","title":"Initialisation","description":"Initialisons un nouveau projet React, avec ou sans TypeScript.","permalink":"/ressources/frontend/react/initialiser-un-projet-react"},{"id":"ressources/frontend/react/intro","title":"Introduction à React","description":"Parlons un peu de React, ce qu'il est, ce qu'il fait et pourquoi il est si populaire.","permalink":"/ressources/frontend/react/intro"},{"id":"ressources/frontend/react/contextes","title":"Le hook useContext de React","description":"Découvrez comment utiliser le hook useContext de React pour gérer les contextes dans vos applications.","permalink":"/ressources/frontend/react/contextes"},{"id":"ressources/frontend/react/reducers","title":"Le hook useReducer de React","description":"Découvrez comment utiliser le hook useReducer de React pour gérer l'état de vos composants de manière plus efficace.","permalink":"/ressources/frontend/react/reducers"},{"id":"ressources/frontend/react/hooks","title":"Les hooks de React","description":"Découvre les hooks de React, une fonctionnalité qui te permet de gérer le state et le cycle de vie de tes composants fonctionnels.","permalink":"/ressources/frontend/react/hooks"},{"id":"ressources/frontend/react/premier-composant","title":"Premier composant","description":"Voyons ensemble comment notre premier composant React !","permalink":"/ressources/frontend/react/premier-composant"},{"id":"ressources/frontend/react/state-et-cycle-de-vie","title":"State et cycle de vie","description":"Voyons ensemble comment gérer le state et le cycle de vie d'un composant React !","permalink":"/ressources/frontend/react/state-et-cycle-de-vie"},{"id":"ressources/frontend/react/syntaxe-jsx","title":"Syntaxe JSX","description":"Découvrons la syntaxe JSX, un langage de balisage utilisé par React pour décrire l'interface utilisateur.","permalink":"/ressources/frontend/react/syntaxe-jsx"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-java-script-type-script-4ed.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-java-script-type-script-4ed.json deleted file mode 100644 index dd67e99..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-java-script-type-script-4ed.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"JavaScript/TypeScript","permalink":"/tags/java-script-type-script","allTagsPath":"/tags","count":9,"items":[{"id":"titres-professionnels/DWWM/AT1/CP4","title":"CP 4","description":"Synthèse de la CP 4 \"Développer la partie dynamique des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP4"},{"id":"ressources/frontend/react/initialiser-un-projet-react","title":"Initialisation","description":"Initialisons un nouveau projet React, avec ou sans TypeScript.","permalink":"/ressources/frontend/react/initialiser-un-projet-react"},{"id":"ressources/frontend/react/intro","title":"Introduction à React","description":"Parlons un peu de React, ce qu'il est, ce qu'il fait et pourquoi il est si populaire.","permalink":"/ressources/frontend/react/intro"},{"id":"ressources/frontend/react/contextes","title":"Le hook useContext de React","description":"Découvrez comment utiliser le hook useContext de React pour gérer les contextes dans vos applications.","permalink":"/ressources/frontend/react/contextes"},{"id":"ressources/frontend/react/reducers","title":"Le hook useReducer de React","description":"Découvrez comment utiliser le hook useReducer de React pour gérer l'état de vos composants de manière plus efficace.","permalink":"/ressources/frontend/react/reducers"},{"id":"ressources/frontend/react/hooks","title":"Les hooks de React","description":"Découvre les hooks de React, une fonctionnalité qui te permet de gérer le state et le cycle de vie de tes composants fonctionnels.","permalink":"/ressources/frontend/react/hooks"},{"id":"ressources/frontend/react/premier-composant","title":"Premier composant","description":"Voyons ensemble comment notre premier composant React !","permalink":"/ressources/frontend/react/premier-composant"},{"id":"ressources/frontend/react/state-et-cycle-de-vie","title":"State et cycle de vie","description":"Voyons ensemble comment gérer le state et le cycle de vie d'un composant React !","permalink":"/ressources/frontend/react/state-et-cycle-de-vie"},{"id":"ressources/frontend/react/syntaxe-jsx","title":"Syntaxe JSX","description":"Découvrons la syntaxe JSX, un langage de balisage utilisé par React pour décrire l'interface utilisateur.","permalink":"/ressources/frontend/react/syntaxe-jsx"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-maquettage-4e5.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-maquettage-4e5.json deleted file mode 100644 index 86e295d..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-maquettage-4e5.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Maquettage","permalink":"/tags/maquettage","allTagsPath":"/tags","count":1,"items":[{"id":"titres-professionnels/DWWM/AT1/CP2","title":"CP 2","description":"Synthèse de la CP 2 \"Maquetter des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP2"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-merise-88f.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-merise-88f.json deleted file mode 100644 index 374bedc..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-merise-88f.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Merise","permalink":"/tags/merise","allTagsPath":"/tags","count":4,"items":[{"id":"titres-professionnels/DWWM/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP5"},{"id":"ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees"},{"id":"ressources/bases-de-donnees/modelisation/mcd","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/mcd"},{"id":"ressources/bases-de-donnees/modelisation/merise","title":"Modélisation avec Merise","description":"Voyons ensemble comment on peut modéliser une base de données avec Merise !","permalink":"/ressources/bases-de-donnees/modelisation/merise"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modele-conceptuel-de-donnees-mcd-4e2.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modele-conceptuel-de-donnees-mcd-4e2.json deleted file mode 100644 index 752a881..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modele-conceptuel-de-donnees-mcd-4e2.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Modèle Conceptuel de Données (MCD)","permalink":"/tags/modele-conceptuel-de-donnees-mcd","allTagsPath":"/tags","count":4,"items":[{"id":"titres-professionnels/DWWM/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP5"},{"id":"ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees"},{"id":"ressources/bases-de-donnees/modelisation/mcd","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/mcd"},{"id":"ressources/bases-de-donnees/modelisation/merise","title":"Modélisation avec Merise","description":"Voyons ensemble comment on peut modéliser une base de données avec Merise !","permalink":"/ressources/bases-de-donnees/modelisation/merise"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modele-logique-de-donnees-mld-b5b.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modele-logique-de-donnees-mld-b5b.json deleted file mode 100644 index 177386b..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modele-logique-de-donnees-mld-b5b.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Modèle Logique de Données (MLD)","permalink":"/tags/modele-logique-de-donnees-mld","allTagsPath":"/tags","count":4,"items":[{"id":"titres-professionnels/DWWM/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP5"},{"id":"ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees"},{"id":"ressources/bases-de-donnees/modelisation/mcd","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/mcd"},{"id":"ressources/bases-de-donnees/modelisation/merise","title":"Modélisation avec Merise","description":"Voyons ensemble comment on peut modéliser une base de données avec Merise !","permalink":"/ressources/bases-de-donnees/modelisation/merise"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modele-physique-de-donnees-mpd-715.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modele-physique-de-donnees-mpd-715.json deleted file mode 100644 index 0477efa..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modele-physique-de-donnees-mpd-715.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Modèle Physique de Données (MPD)","permalink":"/tags/modele-physique-de-donnees-mpd","allTagsPath":"/tags","count":4,"items":[{"id":"titres-professionnels/DWWM/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP5"},{"id":"ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees"},{"id":"ressources/bases-de-donnees/modelisation/mcd","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/mcd"},{"id":"ressources/bases-de-donnees/modelisation/merise","title":"Modélisation avec Merise","description":"Voyons ensemble comment on peut modéliser une base de données avec Merise !","permalink":"/ressources/bases-de-donnees/modelisation/merise"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modele-relationnel-de-donnees-mrd-c20.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modele-relationnel-de-donnees-mrd-c20.json deleted file mode 100644 index e49278d..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modele-relationnel-de-donnees-mrd-c20.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Modèle Relationnel de Données (MRD)","permalink":"/tags/modele-relationnel-de-donnees-mrd","allTagsPath":"/tags","count":4,"items":[{"id":"titres-professionnels/DWWM/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP5"},{"id":"ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees"},{"id":"ressources/bases-de-donnees/modelisation/mcd","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/mcd"},{"id":"ressources/bases-de-donnees/modelisation/merise","title":"Modélisation avec Merise","description":"Voyons ensemble comment on peut modéliser une base de données avec Merise !","permalink":"/ressources/bases-de-donnees/modelisation/merise"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modelisation-8ee.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modelisation-8ee.json deleted file mode 100644 index 6261e3e..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-modelisation-8ee.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Modélisation","permalink":"/tags/modelisation","allTagsPath":"/tags","count":4,"items":[{"id":"titres-professionnels/DWWM/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP5"},{"id":"ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees"},{"id":"ressources/bases-de-donnees/modelisation/mcd","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/mcd"},{"id":"ressources/bases-de-donnees/modelisation/merise","title":"Modélisation avec Merise","description":"Voyons ensemble comment on peut modéliser une base de données avec Merise !","permalink":"/ressources/bases-de-donnees/modelisation/merise"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-orm-odm-4b7.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-orm-odm-4b7.json deleted file mode 100644 index 405ed48..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-orm-odm-4b7.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"ORM/ODM","permalink":"/tags/orm-odm","allTagsPath":"/tags","count":1,"items":[{"id":"titres-professionnels/DWWM/AT2/CP6","title":"CP 6","description":"Synthèse de la CP 6 \"Développer des composants d'accès aux données SQL et NoSQL\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP6"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-react-df3.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-react-df3.json deleted file mode 100644 index 2c4dc49..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-react-df3.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"React","permalink":"/tags/react","allTagsPath":"/tags","count":8,"items":[{"id":"ressources/frontend/react/initialiser-un-projet-react","title":"Initialisation","description":"Initialisons un nouveau projet React, avec ou sans TypeScript.","permalink":"/ressources/frontend/react/initialiser-un-projet-react"},{"id":"ressources/frontend/react/intro","title":"Introduction à React","description":"Parlons un peu de React, ce qu'il est, ce qu'il fait et pourquoi il est si populaire.","permalink":"/ressources/frontend/react/intro"},{"id":"ressources/frontend/react/contextes","title":"Le hook useContext de React","description":"Découvrez comment utiliser le hook useContext de React pour gérer les contextes dans vos applications.","permalink":"/ressources/frontend/react/contextes"},{"id":"ressources/frontend/react/reducers","title":"Le hook useReducer de React","description":"Découvrez comment utiliser le hook useReducer de React pour gérer l'état de vos composants de manière plus efficace.","permalink":"/ressources/frontend/react/reducers"},{"id":"ressources/frontend/react/hooks","title":"Les hooks de React","description":"Découvre les hooks de React, une fonctionnalité qui te permet de gérer le state et le cycle de vie de tes composants fonctionnels.","permalink":"/ressources/frontend/react/hooks"},{"id":"ressources/frontend/react/premier-composant","title":"Premier composant","description":"Voyons ensemble comment notre premier composant React !","permalink":"/ressources/frontend/react/premier-composant"},{"id":"ressources/frontend/react/state-et-cycle-de-vie","title":"State et cycle de vie","description":"Voyons ensemble comment gérer le state et le cycle de vie d'un composant React !","permalink":"/ressources/frontend/react/state-et-cycle-de-vie"},{"id":"ressources/frontend/react/syntaxe-jsx","title":"Syntaxe JSX","description":"Découvrons la syntaxe JSX, un langage de balisage utilisé par React pour décrire l'interface utilisateur.","permalink":"/ressources/frontend/react/syntaxe-jsx"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-responsive-3f9.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-responsive-3f9.json deleted file mode 100644 index f12b0e5..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-responsive-3f9.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Responsive","permalink":"/tags/responsive","allTagsPath":"/tags","count":1,"items":[{"id":"titres-professionnels/DWWM/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP3"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-reverse-proxy-c23.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-reverse-proxy-c23.json deleted file mode 100644 index 31ea6aa..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-reverse-proxy-c23.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Reverse Proxy","permalink":"/tags/reverse-proxy","allTagsPath":"/tags","count":2,"items":[{"id":"titres-professionnels/DWWM/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP3"},{"id":"titres-professionnels/DWWM/AT2/CP8","title":"CP 8","description":"Synthèse de la CP 8 \"Documenter le déploiement d'une application dynamique web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP8"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-securite-b35.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-securite-b35.json deleted file mode 100644 index ce406e5..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-securite-b35.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Sécurité","permalink":"/tags/securite","allTagsPath":"/tags","count":2,"items":[{"id":"titres-professionnels/DWWM/AT2/CP6","title":"CP 6","description":"Synthèse de la CP 6 \"Développer des composants d'accès aux données SQL et NoSQL\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP6"},{"id":"titres-professionnels/DWWM/AT2/CP7","title":"CP 7","description":"Synthèse de la CP 7 \"Développer des composants métier coté serveur\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP7"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-seo-referencement-naturel-192.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-seo-referencement-naturel-192.json deleted file mode 100644 index 390ba2f..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-seo-referencement-naturel-192.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"SEO/Référencement naturel","permalink":"/tags/seo-referencement-naturel","allTagsPath":"/tags","count":3,"items":[{"id":"titres-professionnels/DWWM/AT1/CP2","title":"CP 2","description":"Synthèse de la CP 2 \"Maquetter des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP2"},{"id":"titres-professionnels/DWWM/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP3"},{"id":"titres-professionnels/DWWM/AT1/CP4","title":"CP 4","description":"Synthèse de la CP 4 \"Développer la partie dynamique des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP4"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-serveur-web-fe0.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-serveur-web-fe0.json deleted file mode 100644 index 673b742..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-serveur-web-fe0.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Serveur web","permalink":"/tags/serveur-web","allTagsPath":"/tags","count":2,"items":[{"id":"titres-professionnels/DWWM/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP3"},{"id":"titres-professionnels/DWWM/AT2/CP8","title":"CP 8","description":"Synthèse de la CP 8 \"Documenter le déploiement d'une application dynamique web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP8"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-sql-d44.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-sql-d44.json deleted file mode 100644 index 0b18f88..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-sql-d44.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"SQL","permalink":"/tags/sql","allTagsPath":"/tags","count":5,"items":[{"id":"titres-professionnels/DWWM/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP5"},{"id":"titres-professionnels/DWWM/AT2/CP6","title":"CP 6","description":"Synthèse de la CP 6 \"Développer des composants d'accès aux données SQL et NoSQL\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP6"},{"id":"ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees"},{"id":"ressources/bases-de-donnees/modelisation/mcd","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","permalink":"/ressources/bases-de-donnees/modelisation/mcd"},{"id":"ressources/bases-de-donnees/modelisation/merise","title":"Modélisation avec Merise","description":"Voyons ensemble comment on peut modéliser une base de données avec Merise !","permalink":"/ressources/bases-de-donnees/modelisation/merise"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-ssg-04a.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-ssg-04a.json deleted file mode 100644 index 4f23ce7..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-ssg-04a.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"SSG","permalink":"/tags/ssg","allTagsPath":"/tags","count":1,"items":[{"id":"ressources/frontend/react/initialiser-un-projet-react","title":"Initialisation","description":"Initialisons un nouveau projet React, avec ou sans TypeScript.","permalink":"/ressources/frontend/react/initialiser-un-projet-react"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-ssr-9fe.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-ssr-9fe.json deleted file mode 100644 index c8573cf..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-ssr-9fe.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"SSR","permalink":"/tags/ssr","allTagsPath":"/tags","count":1,"items":[{"id":"ressources/frontend/react/initialiser-un-projet-react","title":"Initialisation","description":"Initialisons un nouveau projet React, avec ou sans TypeScript.","permalink":"/ressources/frontend/react/initialiser-un-projet-react"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-tests-694.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-tests-694.json deleted file mode 100644 index 35dfacc..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-tests-694.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Tests","permalink":"/tags/tests","allTagsPath":"/tags","count":1,"items":[{"id":"titres-professionnels/DWWM/AT2/CP7","title":"CP 7","description":"Synthèse de la CP 7 \"Développer des composants métier coté serveur\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT2/CP7"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-vike-d66.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-vike-d66.json deleted file mode 100644 index 010bbef..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-vike-d66.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Vike","permalink":"/tags/vike","allTagsPath":"/tags","count":1,"items":[{"id":"ressources/frontend/react/initialiser-un-projet-react","title":"Initialisation","description":"Initialisons un nouveau projet React, avec ou sans TypeScript.","permalink":"/ressources/frontend/react/initialiser-un-projet-react"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-vite-893.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-vite-893.json deleted file mode 100644 index 6c7b405..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-vite-893.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Vite","permalink":"/tags/vite","allTagsPath":"/tags","count":1,"items":[{"id":"ressources/frontend/react/initialiser-un-projet-react","title":"Initialisation","description":"Initialisons un nouveau projet React, avec ou sans TypeScript.","permalink":"/ressources/frontend/react/initialiser-un-projet-react"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-wireframe-020.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-wireframe-020.json deleted file mode 100644 index 0de5713..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-wireframe-020.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Wireframe","permalink":"/tags/wireframe","allTagsPath":"/tags","count":1,"items":[{"id":"titres-professionnels/DWWM/AT1/CP2","title":"CP 2","description":"Synthèse de la CP 2 \"Maquetter des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP2"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-zoning-463.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-zoning-463.json deleted file mode 100644 index 4c60c5c..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/p/tags-zoning-463.json +++ /dev/null @@ -1 +0,0 @@ -{"tag":{"label":"Zoning","permalink":"/tags/zoning","allTagsPath":"/tags","count":1,"items":[{"id":"titres-professionnels/DWWM/AT1/CP2","title":"CP 2","description":"Synthèse de la CP 2 \"Maquetter des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","permalink":"/titres-professionnels/DWWM/AT1/CP2"}],"unlisted":false}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-contribuer-mdx-70e.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-contribuer-mdx-70e.json deleted file mode 100644 index 0ae337b..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-contribuer-mdx-70e.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "id": "contribuer", - "title": "🤝 Contribuer", - "description": "Tu souhaites contribuer à Memento Dev ? C'est par ici !", - "source": "@site/docs/contribuer.mdx", - "sourceDirName": ".", - "slug": "/contribuer", - "permalink": "/contribuer", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/contribuer.mdx", - "tags": [], - "version": "current", - "sidebarPosition": 99999, - "frontMatter": { - "sidebar_position": 99999, - "description": "Tu souhaites contribuer à Memento Dev ? C'est par ici !" - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "🤗 Soutiens et contributeurs", - "permalink": "/soutiens-et-contributeurs" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-glossaires-titres-professionnel-mdx-ed4.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-glossaires-titres-professionnel-mdx-ed4.json deleted file mode 100644 index 7ec6bf9..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-glossaires-titres-professionnel-mdx-ed4.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "glossaires/titres-professionnel", - "title": "Titres professionnels", - "description": "Définitions des termes utilisés dans le cadre des titres professionnels.", - "source": "@site/docs/glossaires/titres-professionnel.mdx", - "sourceDirName": "glossaires", - "slug": "/glossaires/titres-professionnel", - "permalink": "/glossaires/titres-professionnel", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/glossaires/titres-professionnel.mdx", - "tags": [], - "version": "current", - "sidebarPosition": 1, - "frontMatter": { - "sidebar_position": 1, - "title": "Titres professionnels", - "description": "Définitions des termes utilisés dans le cadre des titres professionnels." - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "📜 Préambule", - "permalink": "/intro" - }, - "next": { - "title": "🎓 Titres professionnels", - "permalink": "/category/-titres-professionnels" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-intro-mdx-f84.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-intro-mdx-f84.json deleted file mode 100644 index c3cc522..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-intro-mdx-f84.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "id": "intro", - "title": "📜 Préambule", - "description": "Memento Dev, une plateforme open-source de partage de connaissances en développement !", - "source": "@site/docs/intro.mdx", - "sourceDirName": ".", - "slug": "/intro", - "permalink": "/intro", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/intro.mdx", - "tags": [], - "version": "current", - "sidebarPosition": 1, - "frontMatter": { - "sidebar_position": 1, - "description": "Memento Dev, une plateforme open-source de partage de connaissances en développement !" - }, - "sidebar": "tutorialSidebar", - "next": { - "title": "Titres professionnels", - "permalink": "/glossaires/titres-professionnel" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-bases-de-donnees-modelisation-dictionnaire-de-donnees-mdx-f25.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-bases-de-donnees-modelisation-dictionnaire-de-donnees-mdx-f25.json deleted file mode 100644 index 0c3db15..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-bases-de-donnees-modelisation-dictionnaire-de-donnees-mdx-f25.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "id": "ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees", - "title": "Création du MCD", - "description": "Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.", - "source": "@site/docs/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees.mdx", - "sourceDirName": "ressources/bases-de-donnees/modelisation", - "slug": "/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees", - "permalink": "/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees.mdx", - "tags": [ - { - "inline": true, - "label": "Conception", - "permalink": "/tags/conception" - }, - { - "inline": true, - "label": "Modélisation", - "permalink": "/tags/modelisation" - }, - { - "inline": true, - "label": "Base de données", - "permalink": "/tags/base-de-donnees" - }, - { - "inline": true, - "label": "Merise", - "permalink": "/tags/merise" - }, - { - "inline": true, - "label": "Dictionnaire de Données", - "permalink": "/tags/dictionnaire-de-donnees" - }, - { - "inline": true, - "label": "Modèle Conceptuel de Données (MCD)", - "permalink": "/tags/modele-conceptuel-de-donnees-mcd" - }, - { - "inline": true, - "label": "Modèle Logique de Données (MLD)", - "permalink": "/tags/modele-logique-de-donnees-mld" - }, - { - "inline": true, - "label": "Modèle Relationnel de Données (MRD)", - "permalink": "/tags/modele-relationnel-de-donnees-mrd" - }, - { - "inline": true, - "label": "Modèle Physique de Données (MPD)", - "permalink": "/tags/modele-physique-de-donnees-mpd" - }, - { - "inline": true, - "label": "SQL", - "permalink": "/tags/sql" - }, - { - "inline": true, - "label": "DWWM", - "permalink": "/tags/dwwm" - }, - { - "inline": true, - "label": "CDA", - "permalink": "/tags/cda" - } - ], - "version": "current", - "sidebarPosition": 3, - "frontMatter": { - "sidebar_position": 3, - "title": "Création du MCD", - "description": "Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.", - "tags": [ - "Conception", - "Modélisation", - "Base de données", - "Merise", - "Dictionnaire de Données", - "Modèle Conceptuel de Données (MCD)", - "Modèle Logique de Données (MLD)", - "Modèle Relationnel de Données (MRD)", - "Modèle Physique de Données (MPD)", - "SQL", - "DWWM", - "CDA" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "Modélisation avec Merise", - "permalink": "/ressources/bases-de-donnees/modelisation/merise" - }, - "next": { - "title": "Création du MCD", - "permalink": "/ressources/bases-de-donnees/modelisation/mcd" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-bases-de-donnees-modelisation-mcd-mdx-bb4.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-bases-de-donnees-modelisation-mcd-mdx-bb4.json deleted file mode 100644 index 7fab1ca..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-bases-de-donnees-modelisation-mcd-mdx-bb4.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "id": "ressources/bases-de-donnees/modelisation/mcd", - "title": "Création du MCD", - "description": "Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.", - "source": "@site/docs/ressources/bases-de-donnees/modelisation/mcd.mdx", - "sourceDirName": "ressources/bases-de-donnees/modelisation", - "slug": "/ressources/bases-de-donnees/modelisation/mcd", - "permalink": "/ressources/bases-de-donnees/modelisation/mcd", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/bases-de-donnees/modelisation/mcd.mdx", - "tags": [ - { - "inline": true, - "label": "Conception", - "permalink": "/tags/conception" - }, - { - "inline": true, - "label": "Modélisation", - "permalink": "/tags/modelisation" - }, - { - "inline": true, - "label": "Base de données", - "permalink": "/tags/base-de-donnees" - }, - { - "inline": true, - "label": "Merise", - "permalink": "/tags/merise" - }, - { - "inline": true, - "label": "Dictionnaire de Données", - "permalink": "/tags/dictionnaire-de-donnees" - }, - { - "inline": true, - "label": "Modèle Conceptuel de Données (MCD)", - "permalink": "/tags/modele-conceptuel-de-donnees-mcd" - }, - { - "inline": true, - "label": "Modèle Logique de Données (MLD)", - "permalink": "/tags/modele-logique-de-donnees-mld" - }, - { - "inline": true, - "label": "Modèle Relationnel de Données (MRD)", - "permalink": "/tags/modele-relationnel-de-donnees-mrd" - }, - { - "inline": true, - "label": "Modèle Physique de Données (MPD)", - "permalink": "/tags/modele-physique-de-donnees-mpd" - }, - { - "inline": true, - "label": "SQL", - "permalink": "/tags/sql" - }, - { - "inline": true, - "label": "DWWM", - "permalink": "/tags/dwwm" - }, - { - "inline": true, - "label": "CDA", - "permalink": "/tags/cda" - } - ], - "version": "current", - "sidebarPosition": 3, - "frontMatter": { - "sidebar_position": 3, - "title": "Création du MCD", - "description": "Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.", - "tags": [ - "Conception", - "Modélisation", - "Base de données", - "Merise", - "Dictionnaire de Données", - "Modèle Conceptuel de Données (MCD)", - "Modèle Logique de Données (MLD)", - "Modèle Relationnel de Données (MRD)", - "Modèle Physique de Données (MPD)", - "SQL", - "DWWM", - "CDA" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "Création du MCD", - "permalink": "/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees" - }, - "next": { - "title": "🌈 Frontend", - "permalink": "/category/-frontend" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-bases-de-donnees-modelisation-merise-mdx-5d6.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-bases-de-donnees-modelisation-merise-mdx-5d6.json deleted file mode 100644 index b876859..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-bases-de-donnees-modelisation-merise-mdx-5d6.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "id": "ressources/bases-de-donnees/modelisation/merise", - "title": "Modélisation avec Merise", - "description": "Voyons ensemble comment on peut modéliser une base de données avec Merise !", - "source": "@site/docs/ressources/bases-de-donnees/modelisation/merise.mdx", - "sourceDirName": "ressources/bases-de-donnees/modelisation", - "slug": "/ressources/bases-de-donnees/modelisation/merise", - "permalink": "/ressources/bases-de-donnees/modelisation/merise", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/bases-de-donnees/modelisation/merise.mdx", - "tags": [ - { - "inline": true, - "label": "Conception", - "permalink": "/tags/conception" - }, - { - "inline": true, - "label": "Modélisation", - "permalink": "/tags/modelisation" - }, - { - "inline": true, - "label": "Base de données", - "permalink": "/tags/base-de-donnees" - }, - { - "inline": true, - "label": "Merise", - "permalink": "/tags/merise" - }, - { - "inline": true, - "label": "Dictionnaire de Données", - "permalink": "/tags/dictionnaire-de-donnees" - }, - { - "inline": true, - "label": "Modèle Conceptuel de Données (MCD)", - "permalink": "/tags/modele-conceptuel-de-donnees-mcd" - }, - { - "inline": true, - "label": "Modèle Logique de Données (MLD)", - "permalink": "/tags/modele-logique-de-donnees-mld" - }, - { - "inline": true, - "label": "Modèle Relationnel de Données (MRD)", - "permalink": "/tags/modele-relationnel-de-donnees-mrd" - }, - { - "inline": true, - "label": "Modèle Physique de Données (MPD)", - "permalink": "/tags/modele-physique-de-donnees-mpd" - }, - { - "inline": true, - "label": "SQL", - "permalink": "/tags/sql" - }, - { - "inline": true, - "label": "DWWM", - "permalink": "/tags/dwwm" - } - ], - "version": "current", - "sidebarPosition": 1, - "frontMatter": { - "sidebar_position": 1, - "title": "Modélisation avec Merise", - "description": "Voyons ensemble comment on peut modéliser une base de données avec Merise !", - "tags": [ - "Conception", - "Modélisation", - "Base de données", - "Merise", - "Dictionnaire de Données", - "Modèle Conceptuel de Données (MCD)", - "Modèle Logique de Données (MLD)", - "Modèle Relationnel de Données (MRD)", - "Modèle Physique de Données (MPD)", - "SQL", - "DWWM" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "💽 Bases de données", - "permalink": "/category/-bases-de-données" - }, - "next": { - "title": "Création du MCD", - "permalink": "/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-contextes-mdx-cbc.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-contextes-mdx-cbc.json deleted file mode 100644 index 295afbe..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-contextes-mdx-cbc.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "id": "ressources/frontend/react/contextes", - "title": "Le hook useContext de React", - "description": "Découvrez comment utiliser le hook useContext de React pour gérer les contextes dans vos applications.", - "source": "@site/docs/ressources/frontend/react/contextes.mdx", - "sourceDirName": "ressources/frontend/react", - "slug": "/ressources/frontend/react/contextes", - "permalink": "/ressources/frontend/react/contextes", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/frontend/react/contextes.mdx", - "tags": [ - { - "inline": true, - "label": "Frontend", - "permalink": "/tags/frontend" - }, - { - "inline": true, - "label": "React", - "permalink": "/tags/react" - }, - { - "inline": true, - "label": "JavaScript/TypeScript", - "permalink": "/tags/java-script-type-script" - }, - { - "inline": true, - "label": "Bibliothèque", - "permalink": "/tags/bibliotheque" - }, - { - "inline": true, - "label": "Interface utilisateur (UI)", - "permalink": "/tags/interface-utilisateur-ui" - } - ], - "version": "current", - "sidebarPosition": 7, - "frontMatter": { - "sidebar_position": 7, - "title": "Le hook useContext de React", - "description": "Découvrez comment utiliser le hook useContext de React pour gérer les contextes dans vos applications.", - "tags": [ - "Frontend", - "React", - "JavaScript/TypeScript", - "Bibliothèque", - "Interface utilisateur (UI)" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "Les hooks de React", - "permalink": "/ressources/frontend/react/hooks" - }, - "next": { - "title": "Le hook useReducer de React", - "permalink": "/ressources/frontend/react/reducers" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-hooks-mdx-d19.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-hooks-mdx-d19.json deleted file mode 100644 index bc1fe2d..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-hooks-mdx-d19.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "id": "ressources/frontend/react/hooks", - "title": "Les hooks de React", - "description": "Découvre les hooks de React, une fonctionnalité qui te permet de gérer le state et le cycle de vie de tes composants fonctionnels.", - "source": "@site/docs/ressources/frontend/react/hooks.mdx", - "sourceDirName": "ressources/frontend/react", - "slug": "/ressources/frontend/react/hooks", - "permalink": "/ressources/frontend/react/hooks", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/frontend/react/hooks.mdx", - "tags": [ - { - "inline": true, - "label": "Frontend", - "permalink": "/tags/frontend" - }, - { - "inline": true, - "label": "React", - "permalink": "/tags/react" - }, - { - "inline": true, - "label": "JavaScript/TypeScript", - "permalink": "/tags/java-script-type-script" - }, - { - "inline": true, - "label": "Bibliothèque", - "permalink": "/tags/bibliotheque" - }, - { - "inline": true, - "label": "Interface utilisateur (UI)", - "permalink": "/tags/interface-utilisateur-ui" - } - ], - "version": "current", - "sidebarPosition": 6, - "frontMatter": { - "sidebar_position": 6, - "title": "Les hooks de React", - "description": "Découvre les hooks de React, une fonctionnalité qui te permet de gérer le state et le cycle de vie de tes composants fonctionnels.", - "tags": [ - "Frontend", - "React", - "JavaScript/TypeScript", - "Bibliothèque", - "Interface utilisateur (UI)" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "State et cycle de vie", - "permalink": "/ressources/frontend/react/state-et-cycle-de-vie" - }, - "next": { - "title": "Le hook useContext de React", - "permalink": "/ressources/frontend/react/contextes" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-initialiser-un-projet-react-mdx-be7.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-initialiser-un-projet-react-mdx-be7.json deleted file mode 100644 index a9298aa..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-initialiser-un-projet-react-mdx-be7.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "id": "ressources/frontend/react/initialiser-un-projet-react", - "title": "Initialisation", - "description": "Initialisons un nouveau projet React, avec ou sans TypeScript.", - "source": "@site/docs/ressources/frontend/react/initialiser-un-projet-react.mdx", - "sourceDirName": "ressources/frontend/react", - "slug": "/ressources/frontend/react/initialiser-un-projet-react", - "permalink": "/ressources/frontend/react/initialiser-un-projet-react", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/frontend/react/initialiser-un-projet-react.mdx", - "tags": [ - { - "inline": true, - "label": "Frontend", - "permalink": "/tags/frontend" - }, - { - "inline": true, - "label": "React", - "permalink": "/tags/react" - }, - { - "inline": true, - "label": "JavaScript/TypeScript", - "permalink": "/tags/java-script-type-script" - }, - { - "inline": true, - "label": "Bibliothèque", - "permalink": "/tags/bibliotheque" - }, - { - "inline": true, - "label": "Interface utilisateur (UI)", - "permalink": "/tags/interface-utilisateur-ui" - }, - { - "inline": true, - "label": "Vite", - "permalink": "/tags/vite" - }, - { - "inline": true, - "label": "Vike", - "permalink": "/tags/vike" - }, - { - "inline": true, - "label": "SSR", - "permalink": "/tags/ssr" - }, - { - "inline": true, - "label": "SSG", - "permalink": "/tags/ssg" - }, - { - "inline": true, - "label": "CSR", - "permalink": "/tags/csr" - } - ], - "version": "current", - "sidebarPosition": 2, - "frontMatter": { - "sidebar_position": 2, - "title": "Initialisation", - "description": "Initialisons un nouveau projet React, avec ou sans TypeScript.", - "tags": [ - "Frontend", - "React", - "JavaScript/TypeScript", - "Bibliothèque", - "Interface utilisateur (UI)", - "Vite", - "Vike", - "SSR", - "SSG", - "CSR" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "Introduction à React", - "permalink": "/ressources/frontend/react/intro" - }, - "next": { - "title": "Syntaxe JSX", - "permalink": "/ressources/frontend/react/syntaxe-jsx" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-intro-mdx-f04.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-intro-mdx-f04.json deleted file mode 100644 index 864f19e..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-intro-mdx-f04.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "id": "ressources/frontend/react/intro", - "title": "Introduction à React", - "description": "Parlons un peu de React, ce qu'il est, ce qu'il fait et pourquoi il est si populaire.", - "source": "@site/docs/ressources/frontend/react/intro.mdx", - "sourceDirName": "ressources/frontend/react", - "slug": "/ressources/frontend/react/intro", - "permalink": "/ressources/frontend/react/intro", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/frontend/react/intro.mdx", - "tags": [ - { - "inline": true, - "label": "Frontend", - "permalink": "/tags/frontend" - }, - { - "inline": true, - "label": "React", - "permalink": "/tags/react" - }, - { - "inline": true, - "label": "JavaScript/TypeScript", - "permalink": "/tags/java-script-type-script" - }, - { - "inline": true, - "label": "Bibliothèque", - "permalink": "/tags/bibliotheque" - }, - { - "inline": true, - "label": "Interface utilisateur (UI)", - "permalink": "/tags/interface-utilisateur-ui" - } - ], - "version": "current", - "sidebarPosition": 1, - "frontMatter": { - "sidebar_position": 1, - "title": "Introduction à React", - "description": "Parlons un peu de React, ce qu'il est, ce qu'il fait et pourquoi il est si populaire.", - "tags": [ - "Frontend", - "React", - "JavaScript/TypeScript", - "Bibliothèque", - "Interface utilisateur (UI)" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "🌈 Frontend", - "permalink": "/category/-frontend" - }, - "next": { - "title": "Initialisation", - "permalink": "/ressources/frontend/react/initialiser-un-projet-react" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-premier-composant-mdx-b78.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-premier-composant-mdx-b78.json deleted file mode 100644 index b866610..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-premier-composant-mdx-b78.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "id": "ressources/frontend/react/premier-composant", - "title": "Premier composant", - "description": "Voyons ensemble comment notre premier composant React !", - "source": "@site/docs/ressources/frontend/react/premier-composant.mdx", - "sourceDirName": "ressources/frontend/react", - "slug": "/ressources/frontend/react/premier-composant", - "permalink": "/ressources/frontend/react/premier-composant", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/frontend/react/premier-composant.mdx", - "tags": [ - { - "inline": true, - "label": "Frontend", - "permalink": "/tags/frontend" - }, - { - "inline": true, - "label": "React", - "permalink": "/tags/react" - }, - { - "inline": true, - "label": "JavaScript/TypeScript", - "permalink": "/tags/java-script-type-script" - }, - { - "inline": true, - "label": "Bibliothèque", - "permalink": "/tags/bibliotheque" - }, - { - "inline": true, - "label": "Interface utilisateur (UI)", - "permalink": "/tags/interface-utilisateur-ui" - } - ], - "version": "current", - "sidebarPosition": 4, - "frontMatter": { - "sidebar_position": 4, - "title": "Premier composant", - "description": "Voyons ensemble comment notre premier composant React !", - "tags": [ - "Frontend", - "React", - "JavaScript/TypeScript", - "Bibliothèque", - "Interface utilisateur (UI)" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "Syntaxe JSX", - "permalink": "/ressources/frontend/react/syntaxe-jsx" - }, - "next": { - "title": "State et cycle de vie", - "permalink": "/ressources/frontend/react/state-et-cycle-de-vie" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-reducers-mdx-68b.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-reducers-mdx-68b.json deleted file mode 100644 index c21cf03..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-reducers-mdx-68b.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "id": "ressources/frontend/react/reducers", - "title": "Le hook useReducer de React", - "description": "Découvrez comment utiliser le hook useReducer de React pour gérer l'état de vos composants de manière plus efficace.", - "source": "@site/docs/ressources/frontend/react/reducers.mdx", - "sourceDirName": "ressources/frontend/react", - "slug": "/ressources/frontend/react/reducers", - "permalink": "/ressources/frontend/react/reducers", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/frontend/react/reducers.mdx", - "tags": [ - { - "inline": true, - "label": "Frontend", - "permalink": "/tags/frontend" - }, - { - "inline": true, - "label": "React", - "permalink": "/tags/react" - }, - { - "inline": true, - "label": "JavaScript/TypeScript", - "permalink": "/tags/java-script-type-script" - }, - { - "inline": true, - "label": "Bibliothèque", - "permalink": "/tags/bibliotheque" - }, - { - "inline": true, - "label": "Interface utilisateur (UI)", - "permalink": "/tags/interface-utilisateur-ui" - } - ], - "version": "current", - "sidebarPosition": 8, - "frontMatter": { - "sidebar_position": 8, - "title": "Le hook useReducer de React", - "description": "Découvrez comment utiliser le hook useReducer de React pour gérer l'état de vos composants de manière plus efficace.", - "tags": [ - "Frontend", - "React", - "JavaScript/TypeScript", - "Bibliothèque", - "Interface utilisateur (UI)" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "Le hook useContext de React", - "permalink": "/ressources/frontend/react/contextes" - }, - "next": { - "title": "🎥 Influenceurs et créateurs de contenu", - "permalink": "/ressources/influenceurs-et-createurs" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-state-et-cycle-de-vie-mdx-719.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-state-et-cycle-de-vie-mdx-719.json deleted file mode 100644 index 2373153..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-state-et-cycle-de-vie-mdx-719.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "id": "ressources/frontend/react/state-et-cycle-de-vie", - "title": "State et cycle de vie", - "description": "Voyons ensemble comment gérer le state et le cycle de vie d'un composant React !", - "source": "@site/docs/ressources/frontend/react/state-et-cycle-de-vie.mdx", - "sourceDirName": "ressources/frontend/react", - "slug": "/ressources/frontend/react/state-et-cycle-de-vie", - "permalink": "/ressources/frontend/react/state-et-cycle-de-vie", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/frontend/react/state-et-cycle-de-vie.mdx", - "tags": [ - { - "inline": true, - "label": "Frontend", - "permalink": "/tags/frontend" - }, - { - "inline": true, - "label": "React", - "permalink": "/tags/react" - }, - { - "inline": true, - "label": "JavaScript/TypeScript", - "permalink": "/tags/java-script-type-script" - }, - { - "inline": true, - "label": "Bibliothèque", - "permalink": "/tags/bibliotheque" - }, - { - "inline": true, - "label": "Interface utilisateur (UI)", - "permalink": "/tags/interface-utilisateur-ui" - } - ], - "version": "current", - "sidebarPosition": 5, - "frontMatter": { - "sidebar_position": 5, - "title": "State et cycle de vie", - "description": "Voyons ensemble comment gérer le state et le cycle de vie d'un composant React !", - "tags": [ - "Frontend", - "React", - "JavaScript/TypeScript", - "Bibliothèque", - "Interface utilisateur (UI)" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "Premier composant", - "permalink": "/ressources/frontend/react/premier-composant" - }, - "next": { - "title": "Les hooks de React", - "permalink": "/ressources/frontend/react/hooks" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-syntaxe-jsx-mdx-e94.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-syntaxe-jsx-mdx-e94.json deleted file mode 100644 index adb6cd5..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-frontend-react-syntaxe-jsx-mdx-e94.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "id": "ressources/frontend/react/syntaxe-jsx", - "title": "Syntaxe JSX", - "description": "Découvrons la syntaxe JSX, un langage de balisage utilisé par React pour décrire l'interface utilisateur.", - "source": "@site/docs/ressources/frontend/react/syntaxe-jsx.mdx", - "sourceDirName": "ressources/frontend/react", - "slug": "/ressources/frontend/react/syntaxe-jsx", - "permalink": "/ressources/frontend/react/syntaxe-jsx", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/frontend/react/syntaxe-jsx.mdx", - "tags": [ - { - "inline": true, - "label": "Frontend", - "permalink": "/tags/frontend" - }, - { - "inline": true, - "label": "React", - "permalink": "/tags/react" - }, - { - "inline": true, - "label": "JavaScript/TypeScript", - "permalink": "/tags/java-script-type-script" - }, - { - "inline": true, - "label": "Bibliothèque", - "permalink": "/tags/bibliotheque" - }, - { - "inline": true, - "label": "Interface utilisateur (UI)", - "permalink": "/tags/interface-utilisateur-ui" - } - ], - "version": "current", - "sidebarPosition": 3, - "frontMatter": { - "sidebar_position": 3, - "title": "Syntaxe JSX", - "description": "Découvrons la syntaxe JSX, un langage de balisage utilisé par React pour décrire l'interface utilisateur.", - "tags": [ - "Frontend", - "React", - "JavaScript/TypeScript", - "Bibliothèque", - "Interface utilisateur (UI)" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "Initialisation", - "permalink": "/ressources/frontend/react/initialiser-un-projet-react" - }, - "next": { - "title": "Premier composant", - "permalink": "/ressources/frontend/react/premier-composant" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-influenceurs-et-createurs-mdx-eae.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-influenceurs-et-createurs-mdx-eae.json deleted file mode 100644 index 63c8e88..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-ressources-influenceurs-et-createurs-mdx-eae.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "ressources/influenceurs-et-createurs", - "title": "🎥 Influenceurs et créateurs de contenu", - "description": "Liste d'influenceurs et créateurs de contenu dans le domaine du développement.", - "source": "@site/docs/ressources/influenceurs-et-createurs.mdx", - "sourceDirName": "ressources", - "slug": "/ressources/influenceurs-et-createurs", - "permalink": "/ressources/influenceurs-et-createurs", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/influenceurs-et-createurs.mdx", - "tags": [], - "version": "current", - "sidebarPosition": 1, - "frontMatter": { - "sidebar_position": 1, - "title": "🎥 Influenceurs et créateurs de contenu", - "description": "Liste d'influenceurs et créateurs de contenu dans le domaine du développement." - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "Le hook useReducer de React", - "permalink": "/ressources/frontend/react/reducers" - }, - "next": { - "title": "🤗 Soutiens et contributeurs", - "permalink": "/soutiens-et-contributeurs" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-soutiens-et-contributeurs-mdx-d64.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-soutiens-et-contributeurs-mdx-d64.json deleted file mode 100644 index 9a441e2..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-soutiens-et-contributeurs-mdx-d64.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "id": "soutiens-et-contributeurs", - "title": "🤗 Soutiens et contributeurs", - "description": "Soutiens et contributeurs de la plateforme Memento Dev.", - "source": "@site/docs/soutiens-et-contributeurs.mdx", - "sourceDirName": ".", - "slug": "/soutiens-et-contributeurs", - "permalink": "/soutiens-et-contributeurs", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/soutiens-et-contributeurs.mdx", - "tags": [], - "version": "current", - "sidebarPosition": 99998, - "frontMatter": { - "sidebar_position": 99998, - "description": "Soutiens et contributeurs de la plateforme Memento Dev." - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "🎥 Influenceurs et créateurs de contenu", - "permalink": "/ressources/influenceurs-et-createurs" - }, - "next": { - "title": "🤝 Contribuer", - "permalink": "/contribuer" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-1-cp-1-mdx-fff.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-1-cp-1-mdx-fff.json deleted file mode 100644 index 5472334..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-1-cp-1-mdx-fff.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "titres-professionnels/archives/DWWM/2018-2023/AT1/CP1", - "title": "CP 1", - "description": "Synthèse de la CP 1 \"Maquetter une application\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).", - "source": "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1.mdx", - "sourceDirName": "titres-professionnels/archives/DWWM/2018-2023/AT1", - "slug": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1.mdx", - "tags": [], - "version": "current", - "sidebarPosition": 1, - "frontMatter": { - "sidebar_position": 1, - "title": "CP 1", - "description": "Synthèse de la CP 1 \"Maquetter une application\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)." - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "Résumé", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/intro" - }, - "next": { - "title": "CP 2", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-1-cp-2-mdx-0eb.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-1-cp-2-mdx-0eb.json deleted file mode 100644 index 2e6ca8b..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-1-cp-2-mdx-0eb.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "titres-professionnels/archives/DWWM/2018-2023/AT1/CP2", - "title": "CP 2", - "description": "Synthèse de la CP 1 \"Réaliser une interface utilisateur web statique et adaptable\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).", - "source": "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2.mdx", - "sourceDirName": "titres-professionnels/archives/DWWM/2018-2023/AT1", - "slug": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2.mdx", - "tags": [], - "version": "current", - "sidebarPosition": 2, - "frontMatter": { - "sidebar_position": 2, - "title": "CP 2", - "description": "Synthèse de la CP 1 \"Réaliser une interface utilisateur web statique et adaptable\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)." - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 1", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1" - }, - "next": { - "title": "CP 3", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-1-cp-3-mdx-675.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-1-cp-3-mdx-675.json deleted file mode 100644 index 51f7c72..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-1-cp-3-mdx-675.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "titres-professionnels/archives/DWWM/2018-2023/AT1/CP3", - "title": "CP 3", - "description": "Synthèse de la CP 3 \"Développer une interface utilisateur web dynamique\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).", - "source": "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3.mdx", - "sourceDirName": "titres-professionnels/archives/DWWM/2018-2023/AT1", - "slug": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3.mdx", - "tags": [], - "version": "current", - "sidebarPosition": 3, - "frontMatter": { - "sidebar_position": 3, - "title": "CP 3", - "description": "Synthèse de la CP 3 \"Développer une interface utilisateur web dynamique\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)." - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 2", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2" - }, - "next": { - "title": "CP 4", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-1-cp-4-mdx-af6.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-1-cp-4-mdx-af6.json deleted file mode 100644 index f747220..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-1-cp-4-mdx-af6.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "titres-professionnels/archives/DWWM/2018-2023/AT1/CP4", - "title": "CP 4", - "description": "Synthèse de la CP 4 \"Réaliser une interface utilisateur avec une solution de gestion de contenu ou e-commerce\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).", - "source": "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4.mdx", - "sourceDirName": "titres-professionnels/archives/DWWM/2018-2023/AT1", - "slug": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4.mdx", - "tags": [], - "version": "current", - "sidebarPosition": 4, - "frontMatter": { - "sidebar_position": 4, - "title": "CP 4", - "description": "Synthèse de la CP 4 \"Réaliser une interface utilisateur avec une solution de gestion de contenu ou e-commerce\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)." - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 3", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3" - }, - "next": { - "title": "CP 5", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-2-cp-5-mdx-bbc.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-2-cp-5-mdx-bbc.json deleted file mode 100644 index a0b7822..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-2-cp-5-mdx-bbc.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "titres-professionnels/archives/DWWM/2018-2023/AT2/CP5", - "title": "CP 5", - "description": "Synthèse de la CP 5 \"Créer une base de données\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).", - "source": "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5.mdx", - "sourceDirName": "titres-professionnels/archives/DWWM/2018-2023/AT2", - "slug": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5.mdx", - "tags": [], - "version": "current", - "sidebarPosition": 5, - "frontMatter": { - "sidebar_position": 5, - "title": "CP 5", - "description": "Synthèse de la CP 5 \"Créer une base de données\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)." - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 4", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4" - }, - "next": { - "title": "CP 6", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-2-cp-6-mdx-dc9.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-2-cp-6-mdx-dc9.json deleted file mode 100644 index f330a5c..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-2-cp-6-mdx-dc9.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "titres-professionnels/archives/DWWM/2018-2023/AT2/CP6", - "title": "CP 6", - "description": "Synthèse de la CP 5 \"Développer les composants d'accès aux données\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).", - "source": "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6.mdx", - "sourceDirName": "titres-professionnels/archives/DWWM/2018-2023/AT2", - "slug": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6.mdx", - "tags": [], - "version": "current", - "sidebarPosition": 6, - "frontMatter": { - "sidebar_position": 6, - "title": "CP 6", - "description": "Synthèse de la CP 5 \"Développer les composants d'accès aux données\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)." - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 5", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5" - }, - "next": { - "title": "CP 7", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-2-cp-7-mdx-b3f.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-2-cp-7-mdx-b3f.json deleted file mode 100644 index d91c946..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-2-cp-7-mdx-b3f.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "titres-professionnels/archives/DWWM/2018-2023/AT2/CP7", - "title": "CP 7", - "description": "Synthèse de la CP 7 \"Développer la partie back-end d'une application web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).", - "source": "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7.mdx", - "sourceDirName": "titres-professionnels/archives/DWWM/2018-2023/AT2", - "slug": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7.mdx", - "tags": [], - "version": "current", - "sidebarPosition": 7, - "frontMatter": { - "sidebar_position": 7, - "title": "CP 7", - "description": "Synthèse de la CP 7 \"Développer la partie back-end d'une application web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)." - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 6", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6" - }, - "next": { - "title": "CP 8", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-2-cp-8-mdx-85e.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-2-cp-8-mdx-85e.json deleted file mode 100644 index 3993444..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-at-2-cp-8-mdx-85e.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "titres-professionnels/archives/DWWM/2018-2023/AT2/CP8", - "title": "CP 8", - "description": "Synthèse de la CP 8 \"Élaborer et mettre en œuvre des composants dans une application de gestion de contenu ou e-commerce\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).", - "source": "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8.mdx", - "sourceDirName": "titres-professionnels/archives/DWWM/2018-2023/AT2", - "slug": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8.mdx", - "tags": [], - "version": "current", - "sidebarPosition": 8, - "frontMatter": { - "sidebar_position": 8, - "title": "CP 8", - "description": "Synthèse de la CP 8 \"Élaborer et mettre en œuvre des composants dans une application de gestion de contenu ou e-commerce\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)." - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 7", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7" - }, - "next": { - "title": "Se préparer pour un TP", - "permalink": "/titres-professionnels/se-preparer" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-intro-mdx-710.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-intro-mdx-710.json deleted file mode 100644 index 8322874..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-archives-dwwm-2018-2023-intro-mdx-710.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "titres-professionnels/archives/DWWM/2018-2023/intro", - "title": "Résumé", - "description": "Résumé du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, expiré depuis septembre 2023).", - "source": "@site/docs/titres-professionnels/archives/DWWM/2018-2023/intro.mdx", - "sourceDirName": "titres-professionnels/archives/DWWM/2018-2023", - "slug": "/titres-professionnels/archives/DWWM/2018-2023/intro", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/intro", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/intro.mdx", - "tags": [], - "version": "current", - "sidebarPosition": 1, - "frontMatter": { - "sidebar_position": 1, - "title": "Résumé", - "description": "Résumé du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, expiré depuis septembre 2023)." - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "🗃️ Archives", - "permalink": "/category/️-archives" - }, - "next": { - "title": "CP 1", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-1-cp-1-mdx-cca.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-1-cp-1-mdx-cca.json deleted file mode 100644 index 7d08365..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-1-cp-1-mdx-cca.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "titres-professionnels/CDA/AT1/CP1", - "title": "CP 1", - "description": "Synthèse de la CP 1 \"Installer et configurer son environnement de travail en fonction du projet\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "source": "@site/docs/titres-professionnels/CDA/AT1/CP1.mdx", - "sourceDirName": "titres-professionnels/CDA/AT1", - "slug": "/titres-professionnels/CDA/AT1/CP1", - "permalink": "/titres-professionnels/CDA/AT1/CP1", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT1/CP1.mdx", - "tags": [ - { - "inline": true, - "label": "CDA", - "permalink": "/tags/cda" - }, - { - "inline": true, - "label": "Environnement de développement", - "permalink": "/tags/environnement-de-developpement" - } - ], - "version": "current", - "sidebarPosition": 1, - "frontMatter": { - "sidebar_position": 1, - "title": "CP 1", - "description": "Synthèse de la CP 1 \"Installer et configurer son environnement de travail en fonction du projet\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "tags": [ - "CDA", - "Environnement de développement" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "Résumé", - "permalink": "/titres-professionnels/CDA/intro" - }, - "next": { - "title": "CP 2", - "permalink": "/titres-professionnels/CDA/AT1/CP2" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-1-cp-2-mdx-fe2.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-1-cp-2-mdx-fe2.json deleted file mode 100644 index e6ca972..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-1-cp-2-mdx-fe2.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "id": "titres-professionnels/CDA/AT1/CP2", - "title": "CP 2", - "description": "Synthèse de la CP 2 \"Développer des interfaces utilisateur\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "source": "@site/docs/titres-professionnels/CDA/AT1/CP2.mdx", - "sourceDirName": "titres-professionnels/CDA/AT1", - "slug": "/titres-professionnels/CDA/AT1/CP2", - "permalink": "/titres-professionnels/CDA/AT1/CP2", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT1/CP2.mdx", - "tags": [ - { - "inline": true, - "label": "CDA", - "permalink": "/tags/cda" - } - ], - "version": "current", - "sidebarPosition": 2, - "frontMatter": { - "sidebar_position": 2, - "title": "CP 2", - "description": "Synthèse de la CP 2 \"Développer des interfaces utilisateur\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "tags": [ - "CDA" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 1", - "permalink": "/titres-professionnels/CDA/AT1/CP1" - }, - "next": { - "title": "CP 3", - "permalink": "/titres-professionnels/CDA/AT1/CP3" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-1-cp-3-mdx-829.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-1-cp-3-mdx-829.json deleted file mode 100644 index 26e621f..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-1-cp-3-mdx-829.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "id": "titres-professionnels/CDA/AT1/CP3", - "title": "CP 3", - "description": "Synthèse de la CP 3 \"Développer des composants métier\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "source": "@site/docs/titres-professionnels/CDA/AT1/CP3.mdx", - "sourceDirName": "titres-professionnels/CDA/AT1", - "slug": "/titres-professionnels/CDA/AT1/CP3", - "permalink": "/titres-professionnels/CDA/AT1/CP3", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT1/CP3.mdx", - "tags": [ - { - "inline": true, - "label": "CDA", - "permalink": "/tags/cda" - } - ], - "version": "current", - "sidebarPosition": 3, - "frontMatter": { - "sidebar_position": 3, - "title": "CP 3", - "description": "Synthèse de la CP 3 \"Développer des composants métier\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "tags": [ - "CDA" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 2", - "permalink": "/titres-professionnels/CDA/AT1/CP2" - }, - "next": { - "title": "CP 4", - "permalink": "/titres-professionnels/CDA/AT1/CP4" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-1-cp-4-mdx-910.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-1-cp-4-mdx-910.json deleted file mode 100644 index e03f9b7..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-1-cp-4-mdx-910.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "id": "titres-professionnels/CDA/AT1/CP4", - "title": "CP 4", - "description": "Synthèse de la CP 4 \"Contribuer à la gestion d’un projet informatique\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "source": "@site/docs/titres-professionnels/CDA/AT1/CP4.mdx", - "sourceDirName": "titres-professionnels/CDA/AT1", - "slug": "/titres-professionnels/CDA/AT1/CP4", - "permalink": "/titres-professionnels/CDA/AT1/CP4", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT1/CP4.mdx", - "tags": [ - { - "inline": true, - "label": "CDA", - "permalink": "/tags/cda" - } - ], - "version": "current", - "sidebarPosition": 4, - "frontMatter": { - "sidebar_position": 4, - "title": "CP 4", - "description": "Synthèse de la CP 4 \"Contribuer à la gestion d’un projet informatique\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "tags": [ - "CDA" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 3", - "permalink": "/titres-professionnels/CDA/AT1/CP3" - }, - "next": { - "title": "CP 5", - "permalink": "/titres-professionnels/CDA/AT2/CP5" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-2-cp-5-mdx-518.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-2-cp-5-mdx-518.json deleted file mode 100644 index 5ab8cda..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-2-cp-5-mdx-518.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "id": "titres-professionnels/CDA/AT2/CP5", - "title": "CP 5", - "description": "Synthèse de la CP 5 \"Analyser les besoins et maquetter une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "source": "@site/docs/titres-professionnels/CDA/AT2/CP5.mdx", - "sourceDirName": "titres-professionnels/CDA/AT2", - "slug": "/titres-professionnels/CDA/AT2/CP5", - "permalink": "/titres-professionnels/CDA/AT2/CP5", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT2/CP5.mdx", - "tags": [ - { - "inline": true, - "label": "CDA", - "permalink": "/tags/cda" - } - ], - "version": "current", - "sidebarPosition": 5, - "frontMatter": { - "sidebar_position": 5, - "title": "CP 5", - "description": "Synthèse de la CP 5 \"Analyser les besoins et maquetter une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "tags": [ - "CDA" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 4", - "permalink": "/titres-professionnels/CDA/AT1/CP4" - }, - "next": { - "title": "CP 6", - "permalink": "/titres-professionnels/CDA/AT2/CP6" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-2-cp-6-mdx-061.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-2-cp-6-mdx-061.json deleted file mode 100644 index 32c3b99..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-2-cp-6-mdx-061.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "id": "titres-professionnels/CDA/AT2/CP6", - "title": "CP 6", - "description": "Synthèse de la CP 6 \"Définir l’architecture logicielle d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "source": "@site/docs/titres-professionnels/CDA/AT2/CP6.mdx", - "sourceDirName": "titres-professionnels/CDA/AT2", - "slug": "/titres-professionnels/CDA/AT2/CP6", - "permalink": "/titres-professionnels/CDA/AT2/CP6", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT2/CP6.mdx", - "tags": [ - { - "inline": true, - "label": "CDA", - "permalink": "/tags/cda" - } - ], - "version": "current", - "sidebarPosition": 6, - "frontMatter": { - "sidebar_position": 6, - "title": "CP 6", - "description": "Synthèse de la CP 6 \"Définir l’architecture logicielle d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "tags": [ - "CDA" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 5", - "permalink": "/titres-professionnels/CDA/AT2/CP5" - }, - "next": { - "title": "CP 7", - "permalink": "/titres-professionnels/CDA/AT2/CP7" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-2-cp-7-mdx-2b6.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-2-cp-7-mdx-2b6.json deleted file mode 100644 index 1522b9d..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-2-cp-7-mdx-2b6.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "id": "titres-professionnels/CDA/AT2/CP7", - "title": "CP 7", - "description": "Synthèse de la CP 7 \"Concevoir et mettre en place une base de données relationnelle\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "source": "@site/docs/titres-professionnels/CDA/AT2/CP7.mdx", - "sourceDirName": "titres-professionnels/CDA/AT2", - "slug": "/titres-professionnels/CDA/AT2/CP7", - "permalink": "/titres-professionnels/CDA/AT2/CP7", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT2/CP7.mdx", - "tags": [ - { - "inline": true, - "label": "CDA", - "permalink": "/tags/cda" - } - ], - "version": "current", - "sidebarPosition": 7, - "frontMatter": { - "sidebar_position": 7, - "title": "CP 7", - "description": "Synthèse de la CP 7 \"Concevoir et mettre en place une base de données relationnelle\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "tags": [ - "CDA" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 6", - "permalink": "/titres-professionnels/CDA/AT2/CP6" - }, - "next": { - "title": "CP 8", - "permalink": "/titres-professionnels/CDA/AT2/CP8" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-2-cp-8-mdx-c00.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-2-cp-8-mdx-c00.json deleted file mode 100644 index 1042bc5..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-2-cp-8-mdx-c00.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "id": "titres-professionnels/CDA/AT2/CP8", - "title": "CP 8", - "description": "Synthèse de la CP 8 \"Développer des composants d’accès aux données SQL et NoSQL\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "source": "@site/docs/titres-professionnels/CDA/AT2/CP8.mdx", - "sourceDirName": "titres-professionnels/CDA/AT2", - "slug": "/titres-professionnels/CDA/AT2/CP8", - "permalink": "/titres-professionnels/CDA/AT2/CP8", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT2/CP8.mdx", - "tags": [ - { - "inline": true, - "label": "CDA", - "permalink": "/tags/cda" - } - ], - "version": "current", - "sidebarPosition": 8, - "frontMatter": { - "sidebar_position": 8, - "title": "CP 8", - "description": "Synthèse de la CP 8 \"Développer des composants d’accès aux données SQL et NoSQL\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "tags": [ - "CDA" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 7", - "permalink": "/titres-professionnels/CDA/AT2/CP7" - }, - "next": { - "title": "CP 9", - "permalink": "/titres-professionnels/CDA/AT3/CP9" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-3-cp-10-mdx-e45.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-3-cp-10-mdx-e45.json deleted file mode 100644 index b5f4ac8..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-3-cp-10-mdx-e45.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "id": "titres-professionnels/CDA/AT3/CP10", - "title": "CP 10", - "description": "Synthèse de la CP 10 \"Préparer et documenter le déploiement d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "source": "@site/docs/titres-professionnels/CDA/AT3/CP10.mdx", - "sourceDirName": "titres-professionnels/CDA/AT3", - "slug": "/titres-professionnels/CDA/AT3/CP10", - "permalink": "/titres-professionnels/CDA/AT3/CP10", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT3/CP10.mdx", - "tags": [ - { - "inline": true, - "label": "CDA", - "permalink": "/tags/cda" - } - ], - "version": "current", - "sidebarPosition": 10, - "frontMatter": { - "sidebar_position": 10, - "title": "CP 10", - "description": "Synthèse de la CP 10 \"Préparer et documenter le déploiement d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "tags": [ - "CDA" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 9", - "permalink": "/titres-professionnels/CDA/AT3/CP9" - }, - "next": { - "title": "CP 11", - "permalink": "/titres-professionnels/CDA/AT3/CP11" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-3-cp-11-mdx-56a.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-3-cp-11-mdx-56a.json deleted file mode 100644 index 552c83b..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-3-cp-11-mdx-56a.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "id": "titres-professionnels/CDA/AT3/CP11", - "title": "CP 11", - "description": "Synthèse de la CP 11 \"Contribuer à la mise en production dans une démarche DevOps\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "source": "@site/docs/titres-professionnels/CDA/AT3/CP11.mdx", - "sourceDirName": "titres-professionnels/CDA/AT3", - "slug": "/titres-professionnels/CDA/AT3/CP11", - "permalink": "/titres-professionnels/CDA/AT3/CP11", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT3/CP11.mdx", - "tags": [ - { - "inline": true, - "label": "CDA", - "permalink": "/tags/cda" - } - ], - "version": "current", - "sidebarPosition": 11, - "frontMatter": { - "sidebar_position": 11, - "title": "CP 11", - "description": "Synthèse de la CP 11 \"Contribuer à la mise en production dans une démarche DevOps\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "tags": [ - "CDA" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 10", - "permalink": "/titres-professionnels/CDA/AT3/CP10" - }, - "next": { - "title": "Résumé", - "permalink": "/titres-professionnels/DWWM/intro" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-3-cp-9-mdx-5a4.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-3-cp-9-mdx-5a4.json deleted file mode 100644 index 62501dc..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-at-3-cp-9-mdx-5a4.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "id": "titres-professionnels/CDA/AT3/CP9", - "title": "CP 9", - "description": "Synthèse de la CP 9 \"Préparer et exécuter les plans de tests d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "source": "@site/docs/titres-professionnels/CDA/AT3/CP9.mdx", - "sourceDirName": "titres-professionnels/CDA/AT3", - "slug": "/titres-professionnels/CDA/AT3/CP9", - "permalink": "/titres-professionnels/CDA/AT3/CP9", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT3/CP9.mdx", - "tags": [ - { - "inline": true, - "label": "CDA", - "permalink": "/tags/cda" - } - ], - "version": "current", - "sidebarPosition": 9, - "frontMatter": { - "sidebar_position": 9, - "title": "CP 9", - "description": "Synthèse de la CP 9 \"Préparer et exécuter les plans de tests d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).", - "tags": [ - "CDA" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 8", - "permalink": "/titres-professionnels/CDA/AT2/CP8" - }, - "next": { - "title": "CP 10", - "permalink": "/titres-professionnels/CDA/AT3/CP10" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-intro-mdx-dbc.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-intro-mdx-dbc.json deleted file mode 100644 index 8501ed9..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-cda-intro-mdx-dbc.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "id": "titres-professionnels/CDA/intro", - "title": "Résumé", - "description": "Résumé du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04, actif depuis décembre 2023).", - "source": "@site/docs/titres-professionnels/CDA/intro.mdx", - "sourceDirName": "titres-professionnels/CDA", - "slug": "/titres-professionnels/CDA/intro", - "permalink": "/titres-professionnels/CDA/intro", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/intro.mdx", - "tags": [ - { - "inline": true, - "label": "CDA", - "permalink": "/tags/cda" - } - ], - "version": "current", - "sidebarPosition": 1, - "frontMatter": { - "sidebar_position": 1, - "title": "Résumé", - "description": "Résumé du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04, actif depuis décembre 2023).", - "tags": [ - "CDA" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "🎓 Titres professionnels", - "permalink": "/category/-titres-professionnels" - }, - "next": { - "title": "CP 1", - "permalink": "/titres-professionnels/CDA/AT1/CP1" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-1-cp-1-mdx-00e.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-1-cp-1-mdx-00e.json deleted file mode 100644 index 4a94841..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-1-cp-1-mdx-00e.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "titres-professionnels/DWWM/AT1/CP1", - "title": "CP 1", - "description": "Synthèse de la CP 1 \"Installer et configurer son environnement de travail en fonction du projet web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).", - "source": "@site/docs/titres-professionnels/DWWM/AT1/CP1.mdx", - "sourceDirName": "titres-professionnels/DWWM/AT1", - "slug": "/titres-professionnels/DWWM/AT1/CP1", - "permalink": "/titres-professionnels/DWWM/AT1/CP1", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/AT1/CP1.mdx", - "tags": [ - { - "inline": true, - "label": "DWWM", - "permalink": "/tags/dwwm" - }, - { - "inline": true, - "label": "Environnement de développement", - "permalink": "/tags/environnement-de-developpement" - } - ], - "version": "current", - "sidebarPosition": 1, - "frontMatter": { - "sidebar_position": 1, - "title": "CP 1", - "description": "Synthèse de la CP 1 \"Installer et configurer son environnement de travail en fonction du projet web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).", - "tags": [ - "DWWM", - "Environnement de développement" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "La soutenance DWWM", - "permalink": "/titres-professionnels/DWWM/soutenance" - }, - "next": { - "title": "CP 2", - "permalink": "/titres-professionnels/DWWM/AT1/CP2" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-1-cp-2-mdx-3c4.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-1-cp-2-mdx-3c4.json deleted file mode 100644 index a8a7250..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-1-cp-2-mdx-3c4.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "id": "titres-professionnels/DWWM/AT1/CP2", - "title": "CP 2", - "description": "Synthèse de la CP 2 \"Maquetter des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).", - "source": "@site/docs/titres-professionnels/DWWM/AT1/CP2.mdx", - "sourceDirName": "titres-professionnels/DWWM/AT1", - "slug": "/titres-professionnels/DWWM/AT1/CP2", - "permalink": "/titres-professionnels/DWWM/AT1/CP2", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/AT1/CP2.mdx", - "tags": [ - { - "inline": true, - "label": "DWWM", - "permalink": "/tags/dwwm" - }, - { - "inline": true, - "label": "Eco-conception", - "permalink": "/tags/eco-conception" - }, - { - "inline": true, - "label": "Accessibilité", - "permalink": "/tags/accessibilite" - }, - { - "inline": true, - "label": "SEO/Référencement naturel", - "permalink": "/tags/seo-referencement-naturel" - }, - { - "inline": true, - "label": "Maquettage", - "permalink": "/tags/maquettage" - }, - { - "inline": true, - "label": "Wireframe", - "permalink": "/tags/wireframe" - }, - { - "inline": true, - "label": "Zoning", - "permalink": "/tags/zoning" - }, - { - "inline": true, - "label": "Front-end", - "permalink": "/tags/front-end" - } - ], - "version": "current", - "sidebarPosition": 2, - "frontMatter": { - "sidebar_position": 2, - "title": "CP 2", - "description": "Synthèse de la CP 2 \"Maquetter des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).", - "tags": [ - "DWWM", - "Eco-conception", - "Accessibilité", - "SEO/Référencement naturel", - "Maquettage", - "Wireframe", - "Zoning", - "Front-end" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 1", - "permalink": "/titres-professionnels/DWWM/AT1/CP1" - }, - "next": { - "title": "CP 3", - "permalink": "/titres-professionnels/DWWM/AT1/CP3" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-1-cp-3-mdx-9bc.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-1-cp-3-mdx-9bc.json deleted file mode 100644 index b4a79ee..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-1-cp-3-mdx-9bc.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "id": "titres-professionnels/DWWM/AT1/CP3", - "title": "CP 3", - "description": "Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).", - "source": "@site/docs/titres-professionnels/DWWM/AT1/CP3.mdx", - "sourceDirName": "titres-professionnels/DWWM/AT1", - "slug": "/titres-professionnels/DWWM/AT1/CP3", - "permalink": "/titres-professionnels/DWWM/AT1/CP3", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/AT1/CP3.mdx", - "tags": [ - { - "inline": true, - "label": "DWWM", - "permalink": "/tags/dwwm" - }, - { - "inline": true, - "label": "Intégration", - "permalink": "/tags/integration" - }, - { - "inline": true, - "label": "Responsive", - "permalink": "/tags/responsive" - }, - { - "inline": true, - "label": "HTML", - "permalink": "/tags/html" - }, - { - "inline": true, - "label": "CSS", - "permalink": "/tags/css" - }, - { - "inline": true, - "label": "Accessibilité", - "permalink": "/tags/accessibilite" - }, - { - "inline": true, - "label": "Éco-conception", - "permalink": "/tags/eco-conception" - }, - { - "inline": true, - "label": "SEO/Référencement naturel", - "permalink": "/tags/seo-referencement-naturel" - }, - { - "inline": true, - "label": "Déploiement", - "permalink": "/tags/deploiement" - }, - { - "inline": true, - "label": "Reverse Proxy", - "permalink": "/tags/reverse-proxy" - }, - { - "inline": true, - "label": "Front-end", - "permalink": "/tags/front-end" - }, - { - "inline": true, - "label": "Serveur web", - "permalink": "/tags/serveur-web" - } - ], - "version": "current", - "sidebarPosition": 3, - "frontMatter": { - "sidebar_position": 3, - "title": "CP 3", - "description": "Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).", - "tags": [ - "DWWM", - "Intégration", - "Responsive", - "HTML", - "CSS", - "Accessibilité", - "Éco-conception", - "SEO/Référencement naturel", - "Déploiement", - "Reverse Proxy", - "Front-end", - "Serveur web" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 2", - "permalink": "/titres-professionnels/DWWM/AT1/CP2" - }, - "next": { - "title": "CP 4", - "permalink": "/titres-professionnels/DWWM/AT1/CP4" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-1-cp-4-mdx-0c9.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-1-cp-4-mdx-0c9.json deleted file mode 100644 index bcc46dd..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-1-cp-4-mdx-0c9.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "id": "titres-professionnels/DWWM/AT1/CP4", - "title": "CP 4", - "description": "Synthèse de la CP 4 \"Développer la partie dynamique des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).", - "source": "@site/docs/titres-professionnels/DWWM/AT1/CP4.mdx", - "sourceDirName": "titres-professionnels/DWWM/AT1", - "slug": "/titres-professionnels/DWWM/AT1/CP4", - "permalink": "/titres-professionnels/DWWM/AT1/CP4", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/AT1/CP4.mdx", - "tags": [ - { - "inline": true, - "label": "DWWM", - "permalink": "/tags/dwwm" - }, - { - "inline": true, - "label": "JavaScript/TypeScript", - "permalink": "/tags/java-script-type-script" - }, - { - "inline": true, - "label": "Front-end", - "permalink": "/tags/front-end" - }, - { - "inline": true, - "label": "Eco-conception", - "permalink": "/tags/eco-conception" - }, - { - "inline": true, - "label": "Accessibilité", - "permalink": "/tags/accessibilite" - }, - { - "inline": true, - "label": "SEO/Référencement naturel", - "permalink": "/tags/seo-referencement-naturel" - } - ], - "version": "current", - "sidebarPosition": 4, - "frontMatter": { - "sidebar_position": 4, - "title": "CP 4", - "description": "Synthèse de la CP 4 \"Développer la partie dynamique des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).", - "tags": [ - "DWWM", - "JavaScript/TypeScript", - "Front-end", - "Eco-conception", - "Accessibilité", - "SEO/Référencement naturel" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 3", - "permalink": "/titres-professionnels/DWWM/AT1/CP3" - }, - "next": { - "title": "CP 5", - "permalink": "/titres-professionnels/DWWM/AT2/CP5" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-2-cp-5-mdx-f21.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-2-cp-5-mdx-f21.json deleted file mode 100644 index 17092de..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-2-cp-5-mdx-f21.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "id": "titres-professionnels/DWWM/AT2/CP5", - "title": "CP 5", - "description": "Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).", - "source": "@site/docs/titres-professionnels/DWWM/AT2/CP5.mdx", - "sourceDirName": "titres-professionnels/DWWM/AT2", - "slug": "/titres-professionnels/DWWM/AT2/CP5", - "permalink": "/titres-professionnels/DWWM/AT2/CP5", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/AT2/CP5.mdx", - "tags": [ - { - "inline": true, - "label": "DWWM", - "permalink": "/tags/dwwm" - }, - { - "inline": true, - "label": "Conception", - "permalink": "/tags/conception" - }, - { - "inline": true, - "label": "Modélisation", - "permalink": "/tags/modelisation" - }, - { - "inline": true, - "label": "Base de données", - "permalink": "/tags/base-de-donnees" - }, - { - "inline": true, - "label": "Merise", - "permalink": "/tags/merise" - }, - { - "inline": true, - "label": "Dictionnaire de Données", - "permalink": "/tags/dictionnaire-de-donnees" - }, - { - "inline": true, - "label": "Modèle Conceptuel de Données (MCD)", - "permalink": "/tags/modele-conceptuel-de-donnees-mcd" - }, - { - "inline": true, - "label": "Modèle Logique de Données (MLD)", - "permalink": "/tags/modele-logique-de-donnees-mld" - }, - { - "inline": true, - "label": "Modèle Relationnel de Données (MRD)", - "permalink": "/tags/modele-relationnel-de-donnees-mrd" - }, - { - "inline": true, - "label": "Modèle Physique de Données (MPD)", - "permalink": "/tags/modele-physique-de-donnees-mpd" - }, - { - "inline": true, - "label": "SQL", - "permalink": "/tags/sql" - }, - { - "inline": true, - "label": "Back-end", - "permalink": "/tags/back-end" - } - ], - "version": "current", - "sidebarPosition": 5, - "frontMatter": { - "sidebar_position": 5, - "title": "CP 5", - "description": "Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).", - "tags": [ - "DWWM", - "Conception", - "Modélisation", - "Base de données", - "Merise", - "Dictionnaire de Données", - "Modèle Conceptuel de Données (MCD)", - "Modèle Logique de Données (MLD)", - "Modèle Relationnel de Données (MRD)", - "Modèle Physique de Données (MPD)", - "SQL", - "Back-end" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 4", - "permalink": "/titres-professionnels/DWWM/AT1/CP4" - }, - "next": { - "title": "CP 6", - "permalink": "/titres-professionnels/DWWM/AT2/CP6" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-2-cp-6-mdx-626.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-2-cp-6-mdx-626.json deleted file mode 100644 index ac353c6..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-2-cp-6-mdx-626.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "id": "titres-professionnels/DWWM/AT2/CP6", - "title": "CP 6", - "description": "Synthèse de la CP 6 \"Développer des composants d'accès aux données SQL et NoSQL\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).", - "source": "@site/docs/titres-professionnels/DWWM/AT2/CP6.mdx", - "sourceDirName": "titres-professionnels/DWWM/AT2", - "slug": "/titres-professionnels/DWWM/AT2/CP6", - "permalink": "/titres-professionnels/DWWM/AT2/CP6", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/AT2/CP6.mdx", - "tags": [ - { - "inline": true, - "label": "DWWM", - "permalink": "/tags/dwwm" - }, - { - "inline": true, - "label": "Base de données", - "permalink": "/tags/base-de-donnees" - }, - { - "inline": true, - "label": "SQL", - "permalink": "/tags/sql" - }, - { - "inline": true, - "label": "Back-end", - "permalink": "/tags/back-end" - }, - { - "inline": true, - "label": "ORM/ODM", - "permalink": "/tags/orm-odm" - }, - { - "inline": true, - "label": "Sécurité", - "permalink": "/tags/securite" - }, - { - "inline": true, - "label": "Chiffrement", - "permalink": "/tags/chiffrement" - }, - { - "inline": true, - "label": "Hachage", - "permalink": "/tags/hachage" - } - ], - "version": "current", - "sidebarPosition": 6, - "frontMatter": { - "sidebar_position": 6, - "title": "CP 6", - "description": "Synthèse de la CP 6 \"Développer des composants d'accès aux données SQL et NoSQL\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).", - "tags": [ - "DWWM", - "Base de données", - "SQL", - "Back-end", - "ORM/ODM", - "Sécurité", - "Chiffrement", - "Hachage" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 5", - "permalink": "/titres-professionnels/DWWM/AT2/CP5" - }, - "next": { - "title": "CP 7", - "permalink": "/titres-professionnels/DWWM/AT2/CP7" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-2-cp-7-mdx-4bf.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-2-cp-7-mdx-4bf.json deleted file mode 100644 index 63fcb92..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-2-cp-7-mdx-4bf.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "id": "titres-professionnels/DWWM/AT2/CP7", - "title": "CP 7", - "description": "Synthèse de la CP 7 \"Développer des composants métier coté serveur\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).", - "source": "@site/docs/titres-professionnels/DWWM/AT2/CP7.mdx", - "sourceDirName": "titres-professionnels/DWWM/AT2", - "slug": "/titres-professionnels/DWWM/AT2/CP7", - "permalink": "/titres-professionnels/DWWM/AT2/CP7", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/AT2/CP7.mdx", - "tags": [ - { - "inline": true, - "label": "DWWM", - "permalink": "/tags/dwwm" - }, - { - "inline": true, - "label": "Architecture", - "permalink": "/tags/architecture" - }, - { - "inline": true, - "label": "Design Pattern", - "permalink": "/tags/design-pattern" - }, - { - "inline": true, - "label": "Back-end", - "permalink": "/tags/back-end" - }, - { - "inline": true, - "label": "Sécurité", - "permalink": "/tags/securite" - }, - { - "inline": true, - "label": "Tests", - "permalink": "/tags/tests" - } - ], - "version": "current", - "sidebarPosition": 7, - "frontMatter": { - "sidebar_position": 7, - "title": "CP 7", - "description": "Synthèse de la CP 7 \"Développer des composants métier coté serveur\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).", - "tags": [ - "DWWM", - "Architecture", - "Design Pattern", - "Back-end", - "Sécurité", - "Tests" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 6", - "permalink": "/titres-professionnels/DWWM/AT2/CP6" - }, - "next": { - "title": "CP 8", - "permalink": "/titres-professionnels/DWWM/AT2/CP8" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-2-cp-8-mdx-807.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-2-cp-8-mdx-807.json deleted file mode 100644 index 21fb807..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-at-2-cp-8-mdx-807.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "id": "titres-professionnels/DWWM/AT2/CP8", - "title": "CP 8", - "description": "Synthèse de la CP 8 \"Documenter le déploiement d'une application dynamique web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).", - "source": "@site/docs/titres-professionnels/DWWM/AT2/CP8.mdx", - "sourceDirName": "titres-professionnels/DWWM/AT2", - "slug": "/titres-professionnels/DWWM/AT2/CP8", - "permalink": "/titres-professionnels/DWWM/AT2/CP8", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/AT2/CP8.mdx", - "tags": [ - { - "inline": true, - "label": "DWWM", - "permalink": "/tags/dwwm" - }, - { - "inline": true, - "label": "Déploiement", - "permalink": "/tags/deploiement" - }, - { - "inline": true, - "label": "Back-end", - "permalink": "/tags/back-end" - }, - { - "inline": true, - "label": "Reverse Proxy", - "permalink": "/tags/reverse-proxy" - }, - { - "inline": true, - "label": "Serveur web", - "permalink": "/tags/serveur-web" - } - ], - "version": "current", - "sidebarPosition": 8, - "frontMatter": { - "sidebar_position": 8, - "title": "CP 8", - "description": "Synthèse de la CP 8 \"Documenter le déploiement d'une application dynamique web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).", - "tags": [ - "DWWM", - "Déploiement", - "Back-end", - "Reverse Proxy", - "Serveur web" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 7", - "permalink": "/titres-professionnels/DWWM/AT2/CP7" - }, - "next": { - "title": "🗃️ Archives", - "permalink": "/category/️-archives" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-intro-mdx-1f0.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-intro-mdx-1f0.json deleted file mode 100644 index d77051b..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-intro-mdx-1f0.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "id": "titres-professionnels/DWWM/intro", - "title": "Résumé", - "description": "Résumé du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04, actif depuis septembre 2023).", - "source": "@site/docs/titres-professionnels/DWWM/intro.mdx", - "sourceDirName": "titres-professionnels/DWWM", - "slug": "/titres-professionnels/DWWM/intro", - "permalink": "/titres-professionnels/DWWM/intro", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/intro.mdx", - "tags": [ - { - "inline": true, - "label": "DWWM", - "permalink": "/tags/dwwm" - } - ], - "version": "current", - "sidebarPosition": 1, - "frontMatter": { - "sidebar_position": 1, - "title": "Résumé", - "description": "Résumé du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04, actif depuis septembre 2023).", - "tags": [ - "DWWM" - ] - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 11", - "permalink": "/titres-professionnels/CDA/AT3/CP11" - }, - "next": { - "title": "La soutenance DWWM", - "permalink": "/titres-professionnels/DWWM/soutenance" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-soutenance-mdx-b38.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-soutenance-mdx-b38.json deleted file mode 100644 index bbcd140..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-dwwm-soutenance-mdx-b38.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "titres-professionnels/DWWM/soutenance", - "title": "La soutenance DWWM", - "description": "Tu prépares un TP DWWM et tu te demandes à quoi t'attendre pour la soutenance ? Voici quelques conseils pour te préparer efficacement.", - "source": "@site/docs/titres-professionnels/DWWM/soutenance.mdx", - "sourceDirName": "titres-professionnels/DWWM", - "slug": "/titres-professionnels/DWWM/soutenance", - "permalink": "/titres-professionnels/DWWM/soutenance", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/soutenance.mdx", - "tags": [], - "version": "current", - "sidebarPosition": 2, - "frontMatter": { - "sidebar_position": 2, - "title": "La soutenance DWWM", - "description": "Tu prépares un TP DWWM et tu te demandes à quoi t'attendre pour la soutenance ? Voici quelques conseils pour te préparer efficacement." - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "Résumé", - "permalink": "/titres-professionnels/DWWM/intro" - }, - "next": { - "title": "CP 1", - "permalink": "/titres-professionnels/DWWM/AT1/CP1" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-retours-mdx-0ee.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-retours-mdx-0ee.json deleted file mode 100644 index 2acd976..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-retours-mdx-0ee.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "titres-professionnels/retours", - "title": "Retours d'expériences", - "description": "Découvre les témoignages de candidats et jury sur leur soutenance de titre professionnel : leurs ressentis avant, pendant et après leur passage devant le jury.", - "source": "@site/docs/titres-professionnels/retours.mdx", - "sourceDirName": "titres-professionnels", - "slug": "/titres-professionnels/retours", - "permalink": "/titres-professionnels/retours", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/retours.mdx", - "tags": [], - "version": "current", - "sidebarPosition": 99999, - "frontMatter": { - "sidebar_position": 99999, - "title": "Retours d'expériences", - "description": "Découvre les témoignages de candidats et jury sur leur soutenance de titre professionnel : leurs ressentis avant, pendant et après leur passage devant le jury." - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "Se préparer pour un TP", - "permalink": "/titres-professionnels/se-preparer" - }, - "next": { - "title": "💽 Bases de données", - "permalink": "/category/-bases-de-données" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-se-preparer-mdx-c72.json b/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-se-preparer-mdx-c72.json deleted file mode 100644 index 4dc2cc4..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-titres-professionnels-se-preparer-mdx-c72.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "titres-professionnels/se-preparer", - "title": "Se préparer pour un TP", - "description": "Tu prépares un titre professionnel et tu te demandes comment bien t'y préparer ? Jette donc un oeil !", - "source": "@site/docs/titres-professionnels/se-preparer.mdx", - "sourceDirName": "titres-professionnels", - "slug": "/titres-professionnels/se-preparer", - "permalink": "/titres-professionnels/se-preparer", - "draft": false, - "unlisted": false, - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/se-preparer.mdx", - "tags": [], - "version": "current", - "sidebarPosition": 9999, - "frontMatter": { - "sidebar_position": 9999, - "title": "Se préparer pour un TP", - "description": "Tu prépares un titre professionnel et tu te demandes comment bien t'y préparer ? Jette donc un oeil !" - }, - "sidebar": "tutorialSidebar", - "previous": { - "title": "CP 8", - "permalink": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8" - }, - "next": { - "title": "Retours d'expériences", - "permalink": "/titres-professionnels/retours" - } -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-pages/default/__plugin.json b/old/.docusaurus/docusaurus-plugin-content-pages/default/__plugin.json deleted file mode 100644 index b141f71..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-pages/default/__plugin.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "docusaurus-plugin-content-pages", - "id": "default" -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-content-pages/default/site-src-pages-markdown-page-md-393.json b/old/.docusaurus/docusaurus-plugin-content-pages/default/site-src-pages-markdown-page-md-393.json deleted file mode 100644 index 152a2bc..0000000 --- a/old/.docusaurus/docusaurus-plugin-content-pages/default/site-src-pages-markdown-page-md-393.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "mdx", - "permalink": "/markdown-page", - "source": "@site/src/pages/markdown-page.md", - "title": "Markdown page example", - "description": "You don't need React to write simple standalone pages.", - "frontMatter": { - "title": "Markdown page example" - }, - "unlisted": false -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-debug/default/__plugin.json b/old/.docusaurus/docusaurus-plugin-debug/default/__plugin.json deleted file mode 100644 index 21c2cfd..0000000 --- a/old/.docusaurus/docusaurus-plugin-debug/default/__plugin.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "docusaurus-plugin-debug", - "id": "default" -} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus-plugin-debug/default/p/docusaurus-debug-content-0d5.json b/old/.docusaurus/docusaurus-plugin-debug/default/p/docusaurus-debug-content-0d5.json deleted file mode 100644 index c871466..0000000 --- a/old/.docusaurus/docusaurus-plugin-debug/default/p/docusaurus-debug-content-0d5.json +++ /dev/null @@ -1 +0,0 @@ -{"allContent":{"docusaurus-plugin-content-docs":{"default":{"loadedVersions":[{"versionName":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","path":"/","tagsPath":"/tags","editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs","editUrlLocalized":"https://github.com/preparation-tp/memento-dev/tree/main/i18n/fr/docusaurus-plugin-content-docs/current","isLast":true,"routePriority":-1,"sidebarFilePath":"/Users/jack/Projets/Perso/memento-dev/sidebars.ts","contentPath":"/Users/jack/Projets/Perso/memento-dev/docs","contentPathLocalized":"/Users/jack/Projets/Perso/memento-dev/i18n/fr/docusaurus-plugin-content-docs/current","docs":[{"id":"contribuer","title":"🤝 Contribuer","description":"Tu souhaites contribuer à Memento Dev ? C'est par ici !","source":"@site/docs/contribuer.mdx","sourceDirName":".","slug":"/contribuer","permalink":"/contribuer","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/contribuer.mdx","tags":[],"version":"current","sidebarPosition":99999,"frontMatter":{"sidebar_position":99999,"description":"Tu souhaites contribuer à Memento Dev ? C'est par ici !"},"sidebar":"tutorialSidebar","previous":{"title":"🤗 Soutiens et contributeurs","permalink":"/soutiens-et-contributeurs"}},{"id":"glossaires/titres-professionnel","title":"Titres professionnels","description":"Définitions des termes utilisés dans le cadre des titres professionnels.","source":"@site/docs/glossaires/titres-professionnel.mdx","sourceDirName":"glossaires","slug":"/glossaires/titres-professionnel","permalink":"/glossaires/titres-professionnel","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/glossaires/titres-professionnel.mdx","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"title":"Titres professionnels","description":"Définitions des termes utilisés dans le cadre des titres professionnels."},"sidebar":"tutorialSidebar","previous":{"title":"📜 Préambule","permalink":"/intro"},"next":{"title":"🎓 Titres professionnels","permalink":"/category/-titres-professionnels"}},{"id":"intro","title":"📜 Préambule","description":"Memento Dev, une plateforme open-source de partage de connaissances en développement !","source":"@site/docs/intro.mdx","sourceDirName":".","slug":"/intro","permalink":"/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/intro.mdx","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"description":"Memento Dev, une plateforme open-source de partage de connaissances en développement !"},"sidebar":"tutorialSidebar","next":{"title":"Titres professionnels","permalink":"/glossaires/titres-professionnel"}},{"id":"ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","source":"@site/docs/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees.mdx","sourceDirName":"ressources/bases-de-donnees/modelisation","slug":"/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","permalink":"/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees.mdx","tags":[{"inline":true,"label":"Conception","permalink":"/tags/conception"},{"inline":true,"label":"Modélisation","permalink":"/tags/modelisation"},{"inline":true,"label":"Base de données","permalink":"/tags/base-de-donnees"},{"inline":true,"label":"Merise","permalink":"/tags/merise"},{"inline":true,"label":"Dictionnaire de Données","permalink":"/tags/dictionnaire-de-donnees"},{"inline":true,"label":"Modèle Conceptuel de Données (MCD)","permalink":"/tags/modele-conceptuel-de-donnees-mcd"},{"inline":true,"label":"Modèle Logique de Données (MLD)","permalink":"/tags/modele-logique-de-donnees-mld"},{"inline":true,"label":"Modèle Relationnel de Données (MRD)","permalink":"/tags/modele-relationnel-de-donnees-mrd"},{"inline":true,"label":"Modèle Physique de Données (MPD)","permalink":"/tags/modele-physique-de-donnees-mpd"},{"inline":true,"label":"SQL","permalink":"/tags/sql"},{"inline":true,"label":"DWWM","permalink":"/tags/dwwm"},{"inline":true,"label":"CDA","permalink":"/tags/cda"}],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","tags":["Conception","Modélisation","Base de données","Merise","Dictionnaire de Données","Modèle Conceptuel de Données (MCD)","Modèle Logique de Données (MLD)","Modèle Relationnel de Données (MRD)","Modèle Physique de Données (MPD)","SQL","DWWM","CDA"]},"sidebar":"tutorialSidebar","previous":{"title":"Modélisation avec Merise","permalink":"/ressources/bases-de-donnees/modelisation/merise"},"next":{"title":"Création du MCD","permalink":"/ressources/bases-de-donnees/modelisation/mcd"}},{"id":"ressources/bases-de-donnees/modelisation/mcd","title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","source":"@site/docs/ressources/bases-de-donnees/modelisation/mcd.mdx","sourceDirName":"ressources/bases-de-donnees/modelisation","slug":"/ressources/bases-de-donnees/modelisation/mcd","permalink":"/ressources/bases-de-donnees/modelisation/mcd","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/bases-de-donnees/modelisation/mcd.mdx","tags":[{"inline":true,"label":"Conception","permalink":"/tags/conception"},{"inline":true,"label":"Modélisation","permalink":"/tags/modelisation"},{"inline":true,"label":"Base de données","permalink":"/tags/base-de-donnees"},{"inline":true,"label":"Merise","permalink":"/tags/merise"},{"inline":true,"label":"Dictionnaire de Données","permalink":"/tags/dictionnaire-de-donnees"},{"inline":true,"label":"Modèle Conceptuel de Données (MCD)","permalink":"/tags/modele-conceptuel-de-donnees-mcd"},{"inline":true,"label":"Modèle Logique de Données (MLD)","permalink":"/tags/modele-logique-de-donnees-mld"},{"inline":true,"label":"Modèle Relationnel de Données (MRD)","permalink":"/tags/modele-relationnel-de-donnees-mrd"},{"inline":true,"label":"Modèle Physique de Données (MPD)","permalink":"/tags/modele-physique-de-donnees-mpd"},{"inline":true,"label":"SQL","permalink":"/tags/sql"},{"inline":true,"label":"DWWM","permalink":"/tags/dwwm"},{"inline":true,"label":"CDA","permalink":"/tags/cda"}],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"title":"Création du MCD","description":"Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données.","tags":["Conception","Modélisation","Base de données","Merise","Dictionnaire de Données","Modèle Conceptuel de Données (MCD)","Modèle Logique de Données (MLD)","Modèle Relationnel de Données (MRD)","Modèle Physique de Données (MPD)","SQL","DWWM","CDA"]},"sidebar":"tutorialSidebar","previous":{"title":"Création du MCD","permalink":"/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees"},"next":{"title":"🌈 Frontend","permalink":"/category/-frontend"}},{"id":"ressources/bases-de-donnees/modelisation/merise","title":"Modélisation avec Merise","description":"Voyons ensemble comment on peut modéliser une base de données avec Merise !","source":"@site/docs/ressources/bases-de-donnees/modelisation/merise.mdx","sourceDirName":"ressources/bases-de-donnees/modelisation","slug":"/ressources/bases-de-donnees/modelisation/merise","permalink":"/ressources/bases-de-donnees/modelisation/merise","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/bases-de-donnees/modelisation/merise.mdx","tags":[{"inline":true,"label":"Conception","permalink":"/tags/conception"},{"inline":true,"label":"Modélisation","permalink":"/tags/modelisation"},{"inline":true,"label":"Base de données","permalink":"/tags/base-de-donnees"},{"inline":true,"label":"Merise","permalink":"/tags/merise"},{"inline":true,"label":"Dictionnaire de Données","permalink":"/tags/dictionnaire-de-donnees"},{"inline":true,"label":"Modèle Conceptuel de Données (MCD)","permalink":"/tags/modele-conceptuel-de-donnees-mcd"},{"inline":true,"label":"Modèle Logique de Données (MLD)","permalink":"/tags/modele-logique-de-donnees-mld"},{"inline":true,"label":"Modèle Relationnel de Données (MRD)","permalink":"/tags/modele-relationnel-de-donnees-mrd"},{"inline":true,"label":"Modèle Physique de Données (MPD)","permalink":"/tags/modele-physique-de-donnees-mpd"},{"inline":true,"label":"SQL","permalink":"/tags/sql"},{"inline":true,"label":"DWWM","permalink":"/tags/dwwm"}],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"title":"Modélisation avec Merise","description":"Voyons ensemble comment on peut modéliser une base de données avec Merise !","tags":["Conception","Modélisation","Base de données","Merise","Dictionnaire de Données","Modèle Conceptuel de Données (MCD)","Modèle Logique de Données (MLD)","Modèle Relationnel de Données (MRD)","Modèle Physique de Données (MPD)","SQL","DWWM"]},"sidebar":"tutorialSidebar","previous":{"title":"💽 Bases de données","permalink":"/category/-bases-de-données"},"next":{"title":"Création du MCD","permalink":"/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees"}},{"id":"ressources/frontend/react/contextes","title":"Le hook useContext de React","description":"Découvrez comment utiliser le hook useContext de React pour gérer les contextes dans vos applications.","source":"@site/docs/ressources/frontend/react/contextes.mdx","sourceDirName":"ressources/frontend/react","slug":"/ressources/frontend/react/contextes","permalink":"/ressources/frontend/react/contextes","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/frontend/react/contextes.mdx","tags":[{"inline":true,"label":"Frontend","permalink":"/tags/frontend"},{"inline":true,"label":"React","permalink":"/tags/react"},{"inline":true,"label":"JavaScript/TypeScript","permalink":"/tags/java-script-type-script"},{"inline":true,"label":"Bibliothèque","permalink":"/tags/bibliotheque"},{"inline":true,"label":"Interface utilisateur (UI)","permalink":"/tags/interface-utilisateur-ui"}],"version":"current","sidebarPosition":7,"frontMatter":{"sidebar_position":7,"title":"Le hook useContext de React","description":"Découvrez comment utiliser le hook useContext de React pour gérer les contextes dans vos applications.","tags":["Frontend","React","JavaScript/TypeScript","Bibliothèque","Interface utilisateur (UI)"]},"sidebar":"tutorialSidebar","previous":{"title":"Les hooks de React","permalink":"/ressources/frontend/react/hooks"},"next":{"title":"Le hook useReducer de React","permalink":"/ressources/frontend/react/reducers"}},{"id":"ressources/frontend/react/hooks","title":"Les hooks de React","description":"Découvre les hooks de React, une fonctionnalité qui te permet de gérer le state et le cycle de vie de tes composants fonctionnels.","source":"@site/docs/ressources/frontend/react/hooks.mdx","sourceDirName":"ressources/frontend/react","slug":"/ressources/frontend/react/hooks","permalink":"/ressources/frontend/react/hooks","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/frontend/react/hooks.mdx","tags":[{"inline":true,"label":"Frontend","permalink":"/tags/frontend"},{"inline":true,"label":"React","permalink":"/tags/react"},{"inline":true,"label":"JavaScript/TypeScript","permalink":"/tags/java-script-type-script"},{"inline":true,"label":"Bibliothèque","permalink":"/tags/bibliotheque"},{"inline":true,"label":"Interface utilisateur (UI)","permalink":"/tags/interface-utilisateur-ui"}],"version":"current","sidebarPosition":6,"frontMatter":{"sidebar_position":6,"title":"Les hooks de React","description":"Découvre les hooks de React, une fonctionnalité qui te permet de gérer le state et le cycle de vie de tes composants fonctionnels.","tags":["Frontend","React","JavaScript/TypeScript","Bibliothèque","Interface utilisateur (UI)"]},"sidebar":"tutorialSidebar","previous":{"title":"State et cycle de vie","permalink":"/ressources/frontend/react/state-et-cycle-de-vie"},"next":{"title":"Le hook useContext de React","permalink":"/ressources/frontend/react/contextes"}},{"id":"ressources/frontend/react/initialiser-un-projet-react","title":"Initialisation","description":"Initialisons un nouveau projet React, avec ou sans TypeScript.","source":"@site/docs/ressources/frontend/react/initialiser-un-projet-react.mdx","sourceDirName":"ressources/frontend/react","slug":"/ressources/frontend/react/initialiser-un-projet-react","permalink":"/ressources/frontend/react/initialiser-un-projet-react","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/frontend/react/initialiser-un-projet-react.mdx","tags":[{"inline":true,"label":"Frontend","permalink":"/tags/frontend"},{"inline":true,"label":"React","permalink":"/tags/react"},{"inline":true,"label":"JavaScript/TypeScript","permalink":"/tags/java-script-type-script"},{"inline":true,"label":"Bibliothèque","permalink":"/tags/bibliotheque"},{"inline":true,"label":"Interface utilisateur (UI)","permalink":"/tags/interface-utilisateur-ui"},{"inline":true,"label":"Vite","permalink":"/tags/vite"},{"inline":true,"label":"Vike","permalink":"/tags/vike"},{"inline":true,"label":"SSR","permalink":"/tags/ssr"},{"inline":true,"label":"SSG","permalink":"/tags/ssg"},{"inline":true,"label":"CSR","permalink":"/tags/csr"}],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"title":"Initialisation","description":"Initialisons un nouveau projet React, avec ou sans TypeScript.","tags":["Frontend","React","JavaScript/TypeScript","Bibliothèque","Interface utilisateur (UI)","Vite","Vike","SSR","SSG","CSR"]},"sidebar":"tutorialSidebar","previous":{"title":"Introduction à React","permalink":"/ressources/frontend/react/intro"},"next":{"title":"Syntaxe JSX","permalink":"/ressources/frontend/react/syntaxe-jsx"}},{"id":"ressources/frontend/react/intro","title":"Introduction à React","description":"Parlons un peu de React, ce qu'il est, ce qu'il fait et pourquoi il est si populaire.","source":"@site/docs/ressources/frontend/react/intro.mdx","sourceDirName":"ressources/frontend/react","slug":"/ressources/frontend/react/intro","permalink":"/ressources/frontend/react/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/frontend/react/intro.mdx","tags":[{"inline":true,"label":"Frontend","permalink":"/tags/frontend"},{"inline":true,"label":"React","permalink":"/tags/react"},{"inline":true,"label":"JavaScript/TypeScript","permalink":"/tags/java-script-type-script"},{"inline":true,"label":"Bibliothèque","permalink":"/tags/bibliotheque"},{"inline":true,"label":"Interface utilisateur (UI)","permalink":"/tags/interface-utilisateur-ui"}],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"title":"Introduction à React","description":"Parlons un peu de React, ce qu'il est, ce qu'il fait et pourquoi il est si populaire.","tags":["Frontend","React","JavaScript/TypeScript","Bibliothèque","Interface utilisateur (UI)"]},"sidebar":"tutorialSidebar","previous":{"title":"🌈 Frontend","permalink":"/category/-frontend"},"next":{"title":"Initialisation","permalink":"/ressources/frontend/react/initialiser-un-projet-react"}},{"id":"ressources/frontend/react/premier-composant","title":"Premier composant","description":"Voyons ensemble comment notre premier composant React !","source":"@site/docs/ressources/frontend/react/premier-composant.mdx","sourceDirName":"ressources/frontend/react","slug":"/ressources/frontend/react/premier-composant","permalink":"/ressources/frontend/react/premier-composant","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/frontend/react/premier-composant.mdx","tags":[{"inline":true,"label":"Frontend","permalink":"/tags/frontend"},{"inline":true,"label":"React","permalink":"/tags/react"},{"inline":true,"label":"JavaScript/TypeScript","permalink":"/tags/java-script-type-script"},{"inline":true,"label":"Bibliothèque","permalink":"/tags/bibliotheque"},{"inline":true,"label":"Interface utilisateur (UI)","permalink":"/tags/interface-utilisateur-ui"}],"version":"current","sidebarPosition":4,"frontMatter":{"sidebar_position":4,"title":"Premier composant","description":"Voyons ensemble comment notre premier composant React !","tags":["Frontend","React","JavaScript/TypeScript","Bibliothèque","Interface utilisateur (UI)"]},"sidebar":"tutorialSidebar","previous":{"title":"Syntaxe JSX","permalink":"/ressources/frontend/react/syntaxe-jsx"},"next":{"title":"State et cycle de vie","permalink":"/ressources/frontend/react/state-et-cycle-de-vie"}},{"id":"ressources/frontend/react/reducers","title":"Le hook useReducer de React","description":"Découvrez comment utiliser le hook useReducer de React pour gérer l'état de vos composants de manière plus efficace.","source":"@site/docs/ressources/frontend/react/reducers.mdx","sourceDirName":"ressources/frontend/react","slug":"/ressources/frontend/react/reducers","permalink":"/ressources/frontend/react/reducers","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/frontend/react/reducers.mdx","tags":[{"inline":true,"label":"Frontend","permalink":"/tags/frontend"},{"inline":true,"label":"React","permalink":"/tags/react"},{"inline":true,"label":"JavaScript/TypeScript","permalink":"/tags/java-script-type-script"},{"inline":true,"label":"Bibliothèque","permalink":"/tags/bibliotheque"},{"inline":true,"label":"Interface utilisateur (UI)","permalink":"/tags/interface-utilisateur-ui"}],"version":"current","sidebarPosition":8,"frontMatter":{"sidebar_position":8,"title":"Le hook useReducer de React","description":"Découvrez comment utiliser le hook useReducer de React pour gérer l'état de vos composants de manière plus efficace.","tags":["Frontend","React","JavaScript/TypeScript","Bibliothèque","Interface utilisateur (UI)"]},"sidebar":"tutorialSidebar","previous":{"title":"Le hook useContext de React","permalink":"/ressources/frontend/react/contextes"},"next":{"title":"🎥 Influenceurs et créateurs de contenu","permalink":"/ressources/influenceurs-et-createurs"}},{"id":"ressources/frontend/react/state-et-cycle-de-vie","title":"State et cycle de vie","description":"Voyons ensemble comment gérer le state et le cycle de vie d'un composant React !","source":"@site/docs/ressources/frontend/react/state-et-cycle-de-vie.mdx","sourceDirName":"ressources/frontend/react","slug":"/ressources/frontend/react/state-et-cycle-de-vie","permalink":"/ressources/frontend/react/state-et-cycle-de-vie","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/frontend/react/state-et-cycle-de-vie.mdx","tags":[{"inline":true,"label":"Frontend","permalink":"/tags/frontend"},{"inline":true,"label":"React","permalink":"/tags/react"},{"inline":true,"label":"JavaScript/TypeScript","permalink":"/tags/java-script-type-script"},{"inline":true,"label":"Bibliothèque","permalink":"/tags/bibliotheque"},{"inline":true,"label":"Interface utilisateur (UI)","permalink":"/tags/interface-utilisateur-ui"}],"version":"current","sidebarPosition":5,"frontMatter":{"sidebar_position":5,"title":"State et cycle de vie","description":"Voyons ensemble comment gérer le state et le cycle de vie d'un composant React !","tags":["Frontend","React","JavaScript/TypeScript","Bibliothèque","Interface utilisateur (UI)"]},"sidebar":"tutorialSidebar","previous":{"title":"Premier composant","permalink":"/ressources/frontend/react/premier-composant"},"next":{"title":"Les hooks de React","permalink":"/ressources/frontend/react/hooks"}},{"id":"ressources/frontend/react/syntaxe-jsx","title":"Syntaxe JSX","description":"Découvrons la syntaxe JSX, un langage de balisage utilisé par React pour décrire l'interface utilisateur.","source":"@site/docs/ressources/frontend/react/syntaxe-jsx.mdx","sourceDirName":"ressources/frontend/react","slug":"/ressources/frontend/react/syntaxe-jsx","permalink":"/ressources/frontend/react/syntaxe-jsx","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/frontend/react/syntaxe-jsx.mdx","tags":[{"inline":true,"label":"Frontend","permalink":"/tags/frontend"},{"inline":true,"label":"React","permalink":"/tags/react"},{"inline":true,"label":"JavaScript/TypeScript","permalink":"/tags/java-script-type-script"},{"inline":true,"label":"Bibliothèque","permalink":"/tags/bibliotheque"},{"inline":true,"label":"Interface utilisateur (UI)","permalink":"/tags/interface-utilisateur-ui"}],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"title":"Syntaxe JSX","description":"Découvrons la syntaxe JSX, un langage de balisage utilisé par React pour décrire l'interface utilisateur.","tags":["Frontend","React","JavaScript/TypeScript","Bibliothèque","Interface utilisateur (UI)"]},"sidebar":"tutorialSidebar","previous":{"title":"Initialisation","permalink":"/ressources/frontend/react/initialiser-un-projet-react"},"next":{"title":"Premier composant","permalink":"/ressources/frontend/react/premier-composant"}},{"id":"ressources/influenceurs-et-createurs","title":"🎥 Influenceurs et créateurs de contenu","description":"Liste d'influenceurs et créateurs de contenu dans le domaine du développement.","source":"@site/docs/ressources/influenceurs-et-createurs.mdx","sourceDirName":"ressources","slug":"/ressources/influenceurs-et-createurs","permalink":"/ressources/influenceurs-et-createurs","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/ressources/influenceurs-et-createurs.mdx","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"title":"🎥 Influenceurs et créateurs de contenu","description":"Liste d'influenceurs et créateurs de contenu dans le domaine du développement."},"sidebar":"tutorialSidebar","previous":{"title":"Le hook useReducer de React","permalink":"/ressources/frontend/react/reducers"},"next":{"title":"🤗 Soutiens et contributeurs","permalink":"/soutiens-et-contributeurs"}},{"id":"soutiens-et-contributeurs","title":"🤗 Soutiens et contributeurs","description":"Soutiens et contributeurs de la plateforme Memento Dev.","source":"@site/docs/soutiens-et-contributeurs.mdx","sourceDirName":".","slug":"/soutiens-et-contributeurs","permalink":"/soutiens-et-contributeurs","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/soutiens-et-contributeurs.mdx","tags":[],"version":"current","sidebarPosition":99998,"frontMatter":{"sidebar_position":99998,"description":"Soutiens et contributeurs de la plateforme Memento Dev."},"sidebar":"tutorialSidebar","previous":{"title":"🎥 Influenceurs et créateurs de contenu","permalink":"/ressources/influenceurs-et-createurs"},"next":{"title":"🤝 Contribuer","permalink":"/contribuer"}},{"id":"titres-professionnels/archives/DWWM/2018-2023/AT1/CP1","title":"CP 1","description":"Synthèse de la CP 1 \"Maquetter une application\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).","source":"@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1.mdx","sourceDirName":"titres-professionnels/archives/DWWM/2018-2023/AT1","slug":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1.mdx","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"title":"CP 1","description":"Synthèse de la CP 1 \"Maquetter une application\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)."},"sidebar":"tutorialSidebar","previous":{"title":"Résumé","permalink":"/titres-professionnels/archives/DWWM/2018-2023/intro"},"next":{"title":"CP 2","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2"}},{"id":"titres-professionnels/archives/DWWM/2018-2023/AT1/CP2","title":"CP 2","description":"Synthèse de la CP 1 \"Réaliser une interface utilisateur web statique et adaptable\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).","source":"@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2.mdx","sourceDirName":"titres-professionnels/archives/DWWM/2018-2023/AT1","slug":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2.mdx","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"title":"CP 2","description":"Synthèse de la CP 1 \"Réaliser une interface utilisateur web statique et adaptable\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)."},"sidebar":"tutorialSidebar","previous":{"title":"CP 1","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1"},"next":{"title":"CP 3","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3"}},{"id":"titres-professionnels/archives/DWWM/2018-2023/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Développer une interface utilisateur web dynamique\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).","source":"@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3.mdx","sourceDirName":"titres-professionnels/archives/DWWM/2018-2023/AT1","slug":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3.mdx","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"title":"CP 3","description":"Synthèse de la CP 3 \"Développer une interface utilisateur web dynamique\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)."},"sidebar":"tutorialSidebar","previous":{"title":"CP 2","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2"},"next":{"title":"CP 4","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4"}},{"id":"titres-professionnels/archives/DWWM/2018-2023/AT1/CP4","title":"CP 4","description":"Synthèse de la CP 4 \"Réaliser une interface utilisateur avec une solution de gestion de contenu ou e-commerce\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).","source":"@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4.mdx","sourceDirName":"titres-professionnels/archives/DWWM/2018-2023/AT1","slug":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4.mdx","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"sidebar_position":4,"title":"CP 4","description":"Synthèse de la CP 4 \"Réaliser une interface utilisateur avec une solution de gestion de contenu ou e-commerce\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)."},"sidebar":"tutorialSidebar","previous":{"title":"CP 3","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3"},"next":{"title":"CP 5","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5"}},{"id":"titres-professionnels/archives/DWWM/2018-2023/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Créer une base de données\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).","source":"@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5.mdx","sourceDirName":"titres-professionnels/archives/DWWM/2018-2023/AT2","slug":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5.mdx","tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"sidebar_position":5,"title":"CP 5","description":"Synthèse de la CP 5 \"Créer une base de données\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)."},"sidebar":"tutorialSidebar","previous":{"title":"CP 4","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4"},"next":{"title":"CP 6","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6"}},{"id":"titres-professionnels/archives/DWWM/2018-2023/AT2/CP6","title":"CP 6","description":"Synthèse de la CP 5 \"Développer les composants d'accès aux données\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).","source":"@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6.mdx","sourceDirName":"titres-professionnels/archives/DWWM/2018-2023/AT2","slug":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6.mdx","tags":[],"version":"current","sidebarPosition":6,"frontMatter":{"sidebar_position":6,"title":"CP 6","description":"Synthèse de la CP 5 \"Développer les composants d'accès aux données\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)."},"sidebar":"tutorialSidebar","previous":{"title":"CP 5","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5"},"next":{"title":"CP 7","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7"}},{"id":"titres-professionnels/archives/DWWM/2018-2023/AT2/CP7","title":"CP 7","description":"Synthèse de la CP 7 \"Développer la partie back-end d'une application web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).","source":"@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7.mdx","sourceDirName":"titres-professionnels/archives/DWWM/2018-2023/AT2","slug":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7.mdx","tags":[],"version":"current","sidebarPosition":7,"frontMatter":{"sidebar_position":7,"title":"CP 7","description":"Synthèse de la CP 7 \"Développer la partie back-end d'une application web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)."},"sidebar":"tutorialSidebar","previous":{"title":"CP 6","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6"},"next":{"title":"CP 8","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8"}},{"id":"titres-professionnels/archives/DWWM/2018-2023/AT2/CP8","title":"CP 8","description":"Synthèse de la CP 8 \"Élaborer et mettre en œuvre des composants dans une application de gestion de contenu ou e-commerce\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré).","source":"@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8.mdx","sourceDirName":"titres-professionnels/archives/DWWM/2018-2023/AT2","slug":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8.mdx","tags":[],"version":"current","sidebarPosition":8,"frontMatter":{"sidebar_position":8,"title":"CP 8","description":"Synthèse de la CP 8 \"Élaborer et mettre en œuvre des composants dans une application de gestion de contenu ou e-commerce\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)."},"sidebar":"tutorialSidebar","previous":{"title":"CP 7","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7"},"next":{"title":"Se préparer pour un TP","permalink":"/titres-professionnels/se-preparer"}},{"id":"titres-professionnels/archives/DWWM/2018-2023/intro","title":"Résumé","description":"Résumé du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, expiré depuis septembre 2023).","source":"@site/docs/titres-professionnels/archives/DWWM/2018-2023/intro.mdx","sourceDirName":"titres-professionnels/archives/DWWM/2018-2023","slug":"/titres-professionnels/archives/DWWM/2018-2023/intro","permalink":"/titres-professionnels/archives/DWWM/2018-2023/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/archives/DWWM/2018-2023/intro.mdx","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"title":"Résumé","description":"Résumé du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, expiré depuis septembre 2023)."},"sidebar":"tutorialSidebar","previous":{"title":"🗃️ Archives","permalink":"/category/️-archives"},"next":{"title":"CP 1","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1"}},{"id":"titres-professionnels/CDA/AT1/CP1","title":"CP 1","description":"Synthèse de la CP 1 \"Installer et configurer son environnement de travail en fonction du projet\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","source":"@site/docs/titres-professionnels/CDA/AT1/CP1.mdx","sourceDirName":"titres-professionnels/CDA/AT1","slug":"/titres-professionnels/CDA/AT1/CP1","permalink":"/titres-professionnels/CDA/AT1/CP1","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT1/CP1.mdx","tags":[{"inline":true,"label":"CDA","permalink":"/tags/cda"},{"inline":true,"label":"Environnement de développement","permalink":"/tags/environnement-de-developpement"}],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"title":"CP 1","description":"Synthèse de la CP 1 \"Installer et configurer son environnement de travail en fonction du projet\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","tags":["CDA","Environnement de développement"]},"sidebar":"tutorialSidebar","previous":{"title":"Résumé","permalink":"/titres-professionnels/CDA/intro"},"next":{"title":"CP 2","permalink":"/titres-professionnels/CDA/AT1/CP2"}},{"id":"titres-professionnels/CDA/AT1/CP2","title":"CP 2","description":"Synthèse de la CP 2 \"Développer des interfaces utilisateur\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","source":"@site/docs/titres-professionnels/CDA/AT1/CP2.mdx","sourceDirName":"titres-professionnels/CDA/AT1","slug":"/titres-professionnels/CDA/AT1/CP2","permalink":"/titres-professionnels/CDA/AT1/CP2","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT1/CP2.mdx","tags":[{"inline":true,"label":"CDA","permalink":"/tags/cda"}],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"title":"CP 2","description":"Synthèse de la CP 2 \"Développer des interfaces utilisateur\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","tags":["CDA"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 1","permalink":"/titres-professionnels/CDA/AT1/CP1"},"next":{"title":"CP 3","permalink":"/titres-professionnels/CDA/AT1/CP3"}},{"id":"titres-professionnels/CDA/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Développer des composants métier\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","source":"@site/docs/titres-professionnels/CDA/AT1/CP3.mdx","sourceDirName":"titres-professionnels/CDA/AT1","slug":"/titres-professionnels/CDA/AT1/CP3","permalink":"/titres-professionnels/CDA/AT1/CP3","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT1/CP3.mdx","tags":[{"inline":true,"label":"CDA","permalink":"/tags/cda"}],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"title":"CP 3","description":"Synthèse de la CP 3 \"Développer des composants métier\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","tags":["CDA"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 2","permalink":"/titres-professionnels/CDA/AT1/CP2"},"next":{"title":"CP 4","permalink":"/titres-professionnels/CDA/AT1/CP4"}},{"id":"titres-professionnels/CDA/AT1/CP4","title":"CP 4","description":"Synthèse de la CP 4 \"Contribuer à la gestion d’un projet informatique\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","source":"@site/docs/titres-professionnels/CDA/AT1/CP4.mdx","sourceDirName":"titres-professionnels/CDA/AT1","slug":"/titres-professionnels/CDA/AT1/CP4","permalink":"/titres-professionnels/CDA/AT1/CP4","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT1/CP4.mdx","tags":[{"inline":true,"label":"CDA","permalink":"/tags/cda"}],"version":"current","sidebarPosition":4,"frontMatter":{"sidebar_position":4,"title":"CP 4","description":"Synthèse de la CP 4 \"Contribuer à la gestion d’un projet informatique\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","tags":["CDA"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 3","permalink":"/titres-professionnels/CDA/AT1/CP3"},"next":{"title":"CP 5","permalink":"/titres-professionnels/CDA/AT2/CP5"}},{"id":"titres-professionnels/CDA/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Analyser les besoins et maquetter une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","source":"@site/docs/titres-professionnels/CDA/AT2/CP5.mdx","sourceDirName":"titres-professionnels/CDA/AT2","slug":"/titres-professionnels/CDA/AT2/CP5","permalink":"/titres-professionnels/CDA/AT2/CP5","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT2/CP5.mdx","tags":[{"inline":true,"label":"CDA","permalink":"/tags/cda"}],"version":"current","sidebarPosition":5,"frontMatter":{"sidebar_position":5,"title":"CP 5","description":"Synthèse de la CP 5 \"Analyser les besoins et maquetter une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","tags":["CDA"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 4","permalink":"/titres-professionnels/CDA/AT1/CP4"},"next":{"title":"CP 6","permalink":"/titres-professionnels/CDA/AT2/CP6"}},{"id":"titres-professionnels/CDA/AT2/CP6","title":"CP 6","description":"Synthèse de la CP 6 \"Définir l’architecture logicielle d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","source":"@site/docs/titres-professionnels/CDA/AT2/CP6.mdx","sourceDirName":"titres-professionnels/CDA/AT2","slug":"/titres-professionnels/CDA/AT2/CP6","permalink":"/titres-professionnels/CDA/AT2/CP6","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT2/CP6.mdx","tags":[{"inline":true,"label":"CDA","permalink":"/tags/cda"}],"version":"current","sidebarPosition":6,"frontMatter":{"sidebar_position":6,"title":"CP 6","description":"Synthèse de la CP 6 \"Définir l’architecture logicielle d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","tags":["CDA"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 5","permalink":"/titres-professionnels/CDA/AT2/CP5"},"next":{"title":"CP 7","permalink":"/titres-professionnels/CDA/AT2/CP7"}},{"id":"titres-professionnels/CDA/AT2/CP7","title":"CP 7","description":"Synthèse de la CP 7 \"Concevoir et mettre en place une base de données relationnelle\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","source":"@site/docs/titres-professionnels/CDA/AT2/CP7.mdx","sourceDirName":"titres-professionnels/CDA/AT2","slug":"/titres-professionnels/CDA/AT2/CP7","permalink":"/titres-professionnels/CDA/AT2/CP7","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT2/CP7.mdx","tags":[{"inline":true,"label":"CDA","permalink":"/tags/cda"}],"version":"current","sidebarPosition":7,"frontMatter":{"sidebar_position":7,"title":"CP 7","description":"Synthèse de la CP 7 \"Concevoir et mettre en place une base de données relationnelle\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","tags":["CDA"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 6","permalink":"/titres-professionnels/CDA/AT2/CP6"},"next":{"title":"CP 8","permalink":"/titres-professionnels/CDA/AT2/CP8"}},{"id":"titres-professionnels/CDA/AT2/CP8","title":"CP 8","description":"Synthèse de la CP 8 \"Développer des composants d’accès aux données SQL et NoSQL\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","source":"@site/docs/titres-professionnels/CDA/AT2/CP8.mdx","sourceDirName":"titres-professionnels/CDA/AT2","slug":"/titres-professionnels/CDA/AT2/CP8","permalink":"/titres-professionnels/CDA/AT2/CP8","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT2/CP8.mdx","tags":[{"inline":true,"label":"CDA","permalink":"/tags/cda"}],"version":"current","sidebarPosition":8,"frontMatter":{"sidebar_position":8,"title":"CP 8","description":"Synthèse de la CP 8 \"Développer des composants d’accès aux données SQL et NoSQL\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","tags":["CDA"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 7","permalink":"/titres-professionnels/CDA/AT2/CP7"},"next":{"title":"CP 9","permalink":"/titres-professionnels/CDA/AT3/CP9"}},{"id":"titres-professionnels/CDA/AT3/CP10","title":"CP 10","description":"Synthèse de la CP 10 \"Préparer et documenter le déploiement d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","source":"@site/docs/titres-professionnels/CDA/AT3/CP10.mdx","sourceDirName":"titres-professionnels/CDA/AT3","slug":"/titres-professionnels/CDA/AT3/CP10","permalink":"/titres-professionnels/CDA/AT3/CP10","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT3/CP10.mdx","tags":[{"inline":true,"label":"CDA","permalink":"/tags/cda"}],"version":"current","sidebarPosition":10,"frontMatter":{"sidebar_position":10,"title":"CP 10","description":"Synthèse de la CP 10 \"Préparer et documenter le déploiement d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","tags":["CDA"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 9","permalink":"/titres-professionnels/CDA/AT3/CP9"},"next":{"title":"CP 11","permalink":"/titres-professionnels/CDA/AT3/CP11"}},{"id":"titres-professionnels/CDA/AT3/CP11","title":"CP 11","description":"Synthèse de la CP 11 \"Contribuer à la mise en production dans une démarche DevOps\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","source":"@site/docs/titres-professionnels/CDA/AT3/CP11.mdx","sourceDirName":"titres-professionnels/CDA/AT3","slug":"/titres-professionnels/CDA/AT3/CP11","permalink":"/titres-professionnels/CDA/AT3/CP11","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT3/CP11.mdx","tags":[{"inline":true,"label":"CDA","permalink":"/tags/cda"}],"version":"current","sidebarPosition":11,"frontMatter":{"sidebar_position":11,"title":"CP 11","description":"Synthèse de la CP 11 \"Contribuer à la mise en production dans une démarche DevOps\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","tags":["CDA"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 10","permalink":"/titres-professionnels/CDA/AT3/CP10"},"next":{"title":"Résumé","permalink":"/titres-professionnels/DWWM/intro"}},{"id":"titres-professionnels/CDA/AT3/CP9","title":"CP 9","description":"Synthèse de la CP 9 \"Préparer et exécuter les plans de tests d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","source":"@site/docs/titres-professionnels/CDA/AT3/CP9.mdx","sourceDirName":"titres-professionnels/CDA/AT3","slug":"/titres-professionnels/CDA/AT3/CP9","permalink":"/titres-professionnels/CDA/AT3/CP9","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/AT3/CP9.mdx","tags":[{"inline":true,"label":"CDA","permalink":"/tags/cda"}],"version":"current","sidebarPosition":9,"frontMatter":{"sidebar_position":9,"title":"CP 9","description":"Synthèse de la CP 9 \"Préparer et exécuter les plans de tests d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04).","tags":["CDA"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 8","permalink":"/titres-professionnels/CDA/AT2/CP8"},"next":{"title":"CP 10","permalink":"/titres-professionnels/CDA/AT3/CP10"}},{"id":"titres-professionnels/CDA/intro","title":"Résumé","description":"Résumé du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04, actif depuis décembre 2023).","source":"@site/docs/titres-professionnels/CDA/intro.mdx","sourceDirName":"titres-professionnels/CDA","slug":"/titres-professionnels/CDA/intro","permalink":"/titres-professionnels/CDA/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/CDA/intro.mdx","tags":[{"inline":true,"label":"CDA","permalink":"/tags/cda"}],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"title":"Résumé","description":"Résumé du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04, actif depuis décembre 2023).","tags":["CDA"]},"sidebar":"tutorialSidebar","previous":{"title":"🎓 Titres professionnels","permalink":"/category/-titres-professionnels"},"next":{"title":"CP 1","permalink":"/titres-professionnels/CDA/AT1/CP1"}},{"id":"titres-professionnels/DWWM/AT1/CP1","title":"CP 1","description":"Synthèse de la CP 1 \"Installer et configurer son environnement de travail en fonction du projet web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","source":"@site/docs/titres-professionnels/DWWM/AT1/CP1.mdx","sourceDirName":"titres-professionnels/DWWM/AT1","slug":"/titres-professionnels/DWWM/AT1/CP1","permalink":"/titres-professionnels/DWWM/AT1/CP1","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/AT1/CP1.mdx","tags":[{"inline":true,"label":"DWWM","permalink":"/tags/dwwm"},{"inline":true,"label":"Environnement de développement","permalink":"/tags/environnement-de-developpement"}],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"title":"CP 1","description":"Synthèse de la CP 1 \"Installer et configurer son environnement de travail en fonction du projet web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","tags":["DWWM","Environnement de développement"]},"sidebar":"tutorialSidebar","previous":{"title":"La soutenance DWWM","permalink":"/titres-professionnels/DWWM/soutenance"},"next":{"title":"CP 2","permalink":"/titres-professionnels/DWWM/AT1/CP2"}},{"id":"titres-professionnels/DWWM/AT1/CP2","title":"CP 2","description":"Synthèse de la CP 2 \"Maquetter des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","source":"@site/docs/titres-professionnels/DWWM/AT1/CP2.mdx","sourceDirName":"titres-professionnels/DWWM/AT1","slug":"/titres-professionnels/DWWM/AT1/CP2","permalink":"/titres-professionnels/DWWM/AT1/CP2","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/AT1/CP2.mdx","tags":[{"inline":true,"label":"DWWM","permalink":"/tags/dwwm"},{"inline":true,"label":"Eco-conception","permalink":"/tags/eco-conception"},{"inline":true,"label":"Accessibilité","permalink":"/tags/accessibilite"},{"inline":true,"label":"SEO/Référencement naturel","permalink":"/tags/seo-referencement-naturel"},{"inline":true,"label":"Maquettage","permalink":"/tags/maquettage"},{"inline":true,"label":"Wireframe","permalink":"/tags/wireframe"},{"inline":true,"label":"Zoning","permalink":"/tags/zoning"},{"inline":true,"label":"Front-end","permalink":"/tags/front-end"}],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"title":"CP 2","description":"Synthèse de la CP 2 \"Maquetter des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","tags":["DWWM","Eco-conception","Accessibilité","SEO/Référencement naturel","Maquettage","Wireframe","Zoning","Front-end"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 1","permalink":"/titres-professionnels/DWWM/AT1/CP1"},"next":{"title":"CP 3","permalink":"/titres-professionnels/DWWM/AT1/CP3"}},{"id":"titres-professionnels/DWWM/AT1/CP3","title":"CP 3","description":"Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","source":"@site/docs/titres-professionnels/DWWM/AT1/CP3.mdx","sourceDirName":"titres-professionnels/DWWM/AT1","slug":"/titres-professionnels/DWWM/AT1/CP3","permalink":"/titres-professionnels/DWWM/AT1/CP3","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/AT1/CP3.mdx","tags":[{"inline":true,"label":"DWWM","permalink":"/tags/dwwm"},{"inline":true,"label":"Intégration","permalink":"/tags/integration"},{"inline":true,"label":"Responsive","permalink":"/tags/responsive"},{"inline":true,"label":"HTML","permalink":"/tags/html"},{"inline":true,"label":"CSS","permalink":"/tags/css"},{"inline":true,"label":"Accessibilité","permalink":"/tags/accessibilite"},{"inline":true,"label":"Éco-conception","permalink":"/tags/eco-conception"},{"inline":true,"label":"SEO/Référencement naturel","permalink":"/tags/seo-referencement-naturel"},{"inline":true,"label":"Déploiement","permalink":"/tags/deploiement"},{"inline":true,"label":"Reverse Proxy","permalink":"/tags/reverse-proxy"},{"inline":true,"label":"Front-end","permalink":"/tags/front-end"},{"inline":true,"label":"Serveur web","permalink":"/tags/serveur-web"}],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"title":"CP 3","description":"Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","tags":["DWWM","Intégration","Responsive","HTML","CSS","Accessibilité","Éco-conception","SEO/Référencement naturel","Déploiement","Reverse Proxy","Front-end","Serveur web"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 2","permalink":"/titres-professionnels/DWWM/AT1/CP2"},"next":{"title":"CP 4","permalink":"/titres-professionnels/DWWM/AT1/CP4"}},{"id":"titres-professionnels/DWWM/AT1/CP4","title":"CP 4","description":"Synthèse de la CP 4 \"Développer la partie dynamique des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","source":"@site/docs/titres-professionnels/DWWM/AT1/CP4.mdx","sourceDirName":"titres-professionnels/DWWM/AT1","slug":"/titres-professionnels/DWWM/AT1/CP4","permalink":"/titres-professionnels/DWWM/AT1/CP4","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/AT1/CP4.mdx","tags":[{"inline":true,"label":"DWWM","permalink":"/tags/dwwm"},{"inline":true,"label":"JavaScript/TypeScript","permalink":"/tags/java-script-type-script"},{"inline":true,"label":"Front-end","permalink":"/tags/front-end"},{"inline":true,"label":"Eco-conception","permalink":"/tags/eco-conception"},{"inline":true,"label":"Accessibilité","permalink":"/tags/accessibilite"},{"inline":true,"label":"SEO/Référencement naturel","permalink":"/tags/seo-referencement-naturel"}],"version":"current","sidebarPosition":4,"frontMatter":{"sidebar_position":4,"title":"CP 4","description":"Synthèse de la CP 4 \"Développer la partie dynamique des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","tags":["DWWM","JavaScript/TypeScript","Front-end","Eco-conception","Accessibilité","SEO/Référencement naturel"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 3","permalink":"/titres-professionnels/DWWM/AT1/CP3"},"next":{"title":"CP 5","permalink":"/titres-professionnels/DWWM/AT2/CP5"}},{"id":"titres-professionnels/DWWM/AT2/CP5","title":"CP 5","description":"Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","source":"@site/docs/titres-professionnels/DWWM/AT2/CP5.mdx","sourceDirName":"titres-professionnels/DWWM/AT2","slug":"/titres-professionnels/DWWM/AT2/CP5","permalink":"/titres-professionnels/DWWM/AT2/CP5","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/AT2/CP5.mdx","tags":[{"inline":true,"label":"DWWM","permalink":"/tags/dwwm"},{"inline":true,"label":"Conception","permalink":"/tags/conception"},{"inline":true,"label":"Modélisation","permalink":"/tags/modelisation"},{"inline":true,"label":"Base de données","permalink":"/tags/base-de-donnees"},{"inline":true,"label":"Merise","permalink":"/tags/merise"},{"inline":true,"label":"Dictionnaire de Données","permalink":"/tags/dictionnaire-de-donnees"},{"inline":true,"label":"Modèle Conceptuel de Données (MCD)","permalink":"/tags/modele-conceptuel-de-donnees-mcd"},{"inline":true,"label":"Modèle Logique de Données (MLD)","permalink":"/tags/modele-logique-de-donnees-mld"},{"inline":true,"label":"Modèle Relationnel de Données (MRD)","permalink":"/tags/modele-relationnel-de-donnees-mrd"},{"inline":true,"label":"Modèle Physique de Données (MPD)","permalink":"/tags/modele-physique-de-donnees-mpd"},{"inline":true,"label":"SQL","permalink":"/tags/sql"},{"inline":true,"label":"Back-end","permalink":"/tags/back-end"}],"version":"current","sidebarPosition":5,"frontMatter":{"sidebar_position":5,"title":"CP 5","description":"Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","tags":["DWWM","Conception","Modélisation","Base de données","Merise","Dictionnaire de Données","Modèle Conceptuel de Données (MCD)","Modèle Logique de Données (MLD)","Modèle Relationnel de Données (MRD)","Modèle Physique de Données (MPD)","SQL","Back-end"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 4","permalink":"/titres-professionnels/DWWM/AT1/CP4"},"next":{"title":"CP 6","permalink":"/titres-professionnels/DWWM/AT2/CP6"}},{"id":"titres-professionnels/DWWM/AT2/CP6","title":"CP 6","description":"Synthèse de la CP 6 \"Développer des composants d'accès aux données SQL et NoSQL\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","source":"@site/docs/titres-professionnels/DWWM/AT2/CP6.mdx","sourceDirName":"titres-professionnels/DWWM/AT2","slug":"/titres-professionnels/DWWM/AT2/CP6","permalink":"/titres-professionnels/DWWM/AT2/CP6","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/AT2/CP6.mdx","tags":[{"inline":true,"label":"DWWM","permalink":"/tags/dwwm"},{"inline":true,"label":"Base de données","permalink":"/tags/base-de-donnees"},{"inline":true,"label":"SQL","permalink":"/tags/sql"},{"inline":true,"label":"Back-end","permalink":"/tags/back-end"},{"inline":true,"label":"ORM/ODM","permalink":"/tags/orm-odm"},{"inline":true,"label":"Sécurité","permalink":"/tags/securite"},{"inline":true,"label":"Chiffrement","permalink":"/tags/chiffrement"},{"inline":true,"label":"Hachage","permalink":"/tags/hachage"}],"version":"current","sidebarPosition":6,"frontMatter":{"sidebar_position":6,"title":"CP 6","description":"Synthèse de la CP 6 \"Développer des composants d'accès aux données SQL et NoSQL\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","tags":["DWWM","Base de données","SQL","Back-end","ORM/ODM","Sécurité","Chiffrement","Hachage"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 5","permalink":"/titres-professionnels/DWWM/AT2/CP5"},"next":{"title":"CP 7","permalink":"/titres-professionnels/DWWM/AT2/CP7"}},{"id":"titres-professionnels/DWWM/AT2/CP7","title":"CP 7","description":"Synthèse de la CP 7 \"Développer des composants métier coté serveur\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","source":"@site/docs/titres-professionnels/DWWM/AT2/CP7.mdx","sourceDirName":"titres-professionnels/DWWM/AT2","slug":"/titres-professionnels/DWWM/AT2/CP7","permalink":"/titres-professionnels/DWWM/AT2/CP7","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/AT2/CP7.mdx","tags":[{"inline":true,"label":"DWWM","permalink":"/tags/dwwm"},{"inline":true,"label":"Architecture","permalink":"/tags/architecture"},{"inline":true,"label":"Design Pattern","permalink":"/tags/design-pattern"},{"inline":true,"label":"Back-end","permalink":"/tags/back-end"},{"inline":true,"label":"Sécurité","permalink":"/tags/securite"},{"inline":true,"label":"Tests","permalink":"/tags/tests"}],"version":"current","sidebarPosition":7,"frontMatter":{"sidebar_position":7,"title":"CP 7","description":"Synthèse de la CP 7 \"Développer des composants métier coté serveur\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","tags":["DWWM","Architecture","Design Pattern","Back-end","Sécurité","Tests"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 6","permalink":"/titres-professionnels/DWWM/AT2/CP6"},"next":{"title":"CP 8","permalink":"/titres-professionnels/DWWM/AT2/CP8"}},{"id":"titres-professionnels/DWWM/AT2/CP8","title":"CP 8","description":"Synthèse de la CP 8 \"Documenter le déploiement d'une application dynamique web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","source":"@site/docs/titres-professionnels/DWWM/AT2/CP8.mdx","sourceDirName":"titres-professionnels/DWWM/AT2","slug":"/titres-professionnels/DWWM/AT2/CP8","permalink":"/titres-professionnels/DWWM/AT2/CP8","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/AT2/CP8.mdx","tags":[{"inline":true,"label":"DWWM","permalink":"/tags/dwwm"},{"inline":true,"label":"Déploiement","permalink":"/tags/deploiement"},{"inline":true,"label":"Back-end","permalink":"/tags/back-end"},{"inline":true,"label":"Reverse Proxy","permalink":"/tags/reverse-proxy"},{"inline":true,"label":"Serveur web","permalink":"/tags/serveur-web"}],"version":"current","sidebarPosition":8,"frontMatter":{"sidebar_position":8,"title":"CP 8","description":"Synthèse de la CP 8 \"Documenter le déploiement d'une application dynamique web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04).","tags":["DWWM","Déploiement","Back-end","Reverse Proxy","Serveur web"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 7","permalink":"/titres-professionnels/DWWM/AT2/CP7"},"next":{"title":"🗃️ Archives","permalink":"/category/️-archives"}},{"id":"titres-professionnels/DWWM/intro","title":"Résumé","description":"Résumé du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04, actif depuis septembre 2023).","source":"@site/docs/titres-professionnels/DWWM/intro.mdx","sourceDirName":"titres-professionnels/DWWM","slug":"/titres-professionnels/DWWM/intro","permalink":"/titres-professionnels/DWWM/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/intro.mdx","tags":[{"inline":true,"label":"DWWM","permalink":"/tags/dwwm"}],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"title":"Résumé","description":"Résumé du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04, actif depuis septembre 2023).","tags":["DWWM"]},"sidebar":"tutorialSidebar","previous":{"title":"CP 11","permalink":"/titres-professionnels/CDA/AT3/CP11"},"next":{"title":"La soutenance DWWM","permalink":"/titres-professionnels/DWWM/soutenance"}},{"id":"titres-professionnels/DWWM/soutenance","title":"La soutenance DWWM","description":"Tu prépares un TP DWWM et tu te demandes à quoi t'attendre pour la soutenance ? Voici quelques conseils pour te préparer efficacement.","source":"@site/docs/titres-professionnels/DWWM/soutenance.mdx","sourceDirName":"titres-professionnels/DWWM","slug":"/titres-professionnels/DWWM/soutenance","permalink":"/titres-professionnels/DWWM/soutenance","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/DWWM/soutenance.mdx","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"title":"La soutenance DWWM","description":"Tu prépares un TP DWWM et tu te demandes à quoi t'attendre pour la soutenance ? Voici quelques conseils pour te préparer efficacement."},"sidebar":"tutorialSidebar","previous":{"title":"Résumé","permalink":"/titres-professionnels/DWWM/intro"},"next":{"title":"CP 1","permalink":"/titres-professionnels/DWWM/AT1/CP1"}},{"id":"titres-professionnels/retours","title":"Retours d'expériences","description":"Découvre les témoignages de candidats et jury sur leur soutenance de titre professionnel : leurs ressentis avant, pendant et après leur passage devant le jury.","source":"@site/docs/titres-professionnels/retours.mdx","sourceDirName":"titres-professionnels","slug":"/titres-professionnels/retours","permalink":"/titres-professionnels/retours","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/retours.mdx","tags":[],"version":"current","sidebarPosition":99999,"frontMatter":{"sidebar_position":99999,"title":"Retours d'expériences","description":"Découvre les témoignages de candidats et jury sur leur soutenance de titre professionnel : leurs ressentis avant, pendant et après leur passage devant le jury."},"sidebar":"tutorialSidebar","previous":{"title":"Se préparer pour un TP","permalink":"/titres-professionnels/se-preparer"},"next":{"title":"💽 Bases de données","permalink":"/category/-bases-de-données"}},{"id":"titres-professionnels/se-preparer","title":"Se préparer pour un TP","description":"Tu prépares un titre professionnel et tu te demandes comment bien t'y préparer ? Jette donc un oeil !","source":"@site/docs/titres-professionnels/se-preparer.mdx","sourceDirName":"titres-professionnels","slug":"/titres-professionnels/se-preparer","permalink":"/titres-professionnels/se-preparer","draft":false,"unlisted":false,"editUrl":"https://github.com/preparation-tp/memento-dev/tree/main/docs/titres-professionnels/se-preparer.mdx","tags":[],"version":"current","sidebarPosition":9999,"frontMatter":{"sidebar_position":9999,"title":"Se préparer pour un TP","description":"Tu prépares un titre professionnel et tu te demandes comment bien t'y préparer ? Jette donc un oeil !"},"sidebar":"tutorialSidebar","previous":{"title":"CP 8","permalink":"/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8"},"next":{"title":"Retours d'expériences","permalink":"/titres-professionnels/retours"}}],"drafts":[],"sidebars":{"tutorialSidebar":[{"type":"doc","id":"intro"},{"type":"category","label":"📖 Glossaires","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"glossaires/titres-professionnel"}]},{"type":"category","label":"🎓 Titres professionnels","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"🧑‍💻 CDA","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"titres-professionnels/CDA/intro"},{"type":"category","label":"Activité Type 1","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"titres-professionnels/CDA/AT1/CP1"},{"type":"doc","id":"titres-professionnels/CDA/AT1/CP2"},{"type":"doc","id":"titres-professionnels/CDA/AT1/CP3"},{"type":"doc","id":"titres-professionnels/CDA/AT1/CP4"}]},{"type":"category","label":"Activité Type 2","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"titres-professionnels/CDA/AT2/CP5"},{"type":"doc","id":"titres-professionnels/CDA/AT2/CP6"},{"type":"doc","id":"titres-professionnels/CDA/AT2/CP7"},{"type":"doc","id":"titres-professionnels/CDA/AT2/CP8"}]},{"type":"category","label":"Activité Type 3","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"titres-professionnels/CDA/AT3/CP9"},{"type":"doc","id":"titres-professionnels/CDA/AT3/CP10"},{"type":"doc","id":"titres-professionnels/CDA/AT3/CP11"}]}]},{"type":"category","label":"🧑‍💻 DWWM","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"titres-professionnels/DWWM/intro"},{"type":"doc","id":"titres-professionnels/DWWM/soutenance"},{"type":"category","label":"Activité Type 1","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"titres-professionnels/DWWM/AT1/CP1"},{"type":"doc","id":"titres-professionnels/DWWM/AT1/CP2"},{"type":"doc","id":"titres-professionnels/DWWM/AT1/CP3"},{"type":"doc","id":"titres-professionnels/DWWM/AT1/CP4"}]},{"type":"category","label":"Activité Type 2","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"titres-professionnels/DWWM/AT2/CP5"},{"type":"doc","id":"titres-professionnels/DWWM/AT2/CP6"},{"type":"doc","id":"titres-professionnels/DWWM/AT2/CP7"},{"type":"doc","id":"titres-professionnels/DWWM/AT2/CP8"}]}]},{"type":"category","label":"🗃️ Archives","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"DWWM","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"2018-2023","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"titres-professionnels/archives/DWWM/2018-2023/intro"},{"type":"category","label":"AT1","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"titres-professionnels/archives/DWWM/2018-2023/AT1/CP1"},{"type":"doc","id":"titres-professionnels/archives/DWWM/2018-2023/AT1/CP2"},{"type":"doc","id":"titres-professionnels/archives/DWWM/2018-2023/AT1/CP3"},{"type":"doc","id":"titres-professionnels/archives/DWWM/2018-2023/AT1/CP4"}]},{"type":"category","label":"AT2","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"titres-professionnels/archives/DWWM/2018-2023/AT2/CP5"},{"type":"doc","id":"titres-professionnels/archives/DWWM/2018-2023/AT2/CP6"},{"type":"doc","id":"titres-professionnels/archives/DWWM/2018-2023/AT2/CP7"},{"type":"doc","id":"titres-professionnels/archives/DWWM/2018-2023/AT2/CP8"}]}]}]}],"link":{"type":"generated-index","description":"Archives des différents référentiels arrivés à expiration.","slug":"/category/️-archives","permalink":"/category/️-archives"}},{"type":"doc","id":"titres-professionnels/se-preparer"},{"type":"doc","id":"titres-professionnels/retours"}],"link":{"type":"generated-index","description":"Tu retrouveras ici l'ensemble des titres professionnels couverts par la plateforme Memento Dev.","slug":"/category/-titres-professionnels","permalink":"/category/-titres-professionnels"}},{"type":"category","label":"📁 Ressources","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"💽 Bases de données","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Modélisation","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"ressources/bases-de-donnees/modelisation/merise"},{"type":"doc","id":"ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees"},{"type":"doc","id":"ressources/bases-de-donnees/modelisation/mcd"}]}],"link":{"type":"generated-index","slug":"/category/-bases-de-données","permalink":"/category/-bases-de-données"}},{"type":"category","label":"🌈 Frontend","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"React","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"ressources/frontend/react/intro"},{"type":"doc","id":"ressources/frontend/react/initialiser-un-projet-react"},{"type":"doc","id":"ressources/frontend/react/syntaxe-jsx"},{"type":"doc","id":"ressources/frontend/react/premier-composant"},{"type":"doc","id":"ressources/frontend/react/state-et-cycle-de-vie"},{"type":"doc","id":"ressources/frontend/react/hooks"},{"type":"doc","id":"ressources/frontend/react/contextes"},{"type":"doc","id":"ressources/frontend/react/reducers"}]}],"link":{"type":"generated-index","slug":"/category/-frontend","permalink":"/category/-frontend"}},{"type":"doc","id":"ressources/influenceurs-et-createurs"}]},{"type":"doc","id":"soutiens-et-contributeurs"},{"type":"doc","id":"contribuer"}]}}]}},"docusaurus-plugin-content-pages":{"default":[{"type":"jsx","permalink":"/","source":"@site/src/pages/index.tsx"},{"type":"mdx","permalink":"/markdown-page","source":"@site/src/pages/markdown-page.md","title":"Markdown page example","description":"You don't need React to write simple standalone pages.","frontMatter":{"title":"Markdown page example"},"unlisted":false},{"type":"jsx","permalink":"/mentions-legales","source":"@site/src/pages/mentions-legales.tsx"}]},"docusaurus-plugin-debug":{},"docusaurus-theme-classic":{},"docusaurus-tailwindcss":{},"docusaurus-lunr-search":{},"docusaurus-plugin-sitemap":{},"docusaurus-theme-mermaid":{},"docusaurus-bootstrap-plugin":{},"docusaurus-mdx-fallback-plugin":{}}} \ No newline at end of file diff --git a/old/.docusaurus/docusaurus.config.mjs b/old/.docusaurus/docusaurus.config.mjs deleted file mode 100644 index 2d5530a..0000000 --- a/old/.docusaurus/docusaurus.config.mjs +++ /dev/null @@ -1,632 +0,0 @@ -/* - * AUTOGENERATED - DON'T EDIT - * Your edits in this file will be overwritten in the next build! - * Modify the docusaurus.config.js file at your site's root instead. - */ -export default { - "title": "Memento Dev", - "tagline": "Souviens-toi que tu développeras.", - "favicon": "img/favicon.webp", - "url": "https://memento-dev.fr", - "baseUrl": "/", - "organizationName": "preparation-tp", - "projectName": "memento-dev", - "onBrokenLinks": "throw", - "onBrokenMarkdownLinks": "warn", - "scripts": [ - { - "src": "https://cloud.umami.is/script.js", - "async": true, - "defer": true, - "data-website-id": "ba70261e-d145-4dd1-b0e8-27cbf4927b74" - } - ], - "markdown": { - "mermaid": true, - "format": "mdx", - "mdx1Compat": { - "comments": true, - "admonitions": true, - "headingIds": true - }, - "anchors": { - "maintainCase": false - } - }, - "themes": [ - "@docusaurus/theme-mermaid" - ], - "i18n": { - "defaultLocale": "fr", - "locales": [ - "fr" - ], - "path": "i18n", - "localeConfigs": {} - }, - "plugins": [ - [ - "@docusaurus/plugin-pwa", - { - "debug": false, - "offlineModeActivationStrategies": [ - "appInstalled", - "standalone", - "queryString" - ], - "pwaHead": [ - { - "tagName": "link", - "rel": "icon", - "href": "/img/favicon.webp" - }, - { - "tagName": "link", - "rel": "manifest", - "href": "/manifest.json" - }, - { - "tagName": "meta", - "name": "theme-color", - "content": "#7c3aed" - }, - { - "tagName": "meta", - "name": "apple-mobile-web-app-capable", - "content": "yes" - }, - { - "tagName": "meta", - "name": "apple-mobile-web-app-status-bar-style", - "content": "#242526" - }, - { - "tagName": "link", - "rel": "apple-touch-icon", - "href": "/img/favicon.webp" - }, - { - "tagName": "link", - "rel": "mask-icon", - "href": "/img/favicon.webp", - "color": "#7c3aed" - }, - { - "tagName": "meta", - "name": "msapplication-TileImage", - "content": "/img/favicon.webp" - }, - { - "tagName": "meta", - "name": "msapplication-TileColor", - "content": "#7c3aed" - } - ] - } - ], - null, - [ - "/Users/jack/Projets/Perso/memento-dev/node_modules/.pnpm/docusaurus-lunr-search@3.4.0_@docusaurus+core@3.6.1_@mdx-js+react@3.0.1_@types+react@18.3.3_r_qkss22oxrb6lqvbuqsivdrac7q/node_modules/docusaurus-lunr-search/src/index.js", - { - "languages": [ - "fr" - ] - } - ], - [ - "@docusaurus/plugin-sitemap", - { - "lastmod": "date", - "changefreq": "weekly", - "priority": 0.5, - "ignorePatterns": [ - "/tags/**" - ], - "filename": "sitemap.xml", - "id": "sitemap" - } - ] - ], - "presets": [ - [ - "classic", - { - "docs": { - "sidebarPath": "./sidebars.ts", - "editUrl": "https://github.com/preparation-tp/memento-dev/tree/main/", - "admonitions": { - "keywords": [ - "quote", - "example" - ], - "extendDefaults": true - }, - "routeBasePath": "/", - "tagsBasePath": "tags" - }, - "blog": false, - "theme": { - "customCss": "./src/css/custom.css" - } - } - ] - ], - "themeConfig": { - "image": "img/docusaurus-social-card.jpg", - "mermaid": { - "theme": { - "light": "neutral", - "dark": "dark" - }, - "options": {} - }, - "navbar": { - "style": "dark", - "title": "Memento Dev", - "logo": { - "alt": "Logo Memento Dev", - "src": "img/logo.webp" - }, - "items": [ - { - "type": "docSidebar", - "sidebarId": "tutorialSidebar", - "position": "left", - "label": "Documentation" - }, - { - "position": "left", - "label": "Ressources", - "items": [ - { - "label": "Préambule", - "to": "/intro" - }, - { - "label": "Front-end", - "to": "/category/-frontend" - }, - { - "label": "Bases de données", - "to": "/category/-bases-de-données" - } - ] - }, - { - "position": "left", - "label": "Titres professionnels", - "items": [ - { - "label": "CDA", - "to": "/titres-professionnels/CDA/intro" - }, - { - "label": "DWWM", - "to": "/titres-professionnels/DWWM/intro" - }, - { - "label": "Se préparer", - "to": "/titres-professionnels/se-preparer" - }, - { - "label": "Retours d'expériences", - "to": "/titres-professionnels/retours" - }, - { - "label": "Archives", - "to": "/category/%EF%B8%8F-archives" - } - ] - }, - { - "href": "https://github.com/preparation-tp/memento-dev", - "label": "GitHub", - "position": "right" - } - ], - "hideOnScroll": false - }, - "footer": { - "style": "dark", - "links": [ - { - "title": "Ressources", - "items": [ - { - "label": "Préambule", - "to": "/intro" - }, - { - "label": "Front-end", - "to": "/category/-frontend" - }, - { - "label": "Bases de données", - "to": "/category/-bases-de-données" - } - ] - }, - { - "title": "Titres professionnels", - "items": [ - { - "label": "CDA", - "to": "/titres-professionnels/CDA/intro" - }, - { - "label": "DWWM", - "to": "/titres-professionnels/DWWM/intro" - }, - { - "label": "Se préparer", - "to": "/titres-professionnels/se-preparer" - }, - { - "label": "Retours d'expériences", - "to": "/titres-professionnels/retours" - }, - { - "label": "Archives", - "to": "/category/%EF%B8%8F-archives" - } - ] - }, - { - "title": "Memento Dev", - "items": [ - { - "label": "Mentions légales", - "to": "/mentions-legales" - }, - { - "label": "Contribuer", - "to": "/contribuer" - }, - { - "label": "GitHub", - "href": "https://github.com/preparation-tp/memento-dev" - } - ] - } - ], - "copyright": "\n Créé avec ❤️ par\n \n Gauthier Daniels\n \n " - }, - "prism": { - "theme": { - "plain": { - "backgroundColor": "hsl(230, 1%, 98%)", - "color": "hsl(230, 8%, 24%)" - }, - "styles": [ - { - "types": [ - "comment", - "prolog", - "cdata" - ], - "style": { - "color": "hsl(230, 4%, 64%)" - } - }, - { - "types": [ - "doctype", - "punctuation", - "entity" - ], - "style": { - "color": "hsl(230, 8%, 24%)" - } - }, - { - "types": [ - "attr-name", - "class-name", - "boolean", - "constant", - "number", - "atrule" - ], - "style": { - "color": "hsl(35, 99%, 36%)" - } - }, - { - "types": [ - "keyword" - ], - "style": { - "color": "hsl(301, 63%, 40%)" - } - }, - { - "types": [ - "property", - "tag", - "symbol", - "deleted", - "important" - ], - "style": { - "color": "hsl(5, 74%, 59%)" - } - }, - { - "types": [ - "selector", - "string", - "char", - "builtin", - "inserted", - "regex", - "attr-value", - "punctuation" - ], - "style": { - "color": "hsl(119, 34%, 47%)" - } - }, - { - "types": [ - "variable", - "operator", - "function" - ], - "style": { - "color": "hsl(221, 87%, 60%)" - } - }, - { - "types": [ - "url" - ], - "style": { - "color": "hsl(198, 99%, 37%)" - } - }, - { - "types": [ - "deleted" - ], - "style": { - "textDecorationLine": "line-through" - } - }, - { - "types": [ - "inserted" - ], - "style": { - "textDecorationLine": "underline" - } - }, - { - "types": [ - "italic" - ], - "style": { - "fontStyle": "italic" - } - }, - { - "types": [ - "important", - "bold" - ], - "style": { - "fontWeight": "bold" - } - }, - { - "types": [ - "important" - ], - "style": { - "color": "hsl(230, 8%, 24%)" - } - } - ] - }, - "darkTheme": { - "plain": { - "backgroundColor": "hsl(220, 13%, 18%)", - "color": "hsl(220, 14%, 71%)", - "textShadow": "0 1px rgba(0, 0, 0, 0.3)" - }, - "styles": [ - { - "types": [ - "comment", - "prolog", - "cdata" - ], - "style": { - "color": "hsl(220, 10%, 40%)" - } - }, - { - "types": [ - "doctype", - "punctuation", - "entity" - ], - "style": { - "color": "hsl(220, 14%, 71%)" - } - }, - { - "types": [ - "attr-name", - "class-name", - "maybe-class-name", - "boolean", - "constant", - "number", - "atrule" - ], - "style": { - "color": "hsl(29, 54%, 61%)" - } - }, - { - "types": [ - "keyword" - ], - "style": { - "color": "hsl(286, 60%, 67%)" - } - }, - { - "types": [ - "property", - "tag", - "symbol", - "deleted", - "important" - ], - "style": { - "color": "hsl(355, 65%, 65%)" - } - }, - { - "types": [ - "selector", - "string", - "char", - "builtin", - "inserted", - "regex", - "attr-value" - ], - "style": { - "color": "hsl(95, 38%, 62%)" - } - }, - { - "types": [ - "variable", - "operator", - "function" - ], - "style": { - "color": "hsl(207, 82%, 66%)" - } - }, - { - "types": [ - "url" - ], - "style": { - "color": "hsl(187, 47%, 55%)" - } - }, - { - "types": [ - "deleted" - ], - "style": { - "textDecorationLine": "line-through" - } - }, - { - "types": [ - "inserted" - ], - "style": { - "textDecorationLine": "underline" - } - }, - { - "types": [ - "italic" - ], - "style": { - "fontStyle": "italic" - } - }, - { - "types": [ - "important", - "bold" - ], - "style": { - "fontWeight": "bold" - } - }, - { - "types": [ - "important" - ], - "style": { - "color": "hsl(220, 14%, 71%)" - } - } - ] - }, - "additionalLanguages": [ - "php", - "nginx", - "bash" - ], - "magicComments": [ - { - "className": "theme-code-block-highlighted-line", - "line": "highlight-next-line", - "block": { - "start": "highlight-start", - "end": "highlight-end" - } - } - ] - }, - "colorMode": { - "defaultMode": "light", - "disableSwitch": false, - "respectPrefersColorScheme": false - }, - "docs": { - "versionPersistence": "localStorage", - "sidebar": { - "hideable": false, - "autoCollapseCategories": false - } - }, - "blog": { - "sidebar": { - "groupByYear": true - } - }, - "metadata": [], - "tableOfContents": { - "minHeadingLevel": 2, - "maxHeadingLevel": 3 - } - }, - "baseUrlIssueBanner": true, - "future": { - "experimental_faster": { - "swcJsLoader": false, - "swcJsMinimizer": false, - "swcHtmlMinimizer": false, - "lightningCssMinimizer": false, - "mdxCrossCompilerCache": false, - "rspackBundler": false - }, - "experimental_storage": { - "type": "localStorage", - "namespace": false - }, - "experimental_router": "browser" - }, - "onBrokenAnchors": "warn", - "onDuplicateRoutes": "warn", - "staticDirectories": [ - "static" - ], - "customFields": {}, - "headTags": [], - "stylesheets": [], - "clientModules": [], - "titleDelimiter": "|", - "noIndex": false -}; diff --git a/old/.docusaurus/globalData.json b/old/.docusaurus/globalData.json deleted file mode 100644 index 867f1fd..0000000 --- a/old/.docusaurus/globalData.json +++ /dev/null @@ -1,301 +0,0 @@ -{ - "docusaurus-plugin-content-docs": { - "default": { - "path": "/", - "versions": [ - { - "name": "current", - "label": "Next", - "isLast": true, - "path": "/", - "mainDocId": "intro", - "docs": [ - { - "id": "contribuer", - "path": "/contribuer", - "sidebar": "tutorialSidebar" - }, - { - "id": "glossaires/titres-professionnel", - "path": "/glossaires/titres-professionnel", - "sidebar": "tutorialSidebar" - }, - { - "id": "intro", - "path": "/intro", - "sidebar": "tutorialSidebar" - }, - { - "id": "ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees", - "path": "/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees", - "sidebar": "tutorialSidebar" - }, - { - "id": "ressources/bases-de-donnees/modelisation/mcd", - "path": "/ressources/bases-de-donnees/modelisation/mcd", - "sidebar": "tutorialSidebar" - }, - { - "id": "ressources/bases-de-donnees/modelisation/merise", - "path": "/ressources/bases-de-donnees/modelisation/merise", - "sidebar": "tutorialSidebar" - }, - { - "id": "ressources/frontend/react/contextes", - "path": "/ressources/frontend/react/contextes", - "sidebar": "tutorialSidebar" - }, - { - "id": "ressources/frontend/react/hooks", - "path": "/ressources/frontend/react/hooks", - "sidebar": "tutorialSidebar" - }, - { - "id": "ressources/frontend/react/initialiser-un-projet-react", - "path": "/ressources/frontend/react/initialiser-un-projet-react", - "sidebar": "tutorialSidebar" - }, - { - "id": "ressources/frontend/react/intro", - "path": "/ressources/frontend/react/intro", - "sidebar": "tutorialSidebar" - }, - { - "id": "ressources/frontend/react/premier-composant", - "path": "/ressources/frontend/react/premier-composant", - "sidebar": "tutorialSidebar" - }, - { - "id": "ressources/frontend/react/reducers", - "path": "/ressources/frontend/react/reducers", - "sidebar": "tutorialSidebar" - }, - { - "id": "ressources/frontend/react/state-et-cycle-de-vie", - "path": "/ressources/frontend/react/state-et-cycle-de-vie", - "sidebar": "tutorialSidebar" - }, - { - "id": "ressources/frontend/react/syntaxe-jsx", - "path": "/ressources/frontend/react/syntaxe-jsx", - "sidebar": "tutorialSidebar" - }, - { - "id": "ressources/influenceurs-et-createurs", - "path": "/ressources/influenceurs-et-createurs", - "sidebar": "tutorialSidebar" - }, - { - "id": "soutiens-et-contributeurs", - "path": "/soutiens-et-contributeurs", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/archives/DWWM/2018-2023/AT1/CP1", - "path": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/archives/DWWM/2018-2023/AT1/CP2", - "path": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/archives/DWWM/2018-2023/AT1/CP3", - "path": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/archives/DWWM/2018-2023/AT1/CP4", - "path": "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/archives/DWWM/2018-2023/AT2/CP5", - "path": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/archives/DWWM/2018-2023/AT2/CP6", - "path": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/archives/DWWM/2018-2023/AT2/CP7", - "path": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/archives/DWWM/2018-2023/AT2/CP8", - "path": "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/archives/DWWM/2018-2023/intro", - "path": "/titres-professionnels/archives/DWWM/2018-2023/intro", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/CDA/AT1/CP1", - "path": "/titres-professionnels/CDA/AT1/CP1", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/CDA/AT1/CP2", - "path": "/titres-professionnels/CDA/AT1/CP2", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/CDA/AT1/CP3", - "path": "/titres-professionnels/CDA/AT1/CP3", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/CDA/AT1/CP4", - "path": "/titres-professionnels/CDA/AT1/CP4", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/CDA/AT2/CP5", - "path": "/titres-professionnels/CDA/AT2/CP5", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/CDA/AT2/CP6", - "path": "/titres-professionnels/CDA/AT2/CP6", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/CDA/AT2/CP7", - "path": "/titres-professionnels/CDA/AT2/CP7", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/CDA/AT2/CP8", - "path": "/titres-professionnels/CDA/AT2/CP8", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/CDA/AT3/CP10", - "path": "/titres-professionnels/CDA/AT3/CP10", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/CDA/AT3/CP11", - "path": "/titres-professionnels/CDA/AT3/CP11", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/CDA/AT3/CP9", - "path": "/titres-professionnels/CDA/AT3/CP9", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/CDA/intro", - "path": "/titres-professionnels/CDA/intro", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/DWWM/AT1/CP1", - "path": "/titres-professionnels/DWWM/AT1/CP1", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/DWWM/AT1/CP2", - "path": "/titres-professionnels/DWWM/AT1/CP2", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/DWWM/AT1/CP3", - "path": "/titres-professionnels/DWWM/AT1/CP3", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/DWWM/AT1/CP4", - "path": "/titres-professionnels/DWWM/AT1/CP4", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/DWWM/AT2/CP5", - "path": "/titres-professionnels/DWWM/AT2/CP5", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/DWWM/AT2/CP6", - "path": "/titres-professionnels/DWWM/AT2/CP6", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/DWWM/AT2/CP7", - "path": "/titres-professionnels/DWWM/AT2/CP7", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/DWWM/AT2/CP8", - "path": "/titres-professionnels/DWWM/AT2/CP8", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/DWWM/intro", - "path": "/titres-professionnels/DWWM/intro", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/DWWM/soutenance", - "path": "/titres-professionnels/DWWM/soutenance", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/retours", - "path": "/titres-professionnels/retours", - "sidebar": "tutorialSidebar" - }, - { - "id": "titres-professionnels/se-preparer", - "path": "/titres-professionnels/se-preparer", - "sidebar": "tutorialSidebar" - }, - { - "id": "/category/-titres-professionnels", - "path": "/category/-titres-professionnels", - "sidebar": "tutorialSidebar" - }, - { - "id": "/category/️-archives", - "path": "/category/️-archives", - "sidebar": "tutorialSidebar" - }, - { - "id": "/category/-bases-de-données", - "path": "/category/-bases-de-données", - "sidebar": "tutorialSidebar" - }, - { - "id": "/category/-frontend", - "path": "/category/-frontend", - "sidebar": "tutorialSidebar" - } - ], - "draftIds": [], - "sidebars": { - "tutorialSidebar": { - "link": { - "path": "/intro", - "label": "intro" - } - } - } - } - ], - "breadcrumbs": true - } - }, - "docusaurus-lunr-search": { - "default": { - "fileNames": { - "searchDoc": "search-doc-1737111693310.json", - "lunrIndex": "lunr-index-1737111693310.json" - } - } - } -} \ No newline at end of file diff --git a/old/.docusaurus/i18n.json b/old/.docusaurus/i18n.json deleted file mode 100644 index 98c1c5f..0000000 --- a/old/.docusaurus/i18n.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "defaultLocale": "fr", - "locales": [ - "fr" - ], - "path": "i18n", - "currentLocale": "fr", - "localeConfigs": { - "fr": { - "label": "Français", - "direction": "ltr", - "htmlLang": "fr", - "calendar": "gregory", - "path": "fr" - } - } -} \ No newline at end of file diff --git a/old/.docusaurus/lunr.client.js b/old/.docusaurus/lunr.client.js deleted file mode 100644 index 8cc9e1e..0000000 --- a/old/.docusaurus/lunr.client.js +++ /dev/null @@ -1,7 +0,0 @@ -// THIS FILE IS AUTOGENERATED -// DO NOT EDIT THIS FILE! - -import * as lunr from "lunr"; -require("lunr-languages/lunr.stemmer.support")(lunr); -require("lunr-languages/lunr.fr")(lunr); -export default lunr; diff --git a/old/.docusaurus/registry.js b/old/.docusaurus/registry.js deleted file mode 100644 index 8551de4..0000000 --- a/old/.docusaurus/registry.js +++ /dev/null @@ -1,123 +0,0 @@ -export default { - "__comp---site-src-pages-index-tsx-1-df-d3e": [() => import(/* webpackChunkName: "__comp---site-src-pages-index-tsx-1-df-d3e" */ "@site/src/pages/index.tsx"), "@site/src/pages/index.tsx", require.resolveWeak("@site/src/pages/index.tsx")], - "__comp---site-src-pages-mentions-legales-tsx-9-a-7-a7b": [() => import(/* webpackChunkName: "__comp---site-src-pages-mentions-legales-tsx-9-a-7-a7b" */ "@site/src/pages/mentions-legales.tsx"), "@site/src/pages/mentions-legales.tsx", require.resolveWeak("@site/src/pages/mentions-legales.tsx")], - "__comp---theme-debug-config-23-a-2ff": [() => import(/* webpackChunkName: "__comp---theme-debug-config-23-a-2ff" */ "@theme/DebugConfig"), "@theme/DebugConfig", require.resolveWeak("@theme/DebugConfig")], - "__comp---theme-debug-contentba-8-ce7": [() => import(/* webpackChunkName: "__comp---theme-debug-contentba-8-ce7" */ "@theme/DebugContent"), "@theme/DebugContent", require.resolveWeak("@theme/DebugContent")], - "__comp---theme-debug-global-dataede-0fa": [() => import(/* webpackChunkName: "__comp---theme-debug-global-dataede-0fa" */ "@theme/DebugGlobalData"), "@theme/DebugGlobalData", require.resolveWeak("@theme/DebugGlobalData")], - "__comp---theme-debug-registry-679-501": [() => import(/* webpackChunkName: "__comp---theme-debug-registry-679-501" */ "@theme/DebugRegistry"), "@theme/DebugRegistry", require.resolveWeak("@theme/DebugRegistry")], - "__comp---theme-debug-routes-946-699": [() => import(/* webpackChunkName: "__comp---theme-debug-routes-946-699" */ "@theme/DebugRoutes"), "@theme/DebugRoutes", require.resolveWeak("@theme/DebugRoutes")], - "__comp---theme-debug-site-metadata-68-e-3d4": [() => import(/* webpackChunkName: "__comp---theme-debug-site-metadata-68-e-3d4" */ "@theme/DebugSiteMetadata"), "@theme/DebugSiteMetadata", require.resolveWeak("@theme/DebugSiteMetadata")], - "__comp---theme-doc-category-generated-index-page-14-e-640": [() => import(/* webpackChunkName: "__comp---theme-doc-category-generated-index-page-14-e-640" */ "@theme/DocCategoryGeneratedIndexPage"), "@theme/DocCategoryGeneratedIndexPage", require.resolveWeak("@theme/DocCategoryGeneratedIndexPage")], - "__comp---theme-doc-item-178-a40": [() => import(/* webpackChunkName: "__comp---theme-doc-item-178-a40" */ "@theme/DocItem"), "@theme/DocItem", require.resolveWeak("@theme/DocItem")], - "__comp---theme-doc-roota-94-67a": [() => import(/* webpackChunkName: "__comp---theme-doc-roota-94-67a" */ "@theme/DocRoot"), "@theme/DocRoot", require.resolveWeak("@theme/DocRoot")], - "__comp---theme-doc-tag-doc-list-pagedf-2-9f0": [() => import(/* webpackChunkName: "__comp---theme-doc-tag-doc-list-pagedf-2-9f0" */ "@theme/DocTagDocListPage"), "@theme/DocTagDocListPage", require.resolveWeak("@theme/DocTagDocListPage")], - "__comp---theme-doc-tags-list-page-372-89e": [() => import(/* webpackChunkName: "__comp---theme-doc-tags-list-page-372-89e" */ "@theme/DocTagsListPage"), "@theme/DocTagsListPage", require.resolveWeak("@theme/DocTagsListPage")], - "__comp---theme-doc-version-roota-7-b-5de": [() => import(/* webpackChunkName: "__comp---theme-doc-version-roota-7-b-5de" */ "@theme/DocVersionRoot"), "@theme/DocVersionRoot", require.resolveWeak("@theme/DocVersionRoot")], - "__comp---theme-docs-root-5-e-9-0b6": [() => import(/* webpackChunkName: "__comp---theme-docs-root-5-e-9-0b6" */ "@theme/DocsRoot"), "@theme/DocsRoot", require.resolveWeak("@theme/DocsRoot")], - "__comp---theme-mdx-page-1-f-3-b90": [() => import(/* webpackChunkName: "__comp---theme-mdx-page-1-f-3-b90" */ "@theme/MDXPage"), "@theme/MDXPage", require.resolveWeak("@theme/MDXPage")], - "__props---22-d-307": [() => import(/* webpackChunkName: "__props---22-d-307" */ "@generated/docusaurus-plugin-content-docs/default/p/index-466.json"), "@generated/docusaurus-plugin-content-docs/default/p/index-466.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/index-466.json")], - "__props---category-️-archivesa-58-2d1": [() => import(/* webpackChunkName: "__props---category-️-archivesa-58-2d1" */ "@generated/docusaurus-plugin-content-docs/default/p/category-️-archives-fd2.json"), "@generated/docusaurus-plugin-content-docs/default/p/category-️-archives-fd2.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/category-️-archives-fd2.json")], - "__props---category-bases-de-donnees-594-09a": [() => import(/* webpackChunkName: "__props---category-bases-de-donnees-594-09a" */ "@generated/docusaurus-plugin-content-docs/default/p/category-bases-de-donnees-fba.json"), "@generated/docusaurus-plugin-content-docs/default/p/category-bases-de-donnees-fba.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/category-bases-de-donnees-fba.json")], - "__props---category-frontende-7-c-d9b": [() => import(/* webpackChunkName: "__props---category-frontende-7-c-d9b" */ "@generated/docusaurus-plugin-content-docs/default/p/category-frontend-4de.json"), "@generated/docusaurus-plugin-content-docs/default/p/category-frontend-4de.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/category-frontend-4de.json")], - "__props---category-titres-professionnels-34-e-166": [() => import(/* webpackChunkName: "__props---category-titres-professionnels-34-e-166" */ "@generated/docusaurus-plugin-content-docs/default/p/category-titres-professionnels-9da.json"), "@generated/docusaurus-plugin-content-docs/default/p/category-titres-professionnels-9da.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/category-titres-professionnels-9da.json")], - "__props---docusaurus-debug-content-3-c-0-be2": [() => import(/* webpackChunkName: "__props---docusaurus-debug-content-3-c-0-be2" */ "@generated/docusaurus-plugin-debug/default/p/docusaurus-debug-content-0d5.json"), "@generated/docusaurus-plugin-debug/default/p/docusaurus-debug-content-0d5.json", require.resolveWeak("@generated/docusaurus-plugin-debug/default/p/docusaurus-debug-content-0d5.json")], - "__props---tags-59-a-1ee": [() => import(/* webpackChunkName: "__props---tags-59-a-1ee" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-b9f.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-b9f.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-b9f.json")], - "__props---tags-accessibilitec-01-132": [() => import(/* webpackChunkName: "__props---tags-accessibilitec-01-132" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-accessibilite-a1d.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-accessibilite-a1d.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-accessibilite-a1d.json")], - "__props---tags-architecturefcc-51f": [() => import(/* webpackChunkName: "__props---tags-architecturefcc-51f" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-architecture-02f.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-architecture-02f.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-architecture-02f.json")], - "__props---tags-back-end-5-f-5-395": [() => import(/* webpackChunkName: "__props---tags-back-end-5-f-5-395" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-back-end-7fe.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-back-end-7fe.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-back-end-7fe.json")], - "__props---tags-base-de-donnees-9-a-4-250": [() => import(/* webpackChunkName: "__props---tags-base-de-donnees-9-a-4-250" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-base-de-donnees-6c5.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-base-de-donnees-6c5.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-base-de-donnees-6c5.json")], - "__props---tags-bibliothequecc-2-2f9": [() => import(/* webpackChunkName: "__props---tags-bibliothequecc-2-2f9" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-bibliotheque-7e0.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-bibliotheque-7e0.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-bibliotheque-7e0.json")], - "__props---tags-cdad-81-162": [() => import(/* webpackChunkName: "__props---tags-cdad-81-162" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-cda-a60.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-cda-a60.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-cda-a60.json")], - "__props---tags-chiffrement-43-a-a9c": [() => import(/* webpackChunkName: "__props---tags-chiffrement-43-a-a9c" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-chiffrement-d68.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-chiffrement-d68.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-chiffrement-d68.json")], - "__props---tags-conceptionf-5-c-23e": [() => import(/* webpackChunkName: "__props---tags-conceptionf-5-c-23e" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-conception-113.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-conception-113.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-conception-113.json")], - "__props---tags-csrb-2-c-2de": [() => import(/* webpackChunkName: "__props---tags-csrb-2-c-2de" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-csr-5ca.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-csr-5ca.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-csr-5ca.json")], - "__props---tags-css-11-b-7f7": [() => import(/* webpackChunkName: "__props---tags-css-11-b-7f7" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-css-369.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-css-369.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-css-369.json")], - "__props---tags-deploiement-91-a-084": [() => import(/* webpackChunkName: "__props---tags-deploiement-91-a-084" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-deploiement-fb0.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-deploiement-fb0.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-deploiement-fb0.json")], - "__props---tags-design-pattern-791-edb": [() => import(/* webpackChunkName: "__props---tags-design-pattern-791-edb" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-design-pattern-4d2.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-design-pattern-4d2.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-design-pattern-4d2.json")], - "__props---tags-dictionnaire-de-donneesc-86-e42": [() => import(/* webpackChunkName: "__props---tags-dictionnaire-de-donneesc-86-e42" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-dictionnaire-de-donnees-6f4.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-dictionnaire-de-donnees-6f4.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-dictionnaire-de-donnees-6f4.json")], - "__props---tags-dwwm-04-a-406": [() => import(/* webpackChunkName: "__props---tags-dwwm-04-a-406" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-dwwm-ea7.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-dwwm-ea7.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-dwwm-ea7.json")], - "__props---tags-eco-conception-14-e-d59": [() => import(/* webpackChunkName: "__props---tags-eco-conception-14-e-d59" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-eco-conception-ad6.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-eco-conception-ad6.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-eco-conception-ad6.json")], - "__props---tags-environnement-de-developpementb-2-b-38a": [() => import(/* webpackChunkName: "__props---tags-environnement-de-developpementb-2-b-38a" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-environnement-de-developpement-91b.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-environnement-de-developpement-91b.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-environnement-de-developpement-91b.json")], - "__props---tags-front-end-027-83b": [() => import(/* webpackChunkName: "__props---tags-front-end-027-83b" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-front-end-b92.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-front-end-b92.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-front-end-b92.json")], - "__props---tags-frontend-905-d0c": [() => import(/* webpackChunkName: "__props---tags-frontend-905-d0c" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-frontend-a9a.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-frontend-a9a.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-frontend-a9a.json")], - "__props---tags-hachage-0-bb-eec": [() => import(/* webpackChunkName: "__props---tags-hachage-0-bb-eec" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-hachage-a9b.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-hachage-a9b.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-hachage-a9b.json")], - "__props---tags-html-5-e-7-70a": [() => import(/* webpackChunkName: "__props---tags-html-5-e-7-70a" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-html-ea7.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-html-ea7.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-html-ea7.json")], - "__props---tags-integrationca-0-9dd": [() => import(/* webpackChunkName: "__props---tags-integrationca-0-9dd" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-integration-c39.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-integration-c39.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-integration-c39.json")], - "__props---tags-interface-utilisateur-uiee-1-c7b": [() => import(/* webpackChunkName: "__props---tags-interface-utilisateur-uiee-1-c7b" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-interface-utilisateur-ui-bec.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-interface-utilisateur-ui-bec.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-interface-utilisateur-ui-bec.json")], - "__props---tags-java-script-type-scriptb-5-c-f71": [() => import(/* webpackChunkName: "__props---tags-java-script-type-scriptb-5-c-f71" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-java-script-type-script-4ed.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-java-script-type-script-4ed.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-java-script-type-script-4ed.json")], - "__props---tags-maquettageaf-8-bb5": [() => import(/* webpackChunkName: "__props---tags-maquettageaf-8-bb5" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-maquettage-4e5.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-maquettage-4e5.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-maquettage-4e5.json")], - "__props---tags-merise-683-55b": [() => import(/* webpackChunkName: "__props---tags-merise-683-55b" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-merise-88f.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-merise-88f.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-merise-88f.json")], - "__props---tags-modele-conceptuel-de-donnees-mcde-6-f-b6a": [() => import(/* webpackChunkName: "__props---tags-modele-conceptuel-de-donnees-mcde-6-f-b6a" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-modele-conceptuel-de-donnees-mcd-4e2.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-modele-conceptuel-de-donnees-mcd-4e2.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-modele-conceptuel-de-donnees-mcd-4e2.json")], - "__props---tags-modele-logique-de-donnees-mldf-9-f-bbc": [() => import(/* webpackChunkName: "__props---tags-modele-logique-de-donnees-mldf-9-f-bbc" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-modele-logique-de-donnees-mld-b5b.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-modele-logique-de-donnees-mld-b5b.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-modele-logique-de-donnees-mld-b5b.json")], - "__props---tags-modele-physique-de-donnees-mpdd-29-dea": [() => import(/* webpackChunkName: "__props---tags-modele-physique-de-donnees-mpdd-29-dea" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-modele-physique-de-donnees-mpd-715.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-modele-physique-de-donnees-mpd-715.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-modele-physique-de-donnees-mpd-715.json")], - "__props---tags-modele-relationnel-de-donnees-mrdeca-43f": [() => import(/* webpackChunkName: "__props---tags-modele-relationnel-de-donnees-mrdeca-43f" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-modele-relationnel-de-donnees-mrd-c20.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-modele-relationnel-de-donnees-mrd-c20.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-modele-relationnel-de-donnees-mrd-c20.json")], - "__props---tags-modelisationd-3-d-7aa": [() => import(/* webpackChunkName: "__props---tags-modelisationd-3-d-7aa" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-modelisation-8ee.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-modelisation-8ee.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-modelisation-8ee.json")], - "__props---tags-orm-odm-154-6a3": [() => import(/* webpackChunkName: "__props---tags-orm-odm-154-6a3" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-orm-odm-4b7.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-orm-odm-4b7.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-orm-odm-4b7.json")], - "__props---tags-react-1-ed-b1f": [() => import(/* webpackChunkName: "__props---tags-react-1-ed-b1f" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-react-df3.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-react-df3.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-react-df3.json")], - "__props---tags-responsive-87-c-668": [() => import(/* webpackChunkName: "__props---tags-responsive-87-c-668" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-responsive-3f9.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-responsive-3f9.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-responsive-3f9.json")], - "__props---tags-reverse-proxy-554-4e7": [() => import(/* webpackChunkName: "__props---tags-reverse-proxy-554-4e7" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-reverse-proxy-c23.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-reverse-proxy-c23.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-reverse-proxy-c23.json")], - "__props---tags-securiteb-96-9b1": [() => import(/* webpackChunkName: "__props---tags-securiteb-96-9b1" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-securite-b35.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-securite-b35.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-securite-b35.json")], - "__props---tags-seo-referencement-naturelb-90-ae7": [() => import(/* webpackChunkName: "__props---tags-seo-referencement-naturelb-90-ae7" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-seo-referencement-naturel-192.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-seo-referencement-naturel-192.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-seo-referencement-naturel-192.json")], - "__props---tags-serveur-web-56-b-5f0": [() => import(/* webpackChunkName: "__props---tags-serveur-web-56-b-5f0" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-serveur-web-fe0.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-serveur-web-fe0.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-serveur-web-fe0.json")], - "__props---tags-sqlf-8-c-bbb": [() => import(/* webpackChunkName: "__props---tags-sqlf-8-c-bbb" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-sql-d44.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-sql-d44.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-sql-d44.json")], - "__props---tags-ssgaa-3-815": [() => import(/* webpackChunkName: "__props---tags-ssgaa-3-815" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-ssg-04a.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-ssg-04a.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-ssg-04a.json")], - "__props---tags-ssr-7-ac-191": [() => import(/* webpackChunkName: "__props---tags-ssr-7-ac-191" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-ssr-9fe.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-ssr-9fe.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-ssr-9fe.json")], - "__props---tags-tests-149-d5f": [() => import(/* webpackChunkName: "__props---tags-tests-149-d5f" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-tests-694.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-tests-694.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-tests-694.json")], - "__props---tags-vike-595-bae": [() => import(/* webpackChunkName: "__props---tags-vike-595-bae" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-vike-d66.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-vike-d66.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-vike-d66.json")], - "__props---tags-viteca-1-e67": [() => import(/* webpackChunkName: "__props---tags-viteca-1-e67" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-vite-893.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-vite-893.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-vite-893.json")], - "__props---tags-wireframed-93-029": [() => import(/* webpackChunkName: "__props---tags-wireframed-93-029" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-wireframe-020.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-wireframe-020.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-wireframe-020.json")], - "__props---tags-zoningc-45-595": [() => import(/* webpackChunkName: "__props---tags-zoningc-45-595" */ "@generated/docusaurus-plugin-content-docs/default/p/tags-zoning-463.json"), "@generated/docusaurus-plugin-content-docs/default/p/tags-zoning-463.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/tags-zoning-463.json")], - "config---mentions-legales-5-e-9-a45": [() => import(/* webpackChunkName: "config---mentions-legales-5-e-9-a45" */ "@generated/docusaurus.config"), "@generated/docusaurus.config", require.resolveWeak("@generated/docusaurus.config")], - "content---contribuer-70-e-e3b": [() => import(/* webpackChunkName: "content---contribuer-70-e-e3b" */ "@site/docs/contribuer.mdx"), "@site/docs/contribuer.mdx", require.resolveWeak("@site/docs/contribuer.mdx")], - "content---glossaires-titres-professionneled-4-7b6": [() => import(/* webpackChunkName: "content---glossaires-titres-professionneled-4-7b6" */ "@site/docs/glossaires/titres-professionnel.mdx"), "@site/docs/glossaires/titres-professionnel.mdx", require.resolveWeak("@site/docs/glossaires/titres-professionnel.mdx")], - "content---introf-84-e9e": [() => import(/* webpackChunkName: "content---introf-84-e9e" */ "@site/docs/intro.mdx"), "@site/docs/intro.mdx", require.resolveWeak("@site/docs/intro.mdx")], - "content---markdown-page-393-028": [() => import(/* webpackChunkName: "content---markdown-page-393-028" */ "@site/src/pages/markdown-page.md"), "@site/src/pages/markdown-page.md", require.resolveWeak("@site/src/pages/markdown-page.md")], - "content---ressources-bases-de-donnees-modelisation-dictionnaire-de-donneesf-25-ccb": [() => import(/* webpackChunkName: "content---ressources-bases-de-donnees-modelisation-dictionnaire-de-donneesf-25-ccb" */ "@site/docs/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees.mdx"), "@site/docs/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees.mdx", require.resolveWeak("@site/docs/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees.mdx")], - "content---ressources-bases-de-donnees-modelisation-mcdbb-4-f22": [() => import(/* webpackChunkName: "content---ressources-bases-de-donnees-modelisation-mcdbb-4-f22" */ "@site/docs/ressources/bases-de-donnees/modelisation/mcd.mdx"), "@site/docs/ressources/bases-de-donnees/modelisation/mcd.mdx", require.resolveWeak("@site/docs/ressources/bases-de-donnees/modelisation/mcd.mdx")], - "content---ressources-bases-de-donnees-modelisation-merise-5-d-6-70a": [() => import(/* webpackChunkName: "content---ressources-bases-de-donnees-modelisation-merise-5-d-6-70a" */ "@site/docs/ressources/bases-de-donnees/modelisation/merise.mdx"), "@site/docs/ressources/bases-de-donnees/modelisation/merise.mdx", require.resolveWeak("@site/docs/ressources/bases-de-donnees/modelisation/merise.mdx")], - "content---ressources-frontend-react-contextescbc-1d1": [() => import(/* webpackChunkName: "content---ressources-frontend-react-contextescbc-1d1" */ "@site/docs/ressources/frontend/react/contextes.mdx"), "@site/docs/ressources/frontend/react/contextes.mdx", require.resolveWeak("@site/docs/ressources/frontend/react/contextes.mdx")], - "content---ressources-frontend-react-hooksd-19-abd": [() => import(/* webpackChunkName: "content---ressources-frontend-react-hooksd-19-abd" */ "@site/docs/ressources/frontend/react/hooks.mdx"), "@site/docs/ressources/frontend/react/hooks.mdx", require.resolveWeak("@site/docs/ressources/frontend/react/hooks.mdx")], - "content---ressources-frontend-react-initialiser-un-projet-reactbe-7-144": [() => import(/* webpackChunkName: "content---ressources-frontend-react-initialiser-un-projet-reactbe-7-144" */ "@site/docs/ressources/frontend/react/initialiser-un-projet-react.mdx"), "@site/docs/ressources/frontend/react/initialiser-un-projet-react.mdx", require.resolveWeak("@site/docs/ressources/frontend/react/initialiser-un-projet-react.mdx")], - "content---ressources-frontend-react-introf-04-d81": [() => import(/* webpackChunkName: "content---ressources-frontend-react-introf-04-d81" */ "@site/docs/ressources/frontend/react/intro.mdx"), "@site/docs/ressources/frontend/react/intro.mdx", require.resolveWeak("@site/docs/ressources/frontend/react/intro.mdx")], - "content---ressources-frontend-react-premier-composantb-78-d84": [() => import(/* webpackChunkName: "content---ressources-frontend-react-premier-composantb-78-d84" */ "@site/docs/ressources/frontend/react/premier-composant.mdx"), "@site/docs/ressources/frontend/react/premier-composant.mdx", require.resolveWeak("@site/docs/ressources/frontend/react/premier-composant.mdx")], - "content---ressources-frontend-react-reducers-68-b-603": [() => import(/* webpackChunkName: "content---ressources-frontend-react-reducers-68-b-603" */ "@site/docs/ressources/frontend/react/reducers.mdx"), "@site/docs/ressources/frontend/react/reducers.mdx", require.resolveWeak("@site/docs/ressources/frontend/react/reducers.mdx")], - "content---ressources-frontend-react-state-et-cycle-de-vie-719-b2a": [() => import(/* webpackChunkName: "content---ressources-frontend-react-state-et-cycle-de-vie-719-b2a" */ "@site/docs/ressources/frontend/react/state-et-cycle-de-vie.mdx"), "@site/docs/ressources/frontend/react/state-et-cycle-de-vie.mdx", require.resolveWeak("@site/docs/ressources/frontend/react/state-et-cycle-de-vie.mdx")], - "content---ressources-frontend-react-syntaxe-jsxe-94-59c": [() => import(/* webpackChunkName: "content---ressources-frontend-react-syntaxe-jsxe-94-59c" */ "@site/docs/ressources/frontend/react/syntaxe-jsx.mdx"), "@site/docs/ressources/frontend/react/syntaxe-jsx.mdx", require.resolveWeak("@site/docs/ressources/frontend/react/syntaxe-jsx.mdx")], - "content---ressources-influenceurs-et-createurseae-d03": [() => import(/* webpackChunkName: "content---ressources-influenceurs-et-createurseae-d03" */ "@site/docs/ressources/influenceurs-et-createurs.mdx"), "@site/docs/ressources/influenceurs-et-createurs.mdx", require.resolveWeak("@site/docs/ressources/influenceurs-et-createurs.mdx")], - "content---soutiens-et-contributeursd-64-5c8": [() => import(/* webpackChunkName: "content---soutiens-et-contributeursd-64-5c8" */ "@site/docs/soutiens-et-contributeurs.mdx"), "@site/docs/soutiens-et-contributeurs.mdx", require.resolveWeak("@site/docs/soutiens-et-contributeurs.mdx")], - "content---titres-professionnels-archives-dwwm-2018-2023-at-1-cp-1-fff-ab0": [() => import(/* webpackChunkName: "content---titres-professionnels-archives-dwwm-2018-2023-at-1-cp-1-fff-ab0" */ "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1.mdx"), "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1.mdx", require.resolveWeak("@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1.mdx")], - "content---titres-professionnels-archives-dwwm-2018-2023-at-1-cp-20-eb-17a": [() => import(/* webpackChunkName: "content---titres-professionnels-archives-dwwm-2018-2023-at-1-cp-20-eb-17a" */ "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2.mdx"), "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2.mdx", require.resolveWeak("@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2.mdx")], - "content---titres-professionnels-archives-dwwm-2018-2023-at-1-cp-3675-bb7": [() => import(/* webpackChunkName: "content---titres-professionnels-archives-dwwm-2018-2023-at-1-cp-3675-bb7" */ "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3.mdx"), "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3.mdx", require.resolveWeak("@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3.mdx")], - "content---titres-professionnels-archives-dwwm-2018-2023-at-1-cp-4-af-6-4ac": [() => import(/* webpackChunkName: "content---titres-professionnels-archives-dwwm-2018-2023-at-1-cp-4-af-6-4ac" */ "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4.mdx"), "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4.mdx", require.resolveWeak("@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4.mdx")], - "content---titres-professionnels-archives-dwwm-2018-2023-at-2-cp-5-bbc-1d4": [() => import(/* webpackChunkName: "content---titres-professionnels-archives-dwwm-2018-2023-at-2-cp-5-bbc-1d4" */ "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5.mdx"), "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5.mdx", require.resolveWeak("@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5.mdx")], - "content---titres-professionnels-archives-dwwm-2018-2023-at-2-cp-6-dc-9-6e9": [() => import(/* webpackChunkName: "content---titres-professionnels-archives-dwwm-2018-2023-at-2-cp-6-dc-9-6e9" */ "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6.mdx"), "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6.mdx", require.resolveWeak("@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6.mdx")], - "content---titres-professionnels-archives-dwwm-2018-2023-at-2-cp-7-b-3-f-d90": [() => import(/* webpackChunkName: "content---titres-professionnels-archives-dwwm-2018-2023-at-2-cp-7-b-3-f-d90" */ "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7.mdx"), "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7.mdx", require.resolveWeak("@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7.mdx")], - "content---titres-professionnels-archives-dwwm-2018-2023-at-2-cp-885-e-e5e": [() => import(/* webpackChunkName: "content---titres-professionnels-archives-dwwm-2018-2023-at-2-cp-885-e-e5e" */ "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8.mdx"), "@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8.mdx", require.resolveWeak("@site/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8.mdx")], - "content---titres-professionnels-archives-dwwm-2018-2023-intro-710-d42": [() => import(/* webpackChunkName: "content---titres-professionnels-archives-dwwm-2018-2023-intro-710-d42" */ "@site/docs/titres-professionnels/archives/DWWM/2018-2023/intro.mdx"), "@site/docs/titres-professionnels/archives/DWWM/2018-2023/intro.mdx", require.resolveWeak("@site/docs/titres-professionnels/archives/DWWM/2018-2023/intro.mdx")], - "content---titres-professionnels-cda-at-1-cp-1-cca-4f6": [() => import(/* webpackChunkName: "content---titres-professionnels-cda-at-1-cp-1-cca-4f6" */ "@site/docs/titres-professionnels/CDA/AT1/CP1.mdx"), "@site/docs/titres-professionnels/CDA/AT1/CP1.mdx", require.resolveWeak("@site/docs/titres-professionnels/CDA/AT1/CP1.mdx")], - "content---titres-professionnels-cda-at-1-cp-2-fe-2-287": [() => import(/* webpackChunkName: "content---titres-professionnels-cda-at-1-cp-2-fe-2-287" */ "@site/docs/titres-professionnels/CDA/AT1/CP2.mdx"), "@site/docs/titres-professionnels/CDA/AT1/CP2.mdx", require.resolveWeak("@site/docs/titres-professionnels/CDA/AT1/CP2.mdx")], - "content---titres-professionnels-cda-at-1-cp-3829-266": [() => import(/* webpackChunkName: "content---titres-professionnels-cda-at-1-cp-3829-266" */ "@site/docs/titres-professionnels/CDA/AT1/CP3.mdx"), "@site/docs/titres-professionnels/CDA/AT1/CP3.mdx", require.resolveWeak("@site/docs/titres-professionnels/CDA/AT1/CP3.mdx")], - "content---titres-professionnels-cda-at-1-cp-4910-237": [() => import(/* webpackChunkName: "content---titres-professionnels-cda-at-1-cp-4910-237" */ "@site/docs/titres-professionnels/CDA/AT1/CP4.mdx"), "@site/docs/titres-professionnels/CDA/AT1/CP4.mdx", require.resolveWeak("@site/docs/titres-professionnels/CDA/AT1/CP4.mdx")], - "content---titres-professionnels-cda-at-2-cp-5518-6b8": [() => import(/* webpackChunkName: "content---titres-professionnels-cda-at-2-cp-5518-6b8" */ "@site/docs/titres-professionnels/CDA/AT2/CP5.mdx"), "@site/docs/titres-professionnels/CDA/AT2/CP5.mdx", require.resolveWeak("@site/docs/titres-professionnels/CDA/AT2/CP5.mdx")], - "content---titres-professionnels-cda-at-2-cp-6061-cec": [() => import(/* webpackChunkName: "content---titres-professionnels-cda-at-2-cp-6061-cec" */ "@site/docs/titres-professionnels/CDA/AT2/CP6.mdx"), "@site/docs/titres-professionnels/CDA/AT2/CP6.mdx", require.resolveWeak("@site/docs/titres-professionnels/CDA/AT2/CP6.mdx")], - "content---titres-professionnels-cda-at-2-cp-72-b-6-bf7": [() => import(/* webpackChunkName: "content---titres-professionnels-cda-at-2-cp-72-b-6-bf7" */ "@site/docs/titres-professionnels/CDA/AT2/CP7.mdx"), "@site/docs/titres-professionnels/CDA/AT2/CP7.mdx", require.resolveWeak("@site/docs/titres-professionnels/CDA/AT2/CP7.mdx")], - "content---titres-professionnels-cda-at-2-cp-8-c-00-e72": [() => import(/* webpackChunkName: "content---titres-professionnels-cda-at-2-cp-8-c-00-e72" */ "@site/docs/titres-professionnels/CDA/AT2/CP8.mdx"), "@site/docs/titres-professionnels/CDA/AT2/CP8.mdx", require.resolveWeak("@site/docs/titres-professionnels/CDA/AT2/CP8.mdx")], - "content---titres-professionnels-cda-at-3-cp-10-e-45-c69": [() => import(/* webpackChunkName: "content---titres-professionnels-cda-at-3-cp-10-e-45-c69" */ "@site/docs/titres-professionnels/CDA/AT3/CP10.mdx"), "@site/docs/titres-professionnels/CDA/AT3/CP10.mdx", require.resolveWeak("@site/docs/titres-professionnels/CDA/AT3/CP10.mdx")], - "content---titres-professionnels-cda-at-3-cp-1156-a-9a1": [() => import(/* webpackChunkName: "content---titres-professionnels-cda-at-3-cp-1156-a-9a1" */ "@site/docs/titres-professionnels/CDA/AT3/CP11.mdx"), "@site/docs/titres-professionnels/CDA/AT3/CP11.mdx", require.resolveWeak("@site/docs/titres-professionnels/CDA/AT3/CP11.mdx")], - "content---titres-professionnels-cda-at-3-cp-95-a-4-85f": [() => import(/* webpackChunkName: "content---titres-professionnels-cda-at-3-cp-95-a-4-85f" */ "@site/docs/titres-professionnels/CDA/AT3/CP9.mdx"), "@site/docs/titres-professionnels/CDA/AT3/CP9.mdx", require.resolveWeak("@site/docs/titres-professionnels/CDA/AT3/CP9.mdx")], - "content---titres-professionnels-cda-introdbc-d34": [() => import(/* webpackChunkName: "content---titres-professionnels-cda-introdbc-d34" */ "@site/docs/titres-professionnels/CDA/intro.mdx"), "@site/docs/titres-professionnels/CDA/intro.mdx", require.resolveWeak("@site/docs/titres-professionnels/CDA/intro.mdx")], - "content---titres-professionnels-dwwm-at-1-cp-100-e-c3e": [() => import(/* webpackChunkName: "content---titres-professionnels-dwwm-at-1-cp-100-e-c3e" */ "@site/docs/titres-professionnels/DWWM/AT1/CP1.mdx"), "@site/docs/titres-professionnels/DWWM/AT1/CP1.mdx", require.resolveWeak("@site/docs/titres-professionnels/DWWM/AT1/CP1.mdx")], - "content---titres-professionnels-dwwm-at-1-cp-23-c-4-eb6": [() => import(/* webpackChunkName: "content---titres-professionnels-dwwm-at-1-cp-23-c-4-eb6" */ "@site/docs/titres-professionnels/DWWM/AT1/CP2.mdx"), "@site/docs/titres-professionnels/DWWM/AT1/CP2.mdx", require.resolveWeak("@site/docs/titres-professionnels/DWWM/AT1/CP2.mdx")], - "content---titres-professionnels-dwwm-at-1-cp-39-bc-21f": [() => import(/* webpackChunkName: "content---titres-professionnels-dwwm-at-1-cp-39-bc-21f" */ "@site/docs/titres-professionnels/DWWM/AT1/CP3.mdx"), "@site/docs/titres-professionnels/DWWM/AT1/CP3.mdx", require.resolveWeak("@site/docs/titres-professionnels/DWWM/AT1/CP3.mdx")], - "content---titres-professionnels-dwwm-at-1-cp-40-c-9-cb4": [() => import(/* webpackChunkName: "content---titres-professionnels-dwwm-at-1-cp-40-c-9-cb4" */ "@site/docs/titres-professionnels/DWWM/AT1/CP4.mdx"), "@site/docs/titres-professionnels/DWWM/AT1/CP4.mdx", require.resolveWeak("@site/docs/titres-professionnels/DWWM/AT1/CP4.mdx")], - "content---titres-professionnels-dwwm-at-2-cp-5-f-21-e87": [() => import(/* webpackChunkName: "content---titres-professionnels-dwwm-at-2-cp-5-f-21-e87" */ "@site/docs/titres-professionnels/DWWM/AT2/CP5.mdx"), "@site/docs/titres-professionnels/DWWM/AT2/CP5.mdx", require.resolveWeak("@site/docs/titres-professionnels/DWWM/AT2/CP5.mdx")], - "content---titres-professionnels-dwwm-at-2-cp-6626-c70": [() => import(/* webpackChunkName: "content---titres-professionnels-dwwm-at-2-cp-6626-c70" */ "@site/docs/titres-professionnels/DWWM/AT2/CP6.mdx"), "@site/docs/titres-professionnels/DWWM/AT2/CP6.mdx", require.resolveWeak("@site/docs/titres-professionnels/DWWM/AT2/CP6.mdx")], - "content---titres-professionnels-dwwm-at-2-cp-74-bf-eae": [() => import(/* webpackChunkName: "content---titres-professionnels-dwwm-at-2-cp-74-bf-eae" */ "@site/docs/titres-professionnels/DWWM/AT2/CP7.mdx"), "@site/docs/titres-professionnels/DWWM/AT2/CP7.mdx", require.resolveWeak("@site/docs/titres-professionnels/DWWM/AT2/CP7.mdx")], - "content---titres-professionnels-dwwm-at-2-cp-8807-dd0": [() => import(/* webpackChunkName: "content---titres-professionnels-dwwm-at-2-cp-8807-dd0" */ "@site/docs/titres-professionnels/DWWM/AT2/CP8.mdx"), "@site/docs/titres-professionnels/DWWM/AT2/CP8.mdx", require.resolveWeak("@site/docs/titres-professionnels/DWWM/AT2/CP8.mdx")], - "content---titres-professionnels-dwwm-intro-1-f-0-adb": [() => import(/* webpackChunkName: "content---titres-professionnels-dwwm-intro-1-f-0-adb" */ "@site/docs/titres-professionnels/DWWM/intro.mdx"), "@site/docs/titres-professionnels/DWWM/intro.mdx", require.resolveWeak("@site/docs/titres-professionnels/DWWM/intro.mdx")], - "content---titres-professionnels-dwwm-soutenanceb-38-5d2": [() => import(/* webpackChunkName: "content---titres-professionnels-dwwm-soutenanceb-38-5d2" */ "@site/docs/titres-professionnels/DWWM/soutenance.mdx"), "@site/docs/titres-professionnels/DWWM/soutenance.mdx", require.resolveWeak("@site/docs/titres-professionnels/DWWM/soutenance.mdx")], - "content---titres-professionnels-retours-0-ee-37c": [() => import(/* webpackChunkName: "content---titres-professionnels-retours-0-ee-37c" */ "@site/docs/titres-professionnels/retours.mdx"), "@site/docs/titres-professionnels/retours.mdx", require.resolveWeak("@site/docs/titres-professionnels/retours.mdx")], - "content---titres-professionnels-se-preparerc-72-72d": [() => import(/* webpackChunkName: "content---titres-professionnels-se-preparerc-72-72d" */ "@site/docs/titres-professionnels/se-preparer.mdx"), "@site/docs/titres-professionnels/se-preparer.mdx", require.resolveWeak("@site/docs/titres-professionnels/se-preparer.mdx")], - "plugin---aba-d70": [() => import(/* webpackChunkName: "plugin---aba-d70" */ "@generated/docusaurus-plugin-content-docs/default/__plugin.json"), "@generated/docusaurus-plugin-content-docs/default/__plugin.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/__plugin.json")], - "plugin---docusaurus-debugb-38-ad3": [() => import(/* webpackChunkName: "plugin---docusaurus-debugb-38-ad3" */ "@generated/docusaurus-plugin-debug/default/__plugin.json"), "@generated/docusaurus-plugin-debug/default/__plugin.json", require.resolveWeak("@generated/docusaurus-plugin-debug/default/__plugin.json")], - "plugin---markdown-pagea-74-7b5": [() => import(/* webpackChunkName: "plugin---markdown-pagea-74-7b5" */ "@generated/docusaurus-plugin-content-pages/default/__plugin.json"), "@generated/docusaurus-plugin-content-pages/default/__plugin.json", require.resolveWeak("@generated/docusaurus-plugin-content-pages/default/__plugin.json")],}; diff --git a/old/.docusaurus/routes.js b/old/.docusaurus/routes.js deleted file mode 100644 index 56abf48..0000000 --- a/old/.docusaurus/routes.js +++ /dev/null @@ -1,625 +0,0 @@ -import React from 'react'; -import ComponentCreator from '@docusaurus/ComponentCreator'; - -export default [ - { - path: '/__docusaurus/debug', - component: ComponentCreator('/__docusaurus/debug', '5ff'), - exact: true - }, - { - path: '/__docusaurus/debug/config', - component: ComponentCreator('/__docusaurus/debug/config', '5ba'), - exact: true - }, - { - path: '/__docusaurus/debug/content', - component: ComponentCreator('/__docusaurus/debug/content', 'a2b'), - exact: true - }, - { - path: '/__docusaurus/debug/globalData', - component: ComponentCreator('/__docusaurus/debug/globalData', 'c3c'), - exact: true - }, - { - path: '/__docusaurus/debug/metadata', - component: ComponentCreator('/__docusaurus/debug/metadata', '156'), - exact: true - }, - { - path: '/__docusaurus/debug/registry', - component: ComponentCreator('/__docusaurus/debug/registry', '88c'), - exact: true - }, - { - path: '/__docusaurus/debug/routes', - component: ComponentCreator('/__docusaurus/debug/routes', '000'), - exact: true - }, - { - path: '/markdown-page', - component: ComponentCreator('/markdown-page', '3d7'), - exact: true - }, - { - path: '/mentions-legales', - component: ComponentCreator('/mentions-legales', '3be'), - exact: true - }, - { - path: '/', - component: ComponentCreator('/', 'e5f'), - exact: true - }, - { - path: '/', - component: ComponentCreator('/', 'd0f'), - routes: [ - { - path: '/', - component: ComponentCreator('/', 'd1d'), - routes: [ - { - path: '/tags', - component: ComponentCreator('/tags', 'ce1'), - exact: true - }, - { - path: '/tags/accessibilite', - component: ComponentCreator('/tags/accessibilite', '2ae'), - exact: true - }, - { - path: '/tags/architecture', - component: ComponentCreator('/tags/architecture', '851'), - exact: true - }, - { - path: '/tags/back-end', - component: ComponentCreator('/tags/back-end', '6ff'), - exact: true - }, - { - path: '/tags/base-de-donnees', - component: ComponentCreator('/tags/base-de-donnees', 'c03'), - exact: true - }, - { - path: '/tags/bibliotheque', - component: ComponentCreator('/tags/bibliotheque', 'ea9'), - exact: true - }, - { - path: '/tags/cda', - component: ComponentCreator('/tags/cda', '0a1'), - exact: true - }, - { - path: '/tags/chiffrement', - component: ComponentCreator('/tags/chiffrement', '2b5'), - exact: true - }, - { - path: '/tags/conception', - component: ComponentCreator('/tags/conception', '41f'), - exact: true - }, - { - path: '/tags/csr', - component: ComponentCreator('/tags/csr', 'ff7'), - exact: true - }, - { - path: '/tags/css', - component: ComponentCreator('/tags/css', '7e4'), - exact: true - }, - { - path: '/tags/deploiement', - component: ComponentCreator('/tags/deploiement', '1fd'), - exact: true - }, - { - path: '/tags/design-pattern', - component: ComponentCreator('/tags/design-pattern', '902'), - exact: true - }, - { - path: '/tags/dictionnaire-de-donnees', - component: ComponentCreator('/tags/dictionnaire-de-donnees', 'f5a'), - exact: true - }, - { - path: '/tags/dwwm', - component: ComponentCreator('/tags/dwwm', 'f4f'), - exact: true - }, - { - path: '/tags/eco-conception', - component: ComponentCreator('/tags/eco-conception', '273'), - exact: true - }, - { - path: '/tags/environnement-de-developpement', - component: ComponentCreator('/tags/environnement-de-developpement', '3cd'), - exact: true - }, - { - path: '/tags/front-end', - component: ComponentCreator('/tags/front-end', 'c2a'), - exact: true - }, - { - path: '/tags/frontend', - component: ComponentCreator('/tags/frontend', '1d6'), - exact: true - }, - { - path: '/tags/hachage', - component: ComponentCreator('/tags/hachage', 'ee1'), - exact: true - }, - { - path: '/tags/html', - component: ComponentCreator('/tags/html', '548'), - exact: true - }, - { - path: '/tags/integration', - component: ComponentCreator('/tags/integration', '75a'), - exact: true - }, - { - path: '/tags/interface-utilisateur-ui', - component: ComponentCreator('/tags/interface-utilisateur-ui', 'e38'), - exact: true - }, - { - path: '/tags/java-script-type-script', - component: ComponentCreator('/tags/java-script-type-script', 'c31'), - exact: true - }, - { - path: '/tags/maquettage', - component: ComponentCreator('/tags/maquettage', 'e6b'), - exact: true - }, - { - path: '/tags/merise', - component: ComponentCreator('/tags/merise', 'ccf'), - exact: true - }, - { - path: '/tags/modele-conceptuel-de-donnees-mcd', - component: ComponentCreator('/tags/modele-conceptuel-de-donnees-mcd', 'ebd'), - exact: true - }, - { - path: '/tags/modele-logique-de-donnees-mld', - component: ComponentCreator('/tags/modele-logique-de-donnees-mld', '20f'), - exact: true - }, - { - path: '/tags/modele-physique-de-donnees-mpd', - component: ComponentCreator('/tags/modele-physique-de-donnees-mpd', 'cd9'), - exact: true - }, - { - path: '/tags/modele-relationnel-de-donnees-mrd', - component: ComponentCreator('/tags/modele-relationnel-de-donnees-mrd', '865'), - exact: true - }, - { - path: '/tags/modelisation', - component: ComponentCreator('/tags/modelisation', '141'), - exact: true - }, - { - path: '/tags/orm-odm', - component: ComponentCreator('/tags/orm-odm', '523'), - exact: true - }, - { - path: '/tags/react', - component: ComponentCreator('/tags/react', '79a'), - exact: true - }, - { - path: '/tags/responsive', - component: ComponentCreator('/tags/responsive', 'cac'), - exact: true - }, - { - path: '/tags/reverse-proxy', - component: ComponentCreator('/tags/reverse-proxy', 'c72'), - exact: true - }, - { - path: '/tags/securite', - component: ComponentCreator('/tags/securite', '6b3'), - exact: true - }, - { - path: '/tags/seo-referencement-naturel', - component: ComponentCreator('/tags/seo-referencement-naturel', 'ab8'), - exact: true - }, - { - path: '/tags/serveur-web', - component: ComponentCreator('/tags/serveur-web', 'ab3'), - exact: true - }, - { - path: '/tags/sql', - component: ComponentCreator('/tags/sql', 'b91'), - exact: true - }, - { - path: '/tags/ssg', - component: ComponentCreator('/tags/ssg', '845'), - exact: true - }, - { - path: '/tags/ssr', - component: ComponentCreator('/tags/ssr', '292'), - exact: true - }, - { - path: '/tags/tests', - component: ComponentCreator('/tags/tests', '924'), - exact: true - }, - { - path: '/tags/vike', - component: ComponentCreator('/tags/vike', 'c29'), - exact: true - }, - { - path: '/tags/vite', - component: ComponentCreator('/tags/vite', '8b4'), - exact: true - }, - { - path: '/tags/wireframe', - component: ComponentCreator('/tags/wireframe', '9fd'), - exact: true - }, - { - path: '/tags/zoning', - component: ComponentCreator('/tags/zoning', '487'), - exact: true - }, - { - path: '/', - component: ComponentCreator('/', '8ab'), - routes: [ - { - path: '/category/️-archives', - component: ComponentCreator('/category/️-archives', '0da'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/category/-bases-de-données', - component: ComponentCreator('/category/-bases-de-données', '2fa'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/category/-frontend', - component: ComponentCreator('/category/-frontend', '08c'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/category/-titres-professionnels', - component: ComponentCreator('/category/-titres-professionnels', '6c2'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/contribuer', - component: ComponentCreator('/contribuer', 'dda'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/glossaires/titres-professionnel', - component: ComponentCreator('/glossaires/titres-professionnel', '04c'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/intro', - component: ComponentCreator('/intro', '6da'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees', - component: ComponentCreator('/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees', '098'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/ressources/bases-de-donnees/modelisation/mcd', - component: ComponentCreator('/ressources/bases-de-donnees/modelisation/mcd', '985'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/ressources/bases-de-donnees/modelisation/merise', - component: ComponentCreator('/ressources/bases-de-donnees/modelisation/merise', '524'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/ressources/frontend/react/contextes', - component: ComponentCreator('/ressources/frontend/react/contextes', '0b2'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/ressources/frontend/react/hooks', - component: ComponentCreator('/ressources/frontend/react/hooks', 'f45'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/ressources/frontend/react/initialiser-un-projet-react', - component: ComponentCreator('/ressources/frontend/react/initialiser-un-projet-react', '993'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/ressources/frontend/react/intro', - component: ComponentCreator('/ressources/frontend/react/intro', '821'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/ressources/frontend/react/premier-composant', - component: ComponentCreator('/ressources/frontend/react/premier-composant', '797'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/ressources/frontend/react/reducers', - component: ComponentCreator('/ressources/frontend/react/reducers', 'c34'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/ressources/frontend/react/state-et-cycle-de-vie', - component: ComponentCreator('/ressources/frontend/react/state-et-cycle-de-vie', 'b0b'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/ressources/frontend/react/syntaxe-jsx', - component: ComponentCreator('/ressources/frontend/react/syntaxe-jsx', '5c3'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/ressources/influenceurs-et-createurs', - component: ComponentCreator('/ressources/influenceurs-et-createurs', '21b'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/soutiens-et-contributeurs', - component: ComponentCreator('/soutiens-et-contributeurs', '50d'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1', - component: ComponentCreator('/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1', '523'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2', - component: ComponentCreator('/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2', 'ddc'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3', - component: ComponentCreator('/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3', '274'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4', - component: ComponentCreator('/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4', '54e'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5', - component: ComponentCreator('/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5', 'a1d'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6', - component: ComponentCreator('/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6', 'b0b'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7', - component: ComponentCreator('/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7', '6cd'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8', - component: ComponentCreator('/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8', '1d0'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/archives/DWWM/2018-2023/intro', - component: ComponentCreator('/titres-professionnels/archives/DWWM/2018-2023/intro', '736'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/CDA/AT1/CP1', - component: ComponentCreator('/titres-professionnels/CDA/AT1/CP1', 'e53'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/CDA/AT1/CP2', - component: ComponentCreator('/titres-professionnels/CDA/AT1/CP2', 'dcf'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/CDA/AT1/CP3', - component: ComponentCreator('/titres-professionnels/CDA/AT1/CP3', 'd1e'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/CDA/AT1/CP4', - component: ComponentCreator('/titres-professionnels/CDA/AT1/CP4', 'e7b'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/CDA/AT2/CP5', - component: ComponentCreator('/titres-professionnels/CDA/AT2/CP5', 'ef6'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/CDA/AT2/CP6', - component: ComponentCreator('/titres-professionnels/CDA/AT2/CP6', '581'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/CDA/AT2/CP7', - component: ComponentCreator('/titres-professionnels/CDA/AT2/CP7', '01b'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/CDA/AT2/CP8', - component: ComponentCreator('/titres-professionnels/CDA/AT2/CP8', '16a'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/CDA/AT3/CP10', - component: ComponentCreator('/titres-professionnels/CDA/AT3/CP10', 'a1d'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/CDA/AT3/CP11', - component: ComponentCreator('/titres-professionnels/CDA/AT3/CP11', '806'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/CDA/AT3/CP9', - component: ComponentCreator('/titres-professionnels/CDA/AT3/CP9', '965'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/CDA/intro', - component: ComponentCreator('/titres-professionnels/CDA/intro', '8d3'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/DWWM/AT1/CP1', - component: ComponentCreator('/titres-professionnels/DWWM/AT1/CP1', '724'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/DWWM/AT1/CP2', - component: ComponentCreator('/titres-professionnels/DWWM/AT1/CP2', '38b'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/DWWM/AT1/CP3', - component: ComponentCreator('/titres-professionnels/DWWM/AT1/CP3', '8c7'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/DWWM/AT1/CP4', - component: ComponentCreator('/titres-professionnels/DWWM/AT1/CP4', 'b07'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/DWWM/AT2/CP5', - component: ComponentCreator('/titres-professionnels/DWWM/AT2/CP5', '6e9'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/DWWM/AT2/CP6', - component: ComponentCreator('/titres-professionnels/DWWM/AT2/CP6', 'aaa'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/DWWM/AT2/CP7', - component: ComponentCreator('/titres-professionnels/DWWM/AT2/CP7', '737'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/DWWM/AT2/CP8', - component: ComponentCreator('/titres-professionnels/DWWM/AT2/CP8', 'c43'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/DWWM/intro', - component: ComponentCreator('/titres-professionnels/DWWM/intro', '9b8'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/DWWM/soutenance', - component: ComponentCreator('/titres-professionnels/DWWM/soutenance', 'fb8'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/retours', - component: ComponentCreator('/titres-professionnels/retours', 'd84'), - exact: true, - sidebar: "tutorialSidebar" - }, - { - path: '/titres-professionnels/se-preparer', - component: ComponentCreator('/titres-professionnels/se-preparer', 'e8a'), - exact: true, - sidebar: "tutorialSidebar" - } - ] - } - ] - } - ] - }, - { - path: '*', - component: ComponentCreator('*'), - }, -]; diff --git a/old/.docusaurus/routesChunkNames.json b/old/.docusaurus/routesChunkNames.json deleted file mode 100644 index 5655e3b..0000000 --- a/old/.docusaurus/routesChunkNames.json +++ /dev/null @@ -1,475 +0,0 @@ -{ - "/__docusaurus/debug-5ff": { - "__comp": "__comp---theme-debug-config-23-a-2ff", - "__context": { - "plugin": "plugin---docusaurus-debugb-38-ad3" - } - }, - "/__docusaurus/debug/config-5ba": { - "__comp": "__comp---theme-debug-config-23-a-2ff", - "__context": { - "plugin": "plugin---docusaurus-debugb-38-ad3" - } - }, - "/__docusaurus/debug/content-a2b": { - "__comp": "__comp---theme-debug-contentba-8-ce7", - "__context": { - "plugin": "plugin---docusaurus-debugb-38-ad3" - }, - "__props": "__props---docusaurus-debug-content-3-c-0-be2" - }, - "/__docusaurus/debug/globalData-c3c": { - "__comp": "__comp---theme-debug-global-dataede-0fa", - "__context": { - "plugin": "plugin---docusaurus-debugb-38-ad3" - } - }, - "/__docusaurus/debug/metadata-156": { - "__comp": "__comp---theme-debug-site-metadata-68-e-3d4", - "__context": { - "plugin": "plugin---docusaurus-debugb-38-ad3" - } - }, - "/__docusaurus/debug/registry-88c": { - "__comp": "__comp---theme-debug-registry-679-501", - "__context": { - "plugin": "plugin---docusaurus-debugb-38-ad3" - } - }, - "/__docusaurus/debug/routes-000": { - "__comp": "__comp---theme-debug-routes-946-699", - "__context": { - "plugin": "plugin---docusaurus-debugb-38-ad3" - } - }, - "/markdown-page-3d7": { - "__comp": "__comp---theme-mdx-page-1-f-3-b90", - "__context": { - "plugin": "plugin---markdown-pagea-74-7b5" - }, - "content": "content---markdown-page-393-028" - }, - "/mentions-legales-3be": { - "__comp": "__comp---site-src-pages-mentions-legales-tsx-9-a-7-a7b", - "__context": { - "plugin": "plugin---markdown-pagea-74-7b5" - }, - "config": "config---mentions-legales-5-e-9-a45" - }, - "/-e5f": { - "__comp": "__comp---site-src-pages-index-tsx-1-df-d3e", - "__context": { - "plugin": "plugin---markdown-pagea-74-7b5" - }, - "config": "config---mentions-legales-5-e-9-a45" - }, - "/-d0f": { - "__comp": "__comp---theme-docs-root-5-e-9-0b6", - "__context": { - "plugin": "plugin---aba-d70" - } - }, - "/-d1d": { - "__comp": "__comp---theme-doc-version-roota-7-b-5de", - "__props": "__props---22-d-307" - }, - "/tags-ce1": { - "__comp": "__comp---theme-doc-tags-list-page-372-89e", - "__props": "__props---tags-59-a-1ee" - }, - "/tags/accessibilite-2ae": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-accessibilitec-01-132" - }, - "/tags/architecture-851": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-architecturefcc-51f" - }, - "/tags/back-end-6ff": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-back-end-5-f-5-395" - }, - "/tags/base-de-donnees-c03": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-base-de-donnees-9-a-4-250" - }, - "/tags/bibliotheque-ea9": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-bibliothequecc-2-2f9" - }, - "/tags/cda-0a1": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-cdad-81-162" - }, - "/tags/chiffrement-2b5": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-chiffrement-43-a-a9c" - }, - "/tags/conception-41f": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-conceptionf-5-c-23e" - }, - "/tags/csr-ff7": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-csrb-2-c-2de" - }, - "/tags/css-7e4": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-css-11-b-7f7" - }, - "/tags/deploiement-1fd": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-deploiement-91-a-084" - }, - "/tags/design-pattern-902": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-design-pattern-791-edb" - }, - "/tags/dictionnaire-de-donnees-f5a": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-dictionnaire-de-donneesc-86-e42" - }, - "/tags/dwwm-f4f": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-dwwm-04-a-406" - }, - "/tags/eco-conception-273": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-eco-conception-14-e-d59" - }, - "/tags/environnement-de-developpement-3cd": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-environnement-de-developpementb-2-b-38a" - }, - "/tags/front-end-c2a": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-front-end-027-83b" - }, - "/tags/frontend-1d6": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-frontend-905-d0c" - }, - "/tags/hachage-ee1": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-hachage-0-bb-eec" - }, - "/tags/html-548": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-html-5-e-7-70a" - }, - "/tags/integration-75a": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-integrationca-0-9dd" - }, - "/tags/interface-utilisateur-ui-e38": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-interface-utilisateur-uiee-1-c7b" - }, - "/tags/java-script-type-script-c31": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-java-script-type-scriptb-5-c-f71" - }, - "/tags/maquettage-e6b": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-maquettageaf-8-bb5" - }, - "/tags/merise-ccf": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-merise-683-55b" - }, - "/tags/modele-conceptuel-de-donnees-mcd-ebd": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-modele-conceptuel-de-donnees-mcde-6-f-b6a" - }, - "/tags/modele-logique-de-donnees-mld-20f": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-modele-logique-de-donnees-mldf-9-f-bbc" - }, - "/tags/modele-physique-de-donnees-mpd-cd9": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-modele-physique-de-donnees-mpdd-29-dea" - }, - "/tags/modele-relationnel-de-donnees-mrd-865": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-modele-relationnel-de-donnees-mrdeca-43f" - }, - "/tags/modelisation-141": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-modelisationd-3-d-7aa" - }, - "/tags/orm-odm-523": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-orm-odm-154-6a3" - }, - "/tags/react-79a": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-react-1-ed-b1f" - }, - "/tags/responsive-cac": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-responsive-87-c-668" - }, - "/tags/reverse-proxy-c72": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-reverse-proxy-554-4e7" - }, - "/tags/securite-6b3": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-securiteb-96-9b1" - }, - "/tags/seo-referencement-naturel-ab8": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-seo-referencement-naturelb-90-ae7" - }, - "/tags/serveur-web-ab3": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-serveur-web-56-b-5f0" - }, - "/tags/sql-b91": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-sqlf-8-c-bbb" - }, - "/tags/ssg-845": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-ssgaa-3-815" - }, - "/tags/ssr-292": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-ssr-7-ac-191" - }, - "/tags/tests-924": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-tests-149-d5f" - }, - "/tags/vike-c29": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-vike-595-bae" - }, - "/tags/vite-8b4": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-viteca-1-e67" - }, - "/tags/wireframe-9fd": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-wireframed-93-029" - }, - "/tags/zoning-487": { - "__comp": "__comp---theme-doc-tag-doc-list-pagedf-2-9f0", - "__props": "__props---tags-zoningc-45-595" - }, - "/-8ab": { - "__comp": "__comp---theme-doc-roota-94-67a" - }, - "/category/️-archives-0da": { - "__comp": "__comp---theme-doc-category-generated-index-page-14-e-640", - "__props": "__props---category-️-archivesa-58-2d1" - }, - "/category/-bases-de-données-2fa": { - "__comp": "__comp---theme-doc-category-generated-index-page-14-e-640", - "__props": "__props---category-bases-de-donnees-594-09a" - }, - "/category/-frontend-08c": { - "__comp": "__comp---theme-doc-category-generated-index-page-14-e-640", - "__props": "__props---category-frontende-7-c-d9b" - }, - "/category/-titres-professionnels-6c2": { - "__comp": "__comp---theme-doc-category-generated-index-page-14-e-640", - "__props": "__props---category-titres-professionnels-34-e-166" - }, - "/contribuer-dda": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---contribuer-70-e-e3b" - }, - "/glossaires/titres-professionnel-04c": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---glossaires-titres-professionneled-4-7b6" - }, - "/intro-6da": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---introf-84-e9e" - }, - "/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees-098": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---ressources-bases-de-donnees-modelisation-dictionnaire-de-donneesf-25-ccb" - }, - "/ressources/bases-de-donnees/modelisation/mcd-985": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---ressources-bases-de-donnees-modelisation-mcdbb-4-f22" - }, - "/ressources/bases-de-donnees/modelisation/merise-524": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---ressources-bases-de-donnees-modelisation-merise-5-d-6-70a" - }, - "/ressources/frontend/react/contextes-0b2": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---ressources-frontend-react-contextescbc-1d1" - }, - "/ressources/frontend/react/hooks-f45": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---ressources-frontend-react-hooksd-19-abd" - }, - "/ressources/frontend/react/initialiser-un-projet-react-993": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---ressources-frontend-react-initialiser-un-projet-reactbe-7-144" - }, - "/ressources/frontend/react/intro-821": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---ressources-frontend-react-introf-04-d81" - }, - "/ressources/frontend/react/premier-composant-797": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---ressources-frontend-react-premier-composantb-78-d84" - }, - "/ressources/frontend/react/reducers-c34": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---ressources-frontend-react-reducers-68-b-603" - }, - "/ressources/frontend/react/state-et-cycle-de-vie-b0b": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---ressources-frontend-react-state-et-cycle-de-vie-719-b2a" - }, - "/ressources/frontend/react/syntaxe-jsx-5c3": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---ressources-frontend-react-syntaxe-jsxe-94-59c" - }, - "/ressources/influenceurs-et-createurs-21b": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---ressources-influenceurs-et-createurseae-d03" - }, - "/soutiens-et-contributeurs-50d": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---soutiens-et-contributeursd-64-5c8" - }, - "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1-523": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-archives-dwwm-2018-2023-at-1-cp-1-fff-ab0" - }, - "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2-ddc": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-archives-dwwm-2018-2023-at-1-cp-20-eb-17a" - }, - "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3-274": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-archives-dwwm-2018-2023-at-1-cp-3675-bb7" - }, - "/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4-54e": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-archives-dwwm-2018-2023-at-1-cp-4-af-6-4ac" - }, - "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5-a1d": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-archives-dwwm-2018-2023-at-2-cp-5-bbc-1d4" - }, - "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6-b0b": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-archives-dwwm-2018-2023-at-2-cp-6-dc-9-6e9" - }, - "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7-6cd": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-archives-dwwm-2018-2023-at-2-cp-7-b-3-f-d90" - }, - "/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8-1d0": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-archives-dwwm-2018-2023-at-2-cp-885-e-e5e" - }, - "/titres-professionnels/archives/DWWM/2018-2023/intro-736": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-archives-dwwm-2018-2023-intro-710-d42" - }, - "/titres-professionnels/CDA/AT1/CP1-e53": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-cda-at-1-cp-1-cca-4f6" - }, - "/titres-professionnels/CDA/AT1/CP2-dcf": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-cda-at-1-cp-2-fe-2-287" - }, - "/titres-professionnels/CDA/AT1/CP3-d1e": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-cda-at-1-cp-3829-266" - }, - "/titres-professionnels/CDA/AT1/CP4-e7b": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-cda-at-1-cp-4910-237" - }, - "/titres-professionnels/CDA/AT2/CP5-ef6": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-cda-at-2-cp-5518-6b8" - }, - "/titres-professionnels/CDA/AT2/CP6-581": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-cda-at-2-cp-6061-cec" - }, - "/titres-professionnels/CDA/AT2/CP7-01b": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-cda-at-2-cp-72-b-6-bf7" - }, - "/titres-professionnels/CDA/AT2/CP8-16a": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-cda-at-2-cp-8-c-00-e72" - }, - "/titres-professionnels/CDA/AT3/CP10-a1d": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-cda-at-3-cp-10-e-45-c69" - }, - "/titres-professionnels/CDA/AT3/CP11-806": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-cda-at-3-cp-1156-a-9a1" - }, - "/titres-professionnels/CDA/AT3/CP9-965": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-cda-at-3-cp-95-a-4-85f" - }, - "/titres-professionnels/CDA/intro-8d3": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-cda-introdbc-d34" - }, - "/titres-professionnels/DWWM/AT1/CP1-724": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-dwwm-at-1-cp-100-e-c3e" - }, - "/titres-professionnels/DWWM/AT1/CP2-38b": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-dwwm-at-1-cp-23-c-4-eb6" - }, - "/titres-professionnels/DWWM/AT1/CP3-8c7": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-dwwm-at-1-cp-39-bc-21f" - }, - "/titres-professionnels/DWWM/AT1/CP4-b07": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-dwwm-at-1-cp-40-c-9-cb4" - }, - "/titres-professionnels/DWWM/AT2/CP5-6e9": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-dwwm-at-2-cp-5-f-21-e87" - }, - "/titres-professionnels/DWWM/AT2/CP6-aaa": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-dwwm-at-2-cp-6626-c70" - }, - "/titres-professionnels/DWWM/AT2/CP7-737": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-dwwm-at-2-cp-74-bf-eae" - }, - "/titres-professionnels/DWWM/AT2/CP8-c43": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-dwwm-at-2-cp-8807-dd0" - }, - "/titres-professionnels/DWWM/intro-9b8": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-dwwm-intro-1-f-0-adb" - }, - "/titres-professionnels/DWWM/soutenance-fb8": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-dwwm-soutenanceb-38-5d2" - }, - "/titres-professionnels/retours-d84": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-retours-0-ee-37c" - }, - "/titres-professionnels/se-preparer-e8a": { - "__comp": "__comp---theme-doc-item-178-a40", - "content": "content---titres-professionnels-se-preparerc-72-72d" - } -} \ No newline at end of file diff --git a/old/.docusaurus/site-metadata.json b/old/.docusaurus/site-metadata.json deleted file mode 100644 index f7e19a4..0000000 --- a/old/.docusaurus/site-metadata.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "docusaurusVersion": "3.6.1", - "siteVersion": "0.0.1", - "pluginVersions": { - "docusaurus-plugin-content-docs": { - "type": "package", - "name": "@docusaurus/plugin-content-docs", - "version": "3.6.1" - }, - "docusaurus-plugin-content-pages": { - "type": "package", - "name": "@docusaurus/plugin-content-pages", - "version": "3.6.1" - }, - "docusaurus-plugin-debug": { - "type": "package", - "name": "@docusaurus/plugin-debug", - "version": "3.6.1" - }, - "docusaurus-theme-classic": { - "type": "package", - "name": "@docusaurus/theme-classic", - "version": "3.6.1" - }, - "docusaurus-tailwindcss": { - "type": "local" - }, - "docusaurus-lunr-search": { - "type": "package", - "name": "docusaurus-lunr-search", - "version": "3.4.0" - }, - "docusaurus-plugin-sitemap": { - "type": "package", - "name": "@docusaurus/plugin-sitemap", - "version": "3.6.1" - }, - "docusaurus-theme-mermaid": { - "type": "package", - "name": "@docusaurus/theme-mermaid", - "version": "3.6.1" - } - } -} \ No newline at end of file diff --git a/old/.docusaurus/site-storage.json b/old/.docusaurus/site-storage.json deleted file mode 100644 index c769c71..0000000 --- a/old/.docusaurus/site-storage.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "type": "localStorage", - "namespace": "" -} \ No newline at end of file diff --git a/old/.github/workflows/deploy.yml b/old/.github/workflows/deploy.yml deleted file mode 100644 index 578d0d8..0000000 --- a/old/.github/workflows/deploy.yml +++ /dev/null @@ -1,61 +0,0 @@ -name: Deploy Docusaurus to VPS - -on: - push: - branches: - - main - -jobs: - build-and-deploy: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Setup SSH - run: | - mkdir -p ~/.ssh - echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519 - chmod 600 ~/.ssh/id_ed25519 - ssh-keyscan -H ${{ secrets.VPS_HOST }} >> ~/.ssh/known_hosts - - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version: 22 - - - name: Install pnpm - run: corepack enable && corepack prepare pnpm@latest --activate - - - name: Install dependencies - run: pnpm install - - - name: Build Docusaurus - run: pnpm run build - - - name: Install rsync - run: sudo apt-get install -y rsync - - - name: Deploy to VPS - env: - VPS_HOST: ${{ secrets.VPS_HOST }} - VPS_USER: ${{ secrets.VPS_USER }} - VPS_DEPLOY_PATH: ${{ secrets.VPS_DEPLOY_PATH }} - run: | - rsync -avz -q --delete -e "ssh -i ~/.ssh/id_ed25519" ./ $VPS_USER@$VPS_HOST:$VPS_DEPLOY_PATH --exclude=node_module --exclude=.git - - - name: Install dependencies on server - env: - VPS_HOST: ${{ secrets.VPS_HOST }} - VPS_USER: ${{ secrets.VPS_USER }} - VPS_DEPLOY_PATH: ${{ secrets.VPS_DEPLOY_PATH }} - run: | - ssh -i ~/.ssh/id_ed25519 $VPS_USER@$VPS_HOST "source /home/debian/.nvm/nvm.sh && cd $VPS_DEPLOY_PATH && pnpm install" - - - name: Restart Docusaurus server - env: - VPS_HOST: ${{ secrets.VPS_HOST }} - VPS_USER: ${{ secrets.VPS_USER }} - run: | - ssh -i ~/.ssh/id_ed25519 $VPS_USER@$VPS_HOST "source /home/debian/.nvm/nvm.sh && pm2 restart 8" diff --git a/old/.prettierignore b/old/.prettierignore deleted file mode 100644 index 3121819..0000000 --- a/old/.prettierignore +++ /dev/null @@ -1,2 +0,0 @@ -**/*.mdx -**/*.md \ No newline at end of file diff --git a/old/.vscode/settings.json b/old/.vscode/settings.json deleted file mode 100644 index 23830fb..0000000 --- a/old/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "git.ignoreLimitWarning": true -} diff --git a/old/LICENCE-Dicosaurus b/old/LICENCE-Dicosaurus deleted file mode 100644 index 87cbf53..0000000 --- a/old/LICENCE-Dicosaurus +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Facebook, Inc. and its affiliates. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/old/LICENCE-Memento-Dev b/old/LICENCE-Memento-Dev deleted file mode 100644 index 7e591e0..0000000 --- a/old/LICENCE-Memento-Dev +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Gauthier Daniels - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/old/README.md b/old/README.md deleted file mode 100644 index c820e24..0000000 --- a/old/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# Memento Dev - -This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator. - -## Website - -The website is available at [memento-dev.fr](https://memento-dev.fr/). - -### Installation - -``` -$ pnpm install -``` - -### Local Development - -``` -$ pnpm start -``` - -This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. - -### Licences - -Both of Dicosaurus and this project's documentation are under the [MIT license](https://opensource.org/licenses/MIT). - -- [Docusaurus license](./LICENCE-Dicosaurus) -- [Memento Dev license](./LICENCE-Memento-Dev) \ No newline at end of file diff --git a/old/babel.config.js b/old/babel.config.js deleted file mode 100644 index e00595d..0000000 --- a/old/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [require.resolve('@docusaurus/core/lib/babel/preset')], -}; diff --git a/old/docs/contribuer.mdx b/old/docs/contribuer.mdx deleted file mode 100644 index afb896e..0000000 --- a/old/docs/contribuer.mdx +++ /dev/null @@ -1,147 +0,0 @@ ---- -sidebar_position: 99999 -description: "Tu souhaites contribuer à Memento Dev ? C'est par ici !" ---- - -# 🤝 Contribuer - -## 👋 Avant toute chose - -**Memento Dev** est, à l'instar du [**MDN Web Docs**](https://developer.mozilla.org/en-US/) et feu **Le Site du Zéro**, -une ressourcerie en ligne destinée aux développeuses et développeurs _(de près comme de loin)_. -Notre objectif est simple : partager de courts guides qui synthétisent les concepts, les bonnes pratiques et les outils du développement web. - -L'idée n'est pas de réinventer la roue ni de proposer une énième école en ligne. -Le partage et l'entraide sont les maîtres-mots de ce projet ❤️ - -Si toi aussi tu souhaites partager tes connaissances, tes astuces et pourquoi pas tes erreurs, tu es le bienvenu ! - -## 📝 Comment contribuer ? - -De manière générale, tu peux contribuer de plusieurs manières : - -- en proposant des corrections ou des améliorations sur les contenus existants ; -- en rédigeant de nouveaux guides ; -- en proposant des idées de guides ; -- en partageant des ressources utiles ; -- en signalant des erreurs ou des liens morts. - -## 📜 Directives de rédaction - -Cette ressourcerie n'est pas un lieu de débat ni un espace publicitaire. -Il est par conséquent important de respecter les règles suivantes : - -- **Soyez concis** : les guides doivent être courts et aller à l'essentiel ; -- **Soyez clair** : évitez le jargon et les termes techniques inutiles _(ou expliquez-les)_ ; -- **Soyez précis** : vérifiez vos sources et vos informations ; -- **Soyez pédagogue** : expliquez les concepts comme si vous vous adressiez à un enfant de 10 ans _(sans le prendre pour un idiot)_ ; -- **Soyez bienveillant** : les erreurs sont humaines, ne soyez pas agressif en cas de correction. -- **Soyez ouvert** : les contributions sont ouvertes à tous, sans distinction de niveau ou d'expérience. - -En ce qui concerne la rédaction des guides, vous pouvez vous inspirer des guides existants. -Le ton employé se veut simple, direct et amical. - -Si vous remarquez un contenu qui ne respecte pas les règles mentionnées plus bas, -merci de le signaler en ouvrant une [issue](https://github.com/preparation-tp/memento-dev/issues) en précisant la page concernée. - -### ❌ Sujets interdits - -Certains sujets sont formellement interdits dans n'importe quelle page de ce site : - -- la politique ; -- la religion ; -- la pornographie ; -- la violence ; -- le racisme ; -- le sexisme ; -- l'homophobie ; -- la transphobie ; -- la xénophobie ; -- la discrimination ; -- la publicité ; -- les contenus illégaux. - -### ❌ Termes interdits - -L'emploi de certains termes considérés comme étant péjoratifs pour parler d'une personne sont également à proscrire : - -- son milieu ; -- son origine ; -- son genre ; -- son identité de genre ou l'expression de son genre ; -- son orientation sexuelle ; -- son handicap ; -- son âge ; -- son apparence physique ; -- sa situation de famille ; -- sa religion ; -- sa situation géographique ; -- autres attributs personnels. - -## 📦 Prérequis - -L'intégralité du contenu de ce site est rédigé en [MDX](https://mdxjs.com/), -un mélange de Markdown et de JSX. Des connaissances basiques en Markdown sont donc nécessaires. - -Pour contribuer, vous aurez besoin de : -- Un éditeur de texte ou de code _(Visual Studio Code, Sublime Text, Atom, etc.)_ ; -- Un navigateur web _(Chrome, Firefox, Edge, etc.)_. -- Un compte [Github](https://github.com) ; -- L'utilitaire [Git](https://git-scm.com/) installé sur votre machine ; -- [Node.js](https://nodejs.org/) et [npm](https://www.npmjs.com/) pour lancer le serveur de développement. - -## 🚀 Comment contribuer ? - -1. Faites un fork du projet - - [🔗 Documentation Github](https://docs.github.com/fr/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo) -2. Clonez le projet sur votre machine - - [🔗 Documentation Github](https://docs.github.com/fr/repositories/creating-and-managing-repositories/cloning-a-repository) -3. Créez une branche pour votre contribution - - [🔗 Documentation Github](https://github.com/git-guides#create-a-branch) -4. Faites vos modifications -5. Testez vos modifications en local - - `npm install` pour installer les dépendances - - `npm start` pour lancer le serveur de développement -6. Poussez vos modifications sur votre fork - - [🔗 Documentation Github](https://github.com/git-guides/git-push) -7. Créez une pull request - - [🔗 Documentation Github](https://docs.github.com/fr/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) - - [🔗 Pull requests du repository Memento Dev](https://github.com/preparation-tp/memento-dev/pulls) - -## ✍️ Convention de nommage - -### 📁 Git - -L'intégralité des commits et branches doit être rédigée en anglais. -Ces dernières se basent sur la convention [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/). - -### 📝 Fichiers et dossiers - -Les fichiers et dossiers pour la documentation et les assets doivent être nommés en anglais et en kebab-case, -sans caractères spéciaux ni espaces. - -Les fichiers et dossiers pour les composants React _(hors pages)_ doivent être nommés en anglais et en PascalCase. - -## ©️ Licence - -La documentation de ce projet est sous [licence MIT](https://opensource.org/license/mit). -Cette licence permet à quiconque de réutiliser les contenus de ce site à des fins commerciales, sans restriction. - -## 🔓 Cession de droits - -En contribuant à ce projet, vous autorisez le site Memento Dev à utiliser votre contenu sous licence MIT. -Aucun droit d'auteur ne peut être réclamé sur vos contributions. - -Memento Dev s'engage à ne pas se considérer comme l'auteur ou unique propriétaire de vos contributions. -Memento Dev sert uniquement de support pour la publication des différentes contributions. - -Il est important de noter que les contributions sont publiques et que tout le monde peut les consulter, -tout comme l'historique des modifications. - -## 🫶 Réutilisation des contenus - -Bien qu'aucune autorisation ne soit nécessaire pour réutiliser les contenus de ce site, -nous appréciions tout de même que vous mentionniez la source originale et la liste des contributeurs -figurant sur la page de chaque guide. - -Par respect et solidarité envers les contributeurs, merci de ne pas copier-coller les contenus sans en mentionner la source. \ No newline at end of file diff --git a/old/docs/glossaires/_category_.json b/old/docs/glossaires/_category_.json deleted file mode 100644 index 3cd2abb..0000000 --- a/old/docs/glossaires/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "📖 Glossaires", - "position": 2 -} diff --git a/old/docs/glossaires/titres-professionnel.mdx b/old/docs/glossaires/titres-professionnel.mdx deleted file mode 100644 index a53fe10..0000000 --- a/old/docs/glossaires/titres-professionnel.mdx +++ /dev/null @@ -1,84 +0,0 @@ ---- -sidebar_position: 1 -title: "Titres professionnels" -description: "Définitions des termes utilisés dans le cadre des titres professionnels." ---- - -import Admonition from '@theme/Admonition'; - -# Titres professionnels - - -Les définitions ci-dessous permettent de mieux comprendre les termes utilisés dans le cadre des titres professionnels. -Cependant, tous les termes existants ne sont pas présents sur cette page. - -Comme certains termes ne sont pas utilisés dans le cadre de ce memento, ils ne sont pas définis ici. - - -## Activité type _(AT)_ -Une activité type est un bloc de compétences qui résulte de l'agrégation de tâches _(ce qu'il y a à faire dans l'emploi)_ -dont les missions et finalités sont suffisamment proches pour être regroupées. -Elle renvoie au certificat de compétences professionnelles _(CCP)_. - -## Compétence professionnelle _(CP)_ -La compétence professionnelle se traduit par une capacité à combiner un ensemble de savoirs, -savoir faire, comportements, conduites, procédures, type de raisonnement, en vue de réaliser une tâche ou une activité. -Elle a toujours une finalité professionnelle. Le résultat de sa mise en œuvre est évaluable. - -## Compétence transversale -La compétence transversale désigne une compétence générique commune aux diverses situations professionnelles de l'emploi type. -Parmi les compétences transversales, on peut recenser les compétences correspondant : - -- à des savoirs de base, -- à des attitudes comportementales et/ou organisationnelles. - -## Critère de performance -Un critère de performance sert à porter un jugement d'appréciation sur un objet en termes de résultat(s) attendu(s) : -il revêt des aspects qualitatifs et/ou quantitatifs. - -## Emploi type -L'emploi type est un modèle d'emploi représentatif d'un ensemble d'emplois réels suffisamment proches, en termes de mission, -de contenu et d'activités effectuées, pour être regroupées : il s'agit donc d'une modélisation, -résultante d'une agrégation critique des emplois. - -## Référentiel d'Emploi, Activités et Compétences _(REAC)_ -Le REAC est un document public à caractère règlementaire _(visé par l'arrêté du titre professionnel)_ qui s'applique aux -titres professionnels du ministère chargé de l'emploi. Il décrit les repères pour une représentation concrète du -métier et des compétences qui sont regroupées en activités dans un but de certification. - -## Mise en situation professionnelle -Il s'agit d'une reconstitution qui s'inspire d'une situation professionnelle représentative de l'emploi visé par le titre. -Elle s'appuie sur le plateau technique d'évaluation défini dans l'annexe 1 du référentiel de certification. - -## Présentation d'un projet réalisé en amont de la session -Lorsqu'une mise en situation professionnelle est impossible à réaliser, il peut y avoir présentation d'un projet réalisé dans le centre de formation -ou en entreprise. Dans cette hypothèse, le candidat prépare ce projet en amont de la session. Dans ce cas, la rubrique « Informations -complémentaires concernant la présentation du projet réalisé en amont de la session » mentionne en quoi consiste ce projet. - -## Entretien technique -L'entretien technique peut être prévu par le référentiel de certification. Sa durée et son périmètre de compétences sont précisés. -Il permet si nécessaire d'analyser la mise en situation professionnelle et/ou d'évaluer une _(des)_ compétence(s) particulière(s). - -## Questionnaire professionnel -Il s'agit d'un questionnaire écrit passé sous surveillance. Cette modalité est nécessaire pour certains métiers lorsque la mise en situation ne -permet pas d'évaluer certaines compétences ou connaissances, telles des normes de sécurité. Les questions peuvent être de type questionnaire -à choix multiples _(QCM)_, semi-ouvertes ou ouvertes. - -## Questionnement à partir de production(s) -Il s'agit d'une réalisation particulière _(dossier, objet…)_ élaborée en amont de la session par le candidat, pour évaluer certaines des compétences -non évaluables par la mise en situation professionnelle. Elle donne lieu à des questions spécifiques posées par le jury. Dans ce cas, la rubrique -« Informations complémentaires concernant le questionnement à partir de production(s) » mentionne en quoi consiste/nt cette/ces production(s). - -## Entretien final -Il permet au jury de s'assurer, que le candidat possède : - -- La compréhension et la vision globale du métier quel qu'en soit le contexte d'exercice ; -- La connaissance et l'appropriation de la culture professionnelle et des représentations du métier. -- Lors de l'entretien final, le jury dispose de l'ensemble du dossier du candidat, dont son dossier professionnel - ---- - -## Sources utilisées - -- [REAC DWWM 2018 _(réalisé par l'AFPA pour le compte de l'État français)_](https://www.banque.di.afpa.fr/EspaceEmployeursCandidatsActeurs/EGPResultat.aspx?ct=01280m03&type=t) -- [RC DWWM 2018 _(réalisé par l'AFPA pour le compte de l'État français)_](https://www.banque.di.afpa.fr/EspaceEmployeursCandidatsActeurs/EGPResultat.aspx?ct=01280m03&type=t) \ No newline at end of file diff --git a/old/docs/intro.mdx b/old/docs/intro.mdx deleted file mode 100644 index 86c97f5..0000000 --- a/old/docs/intro.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -sidebar_position: 1 -description: "Memento Dev, une plateforme open-source de partage de connaissances en développement !" ---- - -# 📜 Préambule - -## Bienvenue ! - -Toi qui vient d'arriver sur cette plateforme, sache que si tu cherches un coup de main pour mieux comprendre certaines notions dans le développement, tu es tombé au bon endroit ! - -En prime, tu trouveras également des synthèses de certains référentiels de titres professionnels ! 🎉 - -## Pourquoi cette plateforme ? - -À l'instar du [**MDN Web Docs**](https://developer.mozilla.org/fr/) et feu **Le Site du Zéro**, cette plateforme a pour objectif de te fournir des ressources de qualité pour t'aider à te perfectionner dans le développement. - -## Qui peut contribuer ? - -Tout le monde ! Si tu as des connaissances que tu souhaites partager, tu es évidemment le bienvenu ! -Que tu sois auto-didacte, étudiant, formateur ou que sais-je encore : tu as ta place ici. - -Si tu es intéressé pour contribuer, tu peux consulter la page [Contribuer](/contribuer) pour en savoir plus. \ No newline at end of file diff --git a/old/docs/ressources/_category_.json b/old/docs/ressources/_category_.json deleted file mode 100644 index 1a13bbd..0000000 --- a/old/docs/ressources/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "📁 Ressources", - "position": 4 -} diff --git a/old/docs/ressources/bases-de-donnees/_category_.json b/old/docs/ressources/bases-de-donnees/_category_.json deleted file mode 100644 index fcd7f06..0000000 --- a/old/docs/ressources/bases-de-donnees/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "label": "💽 Bases de données", - "position": 1, - "link": { - "type": "generated-index" - } -} diff --git a/old/docs/ressources/bases-de-donnees/modelisation/_category_.json b/old/docs/ressources/bases-de-donnees/modelisation/_category_.json deleted file mode 100644 index 7b5db7f..0000000 --- a/old/docs/ressources/bases-de-donnees/modelisation/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Modélisation", - "position": 1 -} diff --git a/old/docs/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees.mdx b/old/docs/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees.mdx deleted file mode 100644 index 73c884b..0000000 --- a/old/docs/ressources/bases-de-donnees/modelisation/dictionnaire-de-donnees.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -sidebar_position: 3 -title: "Création du MCD" -description: "Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données." -tags: - - Conception - - Modélisation - - Base de données - - Merise - - Dictionnaire de Données - - Modèle Conceptuel de Données (MCD) - - Modèle Logique de Données (MLD) - - Modèle Relationnel de Données (MRD) - - Modèle Physique de Données (MPD) - - SQL - - DWWM - - CDA ---- - -import Admonition from '@theme/Admonition'; -import TabItem from '@theme/TabItem'; -import Tabs from '@theme/Tabs'; - -# Merise - Le Dictionnaire de Données - -Le **Dictionnaire de Données** est un document qui contient toutes les informations sur les données qui vont être stockées dans la base de données. - -Ici, on ne va pas parler de tables, de colonnes ou de relations, mais uniquement de données. Ces informations nous sont données par le client, -et il est important que le dictionnaire reste compréhensible par le client ! - -Voici un exemple de dictionnaire de données, à partir des informations données par le client : - - - - | Nom de la donnée | Type de donnée | Description | Taille attendue | Taille fixe ? | Exemple(s) de valeur | - |----------------------|----------------|---------------------------------------------------------------|-----------------|---------------|--------------------------| - | adresse email | Alphanumérique | - | N/A | N/A | elodie.martin@exemple.fr | - | prénom | Alphabétique | - | 50 caractères | Variable | Élodie, Christophe | - | nom | Alphabétique | - | 50 caractères | Variable | Martin, Dupont | - | adresse postale | Alphanumérique | Numéro de rue, type de voie et nom de la voie | N/A | N/A | 1 rue de la Paix | - | code postal | Numérique | - | 5 caractères | Fixe | 75000, 01000 | - | ville | Alphabétique | - | 50 caractères | Variable | Paris, Lyon | - | mot de passe | Alphanumérique | Mot de passé sécurisé _(haché)_ | 80 caractères | Variable | - | - | manager de l'employé | Liaison | Liaison vers le manager du salarié | N/A | N/A | N/A | - | employés managés | Liaison | Liste des salariés gérés par ce manager _(également salarié)_ | N/A | N/A | N/A | - - - - | Nom de la donnée | Type de donnée | Description | Taille attendue | Taille fixe ? | Exemple(s) de valeur | - |---------------------------|----------------|-----------------------------------------|-----------------|---------------|----------------------| - | nom | Alphanumérique | - | 255 caractères | Variable | - | - | est réalisée ? | Vrai/Faux | Indique si la tâche est réalisée ou non | N/A | N/A | Vrai, Faux | - | projet | Liaison | Projet auquel la tâche est rattachée | N/A | N/A | N/A | - - - - | Nom de la donnée | Type de donnée | Description | Taille attendue | Taille fixe ? | Exemple(s) de valeur | - |------------------|----------------|--------------------------------------|-----------------|---------------|----------------------| - | nom | Alphanumérique | - | 255 caractères | Variable | Mon super projet | - | tâches | Liaison | Liste des tâches associées au projet | N/A | N/A | N/A | - - - -Comme tu peux voir, il n'y a aucun terme technique dans ce document 😉 -Cet exemple, on va le mettre de côté car en vrai, il présente quelques notions intermédiaires qui pourraient être déroutantes pour une entrée en matière. - -Mais on y reviendra une fois toutes les étapes expliquées, comme ça tu auras un exemple un poil plus concret pour te représenter le lien entre les étapes ! \ No newline at end of file diff --git a/old/docs/ressources/bases-de-donnees/modelisation/img/mcd-exemple.webp b/old/docs/ressources/bases-de-donnees/modelisation/img/mcd-exemple.webp deleted file mode 100644 index 07f5726e81b21623ae37c567ebb8d1f6f344e114..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33714 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 E08!4d%K!iX diff --git a/old/docs/ressources/bases-de-donnees/modelisation/img/mld-exemple.webp b/old/docs/ressources/bases-de-donnees/modelisation/img/mld-exemple.webp deleted file mode 100644 index 5c62b77ca0d0fe009fd257cd83bf3fc431acc9bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22742 zcmXuKV{k4!yuDr9wr$&Xcd={RZg*|lwr$(CZQE||_j%9xpP4n8d`M>Hm#oQ`Tv3*m zkeJl~0#X+j`J?uSi)iq_KGGmi4ls>6NE|Q_5DZcXp_8h>6cG8<0+ju1?SsCk|0urRZ6H4Gef16iOn#EzfPW~z&41=L=KKjK0d;;E z0Lp9ipSUmmJ-|BSQr%783SbT}{R#9-{~dSR_f~g3_pw*6{@i!|+b=i-hy&<_pbHt0X@I>zMsCpe&oN-zs8SmZ%fyp^PtOK?~u=VFZx+~3P0e# z=FfW_~|jo?8Z^tZ~r^-I@R-3aFs|3T}(Ipcj_fgkcW(eKmG z+&AQ&--4gNFQjiJz~dC;Tk@Uq!S51K;bzcSt-AL4HP!uNy-2L%HFn7<>R_CMA?=8J@feW{QBeo()}-&3DwpNQ9f zYkp@x6~2<+Q{Q3l_Gfu(Jw?Cb-+P~B?}96PH-J|`AV3%Z{#WJ4?>p~>@N(}7Fy)i@ zIr+o)iu6PH+x61(JO3<1d&$#Y(PmO(U(IEU^^r81B{rHRj_fmUTpJSXbms?AnOi*b zIGx70)4bw^QADvsVSwn)=i|!L9B!D4G`Vb>f?Ci2V^^aJyzN#QH3PzO=}NJ^FOz|R6*6`H zOMkl4ql_a%lxLH4d)W?9 z0>Qzx2LIaK{ml|?v|aJUQ(|z5-&H@HT~88&&HNBtr1qklnGn)_WG8bTSpddsdB&kT1FrfrAZc~nn*fp5g%y#iCw)mW;irV4o=;&Su${}>!n~v8So{je_wTCCl7(Bi z{AllvTSf!&*FF9X%TjQ)m8+?I%b?QwI_Su{78vI0uhe3wgnO$?QDfAZ*f7s0?};P% zCTV*5XB}Cu&oeN$MqHSt5~N*dnnHots+mgpJswIo`|4~N6(s8d6m@2`&WB`r{ z!n$R%-2ZC*;)!r+O>SaJ19vI@M}6s35yuwwKjDLTPpmcxvZ-;zlHt(?Fyn@Q7dt?;)z#ae~2p+Z^%pP|G6$Omq@0RjE~a3#t<)Kf4Rz!`$12-0+J(zN^G3IRtQ=MxfB<0uI$Tcq{;+qyqHXpM44UC z`-63E|GwAw!&~4fTTG|$Oqw^~=qVFn{l%PyV4`3CORt8x<-^+H!PlW4O3JzCfqdNUTYA^z+y%U{X?4+I9uzGYjWTU#lRBkvLI|il z{0&n3#&C{A9RAvpdj}R9X>-k|&&UZMwT^}ht}S(z@F;Gnoo;Cf|E+c;HWa`E3ed6A zadfXcdt2F4JQb*-pM$U)f-SN`qnLFZ_rT>xqCj!XvQDj;LRV_$9$hS%~Bn) zx^Nm%rgVATPqnzSCMn+|O21pUJ1b_uo0ai&AL7Z9(&xy~1g{FHrKYd<7lvKscsApZ;=_kI#6f=#}ipTYI-d%3r)=TQNGE+I5#Pbe_wr zPWzQmZx^vdAN6mrJeOLXJ`5{;dNUC{jA>1Qs9zT8q@zb-Dg|$^s-xmJezoS#DhEDL zyz{PVO|-Bej4nB|r}WaBEREou1iIRa$+Vp1=NTLSJU~)AY#y64X7O zS;_Jl3ju%$zOtIoUSK zlp5WVP5z(y8v~#j=U*wGtrw3!NI~WUPwp{ z&B>Py2W&4I0eUOI8b3 zS`(^0n!1Xh7aEaEi1U{xkBipEsZ`3CfSX^Z^z{>73}4_X@=9OI^3qwr?}Uj?C;zy| z%o!)tKMZanEHNIb5y3}o$V=UhSuTpf5=qn{`F%> zZsS#w(>Efy(sSER=lDlz5nc^bfd!y=|0IimtL9iQNKKksxZSJmWH}+=!sXqg6HD|& zs~9zwFaK;*3*2a*PjB|VVXW3NEjsY$6sE{{z{{1;O1?eLFK0P1#Ihx50EZEQl76bz zB-{yGtgbEp?^y%g6mtG9fjS-yLK4F&m1JGrAgm~r)=34W{-OyL=HyT&86n~fAm6@wL}E}Fx#=T9p3q< zm1uy@%uCf+&(tNt>_b`twdc9x} zy_;LHC$8ri0+2-*Ap~u_7=R0!gBPGxb_3)<%oRHa|_30ex>?|0p z5-my@#7=u3qwz>0bR8aADl3NYCOx;Cyv;E~wa=g+H9E6p{_U{TKx_npx)pRyLID^) zB|T+oTo8d8WS&9XIVM&iA3UqAn~m&nLz#s*MX_QuwfJ0PrOzP#K+bdrKBlvC)7_f< zyYGs0_~j>5Hy?M;7HDUfM}9W*_Txf0cWLHX@PU22;*5zg2(QlvCi5z5$n6 z2Qc7#rJ(D7o5NiF!&QSRNA-q%0ZqTinXVE_1}14Aq-ys@t9+>(pW19>FAu{GgrLMH zdkrkH@k@jEnT)LaWesudim3uuh3HxvVY(Ge2C!fIt8y&|C@s$0 zR9z`{TUGOHHgzlF=rd9v{DFr+*4IKCO|=+nfmROX`b8thKcQEoKb z28KxNf*e;GwenxAsI*M~zWx2{!=lk(L46uJiTbFGx2Mjl?feyL#y&!u(|4f}BX`SkJRfmTCGrm?uxU{{3 zZ0L<)bZql!NNG9la1+d6w~I}*|5RhyW;Rm8SLc!6pvyRvc`u=Jd*^k`X-rITFZMRW zpC6c@MP^8`lZb`}XMcIck^wq70-hwRXt6 z5-`#UjmXBjts1`9_%Q^1Hy`F$yBUz0gTxcRsn@jx2!Ho{J3O;lZ7FfMUv(XBs)k)9 z+AB)bX<7=h2hLNUt+49owW^WrpQ0wR=5?7YJ(N}Hlb2)HLrJRSg0tuEU{=k^s#zU7I3anU@`?vl6BT3-$PbvyNh2P$-S7nS)x20&lDzY$(FD8$0?Q=71qs) z4ODjRB>_#u=BX~9ewmrDk^0k;bg?Cd9qMQnKj#UEY-%!sbvOASA0>X|N^l z+s6W=vx0zoembY<_au1*`%*0;q8?!F2j`C#ztU@EI+MF%GE7S?8%nx^Eq#puZEQ!X z47EzqP2&#Q@Zop8?^H!6d~=!IiqKh<%Rekz*K49z#L`H{!vSGV9+Jbpb=@(4O{Ezu z7`wO-oW*J6QS}egSECf_8ahhWA@D*TkppTBm==V*AI&pOB%3tkeLQhpl^2Va1HS4- zug3_*aH9~lSv>8w`88ik+vf(63tPsd$Uf%$T3MCStQe+qClqkkUj_nq$bL&PpBEgg zSH#D&td3k_R^>EOAylK}d_Ejp0rXHBy4gUO|l$kdlm5@%pIf@ItLD@S2 zFQ6BXN^89KdZ-%|C5p%?*aY^(xTSyKGE?yFRWNVo1g|BeTQk-6k=-$0(*URcG8Tqq zr3ly6=6lb=2;ZYe8hoF)05xjuXnOt5!i@y32&phml<}2FF-rKX81W(s*HQO5o>D9# z9EXQ@cl3|SqG$g!zZxF6F8Y%TojR7GpYs3|CC|zU-l$GOpPvt8VB(RQCn)K0S!6Q` zg%}$-%Vc2G8JT2#WH`qFQU!k|-%4zz?uaI)LJ6Pz3*ZU&}A z2QlA)v{a&*?pLqZ5qrDdX$;7!&87o744n-+oq6zXo-M&pZ*N-jO#AAW!5>B;Hz{*E z!c$a%Xg#JI(ez)k5<|YbrF}K5VqK+imE)|hBS?8jaQrO6^tsJ_(+)hfOoVv zdVO`nwUGRYW}$I1;~zbd7H;uPut>XB=&BWTAZKXkU%dC^LSsjvIKhwtKGyM;=?v)! zR1ITHJew`HYA9C5Hxv$y;Bp%m1f1V~-J;%XR5;!%g)W!}`+dUOrkPv$;qD(Dy&;Zb zv$kuqQbG7cjV7R^->H+_ZLEK4H|K@q!4_CBc!biIcxaHEl;wGE#5U=VO5L>9EQo|{ zd&6%sA=4mspcAL0HksRzaNQIJ(x@KQt9#NRwc^YR^hHI;k=-w|z*PyQ)@(r3$Y>i> zSo7@LB%qaFDXTwsuXQvVPw~xhnSZZe>6z@y#23Z^YJ|zdc&F=x+iFf;Y`OaNyPFG`C zVuyI@T7NQACv8}?fL0=s)t1Y%G)FS4=mk1HtC^@3iwPacZHBI=RP|Wxvh1=s+I49o z1Fd2iK8kuL$5JwA*-4b+qfVHyOs7AN*;Fwte&1qb>?ymOTJk&wSU8-|ANMHx`XCja zNL1=Bv)bdPqBbp?OKZJJuzwiL>z(d)w^ZZq7yo5_z&vb6RiA&zkEk=at5NL#dVyqu zt%U9qS*7Tnnm^m+viU(i*3pnrW$F3n$*HngvDXQ5OV(+lu&XaC%C{eny&K`G{wjM* zuOeM%MGWU65vPbJAuE)P?If*Aa=$qy8LEQ#OqEGi47gqJo2UzSHFp2O!7eWlK9{3y z@jiZF#w&Ur<}lQnmFBh-34v;pANz?7;9dRmL{&4H+3q9vjT1+yN)71-m(K2>L>G;A z_&W(r?}rBe_dTGMD#qggCZ#8eqUJ|&m1ab*t{K&@hLU$n$K)1wcV}9766o*xsk+xZ z&w+`GVa{T4dYG!nH6eMRZE=x`Tk^$mhaLA&4_7mR5Y3Lq z{62!;(tu4lV$#SCuAY6>bpoS>LFOM+WkjAkw}2zH?lqf`@=l1jGEWxs+^1DhlZp%JPvwCv^||$O0je&0raVdP^d!1i+5B#hszi3a9gMArOSZ@cK^-6j8q5X zbj#9)MBIA*bMgGJqm}~Y`16}=H%f&P@el$|%w@tG4QR73MkjrF*k0v}G-b(6XloGq zGE=whA`W#pX>Mzm#k`jc3l!r(tw}6o?^~4+a!*%OX?m7wZwx+KL=FR1w$lzf(=dPq zYc^T9r56Vz zw_c@Og%I>g&LPUqOvjOqrYS4}$iAq$l@}OFW^fK!_L!;Hd+xP&Y#@Rs{8)@AP(rWw1ssCwNze@wsa1NqLkGIQQyMbhy+U`%l{ex1 z3WZOidjwaY9%5L*A&K(x_=z6*0rqWU@Wb;KEgun0bUS%kHTZJK^X4j25{=+~?@Iw*jA()j%6s3`qxuBJ~% zphu-$iy{Qh?1=Z$A9TYjkpxu7LTIV%X&eW)jcWo{Zvd0`vAFK3Op(TlhFmTFO9%Lc zXE%2~`emOp>G`#F{gYuXIOvU%WDl*Q^2t6J=iUTevpHHlot#v(FL z+npkGOxXeog6M0F*BovReYb(`ZqTXFZAe<-r0PoqXob&Eitm3Wc2YLpJ8zw=a*PUk zBhDmUF9iQ+Ap5J~gT*4K%t}}1_1?cFvTWjB(zi6x5@YbTk~U}2vnwdGQ<|W*YJrDn zCanvV4ED@Csck6;9d9oCztk%f|6)?u|Ao%JMMekk>vz8P;0a4Cl;r*mE{+Z>LmVs2 ztRf3`Tih&cs$+`;%HM3JTpENo6L<(R4Hnch=PIdrOYlh#|vN(iBkbwH-DCuo!?`@4jT$D87Y$9MhEXQigcz*%z#r?*-~d?MhQY~y3&=aQ(C?$IlP?yB6X1{8 zVj9g{!P6XX5wXLWql`xR#Akla7dzWtTdXGuM~H#-P-v?49MF^y)8kYAP%e6e2S^EK z^KV-PPMT2PcT4MDW$2j6AhZzL$YUv?MkRo&Xli&oskIhvbW^Kq7k7>WvYvPxB;&Y2 zQx9GWdKyD1%O?mp#VO&|4VDptoMigd;}N2)X=KMR)MlozXijO=Yp*(Aur<;}|1D9{ zV_!=t#HtO=|4=Oo4d876Z7Ej^Ne0j#bj|1&5~-~kn^T$^-=;?3ISFv7TP>ilLicfo zH9Aeg`)Xiu3%p*!G}mja`KF7^v4Zqnjqs+~?B=A3Zo8Bx2@E%gf2uG*Gt=W!+56mIN2r06ntnJ^w|O) za={}Rju?3h4NE5?bt-Z1XO#Y)N{^9(6r=XN(oZ6QDp0btA||~WTC88=r55Cbln)~* zM^F`>jwutIzt7K0a@0F4DjE+Zp~IeaZu(n51UDHvjRXb8S&-;+GGK);4RA6!@vhS1 z>*+i}$`HZ;L;=*z*dz-xR#v|o1+LQ{8-%4mG9v;G{}NMY=)WgLs~S}B8yA7$E;eSL zoP$uTm|wD+L;T}Pr|U-vBXdy2MVAey6KlKk7V>70OIvJX$5J3(?=0UqF{n1ua)2%n z=<~cu(St%jX^b}U!VjX4j3&Z^)0p^=M}N@8$%x?WA!>OwGq}qPD~>#9ZPmW6t_XH- zxM=O{rkNh2lbH2T%xE~xG;*xWr%lce*-akdWe%%iLcl3(i3_6gWm{bml=Kki7&h6( zCZ_fElsw&GhMr(wNjG}kaatvHj#uZagXYimLgzlBBr+lZ0c6ih=2b&_jQe z2Q>-pw>k@fre-(^XEK^0kdL2VS`S~H^=BC!CthXYixlc5xHBqvC%t83tt@vfo z+Q{j>D6fpMpBFmVwXnFqw=%X5jl8pwrNlKA2lXl;d$LMvS>dzaG=RK~%>;&&QB2Nnmn(py_?pPDoAqj7{^J zy>o`0nCHu!etEpZnO`krJi9E{Mg)U>l=p-NVrg)Eo)YW*$eGsNMZlpa|61x$ zSa|vYjtP$$*xzdP5M}g;mxo#l!3RYzM@AP`MMo}MbWy^ zVHq{1VtJu=+dIeQU`t6mSkrvutC#{YAvDA5;2H%^<2OWks787!33(5h>AtZ==cNB z-Xlex+dhDE%}suxK}Uc-ua-#RdOvZr;XZA&>H`u7Hi}hl-q8-QeK*us7(D-Yv-U(UG!&Bk{(^SsNt95c~*&riE zT?(=)mBpH@QbhGJ=eC3CCXa!3tDYPE0s>*JT+q0d>4}mEw!2v|VuLDafd5z)t~`)g zjzI3C*Ez}EH&fvj!dfp7M6XKL#XbWPH_&^ZV5h+OigTToMqUEP5dVV=_{z7QFC#|Z zT!k&|c)MPUJcs5kq$_g~S#BX>RqB&W0C4_hqfk@qsHtuREz0nkZb&pm2EsUJy8OB! zE6Mk=T>OuC}B7qk3$I>NFfi9<#?9n`Jv)dSbQ{cUWNuHfSTk&^-Z>$&wstsI% z7Qui)lL;(FvcEzx4A>ngISn1WeJ{>v0k6bikh63 zvBf8-Een|MC>Fb4SJzTB1GM%qUxRw8MqG-eQ`OV=r$<}zb>&-zv4Zlr+=s^Lv97RXUjcD&NwMjco+723S>$;&Vx#w zF>>QHaAt!!DgVbReFP`bRgQcDMgIVPt_QhW(WbC^uxq{>J!tixhSldlie2i&IEMLS zLV0fQMolzOTP5((I-rQgy6Zzg%{++FSW{dkTN;jH0%gX<{=H9iji*fTMV zuI%G^`zvgERHSe>tBq1NI3@JLyt?@Nqa8mdOoju=p{9caz%)ZKM5j8d$C8#mQ!Lx+ z<%#C*W&4Vp4z(C+v(Sf&c0&#SI^C16P^aiWt79vFaT24&LIg&h?n@Q>Rc#0IAa zBZ$S9zD;UC5(8V6%FI|w@^4cE=7+58vs>}*vKnIEtV%%Ut(@3bj8iLt(3?pKXP@A0 ze3GoA=qbp2oiM>fjdlvRctW#^%Kd3atX;HMq%6|~pdBAD39RoZ{h#6nqNhz@CZ*hO zzWU7f!bV=%23H@{R5WDcI5qM;0OO46E&-ZeSBly%!h;mq2hMllI&{|Qkw(|2?B?j- z^~^v>@}R1nRBva|Vfj8(oFlE2VK5p6eEWY?q_4VJb?L$IpaSEDN+)RWLMG3TLy z>z&rfdz|WFxz9_*mU8Pz1FI}S1}_q(@L6kvqyE?_`z_NmDXY%oXP z(G%hRgxiKKvUqXj#;}yCD25h8C2Gn=0As$IJ$h725E9POG4Jx&fC1M{E6&Nv1>S{r z%)$#y9>t*Rd=AapH%m-U=){b$Mbfq$)K+28LPgX#?4 zU}l6T<(=tkg=c$a%f@ka`V`%?lebFf3>U?;E~4R$N+u zGJ+yP)9Q8ZTG+_q+1v9KfEp*mk9>$z>n4>qI+O5huC(PszGhQv^6&K}TLLwXe( zGo38PR>K}j*INlls(|(Rg3d&ETi+*UEGnYc_jrZToh0Pr@K3mdn7y5#XDl;OL?2Y9 zqm09d4rE-sSrzq(UVqgO6Iq}~)HM8j(@7>FHPS9;brR-EuAkFUU~YF3$X1^AD9&u%M?*~^q9eF@TLD-?U!1=pAUaHSs4aos_Xad{KhN~6tD_+BLKSid976L zFqve!3x@l@=LZyum5n*~nEB*VCgOF72`GnzB1NYou@h<+GQmmAyb4^6!5F$v}j>GbRrntb>dDle4%|32fG@BKOIr{ zp5s)rf;S#EcDT|?hU*7G*ZtH))h|8ru%g8?T$WsPHVav8;KN~9;u_*P58Q~5Cgi3z zPWznCo(8Iqkk!Ys6|dJ(1NnpQJ9xn%lA&!LB{j!^>KQYk0XKo1c^&Ww>9o0HivnZqmiHzk5f8!AZyUvXfKDEO4A-+W6H06M)C#7Pu)- z(2%DWn!u@#7-a0X{AZBS&hUEcvcZV3W`>${U}tz(-|$mqFU!z{Y-uPdxu-h76wtHA zHGwG$+##JjhysQBh&c+aZxEu0`3J(KrvHHe)B?Q`fwYz|c^e|WIHC3n+20)e#vp!7 zV^7qEe>GBO9@Py*W;p?sr0nxUUo>oS^kG`8M`%ZbwB-GBG7ZM7m!(SzJv>LJ4}%y` zOz*u)j5F9yg73l+3a=D3@Hc|Maup6$=o4ai z^-e87RCQ&9vhAp8aKAs-i(M-j;G#07mk*3b36o=CW8Y6Ns(ohN0v2eBg)1LK62rGl zkHf_^=0xVpp4jGW@PNtK>A1(btYUk{+|ujD+JaiR9ur~jQZ>=C-)cpNq+A_BmwTc7 z;98!)yboD^hpy4;H$`~v$;KlEypS0OQX#_H=!B8lAF(&4lNhktuMfb|F`h-=AIc!n zILZ!9WUbsz-^S%yvh}j`5=MI7b>IVKv4*uv1a;1Iz1j`%H!Lq!bHwnNc@<}v9AdlQ zHsMPt)EpHR0-67Y<{8C-W^Jr+JjAf|I?@8vM=dhatB5Jg~(3M!@ zUf^4vu5Ce0I+2Kr<^Lrt=LI{jjaELE8;i6?s?LV?Yuebs{=<-}|9|_bCd<{VnSej& z`kI8R#)G4%M`)7vWtcdYA{zo(n8~6MAM5y+X=b_kt)OG)b}0LbgM{(oqI+*80C0W| z+w)VBCZF{S)hoH~@YbmLG+zZu)I`^AX!iz(NqFNtYvLqhNujXBB^y3#_re@ti`7tU zFeE)841P&@MW>`)cnPU>{x;&|`X0Ju4_3~~P3hoewg!;VW{2()&I$<^Z&dwhffD0( zD}iOiBP<7M82HsxRD;?mn~O>Z7s*f{Ebn5vnBX>9tx7leFvm{8le=VF72G;p{-TG= z87EimDUQq_HbJK1su2KiCp7TtJigB{Y`~*XXHxJf0nOWjd18-^Jc;mI;3({+hKW|< z$0(c+*yI8)w6!%j*-z#-6{-3aYkf>nTLe;|RW@WtW)f2xI4U`&F0hHp-@Jf2J)u=i zpLpL9&Bn2_Z>oQ@j;K{xcmq2rq-fth<`lQe%xune8EIFjskF*5I=kyw^X$Rxk{WW$ zT_ggTS_)R0Hcde^KW@wpvPO^289Xu*h6VpNG{d7|a2Hg61l%>dohedCv%a)}M}5H_ zYJC%#ZaeO&qGJbQ4s|>BM}sebvZq?9TC2*i9Pl%fv?vmEn1+BnK^6IG{^Q9>c-^V_ zX{b5_~r?0n_Y>n9Ia?mbF zmYymj`MN(w57;LMI0t;VQic*3g4VOl;0>hsw#f#&oE=aq7t#lh$;mA#5%Jrs4(w>m z@aNV1wN$ooJOpu>MkMti(aAN%WGiC`_GAxl<9v5d!dE0Nfes_S5W#1MTK2JS%&h zR~*ZKIoh5ktItcos|ZPbRv#RrV=k^`4}5P5Dfo_O1CmO+U9S^b=efF--Y$J?*G#&3 zB^0T3%sI38(H#uzFDrYS)b-QUU;G?(--vdR%g=3s8Hnqb`)SF!mk^2W@9DcWmeTQ@ znm5OcIupbfQddOx^O+UmK}^sf5UfTSl<-|vd)>>$mbg6<29rNxNB_KwiMX=P{vdAz zdIS4>$FbPIhS(Y;k)!2$;v?_<3ygC2ICNne4ero%4s+1KCpyW=T^Q%Xv~;ky`y4=O zw$DRP2}>8H)K}5moI6#wLzTSNL)nA<$OnE^U|zHR{2^CsbZaarh&qgwOF8sj7L)c2 z1W2IYB?1$^eVOH=`VZ)-eTCwYN>!Jnijv!`L6@jl;fvf=0jEJsf79(ib-HRc+Z-79 zMAg!d#V*qce}r%Ape=u2peo#A{}orGi1RD<|D$~dtN6HhJg7k`mS(=STLz4A`Xsj0 zsYmf2L|$XFIP$t~9kRyaBxKXyQ}Q_DDE$(m33cKq2~;ii^Sk~pHWQm+ zQ=?4@;^0?(DnoyF>q=Utx>!BB__$PNjQ$2&E@HSdEmda&ga{IwM0=Wgzo)NO)1yB~ z4{#<7YH^JDc))VEu|L89ZU^fzIi9#!#REG<-v_FgluWp4JZH?H_?mlQO4n2)=%fm4 zOU6Q6wLUn9v-y0f0nsl5AMrj5KcN3l3&H*c;SrtTE-KL=8ehbUjX`gLDr>g6UAbLW z%fKrX!x21`S^|B$CJzsU)IE0{Ie`m6=4TKDZ;V;PQBwZ?(`lh)+zmEwWKH`u30?3% zc%d6A%cfA|3*Y=-jM0DK@Hp=pYx!b##n6}M`SgmdNReh)bPSue-B?sb39Ljgs15Q& z_C{fiVqz(FFs>uKmVT;OfQ4N->r{TnNGyS+hpcM%jcltR?e8n`cr#lh{vlNusZbQ9 zRS%9aha5vB10=c<^N$8OB=AC&h|pwV_B4x+L^olp(m|-viHr!z zON5EVZu!Lrw{iTQn8#Og`R9)kQ57|p?ji8YYaw1(*L9S#yMn1&NAF(U)W`IcC)s(o zaz9IFrG|rFCDl_?M{e&1~`XZC%<*?nhHdoFO)76#VgQgj;5;FdGa{^ot3p9yw6j{qKaPHkaQh4!$#^_{$cLz6PX6`8E5xCEpqea zCvA{@&CmsHN#mpoIU6QfUlswQdfoGu-<#eb3H+*N;9K#8hrEBVaKKyWrdrlY`6>}U zGhlvD1iO+|zm)qME8)%l%1I>?p(1Ery+v_1wUkKQ|3yg<&}hSx{RECRf^Mihbw&7& zx#d&8W%zn<#p~eC6O)Rz*x4v;A21N7gEt8lT6MFz;B?e%YZD#a*<_IV;dwqFpQc(J zsP4MCI;!``4g+a|oeLN)`Hp`#trMIqw)pq`pdwtxwN-3|KAr(t@2UMQkzwxGH|ekNC`GdT!vXQ5QIP7lQR~di3j;b)OX+#Gjm|4|9tn#N3!NBFxEd}3tS}{ zWSs^C#&9NT=AXaf$~!X<@e0JIsP444E7+K5t*n#q*akPba?;`We}L_R;c3_H*`Uuf z=f$`udT)Or>4*$P(a#@3OP*|4Pv(|XWh;1eW`ZVNm@+S7^Jkf~l#DF&c7@~P<&&J6 zcNh57)IVv>ChCKvseem7d6@6FU28c=UUW`tNoW%!Dryp6b}r6Yip=iZ5z|kD%H~afQ|b9`D*AYe%z6`HKH{tr&;>y8^%(t_SG$k?a+X*_|;EEM;4{}*HYrJD(flyTcShgt$j z0lsUnxTOEpa$8XX|9ij3wS4uU`N|EI!O^!g>O^nnBPWygI8yF_etlCfcweEEj)@>y z)2k;p%+Hfz(qfgCI>4J7NEsdhCh381;n`-FfLgIH9epmK7!VTpJ5k2}pj$7Xh zr62I8n3@BGtq>$PB6kP$F!p`nAB<%22k=Xg+@Ih*S7M}+8pb>}SgjXSkp8&=(L6s$QHM_&Zq8GveC2KX>wYcF zxREub>!n$sF}x7YPmF6LQ)`Jw5+C;G!C8KL);t+ojk;nCsNWWc5a<>Mh@C7%7LVVny*Ks`SbHU$pxD2Op9UM zdmV>l@sPa5>BDjaj8S>EY#!zi4yQB4zfMF+uH8+Jo8wL-)Yr-a%ozCDsNd})!yNr= z+F?rZ2P}cYn=y?bhNJwHx^0b`TBcPqv})2^);!l-RH?B6g)NTBt7agp2s)p?PX|%wGAF2S7>LA+*8)xiiS^Zh^1Zo!* zNl|Id!q|Op!&}Y8S=&qGA83m7OeGTNk;`MwOw5(&P7&1s4<$iVVT3}j%xe%TwrY@g zvp16J(LAQ_R3onw7Vi8}A2ykEZ{vpS4FC6(+BN(tPe%xlaVs>M1$ppgP~!6CjQo&s(eUNoVCpv$9cMPIaPHg?UlZ{qlTIc z3;%Nze`jQ`rCAX#uIdW2_rZzrcjz>_m5L1;~g^0-W~}-zWK6ed)01K z3~~Jp&RxlSU4n^ka%@h+ZG$(0s=3=zqs_)+!v8YaFX^hI(2O>DU-8PibY1 zo>V1vOy10?&R)J)f~{*Z7c`hph}q|GBt<;ov+6(aEDu5tzxc~?)to@GQPR7b6@5!= z&9>-8Wc4B>ebZ|&XxuZj{xWdn_p^br1DVt~WzlOahas&eB+9kJGE)3>9G5Y*WC^~WJTnmsNNPg@=xIqW~$4-hEA5oXdYR90Lv6u`7w7#7sH!A(HM!0vB3U#8=R>4aotu@@L6 z`i+^!^s#l_qM+!JDk{b5ip>It-xC*hb@eeuQY^Q%Y;&@#pTXxh6YsXx1m){rUdYxW z&N&v(1fB)^9M;!$6@f;3(hB7Zs4E`Fw-{BobOXOjU&rO1h1hO{V*{C!N&?(BM4Bc> zj?=DE*#5r&T^OS0P=ZFoLHz(rfTpByz@mzICjdxXnY1tjPD6V%4lylvyMBt57s#!c z{w#smb_@gZ0$4vn-9ijnjbQP2^*mkkr9_FG{kbAfhL-aopFTbIf^y3Yp662spV;jS zYxRkh7Je{{mM}F^R>~+ZQY%31u|^y*I=^>%kfgm>dHrD|-b2M;87R{3Oby||;}Vg|8};Fl#Lh?Dl$qLyEW z;^6EMZ&YF~qN|wXXa3i*89*@CA{c$O`=`Z}ASPtR7v+=HFsI)$KHCZ*kTW-wQ%;p| zteEqDL>8WBiWSsVPh|Z}o$J&yryS=N;U;>YE~zY9GFddhnxak#(dD2cG<;@<^lZtQ zri{?HG>7dkl7W3x>rP@IKnUYt-1v67gfjOLe5LocNT6o-t?YrxX;buJMUnI|Q}vX- zDC_j9g~;&Ueyo-rGGMons2QbHP#8*ta2^m1$J8!z4BG4MwQKb`Dy&LMPgo@W@<)PH zO>%slBnl%Tb#NYTay(aSQ5Ozn%4Q+4yb0Fmr@a;;Cqw{ti;)4Btnh!=3LP7UAvngG*R^yCe2w9qpB%?9Hj!>~EpeGSiyxbT*BcQ>L2Hc}%evwsPLY_SjyR z!MrN6lFMXp_D)Pq4GX8-7k?2%l4NA#x{YKkStFWlC7LOk8*imr(oMcr!w3?4AG}ip zg}$7iobxGGe7~#6Y(S$5mZ$W_zKp-rUF)*wt8SW^6A7PKjWDb8_5=U}Aww8CE)eWp z9>XCT*ygVmZ&aX8`Ma2n_RWfJTpk|dAaPH^E%t}-~qW0PJV#-)FeA@bfMd}0|SUTxMbtS1EL1-ESOH zJyx0Tu5xsqa>*>81}=dFhOqYCI78g@QeYw`nxeTjImB|EK0~R#J<7b47|QYGdKYy_ zmjJhTo}x98xzJ$qNV+D$=WqFILvjAt*)ooH@uxJY|T5&=B(eOfWorjWM|b z_X}-eQU-Ti<3r~MB; zOQ;{Q={~CtHdJMVh$ot5sgceK+S|;nZmk|!;m6P=JShEyMY7yGg9PUZT~9pA6Mdcj zN6+n9@E@F;h$&seTj3EW$*G)y$KaQOvkMfxKxw>}SG>hsYwL7aL&or2k0@yEH`+8- zvvIuyu!gRfH%P)YJdD^9YK-VwVTAZp>iu51Eh7%X?^ZxAen!|s{a3YQBS+O!@;Hn~DS{Pd|4Y4w!FDZluC4y1zxX>z%m`E{fAiOrs+B zFPR|^MJq~@OA*c>PNW*&0_XzPS&)@{_qE(s`)ROoAlof+0iDZ{H3^`Cg})?nD{%q9 zt6nw*#bIGh)DZZ?{bLdKD)-Z?{uf*K;JJYrB2U1G{OJtl{j+ZMJhJ0iSrueLdE5tr z1ys2#!RNtLr^3zQ!#JCrT~uRFEy1zc706PEj?TqeU+_&WsHA{R7&s>MMfB08hzE$` z+LV*#0}`gu@lQ#nmel1Q=$kQW=dJ8k<%P=x+qjhZLHO_HjylqS*tr%RF*WxV9|G7CQ!VnZ8(qPa?}z=UP)7n6>GF=~jynWes#&MHf9~wvr9Q^2 zGGYjbFK^%+Q}^Tja0Gz`Vy7=EgNbXQ_Lj!&2qKWzi=_mmC7uv&1J4V z6~E+C#F99#S1!`@k45kRWv$KTiKleDOc=#ZM;8O&D>1O#xY{!iVa7akY>o6c7G_Rct$b?p$CvCTWZVD3<^}#DwVP`6zwd$EAT|$;6tjX0<}0{o=*tZ4ZL&I$gCIA|U29~kZxoe(|HBma zExF_T+2WG7f|4DGdSCt^Wx%JkP^$4girF1Up6as2u-RmqRm<@os z`(zE!jt55Z9KSrYoGjW=t211A3@*V@UxzX<+Om*lA8R_>hMMaY)iLo?3sYKx#eQ9p z?swImx}>LUh~cn`yp`r?N^}Sqjqshg^P@=lOqIwi!I5dakaUs`7FO2(nmVNWhkpW# z)k4sh@L=5Uooj69T9=ZE>;z2~h!2ChXk4IHG)l%_v))J+PjC>wdlF3_I||$8qbZ>q zMk>WyGZ|wM^Rg~L0S=a|ZXGH<&87&~9wkmb5OknxZJsOe))%R)qg13a@1g#-bML+0 z*=o4wvQ0_?LgDuo8XP!l^eoZ;mZV%_Q6fZw*4&knq>%x-)9}vi7UM6@!`3S`<4ezy z58$IaDfg0jdcL^AnnTkBv$6?S@A2!963~uwysQNY8q{<7FHvFcbB9@uTi_|eGzl?{ z%%Vfij2hLjg%iAoo^h@gzS_NbN?mr^XR&o0H|zMZ}X<;+~1{AW0K@v<`SKGU@fcBN184vXd^0LQwb#<@wW zL5sY^IaP8*F}GTP2nzAjc9NyAj5((}h+!A8b9Y0jTJXrL1?PgQLNS-DuXVvb`$JRNPiaEj8tR>^m&53Vi4AQF8I2 zAgS**@_}w2nfYlkBk!GJS+#?MiKts2J=j(GA~=VA!j-88Y7CHn4d%VF1NQhP0R-H! zV~w9d@ouK`S;4Ow>e;3p56hQ^^(`8!cjA4mEer?}2~VqH$k#8J8BD0O7b8XX^*SdD zTEFRn97R#D7Etl9>;Qch<`A}*FWx!K7$pWxk@^v*mGmURkd!+IJCN^tAPt8-A=Mmo z*NBZv)V|R+KAB#&mV~e3v;ueC$TUMW0{bXt80!$-R}l^mvxT32kbyrBWyB-1cNHi? zNJE;tE_pD5u$=PUP^u(<_1*Dre(8?KZ6(8mi&5O>{o~Err=av%^j|G_m-hJo8aAtY zPKnu$apc8HOt@y)s$7E)H68$0hj&(j!Pp^=_Xrs){GM5hTS6rb@4v3fwZ=Y{q7 z8VbV9K?!Vz5j8?&qz@ja@8yU$!MSRP(E%yV#;+idG5-pR1id~BpAl6T8>H!bf!<#yxBW)?EAKTtLYhCp z(9SA*7^Gva8_#Com^1S(tW>mio|ZB6myOlWN#{WEI|K|Lk3IfO%J!ntNz4~V+?eAa zXWWvuNeEHSOqkl9O3GMT$$X>Z!zBhI%;KMWWiFpmNSjEeF(ams&8Zc4$-ur8O(4Hy z$D@_9`#g@U81C?Xrp1I`R2q7{USkKUEq6(;OF{dNb;0!wWvV;CkE~xmW=j?J&;C`kfj2gT6COe7d_rmk5 zQ8iR7A3_wD1Fz|4$Z|=WWW4!@``geq?%YGMrF&Jf!v)KC$_%^ri|s-=_O}&KnT6UUU=|9AF`pr#@_+!N z`_+yK93scDIaN{1w0i$%3~ki#!z95jUzvU>Ms{)h7Fhzqdugf&Mo;=n#0Zvb%v|7` znDOc$%M!#F?p!RP#HEeNe$KhEsA4@S={iQgrfajSbz)57n$PS}vr4hwpUexOii{#$ z7VblRon>vCN9+9Cm7OYs^g)8uXz(RZ>2JGNkX9{$L>4|R&k<1Wqk6o^E11S2y^-PrM?W& zk+2N*JX7yiD{R}AV$u}3!sev!YAyrXV7|aTQM`<5lUpHVc$mm+smKOiJNRfk#B7;g zvlz^K(K;sAi}BbJ0i4y{{5n_jK^Wh7^Ccv09$7>N#v?h|O$n(9buS@EPAFTR%ZpEY z7cSc!+4SFdJ^6-Y97{bCd@5Kk)&gL~9n8L&WoEI};YY1-CCKNZ~Zn504=}qm(sK$_)W=SxJyix|KRLR*u#i;w6 zMR*(};QQlWf{{Yzy#YKM==bg`y(5 zQ=1&flOSn*(=8eWyL{50ky6iPDW_ae#3+1(S-KGv&5D{sV8FhP1N@*Dc{hBTJ}I4o z&MlNuqPQPrDMnlplyn^J7;p_z)8rzYn*v5 zhlr>;BJ~`4sj~ODDbOAuojWUUVnU`o5hv9I9 zdFoM>eov6fBf&Xe>3(kmQP1IC1MZrx18v04+ohG=nRpEjM#Z<)xK*-1+P*p$TUAUj z|AnVgR|^?hgHji>OQl+1DmTou=dTcpX_}zXu7)rxnP`NZK|=i?%d?P6T<;sKo0Jhr zuL8G|`DH<iu1w`8+uT9HUQ$cxD{8+e$hdZ%HDk14+ax=~HM?sBT6x4!WcYC1My zKaI3oD70?_M;o+i_(l@TX*8N;BrmWwtR9f(8s?x{H);-I%Y?b0!`#7Hrs@+r29Jt_ zPaE!?dx?hDCOk=NGtEPTu&I#hC4|vs@^6+JN~E0Okl^R^Syva$HsbPh`hkMl&M^qF zD!uuoO*UzmM3>lpplJ~OJFWBe`k?W23khbwwqmF0p|t{QamfaX1v3Sv4d`)dF1SOU zc|QvSz)AC}052Ab!vtw!q(PMCt64sNznUdTcfe=CJAakjG@a>KMby4e8%3hr071qQ z2;^V_T8^L992h&wykzR0^Bcf}gOc`h%Zx<>I*6_R{xsz;M*~)Q?&#T??dcK;)rtUc zmVsZM$A%Nm`nf_B>X@%x$WLZ^;ctg1iXuyg*o6~Y1&8ClZ4;_|0e(hA{+#^}aV;r9 zxlHHGwF#NMJBPF6%^9UMF)m`IW6j2MTxpyFp=M6Lg{V#j4A2DS$`$8@>5f3^$(<_w zG3*Fa-8Umd>1?h5t4&Z1nR6GY ze!S*6-}EP$qOfk@#}xpA(DfNMi!H*^pJ3w6+)L}iqVzZXAE{E+O>!##sER|z#sDniCWbwDm0zx3TSP8( zSl80NMq0aC)!NHfi-g!CayaJNN_w2d>qvkm#z+Dz;6RjWv1ot!<7SjtB=z4<{X7Al zo`X%{JsDXZM8v<&kHoy30CPea90X+#?SbYz#A?>D#@*v++ooKM?D7}rxdoxLi{sA? z4sUQAhF1SMEt;m7RAO6o;P;5PcbKmY)s)M0rk^|QK>)OKC>5QOGD0ZU_h z!dPQQ!rb0nSY@tcHzsX?2%#9?NxLRX{1iOVC`_XrIXu%cel*cTM$1k?9UZr7DV^3 zdsqN3{!nOGC_LK?Y9ABLh3}wkoW?SF*kf&|(MH2163N9zK8cf%zVyreC7Q%?#!hN0 z)$>VDv7&5)?X88;kYV>o-&x|W%MI_=T)w?a#kh+52aX;09s=satzxMPVY`MydFPl$yVyd0Ju6tQ)(wK10lu4K3 z-11416IzGJ(zIT1rSQ=<`~o?@FerX5@^FLka{XT*Xy)K--kD_xEaNZdDPZ7L3U2+bP%ho!$H3T%{6Id9kEC3P`hfwGw#5607%a3OB7vhXDB5i=kq{gb<#sMhoEn5#4BjQ%*fZ|0!@_sa zS*r(FZ8~zV&-X!`GiUh_i?#!`(;h3tgtk|_%|O|o!aAw8jUlF%&B+E^@5he^!lpr> zEF9OllIh{!(wQ!3Df|bGes!tL{pJWj@jZg%fdZB77hw(jx4JWcnby%K)dy;49Djwz z=n%CBLN2AviTOLn_uA%%AZ&q>XacO|3>t9>&&)syPoU~(F@jHJzyJ>>CWrh?--$J| M%ioXa7)@XR0DLX*VgLXD diff --git a/old/docs/ressources/bases-de-donnees/modelisation/img/mld-guide.webp b/old/docs/ressources/bases-de-donnees/modelisation/img/mld-guide.webp deleted file mode 100644 index 86e265dc0dcc5b85f9afd1b6187aaf9635f844ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9698 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 diff --git a/old/docs/ressources/bases-de-donnees/modelisation/mcd.mdx b/old/docs/ressources/bases-de-donnees/modelisation/mcd.mdx deleted file mode 100644 index b9dc14a..0000000 --- a/old/docs/ressources/bases-de-donnees/modelisation/mcd.mdx +++ /dev/null @@ -1,141 +0,0 @@ ---- -sidebar_position: 3 -title: "Création du MCD" -description: "Tout en respectant la méthode Merise, on va voir comment créer un Modèle Conceptuel de Données (MCD) pour une base de données." -tags: - - Conception - - Modélisation - - Base de données - - Merise - - Dictionnaire de Données - - Modèle Conceptuel de Données (MCD) - - Modèle Logique de Données (MLD) - - Modèle Relationnel de Données (MRD) - - Modèle Physique de Données (MPD) - - SQL - - DWWM - - CDA ---- - -import Admonition from '@theme/Admonition'; -import TabItem from '@theme/TabItem'; -import Tabs from '@theme/Tabs'; - -# Merise - Le MCD - -Ce modèle a pour objectif de représenter sous forme graphique les données et les relations entre ces données. -Avant le MCD, nous sommes en théorie en possession du dictionnaire de données -qui contient toutes les informations qui vont nous être utiles. - -Il est important de noter que l'on doit rester le plus clair possible dans la représentation des données, -car ce modèle doit être compris par tout le monde : y compris le client final. - -## Les définitions - -Chaque regroupement de données est appelé une entité, et chaque entité est composée d'attributs. -Les relations entre les entités sont représentées par trois éléments : -- Un trait reliant les entités _(ou la même entité dans le cas d'une relation réflexive)_ -- Un verbe qui décrit la relation à l'**infinitif** -- Une cardinalité pour quantifier la relation entre les entités - -- **Entité** : Regroupement de données, représentée par un rectangle jaune dans le schéma ci-dessous. -- **Attribut** : Propriété d'une entité - - **Discriminant** _(ou déterminant)_ : Attribut qui permet de distinguer les occurrences d'une entité. Il est souligné et en gras dans le schéma. - - **Attribut unique** : Attribut qui ne peut pas avoir la même valeur pour deux occurrences d'une entité. Il est en gras dans le schéma. -- **Relation** : Lien entre deux entités, représentée par un trait reliant les entités. -- **Cardinalité** : Nombre d'occurrences _(minimum et maximum)_ d'une entité qui peuvent être associées à une occurrence d'une autre entité. - -## Exemple de MCD - -C'est pas clair ? Prenons alors ce modèle ! -![Modèle Conceptuel de Données, MCD, Merise](./img/mcd-guide.webp) - -Ce modèle nous indique plusieurs choses : - - - - - Deux entités sont présentes : - - `Entité 1` et `Entité 2` - - L'entité `Entité 1` possède quatre attributs : - - `code entité 1` _(discriminant)_ - - `attribut 2` - - `attribut 3` - - `attribut 4` - - L'entité `Entité 2` possède trois attributs : - - `code entité 2` _(discriminant)_ - - `attribut 2` - - `attribut 3` - - - Avant d'expliquer **pourquoi** il n'y a pas d'ID, je me permets de faire un petit écart pour expliquer **ce qu'est** un ID. - - `ID`, c'est le nom qu'on donne pour parler de l'identifiant qui se doit d'être unique afin d'identifier facilement une ressource d'une autre. - - Il s'agit, en réalité, d'une donnée purement technique. - Après tout, c'est pas le client final qui va s'intéresser à l'ID de ses données, n'est-ce pas ? - - Comme le MCD se doit d'être **non-technique**, le terme `ID` n'est donc pas pertinent et surtout : n'a pas sa place. - - En reprenant le schéma ci-dessus, on peut dire que le `code entité 1` et le `code entité 2` sont les déterminants de leurs entités respectives. - Une fois qu'on fera nos schémas techniques _(MLD, MRD, MPD)_, on pourra alors utiliser le terme `ID` ! - - - - - - Une relation : - - Entre `Entité 1` et `Entité 2` - - Cardinalité : - - `Entité 1` peut posséder de 1 à 1 occurrence de `Entité 2` - - `Entité 2` peut être possédée par 0 à n occurrences de `Entité 1` - - Verbe : - - `POSSÉDER` - - Si on revient à la déclaration faite plus tôt, on remarque qu'il est effectivement à l'**infinitif**. - Mais alors, pourquoi c'est important ? - - En fait, le verbe à l'infinitif permet de faciliter la compréhension des relations et ce, dans les deux sens. - - Mais parlons des cardinalités parce qu'on y retrouve quelque chose de bizarre : `n`. - C'est quoi `n` ? - - `n` est une valeur qui signifie que l'entité peut être possédée par un nombre indéfini d'occurrences de l'autre entité. - C'est une notation que l'on retrouvera très fréquemment, puisque la majorité du temps on ne peut pas déterminer le nombre exact d'occurrences. - - - Oui ! Si tu connais à l'avance le nombre maximal d'occurrences et que ce nombre est fixe _(peu importe le contexte)_, tu peux tout à fait le spécifier. - - Par exemple : demain on te demande de modéliser une base de données avec deux entités `Année` et `Mois`. - - Tu peux donc représenter la relation de cette manière : - - > `Année 1,12 - POSSÉDER - 1,1 Mois` - > `Année` possède de 1 à 12 occurrences de `Mois` - > `Mois` est possédée par une seule occurrence de `Année` - - C'est un exemple simple, mais qui montre bien que c'est possible ! - - - - -Tiens d'ailleurs, autre sujet important pour le **MCD** ! - -On a vu que certains termes ne sont pas employés _(comme `ID`, mais également `tables`, `clé primaire` ou encore `clé étrangère`)_ -pour respecter la nature du document qui se veut non-technique. -Mais il y a autre chose qui peut nous sauter aux yeux : c'est écrit en français ! - -La raison est identique à ce que j'ai pu rabâcher plus tôt : le document doit être compris par tout le monde. -Et si le client final est francophone, il est donc plus simple de lui présenter un document dans sa langue maternelle. - - - Tant pis pour toi ! 😜 - Si je devais te donner un argument majeur, ce serait celui-ci. Après j'abandonne, promis ! - - Ton client est un spécialiste dans son domaine, mais toi tu n'y connais rien. - Il te parle de certaines données, tu arrives à peu près à comprendre comment ça fonctionne, mais tu n'as pas toutes les informations. - - D'une part, le dictionnaire de données t'en donne la nature et "qui" _(l'entité)_ possède ces données. - Par contre, comme le MCD te permet de quantifier et de qualifier les relations entre les entités, tu as une vision plus claire de ce que le client veut. - - Et si le client comprend et valide le MCD, c'est que tu as bien compris ses besoins et que tu peux donc passer à la suite du projet sans foncer dans le mur, - ce qui t'obligerai de déconstruire et de reconstruire une partie de ton application. - \ No newline at end of file diff --git a/old/docs/ressources/bases-de-donnees/modelisation/merise.mdx b/old/docs/ressources/bases-de-donnees/modelisation/merise.mdx deleted file mode 100644 index 4b62211..0000000 --- a/old/docs/ressources/bases-de-donnees/modelisation/merise.mdx +++ /dev/null @@ -1,479 +0,0 @@ ---- -sidebar_position: 1 -title: "Modélisation avec Merise" -description: "Voyons ensemble comment on peut modéliser une base de données avec Merise !" -tags: - - Conception - - Modélisation - - Base de données - - Merise - - Dictionnaire de Données - - Modèle Conceptuel de Données (MCD) - - Modèle Logique de Données (MLD) - - Modèle Relationnel de Données (MRD) - - Modèle Physique de Données (MPD) - - SQL - - DWWM ---- - -import ICalLink from '@site/src/components/ICalLink'; -import Admonition from '@theme/Admonition'; -import TabItem from '@theme/TabItem'; -import Tabs from '@theme/Tabs'; - -# Modélisation d'une base de données avec Merise - -## Introduction - -Si jamais tu n'es pas au courant, on recommande _(pour ne pas ainsi dire qu'on oblige 🙃)_ les concepteurs et développeurs d'applications à modéliser leur base de données avant de commencer à coder. - -Mais alors, quel est réellement l'intérêt derrière ces schémas qui sont parfois considérés comme faisant partie d'une étape fastidieuse et inutile ? - -Eh bien, la modélisation d'une base de données permet de : - -- Comprendre les besoins du client final -- Faciliter la communication entre les différents acteurs du projet -- Éviter les erreurs de conception _(ou pas 😅)_ - -## Modélisation avec Merise - -[Merise](https://fr.wikipedia.org/wiki/Merise_(informatique)) est une méthode d'analyse, de conception et de gestion de projet informatique. -Pour faire plus simple que cette première phrase toute droit sortie de Wikipédia, Merise est une méthode qui permet entre autres de modéliser une base de données. - -Même si dans cette documentation on va parler uniquement de la conception qui concerne la base de données, -je t'ai fait un court résumé des différentes étapes principale de la méthode Merise. - -## Les différentes étapes principales - -1. **L'analyse des besoins** : On commence par recueillir les besoins du client pour notre cahier des charges. -2. **La conception** : On modélise la base de données en utilisant les différents outils de Merise. -3. **L'implémentation** : On passe à la phase de développement en utilisant les modèles créés précédemment. -4. **La mise en service** : On met en service l'application et on la teste. -5. **La maintenance** : On assure la maintenance de l'application. - -## Les différents documents - -En ce qui concerne les différents documents, on va en retrouver cinq principaux : - -- **Le Dictionnaire de Données** : Il contient toutes les informations sur les données qui vont être stockées. -- **Le Modèle Conceptuel de Données _(MCD)_** : Il représente les données et les relations entre ces données. -- **Le Modèle Logique de Données _(MLD)_** : Il ajoute des éléments techniques au MCD. -- **Le Modèle Relationnel de Données _(MRD)_** : Il est une représentation textuelle du MLD. -- **Le Modèle Physique de Données _(MPD)_** : Il ajoute les types de données et les contraintes au MLD. - -Bien sûr, il est possible de rajouter d'autres documents en fonction des besoins du projet ! -Mais pour l'instant, on va se concentrer sur ces cinq-là. - -### Le Dictionnaire de Données - -Le **Dictionnaire de Données** est un document qui contient toutes les informations sur les données qui vont être stockées dans la base de données. - -Ici, on ne va pas parler de tables, de colonnes ou de relations, mais uniquement de données. Ces informations nous sont données par le client, -et il est important que le dictionnaire reste compréhensible par le client ! - -Voici un exemple de dictionnaire de données, à partir des informations données par le client : - - - - | Nom de la donnée | Type de donnée | Description | Taille attendue | Taille fixe ? | Exemple(s) de valeur | - |----------------------|----------------|---------------------------------------------------------------|-----------------|---------------|--------------------------| - | adresse email | Date | - | N/A | N/A | elodie.martin@exemple.fr | - | prénom | Alphabétique | - | 50 caractères | Variable | Élodie, Christophe | - | nom | Alphabétique | - | 50 caractères | Variable | Martin, Dupont | - | adresse postale | Alphanumérique | Numéro de rue, type de voie et nom de la voie | N/A | N/A | 1 rue de la Paix | - | code postal | Numérique | - | 5 caractères | Fixe | 75000, 01000 | - | ville | Alphabétique | - | 50 caractères | Variable | Paris, Lyon | - | mot de passe | Alphanumérique | Mot de passé sécurisé _(haché)_ | 80 caractères | Variable | - | - | manager de l'employé | Liaison | Liaison vers le manager du salarié | N/A | N/A | N/A | - | employés managés | Liaison | Liste des salariés gérés par ce manager _(également salarié)_ | N/A | N/A | N/A | - - - - | Nom de la donnée | Type de donnée | Description | Taille attendue | Taille fixe ? | Exemple(s) de valeur | - |---------------------------|----------------|-----------------------------------------|-----------------|---------------|----------------------| - | nom | Alphanumérique | - | 255 caractères | Variable | - | - | est réalisée ? | Vrai/Faux | Indique si la tâche est réalisée ou non | N/A | N/A | Vrai, Faux | - | projet | Liaison | Projet auquel la tâche est rattachée | N/A | N/A | N/A | - - - - | Nom de la donnée | Type de donnée | Description | Taille attendue | Taille fixe ? | Exemple(s) de valeur | - |------------------|----------------|--------------------------------------|-----------------|---------------|----------------------| - | nom | Alphanumérique | - | 255 caractères | Variable | Mon super projet | - | tâches | Liaison | Liste des tâches associées au projet | N/A | N/A | N/A | - - - -Comme tu peux voir, il n'y a aucun terme technique dans ce document 😉 -Cet exemple, on va le mettre de côté car en vrai, il présente quelques notions intermédiaires qui pourraient être déroutantes pour une entrée en matière. - -Mais on y reviendra une fois toutes les étapes expliquées, comme ça tu auras un exemple un poil plus concret pour te représenter le lien entre les étapes ! - -### Le Modèle Conceptuel de Données _(MCD)_ - -Ce modèle a pour objectif de représenter sous forme graphique les données et les relations entre ces données. -Avant le MCD, nous sommes en théorie en possession du dictionnaire de données -qui contient toutes les informations qui vont nous être utiles. - -Il est important de noter que l'on doit rester le plus clair possible dans la représentation des données, -car ce modèle doit être compris par tout le monde : y compris le client final. - -Chaque regroupement de données est appelé une entité, et chaque entité est composée d'attributs. -Les relations entre les entités sont représentées par trois éléments : -- Un trait reliant les entités _(ou la même entité dans le cas d'une relation réflexive)_ -- Un verbe qui décrit la relation à l'**infinitif** -- Une cardinalité pour quantifier la relation entre les entités - - - - **Entité** : Regroupement de données, représentée par un rectangle jaune dans le schéma ci-dessous. - - **Attribut** : Propriété d'une entité - - **Discriminant** _(ou déterminant)_ : Attribut qui permet de distinguer les occurrences d'une entité. Il est souligné et en gras dans le schéma. - - **Attribut unique** : Attribut qui ne peut pas avoir la même valeur pour deux occurrences d'une entité. Il est en gras dans le schéma. - - **Relation** : Lien entre deux entités, représentée par un trait reliant les entités. - - **Cardinalité** : Nombre d'occurrences _(minimum et maximum)_ d'une entité qui peuvent être associées à une occurrence d'une autre entité. - - -C'est pas clair ? Prenons alors ce modèle ! -![Modèle Conceptuel de Données, MCD, Merise](./img/mcd-guide.webp) - -Ce modèle nous indique plusieurs choses : - - - - - Deux entités sont présentes : - - `Entité 1` et `Entité 2` - - L'entité `Entité 1` possède quatre attributs : - - `code entité 1` _(discriminant)_ - - `attribut 2` - - `attribut 3` - - `attribut 4` - - L'entité `Entité 2` possède trois attributs : - - `code entité 2` _(discriminant)_ - - `attribut 2` - - `attribut 3` - - - Avant d'expliquer **pourquoi** il n'y a pas d'ID, je me permets de faire un petit écart pour expliquer **ce qu'est** un ID. - - `ID`, c'est le nom qu'on donne pour parler de l'identifiant qui se doit d'être unique afin d'identifier facilement une ressource d'une autre. - - Il s'agit, en réalité, d'une donnée purement technique. - Après tout, c'est pas le client final qui va s'intéresser à l'ID de ses données, n'est-ce pas ? - - Comme le MCD se doit d'être **non-technique**, le terme `ID` n'est donc pas pertinent et surtout : n'a pas sa place. - - En reprenant le schéma ci-dessus, on peut dire que le `code entité 1` et le `code entité 2` sont les déterminants de leurs entités respectives. - Une fois qu'on fera nos schémas techniques _(MLD, MRD, MPD)_, on pourra alors utiliser le terme `ID` ! - - - - - - Une relation : - - Entre `Entité 1` et `Entité 2` - - Cardinalité : - - `Entité 1` peut posséder de 1 à 1 occurrence de `Entité 2` - - `Entité 2` peut être possédée par 0 à n occurrences de `Entité 1` - - Verbe : - - `POSSÉDER` - - Si on revient à la déclaration faite plus tôt, on remarque qu'il est effectivement à l'**infinitif**. - Mais alors, pourquoi c'est important ? - - En fait, le verbe à l'infinitif permet de faciliter la compréhension des relations et ce, dans les deux sens. - - Mais parlons des cardinalités parce qu'on y retrouve quelque chose de bizarre : `n`. - C'est quoi `n` ? - - `n` est une valeur qui signifie que l'entité peut être possédée par un nombre indéfini d'occurrences de l'autre entité. - C'est une notation que l'on retrouvera très fréquemment, puisque la majorité du temps on ne peut pas déterminer le nombre exact d'occurrences. - - - Oui ! Si tu connais à l'avance le nombre maximal d'occurrences et que ce nombre est fixe _(peu importe le contexte)_, tu peux tout à fait le spécifier. - - Par exemple : demain on te demande de modéliser une base de données avec deux entités `Année` et `Mois`. - - Tu peux donc représenter la relation de cette manière : - - > `Année 1,12 - POSSÉDER - 1,1 Mois` - > `Année` possède de 1 à 12 occurrences de `Mois` - > `Mois` est possédée par une seule occurrence de `Année` - - C'est un exemple simple, mais qui montre bien que c'est possible ! - - - - -Tiens d'ailleurs, autre sujet important pour le **MCD** ! - -On a vu que certains termes ne sont pas employés _(comme `ID`, mais également `tables`, `clé primaire` ou encore `clé étrangère`)_ -pour respecter la nature du document qui se veut non-technique. -Mais il y a autre chose qui peut nous sauter aux yeux : c'est écrit en français ! - -La raison est identique à ce que j'ai pu rabâcher plus tôt : le document doit être compris par tout le monde. -Et si le client final est francophone, il est donc plus simple de lui présenter un document dans sa langue maternelle. - - - Tant pis pour toi ! 😜 - Si je devais te donner un argument majeur, ce serait celui-ci. Après j'abandonne, promis ! - - Ton client est un spécialiste dans son domaine, mais toi tu n'y connais rien. - Il te parle de certaines données, tu arrives à peu près à comprendre comment ça fonctionne, mais tu n'as pas toutes les informations. - - D'une part, le dictionnaire de données t'en donne la nature et "qui" _(l'entité)_ possède ces données. - Par contre, comme le MCD te permet de quantifier et de qualifier les relations entre les entités, tu as une vision plus claire de ce que le client veut. - - Et si le client comprend et valide le MCD, c'est que tu as bien compris ses besoins et que tu peux donc passer à la suite du projet sans foncer dans le mur, - ce qui t'obligerai de déconstruire et de reconstruire une partie de ton application. - - -### Le Modèle Logique de Données _(MLD)_ - -À partir de maintenant, on "abandonne" le client et on dit bonjour à la technique ! ⚙️ - -Le **Modèle Logique de Données** est une étape intermédiaire entre le MCD et le MPD. -Il se base de manière directe sur le MCD, mais il ajoute des éléments techniques qui vont permettre de nous assurer **avant** de faire -la base de données que tout est correct. - -En reprenant l'exemple donné pour le MCD, voici le MLD correspondant. - -![Modèle Logique de Données, MLD, Merise](./img/mld-guide.webp) - -Ici, on ne parle plus d'entités, mais de tables. -Et ce qui était souligné avant _(les déterminants)_ devient des clés primaires. -De manière générale, on y retrouvera le terme `id` pour les clés primaires même si ce n'est pas une obligation. - - - Bien vu ! Elles sont totalement disparues... enfin presque. - - Si tu regardes de plus près, tu peux voir que la table nommée `table_1` s'est vue ajouter une colonne `table_2_id`. - Mais qu'est-ce que c'est ? - - Il s'agit d'une référence vers la table `table_2` : c'est ce qu'on appelle une **clé étrangère**. - Le but des clés étrangères est de lier les tables entre elles, et donc de recréer les relations que l'on avait dans le MCD. - - Une clé étrangère pointe systématiquement vers une clé primaire d'une autre table _(ou de la même table dans le cas d'une relation réflexive)_. - Dans cet exemple, la clé étrangère `table_2_id` de la table `table_1` est une référence à la clé primaire `id` de la table `table_2`. - - -Maintenant, j'ai une question pour vous... est-ce que vous savez ce qu'il se passe quand dans notre MCD, -une relation à une cardinalité avec un `n` pour le maximum des deux côtés ? _(`0,n` ou `1,n` par exemple)_ - -Eh bien... on se retrouve avec une table intermédiaire ! -Cette table peut se nommer de différentes manières. -Pour ma part, j'appelle ça une "table pivot" même si on peut également parler de "table de liaison" -ou encore de "table de jointure" _(et sans doute d'autres termes !)_. - - - Le but d'une table pivot est de permettre de lier deux tables entre elles lorsque la relation entre ces deux tables est de type `n`. - - Cette table va stocker **uniquement** _(sauf besoin spécifique)_ la valeur des clés primaires des deux tables qu'elle relie. - Et si tu as bien suivi, ces deux colonnes seront des clés étrangères qui pointeront vers les clés primaires des tables qu'elles relient 😉 - - -### Le Modèle Relationnel de Données _(MRD)_ - -Souffle un coup, parce qu'on vient de voir était quand même déjà pas mal costaud ! 🥵 - -C'est le moment détente, parce que le **Modèle Relationnel de Données** est en fait une simple représentation textuelle de notre MLD. -Pas besoin donc de schéma, juste une liste de tables avec leurs colonnes ! - -Et toujours à partir de notre exemple, voici le MRD correspondant. - -> table_1(id, colonne_2, colonne_3, colonne_4, #table_2_id) -> table_2(id, colonne_2, colonne_3) - -Tu as vu ? Rien de bien méchant ! - -On vient reprendre une partie de l'écriture que l'on retrouve dans le MLD, mais on ajoute des symboles pour indiquer les clés étrangères. - -Le symbole `#` est utilisé pour indiquer une clé étrangère, en préfixe du nom de la colonne. - -Tu sais maintenant ce qu'il manque comme ajout majeur pour passer du MRD au MPD ? -Je te le donne en mille : les **types de données** et leurs **contraintes** ! - -### Le Modèle Physique de Données _(MPD)_ - -Avant toute chose, permet moi de t'imposer _(tel le manitou que je suis 😆)_ une petite révision des types de données que l'on retrouve en SQL. -Et comme je ne suis pas méchant, voici une liste des types selon les SGBD les plus utilisés : - -- [**PostgreSQL**](https://www.postgresql.org/docs/current/datatype.html) -- [**MySQL**](https://dev.mysql.com/doc/refman/9.0/en/data-types.html) -- [**SQL Server**](https://docs.microsoft.com/en-us/sql/t-sql/data-types/data-types-transact-sql?view=sql-server-ver15) -- [**SQLite**](https://www.sqlite.org/datatype3.html) -- [**Oracle**](https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/Data-Types.html) - -_(Désolé pour les autres SGBD, mais je ne peux pas tout mettre 😅)_ - - - Parce que c'est important ! - Les types de données permettent de définir le format des données que l'on va stocker dans notre base de données. - - Chaque SGBD fixe ses propres types de données, mais on retrouve des similitudes entre eux. - On peut d'ailleurs retrouver quelque chose de très différent du côté de - [**MongoDB**](https://docs.mongodb.com/manual/reference/bson-types/) qui est une base de données NoSQL. - - -Maintenant que tu as révisé, on peut réellement passer au **Modèle Physique de Données** ! - -Le but du MPD est de se baser sur le MLD et d'y ajouter les types de données et les contraintes _(comme les clés primaires par exemple)_. -Bien que c'était déjà le cas dans le MLD, le MPD est plus précis et plus technique. - -Le MPD peut se représenter de deux manières différentes : - -- Un script pour créer la base de données -- Un schéma visuel _(encore un..)_ de la base de données - -Je ne vais pas m'attarder sur le schéma visuel, car il est très similaire au MLD avec uniquement les types de données et les contraintes en plus. - -Par contre, je vais te montrer un exemple de script pour créer une base de données à partir de notre MLD. - -```sql title="MPD sous forme de script SQL" showLineNumbers -CREATE TABLE IF NOT EXISTS table_1( - id INT PRIMARY KEY, - colonne_2 VARCHAR(50) NOT NULL, - colonne_3 VARCHAR(80), - colonne_4 TINYINT DEFAULT 0, - table_2_id INT -); - -CREATE TABLE IF NOT EXISTS table_2( - id INT PRIMARY KEY, - colonne_2 VARCHAR(50) NOT NULL, - colonne_3 DATE -); - -ALTER TABLE table_1 -ADD FOREIGN KEY (table_2_id) REFERENCES table_2(id); -``` - -Et voilà ! -Bien sûr, ce script est un exemple très simple, mais il te montre comment on peut passer d'un MLD à un MPD. - -## Exemple concret - -Tu te souviens du dictionnaire de données que je t'avais montré plus tôt ? Je t'avais dit qu'on y reviendrai plus tard : **c'est l'heure** ! - -Reprenons donc le dictionnaire de données précédent _(que je te remet juste ici, ce sera plus simple 😉)_ et voyons commen t tout s'articule au niveau des étapes et modèles de conception. - - - - | Nom de la donnée | Type de donnée | Description | Taille attendue | Taille fixe ? | Exemple(s) de valeur | - |----------------------|----------------|---------------------------------------------------------------|-----------------|---------------|--------------------------| - | adresse email | Date | - | N/A | N/A | elodie.martin@exemple.fr | - | prénom | Alphabétique | - | 50 caractères | Variable | Élodie, Christophe | - | nom | Alphabétique | - | 50 caractères | Variable | Martin, Dupont | - | adresse postale | Alphanumérique | Numéro de rue, type de voie et nom de la voie | N/A | N/A | 1 rue de la Paix | - | code postal | Numérique | - | 5 caractères | Fixe | 75000, 01000 | - | ville | Alphabétique | - | 50 caractères | Variable | Paris, Lyon | - | mot de passe | Alphanumérique | Mot de passé sécurisé _(haché)_ | 80 caractères | Variable | - | - | manager de l'employé | Liaison | Liaison vers le manager du salarié | N/A | N/A | N/A | - | employés managés | Liaison | Liste des salariés gérés par ce manager _(également salarié)_ | N/A | N/A | N/A | - - - - | Nom de la donnée | Type de donnée | Description | Taille attendue | Taille fixe ? | Exemple(s) de valeur | - |---------------------------|----------------|-----------------------------------------|-----------------|---------------|----------------------| - | nom | Alphanumérique | - | 255 caractères | Variable | - | - | est réalisée ? | Vrai/Faux | Indique si la tâche est réalisée ou non | N/A | N/A | Vrai, Faux | - | projet | Liaison | Projet auquel la tâche est rattachée | N/A | N/A | N/A | - - - - | Nom de la donnée | Type de donnée | Description | Taille attendue | Taille fixe ? | Exemple(s) de valeur | - |------------------|----------------|--------------------------------------|-----------------|---------------|----------------------| - | nom | Alphanumérique | - | 255 caractères | Variable | Mon super projet | - | tâches | Liaison | Liste des tâches associées au projet | N/A | N/A | N/A | - - - -Dans le MCD, on retrouvera donc trois entités : `Salarié`, `Tâche` et `Projet`. -Et biensûr, on n'oubliera pas les attributs de ces entités ! - -![Modèle Conceptuel de Données, MCD, Merise](./img/mcd-exemple.webp) - -Ici on va remarquer trois relations, dont une réflexive _(le manager de l'employé)_. -Sur le papier, voici comment on peut parler de ces relations : - -- `Salarié` 0,n - GÉRER - 0,1 `Salarié` - - Un salarié peut gérer plusieurs salariés - - Un salarié peut être géré par aucun ou un seul salarié -- `Salarié` 0,n - RÉALISER - 1,n `Tâche` - - Un salarié peut réaliser plusieurs tâches - - Une tâche doit être réalisée par au moins un salarié -- `Tâche` 1,1 - ATTRIBUER - 0,n `Projet` - - Une tâche est attribuée à un seul projet - - Un projet peut avoir aucune ou plusieurs tâches attribuées - -On peut donc en déduire que l'on va avoir une table pivot entre `Salarié` et `Tâche` pour la relation `RÉALISER` car des deux côtés on retrouve le fameux `n` qui indique qu'il peut y avoir plusieurs occurrences. - -Ensuite, on passe au MLD, où l'on va transformer nos entités en tables et nos attributs en colonnes. - -![Modèle Logique de Données, MLD, Merise](./img/mld-exemple.webp) - -Et là, magie ! On retrouve bien une table pivot entre l'entité `Salarié` _(devenue `employee`)_ et l'entité `Tâche` _(devenue `task`)_ pour la relation `RÉALISER`, qui se nomme `employee_has_task`. -Dedans, on y retrouve deux clés étrangères : `employee_id` et `task_id`. - -On peut également constater que pour la relation `GÉRER`, on a une clé étrangère `manager_id` dans la table `employee`. -Cette clé étrangère pointera vers la clé primaire `id` de la table `employee`, mais on verra ça plus facilement à partir du MPD avec un script SQL ! - -Pour le MRD, voici à quoi ça ressemble : - -> employee(id, **email**, firstname, lastname, postal_address, postal_code, city, password, #manager_id); -> project(id, name); -> task(id, name, is_done, #project_id); -> employee_has_task(#employee_id, #task_id); - -Et pour finir... 🥁 -Le MPD ! - - -```sql showLineNumbers -CREATE TABLE employee( - id CHAR(30), - email VARCHAR(320), - firstname VARCHAR(30), - lastname VARCHAR(30), - postal_address VARCHAR(60), - postal_code CHAR(5), - city VARCHAR(30), - password CHAR(80), - manager_id CHAR(30), - CONSTRAINT employee_pk PRIMARY KEY (id), - CONSTRAINT employee_ak UNIQUE (email), - CONSTRAINT employee_manager_fk FOREIGN KEY (manager_id) REFERENCES employee(id) -); - -CREATE TABLE project( - id CHAR(30), - name VARCHAR(255), - CONSTRAINT project_pk PRIMARY KEY (id) -); - -CREATE TABLE task( - id CHAR(30), - name VARCHAR(255), - is_done BOOLEAN, - project_id CHAR(30), - CONSTRAINT task_pk PRIMARY KEY (id), - CONSTRAINT task_project_fk FOREIGN KEY (project_id) REFERENCES project(id) -); - -CREATE TABLE employee_has_task( - employee_id CHAR(30), - task_id CHAR(30), - CONSTRAINT employee_has_task_pk PRIMARY KEY (employee_id, task_id), - CONSTRAINT employee_has_task_employee_fk FOREIGN KEY (employee_id) REFERENCES employee(id), - CONSTRAINT employee_has_task_task_fk FOREIGN KEY (task_id) REFERENCES task(id) -); -``` - -## Conclusion - -On est d'accord, c'est pas la partie la plus fun de la conception d'une application. -Mais sans ces étapes, il y a fort à parier que tu vas te retrouver à coder dans le vide et à devoir tout recommencer. - -Et si tu souhaites aller encore plus loin dans ces notions, je ne peux que te recommander de consulter un certain livre : -[**Merise - Guide pratique (4e édition)**](https://www.editions-eni.fr/livre/merise-guide-pratique-4e-edition-modelisation-des-donnees-et-des-traitements-manipulations-avec-le-langage-sql-conception-d-une-application-mobile-android-ou-ios-9782409046667) -écrit par [**Jean-Luc Baptiste**](https://www.editions-eni.fr/jean-luc-baptiste) que tu peux retrouver aux [Éditions ENI](https://www.editions-eni.fr/) ! - -C'est une vraie mine d'or, il s'agit de **la référence** en ce qui concerne Merise. diff --git a/old/docs/ressources/frontend/_category_.json b/old/docs/ressources/frontend/_category_.json deleted file mode 100644 index 96aab57..0000000 --- a/old/docs/ressources/frontend/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "label": "🌈 Frontend", - "position": 1, - "link": { - "type": "generated-index" - } -} diff --git a/old/docs/ressources/frontend/react/_category_.json b/old/docs/ressources/frontend/react/_category_.json deleted file mode 100644 index b228121..0000000 --- a/old/docs/ressources/frontend/react/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "React", - "position": 1 -} diff --git a/old/docs/ressources/frontend/react/contextes.mdx b/old/docs/ressources/frontend/react/contextes.mdx deleted file mode 100644 index 7a1847e..0000000 --- a/old/docs/ressources/frontend/react/contextes.mdx +++ /dev/null @@ -1,582 +0,0 @@ ---- -sidebar_position: 7 -title: "Le hook useContext de React" -description: "Découvrez comment utiliser le hook useContext de React pour gérer les contextes dans vos applications." -tags: - - Frontend - - React - - JavaScript/TypeScript - - Bibliothèque - - Interface utilisateur (UI) ---- - -import Button from '@site/src/components/Button'; -import Quiz from '@site/src/components/Quiz'; -import Admonition from '@theme/Admonition'; -import TabItem from '@theme/TabItem'; -import Tabs from '@theme/Tabs'; - -# L'utilisation des contextes avec React - -## Introduction - -Les contextes sont un moyen de diffuser des données au travers des composants, sans avoir à les passer explicitement à chaque composant. -Pour faire simple, imaginons une arborescence de plusieurs composants imbriqués les uns dans les autres : - - - - ```jsx title="App.jsx" showLineNumbers - import { useState } from 'react'; - - const App = () => { - const [theme, setTheme] = useState('light'); - - return - }; - - const A = ({ theme, setTheme }) => { - return - }; - - const B = ({ theme, setTheme }) => { - return - }; - ``` - - - - ```tsx title="App.tsx" showLineNumbers - import type { Dispatch, SetStateAction } from 'react'; - - import { useState } from 'react'; - - type Theme = 'light' | 'dark'; - - const App = () => { - const [theme, setTheme] = useState('light'); - - return - }; - - const A = ({ theme, setTheme }: { theme: Theme, setTheme: Dispatch> }) => { - return - }; - - const B = ({ theme, setTheme }: { theme: Theme, setTheme: Dispatch> }) => { - return - }; - ``` - - - -Fastidieux, n'est-ce pas ? On transmet à chaque fois les mêmes données, et ce, à chaque niveau de l'arborescence. - -C'est là que les contextes entrent en jeu ! -On va pouvoir alors déclarer notre contexte _(qui contiendra les données à diffuser)_ et le fournir à un niveau supérieur de l'arborescence. - -## Déclaration d'un contexte - -Avant de penser à notre contexte, on va réfléchir à ce que l'on veut diffuser et les valeurs par défaut. -Si on reprend notre exemple avec le thème clair et sombre, on sait que l'on va vouloir diffuser la valeur du thème et une fonction pour le changer. - -On va donc préparer le terrain en créant un fichier `ThemeContext.jsx` _(ou `ThemeContext.tsx` si tu utilises TypeScript)_ : - - - - ```jsx title="ThemeContext.jsx" showLineNumbers - import { createContext } from 'react'; - - // On crée notre contexte, avec une valeur par défaut : un thème clair - const ThemeContext = createContext({ - theme: 'light', - setTheme: () => {}, - }); - ``` - - - - ```tsx title="ThemeContext.tsx" showLineNumbers - import type { Dispatch, SetStateAction } from 'react'; - - import { createContext } from 'react'; - - // On crée un type pour les valeurs de thème - export type Theme = 'light' | 'dark'; - - // On crée un type pour notre contexte - type ThemeContextType = { - theme: Theme; - setTheme: Dispatch>; - }; - - // On crée notre contexte, avec une valeur par défaut : un thème clair - const ThemeContext = createContext({ - theme: 'light', - setTheme: () => {}, - }); - ``` - - - -## Fournir un contexte - -Maintenant on peut le dire : notre contexte est prêt à être utilisé ! -Il ne reste plus qu'à le fournir à notre arborescence de composants en lui créant un `Provider`. - - - Un `Provider` est un composant qui va permettre de diffuser les données du contexte à ses enfants. - Il est important de noter que le `Provider` doit être placé **au-dessus** des composants qui vont utiliser le contexte. - - -Un contexte React est un objet qui contient deux propriétés : `Provider` et `Consumer`. -Le `Provider` est un composant qui va permettre de diffuser les données du contexte à ses enfants. -Le `Consumer` est un composant qui va permettre de récupérer les données du contexte. - - - - - ```jsx title="App.jsx" - import { useState } from 'react'; - - const App = () => { - const [theme, setTheme] = useState('light'); - - return ( - - - - ); - }; - ``` - - - - ```tsx title="App.tsx" - import type { Theme } from './ThemeContext'; - - import { useState } from 'react'; - - const App = () => { - const [theme, setTheme] = useState('light'); - - return ( - - - - ); - }; - ``` - - - -Mais on peut aller encore plus loin, en créant un `Provider` dédié à notre contexte ! -Cela permettra de simplifier l'arborescence de composants et de rendre le code plus lisible : - - - - ```jsx title="ThemeContext.jsx" {8-16} showLineNumbers - import { createContext, useState } from 'react'; - - const ThemeContext = createContext({ - theme: 'light', - setTheme: () => {}, - }); - - const ThemeProvider = ({ children }) => { - const [theme, setTheme] = useState('light'); - - return ( - - {children} - - ); - }; - - export { ThemeContext, ThemeProvider }; - ``` - - - - ```tsx title="ThemeContext.tsx" {21-29} showLineNumbers - import type { ReactNode } from 'react'; - - import { createContext, useState } from 'react'; - - export type Theme = 'light' | 'dark'; - - type ThemeContextType = { - theme: Theme; - setTheme: Dispatch>; - }; - - const ThemeContext = createContext({ - theme: 'light', - setTheme: () => {}, - }); - - type ThemeProviderProps = { - children: ReactNode; - }; - - const ThemeProvider = ({ children }: ThemeProviderProps) => { - const [theme, setTheme] = useState('light'); - - return ( - - {children} - - ); - }; - - export { ThemeContext, ThemeProvider }; - ``` - - - -Et pour terminer, on va maintenant pouvoir directement imbriquer notre `ThemeProvider` dans notre `App` : - -```jsx title="App.jsx (ou App.tsx)" {1,5-7} showLineNumbers -import { ThemeProvider } from './ThemeContext'; - -const App = () => { - return ( - - - - ); -}; -``` - -## Utilisation d'un contexte - -C'est bien beau de créer un contexte, mais comment l'utiliser ? -Tu te souviens peut-être du `Consumer` que l'on a évoqué plus tôt, non ? - -Et bien, il est temps de le mettre en pratique ! 😁 - -Pour commencer, nous allons avoir besoin du fameux hook `useContext` de React. -Ce hook va nous permettre de récupérer les données du contexte, et ce, directement dans nos composants. - -```jsx title="C.jsx (ou C.tsx)" -import { useContext } from 'react'; -``` - -Ensuite, on pensera à importer le contexte que l'on souhaite utiliser : - -```jsx title="C.jsx (ou C.tsx)" -import { ThemeContext } from './ThemeContext'; -``` - -Et enfin, on va pouvoir utiliser le hook `useContext` pour récupérer les données du contexte : - -```jsx title="C.jsx (ou C.tsx)" -const C = () => { - const { theme, setTheme } = useContext(ThemeContext); - - return ( - <> - {/** JSX */} - - ); -}; -``` - -Pas mal, non ? 😉 -Fini l'arborescence de composants à rallonge, on peut maintenant récupérer les données du contexte directement dans nos composants ! - -## Les défauts des contextes - -Seulement... Un grand pouvoir implique de grandes responsabilités. 🕷️ - -Bien que les contextes soient très pratiques, il faut prendre en compte quelques points : - -- On ne peut pas utiliser les contextes pour tout et n'importe quoi. - Ils sont plutôt adaptés pour diffuser des données qui sont utilisées par plusieurs composants. -- Les contextes peuvent rendre le code plus difficile à comprendre. -- L'utilisation de nombreux contextes va faire apparaître ce qu'on appelle le **context hell**. - -### Le context hell - -Dans cet article, nous avons vu comment créer un contexte et l'utiliser. -Et par chance, nous n'avons pas encore rencontré le **context hell**. - -Mais maintenant, que se passe-t-il si on a besoin de plusieurs contextes _(plusieurs dizaines par exemple !)_ dans notre application ? -On va se retrouver avec une arborescence de composants qui va devenir de plus en plus difficile à comprendre et à maintenir. - -Et c'est ça, le **context hell**. - - - ```jsx title="index.jsx (ou index.tsx)" showLineNumbers - root.render( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ); - ``` - - Maintenant, demande à un développeur d'inverser le provider `UserProvider` avec le provider `NoteProvider`. - C'est jouable sans difficulté, mais si tu entends des cris de désespoir, c'est normal. 😅 - - -Pour éviter de tomber dans le **context hell**, il est important de bien réfléchir à l'utilisation des contextes dans notre application avec ces quelques questions : - -- Est-ce que l'utilisation d'un contexte est vraiment nécessaire pour ce cas d'usage ? -- Est-ce que le contexte est utilisé par plusieurs composants ? -- Est-ce que le contexte est utilisé par des composants éloignés dans l'arborescence ? - -Mais alors, si tu as besoin d'autant de contextes dans ton application, comment faire ? -Et bien, il existe des solutions pour éviter le **context hell** : - -- Utiliser des bibliothèques tierces comme Redux _(solution lourde, mais très puissante)_ -- Créer un nouveau composant qui va regrouper tous les contextes _(solution plus légère, mais plus difficile à maintenir)_ - -N'étant pas un grand fan de Redux, je te conseille plutôt la deuxième solution. -Mais si tu veux en savoir plus sur Redux, n'hésite pas à consulter la [documentation officielle](https://redux.js.org/) ! - -### Résoudre le context hell avec un composant dédié - -Parlons de ce fameux composant qui va regrouper tous les contextes ! -On ne parle pas ici d'un simple composant `Providers` qui va imbriquer tous les `Provider` de nos contextes, mais d'une solution plus élégante. - -Après tout, nous sommes des ~feignants~ développeurs, non ? 😏 - -Réfléchissons à ce que l'on veut faire : - -- On veut pouvoir regrouper tous les contextes dans un seul composant. -- On veut pouvoir ajouter ou supprimer des contextes facilement. -- On veut pouvoir facilement les ordonner entre eux. -- On veut éviter le **context hell**. - -Et si on créait un composant `Providers` qui va nous permettre de faire tout ça ? - - - - ```jsx title="Providers.jsx" showLineNumbers - const Providers = ({ providers, children }) => { - return ( - <> - {/** Ouverture des providers */} - {children} - {/** Fermeture des providers */} - - ); - }; - ``` - - - - ```tsx title="Providers.tsx" {8-16} showLineNumbers - import type { ReactNode } from 'react'; - - type ProvidersProps = { - providers: ReactNode[]; - children: ReactNode; - }; - - const Providers = ({ providers, children }: ProvidersProps) => { - return ( - <> - {/** Ouverture des providers */} - {children} - {/** Fermeture des providers */} - - ); - }; - ``` - - - -Ici on ne va pas remettre une cascade de `Provider` comme on a pu le voir plus tôt. -On va chercher à créer une fonction qui va nous permettre de les imbriquer les uns dans les autres. - - - - ```jsx - const nest = (children, component) => { - return React.cloneElement(component, {}, children); - }; - ``` - - - - ```tsx - const nest = (children: ReactNode, component: ReactNode) => { - return React.cloneElement(component, {}, children); - }; - ``` - - - - - `React.cloneElement` est une fonction qui va permettre de cloner un élément React en lui passant de nouvelles propriétés. - Cela va nous permettre de créer une nouvelle arborescence de composants sans modifier l'arborescence actuelle. - - Le premier argument est l'élément à cloner _(le composant)_, et le deuxième argument est un objet contenant les nouvelles propriétés. - Le troisième argument est le contenu de l'élément cloné _(les enfants)_. - - -Et maintenant, on va pouvoir utiliser notre fonction `nest` pour imbriquer nos `Provider` en utilisant la méthode `reduceRight` : - - - - ```jsx title="Providers.jsx" showLineNumbers - const nest = (children, component) => { - return React.cloneElement(component, {}, children); - }; - - const Providers = ({ providers, children }) => { - return providers.reduceRight(nest, children); - }; - ``` - - - - ```tsx title="Providers.tsx" showLineNumbers - import type { ReactNode } from 'react'; - - type ProvidersProps = { - providers: ReactNode[]; - children: ReactNode; - }; - - const nest = (children: ReactNode, component: ReactNode) => { - return React.cloneElement(component, {}, children); - }; - - const Providers = ({ providers, children }: ProvidersProps) => { - return providers.reduceRight(nest, children); - }; - ``` - - - - - - `reduceRight` est une méthode qui va permettre de réduire un tableau _(ou un objet)_ en appliquant une fonction de rappel de droite à gauche. - Cela va nous permettre de réduire un tableau de `Provider` en les imbriquant les uns dans les autres sans se soucier de l'ordre _(qui est défini par le tableau)_. - - Dans l'idée, on commence par le **dernier** élément du tableau, et on l'imbrique avec l'élément **précédent** du tableau et ainsi de suite jusqu'au **premier** élément du tableau. - Chaque itération va créer un nouvel élément imbriqué dans le précédent, en appelant la fonction `nest` qui est passée en argument. - -
- Plus d'informations sur `reduceRight` - - Ajoutons des logs dans notre fonction `nest` pour mieux comprendre le fonctionnement de `reduceRight` : - - ```jsx - const providers = [, , , , ]; - - const nest = (children, component) => { - console.log(`Composant à imbriquer : ${children.type.name}. Composant recevant l'imbriquation : ${component.type.name}.`); - return React.cloneElement(component, {}, children); - }; - - const Providers = ({ children }) => { - return providers.reduceRight(nest, children); - }; - - root.render( - - - - ); - ``` - - Voici les logs qui vont s'afficher : - ```txt - Composant à imbriquer : App. Composant recevant l'imbriquation : Provider5. - Composant à imbriquer : Provider5. Composant recevant l'imbriquation : Provider4. - Composant à imbriquer : Provider4. Composant recevant l'imbriquation : Provider3. - Composant à imbriquer : Provider3. Composant recevant l'imbriquation : Provider2. - Composant à imbriquer : Provider2. Composant recevant l'imbriquation : Provider1. - ``` - - Le premier `Provider` du tableau _(``)_ sera donc le `Provider` le plus "haut" dans l'arborescence, tandis que le dernier _(``) sera le plus "bas". - - Nous obtiendrons donc cette arborescence de composants : - ```jsx - - - - - - - - - - - - ``` - - Pour mieux comprendre le fonctionnement de `reduceRight`, n'hésite pas à consulter la [documentation officielle](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/reduceRight). -
-
- -Et voilà ! Il ne nous reste plus qu'à utiliser notre composant `Providers` pour regrouper tous nos `Provider` : - -```jsx title="index.jsx (ou index.tsx)" {3-16} showLineNumbers -root.render( - - , - , - , - , - , - , - , - // ... - ]} - > - - - -); -``` - -Évidemment le fichier contiendra toujours beaucoup de lignes, mais au moins, on a évité le **context hell** ! -Il sera nettement plus facile de modifier l'ordre des `Provider` ou d'en ajouter de nouveaux. - -## Conclusion - -Ça casse un peu la tête, mais les contextes sont un outil très puissant pour diffuser des données dans nos applications React. - -C'est aussi une excellente solution pour éviter d'utiliser des bibliothèques tierces comme Redux -_(qui est très bien, mais qui peut être un peu lourd pour des petites applications)_. - -Et si tu as besoin de plusieurs contextes dans ton application, n'oublie pas de réfléchir à l'utilisation de notre composant `Providers` pour éviter le **context hell**. \ No newline at end of file diff --git a/old/docs/ressources/frontend/react/hooks.mdx b/old/docs/ressources/frontend/react/hooks.mdx deleted file mode 100644 index 1ab2e85..0000000 --- a/old/docs/ressources/frontend/react/hooks.mdx +++ /dev/null @@ -1,382 +0,0 @@ ---- -sidebar_position: 6 -title: "Les hooks de React" -description: "Découvre les hooks de React, une fonctionnalité qui te permet de gérer le state et le cycle de vie de tes composants fonctionnels." -tags: - - Frontend - - React - - JavaScript/TypeScript - - Bibliothèque - - Interface utilisateur (UI) ---- - -import Button from '@site/src/components/Button'; -import Quiz from '@site/src/components/Quiz'; -import Admonition from '@theme/Admonition'; -import TabItem from '@theme/TabItem'; -import Tabs from '@theme/Tabs'; - -# Les hooks de React - -## Introduction - -Ça y est, on rentre dans le vif du sujet avec les **hooks** de React ! - -On en a déjà parlé un peu dans l'article précédent _(notamment avec le hook `useState` pour déclarer un state)_, mais on va maintenant les aborder en détail. - -## 🎣 Qu'est-ce qu'un hook ? - -Tu te souviens du charabia dans l'article précédent ? -> Un **hook** en React est une fonction qui permet d'exploiter les fonctionnalités de React dans un composant fonctionnel _(fonction)_. - -Essayons de comprendre cette phrase un peu plus en détail en prenant l'origine des composants React. - -Historiquement, on utilisait des **classes** pour déclarer des composants React plutôt que des **fonctions**. -C'était pas mal, mais ça devenait vite compliqué à gérer, notamment pour partager de la logique entre plusieurs composants _(comme le state par exemple)_. - -Pour te donner un aperçu, voici à quoi ressemblait un composant de classe avec les trois étapes du cycle de vie : - - - - ```jsx - import React from 'react'; - - class MyComponent extends React.Component { - constructor(props) { - super(props); - this.state = { count: 0 }; - } - - componentDidMount() { - console.log('Component mounted'); - } - - componentDidUpdate() { - console.log('Component updated'); - } - - componentWillUnmount() { - console.log('Component unmounted'); - } - - render() { - return
{this.state.count}
; - } - } - ``` -
- - - ```tsx - import React from 'react'; - - type MyComponentState = { - count: number; - }; - - class MyComponent extends React.Component { - constructor(props) { - super(props); - this.state: MyComponentState = { count: 0 }; - } - - componentDidMount() { - console.log('Component mounted'); - } - - componentDidUpdate() { - console.log('Component updated'); - } - - componentWillUnmount() { - console.log('Component unmounted'); - } - - render() { - return
{this.state.count}
; - } - } - ``` -
-
- -Comme dirait l'un de mes chers confrères jury : -> C'est pas téros 😕 - -Mais si tu as bien fait attention, tu as pu remarquer trois méthodes _(on ne prend pas le constructor en compte)_ qui sont appelées à des moments précis du cycle de vie du composant : - -- `componentDidMount` : appelée après le premier rendu du composant -- `componentDidUpdate` : appelée après chaque mise à jour du composant -- `componentWillUnmount` : appelée avant la suppression du composant - -Seulement, comment on peut faire pour gérer ces étapes avec des composants fonctionnels ? -Et bien c'est là qu'interviennent les **hooks** ! - -Avant de te montrer **comment** reproduire ces étapes avec des **hooks**, voici les **principaux hooks** de base que tu vas **très souvent** utiliser : - -- `useState` : pour déclarer un **state** -- `useEffect` : pour gérer le **cycle de vie** d'un composant _(on en parle juste après !)_ - -Il en existe d'autres bien entendu, mais ces deux-là sont les plus utilisés. -On reviendra sur les autres hooks "basiques" un peu plus tard 😉 - -## `useEffect`, ou la machinerie du cycle de vie - -Ce hook.. il est **tellement** puissant ! -Mais il est surtout très mal compris par les débutants _(et même parfois par les confirmés)_. - -Il faut dire que Facebook n'a pas aidé en le nommant `useEffect`, surtout que tu vas voir : c'est un couteau suisse ce machin 😅 - -Pour faire court : `useEffect` permet de gérer le cycle de vie d'un composant fonctionnel _(comme `componentDidMount`, `componentDidUpdate` et `componentWillUnmount` pour les composants de classe)_. - -Oui. Il fait tout. Tout seul. -Tu comprends pourquoi je dis "couteau suisse" ? 😏 - -Alors sur le papier c'est top, mais maintenant je te laisse t'amuser à comprendre comment ça fonctionne 😇 - - - - ```jsx - React.useEffect(() => { - // ... - }, []); - ``` - - - - ```jsx - React.useEffect(() => { - // ... - }, [props.uneProp]); - ``` - - - - ```jsx - React.useEffect(() => { - // ... - }); - ``` - - - -Pas cool, hein ? 😂 -Et bien dans ces exemples, on a trois manières d'écrire un `useEffect` : - -1. **Écriture #1** : le hook est exécuté une seule fois, après le premier rendu du composant -2. **Écriture #2** : le hook est exécuté à chaque mise à jour du composant -3. **Écriture #3** : le hook est exécuté à chaque mise à jour du composant, mais seulement si la propriété `uneProp` de `props` a changé - - - Alors quand je dis "le hook est exécuté à chaque mise à jour du composant", il faut également prendre en compte qu'il est également exécuté après le premier rendu du composant. - - -Mais alors, comment on fait pour gérer ces étapes avec des composants fonctionnels ? -Si tu n'as pas vu la différence entre les trois écritures, tu remarqueras que c'est le deuxième argument de `useEffect` qui fait la différence. - -Le premier argument lui, est une fonction **synchrone** _(pas le droit de la rendre asynchrone !)_. -On mettra dedans tout ce qu'on veut exécuter lors de l'appel du hook. - -Le deuxième argument est un tableau de dépendances. -Selon ce tableau, le hook sera exécuté à des moments différents du cycle de vie du composant. - -### ⚙️ ComponentDidMount - -```jsx -React.useEffect(() => { - // ... -}, []); -``` - -Le tableau de dépendances est vide, on sous-entend que le hook ne dépend d'aucune variable et sera exécuté une seule fois. -On peut donc dire que c'est l'équivalent de `componentDidMount` pour les composants de classe. - -### 🔧 ComponentDidUpdate - -```jsx -React.useEffect(() => { - // ... -}); -``` - -Ici, le tableau de dépendances est absent _(et tout va bien, il est optionnel !)_. -Le hook sera exécuté à chaque mise à jour du composant, ainsi que lors du premier rendu. - -```jsx -React.useEffect(() => { - // ... -}, [props.uneProp]); -``` - -Dans ce cas, le tableau de dépendances contient la propriété `uneProp` de `props`. -Le hook sera exécuté à chaque mise à jour du composant _(ainsi qu'au montage)_, mais seulement si la propriété `uneProp` a changé. - -### 🗑️ ComponentWillUnmount - -Et là, tu te dis : "Mais comment je fais pour gérer le démontage du composant ?". -Hehehe, c'est là que ça devient intéressant 😏 - -```jsx -React.useEffect(() => { - return () => { - // ... - }; -}, []); -``` - -Tu as vu ce petit `return` ? Et bien, c'est notre équivalent de `componentWillUnmount` pour les composants de classe ! - -Dans cette fonction de retour, on mettra tout ce qu'on veut exécuter avant la suppression du composant. - -### 📦 Les dépendances - -Tu as pu voir que le deuxième argument de `useEffect` est un tableau de dépendances. -Ce tableau est très important, car il permet de gérer les mises à jour du composant. - -L'idée ici, c'est **d'optimiser** le rendu du composant en évitant de déclencher des mises à jour inutiles. -Pour éviter que React se dise "Tiens, il y a eu un changement, je vais re-rendre le composant", on va lui dire "Non, non, il n'y a pas eu de changement sur la prop que je t'ai fourni, tu peux rester tranquille". - -### 🤓 Exemple concret - -Allez, mettons un peu ce qu'on voit de voir en pratique ! - - - - ```jsx title="Counter.jsx" showLineNumbers - import React from 'react'; - - export const Counter = () => { - const [count, setCount] = React.useState(0); - - React.useEffect(() => { - console.log('Component mounted'); - - return () => { - console.log('Component unmounted'); - }; - }, []); - - React.useEffect(() => { - console.log('Component updated'); - }); - - const increment = () => setCount(count + 1); - - return ( - - ); - }; - ``` - - - - ```tsx title="Counter.tsx" showLineNumbers - import React from 'react'; - - export const Counter = () => { - const [count, setCount] = React.useState(0); - - React.useEffect(() => { - console.log('Component mounted'); - - return () => { - console.log('Component unmounted'); - }; - }, []); - - React.useEffect(() => { - console.log('Component updated'); - }); - - const increment = () => setCount(count + 1); - - return ( - - ); - }; - ``` - - - -### 🔢 On revient sur le cycle de vie ! - -Et... stoooop ! -On revient sur le cycle de vie d'un composant maintenant qu'on a vu `useEffect` en action ! - -Je vais te donner un exemple de code supplémentaire et tu vas devoir deviner l'ordre d'apparition des messages dans la console. - -```jsx title="MyComponent.jsx" {5,8,11,16} showLineNumbers -import React from 'react'; - -export const MyComponent = () => { - React.useEffect(() => { - console.log('1'); - }); - - console.log('2'); - - React.useEffect(() => { - console.log('3'); - }, []); - - const logInRender = () => { - console.log('4'); - return null; - }; - - return ( -
- {logInRender()} -
- ); -}; -``` - -Voici les possibilités : - - - Assez contre-intuitif, n'est-ce pas ? 😅 - - - `2` est affiché en premier. - - Ce code est exécuté **avant** le rendu du composant _(logique puisqu'on n'a pas encore atteint le `return`, non ?)_. - - `4` est affiché en deuxième. - - Ce code est exécuté **pendant** le rendu du composant _(dans le `return`)_. - - `1` est affiché en troisième. - - Ce code est exécuté **après** le rendu du composant _(dans le premier `useEffect`)_. - - `3` est affiché en dernier. - - Ce code est exécuté **après** le rendu du composant _(dans le deuxième `useEffect`)_. - - - - -## 🧩 Les autres hooks - -On a vu les deux hooks les plus utilisés, mais il en existe d'autres qui peuvent être très utiles dans certaines situations. - -Par exemple, on a : - -- `useContext` : pour accéder à un contexte -- `useReducer` : pour gérer un state complexe -- `useCallback` : pour éviter les re-rendus inutiles -- `useMemo` : pour éviter les calculs inutiles -- `useRef` : pour accéder à un élément du DOM - -Ne t'inquiète pas, on va les voir plus tard car le hook `useEffect` est déjà bien assez complexe à comprendre pour le moment 😅 - -## Conclusion - -Et voilà, tu as maintenant toutes les clés en main pour gérer le cycle de vie de tes composants fonctionnels avec les hooks de React ! - -Vraiment, même si les autres hooks restent importants _(voire obligatoires dans certains contextes)_, -tu as déjà de quoi faire de bons composants avec seulement ces deux là 😁 diff --git a/old/docs/ressources/frontend/react/initialiser-un-projet-react.mdx b/old/docs/ressources/frontend/react/initialiser-un-projet-react.mdx deleted file mode 100644 index 22a0ed9..0000000 --- a/old/docs/ressources/frontend/react/initialiser-un-projet-react.mdx +++ /dev/null @@ -1,288 +0,0 @@ ---- -sidebar_position: 2 -title: "Initialisation" -description: "Initialisons un nouveau projet React, avec ou sans TypeScript." -tags: - - Frontend - - React - - JavaScript/TypeScript - - Bibliothèque - - Interface utilisateur (UI) - - Vite - - Vike - - SSR - - SSG - - CSR ---- - -import Admonition from '@theme/Admonition'; -import TabItem from '@theme/TabItem'; -import Tabs from '@theme/Tabs'; - -# Initialiser un projet React - -## Introduction - -Allez, on se lance dans la création d'un projet React ! 🚀 - -L'article sera très court, car il n'y a pas grand chose à dire sur la création d'un projet React. -Tu vas voir à quel point c'est simple ! - -## 👴 Ancienne méthode _(CRA)_ - - - Ici on va parler d'une méthode qui est dépréciée. - Ne l'utilise donc **pas** pour créer de nouveaux projets ! - - -Il y a encore quelques mois/années, on passait régulièrement par le CRA, ou `create-react-app`, pour initialiser un projet React. -L'avantage que proposait cette méthode était de nous fournir un projet prêt à l'emploi, avec une structure de fichiers déjà en place, et des dépendances déjà installées. - -Cependant, cette méthode est désormais dépréciée. Au delà d'être dépréciée, cette méthode a même été **totalement** retirée de la nouvelle documentation officielle de React. - -À la place, la documentation nous propose plutôt d'utiliser : - -- [Next.js](https://react.dev/learn/start-a-new-react-project#nextjs-pages-router) -- [Remix](https://react.dev/learn/start-a-new-react-project#remix) -- [Gatsby](https://react.dev/learn/start-a-new-react-project#gatsby) -- [Expo _(pour les applications natives iOS, Android et web)_](https://react.dev/learn/start-a-new-react-project#expo) - -Mais dans cet article, je vais plutôt te montrer comment initialiser un projet React avec `Vite` et par la suite : [**Vike**](https://vike.dev/). - -Et si tu te demandes "pourquoi" _(à juste titre !)_, c'est tout simplement car il s'agit d'une solution plus légère, plus flexible et qui est en constante amélioration par la communauté ! - -## 🏃 Vite - -Vite est un outil de développement web _(frontend)_ créé par [**Evan You**](https://evanyou.me/), le créateur de Vue.js. -Et si tu connais Vue.js, tu sais déjà qu'on parle d'un outil de qualité ! - -L'objectif principal derrière Vite, c'est d'améliorer considérablement la rapidité de développement de nos applications web, avec notamment un serveur de développement ultra-rapide, et une compilation de production optimisée. - -On peut notamment comparer Vite à Webpack, Grunt ou encore Gulp, mais en beaucoup plus rapide et plus simple à utiliser. -Beaucoup moins "usine à gaz", beaucoup plus "plug-and-play". - -Et si on voyait comment initialiser un projet React avec Vite ? -C'est parti ! 🚀 - -### 👷 Initialisation - -Avant de commencer, assure-toi d'avoir Node.js installé sur ta machine. -Si ce n'est pas le cas, tu peux le télécharger [ici](https://nodejs.org/). - -Prépare toi maintenant pour la partie la plus difficile de cet article... -Ouvre ton terminal, et tape la commande suivante : - - - - ```bash - npm init vite - ``` - - - - ```bash - yarn create vite - ``` - - - - ```bash - pnpm create vite - ``` - - - -Tu vas ensuite devoir répondre à quelques questions, notamment le nom de ton projet, le template que tu souhaites utiliser _(React, Vue, Vanilla, etc.)_, et si tu souhaites utiliser TypeScript. - -Je te laisse la liberté de répondre comme tu veux à ces questions, mais pour un projet React, tu vas devoir choisir le template `react` _(logique non ?)_. - -Et voilà, c'est tout ! -... oui j'ai menti, c'était vraiment pas difficile. 😅 - -### 🚀 Lancement - -Une fois que tu as répondu à toutes les questions, tu vas devoir te rendre dans le dossier de ton projet, et lancer le serveur de développement : - - - - ```bash - cd mon-projet # Se rendre dans le dossier du projet - npm install # Installer les dépendances - npm run dev # Lancer le serveur de développement - ``` - - - - ```bash - cd mon-projet # Se rendre dans le dossier du projet - yarn install # Installer les dépendances - yarn dev # Lancer le serveur de développement - ``` - - - - ```bash - cd mon-projet # Se rendre dans le dossier du projet - pnpm install # Installer les dépendances - pnpm dev # Lancer le serveur de développement - ``` - - - - - Pense à installer les dépendances de ton projet avant de lancer le moindre script _(comme `dev`, `build` etc)_, sinon ça ne va pas très bien se passer ! - - -Tu auras ensuite un message dans ton terminal qui t'indiquera l'adresse à laquelle tu pourras accéder à ton application. -En général, il s'agit de `http://localhost:3000` _(le port peut varier)_. - -Et voilà, tu as maintenant un projet React initialisé avec Vite ! 🎉 - -Par contre je préfère te prévenir, avec cette solution on va davantage s'orienter sur des applications **CSR** _(Client-Side Rendering)_, mais on pourra également voir comment faire du **SSR** _(Server-Side Rendering)_ ou du **SSG** _(Static Site Generation)_ avec Vike. - -## 💪 Vike - -**Vike**, ou anciennement **vite-plugin-ssr**, est un **framework** basé sur Vite qui va nous permettre de créer des applications web avec presque n'importe quelle bibliothèque _(React, Vue, Svelte, etc.)_. - -Dans notre cas, on s'en servira comme alternative au géant du SSR React : Next.js. - -L'énorme avantage de Vike au delà de pouvoir utiliser n'importe quel framework/bibliothèque UI _(et même un framework maison ou du vanilla JS !)_, c'est que tout comme Vite, il est **extrêmement plus léger** et **flexible**. - -Au niveau des fonctionnalités natives, on va retrouver un peu la même chose que Next.js, avec notamment : - -- De quoi gérer le rendu à effectuer _(SSR, SSG, CSR)_ -- Un système de layouts -- Un système de routage -- Un système pour séparer la logique front et la logique back - -Et bien d'autres ! - -Maintenant, si on voyait comment initialiser un projet React avec Vike ? 😉 - -### 👷 Initialisation - -Pour initialiser un projet React avec Vike, c'est très similaire à Vite ! - -Tu vas devoir ouvrir ton terminal, et taper la commande suivante : - - - - ```bash - npm create vike@latest - ``` - - - - ```bash - yarn create vike - ``` - - - - ```bash - pnpm create vike - ``` - - - -Et là, comme avec Vite : ton nouveau projet vient d'être créé ! 🎉 - -Mais si je te disais qu'on peut aller encore plus loin dans cette initialisation ? -Comme rajouter des choses précises comme... - - - - **Choix unique** : - - - [React](https://fr.react.dev/) - - [Vue](https://vuejs.org/) - - [SolidJS](https://www.solidjs.com/) - - - - **Choix unique** : - - - [Tailwind CSS](https://tailwindcss.com/) - - [daisyUI](https://daisyui.com/) - - [Compiled](https://compiledcssinjs.com/) _(uniquement pour React)_ - - - - **Choix unique** : - - - [Cloudflare](https://www.cloudflare.com/) - - [Vercel](https://vercel.com/) - - [Netlify](https://www.netlify.com/) _(indisponible à l'heure actuelle - 16/07/2024)_ - - - - **Choix unique** : - - - [Auth.js](https://authjs.dev/) - - [Auth0](https://auth0.com/) - - [Firebase](https://firebase.google.com/) - - - - **Choix unique** : - - - [Telefunc](https://telefunc.com/) - - [tRPC](https://trpc.io/) - - [ts-rest](https://ts-rest.com/) - - - - **Choix unique** : - - - [Hono](https://hono.dev/) - - [h3](https://h3.unjs.io/) - - [Express](https://expressjs.com/) - - [Fastify](https://www.fastify.io/) - - [HatTip](https://hattipjs.org/) - - - - **Choix unique** : - - - [Prisma](https://www.prisma.io/) - - [EdgeDB](https://edgedb.com/) - - [Drizzle](https://orm.drizzle.team/) - - - - **Choix multiple** : - - - [ESLint](https://eslint.org/) - - [Prettier](https://prettier.io/) - - [Biome](https://biomejs.dev/) - - - - **Choix unique** : - - - [Plausible.io](https://plausible.io/) - - [Google Analytics](https://analytics.google.com/) - - [Segment](https://segment.com/) _(indisponible à l'heure actuelle - 16/07/2024)_ - - - - **Choix indisponibles à l'heure actuelle** _(16/07/2024)_ : - - - [Sentry](https://sentry.io/) - - [Logrocket](https://logrocket.com/) - - - -C'est fou non, surtout pour **une seule commande** ?! 😱 -Et bien c'est totalement possible grâce à [**Bâti**](https://batijs.dev/) qui est un super outil pour initialiser des projets web avec Vike, créé par [**Joël Charles** _(magne4000)_](https://github.com/magne4000) ! - -Si jamais tu veux voir un peu plus comment ça fonctionne, je t'invite fortement à consulter l'outil en question [juste ici](https://batijs.dev/). - -Pour le lancement de ton projet, c'est exactement la même chose que pour Vite. -N'hésite donc pas à te référer à la section précédente pour voir comment lancer ton serveur de développement 😉 - -## Conclusion - -Tu l'auras remarqué, initialiser un projet React avec Vite ou Vike est vraiment très simple ! - -On parle ici d'une simple petite commande et de questions auxquelles répondre, et le tour est joué 🚀 diff --git a/old/docs/ressources/frontend/react/intro.mdx b/old/docs/ressources/frontend/react/intro.mdx deleted file mode 100644 index a2478a9..0000000 --- a/old/docs/ressources/frontend/react/intro.mdx +++ /dev/null @@ -1,246 +0,0 @@ ---- -sidebar_position: 1 -title: "Introduction à React" -description: "Parlons un peu de React, ce qu'il est, ce qu'il fait et pourquoi il est si populaire." -tags: - - Frontend - - React - - JavaScript/TypeScript - - Bibliothèque - - Interface utilisateur (UI) ---- - -import Admonition from '@theme/Admonition'; -import TabItem from '@theme/TabItem'; -import Tabs from '@theme/Tabs'; - -# Introduction à React - -## Introduction - -Parlons peu, parlons bien ! 😄 - -React est une **bibliothèque** _(non, pas un **framework** !)_ JavaScript open-source développée par Facebook. -Elle est utilisée pour construire des interfaces utilisateur _(UI)_ interactives et dynamiques. - - - - **Facilité d'utilisation** : React est facile à apprendre et à utiliser. Il est basé sur JavaScript, qui est l'un des langages de programmation les plus populaires. - - **Réutilisabilité des composants** : React permet de créer des composants réutilisables. Cela signifie que tu peux créer un composant une fois et l'utiliser partout où tu en as besoin. - - **Performances** : React utilise un DOM virtuel _(Virtual DOM)_ pour améliorer les performances de l'application. - - **Communauté active** : React a une communauté active de développeurs qui contribuent à son développement et partagent des ressources utiles. - - -Mais on peut aussi y noter des points faibles bien entendu, car tout n'est pas rose : - -- **Courbe d'apprentissage** : Bien que React soit "facile" à apprendre, les concepts avancés demandent un peu de temps pour être maîtrisés. -- **Taille du bundle** : React est relativement lourd en termes de taille de bundle, ce qui peut affecter les performances de l'application en terme de chargement initial. -- **GAFAM** : Comme d'autres bibliothèques/frameworks, React n'échappe pas à la critique de la part de certains développeurs qui ne souhaitent pas utiliser des technologies développées par des géants du web. - -## 🤔 Pourquoi une bibliothèque et pas un framework ? - -Très grand débat que voilà ! Vraiment.. il y a des guerres qui se sont déclarées pour moins que ça 😅 - -Blague à part, pour pouvoir dire que React n'est pas un framework, il faut comprendre la différence entre les deux : - -- **Framework** : Un framework est un ensemble de bibliothèques et de composants qui sont prédéfinis et structurés pour te permettre de construire une application. - En gros, le framework te dit comment faire les choses. -- **Bibliothèque** : Une bibliothèque est un ensemble de fonctions et de composants que tu peux utiliser pour construire une application. - En gros, c'est toi qui décides comment faire les choses. - -Et si tu connais déjà React, je te vois venir avec tes grands sabots... ! - - - C'est vrai ! React a ses propres règles et conventions, mais il te laisse quand même une grande liberté pour organiser ton code comme tu le souhaites. - - Si on se concentre sur la **préoccupation principale** de React, c'est de gérer l'**interface utilisateur** _(UI)_ de ton application. - En aucun cas, React _(tel quel et "pour le moment")_ va te dire comment gérer ton état global, comment gérer tes requêtes HTTP, etc. - - Mais tu peux totalement utiliser React **au sein** d'un framework ! - Tu as notamment des frameworks comme [**Next.js**](https://nextjs.org/) ou [**Gatsby**](https://www.gatsbyjs.com/) qui utilisent React - avec des fonctionnalités supplémentaires pour gérer le routage, le rendu côté serveur, etc. - - _(Le meilleur, selon moi, c'est [**Vike**](https://vike.dev/) qui te permet d'utiliser presque n'importe quelle bibliothèque avec une même architecture 😏)_ - - Mais concentrons-nous sur React en tant que bibliothèque, et non en tant que framework 😉 - - -## 📝 JSX - -Ce qui peut être déroutant au premier abord avec React, c'est le **JSX**. -On serait tenté de dire que c'est du HTML, mais en fait : **pas du tout** ! - -Le JSX est un sucre syntaxique _(syntactic sugar)_ qui permet d'écrire du code JavaScript en se basant sur le système de balisage HTML. - -L'avantage de JSX c'est que le code devient beaucoup plus lisible et plus proche de ce que tu connais déjà avec HTML. -Mais il s'agit bien de JavaScript, et non de HTML ! - -## 🧩 Composants - -React est basé sur le concept de **composants**. Un composant est une partie réutilisable de l'interface utilisateur _(UI)_ qui peut être affichée à l'écran. - -Dans la majorité des cas, on va chercher à **mutualiser** les composants pour éviter de répéter du code inutilement. -L'exemple le plus flagrant sera par exemple tous les boutons de ton application, qui auront probablement tous la même apparence et le même comportement. - -Il est aussi possible de les **imbriquer** les uns dans les autres ! -En fait, on joue avec des Lego, mais en version code 👷 - -Mais si on veut vraiment montrer le potentiel de React, parlons maintenant... 🥁 -Des **states**, **cycles de vie** et des **props** ! - -## 🛠️ States, Cycles de vie et Props - -T'assomer aussi vite avec ces termes qui ne te parlent peut-être pas, c'est pas cool de ma part... -Pardon pour les gros mots, je me calme tout de suite ! 🙈 - -Si ça te rassure, je vais très rapidement évoquer ce qu'il se cache derrière ces termes barbares, -je réserve les détails pour des articles dédiés 😉 - -### 🗄️ States - -... ou également appelés **états** en français. - -Le but du state, c'est de stocker des données qui vont être **observées** par React. -À chaque fois que le state va être modifié, React va **réagir** et mettre à jour l'interface utilisateur _(UI)_ en conséquence afin d'afficher les nouvelles données. - -### 🔄 Cycles de vie - -Les **cycles de vie** _(lifecycle)_ sont des méthodes qui sont appelées à des moments précis dans le cycle de vie d'un composant React. - -Si tu as lu la section qui parle brièvement des states, tu auras peut-être remarqué cette phrase : -> À chaque fois que le state va être modifié, React va **réagir** et mettre à jour l'interface utilisateur [...] - -Et bien c'est là que les cycles de vie entrent en jeu ! -Un composant sur React va avoir un cycle de vie, caractérisé par trois phases : - -1. **Montage du composant** _(Mounting)_ : le composant est créé et inséré dans le DOM. -2. **Mise à jour du composant** _(Updating)_ : le composant est mis à jour en fonction des changements de state ou de props. -3. **Démontage du composant** _(Unmounting)_ : le composant est retiré du DOM. - -Ces différentes phases vont nous permettre d'interagir avec le composant à des moments précis, et d'effectuer des actions en conséquence. - -### 📦 Props - -Et pour finir, les **props** _(properties ou tout simplement "propriétés" en français)_ ! - -Il s'agit ni plus ni moins que des **arguments** que tu vas passer à un composant, comme tu le ferais avec une fonction. - -Cependant il faut noter une chose : - -On transmet les props à un composant précis, qui sera donc un composant **enfant**. -Un composant enfant ne pourra pas transmettre des props à un composant parent, c'est unidirectionnel _(mais on verra comment on peut faire autrement 😉)_. - -## 🖥️ Une petite démo ? - -OK, mais vraiment petite ! - -Prenons l'exemple d'une application qui servira **uniquement** à afficher une liste de tâches _(une todolist donc !)_. -_(Bon... utiliser React uniquement pour ça c'est abusé, mais c'est pour l'exemple 😅)_ - - - - ```tsx showLineNumbers - import TodoList from './TodoList'; - import React from 'react'; - - const App = () => { - return ( -
-

TodoList

- - -
- ); - }; - ``` -
- - - ```tsx showLineNumbers - import TodoListItem from './TodoListItem'; - import React from 'react'; - - const TodoList = () => { - const [items, setItems] = React.useState([]); - const [inputValue, setInputValue] = React.useState(""); - - const handleInputValueChange = (event: React.ChangeEvent) => { - setInputValue(event.target.value); - }; - - const handleSubmit = (event: React.FormEvent) => { - // On empêche le comportement par défaut du formulaire - event.preventDefault(); - - // On ajoute un nouvel élément à la liste des tâches - setItems([...items, inputValue]); - - // On réinitialise la valeur de l'input - setInputValue(""); - }; - - return ( -
-
- - - -
- -
    - {items.map((item, index) => ( -
  • - -
  • - ))} -
-
- ); - }; - - export default TodoList; - ``` -
- - - ```tsx showLineNumbers - import React from 'react'; - - interface TodoListItemProps { - item: string; - } - - const TodoListItem = (props: TodoListItemProps) => { - return {props.item}; - }; - - export default TodoListItem; - ``` - -
- -On peut très bien imaginer des améliorations à cette application, comme par exemple : - -- Supprimer une tâche -- Réinitialiser la liste des tâches -- Marquer une tâche comme terminée _(et inversement)_ -- Ordonner les tâches pour afficher en priorité les tâches non terminées -- Enregistrer les tâches dans le navigateur pour les retrouver après un rafraîchissement de la page - -Et si on se gardait ça pour la suite ? 😉 - -## Conclusion - -Tu l'auras compris, React permet de résoudre un certain nombre de problématiques que l'on peut rencontrer lors du développement d'une application web. - -Pas des problématiques majeures, mais ça nous permet tout de même en tant que développeur de gagner du temps et de l'efficacité ! - -Dans le cas où le fait que ce soit créé et maintenu par Facebook _(ou GAFAM de manière générale)_ est contre tes valeurs, -tu as des solutions très semblables qui existent, comme [**SolidJS**](https://www.solidjs.com/) par exemple. - -Et si tu veux en savoir plus, je t'invite à lire les articles suivants qui vont te permettre de rentrer un peu plus dans le détail de React ! 🚀 \ No newline at end of file diff --git a/old/docs/ressources/frontend/react/premier-composant.mdx b/old/docs/ressources/frontend/react/premier-composant.mdx deleted file mode 100644 index 23677ae..0000000 --- a/old/docs/ressources/frontend/react/premier-composant.mdx +++ /dev/null @@ -1,240 +0,0 @@ ---- -sidebar_position: 4 -title: "Premier composant" -description: "Voyons ensemble comment notre premier composant React !" -tags: - - Frontend - - React - - JavaScript/TypeScript - - Bibliothèque - - Interface utilisateur (UI) ---- - -import Admonition from '@theme/Admonition'; -import TabItem from '@theme/TabItem'; -import Tabs from '@theme/Tabs'; - -# Premier composant React - -## Introduction - -Rentrons maintenant dans le vif du sujet en créant notre premier composant React ! -Dans cet article, on va faire un composant très simple : un **dumb component** qui sera tout simplement un bouton. - - - Un **dumb component** est un composant React qui ne contient pas de logique. - Enfin si, il peut en contenir _(mais rien de foufou)_, son rôle est de simplement afficher des données. - - En gros : - - Il ne fait que de l'affichage - - Il ne fait pas de calculs - - Il ne fait pas de requêtes HTTP - - -## ⚙️ Syntaxes pour créer un composant - -Il existe plusieurs façons de créer un composant React. - -La plus simple est de créer une fonction qui retourne du JSX, mais il est aussi possible de créer une classe qui étend `React.Component`. - -Cependant, on ne va pas s'attarder sur la déclaration de composants dans des classes. - -Pourquoi ? Déjà parce que la [documentation officielle](https://react.dev/reference/react/Component) recommande désormais de définir des composants en tant que fonctions, mais surtout parce que c'est plus simple et plus lisible ! 🚀 - -## 👷 Création du composant - -Allez c'est parti, occupons-nous de notre premier composant React ! - -```jsx title="Button.jsx" showLineNumbers -import React from 'react'; - -export const Button = () => { - return ; -}; -``` - -... et c'est tout ! 🎉 -On a créé notre premier composant React, c'est pas beau ça ? - -Bon évidemment, il reste extrêmement sommaire et n'a pas d'intérêt à l'heure actuelle, mais c'est un bon début ! - -Avant d'aller plus loin, décortiquons un peu ce code : - -- On importe `React` depuis la librairie React _(ligne 1)_ -- On crée une fonction fléchée `Button` _(lignes 3 à 5)_ - - Cette fonction retourne un élément JSX `` - -## 🧩 Utilisation du composant - -C'est bien beau d'avoir un composant, mais maintenant il faut l'utiliser ! - -```jsx title="App.jsx" {3,9} showLineNumbers -import React from 'react'; - -import { Button } from './Button'; - -export const App = () => { - return ( -
-

Mon premier composant React

-
- ); -}; -``` - -On importe notre composant `Button` _(ligne 3)_ et on l'utilise dans notre composant `App` _(ligne 9)_. - -Rien de bien sorcier, n'est-ce pas ? 😊 - -Mais maintenant, on va vouloir donner un peu plus de vie à notre bouton... -Parce que là pour le coup, il est inutile. 😅 - -## 📦 Props - -Les **props** _(pour properties)_ sont des arguments que l'on peut passer à un composant React. -Il s'agit en quelque sorte des paramètres d'une fonction. - -Imaginons ici que l'on veut rajouter : - -- Un texte au bouton -- Une action à effectuer lorsqu'on clique dessus - -Avant de t'expliquer **comment** faire, je vais te montrer **ce que** ça donne pour son utilisation : - -```jsx title="App.jsx" {3,6,11-13} showLineNumbers -import React from 'react'; - -import { Button } from './Button'; - -export const App = () => { - const handleClick = () => console.log('Je suis cliqué !'); - - return ( -
-

Mon premier composant React

- -
- ); -}; -``` - -Voyons un peu ce qui change ! - -- Fonction `handleClick` qui affiche un message dans la console _(ligne 6)_ -- On passe la fonction `handleClick` en tant que prop `onClick` à notre composant `Button` _(ligne 11)_ -- On passe le texte `Clique-moi !` entre la balise ouvrante et fermante de notre composant `Button` _(ligne 12)_ - -Mais alors, comment on fait pour récupérer ces props dans notre composant `Button` ? - - - - ```jsx title="Button.jsx" showLineNumbers - import React from 'react'; - - export const Button = (props) => { - return ; - }; - ``` - - - - ```tsx title="Button.tsx" showLineNumbers - import React from 'react'; - - type ButtonProps = { - onClick: () => void; - children: React.ReactNode; - }; - - export const Button = (props: ButtonProps) => { - return ; - }; - ``` - - - -Comme tu peux voir, on récupère les props passées à notre composant `Button` en tant que paramètre de la fonction. - -Mais tu peux également remarquer qu'il y a une propriété `children` qui n'est pas passée de la même manière que `onClick`. - -C'est totalement normal ! `children` est une prop spéciale qui contient tout ce qui se trouve entre les balises ouvrante et fermante du composant. - - - Tu as totalement raison ! On recommande effectivement de ne pas faire du JS inline dans notre HTML et de privilégier un fichier distinct pour notre JavaScript. - Et donc tu sais déjà qu'on va préférer l'utilisation des `addEventListener` 😏 - - ... cependant ici, **on ne fait pas du HTML** mais du JSX, et c'est une autre histoire ! - - -## 🖇️ Les différentes props - -Il existe plusieurs props que l'on peut passer à un composant React : - -- `children` : Contient tout ce qui se trouve entre les balises ouvrante et fermante du composant -- les autres props : Tout ce qui est passé en dehors des balises ouvrante et fermante du composant - -Alors évidemment, cette explication est très réductrice, mais on va s'en contenter pour le moment. - -Mais tu te doutes bien qu'il existe des props spécifiques à certains éléments HTML qui peuvent être passées à un composant React. - -### 🔒 Mots clés protégés - -En HTML, il existe des attributs qui sont utilisés dans certains éléments HTML. Cependant, comme ici on ne fait pas du HTML mais du JSX, on ne va pas pouvoir les utiliser tels quels. - -Pour te donner un exemple concret, si tu veux ajouter une classe CSS à un élément, tu ne pourras pas utiliser l'attribut `class` mais `className`. - -Mais alors, pourquoi ? - -Comme le JSX reste avant tout du JavaScript, on ne peut pas utiliser des mots-clés réservés comme `class`, `for`, `default`, etc. - -
- Plus d'informations sur les mots-clés protégés - - React comprendra ces mots clés au sein des composants, cependant il va générer un avertissement dans la console du navigateur pour te prévenir que tu utilises un mot-clé protégé qui est "ambigu". - - Cependant, certaines bibliothèques qui utilisent le JSX, comme [SolidJS](https://www.solidjs.com/) par exemple, utilisent ces mots-clés protégés au sein des composants. Ca ne veut pas dire que c'est "bien" ou "pas bien", mais qu'il faut être conscient de ce que l'on fait et de comment est interprété notre code par la bibliothèque 😉 -
- -On va donc utiliser des noms d'attributs qui sont similaires à ceux du HTML, mais qui sont adaptés pour le JSX. - -- `class` devient `className` _(pour les classes CSS)_ -- `for` devient `htmlFor` _(pour les labels)_ -- `default` devient `defaultValue` _(pour les champs de formulaire)_ - -Et il en existe bien d'autres, mais on va s'arrêter là pour le moment ! 😊 - -### 👂 Écouteurs d'événements - -Il existe également des attributs spécifiques pour les écouteurs d'événements. -Tu as notamment pu déjà faire la rencontre de `onClick`, mais il en existe bien d'autres ! - -Il s'agit de la syntaxe à adopter avec React pour ajouter des écouteurs d'événements à des composants JSX, et non pas d'utiliser `addEventListener` directement dans le JavaScript 😉 - -J'aimerai beaucoup pouvoir te donner une liste d'exemples d'écouteurs d'événements, mais il y en a tellement que je ne pourrais pas tous les citer ici. -La forme étant toujours la même, tu peux facilement savoir comment les écrire ! - -La forme est simple : -- Préfixe : `on` -- Événement : nom de l'événement en camelCase - -Par exemple : -- `click` => `onClick` -- `change` => `onChange` -- `submit` => `onSubmit` -- `mouseenter` => `onMouseEnter` -- `mouseleave` => `onMouseLeave` - -Et si tu cherches une liste complète des écouteurs d'événements, je t'invite à tout simplement consulter le [MDN Web Docs](https://developer.mozilla.org/fr/docs/Web/Events) qui est une mine d'or pour tout ce qui est lié au développement web ! - -Au début, on peut trouver ça un peu déroutant puisqu'on va naturellement les associer à du HTML, mais il faut se rappeler qu'on est dans du JSX _(oui, j'insiste beaucoup là-dessus !)_. - -## Conclusion - -Et voilà, on a créé notre premier composant React ! -On a même rapidement vu comment passer des props à un composant et comment les récupérer. - -Et si pour le prochain article, on parle un peu des states pour rajouter un peu d'intéractivité à nos composants ? -Parce que c'est déjà cool ce qu'on a pu faire, mais on peut faire tellement plus avec React ! 🚀 diff --git a/old/docs/ressources/frontend/react/reducers.mdx b/old/docs/ressources/frontend/react/reducers.mdx deleted file mode 100644 index 02e4dc8..0000000 --- a/old/docs/ressources/frontend/react/reducers.mdx +++ /dev/null @@ -1,596 +0,0 @@ ---- -sidebar_position: 8 -title: "Le hook useReducer de React" -description: "Découvrez comment utiliser le hook useReducer de React pour gérer l'état de vos composants de manière plus efficace." -tags: - - Frontend - - React - - JavaScript/TypeScript - - Bibliothèque - - Interface utilisateur (UI) ---- - -import Button from '@site/src/components/Button'; -import Quiz from '@site/src/components/Quiz'; -import Admonition from '@theme/Admonition'; -import TabItem from '@theme/TabItem'; -import Tabs from '@theme/Tabs'; - -# L'utilisation des reducers avec React - -## Introduction - -Si tu as lu les précédentes pages concernant les hooks de React _(`useState`, `useEffect` et `useContext`)_, tu as déjà une bonne vision de la manière dont tu peux concevoir une application React. - -Mais si je te dis que tu peux aller encore plus loin avec `useReducer` pour la gestion des états, est-ce que tu serais intéressé·e ? 🤔 - - - Le hook `useState` est génial et essentiel pour gérer l'état local d'un composant, mais il n'est pas adapté pour des états dits "complexes" ou pour des états qui dépendent les uns des autres. - - -## Qu'est-ce que le hook `useReducer` ? - -Le hook `useReducer` est une alternative à `useState` qui est plus adaptée pour gérer des états complexes ou des états qui dépendent les uns des autres. - -Il est basé sur le concept de [**reducers**](https://redux.js.org/tutorials/fundamentals/part-3-state-actions-reducers) que l'on retrouve dans la [bibliothèque Redux](https://redux.js.org). - -Un reducer est une fonction qui prend en paramètre un état et une action, et qui retourne un nouvel état. Il permet un découpage plus fin de la logique de gestion de l'état. - -Mais avant de rentrer dans les détails, donnons des exemples de quand utiliser `useReducer` ou `useState` ! - -### Quand utiliser `useState` ? - -Si tu dois stocker un état simple, comme un booléen, un nombre ou une chaîne de caractères, alors `useState` est parfait pour cela. - -Ne te casse donc pas la tête à remplacer tous tes `useState` par des `useReducer` si tu n'en as pas besoin. 😅 - -### Quand utiliser `useReducer` ? - -Dès que l'on a des états complexes ou des états qui dépendent les uns des autres, il est recommandé d'utiliser `useReducer`. - -Par exemple, si tu as un formulaire avec plusieurs champs, et que tu veux gérer l'état de chaque champ de manière indépendante, alors `useReducer` est une bonne solution. - -Ça te permettra d'éviter de créer des tonnes de `useState` et/ou handlers pour chaque champ du formulaire. - -Mais `useReducer` n'est pas seulement utile pour les formulaires, il peut être utilisé dans de nombreux cas, comme la gestion d'un panier d'achat, la gestion d'une ressource, etc. - -## À quoi ressemble un reducer ? - -Comme expliqué plus tôt, un reducer est une fonction qui prend en paramètre un état et une action, et qui retourne un nouvel état. - -Parlons dans un premier temps de la signature d'un reducer : - - - - ```jsx - const reducer = (state, action) => { - switch (action.type) { - case 'TYPE_1': - return { ...state, /* Nouvel état */ }; - case 'TYPE_2': - return { ...state, /* Nouvel état */ }; - default: - return state; - } - }; - ``` - - - - ```jsx - const reducer = (state: State, action: Action) => { - switch (action.type) { - case 'TYPE_1': - return { ...state, /* Nouvel état */ }; - case 'TYPE_2': - return { ...state, /* Nouvel état */ }; - default: - return state; - } - }; - ``` - - - -Comme tu peux le voir, on récupère bien deux paramètres : `state` et `action`. - -Le `state` est l'état actuel du composant, et l'`action` est un objet qui contient un type et d'autres propriétés. - -En fonction du type de l'action, on retourne un nouvel état. -Par défaut _(c'est-à-dire si le type de l'action n'est pas reconnu)_, on retourne l'état actuel sans l'altérer. - -Dans le reducer, il est strictement impossible d'altérer l'état actuel directement. -L'état est contraint au principe d'**immutabilité**. - -On fera donc des `return` de l'état actuel avec les modifications nécessaires. - - - Si on ne déverse pas le contenu de l'état actuel, on perdrait les propriétés qui ne sont pas modifiées par l'action. - - En déversant le contenu de l'état actuel, on s'assure de ne pas perdre ces propriétés. - - Par exemple : - ```jsx - const initialState = { count: 0, message: 'Hello' }; - - const reducer = (state, action) => { - switch (action.type) { - case 'INCREMENT': - return { count: state.count + 1 }; - default: - return state; - } - }; - ``` - - On perdrait ici la propriété `message` si on ne la déversait pas dans le nouvel état. - - -## Comment utiliser `useReducer` ? - -Maintenant que tu as une idée de ce qu'est un reducer, voyons comment l'utiliser avec le hook `useReducer` au sein d'une application React ! 🚀 - -Naturellement, on va commencer par importer le hook `useReducer` : - -```jsx -import { useReducer } from 'react'; -``` - -Ensuite, on va définir notre état initial : - - - - ```jsx - const initialState = { count: 0 }; - ``` - - - - ```tsx - type State = { - count: number; - }; - - const initialState: State = { - count: 0, - }; - ``` - - - -On peut maintenant définir notre reducer : - - - - ```jsx - const reducer = (state, action) => { - switch (action.type) { - case "INCREMENT": - return { ...state, count: state.count + 1 }; - case "DECREMENT": - return { ...state, count: state.count - 1 }; - case "RESET": - return { ...state, count: 0 }; - case "SET": - return { ...state, count: action.payload }; - default: - return state; - } - }; - ``` - - - - ```tsx - type State = { - count: number; - }; - - type Action = { - type: "INCREMENT" | "DECREMENT" | "RESET" | "SET"; - payload?: number; - }; - - const reducer = (state: State, action: Action) => { - switch (action.type) { - case "INCREMENT": - return { ...state, count: state.count + 1 }; - case "DECREMENT": - return { ...state, count: state.count - 1 }; - case "RESET": - return { ...state, count: 0 }; - case "SET": - return { ...state, count: action.payload! }; - default: - return state; - } - }; - ``` - - - - - La propriété `payload` de l'action est optionnelle. Il s'agit d'une convention pour passer des données à l'action. - - Le `!` après `action.payload` signifie que l'on est sûr que `payload` est défini. - Cela permet d'éviter une erreur de type avec TypeScript. - - Dans le cas du type `SET`, le payload sera défini obligatoirement avec un nombre qui sera la nouvelle valeur de la propriété `count` de l'état. - - -Enfin, on peut utiliser le hook `useReducer` dans notre composant : - - - - ```jsx - const [state, dispatch] = useReducer(reducer, initialState); - ``` - - - - ```tsx - const [state, dispatch] = useReducer(reducer, initialState); - ``` - - - -`state` contient l'état actuel, et `dispatch` est une fonction qui permet d'envoyer une action au reducer. - -Pour modifier l'état, on va donc appeler `dispatch` avec une action : - -```jsx -dispatch({ type: 'INCREMENT' }); -``` - -Et voilà, tu sais maintenant comment utiliser `useReducer` dans une application React ! 🎉 - -## On nettoie tout ça ! - -Tout ce qui t'a été montré plus haut fonctionne, mais est-ce que pour autant ce code est qualitatif ? 🤔 - -**Non !** - -Pourquoi ? Déjà, on a tout mis dans le même fichier, ce qui n'est pas très propre. -Mais surtout, notre code n'est pas à l'abri d'erreurs. - -Que se passerait-il si on se trompait dans le type de l'action ? -Ou si on oubliait de passer un payload à l'action `SET` ? - -C'est ce genre de comportements que l'on veut éviter pour nous assurer le bon fonctionnement de notre application. - -Pour contrer ces problèmes, on va créer des actions et des types d'actions pour garantir la cohérence de notre code. - -### Création des types d'actions - -Nos types d'actions seront tous des chaînes de caractères. On va donc pouvoir les définir sous forme de constantes. - -```jsx -export const INCREMENT = 'INCREMENT'; -export const DECREMENT = 'DECREMENT'; -export const RESET = 'RESET'; -export const SET = 'SET'; -``` - - - Et là, tu te dis : "Pourquoi ne pas regrouper les exports dans un seul objet ?" - - Bien vu ! Et pour TypeScript, on peut aller encore plus loin en créant un `enum` pour les types d'actions 😉 - - - - ```jsx - export const CounterActionTypes = { - INCREMENT: 'INCREMENT', - DECREMENT: 'DECREMENT', - RESET: 'RESET', - SET: 'SET', - }; - ``` - - - - ```tsx - export const enum CounterActionTypes { - INCREMENT = 'INCREMENT', - DECREMENT = 'DECREMENT', - RESET = 'RESET', - SET = 'SET', - } - ``` - - - - -### Typage des actions - -Si tu utilises JavaScript, je suis désolé de te dire que tu ne peux pas **fortement** typer les actions. - -En revanche, si tu utilises TypeScript, tu peux définir les actions de la manière suivante : - -```tsx -export type CounterAction = - | { type: CounterActionTypes.INCREMENT } - | { type: CounterActionTypes.DECREMENT } - | { type: CounterActionTypes.RESET } - | { type: CounterActionTypes.SET; payload: number }; -``` - -Tu pourras alors utiliser `CounterAction` pour typer les actions de ton reducer : - -```tsx -const reducer = (state: State, action: CounterAction) => { - switch (action.type) { - case CounterActionTypes.INCREMENT: - return { ...state, count: state.count + 1 }; - case CounterActionTypes.DECREMENT: - return { ...state, count: state.count - 1 }; - case CounterActionTypes.RESET: - return { ...state, count: 0 }; - case CounterActionTypes.SET: - return { ...state, count: action.payload }; - default: - return state; - } -}; -``` - -### Action creators - -Pour éviter de se tromper dans le type de l'action, on peut se créer des fonctions qui vont nous permettre de créer des actions. - - - - ```jsx - export const actions = { - increment: () => ({ type: CounterActionTypes.INCREMENT }), - decrement: () => ({ type: CounterActionTypes.DECREMENT }), - reset: () => ({ type: CounterActionTypes.RESET }), - set: (value) => ({ type: CounterActionTypes.SET, payload: value }), - }; - ``` - - - - ```tsx - export const actions = { - increment: (): CounterAction => ({ type: CounterActionTypes.INCREMENT }), - decrement: (): CounterAction => ({ type: CounterActionTypes.DECREMENT }), - reset: (): CounterAction => ({ type: CounterActionTypes.RESET }), - set: (value: number): CounterAction => ({ type: CounterActionTypes.SET, payload: value }), - }; - ``` - - - -Maintenant le dispatch de nos actions sera beaucoup plus simple et éviter davantage les erreurs lors du développement ! - -```jsx -dispatch(actions.increment()); -dispatch(actions.set(10)); -``` - -## Les fichiers complets - -On a vu beaucoup de chose et les fichiers sont un peu éparpillés. -Pour t'aider à mieux comprendre le fonctionnement du hook `useReducer` et comment l'implementer, voici les fichiers complets : - - - - ```jsx title="/src/reducers/counterReducer.js" showLineNumbers - const CounterActionTypes = { - INCREMENT: 'INCREMENT', - DECREMENT: 'DECREMENT', - RESET: 'RESET', - SET: 'SET', - }; - - export const initialState = { count: 0 }; - - export const reducer = (state, action) => { - switch (action.type) { - case CounterActionTypes.INCREMENT: - return { ...state, count: state.count + 1 }; - case CounterActionTypes.DECREMENT: - return { ...state, count: state.count - 1 }; - case CounterActionTypes.RESET: - return { ...state, count: 0 }; - case CounterActionTypes.SET: - return { ...state, count: action.payload }; - default: - return state; - } - }; - - export const actions = { - increment: () => ({ type: CounterActionTypes.INCREMENT }), - decrement: () => ({ type: CounterActionTypes.DECREMENT }), - reset: () => ({ type: CounterActionTypes.RESET }), - set: (value) => ({ type: CounterActionTypes.SET, payload: value }), - }; - ``` - - ```jsx title="/src/components/Counter.jsx" showLineNumbers - import { initialState, actions, reducer } from '../reducers/counterReducer'; - import { useReducer } from 'react'; - - const Counter = () => { - const [state, dispatch] = useReducer(reducer, initialState); - - return ( -
-

Count: {state.count}

- - - - - - - - -
- ); - }; - ``` -
- - - ```tsx title="/src/reducers/counterReducer.ts" showLineNumbers - const enum CounterActionTypes { - INCREMENT = 'INCREMENT', - DECREMENT = 'DECREMENT', - RESET = 'RESET', - SET = 'SET', - } - - type State = { - count: number; - }; - - type Action = - | { type: CounterActionTypes.INCREMENT } - | { type: CounterActionTypes.DECREMENT } - | { type: CounterActionTypes.RESET } - | { type: CounterActionTypes.SET; payload: number }; - - export const initialState: State = { count: 0 }; - - export const reducer = (state: State, action: Action) => { - switch (action.type) { - case CounterActionTypes.INCREMENT: - return { ...state, count: state.count + 1 }; - case CounterActionTypes.DECREMENT: - return { ...state, count: state.count - 1 }; - case CounterActionTypes.RESET: - return { ...state, count: 0 }; - case CounterActionTypes.SET: - return { ...state, count: action.payload }; - default: - return state; - } - }; - - export const actions = { - increment: (): Action => ({ type: CounterActionTypes.INCREMENT }), - decrement: (): Action => ({ type: CounterActionTypes.DECREMENT }), - reset: (): Action => ({ type: CounterActionTypes.RESET }), - set: (value: number): Action => ({ type: CounterActionTypes.SET, payload: value }), - }; - ``` - - ```tsx title="/src/components/Counter.tsx" showLineNumbers - import { initialState, actions, reducer } from '../reducers/counterReducer'; - import { useReducer } from 'react'; - - const Counter = () => { - const [state, dispatch] = useReducer(reducer, initialState); - - return ( -
-

Count: {state.count}

- - - - - - - - -
- ); - }; - ``` -
-
- -## C'est l'heure des questions ! - - - `useReducer` est plus adapté pour gérer des états complexes ou des états qui dépendent les uns des autres. - - Si tu dois stocker un état simple, comme un booléen, un nombre ou une chaîne de caractères, alors `useState` est parfait pour cela. - - Au contraire, si tu as un état complexe ou des états qui dépendent les uns des autres, il est recommandé d'utiliser `useReducer` du fait que `useState` n'est pas le plus performant pour les états complexes. - - - { /* Code */ }" }, - { label: "B", value: "(action, state) => { /* Code */ }" }, - { label: "C", value: "(state) => { /* Code */ }" }, - ]} - correctAnswer="A" -> - La signature d'un reducer est `(state, action) => { /* Code */ }`. - - On récupère bien deux paramètres : `state` et `action`. - - Le `state` est l'état actuel du composant, et l'`action` est un objet qui contient un type et d'autres propriétés. - - En fonction du type de l'action, on retourne un nouvel état. - - - - On déverse le contenu de l'état actuel dans le nouvel état pour éviter de perdre les propriétés qui ne sont pas modifiées par l'action. - - Si on ne déversait pas le contenu de l'état actuel, on perdrait les propriétés qui ne sont pas modifiées par l'action. - - En déversant le contenu de l'état actuel, on s'assure de ne pas perdre ces propriétés. - - - - On utilise des constantes pour les types d'actions pour éviter de se tromper dans le type de l'action. - - En définissant des constantes pour les types d'actions, on s'assure que le type de l'action est correct, cohérent et surtout : **existant**. - - -## Conclusion - -Alors, pas trop fatigué·e ? 😅 -Au moins ça en valait la peine ! Tu te feras moins de nœuds au cerveau par la suite dans tes projets React ! - -Comme tu as pu le voir, `useReducer` est un outil puissant pour gérer des états complexes ou des états qui dépendent les uns des autres. - -Même si ici notre exemple n'était qu'un simple compteur, tu peux appliquer tout ce que tu as pu voir dans des cas plus concrets. - -Si tu veux aller encore plus loin, n'hésite pas à jeter un œil à la [documentation officielle de React](https://react.dev/reference/react/useReducer) pour `useReducer`. -Tu peux également te renseigner sur [Redux](https://redux.js.org) si tu veux aller encore plus loin dans la gestion de l'état de ton application, mais attention, c'est une autre paire de manches ! 😄 \ No newline at end of file diff --git a/old/docs/ressources/frontend/react/state-et-cycle-de-vie.mdx b/old/docs/ressources/frontend/react/state-et-cycle-de-vie.mdx deleted file mode 100644 index f14bdba..0000000 --- a/old/docs/ressources/frontend/react/state-et-cycle-de-vie.mdx +++ /dev/null @@ -1,212 +0,0 @@ ---- -sidebar_position: 5 -title: "State et cycle de vie" -description: "Voyons ensemble comment gérer le state et le cycle de vie d'un composant React !" -tags: - - Frontend - - React - - JavaScript/TypeScript - - Bibliothèque - - Interface utilisateur (UI) ---- - -import Button from '@site/src/components/Button'; -import Admonition from '@theme/Admonition'; -import TabItem from '@theme/TabItem'; -import Tabs from '@theme/Tabs'; - -# State et cycle de vie - -## Introduction - -Dans le précédent article, nous avons vu comment créer notre premier composant React avec notamment le concept de **props**. - -Voyons maintenant comment gérer le **state** et le **cycle de vie** d'un composant React ! -Commençons tranquillement avec le **cycle de vie** d'un composant, puisqu'il est indispensable pour comprendre le **state**. - - - Dans cet article, on va utiliser des composants fonctionnels _(fonctions)_ plutôt que des composants de classe _(classes)_ pour déclarer nos composants React. - Pour rappel, les composants déclarés avec des classes ne sont plus recommandés par la [documentation officielle](https://react.dev/reference/react/Component). - - -## 🔄 Cycle de vie - -Le **cycle de vie** d'un composant React est une série d'étapes que traverse un composant, de sa création _(montage)_ à sa destruction _(démontage)_. - -Voici les trois différentes étapes du cycle de vie d'un composant React : - -1. **Montage** _(Mounting)_ : le composant est créé et inséré dans le DOM -2. **Mise à jour** _(Updating)_ : le composant est mis à jour suite à un changement de **props** ou de **state** -3. **Démontage** _(Unmounting)_ : le composant est retiré du DOM - -On verra un peu plus en détail ces étapes dans l'article suivant qui traitera un certain hook de React : `useEffect`. - - - Haha, non ! - - Un hook en React, est une fonction qui permet d'exploiter les fonctionnalités de React dans un composant fonctionnel _(fonction)_. - - Bon... c'est un peu du charabia, mais on verra ça plus en détail dans le prochain article car il y a beaucoup à dire sur les hooks ! - - -Mais pour le moment, restons en à une vue d'ensemble du cycle de vie ! - -## 🧠 State - -Le **state** est un objet qui contient les données internes d'un composant. -Il est propre à chaque composant et peut être modifié par ce dernier _(à ne pas confondre avec les **props** qui elles sont immuables)_. - -Mais alors, pourquoi utiliser un state alors qu'on pourrait tout simplement déclarer une variable dans notre composant ? - -Prenons cet exemple : - - - - ```jsx title="Counter.jsx" showLineNumbers - import React from 'react'; - - export const Counter = () => { - let count = 0; - - const increment = () => { - count += 1; - console.log("Increment", count); - }; - - return ( - - ); - }; - ``` - - - - ```tsx title="Counter.tsx" showLineNumbers - import React from 'react'; - - export const Counter = () => { - let count: number = 0; - - const increment = () => { - count += 1; - console.log("Increment", count); - }; - - return ( - - ); - }; - ``` - - - - - -On serait tentés de croire que ce code fonctionne. Après tout, en vanilla JS _(JavaScript pur)_, on pourrait tout à fait faire ça ! -Et maintenant tu t'en doutes _(sinon pourquoi j'en parlerai ?)_, ce code ne fonctionne pas. - -Pourtant, si on regarde la console du navigateur on voit bien que la variable `count` est bien incrémentée ! - -La raison est très simple : React ne sait pas que la variable `count` a été modifiée. -Pour être plus précis, React ne sait pas qu'il doit mettre à jour l'interface utilisateur _(UI)_ suite à la modification de `count`. - -C'est là qu'intervient le **state** ! -Le state est **réactif** et permet à React de savoir quand il doit mettre à jour l'interface utilisateur _(UI)_. - -### 📝 Déclaration du state - -Pour déclarer un **state**, on utilise le hook `useState` de React. - - - - ```jsx - const [count, setCount] = React.useState(0); - ``` - - - - ```tsx - const [count, setCount] = React.useState(0); - ``` - - - -Et là tu vas peut-être te demander une chose... - - - Bien vu ! Effectivement on va avoir deux assignements pour déclarer un **state** : - - `count` : la valeur du **state** - - `setCount` : la fonction qui permet de modifier la valeur du **state** - - Si tu as déjà fait de la POO, le principe de **getter** et **setter** te sera familier puisque c'est un peu le même principe ! - - Le hook `useState` prend en paramètre la valeur initiale du **state** _(ici `0`)_ et retourne un tableau avec la valeur du **state** et la fonction pour le modifier. - - -### 🔄 Utilisation du state - -Maintenant que notre **state** est déclaré, on peut l'utiliser dans notre composant. - - - - ```jsx title="Counter.jsx" showLineNumbers - import React from 'react'; - - export const Counter = () => { - const [count, setCount] = React.useState(0); - - const increment = () => setCount(count + 1); - - return ( - - ); - }; - ``` - - - - ```tsx title="Counter.tsx" showLineNumbers - import React from 'react'; - - export const Counter = () => { - const [count, setCount] = React.useState(0); - - const increment = () => setCount(count + 1); - - return ( - - ); - }; - ``` - - - - - -Et voilà ! Pas besoin de plus pour gérer un **state** en React 😉 - -Mais qu'est-ce qu'il se passe sous le capot ? -C'est un peu plus complexe que ça, mais pour faire simple : - -#### ⚙️ Montage du composant _(Mounting)_ -On vient prévenir React que notre composant va avoir un **state** et on lui donne une valeur initiale _(ici `0`)_. - -#### 🔧 Mise à jour du composant _(Updating)_ -Ce state, à chaque modification, va déclencher un nouveau rendu du composant. - -#### 🗑️ Démontage du composant _(Unmounting)_ -Et enfin, quand le composant est retiré du DOM, le state est détruit avec lui. - -Ce fonctionnement est identique pour les props donnés à un composant d'ailleurs ! -React est vraiment bien fait pour ça 😊 - -## Conclusion - -Plutôt simple, non ? -Alors maintenant que tu sais comment gérer le **state** et le **cycle de vie** d'un composant React, tu es prêt à te pencher sur la prochaine étape _(et pas des moindres)_ : les **hooks** ! - -Mais pour l'heure, je te laisse jouer avec les **states** et les **props** pour bien comprendre comment tout ça fonctionne. \ No newline at end of file diff --git a/old/docs/ressources/frontend/react/syntaxe-jsx.mdx b/old/docs/ressources/frontend/react/syntaxe-jsx.mdx deleted file mode 100644 index 288566d..0000000 --- a/old/docs/ressources/frontend/react/syntaxe-jsx.mdx +++ /dev/null @@ -1,306 +0,0 @@ ---- -sidebar_position: 3 -title: "Syntaxe JSX" -description: "Découvrons la syntaxe JSX, un langage de balisage utilisé par React pour décrire l'interface utilisateur." -tags: - - Frontend - - React - - JavaScript/TypeScript - - Bibliothèque - - Interface utilisateur (UI) ---- - -import Button from '@site/src/components/Button'; -import Admonition from '@theme/Admonition'; -import TabItem from '@theme/TabItem'; -import Tabs from '@theme/Tabs'; - -# Syntaxe JSX - -## Introduction - -Avant de commencer à parler des composants React, découvrons tranquillement la syntaxe **JSX**. - -Le **JSX** est un sucre syntaxique _(une syntaxe plus lisible et plus simple que le JavaScript pur)_ qui permet de décrire l'interface utilisateur _(UI)_ de notre application. -Le sigle en lui-même signifie **JavaScript XML**, dans le sens où l'on va retrouver une syntaxe proche du **XML** _(eXtensible Markup Language)_ qui est un langage de balisage _(comme le **HTML**)_. - -## 🔍 Différences entre HTML et JSX - -Et oui, le **JSX** ressemble beaucoup au **HTML** et c'est normal ! -C'est l'objectif premier de **React** : rendre la création d'interfaces utilisateur _(UI)_ plus simple et plus intuitive. - -Cependant il ne faut pas oublier que le **JSX** n'est pas du **HTML**, mais du JavaScript. - -Pour faire plus simple, voici un élément **HTML** et son équivalent avec React _(avec et sans JSX)_ : - - - - ```html - - ``` - - - - ```jsx - React.createElement('button', { className: 'button' }, 'Clique moi !'); - ``` - - - - ```jsx - - ``` - - - -Comme tu peux le constater, la différence entre le **JSX** et le **HTML** est minime. -Il y a toutefois des différences, comme certains mots réservés _(comme `class` qui devient `className`)_ ou encore la manière de déclarer des événements _(comme `onclick` qui devient `onClick`)_. - -Par contre si on regarde la différence entre le **JSX** et le JavaScript pur _(en utilisant React quand même)_, on voit bien que le **JSX** est beaucoup plus lisible et plus simple à écrire. - -Là où c'est encore plus flagrant, c'est quand on commence à imbriquer des éléments _(comme des composants React par exemple)_ ! - - - - ```jsx showLineNumbers - React.createElement(React.Fragment, null, - React.createElement('h2', null, 'Formulaire de contact'), - React.createElement('form', { onSubmit: handleSubmit }, - React.createElement('fieldset', null, - React.createElement('label', { htmlFor: 'lastname' }, 'Nom'), - React.createElement('input', { type: 'text', name: 'lastname', id: 'lastname', required: true }) - ), - React.createElement('fieldset', null, - React.createElement('label', { htmlFor: 'email' }, 'Email'), - React.createElement('input', { type: 'email', name: 'email', id: 'email', required: true }) - ), - React.createElement('fieldset', null, - React.createElement('label', { htmlFor: 'message' }, 'Message'), - React.createElement('textarea', { name: 'message', id: 'message', required: true }) - ), - React.createElement('fieldset', null, - React.createElement('label', { htmlFor: 'gdpr' }, - React.createElement('input', { type: 'checkbox', name: 'gdpr', id: 'gdpr', required: true }), - 'J\'accepte que mes données soient utilisées pour me recontacter' - ) - ), - React.createElement('button', { type: 'submit' }, 'Envoyer') - ) - ); - ``` - - - - ```jsx showLineNumbers - -

Formulaire de contact

-
-
- - -
- -
- - -
- -
- - -
- -
- -
- - -
-
- ``` -
-
- -Et bien même si le code final est **identique**, le **JSX** apporte une lisibilité et une simplicité d'écriture qui est très appréciable. -Pas mal non ? 😄 - -Et donc oui ! En faisant du **JSX**, on fait en réalité du **JavaScript** et **pas du HTML** ! - - - Au sein de ses pages, tu verras **toujours** que j'importe le contenu de **React** en intégralité _(comme `import React from 'react';`)_. - - Dans la réalité, on va destructurer les exports de **React** pour n'importer que ce dont on a besoin. - - Cependant, pour te donner l'information d'où provient chaque élément, je préfère importer **React** en intégralité et que tu puisses visualiser les éléments de **React** utilisés avec leur provenance. - - Par exemple, cela donnerait : - ```jsx - import React from 'react'; - - const [count, setCount] = React.useState(0); - ``` - - Au lieu de : - ```jsx - import { useState } from 'react'; - - const [count, setCount] = useState(0); - ``` - - Pour tes projets, privilégies la seconde méthode pour ne pas surcharger ton code inutilement et surtout importer **seulement** ce dont tu as besoin ! - - J'espère que tu comprends mieux pourquoi je fais comme ça pour ces ressources 😉 - - -## 🧩 Intégration de JavaScript dans le JSX - -Mais l'un des autres avantages du **JSX** est la possibilité d'ajouter du JavaScript directement dans le code ! - -Pour pouvoir ajouter du JavaScript dans le **JSX**, il suffit d'entourer le code JavaScript avec des accolades `{}`. -C'est un peu comme si on "ouvrait un portail" pour insérer du JavaScript dans notre code **JSX**. - -### 📦 Variables et fonctions - -Par exemple, si tu veux afficher une variable dans ton **JSX**, tu peux le faire directement : - -```jsx -const name = 'Jean Dupont'; - -return

Bonjour {name} !

; -``` - -Et si tu veux appeler une fonction, c'est tout aussi simple : - -```jsx -const sayHello = () => 'Bonjour !'; - -return

{sayHello()}

; -``` - -### 📝 Expressions - -Tu peux également ajouter des expressions _(comme des conditions ternaires par exemple)_ : - -```jsx -const age = 18; - -return

{age >= 18 ? 'Majeur' : 'Mineur'}

; -``` - -Mais tu peux aussi faire un **affichage conditionnel** de manière très simple : - -```jsx - -const isLogged = false; - -return ( -
- {isLogged &&

Bienvenue sur notre site !

} - {!isLogged &&

Connectez-vous pour accéder à notre site

} -
-); -``` - -### 🔄️ Boucles - -Maintenant imagine que tu souhaites créer une interface qui liste des éléments provenant d'un tableau. - -```js -const fruits = ['pomme', 'banane', 'fraise']; -``` - -Dans un premier temps, on va revoir très rapidement comment on peut parser un tableau en JavaScript : - -- `for` : - ```js - for (let i = 0; i < fruits.length; i++) { - console.log(fruits[i]); - } - ``` -- `forEach` : - ```js - fruits.forEach((fruit) => console.log(fruit)); - ``` -- `map` : - ```js - fruits.map((fruit) => console.log(fruit)); - ``` -- et bien d'autres encore... - -En soit, toutes ces méthodes sont très bien et font ce qu'on leur demande sans souci. -Cependant, React ne va pas forcément aimer ça sauf pour `map`. - -La raison est simple : -React a besoin qu'on lui **retourne un élément** _(ou un tableau d'éléments)_ pour pouvoir les afficher. - -Alors avec des `console.log` on ne va pas aller loin, mais si au lieu de retourner un `console.log` on retournait un élément **JSX** ? 🤔 - -```jsx -const fruits = ['pomme', 'banane', 'fraise']; - -return ( -
    - {fruits.map((fruit) =>
  • {fruit}
  • )} -
-); -``` - - - -Et là : **BAM** ! 💥 -Tu viens de créer une liste de fruits en utilisant un tableau de fruits. - -Mais par contre... - - - La `key` est une propriété spéciale que React utilise pour identifier chaque élément de manière unique. - Cela permet à React de savoir quel élément a été ajouté, modifié ou supprimé. - - Il est **obligatoire** d'avoir une `key` unique pour chaque élément d'une liste. - Si tu listes des éléments qui ont un identifiant unique _(comme l'`id` qu'on aura dans nos données stockées dans une base de données par exemple)_, tu peux utiliser cet identifiant comme `key`. - - -## 📦 Les props - -Les **props** _(ou propriétés)_ sont des arguments que l'on peut passer à un composant React. -Je ne vais pas trop rentrer dans les détails ici, car on va les voir dans l'article d'après ! - -Mais pour te donner un aperçu, voici comment on peut passer des **props** à un composant : - - - - ```jsx - const Button = (props) => { - return ; - }; - ``` - - - - ```tsx - type ButtonProps = { - onClick: () => void; - children: React.ReactNode; - }; - - const Button = (props: ButtonProps) => { - return ; - }; - ``` - - - -Ici, on a un composant `Button` qui prend deux **props** : `onClick` et `children`. -`onClick` est une fonction qui sera appelée lorsqu'on cliquera sur le bouton, et `children` est tout ce qui se trouve entre les balises ouvrante et fermante du composant. - -## Conclusion - -Alors, plutôt cool le **JSX** non ? 😎 - -Même si cette syntaxe rebute certains développeurs _(souvent ils se la jouent puristes, mais chuuuuut 🤫)_, elle est toutefois très appréciée pour sa simplicité et sa lisibilité. -Question de goût après tout ! \ No newline at end of file diff --git a/old/docs/ressources/influenceurs-et-createurs.mdx b/old/docs/ressources/influenceurs-et-createurs.mdx deleted file mode 100644 index fea0b0d..0000000 --- a/old/docs/ressources/influenceurs-et-createurs.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -sidebar_position: 1 -title: "🎥 Influenceurs et créateurs de contenu" -description: "Liste d'influenceurs et créateurs de contenu dans le domaine du développement." ---- - -import Admonition from '@theme/Admonition'; - -# Influenceurs et créateurs de contenu - - - Les contenus créés par ces professionnels n'ont pas été vérifiés, il est donc important de rester critique face à ces informations et de savoir les remettre en question si nécessaire. - - Toutefois, ces professionnels peuvent être une source d'inspiration et de découverte pour les personnes qui les suivent. - De manière générale, cela peut être une superbe opportunité de t'aider à faire de la veille technique et à rester à jour sur les dernières tendances et mises à jours dans le développement ! - - -## ❤️ Coups de coeur de l'équipe Memento Dev - -- [**Alsa Créations**](https://www.alsacreations.com/) -- [**Benjamin Code**](https://bento.me/benjamincode) -- [**Kipdev**](https://kipdev.io/) -- [**Korben**](https://korben.info/) - - -## 🌟 Influenceurs et créateurs de contenu inspirants - -- [**laConsole**](https://laconsole.dev/) - -## 🫶 Apparaître sur cette page - -Alors tout d'abord : merci pour ton implication dans la communauté tech ! -Pour figurer sur cette page, tu peux tout simplement faire un fork du dépôt GitHub de ce memento et ajouter ton nom dans le fichier `docs/ressources/influenceurs-et-createurs.mdx` en suivant le format des autres noms déjà présents. - -Si ça te rassure, il n'y a aucun prérequis spécifique pour apparaître sur cette page, du moment que tu es actif dans la communauté du développement et que tu crées du contenu en lien avec la tech _(pas obligatoire **que** du développement)_. - - - En ce qui concerne les liens : un seul est autorisé, et il doit pointer vers une page où l'on peut te suivre ou consulter tes contenus. - Il peut s'agir d'un HUB _(Linktree, Bento, etc.)_ où l'on peut retrouver tous tes liens, ou d'un lien vers un réseau social _(X/Twitter, Youtube, etc.)_ où tu es actif. - - Cependant, ce lien doit intégralement et impérativement être en conformité avec les [règles de contribution](/contribuer#-directives-de-r%C3%A9daction). - Dans le cas contraire, par exemple si l'un des contenus disponibles via l'un des réseaux n'est pas en adéquation avec les [règles de contribution](/contribuer#-directives-de-r%C3%A9daction), toute mention sera supprimée sans préavis ni justification. - - - - Aucun influenceur ou créateur de contenu, en dehors des coups de coeurs de l'équipe derrière Memento Dev, n'est mis en avant par rapport à un autre dans cette page. - Les noms sont listés par ordre alphabétique, peu importe le nombre d'abonnés ou de vues. - - -## 🥷 Disparaître de cette page - -Pour retirer ton nom de cette page, tu peux tout simplement faire un fork du dépôt GitHub de ce memento et supprimer ton nom dans le fichier `docs/ressources/influenceurs-et-createurs.mdx`. - -Toutefois, nous t'informons que l'historique des modifications est conservé sur GitHub, et que nous ne pourrons pas supprimer les anciennes contributions. diff --git a/old/docs/soutiens-et-contributeurs.mdx b/old/docs/soutiens-et-contributeurs.mdx deleted file mode 100644 index b56aa18..0000000 --- a/old/docs/soutiens-et-contributeurs.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -sidebar_position: 99998 -description: "Soutiens et contributeurs de la plateforme Memento Dev." ---- - -# 🤗 Soutiens et contributeurs - -## 🌟 Contributeurs - -Un grand merci à toutes les personnes qui ont contribué à ce projet et/ou qui le soutiennent ! - -Bien que cette section est vide, je tiens à remercier personnellement l'intégralité de mes consœurs et confrères jurys -qui ont contribué à ce projet sans le savoir, en me partageant leurs connaissances et leurs expériences. - -## 🤝 Soutiens et partages de la plateforme - -- [**O'clock**](https://oclock.io/) - - Partage de la plateforme aux apprenants DWWM -- [**Wild Code School**](https://www.wildcodeschool.com/fr-fr/) - - Partage de la plateforme aux apprenants DWWM \ No newline at end of file diff --git a/old/docs/titres-professionnels/CDA/AT1/CP1.mdx b/old/docs/titres-professionnels/CDA/AT1/CP1.mdx deleted file mode 100644 index 508d1bd..0000000 --- a/old/docs/titres-professionnels/CDA/AT1/CP1.mdx +++ /dev/null @@ -1,12 +0,0 @@ ---- -sidebar_position: 1 -title: "CP 1" -description: "Synthèse de la CP 1 \"Installer et configurer son environnement de travail en fonction du projet\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04)." -tags: - - CDA - - Environnement de développement ---- - -import Admonition from '@theme/Admonition'; - -# Installer et configurer son environnement de travail en fonction du projet \ No newline at end of file diff --git a/old/docs/titres-professionnels/CDA/AT1/CP2.mdx b/old/docs/titres-professionnels/CDA/AT1/CP2.mdx deleted file mode 100644 index eb4f3fe..0000000 --- a/old/docs/titres-professionnels/CDA/AT1/CP2.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 2 -title: "CP 2" -description: "Synthèse de la CP 2 \"Développer des interfaces utilisateur\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04)." -tags: - - CDA ---- - -import Admonition from '@theme/Admonition'; - -# Développer des interfaces utilisateur \ No newline at end of file diff --git a/old/docs/titres-professionnels/CDA/AT1/CP3.mdx b/old/docs/titres-professionnels/CDA/AT1/CP3.mdx deleted file mode 100644 index 2c01de2..0000000 --- a/old/docs/titres-professionnels/CDA/AT1/CP3.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 3 -title: "CP 3" -description: "Synthèse de la CP 3 \"Développer des composants métier\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04)." -tags: - - CDA ---- - -import Admonition from '@theme/Admonition'; - -# Développer des composants métier \ No newline at end of file diff --git a/old/docs/titres-professionnels/CDA/AT1/CP4.mdx b/old/docs/titres-professionnels/CDA/AT1/CP4.mdx deleted file mode 100644 index fb0fcd2..0000000 --- a/old/docs/titres-professionnels/CDA/AT1/CP4.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 4 -title: "CP 4" -description: "Synthèse de la CP 4 \"Contribuer à la gestion d’un projet informatique\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04)." -tags: - - CDA ---- - -import Admonition from '@theme/Admonition'; - -# Contribuer à la gestion d’un projet informatique \ No newline at end of file diff --git a/old/docs/titres-professionnels/CDA/AT1/_category_.json b/old/docs/titres-professionnels/CDA/AT1/_category_.json deleted file mode 100644 index 188ab02..0000000 --- a/old/docs/titres-professionnels/CDA/AT1/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Activité Type 1", - "position": 3 -} diff --git a/old/docs/titres-professionnels/CDA/AT2/CP5.mdx b/old/docs/titres-professionnels/CDA/AT2/CP5.mdx deleted file mode 100644 index 18d535d..0000000 --- a/old/docs/titres-professionnels/CDA/AT2/CP5.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 5 -title: "CP 5" -description: "Synthèse de la CP 5 \"Analyser les besoins et maquetter une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04)." -tags: - - CDA ---- - -import Admonition from '@theme/Admonition'; - -# Analyser les besoins et maquetter une application \ No newline at end of file diff --git a/old/docs/titres-professionnels/CDA/AT2/CP6.mdx b/old/docs/titres-professionnels/CDA/AT2/CP6.mdx deleted file mode 100644 index 685c12f..0000000 --- a/old/docs/titres-professionnels/CDA/AT2/CP6.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 6 -title: "CP 6" -description: "Synthèse de la CP 6 \"Définir l’architecture logicielle d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04)." -tags: - - CDA ---- - -import Admonition from '@theme/Admonition'; - -# Définir l’architecture logicielle d’une application \ No newline at end of file diff --git a/old/docs/titres-professionnels/CDA/AT2/CP7.mdx b/old/docs/titres-professionnels/CDA/AT2/CP7.mdx deleted file mode 100644 index cb211c9..0000000 --- a/old/docs/titres-professionnels/CDA/AT2/CP7.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 7 -title: "CP 7" -description: "Synthèse de la CP 7 \"Concevoir et mettre en place une base de données relationnelle\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04)." -tags: - - CDA ---- - -import Admonition from '@theme/Admonition'; - -# Concevoir et mettre en place une base de données relationnelle \ No newline at end of file diff --git a/old/docs/titres-professionnels/CDA/AT2/CP8.mdx b/old/docs/titres-professionnels/CDA/AT2/CP8.mdx deleted file mode 100644 index c9190b3..0000000 --- a/old/docs/titres-professionnels/CDA/AT2/CP8.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 8 -title: "CP 8" -description: "Synthèse de la CP 8 \"Développer des composants d’accès aux données SQL et NoSQL\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04)." -tags: - - CDA ---- - -import Admonition from '@theme/Admonition'; - -# Développer des composants d’accès aux données SQL et NoSQL \ No newline at end of file diff --git a/old/docs/titres-professionnels/CDA/AT2/_category_.json b/old/docs/titres-professionnels/CDA/AT2/_category_.json deleted file mode 100644 index 1163cd5..0000000 --- a/old/docs/titres-professionnels/CDA/AT2/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Activité Type 2", - "position": 4 -} diff --git a/old/docs/titres-professionnels/CDA/AT3/CP10.mdx b/old/docs/titres-professionnels/CDA/AT3/CP10.mdx deleted file mode 100644 index 61afb4f..0000000 --- a/old/docs/titres-professionnels/CDA/AT3/CP10.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 10 -title: "CP 10" -description: "Synthèse de la CP 10 \"Préparer et documenter le déploiement d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04)." -tags: - - CDA ---- - -import Admonition from '@theme/Admonition'; - -# Préparer et documenter le déploiement d’une application \ No newline at end of file diff --git a/old/docs/titres-professionnels/CDA/AT3/CP11.mdx b/old/docs/titres-professionnels/CDA/AT3/CP11.mdx deleted file mode 100644 index 0c8bdb4..0000000 --- a/old/docs/titres-professionnels/CDA/AT3/CP11.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 11 -title: "CP 11" -description: "Synthèse de la CP 11 \"Contribuer à la mise en production dans une démarche DevOps\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04)." -tags: - - CDA ---- - -import Admonition from '@theme/Admonition'; - -# Contribuer à la mise en production dans une démarche DevOps \ No newline at end of file diff --git a/old/docs/titres-professionnels/CDA/AT3/CP9.mdx b/old/docs/titres-professionnels/CDA/AT3/CP9.mdx deleted file mode 100644 index f663edd..0000000 --- a/old/docs/titres-professionnels/CDA/AT3/CP9.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 9 -title: "CP 9" -description: "Synthèse de la CP 9 \"Préparer et exécuter les plans de tests d’une application\" du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04)." -tags: - - CDA ---- - -import Admonition from '@theme/Admonition'; - -# Préparer et exécuter les plans de tests d’une application \ No newline at end of file diff --git a/old/docs/titres-professionnels/CDA/AT3/_category_.json b/old/docs/titres-professionnels/CDA/AT3/_category_.json deleted file mode 100644 index 420a7bc..0000000 --- a/old/docs/titres-professionnels/CDA/AT3/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Activité Type 3", - "position": 5 -} diff --git a/old/docs/titres-professionnels/CDA/_category_.json b/old/docs/titres-professionnels/CDA/_category_.json deleted file mode 100644 index 088726e..0000000 --- a/old/docs/titres-professionnels/CDA/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "🧑‍💻 CDA", - "position": 1 -} diff --git a/old/docs/titres-professionnels/CDA/intro.mdx b/old/docs/titres-professionnels/CDA/intro.mdx deleted file mode 100644 index aa82174..0000000 --- a/old/docs/titres-professionnels/CDA/intro.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -sidebar_position: 1 -title: "Résumé" -description: "Résumé du titre professionnel Concepteur Développeur d'Applications (CDA TP-01281m04, actif depuis décembre 2023)." -tags: - - CDA ---- - -import Admonition from "@theme/Admonition"; - -# Contenu du titre professionnel CDA - -Nom complet du titre : `Concepteur Développeur d'Applications` -Code titre : `TP-01281` -Code millésime : `04` - -## Documents officiels - -- [📄 REAC - Référentiel Emploi Activités Compétences _(02/07/2024)_](https://www.banque.di.afpa.fr/EspaceEmployeursCandidatsActeurs/Download.aspx?i=4bab86d3-0e9d-470b-b6a2-a703e3549da8&d=1) -- [📄 RE - Référentiel d'Évaluation _(02/07/2024)_](https://www.banque.di.afpa.fr/EspaceEmployeursCandidatsActeurs/Download.aspx?i=60bffdb0-b347-4717-849a-1750f8515de0&d=1) - -> Source(s) : -> -> - [🔗 Banque de ressources numériques de l'AFPA](https://www.banque.di.afpa.fr/EspaceEmployeursCandidatsActeurs/EGPResultat.aspx?ct=01281m04&cd=&cr=&type=t) - -## Activités types et compétences professionnelles - - - Le contenu des compétences professionnelles est en cours de rédaction. - - -### 📚 Activité type 1 - Développer une application sécurisée - -- [CP 1 - Installer et configurer son environnement de travail en fonction du projet](./AT1/CP1) -- [CP 2 - Développer des interfaces utilisateur](./AT1/CP2) -- [CP 3 - Développer des composants métier](./AT1/CP3) -- [CP 4 - Contribuer à la gestion d’un projet informatique](./AT1/CP4) - -### 📚 Activité type 2 - Concevoir et développer une application sécurisée organisée en couches - -- [CP 5 - Analyser les besoins et maquetter une application](./AT2/CP5) -- [CP 6 - Définir l’architecture logicielle d’une application](./AT2/CP6) -- [CP 7 - Concevoir et mettre en place une base de données relationnelle](./AT2/CP7) -- [CP 8 - Développer des composants d’accès aux données SQL et NoSQL](./AT2/CP8) - -### 📚 Activité type 3 - Préparer le déploiement d’une application sécurisée - -- [CP 9 - Préparer et exécuter les plans de tests d’une application](./AT3/CP9) -- [CP 10 - Préparer et documenter le déploiement d’une application](./AT3/CP10) -- [CP 11 - Contribuer à la mise en production dans une démarche DevOps](./AT3/CP11) - -## Compétences transverses - -- Communiquer en français et en anglais -- Mettre en oeuvre une démarche de résolution de problème -- Apprendre en continu - -## Déroulé de l'examen - - - En cas de repassage d'un CCP, - se référer au [Référentiel d'Évaluation](https://www.banque.di.afpa.fr/EspaceEmployeursCandidatsActeurs/Download.aspx?i=60bffdb0-b347-4717-849a-1750f8515de0&d=1) - pour connaître les modalités de l'épreuve : - - - Pages 17 à 21 pour l'AT 1 - - Pages 23 et 27 pour l'AT 2 - - Pages 29 et 33 pour l'AT 3 - - -**Durée totale de l'examen** : 2h15 _(dont 1h45 de soutenance face au jury)_ - -1. Questionnaire professionnel _(30 minutes, sans présence du jury)_ -2. Présentation d'un projet réalisé en amont de la session _(40 minutes, face au jury)_ -3. Entretien technique _(45 minutes, face au jury)_ -4. Entretien final _(20 minutes, face au jury)_ diff --git a/old/docs/titres-professionnels/DWWM/AT1/CP1.mdx b/old/docs/titres-professionnels/DWWM/AT1/CP1.mdx deleted file mode 100644 index 68e0475..0000000 --- a/old/docs/titres-professionnels/DWWM/AT1/CP1.mdx +++ /dev/null @@ -1,63 +0,0 @@ ---- -sidebar_position: 1 -title: "CP 1" -description: "Synthèse de la CP 1 \"Installer et configurer son environnement de travail en fonction du projet web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04)." -tags: - - DWWM - - Environnement de développement ---- - -import Admonition from '@theme/Admonition'; - -# Installer et configurer son environnement de travail en fonction du projet web ou web mobile - -## 📚 Références - -- REAC _(mise à jour du 03/07/2024)_, pages 15 et 16 -- RE _(mise à jour du 03/07/2024)_, page 9 - -## 📋 En résumé - -Ce qui est attendu de ta part, c'est d'expliquer **comment** on peut installer et configurer les prérequis pour exécuter ton projet. - -Tu as utilisé un framework PHP et React en front ? -Tu devras alors expliquer comment installer PHP, Composer, Node.js, npm _(ou autre gestionnaire de dépendances Node)_ -et les autres dépendances nécessaires à ton projet comme la base de données ! - -Et pour te quantifier le tout, voici ce que ça peut donner : - -- Versionning _(Git, SVN, ...)_ -- IDE ou éditeur de code _(Visual Studio Code, PhpStorm, ...)_ -- Langages/runtimes _(PHP, Node.js, ...)_ -- Gestionnaires de dépendances _(Composer, npm, ...)_ -- Serveurs web _(Apache, Nginx, ...)_ -- Base de données _(MySQL, PostgreSQL, ...)_ -- DevOps _(Docker, Vagrant, ...)_ -- etc. - -Tu l'as compris, c'est vaste ! -Mais heureusement, tu dois uniquement expliquer comment installer et configurer les outils que tu as utilisés pour ton projet. - -Si tu fais un projet Laravel et React, nul besoin d'expliquer comment installer et configurer Ruby et Java, par exemple 😉 - - - Si tu utilises un logiciel comme XAMPP, WAMP, MAMP, LAMP, etc., tu as évidemment le droit de le mentionner dans ta présentation et dossier de projet. - - Toutefois, il est préférable que tu saches expliquer comment installer et configurer les éléments nécessaires de manières individuelles. - - -## ➕ Informations complémentaires - - - Même si le choix des outils que tu utilises est libre, il est important de préciser les versions que tu as utilisées pour ton projet. - - Étant donné que chaque version corrige probablement diverses failles de sécurité et/ou ajoute des fonctionnalités, c'est le bon moment pour montrer que tu prends la veille technologique au sérieux. - - -## 🎯 Critères d'évaluation - -- Les outils de développement nécessaires sont installés et configurés -- Les outils de gestion de versions et de collaboration sont installés -- Les conteneurs implémentes les services requis pour l'environnement de développement -- La documentation technique de l'environnement de travail est comprise, en langue française ou anglaise (niveau B1 CECRL pour l'anglais) -- Le système de veille permet de suivre les évolutions technologies et les problématiques de sécurité en lien avec l'installation et la configuration d'un environnement de travail diff --git a/old/docs/titres-professionnels/DWWM/AT1/CP2.mdx b/old/docs/titres-professionnels/DWWM/AT1/CP2.mdx deleted file mode 100644 index 99fa655..0000000 --- a/old/docs/titres-professionnels/DWWM/AT1/CP2.mdx +++ /dev/null @@ -1,141 +0,0 @@ ---- -sidebar_position: 2 -title: "CP 2" -description: "Synthèse de la CP 2 \"Maquetter des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04)." -tags: - - DWWM - - Eco-conception - - Accessibilité - - SEO/Référencement naturel - - Maquettage - - Wireframe - - Zoning - - Front-end ---- - -import Admonition from "@theme/Admonition"; - -# Maquetter des interfaces utilisateur web ou web mobile - -## 📚 Références - -- REAC _(mise à jour du 03/07/2024)_, pages 17 et 18 -- RE _(mise à jour du 03/07/2024)_, page 9 - -## 📋 En résumé - -Pour cette compétence, tu vas devoir réaliser des maquettes d'interfaces utilisateur. -Mais par maquettage, on ne parle pas de maquette en papier ou en carton, mais bien de maquettes numériques. - - - -Blague à part, on entend par cette compétence professionnelle la réalisation de maquettes d'interfaces utilisateur, au travers des différentes étapes maquettage : - -1. Analyse du cahier des charges -2. Création de l'arborescence du site et de ses pages -3. Conception des zonings -4. Réalisation des wireframes -5. Création de la charte graphique -6. Mise en forme des maquettes à partir des wireframes et de la charte graphique -7. Mise en place des interactions via un prototype - -Alors bien entendu, toutes ces étapes ne sont des étapes "purement" maquettage, mais qui sont utilisées pour réaliser ces maquettes sans se vautrer. -Il s'agit de l'ordre logique allant du tout début jusqu'à la réalisation de maquettes finales et du prototype. - - - Pas de panique ! Tu n'as pas besoin d'être un webdesigner pour réaliser des maquettes. - Évidemment, si tu as des compétences en design, c'est un plus car en général les développeurs ne sont pas tous réputés pour être de bons designers... 😅 - - Ce qu'on attend de toi, c'est de respecter les consignes du cahier des charges tout en répondant au besoin du client et en faisant attention à l'expérience utilisateur et l'accessibilité. - - Si par ailleurs tu cherches un outil gratuit pour réaliser des maquettes, tu peux te tourner vers [Figma](https://www.figma.com/) qui permet non seulement de créer des maquettes et prototypes, mais aussi de collaborer avec d'autres personnes sur un même projet. - - -Tiens d'ailleurs, parlons accessibilité ! -D'après toi, qu'est-ce que l'accessibilité en matière de développement web ? - -Si tu as répondu que c'est le fait de rendre un site accessible à tous, tu as tout bon ! -L'accessibilité est un point crucial à prendre en compte lors de la réalisation de maquettes, car tout le monde doit pouvoir accéder à un site web, y compris les personnes en situation de handicap. - -Pour améliorer l'accessibilité de ton site, il est recommandé de suivre les recommandations du [W3C à propos du WCAG](https://www.w3.org/WAI/WCAG21/quickref/) et du [RGAA](https://accessibilite.numerique.gouv.fr/), mais je ne te cache pas c'est un gros morceau et qu'on se perdre en voulant tout respecter à la lettre. -Alors voici un condensé des points les plus importants à respecter dans un premier temps : - -- **Contraste** : Assure-toi que le texte est lisible sur n'importe quel fond. Il faut viser un score AA _(ratio 4.5:1)_ au minimum et idéalement AAA _(ratio 7:1)_ sur nos éléments textuels et pour l'iconographie. -- **Taille de police** : La taille de police doit être suffisamment grande pour être lisible par tout le monde. En général, on recommande une taille de **16px minimum**. -- **Choix de la police** : Utilise des polices lisibles et évite les polices fantaisistes. Si tu cherches une police légère, gratuite et réputée pour être lisible, tu peux te tourner vers la police [Luciole](https://luciole-vision.com/) ! _(c'est d'ailleurs celle qui est utilisée sur cette plateforme)_ -- **Intitulés des liens et boutons** : Les liens et boutons doivent être clairs et explicites. Évite les "Cliquez ici" et préfère des phrases plus descriptives. Évite également d'uniquer mettre un pictogramme pour un lien, car cela peut ne pas être compris par tout le monde. - -Bien entendu, l'accessibilité ne se limite pas à ces points, mais c'est un bon début pour rendre ton site accessible à tous. -J'y reviendrai plus en détail dans la compétence suivante, puisqu'on parlera de l'intégration de ces maquettes 😉 - -Et pour terminer ! _(oui, je sais, je parle beaucoup 😅)_ -**L'éco-conception** ! - -## 🌍 L'éco-conception - -L'éco-conception, c'est l'art de concevoir un site web de manière à réduire son impact environnemental. On évitera par exemple d'intégrer beaucoup d'images et autres médias. -De manière générale : moins il y a de requêtes, moins il y a de données à charger, et donc moins d'énergie consommée. - -Même si dans l'ensemble on serait en droit de crier "greenwashing" _(et on aurait pas tort)_, il est important de prendre en compte l'impact environnemental de nos sites web. -Au delà de l'impact environnemental, un site éco-conçu est souvent plus rapide et plus léger, ce qui permet aux sites et applications d'être plus performants tant en termes de vitesse que de consommation de données. - -Tu l'auras compris, que tu sois éco-convaicu ou non, c'est un point essentiel pour l'expérience utilisateur ! 🚀 - -## ➕ Informations complémentaires - -Il est probable que ton client t'impose une charte graphique à respecter et que cette dernière ne soit pas forcément accessible, ergonomique ou éco-conçue. -C'est à toi en tant que développeur d'expliquer à ton client les enjeux que ça représente pour son site web. - -Il aura dans tous les cas le dernier mot, mais il est important de l'informer des conséquences de ses choix pour son site. -S'il ne veut pas améliorer prendre en compte ces informations, tu pourras toujours lui proposer de le faire évoluer par la suite, une fois le site en ligne _(mais attention, cela peut coûter cher pour rattraper les différents défauts)_. - -## 🎯 Critères d'évaluation - -- Les maquettes sont réalisées conformément au dossier de conception, en langue française ou anglaise _(niveau B1 du CECRL pour l'anglais)_ -- La charte graphique de l'entreprise est respectée -- Les exigences de sécurisation sont respectées -- Les maquettes tiennent compte de l'expérience utilisateur, y compris pour les personnes en situation de handicap et du type d'utilisation, y compris pour les équipements mobiles -- L'enchainement des maquettes est formalisé par un schéma -- La législation en vigueur est respectée, y compris celle relative à l'accessibilité - -## 🤯 Aller plus loin _(hors référentiel)_ - -Tu trouves que je n'ai pas assez parlé dans cette compétence ? Déjà, tu m'en vois surpris, mais je vais te donner quelques pistes pour aller plus loin ! - -Je vais parler un peu plus en détail de l'éco-conception, tant il s'agit d'un sujet très important et souvent négligé. -Le premier réflexe que l'on pourrait avoir en entendu ce terme, c'est accuser du greenwashing et penser qu'on attend de nous de revenir dans les années 90 avec des sites tout moches et tout plats. - -Alors... Greenwashing ? Tout dépend de qui en parle, mais la cause elle-même est noble et mérite d'être prise en compte. -Pour le côté "site tout moche", c'est effectivement une possibilité, mais ce n'est pas une fatalité. - -Faire une galerie photo avec des images en pleine résolution, c'est bien, mais c'est lourd à charger. Et pourtant, on peut quand même rendre le site d'un photographe beau et éco-conçu, tout en préservant la qualité de son travail ! -Ça peut sembler contre-intuitif, mais tout va se jouer dans le code où l'on pourra charger **uniquement au besoin et à la demande de l'utilisateur** les images dans notre page. - -Toujours pas convaincu par l'éco-conception ? -Et si je te disais que l'éco-conception, c'est aussi un argument de vente ? -En effet, un site éco-conçu, c'est un site qui se charge plus vite et qui sera donc plus agréable à utiliser grace à sa fluidité. - ---- - -## 🧠 Documentation - -- [Wikipédia - Wireframe _(design)_]() -- [Atlassian - User stories](https://www.atlassian.com/fr/agile/project-management/user-stories) - -## 🛠️ Outils - -- [Figma - Outil de création de design](https://www.figma.com/fr-fr/) -- [Adobe XD - Outil de design et de prototypage](https://www.adobe.com/fr/products/xd.html) -- [Sketch - Outil de design](https://www.sketch.com/) -- [GlooMaps - Générateur d'arborescence de pages](https://www.gloomaps.com/) -- [WebAim Contrast Checker](https://webaim.org/resources/contrastchecker/) -- [Contrast Checker](https://contrastchecker.com/) -- [Coolors - Contrast Checker](https://coolors.co/contrast-checker/112a46-acc8e5) -- [Luciole - Police de caractères](https://luciole-vision.com/) -- [Éco-index - Testeur d'éco-conception](https://www.ecoindex.fr/) diff --git a/old/docs/titres-professionnels/DWWM/AT1/CP3.mdx b/old/docs/titres-professionnels/DWWM/AT1/CP3.mdx deleted file mode 100644 index ad86ef9..0000000 --- a/old/docs/titres-professionnels/DWWM/AT1/CP3.mdx +++ /dev/null @@ -1,286 +0,0 @@ ---- -sidebar_position: 3 -title: "CP 3" -description: "Synthèse de la CP 3 \"Réaliser des interfaces utilisateur statiques web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04)." -tags: - - DWWM - - Intégration - - Responsive - - HTML - - CSS - - Accessibilité - - Éco-conception - - SEO/Référencement naturel - - Déploiement - - Reverse Proxy - - Front-end - - Serveur web ---- - -import Admonition from "@theme/Admonition"; - -# Réaliser des interfaces utilisateur statiques web ou web mobile - -## 📚 Références - -- REAC _(mise à jour du 03/07/2024)_, pages 19 et 20 -- RE _(mise à jour du 03/07/2024)_, page 10 - -## 📋 En résumé - -Pfiou, les maquettes sont terminées et tu as survécu à mes pavés d'explications ! 💪 -Eh bien... c'est reparti pour un tour, car maintenant tu vas devoir réaliser les interfaces statiques web ou web mobile à partir de ces maquettes. - - - Une interface statique, c'est une interface qui ne bouge pas, qui n'a pas - d'interactions avec l'utilisateur autre que les différents liens qui peuvent - être présents. - - -Pour réaliser ces interfaces, tu vas devoir respecter les maquettes que tu as réalisées précédemment, tout en prenant en compte les besoins en éco-conception et en accessibilité. _(je radote, mais c'est important !)_ - -On va rentrer directement dans le vif du sujet, avec pour commencer... les technologies à utiliser ! -Puisqu'on ne parle pas de dynamique mais de statique, tu vas devoir te tourner vers des technologies front-end, comme le HTML et le CSS. Le JavaScript sera également de la partie, mais qu'à partir de la CP 4 😉 - -Dans un premier temps, tu vas devoir parler du squelette de ton site, c'est-à-dire de la structure HTML. On retrouvera par ailleurs des notions essentielles comme : - -- Les balises sémantiques (pour une meilleure accessibilité et un meilleur référencement) -- Les médias (images, vidéos, sons, etc.) -- Les liens (pour naviguer d'une page à une autre) - -Ensuite, tu vas devoir t'occuper de la mise en forme de ton site, c'est-à-dire du CSS. -N'oublie pas : le site **doit correspondre** aux maquettes que tu as réalisées, et donc respecter la charte graphique. - -
- Petit rappel sur le CSS - - Le CSS est un langage de style utilisé pour décrire la présentation d'un document écrit en HTML. - Il permet de définir la couleur, la police, la taille et l'espacement des éléments, mais aussi de les positionner sur la page. - - Même si le navigateur stylise déjà certains éléments HTML, il ne faut pas se baser sur les styles par défaut, car ils peuvent varier d'un navigateur à un autre et surtout se casser d'une version à une autre. - - Pour éviter les mauvaises surprises, il est recommandé de réinitialiser les styles par défaut en début de feuille de style, en utilisant par exemple un fichier de réinitialisation comme [Normalize.css](https://necolas.github.io/normalize.css/) ou [Reset CSS de Eric Meyer](https://meyerweb.com/eric/tools/css/reset/). -
- -Ensuite, tu vas devoir t'assurer que ton site est bien accessible à tous, rendre tes pages web responsives _(c'est-à-dire qu'elles s'adaptent à tous les types d'écrans)_ et enfin, publier ton site de manière sécurisée. - -La partie éco-conception sera également à prendre en compte, en veillant à ne pas surcharger ton site en médias inutiles ou trop lourds. - -## 👓 L'accessibilité - -Dans la compétence précédente, je t'ai parlé de l'accessibilité et de l'importance de rendre un site accessible à tous. On a notamment vu qu'il est important de maîtriser le contraste, la taille de police, le choix de la police et les intitulés des liens et boutons. - -Mais au delà de ces aspects, on va également pouvoir donner plus de précisions au navigateur sur le contenu de notre site, en utilisant des balises sémantiques ainsi que des attributs spécifiques : `alt` pour les images, `title` pour les liens, mais surtout `aria-*`. - -
- Petit rappel sur les attributs `aria-*` - - Les attributs `aria-*` sont des attributs spécifiques qui permettent de donner des informations supplémentaires sur les éléments de la page. - Ils sont particulièrement utiles pour les technologies d'assistance, comme les lecteurs d'écran, qui peuvent ainsi mieux comprendre le contenu de la page. - - Par exemple, si tu as un bouton qui ouvre un menu, tu pourrais ajouter l'attribut `aria-expanded="false"` pour indiquer que le menu est fermé, puis le passer à `true` lorsque le menu est ouvert. - - Tu peux retrouver la liste complète des attributs `aria-*` sur le [MDN](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA). -
- -## 🌐 Le référencement naturel - -J'entends déjà l'un de mes chers collègues juré s'impatienter : "Et le référencement, on en parle ?" -La réponse : bien sûr que ~non~ oui ! - -Le référencement naturel, ou SEO _(pour Search Engine Optimization)_, est un ensemble de techniques visant à améliorer la visibilité d'un site web dans les moteurs de recherche. -On parlera dans un premier temps de l'optimisation du contenu, avec des balises ``, `<meta>`, `<h1>`, `<h2>`, etc., mais aussi de l'optimisation technique, avec la vitesse de chargement, la compatibilité mobile, les balises sémantiques, etc. - -On retrouvera également des notions de netlinking _(liens entrants et sortants)_, de maillage interne, de balises `<a>` et `<img>`, de sitemap, de robots.txt, etc. - -Ça fait beaucoup, non ? 😅 -Disons que c'est un vaste sujet et qui, même s'il ne fait pas toujours rêver, est indispensable pour que ton site soit visible sur les moteurs de recherche. - -Difficile de dire au client "Désolé, votre site n'apparaît pas sur Google et je m'en fiche" ! - -## 🌳 L'éco-conception - -On sait déjà que l'éco-conception c'est l'art de concevoir un site web de manière à réduire son impact environnemental, et que pour cela, il faut éviter d'intégrer beaucoup d'images et autres médias. -Mais est-ce que ça veut pour autant dire que tu dois te contenter de sites tout moches et tout gris ? Non ! - -En HTML, au delà de l'import des médias, on ne va pas avoir beaucoup de contrôle sur la consommation énergétique. -Mais pas aucun contrôle ! - -L'action la plus primordiale sur les images, c'est dans un premier temps d'utiliser des ressources compressées, mais aussi de les dimensionner correctement. - -<Admonition - type="quote" - title="En CSS, ça prend 2 secondes de redimensionner une image" -> - Effectivement, il est possible de redimensionner les images en leur appliquant une largeur et une hauteur. - Mais l'image reste chargée en entier, même si elle n'est pas affichée dans sa totalité. - Ça voudrait donc dire imposer au navigateur de télécharger une image en haute résolution pour l'afficher en miniature : pas terrible. - - Pour éviter ça, on va dans un premier temps réduire et compresser l'image et on peut également utiliser l'attribut `srcset` qui permet de charger une image en fonction de la taille de l'écran. - -</Admonition> - -Maintenant que nos images sont prêtes, il faut que je vous dise que ce n'est pas tout ! -Il faut également penser au format de nos images. La plupart du temps, on croise des images en JPEG, PNG ou GIF, mais il existe un format plus récent et plus performant : le WebP. _(et non, ce n'est pas un Pokémon)_ - -<details> - <summary>Et le format SVG ? Ce n'est pas bien ?</summary> - - Si, si, le format SVG est très bien ! - - C'est vrai que je ne l'évoque pas ici, mais le SVG est un format d'image vectorielle qui a l'avantage d'être léger et de s'adapter à toutes les tailles d'écran sans créer de flou ou pixélisation. - - Il est particulièrement adapté pour les icônes, logos et autres éléments graphiques simples. -</details> - -Allez cette fois-ci, on ne touche plus aux images et leur format, par contre "comment peut-on les charger ?". -Celui qui répond "avec une simple balise `<img>` et son attribut `src`" a tout faux ! _(enfin non, pas tout faux, mais pas tout à fait juste)_ - -On va évidemment utiliser une balise `<img>`, mais on va également utiliser des techniques de chargement différé, comme le **lazy loading**, qui permet de charger les images uniquement lorsqu'elles sont visibles à l'écran. - -En tant que juré, j'ai souvent vu des projets qui exploitent un script JS pour faire du lazy loading, mais il existe un attribut HTML qui permet de faire ça très simplement : `loading="lazy"`. -De cette manière, nos images ne seront chargées que si elles sont visibles à l'écran, ce qui permet de réduire la consommation de bande passante et donc l'impact environnemental. - -<Admonition - type="tip" - icon="🧪" - title="Voici un exemple concret de ce qu'on vient de voir" -> - ```html {3-4,6} - <img - src="clairiere.jpg" - srcset="clairiere-480w.webp 480w, clairiere-800w.webp 800w" - sizes="(max-width: 600px) 480px, 800px" - alt="Une clairière verdoyante" - loading="lazy" - > - ``` -</Admonition> - -Allez, arrêtons-nous là pour l'éco-conception ! - -## 📱 Le responsive design - -Maintenant que notre site est éco-conçu, accessible et optimisé pour le référencement, il est temps de s'attaquer à la partie responsive design. Tu connais certainement déjà le principe, mais pour les autres, le responsive design c'est le fait de rendre un site web adaptatif et lisible sur tous les types d'écrans, que ce soit un ordinateur, une tablette ou un smartphone. - -Pour cela, nous avons plusieurs possibilités : - - - Les media queries _(pour adapter le style en fonction de la taille de l'écran et du type de support)_ - - Les unités relatives _(pour adapter la taille des éléments en fonction de la taille de la police ou d'un élément parent)_ - - `em` : unité relative à la taille de la police de l'élément parent - - `rem` : unité relative à la taille de la police de l'élément racine - - `%` : unité relative à la taille de l'élément parent - - `vw/vh` : unité relative à la largeur de la fenêtre _(ainsi que les variantes `lvh/lvw`, `svh/svw` et `dvh/dvw`)_ - - Les grid et flexbox _(pour organiser les éléments de manière flexible et adaptative)_ - -Il est également possible d'utiliser des frameworks CSS, comme Tailwind CSS ou Bootstrap, qui proposent des composants et des classes prédéfinies pour faciliter la mise en place du responsive design. - -<details> - <summary>Le cas de Bootstrap</summary> - - Alors je vais faire le vieux râleur, mais Bootstrap c'est bien, mais c'est pas bien. - - <iframe - src="https://giphy.com/embed/26ufdipQqU2lhNA4g" - width="480" - height="480" - className="mx-auto my-4" - ></iframe> - - Mais alors, pourquoi ce n'est pas bien ? - Pour faire simple : Bootstrap c'est lourd. Très lourd. - - Il propose beaucoup de fonctionnalités, mais il est très rare de toutes les utiliser et derrière ça implique que le navigateur va charger du code inutile, ce qui va ralentir le chargement de la page. - - Si tu veux utiliser un framework CSS, je te conseille plutôt de te tourner vers Tailwind CSS, qui propose une approche plus modulaire et plus légère. - Tailwind CSS viendra te générer un fichier CSS final basé **uniquement** sur les classes que tu utilises, ce qui permet de réduire la taille du fichier final. - - Comme ça, adieu les 200Ko de CSS pour un site qui n'en fait que 20Ko ! 🚀 -</details> - -## 🔒 Déploiement et sécurité - -Dernière étape avant de pouvoir souffler un peu : le déploiement de ton site. - -Pour déployer ton site, tu vas devoir choisir un hébergeur, un nom de domaine, configurer un serveur, transférer tes fichiers, etc. -Tu peux totalement utiliser des services "gratuits", comme Netlify ou Vercel, mais assure-toi que le service que tu choisis respecte les normes de sécurité, les normes de respect sur les données personnelles, mais surtout que tu sois en mesure de déployer ton site sans ces outils ! - -Enfin, n'oublie pas de sécuriser ton site, en utilisant un certificat SSL par exemple. - -<Admonition - type="tip" - icon="🤔" - title="Un certificat quoi ?" -> -Un certificat SSL est un fichier de données qui sécurise les échanges de données entre un serveur et un navigateur en cryptant les données transmises. Il garantit que les données sont sécurisées et ne peuvent pas être interceptées. - -Tu peux en générer un gratuitement avec [Let's Encrypt](https://letsencrypt.org/), mais il faudra le renouveler tous les 3 mois. - -</Admonition> - -Si tu as la main sur la configuration du serveur, tu pourras également mettre en place des règles de sécurité, comme le CSP _(Content Security Policy)_, qui permet de limiter les risques de failles XSS _(Cross-Site Scripting)_. -Tu peux également activer la compression Gzip pour réduire la taille des fichiers envoyés au navigateur afin d'accélérer le chargement du site et de répondre davantage aux critères d'éco-conception. - -## 🎯 Critères d'évaluation - -- L'interface est conforme à la maquette et les besoins en éco-conception sont pris en compte -- L'interface tient compte de l'expérience utilisateur, y compris pour les personnes en situation de handicap -- L'interface respecte les recommandations de sécurité liées aux applications web ou web mobile -- L'interface s'adapte au type d'utilisation de l'application, et notamment à la taille, au type et à la disposition du support, y compris pour les équipements mobiles -- La règlementation en vigueur est respectée, y compris celle relative à l'accessibilité -- Le site est publié de manière sécurisée -- Le site est visible sur les moteurs de recherche et le référencement dépend du public - -## 🤯 Aller plus loin _(hors référentiel)_ - -Tu utilises un site qui tourne sur un port spécifique, mais tu aimerais bien que ton site soit accessible sur les ports 80 _(HTTP)_ et 443 _(HTTPS)_ ? -Pour ça il y a une merveilleuse technologie qui s'appelle le reverse proxy ! - -Le reverse proxy, c'est un serveur qui va recevoir les requêtes HTTP et les rediriger vers le serveur qui héberge le site. Tu peux très bien faire la redirection sur le même serveur, c'est d'ailleurs ce qu'on va faire ici. - -<Admonition type="example" title="Exemple concret"> - Prenons un exemple concret, le cas d'une application qui tourne sur le port 3000, mais que l'on souhaite rendre accessible sur le port 80. - - Avec Nginx, on peut faire ça très simplement en créant un fichier de configuration dans `/etc/nginx/sites-available/`. - - ```nginx showLineNumbers - server { - listen 80; - listen [::]:80; - server_name monsite.fr; - - location / { - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ; # On transmet l'adresse IP du client - proxy_set_header Host $host; # On transmet le nom de domaine - proxy_pass http://localhost:3000; # On redirige les requêtes vers le port 3000, où tourne notre application - } - } - ``` - - ... Tadaaa ! C'est tout ! - Bien entendu, il va falloir activer ce site avec un lien symbolique dans `/etc/nginx/sites-enabled/` et redémarrer Nginx pour que les changements soient pris en compte. - Si tu souhaites également rajouter le support du HTTPS, tu peux utiliser [Certbot](https://certbot.eff.org/) pour générer un certificat Let's Encrypt. -</Admonition> - ---- - -## 🧠 Documentations - -- [Wikipédia - Accessibilité web](https://fr.wikipedia.org/wiki/Accessibilit%C3%A9_du_web) -- [Wikipédia - Référencement naturel](https://fr.wikipedia.org/wiki/R%C3%A9f%C3%A9rencement_naturel) -- [Wikipédia - Éco-conception numérique](https://fr.wikipedia.org/wiki/%C3%89coconception) -- [MDN - Accessible Rich Internet Applications _(ARIA)_](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA) -- [Let's Encrypt](https://letsencrypt.org/) - -## 🛠️ Outils - -- [Certbot](https://certbot.eff.org/) -- [WebAim Contrast Checker](https://webaim.org/resources/contrastchecker/) -- [Contrast Checker](https://contrastchecker.com/) -- [Coolors - Contrast Checker](https://coolors.co/contrast-checker/112a46-acc8e5) -- [Tailwind CSS](https://tailwindcss.com/) -- [Bootstrap](https://getbootstrap.com/) diff --git a/old/docs/titres-professionnels/DWWM/AT1/CP4.mdx b/old/docs/titres-professionnels/DWWM/AT1/CP4.mdx deleted file mode 100644 index 86efb59..0000000 --- a/old/docs/titres-professionnels/DWWM/AT1/CP4.mdx +++ /dev/null @@ -1,274 +0,0 @@ ---- -sidebar_position: 4 -title: "CP 4" -description: "Synthèse de la CP 4 \"Développer la partie dynamique des interfaces utilisateur web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04)." -tags: - - DWWM - - JavaScript/TypeScript - - Front-end - - Eco-conception - - Accessibilité - - SEO/Référencement naturel ---- - -import Admonition from "@theme/Admonition"; -import TabItem from "@theme/TabItem"; -import Tabs from "@theme/Tabs"; - -# Développer la partie dynamique des interfaces utilisateur web ou web mobile - -## 📚 Références - -- REAC _(mise à jour du 03/07/2024)_, pages 21 et 22 -- RE _(mise à jour du 03/07/2024)_, page 10 - -## 📋 En résumé - -Ça y est, on commence à parler développement pour de vrai maintenant ! On quitte doucement l'intégration pour maintenant rajouter de l'interactivité à nos interfaces utilisateur, ce qui veut dire "utilisation d'un langage script côté client", soit... - -<iframe - src="https://giphy.com/embed/SvFocn0wNMx0iv2rYz" - width="480" - height="480" - className="mx-auto my-4" -></iframe> - -C'est le meilleur moment pour parler de nombreuses fonctionnalités implémentées sur ton application avec JavaScript, comme : - -- Les formulaires dynamiques _(ajout/suppression de champs, vérification des données, etc.)_ -- Les animations _(chargement d'un témoin de chargement, apparition/disparition d'éléments, etc.)_ -- Les interactions avec l'utilisateur _(drag and drop, ouverture de fenêtre modale, etc.)_ -- Les appels à des services web _(API REST, etc.)_ - -<Admonition type="warning" title="Consommation d'API"> - Bien que j'ai mentionné le fait que faire des appels à des services web corresponde entièrement à cette CP, il est important de noter que la consommation d'API est une compétence à part entière, qui sera abordée dans la CP 7 qui correspond à la mise en place de services web et composants métier. - - Ne te focalise donc pas sur ce que fait l'API en arrière plan, concentre toi sur comment configurer tes requêtes et comment traiter les réponses obtenues ! -</Admonition> - -<Admonition type="quote" icon="🤔" title="Mon site est fait avec React/Angular/Vue.js, donc je valide automatiquement cette CP ?"> - Pas si vite ! 😏 - Effectivement, ton site répond _(en théorie)_ en tous points pour la compétence actuelle, mais il est important de montrer que tu sais comment fonctionne le JavaScript "vanilla" _(c'est-à-dire sans framework ou bibliothèque)_. - - Si tu as utilisé un framework, tu peux tout à fait montrer des extraits de code en JavaScript pur pour montrer que tu sais comment ça fonctionne "sous le capot" ! - - Mais on ne va pas se le cacher, si tu as réussi à réaliser un projet avec un framework, c'est déjà un très bon point pour toi qui permet de démontrer que tu as de bonnes connaissances en JavaScript. - Cependant il va potentiellement y avoir un défaut majeur sur ton projet : le référencement naturel _(SEO)_. -</Admonition> - -<details> - <summary> - Référencement d'un site généré côté client _(comme React, Vue.js etc)_ - </summary> - - Les sites web générés côté client _(ou "client-side rendering")_ ont un défaut majeur : ils ne sont pas très bien référencés par les moteurs de recherche. - - En effet, les moteurs de recherche ont du mal à lire le contenu d'un site généré côté client, car ils n'exécutent pas le JavaScript. - C'est pour cela qu'il est recommandé de mettre en place un rendu côté serveur _(ou "server-side rendering")_ pour améliorer le référencement naturel de ton site. - - Si tu veux en savoir plus sur le sujet, tu peux consulter [cet article de Google](https://web.dev/articles/rendering-on-the-web?hl=fr#rendering-terminology). - - De mon côté, je recommande énormément de passer par le framework [Vike](https://vike.dev/) qui permet de générer des sites web ultra-rapides avec un rendu côté serveur et un rendu côté client, le tout en utilisant Vue.js, React ou (presque) n'importe quel autre framework front-end JavaScript ! - - Tu as aussi la possibilité d'utiliser [Next.js](https://nextjs.org/) pour React, [Nuxt.js](https://nuxtjs.org/) pour Vue.js ou [SvelteKit](https://kit.svelte.dev/) pour Svelte qui permettent de faire du rendu côté serveur. -</details> - -## ➕ Informations complémentaires - -Je me permets également de lâcher une bombe sur une certaine techno JS : **jQuery**. -Bon sang, celui-là il me fait penser à un vieux pote qui a pris un coup de vieux... 😅 - -<details> - <summary>jQuery, c'est quoi ?</summary> - - jQuery est une bibliothèque JavaScript qui a été très populaire dans les années 2000 et 2010. - Elle a été créée pour simplifier l'écriture de scripts JavaScript et pour faciliter la manipulation du DOM. - - jQuery a été très utilisée pour les animations, les requêtes AJAX, la manipulation du DOM, etc. - Mais depuis l'arrivée des frameworks front-end comme React, Angular ou Vue.js, jQuery a perdu de sa superbe et est de moins en moins utilisée. - - Cependant, il est toujours bon de connaître jQuery, car il est possible que tu tombes sur un projet qui l'utilise encore, comme sur des templates Wordpress qui commencent à dater par exemple. -</details> - -Mais alors, pourquoi je te parle de jQuery ? - -Eh bien.. pour faire simple, aujourd'hui jQuery est relativement obsolète et surtout très lourd pour ce que ça rajoute à un projet. -Dans la mesure du possible, il est recommandé de ne pas utiliser jQuery pour un nouveau projet, et de préférer JavaScript "vanilla" ou un framework ou bibliothèque front-end comme React, Angular ou Vue.js _(attention, d'un point de vue éco-conception l'utilisation d'un framework n'est pas forcément la meilleure solution)_. - -<details> - <summary> - Mais comment je vais faire pour mes consommations d'API, vu que j'utilisais `jQuery.ajax()` ?! - </summary> - - Tout doux, tout doux, il existe une solution ! 😎 - - Si je te parle des requêtes XHR _(XMLHttpRequest)_ tu me dis... ? - - > "Mais c'est vieux ça, c'est pas du tout à la mode !" - - Et tu as raison, mais si maintenant je te dis qu'il y a une autre solution, native, plus moderne et plus performante, tu me dis... ? - - > "Fetch !" - - **Et sinon, pour faire simple :** - - Fetch est une API plus moderne et plus simple à utiliser que les requêtes XHR, et elle est supportée par tous les navigateurs modernes. - Elle permet de faire des requêtes HTTP de manière asynchrone et de gérer les réponses de manière plus simple. - - <Tabs> - <TabItem value="🥉 XHR"> - ```javascript showLineNumbers - const xhr = new XMLHttpRequest(); - xhr.open("GET", "https://api.exemple.com/data", true); - xhr.onreadystatechange = function () { - if (xhr.readyState === 4 && xhr.status === 200) { - console.log(JSON.parse(xhr.responseText)); - } - }; - xhr.send(); - ``` - </TabItem> - - <TabItem value="🥈 jQuery"> - ```javascript showLineNumbers - $.ajax({ - url: "https://api.exemple.com/data", - method: "GET", - success: function (data) { - console.log(data); - }, - }); - ``` - </TabItem> - - <TabItem value="🥇🏆 Fetch"> - ```javascript showLineNumbers - fetch("https://api.exemple.com/data") - .then((response) => response.json()) - .then((data) => console.log(data)); - ``` - </TabItem> - </Tabs> - - Non seulement `fetch` est plus simple à utiliser et comprendre _(contrairement à XMLHttpRequest)_ mais elle est également plus légère que `jQuery.ajax()` puisqu'elle est native au navigateur ! Alors pourquoi s'en priver ? 😉 -</details> - -## 🎯 Critères d'évaluation - -- L'interface utilisateur est conforme au dossier de conception -- L'interface est dynamique et l'expérience utilisateur est améliorée, y compris pour les personnes en situation de handicap -- Les recommandations de sécurité liées aux applications web et web mobile sont respectées -- La règlementation en vigueur sont respectées, y compris celle relative à l'accessibilité -- Le code est documenté, y compris en anglais _(niveau B1 CECRL pour l'anglais)_ -- Le jeu d'essai fonctionnel est complet et les tests unitaires sont réalisés pour les composants concernés -- Les tests de sécurité sont réalisés - -## 🤯 Aller plus loin _(hors référentiel)_ - -Plus tôt, dans la CP 3, je t'ai parlé d'une astuce d'éco-conception pour différer le chargement des images avec l'attribut `loading="lazy"` sur les balises `<img>`. Mais on peut aller encore plus loin que simplement différer le chargement des images ! - -On peut également différer le chargement des scripts JavaScript avec l'attribut defer sur les balises `<script>`. - -<details> - <summary>`defer` sur les balises `<script>`</summary> - - Si ça te rassure, ça ne cassera pas ton site web et au contraire, ça peut même l'améliorer ! - L'intérêt premier de cet attribut est de différer l'exécution du script jusqu'à ce que le document HTML soit entièrement chargé. - - L'avantage de cette technique est qu'on va demander au navigateur de charger le script en parallèle du reste du contenu, sans bloquer le chargement de la page. - Comme ça : pas de page blanche pendant le chargement du script, et le script sera exécuté une fois que le navigateur aura fini de charger le reste de la page ! - - ```html - <script src="script.js" defer></script> - ``` -</details> - -Maintenant, on sait qu'on peut charger de manière "asynchrone" nos images et nos scripts, mais ce n'est toujours pas terminé.. 😏 - -Prenons l'exemple d'un site qui incorpore plusieurs dizaines de vidéos Youtube sur une seule page. On aura donc des `<iframe>` qui vont charger des vidéos Youtube, et ça, c'est pas très éco-responsable... 😕 -Mais on peut améliorer notre page en mettant en place une légère interaction JavaScript pour charger l'iframe uniquement si l'utilisateur clique sur un bouton ! - -<details> - - <summary> - Chargement d'un iframe Youtube uniquement au clic de l'utilisateur - </summary> - - <Tabs> - <TabItem value="HTML - 1ère étape"> - ```html showLineNumbers - <div - className="iframe-container" - data-src="https://www.youtube.com/watch?v=dQw4w9WgXcQ" - data-width="1280" - data-height="720" - > - <img src="https://img.youtube.com/vi/dQw4w9WgXcQ/maxresdefault.jpg" loading="lazy"> - <button type="button" className="iframe-loader">Charger la vidéo</button> - </div> - ``` - </TabItem> - - <TabItem value="JavaScript - 2ème étape"> - ```javascript showLineNumbers - document.querySelectorAll('button.iframe-loader').forEach((button: HTMLButtonElement) => { - // Pour chaque bouton qui doit charger un iframe, on écoute le clic dessus - button.addEventListener('click', () => { - // On récupère le container de l'iframe, qui dans notre exemple est la balise parente du bouton - const container: HTMLElement | null = button.closest('.iframe-container'); - - // Si le container n'existe pas, on arrête l'exécution de la fonction pour éviter un plantage - if (!container) return; - - const { src, width, height } = container.dataset as { - src: string, - width: string, - height: string - }; - - // On prépare notre iframe avec les données stockées dans le container - const iframe = document.createElement('iframe'); - iframe.setAttribute('src', src); - iframe.setAttribute('width', width); - iframe.setAttribute('height', height); - - // On supprime le contenu du container pour y ajouter notre iframe - container.innerHTML = ''; - container.appendChild(iframe); - }); - }); - ``` - </TabItem> - </Tabs> -</details> - -<details> - <summary> - Mais ça fait beaucoup de code juste pour charger des iframes, c'est vraiment - nécessaire ? - </summary> - - Pour être franc, il n'y a pas de solution idéale. Mais on peut améliorer les performances du site et gagner en sobriété numérique en ne chargeant pas des ressources lourdes inutilement. - - Est-ce que tu savais que le simple fait de charger un iframe d'une vidéo Youtube demande au navigateur de faire une dizaine de requêtes HTTP pour charger la vidéo, les scripts et les styles de Youtube ? Imagine si on mixe plusieurs sources pour nos iframes, comme Dailymotion, Vimeo, etc. 😱 - - Et le pire dans tout ça, c'est que le navigateur va charger ces ressources même si l'utilisateur ne comptait pas regarder la vidéo ! - Alors autant faire en sorte que notre site réponde au besoin de l'utilisateur, sans pour autant supprimer les fonctionnalités _(comme nos iframes)_ qui peuvent être utiles. -</details> - ---- - -## 🧠 Documentations - -- [MDN Web Docs - Attribut `loading` sur les balises `<img>`](https://developer.mozilla.org/fr/docs/Web/HTML/Element/img#loading) -- [MDN Web Docs - Attribut `defer` sur les balises `<script>`](https://developer.mozilla.org/fr/docs/Web/HTML/Element/script#defer) -- [MDN Web Docs - Attribut `data-*`](https://developer.mozilla.org/fr/docs/Web/HTML/Global_attributes/data-*) -- [MDN Web Docs - `fetch`](https://developer.mozilla.org/fr/docs/Web/API/Fetch_API) -- [Wikipédia - API](https://fr.wikipedia.org/wiki/Interface_de_programmation) - -## 🛠️ Outils - -- [Vike - Framework front-end pour un rendu côté serveur et côté client](https://vike.dev/) -- [Next.js - Framework pour React avec rendu côté serveur](https://nextjs.org/) -- [Nuxt.js - Framework pour Vue.js avec rendu côté serveur](https://nuxtjs.org/) -- [SvelteKit - Framework pour Svelte avec rendu côté serveur](https://kit.svelte.dev/) diff --git a/old/docs/titres-professionnels/DWWM/AT1/_category_.json b/old/docs/titres-professionnels/DWWM/AT1/_category_.json deleted file mode 100644 index 188ab02..0000000 --- a/old/docs/titres-professionnels/DWWM/AT1/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Activité Type 1", - "position": 3 -} diff --git a/old/docs/titres-professionnels/DWWM/AT2/CP5.mdx b/old/docs/titres-professionnels/DWWM/AT2/CP5.mdx deleted file mode 100644 index e4d2ad5..0000000 --- a/old/docs/titres-professionnels/DWWM/AT2/CP5.mdx +++ /dev/null @@ -1,435 +0,0 @@ ---- -sidebar_position: 5 -title: "CP 5" -description: "Synthèse de la CP 5 \"Mettre en place une base de données relationnelle\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04)." -tags: - - DWWM - - Conception - - Modélisation - - Base de données - - Merise - - Dictionnaire de Données - - Modèle Conceptuel de Données (MCD) - - Modèle Logique de Données (MLD) - - Modèle Relationnel de Données (MRD) - - Modèle Physique de Données (MPD) - - SQL - - Back-end ---- - -import Admonition from "@theme/Admonition"; - -# Mettre en place une base de données relationnelle - -## 📚 Références - -- REAC _(mise à jour du 03/07/2024)_, pages 23 et 24 -- RE _(mise à jour du 03/07/2024)_, page 11 - -## 📋 En résumé - -Le front-end : c'est **fini** ! -Mais avant de nous attaquer au back-end d'un point de vue code, on va voir ce qui est attendu dans cette CP qui parle de la mise en place d'une base de données relationnelle. - -<Admonition - type="quote" - title="Mais attend ! J'ai juste une base de données non relationnelle à mettre en place, c'est bon ?" -> - J'aurai aimé te dire que oui, mais ça va être un poil trop léger pour cette compétence... - Mais garde sous la main ta base de données non relationnelles - pour la prochaine compétence, ça te servira 😉 -</Admonition> - -## 🎨 Modélisation de la base de données - -Commençons par le commencement : **comment créer une base de données relationnelle ?** - -Il y a pléthore de possibilités, mais ici on va s'attarder sur une méthodologie française _(cocorico 🐓)_ qui est la méthode **Merise**. -On va se baser sur différents schémas issus de cette méthode pour créer notre base de données relationnelle, à savoir : - -1. Le **dictionnaire des données** : qui va recenser toutes les données que l'on va stocker par la suite dans notre base de données -2. Le **MCD** _(Modèle Conceptuel des Données)_ : qui va représenter les données et leurs relations, sous la forme d'entités et d'associations dans un schéma graphique -3. Le **MLD** _(Modèle Logique des Données)_ : qui va représenter les données sous forme de tables et de relations, dans un schéma graphique -4. Le **MRD** _(Modèle Relationnel des Données)_ : qui va représenter les mêmes informations que le MLD, mais cette fois-ci en format texte -5. Le **MPD** _(Modèle Physique des Données)_ : qui va représenter les données sous forme de tables et de relations, en intégrant les types de données et les contraintes - -Tu remarqueras que j'y ai indiqué un ordre dans la liste ci-dessus. -Si je peux te donner un indice : ce n'est pas pour rien que c'est une liste ordonnée 😉 - -Donc si tu réalises un dictionnaire de données après avoir fait ton MPD, c'est que tu n'as pas compris l'objectif du dictionnaire de données ! _(par exemple)_ - -### 🗂️ Le dictionnaire des données - -L'objectif du dictionnaire des données est de recenser toutes les données que l'on va stocker dans notre base de données. -L'idée est qu'il soit très simple et compréhensible par tout le monde, même par quelqu'un qui n'y connaît rien en base de données. - -<details> - <summary>Exemple de dictionnaire de données</summary> - - | Nom de la donnée | Format de la données | Longueur maximale attendue | Description de la donnée | Exemple de donnée | - | ---------------------------------- | -------------------- | -------------------------- | ------------------------------- | ---------------------- | - | Numéro d'identification du salarié | Alphanumérique | 30 | - | - | - | Prénom du salarié | Alphabétique | 30 | - | Jean | - | Nom du salarié | Alphabétique | 30 | - | Dupont | - | Adresse email du salarié | Alphanumérique | 50 | - | jean.dupont@exemple.fr | - | Adresse postale du salarié | Alphanumérique | 60 | - | 1 rue de la Paix | - | Code postal du salarié | Alphanumérique | 5 | - | 75000 | - | Ville du salarié | Alphabétique | 30 | - | Paris | - | Mot de passe du salarié | Alphanumérique | 80 | Mot de passe sécurisé _(hashé)_ | - | - - ... et ainsi de suite pour toutes les données que tu vas stocker dans ta base de données. -</details> - -On peut constater qu'on ne fait apparaître aucun terme technique, on se contente de décrire les données de manière simple et compréhensible. -Grossièrement, voici les formats que l'on peut retrouver dans un dictionnaire des données : - -- **Alphabétique** : pour les chaînes de caractères contenant uniquement des lettres -- **Alphanumérique** : pour les chaînes de caractères contenant des lettres et des chiffres -- **Numérique** : pour les nombres -- **Date** : pour les dates -- **Vrai/Faux** : pour les données booléennes - -<details> - <summary> - Mais pourquoi le code postal est marqué en alphanumérique ? 🤔 - </summary> - - C'est une très bonne question figure-toi ! - - En France, le code postal est composé de 5 chiffres, mais il peut arriver que certains codes postaux commencent par un zéro. - Or, si on stocke le code postal en numérique, on risque de perdre ce zéro au début du code postal. - - Exemple : - - - `75000` -> `75000` - - `01000` -> `1000` _(on a perdu le zéro au début)_ - - On retrouve également ce cas de figure pour les numéros de téléphone, qui peuvent commencer par un zéro. - - Toutefois il faut également prendre en compte quelque chose... ici, l'exemple ne concerne que la France. - Si demain on te demande de prévoir le fait que ton application puisse être utilisée dans un autre pays, il faudra peut-être revoir ce choix de format pour le code postal. - Certains pays ont des codes postaux composés de lettres et de chiffres, d'autres vont avoir jusqu'à 9 caractères, etc. - - ⬇️ **Cas de figure spécifique, et pourtant très important à connaître** ⬇️ - - Prenons l'exemple où l'on fait une application pour la France **uniquement**. - En France, on considère que l'indicatif des numéros de téléphone est `+33`. On serait donc tenté de se dire : - - > "Pas besoin de stocker l'indicatif puisque je veux uniquement enregistrer des numéros de téléphones français." - - Hmm.. vraiment ? - Pourtant : la Réunion, la Guadeloupe, la Martinique, la Guyane et Mayotte sont bien des départements français, non ? - - En regardant de plus près, les numéros de téléphone de ces départements ne commencent pas par `+33` mais par `+262` pour la Réunion, `+590` pour la Guadeloupe, etc. - - Il te faudra donc stocker les numéros de téléphone avec 13 caractères _(ou plus)_ pour être sûr de ne pas perdre d'informations et t'assurer que ton application puisse être utilisée partout en France et/ou dans le monde selon les besoins ! - - **Conclusion de ce pavé :** - Pensez à vous renseigner sur les pays que vous ciblez pour votre application, ça peut vous éviter des erreurs de conception 😉 -</details> - -### 📊 Le MCD - -Tout comme le dictionnaire des données, le MCD a pour objectif de représenter les données et leurs relations, mais cette fois-ci sous forme graphique. -On va également découper davantage nos données en les faisant apparaître dans des entités distinctes. - -On fera attention à ne pas être technique, comme pour le dictionnaire des données, et on va se contenter de représenter les données et leurs relations. -Ce document est avant tout destiné à être compris par tout le monde, notamment le client final. - -<details> - <summary>Exemple de MCD</summary> - - ![Exemple de MCD, modèle conceptuel de données, Merise](@site/static/merise/mcd.webp) -</details> - -Sur ce schéma, on peut distinguer deux entités : `Salarié` et `Congé`. Elles sont représentées par des rectangles et contiennent leurs différentes propriétés. -On peut également remarquer d'autres éléments, comme des "bulles" bleues qui représentent les relations entre les entités. On y retrouve des verbes à l'infinitif qui décrivent la relation entre les entités. - -Mais entre ces verbes et les entités, il y a des chiffres _(et parfois un `n` qui se balade)_, ce sont les fameuses **cardinalités**. - -Ce schéma nous apprend donc que : - -- `Salarié` - GÉRER - `Salarié` _(Relation réflexive)_ - - Un même salarié peut gérer plusieurs autres salariés _(`Salarié` 0,n - GÉRER - `Salarié` 0,1)_ - - Un salarié peut n'avoir aucun ou qu'un seul manager _(`Salarié` 0,1 - GÉRER - `Salarié` 0,n)_ -- `Salarié` - RÉALISER - `Tâche` - - Un salarié peut réaliser plusieurs tâches _(`Salarié` 0,n - RÉALISER - `Tâche` 1,n)_ - - Une tâche est réalisée par un ou plusieurs salariés _(`Tâche` 0,n - RÉALISER - `Salarié` 1,n)_ -- `Tâche` - ATTRIBUER - `Projet` - - Une tâche est attribuée à un seul projet _(`Tâche` 1,1 - ATTRIBUER - `Projet` 0,n)_ - - Un projet peut contenir plusieurs tâches _(`Projet` 0,n - ATTRIBUER - `Tâche` 1,1)_ - -<details> - <summary>Mais pourquoi il n'y a pas les ID dans le schéma ? 🤔</summary> - - Ni les clés étrangères d'ailleurs... - Tout simplement parce que les ID ne sont pas des données à proprement parler. - Ce sont avant tout des identifiants qui permettent de différencier les entités entre elles, d'un point de vue technique. - - Sauf s'il s'agit d'une donnée concrète _(comme le numéro de badge de salarié, un numéro de sécurité sociale, un ISBN pour un livre, etc.)_, - on ne les fait pas apparaître dans le MCD. Cependant, on peut noter que ce n'est pas pour autant que nous n'avons pas de discriminant dans nos entités ! - On peut très bien voir la propriété `adresse email` dans l'entité `Salarié` qui pourrait servir de discriminant, puisque chaque salarié a une adresse email unique. -</details> - -Ce document peut être réalisé à l'aide de divers outils, mais je vous recommande chaudement le logiciel [Looping](https://www.looping.fr/) qui est gratuit et très simple d'utilisation. -Certes... il semble tout droit sorti des années 90, mais il est adapté à la réalisation de schémas de la méthodologie Merise ! - -Et si tu utilises ou utilisais [Mocodo](https://www.mocodo.net/), fais très attention ! Certes, l'outil est très puissant et permet tout de même de réaliser des MCD, mais contrairement à Looping il ne va pas t'imposer de respecter les règles de la méthode Merise. - -Pratique d'un côté, mais pas fiable donc... à moins que tu sois un⸱e expert⸱e en Merise et que tu veuilles te passer de Looping ! - -### 📈 Le MLD - -Cette fois-ci, on va passer à la vitesse supérieure en représentant nos données sous forme de tables et de relations ! -Les termes techniques ont alors entièrement leur place dans ce document, puisqu'il est destiné aux développeurs qui vont mettre en place la base de données. - -<details> - <summary>Exemple de MLD</summary> - - ![Exemple de MLD, modèle logique de données, Merise](@site/static/merise/mld.webp) -</details> - -Et voilà un peu de changement ! - -Déjà, on peut dire au revoir aux entités et aux relations, et bonjour aux tables et aux clés étrangères 🎉 ! -On peut aussi voir que certaines de nos propriétés ont changé de nom, comme `numéro d'identification` de l'entité `Salarié` qui est devenu `id` pour la table `employee`. - -On peut également voir que nos relations ont été transformées en clés étrangères, qui permettent de lier nos tables entre elles et si nécessaire : en table de jointure _(comme pour la relation `Salarié` - RÉALISER - `Tâche`)_. - -Et pour finir : tous les termes ont été traduits du français vers l'anglais. - -<Admonition type="warning" title="Langue utilisée dans la base de données"> - De manière simple : il n'y a pas de règle. Cependant, il est recommandé d'utiliser une seule langue pour nommer les tables, les colonnes, les clés, etc dans une base de données. - Pour choisir cette langue, il est recommandé de se baser sur la langue de travail de l'entreprise ou de l'équipe de développement. - - Si tu travailles exclusivement avec des francophones : tu as bien évidemment le droit de nommer tes tables et colonnes en français. - Cependant, si au moindre moment tu as besoin de travailler avec des anglophones ou des personnes qui ne sont pas francophones : Shakespeare sera ton ami 📜 - - _(Bon, si tu travailles dans une entreprise espagnole, tu peux aussi opter pour l'espagnol à contrario du français... mais tu as compris l'idée)_ - - Le plus important dans l'histoire, c'est d'être **cohérent** dans le choix de la langue utilisée. - Tu as commencé par utiliser de l'anglais pour parler des éléments techniques ? Alors tu te dois de tout faire en anglais. -</Admonition> - -### 📑 Le MRD - -La plupart du temps, le MRD est réalisé sous le nom de MLD mais en format texte. -En réalité, le MRD est la représentation textuelle du MLD. - -Mais si ça te rassure, on ne t'en voudra pas si tu parles de "MLD" à la place de "MRD" 😅 - -On peut donc dire qu'au choix, on peut soit faire un MLD sous forme de schéma, soit sous forme de texte _(et dans ce cas, on parle de MRD)_. -Mais si tu as l'occasion de faire les deux, c'est encore mieux ! - -<details> - <summary>Exemple de MRD</summary> - - employee(<u className="font-bold underline">id</u>, **email**, firstname, lastname, postal_address, postal_code, city, password, <i className="italic">#manager_id</i>); - project(<u className="font-bold underline">id</u>, name); - task(<u className="font-bold underline">id</u>, name, is_done, <i className="italic">#project_id</i>); - employee_has_task(#employee_id, <i className="italic">#task_id</i>); -</details> - -Si tu veux comprendre pourquoi certains éléments sont en gras, en italique ou soulignés, voici un court résumé : - -- <u className="underline">Sous-ligné</u> : Clé primaire _(en gras également car unique, - voir ci-dessous)_ -- **Gras** : Donnée unique au sein de la table -- _Italique_ : Clé étrangère - -### 📦 Le MPD - -Maintenant on ne rigole plus, on met les mains dans le cambouis ! 🧑‍🔧 - -Puisque tous nos schémas sont prêts, on va pouvoir passer à la création de notre base de données. -Mais si on y repense, notre MLD représente déjà bien notre base de données, non ? - -Pas entièrement... car il nous manque les types de données ! -Si on reprend notre dictionnaire des données, on avait pu inscrire "Alphabétique" et d'autres formats génériques pour nos données. Mais ces termes n'existent pas _(du moins, pas tous)_ dans les bases de données. - -<Admonition type="warning" title="Spécificités des SGBD"> - Selon le SGBD que tu utilises, les types de données peuvent varier. Il est - donc obligatoire que tu te réfères à la documentation de ton SGBD pour - connaître les types de données disponibles 😉 -</Admonition> - -Au passage, le MPD peut se décliner dans deux formats : - -- **Le format texte** : qui reprend les informations du MLD en y ajoutant les types de données et les contraintes. En réalité, il s'agira d'un script SQL qui permettra de créer la base de données et toutes ses tables. -- **Le format graphique** : qui reprend les informations du MLD en y ajoutant les types de données et les contraintes, mais sous forme de schéma. - -Cependant je mets en garde sur le format graphique et la notation que peuvent proposer certains logiciels. Vous avez peut-être eu l'occasion de voir des schémas avec des carrés, des ronds, des losanges ou encore des pattes de corbeau... Cette notation est propre à un langage de modélisation, le **UML** _(Unified Modeling Language)_, qui ne correspond pas à la méthode Merise. - -Dans la méthode Merise, on utilisera simplement des lignes pleines pour représenter les relations entre les tables, et des carrés pour représenter les tables. -On retrouvera tout de même des lignes fléchées pour illustrer nos relations dans le MLD, mais c'est tout. - -UML est un excellent langage de modélisation, mais on y reviendra davantage dans le cursus CDA 😉 - -<details> - <summary>Exemple de MPD _(SQL)_</summary> - - ```sql showLineNumbers - CREATE TABLE employee( - id CHAR(30), - email VARCHAR(320), - firstname VARCHAR(30), - lastname VARCHAR(30), - postal_address VARCHAR(60), - postal_code CHAR(5), - city VARCHAR(30), - password CHAR(80), - manager_id CHAR(30), - CONSTRAINT employee_pk PRIMARY KEY (id), - CONSTRAINT employee_ak UNIQUE (email), - CONSTRAINT employee_manager_fk FOREIGN KEY (manager_id) REFERENCES employee(id) - ); - - CREATE TABLE project( - id CHAR(30), - name VARCHAR(255), - CONSTRAINT project_pk PRIMARY KEY (id) - ); - - CREATE TABLE task( - id CHAR(30), - name VARCHAR(255), - is_done BOOLEAN, - project_id CHAR(30), - CONSTRAINT task_pk PRIMARY KEY (id), - CONSTRAINT task_project_fk FOREIGN KEY (project_id) REFERENCES project(id) - ); - - CREATE TABLE employee_has_task( - employee_id CHAR(30), - task_id CHAR(30), - CONSTRAINT employee_has_task_pk PRIMARY KEY (employee_id, task_id), - CONSTRAINT employee_has_task_employee_fk FOREIGN KEY (employee_id) REFERENCES employee(id), - CONSTRAINT employee_has_task_task_fk FOREIGN KEY (task_id) REFERENCES task(id) - ); - ``` -</details> - -## 💾 Sauvegardes de la base de données - -C'est bien beau de créer une base de données, mais si on ne la sauvegarde pas, on risque de tout perdre en cas de problème... - -Certains hébergeurs permettent de faire des sauvegardes automatisées, mais dans le cas où tu dois toi-même sauvegarder ta base de données, il existe plusieurs solutions : - -- **Les sauvegardes manuelles** : qui consistent à exporter le contenu de ta base de données dans un fichier _(généralement au format SQL)_ -- **Les sauvegardes automatiques** : qui consistent à automatiser le processus de sauvegarde, généralement via un script ou un outil dédié - -On va se concentrer _(que très rapidement, ne t'inquiète pas !)_ sur la partie automatisée, puisqu'elle permet également de comprendre comment faire une sauvegarde manuellement. - -Pour mettre en place l'automatisation, on peut mettre en place une tâche planifiée : un processus qui va s'exécuter à intervalles réguliers pour sauvegarder notre base de données. -Sur Linux, on parlera d'un `cron job` _(ou `tâche cron` en français)_. - -Sans rentrer dans les détails de configuration d'une tâche cron, on va devoir la créer en donnant plusieurs informations : - -- **Le chemin vers le script de sauvegarde** : qui va contenir les commandes pour sauvegarder notre base de données -- **La fréquence d'exécution** : qui va déterminer à quelle fréquence notre tâche va s'exécuter _(toutes les heures, tous les jours, toutes les semaines, etc.)_ -- **Le compte utilisateur** : qui va exécuter la tâche, généralement le compte de l'utilisateur qui a les droits d'accès à la base de données - -<details> - <summary> - Exemple de script `bash` pour sauvegarder une base de données PostgreSQL - </summary> - - ```bash showLineNumbers - #!/bin/bash - - # Variables - DB_USER="user" - DB_NAME="database" - BACKUP_DIR="/path/to/backup" - DATE=$(date +"%Y%m%d%H%M%S") - - # Création du répertoire de sauvegarde - mkdir -p $BACKUP_DIR - - # Sauvegarde de la base de données - pg_dump -U $DB_USER $DB_NAME > $BACKUP_DIR/$DB_NAME-$DATE.sql - ``` - - Ce script va permettre de sauvegarder une base de données PostgreSQL en exportant son contenu dans un fichier SQL. - Il est important de remplacer les variables `DB_USER`, `DB_NAME` et `BACKUP_DIR` par les informations de ta base de données. -</details> - -Une fois ce script créé, il suffira de le rendre exécutable et de le planifier dans une tâche cron pour automatiser la sauvegarde de ta base de données. - -<details> - <summary>Exemple de tâche cron pour automatiser la sauvegarde</summary> - - ```shell - # Ouvrir le fichier de tâches cron - crontab -e - - # Ajouter la tâche de sauvegarde, toutes les nuits à minuit - 0 * * * * /path/to/backup.sh - ``` - - Et voilà ! Ta base de données sera sauvegardée toutes les nuits à minuit, sans que tu aies besoin d'intervenir manuellement. -</details> - -## 🛡️ Sécurité et confidentialité des données - -On ne le répétera jamais assez, mais la sécurité et la confidentialité des données sont primordiales pour toute application. - -Pour garantir la sécurité de ta base de données, il est recommandé de mettre en place plusieurs mesures : - -- **Les sauvegardes régulières** : pour éviter de perdre des données en cas de problème -- **Les mises à jour régulières** : pour corriger les failles de sécurité et les bugs -- **Les accès restreints** : pour limiter l'accès à la base de données aux seules personnes autorisées -- **Les mots de passe forts** : pour éviter les attaques par force brute ou par dictionnaire -- **Les connexions sécurisées** : pour éviter les interceptions de données - -Mais la sécurité ne s'arrête pas là, il est également important de garantir la confidentialité des données : - -- **Le chiffrement des données** : pour éviter que des tiers puissent lire les données stockées, en cas de fuite - -<Admonition type="warning" title="Identifiants de connexion"> - Même en développement sur ta machine locale, prend l'habitude de ne jamais utiliser les identifiants par défaut de ta base de données _(comme `root` sans mot de passe par exemple)_. - - L'objectif est de te mettre dans les conditions réelles d'un environnement de production, où la sécurité est primordiale. Ça t'évitera de prendre de mauvaises habitudes qui pourraient te coûter cher par la suite. -</Admonition> - -## 🎯 Critères d'évaluation - -- Les données du schéma conceptuel et leurs relations sont identifiées et prises en compte -- Le schéma physique est conforme aux besoins exprimés dans le dossier de conception et respecte les règles des bases de données relationnelles -- Les règles de nommage sont respectées -- La sécurité, l'intégrité et la confidentialité des données est assurée -- La base de données de tests mise en place est conforme au schéma physique -- Les utilisateurs sont créés avec leurs droits respectifs conformément au dossier de conception -- La base de données créée est sauvegardée et elle peut être restaurée en cas d'incident -- La documentation technique des bases de données est comprise, en langue française ou anglaise _(niveau B1 du CECRL pour l'anglais)_ - -## 🤯 Aller plus loin _(hors référentiel)_ - -Pas trop mal à la tête ? On continue un tout petit peu ? 😅 -Tu as vu qu'on précise entre parenthèses la longueur des données, mais pourquoi on fait ça ? - -Tu n'es pas sans savoir que pour stocker des données et que pour les stocker, il nous faut de l'espace. -Et cet espace, on le définit en fonction de la longueur de nos données : on parle alors d'allocation. - -En précisant une valeur entre les parenthèses, on vient dire à notre SGBD combien de place il doit réserver pour stocker nos données **au maximum**. - -Dans le cas d'un `VARCHAR(30)`, on réserve 30 caractères pour stocker notre donnée, même si elle n'en fait que 5 _(allocation **dynamique**)_. -Dans le cas d'un `CHAR(30)`, on réserve également 30 caractères, mais cette fois-ci on "complète notre donnée avec des espaces" pour atteindre les 30 caractères _(allocation **statique**)_. - -Si on ne précise pas de longueur, le SGBD va réserver une place par défaut qui varie d'un SGBD à l'autre. -Donc ce n'est pas parce que tu te dis : "255 caractères c'est très bien pour mon `VARCHAR`, pas besoin de le préciser puisque c'est la valeur par défaut !" que tu as raison... 😅 -Si demain la norme change et que l'allocation par défaut pour les types `VARCHAR` passe à 100 caractères au lieu de 255 caractères, tu risques de te retrouver avec des données tronquées ! - ---- - -## 🧠 Documentations - -- [Éditions ENI - Merise - Guide pratique (4e édition), par **Jean-Luc Baptiste**](https://www.editions-eni.fr/livre/merise-guide-pratique-4e-edition-modelisation-des-donnees-et-des-traitements-manipulations-avec-le-langage-sql-conception-d-une-application-mobile-android-ou-ios-9782409046667) -- [Medium - Non, les ID n'ont pas leur place dans un MCD, par **Jean Prulière**](https://jeanpruliere.medium.com/non-les-id-nont-pas-leur-place-dans-un-mcd-43b5cd5ce9b6) -- [SQL.sh - Cours et tutoriels SQL](https://sql.sh/) -- [Wikipédia - UML](<https://fr.wikipedia.org/wiki/UML_(informatique)>) - -## 🛠️ Outils - -- [Looping - Logiciel de modélisation conceptuelle de données](https://www.looping-mcd.fr/) -- [Mocodo - Logiciel en ligne de modélisation conceptuelle de données](https://www.mocodo.net/) diff --git a/old/docs/titres-professionnels/DWWM/AT2/CP6.mdx b/old/docs/titres-professionnels/DWWM/AT2/CP6.mdx deleted file mode 100644 index 97f40d4..0000000 --- a/old/docs/titres-professionnels/DWWM/AT2/CP6.mdx +++ /dev/null @@ -1,348 +0,0 @@ ---- -sidebar_position: 6 -title: "CP 6" -description: "Synthèse de la CP 6 \"Développer des composants d'accès aux données SQL et NoSQL\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04)." -tags: - - DWWM - - Base de données - - SQL - - Back-end - - ORM/ODM - - Sécurité - - Chiffrement - - Hachage ---- - -import Admonition from "@theme/Admonition"; -import TabItem from "@theme/TabItem"; -import Tabs from "@theme/Tabs"; - -# Développer des composants d'accès aux données SQL et NoSQL - -## 📚 Références - -- REAC _(mise à jour du 03/07/2024)_, pages 25 et 26 -- RE _(mise à jour du 03/07/2024)_, page 11 - -## 📋 En résumé - -Gros morceau la création de bases de données, n'est-ce pas ? 😅 -On va pouvoir souffler un coup en parlant maintenant de l'accès à ces bases de données. _(enfin, souffler... pas trop quand même)_ - -Et tu sais quoi, comme tout ce qu'on a vu jusqu'à maintenant, on va alléger un peu les choses en parlant de merveilleux outils comme les **ORM** et les **ODM** ! - -<details> - <summary>C'est quoi un ORM et ODM ? Quelles sont les différences ?</summary> - - Les ORM _(Object-Relational Mapping)_ et les ODM _(Object-Document Mapper)_ sont des outils qui permettent de faire le lien entre les bases de données et les langages de programmation. - - - Les ORM sont utilisés pour les bases de données relationnelles, comme MySQL, PostgreSQL ou SQLite. Ils permettent de manipuler les données de la base de données sous forme d'objets, ce qui facilite leur utilisation dans le code. - - Les ODM sont utilisés pour les bases de données NoSQL, comme MongoDB. Ils fonctionnent de la même manière que les ORM, mais pour les bases de données NoSQL. - - En gros, les ORM et les ODM permettent de simplifier la manipulation des données dans le code, en évitant d'avoir à écrire des requêtes à la main. -</details> - -Alleeeez, on va voir ça de plus près ! 😎 - -## ⚙️ Configuration d'un ORM - -<Tabs> - <TabItem value="Prisma" label="NodeJS + Prisma"> - Pour ce qui est de l'ORM, on va parler de Prisma ! Bien entendu, mis à part la - syntaxe, les principes restent les mêmes pour les autres ORM. - - <details> - <summary>C'est quoi Prisma ?</summary> - - Prisma est un ORM qui permet de simplifier la manipulation des bases de données relationnelles. Il permet de générer du code à partir du schéma de la base de données, ce qui facilite la manipulation des données dans le code. - - Prisma est compatible avec plusieurs bases de données relationnelles, comme MySQL, PostgreSQL ou SQLite ainsi que MongoDB pour les bases de données NoSQL. - </details> - - Dans un premier temps, on va installer Prisma et configurer notre base de données. - - <details> - <summary>Installation de Prisma</summary> - - ```bash - npm install prisma --save-dev # Installation de Prisma - npx prisma init # Initialisation de Prisma dans le projet - ``` - - Une fois Prisma installé et initialisé, on va pouvoir le configurer _(ce qui correspond en partie à la CP 5)_ : - - - Modifier le fichier `.env` à la racine du projet pour y ajouter les informations de connexion à la base de données - - Créer les modèles de données dans le dossier `prisma/schema.prisma` - - <Tabs> - <TabItem value="prisma-.env" label="Fichier .env"> - ```env - DATABASE_URL="postgresql://username:password@localhost:5432/database?schema=public" - ``` - </TabItem> - - <TabItem value="prisma-prisma.schema" label="Fichier prisma.schema"> - ```prisma - datasource db { - provider = "postgresql" - url = env("DATABASE_URL") - } - - generator client { - provider = "prisma-client-js" - } - - model User { - id Int @id @default(autoincrement()) - email String @unique - password String - } - ``` - </TabItem> - </Tabs> - </details> - </TabItem> - - <TabItem value="Laravel" label="PHP + Laravel"> - Rédaction à faire - - Voir la documentation officielle de Laravel, pour la création de migrations et de modèles avec [Eloquent](https://laravel.com/docs/master/eloquent). - </TabItem> - - <TabItem value="Symfony" label="PHP + Symfony"> - Rédaction à faire - - Voir la documentation officielle de Symfony, pour la création de migrations et de modèles avec [Doctrine](https://symfony.com/doc/current/doctrine.html). - </TabItem> -</Tabs> - -<details> - <summary>Je fais mes requêtes SQL à la main, il faut que j'apprenne à utiliser un ORM/ODM ?</summary> - - **Non** ! - - D'un certain côté, c'est nettement plus intéressant de savoir réaliser les requêtes par toi-même, sans utiliser d'outils qui génèrent du SQL à ta place. - - En entreprise, tu vas certainement utiliser ces fameux outils, mais dès que l'on va chercher à avoir les requêtes les plus optimisées possibles, il va falloir mettre les mains dans le cambouis ! -</details> - -Mais avant de vouloir manipuler nos données, on va s'assurer d'une chose primordiale : l'**intégrité des données**. - -## 🔎 Intégrité des données - -L'intégrité des données, c'est le fait de garantir que les données stockées dans la base de données sont correctes et cohérentes, de la création jusqu'à la suppression. -Si dans un champ de ta base de données tu attends un nombre entier, tu ne vas pas accepter une chaîne de caractères, n'est-ce pas ? - -Et pour garantir cette intégrité, on va mettre en place des vérifications **avant** d'insérer ou de mettre à jour des données dans la base de données. - -Rien de plus simple bien entendu ! - -Tu t'attends à avoir une adresse email dans un champ ? -Alors tu vas vérifier que l'adresse email est bien une adresse email, et non pas une chaîne de caractères lambda. - -<Tabs> - <TabItem value="node-joi" label="JOI (Node.js)"> - ```typescript - import type { Request, Response } from 'express'; - - import { user } from '@/services'; - import Joi from 'joi'; - - const userController = { - // ... - - async updateEmail(req: Request, res: Response) { - const schema = Joi.object({ - email: Joi.string().email().required(), - }); - - const { error } = schema.validate(req.body); - - if (error) { - // L'email n'est pas valide : - // On retourne une erreur 400 avec le message d'erreur généré par JOI - return res.status(400).json({ error: error.details[0].message }); - } - - // L'email est valide : - // 1. On modifie l'email de l'utilisateur actuellement connecté (ID stocké en session) via notre service `user` - await user.updateEmail(req.session.userId, req.body.email); - - // 2. On retourne une réponse 200 avec un message de succès - return res.status(200).json({ message: 'Email mis à jour' }); - }, - }; - ``` - </TabItem> - - <TabItem value="php-laravel" label="Laravel (PHP)"> - ```php - namespace App\Http\Controllers; - - use Illuminate\Http\Request; - use App\Models\User; - use Validator; - - class UserController extends Controller - { - // ... - - public function updateEmail(Request $request) - { - $validator = Validator::make($request->all(), [ - 'email' => 'required|email', - ]); - - if ($validator->fails()) { - // L'email n'est pas valide : - // On retourne une erreur 400 avec les erreurs de validation - return response()->json($validator->errors(), 400); - } - - // L'email est valide : - // 1. On modifie l'email de l'utilisateur via notre modèle `User` - User::where('id', auth()->id())->update(['email' => $request->email]); - - // 2. On retourne une réponse 200 avec un message de succès - return response()->json(['message' => 'Email mis à jour'], 200); - } - } - ``` - </TabItem> -</Tabs> - -## 💼 Compétences attendues - -Si tu utilises un outil te générant les requêtes automatiquement, il est important de savoir reproduire à la main les requêtes générées par cet outil. - -Cet outil n'a que l'objectif de te faciliter la tâche, mais il ne doit pas te dispenser de comprendre ce qu'il se passe derrière. -À toi de montrer à ton jury que ce qu'il se passe derrière n'est pas pure magie ! 😄 - -<details> - <summary>Voici ce que ~peut~ **va** faire ton jury en cas de doute</summary> - - Si pour ton jury, il reste un doute sur ta compréhension des requêtes : il peut être amené à tes poser des questions supplémentaires et parfois te demander de reproduire une requête SQL de tête. - - Oui, une requête SQL de tête ! _(Même si tu as utilisé MongoDB ou une autre base de données NoSQL)_ - Alors ne t'inquiète pas, de tête c'est un sacré challenge et ton jury ne va pas t'en vouloir si tu t'emmêles les pinceaux. - - De manière général, on évite d'aller trop loin et on cherche **uniquemment** la compréhension et le placement des mots clés pour une requête avec jointure. - - Par exemple : - > "Pouvez-vous nous donner la requête SQL pour récupérer les pseudos d'utilisateur ayant posté au minimum 3 articles ?" - - Réponse possible : - ```sql - SELECT u.pseudo -- Sélectionne la colonne `pseudo` de la table `utilisateur` (aliasée `u` dans le `FROM`) - FROM utilisateur u -- Récupération de la table `utilisateur`, aliasée `u` - JOIN article a ON u.id = a.utilisateur_id -- Jointure entre `utilisateur` et `article` (aliasée `a`) sur la colonne `id` de `utilisateur` et `utilisateur_id` de `article` - GROUP BY u.pseudo -- Regroupe les résultats par `pseudo` - WHERE COUNT(a.id) >= 3; -- Compte le nombre d'articles par utilisateur et filtre sur ceux ayant posté au moins 3 articles - ``` - - ... Bon, OK.. cette requête, elle pique un peu plus qu'un simple jointure, à cause de l'utilisation du `GROUP BY` et du `COUNT`... mais tu vois l'idée ! 😅 - - Dans tous les cas, on ne va pas te demander de reproduire une requête complexe ou d'avoir le niveau d'un DBA _(administrateur de base de données)_ ! -</details> - -## 🔐 Confidentialité des données - -La plupart du temps, nos bases de données vont accueillir des données confidentielles, comme : - -- Des mots de passe -- Des informations personnelles _(nom, prénom, adresse, etc.)_ -- Des données sensibles _(informations bancaires, médicales, etc.)_ - -Bien que notre bases de données se doit d'être sécurisée dans son accès et ses permissions, dans le cas d'une fuite il est important de sécuriser ces données. - -Pour les mots de passe, on va les hacher avant de les stocker dans la base de données. - -<details> - <summary>C'est quoi le hachage d'un mot de passe ?</summary> - - Le hachage d'un mot de passe est une manière de le sécuriser en le transformant en une chaîne de caractères "aléatoire", appelée **hash**. - - Il est important de noter que le hachage est **unidirectionnel**, c'est-à-dire qu'il est impossible de retrouver le mot de passe d'origine à partir de son hash contrairement au **chiffrement**. -</details> - -<details> - <summary>Et le chiffrement, ça sert à quoi ?</summary> - - Comme le hachage, le chiffrement permet de sécuriser des données. Cependant : le chiffrement est **bidirectionnel**. - C'est à dire que l'on peut retrouver les données d'origine à partir des données chiffrées. - - Si tu as déjà eu l'occasion d'envoyer des "messages codés", c'est que tu as déjà utilisé le chiffrement sans pour autant le savoir ! - L'un des chiffrements les plus connus est le **chiffre de César**, qui consiste à décaler les lettres de l'alphabet d'un certain nombre de positions. - - Par exemple : - - ``` - Message : "Bonjour" - Décalage : 3 - - Message chiffré : "Erqmrxu" - ``` - - <Admonition type="warning"> - Le chiffrement n'est pas une solution de sécurité absolue, il est possible de retrouver les données d'origine à partir des données chiffrées. - D'ailleurs le chiffre de César est un chiffrement très simple à casser, on ne va donc pas l'utiliser pour protéger les données sensibles ! - </Admonition> - - On va privilégier un algorithme de chiffrement qui se base sur une **clé secrète**, qui sera la clé pour chiffrer et déchiffrer les données. - C'est d'ailleurs plus ou moins ce qui est fait avec la célèbre [machine Enigma](https://fr.wikipedia.org/wiki/Enigma_(machine)) utilisée par les allemands pendant la Seconde Guerre Mondiale pour chiffrer leurs messages et éviter qu'ils soient interceptés et compris par les alliés. -</details> - -Mais alors, comment on peut s'y prendre ? - -🥁🥁🥁 - -Avec des bibliothèques, tout simplement ! 🙃 -_(Ou si tu es un peu fou, tu peux essayer de le faire toi-même, mais attention à ce que ce soit **réellement sécurisé** sinon tu en deviens le seul et unique **responsable**)_ - -Tu as notamment des bibliothèques _(Node.js)_ qui sont très utilisées : -- Hachage : `bcrypt` _(ou encore `argon2`)_ -- Chiffrement : `crypto` _(native à Node.js en plus, si ça c'est pas la classe 😎)_ - -Je te laisse te plonger dans les documentations associées, que tu retrouveras _(presque)_ tout en bas de cette fiche. - -Et naturellement : **PERSONNE** ne doit avoir accès à ces données, à part les personnes autorisées/concernées bien entendu. - -## 🎯 Critères d'évaluation - -- Les traitements relatifs aux manipulations des données répondent aux fonctionnalités décrites dans le dossier de conception -- L'intégrité et la confidentialité des données sont maintenues -- Les cas d'exception sont pris en compte -- Toutes les entrées sont contrôlées et validées dans les composants serveurs sécurisés -- Les tests unitaires et de sécurité sont associés à chaque composant -- La démarche structurée de résolution de problème est adaptée en cas de dysfonctionnement -- Le système de veille permet de suivre les évolutions technologiques et les problématiques de sécurité liées aux bases de données SQL et NoSQL - -## 🤯 Aller plus loin _(hors référentiel)_ - -T'es encore là ? Tu aimes ça les ~patates~ bases de données, hein ? 😏 -Alors dans ce cas, je te recommande chaudement de te pencher sur PostgreSQL qui est, à mon sens, l'une des seules **vraies** bases de données relationnelles. - -Je ne m'étalerai pas sur ce sujet, mais désolé MySQL/MariaDB de ne pas être au niveau... 😅 - -Les ressources que je m'apprête à te recommander sont un peu plus avancées, mais ce sont d'excellentes portes d'entrées vers des métiers comme DBA par exemple. -Tu retrouveras des notions très bien expliquées et pertinentes pour t'améliorer sur le sujet dans les ressources de [Dalibo](https://www.dalibo.com/formations). - -<Admonition type="info" title="Gratuité des formations Dalibo"> - Dalibo propose des formations, mais qui ne sont pas gratuites pour autant. - Seuls les supports de cours sont disponibles gratuitement, aux formats EPUB et PDF. - - Tu peux retrouver ces supports sur la page [Formations](https://www.dalibo.com/formations) du site de Dalibo. -</Admonition> - ---- - -## 🧠 Documentations - -- [SQL.sh - Cours et tutoriels SQL](https://sql.sh/) -- [Prisma - Documentation](https://www.prisma.io/docs/) -- [JOI - Documentation](https://joi.dev/api/?v=17.13.0) -- [Dalibo - Formations](https://www.dalibo.com/formations) -- [Wikipédia - Chiffrement de César](https://fr.wikipedia.org/wiki/Chiffrement_par_d%C3%A9calage) -- [bcrypt - Documentation](https://www.npmjs.com/package/bcrypt) -- [argon2 - Documentation](https://www.npmjs.com/package/argon2) -- [crypto - Documentation](https://nodejs.org/api/crypto.html) diff --git a/old/docs/titres-professionnels/DWWM/AT2/CP7.mdx b/old/docs/titres-professionnels/DWWM/AT2/CP7.mdx deleted file mode 100644 index a2c4ca1..0000000 --- a/old/docs/titres-professionnels/DWWM/AT2/CP7.mdx +++ /dev/null @@ -1,331 +0,0 @@ ---- -sidebar_position: 7 -title: "CP 7" -description: "Synthèse de la CP 7 \"Développer des composants métier coté serveur\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04)." -tags: - - DWWM - - Architecture - - Design Pattern - - Back-end - - Sécurité - - Tests ---- - -import Admonition from "@theme/Admonition"; -import TabItem from "@theme/TabItem"; -import Tabs from "@theme/Tabs"; - -# Développer des composants métier coté serveur - -## 📚 Références - -- REAC _(mise à jour du 03/07/2024)_, pages 27 et 28 -- RE _(mise à jour du 03/07/2024)_, page 12 - -## 📋 En résumé - -Maintenant que l'on sait modéliser et dialoguer avec notre base de données, on va pouvoir s'attaquer à la logique métier de notre application. -Dans le cadre d'un projet web, ça représentera principalement nos contrôleurs, middlewares et services. - -Si tu as déjà travaillé sur un projet web, tu as probablement déjà entendu parler du design pattern MVC. -Et si ce n'est pas le cas, pas de panique, on va voir ensemble ce que c'est ! - -## 💡 Le design pattern MVC - -Le design pattern MVC est un modèle d'architecture logicielle qui sépare les données, la logique métier et l'interface utilisateur. - -- **Modèle** : représente les données de l'application. Il contient les classes qui permettent de manipuler les données. -- **Vue** : représente l'interface utilisateur. C'est ce que l'utilisateur voit et avec quoi il interagit. -- **Contrôleur** : fait le lien entre le modèle et la vue. Il contient la logique métier de l'application. - -<Admonition type="warning" title="Les schémas disponibles en ligne"> - Il existe de nombreux schémas qui expliquent le design pattern MVC mais ils ne sont pas tous corrects. - Enfin, si, ils sont corrects... mais certains ne s'appliquent pas à tous les frameworks et architectures. -</Admonition> - -Pour t'aider à mieux te représenter l'un des schémas les plus courants, voici un diagramme de séquence "basique" : - -```mermaid -sequenceDiagram - autonumber - - box rgba(139,92,246,.1) Navigateur - actor Utilisateur - end - - box rgba(139,92,246,.1) Serveur - participant Routeur - participant Contrôleur - participant Modèle - participant Vue - end - - participant Base de données - - Utilisateur->>Routeur: Je veux voir la page d'accueil - Routeur->>Contrôleur: Appelle la méthode `home` - alt Si des données sont nécessaires - Contrôleur->>Modèle: Demande les données - Modèle->>Base de données: Récupère les données - Base de données-->>Modèle: Retourne les données - Modèle-->>Contrôleur: Retourne les données - end - Contrôleur->>Vue: Demande le HTML - Vue-->>Contrôleur: Retourne le HTML généré - Contrôleur->>Utilisateur: Retourne le HTML généré -``` - -Le concept est simple : chaque partie de l'application a un rôle bien défini et ne doit pas empiéter sur le rôle des autres. - -<details> - <summary>Et si j'ai des middlewares ?</summary> - - Dans la majorité des cas, les middlewares s'exécutent avant le contrôleur même si on peut en avoir à différents moments de la circulation de la donnée. - Si tu as déjà utilisé Express, tu as probablement déjà utilisé un middleware pour vérifier si l'utilisateur est connecté avant de lui afficher une page qui est réservée aux utilisateurs connectés. - - <Tabs> - <TabItem value="express" label="Node.js (Express)"> - ```typescript {16-25,31} showLineNumbers - import type { RequestHandler } from "express"; - - import * as controllers from '@/controllers'; - import session from 'express-session'; - import express from 'express'; - - const app = express(); - app.set('view engine', 'ejs'); - app.use(session({ - secret: 'keyboard cat', - resave: false, - saveUninitialized: true, - cookie: { secure: true }, - })); - - const isUserConnected: RequestHandler = (req, res, next) => { - // Si l'utilisateur n'est pas connecté... - if (!req.session.userId) { - // ... on appelle la méthode `unauthorized` du contrôleur `error` - return controller.error.unauthorized(req, res); - } - - // L'utilisateur est connecté, on peut continuer ! - next(); - }; - - // Route accessible par tout le monde, connecté ou non - app.get('/', controllers.home.index); - - // Route accessible uniquement par les utilisateurs connectés (middleware `isUserConnected`) - app.get('/dashboard', isUserConnected, controllers.dashboard.index); - - app.listen(3000, () => { - console.log('Serveur démarré sur le port 3000'); - }); - ``` - </TabItem> - </Tabs> -</details> - -<Admonition title="Le cas de React" type="warning"> - D'après toi, est-ce que React doit être considéré comme la vue dans le design pattern MVC ? - La réponse est **non** ! - - React est une bibliothèque _(pas une "librarie" et encore moins un framework ⚠️)_ JavaScript qui permet de créer des interfaces utilisateur, mais elle n'est pas liée de manière directe à un serveur. - Certes, on va consommer une API pour récupérer des données, mais React n'est que le réceptacle de ces données côté client _(navigateur)_. - - On va donc faire simple : on parlera plutôt d'une architecture "client-serveur" avec React côté client et notre API côté serveur. - Mais ça n'empêche pas que ton API puisse être une API REST _(ou GraphQL)_ qui respecte le design pattern MVC ! - Tout dépendra de si tu demandes dans ton serveur back-end de retourner une vue _(HTML)_ au navigateur. -</Admonition> - -## 🧑‍⚖️ Règles et conventions de nommage - -Peu importe le contexte dans lequel tu réalises le projet que tu vas soutenir face à ton jury, tu dois respecter les règles et conventions de nommage de l'entreprise. -Si tu fais un projet personnel, tu peux définir les tiennes, du moment que tu es en mesure de les expliquer à ton jury et que tu les respectes du début à la fin. - -<Admonition type="info" title="La cohérence, c'est la clé"> - Pense à être cohérent en ce qui concerne la langue utilisée. - - <Admonition title="Pas de franglais !" type="warning"> - Évite de mélanger plusieurs langues dans tes nommages. - Si tu choisis de travailler en français, reste en français. - Si tu choisis de travailler en anglais, reste en anglais. - </Admonition> - - D'ailleurs, je te recommande chaudement de travailler en anglais ne serait-ce que pour te familiariser avec la langue de Shakespeare qui est, on le rappelle, la langue la plus répandue dans le monde de l'informatique. - - Tu as évidemment le droit d'utiliser des traducteurs en ligne pour t'aider à trouver le bon mot _(ou la bonne expression)_, on ne te demande pas d'être bilingue ! -</Admonition> - -Au delà de la langue utilisée, on va également parler de la syntaxe des noms de fichiers, dossiers, classes, méthodes, variables, etc. -Pour t'aider à te lancer, tu peux t'inspirer des conventions de nommage les plus répandues que tu trouveras facilement en ligne. - -Par exemple, voici ce qu'on pourrait faire : - -<Tabs> - <TabItem value="indentation" label="Indentation"> - - **2 espaces** pour le JavaScript - - **4 espaces** pour le HTML - - **4 espaces** pour le CSS - </TabItem> - - <TabItem value="case" label="Case"> - - **camelCase** pour les variables, fonctions et méthodes - - **PascalCase** pour les classes et les composants React - - **kebab-case** pour les noms de fichiers et de dossiers - - **UPPER_CASE** pour les constantes - </TabItem> - - <TabItem value="comments" label="Commentaires"> - - Dans la langue définie pour le projet - - JSDoc pour les fonctions et méthodes - - `// @TODO [nom du développeur]` pour les tâches à réaliser plus tard - </TabItem> - - <TabItem value="imports" label="Imports"> - - Commencer par importer les types - - Continuer par les imports de bibliothèques et modules _(de la plus spécifique à la plus générale)_ - - Terminer par les imports non nommés - - Un saut de ligne entre chaque groupe d'imports - - Ordonner les imports par taille _(du plus court au plus long)_ puis par ordre alphabétique - - ```typescript - import type { Type1, Type2 } from 'module'; - - import { Component1, Component2 } from 'components'; - import { module1, module2 } from 'module'; - import { lib1, lib2 } from 'library'; - - import 'style.css'; - - // ... - ``` - </TabItem> -</Tabs> - -Au passage, tu as la possibilité de configurer ton éditeur de texte pour qu'il respecte ces conventions de nommage. -Sur VSCode, l'extension [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) te permettra de vérifier que ton code respecte bien les conventions de nommage que tu auras définies et [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) te permettra de formater ton code automatiquement selon ces mêmes conventions. - -Ça me permet également de te rappeler que tu dois **documenter ton code** et ce, **dans la langue définie pour le projet**. -Le premier réflexe à avoir est de documenter l'installation et l'utilisation de ton projet dans le fichier `README.md` à la racine de ton projet. - -Ensuite, n'ai pas peur d'abuser de la JSDoc _(ou PHPDoc si tu travailles en PHP)_ pour documenter tes fonctions et méthodes. -Par contre, n'abuse pas des commentaires potentiellement "inutiles" qui alourdissent la lecture de ton code, ça peut être contre-productif. - -## 🔄 Le jeu d'essai et les tests unitaires - -Histoire de faire simple : commençons par le jeu d'essai ! - -### 🎮 Le jeu d'essai - -Le jeu d'essai est un ensemble de données qui permet de tester le bon fonctionnement de l'application. -Ce type de test se compose de trois parties : - -- **Les données d'entrée** : ce sont les données que tu vas envoyer à ton application pour tester son comportement. -- **Les données de sortie attendues** : ce sont les données que tu attends en retour de ton application. -- **Les données de sortie obtenues** : ce sont les données que ton application te renvoie. - -Si on prend l'exemple d'un formulaire d'inscription où nous vérifions que l'utilisateur utilise une adresse e-mail valide et unique, ainsi qu'un mot de passe fort _(12 caractères minimum, au moins une majuscule, une minuscule, un chiffre et un caractère spécial)_, voici ce que pourrait donner notre jeu d'essai : - -<Tabs> - <TabItem value="invalid" label="Données invalides"> - - **Les données d'entrée** : - - Adresse e-mail : `mauvaise-adresse@email` - - Mot de passe : `password` - - **Les données de sortie attendues** : - - Erreur : `Adresse e-mail invalide` - - Erreur : `Le mot de passe ne respecte pas les critères de sécurité requis` - - **Les données de sortie obtenues** : - - Erreur : `Adresse e-mail invalide` - - Erreur : `Le mot de passe ne respecte pas les critères de sécurité requis` - </TabItem> - - <TabItem value="valid" label="Données valides"> - - **Les données d'entrée** : - - Adresse e-mail : `bonne-adresse@email.fr` - - Mot de passe : `Password123&` _(bon, le mot de passe n'est absolument pas "fort", mais il respecte les critères imposés)_ - - **Les données de sortie attendues** : - - Succès : `Utilisateur inscrit avec succès` - - **Les données de sortie obtenues** : - - Succès : `Utilisateur inscrit avec succès` - </TabItem> - - <TabItem value="email-already-used" label="Adresse email déjà utilisée"> - - **Les données d'entrée** : - - Adresse e-mail : `adresse-email@utilisee.fr` - - Mot de passe : `Password123&` - - **Les données de sortie attendues** : - - Erreur : `Adresse e-mail déjà utilisée` - - **Les données de sortie obtenues** : - - Erreur : `Adresse e-mail déjà utilisée` - </TabItem> -</Tabs> - -<Admonition type="tip" title="Mais alors, comment faire ces tests facilement ?"> - Si je te parle de client HTTP, tu me réponds... ? - Postman ? Insomnia ? - - Bingo ! 🎉 - - Utiliser un client HTTP comme Postman ou Insomnia te permettra de tester facilement les routes de ton API, et de vérifier que les données que tu envoies sont bien traitées par ton serveur. -</Admonition> - -### 🧪 Les tests unitaires - -Les tests unitaires, c'est un peu comme le jeu d'essai, mais en plus automatisé et surtout axé sur les fonctions et méthodes de ton application. - -Le gros avantage que ça va te permettre, c'est de t'assurer que toutes les fonctionnalités développées fonctionnent comme prévu et ce, à chaque fois que tu modifies ton code. -Oui oui, tu as bien lu : **à chaque fois que tu modifies ton code**, pas forcément à chaque fois que tu modifies une fonction ou une méthode qui avait déjà des tests unitaires. - -Alors pas forcément à la moindre modification, je veux plutôt dire que le but est de vérifier avant de livrer ! -Tu peux d'ailleurs faire en sorte que **tous les tests unitaires** doivente passer avant de pouvoir pusher ton code sur la branche principale de ton dépôt Git. Au début c'est casse pied, mais tu verras que ça te permettra de gagner du temps sur le long terme. - -L'objectif c'est de t'assurer que tu ne casses pas une fonctionnalité existante en ajoutant une nouvelle fonctionnalité ou en modifiant une fonctionnalité existante pour garantir que ton projet reste fonctionnel et ne casse pas sous les mains des utilisateurs. - -<details> - <summary>Un petit exemple ?</summary> - - Imaginons que tu as une fonction qui permet de vérifier si une adresse e-mail est valide. - Voici ce que pourrait donner un test unitaire pour cette fonction : - - <Tabs> - <TabItem value="nodejs" label="Node.js"> - ```javascript - import { isValidEmail } from './utils'; - - describe('isValidEmail', () => { - it('should return true if the email is valid', () => { - expect(isValidEmail('fake@email')).toBe(false); - expect(isValidEmail('true@email.com')).toBe(true); - }); - }); - ``` - </TabItem> - </Tabs> -</details> - -## 🎯 Critères d'évaluation - -- Les traitements répondent aux fonctionnalités décrites dans le dossier de conception -- Les composants métier sont sécurisés -- Les bonnes pratiques de la programmation orientée objet _(POO)_ sont respectées -- Les règles de nommage sont conformes aux normes de qualité de l'entreprise -- Le code source est documenté, y compris en anglais -- Un jeu d'essai fonctionnel et les tests unitaires ont été réalisés pour les composants concernés -- Les tests de sécurité sont réalisés -- La démarche structurée de résolution de problème est adaptée en cas de dysfonctionnement - ---- - -## 🧠 Documentations - -- [Wikipédia - Design pattern MVC](https://fr.wikipedia.org/wiki/Mod%C3%A8le-vue-contr%C3%B4leur) _(Attention, le schéma présenté n'est pas forcément le plus adapté à tous les frameworks et architectures)_ -- [Wikipédia - Conventions de nommage](https://fr.wikipedia.org/wiki/Convention_de_nommage) -- [JSDoc - Documentation](https://jsdoc.app/) -- [PHPDoc - Documentation](https://www.phpdoc.org/) - - -## 🛠️ Outils - -- [Postman](https://www.postman.com/) -- [Insomnia](https://insomnia.rest/) diff --git a/old/docs/titres-professionnels/DWWM/AT2/CP8.mdx b/old/docs/titres-professionnels/DWWM/AT2/CP8.mdx deleted file mode 100644 index 7deb9f2..0000000 --- a/old/docs/titres-professionnels/DWWM/AT2/CP8.mdx +++ /dev/null @@ -1,166 +0,0 @@ ---- -sidebar_position: 8 -title: "CP 8" -description: "Synthèse de la CP 8 \"Documenter le déploiement d'une application dynamique web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04)." -tags: - - DWWM - - Déploiement - - Back-end - - Reverse Proxy - - Serveur web ---- - -import Admonition from "@theme/Admonition"; - -# Documenter le déploiement d'une application dynamique web ou web mobile - -## 📚 Références - -- REAC _(mise à jour du 03/07/2024)_, page 29 -- RE _(mise à jour du 03/07/2024)_, page 12 - -## 📋 En résumé - -Allez, on clos la dernière compétence professionnelle de ce millésime 2023 avec la documentation du déploiement ! -Et heureusement, on n'attend pas de toi de maîtriser un serveur dans les détails, mais d'expliquer **comment** mettre en ligne ton projet. - -Tu as le droit d'utiliser des plateformes de déploiement en ligne comme Vercel, Netlify, Heroku, etc. -Mais la compréhension, même basique, d'un serveur Linux est quelque chose d'extrêmement apprécié et enrichissant. - -## 🤖 Les plateformes de déploiement en ligne - -Selon la plateforme utilisée, la procédure de déploiement peut varier. Certaines plateformes peuvent déployer automatiquement ton projet à partir de ton dépôt Git, d'autres nécessitent de passer par la ligne de commande pour `push` une branche spécifique sur le serveur de la plateforme. - -C'est à toi _(et ton équipe)_ de choisir la plateforme qui vous convient le mieux et de documenter la procédure de déploiement afin que tout le monde puisse s'y retrouver. - -## 🤝 Les serveurs mutualisés - -Beaucoup d'hébergeurs proposent des serveurs mutualisés, c'est-à-dire que plusieurs sites web partagent les ressources d'un même serveur _(même si tu n'es pas le responsable des autres sites hébergés sur le serveur)_. - -Il s'agit d'une solution moins coûteuse que les serveurs dédiés ou les VPS, mais qui peut être moins performante en fonction de la qualité de l'hébergeur. -Cependant, pour un site web de petite ou moyenne envergure, un serveur mutualisé peut suffire et surtout : il est souvent plus simple à gérer. - -<details> - <summary>Parenthèse éco-conception</summary> - - On peut également considérer que l'utilisation de serveurs mutualisés est plus écologique, car elle permet de mutualiser les ressources et de limiter le nombre de serveurs physiques nécessaires pour héberger des sites web. - - Moins de matériel physique = moins de consommation d'énergie = moins d'émissions de CO2. -</details> - -Mais attention, les serveurs mutualisés ne permettent pas de configurer entièrement le serveur _(par exemple, tu ne pourras pas installer un serveur Node.js sur un serveur mutualisé qui n'est pas prévu pour)_. -Il est donc important de bien se renseigner sur les fonctionnalités proposées par l'hébergeur avant de choisir un serveur mutualisé. - -## 🔨 Les serveurs dédiés et VPS - -Maintenant, le meilleur du meilleur : les serveurs dédiés et les VPS ! -Ça peut faire peur sur le papier car on devient l'unique gestionnaire et responsable du serveur, mais c'est certainement la meilleure façon de comprendre comment fonctionne un serveur web. - -La configuration la plus classique que l'on retrouvera sur un serveur dédié ou un VPS est la suivante : - -- Un système d'exploitation headless _(sans interface graphique, à l'ancienne ! 👴)_ comme Ubuntu Server, CentOS, Debian, etc. -- Un serveur web comme Apache, Nginx, ou Caddy -- Une ou plusieurs bases de données comme MySQL, PostgreSQL, MongoDB, etc. -- Un serveur de langage comme Node.js, PHP, Ruby, Python, etc. -- Un gestionnaire de processus comme PM2, Supervisor, etc. -- Un gestionnaire de paquets comme APT, YUM, etc. -- Un pare-feu comme UFW, iptables, etc. - -<details> - <summary>Dernière parenthèse éco-conception</summary> - - Les serveurs dédiés et les VPS sont souvent plus énergivores que les serveurs mutualisés, car ils sont allumés en permanence _(sauf configuration spécifique)_ et consomment plus d'énergie pour fonctionner. - - Sur le papier, ça sonne moins bien, mais dans le concret : un serveur dédié ou un VPS bien configuré peut être plus écologique qu'un serveur mutualisé mal configuré _(qui consomme plus d'énergie pour moins de performance)_. - Comme on dit souvent : - - <Admonition type="quote" title="Le problème se situe souvent entre la chaise et le clavier" /> - - Si tu recherches un hébergeur qui se veut éco-responsable _(bien plus que la moyenne)_ : Infomaniak est un excellent choix. - _(Non, je ne détiens aucune part chez eux, mais j'apprécie leur démarche et leur qualité de service donc un peu de pub gratuite ne fait pas de mal !)_ - - D'ailleurs, sur toute la partie RGPD : Infomaniak a une politique de confidentialité et de sécurité très sérieuse que tu peux retrouver [juste ici](https://www.infomaniak.com/fr/cgv/reglement-general-protection-donnees). - Et promis : elle est lisible et compréhensible, pas comme certaines politiques de confidentialité qui sont plus longues que l'intégrale de la saga Harry Potter. -</details> - -Avant d'arrêter de parler de serveurs à configurer soi-même, je me permets d'ouvrir une toute petite rubrique sur la mise en ligne d'applications tournant sur des ports autres que le 80 (ou 443 pour le HTTPS), comme on peut le faire avec un serveur Node.js. - -## 🚪 Les reverse proxies - -Un serveur web classique écoute sur les ports 80 et 443 pour les requêtes HTTP et HTTPS. -Sauf que ton application va probablement tourner sur d'autres ports, que ce soit 3000, 5000 ou je ne sais quel autre numéro. - -Notre objectif avec les reverse proxies, c'est de lier un domaine _(sur les ports 80 et 443)_ à un port interne spécifique de notre serveur. -C'est un peu comme une "pseudo-redirection", mais qui sera invisible pour l'utilisateur. - -### 📦 Nginx - -Nginx est un serveur web qui est souvent utilisé comme reverse proxy, notamment pour sa simplicité de configuration et sa syntaxe nettement moins verbeuse que celle d'Apache. - -Prenons l'exemple d'un serveur Node.js qui tourne sur le port 5000. - -<Admonition type="example" title="Configuration Nginx pour un reverse proxy"> - ```nginx showLineNumbers - # Ensemble de configurations pour un serveur Nginx - server { - listen 80; # Port 80 pour les requêtes HTTP - listen [::]:80; # Port 80 pour les requêtes HTTP en IPv6 - server_name mon-domaine.com; # Ton domaine qui pointe vers ton serveur web qui fait tourner ton application Node.js - - # Configuration pour le reverse proxy, qui va rediriger les requêtes vers le port 5000 - location / { - proxy_pass http://0.0.0.0:5000; # Redirige les requêtes vers le port 5000 (interne au serveur) - proxy_set_header X-Forwarded-For $remote_addr; # Envoie l'adresse IP du client à l'application Node.js dans le header - proxy_set_header Host $http_host; # Envoie le nom de domaine à l'application Node.js dans le header - } - } - ``` - - Oui, c'est aussi simple que ça ! Alors effectivement, il y a d'autres configurations possibles, mais pour un usage basique : c'est tout ce dont tu as besoin. -</Admonition> - - -### 📦 Caddy - -Caddy est un serveur web qui se veut simple à configurer et qui propose de nombreuses fonctionnalités "out-of-the-box", comme la gestion automatique des certificats SSL _(gratuits)_ avec Let's Encrypt. - -Pour le coup je n'ai pas encore eu l'occasion de faire des tests avec Caddy, mais je sais que la configuration pour un reverse proxy est extrêmement simple, voire plus simple que celle de Nginx. - -### 📦 Apache - -On ne le présente plus, Apache est certainement **le** serveur web le plus utilisé au monde. -Au delà d'être d'être installé par défaut avec toutes les solutions type Wamp, Xampp, Mamp, etc., on utilise régulièrement Apache sur de vrais serveurs. - -Sa configuration est un peu plus verbeuse que celle de Nginx, mais si ça t'intéresse de découvrir Apache : je t'invite à consulter la [documentation officielle](https://httpd.apache.org/docs/2.4/). - -## ❓ Les autres solutions - -Il existe d'autres solutions pour déployer une application web, mais je pense que tu as déjà pas mal de lecture pour aujourd'hui. - -Par contre, il y a **une solution** que je te recommande de ne **jamais utiliser** : les serveurs FTP. -Alors oui, c'est pratique, c'est simple, mais on attend de toi une approche de développeur ! - -Tu as de nombreux outils spécialement conçus pour le déploiement, l'automatisation, la gestion de versions, etc. -C'est ton rôle d'utiliser ces outils pour déployer ton projet, et non pas de faire du simple drag-n-drop de fichiers via FTP et attendre 45 minutes pour transférer un dossier de 10 Mo _(oui, j'ai déjà vu ça et même bien pire que ça quand on se souvient qu'on a des node_modules ou les dépendances PHP dans le dossier vendor 🤡)_. - -## 🎯 Critères d'évaluation - -- La procédure de déploiement est rédigée ou mise à jour -- Les scripts de déploiement sont écrits et documentés -- Le système de veille permet de suivre les évolutions technologiques et les problématiques de sécurité liées au déploiement d'une application dynamique web ou web mobile, y compris dans le cadre d'une démarche DevOps - ---- - -## 🧠 Documentations - -- [Nginx](https://nginx.org/en/docs/) -- [Caddy](https://caddyserver.com/docs/) -- [Apache](https://httpd.apache.org/docs/2.4/) -- [Let's Encrypt](https://letsencrypt.org/docs/) - -## 🛠️ Outils - -- [Infomaniak](https://www.infomaniak.com/fr) -- [Vercel](https://vercel.com/) -- [Netlify](https://www.netlify.com/) -- [Heroku](https://www.heroku.com/) diff --git a/old/docs/titres-professionnels/DWWM/AT2/_category_.json b/old/docs/titres-professionnels/DWWM/AT2/_category_.json deleted file mode 100644 index 1163cd5..0000000 --- a/old/docs/titres-professionnels/DWWM/AT2/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Activité Type 2", - "position": 4 -} diff --git a/old/docs/titres-professionnels/DWWM/_category_.json b/old/docs/titres-professionnels/DWWM/_category_.json deleted file mode 100644 index 9fe6e05..0000000 --- a/old/docs/titres-professionnels/DWWM/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "🧑‍💻 DWWM", - "position": 2 -} diff --git a/old/docs/titres-professionnels/DWWM/intro.mdx b/old/docs/titres-professionnels/DWWM/intro.mdx deleted file mode 100644 index 03e4176..0000000 --- a/old/docs/titres-professionnels/DWWM/intro.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -sidebar_position: 1 -title: "Résumé" -description: "Résumé du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m04, actif depuis septembre 2023)." -tags: - - DWWM ---- - -import Admonition from "@theme/Admonition"; - -# Contenu du titre professionnel DWWM - -Nom complet du titre : `Développeur Web et Web Mobile` -Code titre : `TP-01280` -Code millésime : `04` - -## Documents officiels - -- [📄 REAC - Référentiel Emploi Activités Compétences _(02/07/2024)_](https://www.banque.di.afpa.fr/EspaceEmployeursCandidatsActeurs/Download.aspx?i=7343fd7e-6491-49ba-8a6c-1dabffdbdb1d&d=1) -- [📄 RE - Référentiel d'Évaluation _(02/07/2024)_](https://www.banque.di.afpa.fr/EspaceEmployeursCandidatsActeurs/Download.aspx?i=442c27b5-0394-4e85-ace8-fe801ad6d229&d=1) - -> Source(s) : -> -> - [🔗 Banque de ressources numériques de l'AFPA](https://www.banque.di.afpa.fr/EspaceEmployeursCandidatsActeurs/EGPResultat.aspx?cr=d%C3%A9veloppeur%20web&cd=&ct=01280m04&type=t) - -## Activités types et compétences professionnelles - -### 📚 Activité type 1 - Développer la partie front-end d'une application web ou web mobile sécurisée - -- [CP 1 - Installer et configurer son environnement de travail en fonction du projet web ou web mobile](./AT1/CP1) -- [CP 2 - Maquetter des interfaces utilisateur web ou web mobile](./AT1/CP2) -- [CP 3 - Réaliser des interfaces utilisateur statiques web ou web mobile](./AT1/CP3) -- [CP 4 - Développer la partie dynamique des interfaces utilisateur web ou web mobile](./AT1/CP4) - -### 📚 Activité type 2 - Développer la partie back-end d'une application web ou web mobile sécurisée - -- [CP 5 - Mettre en place une base de données relationnelle](./AT2/CP5) -- [CP 6 - Développer des composants d'accès aux données SQL et NoSQL](./AT2/CP6) -- [CP 7 - Développer des composants métier coté serveur](./AT2/CP7) -- [CP 8 - Documenter le déploiement d'une application dynamique web ou web mobile](./AT2/CP8) - -## Compétences transverses - -- Communiquer en français et en anglais -- Mettre en oeuvre une démarche de résolution de problème -- Apprendre en continu - -## Déroulé de l'examen - -<Admonition type="info" title="Déroulé relatif au passage de l'épreuve dans sa globalité"> - En cas de repassage d'un <abbr title="Certificat de Compétences Professionnelles">CCP</abbr>, - se référer au [Référentiel d'Évaluation](https://www.banque.di.afpa.fr/EspaceEmployeursCandidatsActeurs/Download.aspx?i=442c27b5-0394-4e85-ace8-fe801ad6d229&d=1) - pour connaître les modalités de l'épreuve : - - - Pages 17 et 18 pour l'AT 1 - - Pages 19 et 20 pour l'AT 2 -</Admonition> - -**Durée totale de l'examen** : 2h _(dont 1h30 de soutenance face au jury)_ - -1. Questionnaire professionnel _(30 minutes, sans présence du jury)_ -2. Présentation d'un projet réalisé en amont de la session _(35 minutes, face au jury)_ -3. Entretien technique _(40 minutes, face au jury)_ -4. Entretien final _(15 minutes, face au jury)_ diff --git a/old/docs/titres-professionnels/DWWM/soutenance.mdx b/old/docs/titres-professionnels/DWWM/soutenance.mdx deleted file mode 100644 index bbc3804..0000000 --- a/old/docs/titres-professionnels/DWWM/soutenance.mdx +++ /dev/null @@ -1,196 +0,0 @@ ---- -sidebar_position: 2 -title: "La soutenance DWWM" -description: "Tu prépares un TP DWWM et tu te demandes à quoi t'attendre pour la soutenance ? Voici quelques conseils pour te préparer efficacement." ---- - -import Admonition from "@theme/Admonition"; - -# 📜 La soutenance du titre professionnel DWWM - -La soutenance est la derrière étape de ton titre professionnel DWWM. -C'est un moment important qui te permet de présenter ton travail et connaissances devant un jury. - -C'est l'occasion de montrer tout ce que tu as appris et de démontrer tes compétences. - -## 📝 Les documents officiels - -Avant d'aller plus loin dans la préparation de ta soutenance, je te conseille de bien lire les documents officiels de la certification. -Sans ces informations, tu ne sauras pas ce que le jury attend de toi et tu risques de passer à côté de points importants. - -Tu pourras les retrouver facilement : -- [Memento - Résumé DWWM](/titres-professionnels/DWWM/intro) -- [Banque de ressources numériques de l'AFPA](https://www.banque.di.afpa.fr/EspaceEmployeursCandidatsActeurs/EGPResultat.aspx?cr=d%C3%A9veloppeur%20web&cd=&ct=01280m04&type=t) - -## 🤔 À quoi ressemble une soutenance - -Avant de parler de la soutenance elle-même, il est important de savoir à quoi t'attendre. - -Tu seras seul·e face à un jury composé de professionnels du secteur. -Ce jury cherche à évaluer tes compétences, ta capacité à exercer professionnellement et ta compréhension du métier. - -En soit : le jury est un peu comme un RH _(gentil et bienveillant)_, mais avec des compétences techniques ! - -Lors de ta soutenance, tu seras placé·e dans une salle close avec ton jury. -Sauf aménagement d'épreuve spécifique, tu n'auras pas la possibilité d'être accompagné·e. - -## 📅 Comment se déroule une soutenance - -La soutenance se déroule en plusieurs étapes, qu'on appelera "épreuves" : - -1. 🏴󠁧󠁢󠁥󠁮󠁧󠁿 **Questionnaire professionnel** -2. 📽️ **Présentation d'un projet réalisé en amont de la session** -3. 🔨 **Entretien technique** -4. 💬 **Entretien final** - -Chacune de ces épreuves a un objectif précis et permet au jury d'évaluer tes compétences, -pour s'assurer que tu es prêt·e à exercer le métier de développeur web. - -### 🏴󠁧󠁢󠁥󠁮󠁧󠁿 Questionnaire professionnel - -Cette épreuve est réalisée au tout début de la journée, avant même que tu ne rencontres le jury. - -Il s'agit d'une épreuve écrite d'**anglais**, qui te permettra de montrer ta capacité à **comprendre** -l'anglais et à **répondre** à des questions techniques _(toujours en anglais)_. - -Dedans tu y retrouveras une **documentation technique rédigée en anglais**, que tu devras lire et comprendre pour répondre aux questions posées. -Ces questions sont en lien avec le métier de développeur web et les technologies utilisées dans le milieu _(pas forcément celles que tu as étudiées)_. - -Les réponses seront déclinées de deux manières : -- Deux questions fermées à choix unique posées en français _(QCM)_ -- Deux questions ouvertes posées en anglais _(réponse libre et courte, à rédiger en anglais)_ - -L'épreuve se déroule sur une durée de **30 minutes**, supervisée et encadrée par un surveillant. - -### 📽️ Présentation d'un projet réalisé en amont de la session - -À partir de maintenant : tu es face au jury ! 😱 - -Pas de panique, ton jury est là pour **t'aider** et **te guider**. -Il ne cherchera pas à te piéger, mais à évaluer tes compétences. - -Mais alors, qu'est-ce que tu vas devoir présenter ? -_(Oui, le titre de cette épreuve est très explicite donc bof bof l'effet de suspense...)_ - -Tu vas devoir présenter un projet que tu as réalisé _(en solo ou en équipe)_. -Le projet présenté n'est pas nécessairement un projet "réel" : il peut s'agir d'un projet fictif, mais qui doit être **crédible**. - -Et même au delà d'être crédible, il doit répondre aux critères d'évaluation du référentiel de certification. - -<Admonition type="quote" title="Mais mon projet ne couvre pas toutes les compétences professionnelles..."> - Si ton projet ne couvre pas toutes les compétences professionnelles, ce n'est pas grave. - Tu n'auras juste pas ton titre professionnel. - - ... Non, je plaisante ! 😅 - - Tu as tout à fait le droit de présenter **plusieurs projets différents** pour te permettre de couvrir l'ensemble des compétences professionnelles ! -</Admonition> - -Pour en revenir sur les compétences à couvrir avec les projets présentés, voici les compétences **obligatoires** : -- [Maquetter des interfaces utilisateur web ou web mobile _(CP 2)_](/titres-professionnels/DWWM/AT1/CP1) -- [Réaliser des interfaces utilisateur web statiques web ou web mobile _(CP 3)_](/titres-professionnels/DWWM/AT1/CP2) -- [Développer la partie dynamique des interfaces utilisateur web ou web mobile _(CP 4)_](/titres-professionnels/DWWM/AT1/CP3) -- [Mettre en place une base de données relationnelle _(CP 5)_](/titres-professionnels/DWWM/AT2/CP5) -- [Développer des composants d'accès aux données SQL et NoSQL _(CP 6)_](/titres-professionnels/DWWM/AT2/CP6) -- [Développer des composants métier côté serveur _(CP 7)_](/titres-professionnels/DWWM/AT2/CP7) - -Comme tu peux le constater, il manque les CP 1 et 8. -En même temps, c'est normal : ce n'est pas le projet qui couvre ces compétences, mais la présentation de ton projet et ton entretien avec le jury ! - -Tu disposeras d'un total de **35 minutes** pour présenter ton projet. - -### 🔨 Entretien technique - -L'épreuve tant redoutée : l'entretien technique. - -À tort, car en réalité ton jury va chercher à cocher des cases pour valider tes compétences. -Il ne va pas chercher à te piéger, mais à t'aider à montrer ce que tu sais faire et ce que tu as compris ! - -L'entièreté de l'entretien technique se déroule à l'oral, où l'on ne te demandera pas de coder en direct. -Par contre, ton jury peut très bien te demander de **résoudre un problème** ou **expliquer un concept**, voire même de **faire une requête SQL avec jointure**. - -La raison est simple. Ce n'est pas parce que tu utilises au quotidien des outils comme des frameworks ou ORM que tu comprends comment ils fonctionnent et ce qu'ils font derrière. -Si demain ton entreprise décide d'arrêter d'utiliser un ORM pour des raisons de performance, tu dois être en mesure de comprendre comment faire une requête SQL. - -Mais rassure-toi, si cette épreuve est redoutée, c'est aussi parce qu'elle est très formatrice. -Ton jury te donnera des informations et conseils pour t'aider à évoluer et progresser ! - -Pour cette épreuve, tu disposes de **40 minutes**. - -### 💬 Entretien final - -Et maintenant on peut souffler ! La partie la plus "cool" de la soutenance arrive. -Bon, ça reste une épreuve à part entière, mais c'est la plus "cool" quand même. - -L'entretien final est une discussion avec le jury, où tu pourras poser des questions et échanger avec eux. -Ici on ne parlera pas de technique, mais de ton projet professionnel, de tes ambitions, de tes envies... - -Tu l'auras compris : c'est l'occasion de montrer que tu es motivé·e et que tu as envie d'apprendre et de progresser. - -Si tu es déjà salarié·e, n'hésite pas à parler de ton expérience, -du contexte humain qu'il y a et des projets sur lesquels tu as travaillé _(en faisant attention à respecter la confidentialité des informations)_. - -Ton jury cherchera de son côté à vérifier que tu ais une bonne vision du métier de développeur web et que tu es prêt·e à exercer ce métier d'un point de vue professionnel. - -## 🗓️ Planning type - -Maintenant tu te demandes peut-être comment se déroule une journée de soutenance type, non ? - -Même si chaque organisme organisatrice de certification peut avoir son propre planning, -voici un exemple de planning type relativement léger et conventionnel : - -| Début | Fin | Objet | Détails | -| ----- | ----- | ------------------------------- | -------------------------------------------------------------- | -| 09h00 | 09h30 | Accueil | Accueil des candidats et vérification des identités | -| 09h30 | 10h00 | **Questionnaire professionnel** | Épreuve écrite d'anglais | -| 10h00 | 10h30 | Pause | Moment de détente et de décompression | -| 10h30 | 12h00 | **Soutenance** | Présentation du projet, entretien technique et entretien final | -| 12h00 | 13h30 | Pause déjeuner | Moment de détente et de décompression | -| 13h30 | 15h00 | **Soutenance** | Présentation du projet, entretien technique et entretien final | -| 15h15 | 16h45 | **Soutenance** | Présentation du projet, entretien technique et entretien final | - -<Admonition type="tip" title="Les horaires annoncées"> - Les horaires annoncées sont donnés à titre **indicatif** et peuvent varier en fonction de l'organisme organisateur de la certification. - Réfère-toi aux **informations communiquées par l'organisme** pour connaître les **horaires exacts** et les **modalités de déroulement** de la certification. - - Mais ce qu'il faut bien avoir en tête, c'est que même le planning officiellement annoncé peut ne pas être respecté à la minute près. - - Un jury peut très bien décider de prendre moins de temps pour une autre à condition que le jury ait pu laisser le temps au candidat de montrer ses compétences, - sans le brusquer, le mettre en difficulté ou l'empêcher de s'exprimer et surtout : **avec l'accord du candidat**. - - Dans le cas contraire, le candidat peut signaler au surveillant _(ou responsable de session)_ - que le jury ne lui a pas permis de montrer ses compétences dans les meilleures conditions. - - Cependant, il ne pourra pas accorder plus de temps que prévu pour une épreuve, car cela pourrait être considéré comme un avantage injuste pour le candidat. - Par équité, le jury doit respecter le temps imparti pour chaque candidat. -</Admonition> - -<Admonition type="info" title="Les durées d'épreuves"> - Si tu te poses ce genre de question : - _"Si je boucle ma présentation 10 minutes en avance, j'aurais 10 minutes de plus pour l'entretien technique ?"_ - - La réponse est **non**. - Les durées d'épreuves sont des temps **maximaux** et ne peuvent pas être dépassés. - - Essaye au contraire du profiter du temps qu'il te reste pour présenter des éléments supplémentaires, montrer des fonctionnalités que tu n'as pas eu le temps de montrer, etc. -</Admonition> - -## 🧑‍⚖️ Les résultats - -Forcément, tu te demandes comment tu vas savoir si tu as réussi ou non ! -Pas de chance, tu n'auras aucune information sur place. - -Tant que l'information n'est pas rendue officielle par la [DREETS](https://dreets.gouv.fr/), aucune information ne peut être donnée. - -Les délais sont variables, mais entre le jour de la soutenance et la réception des résultats, il peut s'écouler entre **3 et 6 semaines**. - -<Admonition type="tip" title="Et si je n'ai pas mon titre professionnel ?"> - Si tu n'as pas ton titre professionnel, ce n'est pas la fin du monde. - Tu pourras te représenter à la certification selon les modalités de l'organisme organisateur de la certification. - - Tu as un total de **12 mois** pour te représenter à la certification, à partir de la date de la première session de certification. - Passé ce délai, tu devras repasser par la case formation ou t'inscrire en VAE si tu remplis les conditions. - - Dans le cas où tu as partiellement validé ton titre professionnel, tu pourras te représenter uniquement sur les compétences non validées. - Tu n'auras donc pas à repasser l'intégralité de la certification. -</Admonition> \ No newline at end of file diff --git a/old/docs/titres-professionnels/_category_.json b/old/docs/titres-professionnels/_category_.json deleted file mode 100644 index 8503b16..0000000 --- a/old/docs/titres-professionnels/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "🎓 Titres professionnels", - "position": 3, - "link": { - "type": "generated-index", - "description": "Tu retrouveras ici l'ensemble des titres professionnels couverts par la plateforme Memento Dev." - } -} diff --git a/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1.mdx b/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1.mdx deleted file mode 100644 index a590f56..0000000 --- a/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP1.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -sidebar_position: 1 -title: "CP 1" -description: "Synthèse de la CP 1 \"Maquetter une application\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)." ---- - -import Admonition from '@theme/Admonition'; - -# Maquetter une application - -<Admonition type="warning" title="Attention, tu es en train de consulter un référentiel expiré !"> - [Aller sur le contenu du nouveau référentiel en vigueur](/titres-professionnels/DWWM/intro) -</Admonition> - -## 📚 Références - -- REAC _(mise à jour du 27/04/2018)_, pages 13 et 14 -- RC _(mise à jour du 19/04/2018)_, page 9 - -## 📋 En résumé - -Dans cette compétence professionnelle, tu devras démontrer tes compétences sur la conception du front-end, à savoir : - -- La réalisation d'un cahier des charges -- La conception des wireframes _(desktop et mobile)_, réalisés à partir des besoins du clients _(ou user stories)_ puis des maquettes en appliquant la charte graphique -- Arborescence des pages - -Comme tu peux le constater, ici il n'est pas question de code : uniquement de la conception de l'interface utilisateur et de son ergonomie 😉 - -Avant d'enchaîner avec les critères d'évaluation et la prochaine compétence professionnelle, voici quelques informations complémentaires qui sont importantes. - -## ➕ Informations complémentaires - -Bien qu'on soit tous tentés de se jeter directement dans le code, il est important de bien maquetter son application avant de commencer à coder. -Surtout si tu travailles en équipe, cela permet de bien comprendre les besoins du client et de s'assurer que tout le monde est sur la même longueur d'onde. - -Voici les étapes à suivre pour bien maquetter son application : - -1. **Récupération des besoins du client** - - Si tu as des user stories, c'est le moment de les relire - - Si tu n'as pas de user stories, c'est le moment de les rédiger à partir des besoins du client - - C'est aussi à ce moment que l'on rédige le cahier des charges -2. **Arborescence des pages** - - Elle permet de définir les liens entre les différentes pages de l'application, comme un plan de site - - Pense à distinguer les pages accessibles par tous des pages accessibles uniquement par les utilisateurs connectés _(par exemple)_ -3. **Création des zonings** - - Ils permettent de définir les zones de l'application, sans définir le contenu -4. **Conception des wireframes** - - Ils complètent les zonings en définissant le contenu des zones -5. **Création de la charte graphique** - - Elle permet de définir les couleurs, les polices, les icônes, etc. -6. **Conception des maquettes** - - Elles permettent de visualiser l'application finale, en appliquant la charte graphique définie plus tôt sur les wireframes déjà réalisés -7. **Prototypage** - - Il permet de simuler l'application pour valider l'expérience utilisateur - - Tu as plusieurs outils pour réaliser des prototypes, comme [Figma](https://www.figma.com/fr-fr/), [Adobe XD](https://www.adobe.com/fr/products/xd.html), [Sketch](https://www.sketch.com/), etc. - -Ce n'est qu'une fois toutes ces étapes réalisées que tu pourras te lancer dans le code, pour l'intégration de l'interface utilisateur. - -### ⚙️ Ergonomie - -- On essaye de ne pas perdre l'utilisateur avec une interface trop complexe -- On essaye de le guider dans son parcours utilisateur -- On lui évite de devoir réfléchir où se trouve l'information qu'il recherche en minimisant le nombre de clics - -### 👓 Accessibilité - -- On évite les couleurs trop proches ou trop peu contrastées _(<abbr title="Web Content Accessibility Guidelines">WCAG</abbr>)_ -- On prévoit des alternatives textuelles pour les images, vidéos et autres médias - -<Admonition type="info" title="Contrastes des couleurs"> - Pour vérifier si les couleurs de ton site respectent les normes d'accessibilité, tu peux utiliser des outils comme [WebAim Contrast Checker](https://webaim.org/resources/contrastchecker/), [Contrast Checker](https://contrastchecker.com/) ou encore [Coolors](https://coolors.co/contrast-checker/112a46-acc8e5). - - L'idée est de viser le niveau AA au strict minimum et idéalement le niveau AAA. - - Tu as également des extensions pour Firefox et Chrome qui te permettent de vérifier les contrastes directement sur ton site : - - - [_(Firefox)_ <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> Contrast Checker, par Jorge Rumoroso](https://addons.mozilla.org/fr/firefox/addon/wcag-contrast-checker) - - [_(Chrome)_ <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> Color Contrast Checker, par Jorge Rumoroso](https://chromewebstore.google.com/detail/wcag-color-contrast-check/plnahcmalebffmaghcpcmpaciebdhgdf) -</Admonition> - -## 🎯 Critères d'évaluation - -- La maquette prend en compte les spécificités fonctionnelles décrites dans les cas d'utilisation ou les scénarios utilisateur -- La maquette est conforme à l'expérience utilisateur et à l'équipement ciblé -- La maquette respecte les principes de sécurisation d'une interface utilisateur -- Le contenu de la maquette, pour la partie visible, est rédigé, en français ou en anglais, de façon adaptée à l'interlocuteur et sans faute - -## 🤯 Aller plus loin _(hors référentiel)_ - -Même si le référentiel ne le mentionne pas, il est important de bien concevoir les wireframes _(desktop et mobile)_ -pour bien comprendre les besoins du client et les retranscrire dans les maquettes. - -Au delà de la prise en compte des besoins du client, il est important de prendre en compte les spécificités des utilisateurs, -allant de l'ergonomie à l'accessibilité. - ---- - -## 🧠 Documentation - -- [Wikipédia - Wireframe _(design)_](https://fr.wikipedia.org/wiki/Wireframe_(design)) -- [Atlassian - User stories](https://www.atlassian.com/fr/agile/project-management/user-stories) - -## 🛠️ Outils - -- [Figma - Outil de création de design](https://www.figma.com/fr-fr/) -- [Adobe XD - Outil de design et de prototypage](https://www.adobe.com/fr/products/xd.html) -- [Sketch - Outil de design](https://www.sketch.com/) -- [GlooMaps - Générateur d'arborescence de pages](https://www.gloomaps.com/) -- [WebAim Contrast Checker](https://webaim.org/resources/contrastchecker/) -- [Contrast Checker](https://contrastchecker.com/) -- [Coolors - Contrast Checker](https://coolors.co/contrast-checker/112a46-acc8e5) \ No newline at end of file diff --git a/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2.mdx b/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2.mdx deleted file mode 100644 index 4973aff..0000000 --- a/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP2.mdx +++ /dev/null @@ -1,129 +0,0 @@ ---- -sidebar_position: 2 -title: "CP 2" -description: "Synthèse de la CP 1 \"Réaliser une interface utilisateur web statique et adaptable\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)." ---- - -import Admonition from '@theme/Admonition'; - -# Réaliser une interface utilisateur web statique et adaptable - -<Admonition type="warning" title="Attention, tu es en train de consulter un référentiel expiré !"> - [Aller sur le contenu du nouveau référentiel en vigueur](/titres-professionnels/DWWM/intro) -</Admonition> - -## 📚 Références - -- REAC _(mise à jour du 27/04/2018)_, pages 15 et 16 -- RC _(mise à jour du 19/04/2018)_, page 9 - -## 🚀 Contexte - -Ça y est, on peut enfin démarrer le code ! 🚀 -À cette étape, on ne parle encore que d'interface statique, c'est-à-dire sans interaction avec l'utilisateur. - -Pour résumer : HTML et CSS sont tes amis pour cette compétence professionnelle ! - -<Admonition type="quote" title="Le projet que je présente contient du JavaScript, est-ce un problème ?"> -Absolument pas ! C'est même rassurant, puisque ce sera nécessaire pour la suite. -Cependant pour cette compétence professionnelle, on se concentre sur l'interface statique. -Si ton projet contient du JS, voire même qu'il est fait avec React, Angular ou Vue.js, ne te concentre pas sur cet aspect là. - -Réserve toutes les informations croustillantes pour la prochaine compétence professionnelle 😉 -</Admonition> - -Maintenant qu'on sait que JS n'est pas attendu pour cette compétence professionnelle, parlons un peu de ce qui est attendu de toi. - -Quand on parle d'interface utilisateur, on parle de la partie visible de l'application. -Pour ce qui est du "statique et adaptable", on parle de la capacité de l'interface à s'adapter à différents supports _(desktop, tablette, mobile)_. - -Si je te parle de "responsive design", ça te dit quelque chose ? -L'idée va être de faire en sorte que l'interface s'adapte à la taille de l'écran de l'utilisateur et pour ça, tu as plusieurs solutions : - -- Les **media queries** en CSS -- Les **frameworks CSS** comme TailwindCSS, Bootstrap, Bulma, etc. -- Les **grilles CSS** _(Flexbox, Grid)_ - -<Admonition type="warning" title="Utilisation des frameworks CSS"> -Les frameworks CSS sont très pratiques pour gagner du temps, mais attention à ne pas les utiliser comme une béquille. -Il est important de comprendre comment ils fonctionnent pour ne pas se retrouver bloqué si un problème survient ou si demain, -tu dois travailler sur un projet qui n'utilise pas de framework. -</Admonition> - -Allez, c'est presque terminé pour cette <abbr title="Compétence Professionnelle">CP</abbr>, accroche-toi ! 🫠 - -Si on résume ce que tu as actuellement sous la main avec cette <abbr title="Compétence Professionnelle">CP</abbr>, tu as déjà fait : - -- Une structure de page en HTML _(ou JSX si tu utilises React par exemple)_ -- Une mise en forme de cette structure en CSS -- Une adaptation de cette mise en forme en fonction de la taille de l'écran de l'utilisateur - -Il ne reste alors qu'un seul détail à mettre en place : le référencement ! 📈 - -Heureusement on ne te demande pas d'être un expert <abbr title="Search Engine Optimization">SEO</abbr>, mais de maîtriser la sémantique et son impact sur le référencement. Si ta page est remplie de `<div>` et de `<span>`, tu peux être sûr que ton jury va te poser beaucoup de questions sur la sémantique. -Pourquoi ? Parce que ces deux balises n'ont aucun impact sur le référencement, rendant une page difficilement référençable et que ton jury a besoin de savoir si tu maîtrises ou non la sémantique HTML. - -Au delà de la sémantique et toujours dans l'optique du référencement, il est également attendu de toi que tu saches comment fonctionne le **SEO** _(Search Engine Optimization)_ dans les grandes lignes et comment référencer une page web _(`<meta name="description">`, `<title>`, etc.)_. - -Ça te fait un peu peur tout ça ? Il est probable qu'entre le jour où tu lis ces lignes et le jour de ta soutenance que tu n'aies pas le temps de faire toutes les modifications sur ton site : **ce n'est pas grave !** - -Bien sûr, il est préférable que les projets illustrés et présentés durant ta soutenance contiennent toutes ces notions et bonnes pratiques, mais tu peux très bien te baser sur tes connaissances et pas seulement sur ce qui a déjà été réalisé. - -<Admonition type="warning" title="Styles par défaut des navigateurs"> -Peut-être as-tu déjà entendu parler des styles par défaut des navigateurs ? -Ce qui permet à des éléments HTML de s'afficher d'une certaine manière sans que tu aies à les styliser. - -Par exemple, un titre `<h1>` sera plus gros qu'un titre `<h2>`, qui sera plus gros qu'un titre `<h3>`, etc. - -Cependant, il est important de ne pas s'appuyer sur ces styles par défaut pour la mise en forme de ton site. - -La raison est simple : -Imagine que dans les prochaines versions de navigateurs, ces styles par défaut changent. -Ton site ne sera plus du tout le même et tu auras beaucoup de travail pour tout remettre en ordre. - -Mon conseil est alors de **toujours** définir tes propres styles pour être sûr que ton site reste tel -que tu l'as imaginé et dans la mesure du possible, faire un reset CSS pour t'assurer que tous les styles -par défaut des navigateurs soient "inexistants". -</Admonition> - -<Admonition type="warning" title="Correspondance des maquettes avec l'intégration"> -Il est important que l'intégration de ton site web corresponde à la maquette que tu as réalisée lors de la première compétence professionnelle. - Si tu as des différences entre la maquette et l'intégration, tu risques de "t'attirer les foudres" de ton jury _(en toute bienveillance bien sûr 😉)_. - - Si tu as des différences, il est préférable de les expliquer lors de ta soutenance pour montrer que tu as conscience de ces différences et que tu comprends l'enjeu de la cohérence entre la maquette et l'intégration. - - Si tu as le temps, essaye de refaire l'intégralité de la <abbr title="Compétence Professionnelle">CP</abbr> 1 pour tous les documents de maquettage, à minima pour les maquettes desktop et mobile que tu présentes lors de ta soutenance _(non, ne refais pas les 3123 pages d'un coup, ça serait un peu trop 😅)_. -</Admonition> - -## ➕ Informations complémentaires - -Au delà du simple terme "responsive design", on parle régulièrement d'une bonne pratique qui est le **mobile first**. -Le mobile first consiste à concevoir en priorité l'interface pour les mobiles, puis de l'adapter pour les tablettes et les ordinateurs. - -Cet ordre permet de s'assurer que l'interface est bien adaptée pour les mobiles, qui sont les appareils les plus utilisés pour naviguer sur le web. _(Et oui, on est en 2023, les mobiles ont pris le dessus sur les ordinateurs 😉)_ - -**Anecdote inutile _(donc indispensable)_ :** -> Selon [Statista](https://fr.statista.com/infographie/31588/trafic-web-en-france-selon-le-support-utilise-pour-se-connecter-mobile-ordinateur-tablette/#:~:text=Utilisation%20d'Internet&text=Comme%20l'indique%20notre%20graphique,de%203%20%25%20sur%20une%20tablette.), en 2022/2023, 50.7% du trafic web en France était réalisé depuis un mobile, contre 46.7% depuis un ordinateur et 2.6% depuis une tablette. - -## 🎯 Critères d'évaluation - -- L'interface est conforme à la maquette de l'application -- Les bonnes pratiques de structuration sont respectées y compris pour le web mobile -- Les pages web s'adaptent à la taille de l'écran -- Le site respecte les règles de référencement naturel -- La démarche de recherche permet de résoudre un problème technique ou de mettre en œuvre une nouvelle fonctionnalité -- La documentation technique liée aux technologies associées, rédigée en langue anglaise, est comprise (sans contre-sens, ...) - -## 🤯 Aller plus loin _(hors référentiel)_ - -Si tu as lu les informations complémentaires de la <abbr title="Compétence Professionnelle">CP</abbr> 1, tu as déjà une idée de ce que je vais te dire ici... 😏 -Tu te rappelles du terme <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> ? - -Si ce n'est pas le cas, je t'invite à consulter la section "Aller plus loin" de la <abbr title="Compétence Professionnelle">CP</abbr> 1 pour en savoir plus sur l'accessibilité web. - ---- - -## 🧠 Documentation - -- [MDN - Responsive Design](https://developer.mozilla.org/fr/docs/Learn/CSS/CSS_layout/Responsive_Design) -- [MDN - Media Queries](https://developer.mozilla.org/fr/docs/Web/CSS/Media_Queries/Using_media_queries) diff --git a/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3.mdx b/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3.mdx deleted file mode 100644 index e6f191a..0000000 --- a/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP3.mdx +++ /dev/null @@ -1,125 +0,0 @@ ---- -sidebar_position: 3 -title: "CP 3" -description: "Synthèse de la CP 3 \"Développer une interface utilisateur web dynamique\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)." ---- - -import Admonition from '@theme/Admonition'; - -# Développer une interface utilisateur web dynamique - -<Admonition type="warning" title="Attention, tu es en train de consulter un référentiel expiré !"> - [Aller sur le contenu du nouveau référentiel en vigueur](/titres-professionnels/DWWM/intro) -</Admonition> - -## 📚 Références - -- REAC _(mise à jour du 27/04/2018)_, pages 17 et 18 -- RC _(mise à jour du 19/04/2018)_, page 9 - -## 🚀 Contexte - -Et maintenant que tout est fait pour la partie statique, il va falloir mettre en place une partie dynamique ! - -<Admonition type="quote" title="Mais... comment je peux faire ET du statique, ET du dynamique ?"> - Pas de panique, c'est très simple ! - - En réalité, toutes les pages peuvent avoir du JavaScript sans souci, mais il est important de ne pas parler de JavaScript dans la partie statique. - Par contre, vu qu'ici on parle de la <abbr title="Compétence Professionnelle">CP</abbr> 3 et donc de contenu dynamique, JavaScript prend toute son importance ! Tu peux tout à fait te baser sur la même page que la précédente et parler maintenant des interactions utilisateurs 😉 -</Admonition> - -<Admonition type="info" title="Petit rappel"> - En dehors de l'aspect statique, la <abbr title="Compétence Professionnelle">CP</abbr> 3 se base sur tous les points de la <abbr title="Compétence Professionnelle">CP</abbr> 2, donc référencement et responsive ! -</Admonition> - -Si tu as utilisé des requêtes AJAX pour récupérer des données, c'est le moment de les mettre en avant avec des extraits de code commentés pour expliquer leur fonctionnement ! - -<Admonition type="example" title="Exemple de connexion avec React"> - ```tsx showLineNumbers - import React, { useState } from 'react'; - - // On crée un état initial pour notre formulaire - const initialState = { - email: '', - password: '', - }; - - const LoginForm = () => { - const [form, setForm] = useState(initialState); - - const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => { - // On récupère le nom et la valeur de l'input qui a déclenché l'événement - const { name, value } = event.target; - setForm({ ...form, [name]: value }); - }; - - const handleSubmit = async (event: React.FormEvent<HTMLFormElement>) => { - // On empêche le formulaire de se soumettre et donc de recharger la page - event.preventDefault(); - - // On peut maintenant envoyer les données du formulaire à notre API - const response = await fetch('/api/login', { method: 'POST', body: JSON.stringify(form) }); - const data = await response.json(); - - // On peut ensuite traiter la réponse de l'API - // ... - }; - - return ( - <form onSubmit={handleSubmit}> - <label htmlFor="email">Email</label> - <input - id="email" - type="email" - name="email" - value={form.email} - onChange={handleChange} - placeholder="jean.dupont@exemple.fr" - /> - - <label htmlFor="password">Mot de passe</label> - <input - id="password" - type="password" - name="password" - value={form.password} - onChange={handleChange} - placeholder="********" - /> - - <button type="submit">Se connecter</button> - </form> - ); - }; - ``` -</Admonition> - -## 🎯 Critères d'évaluation - -- Les pages web sont conformes à l'expérience utilisateur y compris pour l'expérience mobile -- L'architecture de l'application répond aux bonnes pratiques de développement et de sécurisation d'application web -- L'application web est optimisée pour les équipements mobiles -- La démarche de recherche permet de résoudre un problème technique ou de mettre en œuvre une nouvelle fonctionnalité -- La veille sur les vulnérabilités connues permet d'identifier des failles potentielles -- La documentation technique liée aux technologies associées, rédigée en langue anglaise, est comprise _(sans contre-sens, ...)_ - -## 🤯 Aller plus loin _(hors référentiel)_ - -Cette partie concerne principalement les développeuses et développeurs qui ont utilisés des frameworks/bibliothèques -pour le développement de leur interface utilisateur, comme React, Angular, Vue.js, etc. - -Dans la plupart des cas, ces outils permettent de créer la partie front-end de manière dynamique, mais sans aucune gestion de la partie back-end. -Peut-être que vous me voyez venir... 😏 - -Comme la partie référencement est essentielle sur un site web et sur ce titre professionnel, -il est important de bien comprendre comment fonctionne le référencement sur une application web dynamique qui ne gère pas le back-end. -Le contenu généré par JavaScript _(côté navigateur)_ n'est pas indexé par les moteurs de recherche, ce qui implique que le référencement naturel est impacté. - -Pour contre-balancer cet aspect, il est possible de mettre en place des solutions comme le [Server Side Rendering _(SSR)_](https://openclassrooms.com/fr/courses/5922626-optimisez-le-referencement-de-votre-site-seo-en-ameliorant-ses-performances-techniques/6055261-decidez-entre-client-side-et-server-side-rendering) ou le [Static Site Generation _(SSG)_](https://www.cloudflare.com/fr-fr/learning/performance/static-site-generator/) pour générer le contenu côté serveur et le rendre accessible aux moteurs de recherche. - -Pour React, l'une des solutions les plus connue reste [Next.js](https://nextjs.org/), qui permet de gérer le rendu côté serveur et de générer des pages statiques. -On retrouve d'ailleurs une solution similaire pour Vue.js avec [Nuxt.js](https://nuxtjs.org/). - -Bien que ces solutions soient très intéressantes, je conseille régulièrement de regarder [Vike](https://vike.dev/) -qui permet aux applications React, Vue, Svelte, Preact, Solid et Angular de palier à ce problème de référencement _(et bien plus encore)_. - diff --git a/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4.mdx b/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4.mdx deleted file mode 100644 index 14d97ab..0000000 --- a/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT1/CP4.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -sidebar_position: 4 -title: "CP 4" -description: "Synthèse de la CP 4 \"Réaliser une interface utilisateur avec une solution de gestion de contenu ou e-commerce\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)." ---- - -import Admonition from '@theme/Admonition'; - -# Réaliser une interface utilisateur avec une solution de gestion de contenu ou e-commerce - -<Admonition type="warning" title="Attention, tu es en train de consulter un référentiel expiré !"> - [Aller sur le contenu du nouveau référentiel en vigueur](/titres-professionnels/DWWM/intro) -</Admonition> - -## 📚 Références - -- REAC _(mise à jour du 27/04/2018)_, pages 19 et 20 -- RC _(mise à jour du 19/04/2018)_, page 10 - -## 🚀 Contexte - -Ici, on parle uniquement de la création d'un thème custom sur un CMS et/ou d'un ecommerce. -Comme je ne suis pas très calé sur cette partie, je te conseille de lire **très attentivement** -la ressource liée dans le REAC, aux pages mentionnées ci-dessus. - -C'est également le moment pour rappeler que cette compétence professionnelle n'est pas "obligatoire", dans la mesure -où les <abbr title="Compétences Professionnelles">CPs</abbr> 1, 2 et 3 sont validées. - -On retrouvera d'ailleurs le même cas de figure pour la <abbr title="Compétence Professionnelle">CP</abbr> 8. - -## 🎯 Critères d'évaluation - -- Les comptes utilisateurs sont créés avec leurs droits et rôles dans le respect des règles de sécurité -- La structure du site est conforme au besoin client -- Le site respecte les règles de référencement naturel -- La démarche de recherche permet de résoudre un problème technique ou de mettre en œuvre une nouvelle fonctionnalité -- La veille sur les vulnérabilités connues permet d'identifier des failles potentielles -- La documentation technique liée aux technologies associées, rédigée en langue anglaise, est comprise _(sans contre-sens, ...)_ - ---- - -## 🧠 Documentation - -- [Wordpress - Documentation](https://developer.wordpress.org/) -- [Wordpress - Hiérarchie des pages](https://developer.wordpress.org/themes/basics/template-hierarchy/) \ No newline at end of file diff --git a/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5.mdx b/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5.mdx deleted file mode 100644 index cb6586e..0000000 --- a/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP5.mdx +++ /dev/null @@ -1,91 +0,0 @@ ---- -sidebar_position: 5 -title: "CP 5" -description: "Synthèse de la CP 5 \"Créer une base de données\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)." ---- - -import Admonition from '@theme/Admonition'; - -# Créer une base de données - -<Admonition type="warning" title="Attention, tu es en train de consulter un référentiel expiré !"> - [Aller sur le contenu du nouveau référentiel en vigueur](/titres-professionnels/DWWM/intro) -</Admonition> - -## 📚 Références - -- REAC _(mise à jour du 27/04/2018)_, pages 21 et 22 -- RC _(mise à jour du 19/04/2018)_, page 10 - -## 🚀 Contexte - -Je pense que les mots sont dits : il faut créer une base de données 🙃 -OK c'est vrai que si on part de ce principe, la CP est vite complétée et on passerait à la CP 6 de suite, mais ça va plus loin en réalité ! - -Comme pour la CP 1, on va avant toute chose parler de la conception, soit : La modélisation de la base de données. -Et pour modéliser notre base de données, on va se baser sur la méthode [Merise](https://fr.wikipedia.org/wiki/Merise_(informatique)). - -Dans cette méthode on retrouvera plusieurs schémas, notamment ces derniers : - -- Le dictionnaire des données qui permet de définir les données de chaque entité. -- Le MCD _(Modèle Conceptuel de Données)_ qui permet de définir les entités et les relations entre ces entités. -- Le MLD _(Modèle Logique de Données)_ qui permet de définir les tables et les relations entre ces tables. -- Le MPD _(Modèle Physique de Données)_ qui permet de définir les tables, les relations, les types de données, les contraintes, etc. - -Bien qu'il existe des outils pour réaliser ces modèles, il est tout à fait possible de les réaliser avec un papier et un crayon. -Toutefois, un super outil pour réaliser tout cette conception existe : [Looping](https://www.looping.fr/). - -<Admonition type="warning" title="Compatibilité"> - Looping est un logiciel qui fonctionne sous Windows. - Pour les utilisateurs de Mac ou Linux, il faudra passer par une machine virtuelle ou un émulateur comme [Wine](https://www.winehq.org/). -</Admonition> - -<Admonition type="warning" title="Conformité des schémas"> - Même si la base de données peut évoluer au travers du développement, le fait de maintenir à jour les schémas _(tous, sans exception !)_ est primordial. - Votre jury sera très attentif à la conformité de vos schémas, alors ne négligez pas cette partie. -</Admonition> - -## ➕ Informations complémentaires - -Tout comme la <abbr title="Compétence Professionnelle">CP</abbr> 1, on serait tenté de se plonger immédiatement dans le code, mais il est important de bien modéliser sa base de données avant de commencer à coder. - -Voici les étapes à suivre pour bien modéliser sa base de données : - -1. **Définition des besoins** - - Il est important de bien comprendre les besoins du client pour définir les données à stocker. -2. **Dictionnaire des données** - - Il permet de définir les données de chaque entité, avec des types génériques comme "alphanumérique", "alphabétique", "numérique", "date", etc. -3. **Modèle Conceptuel de Données _(MCD)_** - - Il permet de définir les entités et les relations entre ces entités, sans se soucier des contraintes techniques. -4. **Modèle Logique de Données _(MLD)_** - - Il permet de définir les tables et les relations entre ces tables, en prenant en compte les contraintes techniques. -5. **Modèle Physique de Données _(MPD)_** - - Il permet de définir les tables, les relations, les types de données, les contraintes, etc. pour la base de données. - -<Admonition type="warning" title="Intentions pour le MCD"> - N'oubliez pas que le <abbr title="Modèle Conceptuel de Données">MCD</abbr> est un modèle conceptuel, il ne doit pas contenir de contraintes techniques ni de termes techniques. - Ce dernier est avant tout destiné à être compris par le client. -</Admonition> - -<Admonition type="warning" title="Liaisons graphiques entre entités/tables"> - Les liaisons entre les entités/tables au travers de la méthode Merise ne doivent en aucun cas se faire avec la notation "crow's foot" _(pattes de corbeau)_. - Cette dernière n'est pas conforme à cette méthode et est davantage utilisée dans la méthode [UML](https://fr.wikipedia.org/wiki/UML_(informatique)). -</Admonition> - -## 🎯 Critères d'évaluation - -- La base de données est conforme au schéma physique -- Les scripts de création de bases de données et d'insertion des données de test s'exécutent sans erreurs -- Les besoins de sécurité du <abbr title="Système de Gestion de Base de Données">SGBD</abbr> sont exprimés selon l'état de l'art et les exigences de sécurité identifiées -- La démarche de recherche permet de résoudre un problème technique ou de mettre en œuvre une nouvelle fonctionnalité -- La documentation technique liée aux technologies associées, rédigée en langue anglaise, est comprise _(sans contre-sens, ...)_ - ---- - -## 🧠 Documentation - -- [Éditions ENI - Merise - Guide pratique (4e édition), par **Jean-Luc Baptiste**](https://www.editions-eni.fr/livre/merise-guide-pratique-4e-edition-modelisation-des-donnees-et-des-traitements-manipulations-avec-le-langage-sql-conception-d-une-application-mobile-android-ou-ios-9782409046667) - -## 🛠 Outils - -- [Looping](https://www.looping.fr/) diff --git a/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6.mdx b/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6.mdx deleted file mode 100644 index 4164f40..0000000 --- a/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP6.mdx +++ /dev/null @@ -1,115 +0,0 @@ ---- -sidebar_position: 6 -title: "CP 6" -description: "Synthèse de la CP 5 \"Développer les composants d'accès aux données\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)." ---- - -import Admonition from '@theme/Admonition'; - -# Développer les composants d'accès aux données - -<Admonition type="warning" title="Attention, tu es en train de consulter un référentiel expiré !"> - [Aller sur le contenu du nouveau référentiel en vigueur](/titres-professionnels/DWWM/intro) -</Admonition> - -## 📚 Références - -- REAC _(mise à jour du 27/04/2018)_, pages 23 et 24 -- RC _(mise à jour du 19/04/2018)_, page 11 - -## 🚀 Contexte - -Maintenant que tu connais la structure de ta base de données et qu'elle est créée, il va falloir expliquer comment ton application pourra accéder aux données stockées. - -En PHP, tu connais certainement `PDO`, mais tu as peut-être également utilisé un <abbr title="Object-Relational Mapping">ORM</abbr> -comme [Eloquent](https://laravel.com/docs/11.x/eloquent) ou encore [Doctrine](https://symfony.com/doc/current/doctrine.html). - -Pour NodeJS, tu as peut-être utilisé les pilotes [mysql](https://www.npmjs.com/package/mysql), [pg](https://www.npmjs.com/package/pg) ou -[sqlite](https://www.npmjs.com/package/sqlite) pour accéder à ta base de données ou encore un <abbr title="Object-Relational Mapping">ORM</abbr> -comme [Prisma](https://www.npmjs.com/package/prisma) ou [Sequelize](https://www.npmjs.com/package/sequelize). - -L'idée ici est d'expliquer comment le back va se connecter à la base de données **ET** comment le back est structuré pour accéder aux données. - -Tu vas donc avoir très certainement avoir besoin de parler des services et des modèles qui permettent d'accéder aux données et de les altérer. - -Comme cette <abbr title="Compétence Professionnelle">CP</abbr> _(et les suivantes)_ parlent de sécurité, -c'est l'occasion de parler de ton fichier `.env` et du `.gitignore` afin de ne pas avoir de fichiers sensibles dans le repository de ton projet, -dont les informations de connexion à la base de données. - -<Admonition type="warning" title="Utilisation d'ORM/query builder"> - Si tu utilises un <abbr title="Object-Relational Mapping">ORM</abbr> ou un query builder, il est important de bien expliquer comment tu l'as configuré et comment tu l'utilises. - En plus d'expliquer comment cet outil a été paramétré, tu dois être en mesure d'expliquer la construction SQL générée par cet outil. - - Par exemple avec Prisma : - ```javascript showLineNumbers - const user = await prisma.user.findUnique({ - select: { - id: true, - name: true, - email: true, - posts: { - select: { - title: true, - }, - }, - }, - include: { - posts: true, - }, - where: { - id: 1, - }, - }); - ``` - - Ce qui donnera : - ```sql - SELECT u.id, u.name, u.email, p.title -- Sélection des colonnes - FROM "User" u -- Table principale - INNER JOIN "Post" p ON p.userId = u.id -- Jointure avec la table "Post" - WHERE u.id = 1; -- Condition de sélection - ``` - - _(Oui, c'est un exemple fictif et pas entièrement correspondant, mais tu as compris l'idée !)_ -</Admonition> - -On est d'accord : cette <abbr title="Compétence Professionnelle">CP</abbr> est un gros morceau, -mais c'est un passage obligé pour bien comprendre comment ton application va interagir avec la base de données ! - -## 🎯 Critères d'évaluation - -- Les traitements relatifs aux manipulations des données répondent aux fonctionnalités décrites dans le dossier de conception technique -- Un test unitaire est associé à chaque composant, avec une double approche fonctionnelle et sécurité -- Les composants d'accès à la base de données suivent les règles de sécurisation reconnues -- La démarche de recherche permet de résoudre un problème technique ou de mettre en œuvre une nouvelle fonctionnalité -- La veille sur les vulnérabilités connues permet d'identifier des failles potentielles -- La documentation technique liée aux technologies associées, rédigée en langue anglaise, est comprise _(sans contre-sens, ...)_ - -## 🤯 Aller plus loin _(hors référentiel)_ - -### 🛡️ Sécurisation des données - -J'imagine que dans ton application tu as des données sensibles, comme des informations personnelles ou encore des mots de passe. -En ce qui concerne les mots de passe, il est essentiel que ces derniers soient stockés de manière sécurisée, c'est-à-dire **hashés**. -Pour cela, tu peux utiliser des fonctions de hachage comme [bcrypt](https://www.npmjs.com/package/bcrypt) avec NodeJS ou encore [password_hash](https://www.php.net/manual/fr/function.password-hash.php) en PHP. - -Pour les informations personnelles, tu as également la possibilité de les sécuriser en les chiffrant ! -Tu peux très bien te baser sur un algorithme maison ou encore utiliser des bibliothèques comme [crypto-js](https://www.npmjs.com/package/crypto-js) en NodeJS ou encore [openssl](https://www.php.net/manual/en/book.openssl.php) en PHP. - -### 🗑️ Suppression des données - -<Admonition type="quote" title="Un peu de ménage ne fait jamais de mal !"> - On est d'accord ! Cependant, la suppression de données est une opération délicate. - Se dire "il suffit de faire un `DELETE FROM table WHERE id = 1`" peut potentiellement poser des problèmes. -</Admonition> - -En effet, il est important de bien réfléchir à la suppression de données, notamment pour les données liées à d'autres données _(les fameux `ON DELETE CASCADE` par exemple)_. - -Puisque l'erreur est humaine, permettre la suppression aussi simplement que via un bouton "Supprimer" peut être risqué, même si ce dernier est protégé par un message de confirmation. - -On va préférer d'une suppression logique, c'est-à-dire qu'on va "désactiver" la donnée plutôt que de la supprimer définitivement. -C'est ce qu'on appelle plus communément le **"soft delete"**, là où la suppression définitive est appelée **"hard delete"**. - -Il est également important de maintenir un certain état des données stockées, notamment pour des raisons légales ou encore pour des raisons de traçabilité. -Bien entendu, lorsque l'utilisateur souhaite supprimer définitivement ses données _(<abbr title="Règlement Général sur la Protection des Données">RGPD</abbr>)_, -il est important de bien l'informer des conséquences de cette action et des délais de suppression dans la politique de confidentialité de ton application. diff --git a/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7.mdx b/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7.mdx deleted file mode 100644 index deabcfc..0000000 --- a/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP7.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -sidebar_position: 7 -title: "CP 7" -description: "Synthèse de la CP 7 \"Développer la partie back-end d'une application web ou web mobile\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)." ---- - -import Admonition from '@theme/Admonition'; - -# Développer la partie back-end d'une application web ou web mobile - -<Admonition type="warning" title="Attention, tu es en train de consulter un référentiel expiré !"> - [Aller sur le contenu du nouveau référentiel en vigueur](/titres-professionnels/DWWM/intro) -</Admonition> - -## 📚 Références - -- REAC _(mise à jour du 27/04/2018)_, pages 25 et 26 -- RC _(mise à jour du 19/04/2018)_, page 11 - -## 🚀 Contexte - -En continuité avec la <abbr title="Compétence Professionnelle">CP</abbr> 6, -tu vas devoir maintenant expliquer comment circule la donnée dans le back de ton application, -que ce soit une API ou que ton back serve des pages web. - -Concrètement, voici ce qu'il faut couvrir : - -- Les routes et endpoints _(back uniquement !)_ -- Les middlewares _(vérification JWT, accès protégé à un rôle particulier, etc)_ -- Les controllers -- La récupération des données saisies par l'utilisateur _(avec une mise en place de la sécurité en y intégrant des vérifications et filtres)_ -- La récupération des données stockées dans la base de données et l'altération des données -- Le formatage de ces données récupérées -- Le retour de ces données au front _(JSON, variables données à une vue servie par le back, etc)_ - -## 🎯 Critères d'évaluation - -- Les bonnes pratiques de développement sont respectées -- Les composants serveur contribuent à la sécurité de l'application -- Le code source des composants est documenté ou auto-documenté -- La démarche de recherche permet de résoudre un problème technique ou de mettre en œuvre une nouvelle fonctionnalité -- La veille sur les vulnérabilités connues permet d'identifier des failles potentielles -- La documentation technique liée aux technologies associées, rédigée en langue anglaise, est comprise _(sans contre-sens, ...)_ diff --git a/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8.mdx b/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8.mdx deleted file mode 100644 index 5332ece..0000000 --- a/old/docs/titres-professionnels/archives/DWWM/2018-2023/AT2/CP8.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -sidebar_position: 8 -title: "CP 8" -description: "Synthèse de la CP 8 \"Élaborer et mettre en œuvre des composants dans une application de gestion de contenu ou e-commerce\" du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, référentiel expiré)." ---- - -import Admonition from '@theme/Admonition'; - -# Élaborer et mettre en œuvre des composants dans une application de gestion de contenu ou e-commerce - -<Admonition type="warning" title="Attention, tu es en train de consulter un référentiel expiré !"> - [Aller sur le contenu du nouveau référentiel en vigueur](/titres-professionnels/DWWM/intro) -</Admonition> - -## 📚 Références - -- REAC _(mise à jour du 27/04/2018)_, pages 27 et 28 -- RC _(mise à jour du 19/04/2018)_, page 12 - -## 🚀 Contexte - -Hop hop, je me dédouane de nouveau pour la <abbr title="Compétence Professionnelle">CP</abbr> 8 ! -Il s'agit d'une <abbr title="Compétence Professionnelle">CP</abbr> qui concerne, -tout comme la <abbr title="Compétence Professionnelle">CP</abbr> 4, le développement par le biais d'un CMS. - -Pour prendre Wordpress en exemple, il est nécessaire ici de **développer** des fonctionnalités **additionnelles** à celles qui existent déjà. -Pour résumer une possibilité : la création d'un plugin. - -## 🎯 Critères d'évaluation - -- Les composants complémentaires ou réalisés s'intègrent dans l'environnement de l'application -- Les composants serveur contribuent à la sécurité de l'application -- Le code source des composants est documenté ou auto-documenté -- Les tests garantissent que les traitements serveurs répondent aux fonctionnalités décrites dans le cahier des charges -- La démarche de recherche permet de résoudre un problème technique ou de mettre en œuvre une nouvelle fonctionnalité -- La veille sur les vulnérabilités connues permet d'identifier des failles potentielles -- La documentation technique liée aux technologies associées, rédigée en langue anglaise, est comprise _(sans contre-sens, ...)_ - ---- - -## 🧠 Documentation - -- [Wordpress - Documentation](https://developer.wordpress.org/) -- [Wordpress - Hiérarchie des pages](https://developer.wordpress.org/themes/basics/template-hierarchy/) \ No newline at end of file diff --git a/old/docs/titres-professionnels/archives/DWWM/2018-2023/intro.mdx b/old/docs/titres-professionnels/archives/DWWM/2018-2023/intro.mdx deleted file mode 100644 index 4d68eaa..0000000 --- a/old/docs/titres-professionnels/archives/DWWM/2018-2023/intro.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -sidebar_position: 1 -title: "Résumé" -description: "Résumé du titre professionnel Développeur Web et Web Mobile (DWWM TP-01280m03, expiré depuis septembre 2023)." ---- - -import Admonition from '@theme/Admonition'; - -# Contenu du titre professionnel DWWM - -<Admonition type="warning" title="Attention, tu es en train de consulter un référentiel expiré !"> - [Aller sur le contenu du nouveau référentiel en vigueur](/titres-professionnels/DWWM/intro) -</Admonition> - -Nom complet du titre : `Développeur Web et Web Mobile` -Code titre : `TP-01280` -Code millésime : `03` - -## Documents officiels - -- [📄 REAC - Référentiel Emploi Activités Compétences _(27/04/2018)_](https://www.banque.di.afpa.fr/EspaceEmployeursCandidatsActeurs/Download.aspx?i=48e5e746-396c-42ef-bf6d-19c97c374960&d=1) -- [📄 RE - Référentiel de Certification _(19/04/2018)_](https://www.banque.di.afpa.fr/EspaceEmployeursCandidatsActeurs/Download.aspx?i=a636e6a8-8a35-4879-879e-81c75837da95&d=1) - -> Source(s) : -> -> - [🔗 Banque de ressources numériques de l'AFPA](https://www.banque.di.afpa.fr/EspaceEmployeursCandidatsActeurs/EGPResultat.aspx?cr=d%C3%A9veloppeur%20web&cd=&ct=01280m03&type=t) - -## Activités types et compétences professionnelles - -### 📚 Activité type 1 - Développer la partie front-end d'une application web ou web mobile en intégrant les recommandations de sécurité - -- [CP 1 - Maquetter une application](./AT1/CP1) -- [CP 2 - Réaliser une interface utilisateur web statique et adaptable](./AT1/CP2) -- [CP 3 - Développer une interface utilisateur web dynamique](./AT1/CP3) -- [CP 4 - Réaliser une interface utilisateur avec une solution de gestion de contenu ou e-commerce](./AT1/CP4) - -### 📚 Activité type 2 - Développer la partie back-end d'une application web ou web mobile en intégrant les recommandations de sécurité - -- [CP 5 - Créer une base de données](./AT2/CP5) -- [CP 6 - Développer les composants d'accès aux données](./AT2/CP6) -- [CP 7 - Développer la partie back-end d'une application web ou web mobile](./AT2/CP7) -- [CP 8 - Elaborer et mettre en œuvre des composants dans une application de gestion de contenu ou e-commerce](./AT2/CP8) - -## Compétences transverses - -- Utiliser l'anglais dans son activité professionnelle en développement web et web mobile -- Actualiser et partager ses compétences en développement web et web mobile - -## Déroulé de l'examen - -<Admonition type="info" title="Déroulé relatif au passage de l'épreuve dans sa globalité"> - En cas de repassage d'un <abbr title="Certificat de Compétences Professionnelles">CCP</abbr>, - se référer au [Référentiel de Certification](https://www.banque.di.afpa.fr/EspaceEmployeursCandidatsActeurs/Download.aspx?i=a636e6a8-8a35-4879-879e-81c75837da95&d=1) - pour connaître les modalités de l'épreuve : - - - Pages 17 à 21 pour l'AT 1 - - Pages 23 à 26 pour l'AT 2 -</Admonition> - -**Durée totale de l'examen** : 1h30 - -1. Présentation d'un projet réalisé en amont de la session _(35 minutes, face au jury)_ -2. Entretien technique _(40 minutes, face au jury)_ -3. Entretien final _(15 minutes, face au jury)_ diff --git a/old/docs/titres-professionnels/archives/DWWM/_category_.json b/old/docs/titres-professionnels/archives/DWWM/_category_.json deleted file mode 100644 index 283222a..0000000 --- a/old/docs/titres-professionnels/archives/DWWM/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "DWWM", - "position": 1 -} diff --git a/old/docs/titres-professionnels/archives/_category_.json b/old/docs/titres-professionnels/archives/_category_.json deleted file mode 100644 index aeb72d6..0000000 --- a/old/docs/titres-professionnels/archives/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "🗃️ Archives", - "position": 500, - "link": { - "type": "generated-index", - "description": "Archives des différents référentiels arrivés à expiration." - } -} diff --git a/old/docs/titres-professionnels/retours.mdx b/old/docs/titres-professionnels/retours.mdx deleted file mode 100644 index 70c17fa..0000000 --- a/old/docs/titres-professionnels/retours.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -sidebar_position: 99999 -title: "Retours d'expériences" -description: "Découvre les témoignages de candidats et jury sur leur soutenance de titre professionnel : leurs ressentis avant, pendant et après leur passage devant le jury." ---- - -import Testimonials from '@site/src/components/Testimonials'; - -# Retours d'expériences sur la soutenance de titre professionnel - -Tu te poses peut-être des questions sur comment est vécue la soutenance de titre professionnel par les candidats, -et c'est parfaitement normal ! - -Même si chaque expérience est différente d'un candidat à l'autre, tu retrouveras des témoignages de candidats qui ont -accepté de partager leur ressenti avant, pendant et après leur passage devant le jury. - -Tu retrouveras également des témoignages de membres de jury qui partagent leur point de vue sur la soutenance de manière générale. - -## Les témoignages candidats - -<Testimonials type="candidates" /> - -{/* -Pour ajouter un nouveau témoignage, rends-toi dans le fichier `/src/data/testimonials.tsx` et ajoute un nouvel objet -dans le tableau `candidateTestimonials` en suivant le type suivant : - -```tsx -type Testimonial = { - name?: string; // `Undefined` si tu souhaites rester anonyme - date: Date; // Date du jour de la rédaction du témoignage - before: string[]; // Liste de phrases sur ton ressenti avant la soutenance - during: string[]; // Liste de phrases sur ton ressenti pendant la soutenance - after: string[]; // Liste de phrases sur ton ressenti après la soutenance -}; -``` -*/} - -## Les témoignages jury - -<Testimonials type="jury" /> - -{/* -Pour ajouter un nouveau témoignage, rends-toi dans le fichier `/src/data/testimonials.tsx` et ajoute un nouvel objet -dans le tableau `juryTestimonials` en suivant le type suivant : - -```tsx -type Testimonial = { - name?: string; // `Undefined` si tu souhaites rester anonyme - date: Date; // Date du jour de la rédaction du témoignage - before: string[]; // Liste de phrases sur ton ressenti avant la soutenance - during: string[]; // Liste de phrases sur ton ressenti pendant la soutenance - after: string[]; // Liste de phrases sur ton ressenti après la soutenance -}; -``` -*/} - -## Contribuer à cette page - -Tu as déjà passé une soutenance de titre professionnel _(ou tu es jury)_ et tu souhaites partager ton expérience pour aider les futurs candidats ? - -N'hésites pas à faire une pull request sur le [dépôt GitHub du Memento](https://github.com/preparation-tp/memento-dev) pour ajouter ton témoignage à cette page ! -Tu trouveras toutes les informations techniques pour contribuer sur la page [Contribuer](/contribuer). - -Si tu souhaites rester anonyme _(ou que tu ne te sens pas suffisamment à l'aise avec GitHub)_, tu peux directement m'envoyer ton témoignage par mail à [gauthier@gauthierdaniels.fr](mailto:gauthier@gauthierdaniels.fr) en me précisant si tu souhaites être identifié ou non et s'il s'agit d'un témoignage de candidat ou de jury. \ No newline at end of file diff --git a/old/docs/titres-professionnels/se-preparer.mdx b/old/docs/titres-professionnels/se-preparer.mdx deleted file mode 100644 index c880df1..0000000 --- a/old/docs/titres-professionnels/se-preparer.mdx +++ /dev/null @@ -1,191 +0,0 @@ ---- -sidebar_position: 9999 -title: "Se préparer pour un TP" -description: "Tu prépares un titre professionnel et tu te demandes comment bien t'y préparer ? Jette donc un oeil !" ---- - -import Admonition from "@theme/Admonition"; - -# 🤓 Comment se préparer efficacement - -Préparer un titre professionnel peut sembler un travail colossal et effrayant. -Mais pas de panique, on est là pour t'aider à t'y préparer au mieux ! - -## 🤔 Quels titres sont concernés ? - -Tous ! Ici on ne va pas parler technique, mais posture et méthodologie. -Que tu prépares un DWWM, CDA, CDUI ou je ne sais quel autre titre, les conseils qui suivent seront tout autant valables. - -Cependant si tu cherches des ressources spécifiques à un titre en particulier, tu peux consulter les pages dédiées à chaque titre. -Tu y retrouveras les attendus, les modalités d'évaluation, -les compétences évaluées et tout le reste dans chaque rubrique dédiée à un titre professionnel. - -## 📚 Les ressources à ta disposition - -Chaque titre professionnel dispose de deux documents très spécifiques : -- Le **Référentiel Emploi Activités Compétences** _(REAC)_ qui définit les compétences attendues pour chaque titre. -- Le **Référentiel de Certification** _(RC)_ qui définit les modalités d'évaluation de ces compétences. - -<Admonition type="quote" title="Je n'ai pas de RC à ma disposition 😱"> - C'est tout à fait normal ! Récemment, le terme RC a été remplacé par RE _(Référentiel d'Évaluation)_. - Il s'agit exactement de la même chose, mais avec un nom différent. - - Tous les titres ne sont pas encore concernés, mais c'est une transition qui se fait progressivement. -</Admonition> - -Selon les conditions de ton passage, tu as également la possibilité de demander à un tuteur, -formateur ou référent pédagogique de l'organisme de formation de te fournir ces documents. - -Tu peux également retrouver les documentations sur [l'espace employeurs/candidats/acteurs de l'AFPA](https://www.banque.di.afpa.fr/espaceemployeurscandidatsacteurs/egprecherche.aspx). -Il ne te restera plus qu'à rechercher le titre professionnel qui te concerne et consulter les documentations associées ! - -## 📋 Les étapes à suivre - -Selon les modalités de ton passage, tu vas devoir te préparer différemment. -Dans certains titres professionnels, tu vas devoir réaliser un dossier professionnel, un projet ou un mémoire. - -Dans d'autres, tu auras des épreuves écrites et/ou orales à passer. -Il est également possible que tu ais des mises en situation professionnelle à réaliser face à ton jury. - -Pour être sûr de savoir ce qui t'attend, n'hésite vraiment pas à consulter les documents officiels de ton titre professionnel ! - -### 📝 Le dossier professionnel - -Le dossier professionnel est un document qui va te permettre de présenter ton parcours, tes compétences et tes réalisations. -Une documentation officielle est disponible à [cette adresse](https://www.dossierprofessionnel.fr/) -pour t'aider à comprendre de quoi il s'agit et comment le remplir. - -Ce qu'il faut noter, c'est que sa structure _(archaïque...)_ est très précise et qu'il est important de respecter les consignes à la lettre. -Tu n'as pas la possibilité de faire preuve de créativité ici, tu te dois d'insérer les informations demandées. - -Désolé si tu n'aimes pas le rose _(ou plus précisément le <span className="px-2 py-1 rounded-sm bg-[#D60193] font-semibold text-white">Hollywood Cerise</span> 🤡)_ -ou la mise en page, mais il faudra t'y conformer. - -Vraiment, les explications données sur le site officiel sont très claires et tu ne devrais pas avoir de mal à comprendre ce qu'on attend de toi. -Je ne peux que te recommander d'y jetter un oeil ! - -### 📦 Le projet - -Si ton titre professionnel prévoit la réalisation et la présentation d'un projet, tu vas devoir te préparer en conséquence. - -Dans certains titres, tu as la possibilité de présenter plusieurs projets distincts. -Ces projets ne sont pas nécessairement des projets avec un client derrière, mais peuvent être des projets personnels ou des projets réalisés en groupe. - -La contrainte majeure associée à ces projets est cet ensemble de règles : -- Présenter le cahier des charges ou l'expression des besoins -- Présenter les étapes de réalisation -- T'assurer que les projets répondent aux besoins du client _(même si le projet est fictif et/ou qu'il est encore en cours de réalisation)_ -- T'assurer que les projets couvrent l'ensemble ou une partie spécifique _(précisée dans les documentations du titre)_ des compétences attendues - -D'autres règles s'appliquent au cas par cas, mais celles-ci sont les plus courantes. -Pour être sûr de ne rien oublier, je te recommande de consulter les documents officiels de ton titre professionnel. - -<Admonition type="tip" title="Ne te limite pas à ces règles !"> - Si tu as des idées pour améliorer ton projet, n'hésite pas à les partager avec ton jury. - C'est ce qui fera la différence entre un projet "basique" et un projet "exceptionnel". - - Si tu te contentes de faire le strict minimum, ton jury serait en droit de se demander si tu as une bonne connaissance du métier. -</Admonition> - -<Admonition type="warning" title="Ne cherche pas à utiliser des tonnes de projets"> - La qualité prime sur la quantité. - Il vaut mieux présenter un seul projet bien ficelé et complet que plusieurs projets bâclés et incomplets. - - Surtout que lors de ta présentation, tu risques de te perdre entre tous tes projets et ton jury n'en sera que plus perdu. -</Admonition> - -### 📚 Les épreuves écrites - -Si ton titre professionnel prévoit des épreuves écrites, n'y va pas les mains dans les poches. - -Dans les titres professionnels que j'ai pu observer _(DWWM et CDA)_ qui contiennent des épreuves écrites, le niveau d'attente n'est pas élitiste. -Mais ce n'est pas une raison pour ne pas te préparer ! - -La forme peut varier d'un titre à l'autre, mais le fond reste le même : -- Comprendre un sujet transmis au moment de l'épreuve -- Répondre à des questions en lien avec ce sujet -- Rédiger des réponses claires et précises - -Par exemple pour les titres professionnels DWWM et CDA, voici ce qu'on y retrouve : -- Un texte rédigé en anglais -- Des questions à choix multiples _(QCM)_ -- Des questions ouvertes - -Encore une fois, les informations sont exposées dans les documents officiels de ton titre professionnel 😉 - -### 🎤 Les épreuves orales - -Les épreuves orales sont souvent redoutées, mais elles ne devraient pas l'être. - -Déjà : tu as le droit de te tromper, personne ne te jugera pour ça. -Ensuite : **sois toi-même**. - -<Admonition type="quote" title="Et si je me trompe ?"> - C'est pas grave ! - Si tu te trompes, tu te trompes. - Si tu ne sais pas répondre à une question, dis-le. - Si tu ne comprends pas une question, demande des précisions. - - Ton jury est là pour t'aider, pas pour te piéger. - Il est là pour évaluer tes compétences, pas pour te mettre en difficulté. -</Admonition> - -Sauf s'il s'agit du contexte de ton titre professionnel, ton jury ne cherche pas à avoir un commercial en face de lui _(désolé les commerciaux 😅)_. -Ton jury attend de toi que tu sois capable de tenir un échange à l'oral et que tu sois en mesure de présenter un ensemble de compétences et réalisations. - -L'étape la plus importante pour réussir une épreuve orale est de **préparer ta présentation**. - -Si tu ne sais pas par où commencer, voici quelques pistes : -- Entraîne ton élocution face à un miroir -- Enregistre-toi pour t'écouter -- Entraîne-toi face à des proches, surtout s'ils ne connaissent pas ton sujet -- Adopte une posture assurée et un ton de voix clair _(ne marmonne pas dans ta barbe)_ -- Ne parle ni trop vite, ni trop lentement _(c'est un exercice difficile, mais tu vas y arriver)_ - -Évidemment ces conseils semblent faciles à dire, mais ils sont plus difficiles à appliquer. -Alors n'hésite pas à t'entraîner encore et encore, tu vas y arriver ! -Si tu y arrives du premier coup et que tu prétends que c'est la première fois : je ne te croirai pas 😏 - -<Admonition type="quote" title="C'est quoi une posture assurée ?"> - Une posture assurée, c'est une posture qui montre que tu es à l'aise. - Tu ne dois pas être crispé, mais détendu. - Tu dois regarder ton interlocuteur dans les yeux, mais sans le fixer _(tu n'es pas un psychopathe, hein ?)_. - - Tu dois également adopter une posture droite, mais pas rigide. - Tu peux par exemple légèrement fléchir tes jambes pour te sentir plus à l'aise et être moins crispé. - - Si tu as du mal à visualiser ce que je viens de te dire, je te recommande de regarder attentivement la posture adoptée par Apple. - Pas besoin d'écouter ce qu'ils disent, mais regarde plutôt comment ils se tiennent et - comment ils regardent leur public _(la caméra étant comme le public pour eux)_. - - **Fabien Olicart** _(vidéaste sur YouTube et mentaliste)_ en a d'ailleurs fait un court sujet de moins de deux minutes ! - Tu retrouveras la vidéo sur YouTube, juste [ici](https://www.youtube.com/watch?v=TZIodEQfMNo). -</Admonition> - -### 🎯 Les mises en situation professionnelle - -J'aimerai pouvoir t'en dire davantage sur les mises en situation professionnelle, mais je n'y ai jamais été confronté. -Cependant, je peux te donner quelques pistes génériques pour t'y préparer ! - -Les mises en situation professionnelle sont souvent des exercices pratiques qui te permettent de démontrer tes compétences. -Tu vas devoir réaliser une tâche en lien avec ton titre professionnel, mais dans un contexte fictif et ce : face à un jury. - -Ton jury ne cherchera pas à te mettre des bâtons dans les roues, mais à évaluer tes compétences et vérifier que tu es capable -de t'adapter à une situation donnée _(moins scolaire et plus professionnelle)_. - -Si tu as des connaissances, collègues ou amis qui ont déjà passé ce type d'épreuve, n'hésite pas à leur demander des conseils. -Mais n'oubli pas que chaque mise en situation professionnelle est différente et -que les conseils donnés ne seront pas forcément adaptés à ta situation ! - -## 🚀 Conclusion - -Préparer un titre professionnel n'est pas une mince affaire, mais c'est un challenge que tu vas relever haut la main ! - -N'oublie pas que tu n'es pas seul dans cette aventure. -Tu as des formateurs, des tuteurs, des amis, des collègues et même des inconnus qui sont prêts à t'aider. - -Il ne faut pas que tu hésites à demander de l'aide si tu en ressent le besoin. - -Et surtout, n'oublie pas que tu es capable de réussir. - -<img className="max-w-xl w-auto h-auto block mx-auto" src="https://media1.tenor.com/m/f0X9smqZ8J4AAAAC/shia-motivation.gif" /> \ No newline at end of file diff --git a/old/docusaurus.config.ts b/old/docusaurus.config.ts deleted file mode 100644 index 53b8d2c..0000000 --- a/old/docusaurus.config.ts +++ /dev/null @@ -1,298 +0,0 @@ -import type { - CreateSitemapItemsParams, - CreateSitemapItemsFn, -} from "@docusaurus/plugin-sitemap/lib/types"; - -import type * as Preset from "@docusaurus/preset-classic"; -import type { Config } from "@docusaurus/types"; - -import { themes as prismThemes } from "prism-react-renderer"; - -type CreateSitemapParams = CreateSitemapItemsParams & { - defaultCreateSitemapItems: CreateSitemapItemsFn; -}; - -const resourcesLinks = [ - { - label: "Préambule", - to: "/intro", - }, - { - label: "Front-end", - to: "/category/-frontend", - }, - { - label: "Bases de données", - to: "/category/-bases-de-données", - }, -]; - -const examsLinks = [ - { - label: "CDA", - to: "/titres-professionnels/CDA/intro", - }, - { - label: "DWWM", - to: "/titres-professionnels/DWWM/intro", - }, - { - label: "Se préparer", - to: "/titres-professionnels/se-preparer", - }, - { - label: "Retours d'expériences", - to: "/titres-professionnels/retours", - }, - { - label: "Archives", - to: "/category/%EF%B8%8F-archives", - }, -]; - -const config: Config = { - title: "Memento Dev", - tagline: "Souviens-toi que tu développeras.", - favicon: "img/favicon.webp", - - // Set the production url of your site here - url: "https://memento-dev.fr", - // Set the /<baseUrl>/ pathname under which your site is served - // For GitHub pages deployment, it is often '/<projectName>/' - baseUrl: "/", - - // GitHub pages deployment config. - // If you aren't using GitHub pages, you don't need these. - organizationName: "preparation-tp", // Usually your GitHub org/user name. - projectName: "memento-dev", // Usually your repo name. - - onBrokenLinks: "throw", - onBrokenMarkdownLinks: "warn", - - scripts: [ - { - src: "https://cloud.umami.is/script.js", - async: true, - defer: true, - "data-website-id": "ba70261e-d145-4dd1-b0e8-27cbf4927b74", - }, - ], - - markdown: { - mermaid: true, - }, - themes: ["@docusaurus/theme-mermaid"], - - // Even if you don't use internationalization, you can use this field to set - // useful metadata like html lang. For example, if your site is Chinese, you - // may want to replace "en" with "zh-Hans". - i18n: { - defaultLocale: "fr", - locales: ["fr"], - }, - - plugins: [ - [ - "@docusaurus/plugin-pwa", - { - debug: false, - offlineModeActivationStrategies: [ - "appInstalled", - "standalone", - "queryString", - ], - pwaHead: [ - { - tagName: "link", - rel: "icon", - href: "/img/favicon.webp", - }, - { - tagName: "link", - rel: "manifest", - href: "/manifest.json", - }, - { - tagName: "meta", - name: "theme-color", - content: "#7c3aed", - }, - { - tagName: "meta", - name: "apple-mobile-web-app-capable", - content: "yes", - }, - { - tagName: "meta", - name: "apple-mobile-web-app-status-bar-style", - content: "#242526", - }, - { - tagName: "link", - rel: "apple-touch-icon", - href: "/img/favicon.webp", - }, - { - tagName: "link", - rel: "mask-icon", - href: "/img/favicon.webp", - color: "#7c3aed", - }, - { - tagName: "meta", - name: "msapplication-TileImage", - content: "/img/favicon.webp", - }, - { - tagName: "meta", - name: "msapplication-TileColor", - content: "#7c3aed", - }, - ], - }, - ], - async function tailwind() { - return { - name: "docusaurus-tailwindcss", - configurePostCss(postcssOptions) { - // Appends TailwindCSS and AutoPrefixer. - postcssOptions.plugins.push(require("tailwindcss")); - postcssOptions.plugins.push(require("autoprefixer")); - return postcssOptions; - }, - }; - }, - [require.resolve("docusaurus-lunr-search"), { languages: ["fr"] }], - [ - "@docusaurus/plugin-sitemap", - { - lastmod: "date", - changefreq: "weekly", - priority: 0.5, - ignorePatterns: ["/tags/**"], - filename: "sitemap.xml", - id: "sitemap", - async createSitemapItems(params: CreateSitemapParams) { - const { defaultCreateSitemapItems, ...rest } = params; - const items = await defaultCreateSitemapItems(rest); - - return items.filter((item) => !item.url.includes("/page/")); - }, - }, - ], - ], - - presets: [ - [ - "classic", - { - docs: { - sidebarPath: "./sidebars.ts", - // Remove this to remove the "edit this page" links. - editUrl: "https://github.com/preparation-tp/memento-dev/tree/main/", - - admonitions: { - keywords: ["quote", "example"], - extendDefaults: true, - }, - - routeBasePath: "/", - tagsBasePath: "tags", - }, - blog: false, - theme: { - customCss: "./src/css/custom.css", - }, - } satisfies Preset.Options, - ], - ], - - themeConfig: { - // Replace with your project's social card - image: "img/docusaurus-social-card.jpg", - mermaid: { - theme: { - light: "neutral", - dark: "dark", - }, - }, - navbar: { - style: "dark", - title: "Memento Dev", - logo: { - alt: "Logo Memento Dev", - src: "img/logo.webp", - }, - items: [ - { - type: "docSidebar", - sidebarId: "tutorialSidebar", - position: "left", - label: "Documentation", - }, - { - position: "left", - label: "Ressources", - items: resourcesLinks, - }, - { - position: "left", - label: "Titres professionnels", - items: examsLinks, - }, - { - href: "https://github.com/preparation-tp/memento-dev", - label: "GitHub", - position: "right", - }, - ], - }, - footer: { - style: "dark", - links: [ - { - title: "Ressources", - items: resourcesLinks, - }, - { - title: "Titres professionnels", - items: examsLinks, - }, - { - title: "Memento Dev", - items: [ - { - label: "Mentions légales", - to: "/mentions-legales", - }, - { - label: "Contribuer", - to: "/contribuer", - }, - { - label: "GitHub", - href: "https://github.com/preparation-tp/memento-dev", - }, - ], - }, - ], - copyright: `<span className="text-white/70"> - Créé avec ❤️ par - <a - className="transition-colors hover:text-white hover:no-underline" - href="https://gauthierdaniels.fr" - target="_blank" - > - Gauthier Daniels - </a> - </span>`, - }, - prism: { - theme: prismThemes.oneLight, - darkTheme: prismThemes.oneDark, - additionalLanguages: ["php", "nginx", "bash"], - }, - } satisfies Preset.ThemeConfig, -}; - -export default config; diff --git a/old/i18n/fr/code.json b/old/i18n/fr/code.json deleted file mode 100644 index f1584f7..0000000 --- a/old/i18n/fr/code.json +++ /dev/null @@ -1,289 +0,0 @@ -{ - "theme.tags.tagsPageLink": { - "message": "Voir tous les tags", - "description": "The label of the link targeting the tag list page" - }, - "theme.NotFound.title": { - "message": "Page introuvable", - "description": "The title of the 404 page" - }, - "theme.NotFound.p1": { - "message": "Nous n'avons pas trouvé ce que vous recherchez.", - "description": "The first paragraph of the 404 page" - }, - "theme.NotFound.p2": { - "message": "Veuillez contacter le propriétaire du site qui vous a lié à l'URL d'origine et leur faire savoir que leur lien est cassé.", - "description": "The 2nd paragraph of the 404 page" - }, - "theme.ErrorPageContent.title": { - "message": "Cette page a planté.", - "description": "The title of the fallback page when the page crashed" - }, - "theme.BackToTopButton.buttonAriaLabel": { - "message": "Retour au début de la page", - "description": "The ARIA label for the back to top button" - }, - "theme.blog.archive.title": { - "message": "Archive", - "description": "The page & hero title of the blog archive page" - }, - "theme.blog.archive.description": { - "message": "Archive", - "description": "The page & hero description of the blog archive page" - }, - "theme.blog.paginator.navAriaLabel": { - "message": "Pagination de la liste des articles du blog", - "description": "The ARIA label for the blog pagination" - }, - "theme.blog.paginator.newerEntries": { - "message": "Nouvelles entrées", - "description": "The label used to navigate to the newer blog posts page (previous page)" - }, - "theme.blog.paginator.olderEntries": { - "message": "Anciennes entrées", - "description": "The label used to navigate to the older blog posts page (next page)" - }, - "theme.blog.post.paginator.navAriaLabel": { - "message": "Pagination des articles du blog", - "description": "The ARIA label for the blog posts pagination" - }, - "theme.blog.post.paginator.newerPost": { - "message": "Article plus récent", - "description": "The blog post button label to navigate to the newer/previous post" - }, - "theme.blog.post.paginator.olderPost": { - "message": "Article plus ancien", - "description": "The blog post button label to navigate to the older/next post" - }, - "theme.blog.post.plurals": { - "message": "Un article|{count} articles", - "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" - }, - "theme.blog.tagTitle": { - "message": "{nPosts} tagués avec « {tagName} »", - "description": "The title of the page for a blog tag" - }, - "theme.colorToggle.ariaLabel": { - "message": "Basculer entre le mode sombre et clair (actuellement {mode})", - "description": "The ARIA label for the navbar color mode toggle" - }, - "theme.colorToggle.ariaLabel.mode.dark": { - "message": "mode sombre", - "description": "The name for the dark color mode" - }, - "theme.colorToggle.ariaLabel.mode.light": { - "message": "mode clair", - "description": "The name for the light color mode" - }, - "theme.docs.breadcrumbs.navAriaLabel": { - "message": "Fil d'Ariane", - "description": "The ARIA label for the breadcrumbs" - }, - "theme.docs.DocCard.categoryDescription.plurals": { - "message": "1 élément|{count} éléments", - "description": "The default description for a category card in the generated index about how many items this category includes" - }, - "theme.docs.paginator.navAriaLabel": { - "message": "Pages de documentation", - "description": "The ARIA label for the docs pagination" - }, - "theme.docs.paginator.previous": { - "message": "Précédent", - "description": "The label used to navigate to the previous doc" - }, - "theme.docs.paginator.next": { - "message": "Suivant", - "description": "The label used to navigate to the next doc" - }, - "theme.docs.tagDocListPageTitle.nDocsTagged": { - "message": "Un document tagué|{count} documents tagués", - "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" - }, - "theme.docs.tagDocListPageTitle": { - "message": "{nDocsTagged} avec \"{tagName}\"", - "description": "The title of the page for a docs tag" - }, - "theme.docs.versionBadge.label": { - "message": "Version: {versionLabel}" - }, - "theme.docs.versions.unreleasedVersionLabel": { - "message": "Ceci est la documentation de la prochaine version {versionLabel} de {siteTitle}.", - "description": "The label used to tell the user that he's browsing an unreleased doc version" - }, - "theme.docs.versions.unmaintainedVersionLabel": { - "message": "Ceci est la documentation de {siteTitle} {versionLabel}, qui n'est plus activement maintenue.", - "description": "The label used to tell the user that he's browsing an unmaintained doc version" - }, - "theme.docs.versions.latestVersionSuggestionLabel": { - "message": "Pour une documentation à jour, consultez la {latestVersionLink} ({versionLabel}).", - "description": "The label used to tell the user to check the latest version" - }, - "theme.docs.versions.latestVersionLinkLabel": { - "message": "dernière version", - "description": "The label used for the latest version suggestion link label" - }, - "theme.common.editThisPage": { - "message": "Éditer cette page", - "description": "The link label to edit the current page" - }, - "theme.common.headingLinkTitle": { - "message": "Lien direct vers {heading}", - "description": "Title for link to heading" - }, - "theme.lastUpdated.atDate": { - "message": " le {date}", - "description": "The words used to describe on which date a page has been last updated" - }, - "theme.lastUpdated.byUser": { - "message": " par {user}", - "description": "The words used to describe by who the page has been last updated" - }, - "theme.lastUpdated.lastUpdatedAtBy": { - "message": "Dernière mise à jour{atDate}{byUser}", - "description": "The sentence used to display when a page has been last updated, and by who" - }, - "theme.navbar.mobileVersionsDropdown.label": { - "message": "Versions", - "description": "The label for the navbar versions dropdown on mobile view" - }, - "theme.tags.tagsListLabel": { - "message": "Tags :", - "description": "The label alongside a tag list" - }, - "theme.admonition.caution": { - "message": "attention", - "description": "The default label used for the Caution admonition (:::caution)" - }, - "theme.admonition.danger": { - "message": "danger", - "description": "The default label used for the Danger admonition (:::danger)" - }, - "theme.admonition.info": { - "message": "info", - "description": "The default label used for the Info admonition (:::info)" - }, - "theme.admonition.note": { - "message": "remarque", - "description": "The default label used for the Note admonition (:::note)" - }, - "theme.admonition.tip": { - "message": "astuce", - "description": "The default label used for the Tip admonition (:::tip)" - }, - "theme.admonition.warning": { - "message": "attention", - "description": "The default label used for the Warning admonition (:::warning)" - }, - "theme.AnnouncementBar.closeButtonAriaLabel": { - "message": "Fermer", - "description": "The ARIA label for close button of announcement bar" - }, - "theme.blog.sidebar.navAriaLabel": { - "message": "Navigation article de blog récent", - "description": "The ARIA label for recent posts in the blog sidebar" - }, - "theme.CodeBlock.copied": { - "message": "Copié", - "description": "The copied button label on code blocks" - }, - "theme.CodeBlock.copyButtonAriaLabel": { - "message": "Copier le code", - "description": "The ARIA label for copy code blocks button" - }, - "theme.CodeBlock.copy": { - "message": "Copier", - "description": "The copy button label on code blocks" - }, - "theme.CodeBlock.wordWrapToggle": { - "message": "Activer/désactiver le retour à la ligne", - "description": "The title attribute for toggle word wrapping button of code block lines" - }, - "theme.DocSidebarItem.expandCategoryAriaLabel": { - "message": "Développer la catégorie '{label}' de la barre latérale", - "description": "The ARIA label to expand the sidebar category" - }, - "theme.DocSidebarItem.collapseCategoryAriaLabel": { - "message": "Réduire la catégorie '{label}' de la barre latérale", - "description": "The ARIA label to collapse the sidebar category" - }, - "theme.NavBar.navAriaLabel": { - "message": "Main", - "description": "The ARIA label for the main navigation" - }, - "theme.navbar.mobileLanguageDropdown.label": { - "message": "Langues", - "description": "The label for the mobile language switcher dropdown" - }, - "theme.TOCCollapsible.toggleButtonLabel": { - "message": "Sur cette page", - "description": "The label used by the button on the collapsible TOC component" - }, - "theme.blog.post.readMore": { - "message": "Lire plus", - "description": "The label used in blog post item excerpts to link to full blog posts" - }, - "theme.blog.post.readMoreLabel": { - "message": "En savoir plus sur {title}", - "description": "The ARIA label for the link to full blog posts from excerpts" - }, - "theme.blog.post.readingTime.plurals": { - "message": "Une minute de lecture|{readingTime} minutes de lecture", - "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" - }, - "theme.docs.breadcrumbs.home": { - "message": "Page d'accueil", - "description": "The ARIA label for the home page in the breadcrumbs" - }, - "theme.docs.sidebar.collapseButtonTitle": { - "message": "Réduire le menu latéral", - "description": "The title attribute for collapse button of doc sidebar" - }, - "theme.docs.sidebar.collapseButtonAriaLabel": { - "message": "Réduire le menu latéral", - "description": "The title attribute for collapse button of doc sidebar" - }, - "theme.docs.sidebar.navAriaLabel": { - "message": "Docs sidebar", - "description": "The ARIA label for the sidebar navigation" - }, - "theme.docs.sidebar.closeSidebarButtonAriaLabel": { - "message": "Fermer la barre de navigation", - "description": "The ARIA label for close button of mobile sidebar" - }, - "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { - "message": "← Retour au menu principal", - "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" - }, - "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { - "message": "Ouvrir/fermer la barre de navigation", - "description": "The ARIA label for hamburger menu button of mobile navigation" - }, - "theme.docs.sidebar.expandButtonTitle": { - "message": "Déplier le menu latéral", - "description": "The ARIA label and title attribute for expand button of doc sidebar" - }, - "theme.docs.sidebar.expandButtonAriaLabel": { - "message": "Déplier le menu latéral", - "description": "The ARIA label and title attribute for expand button of doc sidebar" - }, - "theme.ErrorPageContent.tryAgain": { - "message": "Réessayer", - "description": "The label of the button to try again rendering when the React error boundary captures an error" - }, - "theme.common.skipToMainContent": { - "message": "Aller au contenu principal", - "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" - }, - "theme.tags.tagsPageTitle": { - "message": "Tags", - "description": "The title of the tag list page" - }, - "theme.unlistedContent.title": { - "message": "Page non répertoriée", - "description": "The unlisted content banner title" - }, - "theme.unlistedContent.message": { - "message": "Cette page n'est pas répertoriée. Les moteurs de recherche ne l'indexeront pas, et seuls les utilisateurs ayant un lien direct peuvent y accéder.", - "description": "The unlisted content banner message" - } -} diff --git a/old/i18n/fr/docusaurus-plugin-content-docs/current.json b/old/i18n/fr/docusaurus-plugin-content-docs/current.json deleted file mode 100644 index 2688d89..0000000 --- a/old/i18n/fr/docusaurus-plugin-content-docs/current.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version.label": { - "message": "Next", - "description": "The label for version current" - }, - "sidebar.tutorialSidebar.category.📖 Glossaires": { - "message": "📖 Glossaires", - "description": "The label for category 📖 Glossaires in sidebar tutorialSidebar" - }, - "sidebar.tutorialSidebar.category.🎓 Titres professionnels": { - "message": "🎓 Titres professionnels", - "description": "The label for category 🎓 Titres professionnels in sidebar tutorialSidebar" - }, - "sidebar.tutorialSidebar.category.🎓 Titres professionnels.link.generated-index.description": { - "message": "Tu retrouveras ici l'ensemble des titres professionnels couverts par la plateforme Memento Dev.", - "description": "The generated-index page description for category 🎓 Titres professionnels in sidebar tutorialSidebar" - }, - "sidebar.tutorialSidebar.category.🧑‍💻 DWWM": { - "message": "🧑‍💻 DWWM", - "description": "The label for category 🧑‍💻 DWWM in sidebar tutorialSidebar" - }, - "sidebar.tutorialSidebar.category.Activité Type 1": { - "message": "Activité Type 1", - "description": "The label for category Activité Type 1 in sidebar tutorialSidebar" - }, - "sidebar.tutorialSidebar.category.Activité Type 2": { - "message": "Activité Type 2", - "description": "The label for category Activité Type 2 in sidebar tutorialSidebar" - }, - "sidebar.tutorialSidebar.category.🗃️ Archives": { - "message": "🗃️ Archives", - "description": "The label for category 🗃️ Archives in sidebar tutorialSidebar" - }, - "sidebar.tutorialSidebar.category.🗃️ Archives.link.generated-index.description": { - "message": "Archives des différents référentiels arrivés à expiration.", - "description": "The generated-index page description for category 🗃️ Archives in sidebar tutorialSidebar" - }, - "sidebar.tutorialSidebar.category.DWWM": { - "message": "DWWM", - "description": "The label for category DWWM in sidebar tutorialSidebar" - }, - "sidebar.tutorialSidebar.category.2018-2023": { - "message": "2018-2023", - "description": "The label for category 2018-2023 in sidebar tutorialSidebar" - }, - "sidebar.tutorialSidebar.category.AT1": { - "message": "AT1", - "description": "The label for category AT1 in sidebar tutorialSidebar" - }, - "sidebar.tutorialSidebar.category.AT2": { - "message": "AT2", - "description": "The label for category AT2 in sidebar tutorialSidebar" - }, - "sidebar.tutorialSidebar.category.📁 Ressources": { - "message": "📁 Ressources", - "description": "The label for category 📁 Ressources in sidebar tutorialSidebar" - }, - "sidebar.tutorialSidebar.category.💽 Bases de données": { - "message": "💽 Bases de données", - "description": "The label for category 💽 Bases de données in sidebar tutorialSidebar" - }, - "sidebar.tutorialSidebar.category.Modélisation": { - "message": "Modélisation", - "description": "The label for category Modélisation in sidebar tutorialSidebar" - } -} diff --git a/old/i18n/fr/docusaurus-theme-classic/footer.json b/old/i18n/fr/docusaurus-theme-classic/footer.json deleted file mode 100644 index 5ed1e25..0000000 --- a/old/i18n/fr/docusaurus-theme-classic/footer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "link.title.Ressources": { - "message": "Ressources", - "description": "The title of the footer links column with title=Ressources in the footer" - }, - "link.title.Titres professionnels": { - "message": "Titres professionnels", - "description": "The title of the footer links column with title=Titres professionnels in the footer" - }, - "link.title.Memento Dev": { - "message": "Memento Dev", - "description": "The title of the footer links column with title=Memento Dev in the footer" - }, - "link.item.label.Préambule": { - "message": "Préambule", - "description": "The label of footer link with label=Préambule linking to /intro" - }, - "link.item.label.Bases de données": { - "message": "Bases de données", - "description": "The label of footer link with label=Bases de données linking to /category/-bases-de-données" - }, - "link.item.label.DWWM": { - "message": "DWWM", - "description": "The label of footer link with label=DWWM linking to /titres-professionnels/DWWM/intro" - }, - "link.item.label.Archives": { - "message": "Archives", - "description": "The label of footer link with label=Archives linking to /category/%EF%B8%8F-archives" - }, - "link.item.label.Mentions légales": { - "message": "Mentions légales", - "description": "The label of footer link with label=Mentions légales linking to /mentions-legales" - }, - "link.item.label.Contribuer": { - "message": "Contribuer", - "description": "The label of footer link with label=Contribuer linking to /contribuer" - }, - "link.item.label.GitHub": { - "message": "GitHub", - "description": "The label of footer link with label=GitHub linking to https://github.com/preparation-tp/memento-dev" - }, - "copyright": { - "message": "<span className=\"text-white/70\">\n Créé avec ❤️ par\n <a\n className=\"transition-colors hover:text-white hover:no-underline\"\n href=\"https://gauthierdaniels.fr\"\n target=\"_blank\"\n >\n Gauthier Daniels\n </a>\n </span>", - "description": "The footer copyright" - } -} diff --git a/old/i18n/fr/docusaurus-theme-classic/navbar.json b/old/i18n/fr/docusaurus-theme-classic/navbar.json deleted file mode 100644 index 90456d5..0000000 --- a/old/i18n/fr/docusaurus-theme-classic/navbar.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "title": { - "message": "Memento Dev", - "description": "The title in the navbar" - }, - "logo.alt": { - "message": "Logo Memento Dev", - "description": "The alt text of navbar logo" - }, - "item.label.Documentation": { - "message": "Documentation", - "description": "Navbar item with label Documentation" - }, - "item.label.Ressources": { - "message": "Ressources", - "description": "Navbar item with label Ressources" - }, - "item.label.Titres professionnels": { - "message": "Titres professionnels", - "description": "Navbar item with label Titres professionnels" - }, - "item.label.GitHub": { - "message": "GitHub", - "description": "Navbar item with label GitHub" - }, - "item.label.Préambule": { - "message": "Préambule", - "description": "Navbar item with label Préambule" - }, - "item.label.Bases de données": { - "message": "Bases de données", - "description": "Navbar item with label Bases de données" - }, - "item.label.DWWM": { - "message": "DWWM", - "description": "Navbar item with label DWWM" - }, - "item.label.Archives": { - "message": "Archives", - "description": "Navbar item with label Archives" - } -} diff --git a/old/package.json b/old/package.json deleted file mode 100644 index a914056..0000000 --- a/old/package.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "name": "memento-dev", - "version": "0.0.1", - "private": true, - "scripts": { - "docusaurus": "docusaurus", - "start": "docusaurus start", - "build": "docusaurus build", - "swizzle": "docusaurus swizzle", - "deploy": "docusaurus deploy", - "clear": "docusaurus clear", - "serve": "docusaurus serve", - "write-translations": "docusaurus write-translations", - "write-heading-ids": "docusaurus write-heading-ids", - "typecheck": "tsc" - }, - "dependencies": { - "@docusaurus/core": "3.6.1", - "@docusaurus/plugin-content-blog": "^3.6.1", - "@docusaurus/plugin-content-docs": "^3.6.1", - "@docusaurus/plugin-pwa": "^3.6.1", - "@docusaurus/plugin-sitemap": "^3.6.1", - "@docusaurus/preset-classic": "3.6.1", - "@docusaurus/theme-classic": "^3.6.1", - "@docusaurus/theme-common": "^3.6.1", - "@docusaurus/theme-mermaid": "^3.6.1", - "@mdx-js/react": "^3.0.0", - "autocomplete.js": "^0.38.1", - "autoprefixer": "^10.4.19", - "clsx": "^2.0.0", - "docusaurus-lunr-search": "^3.4.0", - "hogan.js": "^3.0.2", - "lunr": "^2.3.9", - "lunr-languages": "^1.14.0", - "mark.js": "^8.11.1", - "postcss": "^8.4.39", - "prism-react-renderer": "^2.3.0", - "prismjs": "^1.29.0", - "react": "^18.0.0", - "react-dom": "^18.0.0", - "react-markdown": "^9.0.1", - "tailwindcss": "^3.4.4" - }, - "devDependencies": { - "@docusaurus/module-type-aliases": "3.6.1", - "@docusaurus/tsconfig": "3.6.1", - "@docusaurus/types": "3.6.1", - "@types/node": "^20.14.9", - "typescript": "~5.2.2" - }, - "browserslist": { - "production": [ - ">0.5%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 3 chrome version", - "last 3 firefox version", - "last 5 safari version" - ] - }, - "engines": { - "node": ">=18.0" - } -} diff --git a/old/pnpm-lock.yaml b/old/pnpm-lock.yaml deleted file mode 100644 index 6fa6840..0000000 --- a/old/pnpm-lock.yaml +++ /dev/null @@ -1,12900 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@docusaurus/core': - specifier: 3.6.1 - version: 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/plugin-content-blog': - specifier: ^3.6.1 - version: 3.6.1(@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/plugin-content-docs': - specifier: ^3.6.1 - version: 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/plugin-pwa': - specifier: ^3.6.1 - version: 3.6.1(@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/plugin-sitemap': - specifier: ^3.6.1 - version: 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/preset-classic': - specifier: 3.6.1 - version: 3.6.1(@algolia/client-search@4.24.0)(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0)(typescript@5.2.2) - '@docusaurus/theme-classic': - specifier: ^3.6.1 - version: 3.6.1(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/theme-common': - specifier: ^3.6.1 - version: 3.6.1(@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/theme-mermaid': - specifier: ^3.6.1 - version: 3.6.1(@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@mdx-js/react': - specifier: ^3.0.0 - version: 3.0.1(@types/react@18.3.3)(react@18.3.1) - autocomplete.js: - specifier: ^0.38.1 - version: 0.38.1 - autoprefixer: - specifier: ^10.4.19 - version: 10.4.19(postcss@8.4.39) - clsx: - specifier: ^2.0.0 - version: 2.1.1 - docusaurus-lunr-search: - specifier: ^3.4.0 - version: 3.4.0(@docusaurus/core@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - hogan.js: - specifier: ^3.0.2 - version: 3.0.2 - lunr: - specifier: ^2.3.9 - version: 2.3.9 - lunr-languages: - specifier: ^1.14.0 - version: 1.14.0 - mark.js: - specifier: ^8.11.1 - version: 8.11.1 - postcss: - specifier: ^8.4.39 - version: 8.4.39 - prism-react-renderer: - specifier: ^2.3.0 - version: 2.3.1(react@18.3.1) - prismjs: - specifier: ^1.29.0 - version: 1.29.0 - react: - specifier: ^18.0.0 - version: 18.3.1 - react-dom: - specifier: ^18.0.0 - version: 18.3.1(react@18.3.1) - react-markdown: - specifier: ^9.0.1 - version: 9.0.1(@types/react@18.3.3)(react@18.3.1) - tailwindcss: - specifier: ^3.4.4 - version: 3.4.4 - devDependencies: - '@docusaurus/module-type-aliases': - specifier: 3.6.1 - version: 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/tsconfig': - specifier: 3.6.1 - version: 3.6.1 - '@docusaurus/types': - specifier: 3.6.1 - version: 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@types/node': - specifier: ^20.14.9 - version: 20.14.9 - typescript: - specifier: ~5.2.2 - version: 5.2.2 - -packages: - - '@algolia/autocomplete-core@1.9.3': - resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} - - '@algolia/autocomplete-plugin-algolia-insights@1.9.3': - resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} - peerDependencies: - search-insights: '>= 1 < 3' - - '@algolia/autocomplete-preset-algolia@1.9.3': - resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' - - '@algolia/autocomplete-shared@1.9.3': - resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' - - '@algolia/cache-browser-local-storage@4.24.0': - resolution: {integrity: sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==} - - '@algolia/cache-common@4.24.0': - resolution: {integrity: sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==} - - '@algolia/cache-in-memory@4.24.0': - resolution: {integrity: sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==} - - '@algolia/client-account@4.24.0': - resolution: {integrity: sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==} - - '@algolia/client-analytics@4.24.0': - resolution: {integrity: sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==} - - '@algolia/client-common@4.24.0': - resolution: {integrity: sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==} - - '@algolia/client-personalization@4.24.0': - resolution: {integrity: sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==} - - '@algolia/client-search@4.24.0': - resolution: {integrity: sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==} - - '@algolia/events@4.0.1': - resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} - - '@algolia/logger-common@4.24.0': - resolution: {integrity: sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==} - - '@algolia/logger-console@4.24.0': - resolution: {integrity: sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==} - - '@algolia/recommend@4.24.0': - resolution: {integrity: sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==} - - '@algolia/requester-browser-xhr@4.24.0': - resolution: {integrity: sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==} - - '@algolia/requester-common@4.24.0': - resolution: {integrity: sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==} - - '@algolia/requester-node-http@4.24.0': - resolution: {integrity: sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==} - - '@algolia/transporter@4.24.0': - resolution: {integrity: sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==} - - '@alloc/quick-lru@5.2.0': - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@apideck/better-ajv-errors@0.3.6': - resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==} - engines: {node: '>=10'} - peerDependencies: - ajv: '>=8' - - '@babel/code-frame@7.26.2': - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.26.2': - resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.26.0': - resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.26.2': - resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-annotate-as-pure@7.25.9': - resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-builder-binary-assignment-operator-visitor@7.25.9': - resolution: {integrity: sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.25.9': - resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-create-class-features-plugin@7.25.9': - resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-create-regexp-features-plugin@7.25.9': - resolution: {integrity: sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-define-polyfill-provider@0.6.2': - resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - '@babel/helper-member-expression-to-functions@7.25.9': - resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-optimise-call-expression@7.25.9': - resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.25.9': - resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-remap-async-to-generator@7.25.9': - resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-replace-supers@7.25.9': - resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-simple-access@7.25.9': - resolution: {integrity: sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==} - engines: {node: '>=6.9.0'} - - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': - resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-wrap-function@7.25.9': - resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.26.0': - resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.26.2': - resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': - resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9': - resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9': - resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9': - resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9': - resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-dynamic-import@7.8.3': - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-assertions@7.26.0': - resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-attributes@7.26.0': - resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.25.9': - resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.25.9': - resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-arrow-functions@7.25.9': - resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-generator-functions@7.25.9': - resolution: {integrity: sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-to-generator@7.25.9': - resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoped-functions@7.25.9': - resolution: {integrity: sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoping@7.25.9': - resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-properties@7.25.9': - resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-static-block@7.26.0': - resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - - '@babel/plugin-transform-classes@7.25.9': - resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-computed-properties@7.25.9': - resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-destructuring@7.25.9': - resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-dotall-regex@7.25.9': - resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-keys@7.25.9': - resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9': - resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-dynamic-import@7.25.9': - resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-exponentiation-operator@7.25.9': - resolution: {integrity: sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-export-namespace-from@7.25.9': - resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-for-of@7.25.9': - resolution: {integrity: sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-function-name@7.25.9': - resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-json-strings@7.25.9': - resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-literals@7.25.9': - resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-logical-assignment-operators@7.25.9': - resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-member-expression-literals@7.25.9': - resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-amd@7.25.9': - resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-commonjs@7.25.9': - resolution: {integrity: sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-systemjs@7.25.9': - resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-umd@7.25.9': - resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9': - resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-new-target@7.25.9': - resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9': - resolution: {integrity: sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-numeric-separator@7.25.9': - resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-rest-spread@7.25.9': - resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-super@7.25.9': - resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-catch-binding@7.25.9': - resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-chaining@7.25.9': - resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-parameters@7.25.9': - resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-methods@7.25.9': - resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-property-in-object@7.25.9': - resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-property-literals@7.25.9': - resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-constant-elements@7.24.7': - resolution: {integrity: sha512-7LidzZfUXyfZ8/buRW6qIIHBY8wAZ1OrY9c/wTr8YhZ6vMPo+Uc/CVFLYY1spZrEQlD4w5u8wjqk5NQ3OVqQKA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-display-name@7.25.9': - resolution: {integrity: sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-development@7.25.9': - resolution: {integrity: sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx@7.25.9': - resolution: {integrity: sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-pure-annotations@7.25.9': - resolution: {integrity: sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-regenerator@7.25.9': - resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-regexp-modifiers@7.26.0': - resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-reserved-words@7.25.9': - resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-runtime@7.25.9': - resolution: {integrity: sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-shorthand-properties@7.25.9': - resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-spread@7.25.9': - resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-sticky-regex@7.25.9': - resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-template-literals@7.25.9': - resolution: {integrity: sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typeof-symbol@7.25.9': - resolution: {integrity: sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typescript@7.25.9': - resolution: {integrity: sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-escapes@7.25.9': - resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-property-regex@7.25.9': - resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-regex@7.25.9': - resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-sets-regex@7.25.9': - resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/preset-env@7.26.0': - resolution: {integrity: sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - - '@babel/preset-react@7.25.9': - resolution: {integrity: sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-typescript@7.26.0': - resolution: {integrity: sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/runtime-corejs3@7.26.0': - resolution: {integrity: sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w==} - engines: {node: '>=6.9.0'} - - '@babel/runtime@7.26.0': - resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.25.9': - resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.25.9': - resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.26.0': - resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} - engines: {node: '>=6.9.0'} - - '@braintree/sanitize-url@6.0.4': - resolution: {integrity: sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==} - - '@colors/colors@1.5.0': - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} - - '@discoveryjs/json-ext@0.5.7': - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} - engines: {node: '>=10.0.0'} - - '@docsearch/css@3.6.0': - resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==} - - '@docsearch/react@3.6.0': - resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==} - peerDependencies: - '@types/react': '>= 16.8.0 < 19.0.0' - react: '>= 16.8.0 < 19.0.0' - react-dom: '>= 16.8.0 < 19.0.0' - search-insights: '>= 1 < 3' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - react-dom: - optional: true - search-insights: - optional: true - - '@docusaurus/babel@3.6.1': - resolution: {integrity: sha512-JcKaunW8Ml2nTnfnvFc55T00Y+aCpNWnf1KY/gG+wWxHYDH0IdXOOz+k6NAlEAerW8+VYLfUqRIqHZ7N/DVXvQ==} - engines: {node: '>=18.0'} - - '@docusaurus/bundler@3.6.1': - resolution: {integrity: sha512-vHSEx8Ku9x/gfIC6k4xb8J2nTxagLia0KvZkPZhxfkD1+n8i+Dj4BZPWTmv+kCA17RbgAvECG0XRZ0/ZEspQBQ==} - engines: {node: '>=18.0'} - peerDependencies: - '@docusaurus/faster': '*' - peerDependenciesMeta: - '@docusaurus/faster': - optional: true - - '@docusaurus/core@3.6.1': - resolution: {integrity: sha512-cDKxPihiM2z7G+4QtpTczS7uxNfNG6naSqM65OmAJET0CFRHbc9mDlLFtQF0lsVES91SHqfcGaaLZmi2FjdwWA==} - engines: {node: '>=18.0'} - hasBin: true - peerDependencies: - '@mdx-js/react': ^3.0.0 - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/cssnano-preset@3.6.1': - resolution: {integrity: sha512-ZxYUmNeyQHW2w4/PJ7d07jQDuxzmKr9uPAQ6IVe5dTkeIeV0mDBB3jOLeJkNoI42Ru9JKEqQ9aVDtM9ct6QHnw==} - engines: {node: '>=18.0'} - - '@docusaurus/logger@3.6.1': - resolution: {integrity: sha512-OvetI/nnOMBSqCkUzKAQhnIjhxduECK4qTu3tq/8/h/qqvLsvKURojm04WPE54L+Uy+UXMas0hnbBJd8zDlEOw==} - engines: {node: '>=18.0'} - - '@docusaurus/mdx-loader@3.6.1': - resolution: {integrity: sha512-KPIsYi0S3X3/rNrW3V1fgOu5t6ahYWc31zTHHod8pacFxdmk9Uf6uuw+Jd6Cly1ilgal+41Ku+s0gmMuqKqiqg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/module-type-aliases@3.6.1': - resolution: {integrity: sha512-J+q1jgm7TnEfVIUZImSFeLA1rghb6nwtoB9siHdcgKpDqFJ9/S7xhQL2aEKE7iZMZYzpu+2F390E9A7GkdEJNA==} - peerDependencies: - react: '*' - react-dom: '*' - - '@docusaurus/plugin-content-blog@3.6.1': - resolution: {integrity: sha512-FUmsn3xg/XD/K/4FQd8XHrs92aQdZO5LUtpHnRvO1/6DY87SMz6B6ERAN9IGQQld//M2/LVTHkZy8oVhQZQHIQ==} - engines: {node: '>=18.0'} - peerDependencies: - '@docusaurus/plugin-content-docs': '*' - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/plugin-content-docs@3.6.1': - resolution: {integrity: sha512-Uq8kyn5DYCDmkUlB9sWChhWghS4lUFNiQU+RXcAXJ3qCVXsBpPsh6RF+npQG1N+j4wAbjydM1iLLJJzp+x3eMQ==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/plugin-content-pages@3.6.1': - resolution: {integrity: sha512-TZtL+2zq20gqGalzoIT2rEF1T4YCZ26jTvlCJXs78+incIajfdHtmdOq7rQW0oV7oqTjpGllbp788nY/vY9jgw==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/plugin-debug@3.6.1': - resolution: {integrity: sha512-DeKPZtoVExDSYCbzoz7y5Dhc6+YPqRWfVGwEEUyKopSyQYefp0OV8hvASmbJCn2WyThRgspOUhog3FSEhz+agw==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/plugin-google-analytics@3.6.1': - resolution: {integrity: sha512-ZEoERiDHxSfhaEeT35ukQ892NzGHWiUvfxUsnPiRuGEhMoQlxMSp60shBuSZ1sUKuZlndoEl5qAXJg09Wls/Sg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/plugin-google-gtag@3.6.1': - resolution: {integrity: sha512-u/E9vXUsZxYaV6Brvfee8NiH/iR0cMml9P/ifz4EpH/Jfxdbw8rbCT0Nm/h7EFgEY48Uqkl5huSbIvFB9n8aTQ==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/plugin-google-tag-manager@3.6.1': - resolution: {integrity: sha512-By+NKkGYV8tSo8/RyS1OXikOtqsko5jJZ/uioJfBjsBGgSbiMJ+Y/HogFBke0mgSvf7NPGKZTbYm5+FJ8YUtPQ==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/plugin-pwa@3.6.1': - resolution: {integrity: sha512-GsbpsgpAwdBpDpeVzk3UPNUQAc0oGU+0GL5s1LmFgqfpql5C7ZnkwD9FmW6lvieabQjC+Ga0d0zDqu20coqIRQ==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/plugin-sitemap@3.6.1': - resolution: {integrity: sha512-i8R/GTKew4Cufb+7YQTwfPcNOhKTJzZ1VZ5OqQwI9c3pZK2TltQyhqKDVN94KCTbSSKvOYYytYfRAB2uPnH1/A==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/preset-classic@3.6.1': - resolution: {integrity: sha512-b90Y1XRH9e+oa/E3NmiFEFOwgYUd+knFcZUy81nM3FJs038WbEA0T55NQsuPW0s7nOsCShQ7dVFyKxV+Wp31Nw==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/react-loadable@6.0.0': - resolution: {integrity: sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==} - peerDependencies: - react: '*' - - '@docusaurus/theme-classic@3.6.1': - resolution: {integrity: sha512-5lVUmIXk7zp+n9Ki2lYWrmhbd6mssOlKCnnDJvY4QDi3EgjRisIu5g4yKXoWTIbiqE7m7q/dS9cbeShEtfkKng==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/theme-common@3.6.1': - resolution: {integrity: sha512-18iEYNpMvarGfq9gVRpGowSZD24vZ39Iz4acqaj64180i54V9el8tVnhNr/wRvrUm1FY30A1NHLqnMnDz4rYEQ==} - engines: {node: '>=18.0'} - peerDependencies: - '@docusaurus/plugin-content-docs': '*' - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/theme-mermaid@3.6.1': - resolution: {integrity: sha512-ke00/VSFibzucbr64JXwPWsiu66zcqI8mnEbbmPSV1Yby5FRsfGQqcE+1cvUkAOVCl+zX8RNjv8vrRb4ilQDLQ==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/theme-search-algolia@3.6.1': - resolution: {integrity: sha512-BjmuiFRpQP1WEm8Mzu1Bb0Wdas6G65VHXDDNr7XTKgbstxalE6vuxt0ioXTDFS2YVep5748aVhKvnxR9gm2Liw==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/theme-translations@3.6.1': - resolution: {integrity: sha512-bNm5G6sueUezvyhsBegA1wwM38yW0BnqpZTE9KHO2yKnkERNMaV5x/yPJ/DNCOHjJtCcJ5Uz55g2AS75Go31xA==} - engines: {node: '>=18.0'} - - '@docusaurus/tsconfig@3.6.1': - resolution: {integrity: sha512-RvjMG9M9YK8N/I5oudqJed8jjfWGI7csr4XCkGXBToNkkoi2QgkTz2DxH+obKdfLejQaASdIMynYaE5Lv7Qw9Q==} - - '@docusaurus/types@3.6.1': - resolution: {integrity: sha512-hCB1hj9DYutVYBisnPNobz9SzEmCcf1EetJv09O49Cov3BqOkm+vnnjB3d957YJMtpLGQoKBeN/FF1DZ830JwQ==} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/utils-common@3.6.1': - resolution: {integrity: sha512-LX1qiTiC0aS8c92uZ+Wj2iNCNJyYZJIKY8/nZDKNMBfo759VYVS3RX3fKP3DznB+16sYp7++MyCz/T6fOGaRfw==} - engines: {node: '>=18.0'} - - '@docusaurus/utils-validation@3.6.1': - resolution: {integrity: sha512-+iMd6zRl5cJQm7nUP+7pSO/oAXsN79eHO34ME7l2YJt4GEAr70l5kkD58u2jEPpp+wSXT70c7x2A2lzJI1E8jw==} - engines: {node: '>=18.0'} - - '@docusaurus/utils@3.6.1': - resolution: {integrity: sha512-nS3WCvepwrnBEgSG5vQu40XG95lC9Jeh/odV5u5IhU1eQFEGDst9xBi6IK5yZdsGvbuaXBZLZtOqWYtuuFa/rQ==} - engines: {node: '>=18.0'} - - '@hapi/hoek@9.3.0': - resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} - - '@hapi/topo@5.1.0': - resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/source-map@0.3.6': - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@leichtgewicht/ip-codec@2.0.5': - resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} - - '@mdx-js/mdx@3.0.1': - resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} - - '@mdx-js/react@3.0.1': - resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} - peerDependencies: - '@types/react': '>=16' - react: '>=16' - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@pnpm/config.env-replace@1.1.0': - resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} - engines: {node: '>=12.22.0'} - - '@pnpm/network.ca-file@1.0.2': - resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} - engines: {node: '>=12.22.0'} - - '@pnpm/npm-conf@2.2.2': - resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} - engines: {node: '>=12'} - - '@polka/url@1.0.0-next.25': - resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} - - '@rollup/plugin-babel@5.3.1': - resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} - engines: {node: '>= 10.0.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@types/babel__core': ^7.1.9 - rollup: ^1.20.0||^2.0.0 - peerDependenciesMeta: - '@types/babel__core': - optional: true - - '@rollup/plugin-node-resolve@15.3.0': - resolution: {integrity: sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-replace@2.4.2': - resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} - peerDependencies: - rollup: ^1.20.0 || ^2.0.0 - - '@rollup/plugin-terser@0.4.4': - resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/pluginutils@3.1.0': - resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} - engines: {node: '>= 8.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 - - '@rollup/pluginutils@5.1.3': - resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@sideway/address@4.1.5': - resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} - - '@sideway/formula@3.0.1': - resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} - - '@sideway/pinpoint@2.0.0': - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - '@sindresorhus/is@4.6.0': - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - - '@sindresorhus/is@5.6.0': - resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} - engines: {node: '>=14.16'} - - '@slorber/remark-comment@1.0.0': - resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==} - - '@surma/rollup-plugin-off-main-thread@2.2.3': - resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} - - '@svgr/babel-plugin-add-jsx-attribute@8.0.0': - resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0': - resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0': - resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0': - resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-svg-dynamic-title@8.0.0': - resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-svg-em-dimensions@8.0.0': - resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-transform-react-native-svg@8.1.0': - resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-transform-svg-component@8.0.0': - resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} - engines: {node: '>=12'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-preset@8.1.0': - resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/core@8.1.0': - resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} - engines: {node: '>=14'} - - '@svgr/hast-util-to-babel-ast@8.0.0': - resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} - engines: {node: '>=14'} - - '@svgr/plugin-jsx@8.1.0': - resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' - - '@svgr/plugin-svgo@8.1.0': - resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' - - '@svgr/webpack@8.1.0': - resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} - engines: {node: '>=14'} - - '@szmarczak/http-timer@5.0.1': - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} - - '@trysound/sax@0.2.0': - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} - - '@types/acorn@4.0.6': - resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} - - '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - - '@types/bonjour@3.5.13': - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} - - '@types/connect-history-api-fallback@1.5.4': - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} - - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - - '@types/d3-scale-chromatic@3.0.3': - resolution: {integrity: sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==} - - '@types/d3-scale@4.0.8': - resolution: {integrity: sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==} - - '@types/d3-time@3.0.3': - resolution: {integrity: sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==} - - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - - '@types/eslint@8.56.10': - resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} - - '@types/estree-jsx@1.0.5': - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - - '@types/estree@0.0.39': - resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} - - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - - '@types/express-serve-static-core@4.19.5': - resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} - - '@types/express@4.17.21': - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - - '@types/gtag.js@0.0.12': - resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==} - - '@types/hast@2.3.10': - resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} - - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - - '@types/history@4.7.11': - resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} - - '@types/html-minifier-terser@6.1.0': - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} - - '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - - '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - - '@types/http-proxy@1.17.14': - resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} - - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/mdast@3.0.15': - resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} - - '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - - '@types/mdx@2.0.13': - resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - - '@types/ms@0.7.34': - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - - '@types/node-forge@1.3.11': - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - - '@types/node@17.0.45': - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - - '@types/node@20.14.9': - resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==} - - '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - - '@types/parse5@5.0.3': - resolution: {integrity: sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==} - - '@types/prismjs@1.26.4': - resolution: {integrity: sha512-rlAnzkW2sZOjbqZ743IHUhFcvzaGbqijwOu8QZnZCjfQzBqFE3s4lOTJEsxikImav9uzz/42I+O7YUs1mWgMlg==} - - '@types/prop-types@15.7.12': - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - - '@types/qs@6.9.15': - resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} - - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - - '@types/react-router-config@5.0.11': - resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==} - - '@types/react-router-dom@5.3.3': - resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} - - '@types/react-router@5.1.20': - resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} - - '@types/react@18.3.3': - resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} - - '@types/resolve@1.20.2': - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - - '@types/retry@0.12.0': - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - - '@types/sax@1.2.7': - resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} - - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - - '@types/serve-index@1.9.4': - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} - - '@types/serve-static@1.15.7': - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} - - '@types/sockjs@0.3.36': - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} - - '@types/trusted-types@2.0.7': - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - - '@types/unist@2.0.10': - resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} - - '@types/unist@3.0.2': - resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} - - '@types/ws@8.5.10': - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} - - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - '@types/yargs@17.0.32': - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - '@webassemblyjs/ast@1.12.1': - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} - - '@webassemblyjs/floating-point-hex-parser@1.11.6': - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} - - '@webassemblyjs/helper-api-error@1.11.6': - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} - - '@webassemblyjs/helper-buffer@1.12.1': - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} - - '@webassemblyjs/helper-numbers@1.11.6': - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} - - '@webassemblyjs/helper-wasm-bytecode@1.11.6': - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} - - '@webassemblyjs/helper-wasm-section@1.12.1': - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} - - '@webassemblyjs/ieee754@1.11.6': - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} - - '@webassemblyjs/leb128@1.11.6': - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} - - '@webassemblyjs/utf8@1.11.6': - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} - - '@webassemblyjs/wasm-edit@1.12.1': - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} - - '@webassemblyjs/wasm-gen@1.12.1': - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} - - '@webassemblyjs/wasm-opt@1.12.1': - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} - - '@webassemblyjs/wasm-parser@1.12.1': - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} - - '@webassemblyjs/wast-printer@1.12.1': - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} - - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - - abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn-walk@8.3.3: - resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} - engines: {node: '>=0.4.0'} - - acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} - engines: {node: '>=0.4.0'} - hasBin: true - - address@1.2.2: - resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} - engines: {node: '>= 10.0.0'} - - aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 - - ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ajv@8.16.0: - resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} - - algoliasearch-helper@3.22.2: - resolution: {integrity: sha512-3YQ6eo7uYOCHeQ2ZpD+OoT3aJJwMNKEnwtu8WMzm81XmBOSCwRjQditH9CeSOQ38qhHkuGw23pbq+kULkIJLcw==} - peerDependencies: - algoliasearch: '>= 3.1 < 6' - - algoliasearch@4.24.0: - resolution: {integrity: sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==} - - ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - - ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} - engines: {'0': node >= 0.8.0} - hasBin: true - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - - arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} - - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} - engines: {node: '>= 0.4'} - - astring@1.8.6: - resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} - hasBin: true - - async@3.2.6: - resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - - at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - - autocomplete.js@0.37.1: - resolution: {integrity: sha512-PgSe9fHYhZEsm/9jggbjtVsGXJkPLvd+9mC7gZJ662vVL5CRWEtm/mIrrzCx0MrNxHVwxD5d00UOn6NsmL2LUQ==} - - autocomplete.js@0.38.1: - resolution: {integrity: sha512-6pSJzuRMY3pqpozt+SXThl2DmJfma8Bi3SVFbZHS0PW/N72bOUv+Db0jAh2cWOhTsA4X+GNmKvIl8wExJTnN9w==} - - autoprefixer@10.4.19: - resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - - babel-loader@9.2.1: - resolution: {integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==} - engines: {node: '>= 14.15.0'} - peerDependencies: - '@babel/core': ^7.12.0 - webpack: '>=5' - - babel-plugin-dynamic-import-node@2.3.3: - resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} - - babel-plugin-polyfill-corejs2@0.4.11: - resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-corejs3@0.10.6: - resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-regenerator@0.6.2: - resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - bail@1.0.5: - resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} - - bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - - bcp-47-match@1.0.3: - resolution: {integrity: sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w==} - - big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - bonjour-service@1.2.1: - resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} - - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - - boxen@6.2.1: - resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserslist@4.23.1: - resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - browserslist@4.24.2: - resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} - - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - - cacheable-lookup@7.0.0: - resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} - engines: {node: '>=14.16'} - - cacheable-request@10.2.14: - resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} - engines: {node: '>=14.16'} - - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} - - camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} - - caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - - caniuse-lite@1.0.30001640: - resolution: {integrity: sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==} - - caniuse-lite@1.0.30001680: - resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==} - - ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - - character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - - character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - - character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - - character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - - cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} - - cheerio@1.0.0-rc.12: - resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} - engines: {node: '>= 6'} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} - engines: {node: '>=6.0'} - - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} - engines: {node: '>= 10.0'} - - clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - - cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - - cli-table3@0.6.5: - resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} - engines: {node: 10.* || >= 12.*} - - clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} - - clsx@1.2.1: - resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} - engines: {node: '>=6'} - - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - - collapse-white-space@2.1.0: - resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - - colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - - combine-promises@1.2.0: - resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==} - engines: {node: '>=10'} - - comma-separated-tokens@1.0.8: - resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} - - comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - - commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} - - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - - commander@5.1.0: - resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} - engines: {node: '>= 6'} - - commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - - common-path-prefix@3.0.0: - resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} - - common-tags@1.8.2: - resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} - engines: {node: '>=4.0.0'} - - compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} - - compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - config-chain@1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} - - configstore@6.0.0: - resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} - engines: {node: '>=12'} - - connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} - engines: {node: '>=0.8'} - - consola@3.2.3: - resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} - engines: {node: ^14.18.0 || >=16.10.0} - - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - - content-disposition@0.5.2: - resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} - engines: {node: '>= 0.6'} - - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} - - copy-text-to-clipboard@3.2.0: - resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==} - engines: {node: '>=12'} - - copy-webpack-plugin@11.0.0: - resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} - engines: {node: '>= 14.15.0'} - peerDependencies: - webpack: ^5.1.0 - - core-js-compat@3.39.0: - resolution: {integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==} - - core-js-pure@3.37.1: - resolution: {integrity: sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==} - - core-js@3.37.1: - resolution: {integrity: sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==} - - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - cose-base@1.0.3: - resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} - - cosmiconfig@6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} - - cosmiconfig@8.3.6: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - - crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} - - css-declaration-sorter@7.2.0: - resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.0.9 - - css-loader@6.11.0: - resolution: {integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==} - engines: {node: '>= 12.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - css-minimizer-webpack-plugin@5.0.1: - resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==} - engines: {node: '>= 14.15.0'} - peerDependencies: - '@parcel/css': '*' - '@swc/css': '*' - clean-css: '*' - csso: '*' - esbuild: '*' - lightningcss: '*' - webpack: ^5.0.0 - peerDependenciesMeta: - '@parcel/css': - optional: true - '@swc/css': - optional: true - clean-css: - optional: true - csso: - optional: true - esbuild: - optional: true - lightningcss: - optional: true - - css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - - css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - - css-selector-parser@1.4.1: - resolution: {integrity: sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==} - - css-tree@2.2.1: - resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - cssnano-preset-advanced@6.1.2: - resolution: {integrity: sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - cssnano-preset-default@6.1.2: - resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - cssnano-utils@4.0.2: - resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - cssnano@6.1.2: - resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - csso@5.0.5: - resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - cytoscape-cose-bilkent@4.1.0: - resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} - peerDependencies: - cytoscape: ^3.2.0 - - cytoscape@3.30.0: - resolution: {integrity: sha512-l590mjTHT6/Cbxp13dGPC2Y7VXdgc+rUeF8AnF/JPzhjNevbDJfObnJgaSjlldOgBQZbue+X6IUZ7r5GAgvauQ==} - engines: {node: '>=0.10'} - - d3-array@2.12.1: - resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} - - d3-array@3.2.4: - resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} - engines: {node: '>=12'} - - d3-axis@3.0.0: - resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} - engines: {node: '>=12'} - - d3-brush@3.0.0: - resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} - engines: {node: '>=12'} - - d3-chord@3.0.1: - resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} - engines: {node: '>=12'} - - d3-color@3.1.0: - resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} - engines: {node: '>=12'} - - d3-contour@4.0.2: - resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} - engines: {node: '>=12'} - - d3-delaunay@6.0.4: - resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} - engines: {node: '>=12'} - - d3-dispatch@3.0.1: - resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} - engines: {node: '>=12'} - - d3-drag@3.0.0: - resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} - engines: {node: '>=12'} - - d3-dsv@3.0.1: - resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} - engines: {node: '>=12'} - hasBin: true - - d3-ease@3.0.1: - resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} - engines: {node: '>=12'} - - d3-fetch@3.0.1: - resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} - engines: {node: '>=12'} - - d3-force@3.0.0: - resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} - engines: {node: '>=12'} - - d3-format@3.1.0: - resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} - engines: {node: '>=12'} - - d3-geo@3.1.1: - resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} - engines: {node: '>=12'} - - d3-hierarchy@3.1.2: - resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} - engines: {node: '>=12'} - - d3-interpolate@3.0.1: - resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} - engines: {node: '>=12'} - - d3-path@1.0.9: - resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} - - d3-path@3.1.0: - resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} - engines: {node: '>=12'} - - d3-polygon@3.0.1: - resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} - engines: {node: '>=12'} - - d3-quadtree@3.0.1: - resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} - engines: {node: '>=12'} - - d3-random@3.0.1: - resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} - engines: {node: '>=12'} - - d3-sankey@0.12.3: - resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} - - d3-scale-chromatic@3.1.0: - resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} - engines: {node: '>=12'} - - d3-scale@4.0.2: - resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} - engines: {node: '>=12'} - - d3-selection@3.0.0: - resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} - engines: {node: '>=12'} - - d3-shape@1.3.7: - resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} - - d3-shape@3.2.0: - resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} - engines: {node: '>=12'} - - d3-time-format@4.1.0: - resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} - engines: {node: '>=12'} - - d3-time@3.1.0: - resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} - engines: {node: '>=12'} - - d3-timer@3.0.1: - resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} - engines: {node: '>=12'} - - d3-transition@3.0.1: - resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} - engines: {node: '>=12'} - peerDependencies: - d3-selection: 2 - 3 - - d3-zoom@3.0.0: - resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} - engines: {node: '>=12'} - - d3@7.9.0: - resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} - engines: {node: '>=12'} - - dagre-d3-es@7.0.10: - resolution: {integrity: sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A==} - - data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} - - dayjs@1.11.11: - resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==} - - debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} - - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - - deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} - - defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - - del@6.1.1: - resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} - engines: {node: '>=10'} - - delaunator@5.0.1: - resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} - - depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - - detect-port-alt@1.1.6: - resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} - engines: {node: '>= 4.2.1'} - hasBin: true - - detect-port@1.6.1: - resolution: {integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==} - engines: {node: '>= 4.0.0'} - hasBin: true - - devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - - didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - direction@1.0.4: - resolution: {integrity: sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ==} - hasBin: true - - dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - - dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} - engines: {node: '>=6'} - - docusaurus-lunr-search@3.4.0: - resolution: {integrity: sha512-GfllnNXCLgTSPH9TAKWmbn8VMfwpdOAZ1xl3T2GgX8Pm26qSDLfrrdVwjguaLfMJfzciFL97RKrAJlgrFM48yw==} - engines: {node: '>= 8.10.0'} - peerDependencies: - '@docusaurus/core': ^2.0.0-alpha.60 || ^2.0.0 || ^3.0.0 - react: ^16.8.4 || ^17 || ^18 - react-dom: ^16.8.4 || ^17 || ^18 - - dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} - - dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - - dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - - domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - - domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - - dompurify@3.1.6: - resolution: {integrity: sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==} - - domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - - domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} - - dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - - dot-prop@6.0.1: - resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} - engines: {node: '>=10'} - - duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - - ejs@3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} - engines: {node: '>=0.10.0'} - hasBin: true - - electron-to-chromium@1.4.816: - resolution: {integrity: sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==} - - electron-to-chromium@1.5.62: - resolution: {integrity: sha512-t8c+zLmJHa9dJy96yBZRXGQYoiCEnHYgFwn1asvSPZSUdVxnB62A4RASd7k41ytG3ErFBA0TpHlKg9D9SQBmLg==} - - elkjs@0.9.3: - resolution: {integrity: sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - emojilib@2.4.0: - resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} - - emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} - - emoticon@4.0.1: - resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==} - - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - - enhanced-resolve@5.17.1: - resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} - engines: {node: '>=10.13.0'} - - entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - - es-abstract@1.23.5: - resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==} - engines: {node: '>= 0.4'} - - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-module-lexer@1.5.4: - resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} - - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} - - es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-goat@4.0.0: - resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} - engines: {node: '>=12'} - - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - estree-util-attach-comments@3.0.0: - resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} - - estree-util-build-jsx@3.0.1: - resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} - - estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - - estree-util-to-js@2.0.0: - resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} - - estree-util-value-to-estree@3.1.2: - resolution: {integrity: sha512-S0gW2+XZkmsx00tU2uJ4L9hUT7IFabbml9pHh2WQqFmAbxit++YGZne0sKJbNwkj9Wvg9E4uqWl4nCIFQMmfag==} - - estree-util-visit@2.0.0: - resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} - - estree-walker@1.0.1: - resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - eta@2.2.0: - resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==} - engines: {node: '>=6.0.0'} - - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - - eval@0.1.8: - resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} - engines: {node: '>= 0.8'} - - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} - engines: {node: '>= 0.10.0'} - - extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - - fault@2.0.1: - resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} - - faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} - - feed@4.2.2: - resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} - engines: {node: '>=0.4.0'} - - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - - file-loader@6.2.0: - resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - - filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - - filesize@8.0.7: - resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} - engines: {node: '>= 0.4.0'} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} - - find-cache-dir@4.0.0: - resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} - engines: {node: '>=14.16'} - - find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - - follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - - foreground-child@3.2.1: - resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} - engines: {node: '>=14'} - - fork-ts-checker-webpack-plugin@6.5.3: - resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} - engines: {node: '>=10', yarn: '>=1.0.0'} - peerDependencies: - eslint: '>= 6' - typescript: '>= 2.7' - vue-template-compiler: '*' - webpack: '>= 4' - peerDependenciesMeta: - eslint: - optional: true - vue-template-compiler: - optional: true - - form-data-encoder@2.1.4: - resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} - engines: {node: '>= 14.17'} - - format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - - fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - - fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} - - fs-monkey@1.0.6: - resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - - gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} - deprecated: This package is no longer supported. - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} - - get-own-enumerable-property-symbols@3.0.2: - resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} - - github-slugger@1.5.0: - resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - - glob@10.4.2: - resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} - engines: {node: '>=16 || 14 >=14.18'} - hasBin: true - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - - global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} - - global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} - - global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} - - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - - got@12.6.1: - resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} - engines: {node: '>=14.16'} - - graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} - - gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} - - handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} - - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} - - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - - has-yarn@3.0.0: - resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - hast-util-from-parse5@6.0.1: - resolution: {integrity: sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==} - - hast-util-from-parse5@8.0.1: - resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} - - hast-util-has-property@1.0.4: - resolution: {integrity: sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==} - - hast-util-is-element@1.1.0: - resolution: {integrity: sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==} - - hast-util-parse-selector@2.2.5: - resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} - - hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - - hast-util-raw@9.0.4: - resolution: {integrity: sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==} - - hast-util-select@4.0.2: - resolution: {integrity: sha512-8EEG2//bN5rrzboPWD2HdS3ugLijNioS1pqOTIolXNf67xxShYw4SQEmVXd3imiBG+U2bC2nVTySr/iRAA7Cjg==} - - hast-util-to-estree@3.1.0: - resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} - - hast-util-to-jsx-runtime@2.3.0: - resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} - - hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} - - hast-util-to-string@1.0.4: - resolution: {integrity: sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w==} - - hast-util-to-text@2.0.1: - resolution: {integrity: sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ==} - - hast-util-whitespace@1.0.4: - resolution: {integrity: sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==} - - hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - - hastscript@6.0.0: - resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} - - hastscript@8.0.0: - resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - - history@4.10.1: - resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} - - hogan.js@3.0.2: - resolution: {integrity: sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==} - hasBin: true - - hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - - hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} - - html-entities@2.5.2: - resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} - - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - - html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true - - html-minifier-terser@7.2.0: - resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} - engines: {node: ^14.13.1 || >=16.0.0} - hasBin: true - - html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} - - html-url-attributes@3.0.1: - resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} - - html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - - html-webpack-plugin@5.6.0: - resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} - engines: {node: '>=10.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.20.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} - - htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} - - http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - - http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} - - http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} - - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - - http-parser-js@0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} - - http-proxy-middleware@2.0.6: - resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/express': ^4.17.13 - peerDependenciesMeta: - '@types/express': - optional: true - - http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} - - http2-wrapper@2.2.1: - resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} - engines: {node: '>=10.19.0'} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - - icss-utils@5.1.0: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - idb@7.1.1: - resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} - - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - - image-size@1.1.1: - resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} - engines: {node: '>=16.x'} - hasBin: true - - immediate@3.3.0: - resolution: {integrity: sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==} - - immer@9.0.21: - resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - - infima@0.2.0-alpha.45: - resolution: {integrity: sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==} - engines: {node: '>=12'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - - inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - - ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - - inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - - inline-style-parser@0.2.3: - resolution: {integrity: sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==} - - internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} - - internmap@1.0.1: - resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} - - internmap@2.0.3: - resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} - engines: {node: '>=12'} - - interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - - invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - - ipaddr.js@2.2.0: - resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} - engines: {node: '>= 10'} - - is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - - is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - - is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} - engines: {node: '>= 0.4'} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} - - is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true - - is-core-module@2.14.0: - resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} - engines: {node: '>= 0.4'} - - is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} - engines: {node: '>= 0.4'} - - is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - - is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - - is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - - is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} - - is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - - is-npm@6.0.0: - resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-obj@1.0.1: - resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} - engines: {node: '>=0.10.0'} - - is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - - is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} - engines: {node: '>=6'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - - is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} - - is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} - - is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} - - is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} - - is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - - is-regexp@1.0.0: - resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} - engines: {node: '>=0.10.0'} - - is-root@2.1.0: - resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} - engines: {node: '>=6'} - - is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - - is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} - - is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - - is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - - is-yarn-global@0.4.1: - resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} - engines: {node: '>=12'} - - isarray@0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - - jackspeak@3.4.0: - resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} - engines: {node: '>=14'} - - jake@10.9.2: - resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} - engines: {node: '>=10'} - hasBin: true - - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jiti@1.21.6: - resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} - hasBin: true - - joi@17.13.3: - resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - - json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - - jsonpointer@5.0.1: - resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} - engines: {node: '>=0.10.0'} - - katex@0.16.11: - resolution: {integrity: sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==} - hasBin: true - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - khroma@2.1.0: - resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} - - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - - latest-version@7.0.0: - resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} - engines: {node: '>=14.16'} - - launch-editor@2.8.0: - resolution: {integrity: sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==} - - layout-base@1.0.2: - resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} - - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - - lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} - engines: {node: '>=14'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} - - loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} - - loader-utils@3.3.1: - resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} - engines: {node: '>= 12.13.0'} - - locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - - lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - - lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - - lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - - lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - - lowercase-keys@3.0.0: - resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - lru-cache@10.3.0: - resolution: {integrity: sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==} - engines: {node: 14 || >=16.14} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - lunr-languages@1.14.0: - resolution: {integrity: sha512-hWUAb2KqM3L7J5bcrngszzISY4BxrXn/Xhbb9TTCJYEGqlR1nG67/M14sp09+PTIRklobrn57IAxcdcO/ZFyNA==} - - lunr@2.3.9: - resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} - - magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - - mark.js@8.11.1: - resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} - - markdown-extensions@2.0.0: - resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} - engines: {node: '>=16'} - - markdown-table@2.0.0: - resolution: {integrity: sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==} - - markdown-table@3.0.3: - resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} - - mdast-util-directive@3.0.0: - resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} - - mdast-util-find-and-replace@3.0.1: - resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} - - mdast-util-from-markdown@1.3.1: - resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} - - mdast-util-from-markdown@2.0.1: - resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} - - mdast-util-frontmatter@2.0.1: - resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} - - mdast-util-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} - - mdast-util-gfm-footnote@2.0.0: - resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} - - mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} - - mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} - - mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - - mdast-util-gfm@3.0.0: - resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} - - mdast-util-mdx-expression@2.0.0: - resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} - - mdast-util-mdx-jsx@3.1.2: - resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} - - mdast-util-mdx@3.0.0: - resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} - - mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} - - mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - - mdast-util-to-hast@13.2.0: - resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} - - mdast-util-to-markdown@2.1.0: - resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} - - mdast-util-to-string@3.2.0: - resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} - - mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - - mdn-data@2.0.28: - resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - - memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} - - merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - mermaid@10.9.1: - resolution: {integrity: sha512-Mx45Obds5W1UkW1nv/7dHRsbfMM1aOKA2+Pxs/IGHNonygDHwmng8xTHyS9z4KWVi0rbko8gjiBmuwwXQ7tiNA==} - - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - - micromark-core-commonmark@1.1.0: - resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} - - micromark-core-commonmark@2.0.1: - resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} - - micromark-extension-directive@3.0.0: - resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==} - - micromark-extension-frontmatter@2.0.0: - resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} - - micromark-extension-gfm-autolink-literal@2.1.0: - resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} - - micromark-extension-gfm-footnote@2.1.0: - resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} - - micromark-extension-gfm-strikethrough@2.1.0: - resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - - micromark-extension-gfm-table@2.1.0: - resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} - - micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} - - micromark-extension-gfm-task-list-item@2.1.0: - resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} - - micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - - micromark-extension-mdx-expression@3.0.0: - resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} - - micromark-extension-mdx-jsx@3.0.0: - resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} - - micromark-extension-mdx-md@2.0.0: - resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} - - micromark-extension-mdxjs-esm@3.0.0: - resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} - - micromark-extension-mdxjs@3.0.0: - resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} - - micromark-factory-destination@1.1.0: - resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} - - micromark-factory-destination@2.0.0: - resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} - - micromark-factory-label@1.1.0: - resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} - - micromark-factory-label@2.0.0: - resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} - - micromark-factory-mdx-expression@2.0.1: - resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} - - micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} - - micromark-factory-space@2.0.0: - resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} - - micromark-factory-title@1.1.0: - resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} - - micromark-factory-title@2.0.0: - resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} - - micromark-factory-whitespace@1.1.0: - resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} - - micromark-factory-whitespace@2.0.0: - resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} - - micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} - - micromark-util-character@2.1.0: - resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} - - micromark-util-chunked@1.1.0: - resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} - - micromark-util-chunked@2.0.0: - resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} - - micromark-util-classify-character@1.1.0: - resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} - - micromark-util-classify-character@2.0.0: - resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} - - micromark-util-combine-extensions@1.1.0: - resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} - - micromark-util-combine-extensions@2.0.0: - resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} - - micromark-util-decode-numeric-character-reference@1.1.0: - resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} - - micromark-util-decode-numeric-character-reference@2.0.1: - resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} - - micromark-util-decode-string@1.1.0: - resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} - - micromark-util-decode-string@2.0.0: - resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} - - micromark-util-encode@1.1.0: - resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} - - micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} - - micromark-util-events-to-acorn@2.0.2: - resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} - - micromark-util-html-tag-name@1.2.0: - resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} - - micromark-util-html-tag-name@2.0.0: - resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} - - micromark-util-normalize-identifier@1.1.0: - resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} - - micromark-util-normalize-identifier@2.0.0: - resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} - - micromark-util-resolve-all@1.1.0: - resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} - - micromark-util-resolve-all@2.0.0: - resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} - - micromark-util-sanitize-uri@1.2.0: - resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} - - micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} - - micromark-util-subtokenize@1.1.0: - resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} - - micromark-util-subtokenize@2.0.1: - resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} - - micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} - - micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} - - micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} - - micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} - - micromark@3.2.0: - resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} - - micromark@4.0.0: - resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} - - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} - engines: {node: '>=8.6'} - - mime-db@1.33.0: - resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} - engines: {node: '>= 0.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.18: - resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - - mimic-response@4.0.0: - resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - mini-css-extract-plugin@2.9.2: - resolution: {integrity: sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 - - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - - mkdirp@0.3.0: - resolution: {integrity: sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==} - deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) - - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - - mrmime@2.0.0: - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} - engines: {node: '>=10'} - - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} - hasBin: true - - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - - no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - - node-emoji@2.1.3: - resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} - engines: {node: '>=18'} - - node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - - non-layered-tidy-tree-layout@2.0.2: - resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==} - - nopt@1.0.10: - resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} - hasBin: true - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - - normalize-url@8.0.1: - resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} - engines: {node: '>=14.16'} - - not@0.1.0: - resolution: {integrity: sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - nprogress@0.2.0: - resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} - - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - - null-loader@4.0.1: - resolution: {integrity: sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - - object-inspect@1.13.3: - resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} - engines: {node: '>= 0.4'} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} - - obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - - on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - - opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true - - p-cancelable@3.0.0: - resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} - engines: {node: '>=12.20'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - - p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} - - package-json@8.1.1: - resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} - engines: {node: '>=14.16'} - - param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-entities@4.0.1: - resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - parse-numeric-range@1.3.0: - resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} - - parse5-htmlparser2-tree-adapter@7.0.0: - resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} - - parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - - pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} - - path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - - path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - - path-to-regexp@1.8.0: - resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} - - path-to-regexp@3.3.0: - resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - - pkg-dir@7.0.0: - resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} - engines: {node: '>=14.16'} - - pkg-up@3.1.0: - resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} - engines: {node: '>=8'} - - possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} - - postcss-calc@9.0.1: - resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.2 - - postcss-colormin@6.1.0: - resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-convert-values@6.1.0: - resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-comments@6.0.2: - resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-duplicates@6.0.3: - resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-empty@6.0.3: - resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-overridden@6.0.2: - resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-unused@6.0.5: - resolution: {integrity: sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-import@15.1.0: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 - - postcss-js@4.0.1: - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 - - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - postcss-loader@7.3.4: - resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} - engines: {node: '>= 14.15.0'} - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - - postcss-merge-idents@6.0.3: - resolution: {integrity: sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-merge-longhand@6.0.5: - resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-merge-rules@6.1.1: - resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-font-values@6.1.0: - resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-gradients@6.0.3: - resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-params@6.1.0: - resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-selectors@6.0.4: - resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-modules-extract-imports@3.1.0: - resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-local-by-default@4.0.5: - resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-scope@3.2.0: - resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-values@4.0.0: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-nested@6.0.1: - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - - postcss-normalize-charset@6.0.2: - resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-display-values@6.0.2: - resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-positions@6.0.2: - resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-repeat-style@6.0.2: - resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-string@6.0.2: - resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-timing-functions@6.0.2: - resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-unicode@6.1.0: - resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-url@6.0.2: - resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-whitespace@6.0.2: - resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-ordered-values@6.0.2: - resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-reduce-idents@6.0.3: - resolution: {integrity: sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-reduce-initial@6.1.0: - resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-reduce-transforms@6.0.2: - resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-selector-parser@6.1.0: - resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} - engines: {node: '>=4'} - - postcss-sort-media-queries@5.2.0: - resolution: {integrity: sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.4.23 - - postcss-svgo@6.0.3: - resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} - engines: {node: ^14 || ^16 || >= 18} - peerDependencies: - postcss: ^8.4.31 - - postcss-unique-selectors@6.0.4: - resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss-zindex@6.0.2: - resolution: {integrity: sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss@8.4.39: - resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} - engines: {node: ^10 || ^12 || >=14} - - pretty-bytes@5.6.0: - resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} - engines: {node: '>=6'} - - pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} - - pretty-time@1.1.0: - resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} - engines: {node: '>=4'} - - prism-react-renderer@2.3.1: - resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==} - peerDependencies: - react: '>=16.0.0' - - prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} - - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - - property-information@5.6.0: - resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} - - property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - - proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - pupa@3.1.0: - resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} - engines: {node: '>=12.20'} - - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - queue@6.0.2: - resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} - - quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - range-parser@1.2.0: - resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} - engines: {node: '>= 0.6'} - - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - - rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - - react-dev-utils@12.0.1: - resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=2.7' - webpack: '>=4' - peerDependenciesMeta: - typescript: - optional: true - - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.3.1 - - react-error-overlay@6.0.11: - resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} - - react-fast-compare@3.2.2: - resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} - - react-helmet-async@1.3.0: - resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 - - react-helmet-async@2.0.5: - resolution: {integrity: sha512-rYUYHeus+i27MvFE+Jaa4WsyBKGkL6qVgbJvSBoX8mbsWoABJXdEO0bZyi0F6i+4f0NuIb8AvqPMj3iXFHkMwg==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 - - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - react-json-view-lite@1.4.0: - resolution: {integrity: sha512-wh6F6uJyYAmQ4fK0e8dSQMEWuvTs2Wr3el3sLD9bambX1+pSWUVXIz1RFaoy3TI1mZ0FqdpKq9YgbgTTgyrmXA==} - engines: {node: '>=14'} - peerDependencies: - react: ^16.13.1 || ^17.0.0 || ^18.0.0 - - react-loadable-ssr-addon-v5-slorber@1.0.1: - resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} - engines: {node: '>=10.13.0'} - peerDependencies: - react-loadable: '*' - webpack: '>=4.41.1 || 5.x' - - react-markdown@9.0.1: - resolution: {integrity: sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==} - peerDependencies: - '@types/react': '>=18' - react: '>=18' - - react-router-config@5.1.1: - resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} - peerDependencies: - react: '>=15' - react-router: '>=5' - - react-router-dom@5.3.4: - resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} - peerDependencies: - react: '>=15' - - react-router@5.3.4: - resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} - peerDependencies: - react: '>=15' - - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} - - read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - reading-time@1.5.0: - resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} - - rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} - - recursive-readdir@2.2.3: - resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} - engines: {node: '>=6.0.0'} - - regenerate-unicode-properties@10.2.0: - resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} - engines: {node: '>=4'} - - regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - - regexp.prototype.flags@1.5.3: - resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} - engines: {node: '>= 0.4'} - - regexpu-core@6.1.1: - resolution: {integrity: sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==} - engines: {node: '>=4'} - - registry-auth-token@5.0.2: - resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} - engines: {node: '>=14'} - - registry-url@6.0.1: - resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} - engines: {node: '>=12'} - - regjsgen@0.8.0: - resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - - regjsparser@0.11.2: - resolution: {integrity: sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==} - hasBin: true - - rehype-parse@7.0.1: - resolution: {integrity: sha512-fOiR9a9xH+Le19i4fGzIEowAbwG7idy2Jzs4mOrFWBSJ0sNUgy0ev871dwWnbOo371SjgjG4pwzrbgSVrKxecw==} - - rehype-raw@7.0.0: - resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} - - relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} - engines: {node: '>= 0.10'} - - remark-directive@3.0.0: - resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} - - remark-emoji@4.0.1: - resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - remark-frontmatter@5.0.0: - resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} - - remark-gfm@4.0.0: - resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} - - remark-mdx@3.0.1: - resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} - - remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - - remark-rehype@11.1.0: - resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} - - remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} - - renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} - - repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - require-like@0.1.2: - resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} - - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - - resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-pathname@3.0.0: - resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - responselike@3.0.0: - resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} - engines: {node: '>=14.16'} - - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - robust-predicates@3.0.2: - resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} - - rollup@2.79.2: - resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} - engines: {node: '>=10.0.0'} - hasBin: true - - rtl-detect@1.1.2: - resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==} - - rtlcss@4.1.1: - resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==} - engines: {node: '>=12.0.0'} - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - rw@1.3.3: - resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} - - sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - - safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} - engines: {node: '>=0.4'} - - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} - engines: {node: '>= 0.4'} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - sax@1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - - schema-utils@2.7.0: - resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} - engines: {node: '>= 8.9.0'} - - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - - schema-utils@4.2.0: - resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} - engines: {node: '>= 12.13.0'} - - search-insights@2.14.0: - resolution: {integrity: sha512-OLN6MsPMCghDOqlCtsIsYgtsC0pnwVTyT9Mu6A3ewOj1DxvzZF6COrn2g86E/c05xbktB0XN04m/t1Z+n+fTGw==} - - section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} - - select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} - - selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} - engines: {node: '>=10'} - - semver-diff@4.0.0: - resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} - engines: {node: '>=12'} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} - engines: {node: '>=10'} - hasBin: true - - send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} - - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - - serve-handler@6.1.6: - resolution: {integrity: sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==} - - serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} - engines: {node: '>= 0.8.0'} - - serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - - setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} - - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - - shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} - - shallowequal@1.1.0: - resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - - shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true - - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - sitemap@7.1.2: - resolution: {integrity: sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==} - engines: {node: '>=12.0.0', npm: '>=5.6.0'} - hasBin: true - - skin-tone@2.0.0: - resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} - engines: {node: '>=8'} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - - smob@1.5.0: - resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} - - snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - - sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} - - sort-css-media-queries@2.2.0: - resolution: {integrity: sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==} - engines: {node: '>= 6.3.0'} - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - - source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - - sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead - - space-separated-tokens@1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} - - space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - - spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} - - spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} - engines: {node: '>=6.0.0'} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - srcset@4.0.0: - resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} - engines: {node: '>=12'} - - statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - - std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string.prototype.matchall@4.0.11: - resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} - engines: {node: '>= 0.4'} - - string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} - - stringify-object@3.3.0: - resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} - engines: {node: '>=4'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - - strip-comments@2.0.1: - resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} - engines: {node: '>=10'} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - style-to-object@0.4.4: - resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} - - style-to-object@1.0.6: - resolution: {integrity: sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==} - - stylehacks@6.1.1: - resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - stylis@4.3.2: - resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} - - sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - svg-parser@2.0.4: - resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} - - svgo@3.3.2: - resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} - engines: {node: '>=14.0.0'} - hasBin: true - - tailwindcss@3.4.4: - resolution: {integrity: sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==} - engines: {node: '>=14.0.0'} - hasBin: true - - tapable@1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} - engines: {node: '>=6'} - - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - - temp-dir@2.0.0: - resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} - engines: {node: '>=8'} - - tempy@0.6.0: - resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} - engines: {node: '>=10'} - - terser-webpack-plugin@5.3.10: - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - - terser@5.31.1: - resolution: {integrity: sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==} - engines: {node: '>=10'} - hasBin: true - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - - thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} - - tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - - tiny-warning@1.0.3: - resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - to-vfile@6.1.0: - resolution: {integrity: sha512-BxX8EkCxOAZe+D/ToHdDsJcVI4HqQfmw0tCkp31zf3dNP/XWIAjU4CmeuSwsSoOzOTqHPOL0KUzyZqJplkD0Qw==} - - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - - totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - - tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - - trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - - trough@1.0.5: - resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} - - trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - - ts-dedent@2.2.0: - resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} - engines: {node: '>=6.10'} - - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - - type-fest@0.16.0: - resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} - engines: {node: '>=10'} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - - type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - - type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - - typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} - engines: {node: '>= 0.4'} - - typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - - typescript@5.2.2: - resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} - engines: {node: '>=14.17'} - hasBin: true - - unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - - unicode-emoji-modifier-base@1.0.0: - resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} - engines: {node: '>=4'} - - unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - - unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} - - unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - - unified@11.0.5: - resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - - unified@9.2.2: - resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==} - - unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} - - unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} - - unist-util-find-after@3.0.0: - resolution: {integrity: sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ==} - - unist-util-is@4.1.0: - resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} - - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - - unist-util-position-from-estree@2.0.0: - resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} - - unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - - unist-util-remove-position@5.0.0: - resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} - - unist-util-stringify-position@2.0.3: - resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} - - unist-util-stringify-position@3.0.3: - resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} - - unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - - unist-util-visit-parents@3.1.1: - resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} - - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - - unist-util-visit@2.0.3: - resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} - - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - - upath@1.2.0: - resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} - engines: {node: '>=4'} - - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - update-browserslist-db@1.1.1: - resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - update-notifier@6.0.2: - resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} - engines: {node: '>=14.16'} - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - url-loader@4.1.1: - resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - file-loader: '*' - webpack: ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - file-loader: - optional: true - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} - - utility-types@3.11.0: - resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} - engines: {node: '>= 4'} - - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - - uvu@0.5.6: - resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} - engines: {node: '>=8'} - hasBin: true - - value-equal@1.0.1: - resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - vfile-location@3.2.0: - resolution: {integrity: sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==} - - vfile-location@5.0.2: - resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} - - vfile-message@2.0.4: - resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} - - vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - - vfile@4.2.1: - resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} - - vfile@6.0.1: - resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} - - watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} - engines: {node: '>=10.13.0'} - - wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} - - web-namespaces@1.1.4: - resolution: {integrity: sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==} - - web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - - web-worker@1.3.0: - resolution: {integrity: sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==} - - webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - - webpack-bundle-analyzer@4.10.2: - resolution: {integrity: sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==} - engines: {node: '>= 10.13.0'} - hasBin: true - - webpack-dev-middleware@5.3.4: - resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - - webpack-dev-server@4.15.2: - resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} - engines: {node: '>= 12.13.0'} - hasBin: true - peerDependencies: - webpack: ^4.37.0 || ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true - - webpack-merge@5.10.0: - resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} - engines: {node: '>=10.0.0'} - - webpack-merge@6.0.1: - resolution: {integrity: sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==} - engines: {node: '>=18.0.0'} - - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - - webpack@5.96.1: - resolution: {integrity: sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - - webpackbar@6.0.1: - resolution: {integrity: sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==} - engines: {node: '>=14.21.3'} - peerDependencies: - webpack: 3 || 4 || 5 - - websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} - - websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} - - whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - - which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - - which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} - engines: {node: '>= 0.4'} - - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - - widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} - - wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - - workbox-background-sync@7.3.0: - resolution: {integrity: sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg==} - - workbox-broadcast-update@7.3.0: - resolution: {integrity: sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA==} - - workbox-build@7.3.0: - resolution: {integrity: sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ==} - engines: {node: '>=16.0.0'} - - workbox-cacheable-response@7.3.0: - resolution: {integrity: sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA==} - - workbox-core@7.3.0: - resolution: {integrity: sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==} - - workbox-expiration@7.3.0: - resolution: {integrity: sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ==} - - workbox-google-analytics@7.3.0: - resolution: {integrity: sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg==} - - workbox-navigation-preload@7.3.0: - resolution: {integrity: sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg==} - - workbox-precaching@7.3.0: - resolution: {integrity: sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw==} - - workbox-range-requests@7.3.0: - resolution: {integrity: sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ==} - - workbox-recipes@7.3.0: - resolution: {integrity: sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg==} - - workbox-routing@7.3.0: - resolution: {integrity: sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A==} - - workbox-strategies@7.3.0: - resolution: {integrity: sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg==} - - workbox-streams@7.3.0: - resolution: {integrity: sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw==} - - workbox-sw@7.3.0: - resolution: {integrity: sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA==} - - workbox-window@7.3.0: - resolution: {integrity: sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - - ws@7.5.10: - resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - xdg-basedir@5.1.0: - resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} - engines: {node: '>=12'} - - xml-js@1.6.11: - resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} - hasBin: true - - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - - yaml@2.4.5: - resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} - engines: {node: '>= 14'} - hasBin: true - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - yocto-queue@1.1.1: - resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} - engines: {node: '>=12.20'} - - zwitch@1.0.5: - resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} - - zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - -snapshots: - - '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.14.0)': - dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.14.0) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) - transitivePeerDependencies: - - '@algolia/client-search' - - algoliasearch - - search-insights - - '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.14.0)': - dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) - search-insights: 2.14.0 - transitivePeerDependencies: - - '@algolia/client-search' - - algoliasearch - - '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': - dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) - '@algolia/client-search': 4.24.0 - algoliasearch: 4.24.0 - - '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': - dependencies: - '@algolia/client-search': 4.24.0 - algoliasearch: 4.24.0 - - '@algolia/cache-browser-local-storage@4.24.0': - dependencies: - '@algolia/cache-common': 4.24.0 - - '@algolia/cache-common@4.24.0': {} - - '@algolia/cache-in-memory@4.24.0': - dependencies: - '@algolia/cache-common': 4.24.0 - - '@algolia/client-account@4.24.0': - dependencies: - '@algolia/client-common': 4.24.0 - '@algolia/client-search': 4.24.0 - '@algolia/transporter': 4.24.0 - - '@algolia/client-analytics@4.24.0': - dependencies: - '@algolia/client-common': 4.24.0 - '@algolia/client-search': 4.24.0 - '@algolia/requester-common': 4.24.0 - '@algolia/transporter': 4.24.0 - - '@algolia/client-common@4.24.0': - dependencies: - '@algolia/requester-common': 4.24.0 - '@algolia/transporter': 4.24.0 - - '@algolia/client-personalization@4.24.0': - dependencies: - '@algolia/client-common': 4.24.0 - '@algolia/requester-common': 4.24.0 - '@algolia/transporter': 4.24.0 - - '@algolia/client-search@4.24.0': - dependencies: - '@algolia/client-common': 4.24.0 - '@algolia/requester-common': 4.24.0 - '@algolia/transporter': 4.24.0 - - '@algolia/events@4.0.1': {} - - '@algolia/logger-common@4.24.0': {} - - '@algolia/logger-console@4.24.0': - dependencies: - '@algolia/logger-common': 4.24.0 - - '@algolia/recommend@4.24.0': - dependencies: - '@algolia/cache-browser-local-storage': 4.24.0 - '@algolia/cache-common': 4.24.0 - '@algolia/cache-in-memory': 4.24.0 - '@algolia/client-common': 4.24.0 - '@algolia/client-search': 4.24.0 - '@algolia/logger-common': 4.24.0 - '@algolia/logger-console': 4.24.0 - '@algolia/requester-browser-xhr': 4.24.0 - '@algolia/requester-common': 4.24.0 - '@algolia/requester-node-http': 4.24.0 - '@algolia/transporter': 4.24.0 - - '@algolia/requester-browser-xhr@4.24.0': - dependencies: - '@algolia/requester-common': 4.24.0 - - '@algolia/requester-common@4.24.0': {} - - '@algolia/requester-node-http@4.24.0': - dependencies: - '@algolia/requester-common': 4.24.0 - - '@algolia/transporter@4.24.0': - dependencies: - '@algolia/cache-common': 4.24.0 - '@algolia/logger-common': 4.24.0 - '@algolia/requester-common': 4.24.0 - - '@alloc/quick-lru@5.2.0': {} - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - - '@apideck/better-ajv-errors@0.3.6(ajv@8.16.0)': - dependencies: - ajv: 8.16.0 - json-schema: 0.4.0 - jsonpointer: 5.0.1 - leven: 3.1.0 - - '@babel/code-frame@7.26.2': - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.26.2': {} - - '@babel/core@7.26.0': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.2 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.2 - '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 - convert-source-map: 2.0.0 - debug: 4.3.5 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.26.2': - dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.0.2 - - '@babel/helper-annotate-as-pure@7.25.9': - dependencies: - '@babel/types': 7.26.0 - - '@babel/helper-builder-binary-assignment-operator-visitor@7.25.9': - dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-compilation-targets@7.25.9': - dependencies: - '@babel/compat-data': 7.26.2 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.2 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.25.9 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-create-regexp-features-plugin@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - regexpu-core: 6.1.1 - semver: 6.3.1 - - '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - debug: 4.3.5 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - - '@babel/helper-member-expression-to-functions@7.25.9': - dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-imports@7.25.9': - dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/helper-optimise-call-expression@7.25.9': - dependencies: - '@babel/types': 7.26.0 - - '@babel/helper-plugin-utils@7.25.9': {} - - '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/helper-simple-access@7.25.9': - dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': - dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-string-parser@7.25.9': {} - - '@babel/helper-validator-identifier@7.25.9': {} - - '@babel/helper-validator-option@7.25.9': {} - - '@babel/helper-wrap-function@7.25.9': - dependencies: - '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 - transitivePeerDependencies: - - supports-color - - '@babel/helpers@7.26.0': - dependencies: - '@babel/template': 7.25.9 - '@babel/types': 7.26.0 - - '@babel/parser@7.26.2': - dependencies: - '@babel/types': 7.26.0 - - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.25.9 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/template': 7.25.9 - - '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-exponentiation-operator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-commonjs@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-simple-access': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) - - '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-react-constant-elements@7.24.7(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/types': 7.26.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-react-pure-annotations@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - regenerator-transform: 0.15.2 - - '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.26.0) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.26.0) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-typescript@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/preset-env@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/compat-data': 7.26.2 - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0) - '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.0) - '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoped-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-exponentiation-operator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-commonjs': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-typeof-symbol': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.0) - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.26.0) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.26.0) - core-js-compat: 3.39.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/types': 7.26.0 - esutils: 2.0.3 - - '@babel/preset-react@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-pure-annotations': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/preset-typescript@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-commonjs': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-typescript': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/runtime-corejs3@7.26.0': - dependencies: - core-js-pure: 3.37.1 - regenerator-runtime: 0.14.1 - - '@babel/runtime@7.26.0': - dependencies: - regenerator-runtime: 0.14.1 - - '@babel/template@7.25.9': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 - - '@babel/traverse@7.25.9': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.2 - '@babel/parser': 7.26.2 - '@babel/template': 7.25.9 - '@babel/types': 7.26.0 - debug: 4.3.5 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.26.0': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - - '@braintree/sanitize-url@6.0.4': {} - - '@colors/colors@1.5.0': - optional: true - - '@discoveryjs/json-ext@0.5.7': {} - - '@docsearch/css@3.6.0': {} - - '@docsearch/react@3.6.0(@algolia/client-search@4.24.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0)': - dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.14.0) - '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) - '@docsearch/css': 3.6.0 - algoliasearch: 4.24.0 - optionalDependencies: - '@types/react': 18.3.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - search-insights: 2.14.0 - transitivePeerDependencies: - - '@algolia/client-search' - - '@docusaurus/babel@3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@babel/core': 7.26.0 - '@babel/generator': 7.26.2 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-transform-runtime': 7.25.9(@babel/core@7.26.0) - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) - '@babel/preset-react': 7.25.9(@babel/core@7.26.0) - '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) - '@babel/runtime': 7.26.0 - '@babel/runtime-corejs3': 7.26.0 - '@babel/traverse': 7.25.9 - '@docusaurus/logger': 3.6.1 - '@docusaurus/utils': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - babel-plugin-dynamic-import-node: 2.3.3 - fs-extra: 11.2.0 - tslib: 2.6.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - react - - react-dom - - supports-color - - typescript - - uglify-js - - webpack-cli - - '@docusaurus/bundler@3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@babel/core': 7.26.0 - '@docusaurus/babel': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/cssnano-preset': 3.6.1 - '@docusaurus/logger': 3.6.1 - '@docusaurus/types': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - autoprefixer: 10.4.19(postcss@8.4.39) - babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.96.1) - clean-css: 5.3.3 - copy-webpack-plugin: 11.0.0(webpack@5.96.1) - css-loader: 6.11.0(webpack@5.96.1) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.96.1) - cssnano: 6.1.2(postcss@8.4.39) - file-loader: 6.2.0(webpack@5.96.1) - html-minifier-terser: 7.2.0 - mini-css-extract-plugin: 2.9.2(webpack@5.96.1) - null-loader: 4.0.1(webpack@5.96.1) - postcss: 8.4.39 - postcss-loader: 7.3.4(postcss@8.4.39)(typescript@5.2.2)(webpack@5.96.1) - react-dev-utils: 12.0.1(typescript@5.2.2)(webpack@5.96.1) - terser-webpack-plugin: 5.3.10(webpack@5.96.1) - tslib: 2.6.3 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.96.1))(webpack@5.96.1) - webpack: 5.96.1 - webpackbar: 6.0.1(webpack@5.96.1) - transitivePeerDependencies: - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - csso - - esbuild - - eslint - - lightningcss - - react - - react-dom - - supports-color - - typescript - - uglify-js - - vue-template-compiler - - webpack-cli - - '@docusaurus/core@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@docusaurus/babel': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/bundler': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/logger': 3.6.1 - '@docusaurus/mdx-loader': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/utils': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/utils-common': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-validation': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@mdx-js/react': 3.0.1(@types/react@18.3.3)(react@18.3.1) - boxen: 6.2.1 - chalk: 4.1.2 - chokidar: 3.6.0 - cli-table3: 0.6.5 - combine-promises: 1.2.0 - commander: 5.1.0 - core-js: 3.37.1 - del: 6.1.1 - detect-port: 1.6.1 - escape-html: 1.0.3 - eta: 2.2.0 - eval: 0.1.8 - fs-extra: 11.2.0 - html-tags: 3.3.1 - html-webpack-plugin: 5.6.0(webpack@5.96.1) - leven: 3.1.0 - lodash: 4.17.21 - p-map: 4.0.0 - prompts: 2.4.2 - react: 18.3.1 - react-dev-utils: 12.0.1(typescript@5.2.2)(webpack@5.96.1) - react-dom: 18.3.1(react@18.3.1) - react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)' - react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@18.3.1))(webpack@5.96.1) - react-router: 5.3.4(react@18.3.1) - react-router-config: 5.1.1(react-router@5.3.4(react@18.3.1))(react@18.3.1) - react-router-dom: 5.3.4(react@18.3.1) - rtl-detect: 1.1.2 - semver: 7.6.2 - serve-handler: 6.1.6 - shelljs: 0.8.5 - tslib: 2.6.3 - update-notifier: 6.0.2 - webpack: 5.96.1 - webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 4.15.2(webpack@5.96.1) - webpack-merge: 6.0.1 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - - '@docusaurus/cssnano-preset@3.6.1': - dependencies: - cssnano-preset-advanced: 6.1.2(postcss@8.4.39) - postcss: 8.4.39 - postcss-sort-media-queries: 5.2.0(postcss@8.4.39) - tslib: 2.6.3 - - '@docusaurus/logger@3.6.1': - dependencies: - chalk: 4.1.2 - tslib: 2.6.3 - - '@docusaurus/mdx-loader@3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@docusaurus/logger': 3.6.1 - '@docusaurus/utils': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/utils-validation': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@mdx-js/mdx': 3.0.1 - '@slorber/remark-comment': 1.0.0 - escape-html: 1.0.3 - estree-util-value-to-estree: 3.1.2 - file-loader: 6.2.0(webpack@5.96.1) - fs-extra: 11.2.0 - image-size: 1.1.1 - mdast-util-mdx: 3.0.0 - mdast-util-to-string: 4.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - rehype-raw: 7.0.0 - remark-directive: 3.0.0 - remark-emoji: 4.0.1 - remark-frontmatter: 5.0.0 - remark-gfm: 4.0.0 - stringify-object: 3.3.0 - tslib: 2.6.3 - unified: 11.0.5 - unist-util-visit: 5.0.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.96.1))(webpack@5.96.1) - vfile: 6.0.1 - webpack: 5.96.1 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - supports-color - - typescript - - uglify-js - - webpack-cli - - '@docusaurus/module-type-aliases@3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@docusaurus/types': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@types/history': 4.7.11 - '@types/react': 18.3.3 - '@types/react-router-config': 5.0.11 - '@types/react-router-dom': 5.3.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-helmet-async: 2.0.5(react@18.3.1) - react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)' - transitivePeerDependencies: - - '@swc/core' - - esbuild - - supports-color - - uglify-js - - webpack-cli - - '@docusaurus/plugin-content-blog@3.6.1(@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@docusaurus/core': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/logger': 3.6.1 - '@docusaurus/mdx-loader': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/plugin-content-docs': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/theme-common': 3.6.1(@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/types': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/utils-common': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-validation': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - cheerio: 1.0.0-rc.12 - feed: 4.2.2 - fs-extra: 11.2.0 - lodash: 4.17.21 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - reading-time: 1.5.0 - srcset: 4.0.0 - tslib: 2.6.3 - unist-util-visit: 5.0.0 - utility-types: 3.11.0 - webpack: 5.96.1 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - - '@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@docusaurus/core': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/logger': 3.6.1 - '@docusaurus/mdx-loader': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/module-type-aliases': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/theme-common': 3.6.1(@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/types': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/utils-common': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-validation': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@types/react-router-config': 5.0.11 - combine-promises: 1.2.0 - fs-extra: 11.2.0 - js-yaml: 4.1.0 - lodash: 4.17.21 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.3 - utility-types: 3.11.0 - webpack: 5.96.1 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - - '@docusaurus/plugin-content-pages@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@docusaurus/core': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/mdx-loader': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/types': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/utils-validation': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - fs-extra: 11.2.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.3 - webpack: 5.96.1 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - - '@docusaurus/plugin-debug@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@docusaurus/core': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/types': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - fs-extra: 11.2.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-json-view-lite: 1.4.0(react@18.3.1) - tslib: 2.6.3 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - - '@docusaurus/plugin-google-analytics@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@docusaurus/core': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/types': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-validation': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.3 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - - '@docusaurus/plugin-google-gtag@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@docusaurus/core': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/types': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-validation': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@types/gtag.js': 0.0.12 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.3 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - - '@docusaurus/plugin-google-tag-manager@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@docusaurus/core': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/types': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-validation': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.3 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - - '@docusaurus/plugin-pwa@3.6.1(@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@babel/core': 7.26.0 - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) - '@docusaurus/bundler': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/core': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/logger': 3.6.1 - '@docusaurus/theme-common': 3.6.1(@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/theme-translations': 3.6.1 - '@docusaurus/types': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/utils-validation': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.96.1) - clsx: 2.1.1 - core-js: 3.37.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.3 - webpack: 5.96.1 - webpack-merge: 5.10.0 - workbox-build: 7.3.0 - workbox-precaching: 7.3.0 - workbox-window: 7.3.0 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@docusaurus/plugin-content-docs' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@types/babel__core' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - - '@docusaurus/plugin-sitemap@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@docusaurus/core': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/logger': 3.6.1 - '@docusaurus/types': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/utils-common': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-validation': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - fs-extra: 11.2.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - sitemap: 7.1.2 - tslib: 2.6.3 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - - '@docusaurus/preset-classic@3.6.1(@algolia/client-search@4.24.0)(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0)(typescript@5.2.2)': - dependencies: - '@docusaurus/core': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/plugin-content-blog': 3.6.1(@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/plugin-content-docs': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/plugin-content-pages': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/plugin-debug': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/plugin-google-analytics': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/plugin-google-gtag': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/plugin-google-tag-manager': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/plugin-sitemap': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/theme-classic': 3.6.1(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/theme-common': 3.6.1(@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/theme-search-algolia': 3.6.1(@algolia/client-search@4.24.0)(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0)(typescript@5.2.2) - '@docusaurus/types': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - transitivePeerDependencies: - - '@algolia/client-search' - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@types/react' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - search-insights - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - - '@docusaurus/react-loadable@6.0.0(react@18.3.1)': - dependencies: - '@types/react': 18.3.3 - react: 18.3.1 - - '@docusaurus/theme-classic@3.6.1(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@docusaurus/core': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/logger': 3.6.1 - '@docusaurus/mdx-loader': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/module-type-aliases': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/plugin-content-blog': 3.6.1(@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/plugin-content-docs': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/plugin-content-pages': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/theme-common': 3.6.1(@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/theme-translations': 3.6.1 - '@docusaurus/types': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/utils-common': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-validation': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@mdx-js/react': 3.0.1(@types/react@18.3.3)(react@18.3.1) - clsx: 2.1.1 - copy-text-to-clipboard: 3.2.0 - infima: 0.2.0-alpha.45 - lodash: 4.17.21 - nprogress: 0.2.0 - postcss: 8.4.39 - prism-react-renderer: 2.3.1(react@18.3.1) - prismjs: 1.29.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-router-dom: 5.3.4(react@18.3.1) - rtlcss: 4.1.1 - tslib: 2.6.3 - utility-types: 3.11.0 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@types/react' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - - '@docusaurus/theme-common@3.6.1(@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@docusaurus/mdx-loader': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/module-type-aliases': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/plugin-content-docs': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/utils': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/utils-common': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@types/history': 4.7.11 - '@types/react': 18.3.3 - '@types/react-router-config': 5.0.11 - clsx: 2.1.1 - parse-numeric-range: 1.3.0 - prism-react-renderer: 2.3.1(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.3 - utility-types: 3.11.0 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - supports-color - - typescript - - uglify-js - - webpack-cli - - '@docusaurus/theme-mermaid@3.6.1(@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@docusaurus/core': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/module-type-aliases': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/theme-common': 3.6.1(@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/types': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-validation': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - mermaid: 10.9.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.3 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@docusaurus/plugin-content-docs' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - - '@docusaurus/theme-search-algolia@3.6.1(@algolia/client-search@4.24.0)(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0)(typescript@5.2.2)': - dependencies: - '@docsearch/react': 3.6.0(@algolia/client-search@4.24.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0) - '@docusaurus/core': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/logger': 3.6.1 - '@docusaurus/plugin-content-docs': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/theme-common': 3.6.1(@docusaurus/plugin-content-docs@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/theme-translations': 3.6.1 - '@docusaurus/utils': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/utils-validation': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - algoliasearch: 4.24.0 - algoliasearch-helper: 3.22.2(algoliasearch@4.24.0) - clsx: 2.1.1 - eta: 2.2.0 - fs-extra: 11.2.0 - lodash: 4.17.21 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.3 - utility-types: 3.11.0 - transitivePeerDependencies: - - '@algolia/client-search' - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@types/react' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - search-insights - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - - '@docusaurus/theme-translations@3.6.1': - dependencies: - fs-extra: 11.2.0 - tslib: 2.6.3 - - '@docusaurus/tsconfig@3.6.1': {} - - '@docusaurus/types@3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@mdx-js/mdx': 3.0.1 - '@types/history': 4.7.11 - '@types/react': 18.3.3 - commander: 5.1.0 - joi: 17.13.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - utility-types: 3.11.0 - webpack: 5.96.1 - webpack-merge: 5.10.0 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - supports-color - - uglify-js - - webpack-cli - - '@docusaurus/utils-common@3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@docusaurus/types': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - tslib: 2.6.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - react - - react-dom - - supports-color - - uglify-js - - webpack-cli - - '@docusaurus/utils-validation@3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@docusaurus/logger': 3.6.1 - '@docusaurus/utils': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - '@docusaurus/utils-common': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - fs-extra: 11.2.0 - joi: 17.13.3 - js-yaml: 4.1.0 - lodash: 4.17.21 - tslib: 2.6.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - react - - react-dom - - supports-color - - typescript - - uglify-js - - webpack-cli - - '@docusaurus/utils@3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': - dependencies: - '@docusaurus/logger': 3.6.1 - '@docusaurus/types': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-common': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@svgr/webpack': 8.1.0(typescript@5.2.2) - escape-string-regexp: 4.0.0 - file-loader: 6.2.0(webpack@5.96.1) - fs-extra: 11.2.0 - github-slugger: 1.5.0 - globby: 11.1.0 - gray-matter: 4.0.3 - jiti: 1.21.6 - js-yaml: 4.1.0 - lodash: 4.17.21 - micromatch: 4.0.7 - prompts: 2.4.2 - resolve-pathname: 3.0.0 - shelljs: 0.8.5 - tslib: 2.6.3 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.96.1))(webpack@5.96.1) - utility-types: 3.11.0 - webpack: 5.96.1 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - react - - react-dom - - supports-color - - typescript - - uglify-js - - webpack-cli - - '@hapi/hoek@9.3.0': {} - - '@hapi/topo@5.1.0': - dependencies: - '@hapi/hoek': 9.3.0 - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@jest/types@29.6.3': - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 20.14.9 - '@types/yargs': 17.0.32 - chalk: 4.1.2 - - '@jridgewell/gen-mapping@0.3.5': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/source-map@0.3.6': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/sourcemap-codec@1.4.15': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - - '@leichtgewicht/ip-codec@2.0.5': {} - - '@mdx-js/mdx@3.0.1': - dependencies: - '@types/estree': 1.0.6 - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdx': 2.0.13 - collapse-white-space: 2.1.0 - devlop: 1.1.0 - estree-util-build-jsx: 3.0.1 - estree-util-is-identifier-name: 3.0.0 - estree-util-to-js: 2.0.0 - estree-walker: 3.0.3 - hast-util-to-estree: 3.1.0 - hast-util-to-jsx-runtime: 2.3.0 - markdown-extensions: 2.0.0 - periscopic: 3.1.0 - remark-mdx: 3.0.1 - remark-parse: 11.0.0 - remark-rehype: 11.1.0 - source-map: 0.7.4 - unified: 11.0.5 - unist-util-position-from-estree: 2.0.0 - unist-util-stringify-position: 4.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.1 - transitivePeerDependencies: - - supports-color - - '@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1)': - dependencies: - '@types/mdx': 2.0.13 - '@types/react': 18.3.3 - react: 18.3.1 - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@pnpm/config.env-replace@1.1.0': {} - - '@pnpm/network.ca-file@1.0.2': - dependencies: - graceful-fs: 4.2.10 - - '@pnpm/npm-conf@2.2.2': - dependencies: - '@pnpm/config.env-replace': 1.1.0 - '@pnpm/network.ca-file': 1.0.2 - config-chain: 1.1.13 - - '@polka/url@1.0.0-next.25': {} - - '@rollup/plugin-babel@5.3.1(@babel/core@7.26.0)(rollup@2.79.2)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@rollup/pluginutils': 3.1.0(rollup@2.79.2) - rollup: 2.79.2 - transitivePeerDependencies: - - supports-color - - '@rollup/plugin-node-resolve@15.3.0(rollup@2.79.2)': - dependencies: - '@rollup/pluginutils': 5.1.3(rollup@2.79.2) - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.8 - optionalDependencies: - rollup: 2.79.2 - - '@rollup/plugin-replace@2.4.2(rollup@2.79.2)': - dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.2) - magic-string: 0.25.9 - rollup: 2.79.2 - - '@rollup/plugin-terser@0.4.4(rollup@2.79.2)': - dependencies: - serialize-javascript: 6.0.2 - smob: 1.5.0 - terser: 5.31.1 - optionalDependencies: - rollup: 2.79.2 - - '@rollup/pluginutils@3.1.0(rollup@2.79.2)': - dependencies: - '@types/estree': 0.0.39 - estree-walker: 1.0.1 - picomatch: 2.3.1 - rollup: 2.79.2 - - '@rollup/pluginutils@5.1.3(rollup@2.79.2)': - dependencies: - '@types/estree': 1.0.6 - estree-walker: 2.0.2 - picomatch: 4.0.2 - optionalDependencies: - rollup: 2.79.2 - - '@sideway/address@4.1.5': - dependencies: - '@hapi/hoek': 9.3.0 - - '@sideway/formula@3.0.1': {} - - '@sideway/pinpoint@2.0.0': {} - - '@sinclair/typebox@0.27.8': {} - - '@sindresorhus/is@4.6.0': {} - - '@sindresorhus/is@5.6.0': {} - - '@slorber/remark-comment@1.0.0': - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - - '@surma/rollup-plugin-off-main-thread@2.2.3': - dependencies: - ejs: 3.1.10 - json5: 2.2.3 - magic-string: 0.25.9 - string.prototype.matchall: 4.0.11 - - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@svgr/babel-preset@8.1.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.26.0) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.26.0) - - '@svgr/core@8.1.0(typescript@5.2.2)': - dependencies: - '@babel/core': 7.26.0 - '@svgr/babel-preset': 8.1.0(@babel/core@7.26.0) - camelcase: 6.3.0 - cosmiconfig: 8.3.6(typescript@5.2.2) - snake-case: 3.0.4 - transitivePeerDependencies: - - supports-color - - typescript - - '@svgr/hast-util-to-babel-ast@8.0.0': - dependencies: - '@babel/types': 7.26.0 - entities: 4.5.0 - - '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.2.2))': - dependencies: - '@babel/core': 7.26.0 - '@svgr/babel-preset': 8.1.0(@babel/core@7.26.0) - '@svgr/core': 8.1.0(typescript@5.2.2) - '@svgr/hast-util-to-babel-ast': 8.0.0 - svg-parser: 2.0.4 - transitivePeerDependencies: - - supports-color - - '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@5.2.2))(typescript@5.2.2)': - dependencies: - '@svgr/core': 8.1.0(typescript@5.2.2) - cosmiconfig: 8.3.6(typescript@5.2.2) - deepmerge: 4.3.1 - svgo: 3.3.2 - transitivePeerDependencies: - - typescript - - '@svgr/webpack@8.1.0(typescript@5.2.2)': - dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-constant-elements': 7.24.7(@babel/core@7.26.0) - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) - '@babel/preset-react': 7.25.9(@babel/core@7.26.0) - '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) - '@svgr/core': 8.1.0(typescript@5.2.2) - '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.2.2)) - '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.2.2))(typescript@5.2.2) - transitivePeerDependencies: - - supports-color - - typescript - - '@szmarczak/http-timer@5.0.1': - dependencies: - defer-to-connect: 2.0.1 - - '@trysound/sax@0.2.0': {} - - '@types/acorn@4.0.6': - dependencies: - '@types/estree': 1.0.6 - - '@types/body-parser@1.19.5': - dependencies: - '@types/connect': 3.4.38 - '@types/node': 20.14.9 - - '@types/bonjour@3.5.13': - dependencies: - '@types/node': 20.14.9 - - '@types/connect-history-api-fallback@1.5.4': - dependencies: - '@types/express-serve-static-core': 4.19.5 - '@types/node': 20.14.9 - - '@types/connect@3.4.38': - dependencies: - '@types/node': 20.14.9 - - '@types/d3-scale-chromatic@3.0.3': {} - - '@types/d3-scale@4.0.8': - dependencies: - '@types/d3-time': 3.0.3 - - '@types/d3-time@3.0.3': {} - - '@types/debug@4.1.12': - dependencies: - '@types/ms': 0.7.34 - - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 8.56.10 - '@types/estree': 1.0.6 - - '@types/eslint@8.56.10': - dependencies: - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 - - '@types/estree-jsx@1.0.5': - dependencies: - '@types/estree': 1.0.6 - - '@types/estree@0.0.39': {} - - '@types/estree@1.0.6': {} - - '@types/express-serve-static-core@4.19.5': - dependencies: - '@types/node': 20.14.9 - '@types/qs': 6.9.15 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 - - '@types/express@4.17.21': - dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.5 - '@types/qs': 6.9.15 - '@types/serve-static': 1.15.7 - - '@types/gtag.js@0.0.12': {} - - '@types/hast@2.3.10': - dependencies: - '@types/unist': 2.0.10 - - '@types/hast@3.0.4': - dependencies: - '@types/unist': 3.0.2 - - '@types/history@4.7.11': {} - - '@types/html-minifier-terser@6.1.0': {} - - '@types/http-cache-semantics@4.0.4': {} - - '@types/http-errors@2.0.4': {} - - '@types/http-proxy@1.17.14': - dependencies: - '@types/node': 20.14.9 - - '@types/istanbul-lib-coverage@2.0.6': {} - - '@types/istanbul-lib-report@3.0.3': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - - '@types/istanbul-reports@3.0.4': - dependencies: - '@types/istanbul-lib-report': 3.0.3 - - '@types/json-schema@7.0.15': {} - - '@types/mdast@3.0.15': - dependencies: - '@types/unist': 2.0.10 - - '@types/mdast@4.0.4': - dependencies: - '@types/unist': 3.0.2 - - '@types/mdx@2.0.13': {} - - '@types/mime@1.3.5': {} - - '@types/ms@0.7.34': {} - - '@types/node-forge@1.3.11': - dependencies: - '@types/node': 20.14.9 - - '@types/node@17.0.45': {} - - '@types/node@20.14.9': - dependencies: - undici-types: 5.26.5 - - '@types/parse-json@4.0.2': {} - - '@types/parse5@5.0.3': {} - - '@types/prismjs@1.26.4': {} - - '@types/prop-types@15.7.12': {} - - '@types/qs@6.9.15': {} - - '@types/range-parser@1.2.7': {} - - '@types/react-router-config@5.0.11': - dependencies: - '@types/history': 4.7.11 - '@types/react': 18.3.3 - '@types/react-router': 5.1.20 - - '@types/react-router-dom@5.3.3': - dependencies: - '@types/history': 4.7.11 - '@types/react': 18.3.3 - '@types/react-router': 5.1.20 - - '@types/react-router@5.1.20': - dependencies: - '@types/history': 4.7.11 - '@types/react': 18.3.3 - - '@types/react@18.3.3': - dependencies: - '@types/prop-types': 15.7.12 - csstype: 3.1.3 - - '@types/resolve@1.20.2': {} - - '@types/retry@0.12.0': {} - - '@types/sax@1.2.7': - dependencies: - '@types/node': 20.14.9 - - '@types/send@0.17.4': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 20.14.9 - - '@types/serve-index@1.9.4': - dependencies: - '@types/express': 4.17.21 - - '@types/serve-static@1.15.7': - dependencies: - '@types/http-errors': 2.0.4 - '@types/node': 20.14.9 - '@types/send': 0.17.4 - - '@types/sockjs@0.3.36': - dependencies: - '@types/node': 20.14.9 - - '@types/trusted-types@2.0.7': {} - - '@types/unist@2.0.10': {} - - '@types/unist@3.0.2': {} - - '@types/ws@8.5.10': - dependencies: - '@types/node': 20.14.9 - - '@types/yargs-parser@21.0.3': {} - - '@types/yargs@17.0.32': - dependencies: - '@types/yargs-parser': 21.0.3 - - '@ungap/structured-clone@1.2.0': {} - - '@webassemblyjs/ast@1.12.1': - dependencies: - '@webassemblyjs/helper-numbers': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - - '@webassemblyjs/floating-point-hex-parser@1.11.6': {} - - '@webassemblyjs/helper-api-error@1.11.6': {} - - '@webassemblyjs/helper-buffer@1.12.1': {} - - '@webassemblyjs/helper-numbers@1.11.6': - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.6 - '@webassemblyjs/helper-api-error': 1.11.6 - '@xtuc/long': 4.2.2 - - '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} - - '@webassemblyjs/helper-wasm-section@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/wasm-gen': 1.12.1 - - '@webassemblyjs/ieee754@1.11.6': - dependencies: - '@xtuc/ieee754': 1.2.0 - - '@webassemblyjs/leb128@1.11.6': - dependencies: - '@xtuc/long': 4.2.2 - - '@webassemblyjs/utf8@1.11.6': {} - - '@webassemblyjs/wasm-edit@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/helper-wasm-section': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-opt': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - '@webassemblyjs/wast-printer': 1.12.1 - - '@webassemblyjs/wasm-gen@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 - - '@webassemblyjs/wasm-opt@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - - '@webassemblyjs/wasm-parser@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-api-error': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 - - '@webassemblyjs/wast-printer@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@xtuc/long': 4.2.2 - - '@xtuc/ieee754@1.2.0': {} - - '@xtuc/long@4.2.2': {} - - abbrev@1.1.1: {} - - accepts@1.3.8: - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - - acorn-jsx@5.3.2(acorn@8.14.0): - dependencies: - acorn: 8.14.0 - - acorn-walk@8.3.3: - dependencies: - acorn: 8.14.0 - - acorn@8.14.0: {} - - address@1.2.2: {} - - aggregate-error@3.1.0: - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - - ajv-formats@2.1.1(ajv@8.16.0): - optionalDependencies: - ajv: 8.16.0 - - ajv-keywords@3.5.2(ajv@6.12.6): - dependencies: - ajv: 6.12.6 - - ajv-keywords@5.1.0(ajv@8.16.0): - dependencies: - ajv: 8.16.0 - fast-deep-equal: 3.1.3 - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ajv@8.16.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - algoliasearch-helper@3.22.2(algoliasearch@4.24.0): - dependencies: - '@algolia/events': 4.0.1 - algoliasearch: 4.24.0 - - algoliasearch@4.24.0: - dependencies: - '@algolia/cache-browser-local-storage': 4.24.0 - '@algolia/cache-common': 4.24.0 - '@algolia/cache-in-memory': 4.24.0 - '@algolia/client-account': 4.24.0 - '@algolia/client-analytics': 4.24.0 - '@algolia/client-common': 4.24.0 - '@algolia/client-personalization': 4.24.0 - '@algolia/client-search': 4.24.0 - '@algolia/logger-common': 4.24.0 - '@algolia/logger-console': 4.24.0 - '@algolia/recommend': 4.24.0 - '@algolia/requester-browser-xhr': 4.24.0 - '@algolia/requester-common': 4.24.0 - '@algolia/requester-node-http': 4.24.0 - '@algolia/transporter': 4.24.0 - - ansi-align@3.0.1: - dependencies: - string-width: 4.2.3 - - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - - ansi-html-community@0.0.8: {} - - ansi-regex@5.0.1: {} - - ansi-regex@6.0.1: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@6.2.1: {} - - any-promise@1.3.0: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - aproba@2.0.0: {} - - arg@5.0.2: {} - - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - - argparse@2.0.1: {} - - array-buffer-byte-length@1.0.1: - dependencies: - call-bind: 1.0.7 - is-array-buffer: 3.0.4 - - array-flatten@1.1.1: {} - - array-union@2.1.0: {} - - arraybuffer.prototype.slice@1.0.3: - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.5 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.3 - - astring@1.8.6: {} - - async@3.2.6: {} - - at-least-node@1.0.0: {} - - autocomplete.js@0.37.1: - dependencies: - immediate: 3.3.0 - - autocomplete.js@0.38.1: - dependencies: - immediate: 3.3.0 - - autoprefixer@10.4.19(postcss@8.4.39): - dependencies: - browserslist: 4.23.1 - caniuse-lite: 1.0.30001640 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.0.1 - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.0.0 - - babel-loader@9.2.1(@babel/core@7.26.0)(webpack@5.96.1): - dependencies: - '@babel/core': 7.26.0 - find-cache-dir: 4.0.0 - schema-utils: 4.2.0 - webpack: 5.96.1 - - babel-plugin-dynamic-import-node@2.3.3: - dependencies: - object.assign: 4.1.5 - - babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.26.0): - dependencies: - '@babel/compat-data': 7.26.2 - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.26.0): - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0) - core-js-compat: 3.39.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.26.0): - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - bail@1.0.5: {} - - bail@2.0.2: {} - - balanced-match@1.0.2: {} - - batch@0.6.1: {} - - bcp-47-match@1.0.3: {} - - big.js@5.2.2: {} - - binary-extensions@2.3.0: {} - - body-parser@1.20.2: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - bonjour-service@1.2.1: - dependencies: - fast-deep-equal: 3.1.3 - multicast-dns: 7.2.5 - - boolbase@1.0.0: {} - - boxen@6.2.1: - dependencies: - ansi-align: 3.0.1 - camelcase: 6.3.0 - chalk: 4.1.2 - cli-boxes: 3.0.0 - string-width: 5.1.2 - type-fest: 2.19.0 - widest-line: 4.0.1 - wrap-ansi: 8.1.0 - - boxen@7.1.1: - dependencies: - ansi-align: 3.0.1 - camelcase: 7.0.1 - chalk: 5.3.0 - cli-boxes: 3.0.0 - string-width: 5.1.2 - type-fest: 2.19.0 - widest-line: 4.0.1 - wrap-ansi: 8.1.0 - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browserslist@4.23.1: - dependencies: - caniuse-lite: 1.0.30001640 - electron-to-chromium: 1.4.816 - node-releases: 2.0.14 - update-browserslist-db: 1.1.0(browserslist@4.23.1) - - browserslist@4.24.2: - dependencies: - caniuse-lite: 1.0.30001680 - electron-to-chromium: 1.5.62 - node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.2) - - buffer-from@1.1.2: {} - - bytes@3.0.0: {} - - bytes@3.1.2: {} - - cacheable-lookup@7.0.0: {} - - cacheable-request@10.2.14: - dependencies: - '@types/http-cache-semantics': 4.0.4 - get-stream: 6.0.1 - http-cache-semantics: 4.1.1 - keyv: 4.5.4 - mimic-response: 4.0.0 - normalize-url: 8.0.1 - responselike: 3.0.0 - - call-bind@1.0.7: - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.2 - - callsites@3.1.0: {} - - camel-case@4.1.2: - dependencies: - pascal-case: 3.1.2 - tslib: 2.6.3 - - camelcase-css@2.0.1: {} - - camelcase@6.3.0: {} - - camelcase@7.0.1: {} - - caniuse-api@3.0.0: - dependencies: - browserslist: 4.24.2 - caniuse-lite: 1.0.30001680 - lodash.memoize: 4.1.2 - lodash.uniq: 4.5.0 - - caniuse-lite@1.0.30001640: {} - - caniuse-lite@1.0.30001680: {} - - ccount@2.0.1: {} - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chalk@5.3.0: {} - - char-regex@1.0.2: {} - - character-entities-html4@2.1.0: {} - - character-entities-legacy@3.0.0: {} - - character-entities@2.0.2: {} - - character-reference-invalid@2.0.1: {} - - cheerio-select@2.1.0: - dependencies: - boolbase: 1.0.0 - css-select: 5.1.0 - css-what: 6.1.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.1.0 - - cheerio@1.0.0-rc.12: - dependencies: - cheerio-select: 2.1.0 - dom-serializer: 2.0.0 - domhandler: 5.0.3 - domutils: 3.1.0 - htmlparser2: 8.0.2 - parse5: 7.1.2 - parse5-htmlparser2-tree-adapter: 7.0.0 - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - chrome-trace-event@1.0.4: {} - - ci-info@3.9.0: {} - - clean-css@5.3.3: - dependencies: - source-map: 0.6.1 - - clean-stack@2.2.0: {} - - cli-boxes@3.0.0: {} - - cli-table3@0.6.5: - dependencies: - string-width: 4.2.3 - optionalDependencies: - '@colors/colors': 1.5.0 - - clone-deep@4.0.1: - dependencies: - is-plain-object: 2.0.4 - kind-of: 6.0.3 - shallow-clone: 3.0.1 - - clsx@1.2.1: {} - - clsx@2.1.1: {} - - collapse-white-space@2.1.0: {} - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - color-support@1.1.3: {} - - colord@2.9.3: {} - - colorette@2.0.20: {} - - combine-promises@1.2.0: {} - - comma-separated-tokens@1.0.8: {} - - comma-separated-tokens@2.0.3: {} - - commander@10.0.1: {} - - commander@2.20.3: {} - - commander@4.1.1: {} - - commander@5.1.0: {} - - commander@7.2.0: {} - - commander@8.3.0: {} - - common-path-prefix@3.0.0: {} - - common-tags@1.8.2: {} - - compressible@2.0.18: - dependencies: - mime-db: 1.52.0 - - compression@1.7.4: - dependencies: - accepts: 1.3.8 - bytes: 3.0.0 - compressible: 2.0.18 - debug: 2.6.9 - on-headers: 1.0.2 - safe-buffer: 5.1.2 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - - concat-map@0.0.1: {} - - config-chain@1.1.13: - dependencies: - ini: 1.3.8 - proto-list: 1.2.4 - - configstore@6.0.0: - dependencies: - dot-prop: 6.0.1 - graceful-fs: 4.2.11 - unique-string: 3.0.0 - write-file-atomic: 3.0.3 - xdg-basedir: 5.1.0 - - connect-history-api-fallback@2.0.0: {} - - consola@3.2.3: {} - - console-control-strings@1.1.0: {} - - content-disposition@0.5.2: {} - - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 - - content-type@1.0.5: {} - - convert-source-map@2.0.0: {} - - cookie-signature@1.0.6: {} - - cookie@0.6.0: {} - - copy-text-to-clipboard@3.2.0: {} - - copy-webpack-plugin@11.0.0(webpack@5.96.1): - dependencies: - fast-glob: 3.3.2 - glob-parent: 6.0.2 - globby: 13.2.2 - normalize-path: 3.0.0 - schema-utils: 4.2.0 - serialize-javascript: 6.0.2 - webpack: 5.96.1 - - core-js-compat@3.39.0: - dependencies: - browserslist: 4.24.2 - - core-js-pure@3.37.1: {} - - core-js@3.37.1: {} - - core-util-is@1.0.3: {} - - cose-base@1.0.3: - dependencies: - layout-base: 1.0.2 - - cosmiconfig@6.0.0: - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - - cosmiconfig@8.3.6(typescript@5.2.2): - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - optionalDependencies: - typescript: 5.2.2 - - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - crypto-random-string@2.0.0: {} - - crypto-random-string@4.0.0: - dependencies: - type-fest: 1.4.0 - - css-declaration-sorter@7.2.0(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - - css-loader@6.11.0(webpack@5.96.1): - dependencies: - icss-utils: 5.1.0(postcss@8.4.39) - postcss: 8.4.39 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.39) - postcss-modules-local-by-default: 4.0.5(postcss@8.4.39) - postcss-modules-scope: 3.2.0(postcss@8.4.39) - postcss-modules-values: 4.0.0(postcss@8.4.39) - postcss-value-parser: 4.2.0 - semver: 7.6.2 - optionalDependencies: - webpack: 5.96.1 - - css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.96.1): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - cssnano: 6.1.2(postcss@8.4.39) - jest-worker: 29.7.0 - postcss: 8.4.39 - schema-utils: 4.2.0 - serialize-javascript: 6.0.2 - webpack: 5.96.1 - optionalDependencies: - clean-css: 5.3.3 - - css-select@4.3.0: - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 4.3.1 - domutils: 2.8.0 - nth-check: 2.1.1 - - css-select@5.1.0: - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 5.0.3 - domutils: 3.1.0 - nth-check: 2.1.1 - - css-selector-parser@1.4.1: {} - - css-tree@2.2.1: - dependencies: - mdn-data: 2.0.28 - source-map-js: 1.2.0 - - css-tree@2.3.1: - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.2.0 - - css-what@6.1.0: {} - - cssesc@3.0.0: {} - - cssnano-preset-advanced@6.1.2(postcss@8.4.39): - dependencies: - autoprefixer: 10.4.19(postcss@8.4.39) - browserslist: 4.24.2 - cssnano-preset-default: 6.1.2(postcss@8.4.39) - postcss: 8.4.39 - postcss-discard-unused: 6.0.5(postcss@8.4.39) - postcss-merge-idents: 6.0.3(postcss@8.4.39) - postcss-reduce-idents: 6.0.3(postcss@8.4.39) - postcss-zindex: 6.0.2(postcss@8.4.39) - - cssnano-preset-default@6.1.2(postcss@8.4.39): - dependencies: - browserslist: 4.24.2 - css-declaration-sorter: 7.2.0(postcss@8.4.39) - cssnano-utils: 4.0.2(postcss@8.4.39) - postcss: 8.4.39 - postcss-calc: 9.0.1(postcss@8.4.39) - postcss-colormin: 6.1.0(postcss@8.4.39) - postcss-convert-values: 6.1.0(postcss@8.4.39) - postcss-discard-comments: 6.0.2(postcss@8.4.39) - postcss-discard-duplicates: 6.0.3(postcss@8.4.39) - postcss-discard-empty: 6.0.3(postcss@8.4.39) - postcss-discard-overridden: 6.0.2(postcss@8.4.39) - postcss-merge-longhand: 6.0.5(postcss@8.4.39) - postcss-merge-rules: 6.1.1(postcss@8.4.39) - postcss-minify-font-values: 6.1.0(postcss@8.4.39) - postcss-minify-gradients: 6.0.3(postcss@8.4.39) - postcss-minify-params: 6.1.0(postcss@8.4.39) - postcss-minify-selectors: 6.0.4(postcss@8.4.39) - postcss-normalize-charset: 6.0.2(postcss@8.4.39) - postcss-normalize-display-values: 6.0.2(postcss@8.4.39) - postcss-normalize-positions: 6.0.2(postcss@8.4.39) - postcss-normalize-repeat-style: 6.0.2(postcss@8.4.39) - postcss-normalize-string: 6.0.2(postcss@8.4.39) - postcss-normalize-timing-functions: 6.0.2(postcss@8.4.39) - postcss-normalize-unicode: 6.1.0(postcss@8.4.39) - postcss-normalize-url: 6.0.2(postcss@8.4.39) - postcss-normalize-whitespace: 6.0.2(postcss@8.4.39) - postcss-ordered-values: 6.0.2(postcss@8.4.39) - postcss-reduce-initial: 6.1.0(postcss@8.4.39) - postcss-reduce-transforms: 6.0.2(postcss@8.4.39) - postcss-svgo: 6.0.3(postcss@8.4.39) - postcss-unique-selectors: 6.0.4(postcss@8.4.39) - - cssnano-utils@4.0.2(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - - cssnano@6.1.2(postcss@8.4.39): - dependencies: - cssnano-preset-default: 6.1.2(postcss@8.4.39) - lilconfig: 3.1.2 - postcss: 8.4.39 - - csso@5.0.5: - dependencies: - css-tree: 2.2.1 - - csstype@3.1.3: {} - - cytoscape-cose-bilkent@4.1.0(cytoscape@3.30.0): - dependencies: - cose-base: 1.0.3 - cytoscape: 3.30.0 - - cytoscape@3.30.0: {} - - d3-array@2.12.1: - dependencies: - internmap: 1.0.1 - - d3-array@3.2.4: - dependencies: - internmap: 2.0.3 - - d3-axis@3.0.0: {} - - d3-brush@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-transition: 3.0.1(d3-selection@3.0.0) - - d3-chord@3.0.1: - dependencies: - d3-path: 3.1.0 - - d3-color@3.1.0: {} - - d3-contour@4.0.2: - dependencies: - d3-array: 3.2.4 - - d3-delaunay@6.0.4: - dependencies: - delaunator: 5.0.1 - - d3-dispatch@3.0.1: {} - - d3-drag@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-selection: 3.0.0 - - d3-dsv@3.0.1: - dependencies: - commander: 7.2.0 - iconv-lite: 0.6.3 - rw: 1.3.3 - - d3-ease@3.0.1: {} - - d3-fetch@3.0.1: - dependencies: - d3-dsv: 3.0.1 - - d3-force@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-quadtree: 3.0.1 - d3-timer: 3.0.1 - - d3-format@3.1.0: {} - - d3-geo@3.1.1: - dependencies: - d3-array: 3.2.4 - - d3-hierarchy@3.1.2: {} - - d3-interpolate@3.0.1: - dependencies: - d3-color: 3.1.0 - - d3-path@1.0.9: {} - - d3-path@3.1.0: {} - - d3-polygon@3.0.1: {} - - d3-quadtree@3.0.1: {} - - d3-random@3.0.1: {} - - d3-sankey@0.12.3: - dependencies: - d3-array: 2.12.1 - d3-shape: 1.3.7 - - d3-scale-chromatic@3.1.0: - dependencies: - d3-color: 3.1.0 - d3-interpolate: 3.0.1 - - d3-scale@4.0.2: - dependencies: - d3-array: 3.2.4 - d3-format: 3.1.0 - d3-interpolate: 3.0.1 - d3-time: 3.1.0 - d3-time-format: 4.1.0 - - d3-selection@3.0.0: {} - - d3-shape@1.3.7: - dependencies: - d3-path: 1.0.9 - - d3-shape@3.2.0: - dependencies: - d3-path: 3.1.0 - - d3-time-format@4.1.0: - dependencies: - d3-time: 3.1.0 - - d3-time@3.1.0: - dependencies: - d3-array: 3.2.4 - - d3-timer@3.0.1: {} - - d3-transition@3.0.1(d3-selection@3.0.0): - dependencies: - d3-color: 3.1.0 - d3-dispatch: 3.0.1 - d3-ease: 3.0.1 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-timer: 3.0.1 - - d3-zoom@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-transition: 3.0.1(d3-selection@3.0.0) - - d3@7.9.0: - dependencies: - d3-array: 3.2.4 - d3-axis: 3.0.0 - d3-brush: 3.0.0 - d3-chord: 3.0.1 - d3-color: 3.1.0 - d3-contour: 4.0.2 - d3-delaunay: 6.0.4 - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-dsv: 3.0.1 - d3-ease: 3.0.1 - d3-fetch: 3.0.1 - d3-force: 3.0.0 - d3-format: 3.1.0 - d3-geo: 3.1.1 - d3-hierarchy: 3.1.2 - d3-interpolate: 3.0.1 - d3-path: 3.1.0 - d3-polygon: 3.0.1 - d3-quadtree: 3.0.1 - d3-random: 3.0.1 - d3-scale: 4.0.2 - d3-scale-chromatic: 3.1.0 - d3-selection: 3.0.0 - d3-shape: 3.2.0 - d3-time: 3.1.0 - d3-time-format: 4.1.0 - d3-timer: 3.0.1 - d3-transition: 3.0.1(d3-selection@3.0.0) - d3-zoom: 3.0.0 - - dagre-d3-es@7.0.10: - dependencies: - d3: 7.9.0 - lodash-es: 4.17.21 - - data-view-buffer@1.0.1: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 - - data-view-byte-length@1.0.1: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 - - data-view-byte-offset@1.0.0: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 - - dayjs@1.11.11: {} - - debounce@1.2.1: {} - - debug@2.6.9: - dependencies: - ms: 2.0.0 - - debug@4.3.5: - dependencies: - ms: 2.1.2 - - decode-named-character-reference@1.0.2: - dependencies: - character-entities: 2.0.2 - - decompress-response@6.0.0: - dependencies: - mimic-response: 3.1.0 - - deep-extend@0.6.0: {} - - deepmerge@4.3.1: {} - - default-gateway@6.0.3: - dependencies: - execa: 5.1.1 - - defer-to-connect@2.0.1: {} - - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - gopd: 1.0.1 - - define-lazy-prop@2.0.0: {} - - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - - del@6.1.1: - dependencies: - globby: 11.1.0 - graceful-fs: 4.2.11 - is-glob: 4.0.3 - is-path-cwd: 2.2.0 - is-path-inside: 3.0.3 - p-map: 4.0.0 - rimraf: 3.0.2 - slash: 3.0.0 - - delaunator@5.0.1: - dependencies: - robust-predicates: 3.0.2 - - depd@1.1.2: {} - - depd@2.0.0: {} - - dequal@2.0.3: {} - - destroy@1.2.0: {} - - detect-node@2.1.0: {} - - detect-port-alt@1.1.6: - dependencies: - address: 1.2.2 - debug: 2.6.9 - transitivePeerDependencies: - - supports-color - - detect-port@1.6.1: - dependencies: - address: 1.2.2 - debug: 4.3.5 - transitivePeerDependencies: - - supports-color - - devlop@1.1.0: - dependencies: - dequal: 2.0.3 - - didyoumean@1.2.2: {} - - diff@5.2.0: {} - - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - - direction@1.0.4: {} - - dlv@1.1.3: {} - - dns-packet@5.6.1: - dependencies: - '@leichtgewicht/ip-codec': 2.0.5 - - docusaurus-lunr-search@3.4.0(@docusaurus/core@3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@docusaurus/core': 3.6.1(@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) - autocomplete.js: 0.37.1 - clsx: 1.2.1 - gauge: 3.0.2 - hast-util-select: 4.0.2 - hast-util-to-text: 2.0.1 - hogan.js: 3.0.2 - lunr: 2.3.9 - lunr-languages: 1.14.0 - mark.js: 8.11.1 - minimatch: 3.1.2 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - rehype-parse: 7.0.1 - to-vfile: 6.1.0 - unified: 9.2.2 - unist-util-is: 4.1.0 - - dom-converter@0.2.0: - dependencies: - utila: 0.4.0 - - dom-serializer@1.4.1: - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - entities: 2.2.0 - - dom-serializer@2.0.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 - - domelementtype@2.3.0: {} - - domhandler@4.3.1: - dependencies: - domelementtype: 2.3.0 - - domhandler@5.0.3: - dependencies: - domelementtype: 2.3.0 - - dompurify@3.1.6: {} - - domutils@2.8.0: - dependencies: - dom-serializer: 1.4.1 - domelementtype: 2.3.0 - domhandler: 4.3.1 - - domutils@3.1.0: - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - - dot-case@3.0.4: - dependencies: - no-case: 3.0.4 - tslib: 2.6.3 - - dot-prop@6.0.1: - dependencies: - is-obj: 2.0.0 - - duplexer@0.1.2: {} - - eastasianwidth@0.2.0: {} - - ee-first@1.1.1: {} - - ejs@3.1.10: - dependencies: - jake: 10.9.2 - - electron-to-chromium@1.4.816: {} - - electron-to-chromium@1.5.62: {} - - elkjs@0.9.3: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - - emojilib@2.4.0: {} - - emojis-list@3.0.0: {} - - emoticon@4.0.1: {} - - encodeurl@1.0.2: {} - - enhanced-resolve@5.17.1: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - - entities@2.2.0: {} - - entities@4.5.0: {} - - error-ex@1.3.2: - dependencies: - is-arrayish: 0.2.1 - - es-abstract@1.23.5: - dependencies: - array-buffer-byte-length: 1.0.1 - arraybuffer.prototype.slice: 1.0.3 - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - data-view-buffer: 1.0.1 - data-view-byte-length: 1.0.1 - data-view-byte-offset: 1.0.0 - es-define-property: 1.0.0 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-set-tostringtag: 2.0.3 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.4 - get-symbol-description: 1.0.2 - globalthis: 1.0.4 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - internal-slot: 1.0.7 - is-array-buffer: 3.0.4 - is-callable: 1.2.7 - is-data-view: 1.0.1 - is-negative-zero: 2.0.3 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - is-string: 1.0.7 - is-typed-array: 1.1.13 - is-weakref: 1.0.2 - object-inspect: 1.13.3 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.3 - safe-array-concat: 1.1.2 - safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.9 - string.prototype.trimend: 1.0.8 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.2 - typed-array-byte-length: 1.0.1 - typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.6 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.15 - - es-define-property@1.0.0: - dependencies: - get-intrinsic: 1.2.4 - - es-errors@1.3.0: {} - - es-module-lexer@1.5.4: {} - - es-object-atoms@1.0.0: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.0.3: - dependencies: - get-intrinsic: 1.2.4 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - es-to-primitive@1.2.1: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - - escalade@3.1.2: {} - - escalade@3.2.0: {} - - escape-goat@4.0.0: {} - - escape-html@1.0.3: {} - - escape-string-regexp@1.0.5: {} - - escape-string-regexp@4.0.0: {} - - escape-string-regexp@5.0.0: {} - - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - - esprima@4.0.1: {} - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@4.3.0: {} - - estraverse@5.3.0: {} - - estree-util-attach-comments@3.0.0: - dependencies: - '@types/estree': 1.0.6 - - estree-util-build-jsx@3.0.1: - dependencies: - '@types/estree-jsx': 1.0.5 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - estree-walker: 3.0.3 - - estree-util-is-identifier-name@3.0.0: {} - - estree-util-to-js@2.0.0: - dependencies: - '@types/estree-jsx': 1.0.5 - astring: 1.8.6 - source-map: 0.7.4 - - estree-util-value-to-estree@3.1.2: - dependencies: - '@types/estree': 1.0.6 - - estree-util-visit@2.0.0: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/unist': 3.0.2 - - estree-walker@1.0.1: {} - - estree-walker@2.0.2: {} - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.6 - - esutils@2.0.3: {} - - eta@2.2.0: {} - - etag@1.8.1: {} - - eval@0.1.8: - dependencies: - '@types/node': 20.14.9 - require-like: 0.1.2 - - eventemitter3@4.0.7: {} - - events@3.3.0: {} - - execa@5.1.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - express@4.19.2: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.2 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.6.0 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.2.0 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.1 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.7 - proxy-addr: 2.0.7 - qs: 6.11.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - - extend-shallow@2.0.1: - dependencies: - is-extendable: 0.1.1 - - extend@3.0.2: {} - - fast-deep-equal@3.1.3: {} - - fast-glob@3.3.2: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.7 - - fast-json-stable-stringify@2.1.0: {} - - fastq@1.17.1: - dependencies: - reusify: 1.0.4 - - fault@2.0.1: - dependencies: - format: 0.2.2 - - faye-websocket@0.11.4: - dependencies: - websocket-driver: 0.7.4 - - feed@4.2.2: - dependencies: - xml-js: 1.6.11 - - figures@3.2.0: - dependencies: - escape-string-regexp: 1.0.5 - - file-loader@6.2.0(webpack@5.96.1): - dependencies: - loader-utils: 2.0.4 - schema-utils: 3.3.0 - webpack: 5.96.1 - - filelist@1.0.4: - dependencies: - minimatch: 5.1.6 - - filesize@8.0.7: {} - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - finalhandler@1.2.0: - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - find-cache-dir@4.0.0: - dependencies: - common-path-prefix: 3.0.0 - pkg-dir: 7.0.0 - - find-up@3.0.0: - dependencies: - locate-path: 3.0.0 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - find-up@6.3.0: - dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 - - flat@5.0.2: {} - - follow-redirects@1.15.6: {} - - for-each@0.3.3: - dependencies: - is-callable: 1.2.7 - - foreground-child@3.2.1: - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - - fork-ts-checker-webpack-plugin@6.5.3(typescript@5.2.2)(webpack@5.96.1): - dependencies: - '@babel/code-frame': 7.26.2 - '@types/json-schema': 7.0.15 - chalk: 4.1.2 - chokidar: 3.6.0 - cosmiconfig: 6.0.0 - deepmerge: 4.3.1 - fs-extra: 9.1.0 - glob: 7.2.3 - memfs: 3.5.3 - minimatch: 3.1.2 - schema-utils: 2.7.0 - semver: 7.6.2 - tapable: 1.1.3 - typescript: 5.2.2 - webpack: 5.96.1 - - form-data-encoder@2.1.4: {} - - format@0.2.2: {} - - forwarded@0.2.0: {} - - fraction.js@4.3.7: {} - - fresh@0.5.2: {} - - fs-extra@11.2.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs-extra@9.1.0: - dependencies: - at-least-node: 1.0.0 - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs-monkey@1.0.6: {} - - fs.realpath@1.0.0: {} - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - function.prototype.name@1.1.6: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.5 - functions-have-names: 1.2.3 - - functions-have-names@1.2.3: {} - - gauge@3.0.2: - dependencies: - aproba: 2.0.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - - gensync@1.0.0-beta.2: {} - - get-intrinsic@1.2.4: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - - get-own-enumerable-property-symbols@3.0.2: {} - - get-stream@6.0.1: {} - - get-symbol-description@1.0.2: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - - github-slugger@1.5.0: {} - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - glob-to-regexp@0.4.1: {} - - glob@10.4.2: - dependencies: - foreground-child: 3.2.1 - jackspeak: 3.4.0 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.0 - path-scurry: 1.11.1 - - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - global-dirs@3.0.1: - dependencies: - ini: 2.0.0 - - global-modules@2.0.0: - dependencies: - global-prefix: 3.0.0 - - global-prefix@3.0.0: - dependencies: - ini: 1.3.8 - kind-of: 6.0.3 - which: 1.3.1 - - globals@11.12.0: {} - - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.0.1 - - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 - merge2: 1.4.1 - slash: 3.0.0 - - globby@13.2.2: - dependencies: - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 - merge2: 1.4.1 - slash: 4.0.0 - - gopd@1.0.1: - dependencies: - get-intrinsic: 1.2.4 - - got@12.6.1: - dependencies: - '@sindresorhus/is': 5.6.0 - '@szmarczak/http-timer': 5.0.1 - cacheable-lookup: 7.0.0 - cacheable-request: 10.2.14 - decompress-response: 6.0.0 - form-data-encoder: 2.1.4 - get-stream: 6.0.1 - http2-wrapper: 2.2.1 - lowercase-keys: 3.0.0 - p-cancelable: 3.0.0 - responselike: 3.0.0 - - graceful-fs@4.2.10: {} - - graceful-fs@4.2.11: {} - - gray-matter@4.0.3: - dependencies: - js-yaml: 3.14.1 - kind-of: 6.0.3 - section-matter: 1.0.0 - strip-bom-string: 1.0.0 - - gzip-size@6.0.0: - dependencies: - duplexer: 0.1.2 - - handle-thing@2.0.1: {} - - has-bigints@1.0.2: {} - - has-flag@4.0.0: {} - - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.0 - - has-proto@1.0.3: {} - - has-symbols@1.0.3: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.0.3 - - has-unicode@2.0.1: {} - - has-yarn@3.0.0: {} - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - hast-util-from-parse5@6.0.1: - dependencies: - '@types/parse5': 5.0.3 - hastscript: 6.0.0 - property-information: 5.6.0 - vfile: 4.2.1 - vfile-location: 3.2.0 - web-namespaces: 1.1.4 - - hast-util-from-parse5@8.0.1: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.2 - devlop: 1.1.0 - hastscript: 8.0.0 - property-information: 6.5.0 - vfile: 6.0.1 - vfile-location: 5.0.2 - web-namespaces: 2.0.1 - - hast-util-has-property@1.0.4: {} - - hast-util-is-element@1.1.0: {} - - hast-util-parse-selector@2.2.5: {} - - hast-util-parse-selector@4.0.0: - dependencies: - '@types/hast': 3.0.4 - - hast-util-raw@9.0.4: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.2 - '@ungap/structured-clone': 1.2.0 - hast-util-from-parse5: 8.0.1 - hast-util-to-parse5: 8.0.0 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.0 - parse5: 7.1.2 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.1 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - - hast-util-select@4.0.2: - dependencies: - bcp-47-match: 1.0.3 - comma-separated-tokens: 1.0.8 - css-selector-parser: 1.4.1 - direction: 1.0.4 - hast-util-has-property: 1.0.4 - hast-util-is-element: 1.1.0 - hast-util-to-string: 1.0.4 - hast-util-whitespace: 1.0.4 - not: 0.1.0 - nth-check: 2.1.1 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 - unist-util-visit: 2.0.3 - zwitch: 1.0.5 - - hast-util-to-estree@3.1.0: - dependencies: - '@types/estree': 1.0.6 - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - estree-util-attach-comments: 3.0.0 - estree-util-is-identifier-name: 3.0.0 - hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.0 - mdast-util-mdx-jsx: 3.1.2 - mdast-util-mdxjs-esm: 2.0.1 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - style-to-object: 0.4.4 - unist-util-position: 5.0.0 - zwitch: 2.0.4 - transitivePeerDependencies: - - supports-color - - hast-util-to-jsx-runtime@2.3.0: - dependencies: - '@types/estree': 1.0.6 - '@types/hast': 3.0.4 - '@types/unist': 3.0.2 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.0 - mdast-util-mdx-jsx: 3.1.2 - mdast-util-mdxjs-esm: 2.0.1 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - style-to-object: 1.0.6 - unist-util-position: 5.0.0 - vfile-message: 4.0.2 - transitivePeerDependencies: - - supports-color - - hast-util-to-parse5@8.0.0: - dependencies: - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - - hast-util-to-string@1.0.4: {} - - hast-util-to-text@2.0.1: - dependencies: - hast-util-is-element: 1.1.0 - repeat-string: 1.6.1 - unist-util-find-after: 3.0.0 - - hast-util-whitespace@1.0.4: {} - - hast-util-whitespace@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - hastscript@6.0.0: - dependencies: - '@types/hast': 2.3.10 - comma-separated-tokens: 1.0.8 - hast-util-parse-selector: 2.2.5 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 - - hastscript@8.0.0: - dependencies: - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - hast-util-parse-selector: 4.0.0 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - - he@1.2.0: {} - - history@4.10.1: - dependencies: - '@babel/runtime': 7.26.0 - loose-envify: 1.4.0 - resolve-pathname: 3.0.0 - tiny-invariant: 1.3.3 - tiny-warning: 1.0.3 - value-equal: 1.0.1 - - hogan.js@3.0.2: - dependencies: - mkdirp: 0.3.0 - nopt: 1.0.10 - - hoist-non-react-statics@3.3.2: - dependencies: - react-is: 16.13.1 - - hpack.js@2.1.6: - dependencies: - inherits: 2.0.4 - obuf: 1.1.2 - readable-stream: 2.3.8 - wbuf: 1.7.3 - - html-entities@2.5.2: {} - - html-escaper@2.0.2: {} - - html-minifier-terser@6.1.0: - dependencies: - camel-case: 4.1.2 - clean-css: 5.3.3 - commander: 8.3.0 - he: 1.2.0 - param-case: 3.0.4 - relateurl: 0.2.7 - terser: 5.31.1 - - html-minifier-terser@7.2.0: - dependencies: - camel-case: 4.1.2 - clean-css: 5.3.3 - commander: 10.0.1 - entities: 4.5.0 - param-case: 3.0.4 - relateurl: 0.2.7 - terser: 5.31.1 - - html-tags@3.3.1: {} - - html-url-attributes@3.0.1: {} - - html-void-elements@3.0.0: {} - - html-webpack-plugin@5.6.0(webpack@5.96.1): - dependencies: - '@types/html-minifier-terser': 6.1.0 - html-minifier-terser: 6.1.0 - lodash: 4.17.21 - pretty-error: 4.0.0 - tapable: 2.2.1 - optionalDependencies: - webpack: 5.96.1 - - htmlparser2@6.1.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - domutils: 2.8.0 - entities: 2.2.0 - - htmlparser2@8.0.2: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.1.0 - entities: 4.5.0 - - http-cache-semantics@4.1.1: {} - - http-deceiver@1.2.7: {} - - http-errors@1.6.3: - dependencies: - depd: 1.1.2 - inherits: 2.0.3 - setprototypeof: 1.1.0 - statuses: 1.5.0 - - http-errors@2.0.0: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - - http-parser-js@0.5.8: {} - - http-proxy-middleware@2.0.6(@types/express@4.17.21): - dependencies: - '@types/http-proxy': 1.17.14 - http-proxy: 1.18.1 - is-glob: 4.0.3 - is-plain-obj: 3.0.0 - micromatch: 4.0.7 - optionalDependencies: - '@types/express': 4.17.21 - transitivePeerDependencies: - - debug - - http-proxy@1.18.1: - dependencies: - eventemitter3: 4.0.7 - follow-redirects: 1.15.6 - requires-port: 1.0.0 - transitivePeerDependencies: - - debug - - http2-wrapper@2.2.1: - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - - human-signals@2.1.0: {} - - iconv-lite@0.4.24: - dependencies: - safer-buffer: 2.1.2 - - iconv-lite@0.6.3: - dependencies: - safer-buffer: 2.1.2 - - icss-utils@5.1.0(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - - idb@7.1.1: {} - - ignore@5.3.1: {} - - image-size@1.1.1: - dependencies: - queue: 6.0.2 - - immediate@3.3.0: {} - - immer@9.0.21: {} - - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - import-lazy@4.0.0: {} - - imurmurhash@0.1.4: {} - - indent-string@4.0.0: {} - - infima@0.2.0-alpha.45: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.3: {} - - inherits@2.0.4: {} - - ini@1.3.8: {} - - ini@2.0.0: {} - - inline-style-parser@0.1.1: {} - - inline-style-parser@0.2.3: {} - - internal-slot@1.0.7: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.0.6 - - internmap@1.0.1: {} - - internmap@2.0.3: {} - - interpret@1.4.0: {} - - invariant@2.2.4: - dependencies: - loose-envify: 1.4.0 - - ipaddr.js@1.9.1: {} - - ipaddr.js@2.2.0: {} - - is-alphabetical@2.0.1: {} - - is-alphanumerical@2.0.1: - dependencies: - is-alphabetical: 2.0.1 - is-decimal: 2.0.1 - - is-array-buffer@3.0.4: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - - is-arrayish@0.2.1: {} - - is-bigint@1.0.4: - dependencies: - has-bigints: 1.0.2 - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-boolean-object@1.1.2: - dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 - - is-buffer@2.0.5: {} - - is-callable@1.2.7: {} - - is-ci@3.0.1: - dependencies: - ci-info: 3.9.0 - - is-core-module@2.14.0: - dependencies: - hasown: 2.0.2 - - is-data-view@1.0.1: - dependencies: - is-typed-array: 1.1.13 - - is-date-object@1.0.5: - dependencies: - has-tostringtag: 1.0.2 - - is-decimal@2.0.1: {} - - is-docker@2.2.1: {} - - is-extendable@0.1.1: {} - - is-extglob@2.1.1: {} - - is-fullwidth-code-point@3.0.0: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-hexadecimal@2.0.1: {} - - is-installed-globally@0.4.0: - dependencies: - global-dirs: 3.0.1 - is-path-inside: 3.0.3 - - is-module@1.0.0: {} - - is-negative-zero@2.0.3: {} - - is-npm@6.0.0: {} - - is-number-object@1.0.7: - dependencies: - has-tostringtag: 1.0.2 - - is-number@7.0.0: {} - - is-obj@1.0.1: {} - - is-obj@2.0.0: {} - - is-path-cwd@2.2.0: {} - - is-path-inside@3.0.3: {} - - is-plain-obj@2.1.0: {} - - is-plain-obj@3.0.0: {} - - is-plain-obj@4.1.0: {} - - is-plain-object@2.0.4: - dependencies: - isobject: 3.0.1 - - is-reference@3.0.2: - dependencies: - '@types/estree': 1.0.6 - - is-regex@1.1.4: - dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 - - is-regexp@1.0.0: {} - - is-root@2.1.0: {} - - is-shared-array-buffer@1.0.3: - dependencies: - call-bind: 1.0.7 - - is-stream@2.0.1: {} - - is-string@1.0.7: - dependencies: - has-tostringtag: 1.0.2 - - is-symbol@1.0.4: - dependencies: - has-symbols: 1.0.3 - - is-typed-array@1.1.13: - dependencies: - which-typed-array: 1.1.15 - - is-typedarray@1.0.0: {} - - is-weakref@1.0.2: - dependencies: - call-bind: 1.0.7 - - is-wsl@2.2.0: - dependencies: - is-docker: 2.2.1 - - is-yarn-global@0.4.1: {} - - isarray@0.0.1: {} - - isarray@1.0.0: {} - - isarray@2.0.5: {} - - isexe@2.0.0: {} - - isobject@3.0.1: {} - - jackspeak@3.4.0: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jake@10.9.2: - dependencies: - async: 3.2.6 - chalk: 4.1.2 - filelist: 1.0.4 - minimatch: 3.1.2 - - jest-util@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.14.9 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 - - jest-worker@27.5.1: - dependencies: - '@types/node': 20.14.9 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - jest-worker@29.7.0: - dependencies: - '@types/node': 20.14.9 - jest-util: 29.7.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - jiti@1.21.6: {} - - joi@17.13.3: - dependencies: - '@hapi/hoek': 9.3.0 - '@hapi/topo': 5.1.0 - '@sideway/address': 4.1.5 - '@sideway/formula': 3.0.1 - '@sideway/pinpoint': 2.0.0 - - js-tokens@4.0.0: {} - - js-yaml@3.14.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - jsesc@3.0.2: {} - - json-buffer@3.0.1: {} - - json-parse-even-better-errors@2.3.1: {} - - json-schema-traverse@0.4.1: {} - - json-schema-traverse@1.0.0: {} - - json-schema@0.4.0: {} - - json5@2.2.3: {} - - jsonfile@6.1.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - - jsonpointer@5.0.1: {} - - katex@0.16.11: - dependencies: - commander: 8.3.0 - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - - khroma@2.1.0: {} - - kind-of@6.0.3: {} - - kleur@3.0.3: {} - - kleur@4.1.5: {} - - latest-version@7.0.0: - dependencies: - package-json: 8.1.1 - - launch-editor@2.8.0: - dependencies: - picocolors: 1.1.1 - shell-quote: 1.8.1 - - layout-base@1.0.2: {} - - leven@3.1.0: {} - - lilconfig@2.1.0: {} - - lilconfig@3.1.2: {} - - lines-and-columns@1.2.4: {} - - loader-runner@4.3.0: {} - - loader-utils@2.0.4: - dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 2.2.3 - - loader-utils@3.3.1: {} - - locate-path@3.0.0: - dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - locate-path@7.2.0: - dependencies: - p-locate: 6.0.0 - - lodash-es@4.17.21: {} - - lodash.debounce@4.0.8: {} - - lodash.memoize@4.1.2: {} - - lodash.sortby@4.7.0: {} - - lodash.uniq@4.5.0: {} - - lodash@4.17.21: {} - - longest-streak@3.1.0: {} - - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - - lower-case@2.0.2: - dependencies: - tslib: 2.6.3 - - lowercase-keys@3.0.0: {} - - lru-cache@10.3.0: {} - - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - - lunr-languages@1.14.0: {} - - lunr@2.3.9: {} - - magic-string@0.25.9: - dependencies: - sourcemap-codec: 1.4.8 - - mark.js@8.11.1: {} - - markdown-extensions@2.0.0: {} - - markdown-table@2.0.0: - dependencies: - repeat-string: 1.6.1 - - markdown-table@3.0.3: {} - - mdast-util-directive@3.0.0: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.2 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - parse-entities: 4.0.1 - stringify-entities: 4.0.4 - unist-util-visit-parents: 6.0.1 - transitivePeerDependencies: - - supports-color - - mdast-util-find-and-replace@3.0.1: - dependencies: - '@types/mdast': 4.0.4 - escape-string-regexp: 5.0.0 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 - - mdast-util-from-markdown@1.3.1: - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - decode-named-character-reference: 1.0.2 - mdast-util-to-string: 3.2.0 - micromark: 3.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-decode-string: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - unist-util-stringify-position: 3.0.3 - uvu: 0.5.6 - transitivePeerDependencies: - - supports-color - - mdast-util-from-markdown@2.0.1: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.2 - decode-named-character-reference: 1.0.2 - devlop: 1.1.0 - mdast-util-to-string: 4.0.0 - micromark: 4.0.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-decode-string: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - unist-util-stringify-position: 4.0.0 - transitivePeerDependencies: - - supports-color - - mdast-util-frontmatter@2.0.1: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - escape-string-regexp: 5.0.0 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - micromark-extension-frontmatter: 2.0.0 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-autolink-literal@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-find-and-replace: 3.0.1 - micromark-util-character: 2.1.0 - - mdast-util-gfm-footnote@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - micromark-util-normalize-identifier: 2.0.0 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-strikethrough@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-table@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - markdown-table: 3.0.3 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-task-list-item@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm@3.0.0: - dependencies: - mdast-util-from-markdown: 2.0.1 - mdast-util-gfm-autolink-literal: 2.0.0 - mdast-util-gfm-footnote: 2.0.0 - mdast-util-gfm-strikethrough: 2.0.0 - mdast-util-gfm-table: 2.0.0 - mdast-util-gfm-task-list-item: 2.0.0 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - - mdast-util-mdx-expression@2.0.0: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - - mdast-util-mdx-jsx@3.1.2: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@types/unist': 3.0.2 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - parse-entities: 4.0.1 - stringify-entities: 4.0.4 - unist-util-remove-position: 5.0.0 - unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.2 - transitivePeerDependencies: - - supports-color - - mdast-util-mdx@3.0.0: - dependencies: - mdast-util-from-markdown: 2.0.1 - mdast-util-mdx-expression: 2.0.0 - mdast-util-mdx-jsx: 3.1.2 - mdast-util-mdxjs-esm: 2.0.1 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - - mdast-util-mdxjs-esm@2.0.1: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - - mdast-util-phrasing@4.1.0: - dependencies: - '@types/mdast': 4.0.4 - unist-util-is: 6.0.0 - - mdast-util-to-hast@13.2.0: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.2.0 - devlop: 1.1.0 - micromark-util-sanitize-uri: 2.0.0 - trim-lines: 3.0.1 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.1 - - mdast-util-to-markdown@2.1.0: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.2 - longest-streak: 3.1.0 - mdast-util-phrasing: 4.1.0 - mdast-util-to-string: 4.0.0 - micromark-util-decode-string: 2.0.0 - unist-util-visit: 5.0.0 - zwitch: 2.0.4 - - mdast-util-to-string@3.2.0: - dependencies: - '@types/mdast': 3.0.15 - - mdast-util-to-string@4.0.0: - dependencies: - '@types/mdast': 4.0.4 - - mdn-data@2.0.28: {} - - mdn-data@2.0.30: {} - - media-typer@0.3.0: {} - - memfs@3.5.3: - dependencies: - fs-monkey: 1.0.6 - - merge-descriptors@1.0.1: {} - - merge-stream@2.0.0: {} - - merge2@1.4.1: {} - - mermaid@10.9.1: - dependencies: - '@braintree/sanitize-url': 6.0.4 - '@types/d3-scale': 4.0.8 - '@types/d3-scale-chromatic': 3.0.3 - cytoscape: 3.30.0 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.30.0) - d3: 7.9.0 - d3-sankey: 0.12.3 - dagre-d3-es: 7.0.10 - dayjs: 1.11.11 - dompurify: 3.1.6 - elkjs: 0.9.3 - katex: 0.16.11 - khroma: 2.1.0 - lodash-es: 4.17.21 - mdast-util-from-markdown: 1.3.1 - non-layered-tidy-tree-layout: 2.0.2 - stylis: 4.3.2 - ts-dedent: 2.2.0 - uuid: 9.0.1 - web-worker: 1.3.0 - transitivePeerDependencies: - - supports-color - - methods@1.1.2: {} - - micromark-core-commonmark@1.1.0: - dependencies: - decode-named-character-reference: 1.0.2 - micromark-factory-destination: 1.1.0 - micromark-factory-label: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-factory-title: 1.1.0 - micromark-factory-whitespace: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-classify-character: 1.1.0 - micromark-util-html-tag-name: 1.2.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - - micromark-core-commonmark@2.0.1: - dependencies: - decode-named-character-reference: 1.0.2 - devlop: 1.1.0 - micromark-factory-destination: 2.0.0 - micromark-factory-label: 2.0.0 - micromark-factory-space: 2.0.0 - micromark-factory-title: 2.0.0 - micromark-factory-whitespace: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-classify-character: 2.0.0 - micromark-util-html-tag-name: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-resolve-all: 2.0.0 - micromark-util-subtokenize: 2.0.1 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-extension-directive@3.0.0: - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.0 - micromark-factory-whitespace: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - parse-entities: 4.0.1 - - micromark-extension-frontmatter@2.0.0: - dependencies: - fault: 2.0.1 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-extension-gfm-autolink-literal@2.1.0: - dependencies: - micromark-util-character: 2.1.0 - micromark-util-sanitize-uri: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-extension-gfm-footnote@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-core-commonmark: 2.0.1 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-sanitize-uri: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-extension-gfm-strikethrough@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-classify-character: 2.0.0 - micromark-util-resolve-all: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-extension-gfm-table@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-extension-gfm-tagfilter@2.0.0: - dependencies: - micromark-util-types: 2.0.0 - - micromark-extension-gfm-task-list-item@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-extension-gfm@3.0.0: - dependencies: - micromark-extension-gfm-autolink-literal: 2.1.0 - micromark-extension-gfm-footnote: 2.1.0 - micromark-extension-gfm-strikethrough: 2.1.0 - micromark-extension-gfm-table: 2.1.0 - micromark-extension-gfm-tagfilter: 2.0.0 - micromark-extension-gfm-task-list-item: 2.1.0 - micromark-util-combine-extensions: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-extension-mdx-expression@3.0.0: - dependencies: - '@types/estree': 1.0.6 - devlop: 1.1.0 - micromark-factory-mdx-expression: 2.0.1 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-events-to-acorn: 2.0.2 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-extension-mdx-jsx@3.0.0: - dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.6 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - micromark-factory-mdx-expression: 2.0.1 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - vfile-message: 4.0.2 - - micromark-extension-mdx-md@2.0.0: - dependencies: - micromark-util-types: 2.0.0 - - micromark-extension-mdxjs-esm@3.0.0: - dependencies: - '@types/estree': 1.0.6 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.1 - micromark-util-character: 2.1.0 - micromark-util-events-to-acorn: 2.0.2 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.2 - - micromark-extension-mdxjs@3.0.0: - dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - micromark-extension-mdx-expression: 3.0.0 - micromark-extension-mdx-jsx: 3.0.0 - micromark-extension-mdx-md: 2.0.0 - micromark-extension-mdxjs-esm: 3.0.0 - micromark-util-combine-extensions: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-factory-destination@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-factory-destination@2.0.0: - dependencies: - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-factory-label@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - - micromark-factory-label@2.0.0: - dependencies: - devlop: 1.1.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-factory-mdx-expression@2.0.1: - dependencies: - '@types/estree': 1.0.6 - devlop: 1.1.0 - micromark-util-character: 2.1.0 - micromark-util-events-to-acorn: 2.0.2 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.2 - - micromark-factory-space@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-types: 1.1.0 - - micromark-factory-space@2.0.0: - dependencies: - micromark-util-character: 2.1.0 - micromark-util-types: 2.0.0 - - micromark-factory-title@1.1.0: - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-factory-title@2.0.0: - dependencies: - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-factory-whitespace@1.1.0: - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-factory-whitespace@2.0.0: - dependencies: - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-util-character@1.2.0: - dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-util-character@2.1.0: - dependencies: - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-util-chunked@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 - - micromark-util-chunked@2.0.0: - dependencies: - micromark-util-symbol: 2.0.0 - - micromark-util-classify-character@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-util-classify-character@2.0.0: - dependencies: - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-util-combine-extensions@1.1.0: - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-util-combine-extensions@2.0.0: - dependencies: - micromark-util-chunked: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-util-decode-numeric-character-reference@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 - - micromark-util-decode-numeric-character-reference@2.0.1: - dependencies: - micromark-util-symbol: 2.0.0 - - micromark-util-decode-string@1.1.0: - dependencies: - decode-named-character-reference: 1.0.2 - micromark-util-character: 1.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-symbol: 1.1.0 - - micromark-util-decode-string@2.0.0: - dependencies: - decode-named-character-reference: 1.0.2 - micromark-util-character: 2.1.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-symbol: 2.0.0 - - micromark-util-encode@1.1.0: {} - - micromark-util-encode@2.0.0: {} - - micromark-util-events-to-acorn@2.0.2: - dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.6 - '@types/unist': 3.0.2 - devlop: 1.1.0 - estree-util-visit: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - vfile-message: 4.0.2 - - micromark-util-html-tag-name@1.2.0: {} - - micromark-util-html-tag-name@2.0.0: {} - - micromark-util-normalize-identifier@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 - - micromark-util-normalize-identifier@2.0.0: - dependencies: - micromark-util-symbol: 2.0.0 - - micromark-util-resolve-all@1.1.0: - dependencies: - micromark-util-types: 1.1.0 - - micromark-util-resolve-all@2.0.0: - dependencies: - micromark-util-types: 2.0.0 - - micromark-util-sanitize-uri@1.2.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-encode: 1.1.0 - micromark-util-symbol: 1.1.0 - - micromark-util-sanitize-uri@2.0.0: - dependencies: - micromark-util-character: 2.1.0 - micromark-util-encode: 2.0.0 - micromark-util-symbol: 2.0.0 - - micromark-util-subtokenize@1.1.0: - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - - micromark-util-subtokenize@2.0.1: - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-util-symbol@1.1.0: {} - - micromark-util-symbol@2.0.0: {} - - micromark-util-types@1.1.0: {} - - micromark-util-types@2.0.0: {} - - micromark@3.2.0: - dependencies: - '@types/debug': 4.1.12 - debug: 4.3.5 - decode-named-character-reference: 1.0.2 - micromark-core-commonmark: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-combine-extensions: 1.1.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-encode: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - transitivePeerDependencies: - - supports-color - - micromark@4.0.0: - dependencies: - '@types/debug': 4.1.12 - debug: 4.3.5 - decode-named-character-reference: 1.0.2 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.1 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-combine-extensions: 2.0.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-encode: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-resolve-all: 2.0.0 - micromark-util-sanitize-uri: 2.0.0 - micromark-util-subtokenize: 2.0.1 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - transitivePeerDependencies: - - supports-color - - micromatch@4.0.7: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mime-db@1.33.0: {} - - mime-db@1.52.0: {} - - mime-types@2.1.18: - dependencies: - mime-db: 1.33.0 - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - mime@1.6.0: {} - - mimic-fn@2.1.0: {} - - mimic-response@3.1.0: {} - - mimic-response@4.0.0: {} - - mini-css-extract-plugin@2.9.2(webpack@5.96.1): - dependencies: - schema-utils: 4.2.0 - tapable: 2.2.1 - webpack: 5.96.1 - - minimalistic-assert@1.0.1: {} - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 - - minimatch@5.1.6: - dependencies: - brace-expansion: 2.0.1 - - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.1 - - minimist@1.2.8: {} - - minipass@7.1.2: {} - - mkdirp@0.3.0: {} - - mri@1.2.0: {} - - mrmime@2.0.0: {} - - ms@2.0.0: {} - - ms@2.1.2: {} - - ms@2.1.3: {} - - multicast-dns@7.2.5: - dependencies: - dns-packet: 5.6.1 - thunky: 1.1.0 - - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - - nanoid@3.3.7: {} - - negotiator@0.6.3: {} - - neo-async@2.6.2: {} - - no-case@3.0.4: - dependencies: - lower-case: 2.0.2 - tslib: 2.6.3 - - node-emoji@2.1.3: - dependencies: - '@sindresorhus/is': 4.6.0 - char-regex: 1.0.2 - emojilib: 2.4.0 - skin-tone: 2.0.0 - - node-forge@1.3.1: {} - - node-releases@2.0.14: {} - - node-releases@2.0.18: {} - - non-layered-tidy-tree-layout@2.0.2: {} - - nopt@1.0.10: - dependencies: - abbrev: 1.1.1 - - normalize-path@3.0.0: {} - - normalize-range@0.1.2: {} - - normalize-url@8.0.1: {} - - not@0.1.0: {} - - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - - nprogress@0.2.0: {} - - nth-check@2.1.1: - dependencies: - boolbase: 1.0.0 - - null-loader@4.0.1(webpack@5.96.1): - dependencies: - loader-utils: 2.0.4 - schema-utils: 3.3.0 - webpack: 5.96.1 - - object-assign@4.1.1: {} - - object-hash@3.0.0: {} - - object-inspect@1.13.3: {} - - object-keys@1.1.1: {} - - object.assign@4.1.5: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - has-symbols: 1.0.3 - object-keys: 1.1.1 - - obuf@1.1.2: {} - - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - - on-headers@1.0.2: {} - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - open@8.4.2: - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - - opener@1.5.2: {} - - p-cancelable@3.0.0: {} - - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-limit@4.0.0: - dependencies: - yocto-queue: 1.1.1 - - p-locate@3.0.0: - dependencies: - p-limit: 2.3.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - p-locate@6.0.0: - dependencies: - p-limit: 4.0.0 - - p-map@4.0.0: - dependencies: - aggregate-error: 3.1.0 - - p-retry@4.6.2: - dependencies: - '@types/retry': 0.12.0 - retry: 0.13.1 - - p-try@2.2.0: {} - - package-json-from-dist@1.0.0: {} - - package-json@8.1.1: - dependencies: - got: 12.6.1 - registry-auth-token: 5.0.2 - registry-url: 6.0.1 - semver: 7.6.2 - - param-case@3.0.4: - dependencies: - dot-case: 3.0.4 - tslib: 2.6.3 - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - parse-entities@4.0.1: - dependencies: - '@types/unist': 2.0.10 - character-entities: 2.0.2 - character-entities-legacy: 3.0.0 - character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.0.2 - is-alphanumerical: 2.0.1 - is-decimal: 2.0.1 - is-hexadecimal: 2.0.1 - - parse-json@5.2.0: - dependencies: - '@babel/code-frame': 7.26.2 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - - parse-numeric-range@1.3.0: {} - - parse5-htmlparser2-tree-adapter@7.0.0: - dependencies: - domhandler: 5.0.3 - parse5: 7.1.2 - - parse5@6.0.1: {} - - parse5@7.1.2: - dependencies: - entities: 4.5.0 - - parseurl@1.3.3: {} - - pascal-case@3.1.2: - dependencies: - no-case: 3.0.4 - tslib: 2.6.3 - - path-exists@3.0.0: {} - - path-exists@4.0.0: {} - - path-exists@5.0.0: {} - - path-is-absolute@1.0.1: {} - - path-is-inside@1.0.2: {} - - path-key@3.1.1: {} - - path-parse@1.0.7: {} - - path-scurry@1.11.1: - dependencies: - lru-cache: 10.3.0 - minipass: 7.1.2 - - path-to-regexp@0.1.7: {} - - path-to-regexp@1.8.0: - dependencies: - isarray: 0.0.1 - - path-to-regexp@3.3.0: {} - - path-type@4.0.0: {} - - periscopic@3.1.0: - dependencies: - '@types/estree': 1.0.6 - estree-walker: 3.0.3 - is-reference: 3.0.2 - - picocolors@1.0.1: {} - - picocolors@1.1.1: {} - - picomatch@2.3.1: {} - - picomatch@4.0.2: {} - - pify@2.3.0: {} - - pirates@4.0.6: {} - - pkg-dir@7.0.0: - dependencies: - find-up: 6.3.0 - - pkg-up@3.1.0: - dependencies: - find-up: 3.0.0 - - possible-typed-array-names@1.0.0: {} - - postcss-calc@9.0.1(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-selector-parser: 6.1.0 - postcss-value-parser: 4.2.0 - - postcss-colormin@6.1.0(postcss@8.4.39): - dependencies: - browserslist: 4.24.2 - caniuse-api: 3.0.0 - colord: 2.9.3 - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - postcss-convert-values@6.1.0(postcss@8.4.39): - dependencies: - browserslist: 4.24.2 - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - postcss-discard-comments@6.0.2(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - - postcss-discard-duplicates@6.0.3(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - - postcss-discard-empty@6.0.3(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - - postcss-discard-overridden@6.0.2(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - - postcss-discard-unused@6.0.5(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-selector-parser: 6.1.0 - - postcss-import@15.1.0(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.8 - - postcss-js@4.0.1(postcss@8.4.39): - dependencies: - camelcase-css: 2.0.1 - postcss: 8.4.39 - - postcss-load-config@4.0.2(postcss@8.4.39): - dependencies: - lilconfig: 3.1.2 - yaml: 2.4.5 - optionalDependencies: - postcss: 8.4.39 - - postcss-loader@7.3.4(postcss@8.4.39)(typescript@5.2.2)(webpack@5.96.1): - dependencies: - cosmiconfig: 8.3.6(typescript@5.2.2) - jiti: 1.21.6 - postcss: 8.4.39 - semver: 7.6.2 - webpack: 5.96.1 - transitivePeerDependencies: - - typescript - - postcss-merge-idents@6.0.3(postcss@8.4.39): - dependencies: - cssnano-utils: 4.0.2(postcss@8.4.39) - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - postcss-merge-longhand@6.0.5(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - stylehacks: 6.1.1(postcss@8.4.39) - - postcss-merge-rules@6.1.1(postcss@8.4.39): - dependencies: - browserslist: 4.24.2 - caniuse-api: 3.0.0 - cssnano-utils: 4.0.2(postcss@8.4.39) - postcss: 8.4.39 - postcss-selector-parser: 6.1.0 - - postcss-minify-font-values@6.1.0(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - postcss-minify-gradients@6.0.3(postcss@8.4.39): - dependencies: - colord: 2.9.3 - cssnano-utils: 4.0.2(postcss@8.4.39) - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - postcss-minify-params@6.1.0(postcss@8.4.39): - dependencies: - browserslist: 4.24.2 - cssnano-utils: 4.0.2(postcss@8.4.39) - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - postcss-minify-selectors@6.0.4(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-selector-parser: 6.1.0 - - postcss-modules-extract-imports@3.1.0(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - - postcss-modules-local-by-default@4.0.5(postcss@8.4.39): - dependencies: - icss-utils: 5.1.0(postcss@8.4.39) - postcss: 8.4.39 - postcss-selector-parser: 6.1.0 - postcss-value-parser: 4.2.0 - - postcss-modules-scope@3.2.0(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-selector-parser: 6.1.0 - - postcss-modules-values@4.0.0(postcss@8.4.39): - dependencies: - icss-utils: 5.1.0(postcss@8.4.39) - postcss: 8.4.39 - - postcss-nested@6.0.1(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-selector-parser: 6.1.0 - - postcss-normalize-charset@6.0.2(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - - postcss-normalize-display-values@6.0.2(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - postcss-normalize-positions@6.0.2(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - postcss-normalize-repeat-style@6.0.2(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - postcss-normalize-string@6.0.2(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - postcss-normalize-timing-functions@6.0.2(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - postcss-normalize-unicode@6.1.0(postcss@8.4.39): - dependencies: - browserslist: 4.24.2 - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - postcss-normalize-url@6.0.2(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - postcss-normalize-whitespace@6.0.2(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - postcss-ordered-values@6.0.2(postcss@8.4.39): - dependencies: - cssnano-utils: 4.0.2(postcss@8.4.39) - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - postcss-reduce-idents@6.0.3(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - postcss-reduce-initial@6.1.0(postcss@8.4.39): - dependencies: - browserslist: 4.24.2 - caniuse-api: 3.0.0 - postcss: 8.4.39 - - postcss-reduce-transforms@6.0.2(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - - postcss-selector-parser@6.1.0: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-sort-media-queries@5.2.0(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - sort-css-media-queries: 2.2.0 - - postcss-svgo@6.0.3(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-value-parser: 4.2.0 - svgo: 3.3.2 - - postcss-unique-selectors@6.0.4(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-selector-parser: 6.1.0 - - postcss-value-parser@4.2.0: {} - - postcss-zindex@6.0.2(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - - postcss@8.4.39: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - - pretty-bytes@5.6.0: {} - - pretty-error@4.0.0: - dependencies: - lodash: 4.17.21 - renderkid: 3.0.0 - - pretty-time@1.1.0: {} - - prism-react-renderer@2.3.1(react@18.3.1): - dependencies: - '@types/prismjs': 1.26.4 - clsx: 2.1.1 - react: 18.3.1 - - prismjs@1.29.0: {} - - process-nextick-args@2.0.1: {} - - prompts@2.4.2: - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - - prop-types@15.8.1: - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - - property-information@5.6.0: - dependencies: - xtend: 4.0.2 - - property-information@6.5.0: {} - - proto-list@1.2.4: {} - - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - - punycode@2.3.1: {} - - pupa@3.1.0: - dependencies: - escape-goat: 4.0.0 - - qs@6.11.0: - dependencies: - side-channel: 1.0.6 - - queue-microtask@1.2.3: {} - - queue@6.0.2: - dependencies: - inherits: 2.0.4 - - quick-lru@5.1.1: {} - - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - - range-parser@1.2.0: {} - - range-parser@1.2.1: {} - - raw-body@2.5.2: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - - rc@1.2.8: - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.8 - strip-json-comments: 2.0.1 - - react-dev-utils@12.0.1(typescript@5.2.2)(webpack@5.96.1): - dependencies: - '@babel/code-frame': 7.26.2 - address: 1.2.2 - browserslist: 4.24.2 - chalk: 4.1.2 - cross-spawn: 7.0.3 - detect-port-alt: 1.1.6 - escape-string-regexp: 4.0.0 - filesize: 8.0.7 - find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(typescript@5.2.2)(webpack@5.96.1) - global-modules: 2.0.0 - globby: 11.1.0 - gzip-size: 6.0.0 - immer: 9.0.21 - is-root: 2.1.0 - loader-utils: 3.3.1 - open: 8.4.2 - pkg-up: 3.1.0 - prompts: 2.4.2 - react-error-overlay: 6.0.11 - recursive-readdir: 2.2.3 - shell-quote: 1.8.1 - strip-ansi: 6.0.1 - text-table: 0.2.0 - webpack: 5.96.1 - optionalDependencies: - typescript: 5.2.2 - transitivePeerDependencies: - - eslint - - supports-color - - vue-template-compiler - - react-dom@18.3.1(react@18.3.1): - dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 - - react-error-overlay@6.0.11: {} - - react-fast-compare@3.2.2: {} - - react-helmet-async@1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.0 - invariant: 2.2.4 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-fast-compare: 3.2.2 - shallowequal: 1.1.0 - - react-helmet-async@2.0.5(react@18.3.1): - dependencies: - invariant: 2.2.4 - react: 18.3.1 - react-fast-compare: 3.2.2 - shallowequal: 1.1.0 - - react-is@16.13.1: {} - - react-json-view-lite@1.4.0(react@18.3.1): - dependencies: - react: 18.3.1 - - react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@18.3.1))(webpack@5.96.1): - dependencies: - '@babel/runtime': 7.26.0 - react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)' - webpack: 5.96.1 - - react-markdown@9.0.1(@types/react@18.3.3)(react@18.3.1): - dependencies: - '@types/hast': 3.0.4 - '@types/react': 18.3.3 - devlop: 1.1.0 - hast-util-to-jsx-runtime: 2.3.0 - html-url-attributes: 3.0.1 - mdast-util-to-hast: 13.2.0 - react: 18.3.1 - remark-parse: 11.0.0 - remark-rehype: 11.1.0 - unified: 11.0.5 - unist-util-visit: 5.0.0 - vfile: 6.0.1 - transitivePeerDependencies: - - supports-color - - react-router-config@5.1.1(react-router@5.3.4(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.0 - react: 18.3.1 - react-router: 5.3.4(react@18.3.1) - - react-router-dom@5.3.4(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.0 - history: 4.10.1 - loose-envify: 1.4.0 - prop-types: 15.8.1 - react: 18.3.1 - react-router: 5.3.4(react@18.3.1) - tiny-invariant: 1.3.3 - tiny-warning: 1.0.3 - - react-router@5.3.4(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.0 - history: 4.10.1 - hoist-non-react-statics: 3.3.2 - loose-envify: 1.4.0 - path-to-regexp: 1.8.0 - prop-types: 15.8.1 - react: 18.3.1 - react-is: 16.13.1 - tiny-invariant: 1.3.3 - tiny-warning: 1.0.3 - - react@18.3.1: - dependencies: - loose-envify: 1.4.0 - - read-cache@1.0.0: - dependencies: - pify: 2.3.0 - - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - reading-time@1.5.0: {} - - rechoir@0.6.2: - dependencies: - resolve: 1.22.8 - - recursive-readdir@2.2.3: - dependencies: - minimatch: 3.1.2 - - regenerate-unicode-properties@10.2.0: - dependencies: - regenerate: 1.4.2 - - regenerate@1.4.2: {} - - regenerator-runtime@0.14.1: {} - - regenerator-transform@0.15.2: - dependencies: - '@babel/runtime': 7.26.0 - - regexp.prototype.flags@1.5.3: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-errors: 1.3.0 - set-function-name: 2.0.2 - - regexpu-core@6.1.1: - dependencies: - regenerate: 1.4.2 - regenerate-unicode-properties: 10.2.0 - regjsgen: 0.8.0 - regjsparser: 0.11.2 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 - - registry-auth-token@5.0.2: - dependencies: - '@pnpm/npm-conf': 2.2.2 - - registry-url@6.0.1: - dependencies: - rc: 1.2.8 - - regjsgen@0.8.0: {} - - regjsparser@0.11.2: - dependencies: - jsesc: 3.0.2 - - rehype-parse@7.0.1: - dependencies: - hast-util-from-parse5: 6.0.1 - parse5: 6.0.1 - - rehype-raw@7.0.0: - dependencies: - '@types/hast': 3.0.4 - hast-util-raw: 9.0.4 - vfile: 6.0.1 - - relateurl@0.2.7: {} - - remark-directive@3.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-directive: 3.0.0 - micromark-extension-directive: 3.0.0 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - - remark-emoji@4.0.1: - dependencies: - '@types/mdast': 4.0.4 - emoticon: 4.0.1 - mdast-util-find-and-replace: 3.0.1 - node-emoji: 2.1.3 - unified: 11.0.5 - - remark-frontmatter@5.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-frontmatter: 2.0.1 - micromark-extension-frontmatter: 2.0.0 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - - remark-gfm@4.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-gfm: 3.0.0 - micromark-extension-gfm: 3.0.0 - remark-parse: 11.0.0 - remark-stringify: 11.0.0 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - - remark-mdx@3.0.1: - dependencies: - mdast-util-mdx: 3.0.0 - micromark-extension-mdxjs: 3.0.0 - transitivePeerDependencies: - - supports-color - - remark-parse@11.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.1 - micromark-util-types: 2.0.0 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - - remark-rehype@11.1.0: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - mdast-util-to-hast: 13.2.0 - unified: 11.0.5 - vfile: 6.0.1 - - remark-stringify@11.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-to-markdown: 2.1.0 - unified: 11.0.5 - - renderkid@3.0.0: - dependencies: - css-select: 4.3.0 - dom-converter: 0.2.0 - htmlparser2: 6.1.0 - lodash: 4.17.21 - strip-ansi: 6.0.1 - - repeat-string@1.6.1: {} - - require-from-string@2.0.2: {} - - require-like@0.1.2: {} - - requires-port@1.0.0: {} - - resolve-alpn@1.2.1: {} - - resolve-from@4.0.0: {} - - resolve-pathname@3.0.0: {} - - resolve@1.22.8: - dependencies: - is-core-module: 2.14.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - responselike@3.0.0: - dependencies: - lowercase-keys: 3.0.0 - - retry@0.13.1: {} - - reusify@1.0.4: {} - - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - - robust-predicates@3.0.2: {} - - rollup@2.79.2: - optionalDependencies: - fsevents: 2.3.3 - - rtl-detect@1.1.2: {} - - rtlcss@4.1.1: - dependencies: - escalade: 3.2.0 - picocolors: 1.1.1 - postcss: 8.4.39 - strip-json-comments: 3.1.1 - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - rw@1.3.3: {} - - sade@1.8.1: - dependencies: - mri: 1.2.0 - - safe-array-concat@1.1.2: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - isarray: 2.0.5 - - safe-buffer@5.1.2: {} - - safe-buffer@5.2.1: {} - - safe-regex-test@1.0.3: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-regex: 1.1.4 - - safer-buffer@2.1.2: {} - - sax@1.4.1: {} - - scheduler@0.23.2: - dependencies: - loose-envify: 1.4.0 - - schema-utils@2.7.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - - schema-utils@3.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - - schema-utils@4.2.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 8.16.0 - ajv-formats: 2.1.1(ajv@8.16.0) - ajv-keywords: 5.1.0(ajv@8.16.0) - - search-insights@2.14.0: {} - - section-matter@1.0.0: - dependencies: - extend-shallow: 2.0.1 - kind-of: 6.0.3 - - select-hose@2.0.0: {} - - selfsigned@2.4.1: - dependencies: - '@types/node-forge': 1.3.11 - node-forge: 1.3.1 - - semver-diff@4.0.0: - dependencies: - semver: 7.6.2 - - semver@6.3.1: {} - - semver@7.6.2: {} - - send@0.18.0: - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 - - serve-handler@6.1.6: - dependencies: - bytes: 3.0.0 - content-disposition: 0.5.2 - mime-types: 2.1.18 - minimatch: 3.1.2 - path-is-inside: 1.0.2 - path-to-regexp: 3.3.0 - range-parser: 1.2.0 - - serve-index@1.9.1: - dependencies: - accepts: 1.3.8 - batch: 0.6.1 - debug: 2.6.9 - escape-html: 1.0.3 - http-errors: 1.6.3 - mime-types: 2.1.35 - parseurl: 1.3.3 - transitivePeerDependencies: - - supports-color - - serve-static@1.15.0: - dependencies: - encodeurl: 1.0.2 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.18.0 - transitivePeerDependencies: - - supports-color - - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - - set-function-name@2.0.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 - - setprototypeof@1.1.0: {} - - setprototypeof@1.2.0: {} - - shallow-clone@3.0.1: - dependencies: - kind-of: 6.0.3 - - shallowequal@1.1.0: {} - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - shell-quote@1.8.1: {} - - shelljs@0.8.5: - dependencies: - glob: 7.2.3 - interpret: 1.4.0 - rechoir: 0.6.2 - - side-channel@1.0.6: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - object-inspect: 1.13.3 - - signal-exit@3.0.7: {} - - signal-exit@4.1.0: {} - - sirv@2.0.4: - dependencies: - '@polka/url': 1.0.0-next.25 - mrmime: 2.0.0 - totalist: 3.0.1 - - sisteransi@1.0.5: {} - - sitemap@7.1.2: - dependencies: - '@types/node': 17.0.45 - '@types/sax': 1.2.7 - arg: 5.0.2 - sax: 1.4.1 - - skin-tone@2.0.0: - dependencies: - unicode-emoji-modifier-base: 1.0.0 - - slash@3.0.0: {} - - slash@4.0.0: {} - - smob@1.5.0: {} - - snake-case@3.0.4: - dependencies: - dot-case: 3.0.4 - tslib: 2.6.3 - - sockjs@0.3.24: - dependencies: - faye-websocket: 0.11.4 - uuid: 8.3.2 - websocket-driver: 0.7.4 - - sort-css-media-queries@2.2.0: {} - - source-map-js@1.2.0: {} - - source-map-support@0.5.21: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - source-map@0.6.1: {} - - source-map@0.7.4: {} - - source-map@0.8.0-beta.0: - dependencies: - whatwg-url: 7.1.0 - - sourcemap-codec@1.4.8: {} - - space-separated-tokens@1.1.5: {} - - space-separated-tokens@2.0.2: {} - - spdy-transport@3.0.0: - dependencies: - debug: 4.3.5 - detect-node: 2.1.0 - hpack.js: 2.1.6 - obuf: 1.1.2 - readable-stream: 3.6.2 - wbuf: 1.7.3 - transitivePeerDependencies: - - supports-color - - spdy@4.0.2: - dependencies: - debug: 4.3.5 - handle-thing: 2.0.1 - http-deceiver: 1.2.7 - select-hose: 2.0.0 - spdy-transport: 3.0.0 - transitivePeerDependencies: - - supports-color - - sprintf-js@1.0.3: {} - - srcset@4.0.0: {} - - statuses@1.5.0: {} - - statuses@2.0.1: {} - - std-env@3.7.0: {} - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - - string.prototype.matchall@4.0.11: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.5 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.7 - regexp.prototype.flags: 1.5.3 - set-function-name: 2.0.2 - side-channel: 1.0.6 - - string.prototype.trim@1.2.9: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.5 - es-object-atoms: 1.0.0 - - string.prototype.trimend@1.0.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - - string.prototype.trimstart@1.0.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - - string_decoder@1.1.1: - dependencies: - safe-buffer: 5.1.2 - - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - - stringify-entities@4.0.4: - dependencies: - character-entities-html4: 2.1.0 - character-entities-legacy: 3.0.0 - - stringify-object@3.3.0: - dependencies: - get-own-enumerable-property-symbols: 3.0.2 - is-obj: 1.0.1 - is-regexp: 1.0.0 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.0.1 - - strip-bom-string@1.0.0: {} - - strip-comments@2.0.1: {} - - strip-final-newline@2.0.0: {} - - strip-json-comments@2.0.1: {} - - strip-json-comments@3.1.1: {} - - style-to-object@0.4.4: - dependencies: - inline-style-parser: 0.1.1 - - style-to-object@1.0.6: - dependencies: - inline-style-parser: 0.2.3 - - stylehacks@6.1.1(postcss@8.4.39): - dependencies: - browserslist: 4.24.2 - postcss: 8.4.39 - postcss-selector-parser: 6.1.0 - - stylis@4.3.2: {} - - sucrase@3.35.0: - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - commander: 4.1.1 - glob: 10.4.2 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.6 - ts-interface-checker: 0.1.13 - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - svg-parser@2.0.4: {} - - svgo@3.3.2: - dependencies: - '@trysound/sax': 0.2.0 - commander: 7.2.0 - css-select: 5.1.0 - css-tree: 2.3.1 - css-what: 6.1.0 - csso: 5.0.5 - picocolors: 1.1.1 - - tailwindcss@3.4.4: - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.6.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.2 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.6 - lilconfig: 2.1.0 - micromatch: 4.0.7 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.0.1 - postcss: 8.4.39 - postcss-import: 15.1.0(postcss@8.4.39) - postcss-js: 4.0.1(postcss@8.4.39) - postcss-load-config: 4.0.2(postcss@8.4.39) - postcss-nested: 6.0.1(postcss@8.4.39) - postcss-selector-parser: 6.1.0 - resolve: 1.22.8 - sucrase: 3.35.0 - transitivePeerDependencies: - - ts-node - - tapable@1.1.3: {} - - tapable@2.2.1: {} - - temp-dir@2.0.0: {} - - tempy@0.6.0: - dependencies: - is-stream: 2.0.1 - temp-dir: 2.0.0 - type-fest: 0.16.0 - unique-string: 2.0.0 - - terser-webpack-plugin@5.3.10(webpack@5.96.1): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 3.3.0 - serialize-javascript: 6.0.2 - terser: 5.31.1 - webpack: 5.96.1 - - terser@5.31.1: - dependencies: - '@jridgewell/source-map': 0.3.6 - acorn: 8.14.0 - commander: 2.20.3 - source-map-support: 0.5.21 - - text-table@0.2.0: {} - - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - - thunky@1.1.0: {} - - tiny-invariant@1.3.3: {} - - tiny-warning@1.0.3: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - to-vfile@6.1.0: - dependencies: - is-buffer: 2.0.5 - vfile: 4.2.1 - - toidentifier@1.0.1: {} - - totalist@3.0.1: {} - - tr46@1.0.1: - dependencies: - punycode: 2.3.1 - - trim-lines@3.0.1: {} - - trough@1.0.5: {} - - trough@2.2.0: {} - - ts-dedent@2.2.0: {} - - ts-interface-checker@0.1.13: {} - - tslib@2.6.3: {} - - type-fest@0.16.0: {} - - type-fest@0.21.3: {} - - type-fest@1.4.0: {} - - type-fest@2.19.0: {} - - type-is@1.6.18: - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - - typed-array-buffer@1.0.2: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-typed-array: 1.1.13 - - typed-array-byte-length@1.0.1: - dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - - typed-array-byte-offset@1.0.2: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - - typed-array-length@1.0.6: - dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - possible-typed-array-names: 1.0.0 - - typedarray-to-buffer@3.1.5: - dependencies: - is-typedarray: 1.0.0 - - typescript@5.2.2: {} - - unbox-primitive@1.0.2: - dependencies: - call-bind: 1.0.7 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - - undici-types@5.26.5: {} - - unicode-canonical-property-names-ecmascript@2.0.0: {} - - unicode-emoji-modifier-base@1.0.0: {} - - unicode-match-property-ecmascript@2.0.0: - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 - unicode-property-aliases-ecmascript: 2.1.0 - - unicode-match-property-value-ecmascript@2.1.0: {} - - unicode-property-aliases-ecmascript@2.1.0: {} - - unified@11.0.5: - dependencies: - '@types/unist': 3.0.2 - bail: 2.0.2 - devlop: 1.1.0 - extend: 3.0.2 - is-plain-obj: 4.1.0 - trough: 2.2.0 - vfile: 6.0.1 - - unified@9.2.2: - dependencies: - '@types/unist': 2.0.10 - bail: 1.0.5 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 2.1.0 - trough: 1.0.5 - vfile: 4.2.1 - - unique-string@2.0.0: - dependencies: - crypto-random-string: 2.0.0 - - unique-string@3.0.0: - dependencies: - crypto-random-string: 4.0.0 - - unist-util-find-after@3.0.0: - dependencies: - unist-util-is: 4.1.0 - - unist-util-is@4.1.0: {} - - unist-util-is@6.0.0: - dependencies: - '@types/unist': 3.0.2 - - unist-util-position-from-estree@2.0.0: - dependencies: - '@types/unist': 3.0.2 - - unist-util-position@5.0.0: - dependencies: - '@types/unist': 3.0.2 - - unist-util-remove-position@5.0.0: - dependencies: - '@types/unist': 3.0.2 - unist-util-visit: 5.0.0 - - unist-util-stringify-position@2.0.3: - dependencies: - '@types/unist': 2.0.10 - - unist-util-stringify-position@3.0.3: - dependencies: - '@types/unist': 2.0.10 - - unist-util-stringify-position@4.0.0: - dependencies: - '@types/unist': 3.0.2 - - unist-util-visit-parents@3.1.1: - dependencies: - '@types/unist': 2.0.10 - unist-util-is: 4.1.0 - - unist-util-visit-parents@6.0.1: - dependencies: - '@types/unist': 3.0.2 - unist-util-is: 6.0.0 - - unist-util-visit@2.0.3: - dependencies: - '@types/unist': 2.0.10 - unist-util-is: 4.1.0 - unist-util-visit-parents: 3.1.1 - - unist-util-visit@5.0.0: - dependencies: - '@types/unist': 3.0.2 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 - - universalify@2.0.1: {} - - unpipe@1.0.0: {} - - upath@1.2.0: {} - - update-browserslist-db@1.1.0(browserslist@4.23.1): - dependencies: - browserslist: 4.23.1 - escalade: 3.1.2 - picocolors: 1.0.1 - - update-browserslist-db@1.1.1(browserslist@4.24.2): - dependencies: - browserslist: 4.24.2 - escalade: 3.2.0 - picocolors: 1.1.1 - - update-notifier@6.0.2: - dependencies: - boxen: 7.1.1 - chalk: 5.3.0 - configstore: 6.0.0 - has-yarn: 3.0.0 - import-lazy: 4.0.0 - is-ci: 3.0.1 - is-installed-globally: 0.4.0 - is-npm: 6.0.0 - is-yarn-global: 0.4.1 - latest-version: 7.0.0 - pupa: 3.1.0 - semver: 7.6.2 - semver-diff: 4.0.0 - xdg-basedir: 5.1.0 - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - url-loader@4.1.1(file-loader@6.2.0(webpack@5.96.1))(webpack@5.96.1): - dependencies: - loader-utils: 2.0.4 - mime-types: 2.1.35 - schema-utils: 3.3.0 - webpack: 5.96.1 - optionalDependencies: - file-loader: 6.2.0(webpack@5.96.1) - - util-deprecate@1.0.2: {} - - utila@0.4.0: {} - - utility-types@3.11.0: {} - - utils-merge@1.0.1: {} - - uuid@8.3.2: {} - - uuid@9.0.1: {} - - uvu@0.5.6: - dependencies: - dequal: 2.0.3 - diff: 5.2.0 - kleur: 4.1.5 - sade: 1.8.1 - - value-equal@1.0.1: {} - - vary@1.1.2: {} - - vfile-location@3.2.0: {} - - vfile-location@5.0.2: - dependencies: - '@types/unist': 3.0.2 - vfile: 6.0.1 - - vfile-message@2.0.4: - dependencies: - '@types/unist': 2.0.10 - unist-util-stringify-position: 2.0.3 - - vfile-message@4.0.2: - dependencies: - '@types/unist': 3.0.2 - unist-util-stringify-position: 4.0.0 - - vfile@4.2.1: - dependencies: - '@types/unist': 2.0.10 - is-buffer: 2.0.5 - unist-util-stringify-position: 2.0.3 - vfile-message: 2.0.4 - - vfile@6.0.1: - dependencies: - '@types/unist': 3.0.2 - unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.2 - - watchpack@2.4.1: - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - - wbuf@1.7.3: - dependencies: - minimalistic-assert: 1.0.1 - - web-namespaces@1.1.4: {} - - web-namespaces@2.0.1: {} - - web-worker@1.3.0: {} - - webidl-conversions@4.0.2: {} - - webpack-bundle-analyzer@4.10.2: - dependencies: - '@discoveryjs/json-ext': 0.5.7 - acorn: 8.14.0 - acorn-walk: 8.3.3 - commander: 7.2.0 - debounce: 1.2.1 - escape-string-regexp: 4.0.0 - gzip-size: 6.0.0 - html-escaper: 2.0.2 - opener: 1.5.2 - picocolors: 1.1.1 - sirv: 2.0.4 - ws: 7.5.10 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - webpack-dev-middleware@5.3.4(webpack@5.96.1): - dependencies: - colorette: 2.0.20 - memfs: 3.5.3 - mime-types: 2.1.35 - range-parser: 1.2.1 - schema-utils: 4.2.0 - webpack: 5.96.1 - - webpack-dev-server@4.15.2(webpack@5.96.1): - dependencies: - '@types/bonjour': 3.5.13 - '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 4.17.21 - '@types/serve-index': 1.9.4 - '@types/serve-static': 1.15.7 - '@types/sockjs': 0.3.36 - '@types/ws': 8.5.10 - ansi-html-community: 0.0.8 - bonjour-service: 1.2.1 - chokidar: 3.6.0 - colorette: 2.0.20 - compression: 1.7.4 - connect-history-api-fallback: 2.0.0 - default-gateway: 6.0.3 - express: 4.19.2 - graceful-fs: 4.2.11 - html-entities: 2.5.2 - http-proxy-middleware: 2.0.6(@types/express@4.17.21) - ipaddr.js: 2.2.0 - launch-editor: 2.8.0 - open: 8.4.2 - p-retry: 4.6.2 - rimraf: 3.0.2 - schema-utils: 4.2.0 - selfsigned: 2.4.1 - serve-index: 1.9.1 - sockjs: 0.3.24 - spdy: 4.0.2 - webpack-dev-middleware: 5.3.4(webpack@5.96.1) - ws: 8.18.0 - optionalDependencies: - webpack: 5.96.1 - transitivePeerDependencies: - - bufferutil - - debug - - supports-color - - utf-8-validate - - webpack-merge@5.10.0: - dependencies: - clone-deep: 4.0.1 - flat: 5.0.2 - wildcard: 2.0.1 - - webpack-merge@6.0.1: - dependencies: - clone-deep: 4.0.1 - flat: 5.0.2 - wildcard: 2.0.1 - - webpack-sources@3.2.3: {} - - webpack@5.96.1: - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.6 - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/wasm-edit': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.14.0 - browserslist: 4.24.2 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.17.1 - es-module-lexer: 1.5.4 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.96.1) - watchpack: 2.4.1 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - webpackbar@6.0.1(webpack@5.96.1): - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - consola: 3.2.3 - figures: 3.2.0 - markdown-table: 2.0.0 - pretty-time: 1.1.0 - std-env: 3.7.0 - webpack: 5.96.1 - wrap-ansi: 7.0.0 - - websocket-driver@0.7.4: - dependencies: - http-parser-js: 0.5.8 - safe-buffer: 5.2.1 - websocket-extensions: 0.1.4 - - websocket-extensions@0.1.4: {} - - whatwg-url@7.1.0: - dependencies: - lodash.sortby: 4.7.0 - tr46: 1.0.1 - webidl-conversions: 4.0.2 - - which-boxed-primitive@1.0.2: - dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 - - which-typed-array@1.1.15: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.2 - - which@1.3.1: - dependencies: - isexe: 2.0.0 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - wide-align@1.1.5: - dependencies: - string-width: 4.2.3 - - widest-line@4.0.1: - dependencies: - string-width: 5.1.2 - - wildcard@2.0.1: {} - - workbox-background-sync@7.3.0: - dependencies: - idb: 7.1.1 - workbox-core: 7.3.0 - - workbox-broadcast-update@7.3.0: - dependencies: - workbox-core: 7.3.0 - - workbox-build@7.3.0: - dependencies: - '@apideck/better-ajv-errors': 0.3.6(ajv@8.16.0) - '@babel/core': 7.26.0 - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) - '@babel/runtime': 7.26.0 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.26.0)(rollup@2.79.2) - '@rollup/plugin-node-resolve': 15.3.0(rollup@2.79.2) - '@rollup/plugin-replace': 2.4.2(rollup@2.79.2) - '@rollup/plugin-terser': 0.4.4(rollup@2.79.2) - '@surma/rollup-plugin-off-main-thread': 2.2.3 - ajv: 8.16.0 - common-tags: 1.8.2 - fast-json-stable-stringify: 2.1.0 - fs-extra: 9.1.0 - glob: 7.2.3 - lodash: 4.17.21 - pretty-bytes: 5.6.0 - rollup: 2.79.2 - source-map: 0.8.0-beta.0 - stringify-object: 3.3.0 - strip-comments: 2.0.1 - tempy: 0.6.0 - upath: 1.2.0 - workbox-background-sync: 7.3.0 - workbox-broadcast-update: 7.3.0 - workbox-cacheable-response: 7.3.0 - workbox-core: 7.3.0 - workbox-expiration: 7.3.0 - workbox-google-analytics: 7.3.0 - workbox-navigation-preload: 7.3.0 - workbox-precaching: 7.3.0 - workbox-range-requests: 7.3.0 - workbox-recipes: 7.3.0 - workbox-routing: 7.3.0 - workbox-strategies: 7.3.0 - workbox-streams: 7.3.0 - workbox-sw: 7.3.0 - workbox-window: 7.3.0 - transitivePeerDependencies: - - '@types/babel__core' - - supports-color - - workbox-cacheable-response@7.3.0: - dependencies: - workbox-core: 7.3.0 - - workbox-core@7.3.0: {} - - workbox-expiration@7.3.0: - dependencies: - idb: 7.1.1 - workbox-core: 7.3.0 - - workbox-google-analytics@7.3.0: - dependencies: - workbox-background-sync: 7.3.0 - workbox-core: 7.3.0 - workbox-routing: 7.3.0 - workbox-strategies: 7.3.0 - - workbox-navigation-preload@7.3.0: - dependencies: - workbox-core: 7.3.0 - - workbox-precaching@7.3.0: - dependencies: - workbox-core: 7.3.0 - workbox-routing: 7.3.0 - workbox-strategies: 7.3.0 - - workbox-range-requests@7.3.0: - dependencies: - workbox-core: 7.3.0 - - workbox-recipes@7.3.0: - dependencies: - workbox-cacheable-response: 7.3.0 - workbox-core: 7.3.0 - workbox-expiration: 7.3.0 - workbox-precaching: 7.3.0 - workbox-routing: 7.3.0 - workbox-strategies: 7.3.0 - - workbox-routing@7.3.0: - dependencies: - workbox-core: 7.3.0 - - workbox-strategies@7.3.0: - dependencies: - workbox-core: 7.3.0 - - workbox-streams@7.3.0: - dependencies: - workbox-core: 7.3.0 - workbox-routing: 7.3.0 - - workbox-sw@7.3.0: {} - - workbox-window@7.3.0: - dependencies: - '@types/trusted-types': 2.0.7 - workbox-core: 7.3.0 - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - - wrappy@1.0.2: {} - - write-file-atomic@3.0.3: - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - - ws@7.5.10: {} - - ws@8.18.0: {} - - xdg-basedir@5.1.0: {} - - xml-js@1.6.11: - dependencies: - sax: 1.4.1 - - xtend@4.0.2: {} - - yallist@3.1.1: {} - - yaml@1.10.2: {} - - yaml@2.4.5: {} - - yocto-queue@0.1.0: {} - - yocto-queue@1.1.1: {} - - zwitch@1.0.5: {} - - zwitch@2.0.4: {} diff --git a/old/sidebars.ts b/old/sidebars.ts deleted file mode 100644 index 7dfdcb5..0000000 --- a/old/sidebars.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; - -/** - * Creating a sidebar enables you to: - - create an ordered group of docs - - render a sidebar for each doc of that group - - provide next/previous navigation - - The sidebars can be generated from the filesystem, or explicitly defined here. - - Create as many sidebars as you want. - */ -const sidebars: SidebarsConfig = { - // By default, Docusaurus generates a sidebar from the docs folder structure - tutorialSidebar: [{ type: "autogenerated", dirName: "." }], - - // But you can create a sidebar manually - /* - tutorialSidebar: [ - 'intro', - 'hello', - { - type: 'category', - label: 'Tutorial', - items: ['tutorial-basics/create-a-document'], - }, - ], - */ -}; - -export default sidebars; diff --git a/old/src/components/Button/index.tsx b/old/src/components/Button/index.tsx deleted file mode 100644 index 235b031..0000000 --- a/old/src/components/Button/index.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import clsx from "clsx"; - -type CommonProps = { - children: React.ReactNode; - className?: string; -}; - -type ButtonProps = CommonProps & - ( - | { - href: string; - onClick?: never; - } - | { - href?: never; - onClick: () => void; - } - ); - -const Button = (props: ButtonProps) => { - const Component = props.href ? "a" : ("button" as React.ElementType); - - const buttonClassNames = ["button", "max-w-full", "w-fit"]; - - return ( - <Component - className={clsx(buttonClassNames, props.className)} - href={props.href} - onClick={props.onClick} - target={props.href ? "_blank" : undefined} - rel={props.href ? "noopener noreferrer" : undefined} - > - {props.children} - </Component> - ); -}; - -export default Button; diff --git a/old/src/components/HomepageFeatures/index.tsx b/old/src/components/HomepageFeatures/index.tsx deleted file mode 100644 index b875f83..0000000 --- a/old/src/components/HomepageFeatures/index.tsx +++ /dev/null @@ -1,79 +0,0 @@ -import type { ComponentProps } from "react"; - -import Heading from "@theme/Heading"; - -type FeatureItem = { - title: string; - Svg: React.ComponentType<ComponentProps<"svg">>; - description: JSX.Element; -}; - -const FeatureList: FeatureItem[] = [ - { - title: "Compétences clés", - Svg: require("@site/static/illustrations/coding.svg").default, - description: ( - <> - Trouvez toutes les compétences essentielles à maîtriser pour vos - examens, soigneusement organisées pour que vous sachiez exactement quoi - apprendre. - </> - ), - }, - { - title: "Guides et ressources", - Svg: require("@site/static/illustrations/map.svg").default, - description: ( - <> - Explorez des guides et des ressources partagés par la communauté. - Profitez de l'expertise collective pour réviser chaque sujet de manière - efficace. - </> - ), - }, - { - title: "Plateforme communautaire", - Svg: require("@site/static/illustrations/diversity.svg").default, - description: ( - <> - Participez et contribuez à l'amélioration de la plateforme. Rejoignez - notre communauté open-source et aidez à créer une documentation encore - plus riche et complète. - </> - ), - }, -]; - -const HomepageFeatures = () => { - return ( - <section className="flex items-center py-24 w-full"> - <div className="container"> - <div className="grid md:grid-cols-3 gap-8"> - {FeatureList.map((props, idx) => ( - <Feature key={idx} {...props} /> - ))} - </div> - </div> - </section> - ); -}; - -const Feature = (props: FeatureItem) => { - return ( - <div className="flex flex-col items-center gap-2"> - <div className="text-center"> - <props.Svg className="w-48 h-48" role="img" /> - </div> - - <div className="text-center"> - <Heading as="h2" className="text-xl font-bold mb-2"> - {props.title} - </Heading> - - <p className="text-balance">{props.description}</p> - </div> - </div> - ); -}; - -export default HomepageFeatures; diff --git a/old/src/components/ICalLink/index.tsx b/old/src/components/ICalLink/index.tsx deleted file mode 100644 index cca4957..0000000 --- a/old/src/components/ICalLink/index.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import Link from "@docusaurus/Link"; -import clsx from "clsx"; - -type ICalLinkProps = { - className?: string; - date: string; - title: string; - description?: string; - children: React.ReactNode; -}; - -const ICalLink = (props: ICalLinkProps) => { - const createGoogleCalendarLink = () => { - const startDate = new Date(props.date) - .toISOString() - .replace(/-|:|\.\d+/g, ""); - - const endDate = new Date(props.date) - .toISOString() - .replace(/-|:|\.\d+/g, ""); - - const descriptionEncoded = encodeURIComponent(props.description || ""); - const titleEncoded = encodeURIComponent(props.title); - - return `https://www.google.com/calendar/render?action=TEMPLATE&text=${titleEncoded}&dates=${startDate}/${endDate}&details=${descriptionEncoded}`; - }; - - const handleClick = ( - event: React.MouseEvent<HTMLButtonElement, MouseEvent> - ) => { - event.preventDefault(); - const link = createGoogleCalendarLink(); - window.open(link, "_blank"); - }; - - return ( - <button - onClick={handleClick} - className={clsx( - "font-bold", - "inline-flex", - "gap-2", - "items-center", - "transition-colors", - "hover:bg-violet-200", - "hover:dark:text-violet-300", - props.className - )} - > - 📅 {props.children} 📅 - </button> - ); -}; - -export default ICalLink; diff --git a/old/src/components/PwaBanner/index.tsx b/old/src/components/PwaBanner/index.tsx deleted file mode 100644 index 08d3155..0000000 --- a/old/src/components/PwaBanner/index.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import useDeviceDetector from "@site/src/hooks/useDeviceDetector"; -import usePwaInstaller from "@site/src/hooks/usePwaInstaller"; - -const PwaBanner = () => { - const { isInstalled, installPwa, isClosed, closeBanner } = usePwaInstaller(); - const device = useDeviceDetector(); - - if (isInstalled || device !== "mobile" || isClosed) return null; - - return ( - <div className="fixed bottom-0 right-0 z-50 w-max max-w-full"> - <div className="bg-violet-100/75 backdrop-blur-sm p-4 m-4 rounded shadow-lg"> - <div className="flex gap-4 items-center"> - <span className="text-6xl">🚀</span> - <p className="text-2xl text-center py-6"> - Installez l'application Memento Dev pour un meilleur confort ! - </p> - </div> - - <div className="flex items-center gap-4"> - <button className="button shrink-0" onClick={closeBanner}> - Fermer - </button> - <button className="button button--primary grow" onClick={installPwa}> - Installer - </button> - </div> - </div> - </div> - ); -}; - -export default PwaBanner; diff --git a/old/src/components/Quiz/index.tsx b/old/src/components/Quiz/index.tsx deleted file mode 100644 index 5296f86..0000000 --- a/old/src/components/Quiz/index.tsx +++ /dev/null @@ -1,164 +0,0 @@ -import { useState } from "react"; -import clsx from "clsx"; - -type QuizAnswer = { - value: string; - label: string; -}; - -type QuizProps = { - question: string; - answers: QuizAnswer[]; - correctAnswer: string; - children: React.ReactNode; -}; - -type QuizQuestionProps = { - question: string; -}; - -type QuizAnswerProps = { - answer: QuizAnswer; - correctAnswer: string; - selectedAnswer: string | null; - setSelectedAnswer: (answer: string) => void; -}; - -type QuizAnswersProps = { - selectedAnswer: string | null; - correctAnswer: string; - answers: QuizAnswer[]; - setSelectedAnswer: (answer: string) => void; -}; - -type QuizResultProps = { - children: React.ReactNode; - correctAnswer: string; - selectedAnswer: string | null; -}; - -const Quiz = (props: QuizProps) => { - const [selectedAnswer, setSelectedAnswer] = useState<string | null>(null); - - return ( - <div> - <QuizQuestion {...props} /> - <QuizAnswers - selectedAnswer={selectedAnswer} - setSelectedAnswer={setSelectedAnswer} - {...props} - /> - <QuizResult selectedAnswer={selectedAnswer} {...props} /> - </div> - ); -}; - -const QuizQuestion = (props: QuizQuestionProps) => { - return ( - <strong className="flex items-center gap-2"> - <svg - stroke="currentColor" - fill="currentColor" - className="shrink-0 h-6 w-6" - strokeWidth="0" - viewBox="0 0 24 24" - height="1em" - width="1em" - xmlns="http://www.w3.org/2000/svg" - > - <path d="M12 19C12.8284 19 13.5 19.6716 13.5 20.5C13.5 21.3284 12.8284 22 12 22C11.1716 22 10.5 21.3284 10.5 20.5C10.5 19.6716 11.1716 19 12 19ZM12 2C15.3137 2 18 4.68629 18 8C18 10.1646 17.2474 11.2907 15.3259 12.9231C13.3986 14.5604 13 15.2969 13 17H11C11 14.526 11.787 13.3052 14.031 11.3989C15.5479 10.1102 16 9.43374 16 8C16 5.79086 14.2091 4 12 4C9.79086 4 8 5.79086 8 8V9H6V8C6 4.68629 8.68629 2 12 2Z"></path> - </svg> - - {props.question} - </strong> - ); -}; - -const QuizAnswer = (props: QuizAnswerProps) => { - const handleAnswerClick = () => { - if (props.selectedAnswer === props.answer.label) { - props.setSelectedAnswer(null); - return; - } - - props.setSelectedAnswer(props.answer.label); - }; - - return ( - <button - onClick={handleAnswerClick} - className={clsx( - "!mt-0", - "p-2", - "border", - "rounded-md", - "cursor-pointer", - "transition-colors", - { "border-gray-300 dark:border-gray-500": !props.selectedAnswer }, - { - "hover:border-gray-500 dark:hover:border-gray-400": - !props.selectedAnswer, - }, - { - "hover:bg-gray-50 dark:hover:bg-gray-800": !props.selectedAnswer, - }, - { - "border-green-500": - props.selectedAnswer && props.correctAnswer === props.answer.label, - }, - { - "border-red-500": - props.selectedAnswer && props.correctAnswer !== props.answer.label, - }, - { - "bg-green-100 dark:bg-green-900": - props.selectedAnswer && - props.correctAnswer === props.answer.label && - props.selectedAnswer === props.answer.label, - }, - { - "bg-red-100 dark:bg-red-900": - props.selectedAnswer && - props.correctAnswer !== props.answer.label && - props.selectedAnswer === props.answer.label, - } - )} - > - <span className="font-bold">{props.answer.label}</span> -{" "} - {props.answer.value} - </button> - ); -}; - -const QuizResult = (props: QuizResultProps) => { - if (!props.selectedAnswer) return null; - - return ( - <div className="mt-4 flex flex-col gap-4 p-4 bg-gray-100 dark:bg-gray-800 rounded-md"> - <p className="font-bold text-lg"> - {props.selectedAnswer === props.correctAnswer - ? "Correct !" - : "Incorrect !"} - </p> - {props.children} - </div> - ); -}; - -const QuizAnswers = (props: QuizAnswersProps) => { - return ( - <div className="flex flex-wrap gap-4 items-stretch no-mt"> - {props.answers.map((answer) => ( - <QuizAnswer - key={answer.value} - answer={answer} - correctAnswer={props.correctAnswer} - selectedAnswer={props.selectedAnswer} - setSelectedAnswer={props.setSelectedAnswer} - /> - ))} - </div> - ); -}; - -export default Quiz; diff --git a/old/src/components/TestimonialCardButton/index.tsx b/old/src/components/TestimonialCardButton/index.tsx deleted file mode 100644 index edff7ce..0000000 --- a/old/src/components/TestimonialCardButton/index.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import type { Testimonial } from "../../data/testimonials"; - -type TestimonialProps = { - testimonial: Testimonial; - setSelectedTestimonial: (testimonial: Testimonial) => void; -}; - -const TestimonialCardButton = (props: TestimonialProps) => { - const handleClick = () => { - props.setSelectedTestimonial(props.testimonial); - }; - - return ( - <button onClick={handleClick} className="button w-full h-full"> - <h3 className="text-center text-wrap"> - {props.testimonial.name || "Anonyme"} - </h3> - - <time - className="italic text-sm" - dateTime={props.testimonial.date.toISOString()} - > - {props.testimonial.date.toLocaleDateString("fr-FR", { - year: "numeric", - month: "long", - day: "numeric", - })} - </time> - </button> - ); -}; - -export default TestimonialCardButton; diff --git a/old/src/components/Testimonials/index.tsx b/old/src/components/Testimonials/index.tsx deleted file mode 100644 index 251d2a5..0000000 --- a/old/src/components/Testimonials/index.tsx +++ /dev/null @@ -1,225 +0,0 @@ -import type { Testimonial } from "../../data/testimonials"; -import type { Options } from "react-markdown"; - -import TestimonialCardButton from "../TestimonialCardButton"; -import { - candidateTestimonials, - juryTestimonials, -} from "../../data/testimonials"; -import { useState, useMemo } from "react"; -import Markdown from "react-markdown"; -import clsx from "clsx"; - -const markdownOptions: Options = { - allowedElements: ["strong", "em", "p"], -}; - -type TestimonialsProps = { - type: "candidates" | "jury"; -}; - -const Testimonials = (props: TestimonialsProps) => { - const [selectedTestimonial, setSelectedTestimonial] = - useState<Testimonial | null>(null); - const [isOpened, setIsOpened] = useState(false); - - const handleCloseFromContainer = ( - event: React.MouseEvent<HTMLDivElement> - ) => { - if (event.target === event.currentTarget) { - setIsOpened(null); - } - }; - - const testimonials = useMemo(() => { - switch (props.type) { - case "candidates": - return candidateTestimonials; - case "jury": - return juryTestimonials; - default: - return []; - } - }, [props.type]); - - const changeSelectedTestimonial = (testimonial: Testimonial) => { - setSelectedTestimonial(testimonial); - setIsOpened(true); - }; - - const previousSelectedTestimonial = useMemo(() => { - if (!selectedTestimonial) return null; - - const currentTestimonialIndex = testimonials.findIndex( - (testimonial) => testimonial === selectedTestimonial - ); - - const previousTestimonialIndex = - (currentTestimonialIndex - 1 + testimonials.length) % testimonials.length; - - return testimonials[previousTestimonialIndex] || null; - }, [selectedTestimonial]); - - const nextSelectedTestimonial = useMemo(() => { - if (!selectedTestimonial) return null; - - const currentTestimonialIndex = testimonials.findIndex( - (testimonial) => testimonial === selectedTestimonial - ); - - const nextTestimonialIndex = - (currentTestimonialIndex + 1) % testimonials.length; - - return testimonials[nextTestimonialIndex] || null; - }, [selectedTestimonial]); - - const shouldShowPreviousAndNextButtons = testimonials.length > 1; - - return ( - <> - <ul className="list-none !m-0 grid sm:grid-cols-2 xl:grid-cols-3 gap-2"> - {testimonials.map((testimonial, index) => ( - <li className="!m-0" key={index}> - <TestimonialCardButton - setSelectedTestimonial={changeSelectedTestimonial} - testimonial={testimonial} - /> - </li> - ))} - </ul> - - <div - className={clsx( - "fixed", - "flex", - "items-center", - "justify-center", - "w-screen", - "h-screen", - "bg-black/50", - "backdrop-blur", - "inset-0", - "m-0", - "p-4", - "z-50", - "no-mt", - "transition-opacity", - "duration-300", - { "opacity-0": !isOpened }, - { "opacity-100": isOpened }, - { "pointer-events-none": !isOpened }, - { "pointer-events-auto": isOpened } - )} - onClick={handleCloseFromContainer} - > - {isOpened && selectedTestimonial && ( - <section className="relative max-w-full max-h-[calc(100vh-10rem)] w-max p-4 rounded dark:bg-gray-800 bg-gray-200 overflow-auto"> - <button - title="Fermer la fenêtre" - onClick={() => setIsOpened(false)} - > - <svg - xmlns="http://www.w3.org/2000/svg" - className="h-6 w-6" - fill="none" - viewBox="0 0 24 24" - stroke="currentColor" - onClick={() => setIsOpened(false)} - > - <path - strokeLinecap="round" - strokeLinejoin="round" - strokeWidth={2} - d="M6 18L18 6M6 6l12 12" - /> - </svg> - </button> - - <header className="flex items-center gap-8 justify-between mb-6"> - {previousSelectedTestimonial && - shouldShowPreviousAndNextButtons && ( - <button - className="button" - onClick={() => - setSelectedTestimonial(previousSelectedTestimonial) - } - title="Témoignage précédent" - > - {"<"} - </button> - )} - - <div className="grow w-full text-center"> - <h2> - {selectedTestimonial.name && - `Témoignage de ${selectedTestimonial.name}`} - {!selectedTestimonial.name && "Témoignage anonyme"} - </h2> - <time - className="italic text-sm" - dateTime={selectedTestimonial?.date.toISOString()} - > - Rédigé le{" "} - {selectedTestimonial.date.toLocaleDateString("fr-FR", { - year: "numeric", - month: "long", - day: "numeric", - })} - </time> - </div> - - {nextSelectedTestimonial && shouldShowPreviousAndNextButtons && ( - <button - className="button" - onClick={() => - setSelectedTestimonial(nextSelectedTestimonial) - } - title="Témoignage suivant" - > - {">"} - </button> - )} - </header> - - <div className="grid md:grid-cols-3 gap-8"> - <section> - <h3>Avant la soutenance</h3> - <div className="p-2 rounded dark:bg-gray-700 bg-gray-300"> - {selectedTestimonial.before.map((paragraph, index) => ( - <Markdown key={index} {...markdownOptions}> - {paragraph} - </Markdown> - ))} - </div> - </section> - - <section> - <h3>Pendant la soutenance</h3> - <div className="p-2 rounded dark:bg-gray-700 bg-gray-300"> - {selectedTestimonial.during.map((paragraph, index) => ( - <Markdown key={index} {...markdownOptions}> - {paragraph} - </Markdown> - ))} - </div> - </section> - - <section> - <h3>Après la soutenance</h3> - <div className="p-2 rounded dark:bg-gray-700 bg-gray-300"> - {selectedTestimonial.after.map((paragraph, index) => ( - <Markdown key={index} {...markdownOptions}> - {paragraph} - </Markdown> - ))} - </div> - </section> - </div> - </section> - )} - </div> - </> - ); -}; - -export default Testimonials; diff --git a/old/src/css/custom.css b/old/src/css/custom.css deleted file mode 100644 index b54ac87..0000000 --- a/old/src/css/custom.css +++ /dev/null @@ -1,240 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -@font-face { - font-family: "Luciole"; - font-weight: normal; - src: url("@site/static/fonts/Luciole/Luciole-Regular.ttf") format("truetype"); -} - -@font-face { - font-family: "Luciole"; - font-weight: bold; - src: url("@site/static/fonts/Luciole/Luciole-Bold.ttf") format("truetype"); -} - -:root { - --ifm-heading-font-family: "Luciole", sans-serif; - --ifm-color-primary: #6d28d9; - --ifm-color-primary-dark: #6223c5; - --ifm-color-primary-darker: #5c21ba; - --ifm-color-primary-darkest: #4c1b99; - --ifm-color-primary-light: #7c3edd; - --ifm-color-primary-lighter: #8349df; - --ifm-color-primary-lightest: #996ae5; - - --ifm-alert-background-color-highlight: #ffffff; - --ifm-background-color: #f8f6fb; - - --docusaurus-highlighted-code-line-bg: #f3e8ff; - - --admonition-example-background: #f3e8ff; - --admonition-example-foreground: #23043b; - - --admonition-quote-background: #e5e7eb; - --admonition-quote-foreground: #111827; -} - -:root[data-theme="dark"] { - --ifm-color-primary: #a78bfa; - --ifm-color-primary-dark: #8b66f8; - --ifm-color-primary-darker: #7d53f8; - --ifm-color-primary-darkest: #dacefd; - --ifm-color-primary-light: #c3b0fc; - --ifm-color-primary-lighter: #d1c3fc; - --ifm-color-primary-lightest: #fcfbff; - - --ifm-alert-background-color-highlight: #2f2f30; - - --docusaurus-highlighted-code-line-bg: #26212e; - - --admonition-example-background: #21102e; - --admonition-example-foreground: #faf5ff; - - --admonition-quote-background: #21242b; - --admonition-quote-foreground: #e5e7eb; -} - -::selection { - @apply bg-violet-400 text-black; -} - -.button { - @apply font-normal bg-violet-200 rounded-md text-violet-800 px-4 py-2 text-lg hover:no-underline hover:bg-violet-50 transition-colors hover:text-violet-950; -} - -.navbar__link::after { - @apply !top-[5px]; -} - -.navbar__item .dropdown__menu { - @apply w-full; -} - -.footer__link-item, -.navbar__brand, -.navbar__link, -.navbar__item { - @apply inline-flex gap-1 items-center text-white/80 transition-colors; -} - -.footer__link-item:hover, -.navbar__brand:hover, -.navbar__link:hover, -.navbar__item:hover { - @apply text-white no-underline; -} - -.theme-edit-this-page { - @apply inline-flex gap-1 items-center hover:no-underline; -} - -.breadcrumbs { - @apply text-sm text-gray-500 flex flex-wrap gap-2 items-center; -} - -.breadcrumbs__item { - @apply flex items-center gap-1; -} - -.markdown h1 { - @apply text-4xl font-bold mt-4; -} - -.markdown * + h2 { - @apply !mt-10; -} -.markdown h2 { - @apply text-2xl font-bold; -} - -.markdown h3 { - @apply text-xl font-bold; -} - -.markdown h4 { - @apply font-bold; -} - -.markdown p { - @apply leading-7; -} - -.markdown p + p, -.markdown p + details { - @apply !mt-4; -} - -.markdown ul.tabs { - @apply ml-0 relative p-2 z-10; -} -.markdown ul.tabs .tabs__item { - @apply bg-white dark:bg-gray-700 shadow-md rounded-md overflow-hidden px-4 py-2; -} -.markdown ul.tabs .tabs__item:not(.tabs__item--active):hover { - @apply bg-gray-200 dark:bg-gray-600; -} -.markdown ul.tabs .tabs__item:first-of-type { - @apply ml-0; -} -.markdown ul.tabs .tabs__item { - @apply ml-2; -} -.markdown ul.tabs .tabs__item--active { - @apply bg-violet-100 dark:bg-violet-950 dark:text-white; -} -.markdown .tabs-holder + * { - @apply relative p-4 !mt-0 z-0; -} -.markdown .tabs-holder + * > * { - @apply !mt-0; -} -.markdown .tabs-holder + * > * > * + .admonition { - @apply mt-4; -} -.markdown .tabs-holder + *::before { - @apply absolute -z-10 content-[''] w-full bg-violet-50 dark:bg-gray-50/5 h-[calc(100%+2em)] bottom-0 left-0 rounded-md; -} - -.markdown ol, -.markdown ul { - @apply ml-4; -} - -.markdown ul { - @apply list-disc; -} - -.markdown ol { - @apply list-decimal; -} - -.markdown ol li, -.markdown ul li { - @apply ml-4; -} -.markdown ol li + li, -.markdown ul li + li:not(.\!m-0) { - @apply !mt-1; -} -.markdown ul li + li:not(.theme-code-block).\!m-0 { - margin: 0 !important; -} - -.markdown - *:not(summary, .tabs__item, .tabs, .tab-content *, .no-mt, .no-mt *, p, li *) - + *:not(br, ul, ol, h1, h2, h3, h4, h5, h6, li, .no-mt) { - @apply !mt-4; -} -.token-line, -.token-line * { - @apply !mt-0; -} - -.tabs-container { - @apply !mb-0; -} - -.markdown hr { - @apply h-px; -} - -.theme-admonition > div:first-child, -.admonition-heading { - @apply flex items-center gap-1 mb-4; -} - -.theme-code-block { - @apply !m-0; -} -.theme-code-block + * { - @apply !mt-4; -} - -.alert--quote { - --ifm-alert-background-color: var(--admonition-quote-background); - --ifm-alert-foreground-color: var(--admonition-quote-foreground); - --ifm-alert-border-color: #4b5563; -} - -.alert--example { - --ifm-alert-background-color: var(--admonition-example-background); - --ifm-alert-foreground-color: var(--admonition-example-foreground); - --ifm-alert-border-color: #9333ea; -} - -nav.navbar.navbar--dark { - --ifm-navbar-background-color: #1f1c23; -} -footer.footer.footer--dark { - --ifm-footer-background-color: #211e25; -} - -button.button.button--primary { - @apply bg-violet-800 text-violet-200 hover:bg-violet-900; -} - -ul.list-none li { - list-style: none; -} diff --git a/old/src/data/testimonials.ts b/old/src/data/testimonials.ts deleted file mode 100644 index 92d66e4..0000000 --- a/old/src/data/testimonials.ts +++ /dev/null @@ -1,105 +0,0 @@ -export type Testimonial = { - name?: string; - date: Date; - before: string[]; - during: string[]; - after: string[]; -}; - -export const candidateTestimonials: Testimonial[] = [ - { - name: "Christian HUMBERT", - date: new Date("2024-11-18"), - before: [ - "Comme j'ai l'habitude de donner des conférences, me retrouver devant un jury ne me faisait pas très peur.", - "La plus grosse appréhension que j'avais, c'était de me dire que j'avais des pros devant moi, et dans mon esprit, **Jury = Sélection** : si ça ne plaît pas, tu es automatiquement recalé...", - ], - during: [ - "J'ai eu la chance d'avoir un jury qui a su me mettre à l'aise. J'ai également eu la présence d'un accompagnateur _(aménagement d'épreuves)_, ce qui a contribué à me sentir plus serein.", - "Les premières secondes semblent toujours un peu longues, mais une fois lancé on oublie qu'on est jugé.", - "C'est surtout lors des questions du jury qu'il faut bien s'accrocher.", - ], - after: [ - 'Tu te dis "J\'ai gagné la finale !!".', - "Tant de temps de formation, des heures de travail pour écrire les dossiers...", - "Le tout, c'est d'être fier de ton taf, quelque soit le résultat. Et même si tu ne l'as pas du premier coup, les échecs forment à la réussite 😉", - ], - }, - { - date: new Date("2024-11-18"), - before: [ - "Stress !!!", - "C'était vraiment l'inconnu pour moi et je me rappelle m'être dit qu'en plus de six mois, je ne suis plus derrière un écran mais je vais bien être évalué par des professionnels, physiquement, sur un lieu de rendez-vous bien réel !", - "Je peux ajouter que j'avais quand même un sentiment d'être préparé et d'avoir vraiment travaillé dur entre la fin de ma formation et le TP.", - ], - during: [ - "C'est allé assez vite une fois qu'on y est. Tout était programmé dans ma tête, je savais que j'allais :", - "Me présenter, présenter mon projet puis répondre aux questions.", - "Lors des questions, j'ai été assez frustré par moment car je connaissais la réponse, mais je ne savais pas comment l'expliquer.", - "Le jury a été bienveillant et a essayé de me guider sans me donner la réponse pour autant.", - ], - after: [ - "Sentiment de soulagement sur 2-3 jours, puis montage russe d'émotions car le processus de reconversion n'est pas fini.", - ], - }, - { - name: "Florence CARLIN", - date: new Date("2024-11-19"), - before: [ - "Je suis du genre pas à l'aise en public, d'autant plus en présentation (j'ai un TDAH et beaucoup de mal à trouver mes mots en situation de stress...).", - "Du coup j'appréhendais juuuste un peu le passage devant le jury.", - "Par contre, j'étais plutôt fière de mon dossier projet donc ça compensait un peu le stress quand même !", - ], - during: [ - "Les jurés m'ont mis plus à l'aise que je ne l'aurais pensé, mais ce qui m'a destabilisé c'est leur côté totalement inexpressifs pendant la présentation !", - "J'ai réussi à plutôt bien gérer quand même, mais ça fait vraiment bizarre.", - "J'ai bien aimé le passage des questions, où ils n'ont pas cherché à me \"piéger\" en posant la question de différentes manières pour s'assurer que je comprenais ce que je faisais au-delà du bafouillage.", - "On a eu des échanges très intéressants, notamment sur la façon dont j'avais un point de notre BDD et c'était cool !", - ], - after: [ - "Très fière, très soulagée et plus de confiance en moi qu'avant le passage !", - ], - }, - { - date: new Date("2024-11-20"), - before: [ - "Je suis timide et pas du tout à l’aise à parler devant un « public », on conseille souvent de ne pas apprendre par cœur son texte mais c’est ce que j’ai fait.", - "Venant du monde de la logistique, je ne suis également pas à l'aise avec tout ce qui est logiciel de traitement de texte. J'ai passé énormément de temps à faire mes dossiers et ma présentation, mais le principal c'est de montrer au jury que vous avez bossé.", - "D'autant plus que j'avais repris mon poste en même temps, ce n'était pas évident. J'ai fini ma présentation PowerPoint 2 jours avant ma soutenance.", - ], - during: [ - "Ayant beaucoup répété, je finissais en 25 minutes en général, ce qui m'a donné un peu de temps pour de l'improvisation. J'ai finalement terminé ma présentation en 29 minutes.", - "Ça m'a déstressé pour les questions ! Ça s'est même terminé en discussion, c'était franchement cool 😎", - "Je pense que ça ne se serait pas passé comme ça si je n'avais pas répété autant !", - "Le jury m'a félicité pour la soutenance en me reprochant uniquement mon ton monotone pendant la soutenance (l'inconvénient de tout apprendre par cœur).", - ], - after: [ - "Je suis sorti avec un bon sentiment, même si j'ai beaucoup galéré à monter mes dossiers. Mais comme avec mon équipe nous avons beaucoup bossé sur le projet, je savais au fond de moi que c'était bon !", - "Fierté d'avoir réussi, surtout quand on n'est pas à l'aise.", - "J'espère que mon témoignage peut aider des personnes qui sont dans la même situation que moi. À savoir que j'ai redoublé mon bac à l'époque, parce que je ne travaillais pas assez avant l'examen.", - "Je me suis promis de ne plus refaire la même erreur !", - ], - }, -]; - -export const juryTestimonials: Testimonial[] = [ - { - name: "Gauthier DANIELS", - date: new Date("2024-11-18"), - before: [ - "Avoir été candidat m'a permis de comprendre ce que les candidats ressentent.", - "J'essaye de mettre les candidats à l'aise, de les rassurer, de les guider.", - "En prenant le temps de bien lire les dossiers, je prends note des points à aborder lors de l'oral.", - ], - during: [ - "J'essaye de poser des questions ouvertes, de ne pas donner la réponse, mais de guider le candidat.", - "Je veux m'assurer que le candidat a compris ce qu'il a fait, qu'il est capable de l'expliquer.", - 'Il n\'y a pas de piège ni de "bonne réponse" _(selon les cas)_, je souhaite comprendre la réflexion du candidat à une situation donnée.', - ], - after: [ - "Peu importe le ressenti et/ou le résultat de la soutenance, je prends le temps de donner un retour au candidat, de lui expliquer pourquoi j'ai posé telle question.", - "Je lui donne des pistes d'amélioration, des axes de travail pour la suite.", - "Il est important de partager son expérience aux candidats et de leur permettre d'avancer efficacement dans leur projet professionnel.", - ], - }, -]; diff --git a/old/src/hooks/useDeviceDetector.tsx b/old/src/hooks/useDeviceDetector.tsx deleted file mode 100644 index 65590e6..0000000 --- a/old/src/hooks/useDeviceDetector.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { useEffect, useState } from "react"; - -type Device = "desktop" | "mobile"; - -const mobileUserAgentRegex = - /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i; - -const useDeviceDetector = () => { - const [device, setDevice] = useState<Device>("desktop"); - - useEffect(() => { - const handleResize = () => { - const isMobileUserAgent = mobileUserAgentRegex.test(navigator.userAgent); - const isMobileScreen = window.innerWidth < 768; - - setDevice(isMobileUserAgent || isMobileScreen ? "mobile" : "desktop"); - }; - - handleResize(); - - window.addEventListener("resize", handleResize); - - return () => { - window.removeEventListener("resize", handleResize); - }; - }, []); - - return device; -}; - -export default useDeviceDetector; diff --git a/old/src/hooks/usePwaInstaller.tsx b/old/src/hooks/usePwaInstaller.tsx deleted file mode 100644 index 2d6af87..0000000 --- a/old/src/hooks/usePwaInstaller.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { useEffect, useState } from "react"; - -const usePwaInstaller = () => { - const [deferredPrompt, setDeferredPrompt] = useState(null); - const [isInstalled, setIsInstalled] = useState(false); - const [isClosed, setIsClosed] = useState(false); - - useEffect(() => { - const installed = - (window.navigator as Navigator & { standalone?: any }).standalone || - window.matchMedia("(display-mode: standalone)").matches; - - setIsInstalled(installed); - - const handleBeforeInstallPrompt = (event: Event) => { - if (!installed) { - event.preventDefault(); - setDeferredPrompt(event); - } - }; - - window.addEventListener("beforeinstallprompt", handleBeforeInstallPrompt); - - return () => { - window.removeEventListener( - "beforeinstallprompt", - handleBeforeInstallPrompt - ); - }; - }, []); - - const installPwa = () => { - if (!deferredPrompt) return; - - deferredPrompt.prompt(); - deferredPrompt.userChoice.then((choiceResult: { outcome: string }) => { - if (choiceResult.outcome === "accepted") { - setIsInstalled(true); - } - setDeferredPrompt(null); - }); - }; - - const closeBanner = () => { - setIsClosed(true); - }; - - return { isInstalled, installPwa, isClosed, closeBanner }; -}; - -export default usePwaInstaller; diff --git a/old/src/pages/index.tsx b/old/src/pages/index.tsx deleted file mode 100644 index 2ef1489..0000000 --- a/old/src/pages/index.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; -import HomepageFeatures from "@site/src/components/HomepageFeatures"; -import HeaderIllustration from "@site/static/illustrations/notes.svg"; -import PwaBanner from "../components/PwaBanner"; -import Heading from "@theme/Heading"; -import Link from "@docusaurus/Link"; -import Layout from "@theme/Layout"; - -const Home = () => { - return ( - <> - <Layout - title={`Synthèses et ressources pour développeurs`} - description="Découvrez des synthèses et ressources open-source dans le développement informatique, rédigées par une communauté de développeurs." - > - <HomepageHeader /> - <main> - <HomepageFeatures /> - </main> - </Layout> - {/* <PwaBanner /> */} - </> - ); -}; - -const HomepageHeader = () => { - const { siteConfig } = useDocusaurusContext(); - - return ( - <header className="bg-violet-600"> - <div className="container flex flex-col-reverse md:flex-row items-center gap-12 text-center md:text-left mx-auto max-w-5xl py-16"> - <div className="md:w-1/2"> - <Heading as="h1" className="text-5xl font-bold text-white"> - {siteConfig.title} - </Heading> - - <p className="text-xl py-6 text-white">{siteConfig.tagline}</p> - - <div className="md:py-10"> - <Link className="button" to="/intro"> - Accédez aux ressources 🚀 - </Link> - </div> - </div> - - <HeaderIllustration role="img" className="hidden md:block !w-1/2" /> - </div> - </header> - ); -}; - -export default Home; diff --git a/old/src/pages/markdown-page.md b/old/src/pages/markdown-page.md deleted file mode 100644 index 9756c5b..0000000 --- a/old/src/pages/markdown-page.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Markdown page example ---- - -# Markdown page example - -You don't need React to write simple standalone pages. diff --git a/old/src/pages/mentions-legales.tsx b/old/src/pages/mentions-legales.tsx deleted file mode 100644 index 71bd136..0000000 --- a/old/src/pages/mentions-legales.tsx +++ /dev/null @@ -1,113 +0,0 @@ -import Heading from "@theme/Heading"; -import Layout from "@theme/Layout"; - -const Legal = () => { - return ( - <Layout - title={`Mentions légales`} - description="Mentions légales du site Memento Dev" - > - <main className="container py-16 flex flex-col gap-8"> - <Heading as="h1" className="text-4xl font-bold uppercase"> - Mentions légales - </Heading> - - <section className="flex flex-col gap-2"> - <Heading as="h2" className="text-2xl font-bold mb-2"> - Éditeur du service - </Heading> - - <div> - <p> - <span className="font-bold">Nom de l'éditeur</span> :{" "} - <strong className="font-normal">Gauthier Daniels EI</strong> - </p> - - <p> - <span className="font-bold">Forme juridique</span> :{" "} - <strong className="font-normal">Entrepreneur individuel</strong> - </p> - </div> - - <div> - <p> - <span className="font-bold">Adresse physique</span> :{" "} - <strong className="font-normal"> - 689 Chemin Latéral, 45240 La Ferté Saint-Aubin - </strong> - </p> - - <p> - <span className="font-bold">Adresse email</span> :{" "} - <strong className="font-normal"> - gauthier@gauthierdaniels.fr - </strong> - </p> - </div> - - <div> - <p> - <span className="font-bold">SIREN</span> :{" "} - <strong className="font-normal">851745141</strong> - </p> - - <p> - <span className="font-bold">SIRET</span> :{" "} - <strong className="font-normal">85174514100057</strong> - </p> - </div> - </section> - - <section className="flex flex-col gap-2"> - <Heading as="h2" className="text-2xl font-bold mb-2"> - Directeur de la publication - </Heading> - - <div> - <p> - <span className="font-bold"> - Nom du directeur de la publication - </span>{" "} - : <strong className="font-normal">Gauthier Daniels</strong> - </p> - - <p> - <span className="font-bold">Adresse email</span> :{" "} - <strong className="font-normal"> - gauthier@gauthierdaniels.fr - </strong> - </p> - </div> - </section> - - <section className="flex flex-col gap-2"> - <Heading as="h2" className="text-2xl font-bold mb-2"> - Hébergement - </Heading> - - <div> - <p> - <span className="font-bold">Nom de l'hébergeur</span> :{" "} - <strong className="font-normal">Infomaniak Network SA</strong> - </p> - - <p> - <span className="font-bold">Adresse web de l'hébergeur</span> :{" "} - <strong className="font-normal">www.infomaniak.com</strong> - </p> - - <p> - <span className="font-bold">Adresse physique de l'hébergeur</span>{" "} - :{" "} - <strong className="font-normal"> - Rue Eugène Marziano 25, 1227 Les Acacias (GE), Suisse - </strong> - </p> - </div> - </section> - </main> - </Layout> - ); -}; - -export default Legal; diff --git a/old/src/theme/Admonition/Types.tsx b/old/src/theme/Admonition/Types.tsx deleted file mode 100644 index 6071dd9..0000000 --- a/old/src/theme/Admonition/Types.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import DefaultAdmonitionTypes from "@docusaurus/theme-classic/lib/theme/Admonition/Types"; -import clsx from "clsx"; - -interface QuoteAdmonitionProps { - children: React.ReactNode; - title: string; -} - -const headingClasses = ["mb-4", "uppercase", "font-bold", "text-sm"]; - -const QuoteAdmonition = (props: QuoteAdmonitionProps) => { - return ( - <div className="admonition admonition-quote alert alert--quote"> - <div className={clsx("admonition-heading", headingClasses)}> - <svg - stroke="currentColor" - fill="currentColor" - strokeWidth="0" - viewBox="0 0 24 24" - className="inline-block w-4 mr-2 shrink-0" - xmlns="http://www.w3.org/2000/svg" - > - <path d="M20.309 17.708C22.196 15.66 22.006 13.03 22 13V5a1 1 0 0 0-1-1h-6c-1.103 0-2 .897-2 2v7a1 1 0 0 0 1 1h3.078a2.89 2.89 0 0 1-.429 1.396c-.508.801-1.465 1.348-2.846 1.624l-.803.16V20h1c2.783 0 4.906-.771 6.309-2.292zm-11.007 0C11.19 15.66 10.999 13.03 10.993 13V5a1 1 0 0 0-1-1h-6c-1.103 0-2 .897-2 2v7a1 1 0 0 0 1 1h3.078a2.89 2.89 0 0 1-.429 1.396c-.508.801-1.465 1.348-2.846 1.624l-.803.16V20h1c2.783 0 4.906-.771 6.309-2.292z"></path> - </svg> - - {props.title || "Citation"} - </div> - - <div className="admonition-content">{props.children}</div> - </div> - ); -}; - -const ExampleAdmonition = (props: QuoteAdmonitionProps) => { - return ( - <div className="admonition admonition-quote alert alert--example"> - <div className={clsx("admonition-heading", headingClasses)}> - <svg - stroke="currentColor" - fill="currentColor" - strokeWidth="0" - viewBox="0 0 256 256" - className="inline-block w-4 mr-2 shrink-0" - xmlns="http://www.w3.org/2000/svg" - > - <path d="M237.66,86.34l-60-60a8,8,0,0,0-11.32,0L37.11,155.57a44.77,44.77,0,0,0,63.32,63.32L212.32,107l22.21-7.4a8,8,0,0,0,3.13-13.25Zm-32.19,6.07a8,8,0,0,0-3.13,1.93l-39.57,39.57c-8.47,2.9-21.75,4-39.07-5-10.6-5.54-20.18-8-28.56-8.73L172,43.31,217.19,88.5Z"></path> - </svg> - - {props.title || "Exemple"} - </div> - - <div className="admonition-content">{props.children}</div> - </div> - ); -}; - -const AdmonitionTypes = { - ...DefaultAdmonitionTypes, - quote: QuoteAdmonition, - example: ExampleAdmonition, -}; - -export default AdmonitionTypes; diff --git a/old/src/theme/DocTagDocListPage/index.tsx b/old/src/theme/DocTagDocListPage/index.tsx deleted file mode 100644 index 6012c65..0000000 --- a/old/src/theme/DocTagDocListPage/index.tsx +++ /dev/null @@ -1,113 +0,0 @@ -import type { Props } from "@theme/DocTagDocListPage"; - -import { - PageMetadata, - HtmlClassNameProvider, - ThemeClassNames, -} from "@docusaurus/theme-common"; - -import SearchMetadata from "@theme/SearchMetadata"; -import Translate from "@docusaurus/Translate"; -// import Unlisted from "@theme/Unlisted"; -import Heading from "@theme/Heading"; -import Link from "@docusaurus/Link"; -import clsx from "clsx"; - -const DocItem = (props: { doc: Props["tag"]["items"][number] }) => { - return ( - <article className="p-2 md:p-4 flex flex-col gap-2 border border-gray-200 dark:border-gray-900 bg-violet-50/10 rounded-md shadow"> - <Link to={props.doc.permalink}> - <Heading as="h3" className="font-bold text-lg"> - {props.doc.title} - </Heading> - </Link> - - {props.doc.description && <p>{props.doc.description}</p>} - - <Link - to={props.doc.permalink} - className="flex items-center gap-2 hover:no-underline" - > - <svg - stroke="currentColor" - fill="currentColor" - strokeWidth="0" - viewBox="0 0 256 256" - xmlns="http://www.w3.org/2000/svg" - width="1.25em" - height="1.25em" - > - <path d="M247.31,124.76c-.35-.79-8.82-19.58-27.65-38.41C194.57,61.26,162.88,48,128,48S61.43,61.26,36.34,86.35C17.51,105.18,9,124,8.69,124.76a8,8,0,0,0,0,6.5c.35.79,8.82,19.57,27.65,38.4C61.43,194.74,93.12,208,128,208s66.57-13.26,91.66-38.34c18.83-18.83,27.3-37.61,27.65-38.4A8,8,0,0,0,247.31,124.76ZM128,192c-30.78,0-57.67-11.19-79.93-33.25A133.47,133.47,0,0,1,25,128,133.33,133.33,0,0,1,48.07,97.25C70.33,75.19,97.22,64,128,64s57.67,11.19,79.93,33.25A133.46,133.46,0,0,1,231.05,128C223.84,141.46,192.43,192,128,192Zm0-112a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Z"></path> - </svg> - Lire la documentation - </Link> - </article> - ); -}; - -const DocTagDocListPageMetadata = (props: Props & { title: string }) => { - return ( - <> - <PageMetadata title={props.title} description={props.tag.description} /> - <SearchMetadata tag="doc_tag_doc_list" /> - </> - ); -}; - -const DocTagDocListPageContent = (props: Props & { title: string }) => { - return ( - <HtmlClassNameProvider - className={clsx(ThemeClassNames.page.docsTagDocListPage)} - > - <div className="container margin-vert--lg"> - <div className="row"> - <main className="col col--8 col--offset-2"> - {/* {props.tag.unlisted && <Unlisted />} */} - {props.tag.unlisted && <p>Non listé</p>} - - <header className="mb-8"> - <Heading as="h1" className="font-bold text-4xl mb-2"> - {props.title} - </Heading> - - {props.tag.description && <p>{props.tag.description}</p>} - - <Link href={props.tag.allTagsPath} className="italic"> - {"> "} - <Translate - id="theme.tags.tagsPageLink" - description="The label of the link targeting the tag list page" - > - Voir tous les tags - </Translate> - </Link> - </header> - - <section className="flex flex-col gap-4"> - <Heading as="h2" className="font-bold text-2xl mb-2"> - Liste des documentations - </Heading> - - <section className="grid lg:grid-cols-2 gap-2"> - {props.tag.items.map((doc) => ( - <DocItem key={doc.id} doc={doc} /> - ))} - </section> - </section> - </main> - </div> - </div> - </HtmlClassNameProvider> - ); -}; - -export default function DocTagDocListPage(props: Props): JSX.Element { - const title = `Documentations avec le tag "${props.tag.label}"`; - - return ( - <> - <DocTagDocListPageMetadata {...props} title={title} /> - <DocTagDocListPageContent {...props} title={title} /> - </> - ); -} diff --git a/old/src/theme/DocTagsListPage/index.tsx b/old/src/theme/DocTagsListPage/index.tsx deleted file mode 100644 index 275ec1b..0000000 --- a/old/src/theme/DocTagsListPage/index.tsx +++ /dev/null @@ -1,63 +0,0 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -import React from "react"; -import clsx from "clsx"; -import { - PageMetadata, - HtmlClassNameProvider, - ThemeClassNames, - translateTagsPageTitle, -} from "@docusaurus/theme-common"; -import TagsListByLetter from "@theme/TagsListByLetter"; -import SearchMetadata from "@theme/SearchMetadata"; -import type { Props } from "@theme/DocTagsListPage"; -import Heading from "@theme/Heading"; - -function DocTagsListPageMetadata({ - title, -}: Props & { title: string }): JSX.Element { - return ( - <> - <PageMetadata title={title} /> - <SearchMetadata tag="doc_tags_list" /> - </> - ); -} - -function DocTagsListPageContent({ - tags, - title, -}: Props & { title: string }): JSX.Element { - return ( - <HtmlClassNameProvider - className={clsx(ThemeClassNames.page.docsTagsListPage)} - > - <div className="container margin-vert--lg"> - <div className="row"> - <main className="col col--8 col--offset-2"> - <Heading as="h1" className="mb-4 font-bold text-3xl"> - {title} - </Heading> - - <TagsListByLetter tags={tags} /> - </main> - </div> - </div> - </HtmlClassNameProvider> - ); -} - -export default function DocTagsListPage(props: Props): JSX.Element { - const title = translateTagsPageTitle(); - return ( - <> - <DocTagsListPageMetadata {...props} title={title} /> - <DocTagsListPageContent {...props} title={title} /> - </> - ); -} diff --git a/old/src/theme/NotFound/Content/index.tsx b/old/src/theme/NotFound/Content/index.tsx deleted file mode 100644 index 4cdfdf9..0000000 --- a/old/src/theme/NotFound/Content/index.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import type { Props } from "@theme/NotFound/Content"; - -import Translate from "@docusaurus/Translate"; -import Heading from "@theme/Heading"; -import clsx from "clsx"; -import Link from "@docusaurus/Link"; - -export default function NotFoundContent({ className }: Props): JSX.Element { - return ( - <main - className={clsx( - "container mt-16 flex items-center justify-center", - className - )} - > - <div className="max-w-2xl flex flex-col gap-4"> - <Heading as="h1" className="font-bold text-4xl mb-4"> - <Translate - id="theme.NotFound.title" - description="The title of the 404 page" - > - Page Not Found - </Translate> - </Heading> - - <p> - <Translate - id="theme.NotFound.p1" - description="The first paragraph of the 404 page" - > - We could not find what you were looking for. - </Translate> - </p> - - <p> - <Translate - id="theme.NotFound.p2" - description="The 2nd paragraph of the 404 page" - > - Please contact the owner of the site that linked you to the original - URL and let them know their link is broken. - </Translate> - </p> - - <Link to="/" className="self-center mt-8 button"> - Retourner à la page d'accueil - </Link> - </div> - </main> - ); -} diff --git a/old/src/theme/NotFound/index.tsx b/old/src/theme/NotFound/index.tsx deleted file mode 100644 index 10de0ce..0000000 --- a/old/src/theme/NotFound/index.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { PageMetadata } from "@docusaurus/theme-common"; -import { translate } from "@docusaurus/Translate"; -import NotFoundContent from "./Content"; -import Layout from "@theme/Layout"; - -export default function Index(): JSX.Element { - const title = translate({ - id: "theme.NotFound.title", - message: "Page Not Found", - }); - - return ( - <> - <PageMetadata title={title} /> - <Layout> - <NotFoundContent /> - </Layout> - </> - ); -} diff --git a/old/src/theme/SearchBar/DocSearch.js b/old/src/theme/SearchBar/DocSearch.js deleted file mode 100644 index 77a53de..0000000 --- a/old/src/theme/SearchBar/DocSearch.js +++ /dev/null @@ -1,310 +0,0 @@ -import Hogan from "hogan.js"; -import LunrSearchAdapter from "./lunar-search"; -import autocomplete from "autocomplete.js"; -import templates from "./templates"; -import utils from "./utils"; -import $ from "autocomplete.js/zepto"; - -class DocSearch { - constructor({ - searchDocs, - searchIndex, - inputSelector, - debug = false, - baseUrl = '/', - queryDataCallback = null, - autocompleteOptions = { - debug: false, - hint: false, - autoselect: true - }, - transformData = false, - queryHook = false, - handleSelected = false, - enhancedSearchInput = false, - layout = "column", - maxHits = 5 - }) { - this.input = DocSearch.getInputFromSelector(inputSelector); - this.queryDataCallback = queryDataCallback || null; - const autocompleteOptionsDebug = - autocompleteOptions && autocompleteOptions.debug - ? autocompleteOptions.debug - : false; - // eslint-disable-next-line no-param-reassign - autocompleteOptions.debug = debug || autocompleteOptionsDebug; - this.autocompleteOptions = autocompleteOptions; - this.autocompleteOptions.cssClasses = - this.autocompleteOptions.cssClasses || {}; - this.autocompleteOptions.cssClasses.prefix = - this.autocompleteOptions.cssClasses.prefix || "ds"; - const inputAriaLabel = - this.input && - typeof this.input.attr === "function" && - this.input.attr("aria-label"); - this.autocompleteOptions.ariaLabel = - this.autocompleteOptions.ariaLabel || inputAriaLabel || "search input"; - - this.isSimpleLayout = layout === "simple"; - - this.client = new LunrSearchAdapter(searchDocs, searchIndex, baseUrl, maxHits); - - if (enhancedSearchInput) { - this.input = DocSearch.injectSearchBox(this.input); - } - this.autocomplete = autocomplete(this.input, autocompleteOptions, [ - { - source: this.getAutocompleteSource(transformData, queryHook), - templates: { - suggestion: DocSearch.getSuggestionTemplate(this.isSimpleLayout), - footer: templates.footer, - empty: DocSearch.getEmptyTemplate() - } - } - ]); - - const customHandleSelected = handleSelected; - this.handleSelected = customHandleSelected || this.handleSelected; - - // We prevent default link clicking if a custom handleSelected is defined - if (customHandleSelected) { - $(".algolia-autocomplete").on("click", ".ds-suggestions a", event => { - event.preventDefault(); - }); - } - - this.autocomplete.on( - "autocomplete:selected", - this.handleSelected.bind(null, this.autocomplete.autocomplete) - ); - - this.autocomplete.on( - "autocomplete:shown", - this.handleShown.bind(null, this.input) - ); - - if (enhancedSearchInput) { - DocSearch.bindSearchBoxEvent(); - } - - // Ctrl/Cmd + K should focus the search bar, emulating the Algolia search UI - document.addEventListener('keydown', (e) => { - if ((e.ctrlKey || e.metaKey) && e.key == 'k') { - this.input.focus(); - - // By default, using Ctrl + K in Chrome will open the location bar, so disable this - e.preventDefault(); - } - }); - } - - static injectSearchBox(input) { - input.before(templates.searchBox); - const newInput = input - .prev() - .prev() - .find("input"); - input.remove(); - return newInput; - } - - static bindSearchBoxEvent() { - $('.searchbox [type="reset"]').on("click", function () { - $("input#docsearch").focus(); - $(this).addClass("hide"); - autocomplete.autocomplete.setVal(""); - }); - - $("input#docsearch").on("keyup", () => { - const searchbox = document.querySelector("input#docsearch"); - const reset = document.querySelector('.searchbox [type="reset"]'); - reset.className = "searchbox__reset"; - if (searchbox.value.length === 0) { - reset.className += " hide"; - } - }); - } - - /** - * Returns the matching input from a CSS selector, null if none matches - * @function getInputFromSelector - * @param {string} selector CSS selector that matches the search - * input of the page - * @returns {void} - */ - static getInputFromSelector(selector) { - const input = $(selector).filter("input"); - return input.length ? $(input[0]) : null; - } - - /** - * Returns the `source` method to be passed to autocomplete.js. It will query - * the Algolia index and call the callbacks with the formatted hits. - * @function getAutocompleteSource - * @param {function} transformData An optional function to transform the hits - * @param {function} queryHook An optional function to transform the query - * @returns {function} Method to be passed as the `source` option of - * autocomplete - */ - getAutocompleteSource(transformData, queryHook) { - return (query, callback) => { - if (queryHook) { - // eslint-disable-next-line no-param-reassign - query = queryHook(query) || query; - } - this.client.search(query).then(hits => { - if ( - this.queryDataCallback && - typeof this.queryDataCallback == "function" - ) { - this.queryDataCallback(hits); - } - if (transformData) { - hits = transformData(hits) || hits; - } - callback(DocSearch.formatHits(hits)); - }); - }; - } - - // Given a list of hits returned by the API, will reformat them to be used in - // a Hogan template - static formatHits(receivedHits) { - const clonedHits = utils.deepClone(receivedHits); - const hits = clonedHits.map(hit => { - if (hit._highlightResult) { - // eslint-disable-next-line no-param-reassign - hit._highlightResult = utils.mergeKeyWithParent( - hit._highlightResult, - "hierarchy" - ); - } - return utils.mergeKeyWithParent(hit, "hierarchy"); - }); - - // Group hits by category / subcategory - let groupedHits = utils.groupBy(hits, "lvl0"); - $.each(groupedHits, (level, collection) => { - const groupedHitsByLvl1 = utils.groupBy(collection, "lvl1"); - const flattenedHits = utils.flattenAndFlagFirst( - groupedHitsByLvl1, - "isSubCategoryHeader" - ); - groupedHits[level] = flattenedHits; - }); - groupedHits = utils.flattenAndFlagFirst(groupedHits, "isCategoryHeader"); - - // Translate hits into smaller objects to be send to the template - return groupedHits.map(hit => { - const url = DocSearch.formatURL(hit); - const category = utils.getHighlightedValue(hit, "lvl0"); - const subcategory = utils.getHighlightedValue(hit, "lvl1") || category; - const displayTitle = utils - .compact([ - utils.getHighlightedValue(hit, "lvl2") || subcategory, - utils.getHighlightedValue(hit, "lvl3"), - utils.getHighlightedValue(hit, "lvl4"), - utils.getHighlightedValue(hit, "lvl5"), - utils.getHighlightedValue(hit, "lvl6") - ]) - .join( - '<span class="aa-suggestion-title-separator" aria-hidden="true"> › </span>' - ); - const text = utils.getSnippetedValue(hit, "content"); - const isTextOrSubcategoryNonEmpty = - (subcategory && subcategory !== "") || - (displayTitle && displayTitle !== ""); - const isLvl1EmptyOrDuplicate = - !subcategory || subcategory === "" || subcategory === category; - const isLvl2 = - displayTitle && displayTitle !== "" && displayTitle !== subcategory; - const isLvl1 = - !isLvl2 && - (subcategory && subcategory !== "" && subcategory !== category); - const isLvl0 = !isLvl1 && !isLvl2; - const version = hit.version; - - return { - isLvl0, - isLvl1, - isLvl2, - isLvl1EmptyOrDuplicate, - isCategoryHeader: hit.isCategoryHeader, - isSubCategoryHeader: hit.isSubCategoryHeader, - isTextOrSubcategoryNonEmpty, - category, - subcategory, - title: displayTitle, - text, - url, - version - }; - }); - } - - static formatURL(hit) { - const { url, anchor } = hit; - if (url) { - const containsAnchor = url.indexOf("#") !== -1; - if (containsAnchor) return url; - else if (anchor) return `${hit.url}#${hit.anchor}`; - return url; - } else if (anchor) return `#${hit.anchor}`; - /* eslint-disable */ - console.warn("no anchor nor url for : ", JSON.stringify(hit)); - /* eslint-enable */ - return null; - } - - static getEmptyTemplate() { - return args => Hogan.compile(templates.empty).render(args); - } - - static getSuggestionTemplate(isSimpleLayout) { - const stringTemplate = isSimpleLayout - ? templates.suggestionSimple - : templates.suggestion; - const template = Hogan.compile(stringTemplate); - return suggestion => template.render(suggestion); - } - - handleSelected(input, event, suggestion, datasetNumber, context = {}) { - // Do nothing if click on the suggestion, as it's already a <a href>, the - // browser will take care of it. This allow Ctrl-Clicking on results and not - // having the main window being redirected as well - if (context.selectionMethod === "click") { - return; - } - - input.setVal(""); - window.location.assign(suggestion.url); - } - - handleShown(input) { - const middleOfInput = input.offset().left + input.width() / 2; - let middleOfWindow = $(document).width() / 2; - - if (isNaN(middleOfWindow)) { - middleOfWindow = 900; - } - - const alignClass = - middleOfInput - middleOfWindow >= 0 - ? "algolia-autocomplete-right" - : "algolia-autocomplete-left"; - const otherAlignClass = - middleOfInput - middleOfWindow < 0 - ? "algolia-autocomplete-right" - : "algolia-autocomplete-left"; - const autocompleteWrapper = $(".algolia-autocomplete"); - if (!autocompleteWrapper.hasClass(alignClass)) { - autocompleteWrapper.addClass(alignClass); - } - - if (autocompleteWrapper.hasClass(otherAlignClass)) { - autocompleteWrapper.removeClass(otherAlignClass); - } - } -} - -export default DocSearch; diff --git a/old/src/theme/SearchBar/HighlightSearchResults.jsx b/old/src/theme/SearchBar/HighlightSearchResults.jsx deleted file mode 100644 index 8e70399..0000000 --- a/old/src/theme/SearchBar/HighlightSearchResults.jsx +++ /dev/null @@ -1,53 +0,0 @@ -//copied from https://github.com/cmfcmf/docusaurus-search-local -import Mark from "mark.js"; -import { useEffect, useState } from "react"; -import { useLocation } from "@docusaurus/router"; -import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; -import { useHistory } from "@docusaurus/router"; - -export function HighlightSearchResults() { - const location = useLocation(); - const history = useHistory(); - const { - siteConfig: { baseUrl }, - } = useDocusaurusContext(); - - const [highlightData, setHighlightData] = useState({ wordToHighlight: '', isTitleSuggestion: false , titleText: '' }); - - useEffect(() => { - if ( - !location.state?.highlightState || - location.state.highlightState.wordToHighlight.length === 0 - ) { - return; - } - setHighlightData(location.state.highlightState); - - const { highlightState, ...state } = location.state; - history.replace({ - ...location, - state, - }); - }, [location.state?.highlightState, history, location]); - - useEffect(() => { - if (highlightData.wordToHighlight.length === 0) { - return; - } - - // Make sure to also adjust parse.js if you change the top element here. - const root = document.getElementsByTagName("article")[0] ?? document.getElementsByTagName("main")[0] ; - if (!root) { - return; - } - - const mark = new Mark(root); - const options = { - ignoreJoiners: true, - }; - mark.mark(highlightData.wordToHighlight , options); - return () => mark.unmark(options); - }, [highlightData, baseUrl]); - - return null; -} diff --git a/old/src/theme/SearchBar/algolia.css b/old/src/theme/SearchBar/algolia.css deleted file mode 100644 index 4cf5bdc..0000000 --- a/old/src/theme/SearchBar/algolia.css +++ /dev/null @@ -1,560 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/* Bottom border of each suggestion */ -.algolia-docsearch-suggestion { - border-bottom-color: #3a3dd1; -} -/* Main category headers */ -.algolia-docsearch-suggestion--category-header { - background-color: #4b54de; -} -/* Highlighted search terms */ -.algolia-docsearch-suggestion--highlight { - color: #3a33d1; -} -/* Highligted search terms in the main category headers */ -.algolia-docsearch-suggestion--category-header - .algolia-docsearch-suggestion--highlight { - background-color: #4d47d5; -} -/* Currently selected suggestion */ -.aa-cursor .algolia-docsearch-suggestion--content { - color: #272296; -} -.aa-cursor .algolia-docsearch-suggestion { - background: #ebebfb; -} - -/* For bigger screens, when displaying results in two columns */ -@media (min-width: 768px) { - /* Bottom border of each suggestion */ - .algolia-docsearch-suggestion { - border-bottom-color: #7671df; - } - /* Left column, with secondary category header */ - .algolia-docsearch-suggestion--subcategory-column { - border-right-color: #7671df; - color: #4e4726; - } -} - -.searchbox { - display: inline-block; - position: relative; - width: 200px; - height: 32px !important; - white-space: nowrap; - box-sizing: border-box; - visibility: visible !important; -} - -.searchbox .algolia-autocomplete { - display: block; - width: 100%; - height: 100%; -} - -.searchbox__wrapper { - width: 100%; - height: 100%; - z-index: 999; - position: relative; -} - -.searchbox__input { - display: inline-block; - box-sizing: border-box; - -webkit-transition: box-shadow 0.4s ease, background 0.4s ease; - transition: box-shadow 0.4s ease, background 0.4s ease; - border: 0; - border-radius: 16px; - box-shadow: inset 0 0 0 1px #cccccc; - background: #ffffff !important; - padding: 0; - padding-right: 26px; - padding-left: 32px; - width: 100%; - height: 100%; - vertical-align: middle; - white-space: normal; - font-size: 12px; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; -} - -.searchbox__input::-webkit-search-decoration, -.searchbox__input::-webkit-search-cancel-button, -.searchbox__input::-webkit-search-results-button, -.searchbox__input::-webkit-search-results-decoration { - display: none; -} - -.searchbox__input:hover { - box-shadow: inset 0 0 0 1px #b3b3b3; -} - -.searchbox__input:focus, -.searchbox__input:active { - outline: 0; - box-shadow: inset 0 0 0 1px #aaaaaa; - background: #ffffff; -} - -.searchbox__input::-webkit-input-placeholder { - color: #aaaaaa; -} - -.searchbox__input::-moz-placeholder { - color: #aaaaaa; -} - -.searchbox__input:-ms-input-placeholder { - color: #aaaaaa; -} - -.searchbox__input::placeholder { - color: #aaaaaa; -} - -.searchbox__submit { - position: absolute; - top: 0; - margin: 0; - border: 0; - border-radius: 16px 0 0 16px; - background-color: rgba(69, 142, 225, 0); - padding: 0; - width: 32px; - height: 100%; - vertical-align: middle; - text-align: center; - font-size: inherit; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - right: inherit; - left: 0; -} - -.searchbox__submit::before { - display: inline-block; - margin-right: -4px; - height: 100%; - vertical-align: middle; - content: ''; -} - -.searchbox__submit:hover, -.searchbox__submit:active { - cursor: pointer; -} - -.searchbox__submit:focus { - outline: 0; -} - -.searchbox__submit svg { - width: 14px; - height: 14px; - vertical-align: middle; - fill: #6d7e96; -} - -.searchbox__reset { - display: block; - position: absolute; - top: 8px; - right: 8px; - margin: 0; - border: 0; - background: none; - cursor: pointer; - padding: 0; - font-size: inherit; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - fill: rgba(0, 0, 0, 0.5); -} - -.searchbox__reset.hide { - display: none; -} - -.searchbox__reset:focus { - outline: 0; -} - -.searchbox__reset svg { - display: block; - margin: 4px; - width: 8px; - height: 8px; -} - -.searchbox__input:valid ~ .searchbox__reset { - display: block; - -webkit-animation-name: sbx-reset-in; - animation-name: sbx-reset-in; - -webkit-animation-duration: 0.15s; - animation-duration: 0.15s; -} - -@-webkit-keyframes sbx-reset-in { - 0% { - -webkit-transform: translate3d(-20%, 0, 0); - transform: translate3d(-20%, 0, 0); - opacity: 0; - } - 100% { - -webkit-transform: none; - transform: none; - opacity: 1; - } -} - -@keyframes sbx-reset-in { - 0% { - -webkit-transform: translate3d(-20%, 0, 0); - transform: translate3d(-20%, 0, 0); - opacity: 0; - } - 100% { - -webkit-transform: none; - transform: none; - opacity: 1; - } -} - -.algolia-autocomplete .ds-dropdown-menu:before { - display: block; - position: absolute; - content: ''; - width: 14px; - height: 14px; - background: #373940; - z-index: 1000; - top: -7px; - border-top: 1px solid #373940; - border-right: 1px solid #373940; - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - border-radius: 2px; -} - -.algolia-autocomplete .ds-dropdown-menu { - box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2), 0 2px 3px 0 rgba(0, 0, 0, 0.1); -} - -@media (min-width: 601px) { - .algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu { - right: 0 !important; - left: inherit !important; - } - - .algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before { - right: 48px; - } - - .algolia-autocomplete .ds-dropdown-menu { - position: relative; - top: -6px; - border-radius: 4px; - margin: 6px 0 0; - padding: 0; - text-align: left; - height: auto; - position: relative; - background: transparent; - border: none; - z-index: 999; - max-width: 600px; - min-width: 500px; - } -} - -@media (max-width: 600px) { - .algolia-autocomplete .ds-dropdown-menu { - z-index: 100; - position: fixed !important; - top: 50px !important; - left: auto !important; - right: 1rem !important; - width: 600px; - max-width: calc(100% - 2rem); - max-height: calc(100% - 5rem); - display: block; - } - - .algolia-autocomplete .ds-dropdown-menu:before { - right: 6rem; - } -} - -.algolia-autocomplete .ds-dropdown-menu .ds-suggestions { - position: relative; - z-index: 1000; -} - -.algolia-autocomplete .ds-dropdown-menu .ds-suggestion { - cursor: pointer; -} - -.algolia-autocomplete .ds-dropdown-menu [class^='ds-dataset-'] { - position: relative; - border-radius: 4px; - overflow: auto; - padding: 0; - background: #ffffff; -} - -.algolia-autocomplete .ds-dropdown-menu * { - box-sizing: border-box; -} - -.algolia-autocomplete .algolia-docsearch-suggestion { - display: block; - position: relative; - padding: 0; - overflow: hidden; - text-decoration: none; -} - -.algolia-autocomplete .ds-cursor .algolia-docsearch-suggestion--wrapper { - background: #f1f1f1; - box-shadow: inset -2px 0 0 #61dafb; -} - -.algolia-autocomplete .algolia-docsearch-suggestion--highlight { - background: #ffe564; - padding: 0.1em 0.05em; -} - -.algolia-autocomplete - .algolia-docsearch-suggestion--category-header - .algolia-docsearch-suggestion--category-header-lvl0 - .algolia-docsearch-suggestion--highlight, -.algolia-autocomplete - .algolia-docsearch-suggestion--category-header - .algolia-docsearch-suggestion--category-header-lvl1 - .algolia-docsearch-suggestion--highlight { - color: inherit; - background: inherit; -} - -.algolia-autocomplete - .algolia-docsearch-suggestion--text - .algolia-docsearch-suggestion--highlight { - padding: 0 0 1px; - background: inherit; - box-shadow: inset 0 -2px 0 0 rgba(69, 142, 225, 0.8); - color: inherit; -} - -.algolia-autocomplete .algolia-docsearch-suggestion--content { - display: block; - float: right; - width: 70%; - position: relative; - padding: 5.33333px 0 5.33333px 10.66667px; - cursor: pointer; -} - -.algolia-autocomplete .algolia-docsearch-suggestion--content:before { - content: ''; - position: absolute; - display: block; - top: 0; - height: 100%; - width: 1px; - background: #ececec; - left: -1px; -} - -.algolia-autocomplete .algolia-docsearch-suggestion--category-header { - position: relative; - display: none; - font-size: 14px; - letter-spacing: 0.08em; - font-weight: 700; - background-color: #373940; - text-transform: uppercase; - color: #fff; - margin: 0; - padding: 5px 8px; -} - -.algolia-autocomplete .algolia-docsearch-suggestion--wrapper { - background-color: #fff; - width: 100%; - float: left; - padding: 8px 0 0 0; -} - -.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column { - float: left; - width: 30%; - display: none; - padding-left: 0; - text-align: right; - position: relative; - padding: 5.33333px 10.66667px; - color: #777; - font-size: 0.9em; - word-wrap: break-word; -} - -.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before { - content: ''; - position: absolute; - display: block; - top: 0; - height: 100%; - width: 1px; - background: #ececec; - right: 0; -} - -.algolia-autocomplete - .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main - .algolia-docsearch-suggestion--category-header, -.algolia-autocomplete - .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary { - display: block; -} - -.algolia-autocomplete - .algolia-docsearch-suggestion--subcategory-column - .algolia-docsearch-suggestion--highlight { - background-color: inherit; - color: inherit; -} - -.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline { - display: none; -} - -.algolia-autocomplete .algolia-docsearch-suggestion--title { - margin-bottom: 4px; - color: #02060c; - font-size: 0.9em; - font-weight: bold; -} - -.algolia-autocomplete .algolia-docsearch-suggestion--text { - display: block; - line-height: 1.2em; - font-size: 0.85em; - color: #63676d; - padding-right: 2px; -} - -.algolia-autocomplete .algolia-docsearch-suggestion--version { - display: block; - font-size: 0.65em; - color: #a6aab1; - padding-top: 2px; - padding-right: 2px; -} - -.algolia-autocomplete .algolia-docsearch-suggestion--no-results { - width: 100%; - padding: 8px 0; - text-align: center; - font-size: 1.2em; - background-color: #373940; - margin-top: -8px; -} - -.algolia-autocomplete - .algolia-docsearch-suggestion--no-results - .algolia-docsearch-suggestion--text { - color: #ffffff; - margin-top: 4px; -} - -.algolia-autocomplete .algolia-docsearch-suggestion--no-results::before { - display: none; -} - -.algolia-autocomplete .algolia-docsearch-suggestion code { - padding: 1px 5px; - font-size: 90%; - border: none; - color: #222222; - background-color: #ebebeb; - border-radius: 3px; - font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', - monospace; -} - -.algolia-autocomplete - .algolia-docsearch-suggestion - code - .algolia-docsearch-suggestion--highlight { - background: none; -} - -.algolia-autocomplete - .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main - .algolia-docsearch-suggestion--category-header { - color: white; - display: block; -} - -.algolia-autocomplete - .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary - .algolia-docsearch-suggestion--subcategory-column { - display: block; -} - -.algolia-autocomplete .algolia-docsearch-footer { - background-color: #fff; - width: 100%; - height: 30px; - z-index: 2000; - float: right; - font-size: 0; - line-height: 0; -} - -.algolia-autocomplete .algolia-docsearch-footer--logo { - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 130 18'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='-36.87%25' x2='129.43%25' y1='134.94%25' y2='-27.7%25'%3E%3Cstop stop-color='%252300AEFF' offset='0%25'/%3E%3Cstop stop-color='%25233369E7' offset='100%25'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath fill='url(%2523a)' d='M59.4.02h13.3a2.37 2.37 0 0 1 2.38 2.37V15.6a2.37 2.37 0 0 1-2.38 2.36H59.4a2.37 2.37 0 0 1-2.38-2.36V2.38A2.37 2.37 0 0 1 59.4.02z'/%3E%3Cpath fill='%2523FFF' d='M66.26 4.56c-2.82 0-5.1 2.27-5.1 5.08 0 2.8 2.28 5.07 5.1 5.07 2.8 0 5.1-2.26 5.1-5.07 0-2.8-2.28-5.07-5.1-5.07zm0 8.65c-2 0-3.6-1.6-3.6-3.56 0-1.97 1.6-3.58 3.6-3.58 1.98 0 3.6 1.6 3.6 3.58a3.58 3.58 0 0 1-3.6 3.57zm0-6.4v2.66c0 .07.08.13.15.1l2.4-1.24c.04-.02.06-.1.03-.14a2.96 2.96 0 0 0-2.46-1.5c-.06 0-.1.05-.1.1zm-3.33-1.96l-.3-.3a.78.78 0 0 0-1.12 0l-.36.36a.77.77 0 0 0 0 1.1l.3.3c.05.05.13.04.17 0 .2-.25.4-.5.6-.7.23-.23.46-.43.7-.6.07-.04.07-.1.03-.16zm5-.8V3.4a.78.78 0 0 0-.78-.78h-1.83a.78.78 0 0 0-.78.78v.63c0 .07.06.12.14.1a5.74 5.74 0 0 1 1.58-.22c.52 0 1.04.07 1.54.2a.1.1 0 0 0 .13-.1z'/%3E%3Cpath fill='%2523182359' d='M102.16 13.76c0 1.46-.37 2.52-1.12 3.2-.75.67-1.9 1-3.44 1-.56 0-1.74-.1-2.67-.3l.34-1.7c.78.17 1.82.2 2.36.2.86 0 1.48-.16 1.84-.5.37-.36.55-.88.55-1.57v-.35a6.37 6.37 0 0 1-.84.3 4.15 4.15 0 0 1-1.2.17 4.5 4.5 0 0 1-1.6-.28 3.38 3.38 0 0 1-1.26-.82 3.74 3.74 0 0 1-.8-1.35c-.2-.54-.3-1.5-.3-2.2 0-.67.1-1.5.3-2.06a3.92 3.92 0 0 1 .9-1.43 4.12 4.12 0 0 1 1.45-.92 5.3 5.3 0 0 1 1.94-.37c.7 0 1.35.1 1.97.2a15.86 15.86 0 0 1 1.6.33v8.46zm-5.95-4.2c0 .9.2 1.88.6 2.3.4.4.9.62 1.53.62.34 0 .66-.05.96-.15a2.75 2.75 0 0 0 .73-.33V6.7a8.53 8.53 0 0 0-1.42-.17c-.76-.02-1.36.3-1.77.8-.4.5-.62 1.4-.62 2.23zm16.13 0c0 .72-.1 1.26-.32 1.85a4.4 4.4 0 0 1-.9 1.53c-.38.42-.85.75-1.4.98-.54.24-1.4.37-1.8.37-.43 0-1.27-.13-1.8-.36a4.1 4.1 0 0 1-1.4-.97 4.5 4.5 0 0 1-.92-1.52 5.04 5.04 0 0 1-.33-1.84c0-.72.1-1.4.32-2 .22-.6.53-1.1.92-1.5.4-.43.86-.75 1.4-.98a4.55 4.55 0 0 1 1.78-.34 4.7 4.7 0 0 1 1.8.34c.54.23 1 .55 1.4.97.38.42.68.92.9 1.5.23.6.35 1.3.35 2zm-2.2 0c0-.92-.2-1.7-.6-2.22-.38-.54-.94-.8-1.64-.8-.72 0-1.27.26-1.67.8-.4.54-.58 1.3-.58 2.22 0 .93.2 1.56.6 2.1.38.54.94.8 1.64.8s1.25-.26 1.65-.8c.4-.55.6-1.17.6-2.1zm6.97 4.7c-3.5.02-3.5-2.8-3.5-3.27L113.57.92l2.15-.34v10c0 .25 0 1.87 1.37 1.88v1.8zm3.77 0h-2.15v-9.2l2.15-.33v9.54zM119.8 3.74c.7 0 1.3-.58 1.3-1.3 0-.7-.58-1.3-1.3-1.3-.73 0-1.3.6-1.3 1.3 0 .72.58 1.3 1.3 1.3zm6.43 1c.7 0 1.3.1 1.78.27.5.18.88.42 1.17.73.28.3.5.74.6 1.18.13.46.2.95.2 1.5v5.47a25.24 25.24 0 0 1-1.5.25c-.67.1-1.42.15-2.25.15a6.83 6.83 0 0 1-1.52-.16 3.2 3.2 0 0 1-1.18-.5 2.46 2.46 0 0 1-.76-.9c-.18-.37-.27-.9-.27-1.44 0-.52.1-.85.3-1.2.2-.37.48-.67.83-.9a3.6 3.6 0 0 1 1.23-.5 7.07 7.07 0 0 1 2.2-.1l.83.16v-.35c0-.25-.03-.48-.1-.7a1.5 1.5 0 0 0-.3-.58c-.15-.18-.34-.3-.58-.4a2.54 2.54 0 0 0-.92-.17c-.5 0-.94.06-1.35.13-.4.08-.75.16-1 .25l-.27-1.74c.27-.1.67-.18 1.2-.28a9.34 9.34 0 0 1 1.65-.14zm.18 7.74c.66 0 1.15-.04 1.5-.1V10.2a5.1 5.1 0 0 0-2-.1c-.23.03-.45.1-.64.2a1.17 1.17 0 0 0-.47.38c-.13.17-.18.26-.18.52 0 .5.17.8.5.98.32.2.74.3 1.3.3zM84.1 4.8c.72 0 1.3.08 1.8.26.48.17.87.42 1.15.73.3.3.5.72.6 1.17.14.45.2.94.2 1.47v5.48a25.24 25.24 0 0 1-1.5.26c-.67.1-1.42.14-2.25.14a6.83 6.83 0 0 1-1.52-.16 3.2 3.2 0 0 1-1.18-.5 2.46 2.46 0 0 1-.76-.9c-.18-.38-.27-.9-.27-1.44 0-.53.1-.86.3-1.22.2-.36.5-.65.84-.88a3.6 3.6 0 0 1 1.24-.5 7.07 7.07 0 0 1 2.2-.1c.26.03.54.08.84.15v-.35c0-.24-.03-.48-.1-.7a1.5 1.5 0 0 0-.3-.58c-.15-.17-.34-.3-.58-.4a2.54 2.54 0 0 0-.9-.15c-.5 0-.96.05-1.37.12-.4.07-.75.15-1 .24l-.26-1.75c.27-.08.67-.17 1.18-.26a8.9 8.9 0 0 1 1.66-.15zm.2 7.73c.65 0 1.14-.04 1.48-.1v-2.17a5.1 5.1 0 0 0-1.98-.1c-.24.03-.46.1-.65.18a1.17 1.17 0 0 0-.47.4c-.12.17-.17.26-.17.52 0 .5.18.8.5.98.32.2.75.3 1.3.3zm8.68 1.74c-3.5 0-3.5-2.82-3.5-3.28L89.45.92 91.6.6v10c0 .25 0 1.87 1.38 1.88v1.8z'/%3E%3Cpath fill='%25231D3657' d='M5.03 11.03c0 .7-.26 1.24-.76 1.64-.5.4-1.2.6-2.1.6-.88 0-1.6-.14-2.17-.42v-1.2c.36.16.74.3 1.14.38.4.1.78.15 1.13.15.5 0 .88-.1 1.12-.3a.94.94 0 0 0 .35-.77.98.98 0 0 0-.33-.74c-.22-.2-.68-.44-1.37-.72-.72-.3-1.22-.62-1.52-1C.23 8.27.1 7.82.1 7.3c0-.65.22-1.17.7-1.55.46-.37 1.08-.56 1.86-.56.76 0 1.5.16 2.25.48l-.4 1.05c-.7-.3-1.32-.44-1.87-.44-.4 0-.73.08-.94.26a.9.9 0 0 0-.33.72c0 .2.04.38.12.52.08.15.22.3.42.4.2.14.55.3 1.06.52.58.24 1 .47 1.27.67.27.2.47.44.6.7.12.26.18.57.18.92zM9 13.27c-.92 0-1.64-.27-2.16-.8-.52-.55-.78-1.3-.78-2.24 0-.97.24-1.73.72-2.3.5-.54 1.15-.82 2-.82.78 0 1.4.25 1.85.72.46.48.7 1.14.7 1.97v.67H7.35c0 .58.17 1.02.46 1.33.3.3.7.47 1.24.47.36 0 .68-.04.98-.1a5.1 5.1 0 0 0 .98-.33v1.02a3.87 3.87 0 0 1-.94.32 5.72 5.72 0 0 1-1.08.1zm-.22-5.2c-.4 0-.73.12-.97.38s-.37.62-.42 1.1h2.7c0-.48-.13-.85-.36-1.1-.23-.26-.54-.38-.94-.38zm7.7 5.1l-.26-.84h-.05c-.28.36-.57.6-.86.74-.28.13-.65.2-1.1.2-.6 0-1.05-.16-1.38-.48-.32-.32-.5-.77-.5-1.34 0-.62.24-1.08.7-1.4.45-.3 1.14-.47 2.07-.5l1.02-.03V9.2c0-.37-.1-.65-.27-.84-.17-.2-.45-.28-.82-.28-.3 0-.6.04-.88.13a6.68 6.68 0 0 0-.8.33l-.4-.9a4.4 4.4 0 0 1 1.05-.4 4.86 4.86 0 0 1 1.08-.12c.76 0 1.33.18 1.7.5.4.33.6.85.6 1.56v4h-.9zm-1.9-.87c.47 0 .83-.13 1.1-.38.3-.26.43-.62.43-1.08v-.52l-.76.03c-.6.03-1.02.13-1.3.3s-.4.45-.4.82c0 .26.08.47.24.6.16.16.4.23.7.23zm7.57-5.2c.25 0 .46.03.62.06l-.12 1.18a2.38 2.38 0 0 0-.56-.06c-.5 0-.92.16-1.24.5-.3.32-.47.75-.47 1.27v3.1h-1.27V7.23h1l.16 1.05h.05c.2-.36.45-.64.77-.85a1.83 1.83 0 0 1 1.02-.3zm4.12 6.17c-.9 0-1.58-.27-2.05-.8-.47-.52-.7-1.27-.7-2.25 0-1 .24-1.77.73-2.3.5-.54 1.2-.8 2.12-.8.63 0 1.2.1 1.7.34l-.4 1c-.52-.2-.96-.3-1.3-.3-1.04 0-1.55.68-1.55 2.05 0 .67.13 1.17.38 1.5.26.34.64.5 1.13.5a3.23 3.23 0 0 0 1.6-.4v1.1a2.53 2.53 0 0 1-.73.28 4.36 4.36 0 0 1-.93.08zm8.28-.1h-1.27V9.5c0-.45-.1-.8-.28-1.02-.18-.23-.47-.34-.88-.34-.53 0-.9.16-1.16.48-.25.3-.38.85-.38 1.6v2.94h-1.26V4.8h1.26v2.12c0 .34-.02.7-.06 1.1h.08a1.76 1.76 0 0 1 .72-.67c.3-.16.66-.24 1.07-.24 1.43 0 2.15.74 2.15 2.2v3.86zM42.2 7.1c.74 0 1.32.28 1.73.82.4.53.62 1.3.62 2.26 0 .97-.2 1.73-.63 2.27-.42.54-1 .82-1.75.82s-1.33-.27-1.75-.8h-.08l-.23.7h-.94V4.8h1.26v2l-.02.64-.03.56h.05c.4-.6 1-.9 1.78-.9zm-.33 1.04c-.5 0-.88.15-1.1.45-.22.3-.34.8-.35 1.5v.08c0 .72.12 1.24.35 1.57.23.32.6.48 1.12.48.44 0 .78-.17 1-.53.24-.35.36-.87.36-1.53 0-1.35-.47-2.03-1.4-2.03zm3.24-.92h1.4l1.2 3.37c.18.47.3.92.36 1.34h.04l.18-.72 1.37-4H51l-2.53 6.73c-.46 1.23-1.23 1.85-2.3 1.85-.3 0-.56-.03-.83-.1v-1c.2.05.4.08.65.08.6 0 1.03-.36 1.28-1.06l.22-.56-2.4-5.94z'/%3E%3C/g%3E%3C/svg%3E"); - background-repeat: no-repeat; - background-position: center; - background-size: 100%; - overflow: hidden; - text-indent: -9000px; - width: 110px; - height: 100%; - display: block; - margin-left: auto; - margin-right: 5px; -} - -html[data-theme='dark'] .algolia-docsearch-suggestion--category-header, -html[data-theme='dark'] .algolia-docsearch-suggestion--wrapper, -html[data-theme='dark'] .algolia-docsearch-footer { - background: var(--ifm-background-color) !important; - color: var(--ifm-font-color-base) !important; -} - -html[data-theme='dark'] .algolia-docsearch-suggestion--title { - color: var(--ifm-font-color-base) !important; -} - -html[data-theme='dark'] .ds-cursor .algolia-docsearch-suggestion--wrapper { - background: var(--ifm-background-surface-color) !important; -} - -mark{ - background-color: lightblue; -} diff --git a/old/src/theme/SearchBar/index.jsx b/old/src/theme/SearchBar/index.jsx deleted file mode 100644 index acefa77..0000000 --- a/old/src/theme/SearchBar/index.jsx +++ /dev/null @@ -1,165 +0,0 @@ -import { useRef, useCallback, useState, useEffect } from "react"; -import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; -import { HighlightSearchResults } from "./HighlightSearchResults"; -import { usePluginData } from "@docusaurus/useGlobalData"; -import useIsBrowser from "@docusaurus/useIsBrowser"; -import { useHistory } from "@docusaurus/router"; -import clsx from "clsx"; - -const Search = (props) => { - const initialized = useRef(false); - const searchBarRef = useRef(null); - const [indexReady, setIndexReady] = useState(false); - const history = useHistory(); - const { siteConfig = {} } = useDocusaurusContext(); - const pluginConfig = (siteConfig.plugins || []).find( - (plugin) => - Array.isArray(plugin) && - typeof plugin[0] === "string" && - plugin[0].includes("docusaurus-lunr-search") - ); - const isBrowser = useIsBrowser(); - const { baseUrl } = siteConfig; - const assetUrl = (pluginConfig && pluginConfig[1]?.assetUrl) || baseUrl; - - const initAlgolia = (searchDocs, searchIndex, DocSearch, options) => { - new DocSearch({ - searchDocs, - searchIndex, - baseUrl, - inputSelector: "#search_input_react", - // Override algolia's default selection event, allowing us to do client-side - // navigation and avoiding a full page refresh. - handleSelected: (_input, _event, suggestion) => { - const url = suggestion.url || "/"; - // Use an anchor tag to parse the absolute url into a relative url - // Alternatively, we can use new URL(suggestion.url) but its not supported in IE - const a = document.createElement("a"); - a.href = url; - _input.setVal(""); // clear value - _event.target.blur(); // remove focus - - // Get the highlight word from the suggestion. - let wordToHighlight = ""; - if (options.highlightResult) { - try { - const matchedLine = - suggestion.text || suggestion.subcategory || suggestion.title; - const matchedWordResult = matchedLine.match( - new RegExp("<span.+span>\\w*", "g") - ); - if (matchedWordResult && matchedWordResult.length > 0) { - const tempDoc = document.createElement("div"); - tempDoc.innerHTML = matchedWordResult[0]; - wordToHighlight = tempDoc.textContent; - } - } catch (e) { - console.log(e); - } - } - - history.push(url, { - highlightState: { wordToHighlight }, - }); - }, - maxHits: options.maxHits, - }); - }; - - const pluginData = usePluginData("docusaurus-lunr-search"); - - const getSearchDoc = () => - process.env.NODE_ENV === "production" - ? fetch(`${assetUrl}${pluginData.fileNames.searchDoc}`).then((content) => - content.json() - ) - : Promise.resolve({}); - - const getLunrIndex = () => - process.env.NODE_ENV === "production" - ? fetch(`${assetUrl}${pluginData.fileNames.lunrIndex}`).then((content) => - content.json() - ) - : Promise.resolve([]); - - const loadAlgolia = () => { - if (!initialized.current) { - Promise.all([ - getSearchDoc(), - getLunrIndex(), - import("./DocSearch"), - import("./algolia.css"), - ]).then(([searchDocFile, searchIndex, { default: DocSearch }]) => { - const { searchDocs, options } = searchDocFile; - if (!searchDocs || searchDocs.length === 0) { - return; - } - initAlgolia(searchDocs, searchIndex, DocSearch, options); - setIndexReady(true); - }); - initialized.current = true; - } - }; - - const toggleSearchIconClick = useCallback( - (e) => { - if (!searchBarRef.current.contains(e.target)) { - searchBarRef.current.focus(); - } - - props.handleSearchBarToggle && - props.handleSearchBarToggle(!props.isSearchBarExpanded); - }, - [props.isSearchBarExpanded] - ); - - let placeholder; - if (isBrowser) { - loadAlgolia(); - placeholder = window.navigator.platform.startsWith("Mac") - ? "Rechercher ⌘+K" - : "Rechercher Ctrl+K"; - } - - // auto focus search bar on page load - useEffect(() => { - if (props.autoFocus && indexReady) { - searchBarRef.current.focus(); - } - }, [indexReady]); - - return ( - <div className="navbar__search" key="search-box"> - <span - aria-label="Aggrandir la barre de recherche" - role="button" - className={clsx("search-icon", { - "search-icon-hidden": props.isSearchBarExpanded, - })} - onClick={toggleSearchIconClick} - onKeyDown={toggleSearchIconClick} - tabIndex={0} - /> - <input - id="search_input_react" - type="search" - placeholder={indexReady ? placeholder : "Chargement..."} - aria-label="Rechercher" - className={clsx( - "navbar__search-input", - { "search-bar-expanded": props.isSearchBarExpanded }, - { "search-bar": !props.isSearchBarExpanded } - )} - onClick={loadAlgolia} - onMouseOver={loadAlgolia} - onFocus={toggleSearchIconClick} - onBlur={toggleSearchIconClick} - ref={searchBarRef} - disabled={!indexReady} - /> - <HighlightSearchResults /> - </div> - ); -}; - -export default Search; diff --git a/old/src/theme/SearchBar/lunar-search.js b/old/src/theme/SearchBar/lunar-search.js deleted file mode 100644 index 2419309..0000000 --- a/old/src/theme/SearchBar/lunar-search.js +++ /dev/null @@ -1,156 +0,0 @@ -/* -Aloglia DocSearch Adapter for Lunr.js -==================================== -Written by: Praveen N -github: praveenn77 -*/ - -import lunr from "@generated/lunr.client"; -lunr.tokenizer.separator = /[\s\-/]+/; - -class LunrSearchAdapter { - constructor(searchDocs, searchIndex, baseUrl = '/', maxHits) { - this.searchDocs = searchDocs; - this.lunrIndex = lunr.Index.load(searchIndex); - this.baseUrl = baseUrl; - this.maxHits = maxHits; - } - - getLunrResult(input) { - return this.lunrIndex.query(function (query) { - const tokens = lunr.tokenizer(input); - query.term(tokens, { - boost: 10 - }); - query.term(tokens, { - wildcard: lunr.Query.wildcard.TRAILING - }); - }); - } - - getHit(doc, formattedTitle, formattedContent) { - return { - hierarchy: { - lvl0: doc.pageTitle || doc.title, - lvl1: doc.type === 0 ? null : doc.title - }, - url: doc.url, - version: doc.version, - _snippetResult: formattedContent ? { - content: { - value: formattedContent, - matchLevel: "full" - } - } : null, - _highlightResult: { - hierarchy: { - lvl0: { - value: doc.type === 0 ? formattedTitle || doc.title : doc.pageTitle, - }, - lvl1: - doc.type === 0 - ? null - : { - value: formattedTitle || doc.title - } - } - } - }; - } - getTitleHit(doc, position, length) { - const start = position[0]; - const end = position[0] + length; - let formattedTitle = doc.title.substring(0, start) + '<span class="algolia-docsearch-suggestion--highlight">' + doc.title.substring(start, end) + '</span>' + doc.title.substring(end, doc.title.length); - return this.getHit(doc, formattedTitle) - } - - getKeywordHit(doc, position, length) { - const start = position[0]; - const end = position[0] + length; - let formattedTitle = doc.title + '<br /><i>Keywords: ' + doc.keywords.substring(0, start) + '<span class="algolia-docsearch-suggestion--highlight">' + doc.keywords.substring(start, end) + '</span>' + doc.keywords.substring(end, doc.keywords.length) + '</i>' - return this.getHit(doc, formattedTitle) - } - - getContentHit(doc, position) { - const start = position[0]; - const end = position[0] + position[1]; - let previewStart = start; - let previewEnd = end; - let ellipsesBefore = true; - let ellipsesAfter = true; - for (let k = 0; k < 3; k++) { - const nextSpace = doc.content.lastIndexOf(' ', previewStart - 2); - const nextDot = doc.content.lastIndexOf('.', previewStart - 2); - if ((nextDot > 0) && (nextDot > nextSpace)) { - previewStart = nextDot + 1; - ellipsesBefore = false; - break; - } - if (nextSpace < 0) { - previewStart = 0; - ellipsesBefore = false; - break; - } - previewStart = nextSpace + 1; - } - for (let k = 0; k < 10; k++) { - const nextSpace = doc.content.indexOf(' ', previewEnd + 1); - const nextDot = doc.content.indexOf('.', previewEnd + 1); - if ((nextDot > 0) && (nextDot < nextSpace)) { - previewEnd = nextDot; - ellipsesAfter = false; - break; - } - if (nextSpace < 0) { - previewEnd = doc.content.length; - ellipsesAfter = false; - break; - } - previewEnd = nextSpace; - } - let preview = doc.content.substring(previewStart, start); - if (ellipsesBefore) { - preview = '... ' + preview; - } - preview += '<span class="algolia-docsearch-suggestion--highlight">' + doc.content.substring(start, end) + '</span>'; - preview += doc.content.substring(end, previewEnd); - if (ellipsesAfter) { - preview += ' ...'; - } - return this.getHit(doc, null, preview); - - } - search(input) { - return new Promise((resolve, rej) => { - const results = this.getLunrResult(input); - const hits = []; - results.length > this.maxHits && (results.length = this.maxHits); - this.titleHitsRes = [] - this.contentHitsRes = [] - results.forEach(result => { - const doc = this.searchDocs[result.ref]; - const { metadata } = result.matchData; - for (let i in metadata) { - if (metadata[i].title) { - if (!this.titleHitsRes.includes(result.ref)) { - const position = metadata[i].title.position[0] - hits.push(this.getTitleHit(doc, position, input.length)); - this.titleHitsRes.push(result.ref); - } - } else if (metadata[i].content) { - const position = metadata[i].content.position[0] - hits.push(this.getContentHit(doc, position)) - } else if (metadata[i].keywords) { - const position = metadata[i].keywords.position[0] - hits.push(this.getKeywordHit(doc, position, input.length)); - this.titleHitsRes.push(result.ref); - } - } - }); - hits.length > this.maxHits && (hits.length = this.maxHits); - resolve(hits); - }); - } -} - -export default LunrSearchAdapter; diff --git a/old/src/theme/SearchBar/styles.css b/old/src/theme/SearchBar/styles.css deleted file mode 100644 index 047517e..0000000 --- a/old/src/theme/SearchBar/styles.css +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -.search-icon { - background-image: var(--ifm-navbar-search-input-icon); - height: auto; - width: 24px; - cursor: pointer; - padding: 8px; - line-height: 32px; - background-repeat: no-repeat; - background-position: center; - display: none; -} - -.search-icon-hidden { - visibility: hidden; -} - -@media (max-width: 360px) { - .search-bar { - width: 0 !important; - background: none !important; - padding: 0 !important; - transition: none !important; - } - - .search-bar-expanded { - width: 9rem !important; - } - - .search-icon { - display: inline; - vertical-align: sub; - } -} diff --git a/old/src/theme/SearchBar/templates.js b/old/src/theme/SearchBar/templates.js deleted file mode 100644 index 5a61f1a..0000000 --- a/old/src/theme/SearchBar/templates.js +++ /dev/null @@ -1,115 +0,0 @@ -const prefix = "algolia-docsearch"; -const suggestionPrefix = `${prefix}-suggestion`; -const footerPrefix = `${prefix}-footer`; - -/* eslint-disable max-len */ - -const templates = { - suggestion: ` - <a class="${suggestionPrefix} - {{#isCategoryHeader}}${suggestionPrefix}__main{{/isCategoryHeader}} - {{#isSubCategoryHeader}}${suggestionPrefix}__secondary{{/isSubCategoryHeader}} - " - aria-label="Lien vers le résultat" - href="{{{url}}}" - > - <div class="${suggestionPrefix}--category-header"> - <span class="${suggestionPrefix}--category-header-lvl0">{{{category}}}</span> - </div> - <div class="${suggestionPrefix}--wrapper"> - <div class="${suggestionPrefix}--subcategory-column"> - <span class="${suggestionPrefix}--subcategory-column-text">{{{subcategory}}}</span> - </div> - {{#isTextOrSubcategoryNonEmpty}} - <div class="${suggestionPrefix}--content"> - <div class="${suggestionPrefix}--subcategory-inline">{{{subcategory}}}</div> - <div class="${suggestionPrefix}--title">{{{title}}}</div> - {{#text}}<div class="${suggestionPrefix}--text">{{{text}}}</div>{{/text}} - {{#version}}<div class="${suggestionPrefix}--version">{{version}}</div>{{/version}} - </div> - {{/isTextOrSubcategoryNonEmpty}} - </div> - </a> - `, - suggestionSimple: ` - <div class="${suggestionPrefix} - {{#isCategoryHeader}}${suggestionPrefix}__main{{/isCategoryHeader}} - {{#isSubCategoryHeader}}${suggestionPrefix}__secondary{{/isSubCategoryHeader}} - suggestion-layout-simple - "> - <div class="${suggestionPrefix}--category-header"> - {{^isLvl0}} - <span class="${suggestionPrefix}--category-header-lvl0 ${suggestionPrefix}--category-header-item">{{{category}}}</span> - {{^isLvl1}} - {{^isLvl1EmptyOrDuplicate}} - <span class="${suggestionPrefix}--category-header-lvl1 ${suggestionPrefix}--category-header-item"> - {{{subcategory}}} - </span> - {{/isLvl1EmptyOrDuplicate}} - {{/isLvl1}} - {{/isLvl0}} - <div class="${suggestionPrefix}--title ${suggestionPrefix}--category-header-item"> - {{#isLvl2}} - {{{title}}} - {{/isLvl2}} - {{#isLvl1}} - {{{subcategory}}} - {{/isLvl1}} - {{#isLvl0}} - {{{category}}} - {{/isLvl0}} - </div> - </div> - <div class="${suggestionPrefix}--wrapper"> - {{#text}} - <div class="${suggestionPrefix}--content"> - <div class="${suggestionPrefix}--text">{{{text}}}</div> - </div> - {{/text}} - </div> - </div> - `, - footer: ` - <div class="${footerPrefix}"> - </div> - `, - empty: ` - <div class="${suggestionPrefix}"> - <div class="${suggestionPrefix}--wrapper"> - <div class="${suggestionPrefix}--content ${suggestionPrefix}--no-results"> - <div class="${suggestionPrefix}--title"> - <div class="${suggestionPrefix}--text"> - Aucun résultats pour la recherche <b>"{{query}}"</b> - </div> - </div> - </div> - </div> - </div> - `, - searchBox: ` - <form novalidate="novalidate" onsubmit="return false;" class="searchbox"> - <div role="search" class="searchbox__wrapper"> - <input id="docsearch" type="search" name="search" placeholder="Recherche dans la documentation" autocomplete="off" required="required" class="searchbox__input"/> - <button type="submit" title="Lancer la recherche" class="searchbox__submit" > - <svg width=12 height=12 role="img" aria-label="Recherche"> - <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sbx-icon-search-13"></use> - </svg> - </button> - <button type="reset" title="Réinitialiser la recherche" class="searchbox__reset hide"> - <svg width=12 height=12 role="img" aria-label="Reset"> - <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sbx-icon-clear-3"></use> - </svg> - </button> - </div> -</form> - -<div class="svg-icons" style="height: 0; width: 0; position: absolute; visibility: hidden"> - <svg xmlns="http://www.w3.org/2000/svg"> - <symbol id="sbx-icon-clear-3" viewBox="0 0 40 40"><path d="M16.228 20L1.886 5.657 0 3.772 3.772 0l1.885 1.886L20 16.228 34.343 1.886 36.228 0 40 3.772l-1.886 1.885L23.772 20l14.342 14.343L40 36.228 36.228 40l-1.885-1.886L20 23.772 5.657 38.114 3.772 40 0 36.228l1.886-1.885L16.228 20z" fill-rule="evenodd"></symbol> - <symbol id="sbx-icon-search-13" viewBox="0 0 40 40"><path d="M26.806 29.012a16.312 16.312 0 0 1-10.427 3.746C7.332 32.758 0 25.425 0 16.378 0 7.334 7.333 0 16.38 0c9.045 0 16.378 7.333 16.378 16.38 0 3.96-1.406 7.593-3.746 10.426L39.547 37.34c.607.608.61 1.59-.004 2.203a1.56 1.56 0 0 1-2.202.004L26.807 29.012zm-10.427.627c7.322 0 13.26-5.938 13.26-13.26 0-7.324-5.938-13.26-13.26-13.26-7.324 0-13.26 5.936-13.26 13.26 0 7.322 5.936 13.26 13.26 13.26z" fill-rule="evenodd"></symbol> - </svg> -</div> - `, -}; - -export default templates; diff --git a/old/src/theme/SearchBar/utils.js b/old/src/theme/SearchBar/utils.js deleted file mode 100644 index 0807500..0000000 --- a/old/src/theme/SearchBar/utils.js +++ /dev/null @@ -1,270 +0,0 @@ -import $ from "autocomplete.js/zepto"; - -const utils = { - /* - * Move the content of an object key one level higher. - * eg. - * { - * name: 'My name', - * hierarchy: { - * lvl0: 'Foo', - * lvl1: 'Bar' - * } - * } - * Will be converted to - * { - * name: 'My name', - * lvl0: 'Foo', - * lvl1: 'Bar' - * } - * @param {Object} object Main object - * @param {String} property Main object key to move up - * @return {Object} - * @throws Error when key is not an attribute of Object or is not an object itself - */ - mergeKeyWithParent(object, property) { - if (object[property] === undefined) { - return object; - } - if (typeof object[property] !== 'object') { - return object; - } - const newObject = $.extend({}, object, object[property]); - delete newObject[property]; - return newObject; - }, - /* - * Group all objects of a collection by the value of the specified attribute - * If the attribute is a string, use the lowercase form. - * - * eg. - * groupBy([ - * {name: 'Tim', category: 'dev'}, - * {name: 'Vincent', category: 'dev'}, - * {name: 'Ben', category: 'sales'}, - * {name: 'Jeremy', category: 'sales'}, - * {name: 'AlexS', category: 'dev'}, - * {name: 'AlexK', category: 'sales'} - * ], 'category'); - * => - * { - * 'devs': [ - * {name: 'Tim', category: 'dev'}, - * {name: 'Vincent', category: 'dev'}, - * {name: 'AlexS', category: 'dev'} - * ], - * 'sales': [ - * {name: 'Ben', category: 'sales'}, - * {name: 'Jeremy', category: 'sales'}, - * {name: 'AlexK', category: 'sales'} - * ] - * } - * @param {array} collection Array of objects to group - * @param {String} property The attribute on which apply the grouping - * @return {array} - * @throws Error when one of the element does not have the specified property - */ - groupBy(collection, property) { - const newCollection = {}; - $.each(collection, (index, item) => { - if (item[property] === undefined) { - throw new Error(`[groupBy]: Object has no key ${property}`); - } - let key = item[property]; - if (typeof key === 'string') { - key = key.toLowerCase(); - } - // fix #171 the given data type of docsearch hits might be conflict with the properties of the native Object, - // such as the constructor, so we need to do this check. - if (!Object.prototype.hasOwnProperty.call(newCollection, key)) { - newCollection[key] = []; - } - newCollection[key].push(item); - }); - return newCollection; - }, - /* - * Return an array of all the values of the specified object - * eg. - * values({ - * foo: 42, - * bar: true, - * baz: 'yep' - * }) - * => - * [42, true, yep] - * @param {object} object Object to extract values from - * @return {array} - */ - values(object) { - return Object.keys(object).map(key => object[key]); - }, - /* - * Flattens an array - * eg. - * flatten([1, 2, [3, 4], [5, 6]]) - * => - * [1, 2, 3, 4, 5, 6] - * @param {array} array Array to flatten - * @return {array} - */ - flatten(array) { - const results = []; - array.forEach(value => { - if (!Array.isArray(value)) { - results.push(value); - return; - } - value.forEach(subvalue => { - results.push(subvalue); - }); - }); - return results; - }, - /* - * Flatten all values of an object into an array, marking each first element of - * each group with a specific flag - * eg. - * flattenAndFlagFirst({ - * 'devs': [ - * {name: 'Tim', category: 'dev'}, - * {name: 'Vincent', category: 'dev'}, - * {name: 'AlexS', category: 'dev'} - * ], - * 'sales': [ - * {name: 'Ben', category: 'sales'}, - * {name: 'Jeremy', category: 'sales'}, - * {name: 'AlexK', category: 'sales'} - * ] - * , 'isTop'); - * => - * [ - * {name: 'Tim', category: 'dev', isTop: true}, - * {name: 'Vincent', category: 'dev', isTop: false}, - * {name: 'AlexS', category: 'dev', isTop: false}, - * {name: 'Ben', category: 'sales', isTop: true}, - * {name: 'Jeremy', category: 'sales', isTop: false}, - * {name: 'AlexK', category: 'sales', isTop: false} - * ] - * @param {object} object Object to flatten - * @param {string} flag Flag to set to true on first element of each group - * @return {array} - */ - flattenAndFlagFirst(object, flag) { - const values = this.values(object).map(collection => - collection.map((item, index) => { - // eslint-disable-next-line no-param-reassign - item[flag] = index === 0; - return item; - }) - ); - return this.flatten(values); - }, - /* - * Removes all empty strings, null, false and undefined elements array - * eg. - * compact([42, false, null, undefined, '', [], 'foo']); - * => - * [42, [], 'foo'] - * @param {array} array Array to compact - * @return {array} - */ - compact(array) { - const results = []; - array.forEach(value => { - if (!value) { - return; - } - results.push(value); - }); - return results; - }, - /* - * Returns the highlighted value of the specified key in the specified object. - * If no highlighted value is available, will return the key value directly - * eg. - * getHighlightedValue({ - * _highlightResult: { - * text: { - * value: '<mark>foo</mark>' - * } - * }, - * text: 'foo' - * }, 'text'); - * => - * '<mark>foo</mark>' - * @param {object} object Hit object returned by the Algolia API - * @param {string} property Object key to look for - * @return {string} - **/ - getHighlightedValue(object, property) { - if ( - object._highlightResult && - object._highlightResult.hierarchy_camel && - object._highlightResult.hierarchy_camel[property] && - object._highlightResult.hierarchy_camel[property].matchLevel && - object._highlightResult.hierarchy_camel[property].matchLevel !== 'none' && - object._highlightResult.hierarchy_camel[property].value - ) { - return object._highlightResult.hierarchy_camel[property].value; - } - if ( - object._highlightResult && - object._highlightResult && - object._highlightResult[property] && - object._highlightResult[property].value - ) { - return object._highlightResult[property].value; - } - return object[property]; - }, - /* - * Returns the snippeted value of the specified key in the specified object. - * If no highlighted value is available, will return the key value directly. - * Will add starting and ending ellipsis (…) if we detect that a sentence is - * incomplete - * eg. - * getSnippetedValue({ - * _snippetResult: { - * text: { - * value: '<mark>This is an unfinished sentence</mark>' - * } - * }, - * text: 'This is an unfinished sentence' - * }, 'text'); - * => - * '<mark>This is an unfinished sentence</mark>…' - * @param {object} object Hit object returned by the Algolia API - * @param {string} property Object key to look for - * @return {string} - **/ - getSnippetedValue(object, property) { - if ( - !object._snippetResult || - !object._snippetResult[property] || - !object._snippetResult[property].value - ) { - return object[property]; - } - let snippet = object._snippetResult[property].value; - - if (snippet[0] !== snippet[0].toUpperCase()) { - snippet = `…${snippet}`; - } - if (['.', '!', '?'].indexOf(snippet[snippet.length - 1]) === -1) { - snippet = `${snippet}…`; - } - return snippet; - }, - /* - * Deep clone an object. - * Note: This will not clone functions and dates - * @param {object} object Object to clone - * @return {object} - */ - deepClone(object) { - return JSON.parse(JSON.stringify(object)); - }, -}; - -export default utils; diff --git a/old/src/theme/Tabs/index.tsx b/old/src/theme/Tabs/index.tsx deleted file mode 100644 index bf760fe..0000000 --- a/old/src/theme/Tabs/index.tsx +++ /dev/null @@ -1,188 +0,0 @@ -import type { TabItemProps } from "@docusaurus/theme-common/internal"; -import type { ReactElement } from "react"; -import type { Props } from "@theme/Tabs"; - -import { - useScrollPositionBlocker, - sanitizeTabsChildren, - useTabs, -} from "@docusaurus/theme-common/internal"; - -import useIsBrowser from "@docusaurus/useIsBrowser"; -import { cloneElement, useRef } from "react"; -import styles from "./styles.module.css"; -import clsx from "clsx"; - -const TabList = ({ - className, - block, - selectedValue, - selectValue, - tabValues, -}: Props & ReturnType<typeof useTabs>) => { - const tabsHolderRef = useRef<HTMLDivElement | null>(null); - const tabRefs: (HTMLLIElement | null)[] = []; - const { blockElementScrollPositionUntilNextRender } = - useScrollPositionBlocker(); - - const scrollIntoTab = (tab: HTMLLIElement) => { - const tabsHolder = tabsHolderRef.current; - if (!tabsHolder) return; - - const { offsetLeft, offsetWidth } = tab; - - const tabLeft = offsetLeft - tabsHolder.offsetLeft; - const scrollLeft = tabsHolder.scrollLeft; - - const tabRight = tabLeft + offsetWidth; - const scrollRight = scrollLeft + tabsHolder.offsetWidth; - - const paddingWidth = 16; - const spaceBetweenTabs = 8; - - const scrollOptions = { - left: tabLeft + paddingWidth - spaceBetweenTabs, - right: - tabRight - tabsHolder.offsetWidth + paddingWidth + spaceBetweenTabs, - }; - - if (tabLeft < scrollLeft || tabRight > scrollRight) { - tabsHolder.scrollTo({ - left: tabLeft < scrollLeft ? scrollOptions.left : scrollOptions.right, - behavior: "smooth", - }); - } - }; - - const handleTabChange = ( - event: - | React.FocusEvent<HTMLLIElement> - | React.MouseEvent<HTMLLIElement> - | React.KeyboardEvent<HTMLLIElement> - ) => { - const newTab = event.currentTarget; - const newTabIndex = tabRefs.indexOf(newTab); - const newTabValue = tabValues[newTabIndex]!.value; - - if (newTabValue !== selectedValue) { - blockElementScrollPositionUntilNextRender(newTab); - selectValue(newTabValue); - scrollIntoTab(newTab); - } - }; - - const handleKeydown = (event: React.KeyboardEvent<HTMLLIElement>) => { - let focusElement: HTMLLIElement | null = null; - - switch (event.key) { - case "Enter": { - handleTabChange(event); - break; - } - case "ArrowRight": { - const nextTab = tabRefs.indexOf(event.currentTarget) + 1; - focusElement = tabRefs[nextTab] ?? tabRefs[0]!; - break; - } - case "ArrowLeft": { - const prevTab = tabRefs.indexOf(event.currentTarget) - 1; - focusElement = tabRefs[prevTab] ?? tabRefs[tabRefs.length - 1]!; - break; - } - default: - break; - } - - focusElement?.focus(); - }; - - return ( - <div - className="tabs-holder -mb-4 max-w-full overflow-auto" - ref={tabsHolderRef} - > - <ul - role="tablist" - aria-orientation="horizontal" - className={clsx("w-max tabs", { "tabs--block": block }, className)} - > - {tabValues.map(({ value, label, attributes }) => ( - <li - role="tab" - tabIndex={selectedValue === value ? 0 : -1} - aria-selected={selectedValue === value} - key={value} - ref={(tabControl) => tabRefs.push(tabControl)} - onKeyDown={handleKeydown} - onClick={handleTabChange} - {...attributes} - className={clsx( - "tabs__item", - styles.tabItem, - attributes?.className as string, - { "tabs__item--active": selectedValue === value } - )} - > - {label ?? value} - </li> - ))} - </ul> - </div> - ); -}; - -const TabContent = ({ - lazy, - children, - selectedValue, -}: Props & ReturnType<typeof useTabs>) => { - const childTabs = (Array.isArray(children) ? children : [children]).filter( - Boolean - ) as ReactElement<TabItemProps>[]; - if (lazy) { - const selectedTabItem = childTabs.find( - (tabItem) => tabItem.props.value === selectedValue - ); - if (!selectedTabItem) { - // fail-safe or fail-fast? not sure what's best here - return null; - } - return cloneElement(selectedTabItem, { className: "margin-top--md" }); - } - return ( - <div className="tab-content"> - {childTabs.map((tabItem, i) => - cloneElement(tabItem, { - key: i, - hidden: tabItem.props.value !== selectedValue, - }) - )} - </div> - ); -}; - -const TabsComponent = (props: Props): JSX.Element => { - const tabs = useTabs(props); - return ( - <div className={clsx("tabs-container", styles.tabList)}> - <TabList {...tabs} {...props} /> - <TabContent {...tabs} {...props} /> - </div> - ); -}; - -const Tabs = (props: Props): JSX.Element => { - const isBrowser = useIsBrowser(); - return ( - <TabsComponent - // Remount tabs after hydration - // Temporary fix for https://github.com/facebook/docusaurus/issues/5653 - key={String(isBrowser)} - {...props} - > - {sanitizeTabsChildren(props.children)} - </TabsComponent> - ); -}; - -export default Tabs; diff --git a/old/src/theme/Tabs/styles.module.css b/old/src/theme/Tabs/styles.module.css deleted file mode 100644 index 6d264fa..0000000 --- a/old/src/theme/Tabs/styles.module.css +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -.tabList { - margin-bottom: var(--ifm-leading); -} - -.tabItem { - margin-top: 0 !important; -} diff --git a/old/src/theme/Tag/index.tsx b/old/src/theme/Tag/index.tsx deleted file mode 100644 index 5f7cc1e..0000000 --- a/old/src/theme/Tag/index.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import type { Props } from "@theme/Tag"; - -import Link from "@docusaurus/Link"; - -const Tag = ({ permalink, label, count, description }: Props) => { - const getCountString = () => { - if (count > 1) return `(${count} références)`; - return `(${count} référence)`; - }; - - return ( - <Link - href={permalink} - title={description} - className="px-2 py-1 inline-flex gap-2 hover:no-underline rounded-full bg-violet-50 dark:bg-violet-800" - > - {label} - {count && <span className="italic">{getCountString()}</span>} - </Link> - ); -}; - -export default Tag; diff --git a/old/src/theme/TagsListByLetter/index.tsx b/old/src/theme/TagsListByLetter/index.tsx deleted file mode 100644 index f6d13fb..0000000 --- a/old/src/theme/TagsListByLetter/index.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import type { TagLetterEntry } from "@docusaurus/theme-common"; -import type { Props } from "@theme/TagsListByLetter"; - -import { listTagsByLetters } from "@docusaurus/theme-common"; -import Heading from "@theme/Heading"; -import Tag from "@theme/Tag"; - -const TagLetterEntryItem = ({ - letterEntry, -}: { - letterEntry: TagLetterEntry; -}) => { - return ( - <article> - <Heading - as="h2" - id={letterEntry.letter} - className="mb-2 font-bold text-xl" - > - {letterEntry.letter} - </Heading> - - <ul className="flex flex-wrap gap-2 ml-4"> - {letterEntry.tags.map((tag) => ( - <li key={tag.permalink}> - <Tag {...tag} /> - </li> - ))} - </ul> - </article> - ); -}; - -const TagsListByLetter = ({ tags }: Props): JSX.Element => { - const letterList = listTagsByLetters(tags); - - return ( - <section className="flex flex-col gap-4"> - {letterList.map((letterEntry) => ( - <TagLetterEntryItem - key={letterEntry.letter} - letterEntry={letterEntry} - /> - ))} - </section> - ); -}; - -export default TagsListByLetter; diff --git a/old/src/theme/TagsListByLetter/styles.module.css b/old/src/theme/TagsListByLetter/styles.module.css deleted file mode 100644 index bb3203e..0000000 --- a/old/src/theme/TagsListByLetter/styles.module.css +++ /dev/null @@ -1,11 +0,0 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -.tag { - display: inline-block; - margin: 0.5rem 0.5rem 0 1rem; -} diff --git a/old/src/theme/TagsListInline/index.tsx b/old/src/theme/TagsListInline/index.tsx deleted file mode 100644 index 40c9e9d..0000000 --- a/old/src/theme/TagsListInline/index.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import type { Props } from "@theme/TagsListInline"; - -import Tag from "@theme/Tag"; - -export default function TagsListInline({ tags }: Props): JSX.Element { - return ( - <ul className="flex flex-wrap gap-2 mb-4"> - {tags.map((tag) => ( - <li - key={tag.permalink} - className="transition-colors rounded-md text-sm" - > - <Tag {...tag} /> - </li> - ))} - </ul> - ); -} diff --git a/old/static/.nojekyll b/old/static/.nojekyll deleted file mode 100644 index e69de29..0000000 diff --git a/old/static/design_patterns/mvc.svg b/old/static/design_patterns/mvc.svg deleted file mode 100644 index 3f56f58..0000000 --- a/old/static/design_patterns/mvc.svg +++ /dev/null @@ -1 +0,0 @@ -<svg aria-roledescription="sequence" role="graphics-document document" viewBox="-50 -10 1455 697" style="max-width: 1455px;" xmlns="http://www.w3.org/2000/svg" width="100%" id="__mermaid_0"><g><rect class="rect" height="676" width="849" stroke="rgb(0,0,0, 0.5)" fill="Purple" y="0" x="296"></rect><text class="text" alignment-baseline="central" dominant-baseline="central" style="text-anchor: middle; font-size: 16px; font-weight: 400;" y="9.5" x="720.5"><tspan dy="0" x="720.5">Serveur</tspan></text></g><g><rect class="rect" height="676" width="160" stroke="rgb(0,0,0, 0.5)" fill="Green" y="0" x="0"></rect><text class="text" alignment-baseline="central" dominant-baseline="central" style="text-anchor: middle; font-size: 16px; font-weight: 400;" y="9.5" x="80"><tspan dy="0" x="80">Navigateur</tspan></text></g><g><rect class="actor actor-bottom" ry="3" rx="3" name="Base de données" height="65" width="150" stroke="#666" fill="#eaeaea" y="601" x="1205"></rect><text class="actor" alignment-baseline="central" dominant-baseline="central" style="text-anchor: middle; font-size: 16px; font-weight: 400;" y="633.5" x="1280"><tspan dy="0" x="1280">Base de données</tspan></text></g><g><rect class="actor actor-bottom" ry="3" rx="3" name="Vue" height="65" width="150" stroke="#666" fill="#eaeaea" y="601" x="990"></rect><text class="actor" alignment-baseline="central" dominant-baseline="central" style="text-anchor: middle; font-size: 16px; font-weight: 400;" y="633.5" x="1065"><tspan dy="0" x="1065">Vue</tspan></text></g><g><rect class="actor actor-bottom" ry="3" rx="3" name="Modèle" height="65" width="150" stroke="#666" fill="#eaeaea" y="601" x="790"></rect><text class="actor" alignment-baseline="central" dominant-baseline="central" style="text-anchor: middle; font-size: 16px; font-weight: 400;" y="633.5" x="865"><tspan dy="0" x="865">Modèle</tspan></text></g><g><rect class="actor actor-bottom" ry="3" rx="3" name="Contrôleur" height="65" width="150" stroke="#666" fill="#eaeaea" y="601" x="562"></rect><text class="actor" alignment-baseline="central" dominant-baseline="central" style="text-anchor: middle; font-size: 16px; font-weight: 400;" y="633.5" x="637"><tspan dy="0" x="637">Contrôleur</tspan></text></g><g><rect class="actor actor-bottom" ry="3" rx="3" name="Routeur" height="65" width="150" stroke="#666" fill="#eaeaea" y="601" x="301"></rect><text class="actor" alignment-baseline="central" dominant-baseline="central" style="text-anchor: middle; font-size: 16px; font-weight: 400;" y="633.5" x="376"><tspan dy="0" x="376">Routeur</tspan></text></g><g><line stroke="#999" stroke-width="0.5px" class="200" y2="601" x2="1280" y1="34" x1="1280" id="actor5"></line><g id="root-5"><rect class="actor actor-top" ry="3" rx="3" name="Base de données" height="65" width="150" stroke="#666" fill="#eaeaea" y="29" x="1205"></rect><text class="actor" alignment-baseline="central" dominant-baseline="central" style="text-anchor: middle; font-size: 16px; font-weight: 400;" y="61.5" x="1280"><tspan dy="0" x="1280">Base de données</tspan></text></g></g><g><line stroke="#999" stroke-width="0.5px" class="200" y2="601" x2="1065" y1="34" x1="1065" id="actor4"></line><g id="root-4"><rect class="actor actor-top" ry="3" rx="3" name="Vue" height="65" width="150" stroke="#666" fill="#eaeaea" y="29" x="990"></rect><text class="actor" alignment-baseline="central" dominant-baseline="central" style="text-anchor: middle; font-size: 16px; font-weight: 400;" y="61.5" x="1065"><tspan dy="0" x="1065">Vue</tspan></text></g></g><g><line stroke="#999" stroke-width="0.5px" class="200" y2="601" x2="865" y1="34" x1="865" id="actor3"></line><g id="root-3"><rect class="actor actor-top" ry="3" rx="3" name="Modèle" height="65" width="150" stroke="#666" fill="#eaeaea" y="29" x="790"></rect><text class="actor" alignment-baseline="central" dominant-baseline="central" style="text-anchor: middle; font-size: 16px; font-weight: 400;" y="61.5" x="865"><tspan dy="0" x="865">Modèle</tspan></text></g></g><g><line stroke="#999" stroke-width="0.5px" class="200" y2="601" x2="637" y1="34" x1="637" id="actor2"></line><g id="root-2"><rect class="actor actor-top" ry="3" rx="3" name="Contrôleur" height="65" width="150" stroke="#666" fill="#eaeaea" y="29" x="562"></rect><text class="actor" alignment-baseline="central" dominant-baseline="central" style="text-anchor: middle; font-size: 16px; font-weight: 400;" y="61.5" x="637"><tspan dy="0" x="637">Contrôleur</tspan></text></g></g><g><line stroke="#999" stroke-width="0.5px" class="200" y2="601" x2="376" y1="34" x1="376" id="actor1"></line><g id="root-1"><rect class="actor actor-top" ry="3" rx="3" name="Routeur" height="65" width="150" stroke="#666" fill="#eaeaea" y="29" x="301"></rect><text class="actor" alignment-baseline="central" dominant-baseline="central" style="text-anchor: middle; font-size: 16px; font-weight: 400;" y="61.5" x="376"><tspan dy="0" x="376">Routeur</tspan></text></g></g><style>#__mermaid_0{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#__mermaid_0 .error-icon{fill:#552222;}#__mermaid_0 .error-text{fill:#552222;stroke:#552222;}#__mermaid_0 .edge-thickness-normal{stroke-width:2px;}#__mermaid_0 .edge-thickness-thick{stroke-width:3.5px;}#__mermaid_0 .edge-pattern-solid{stroke-dasharray:0;}#__mermaid_0 .edge-pattern-dashed{stroke-dasharray:3;}#__mermaid_0 .edge-pattern-dotted{stroke-dasharray:2;}#__mermaid_0 .marker{fill:#333333;stroke:#333333;}#__mermaid_0 .marker.cross{stroke:#333333;}#__mermaid_0 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#__mermaid_0 .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#__mermaid_0 text.actor>tspan{fill:black;stroke:none;}#__mermaid_0 .actor-line{stroke:grey;}#__mermaid_0 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#__mermaid_0 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#__mermaid_0 #arrowhead path{fill:#333;stroke:#333;}#__mermaid_0 .sequenceNumber{fill:white;}#__mermaid_0 #sequencenumber{fill:#333;}#__mermaid_0 #crosshead path{fill:#333;stroke:#333;}#__mermaid_0 .messageText{fill:#333;stroke:none;}#__mermaid_0 .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#__mermaid_0 .labelText,#__mermaid_0 .labelText>tspan{fill:black;stroke:none;}#__mermaid_0 .loopText,#__mermaid_0 .loopText>tspan{fill:black;stroke:none;}#__mermaid_0 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#__mermaid_0 .note{stroke:#aaaa33;fill:#fff5ad;}#__mermaid_0 .noteText,#__mermaid_0 .noteText>tspan{fill:black;stroke:none;}#__mermaid_0 .activation0{fill:#f4f4f4;stroke:#666;}#__mermaid_0 .activation1{fill:#f4f4f4;stroke:#666;}#__mermaid_0 .activation2{fill:#f4f4f4;stroke:#666;}#__mermaid_0 .actorPopupMenu{position:absolute;}#__mermaid_0 .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#__mermaid_0 .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#__mermaid_0 .actor-man circle,#__mermaid_0 line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#__mermaid_0 .node circle,#__mermaid_0 .node ellipse,#__mermaid_0 .node path,#__mermaid_0 .node polygon,#__mermaid_0 .node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color);}#__mermaid_0 marker{fill:var(--md-mermaid-edge-color)!important;}#__mermaid_0 .edgeLabel .label rect{fill:#0000;}#__mermaid_0 .label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family);}#__mermaid_0 .label foreignObject{line-height:normal;overflow:visible;}#__mermaid_0 .label div .edgeLabel{color:var(--md-mermaid-label-fg-color);}#__mermaid_0 .edgeLabel,#__mermaid_0 .edgeLabel rect,#__mermaid_0 .label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color);}#__mermaid_0 .edgeLabel,#__mermaid_0 .edgeLabel rect{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color);}#__mermaid_0 .edgePath .path,#__mermaid_0 .flowchart-link{stroke:var(--md-mermaid-edge-color);stroke-width:.05rem;}#__mermaid_0 .edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none;}#__mermaid_0 .cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter);}#__mermaid_0 .cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family);}#__mermaid_0 g #flowchart-circleEnd,#__mermaid_0 g #flowchart-circleStart,#__mermaid_0 g #flowchart-crossEnd,#__mermaid_0 g #flowchart-crossStart,#__mermaid_0 g #flowchart-pointEnd,#__mermaid_0 g #flowchart-pointStart{stroke:none;}#__mermaid_0 g.classGroup line,#__mermaid_0 g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color);}#__mermaid_0 g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family);}#__mermaid_0 .classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1;}#__mermaid_0 .classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family);}#__mermaid_0 .node .divider{stroke:var(--md-mermaid-node-fg-color);}#__mermaid_0 .relation{stroke:var(--md-mermaid-edge-color);}#__mermaid_0 .cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family);}#__mermaid_0 .cardinality text{fill:inherit!important;}#__mermaid_0 defs #classDiagram-compositionEnd,#__mermaid_0 defs #classDiagram-compositionStart,#__mermaid_0 defs #classDiagram-dependencyEnd,#__mermaid_0 defs #classDiagram-dependencyStart,#__mermaid_0 defs #classDiagram-extensionEnd,#__mermaid_0 defs #classDiagram-extensionStart{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important;}#__mermaid_0 defs #classDiagram-aggregationEnd,#__mermaid_0 defs #classDiagram-aggregationStart{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important;}#__mermaid_0 g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color);}#__mermaid_0 g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family);}#__mermaid_0 g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color);}#__mermaid_0 .nodeLabel,#__mermaid_0 .nodeLabel p{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family);}#__mermaid_0 .node circle.state-end,#__mermaid_0 .node circle.state-start,#__mermaid_0 .start-state{fill:var(--md-mermaid-edge-color);stroke:none;}#__mermaid_0 .end-state-inner,#__mermaid_0 .end-state-outer{fill:var(--md-mermaid-edge-color);}#__mermaid_0 .end-state-inner,#__mermaid_0 .node circle.state-end{stroke:var(--md-mermaid-label-bg-color);}#__mermaid_0 .transition{stroke:var(--md-mermaid-edge-color);}#__mermaid_0 [id^=state-fork] rect,#__mermaid_0 [id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important;}#__mermaid_0 .statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color);}#__mermaid_0 .statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color);}#__mermaid_0 .statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter);}#__mermaid_0 defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color);}#__mermaid_0 .attributeBoxEven,#__mermaid_0 .attributeBoxOdd{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color);}#__mermaid_0 .entityBox{fill:var(--md-mermaid-label-bg-color);stroke:var(--md-mermaid-node-fg-color);}#__mermaid_0 .entityLabel{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family);}#__mermaid_0 .relationshipLabelBox{fill:var(--md-mermaid-label-bg-color);fill-opacity:1;background-color:var(--md-mermaid-label-bg-color);opacity:1;}#__mermaid_0 .relationshipLabel{fill:var(--md-mermaid-label-fg-color);}#__mermaid_0 .relationshipLine{stroke:var(--md-mermaid-edge-color);}#__mermaid_0 defs #ONE_OR_MORE_END *,#__mermaid_0 defs #ONE_OR_MORE_START *,#__mermaid_0 defs #ONLY_ONE_END *,#__mermaid_0 defs #ONLY_ONE_START *,#__mermaid_0 defs #ZERO_OR_MORE_END *,#__mermaid_0 defs #ZERO_OR_MORE_START *,#__mermaid_0 defs #ZERO_OR_ONE_END *,#__mermaid_0 defs #ZERO_OR_ONE_START *{stroke:var(--md-mermaid-edge-color)!important;}#__mermaid_0 defs #ZERO_OR_MORE_END circle,#__mermaid_0 defs #ZERO_OR_MORE_START circle{fill:var(--md-mermaid-label-bg-color);}#__mermaid_0 .actor{fill:var(--md-mermaid-sequence-actor-bg-color);stroke:var(--md-mermaid-sequence-actor-border-color);}#__mermaid_0 text.actor>tspan{fill:var(--md-mermaid-sequence-actor-fg-color);font-family:var(--md-mermaid-font-family);}#__mermaid_0 line{stroke:var(--md-mermaid-sequence-actor-line-color);}#__mermaid_0 .actor-man circle,#__mermaid_0 .actor-man line{fill:var(--md-mermaid-sequence-actorman-bg-color);stroke:var(--md-mermaid-sequence-actorman-line-color);}#__mermaid_0 .messageLine0,#__mermaid_0 .messageLine1{stroke:var(--md-mermaid-sequence-message-line-color);}#__mermaid_0 .note{fill:var(--md-mermaid-sequence-note-bg-color);stroke:var(--md-mermaid-sequence-note-border-color);}#__mermaid_0 .loopText,#__mermaid_0 .loopText>tspan,#__mermaid_0 .messageText,#__mermaid_0 .noteText>tspan{stroke:none;font-family:var(--md-mermaid-font-family)!important;}#__mermaid_0 .messageText{fill:var(--md-mermaid-sequence-message-fg-color);}#__mermaid_0 .loopText,#__mermaid_0 .loopText>tspan{fill:var(--md-mermaid-sequence-loop-fg-color);}#__mermaid_0 .noteText>tspan{fill:var(--md-mermaid-sequence-note-fg-color);}#__mermaid_0 #arrowhead path{fill:var(--md-mermaid-sequence-message-line-color);stroke:none;}#__mermaid_0 .loopLine{fill:var(--md-mermaid-sequence-loop-bg-color);stroke:var(--md-mermaid-sequence-loop-border-color);}#__mermaid_0 .labelBox{fill:var(--md-mermaid-sequence-label-bg-color);stroke:none;}#__mermaid_0 .labelText,#__mermaid_0 .labelText>span{fill:var(--md-mermaid-sequence-label-fg-color);font-family:var(--md-mermaid-font-family);}#__mermaid_0 .sequenceNumber{fill:var(--md-mermaid-sequence-number-fg-color);}#__mermaid_0 rect.rect{fill:var(--md-mermaid-sequence-box-bg-color);stroke:none;}#__mermaid_0 rect.rect+text.text{fill:var(--md-mermaid-sequence-box-fg-color);}#__mermaid_0 defs #sequencenumber{fill:var(--md-mermaid-sequence-number-bg-color)!important;}#__mermaid_0 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g></g><defs><symbol height="24" width="24" id="computer"><path d="M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z" transform="scale(.5)"></path></symbol></defs><defs><symbol clip-rule="evenodd" fill-rule="evenodd" id="database"><path d="M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z" transform="scale(.5)"></path></symbol></defs><defs><symbol height="24" width="24" id="clock"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z" transform="scale(.5)"></path></symbol></defs><defs><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="7.9" id="arrowhead"><path d="M 0 0 L 10 5 L 0 10 z"></path></marker></defs><defs><marker refY="4.5" refX="4" orient="auto" markerHeight="8" markerWidth="15" id="crosshead"><path d="M 1,2 L 6,7 M 6,2 L 1,7" stroke-width="1pt" style="stroke-dasharray: 0px, 0px;" stroke="#000000" fill="none"></path></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="15.5" id="filled-head"><path d="M 18,7 L9,13 L14,7 L9,1 Z"></path></marker></defs><defs><marker orient="auto" markerHeight="40" markerWidth="60" refY="15" refX="15" id="sequencenumber"><circle r="6" cy="15" cx="15"></circle></marker></defs><g><line class="loopLine" y2="200" x2="1291" y1="200" x1="626"></line><line class="loopLine" y2="437" x2="1291" y1="200" x1="1291"></line><line class="loopLine" y2="437" x2="1291" y1="437" x1="626"></line><line class="loopLine" y2="437" x2="626" y1="200" x1="626"></line><polygon class="labelBox" points="626,200 676,200 676,213 667.6,220 626,220"></polygon><text class="labelText" style="font-size: 16px; font-weight: 400;" alignment-baseline="middle" dominant-baseline="middle" text-anchor="middle" y="213" x="651">alt</text><text class="loopText" style="font-size: 16px; font-weight: 400;" text-anchor="middle" y="218" x="983.5"><tspan x="983.5">[Si des données sont nécessaires]</tspan></text></g><line stroke="#999" stroke-width="0.5px" class="200" y2="601" x2="80" y1="109" x1="80" id="actor0"></line><g name="Utilisateur" class="actor-man actor-top"><line y2="74" x2="80" y1="54" x1="80" id="actor-man-torso0"></line><line y2="62" x2="98" y1="62" x1="62" id="actor-man-arms0"></line><line y2="74" x2="80" y1="89" x1="62"></line><line y2="89" x2="96" y1="74" x1="80"></line><circle height="65" width="150" r="15" cy="39" cx="80"></circle><text class="actor" alignment-baseline="central" dominant-baseline="central" style="text-anchor: middle; font-size: 16px; font-weight: 400;" y="96.5" x="80"><tspan dy="0" x="80">Utilisateur</tspan></text></g><text dy="1em" class="messageText" style="font-size: 16px; font-weight: 400;" alignment-baseline="middle" dominant-baseline="middle" text-anchor="middle" y="109" x="227">Je veux voir la page d'accueil</text><line marker-start="url(#sequencenumber)" marker-end="url(#arrowhead)" style="fill: none;" stroke="none" stroke-width="2" class="messageLine0" y2="142" x2="372" y1="142" x1="81"></line><text class="sequenceNumber" text-anchor="middle" font-size="12px" font-family="sans-serif" y="146" x="81">1</text><text dy="1em" class="messageText" style="font-size: 16px; font-weight: 400;" alignment-baseline="middle" dominant-baseline="middle" text-anchor="middle" y="157" x="505">Appelle la méthode `home`</text><line marker-start="url(#sequencenumber)" marker-end="url(#arrowhead)" style="fill: none;" stroke="none" stroke-width="2" class="messageLine0" y2="190" x2="633" y1="190" x1="377"></line><text class="sequenceNumber" text-anchor="middle" font-size="12px" font-family="sans-serif" y="194" x="377">2</text><text dy="1em" class="messageText" style="font-size: 16px; font-weight: 400;" alignment-baseline="middle" dominant-baseline="middle" text-anchor="middle" y="250" x="750">Demande les données</text><line marker-start="url(#sequencenumber)" marker-end="url(#arrowhead)" style="fill: none;" stroke="none" stroke-width="2" class="messageLine0" y2="283" x2="861" y1="283" x1="638"></line><text class="sequenceNumber" text-anchor="middle" font-size="12px" font-family="sans-serif" y="287" x="638">3</text><text dy="1em" class="messageText" style="font-size: 16px; font-weight: 400;" alignment-baseline="middle" dominant-baseline="middle" text-anchor="middle" y="298" x="1071">Récupère les données</text><line marker-start="url(#sequencenumber)" marker-end="url(#arrowhead)" style="fill: none;" stroke="none" stroke-width="2" class="messageLine0" y2="331" x2="1276" y1="331" x1="866"></line><text class="sequenceNumber" text-anchor="middle" font-size="12px" font-family="sans-serif" y="335" x="866">4</text><text dy="1em" class="messageText" style="font-size: 16px; font-weight: 400;" alignment-baseline="middle" dominant-baseline="middle" text-anchor="middle" y="346" x="1074">Retourne les données</text><line marker-start="url(#sequencenumber)" marker-end="url(#arrowhead)" stroke="none" stroke-width="2" class="messageLine1" style="stroke-dasharray: 3px, 3px; fill: none;" y2="379" x2="869" y1="379" x1="1279"></line><text class="sequenceNumber" text-anchor="middle" font-size="12px" font-family="sans-serif" y="383" x="1279">5</text><text dy="1em" class="messageText" style="font-size: 16px; font-weight: 400;" alignment-baseline="middle" dominant-baseline="middle" text-anchor="middle" y="394" x="753">Retourne les données</text><line marker-start="url(#sequencenumber)" marker-end="url(#arrowhead)" stroke="none" stroke-width="2" class="messageLine1" style="stroke-dasharray: 3px, 3px; fill: none;" y2="427" x2="641" y1="427" x1="864"></line><text class="sequenceNumber" text-anchor="middle" font-size="12px" font-family="sans-serif" y="431" x="864">6</text><text dy="1em" class="messageText" style="font-size: 16px; font-weight: 400;" alignment-baseline="middle" dominant-baseline="middle" text-anchor="middle" y="452" x="850">Demande le HTML</text><line marker-start="url(#sequencenumber)" marker-end="url(#arrowhead)" style="fill: none;" stroke="none" stroke-width="2" class="messageLine0" y2="485" x2="1061" y1="485" x1="638"></line><text class="sequenceNumber" text-anchor="middle" font-size="12px" font-family="sans-serif" y="489" x="638">7</text><text dy="1em" class="messageText" style="font-size: 16px; font-weight: 400;" alignment-baseline="middle" dominant-baseline="middle" text-anchor="middle" y="500" x="853">Retourne le HTML généré</text><line marker-start="url(#sequencenumber)" marker-end="url(#arrowhead)" stroke="none" stroke-width="2" class="messageLine1" style="stroke-dasharray: 3px, 3px; fill: none;" y2="533" x2="641" y1="533" x1="1064"></line><text class="sequenceNumber" text-anchor="middle" font-size="12px" font-family="sans-serif" y="537" x="1064">8</text><text dy="1em" class="messageText" style="font-size: 16px; font-weight: 400;" alignment-baseline="middle" dominant-baseline="middle" text-anchor="middle" y="548" x="360">Retourne le HTML généré</text><line marker-start="url(#sequencenumber)" marker-end="url(#arrowhead)" style="fill: none;" stroke="none" stroke-width="2" class="messageLine0" y2="581" x2="84" y1="581" x1="636"></line><text class="sequenceNumber" text-anchor="middle" font-size="12px" font-family="sans-serif" y="585" x="636">9</text><g name="Utilisateur" class="actor-man actor-bottom"><line y2="646" x2="80" y1="626" x1="80" id="actor-man-torso5"></line><line y2="634" x2="98" y1="634" x1="62" id="actor-man-arms5"></line><line y2="646" x2="80" y1="661" x1="62"></line><line y2="661" x2="96" y1="646" x1="80"></line><circle height="65" width="150" r="15" cy="611" cx="80"></circle><text class="actor" alignment-baseline="central" dominant-baseline="central" style="text-anchor: middle; font-size: 16px; font-weight: 400;" y="668.5" x="80"><tspan dy="0" x="80">Utilisateur</tspan></text></g></svg> \ No newline at end of file diff --git a/old/static/fonts/Luciole/Luciole-Bold-Italic.ttf b/old/static/fonts/Luciole/Luciole-Bold-Italic.ttf deleted file mode 100644 index 7926c7be33a45901bf892b69755f38af122a99e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171528 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 N>Ifu{*Y`NR_<#NFtR4UW diff --git a/old/static/fonts/Luciole/Luciole-Bold.ttf b/old/static/fonts/Luciole/Luciole-Bold.ttf deleted file mode 100644 index 2a0f075779481f2f5d4b6fa22eaa18240bbde17a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166076 zcmeFadwf*Y)i=KPIdji-GMULFlgnH(Nytn>NFWIiU<e^Zf*24n0Yt)0Q9(eofQX2Q zh<K?Y;<bv@3soFI6z^!QMIUR`TB`^ZeOe!@woe~xt*vD8e%C(d%uF&fA@%k5dEP&M z=*~HF&OT?az1G@muiM^-amJVxe{?Ln<;>G2;TLDpmM3sDP3kz~%q^ZRJ&eC?Vr=)8 zNoStbT)Y46MNGQ%X2xu#XPh~-_KGh3TX<wA>d#xSw0rr&k5?>YEaMeCUbx`0Rc@}& zdz~?_4);ebUVh%v_j5n|D`WN(jHTUvUiT%-aXlOF$AOv7yJ*egO(%E#g0YGU#y2&d zzo>g*Ue3#YyuT3l>(9pp%L>!O_&o!^OV3}rYV~yI#%J;STfFa$i!NT!{g+K=+=BK( zjOjmH+P!+Yt~@<}`>Rpky{vobqHBg-JcjW{=b^cS%P+oURaR)uUl>2=WX$#1@|BC0 z-?Hr_;Pp`bt-u5xWz8ku+B(n8YWh3l@@Kfh-hc85f*Z#pkM!OUS!a~=7owhlNpuze z@SL32>t;ucZM`@2PBBX2P0Bs-SNa=W!QW11R4%YeHj4cS=hvs*F0RPZ6;dbDqt;d& z8EaRLd@ftfK_w~8#3X7@zK^ji#@q|UQ}{EZt93eaGxv8o1qMCi7f?OAFL|WzaBwr7 z+{QZS3SY!n@0U1k#t%?kHn7}5mw%uxiu5k)knU!+$%<@b9cszNF<07zx`Qbfi{~ov zOy3g3brk7etXQgJO;TO&*UFJq<2VFmxcVFS=ss)G-H79Cz(?f|c$UiIq{Sjf*m!z> z($WN223d5=ScUWy+CZUaqz`c(Up4`jBt`c=uFnId`jw>cq=FMP)YY(x{zdwNS)_M+ zzey-JqRqG>7Xe=jaBZMckNawo@vKaJxr24^2&+g|q&tBFt!%*gX@e{LBUUU=Qp*dh zSYM_TX*JsGU-kmWdwY*dds!|&pEdFGdq2VPG#rnkyp8e!$`>eq!gY?)LG`4!MBRP3 zE{e1g?@^0dXEcs!;{3Pb8H@Z0wUw;&-XN}DiT(|;$j=JgbO1k8D)<*@Ln#3q8zl#8 zP)ogftfiyC%{*4jzea!KN^-c8!HR3sFy<j&`WNX!@Csx@La7AahsO#(0o?r)I3#+e z^?oIvjo<IFprm6VejW2mdgkYQSqZ-uaQ*?;b8)?a4dwN{@ACf^=OK*8khuOQQ9mS} zxe52~LA~2pp1Airz_Wo_&`&F#v+&39t^;WITNHw4DasO@zXCX}X06gMao!?iQxnb` zXsi)mN?}}w6qjBHJYV%bBhSNgZLE$z%F6js7UUnYI;j{i|A~#1%5eQ9wC~5YGB$M3 z_4cC;6tq_h`7<zFL`Q;a2<mkMt_~HhMpmmI&RUIatX20m%DX7PLccy`v!dlgoF8Ln z(Qi2q=kLbdi?0`ito$itbuW19kG)~(Dzx_@%4X1i6OND-(ijw?H}Uk<IQ|j%hMbm5 zS-w0Su+4$&>%j3+;FNF}#{Cy?e1Tcy1-Ms^wm)J`@<zatiRY*k;CHg3-sdfNE`o80 z*%QY)^(f9I-usor8Q0AhrA~i8<5aZYpna`0s`oqaUj-HEIkdGHIH&XNc<)$TzYf2t zT&|WYainq`_=n2nYPk|eD)$2SD3~fm(SBpj%%^L-6n%HFd>rY#SV}{2;Cwjn)rC2f z`tugr#Zi<!IO3i-KO1s4AF!zf*Q&I7k`=f_QDqIuqz<_i@0x`^z708k7slsIJo_%I z)qR9}({PW94E)ys1}f80?+Dua1kY?nT^biZ#Msyl*p$*K-3Be>Hr9sUc9cmdZj|vT zh3fez94|o`B5m(|4@VP9HqPIm@sM&%yp4PDV>QK?0I%2LeN}3?1hAYxAUwCRRj8}g zE5P|g6oTi3v<|eK4_<fUomb≶IdB5x9F0^7nJVq{ls)2Z&!g&`(^K?!x_PINplm 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 diff --git a/old/static/fonts/Luciole/Luciole-Regular-Italic.ttf b/old/static/fonts/Luciole/Luciole-Regular-Italic.ttf deleted file mode 100644 index 4f95be0711f2247a1c23be7b0464c2eb73841486..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170744 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 mfN;% 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 S^!;9pR!1Otyu-)&#s3G40ncRs diff --git a/old/static/fonts/Luciole/Luciole-Regular.ttf b/old/static/fonts/Luciole/Luciole-Regular.ttf deleted file mode 100644 index 2055e8aebbd79286938c3cdfe771a9b580d1d9ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167572 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 OR{NoO@`O+FtN#aC#H7Cf diff --git a/old/static/icons/icon-128x128.png b/old/static/icons/icon-128x128.png deleted file mode 100644 index 4f709f94100d72f95df2030a10821dcfad6fe58b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9316 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 diff --git a/old/static/icons/icon-128x128.webp b/old/static/icons/icon-128x128.webp deleted file mode 100644 index 7aa46c0390c2939772e6bdf23a8bdaa40eec0049..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3680 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 ZHNl`q0UT##;>t*M)ideIwa_vCe*pG{LjC{% diff --git a/old/static/icons/icon-144x144.png b/old/static/icons/icon-144x144.png deleted file mode 100644 index cfaf8f739d40d55900c63545d973ffce8d8d7dd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10910 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 Ee-{+WYybcN diff --git a/old/static/icons/icon-144x144.webp b/old/static/icons/icon-144x144.webp deleted file mode 100644 index fbe2c66a135045a69d228936a793c1568a490de5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3972 zcmaJ^c|4SB|GsAoM)oKp+h8cAn&coc#y+GBDlN#2-C>Ne%Q6~k)+9@ILhsQbNpyse zom4s@J5iB+9gO*n&hPV{_mB6y-{-lX`+BbLb=~*#{XYLZkGYY7K@dLxmijvQt9Z3* z2LJ$Q)=2z$8tLld^PsF-0L^o=bN7O=Qtl*gin*Z<^4j$qNX~D78wjut2!ImoyvW*k zyve@$zsJTWmW~yDC->L-@0x#PdF>s%>;QluSqiKjnc~gDwk)jT=S|+n=`1X4=S;9? z;U_GtNMSu73lHq`#J}*5eeCoT|13(Fa@ky$Rhux2M>_onCjJMubEdenG|DUu%HEyC zS|57tFKoY$gZ8nzn-A;Re#U-<JPxEQ7OWY?8sfkZ7=eob50HQee1HpZ1K!{yYbLQ6 zFJR8f>->ZN$WK3><s!0NF2IiE&;uU89T0x{!Tvj7X;|@hZ@nDPD*dD&JURfdk20C7 zasY7N2Y`{pWbWiMnT!Ge*oFakP5RsKkq3a<I*U*Gn?vOSz#k64i#LCB#54e^qX0k* zk_i;T&wbcfSE!>S04pT`@LmT%=p6tDZvNFbR&GBJ3i|=L%<7d%4*(et0g!iMt!?!W zb;DVPfA{TwYW}}}+9r5h9?Qkc#o;b{&YZOJKx=9)3R%Du!n#L>q4KYaiDIqSc;AzG zdg@+_c1mBH4eNej9F<H}Ps+)Dj&~{Me9Xmsr>5&Uq{3Ip{5(IaB_j`rrLTOd_e8G- z54paGM=3mX+S{E95@D-3p+$tsgG%?I-(-z$%o!_D_&SM>+f0wgW<B<faBp9)``^nV zHF$CZ|BR02YJXfH7j+8@)7g;CV?*KK5F8HK8sd!&hZ!Jkac}_`7fb@i#oMTdO+x22 zhPw!0yX2#x>iR}T?SfKSv}4o*&M#rgz%0vHrd>}!G5oFqyIw2`nHL8dm7(vF7-7;5 zeXh^OCJ_rU`2y$K-th2bEjXx&o^>%Pg5MO@-6#sPKoJti2?}bzy#C-~p8-j!c%?+d z->`s|)MQ-s>TW&d_tGGXBjOO2z)gV5w~N=XWqcWk8yRk?PPj^|nC&5vG;JVeP2sOQ z%#CGvlan7(W`lZr0$&|597<c1FJY5E#_sR}jwrT$gG!WIN*J=v6;GUBJe6SDrc52+ zKhed5z+FH5L~45`tJZ(*{dUV@HNQ7di;0_Tfy&)g;UCTMa?%Wbu}xoHz1&XS`P7aO z5cCe(CQ_=~a<dsfO!+0zB?6ueyoh`EssfgD7WTH*I(kFt9p9Df>u%EokZ;7D%D;qc zXD9A0PCMOAN!gTdjElSPJ3O{NX1%+30@cbhpM#+41#BemFupDBZPVWf8Vp-@KnF}- zF4k||9=oZMK6?KP&2u-B{Rh3dq+Aq#W3&#HgvdPEwdK2$=HV9|=A8yb<ttzB9_dOv z8V(!HR)*5dI`8;~v<iQKE=F6RlgU4>eVV^_mKy18h&&2Mbk$nZl3=6kn*vH%+;2`9 z5{Z704<P(pYV`WFIE2gpSB`tO$gWrQw&?fa3y~3O*Jlf>*-nPNpNAXCyyZ^a`O?Li zsvJF(jBJc8WM6$RC23-t<Rb=^Mh<Z*(gPViG3Ugvsz>1vqT<fruZj_qhxLze)mf|O z?ClmJ<Nr|Tu<u-A2&Il5Z3w`P^O1NeII!Zc4R4iWU3FCLm2k^F?;+#owSroCzNV1$ z1i0!nrUXczdJ_lImgKSQjr|fZ41J<apDl8Pij1Z#r!=ccGA0zU@N&+(VCo|0o!*e$ z=L1s1d3jW~T=FqX{ypz!M@OkHxa~kM^j76!sNVE9)`kyi?fAaBzPjE<jkLZ1i&j0# z8LqW6+9vF5Wr>X*n>re>wq8sX>^}s1Jf!dlLua_y8e8h(3%c$!<ub;v!zjTKZkyb5 z9i<P#27ZAh$)Dv(WcpuC_m<P9x@0AWuA_~MN~uc6-CQI?Lri!wDGrdP0P)W~uMp^> zG7jiR(Wog=oex*sOr+IUtlSLL46TNceE3TQnD-$u3!G-Hw5?o!3Ne0j(k-?dVy%rl zQc=J5<7!f>rL^ANo=>`tz&FCfNAgiNo2^M1N%YBSZ2_VU8xNWDGw*9^*}ZU~6l|oG zrV*DORlw4;SbXLjQmj8r`Jgbmn9_r$KIr%|3*k`fm&vx`v>Wqn%X7ICAcus`C^(Nz zKAaF9#K7h`I3}+oqig&R7&i&_^Bg=awWe0v!{<)4l!bdX4oaHJH?J8(6x{u?UOwcJ z|8OOly2j{eMsj?=f<rE^&x{9os>`L!eUe;!o5<I_F?T;XxLg>a&}+)yJ*NOc^k-+( zSWBggv^|KnkwsPnIOpW56cen@!>t<p$@sULIqyK7fxv6Ey~$;5`fNEN;b0j}yRk-m zin{jam_C|XCS>w4V1r)BwzBd495&iYD`VolWz?6EDR&D4|2lH3bHd25cwDwjgs*1S zHMA6StCzpEKXm!6LVLWtP~0-93L{V(KrzCxd4OV-Yz$)}S0egrDBYN*t=jk4rMoBg z{-4_ELw#L`F4Hpk;I~(34QlYQ-Ik#W3t<n%=A|y??k>>S8!1$b6T6TeX_ZqpdU~`t zRxpDS3keHZEzdnYI;E8ZwJ%Ve@rE|-XfYipW@2Ss6JS%V&5BDSC5to97~iKkkdV4_ zS+M9^j6T)a4c8r8jt|tD7Bc_jN?||u3&s>P`aWv<YIdt$TT6yW?4KTc3<)9Hy<yTp zgRPB9Kd*d^Kp){tatpQw#8>n$LHR1>i3B40-A!3E@p-U+1#T`@PzTpKe<6iK!b8Nl z$^qY=&5J8JY?u~X`A5pu)%8<9y29;S0|_>T$nZ-GZf|fK)tUMM%PM*ADBez(bjXQO ziPP<t3@_wi_32Aa&l&=QH4Ycd3u1qWQL5#V$?MaD%Q9B=p~@xBw!_VDnu6Bo(}nD6 zo69d@TmvKAY=(p1>1n2xn{M?1&tFotb%srKOU>L=w6p?z%WX87-sdAYVn+DUM^a64 zgV%?8FD>+JthR+R_>vAb?LZN@*B#$YPhoD3#g3?^G22flx8N44L92M;Sf~d>B=dar zj^m~X|E){fw3@|aINlu-KpzR++!XQqzA{I*bSf{2vDfh}2V8@>;+i`%Tem)W<o4E{ z8Oup*&<OBSkRec~gV|b8nNM#|_i1gmWRgl(t2J)7)A<C$P)#*o9ig%qweiW5xtbZZ ztD7SOJM%?OrU4DVutW0WB9sjdC{w6khbltW#-ELBJS(jlQt@+gn)4Nb7jx)APtv%M z$y`m3=Y4x-zuAAv>ULE+ukIMv<$i~YHef0rdmI`E2;JI8te@yPJbLljx|8#wScK@k z=cveZ9Y-1JTQk|O={E`uZ112DCRCz}?(ts)JG1WT9V|vhhsVPOT=n9cBT>XSrMzxs z%rPul1|etkd!L>GI$ib*E`4PJ-HkRmj1kawSt7`xhGda++f$M&+7|^apm*F7q3v<a z$E1X@JlaY~CD{xLcA5r-BWwZ0Gn$=EdXOI;&FnwK`oc!?!2lp5K{n)g5=a7=Gl&@7 z0_l9guJ|`dHrVrUHE>uV7{80i{dL!La`OwPMy;;LZ-EyQ{t&`E8C(iXWQ^5t&Q|X* zyR@QC6*LUoDVLn}u=h`~vUolVIg)B<TiGbuUDkft=HSS$so4+19=(2oo@5isI6j^l z=1=KEv3sEp)n=wHlKHxVzY#msH&nD<QKVm-EvFj#5K{NxTU`3{l}hyE#&U$?Ro@N* z>xKmWXB6(QP|i7DO-iR4O`=DQw#Mz%RKz3Us&ui%m~8tX;b~|wsUEEEMd~{YmkiO7 zxDTg1%7(r;7~6>Kgg8OTeIJKa)y>RKKJ6*o&6TLAo>cJ}`uK+x8LH@i8GyYdq3Q9M z@*OTcF3sz_24km-uLwrZ6)`KMph0!>aydFURZ_BwrkOCOAc80H<=x{mJ*Dcx1w9H# z>8Jx0L7ID=w<T#UA}$}gP{?;_=guYtH0$4-51C#x7%eI}`Hs^=D%J7Eap;mCW@R-F zt?)vjoLL=y!9cmpIqg;bz{ltG%ID1fY6<=XPP1*;siTsg{cs!$uHGjrJus6K`5Y^c zAJt3fxSw?@X?X5l91@l1`OwH2PkXWZs#0K@)bT#fCHMXr{GilcypOHz;jDkfPmT|2 z%LH^>R&2N!m@@nAnFY+pGfYav$6vC7>f-*cei7hI6t|k5=ywD*RajMSLwxlYr3iKd zjt{R@-I5ToA)Kl=auTscccX+{Ur709Ru`GuN66^gr;-}uioC9*U!a|bS}L@JrBzKl zF7gubdui>{A9H%!&#d$Fz{<N52Ryfj$we62t%FN)dee7r1Qq<=ahqY6C#rcd$<#b` z?*fzQsrC9P6W1v?_;jX}_OIIb<ys8SxL2vbW1=!n)@i-nrYM&d>>=&jxyp6^t4(^r z8RjrGHjysg5!xFz+WE57oDdVBfsxtu?ywV9@klr?WhK0L>FG}Pga*#EI+d1lI=|X6 z@RvDvv5R<9kA7WwtoRj<c84m7IMS6ClAjOW4&CtklP?uB63_{H(q`|LgT}YRy(2t# z-cpXlP}?#|ALQ8hs<N65um6^ZG;n#!Mt1Mt-d<Z|gv<>W4{*o07g=wKWzj7$r9pBd z1ERfPC28h}$QkJOdkYIQeKqEd<gQ(*;AN^9DWYeD<Fvomfuoh_2uzv^DUqT&?Tzu^ zdayTjEK5=&xNZkn6-U#P0?W3iL^TU%szS5nf4>?<y><=rz<Sui>rLeOesyNH71ztp zHB()ecgID>ZgXTg6gUe!@^(C!Ifsbwx*)5!eCYTQ$Ex+9L2ju*#<>QjO9HIMI5{)U tXH&JL@#E0e@NXPi;v;>|km49eGq-D%JKVRQn6ERb`5;g5DeFJ+{{Z)`rYHaa diff --git a/old/static/icons/icon-152x152.png b/old/static/icons/icon-152x152.png deleted file mode 100644 index 5f57f832697564710e5e078d9a5a830738a94d7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11594 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�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 E2M|o7hX4Qo diff --git a/old/static/icons/icon-152x152.webp b/old/static/icons/icon-152x152.webp deleted file mode 100644 index c7d85b9ee424c01d8ec553b421449aaec50e4ace..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4206 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 diff --git a/old/static/icons/icon-192x192.png b/old/static/icons/icon-192x192.png deleted file mode 100644 index b30a43b3d8e5f69db06719a85b6fdc435ac25794..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16640 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 b5A@oXU)yNgdf0#m;X!K3T1piP7NP$G@o<XY diff --git a/old/static/icons/icon-192x192.webp b/old/static/icons/icon-192x192.webp deleted file mode 100644 index dc9f6e528bd6495c943931fcaff55c9faf416b8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5410 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 diff --git a/old/static/icons/icon-384x384.png b/old/static/icons/icon-384x384.png deleted file mode 100644 index 6ce60de4c56e550fd7c0e2b14f406a619c91d5ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52393 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 diff --git a/old/static/icons/icon-384x384.webp b/old/static/icons/icon-384x384.webp deleted file mode 100644 index 48a2cbcb8fabdc8290a77d84c2d04feef57f3383..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12422 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 diff --git a/old/static/icons/icon-512x512.png b/old/static/icons/icon-512x512.png deleted file mode 100644 index 2fd8b0991d9b75f3aafe1070659c4600c69e9c7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77824 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 =COd2pVk_i6lcax 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 diff --git a/old/static/icons/icon-512x512.webp b/old/static/icons/icon-512x512.webp deleted file mode 100644 index 8d696052eb1cdfab93c6f656664d856d69187fe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17866 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%0D(PmHYcU z#&Nrk+Ex~-wzgiMUO=!C3w@avzQu;T9t$sH7AO1NSwrJB48nhEq$aQx_N67RMez3; z8(6<t^ut~p%Z$>jM?Jjq+7$4kFY+PE^6Xi)tJ+p*=ZoR2s`n*TNtR0jNxopYdby~g zpjbRj8|H?6VC-s%in=bH&<<b<{;eW)07&;KWH41Aa%c<}RGTSJ@_ddQU+%7+rmpR9 z_{*e}5j6a5TjHd^jzt1<B<3LSR6~U;E5VEoqMrXrV*ZC(Z|hSS+3Gf}g3o;8FT|~f zG<6`?DrYLCU?HUXBxfJfGcL&y!p{6fakxG+X&}CVyMQ<{SSNe(6z54ArCl47VBr&y z2-~k;9fux@@0Z9$pMWZ17*PV&Sf5gcqej7cX=grGJNiy8NU6SU^QzKdZy5J!)2weB zzw?_*&@hU7I$#7#hJs1G82WYWMmispo**QubU?IZH(3#etcezN%Jcm*`*wKX(d^cg zEd&{NX2PTUy<nz*LQhu(BNH{U)sc%;)jl&BjR;5C5`H1mrWRf_f`t$S!~x@+kb(9R z!bLk_VFklkTMlwVk(_Y4eN*1@qPIzqeOg^Tl~k5_=$FS+Gsq}#ToWFSm~fd(pXU0~ zU%RycH9}1g8hly#?n8uRD;sfDi7I8zL!}-uy`|Dp6`n0LvGdOY1u1k+3H7t$@Pcz6 zvZdx4UK!;8s{`vy!v#tmeXcb8(S#m>$XArGbbFtgcT~~%U473CGBfwI4tG1}p=jDh zb3-kA^Vy3;SaOu9-Mj9;6D`9rL%<~tcCDIfZKN8p<U~SGX<}{~ShN*0;v4jcVJ{xY zE#=;TS<86nN(sl9F9>H3PdVbFv<<|SCzN|w3*%L&T!t7nMfvP<=A<-@<H+n1{iPR* z-pbOtpgGc+cLY1IoiEBGm>sn+foy7lX=%T--qTRVEg+GPbn0=4&=eyVrbapEIe4W; zKq+>xB4F7})nD@N6%i1Jx`d{db0!B%3yW*{a}6T}QVc88uQ~j4e=cYX5MwpfzRh3e zi#I?x{J3y|4AN7?i~YK~IZ;Oop<A3;o%U+h@F*)OM@9ONU%c0V;jVtTki7l3LxxF8 z18ehTc2AcSl_-($QIf(+0=UOK^LlT5*#|M~MIqoCOd!>^(%Zz34B@Z>sfm^FoY1pA zIzijS0uCP0BU<Tx4#N`W8DTX%k(QO{E7rPv%`osI3JT<snF6&TcTuF1v!X&l$e-r} ze}}%+b96IZ6{L%4tvMjcs_ZK$1WRB!^~C2tWkSvmMPL}hB;aQE8lXz^4H!zANLk6^ zbTBk7vFaJQpFRZ@*$TLh_foH78}5P$`>dpN<?Bpx;Fz*65xPrJoH}EW^&P{_t-N@z zH+c><NbfH57nHtgX|C_fgs6QfEnyi=mR%NUs_Wxl$*7KIy>*{fNa5hK*<<b=EJbpz zFY$r{?jPPHzWMagti|z4jRkmu>-8Lp9A(WE3Z%V4Jwh*nmz*PL9dbyE@_03(VKfBQ z^-KKVySk_*mKSy&V#IZmFQ|_^yVOdy^=&2`vUC4kPfZ6@4ALxA3`@f9+APD7Mz-VT zW)pw2`BW@3T(e+Q6kICCcbljLFN2(nQFeJc*?n=XB2GQ(*z@+ls)`u?b8TAX@4eG= z0oq!WDHZ>2cF;1&qz<1Fr8qH7qxnfUp5M8y*F2l;vNMQROc$RS8#A|5tb(e9g!HD@ zD~g80x7PT$t;$0jySMjb1Qxi8fN5Oyr!YObY5cTLn0cN0>eiL0!2z02fkk-*>q%4@ zmUS+t_(J<zacdJKdL|wr@4&yk6A^XHk{OUCozQpVD$G=O#ClZ*NADx8b3!`f&6jVl zNmloNxZBeDW``c?)lHiTU2xON->HW#*gcPHufSBb=RLlVI^=Qh|5+}7&Kw(JZLg@E z7^M8AxS(_0E^?#s=7-a_k0DL`+^KJ+WIP}%K0aS79FlGhCVLYS!d;+X4SejLi=g;I zfb`f<)r^($pstn@WkGkD@{XzF8XW~S3)gY5mZ_ltE(B*ex?V5gwR`)8Z#D5Ao!#0v z2N64wj}XIWs)fICHcYx@EGQ%6Pwa;MQuUBYixbXsT;gQ9@HK%*JaBn@;qw{0h((zU zjVXwNjVxzv8Bj@otd)ElV*5um@h$t%I$iOa0KOWop7^Hhq~x*rGiKm#>z8A2cOmrx zu7x$^9)q9(7nB<*@H58d@N<7xPEZvqI?sj$^_)lv29YVRZA^5trt9AnO~5iMiaDv| z{fhBE{EUky8QmDr_*m@#r8D9?<M?vItgCVDHIe#@Ji&U0PKMPtXgP*|ZM^DjZIG>Q zxCEQD<#QSi=<7`}?|01w=McY4jXdvX`Wwk_*JE{5d%ba7zivtioRe;O5zz%koQa_< zvT#uG%;(Q#ZD)rWRNZP@1!a|I7aVMQRH<7DP;h_ZCczE4^H#^?@Vdj#q~oXWqiQ3u z{&=RMCHx46*B{$RMt`QKZMcyk@`SRD5YvJS_!IAXJ<Aa=Hlvsas(#JGNS(n36NHVy zuen(u3AU~F9sN>IovAaHh4Xw@amy($O3X)L`875~luy)#%-to<Y*%cSV;)WG7>}~_ zPmYW<@9TG^-FNA6&AKHUjn9pV6FjdC=R8lOPj5!Gv1Hx)HXz5n1=|lzjM&a4mt8NH zvg_a7-O%yQ$2hPE77{Jm-4B5h-^i;SI{o$3ELLy6@Q(KIv7!}qDHCeEoSh3cxH3j$ z6*$NXl4qXh9(Sylf1AD;KfL=zx8&-|BtnZI7qmcz$n|ytLoZucLvJp(KG=^mhBDR! z`PwIaa-Fr!I*Vq-y|Z0kdG--5vajopeNL-A-1Fh^)y$pz-H*PzQT}RgYu;V2(Qyy# zLb|FT09Sbt=Vg^8I<1gh2?p|sLE({@9^kOyTv~kp+N&N51D~^F131oC>|zzSxzFBT ze#eI<8LDOa==<x{ax82;GX%S(|7s%nGu4fUQFuF$1oP-58EsXL1%ZS+$R91GfZk;8 zO(m^#!!tyZ6Z<<;LK+x5&~GU4ATZw)X5I=(Gr()>zCAqBeKXP=+qPn0C!wCHaP20G zm(F%h49<fx-iY=24F@@b@Wk|<283#H5&*>&wW^lJ4{uk)+y3nFK2fhfREYh{skk)t zt||hu{BZQul)vYjFvyrJ>#jyPbLtxc#rMFI<M=7_ud#=FM?x9-L*`74HEg<bd(rOF zw6=n_$b;}YahOXXk+z25RMX?LIWYo3B3fwbs8fVV6D=dU=E}v`d6ED^k5%35HB2TT zgo3;?&m-!jBekQMFESF=m*8di?-QeB8{Nxraj@;y+`d#Cc(o8pz*Q5EpaC5e6p^ly z>Y-$t+-gqtg!H&~%C{VtgvuXT8v1O(wy~rXUJ&uh$+=5px1%AkS;>M|zbJ+mfiqa* z;N)C}D`f9_G;Z;PqhhCnKx?3PkCb#S68LqfK(nx*j%_&We1+pB{drWIyrQ6_NMR*7 zgKxQTI7H0i{nTWT^1{2X<|K=SiPg~s@$*fbZ1l5@65{*5AF-QQ<Y_L&`jV(3w6^Pk zg;?DTe2TAv{}j$Wd{v_?u}`iYWZ^z2oV4=PDdtt43m@3$_*U273RyR-Zy^Ao8Eti8 z@XBz`MgZT|JG)SK!jVzw3sGtfd{@e=@z&O@-L(c5J9e%2ugC~0UC)N9-jN6;?igWR zHpW_AvVcCv4;5!EA%jzx-Wd{K4w!G2=U#cpPfAjFO{+nba-G#)a$`-L#~R!318#4G zizFSyxIUb?dCch&Id?!cP9H01%2<lr(=Zt5w(>SS!&JRvXB3507a%usOBol16xnII zU_HR;Mo}*0-(U~1`w{m(zoG>nrg7M=@?qEK!*V|7cE7bJzuy$hStpryS7@?}GR6^! zj>_q^QrVhnk<65?@o=ajE@se+0@-gmI87$-EDnCzx(Aox%uZb46S1AcIDEsoXN4Dl zqNDL2)+N)CV;d-oc`(ZTbKYO6l<k7fOerlYl-QR&>eKE<mMMMi&CkqE_Kf>zLqFo* zyzKKN7Y@eTFZt+g?G+5q-WuR@&Prul`M<WRkHiu**@==+h7+i4?{(57aZxKdHyPVk z@SZ=^h}==)I!~^6rhZ03!m#VdhrC0}DE@YBr!Q)@FycDb;dr8+!mRAVBC^qa6_E(4 z@F#6?d8WFpwF=SqF;8JGhQ)=DX3aq6PBjju@y}v`C`avh!!f>N79WE>Ixart(NyWJ z*30BQS~TrIwu~FR(X7gmFMVSVCr~+A_JPT~^U}saQV^CiC=yy6*{a()4f6>g?<#Go zD{S2~X}6JU%W&-jE=5p~V2`^e7xrklcbfzQcvr(0If8`t($Tgb&{By^(NV29SA(*U zw5w>rF)YH3>j?_(WKqX|$TV;R<=VQyKJ*g{OtK;Mi*HiiU?~1G(DM=25M&5c+!NM4 ze``yS6FruNc$l;*yzK>FE%JBT7NqbeMNK@PVy=_L50EVBFg{TiBsVPt$?j!KZaq;} zTw(km%XWO}acbf$sv8re^1*U(MRuY4k^Wac`5m|AYY~aM)a)tZxThICMON!)Dw4;K zJSt+O2eFHBi5ZdBEK>ms&QIM!rwnx^Y|&y$CRKa1+|XmBbk{3vn>AM8)T0s4=78BQ z+M)(+-fVaC-8lkGDSl4M?UbS-t<h?1U%8p=xl-pB^>C~_3sqV5uAg?hAaY{RLjk+l zh=WS$v9-xg*6UwsrnKm7)jgzs13qpW_rsdMXeEu~z(rZ?Q(_H?r1Zlrw3(f<%L=gv zH2fE!b-DIE{fU+4Cu8GsNtzsiKzENv%%Zg_VJ`I@G?CQn-d)NR$hKI&I1(*tXuW?a zzaIXmSTEk7UwKEIZBd$EmfZpcdNkP26lU#u_V%S(40w63!J@=%0zCyMp~|dwEdRp< z%f1NkBl|+}pWA7p<!{&M;ab(6ry|l>*x%;sT5RbY1Z9pHCX8zqB=A>R{71sHwx%&1 zRp%HiQRW-`{mdQyqufvIUOQ(Phu=cH-*S#IK{YW;)Dei~Jqi@z;FXe@(?O!huJd#T zsBYZjZ)r?xHzVpviAry4YS|KV?h7VC=K3KmCpuZByk@q~ZyRg<qa6-ND<qW>mSd5d zjmr$YXECL5Q6oslz{ong_9pul)fC`D+al}cbFj$?m9V4jwv;Dovk|b~^h}FckulEv z_|h<z-=WYK;TG@PB|TR9slfW8Im0Fo<yeICAl|)Mgcp?p7Sh&K_G^|I{3umkx5}{T zqA<^3J8j*mJ=Do7$n*SWO;Gy*9=3gDYpZTPm+wn<FIouca@k|Uq5ws^w2~Ji#<MoE z5jLo-PDf*tva)^!zgS-M$Y0tDrG>{3f(iF_9xW7W;`rRU+|Wb*)P=&XEs)^*%4LSK za6qz3*{Juc?s&_ZM^y$&f|3%_A7>D@nPnSmW8*0?CwOXO!oK724O;FPnDBabKw~vo zPeHlCfZ7;#-!H=D0Ea!XF#O(WIM!cAk(vOUyY$MK-kz_*MQSW&!K_IC%il1(^_e{) zyBz@0Vg2<jQZa&CA1A_|VcAb2GlNq>l!>Qi)I&A(B^SLd`&QdBSs8Y#FWZH=eD~qP zQw^!uFvwQfHwuEJ8qPT0z(Q$Ks6!z8Vthv6SF*twO2KZX6x25VIn+Se0U+ey+WF2p zZ}}}H4l<`8;DR#=kLIFZvx_da)NU4#!aMvhg~@L^8cN;txst&T?Q$SQsa4tL1U(jD zW_v<|uSgn!60@iCY7q(h@U)zkY?W(xoPm@;Ft5{wj($rHNYTI8)a}1b;8ZFKg%YVN zZSFRZn{O85kgC04a~j%_MJFOjZB*0(5G>6PQV~+I07Zz2WqA&;6Zi%%8L#7|vtQV* zOhY{2uh8~)PRU}kmi{jFO;qSt9R5*|;Go)|2zKkal-lQ3aH9Q2<*V*HzJ<=Tao|8i ze0}@V81o`G$nLJp${oLhAUz(YaAasYj=d5CGL2>*tz3O@sm6|LkBl0d^iNJjlH0uV znmApP(AKttQ7SyD#SiH~z-$$5q;Z6w*Pr)}3WMx?Xb$+C?`-u{Hlz|08+vjr4?@aM zFgT<XlcI{F7!RnD2gRWV*xYjBya(apdNE_297M1>M3EHKh6~o3oILMAF<`84XIf}a zfJsWd+{s60`Ue3U`o5IEJ_9Con$kJ9&XtH4#n(fIGTMXIT3cuso8g2nCTfy`9wWI_ zalv5Tdn4Uc;q-!o4G#m{Jy?#!%a2&>Uj^kI`j57HfEh_aL}b$~w5w{UO~&z_bcOw$ zPPa(jblG(E15*)lQ@;*sTA%qv-yp}P*7+t(6m5%)b(e`Kb3DfKKz!AUoA=zjxgc`& zc{By{r}z@{Jz0rd{!thkCsyJ(Q<5nHITgT*5?3nbg;O;X4%=C(76mr?u7HebY2g#j zWY~~RmVMw~fcYaniF$`7PSMFvGXn?y<k_k|8M;{d8>64K5Un_8$ekP$p4g89%2O2c zP22eHU@o6&OnS3jLP6vPd;)9;E?(BqJrL1G2Twe3tdsnuijO0|u;{)lX6Ttcg{jdT z%KOfej_}C{6Rx$4p;EEfgtNhBhx^6}D9l`FvcY5LThoZEZqO%Hx+Mzx#;+pISh^j9 zzrLLBXmMaBQ!<>kN-3ckS<QAHQ;$JkCa?BdLY_O&G$sa3HO-5xd=#FZDpvw^Y^vom zaE6T{&uH&IUgR|^>Z<7~D$?xqq0WxW$G@H#RFw!G+p)ApGE?GJJ<YaCc(SY$GO)># zR^ra`+fq$kiy3bwv}|u{GMY@}a|m(tO^ee=YhzqMEv5NncH_;7i{(U*QayXXXRTrq z<h=XB>7jAlSDiZ=Dv{HEo8u#txfx3v^C9>5&vyOukDHJW^;9GoWT#reX=LPprnUO) z`kNCgn<=hyb$(QAz)J8+Hwkd+9M#)<dqr1|(ji8rud9nNKn<IeDO8ZMuH9$fSlRTJ zM|-5MuXz)&6AiE5;^OY!R6FvVhK88iQ5Ok!#O84+(+tq!gTLp^%^JSi5f<}&{COyI zYi-PYRRVVWD$eM)q*I<h`-T+f2-P!#q;YC$nxeX0!*IiKO#|H_--+LTw_58VASd~) zYR;IE2x8ww!Kbl#+$o(LXWH>iYkjU&Gh-x0PUo1T#%L+j>Y(nP>W5!*b}FXS7Bmb( zR^`t`KJTi!!Y4YeZxf<d%2_g=F7Q&3YP7R%HKr{5&2pYbzq~jRIF+qpS?!0<f<_0s zC8XA~x=d^`b8F{eT=~_WRYBD4t_TKr5C}HhNLc)9MbMQ9u0S7p<=r7a_ba|)Gdn;P zZJxt2S)ufXR{cSEeR+P))oiC>rU-A-Mf0&ea<f%e8Ke8kv#<I<JLE~#0%t@BkooBQ z$9N%HiZ_rCyNBOoHhR~Ms~f~()_WyXbROg7h$v}V1HR>jG9IWKTD3nLM8@%d3u2;p zTX8{80ZEll&(D^oJTHA@B3fh-SeZM)1P<VfE5Ir4d-(0kd2z4{o*3<Zmf%*@6vWdD zsKmvCPh=F|7kZo-lw`$B#R0EX=M+CwS#v;3DkBYX{~<4JI>>3x_l4-i;P7?diQDjC ztyyKNaG`(F-`f2l2lc_a;*i=;1A-fSt7<PadBo#vE>3^2`Vwv&p+x5!n^vA}%Rf_N zre1W)uV=?4=(zs7Z}%Xeb{(XRH=TM8xztHjZ3!l@1w6<X_$D^x>(azfECQd>oD%YU z%B42!e39R`+*y8maok>GU7Lu&3x5^ZCCL`d2`jtU2$iYwZ@L@$_IOxwJ$7YlpU{Ez z3nRnrzW0*U@@;v(SW9LQ93yFT=-NZ^dC3WTwX)BIn9N5AXZzVZB*=IAi;S9<<zDd4 ziw-6Aj$n9;>UrOkl?m)5w&$qSO;5v2%D64;lGn2fA+;*b@;hYXSy3&?V@~9hh!Uq7 zYcL7I*@eP3V(n{|k*J<M+@N}op6WxrQcleXLt&QC)^VQQ$b}+Yx635$l~Cz4`3cRa zTMw`hndfhAR_#FH^4F%*+VCR=GZ7M{$TRSHA@lr32zI5=lz`H!a!XIOBATZsNor<e zKFTX^GiOY4o+e|S;~`qv$W6~OQ8alxw(L6LJWWj0O2;tARR`c^AVpwuA?$~{u^X{1 z5!(P7s%3TxL*1;a`9v`7X7E}t?OR47eZh)KA9c#Z4~{Mf#IR|@=YTaoPTpjSH=sDE zwP6Cisfu@cZ;KdA6o!&Jlv%eVR<AUFaoM*O3c+7JMZ80*W}dV9iYAHDq&^SK+brH1 zVF=yS+VGY8K#mueYp78-DZ-N8>7$FCvZ!D?hB$Uob7*gC3@rT^)}5MrQEFWBGn4)b z=u<r7{23u=o<&;R++Bu2rs`&(<US=1FJcS^klIfCu`9b3n!mvwa<L(#Z!$!cCZ_qn z%F+-8N=uu=O5<~VFJJ;N17aZp?Q<=5^woL+_0NADeevv05)q_qz?sq4YItAIe$smH zR74z|Gpf8%!Z2{{h><gsyLlRFRCa&s-YZr^gPr1SW_70zTriaQ$IDPBD>Of=Bi2&x z@ToDtHa*1}9hQ7!t3hP3x#W-^#Rh+tfsN04Bi)nxptzvmil*P}_7&>p<P<=yRj>7$ zSw4Kflxaiuis>!wWgLe1jh_>NmVvHreWR2sTjvdaH0ShaR3jPX+=&<tk2fK{Q#0AJ z%E8XeHwqh1V0g>-jL@6&{CMo&>#fj>3jwP{)ND%yh0mFKG_9h=S_*CO?diAA$|19S z`FFeIp^O8_aVXq5^vl*qA=_CYuBL&|Zf)g^<^7{E*1NA1SFvb#+@mk1r;wx|IY&%H z;%0lJ<hm+P{nq8bV<)^?F|_kVjC|lOaw5x|YGZ$_v3F!Mqf*u=f22o@k>X-sjvL8R zE5WJHO~LP}`E6tK=u$sE{GkP-=x5oUlR#Ge7El|T1`)A+AVW@JXXEE($%IzLM6AbW zSEW!lxu3xkh=}+{@U@9Y**UI(%sJ($nMTS{ilB?*i`>9jA*W;w(A@6sj6XK3yO)1R zk!|8wG;I#k@XaSPL6S8Z%V|ig_vOOD_42nWw`ck9Mhb-qKS6B}v`>D$nRqmat0;zA zWpufcF+0aOu%|6S2v?|VHQU)|+EaY&8MC4Qlb#euQIVx(dS_3_=L`3MM|f}C92emt zn!t<Viw;#EhUDBQDk^Cg$7XeF;_>C0HwNKhA84Y)nsr;Q+dc-bDEc^SB&~B%dt315 z-v;M+WL=!N1UwCMBc9IQB}D@-4dwoTg<+7&?|x6}Mo(wUkCD}>qoetr31UEcve%nZ z#as){^`ytI9}i#2l%2crZtN#yOq&htoK7yd7y;hkye`bL@xrTpMSL-QECtnrC=Gyv zZ;LNBE4w5&N0*T@crFnt9GZf@-0174W6`}mSRE)U@qT}zR%oxx&9TWhY6qEjSJ7~B zkq?YD!o+B{K;nz9JYSL$OYD>8fwq4xcTe`^J6A|2wibR@;zy*5+ccE7nlP_^SrH#2 zl;2Vv!?J&Nl}o|5om%*oeaO1ZWP|M<OCSU&&tt^4Sl~)W;`PVV{#;wm>O@I%!c7k+ zLS;g4_I1Aj90DcD6Vhma@PqMqC!yM+xBQ1&(!9thgR@3h3XlMparY?nANL$#J#YEe zS!EhVF&*VTU81f@r4jO?cUI@$6tQV=qd?!xNu`{ZgIwr@aR?Y6YV|dvZPFM&D81mi z>R9_B17lMH?R4;C+_CyulXJsUMV{kj&AdzE_rr7vZIc;Un6Ke)_bhrpxgvFvMR?%O z=-|TRR+g&uUxu3t8JCsSKM7!9R%I(bD}oq!w(jTM3#f#BUdDPerwT}+Dd|0OT=y|+ zwQx^&n~p_MlCK8X0g)&`B}QR;aCjuE%HX%o>#RbR*t$sEXg<3zGE}KG>3L(PnMg0l z7;YNdYhrZ#NHZpW`%`erN761W_%ow0YrHW6JYJ_usSD7~ziYpj&dI>kKfQQmr}qO; zxb3u1K-OUsL^(VW6hRRSB6|&bkK|KM34Y1@t9<lFVI^7>V=W%m@@KB$K4o(0P3M>3 zoM>hNJC%N*1_(5)`W|U<DSk0!QkP#pr2OJ_7*3)ZcsNi*C^p?B&TC~$VkfaM>9{!r z48%p_98Hut<T~>lDJETP1iX4WZ#V^{V5d~5@Cs>l$QMG)L<IA$x5qFeBK`%d7XWZm z-5QYifgxQ+?kaLD{N-B<yE0#Jv?DMer~;lX8G<xfT}w9im`R)|+mD^~uig%I8nMfS zPw#D4etp#)P5SO=rQC_O>-cVB5Y>z`h4&D1qVZN2#7299tCX@d`F>D0vwC<Q*i&&w z;t(9d6J1!zZF>{p65$JR;d25$-#gk5#@g7r_@+{)J@g*KzQ)<>{dRY>Ysv~JUueg& zE_D)k+4B`g2GF-o{Q;G@NxyYEzF~<!FJ+I&g$S1yB&Y4()c3mHZEntvemS#vVc1Dg zo7LT3X&!Er9u;i->dVCvDAFinhJ@h@;iuk1gxsrRgFAP=tqe`s7VZB8a<jF)GTlM% zte_P%M|Bx8-oUA@K@DS+lz?&<C9?=@UHmzDS#j(4`81eux6U)0(caAV1}10`0kRjH zK?8pN*m^e<=?c})cx1zb2P3}<eplvw^6!sV#jSXE-Xxp$@)vhz9CjrI(E(&FeoQuc zUP|V>j>iP}2?w{D#Ce660_M0yYgQ)Ur3}ka#@0(Ys}~Z!vtPu3s%RV>zO8kwQHI5j zB^(ckhZ8~sBY5*hw{j&672;fhpsezMyv@arzr2U7(tlkb3oCOvD|dku;fff%@Yc;N z5xz!IF;_lg$=x!m>;SWiVic+3I4#W^Jk0S^olzN7@YA!4QSa{D`Y(pFU))s`62las zITTsBBSn#C^e+1!U^3Txgly|tAvvO|dLS7k(nEql@4QWiMyAVN&pYU*cV|4Rs?#;Q zjR523iUxd`>kJqp<~w&1bKxU1MJrq9@j#g&k46ZKg%qKnH;uT1-r1UssV5=d+O$tY z2U`!kAE{Rv_%64=Fh{Qv-7E2gk!3Ck4(e>RvK?afc!bJaPHG@KZAA*hBF02tcHBnX z&49cNY=ud?`|^Fi-PEhsw;r?_ooiH8RqmGAx-0Yw-e;D8B8I>fVtf%`GAu#o4j{9+ zL1I)ghQeUcfK36wHV~!&emXhZlnO<c)$M8+QtBD#>3u1g-Fe;_R67?ZuFbq2f&--o zJODv}X;Uv(np>iY;FfH5AVM}LJoVU%{&ejy`Uv_&fLa)+fcLm*tdx4u4;QGVtIMJ8 zKf_&Agai2=6(Jz*MgSS;kU@0*(bAqU>M9XqB$SM40yXDG0~r(C5Kx6gUl4i##13%4 zdSq#F(jjnwKy=aDXR&UKR5(NgS}Rb{hluo2BG(pYF}31PoQly8$A+dXi%xd_0%O#J z8hH^}&9yEK^NcBo3|?MdRuL1+48$mc1iMM9SPj9DIuJ@_j-hK}Qj>q#A;kwG9FP{r znJyFaya_*SwKZp1vOle_*$%@q>>(eOYa)$Mfs`_1&!@Cu^mHxW9US@y(_y&QgafwD zPE_>U_2$y>5}fT^Y?`rU#SDHhtwdWJWtliR6UU4s_yla?&|#k7T`)ml1x6)pk#()K zK@_zP!f?JVMwe`aNsM!2%jmB)*O>xe@XN$EdsE)y53zNL+%%fN7!KNbXB+Kd>+#kx zF)q>L?y|+^;P{cn8RQ{mz9@k7h&w-~a%_>K5V^_tiO*>Y$?sH0GAhZSy_*?S=W-;+ zyLYjJfxr;!%GvYiq1;-w58+yl(Q*;YtR%A9_qn_TWN}&qHg);?$%tBPd%4I*rTb__ zGDDo^q2pPIV=Vn7*duEsUXsma1e?&Bh|+FR)f(CrJLh+9Y)eSucdp%F85a|Ri}9s9 z*I~u?!%6SI()V=pHa3Y;s%r8IpeBk4WrwpIrmQbAH{BqkGjO#s7g)B)0_Uy)sSC(c zt1LRm2r&X*XQ|QbS}`UZOjP}39MdW|C~}_e=yIQ>CuVP2sA!p^3dov`0kb!oWen#! zh`9>Tt~*2#ATmWfMtwzV#u#jo?&#pS0?7QdJ(l)k_U_|kEkZ~Fmeb61!lK^^ejGdt zF`ad;)3mKi;)6OBlVFG7&Ws;27wCTM_pY?$PRADv%5{MkHX1+45EP2tr-z$&xd4x{ zo9zl)=Zi*=?+VAodZ)wZy`!w{`6$XZmaRZ?&GRcx2N(1KhaGLh@B^~Ay(9T$x*x*Q zAil`}Q<e;x+S5Ka%ZKx|%*+?r6t*KR<~a@5^-nX8o9vQ;2$HtCEfDbC`G#`ypw9Gs z^Vxo>&RjkxwnOdky-*D)wcZ3%9*(pFZgq|~z&=6hBzE<*RQ*Z=4emEkOc+3T3KeJ8 ziS1B(lJ+?#IRbP<@|Io4LxV#nIY#Xvp1ps~dbSRKa<|&Xc>Wa0+1m&;ozE)Vk}%8H zr2ci@yKUsj>>SD6M1@vkL=;MNBM^0DiUcmw@BR8MQrjar7?hk#c(IYIxcyTxc^w21 zNK~AZbyA90=cE{kdC0u&7JbaN&Pg<)eWW_P>N5L78#n@CSDPx#xuqcrV1phG`(Jj4 zQYo$ZNTN3Lj(flni8&xBxf0!_T)70+G6Fm-ft);)9==cl{$vigwLH&Tup&Zk8gG{d zEJB<nzzb9Rdq+KY;qk{*SpVQ#k)uqJ`r%#H2ZtB`NLEjB`X<}ArylfNH2x#H_*WL1 zCgK@t5<D(&w{ucLck+{PyMAgTzjO48mAh}U&;HwqUHjeD&DP!B^<DnmT{YMJpJ-rS zasc2@3E&+LHvkuaD<?!Bqg(_jq?B@V20y@SX@4cBskN!|+v@e2MhDI%&W6*)){keu z#csPo1=i#!w(5Vf99S-%emF&)D>uA=_nu#b{QcFG|LJb?7<8+1%X(CON!Xw2pQQIY z-ufXuD*x`?N%el$G3#2rm;C(Qd1wyv3Hqv>jGpAnuI~HXLCN0lzn^;kIPr@m8Y4Tk zxBWN~%1dr8iX}hY$iQ_I4D|o8_Kq(9s^KZhovlFL*wx{u;3*5y<2fn?>BkAvpEg{@ zwYOSK;wH;kEZ84gM{7nsP_NqdeF)qd<Zki;Yb^X_7$%u6dG>x~>dGcvrjGwKc#oa9 z(q<nJTh~JKT}0EmW3*H7sywXkWb<K<ltjp?Eb()6LpY~;P}7w~pijD%Wg4GoA!U)y zxu<^ggX?hIhTf?r0kEiaR4mc-Yf;&&(j)$fe8=AxuXCw83R28VLsIJ-MIT9Mot`X3 zt+}(ao9%=t<j$Uw(Nh)U+OyFGhSulykz~Ch&tjRgI)4`N!kU5JKxM75Yv{#yNS*nW zU)4zeqr<RJm%(${R>C!!sxRMpo%$V?w{c^hH9rwuHs~m;dFS#SMtS&mLf{EcWWd6_ z!mWAeL$Tw1w`Z=;+I%bK><y=OB6HNdN%0EaMI3_jL~y@3zo$&Yw~FqM4>58Nv}Y?8 zB<x<8r$p;sRkk>r&5EQ*ZQwg3;EMnJ6P&aoQO%X{(jj)?g<UDrE9!;H(lIUq16%17 zZTm0kZJtTah2E~kVa0mDHal@X>j|_b<mK$Nm5q660&P0KhEXrJwyqLnr&0;5ATDNM zMSGP#pejPfKmn(_#PCVC*W<9iH4Ibg_5zHmhh1mFGp$_p?ToS|O=l`b|DJp^>gATl zwRWI1CsaJM6w|0nB}A30T4S3$T#t6%b)~S<iy@CCIcFbBxzsPf@MGWT^cee4nbwA{ zdA9?Rh7S|Jwgj&2{f-j9CjX)XUh~xbVD}?gQljI#0IfZgt%aq-GenB?Nn#*{e%V_L zrW=3eGsoK8!&5^-*Uz+e=RiNUzIPO_n_w@i-f|5^Iao)47wy^HUbQwz4N|i7$XT3y zT<x<MuXf~W)-bUR%dcmke?wkcn&#)KRNZXOliK)m=F^DA!juRhKAzg&P@wJ|dywOg zk6J4E0_#(|f0IY}ZvS=uJ6*`Pm|<vCdECb3nd$Y=mExIH{&KhrZ{(ZgqlM3%f_WYA z0Qd&hG|HIes|DAP+(4>38)HPefXSjA)34W(c3~*pw~`|li-XjEU!KT}>Nafb=trBR z<39|1nyRwIz{)BeJxJE}mS%?81vrf@m-7ACypt{U^##A|rkA_2M=gs!+!>2Q;mxoZ zaF*kbX;BLN$rcWI6_!O<;hYw;^qct~Nq;AlH$ZcjzLh?gPLZ9HeMqEc*ALXU%FX?U znN>VWH>C3=M_i+26~NdUM@oUYt_vo=ZCRr9uSrus_KOM@$)WEmivF?7+2v%`%u|cA zDp5JmyIu6l_gvzA<4^l9V#{*yTC$0=rU)mJ=HI~J+E&ds(jD6IzEhEne|Qjw3`fiP zcMS;k=3-nQ>*sHTZ8ux8Cp*6}5$?55iV75bNan5qSe&ZPT;Jg%#w7drTKo4d(X6`4 zJM|p=m@*4nCfPRlG(yPViBjSDe=brf0TXJQowBY`aZR-cs+~`}lNtgV+!xB9gC1EV z$-nju^j^!gi~SA!@S>qO>EzdFNrdMw-<{e2Uf@!Kk5%!u!vKKW()L*}y-KyfToCt; z<iQxmYX8~RaFp#0R!z25`(MnXlg<{^#Rd_`9qsYW50)a$9W^S$5EEA$rg1gjv6Q1# zuToNRf!}ky2=c}1L_u{9uJ|pS>+jPGUuSrL0}hs>M=ziME56NKx&=O(dMtQi>h{7R z)o*9y%U`4KuxMTehmQ;)q_mLTrLRI`ecqSUS!ZrIS{ZC7KL^gr8*Ux!y3d$T_f2e+ z#HeDiL}O|tZ*K}JXLy8v!v%SS#vQ)@n$dn5hVgO_#f!dE=)BUOo0dIiXtp2g4wrt! zvO394rRerdOhK9tT|qkil!1PS82FMReIjA25iaPj_?2d7^6r!?oEaMO;N=?IaXVAk zw*Bk_gfinkBhyC`uZI}dJ;OF{X_VNT@Z0C=OO)@oGpx1-eh5Se1^qeei}`V}-@0It z`6&^_Q8<~_H%0L59B*2L{b!otFK@56=VbZ0S>mYHauE<!UXNw=a=0gDy!O9f!+sG} zohIPf-}G5E!hp>U``cp2$Y<$0#qac&d5@<SZ;^vxE4P<3NM5-FSRqXOSI!UfkYQo@ zD3{q5g!8!0)ac)fW{NxUk}W*EGReQ>mbnj(4P4~NHG9*vGK401^AoLizCv`(uk%w5 zZdXl`OW!rs+c2~U>|cDi|8a6I?xFbzxy2fpnI8)()l~gyYIT?x{jo|TI^_G#j8gZL zsP7LbUtYnDwu7|dhxOHeleDUZ*hLJ)FIbGcUOSEmbl17`F!!Km*k7&ls5036nzJf6 zxVgOcc4zJO*BnbA;}B7pWFxg>So)S=y!k;A{v%iYIhBP5QXWOzsn!>YF^3T|-P>9W zskg2YD%X4OzpJ<937|)g>ACT7PmHc*M4?4?`?*x4jfJoDrNT!YJEa<(?LTI|>AFc> zi+LG29h)~4%fo~geb&!mPa47_W|}}X`^K_5$$M^z!$#uj?uk^#LU_%7_lJN7CbK={ za_o<{VhRVNCuNk-5zIL2#KK~4y=ZlFhMMOTTa*#E;#QSExH)neicPA747_NsVr@cU zbaoqG%)Fk+HUInLMixIh439FGQxE=ElFP4}yzqpw@L84!ct%$|y#2#({`sa^$ms1L z4*z1o)8CFqMDx{|CINXw7E_@w#XdkA{?5C8aUl$_5ZXH{bR8>>7;ZXP+j+V6o}YSy z^1)&2C<m%n(V=LW^85+chuD{jr{t?Az(~y}IO>C?d<J%F1phQJZU!C%dyE71j8a)( z9(rWULy^=Me;?`$b6{w1UQm3cj#~JW$*|m{ZMbT~-JkiELn!J~$I&DKfxY524$CJJ zWj6!7oBLWy*5?Cd=2K#Ii)sItsW5vP!9v;VvKe~1d@|^edN@b@mE)_i93Px);8du) zJcSgiY+zBmu^VvVWREMyGDqqeM={}LVdEjPrrr+v0ZrCXN6V>up62kFwH%waL@+<1 z&_KHp$6<W7gv&g$>65Z;>>(d{HFq)C|4O#)&qRiMRicSOZ`x~~zhoCVN^4B5I|Ao_ zoRHUB=v)2Dg2g8cceBmBWPRy&ll`oDyc^N<MCuYHFJGWSZmjbk-M*0fM14t!aR1|V zwJUR&ac4KQnq^L_NXw6ww~FNQ+8wlt1ScRohrT8sANxGbIUR9W$o(8OQ!74KCYMQ# z_Ia9JkeHS|PVtxb`Oaw!nT#}@5+M3wZ}exObiN^fF5S_yQcd;b^(<j(nBFbr7&Mp8 zs-op%oU?7-I&M?LA2iOhMm<RcHo0von#j#ZPn@xiaOH}iVp4pIGNlvmbxmK?b<^G2 zCl3S-RM^|)Lo?$=`3l{`c@$xX?)Qv$)VgK+Dik$C)6KMzIB2T8f7A{MGnc_0Sz@2B zd*5?CY)x`&j*M3sC9K+)l;1XfStadE(Dtb;7Ugc!96obiW02B+LYdt4H(SY?r74lT zLD75~nZ123X=+-+{QQ(G37@L3pVzmQC(y-~PI>E=?fU--CIs30T(Sq0V5i2ivHeN; zuG<^@b&u2Xs-@5hB!t~SGFE1iCCoX@Yv><~=b8G)8(tf&LPXz-i}}?}GNn%uTa5{9 zWK-C5)?wK7t^XQCV7#5<fj2Z<<$49#6UT_}@UM&!mT)Xhtxm`U-uX96y7PgBS{SFF zDUzW<YTxg96!2Mw_hEt;;C2}RqChy-#Di6RhSzI`G6~f+E`cz5?G07hC=^>Lksllq zdIMGQduKd<k!Ww_7eyfxcqDOkb;~b?=-6T5Raj_7X-xFl417nm4&fsf{4R7-oY%GF ziF#i5qeX=e5o6;#s}qy#08i{pGyT(~%x5p)q|b$a4wXE@pNY}ofj{_&xA0kZf>V+X z74lM72?~-*u%$*@oubKYF>umB!RDx%N45&c)z-M#pUDn}k%EucC0ine%ltZ@zq<0} zGLZ<k;ahU3*_4{X{QeQh5&G|0Z0U<qzxY5t#T7QetG=z$77_D&xPWGT;=fg`@M>S% z>e@i9*8hrXAiQFJ#RYl(bMeGj;M|f}I7?^&{WG=-c@8fuEQNtH%`V45^$-Q%Zi+zs z!>0;bLZkIpra#jl#vdDrky$Y=<Wn=>syUDrAAluHk!$_-x-Pk)?!y|;CKu79;mG=z zUi#e+;5N??2{n`bwN22C;l+j9)%_(-e-w^}4qcAfAMMI2t)r*dZ(64$A6R-cYR>-{ zD1}>@*NBqMO|3UpvWf7*8GDASDc%vAfvUDF(Kd`>nxr1`PnsRTi6=k;u{ESDyT+}t znRcC5@=+UFB-}uwg6-pLKHJ~u3Uz?`jm)*E(wQu9!l@bWC=4?)*Bcw769qRbq$#7k zM;->iDj%D>^blF6A|je6&%n*$rgZOq)TVq=-Nr=BdAm%BCxV%j%XA~O-ZE8uRMneU z{ut+cBLhH$VCl(4l~mWao<0EN+)T$~IkL}@z!JN%`kwrf2AZ(c3{U`$?V+_uguAfk zgWM?z3g`4{k`-v#;>$HTyE%j}4ni0wjdv@Fw2U82PPD*Wc}=8&p}}Ob!M5T!b~jy? z%RP4XkT5uP?4PS#lZC9InP4<M80X0JBFn+RXB9X8v~Vp60;;5Bv6}QXa-1Ob%3aPc znEM%@LZh5JI*+YBTXJZO^26)dl7=)I;ZqOSHA$cUKm(8IZp+#R^|m)0g#S|DBFxG* zle@XqkzignzS@DjJf<|5M+1w%Mm`qwC4=?L2rY|OoCgXl7kiFSmF}QzypR7n=|Kl* zFTz$q6Y@LFt)bsc70Q8YY*i+N<L(JE&1f6eA|0-i^$}U=Uqv#Q@Q}L4ZD-Qma0s@8 z{X&XJi!xtp8X2fHpa<dq{g8kChN1uZ)ILF=GeNy|#HU9?V_n0RfCqN{Z^2_KzqSAz NHy0t->84-+003d{Zd3pO diff --git a/old/static/icons/icon-72x72.png b/old/static/icons/icon-72x72.png deleted file mode 100644 index dce8745877d15d6ae9bf4d8e0d5527e1bf99423d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4612 zcmV+f68r6mP)<h;3K|Lk000e1NJLTq002k;002k`1^@s6RqeA!0004mX+uL$Nkc;* zaB^>EX>4Tx04R}tkv&MmP!xqvQ>CI61v`j1WT;LSL`5963Pq?8YK2xEOkVm2O&XFE z7e~Rh;NZ_<)xpJCR|i)?5c~mgc5qU3krMAq3N2#1;gOH??m4`7A0X7rOtU)10Zq5f zR3a{Bva4d~6+P&uF91PimN6$uN%+>+J@rxD#dwx~-=Ed1<}3yTMB-Uym^SeS@${x` zaNZ}5u%fIIpA(OnbU@-qt}7nDaW1$l@XUyrPR$cXh{Zx1D{ah*rbawP991=)@`a4Y zD(5ZETDi)a=j1mG=k%3juG1Pu0*hFJ1Q80VD4`4+G5YJISV+-++{ZuU`XzEH<SK!Y zV*wRtkX=9c8~mQFm7kpOlEQJI^TlyKMu5;R(5N}i_p#$NPJrMuaHY5Wl{zr<NqViN zMUQ~KZQ$a%r73&B<qk0TWXPuMN<mseJ`cQ~(KBU%fm@(^&6`_uAEysMnr4-}0S*p< z(E??!``o*$eQy8uH0SpN=bUnHLAIEC00006VoOIv0RI600RN!9r;`8x010qNS#tmY z3ljhU3ljkVnw%H_000McNliru=nD`K2M}M{a1sCj02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{01w<rL_t(|+U=Z4a}(DV$N#4#BpWcEWIQq$Oadm@GVyzC z!tyO&6^kshNCF$GGE|CGzC*&W38~Cfr7BqjaPk#Gs0x81#K8o=M=*(P*_LFmL*z-_ zeeZb-pR2S*OK!=s^A@>PT^d^I;n!!rr<?E>j3Y;mkmn;6_!*lw*RNk^{6&K{5QulN z@?ObvEbLiy-YWy(jRZy;0L79e>{&L+5(W^GB?pL^H2?*`0pJpm&CD(lxd2>Qw;`}- zoxm6<21FHrY5<$fD>GNi_fZchBSEgfSpu*KU_q97`Md-mOGJ)=wO*iT9l(SDMC9Z* z1K0+jmYM4S)B&iK@3so4sQf;}%;W)N3y66D832y~%o5QofLQ>Ki6|q$vLam-2SpWB zB?G1!Kn;Kf05N860<axG6MzP0u4m?YrBov`*D|w#6c)fBBF)S;5iJqX91+bB(G-9* z5lsU~14t543cxfG{VpK009?zmDh7%wBsH4^%r*dx09u&24M019RshXPsdlAQo7TEs z)XR6@M1OwG%&;sgXP5+5nuzWb(FlM9fN>&92(TFda{z41veb<mH~23DbmYhpqfSv# zmqvlHgPC^$*vZTtuIuhqO0^1<;s-+nW`5!`5v_PHV@^Q*NJI|+i~txFNt*?*Kt%4% zn>Y1Z0EN~7CoDFmK_sP%nGXUu#LS0W*ZqfW+dWFDMv<`m6U1r~WWeOVmk|+3?Plf{ zIi4yxCk;R`vubT^<*BJD-Y`G{XOl=x48Se``<b~1z#-Rl58Jlgr?qZmX3Klh#o**i zN&bI|{5K4s8Nhx3TV<bNf#d>Et*x!Pt*woxrl!^xP#&D^06GD5Gjk6!_t>`mPuF#K z$pQLZ^}y=o{eQr1MC5on1dJsyl*7ypGpm-C7EUIU>jNkcPO}`$GtAtpwT|1i-LJLY zR^mw&1XAucB$U_(fQiURQC8wAwSD_`PNh<THx@3@=4=sny<6ZMQcCsOw%yIlq5KnC z&F18LtO|~80RGL)n*oH0$dd1;iD*%vRYroul^cT`6UjNq%)LsfXKmX)z|5gSMz$Cv zKbupkYOZo_d*pRNq-YU9wz;`kr&1}d2%wIRj*xhV1^~O5xf?)_QtGg6+Xnzx#Z)5y zyC5Jc0LKhVoQU$ID~m*AH#IfsbUMvz0wk&x5s_^N@H7Bpb9#(gmFm7%lduW`@<LjW zAab6W7Xa9?SWHh(PnTzdM72T^AvZGfP5@6a^Ha8MKV#G?i0vrkq5RzYI*kZ`e=+kT z$?N7N+MZj@9$BkI*+zO=M4!8C+wRd?SFiPo8(`}Q#m{j6O9IPX;_V{c-Q8BnDkjon zTzV@rKMmlJQtGhdIJ^C9NvST}Pm0#HuCu(4dU5xUq&hHfRPEuzhb2jn0aU}x&5~E` zwr#sBUuA-x7&EU>qcz4lCBw;`ux0&IZ0Rll^^!|cU<vZL^(~@WPXTzwb=`j`rDCN@ zP9X`}NEP$R;Wh!7l-klCM3gNgMOFdnF@RzK+9fM*FU9T@QXd1xvaF3#t0w|c%d++} z^Im4|5L;AGimW2Wxkidzt*-0t1+dA_8x;a$e&_vtO-;=Tbt}iPn{5OIQ{aL|Ez61n z*dant4Ip&jzyT@>$m80h%v=j#J2N*crCLi(9rA5VJRZl_Uw@4^-gu)dm(I*Mb?Oub z1_sd6(-Rm>LHBK0U6R-~1K3JLoBX6GlovG{>8S&-6Tp70b+1yYvlO+;{~V9UaqiqX z#9}e@^z>lMmMyq;?OI6&{?w^cc;ST?uyyNJ96fpzKmGI*QmGWyU=yPf7fk|~miWki z`0ybYQ!#HLtPVh<QmU<7-DhU>_4VQ0xpQc2Y|O1YcI+4q9Xb?vd%eBAICkt<4nQmx z!`ZWE(c9Zwc7Q46+%ECb^`_XCuVz*O_g-ygBDB^GrFshU{_x?$ID7VN4h}P8c6JsQ zFJ43`#jDB5NnE^m5wo+iIolPB#c=N2ImF}fvLMMtY$l?Z0IK%$>iH^Wq^CtnsNJsX z?q98T?UyR__4WC}85kJArAwDkC@}LI3kwSv8yf==p|i6SRaI3WB5dBg8Ap#E#qHa- zkxVAb2|FTM>rns`GGj6a!11bC$S3}(kr|17N~vD0bz3nP?k7QoB<J$w%eZ{`GScaE z$tp27H;2*DQCODc3u$O*2&GgD<)RWZ&oc9`0H&Dvcd<kI2|!|?H(_~Bs~x~T*L8cD zxgn@pF*BZh_F0@cbEcwj%$T2_uLz_(Nt<WpUx;WDzzl$;LV!$3bsK;VX5Oci>S5-Z zV(!#4Z-xH;{)$VEpSq2Xj{2(GbI(1uDkPsG-ICV&9y2EZJOr@V)YO!Vs{JIW)=cBL zu6syq(yBF_{{DWPIdcXL4Gk;cT)K1#0|Ns{r_<0{Lu>7uW|-hH$hu;XjvhUVJ9q9B zbOJt+y{(k`4}ft1DXAN|22i*_Bps4sSU7(o&oAES@9)Ry)2CO!nVFf%NzU~2G?*Fh zzWXlr?%fLj7#kbI$&)8@+xp;x53pm$4gkRT_&83UJek}6`|rPxojZ2|07gbe@cQeo zBb`p;^5x55W<3A=^Qf<{2N9v6p#i5)pT=8ny@els_@Q9^+jA}vB8o7x={70q=FL?i z0A%L1ijBU$KD_hJJ2^PUR($^X=Q%j$0Ar0YbaZr}qoV^&O-(Bfx~ZvY#X9dvdDq1n zW4Z6s=`;og2JpofUtnQjA-AoDh6cR-_S=ZZ<Gzyuc^BB*nq#dB2!A##=^zt*(P$L2 zv$If2<<?bIRiUb?>Is|URh9f)Ebuz4T$f6va{DtwDTUeDSyWe72P&&bS4n;&*Apt{ z?dmd3O3E)AHX_Q*7#tkL#~*);6DLk!&z?O9g+d62!#Hu`1c(Ulz4so72$4txiHQV4 z;ZQF4i$<f!X0wPyA{ZMRgX_Avb&*H}wrwLCjbeO!Ja+*Si9~K4Gvk$4UcpN*y@XIG zl!No&!2?{lZ~=pZgF)=R>0S#|llFFY*#I1`(e!I1$Y!&+a^(sD;P~<5*t>TxLZJ{s zp%9KAKMo?o`Sa(Yl)@*Ue1h8AS^z*MlgR;5O5wu~Kg?z7nM@`JL@9-jKKdxP?(yTt za9y_`oRN_cT)1!n-+ucomX?-Qjk1~9L0;EdF+hx!on4E0)i~cBE-fwL%9Sf%W}G;2 zVg;m^Uw#<?aQ^&x+`oU{_aK#0xOeYf;C0N5S6_V<FTVJqFPtk^t{|Ju22EhitgFM! zDj!hJ%}-2Bm{=$Zpq`oAnR%bogjUU%UDw6L!~`BadW6o-PSn-a!Llq^mW6mcjz}be z>({TBoDTRokwS1j{q)nE<OJQ1);guN{u#gn07<D+yHCVHdBI{0GdD~1e^=0Qf)~>6 z-Mdj=U!Q~2+uMt1G#Us}A*0I7c<r^<io(fevn5>wrPQy?JdEZ3qO<@~g#dwwLJ}M{ zF>|xly4!2ngFs3o5}28pSrw9BE>~##h2Y%3e?Mn)j9Qga^>AHx2*5p&plJY$!^6X> zP&RK|f0UW)M2eo4T1nt5qm;tL#Dp)Tcs!1(sw#Z{{r7>Ur}N>M)F$5`mjcJ*Xy%nt zw*lN^=24jr%KGMFo^-=IC$^oLcT3&2B+)ITZUE5L)rDKPZo#h&#cv<Iy}fwz%{LK^ zMnOcCkQ`%wl3HscLE|!4X8V>qJcinQU&YMzSngDPs+_8w>$;enoXkP0tE)pMlfhSC zeT8e+u3>R;(YFejzb~ydLZJ{kJ3A2$hjTXP>eZ`d!7<xcO5J7Vy8wQX((9bpK>N;% z88wqUY%72|X5MeqY%P%5+S>5VH{amPFTZ>u$}VPu78e&WHa3QEIE-*OjL$y%3|FsS zEy-K?B;50^>;4E}n3+e6{Q;m?14Ob@OQfhyDvWI?a~O3?Bog@UyYHSTM+7;^`T2Q_ zjg8^ny?eNE<3<inspVGlTi10*nRy7ne*lbPxidC9JUpz6&a8UWjF{O>AXYQ;0kKVG z4W$$ki3Bp4Odzl2H!_(FCMPFz5qPORke;;3b{yvxfV<56Us11&s22yBn`Z#Fbg(Cg zXoQG{*J&!a<k^UFw&Besl~M_*Lr;k3T99;uSDl;pND)g0ZKCV2xcul^V5|ksS{p>g z;4eCk^8+*gEb5g2@CN{UczBqDOg($0C@T~EV*vgO;QL~k?|MkiTDw5<|LeN$F93cc zqEV?JW+XB9J+Fc-c*Yj-vTSPUD6_;^H?H>ymSdv|ZNnIHrBq5Obql~9u{{$aJ&vFB z6a^%ZxUH=%S3r~O-vQ7i6K#PHu$+^v1RV2TYrWt&&P`^%1K?)>zl!}?%6IL70g2o9 z-T|mZij+VK2bF?ydWp)NR`y9%9LI46nR$qa?nq#mGMRfJ=?MgAVqyaA?d>eJ5|@aS zN22xw*~VIIPX*v8+qQ?a*0%u+i7ic-v?4$5DH)KIK)J20%|NnEfk_P8ZolnR!njrf zj^j9Ywbp|GZUYz=hcmO9YLx^C0H&s<xV5#_d+&oSp}8$Jqwrd;e5Ii>vm=r-NJK*d z=QpuCivUzH)hZbf03?%1ZfR-J030G(lB=-5%yUH4PDIsM!&r;dc>k-lo_8E)P-}gg zh;B<k>^I4`7R2rZy3wxW`^A#Uq;6?x(adan>eh2w>uDmYC8CDqyC-SG0D1qXlu9~| za}&T25e?<RnHQHH_%6h<?l?>)le)RNS;=kL=63BlW=;#RCL*d@Z#X^?@?E9Wj{xof z7?N0L+>=g}1gC630FX+hxVgDm8(YN88Hq|CG4qrZ-s+_HZ`CVbZc8yUXI<AFbzS$S zWaoDzjkqs?;EYJRTPmD20Wy%9nwqqDv_*LCZ^v@K&A7x&o4xiae~zu308(o`=eq8% zj^o^7=Gy}0XK~}dNu2Xo?4%pSAp7pC6508|g9nL-LPQh+u*FkDYR7V`Z3hu`5>Xcs zwTP{<O5BZR=6S94Bc;@YNNGwg!~_8I+1#+QBo|JX3#Vd$%;@g!wq#Z$3SbKn)k-~k zJC^TIHV+tRv@ENYh#CRZ5K)!D4S8TV0J6-yptXLiwSFiP@w-5nmL)CSs=o`EMFFGA zQK@wW1OU<{N<<WvldhJcTP>EGCF|t17R%jiTbMZqNXjcLs%cBiW$yL*Lm)ktcDcs_ zWx*pc3IMM~YStA{J}3YoA`0Wr=XscioS3CrBrd-{M|pzMtT+Pmpp!*e%(SsvX)x;! zC=ZmWJ%tP~Dd%p&@+}S_fn%8%O3EzC1IqEdn(uPY6{<9t4FgmFR<VaH`8{aK?_o<= uFDQQ*pa9?sj*Wov_xOAKJ^mj5Z{vSv?5Uy%wy<gd0000<MNUMnLSTY|6ol^p diff --git a/old/static/icons/icon-72x72.webp b/old/static/icons/icon-72x72.webp deleted file mode 100644 index e8c983e9c04fa8ea3e997ad2668b6175858ad1c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2278 zcmaKtdpuNI8^;&P<dRE<FghklS9ivxPBV;yacgK4a%nDS)R-C5kdAbyNE6Cscx&e5 ze(fX75hLM9N1{}WlLpaAG9{97E0=jUy`N9#kJG#MUVDA_^ZcH*_Veuh*~<s#>^!s% zfI~ky;t%3&{S*NJW>9xoJ#knpK2H|91+sZ`G9y9`axs{ZY#$d#q@RBP67~it0X685 z0kTAL1j_-B_gGQ?dz<ZrbWrOtUYYCPHQ%+ar~Dj220#W0DKKOfI}+j}5Ti~;vR3#i z#BlOaA_d|b5btI~4+yb%#ZLOl<0~Ax%BxAi*#sXflp7qfBSZheq<=8^D4PLktRRgc zg~5d8m-YL~lodX`!VLNe=-F1=N`}fmGkp(0qaoDwpi<(1C%^+FAb}I$7@&hlU<{2+ z$Pxj3Aiv{x;&oT!@lX^AiaG|!P=pf*2Mj=5jR!050MbD1TWuq#mKLif8D&QR)(%Of zpSA)3;{vdhCY3JaOQlN%0IYcqz#Znd`0zXcY-b>Q+BchFE&!?t00>*Z*+^FasJj4w zb{~t#Ca$it2D-{psQ`Q|1z^2D02*BYC?5V=H^{f*2Zhf7AV9V9cmx2C4}ei9G<V>4 z@`k?0Z*}{>n*Y_$!2|Eght^rIu$F<ab6be{06TqB&)^GMrl`VtoW9LUv&=UmV=zET zWj(!4{sSZNoRD!f6FpI9&fzFve(WGAWyB6T3nz>|4lUr9>I${mHD%HhulC6s7#)$_ z-XW~GojzMX>0UyiKBgZU>7vQ+ZAzhASaK;{adTD)(uO>Qx`vwaqOY^OKp-w91?-?_ zk^-7E*uc$IaB1y^_gN#uBps}8hHaLLURzT-hsC{GW9if8R@!4Q(AuPygwM~=wB{*n zKfXt&y<%XDe`}Aof#cI!71DhY)v8<h!V4Gl1GA$8o$t?W_^Gm%Id1rn7WSztHS~oe z#j{}x{M?OqTYm3vdpVn4l^@xk?dsa6GTS;9Qd9S=j-0p$^PuQ@<n0C8(kM!N5a#A@ zoSixpq9e2j&N6=>E>6vTR!7tJ-(?n6bay(!1!2q<xREobg$Mb{`Nal3ianC*O==<w zaarZu!@@*Ppz~W!Vr<pqxP$G+4bI)7xmWv9mH{#9TdoM-ZrY|#x80?rs9~Nbg|#*K zXXn@iMK!A4Vo3zm7B8+=--`|GnadF09LW@tLs(N@@!URnSGi8?pG_G#g-$%|t#p~$ zOiyQow^z7UAO9TuwTs=YthF)DvT-oNCLX5Kz&D;KO7O81X`eiaRM>ykxHM~Bm{yzT z_8p@o*H9xzgcB@L0#$nt$8Md~c}6;EXKSO!_0}Q}GX|o*h2Yp(k!4Rdx+L-M4c?hB z|LiRMrrbn-#rc%j^8D&EGY1{^NqLIY!|Wv*vZ~h)!_jS+;dmz-SS7P;r>ZvxhtL#8 z8`@J-T@}PJC*9Tg+i<CEujLvW-=z6<@vetAH;xTXg(52MCSxitx3uX0I3Q+}-y4n+ z_SY|WEZI-zUsp6uwA@q}mV4^NhgW%2L5*cab?snbOHu#M;LCiPP2sGOm>X21*M_SM z4WW6MW%%W55H5<6JFrQf9L<4NCUg48{`e%da@4v@aXI)yXn8E<wx-qR5A*q6!sgr* zLRST{bF{})Vsl8iaBQiyC}Dz$g#Y3<DU_sEj!0~ROswVlc-z%GTDk{S??2JIe4ZT> zD(UK;nJB?n4<>V*d9di%$yZ;xn{d5+>vu&z1R!eslUOJ8(+mo{d#TtLAyzU(yMl2a z!*nj~6wPA7kdwwycF~f>Rc7r&Y(u%iVJ}GvcHBP>U-WiUaX<>p7rLuoo4KCplW0jN zWuUzU83p}xS!y6#W~VD~1^djkFJcQe=c{|jV~}g)YU1HQu{K1k{9A5{zChQmS@+`) z#%GC|Z|~)#-jBPxAR{$ez96-XCgjmoXD2W3E7P$nMP5UxmQ^P2dSrAaprP1qXCUFI zKGkVBv1GGL`4z*r9=IP=5?TFh2W8$I3kM_A37RLL(#$#h_|39oyToU}vUJ%i`0pbz z7EWKt?#KVSFG;`lS;ha_1f#_Sm2ftE<P4#9l({9zY#3(Q*tH<(jx{pWPr9eBcmu<V z4vk0b_23MD8d`&%K6<)z{F>>X?}j(Nuuv*gYTmjW5?vzNI*ep7!r-{~L1Lp;e~^vQ z<&~^AT`XGTuWItn-lqI7#)zHZVAS255w{ScJipEgeSsT3f5oBmy7yk#!vT}28p0NL z+0Z-U!H!yU-{%GPmzsT}eo@|Dwrpd6z@B(#3PibA%X!5_@Amb!w$st7Uo!9i{M(f0 zy!%+xv%p;4$6@F>?R&V5()kfN>0s=K%Hm0iMl4VIcv;7+=3%o*_}m{4-l7Q&WfODD z?h_#RX5sYR#fH6U+R;lci1A~lJAQrmiE65-)PrK!)=<XLi@EhrdWBVYuubips)4TB zCoR*t^xdMg>7JNcsU)s+5F^UCC=FbQ7%P6zc1XE9<-Vax_7nBrQG8p`a-BEnjmT-? zKPudujqn38sBweiLHdhH<r%hwFAXz;hN@eKd*T+KzRa4G-r??#YH#35+Y!H(&oaN5 z&Tb5-63p!hvSe>Cahh5RacocR>{L&&4MPjvHTAse3%ur;U4L&PD$OVq4`n_|l`i*C SP9>t7r;d$2hgc2TO#TZMW`*zo diff --git a/old/static/icons/icon-96x96.png b/old/static/icons/icon-96x96.png deleted file mode 100644 index 80f8a47d2aac40576603e69f3a2e9ab374d050b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6414 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 TX7Y&eEe^o6jG%QI4ln)(qUI$7 diff --git a/old/static/icons/icon-96x96.webp b/old/static/icons/icon-96x96.webp deleted file mode 100644 index 1ebf4af17b736cb907e48758dcfbdb4a11021efa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2840 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 G0r(HZ=9!5A diff --git a/old/static/illustrations/coding.svg b/old/static/illustrations/coding.svg deleted file mode 100644 index c07ca1f..0000000 --- a/old/static/illustrations/coding.svg +++ /dev/null @@ -1 +0,0 @@ -<svg id="_0177_coding_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500" data-imageid="coding-1-37" imageName="Coding 1" class="illustrations_image" style="width: 188px;"><defs><style>.cls-1_coding-1-37{fill:url(#linear-gradient);}.cls-1_coding-1-37,.cls-2_coding-1-37,.cls-3_coding-1-37,.cls-4_coding-1-37,.cls-5_coding-1-37,.cls-6_coding-1-37,.cls-7_coding-1-37,.cls-8_coding-1-37,.cls-9_coding-1-37,.cls-10_coding-1-37,.cls-11_coding-1-37,.cls-12_coding-1-37,.cls-13_coding-1-37,.cls-14_coding-1-37,.cls-15_coding-1-37,.cls-16_coding-1-37,.cls-17_coding-1-37,.cls-18_coding-1-37,.cls-19_coding-1-37,.cls-20_coding-1-37,.cls-21_coding-1-37,.cls-22_coding-1-37,.cls-23_coding-1-37,.cls-24_coding-1-37,.cls-25_coding-1-37,.cls-26_coding-1-37,.cls-27_coding-1-37,.cls-28_coding-1-37,.cls-29_coding-1-37,.cls-30_coding-1-37,.cls-31_coding-1-37,.cls-32_coding-1-37,.cls-33_coding-1-37,.cls-34_coding-1-37,.cls-35_coding-1-37,.cls-36_coding-1-37,.cls-37_coding-1-37,.cls-38_coding-1-37,.cls-39_coding-1-37,.cls-40_coding-1-37,.cls-41_coding-1-37,.cls-42_coding-1-37,.cls-43_coding-1-37,.cls-44_coding-1-37,.cls-45_coding-1-37,.cls-46_coding-1-37,.cls-47_coding-1-37,.cls-48_coding-1-37,.cls-49_coding-1-37,.cls-50_coding-1-37,.cls-51_coding-1-37,.cls-52_coding-1-37,.cls-53_coding-1-37,.cls-54_coding-1-37,.cls-55_coding-1-37,.cls-56_coding-1-37,.cls-57_coding-1-37,.cls-58_coding-1-37,.cls-59_coding-1-37,.cls-60_coding-1-37,.cls-61_coding-1-37,.cls-62_coding-1-37,.cls-63_coding-1-37,.cls-64_coding-1-37,.cls-65_coding-1-37,.cls-66_coding-1-37,.cls-67_coding-1-37,.cls-68_coding-1-37,.cls-69_coding-1-37,.cls-70_coding-1-37,.cls-71_coding-1-37{stroke-width:0px;}.cls-2_coding-1-37,.cls-72_coding-1-37{opacity:.52;}.cls-2_coding-1-37,.cls-67_coding-1-37,.cls-68_coding-1-37{isolation:isolate;}.cls-2_coding-1-37,.cls-68_coding-1-37,.cls-71_coding-1-37{fill:#68e1fd;}.cls-3_coding-1-37{fill:url(#linear-gradient-38-coding-1-37);}.cls-4_coding-1-37{fill:url(#linear-gradient-33-coding-1-37);}.cls-5_coding-1-37{fill:url(#linear-gradient-29-coding-1-37);}.cls-6_coding-1-37{fill:url(#linear-gradient-32-coding-1-37);}.cls-7_coding-1-37{fill:url(#linear-gradient-30-coding-1-37);}.cls-8_coding-1-37{fill:url(#linear-gradient-31-coding-1-37);}.cls-9_coding-1-37{fill:url(#linear-gradient-36-coding-1-37);}.cls-10_coding-1-37{fill:url(#linear-gradient-39-coding-1-37);}.cls-11_coding-1-37{fill:url(#linear-gradient-34-coding-1-37);}.cls-12_coding-1-37{fill:url(#linear-gradient-37-coding-1-37);}.cls-13_coding-1-37{fill:url(#linear-gradient-35-coding-1-37);}.cls-14_coding-1-37{fill:url(#linear-gradient-28-coding-1-37);}.cls-15_coding-1-37{fill:url(#linear-gradient-25-coding-1-37);}.cls-16_coding-1-37{fill:url(#linear-gradient-11-coding-1-37);}.cls-17_coding-1-37{fill:url(#linear-gradient-12-coding-1-37);}.cls-18_coding-1-37{fill:url(#linear-gradient-13-coding-1-37);}.cls-19_coding-1-37{fill:url(#linear-gradient-10-coding-1-37);}.cls-20_coding-1-37{fill:url(#linear-gradient-17-coding-1-37);}.cls-21_coding-1-37{fill:url(#linear-gradient-16-coding-1-37);}.cls-22_coding-1-37{fill:url(#linear-gradient-19-coding-1-37);}.cls-23_coding-1-37{fill:url(#linear-gradient-15-coding-1-37);}.cls-24_coding-1-37{fill:url(#linear-gradient-23-coding-1-37);}.cls-25_coding-1-37{fill:url(#linear-gradient-21-coding-1-37);}.cls-26_coding-1-37{fill:url(#linear-gradient-18-coding-1-37);}.cls-27_coding-1-37{fill:url(#linear-gradient-14-coding-1-37);}.cls-28_coding-1-37{fill:url(#linear-gradient-22-coding-1-37);}.cls-29_coding-1-37{fill:url(#linear-gradient-20-coding-1-37);}.cls-30_coding-1-37{fill:url(#linear-gradient-27-coding-1-37);}.cls-31_coding-1-37{fill:url(#linear-gradient-24-coding-1-37);}.cls-32_coding-1-37{fill:url(#linear-gradient-26-coding-1-37);}.cls-33_coding-1-37{fill:url(#linear-gradient-45-coding-1-37);}.cls-34_coding-1-37{fill:url(#linear-gradient-46-coding-1-37);}.cls-35_coding-1-37{fill:url(#linear-gradient-44-coding-1-37);}.cls-36_coding-1-37{fill:url(#linear-gradient-48-coding-1-37);}.cls-37_coding-1-37{fill:url(#linear-gradient-49-coding-1-37);}.cls-38_coding-1-37{fill:url(#linear-gradient-47-coding-1-37);}.cls-39_coding-1-37{fill:url(#linear-gradient-42-coding-1-37);}.cls-40_coding-1-37{fill:url(#linear-gradient-43-coding-1-37);}.cls-41_coding-1-37{fill:url(#linear-gradient-40-coding-1-37);}.cls-42_coding-1-37{fill:url(#linear-gradient-41-coding-1-37);}.cls-43_coding-1-37{fill:url(#linear-gradient-59-coding-1-37);}.cls-44_coding-1-37{fill:url(#linear-gradient-57-coding-1-37);}.cls-45_coding-1-37{fill:url(#linear-gradient-58-coding-1-37);}.cls-46_coding-1-37{fill:url(#linear-gradient-55-coding-1-37);}.cls-47_coding-1-37{fill:url(#linear-gradient-56-coding-1-37);}.cls-48_coding-1-37{fill:url(#linear-gradient-53-coding-1-37);}.cls-49_coding-1-37{fill:url(#linear-gradient-51-coding-1-37);}.cls-50_coding-1-37{fill:url(#linear-gradient-52-coding-1-37);}.cls-51_coding-1-37{fill:url(#linear-gradient-50-coding-1-37);}.cls-52_coding-1-37{fill:url(#linear-gradient-54-coding-1-37);}.cls-53_coding-1-37{fill:url(#linear-gradient-60-coding-1-37);}.cls-54_coding-1-37{fill:url(#linear-gradient-61-coding-1-37);}.cls-55_coding-1-37{fill:url(#linear-gradient-62-coding-1-37);}.cls-56_coding-1-37{fill:url(#linear-gradient-65-coding-1-37);}.cls-57_coding-1-37{fill:url(#linear-gradient-63-coding-1-37);}.cls-58_coding-1-37{fill:url(#linear-gradient-64-coding-1-37);}.cls-59_coding-1-37{fill:url(#linear-gradient-4-coding-1-37);}.cls-60_coding-1-37{fill:url(#linear-gradient-2-coding-1-37);}.cls-61_coding-1-37{fill:url(#linear-gradient-3-coding-1-37);}.cls-62_coding-1-37{fill:url(#linear-gradient-8-coding-1-37);}.cls-63_coding-1-37{fill:url(#linear-gradient-9-coding-1-37);}.cls-64_coding-1-37{fill:url(#linear-gradient-7-coding-1-37);}.cls-65_coding-1-37{fill:url(#linear-gradient-5-coding-1-37);}.cls-66_coding-1-37{fill:url(#linear-gradient-6-coding-1-37);}.cls-67_coding-1-37{opacity:.27;}.cls-67_coding-1-37,.cls-69_coding-1-37{fill:#fff;}.cls-68_coding-1-37{opacity:.24;}.cls-70_coding-1-37{fill:#ffb4a3;}</style><linearGradient id="linear-gradient-coding-1-37" x1="264.57" y1="2538.53" x2="266.58" y2="2475.27" gradientTransform="translate(-31 2871.49) scale(1 -1)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#231f20" stop-opacity="0"/><stop offset="1" stop-color="#231f20"/></linearGradient><linearGradient id="linear-gradient-2-coding-1-37" x1="203.42" y1="2574.44" x2="221.4" y2="2520.48" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-3-coding-1-37" x1="203.42" y1="2565.35" x2="221.4" y2="2511.38" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-4-coding-1-37" x1="203.42" y1="2556.25" x2="221.4" y2="2502.29" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-5-coding-1-37" x1="203.42" y1="2547.16" x2="221.4" y2="2493.19" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-6-coding-1-37" x1="215.14" y1="2574.44" x2="233.13" y2="2520.48" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-7-coding-1-37" x1="215.14" y1="2565.34" x2="233.13" y2="2511.38" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-8-coding-1-37" x1="215.14" y1="2556.25" x2="233.13" y2="2502.29" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-9-coding-1-37" x1="215.13" y1="2547.16" x2="233.13" y2="2493.19" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-10-coding-1-37" x1="226.87" y1="2574.44" x2="244.85" y2="2520.48" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-11-coding-1-37" x1="226.87" y1="2565.35" x2="244.85" y2="2511.38" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-12-coding-1-37" x1="226.87" y1="2556.25" x2="244.85" y2="2502.29" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-13-coding-1-37" x1="226.86" y1="2547.16" x2="244.85" y2="2493.19" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-14-coding-1-37" x1="238.58" y1="2574.44" x2="256.58" y2="2520.48" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-15-coding-1-37" x1="238.58" y1="2565.34" x2="256.58" y2="2511.38" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-16-coding-1-37" x1="238.58" y1="2556.25" x2="256.58" y2="2502.29" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-17-coding-1-37" x1="250.31" y1="2574.44" x2="268.3" y2="2520.48" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-18-coding-1-37" x1="250.31" y1="2565.35" x2="268.3" y2="2511.38" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-19-coding-1-37" x1="250.31" y1="2556.25" x2="268.3" y2="2502.29" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-20-coding-1-37" x1="262.03" y1="2574.44" x2="280.02" y2="2520.48" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-21-coding-1-37" x1="262.03" y1="2565.34" x2="280.02" y2="2511.38" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-22-coding-1-37" x1="262.03" y1="2556.25" x2="280.02" y2="2502.29" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-23-coding-1-37" x1="273.76" y1="2574.44" x2="291.74" y2="2520.48" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-24-coding-1-37" x1="273.76" y1="2565.35" x2="291.74" y2="2511.38" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-25-coding-1-37" x1="273.76" y1="2556.25" x2="291.74" y2="2502.29" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-26-coding-1-37" x1="285.47" y1="2574.44" x2="303.47" y2="2520.48" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-27-coding-1-37" x1="285.47" y1="2565.34" x2="303.47" y2="2511.38" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-28-coding-1-37" x1="285.47" y1="2556.25" x2="303.47" y2="2502.29" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-29-coding-1-37" x1="297.2" y1="2574.44" x2="315.18" y2="2520.47" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-30-coding-1-37" x1="297.2" y1="2565.34" x2="315.18" y2="2511.38" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-31-coding-1-37" x1="297.2" y1="2556.25" x2="315.18" y2="2502.29" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-32-coding-1-37" x1="297.19" y1="2547.15" x2="315.18" y2="2493.19" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-33-coding-1-37" x1="308.92" y1="2574.44" x2="326.91" y2="2520.48" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-34-coding-1-37" x1="308.92" y1="2565.35" x2="326.91" y2="2511.38" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-35-coding-1-37" x1="308.92" y1="2556.25" x2="326.91" y2="2502.29" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-36-coding-1-37" x1="308.92" y1="2547.16" x2="326.9" y2="2493.19" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-37-coding-1-37" x1="320.64" y1="2574.44" x2="338.63" y2="2520.48" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-38-coding-1-37" x1="320.64" y1="2565.34" x2="338.63" y2="2511.38" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-39-coding-1-37" x1="320.64" y1="2556.25" x2="338.63" y2="2502.29" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-40-coding-1-37" x1="320.64" y1="2547.16" x2="338.63" y2="2493.19" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-41-coding-1-37" x1="258.65" y1="2554.23" x2="258.18" y2="2472.72" xlink:href="#linear-gradient-coding-1-37"/><linearGradient id="linear-gradient-42-coding-1-37" x1="291.77" y1="-753.45" x2="288.24" y2="-564.55" gradientTransform="translate(-119.24 791.63)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".99" stop-color="#fff"/></linearGradient><linearGradient id="linear-gradient-43-coding-1-37" x1="282.41" y1="-743.5" x2="279.14" y2="-568.85" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-44-coding-1-37" x1="377.21" y1="-744.08" x2="373.88" y2="-566.32" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-45-coding-1-37" x1="311.25" y1="-734.17" x2="308.18" y2="-571.26" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-46-coding-1-37" x1="333.16" y1="-725.76" x2="330.29" y2="-573.04" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-47-coding-1-37" x1="390.41" y1="-724.38" x2="387.57" y2="-572.17" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-48-coding-1-37" x1="327.66" y1="-717.12" x2="325" y2="-574.86" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-49-coding-1-37" x1="398.12" y1="-718.81" x2="395.4" y2="-573.31" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-50-coding-1-37" x1="303.42" y1="-673.73" x2="300.97" y2="-542.74" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-51-coding-1-37" x1="295.31" y1="-667.18" x2="293.05" y2="-545.91" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-52-coding-1-37" x1="373.07" y1="-671.49" x2="370.65" y2="-542.69" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-53-coding-1-37" x1="318.73" y1="-662.84" x2="316.56" y2="-547.18" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-54-coding-1-37" x1="336.73" y1="-658.68" x2="334.65" y2="-548.27" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-55-coding-1-37" x1="384.25" y1="-656.89" x2="382.21" y2="-547.82" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-56-coding-1-37" x1="332" y1="-653.11" x2="330.07" y2="-549.71" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-57-coding-1-37" x1="390.9" y1="-656.4" x2="388.88" y2="-548.28" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-58-coding-1-37" x1="311.48" y1="-623.18" x2="309.66" y2="-525.92" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-59-coding-1-37" x1="304.36" y1="-618.33" x2="302.68" y2="-528.48" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-60-coding-1-37" x1="370.26" y1="-624.25" x2="368.39" y2="-525.09" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-61-coding-1-37" x1="324.06" y1="-616.39" x2="322.41" y2="-529.21" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-62-coding-1-37" x1="339.32" y1="-614.37" x2="337.73" y2="-529.95" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-63-coding-1-37" x1="379.93" y1="-612.44" x2="378.39" y2="-529.73" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-64-coding-1-37" x1="335.18" y1="-610.41" x2="333.7" y2="-531.17" xlink:href="#linear-gradient-42-coding-1-37"/><linearGradient id="linear-gradient-65-coding-1-37" x1="385.78" y1="-614.38" x2="384.2" y2="-529.87" xlink:href="#linear-gradient-42-coding-1-37"/></defs><path id="background_coding-1-37" class="cls-68_coding-1-37 targetColor" d="M381.42,351.48c-12.21,4.69-25.11,7.55-37.08,12.81-19.54,8.63-35.74,23.3-54.22,33.99-7.97,4.63-16.4,8.42-25.15,11.33-8.64,2.87-17.54,4.9-26.57,6.06-11.99,1.55-24.11,1.84-36.16.88-11.61-.89-23.13-2.65-34.48-5.26-17.09-3.94-33.87-9.14-50.19-15.54-50.66-19.52-83.74-120.68-61.66-168.5,9.72-21.09,28.74-36.22,42.45-54.96,25.41-34.79,33.06-82.56,66.41-109.85,21.61-17.67,51.02-23.51,78.83-21.33,27.81,2.18,54.47,11.74,80.4,22.05,12.51,4.96,25.19,10.28,35.31,19.19,17.84,15.66,25.05,39.74,36.33,60.63,18.44,34.19,49.62,62.91,55.63,101.21,7.11,45.6-26.79,90.72-69.85,107.29Z" style="fill: rgb(124, 58, 237);"/><g id="keyboard_coding-1-37"><rect class="cls-71_coding-1-37 targetColor" x="165.82" y="297.18" width="134.88" height="52.1" style="fill: rgb(124, 58, 237);"/><rect class="cls-1_coding-1-37" x="165.82" y="297.18" width="134.88" height="52.1"/><rect class="cls-71_coding-1-37 targetColor" x="165.82" y="293.95" width="134.88" height="52.1" style="fill: rgb(124, 58, 237);"/><rect class="cls-60_coding-1-37" x="171.1" y="302.61" width="8.89" height="7.68"/><rect class="cls-61_coding-1-37" x="171.1" y="311.7" width="8.89" height="7.68"/><rect class="cls-59_coding-1-37" x="171.1" y="320.79" width="8.89" height="7.68"/><rect class="cls-65_coding-1-37" x="171.1" y="329.9" width="8.89" height="7.68"/><rect class="cls-66_coding-1-37" x="182.82" y="302.61" width="8.89" height="7.68"/><rect class="cls-64_coding-1-37" x="182.82" y="311.7" width="8.89" height="7.68"/><rect class="cls-62_coding-1-37" x="182.82" y="320.79" width="8.89" height="7.68"/><rect class="cls-63_coding-1-37" x="182.82" y="329.9" width="8.89" height="7.68"/><rect class="cls-19_coding-1-37" x="194.55" y="302.61" width="8.89" height="7.68"/><rect class="cls-16_coding-1-37" x="194.55" y="311.7" width="8.89" height="7.68"/><rect class="cls-17_coding-1-37" x="194.55" y="320.79" width="8.89" height="7.68"/><rect class="cls-18_coding-1-37" x="194.55" y="329.9" width="8.89" height="7.68"/><rect class="cls-27_coding-1-37" x="206.27" y="302.61" width="8.89" height="7.68"/><rect class="cls-23_coding-1-37" x="206.27" y="311.7" width="8.89" height="7.68"/><rect class="cls-21_coding-1-37" x="206.27" y="320.79" width="8.89" height="7.68"/><rect class="cls-20_coding-1-37" x="218" y="302.61" width="8.89" height="7.68"/><rect class="cls-26_coding-1-37" x="218" y="311.7" width="8.89" height="7.68"/><rect class="cls-22_coding-1-37" x="218" y="320.79" width="8.89" height="7.68"/><rect class="cls-29_coding-1-37" x="229.72" y="302.61" width="8.89" height="7.68"/><rect class="cls-25_coding-1-37" x="229.72" y="311.7" width="8.89" height="7.68"/><rect class="cls-28_coding-1-37" x="229.72" y="320.79" width="8.89" height="7.68"/><rect class="cls-24_coding-1-37" x="241.44" y="302.61" width="8.89" height="7.68"/><rect class="cls-31_coding-1-37" x="241.44" y="311.7" width="8.89" height="7.68"/><rect class="cls-15_coding-1-37" x="241.44" y="320.79" width="8.89" height="7.68"/><rect class="cls-32_coding-1-37" x="253.16" y="302.61" width="8.89" height="7.68"/><rect class="cls-30_coding-1-37" x="253.16" y="311.7" width="8.89" height="7.68"/><rect class="cls-14_coding-1-37" x="253.16" y="320.79" width="8.89" height="7.68"/><rect class="cls-5_coding-1-37" x="264.88" y="302.61" width="8.89" height="7.68"/><rect class="cls-7_coding-1-37" x="264.88" y="311.7" width="8.89" height="7.68"/><rect class="cls-8_coding-1-37" x="264.88" y="320.79" width="8.89" height="7.68"/><rect class="cls-6_coding-1-37" x="264.88" y="329.9" width="8.89" height="7.68"/><rect class="cls-4_coding-1-37" x="276.61" y="302.61" width="8.89" height="7.68"/><rect class="cls-11_coding-1-37" x="276.61" y="311.7" width="8.89" height="7.68"/><rect class="cls-13_coding-1-37" x="276.61" y="320.79" width="8.89" height="7.68"/><rect class="cls-9_coding-1-37" x="276.61" y="329.9" width="8.89" height="7.68"/><rect class="cls-12_coding-1-37" x="288.33" y="302.61" width="8.89" height="7.68"/><rect class="cls-3_coding-1-37" x="288.33" y="311.7" width="8.89" height="7.68"/><rect class="cls-10_coding-1-37" x="288.33" y="320.79" width="8.89" height="7.68"/><rect class="cls-41_coding-1-37" x="288.33" y="329.9" width="8.89" height="7.68"/><rect class="cls-42_coding-1-37" x="192.8" y="330.4" width="69.52" height="7.53"/></g><g id="screen_coding-1-37"><polygon class="cls-2_coding-1-37 targetColor" points="335.89 267.85 112.76 267.85 52.4 142 411.35 142 335.89 267.85" style="fill: rgb(124, 58, 237);"/><path class="cls-67_coding-1-37" d="M162.87,255.03h-87.71c-5.1,0-10.56-2.85-12.21-6.37l-15.08-32.29c-1.64-3.52,1.16-6.37,6.26-6.37h87.72c5.09,0,10.55,2.85,12.2,6.37l15.08,32.26c1.65,3.52-1.16,6.4-6.26,6.4Z"/><path class="cls-69_coding-1-37" d="M157.21,263.09h-87.72c-5.09,0-10.56-2.85-12.2-6.37l-15.08-32.26c-1.62-3.52,1.16-6.4,6.26-6.4h87.71c5.1,0,10.56,2.86,12.21,6.38l15.12,32.28c1.6,3.52-1.2,6.37-6.29,6.37Z"/><path class="cls-67_coding-1-37" d="M319.51,226.61h87.72c5.1,0,10.56-2.86,12.21-6.37l15.07-32.27c1.65-3.51-1.16-6.37-6.25-6.37h-87.72c-5.09,0-10.56,2.86-12.21,6.37l-15.11,32.27c-1.61,3.51,1.19,6.37,6.28,6.37Z"/><path class="cls-69_coding-1-37" d="M319.51,237.93h87.72c5.1,0,10.56-2.86,12.21-6.38l15.07-32.26c1.65-3.51-1.16-6.37-6.25-6.37h-87.72c-5.09,0-10.56,2.86-12.21,6.37l-15.11,32.26c-1.61,3.52,1.19,6.38,6.28,6.38Z"/><polygon class="cls-39_coding-1-37" points="136.82 165.94 202.64 165.94 203.38 170.66 138.99 170.66 136.82 165.94"/><polygon class="cls-40_coding-1-37" points="140.94 174.9 179.45 174.9 180.58 178.98 142.82 178.98 140.94 174.9"/><polygon class="cls-35_coding-1-37" points="194.99 174.9 316.18 174.9 314.6 179 195.81 179 194.99 174.9"/><polygon class="cls-33_coding-1-37" points="163.97 183.16 214.82 183.16 215.24 187.12 165.41 187.12 163.97 183.16"/><polygon class="cls-34_coding-1-37" points="182.44 190.76 240.7 190.76 240.61 194.48 183.48 194.48 182.44 190.76"/><polygon class="cls-38_coding-1-37" points="244.5 190.76 293.34 190.76 292.12 194.88 244.33 194.88 244.5 190.76"/><polygon class="cls-36_coding-1-37" points="184.34 197.82 227.67 197.82 227.83 201.06 185.25 201.06 184.34 197.82"/><polygon class="cls-37_coding-1-37" points="231.83 197.82 321.25 197.82 319.6 201.39 231.92 201.39 231.83 197.82"/><polygon class="cls-51_coding-1-37" points="155.52 206.57 208.98 206.57 209.47 209.69 156.97 209.69 155.52 206.57"/><polygon class="cls-49_coding-1-37" points="158.27 212.52 189.78 212.52 190.54 215.26 159.53 215.26 158.27 212.52"/><polygon class="cls-50_coding-1-37" points="202.5 212.52 301.69 212.52 300.63 215.28 203.05 215.28 202.5 212.52"/><polygon class="cls-48_coding-1-37" points="176.68 218.08 218.6 218.08 218.89 220.79 177.66 220.79 176.68 218.08"/><polygon class="cls-52_coding-1-37" points="191.6 223.3 239.96 223.3 239.91 225.86 192.33 225.86 191.6 223.3"/><polygon class="cls-46_coding-1-37" points="243.12 223.3 283.65 223.3 282.81 226.14 243 226.14 243.12 223.3"/><polygon class="cls-47_coding-1-37" points="192.92 228.18 229.11 228.18 229.22 230.46 193.55 230.46 192.92 228.18"/><polygon class="cls-44_coding-1-37" points="232.58 228.18 307.26 228.18 306.11 230.69 232.65 230.69 232.58 228.18"/><polygon class="cls-45_coding-1-37" points="168.31 234.34 213.31 234.34 213.65 236.57 169.34 236.57 168.31 234.34"/><polygon class="cls-43_coding-1-37" points="170.26 238.58 196.94 238.58 197.49 240.55 171.18 240.55 170.26 238.58"/><polygon class="cls-53_coding-1-37" points="207.7 238.58 291.65 238.58 290.89 240.56 208.1 240.56 207.7 238.58"/><polygon class="cls-54_coding-1-37" points="185.6 242.58 221.25 242.58 221.46 244.55 186.31 244.55 185.6 242.58"/><polygon class="cls-55_coding-1-37" points="198.11 246.37 239.45 246.37 239.4 248.25 198.64 248.25 198.11 246.37"/><polygon class="cls-57_coding-1-37" points="242.14 246.37 276.78 246.37 276.16 248.45 242.05 248.45 242.14 246.37"/><polygon class="cls-58_coding-1-37" points="199.06 249.97 230.13 249.97 230.21 251.64 199.53 251.64 199.06 249.97"/><polygon class="cls-56_coding-1-37" points="233.12 249.97 297.23 249.97 296.38 251.81 233.16 251.81 233.12 249.97"/><g class="cls-72_coding-1-37"><polygon class="cls-71_coding-1-37 targetColor" points="50.23 226.77 84.02 226.77 84.4 228.56 51.35 228.56 50.23 226.77" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="52.35 230.17 72.12 230.17 72.7 231.72 53.32 231.72 52.35 230.17" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="80.09 230.17 142.32 230.17 141.5 231.73 80.52 231.73 80.09 230.17" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="64.17 233.31 90.28 233.31 90.5 234.82 64.91 234.82 64.17 233.31" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="73.65 236.21 103.57 236.21 103.52 237.61 74.19 237.61 73.65 236.21" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="105.52 236.21 130.59 236.21 129.96 237.77 105.42 237.77 105.52 236.21" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="74.63 238.89 96.88 238.89 96.96 240.12 75.1 240.12 74.63 238.89" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="99.01 238.89 144.91 238.89 144.07 240.24 99.06 240.24 99.01 238.89" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="59.84 242.21 87.27 242.21 87.53 243.41 60.57 243.41 59.84 242.21" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="61.24 244.48 77.42 244.48 77.81 245.52 61.9 245.52 61.24 244.48" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="83.96 244.48 134.88 244.48 134.33 245.52 84.23 245.52 83.96 244.48" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="70.69 246.58 92.22 246.58 92.37 247.62 71.2 247.62 70.69 246.58" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="78.37 248.57 103.19 248.57 103.16 249.54 78.73 249.54 78.37 248.57" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="104.81 248.57 125.62 248.57 125.18 249.65 104.74 249.65 104.81 248.57" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="79.03 250.43 97.62 250.43 97.67 251.29 79.36 251.29 79.03 250.43" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="99.4 250.43 137.74 250.43 137.14 251.38 99.43 251.38 99.4 250.43" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="66.41 252.77 89.5 252.77 89.69 253.62 66.92 253.62 66.41 252.77" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="67.4 254.38 81.1 254.38 81.38 255.13 67.88 255.13 67.4 254.38" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="86.63 254.38 129.72 254.38 129.33 255.13 86.83 255.13 86.63 254.38" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="75.28 255.9 93.58 255.9 93.69 256.65 75.64 256.65 75.28 255.9" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="81.7 257.34 102.92 257.34 102.89 258.05 81.97 258.05 81.7 257.34" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="104.31 257.34 122.09 257.34 121.77 258.14 104.26 258.14 104.31 257.34" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="82.19 258.71 98.14 258.71 98.18 259.35 82.43 259.35 82.19 258.71" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="99.68 258.71 132.59 258.71 132.15 259.41 99.69 259.41 99.68 258.71" style="fill: rgb(124, 58, 237);"/></g><g class="cls-72_coding-1-37"><polygon class="cls-71_coding-1-37 targetColor" points="346.63 202.52 374.41 202.52 373.64 204.05 346.47 204.05 346.63 202.52" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="346.33 205.44 362.58 205.44 362.12 206.77 346.19 206.77 346.33 205.44" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="369.14 205.44 420.28 205.44 418.67 206.78 368.54 206.78 369.14 205.44" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="354.15 208.13 375.61 208.13 374.88 209.42 353.86 209.42 354.15 208.13" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="360.21 210.61 384.8 210.61 383.91 211.82 359.8 211.82 360.21 210.61" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="386.4 210.61 407.01 210.61 405.56 211.95 385.39 211.95 386.4 210.61" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="359.4 212.91 377.68 212.91 377.01 213.96 359.04 213.96 359.4 212.91" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="379.44 212.91 417.18 212.91 415.67 214.07 378.66 214.07 379.44 212.91" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="345.24 215.75 367.79 215.75 367.29 216.78 345.13 216.78 345.24 215.75" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="345.03 217.69 358.33 217.69 358.03 218.59 344.94 218.59 345.03 217.69" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="363.7 217.69 405.56 217.69 404.48 218.59 363.3 218.59 363.7 217.69" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="351.53 219.51 369.22 219.51 368.73 220.39 351.33 220.39 351.53 219.51" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="356.64 221.21 377.05 221.21 376.44 222.04 356.35 222.04 356.64 221.21" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="378.38 221.21 395.48 221.21 394.48 222.13 377.67 222.13 378.38 221.21" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="356.07 222.8 371.34 222.8 370.87 223.54 355.83 223.54 356.07 222.8" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="372.81 222.8 404.33 222.8 403.27 223.62 372.27 223.62 372.81 222.8" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="344.28 224.8 363.28 224.8 362.91 225.53 344.2 225.53 344.28 224.8" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="344.14 226.19 355.39 226.19 355.17 226.83 344.07 226.83 344.14 226.19" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="359.94 226.19 395.36 226.19 394.59 226.83 359.65 226.83 359.94 226.19" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="349.69 227.49 364.74 227.49 364.38 228.13 349.54 228.13 349.69 227.49" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="354.11 228.73 371.55 228.73 371.1 229.34 353.9 229.34 354.11 228.73" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="372.68 228.73 387.3 228.73 386.57 229.4 372.18 229.4 372.68 228.73" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="353.68 229.89 366.8 229.89 366.45 230.44 353.5 230.44 353.68 229.89" style="fill: rgb(124, 58, 237);"/><polygon class="cls-71_coding-1-37 targetColor" points="368.05 229.89 395.11 229.89 394.34 230.5 367.66 230.5 368.05 229.89" style="fill: rgb(124, 58, 237);"/></g></g><g id="hands_coding-1-37"><path class="cls-70_coding-1-37" d="M185.13,329.89c.24-1.03.92-2.31,1.96-1.98.55.18.81.78,1.02,1.31.56,1.47,2.77,3.48,3.31,4.96.1-3.7.24-13.05,2.46-18.4.29-.7,1.1-1.03,1.8-.74.45.19.76.6.83,1.08.86,6.08,1.42,15.92,1.77,13.91.45-2.54,1.85-22.94,5.67-20.61,1.2,3.62.35,17.64-.1,21.43,1.02-5.02,2.93-24.87,6.77-22.75,2.43,6.34-2.61,22.56-.3,28.94.43,1.17,1.34,2.43,2.6,2.34s1.91-1.42,1.99-2.62-.26-2.38-.17-3.58c0-.66.35-1.27.92-1.6,1.11-.48,2.05.92,2.37,2.12,1.5,5.59,1.4,11.49-.28,17.02-1.76,5.78-5.17,10.89-8.52,15.9-.44.74-1.01,1.4-1.68,1.93-.36.24-.75.42-1.16.55-2.89.96-5.92,1.39-8.96,1.28-13.1-.72-11.9-9.16-12.94-16.38-1.34-8.01-1.12-16.2.63-24.13Z"/><path class="cls-69_coding-1-37" d="M185.31,371.09c.53-1.22,1.48-2.2,2.68-2.77.7-.22,1.44-.32,2.18-.3,6.09-.12,12.17.39,18.16,1.52.58.04,1.12.3,1.52.71.21.33.33.7.34,1.09.37,2.98.05,6.01-.92,8.85-.1.43-.35.81-.7,1.07-.39.17-.82.21-1.23.11-6.17-.7-12.37-1.04-18.58-1.02-6.25-.03-6.16-4.32-3.46-9.27Z"/><path class="cls-71_coding-1-37 targetColor" d="M208.64,416.53c-12.08-.93-24.08-2.76-35.89-5.48-.36-1.18-.44-2.43-.23-3.65,1.48-9.17,4.61-17.99,9.24-26.04.39-.85,1.04-1.57,1.85-2.04.64-.27,1.33-.39,2.01-.34,7.6-.18,15.2.41,22.68,1.75,1.12.05,2.17.55,2.92,1.38.4.69.59,1.49.55,2.29.42,10.81-.63,21.62-3.12,32.14Z" style="fill: rgb(124, 58, 237);"/><path class="cls-70_coding-1-37" d="M235.78,367.57c-.5-.92-.88-2.23,0-2.77.43-.23.94-.29,1.41-.16,1.72.28,3.36.95,4.79,1.95,2.21,1.54,4.62,4.01,7.1,2.9,2.14-.97,2.33-3.89,2.19-6.25-.47-7.89-.94-15.78-1.42-23.67,0-.79,0-1.75.68-2.13,1.04-.56,2.06.78,2.5,1.85l5.66,14.32c1.08-3.45-.18-15.29.35-20.54.08-.84.83-1.46,1.67-1.38.56.05,1.04.41,1.26.93,1.71,4.11,3.57,14.79,3.89,17.32.92,7.54,1.4.92,1.67-.34.67-3.14-.2-13.86,1.69-14.68,2.77.2,3.7,3.81,3.76,6.6.06,2.79-1.4,13.6,1.32,14.25,1.2-3.01,1.11-8.49,2.73-8.7,2.53,1.16.3,12.69-.51,15.36-2.4,8-.86,6.95-3.25,14.94-.46,2.01-1.35,3.9-2.59,5.54-1.58,1.6-3.58,2.71-5.78,3.19-13.34,3.72-23.35-8.08-29.13-18.54Z"/><path class="cls-69_coding-1-37" d="M251.85,396.96c0,.71.3,1.38.82,1.85.32.17.67.27,1.04.3,5.44.65,10.96.24,16.25-1.21.56-.1,1.09-.36,1.52-.73.41-.48.65-1.07.7-1.69.52-3.58-1.07-7.08-2.62-10.34-.09-.24-.24-.44-.44-.59-.26-.1-.54-.12-.8-.05-2.59.43-5.19.73-7.81.92-1.9.13-5.03-.48-6.79.25-3.46,1.43-2.2,8.16-1.86,11.29Z"/><path class="cls-71_coding-1-37 targetColor" d="M276.15,408.62c-9.02,2.99-18.3,5.11-27.72,6.32.12-3.7.23-7.52.55-11.23.26-3.16,3.39-9.39,7.24-9.39,3.85-1.66,8.19-1.78,12.37-1.89,1.47,0,3.11,0,4.22.97s1.32,2.36,1.55,3.7c.67,3.8,1.33,7.65,1.79,11.52Z" style="fill: rgb(124, 58, 237);"/></g></svg> \ No newline at end of file diff --git a/old/static/illustrations/diversity.svg b/old/static/illustrations/diversity.svg deleted file mode 100644 index 98310c8..0000000 --- a/old/static/illustrations/diversity.svg +++ /dev/null @@ -1 +0,0 @@ -<svg id="_0212_diversity" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500" data-imageid="diversity-90" imageName="Diversity" class="illustrations_image" style="width: 188px;"><defs><style>.cls-1_diversity-90{fill:url(#linear-gradient);}.cls-1_diversity-90,.cls-2_diversity-90,.cls-3_diversity-90,.cls-4_diversity-90,.cls-5_diversity-90,.cls-6_diversity-90,.cls-7_diversity-90,.cls-8_diversity-90,.cls-9_diversity-90,.cls-10_diversity-90,.cls-11_diversity-90,.cls-12_diversity-90,.cls-13_diversity-90,.cls-14_diversity-90,.cls-15_diversity-90,.cls-16_diversity-90,.cls-17_diversity-90{stroke-width:0px;}.cls-2_diversity-90{fill:url(#linear-gradient-11-diversity-90);}.cls-3_diversity-90{fill:url(#linear-gradient-10-diversity-90);}.cls-4_diversity-90{fill:url(#linear-gradient-4-diversity-90);}.cls-5_diversity-90{fill:url(#linear-gradient-2-diversity-90);}.cls-6_diversity-90{fill:url(#linear-gradient-3-diversity-90);}.cls-7_diversity-90{fill:url(#linear-gradient-8-diversity-90);}.cls-8_diversity-90{fill:url(#linear-gradient-9-diversity-90);}.cls-9_diversity-90{fill:url(#linear-gradient-7-diversity-90);}.cls-10_diversity-90{fill:url(#linear-gradient-5-diversity-90);}.cls-11_diversity-90{fill:url(#linear-gradient-6-diversity-90);}.cls-12_diversity-90{isolation:isolate;opacity:.24;}.cls-12_diversity-90,.cls-17_diversity-90{fill:#68e1fd;}.cls-13_diversity-90{fill:#c14834;}.cls-14_diversity-90{fill:#ffaa71;}.cls-15_diversity-90{fill:#ffb4a3;}.cls-16_diversity-90{fill:#f1b475;}</style><linearGradient id="linear-gradient-diversity-90" x1="-1860.21" y1="1912.58" x2="-1883.21" y2="1805.73" gradientTransform="translate(228.24 2819.53) rotate(47.32) scale(1 -1)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#231f20" stop-opacity="0"/><stop offset="1" stop-color="#231f20"/></linearGradient><linearGradient id="linear-gradient-2-diversity-90" x1="-962.08" y1="3906.31" x2="-606.17" y2="4362.03" gradientTransform="translate(1229.59 4167.44) scale(1 -1)" xlink:href="#linear-gradient-diversity-90"/><linearGradient id="linear-gradient-3-diversity-90" x1="-879.89" y1="3964.89" x2="-886.01" y2="4188.98" gradientTransform="translate(1229.59 4167.44) scale(1 -1)" xlink:href="#linear-gradient-diversity-90"/><linearGradient id="linear-gradient-4-diversity-90" x1="-1059.6" y1="3954.18" x2="-1133.52" y2="3729.62" gradientTransform="translate(1229.59 4167.44) scale(1 -1)" xlink:href="#linear-gradient-diversity-90"/><linearGradient id="linear-gradient-5-diversity-90" x1="-1082.77" y1="3896.69" x2="-1174.41" y2="3334.28" gradientTransform="translate(1229.59 4167.44) scale(1 -1)" xlink:href="#linear-gradient-diversity-90"/><linearGradient id="linear-gradient-6-diversity-90" x1="-1107.95" y1="3881.39" x2="-1105.44" y2="3693.4" gradientTransform="translate(1229.59 4167.44) scale(1 -1)" xlink:href="#linear-gradient-diversity-90"/><linearGradient id="linear-gradient-7-diversity-90" x1="-938.46" y1="3923.62" x2="-889.5" y2="3719.61" gradientTransform="translate(1229.59 4167.44) scale(1 -1)" xlink:href="#linear-gradient-diversity-90"/><linearGradient id="linear-gradient-8-diversity-90" x1="-936.21" y1="3865.71" x2="-746.96" y2="3744.88" gradientTransform="translate(1229.59 4167.44) scale(1 -1)" xlink:href="#linear-gradient-diversity-90"/><linearGradient id="linear-gradient-9-diversity-90" x1="-1050.11" y1="4040.41" x2="-1073.1" y2="3933.56" gradientTransform="translate(1229.59 4167.44) scale(1 -1)" xlink:href="#linear-gradient-diversity-90"/><linearGradient id="linear-gradient-10-diversity-90" x1="-1086.28" y1="4038.48" x2="-998.41" y2="3899.12" gradientTransform="translate(1229.59 4167.44) scale(1 -1)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".95" stop-color="#fff"/></linearGradient><linearGradient id="linear-gradient-11-diversity-90" x1="-1121.58" y1="4015.77" x2="-1190.55" y2="3995.06" gradientTransform="translate(1229.59 4167.44) scale(1 -1)" xlink:href="#linear-gradient-diversity-90"/></defs><path id="background_diversity-90" class="cls-12_diversity-90 targetColor" d="M499.7,249c-3.27,42.77-33.78,81.86-30.86,124.03.12,1.77.29,3.54.53,5.25.55,4.18,1.45,8.31,2.34,12.4,1.2,5.57,2.35,11.14,2.53,16.83.21,6.76-1.33,14.01-5.04,19.49-1.72,2.56-4.01,4.68-6.69,6.2-.62.34-1.26.65-1.91.93-3.65,1.4-7.49,2.27-11.39,2.57-56.52,5.95-112.73-14.28-169.59-13.61-47.84.57-94.79,15.95-142.13,21.37-7.09.83-14.17,1.44-21.26,1.7-6.56.31-13.12.31-19.69,0-2.48-.13-4.92-.3-7.35-.5-3.29-.27-6.56-.67-9.84-1.18-18.39-2.66-36.41-8.69-50.85-20.23C-.25,401.27-9.33,358.66,2.5,323.74c7.69-22.71,23.15-43.31,24.34-67.21,1.34-26.72-15.38-50.76-20.89-76.95-2.38-11.1-2.66-22.55-2.35-33.87.56-17.93,3.54-37.46,16.62-49.7,3.55-3.2,7.5-5.93,11.74-8.13,2.34-1.27,4.68-2.44,7.09-3.61,9.29-4.59,18.69-9.1,28.09-13.45,33.66-15.82,67.8-30.54,102.4-44.14,20.67-8.12,41.8-15.98,63.93-18.08,40.57-3.82,80.3,11.9,117.09,29.52,19.63,9.43,39.02,19.49,59.19,27.9,5.18,2.14,10.4,4.18,15.69,6.02,4.58,1.65,9.23,3.18,13.91,4.51,5.98,1.77,14.05,2.29,20.38,4.59l1.3.5c1.72.69,3.31,1.66,4.7,2.88l.27.24c12.46,11.76,17.21,43.93,20.84,60.16,4.62,20.59,7.45,41.56,10.23,62.47,1.82,13.81,3.68,27.75,2.63,41.63Z" style="fill: rgb(124, 58, 237);"/><g id="character_4_diversity-90"><path class="cls-1_diversity-90" d="M293.53,235.46l33.18-7.54s4.71,15.3,12.16,17.82c3.92,1.32,8.2.22,11.01-1.25,0,0,7.59-4.68,8.15-5.75,1-1.97-4.79-2.01-5.36-4.88-1.84-9.41-5.81-10.01-5.81-10.01l43.04-9.81,8.55-5.32-37.74-74.5-66.97,5.32-21.32.1-8.54,5.32,12.27,36.49s26.01-6.05,22.73,8.91c-1.63,7.49-7.51,7.09-8.24,3.33l-8.55,5.32"/><path class="cls-17_diversity-90 targetColor" d="M302.29,134.23l-29.87,5.42,12.3,36.48s20.42-5.17,22.74,8.91c2.11,12.85-16.79,8.65-16.79,8.65l11.4,36.45,33.18-7.54s4.71,15.29,12.16,17.82,15.65-2.47,13.78-11.9-5.82-10-5.82-10l43.05-9.81-29.16-79.79-66.97,5.32Z" style="fill: rgb(124, 58, 237);"/><path class="cls-5_diversity-90" d="M361.19,228.52c1.84,9.4-6.35,14.41-13.81,11.87-7.46-2.54-12.17-17.79-12.17-17.79l-33.18,7.52-11.4-36.45s18.9,4.21,16.79-8.63c-2.3-14.11-22.74-8.93-22.74-8.93l-12.27-36.48,29.86-5.42,35-2.76,31.97-2.54,14.68,40.13,1.3,3.54,5.32,14.55,7.86,21.6-43.04,9.8s4.06.6,5.83,9.98Z"/><path class="cls-6_diversity-90" d="M342.44,179.25l-4.85,7.09c3.17-.56,6.51.35,9.63-.45,1.5-.47,2.95-1.1,4.33-1.86,3.5-1.58,7.11-2.9,10.81-3.94l15.34-4.72c2.56-.79,5.86-1.37,7.49.74l-3.93-17.04c-.1-.77-.41-1.5-.89-2.11-.68-.55-1.53-.86-2.41-.89-6.71-.83-14.49.7-19.49-3.87-2.45-2.25-3.89-5.78-7.02-6.9-2.66-.95-5.63.24-7.78,2.04s-3.76,4.17-5.73,6.16c-7.33,7.34-19.42,9.08-25.32,17.61,10.13,2.31,19.32-7.58,29.71-7.77-2.99.05-8.69,5.63-11,7.44-2.52,1.99-7.09,4.6-7.27,8.17-.51,9.48,14.61,2.04,18.37.31Z"/><path class="cls-14_diversity-90" d="M466.56,83.81c-.29.23-.57.47-.89.7-11.03,8.8-22.08,17.59-33.13,26.38-3.59,2.73-6.99,5.71-10.17,8.9-17.22,18.13-18.39,46.47-31.84,67.38l-5.32-14.55c.3-1.03.1-2.14-.53-3.01-.22-.24-.48-.43-.77-.57-1.2-.64-2.91-.3-4.31.17-13.84,4.39-27.04,10.59-39.25,18.43-2.95,1.9-6.66,3.98-9.74,2.3-.5-.2-.9-.59-1.13-1.07-.5-1.13.5-2.37,1.44-3.21,6.63-6.05,13.75-11.54,21.31-16.39-8.3,2.76-16.25,6.48-23.68,11.1-3.71,2.35-8.03,5.02-12.21,3.71-.69-.14-1.29-.55-1.67-1.13-.67-1.27.43-2.71,1.5-3.68,8.66-8.12,17.61-15.95,26.83-23.48-4.62.64-8.66,3.24-12.54,5.78l-14.78,9.74c-1.44.94-2.91,1.88-4.62,1.94s-3.54-1.2-3.45-2.87c.1-.77.4-1.5.89-2.11,6.52-9.87,18.83-14.55,26.02-23.92l-20.03,13.29c-.97.64-2.11,1.34-3.24,1.07-1.54-.34-2.28-2.24-1.9-3.77s1.53-2.75,2.66-3.88c7.58-7.61,16.44-13.57,25.3-19.62,2.35-1.57,4.65-3.18,6.95-4.82,10.34-7.3,21.77-12.89,33.88-16.58,2.05-.6,4.12-1.17,6.12-1.94,6.09-2.3,11.3-6.42,16.19-10.7,8.93-7.86,17.02-16.58,24.98-25.38,4.58,1.64,9.23,3.18,13.91,4.52,5.99,1.77,14.04,2.28,20.38,4.58l1.3.5,5.57,2.17Z"/></g><g id="character_3_diversity-90"><path class="cls-17_diversity-90 targetColor" d="M145.44,361.61l29.06,8.77,9.1-5.02-3.45-33.06s-25.91-6.44-16.19-18.29c9.73-11.84,18.89-.06,18.89-.06l9.13-5.02-2.66-32.62-35.21-9.16s13.29-19.25,5.65-27.3c-5.43-5.7-21.39,1.77-23.92,10.98-1.07,3.74-1.46,7.64-1.15,11.52l-31.89-15.84-9.1,5.06-19,90.6,70.73,19.45Z" style="fill: rgb(124, 58, 237);"/><path class="cls-4_diversity-90" d="M145.44,361.61l29.06,8.77,9.1-5.02-3.45-33.06s-25.91-6.44-16.19-18.29c9.73-11.84,18.89-.06,18.89-.06l9.13-5.02-2.66-32.62-35.21-9.16s13.29-19.25,5.65-27.3c-5.43-5.7-21.39,1.77-23.92,10.98-1.07,3.74-1.46,7.64-1.15,11.52l-31.89-15.84-9.1,5.06-19,90.6,70.73,19.45Z"/><path class="cls-17_diversity-90 targetColor" d="M154.54,356.58l29.06,8.77,5.66-38.09s-25.91-6.45-16.19-18.29c9.72-11.84,18.89-.06,18.89-.06l6.43-37.64-35.16-9.16s7.13-12.57-.54-20.62c-5.42-5.7-15.19-4.95-17.72,4.3-1.07,3.74-1.46,7.64-1.14,11.52l-41.02-10.82-18.99,90.65,70.73,19.45Z" style="fill: rgb(124, 58, 237);"/><path class="cls-10_diversity-90" d="M154.54,356.58l29.06,8.77,5.66-38.09s-25.91-6.45-16.19-18.29c9.72-11.84,18.89-.06,18.89-.06l6.43-37.64-35.16-9.16s7.13-12.57-.54-20.62c-5.42-5.7-15.19-4.95-17.72,4.3-1.07,3.74-1.46,7.64-1.14,11.52l-41.02-10.82-18.99,90.65,70.73,19.45Z"/><path class="cls-11_diversity-90" d="M96.97,338.49c7.19-13.1,12.99-27.35,23.47-38.01,1.5-1.52,3.93-3.02,5.57-1.64,1.36,1.15.89,3.32.34,5.01l-5.23,15.36,10.63-17.43c1.77-2.84,3.71-5.88,6.85-7.02.94-.4,2.01-.4,2.95,0,1.56.8,1.77,2.88,1.77,4.62-.03,4.74-.6,9.46-1.72,14.06,2.91-4.9,6.58-9.31,10.86-13.08,1.58,1.16,1.82,3.39,1.77,5.32-.2,6.87-2.52,13.49-4.81,19.98-1.24,3.54-2.52,7.09-4.81,10.05-4.14,5.32-10.92,7.71-17.5,9.09s-13.39,2.02-19.49,4.85c-2.42,1.13-4.73,2.61-7.36,3.07-2.87.5-9.38-1.04-10.13-4.6-.33-1.91,5.4-7.03,6.83-9.64Z"/><path class="cls-16_diversity-90" d="M167.84,318.46c-2.66,13.35-8.59,25.52-13.55,38.19-4.62,11.77-11.1,22.72-19.2,32.44-1.37,1.64-2.81,3.24-4.05,4.98-3.81,5.32-5.94,11.57-7.65,17.82-2.11,7.76-4.85,21.63-7.09,34.28-6.56.3-13.12.3-19.69,0-2.48-.13-4.92-.3-7.36-.5-3.28-.28-6.56-.67-9.83-1.18,3.69-9.5,7.42-19.06,9.74-26.21,1.5-4.25,2.71-8.59,3.61-13.01,3.69-20.38-5.68-40.51-9.14-60.94,0,0,7.42,2.96,12.25,1.77,1.77-.43,4.35-4.25,5.48-5.66,9.18-11.26,16.81-23.68,22.71-36.95,1.4-3.21,3.38-6.95,6.85-7.29.53-.07,1.08.03,1.54.3,1.07.67.89,2.24.57,3.48-2.21,8.7-5.15,17.19-8.8,25.38,5.44-6.85,10.04-14.32,13.71-22.25,1.84-4.01,3.95-8.63,8.16-9.83.66-.25,1.4-.23,2.05.07,1.27.66,1.1,2.51.76,3.87-2.81,11.54-5.99,22.99-9.52,34.35,3.54-3.04,5.45-7.46,7.28-11.7,2.36-5.42,4.7-10.84,7.03-16.26.67-1.57,1.41-3.17,2.77-4.15s3.61-.93,4.43.5c.35.69.51,1.47.46,2.24-.06,11.84-7.75,22.47-8.63,34.28,3.14-7.39,6.29-14.75,9.43-22.15.43-1.07,1-2.28,2.11-2.66,1.47-.57,3.14.64,3.68,2.11.39,1.54.35,3.15-.12,4.67Z"/></g><g id="character_2_diversity-90"><path class="cls-17_diversity-90 targetColor" d="M360.12,306.81l6.52-29.65-1.41-6.59-36.99,3.86s-4.43,26.34-17,17.54c-12.57-8.8-1.51-18.83-1.51-18.83l-1.41-6.59-36.61,3.07-6.44,35.75s-15.68-10.23-23.12-1.97c-5.26,5.85-1.18,19.61,8.23,21.4,3.81.79,7.74.89,11.59.28l-9.05,35.13,1.41,6.59,91.81,12,13.99-72.01Z" style="fill: rgb(124, 58, 237);"/><path class="cls-9_diversity-90" d="M360.12,306.81l6.52-29.65-1.41-6.59-36.99,3.86s-4.43,26.34-17,17.54c-12.57-8.8-1.51-18.83-1.51-18.83l-1.41-6.59-36.61,3.07-6.44,35.75s-15.68-10.23-23.12-1.97c-5.26,5.85-1.18,19.61,8.23,21.4,3.81.79,7.74.89,11.59.28l-9.05,35.13,1.41,6.59,91.81,12,13.99-72.01Z"/><path class="cls-17_diversity-90 targetColor" d="M358.71,300.21l6.52-29.65-38.4-2.73s-4.43,26.34-16.99,17.54-1.51-18.83-1.51-18.83l-38.02-3.54-6.45,35.75s-13.08-6.15-20.52,2.12c-5.26,5.85-3.78,15.53,5.63,17.32,3.81.79,7.73.88,11.57.27l-7.65,41.73,91.82,12.02,13.99-71.99Z" style="fill: rgb(124, 58, 237);"/><path class="cls-7_diversity-90" d="M327.89,288.26c-2.12-.93-5.32-1.85-6.2.28-.45,1.06.07,2.26.58,3.29l5.67,11.39-13.69-5.13c-.88-.45-1.89-.57-2.85-.35-2.2.82-1.47,4.08-.35,6.14l8.35,15.39c-3.7.54-7.25-4.15-10.63-2.46-2.66,1.33-2.21,5.22-1.1,7.97,4.92,11.82,14.99,20.68,22.16,31.31,2.48,3.67,4.68,8.26,3.02,12.35-.73,1.77-2.1,4-.78,5.42.63.53,1.41.84,2.22.89,7.02,1.2,14.18,1.42,21.26.65.77-24.16,1.95-48.3,3.54-72.41.14-2.14.26-4.43-.82-6.28-1-1.46-2.35-2.66-3.92-3.48-3.39-2.14-6.73-4.43-10.21-6.45-3.81-2.21-4.78-1.2-4.61,3.06-3.72.91-8.21-.05-11.65-1.57Z"/><path class="cls-15_diversity-90" d="M474.25,407.58c.21,6.76-1.33,14.01-5.04,19.49-1.72,2.56-4.01,4.68-6.69,6.2-.62.34-1.26.65-1.91.93-12.22-9.74-25.2-20.08-32.98-26-4.15-3.31-8.53-6.32-13.1-9.03-27.46-15.38-62.9-6.36-91.81-18.83-1.2-.5-2.54-1.27-2.74-2.54s.66-2.3,1.64-3.07c5.32-4.34,13.08-3.07,19.96-2.66,1.77.13,3.95,0,4.99-1.47,1.24-1.77.13-4.11-1-5.92-9.03-14.58-19.97-27.89-32.5-39.59-3.05-2.84-6.45-6.45-5.48-10.51.1-.62.41-1.19.89-1.6,1.18-.89,2.84-.1,4.08.71,8.85,5.82,17.2,12.37,24.96,19.59-5.57-8.7-12.15-16.7-19.61-23.84-3.77-3.61-8.09-7.73-7.83-12.94-.02-.84.3-1.64.89-2.24,1.23-1.17,3.21-.26,4.64.64,11.76,7.55,23.31,15.49,34.64,23.81-2.07-5.06-6.2-8.94-10.29-12.64-5.15-4.68-10.26-9.4-15.42-14.11-1.47-1.35-3-2.78-3.54-4.68s.3-4.39,2.24-4.83c.91-.09,1.82.05,2.66.41,13.16,4.59,22.1,17.29,34.9,22.8-7.02-6.35-14.03-12.71-21.03-19.06-1.04-.89-2.14-2-2.21-3.4-.07-1.88,1.9-3.28,3.77-3.31,1.87-.04,3.59.97,5.19,1.9,13.84,8.1,25.14,19.4,37.35,29.79,11.36,9.71,21.09,21.19,28.82,33.98,1.3,2.14,2.54,4.35,3.99,6.42,4.43,6.28,10.63,11.06,16.96,15.41,9.43,6.44,25.02,15.9,38.09,23.36,1.2,5.58,2.36,11.15,2.54,16.84Z"/></g><g id="character_1_diversity-90"><path class="cls-8_diversity-90" d="M113.9,174.66l-14.38,15.76-1.89,9.89,35.15,15.7s13.18-23.23,21.97-10.68c4.43,6.28.1,10.31-3.14,8.32l-1.89,9.89,34.55,16.32,16.95-29.5s14.44,6.9,21.34,3.14c3.63-1.98,5.73-5.88,6.56-8.95,0,0,1.71-8.74,1.29-9.89-.76-2.06-4.73,2.17-7.22.63-8.16-5.02-11.3-2.51-11.3-2.51l21.96-38.29,1.89-9.89-80.34-22.76-41.51,52.82Z"/><path class="cls-17_diversity-90 targetColor" d="M115.8,164.78l-16.28,25.65,35.14,15.7s10.05-18.52,21.97-10.63c10.88,7.16-5.01,18.21-5.01,18.21l34.55,16.32,16.95-29.5s14.43,6.9,21.34,3.14,8.79-13.18.62-18.21-11.3-2.51-11.3-2.51l21.97-38.29-78.49-32.71-41.46,52.84Z" style="fill: rgb(124, 58, 237);"/><path class="cls-3_diversity-90" d="M115.8,164.78l-16.28,25.65,35.14,15.7s10.05-18.52,21.97-10.63c10.88,7.16-5.01,18.21-5.01,18.21l34.55,16.32,16.95-29.5s14.43,6.9,21.34,3.14,8.79-13.18.62-18.21-11.3-2.51-11.3-2.51l21.97-38.29-78.49-32.71-41.46,52.84Z"/><path class="cls-13_diversity-90" d="M190.98,175.36c.06,1.7-1.77,2.94-3.45,2.88-1.67-.22-3.26-.89-4.58-1.94-4.95-3.24-9.9-6.49-14.81-9.74-3.88-2.54-7.97-5.15-12.51-5.78,9.16,7.53,18.13,15.39,26.78,23.48,1.07.97,2.21,2.41,1.51,3.68-.38.58-.97,1-1.64,1.17-4.21,1.31-8.52-1.4-12.23-3.71-7.42-4.64-15.37-8.38-23.68-11.14,7.55,4.85,14.68,10.34,21.31,16.39.89.83,1.94,2.07,1.44,3.21-.23.48-.62.87-1.1,1.11-3.12,1.64-6.79-.43-9.74-2.3-12.21-7.87-25.41-14.07-39.25-18.46-.77-.24-1.94-.77-3.01-1.11-.67-.27-1.41-.31-2.11-.13l-9.97,11.81-3.61-8.27c-6.52-16.45-10.21-34.55-20.97-48.15-.98-1.23-2.01-2.42-3.11-3.54-3.18-3.18-6.58-6.14-10.17-8.86-10.1-8.06-23.31-19.27-34.07-28.03,2.34-1.27,4.68-2.44,7.09-3.61,9.27-4.62,18.67-9.12,28.07-13.47,9.03,9.9,22.1,23.77,31.01,31.63,4.88,4.29,10.1,8.4,16.19,10.7,2,.77,4.08,1.34,6.12,1.94,12.1,3.69,23.53,9.29,33.87,16.59,11.11,7.86,22.71,14.78,32.27,24.48,1.23,1.01,2.15,2.34,2.66,3.84.41,1.53-.33,3.47-1.9,3.81-1.13.24-2.28-.47-3.24-1.1l-20.03-13.29c7.18,9.4,19.49,14.05,26.02,23.92.47.58.77,1.27.88,2.01Z"/><path class="cls-2_diversity-90" d="M116.61,172.52l-.64.6-12.07,11.68-3.61-8.27c-6.52-16.45-10.21-34.55-20.97-48.15.43.23,1.77,1,6.2,3.47,6.46,3.61,17.89,28.9,21.33,34.55,2.17,3.39,5.75,5.64,9.75,6.11Z"/></g></svg> \ No newline at end of file diff --git a/old/static/illustrations/map.svg b/old/static/illustrations/map.svg deleted file mode 100644 index 399032a..0000000 --- a/old/static/illustrations/map.svg +++ /dev/null @@ -1,144 +0,0 @@ -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 500 500" style="width: 188px;" xml:space="preserve" data-imageid="map-65" imageName="Map" class="illustrations_image"> -<style type="text/css"> - .st0_map-65{fill:#C9C9C9;} - .st1_map-65{fill:#FFF3D9;} - .st2_map-65{fill:#68E1FD;} - .st3_map-65{opacity:0.1;enable-background:new ;} - .st4_map-65{fill:#C66B28;} - .st5_map-65{opacity:0.28;fill:url(#SVGID_1_);enable-background:new ;} - .st6_map-65{opacity:0.28;fill:url(#SVGID_00000153668436356504484050000017830292499136827835_);enable-background:new ;} - .st7_map-65{opacity:0.28;fill:url(#SVGID_00000070110525778476587440000005937872663609708439_);enable-background:new ;} - .st8_map-65{opacity:0.28;fill:url(#SVGID_00000068638473910666737010000002250221640752491684_);enable-background:new ;} - .st9_map-65{opacity:0.28;fill:url(#SVGID_00000064323111427756917110000000138958643804819844_);enable-background:new ;} - .st10_map-65{opacity:0.28;fill:url(#SVGID_00000156570892646706066930000008479480797020132236_);enable-background:new ;} - .st11_map-65{opacity:0.28;fill:url(#SVGID_00000045612006554486669600000014057045565086049672_);enable-background:new ;} - .st12_map-65{opacity:0.28;fill:url(#SVGID_00000038414550693205571940000009625315874861916817_);enable-background:new ;} - .st13_map-65{opacity:0.28;fill:url(#SVGID_00000171694218645532401660000012757667007662884233_);enable-background:new ;} - .st14_map-65{fill:#2C9135;} - .st15_map-65{fill:#E55151;} - .st16_map-65{fill:#B3B3B3;} - .st17_map-65{fill:#156819;} - .st18_map-65{fill:#D3894C;} -</style> -<polyline id="Shadow_map-65" class="st0_map-65" points="17.8,288.4 220.4,409.1 373.2,325.1 476.8,265.8 277.8,150.9 "/> -<g id="Map_map-65"> - <polygon class="st1_map-65" points="17.8,288.4 220.9,404.3 362.5,324.2 471.1,224.1 275.2,106.8 176.6,196.9 "/> - <polygon class="st2_map-65 targetColor" points="36.4,285.8 222.8,392.1 352.8,318.6 452.6,226.7 272.7,119 182.1,201.7 " style="fill: rgb(124, 58, 237);"/> - <polygon class="st3_map-65" points="272.7,119 182.1,201.7 352.8,318.6 452.6,226.7 "/> - <polyline class="st1_map-65" points="419.7,206.9 388.3,232.9 307.3,213.1 169.4,302.2 158.7,355.6 138.1,343.8 152.9,291.6 301.9,189.9 381.9,211.6 398.7,194.4 "/> - <path class="st4_map-65" d="M409.4,206.2c-0.8,0-1.5-0.7-1.5-1.5c0-0.5,0.2-0.9,0.6-1.2l2.8-2.2c0.6-0.5,1.6-0.4,2.1,0.2s0.4,1.6-0.2,2.1 c0,0,0,0-0.1,0.1l-2.8,2.2C410,206.1,409.7,206.2,409.4,206.2z"/> - <path class="st4_map-65" d="M391.8,219.9c-0.8,0-1.5-0.7-1.5-1.5c0-0.5,0.2-0.9,0.6-1.2l0.1-0.1c0.6-0.5,1.6-0.4,2.1,0.2s0.4,1.6-0.2,2.1 c0,0,0,0-0.1,0.1l-0.1,0.1C392.5,219.8,392.1,219.9,391.8,219.9z M397.5,215.5c-0.8,0-1.5-0.7-1.5-1.5c0-0.5,0.2-0.9,0.6-1.2l4-3.1 c0.6-0.5,1.6-0.4,2.1,0.2s0.4,1.6-0.2,2.1c0,0,0,0-0.1,0.1l-4,3.1C398.1,215.4,397.8,215.5,397.5,215.5z"/> - <path class="st4_map-65" d="M385.4,225.4l-4.2-1.3c-0.8-0.2-1.3-1-1.1-1.8c0.2-0.8,1-1.3,1.8-1.1c0,0,0.1,0,0.1,0l2.7,0.8l2.2-1.7 c0.6-0.5,1.6-0.4,2.1,0.2s0.4,1.6-0.2,2.1c0,0,0,0-0.1,0.1L385.4,225.4z"/> - <path class="st4_map-65" d="M372.4,221.4c-0.1,0-0.3,0-0.4-0.1l-4.6-1.3c-0.8-0.2-1.2-1.1-1-1.9c0.2-0.8,1.1-1.2,1.9-1c0,0,0,0,0,0 l4.6,1.4c0.8,0.2,1.2,1.1,1,1.9C373.6,221,373,221.4,372.4,221.4L372.4,221.4z M361.3,218.1c-0.1,0-0.3,0-0.4-0.1l-4.6-1.4 c-0.8-0.2-1.3-1-1.1-1.8c0.2-0.8,1-1.3,1.8-1.1c0,0,0.1,0,0.1,0l4.6,1.4c0.8,0.2,1.3,1.1,1,1.9C362.6,217.6,362,218.1,361.3,218.1 L361.3,218.1z M350.3,214.7c-0.1,0-0.3,0-0.4-0.1l-4.6-1.4c-0.8-0.2-1.3-1-1.1-1.8c0.2-0.8,1-1.3,1.8-1.1c0,0,0.1,0,0.1,0l4.6,1.4 c0.8,0.2,1.3,1.1,1,1.9C351.5,214.3,350.9,214.8,350.3,214.7L350.3,214.7z M339.2,211.4c-0.1,0-0.3,0-0.4-0.1l-4.6-1.4 c-0.8-0.2-1.2-1.1-1-1.9s1.1-1.2,1.9-1l0,0l4.6,1.4c0.8,0.3,1.2,1.1,1,1.9C340.4,211,339.8,211.4,339.2,211.4L339.2,211.4z M328.1,208.1c-0.1,0-0.3,0-0.4-0.1l-4.6-1.4c-0.8-0.2-1.3-1-1-1.8c0.2-0.8,1-1.3,1.8-1c0,0,0.1,0,0.1,0l4.6,1.4 c0.8,0.2,1.3,1.1,1,1.9C329.4,207.7,328.8,208.1,328.1,208.1L328.1,208.1z M317.1,204.8c-0.1,0-0.3,0-0.4-0.1l-3.4-1 c-0.8-0.2-1.2-1.1-1-1.9s1.1-1.2,1.9-1l3.4,1c0.8,0.2,1.3,1.1,1,1.9C318.3,204.3,317.7,204.8,317.1,204.8L317.1,204.8z"/> - <path class="st4_map-65" d="M302.7,203.4c-0.8,0-1.5-0.7-1.5-1.5c0-0.5,0.2-0.9,0.6-1.2l3.5-2.5l4.1,1.2c0.8,0.3,1.2,1.1,1,1.9 c-0.3,0.8-1.1,1.2-1.8,1l-2.7-0.8l-2.3,1.6C303.3,203.3,303,203.4,302.7,203.4z"/> - <path class="st4_map-65" d="M239,248c-0.5,0-1-0.2-1.2-0.6c-0.5-0.7-0.3-1.6,0.4-2.1c0,0,0,0,0,0l3.1-2.2c0.7-0.5,1.6-0.3,2.1,0.4 c0.5,0.7,0.3,1.6-0.4,2.1l-3.1,2.2C239.6,247.9,239.3,248,239,248z M248.2,241.6c-0.5,0-0.9-0.2-1.2-0.6c-0.5-0.7-0.3-1.6,0.4-2.1 c0,0,0,0,0,0l4.3-3c0.7-0.5,1.6-0.3,2.1,0.4c0.5,0.7,0.3,1.6-0.4,2.1l-4.3,3C248.8,241.5,248.5,241.6,248.2,241.6L248.2,241.6z M258.6,234.3c-0.5,0-0.9-0.2-1.2-0.6c-0.5-0.7-0.3-1.6,0.4-2.1c0,0,0,0,0,0l4.3-3c0.7-0.5,1.6-0.3,2.1,0.4 c0.5,0.7,0.3,1.6-0.4,2.1l-4.3,3C259.2,234.2,258.9,234.3,258.6,234.3L258.6,234.3z M269,227c-0.8,0-1.5-0.7-1.5-1.5 c0-0.5,0.2-1,0.6-1.2l4.3-3c0.7-0.5,1.6-0.3,2.1,0.4c0.5,0.7,0.3,1.6-0.4,2.1l0,0l-4.3,3C269.6,226.9,269.3,227,269,227z M279.4,219.7c-0.5,0-1-0.2-1.2-0.6c-0.5-0.7-0.3-1.6,0.4-2.1l4.3-3c0.7-0.5,1.6-0.3,2.1,0.4c0.5,0.7,0.3,1.6-0.4,2.1l0,0l-4.3,3 C280,219.7,279.7,219.8,279.4,219.7L279.4,219.7z M289.8,212.4c-0.8,0-1.5-0.6-1.5-1.5c0-0.5,0.2-1,0.6-1.2l4.3-3 c0.7-0.5,1.6-0.3,2.1,0.4c0.5,0.7,0.3,1.6-0.4,2.1l0,0l-4.3,3C290.4,212.4,290.1,212.5,289.8,212.4L289.8,212.4z"/> - <path class="st4_map-65" d="M231.7,253.1c-0.8,0-1.5-0.7-1.5-1.5c0-0.5,0.2-1,0.6-1.2l2.9-2.1c0.7-0.5,1.6-0.3,2.1,0.4 c0.5,0.7,0.3,1.6-0.4,2.1l-2.9,2.1C232.3,253,232,253.1,231.7,253.1z"/> - <polyline class="st1_map-65" points="281.9,229.5 301.9,288.9 385,288.9 376.9,296.4 297.1,296.4 275,233.9 "/> - <polygon class="st1_map-65" points="272.7,119 301.9,189.9 312.5,192.8 284.3,125.9 "/> - <polyline class="st1_map-65" points="112.9,240.4 173,280 180.6,272.7 119.7,235.6 "/> - <path class="st1_map-65" d="M67.3,302.3c-0.5,0.9,72.9-43.8,72.9-43.8l60.1-39.2l-5.2-29.4l-3.1,2.9l4.8,25.2L62.4,300.6"/> - <path class="st1_map-65" d="M169.4,302.3c0,0,76.7-14.1,97.2,19.2s6.1,42.4,6.1,42.4l13-7.4c0,0,0.7-39.6-37.6-55.9s-71.5-6.8-71.5-6.8"/> -</g> -<g id="Shadow_map_map-65"> - - <linearGradient id="SVGID_1_-map-65" gradientUnits="userSpaceOnUse" x1="188.1009" y1="-1374.0389" x2="209.7309" y2="-1391.1688" gradientTransform="matrix(1 0 0 1 0 1745.78)"> - <stop offset="0" style="stop-color:#000000;stop-opacity:0"/> - <stop offset="1" style="stop-color:#000000"/> - </linearGradient> - <path class="st5_map-65" d="M179.8,367.6c0.8-0.4,23.7-8.5,23.7-8.5l4.3,7.7l-13.9,8.9L179.8,367.6z"/> - - <linearGradient id="SVGID_00000137847148422755415670000014132205337715100069_-map-65" gradientUnits="userSpaceOnUse" x1="228.8603" y1="-1371.1196" x2="257.1103" y2="-1386.7495" gradientTransform="matrix(1 0 0 1 0 1745.78)"> - <stop offset="0" style="stop-color:#000000;stop-opacity:0"/> - <stop offset="1" style="stop-color:#000000"/> - </linearGradient> - <path style="opacity:0.28;fill:url(#SVGID_00000137847148422755415670000014132205337715100069_);enable-background:new ;" d=" M214.6,374.8c0.8-0.4,31.5-11.6,31.5-11.6l3.4,3.6l-22.1,16.4L214.6,374.8z"/> - - <linearGradient id="SVGID_00000167394970338471065880000012027168729956780947_-map-65" gradientUnits="userSpaceOnUse" x1="204.2222" y1="-1392.0908" x2="226.7222" y2="-1406.2307" gradientTransform="matrix(1 0 0 1 0 1745.78)"> - <stop offset="0" style="stop-color:#000000;stop-opacity:0"/> - <stop offset="1" style="stop-color:#000000"/> - </linearGradient> - <path style="opacity:0.28;fill:url(#SVGID_00000167394970338471065880000012027168729956780947_);enable-background:new ;" d=" M193,349.9c1.3-0.6,34.6-12.4,34.6-12.4l4.1,6.8l-25.4,18.9L193,349.9z"/> - - <linearGradient id="SVGID_00000167371556804665732100000004697880309964834956_-map-65" gradientUnits="userSpaceOnUse" x1="313.8863" y1="-1464.2057" x2="342.1363" y2="-1482.2758" gradientTransform="matrix(1 0 0 1 0 1745.78)"> - <stop offset="0" style="stop-color:#000000;stop-opacity:0"/> - <stop offset="1" style="stop-color:#000000"/> - </linearGradient> - <path style="opacity:0.28;fill:url(#SVGID_00000167371556804665732100000004697880309964834956_);enable-background:new ;" d=" M329.5,269.5c-9.1,3.4-22.5,8.2-23,8.5l12.9,8.3l14.8-11C332.3,273.7,330.7,271.8,329.5,269.5z"/> - - <linearGradient id="SVGID_00000098926656279441162040000011659742614298501822_-map-65" gradientUnits="userSpaceOnUse" x1="67.244" y1="-1463.2806" x2="102.594" y2="-1488.7706" gradientTransform="matrix(1 0 0 1 0 1745.78)"> - <stop offset="0" style="stop-color:#000000;stop-opacity:0"/> - <stop offset="1" style="stop-color:#000000"/> - </linearGradient> - <path style="opacity:0.28;fill:url(#SVGID_00000098926656279441162040000011659742614298501822_);enable-background:new ;" d=" M61.2,278c0.8-0.4,31.5-11.6,31.5-11.6l3.4,3.6l-22,16.4L61.2,278z"/> - - <linearGradient id="SVGID_00000047770142776223710810000008068446228515822220_-map-65" gradientUnits="userSpaceOnUse" x1="127.4952" y1="-1498.6277" x2="154.9352" y2="-1516.1775" gradientTransform="matrix(1 0 0 1 0 1745.78)"> - <stop offset="0" style="stop-color:#000000;stop-opacity:0"/> - <stop offset="1" style="stop-color:#000000"/> - </linearGradient> - <path style="opacity:0.28;fill:url(#SVGID_00000047770142776223710810000008068446228515822220_);enable-background:new ;" d=" M143.6,235.6c-9.1,3.4-22.4,8.2-23,8.5l11.7,7.5l14-12.2C144.2,237.8,144.7,237.8,143.6,235.6z"/> - - <linearGradient id="SVGID_00000029020610434928304420000010910803853688822195_-map-65" gradientUnits="userSpaceOnUse" x1="152.1151" y1="-1480.7677" x2="179.5551" y2="-1498.3177" gradientTransform="matrix(1 0 0 1 0 1745.78)"> - <stop offset="0" style="stop-color:#000000;stop-opacity:0"/> - <stop offset="1" style="stop-color:#000000"/> - </linearGradient> - <path style="opacity:0.28;fill:url(#SVGID_00000029020610434928304420000010910803853688822195_);enable-background:new ;" d=" M168.2,253.4c-9.1,3.4-22.4,8.2-23,8.5l11.7,7.5l14-12.2C168.9,255.7,169.4,255.7,168.2,253.4z"/> - - <linearGradient id="SVGID_00000067234575120928732410000017698517272901659779_-map-65" gradientUnits="userSpaceOnUse" x1="149.8081" y1="-1510.7629" x2="177.2581" y2="-1528.313" gradientTransform="matrix(1 0 0 1 0 1745.78)"> - <stop offset="0" style="stop-color:#000000;stop-opacity:0"/> - <stop offset="1" style="stop-color:#000000"/> - </linearGradient> - <path style="opacity:0.28;fill:url(#SVGID_00000067234575120928732410000017698517272901659779_);enable-background:new ;" d=" M165.9,223.4c-9.1,3.4-22.4,8.2-23,8.5l11.7,7.5l14-12.2C166.6,225.7,167.1,225.7,165.9,223.4z"/> - - <linearGradient id="SVGID_00000151503864024711635310000002946853378232446111_-map-65" gradientUnits="userSpaceOnUse" x1="200.1089" y1="-1476.3618" x2="246.5889" y2="-1506.0818" gradientTransform="matrix(1 0 0 1 0 1745.78)"> - <stop offset="0" style="stop-color:#000000;stop-opacity:0"/> - <stop offset="1" style="stop-color:#000000"/> - </linearGradient> - <path style="opacity:0.28;fill:url(#SVGID_00000151503864024711635310000002946853378232446111_);enable-background:new ;" d=" M226.6,248.1c-15.3,6.2-37.5,15.2-38.4,15.7l19.5,13.9l23.3-22.5C227.7,252.2,228.5,252.2,226.6,248.1z"/> -</g> -<g id="Place_map-65"> - <path class="st14_map-65" d="M229.2,264.4c-13.7,0-24.4-5.1-24.4-11.6s10.7-11.6,24.4-11.6s24.4,5.1,24.4,11.6 C253.7,259.3,243,264.4,229.2,264.4z M229.2,243.3c-12.2,0-22.4,4.4-22.4,9.6s10.3,9.6,22.4,9.6s22.4-4.4,22.4-9.6 S241.4,243.3,229.2,243.3L229.2,243.3z"/> - <path class="st15_map-65" d="M270.2,171.2c0-0.4,0-0.8-0.1-1.3c-1.1-13.9-10.4-25.9-22.8-31.8c-18.8-8.7-41.1-0.5-49.8,18.3 c-1.1,2.4-1.9,4.8-2.5,7.4c-2.9,13.1,1.8,26.5,6.6,38.5c7.5,18.8,17.3,36.7,29,53.3c6.3-8.7,12.1-17.7,17.5-27 C258.3,211.2,271.4,192.3,270.2,171.2z"/> - <circle class="st1_map-65" cx="231.8" cy="173.6" r="22.8"/> -</g> -<g id="Road_Sign_map-65"> - <ellipse class="st16_map-65" cx="94.2" cy="268.7" rx="12.2" ry="5.6"/> - <path class="st0_map-65" d="M96.4,269.8l0.1-0.2V211h-4.6v58.7c0.8,1.3,2.5,1.6,3.8,0.8C95.9,270.3,96.2,270.1,96.4,269.8z"/> - <path class="st16_map-65" d="M96.4,269.8l0.1-0.2V211h-2.1v59.9C95.2,270.8,95.9,270.4,96.4,269.8z"/> - - <ellipse transform="matrix(0.2292 -0.9734 0.9734 0.2292 -134.1693 255.9081)" class="st15_map-65" cx="94.5" cy="212.7" rx="15.4" ry="13.5"/> - - <ellipse transform="matrix(0.2292 -0.9734 0.9734 0.2292 -134.0473 256.4551)" class="st1_map-65" cx="94.9" cy="212.9" rx="12.7" ry="11.1"/> - <path class="st15_map-65" d="M101.2,201.1l-13.3,22.1c0,0,2.1,5.4,3.1,3s13.4-22.8,13.4-22.8L101.2,201.1z"/> -</g> -<g id="Trees_map-65"> - <path class="st4_map-65" d="M169,243.2L169,243.2c1.5,0,2.7,1.2,2.7,2.7v9.9c0,1.5-1.2,2.7-2.7,2.7h0c-1.5,0-2.7-1.2-2.7-2.7v-9.9 C166.3,244.4,167.5,243.2,169,243.2z"/> - <circle class="st14_map-65" cx="169" cy="243.2" r="10.3"/> - <path class="st17_map-65" d="M169,232.9c-0.6,0-1.2,0-1.7,0.1c4.2,2.4,6.6,7.1,6,11.9c-0.5,3.7-3,6.9-6.5,8.2c5.5,1.3,11.1-2,12.4-7.6 s-2-11.1-7.6-12.4c-0.1,0-0.3-0.1-0.4-0.1C170.5,233,169.7,232.9,169,232.9L169,232.9z"/> - <path class="st4_map-65" d="M142.2,221.9h1.3c1.5,0,2.7,1.2,2.7,2.7v13.7c0,1.5-1.2,2.7-2.7,2.7h-1.3c-1.5,0-2.7-1.2-2.7-2.7v-13.7 C139.6,223.1,140.7,221.9,142.2,221.9z"/> - <circle class="st14_map-65" cx="142.9" cy="221.9" r="12.8"/> - <path class="st17_map-65" d="M142.9,209.1c-0.7,0-1.4,0.1-2.2,0.2c5.3,3,8.3,8.9,7.6,14.9c-0.6,4.7-3.7,8.6-8.1,10.2 c7,1.3,13.7-3.3,15-10.2c1.2-6.5-2.7-12.9-9-14.8C145.1,209.2,144,209.1,142.9,209.1z"/> - <path class="st4_map-65" d="M166.8,212.7L166.8,212.7c1.5,0,2.7,1.2,2.7,2.7v9.9c0,1.5-1.2,2.7-2.7,2.7h0c-1.5,0-2.7-1.2-2.7-2.7v-9.9 C164.1,213.9,165.3,212.7,166.8,212.7z"/> - <circle class="st14_map-65" cx="166.8" cy="212.7" r="10.3"/> - <path class="st17_map-65" d="M166.8,202.4c-0.6,0-1.2,0.1-1.7,0.2c4.2,2.4,6.6,7.1,6,11.9c-0.5,3.7-3,6.9-6.5,8.2c5.5,1.3,11.1-2,12.4-7.6 c1.3-5.5-2-11.1-7.6-12.4c-0.1,0-0.3-0.1-0.4-0.1C168.3,202.5,167.5,202.4,166.8,202.4L166.8,202.4z"/> -</g> -<g id="Trees-2_map-65"> - <path class="st4_map-65" d="M228.5,297.8h1.4c1.6,0,2.9,1.3,2.9,2.9v41.7c0,1.6-1.3,2.9-2.9,2.9h-1.4c-1.6,0-2.9-1.3-2.9-2.9v-41.7 C225.7,299.1,227,297.8,228.5,297.8z"/> - <path class="st14_map-65" d="M246.9,307.5c-1.6-7.1-9-38.7-22-29.4c-6.6,4.8-8.6,12.2-11.2,19.4c-2.4,6-3.8,12.3-4.1,18.8 c-0.2,13.1,13.2,14.7,23.4,14.7c5.9,0,14.3-3.5,15.7-9.9c0.8-3.9-0.6-8.4-1.4-12.2L246.9,307.5z"/> - <path class="st17_map-65" d="M247.5,308.9l-0.3-1.4c-1.4-6.3-7.4-31.7-17.7-31.1c3.1,13.4,7.6,27.5,5.2,41.2c-0.8,4.8-2.6,9.3-5.5,13.3 c1.4,0,2.7,0.1,4,0.1c5.9,0,14.3-3.5,15.7-9.9C249.8,317.2,248.4,312.6,247.5,308.9z"/> - <path class="st4_map-65" d="M247.1,334.8L247.1,334.8c1.4,0,2.5,1.1,2.5,2.5v28.1c0,1.4-1.1,2.5-2.5,2.5h0c-1.4,0-2.5-1.1-2.5-2.5v-28.1 C244.6,335.9,245.7,334.8,247.1,334.8z"/> - <path class="st14_map-65" d="M259.4,341.5c-1.2-5-6.3-27-15.3-20.5c-4.6,3.3-6,8.5-7.8,13.5c-1.7,4.2-2.6,8.6-2.9,13.1 c-0.1,9.1,9.2,10.3,16.3,10.2c4.1,0,10-2.4,10.9-6.9c0.6-2.7-0.4-5.9-1-8.5L259.4,341.5z"/> - <path class="st17_map-65" d="M259.9,342.5l-0.2-1c-1-4.4-5.1-22.1-12.3-21.7c2.1,9.3,5.3,19.2,3.6,28.8c-0.5,3.3-1.8,6.5-3.8,9.2h2.9 c4.1,0,10-2.5,10.9-6.9C261.4,348.3,260.4,345.2,259.9,342.5z"/> - <path class="st4_map-65" d="M204.6,322.5h1.1c1.6,0,2.9,1.3,2.9,2.9V365c0,1.6-1.3,2.9-2.9,2.9h-1.1c-1.6,0-2.9-1.3-2.9-2.9v-39.6 C201.7,323.8,203,322.5,204.6,322.5z"/> - <path class="st14_map-65" d="M222,331.8c-1.6-6.8-8.6-37-21-28.1c-6.4,4.5-8.2,11.6-10.7,18.6c-2.3,5.7-3.7,11.8-4,18 c-0.2,12.5,12.6,14.1,22.3,14c5.6,0,13.6-3.4,15-9.5c0.8-3.7-0.6-8-1.3-11.6L222,331.8z"/> - <path class="st17_map-65" d="M222.6,333.1l-0.3-1.3c-1.4-6-7-30.3-16.9-29.7c2.9,12.8,7.2,26.3,4.9,39.4c-0.7,4.6-2.5,8.9-5.2,12.7 c1.3,0,2.6,0.1,3.8,0.1c5.6,0,13.7-3.4,15-9.5C224.8,341.1,223.4,336.7,222.6,333.1z"/> -</g> -<g id="Road_Sign-2_map-65"> - <path class="st18_map-65" d="M334.1,275.9l0.2-0.2V217h-7.7v58.7C328.8,277.3,331.8,277.4,334.1,275.9z"/> - <polygon class="st18_map-65" points="330.5,237.1 317.8,244.9 313.3,242.3 315.1,236.6 327.4,229.4 "/> - <polygon class="st4_map-65" points="327.4,230.9 316.3,237.5 314.3,242.9 317.8,244.9 327.2,239.1 "/> - <polyline class="st18_map-65" points="331.3,224.3 341.9,218.7 346.7,221.7 341.9,226.7 334.5,228.4 "/> - <path class="st4_map-65" d="M334.1,275.9l0.2-0.2V217h-3.4v60C332,276.9,333.1,276.5,334.1,275.9z"/> - <polyline class="st4_map-65" points="330.9,226.4 344.1,219.8 346.7,221.7 345.7,225.7 332.9,233 "/> - <ellipse class="st4_map-65" cx="330.5" cy="217.1" rx="3.8" ry="1.9"/> -</g> -</svg> \ No newline at end of file diff --git a/old/static/illustrations/notes.svg b/old/static/illustrations/notes.svg deleted file mode 100644 index 92ef315..0000000 --- a/old/static/illustrations/notes.svg +++ /dev/null @@ -1 +0,0 @@ -<svg id="_0070_notes" data-name="0070_notes" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500" data-imageid="notes-58" imageName="Notes" class="illustrations_image" style="width: 188px;"><defs><style>.cls-1_notes-58{fill:#faefec;}.cls-14_notes-58,.cls-2_notes-58,.cls-3_notes-58,.cls-4_notes-58{isolation:isolate;}.cls-2_notes-58,.cls-3_notes-58,.cls-4_notes-58{opacity:0.32;}.cls-2_notes-58{fill:url(#linear-gradient);}.cls-3_notes-58{fill:url(#linear-gradient-2-notes-58);}.cls-4_notes-58{fill:url(#linear-gradient-3-notes-58);}.cls-5_notes-58{fill:#ffc3ca;}.cls-6_notes-58{fill:#ff876a;}.cls-7_notes-58{fill:#ffc65a;}.cls-8_notes-58{fill:#68e1fd;}.cls-9_notes-58{fill:#aa6800;}.cls-10_notes-58{fill:#fa8e00;}.cls-11_notes-58{fill:#ff9d27;}.cls-12_notes-58{fill:#ffac99;}.cls-13_notes-58{opacity:0.55;}.cls-14_notes-58{fill:#505a63;opacity:0.52;}</style><linearGradient id="linear-gradient-notes-58" x1="134.14" y1="1856.86" x2="194.86" y2="1896.67" gradientTransform="matrix(1, 0, 0, -1, 0, 2164.63)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#faefec" stop-opacity="0"/><stop offset="0.98" stop-color="#aa6800"/></linearGradient><linearGradient id="linear-gradient-2-notes-58" x1="272.55" y1="1751.44" x2="289.1" y2="1764.47" xlink:href="#linear-gradient-notes-58"/><linearGradient id="linear-gradient-3-notes-58" x1="219.46" y1="1790.53" x2="246.79" y2="1826.16" xlink:href="#linear-gradient-notes-58"/></defs><polygon id="Base_notes-58" class="cls-1_notes-58" points="48.83 291.34 308.63 436.17 451.17 340.66 205.32 205.2 48.83 291.34"/><g id="Shadow_notes-58"><path class="cls-2_notes-58" d="M187.3,259,109,303l28.66,17.12,76.59-43.53C203.89,269.54,196.33,267.7,187.3,259Z"/><path class="cls-3_notes-58" d="M334.71,359.27l-77.54,45.51,18.06,10,76.6-43.53C341.47,364.24,343.68,367.92,334.71,359.27Z"/><path class="cls-4_notes-58" d="M269.47,289l-97.58,61.91,59.05,33.6,81.4-46.2C302,331.27,278.43,297.67,269.47,289Z"/></g><g id="Note_notes-58"><polygon class="cls-5_notes-58" points="451.17 229.1 373.53 185.63 373.53 244.27 451.17 288.96 451.17 229.1"/><polygon class="cls-6_notes-58" points="310.26 175.45 353.83 200.93 353.83 261.26 310.26 235.16 310.26 175.45"/><path class="cls-7_notes-58" d="M315.33,126.73s.11,31.82-5.67,38.15l24.1,14a25.1,25.1,0,0,0,4.87-11c.51-3.59,2.26-27.29,2.26-27.29Z"/><path class="cls-7_notes-58" d="M344.73,143.75s.11,31.83-5.67,38.15l24.1,14a25,25,0,0,0,4.87-11c.58-3.47,2.33-27.27,2.33-27.27Z"/><path class="cls-8_notes-58 targetColor" d="M209.93,68.07l91.75,53s2.1,79.26-20.87,99.63l-90-52.22S213.56,127.58,209.93,68.07Z" style="fill: rgb(255, 255, 255);"/><polygon class="cls-7_notes-58" points="283.36 107.66 292.11 101.6 308.63 147.76 298.18 151.87 283.36 107.66"/><polygon class="cls-7_notes-58" points="203.89 91.52 233.04 71.6 224.05 63.83 200.73 81.31 203.89 91.52"/><polygon class="cls-8_notes-58 targetColor" points="389.21 189.23 389.21 200.92 433.3 224.91 433.3 214.27 389.21 189.23" style="fill: rgb(255, 255, 255);"/><circle class="cls-9_notes-58" cx="358.14" cy="150.42" r="4.06"/><circle class="cls-9_notes-58" cx="327.99" cy="133.25" r="4.06"/></g><g id="Note-2_notes-58" data-name="Note"><path class="cls-7_notes-58" d="M228.11,295.08c.76,1.23,59.64,34.22,59.64,34.22l40.77-22.87L347,295.67l-22.72-13.18c-5.25-3-36.68-21.22-36.68-21.22Z"/><polygon class="cls-10_notes-58" points="287.75 329.28 287.75 352.12 347 317.82 347 295.67 287.75 329.28"/><polygon class="cls-11_notes-58" points="228.11 295.08 228.11 317.87 287.75 352.12 287.75 329.28 228.11 295.08"/><path class="cls-11_notes-58" d="M323.89,282.12s8,11.76,5.4,23.61c0,0,11.06-7.72,14-20.59C343.23,285.07,331.4,285,323.89,282.12Z"/></g><g id="Character_notes-58"><path class="cls-12_notes-58" d="M211.21,142.38s-.64-4.35,0-6a37,37,0,0,0,1-6.36,1.77,1.77,0,0,1,2,1.11c.62,1.4-.66,5.07-.66,5.07s3.61,7.5,0,10.9S211.21,142.38,211.21,142.38Z"/><path class="cls-5_notes-58" d="M187.24,165.79l24-23.39s5.43,11.8,0,17.2l-22,21.87"/><path class="cls-9_notes-58" d="M182.76,262.56s-3.31,4.59-3,7.28,4.49,7.21,5.44,9.13,1.22,2.8,0,4.2-11.53-7.61-11.77-9.05,1.4-7,1.4-7l-4.58,5.8-3.29-2L174,259"/><path class="cls-9_notes-58" d="M184.07,283.25c-.28-.28-8.4-3.11-8.4-3.11s-3.84-4-3.74-5.51,1.51-7.58,2.95-7.52,1.6,8.08,1.6,8.08Z"/><path class="cls-9_notes-58" d="M193.8,270.16l1,12.24s2.64,1.93,3.29,1.76,2.59-.67,2.62-1-.94-8.65-.66-8.86,4.32,6.37,5.6,6.51,11-5.5,10-7.65-5.6-1-7.93-1a8.11,8.11,0,0,1-7.28-5.28"/><path class="cls-6_notes-58" d="M199.93,237l5.92,31.36s-3.41,4.47-15.65,3.91l-9.09-22.22"/><path class="cls-6_notes-58" d="M202.55,187.83s9.13,13.31,6.31,34.87c-2.49,19.11-21.57,41.62-21.57,41.62s-5.7,2.55-17.56-8.65l13.12-20.85s-12.78-29.59,2.31-48.41"/><g class="cls-13_notes-58"><path class="cls-1_notes-58" d="M227.51,159.07c-.65-7.62,2.5-13.89,7.17-14.28s8.82,5.26,9.46,12.88-2.5,14-7.21,14.34S228.15,166.74,227.51,159.07Zm2.53-.21c.51,6,3.59,10.82,6.72,10.56s5.37-5.6,4.86-11.54-3.58-10.82-6.72-10.56-5.37,5.6-4.87,11.6Z"/></g><path class="cls-12_notes-58" d="M228.28,162.28a1.4,1.4,0,0,1,2.66,0V165l.29-.58a39.07,39.07,0,0,0,2.33-7.7c.32-1.71,2.8-.94,2.56.71a27.88,27.88,0,0,1-.81,3.84l.26-.12a1.75,1.75,0,0,1,2.21,1.12l0,.12a2.45,2.45,0,0,1,0,1.26h.2a1.93,1.93,0,0,1,1.24,2.43,2.4,2.4,0,0,1-.27.53,1.81,1.81,0,0,1,.64,1,2.59,2.59,0,0,1-1.13,2.44c-.93.75-1.92,1.75-2.8,2.56-1.1,1.06-2.34,2.13-3.38,3s-2.71-2-2.8-2.92a1.22,1.22,0,0,1-1.54-.78,1.07,1.07,0,0,1-.05-.47A77.26,77.26,0,0,0,228.28,162.28Z"/><path class="cls-9_notes-58" d="M233.6,165.12q.93-2,1.74-4c.11-.28.57-.17.46.12-.54,1.39-1.14,2.76-1.79,4.11C233.88,165.65,233.46,165.4,233.6,165.12Z"/><path class="cls-5_notes-58" d="M201.16,158.43a43.22,43.22,0,0,1,6.16,6.8c1.72,2.8,8.62,10.4,11.47,8.11s7.88-6.67,7.88-6.67,7.18,4.94,6.44,10.1c0,0-6.38,13-16.34,10.16s-12.43-6.64-12.43-6.64l-1.5,8.49s-12.35,3.86-18.07-1.88c0,0-3.77-24.37-1-28"/><path class="cls-12_notes-58" d="M202.53,143.67c.1.28.31,9.13-2.7,10s-8.12-1.26-9.44-4.06.58-11.73,5.31-12.25S201.69,141.09,202.53,143.67Z"/><path class="cls-9_notes-58" d="M198.89,145.31c-2,1.4-.73,3.89.12,5.53a8.51,8.51,0,0,1,.88,4,5.25,5.25,0,0,0,1.29,3.56,14.88,14.88,0,0,1,1.68,2.68,39.8,39.8,0,0,1-13.29.17,101,101,0,0,1-10.82-1.4,6.53,6.53,0,0,1,.51-2.22c.86-1.95,2.26-3,1.92-5.3a10.77,10.77,0,0,1-.08-5.26c.64-1.81,2.17-2.65,3.62-3.71a8.45,8.45,0,0,0,1.19-1l.31-.51a25.91,25.91,0,0,1,2.68-4.54,7.89,7.89,0,0,1,4.28-2.2,12.8,12.8,0,0,1,9.8,2.24s2.58,2.48,1.76,5.14S200.67,144.1,198.89,145.31Z"/><path class="cls-9_notes-58" d="M201.16,243.49s-10.44,18.09-13.86,20.83l2.91,7.95S202.34,255.25,201.16,243.49Z"/><path class="cls-9_notes-58" d="M183,233.8a56.86,56.86,0,0,0,5.45-22.48.48.48,0,0,1,1,0,58.07,58.07,0,0,1-5.6,23C183.61,234.85,182.76,234.36,183,233.8Z"/></g><g id="Pencil_notes-58"><polyline class="cls-7_notes-58" points="382.19 333.19 407.24 329.28 385.44 351.5"/><ellipse class="cls-8_notes-58 targetColor" cx="382.2" cy="342.82" rx="7.43" ry="9.65" style="fill: rgb(255, 255, 255);"/><polygon class="cls-8_notes-58 targetColor" points="297.1 402.31 385.44 351.5 379.41 333.89 290.76 384.89 297.1 402.31" style="fill: rgb(255, 255, 255);"/><ellipse class="cls-8_notes-58 targetColor" cx="294.21" cy="393.43" rx="7.43" ry="9.65" style="fill: rgb(255, 255, 255);"/><ellipse class="cls-14_notes-58" cx="294.21" cy="393.43" rx="7.43" ry="9.65"/><path class="cls-9_notes-58" d="M407.24,329.28l-9.46,1.47s3.54,1.19,2.52,5.6Z"/></g></svg> \ No newline at end of file diff --git a/old/static/img/favicon.webp b/old/static/img/favicon.webp deleted file mode 100644 index b825c3ddd8cca53d9d7168a5e6af7b7b60d8108f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27952 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 r1l!A)09F4G^FQJp00000000Aj_=i9M00000000000000000000s??K{ diff --git a/old/static/img/logo.webp b/old/static/img/logo.webp deleted file mode 100644 index 258d7ab7e4271866241343bdaf0024a919e37081..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10922 zcmcI|Q*b3v)9s0E+jb_lZBA@YCbn(c_QakznTeAV+qSK9=l{O?AMX3TU2E@`-Bn$? zYIRqyr6wySRZI^6XiJKzXsPgghX()vsQ=DA*#AIOK}Dt?1polU3%6gF3MShwSP$5F z@!keU`z!!_qHQ>mW4V{eC)>-rO0FYgY4$2;0+=vh+Q<UOAgs*(koAqI&a}lH+*W*U zqeVu--B@(nJn+HGBC|=2MA)uz8IKoybP%$E!LPNM=p$|x?I5g!T9V4_=arlCG^iGb zCjTcI#$2|aiNF1e?GQcg=e6Hiue}kSojz{M^mTP|h;!GOE3%sA(r-Sj<b;iJr7}qE zJ>ot{5b_?N*omQlkCFcy&seiyim|b1e<|orpuySL$T3SP>{7~Qlda=Cac8Y%U|f^U zhjvM81To<#kee1pVJy3a@M}@#U{SNB2rZ+qkqY73NfJg%Ot2x?zjX|;VgZ>gANEjs zjm^x=TCgGJsJ#|p3KC&q3zxoLhJXYPu|vvkzCk4gif~lKzbeB69tN!9uvJ!O)$k<M zxLA)fTAzJy@JgIgf_unqaaB2Ib#?>o+FHJPK><gEVVjZqnBL@rv*7S=-#cjsB~n7w zRc{pOIoQZa>EWNLz}(oQql8{AW;?F88nkKl-+Y8#a#a;9QAZ{Ckb2%jfN;;nqB4Uv zr{YOEG`1$A6~nC_3=b<@>7-?-ClGLS--wxmam{3;)cS5o4=|-7V+vYQrI172PEakV z$qQDsW051JMM@dz2*e~dAe?Fui+8>=@<r>ba+8=^$b4_!<Oz$7e55&laLgS_OuhC! zIASHOf9E+~A^!73`&+R|Q%6S{I;6VVSx$z0O=0}Lo0b75+JKzJ8Lq&w<J4Ri5~7kP zi#5M{?J4h|3<;d$tiz0Iw^l79{|=~9v=X5OTu+;&Dtvlf1#ZZp!9v*9ri^s^*854r zM%H(KO~KfOFC~+$P|G@>%WpT;l*VNA9of-TP0-BKBgWaLAhvD2y3Lg_7=e0V7H_w% zzMSxa2Q`#-SAP2Kx3?8kSqyF8guF}hFV}Cb)Q~}55IS5a{Csb_PE~-~6bjf!xg_~% z*y(9;Z)_XVaIJ5_VzBzV^YwCj7GJiq)#0tECuB<gn8k2gux<lUtfBER>^_4F#o-(v z%2?|c?_uS8wb#07=?@z@ZP?>jCu`45jq|n3yT!|#ZDS&{*6Y37%;_f$1B<@vfQYVs zYyH0VN)4yc{SYVI?ST#>P8;uzJrmC%(E=1kr_~x~F24R~gN|xEjdAfM6ZzE<*(NN# z9xO9Uv_q1&zeybt)60-f3Dh1cH5TGJheG8uBZe(n-2qPnBqedq6>CTc#5r9NMf%w` zOkuf+L=Z|Z<|L7GXD#G&m_k4vw|vE4C}x18J>L_;Ulm^LrjWm{<Pk>(kyY=DAdg7? zpeQS#QAd=V6+XaH)>jjmk{D<6lb;d06cI6BMh3U}r48&rjT80GkpJ$mTEbog7_CsK zcOK>NQ5&w}Q`7#$<t#Lf<!g=nhKkXdq1=<W7_4}5SDnL)&&ULLdtE0Jj21$9_`(5a zn~Us%BYL~Xdb%QWSLKaTWa*c?vg>S}h|I}D!|90r=H0-7rK6^-CoP#y8%E{wU9tt3 zjOxP;tscsHm}n`M>4v*nr5=lgI?c4&Tz?s}fCX!U6a~*`t<ZTzYW|m!fWaheYn_ow zJu=S`0emG}ApxU!iIS02<{P1;yvcaja=j;b{u)CqL$BN#V2}3_&;tEns!vW^c`^&Z zvx-tvsyGyXB7z$FKBoJ2L);>(G^lPjCnBlL=2RVIo7N(m{AXcD(U?QR`=a4npxRBb z3<RNXCFEIWp@>!MZE^fP=3wky6D<CkdVwSbC1Kh<2am0FE#PfNidXtrk-*wWN)3r( zR@Dn!s<;kluV~1}bgsNiDv7c-xw0_cpTJdGc3+|x(n?~#K&Y-t9#=#Ri*J`+76HzP z`*|vv<5db{-_QF{62F`!$9s6<%X*B`P#lW9Mf8A)^#`G#@*%dTazL0@+USf{;Pf?c zZX!UMNAl|vG?T#&kK$XBP^-2R3wm}q7kN4<nTdJ$S)#oKoPVCDCi-}!>9K)&jHRI$ zwpQSK*$%j`oEkFx^-;)W<9>_1O}t~9zhgqxc@=yp@;XHRXi3zB>%Cx^J&?myJt<(D zQUO34%?bM6GZ4x32q$~lcV(lFPy2F)qj_YIa}_nq(|iM;7Jm09n)&uu9E;ltdVS#z z+VABlw3g>J-t~EZ3K!@Htid%39w;L{$-deBY&61tcp`IQp@$kAUz@!QEX&dp#p@*` z`p^l;hab4!>%}Qx$}PqvsNj6+`fn^sPxsG?Ez6Y>EVx>@x-e>q7I;evPtjvgHEx0; z(K<EcPsnFYLgpn@4{%lDBRZJcG*Yl*%(c$%k)F{sV6xKOL&%gf$>2~{{E2h1)hT<? zZP`U`mwFb-+DiFNwRf^G;Kg{_0%RXQbTGZ@*22$*pLScE2R|I^GA|sqt%Vy$V~Sf4 zxH*sKPfPv$m<_wTJB6!gWl0S<SNoh^2h*Nx*z=A!t0XlJ=ZilZ9X#%rYI5F3${15D z9lN`{F5iv}SHEOfr)vJ{?<agptlxxhYgzDSVW&}8WbKdp^3jc7KmhFt{P#wbe0}xL zFL16uUF?UJx|X4JvZ<rM{=mAhAeZa7cQv;Qby>W0`hZN!TXi$V%}a#+&+1!$P1P{> z`3T_0Ej3Blv7xuf!q}DEo=jT-1;twt`koeqi7j@55!bxq+3c*gZ}^$c@ArV+R%Qak z^(c1el=TVRQXa202?DDBlJCQt?aB=q)+8NW0<IfW0-ocy9dt^LefI>dEYoe0NxcMq zPppD`Vr_B!K|}!+(L+6-IS6FJ8^8VS&sjmo^{*l6Zr(@I+g*_dqx)T7iy#59R)l~T zPLM#%FS}){B#X|5NZI*6xF^Wpt*-#!2h6Vt_`{Sowk<+a2>I~Mu1~<eKx2wrK%Dx? zw*b>+Ffk*qM2r)689*{4d?iclzU|n@$7F#Mpr;yo$cu2Mf~rUZr;l=wZvNP~C0JtH zD4pmdE0LLDN)t)3?t~IDfr}cmivL7t`l&_R@x=0>L$iByn3UQ56J!pVd$-rm7r2Yn zQo?PY`edgr7F47c(MUlC4@87A^Ajs(%*_BS$<5Q?@*H-DhLzviYS{nSOgWj?Ig#6e zRDwiuO;+$5#MP9PX0C}_l1Uk)L2Rxrb@{GEWK9X@C&u-QUK(M1KXkNIr|ldoTvAns znFNbk7AC^bgo1^k%NKHpQs-YEof1VCw>-QAEke4(wu}^wW-`9Ng9t69SR8DRt4;6H zebUMjtX|ITpLX?@*v-<H!<VpAw1vtmxhK|TXl%S61>;75>C3~brf&<!IAN_{-BsGc zz8zv&<JK;Z)&i3NMtgWYLXs_?AzklT0x1Xkgk?W#aqJQ9Ygemd8^S=g2yL#VZzaCg z-+Fj|XSlgb!bJC@VVyEEoD-f<1ftuwED32XD)I7J)jk#>RmQRDiZk?d)5sj>x?xrM zT9+t-tFOb(nja<^XlhC#O)$iCR*@^l4&O;N*D+3vYuS2%x5_CbmsfES|2p`gxs;MX zLa>-fC0p#rCg!-=fB|=7E_D1O3y0I`)d^oD*-|H+@}}vaG8%7=p1D4beH4G~<@;zu zks|N=cSC}(>}FA04lQxhPrON=B#k<HyOwdUlV(<G#b(OIox3#-so+7ac%hcrsIjI6 z7>uPfP1W?Je<PV8WyyL+HvZz$stLQ+Enet>mG!=)1*eJg-81g{vU#`7KK?bP9t+pp zTBa`Yb)HcZL{|P_@Q(w}nP6!Az`N2om);gtIlGsI@VFZO%{i%}Z>n=>D*8xH=~up0 zk)0=(`CQ}mT&2?XT9=iGmk?Azi&A2hW$&W~9d8(==q4vJam0@T_J~XjXi@-!!6#YL zSXkyp%0WKY3g(MQSR2;gY-deInkRDA3Uz+IGeQqd+Iyov0j0F+ep~QeE`+eEmLU3) zkS?`X0i?5hL(xQ-GgT}xrp{h}{m!V9$4`NyJjI1{<e^rYLaRI?^%sVYejg%T>%S}Y z$RTy@@2}H(zk_XSGsaGKg+w@P$D&aS;L&>%fB?<HUnt}#MOI!|pBIAwDvF(Z9_@8p zQuRde&e@Qa#R_9NaDyA#p+x`|CS3v^&h7cQ#%_2+XOl^WtFYcmwAjL?%aNoJhpBFc z8bIcvG5pJ|1IX=~0kjiviLm5*TY#M+7NTrMqb)rNylulN-o}5QFS!T*p)9Qn-;25r zuW~Z|yHi>-5K<durU0hrsfPdX*Oq<`8l4i>*kUT{1Vt`*s19_`$1{A9Dcv`E0;wCh z!uZJvS_T%VKV`7|_ZXum7J{^L0M`*}W@jWxi{F0{J1TV=hvBdYj0y&DZ)dP5RJi8B zPizrooH$|ur(C-~EEot-i}Os*xky7@IBzBk{BLeoN#zj-8^4X_-xLY2qF&i=u5aGW zj!;I;76Is~6W&*h@=nE&b|XDrx|D^L2x`R}%X~hpKu1q<y`B{Tp5kU0&`Uht_uJcK z(Kz1gT=qEV%iP1~A*85<DFeI1x`-|i#;fa_`#(K?f6^iiLh~7{cdQHYt3;$C8~a}S zY<*6*8!1Dmez!XJ=sWINqjas1I|%0N8p^x!j98D0kj3riJ>%cFRq`0sJ@;y~FBN=0 z8!+~3X-lWlC4<$+{<~)F#}jB>&`TZ5W|K`_WId|+N;#D*0a0v^r&}_t@{o>4SYiXy zHor_uQ>4R;8C+9dUE5z#`17<WyrHmGw<#oZJSB)PtSx3Q9NnHNvbU5}Jp|A6N0rU( zOQdM-okR<}@yy5krdNX4xOuMBqBRDEg^XMkEFKXMmRuA+PmV*Sk~scv0#~@vlkI50 zfnA88hfI9H%lS0LOlQ+Rg7mHs2`Z7p<95@5SSHttb6+nq>t|7YpQFq9U8mzndMW;V z%z;CPXN%k6#;c<qDty!Hu?};!RWk2altZt^#Bn`z&vvHkbX`=EEVT`hNpj0u4$hCs zm-g!dMVgTj$x|_8nI&kX?*!D=sY$Rp<gzd?85Q;l+n*wwS%hKvX-eT%OI00C<#2J} z;ABuKmScT_XBXnpr?<1Eme8L=h*DN_Hf@dhcp{8UdeRoLS|GOqoyHQIkdP}1>l8|6 zZ5z|VLQ3)JPWt-w%yi8u#4fTtCS)#$^z=u4a@^|b;>@Fzv6f6WaA2;Jzvp^cZH^?T z*{Vvua)OoGeng)b3xl@elY@TmC24(bG9sT<i~w*#$2MdLgyB7(!_V!W0Dn$P)RboM zpdL~La<uSw^-R@9!d5&|aE!mrB%koj&PdnjA?(`|z99kK{$E&v{HN?myYT@4)>J?q z82tm-1K2-_PgT|xHpk=e60iev0&|11J#-i9Y=OTV7f>2N@#*-f`BidM|AaE0uu^~e zx!TkA*!Q;mnQ+w&^u7je?+R-RnZ0U$%713O7W@@V{zBV>df~n`I_gW?o(<RuDEY_< zBTn`&dx!UNxes^%EeY3y@<2@QK`-xxD1ibZ0eK*Pkm@JIyYd@wYr8&R6jXc{e}^(3 z5QuWnHyf}YKnH^Ra@madsJ|Dk{bxE{`aFM(yeGT`-1IdXZ3=_F03f0-w$Ge*?l+Q~ zfHlxd0Pua_k^imag62*BzA3+OY+te1?Efde|8W&_*;-nKDN<TvyQp`V>AN=lE57^2 z=lid8(OrJ&leyA1yqf+k7`o}ym?J)d;Acv3E)4D6a>Zl@-I=o4iRfTzw%4+2Eh4sJ zF+<X^Qt^ck4Ublk!TKGX{ZAAoZ|`5LR&ofa1)AVkp?oOHS>h*Ih4gISw`duofj#|7 zM~QbX5&nZF!`>0qH@y>N>R^W{xdLrdS(568mYr_o(OB@%bA~o3G~83ta@szl#G#Eg z6ozR}vk6&|y%D+@PJu^lK=?3)_%Q%jf@Timsi-L?vmmtg+hU<a=Dc+_6?n2nL|j24 zFTlT^@z9|Y+>$d&?%E4t=0|Kt*WdOw#O>&mjzSGi&D7V#z7+i0r@UsKtE-H}f|Y=I z=v;HsSuXhp9_EIYY2CZCeu<$-Q^KYiZ9G94$VrcBp&o<KaUOr_X)HwcZaNA5l7NpU z!(jCq{ebCEZ}~mXl1!*Gcz-_htY~(`5J}g(KiX&u3i-f98+;hDFjIIiL*rGRHjfOm z>wLI3N!%9gqzk?(y9ZI8VZSrCA51DwP}+JquKd!R13ZS-b*Cb|-1m>fq*m$iT-luE zH^xSR=#jk>?2y7V@r$0lJV99#K_oXP7vpTtk35L|u=5%k29@3e9#z<|UqfGq;d4{y zLz(K|h5MvYp*r1lsX5lDiN}s~>&Dy<v=&<=GecT+A=PoW66^Wrju{;9rn|8JQ^r&< zNx-H>zSnlrrqGZae6>#to^NKx+jmlmyOd$Tl#UToXZZV`>K|Us-1HtHv!00JK$MZ@ zcF3kDpKYhYhu4%@I^hOTS!!Tu3Z6mq66FQEFITKj+nGJyQFa@#?!>jNhbv9#aE`?P z=7pdW5rKR?oOX+cSG~X12pVbkf1TR(7aW16IYepa4;x^O>~UW+W9tf?!aoOD-C&ax zT|=JN@l~?c5dRp7*UA@$+wR_0l8G_zU8}Ak=5wqmn0bqJ-)@lw&f})w+waImkRRyP z!c<KDd!iP+o+j3P#PAE5Ff3sAoVWf*ng4gt0sy|A*IWM$sej&M`RU;$VLfZN+d5m{ zk;gmrfWMS!jOFJaX~Fl;a&l(aaYSwxoXZcXHJ#UW+wqU(wD#|8xs>Kvg5J_m%h@CJ z6Z|M&T!8fL0>$LlOjx7x^%~^@p6qj7U{yo8M%A$|snsTshWf`+r29baSzZxA<I`a) zTg|t0448gO_QI-{sUSFUmdqSKcWP(*adEg-Aq|3|7Z`V0>BAY<1Dlo}q7?tgulNQM z>0pG>rJ(cKQpbc#TBJ?!qv2%3s-cvf&P{zSL%j?jTZ-zIJhV!RE%bE?F@9}Mv+_of zUP#wED^4<Fa}GQf%q!854nxX4K;gR`TKb!rm@{rOh!|f8B}p#IZNcEgy;tMG&$wlY z_3+vOlISb36Jk})r*P327oO-fh8%fZeG|S-V&W|8Lq;S}73n6Gj2dA#*n(u$t#q-j zJK#Q@oW{e*e+K@a{zO}|SL5$8+l4<XZj7I2*yIpQK8C=O(wiMhv&fgJ2Qu6W^aBYX zIQb+j<kMAP8s!^RkBuU%c~BGWbhpsF5@xIlo=q{|d`u`N34;Qgtu1s10i=Z;XTLjt z#Lz(c{RpXU6|fDSLy8<KM3j?h_ZXUx+pAu96alMcR8;x~$&|!+q}75wq?6O-x>#1| z$1k7P$PwE5fhy5F7N)0Q!ZYE=R>TXX+4EzMjAvsuzR4N4PhbBeqi4=OiIvZb4+8HS zSOH*XgM_SP)>cwyevOI7%8g}Brf4=UXpx`wWfF1-6tIn%vs<@#j}87@mEq(&P@>K* zj6Ou{2lld){%tK?<Wy%HQ$#$HY}XyKC~xjv<5AsEZ7551uG@zzg>Cy~mBHF!?E2#o z4{Im+Br;}LUl-L|=};!3t%TXlQqttNg->~8kr1yBW|y?6O_NODejX$wk}r-t{3y?* z;*=9TCUjiC)$aJarJMp}Zg&NOUtQ=keI6aVF>-TbydvY9oeF89OWn`J_-=^asX6%^ zQ!BlV6EJDb9(m{*E?G-B&y;;%?C{99y<-BW&%{w!mnWEafvHtw7#@7*t|fpV6w6nJ z;t(i{LxQ33tvtlrKry$0Khf>0Q1|b`jHQ^6hD1D@DPqP}0pp>$8|dDV`~)sLBKq-b zR-eQONNM%@6GvP9OGi77HC=rN_09`=3p`DCiDqYgf>CC4MD++B12rfV=Cvc~)T^?; zCy79(Dr>%iVB;52B2W)NrxG-u5iILk6Y*ec>C+z_grjZdSEN{tbQG|o3KAZa$@sEu z<XQFvtRtx99%)Gn;=4KZ#2-tjZgW+v&tWN)@%utv=(AD2wa|DROowxGRFF`93H@au zr=CF<der7nbya~@5-&I#h&(jG#E%JELYC|!U2tOD^ljXbzw*@KApM+%l`8X}|5Gdm zJ#`UG(1PLKU)_xF4unZ2*axHuzZod_zp*l9521mN@YSga`FQ(S8da4av>A<R(!W4> z^<BfB&zyY$k&}bUN=@xN;Wd51S2sa;B)o;IbW}-RbEUrVL=7{*dUa0CJlj^WUx>H{ zsm<#(Mn679q(WW8QNo21dKK^A*gp;4>y%%`bkjg$*q*Qf46BmZQ}2-pCVyj_#piAq z5;Z$jFz?A2Wr1?j;{+r|;zi~Bp7YX#JnL9&N<jy1bllupG24FZnu~fQ8CY5yP=fy4 zR1!NaRPPPmqHi{qBnNZY*KU|-g_a6sQ$2Pp#{D)5&p1jdc3TDdGan}7tn+5?%Lw(K z%;my<I5Ve3nZ(5pp%Hz8J%TMd_#EEdNcO$D(dyec-2&&c@Mecx#TO;tKIDp8-H-@F zgq~)<A8|2xBaJ~=R<@HUtM^~Yh=uaQtZ=@*mn+Q>6}{c;r^4loN#42QiX$xk^eTn? zxII7*bdRLrCnyDO4S*!nLSIsRo!)%gMkhZuQTxC24Vj1E#d0(VCP72&<L4hD)Qk|i zc;uR|iIp?6q(3GIwUaAc+h@HN8BSqi?2<t45x(T4F#V=`Jfyg=n{jbHeeVW;)=tD& zy5(tZ0@uc7gq=>;=TvahgtkV>elN9td|isy7bL-P$~*k`%YB2-T#chiWD&2nbkT(Z z?X*Ps^>7Zy?G<e?guJ*+Vv5v8Q{7P1G*IHM=fn-eXr$}?YNig&=Ukk)lFBb^Tq|Vn z!>I-KjvZ-M*>or>!U6+k$zC3$Qg*H*LU4{S?hfbIyy>S+^&9kg|4ZSmoq*Y`vM*H_ zVeSgO`i{uwtXp#^-7FD)35>kBIjie^CIlIluP3B}YQLPov;*{eOdWokg~go1Nupp& z9dOk>^*kW=L`59oYq0(H0PPNp20Hj3`p<m|)nUE~kIuZC83b@0asl?*C>!q`<q;LV z0a8b$4Z0V+g2h)d(A=5X^Q_m;hYvVQA^X_8avuzGJa%x!_^;Mr)rCdQ=bSY<&RIV_ zvbO7H7G$$OLzoLZatw8%D({_KC5gXY(`@MTq{%FoJelz~evDa8Yy`-FtJ$qs<ZEMF zrv?&GAc$h%3IZ^9UoX~^GWeRw8#dW{X0E?d%yF)ewLibDCSe^}HR}23((AmrnHP#q zHzt?oFIK~+f|7<7o31i~)t_WlbQ8o{ZrL3*k-sh~?XmDh{sv}f)#{Qxmi7-6<eS!I z3|;<Fr|}?10e$e}NPa()OLucwF*<7_sEs#`wW<6Wd%iclRWf~XL`33<7(w!tp-$2p z=UKq<;0?FsPuc~o5RiS#cc8;Wwnn0*@!+muMt#du_ja4-nohz%5^~GjR+h(HXL6bp zPxYy?9Rd_=OkGE`sJj!EHmaGZr%`$(R%?Y4I?W#VB85N8w{=X|Wz;SR%v6vTfZYo$ z4Dk*q%vH+Cb0K-Pz#PEKcw5o9B*QSWVZj!0Kq>A|*`LtHtnYkz-1b<BSQ;!!g(*TX z$;AI_VieEeS`?A+NTjO&d+KlePv>Y+urxYwD?j>g6GdN|CJKc~BP}pRXb3cT#J4<G zx_<FL<>s7yChgdKlx?U2l2u~L3egA<Fsad-D^rBt8qkh;_ib87YH+dA=|8Wy!~6FL zs4Svqbhg7N3q|Q*N|KQ9=@2C~RnaNL!~w<@%YC<-#!|oxIMrIeyOt8GDzAc{xIFrT zDsdig^oB|97=k|?>6aV{J1G4}73BHsRk^=1FPNsKviOa1u!VvcmY~{oAwi(UnbtWO zZDU6C(VqbxcrzCw&Cwl=ZL%MkmHfNkEHSHF9A_2JheahFc&WbTfYJ4z6C5pWnd2o= zpdy>qu6}lLgx#6U%+N9cHBLEvu<)s?$VlaZ_VKYIo(;X$l=ji_8JujWu%3p$dc?w` zFhq+qA|z{{rJd&jZAgz`-`XnLBPnq=-CEyC1t6gv&b~Uymy0*TBKt1HI^Iwie5c~{ z!$x1z3Xqn|1p))!=nHk%@@^^zH5B-_oQTsM^59Dx@g;%1F^%*EH^`PYjY<7YmzCO0 z_KDw}Jy>IM6~oC6u906*oqq-!n3QiQ@P!BYr3m|NZvQsprJq0f<K^hnGu}x}vRw0c z1q?)z^g!I@ae>80Gu3{MK86{N8%ZXv7fB1#l<6)+yVb~6C^2x8EKim~?NM#eVt;W< zaCnmnE2GZXFcMKbqV*$v#<*@B2#q$&vhFa*Urt6;-F~E>J|JpsJExEdda#Sf_nW65 z1-+B>b)PU6kzEV5cx*t!49Ix2^Xd(^0e2`L`anm~)yIyV_Io~j>~)DkNcuC*5_t4j zWu%W!7FsV+pug&pSgekVx2G@2FYqF8E$3sm7F3AS33>sKD84@F{x7q_1&$e680(=o zO||6L>lO}=6fAlVmdvK;y|-_Sk~>;Z`=k<X0`1`*8++hq^K#Egv*UQhBs>s7X?`Ab zgK@<77iWZ>Fts`|Kc9c6UPb9AjlfI$g|#ISH@Bj82!Ev)2&bkS(Jfog%pC5Hq(JWp zPv6c|F~*8n&v{!I1)@wG%bD`Q+}vsHw=c<kP($=Jd~y@185ut$MOQH@ck3v+th(F0 zTg2N_px)TR)>3Y=SF(^KN!LGcs}NVrQnNgzfJ7Anze6!-k{Ku-9CcPXc}Wm?(SCz; z*iL{CA8;lNc+;ib{v505`aCIUf|_CpF*UI;)6|T(ED?*X{aucWL|aF)_RGizwK<ik z`mXzu$y|h68!Sf32!X#fYHsw<6t-w?Uf3OSnBdNd2_Ycp?|L_qh{htqwl!DTsm7Qp z<Qz&?#e&G64gn2_`Pw5!yLA2yXnbsW>NG<kSI}=twl#akoc2@9#QU$Bj6>ifrW1%0 zp{5IxJ;}^v7RELIsTXV(4`Z>gM?Zn*D*7t6l2qzUfEaffp1gn!$tg#HqwCCbJcLS# z%l()<Sju04KrHD(YGKH3e#lvN1iUB^Pjg`X(Y-3B-(u%Jg>Iql^41S2Y-e_OW2|x{ zooN<EkK(U|BQ&ROt?=ed6qx1?RbcIz2lxu9wc|@OvPT`YpZaOv1>0q?_g|PQcR7Nn z=<5-g+ak{7>q+V;TOl5gRs@+t0~l>ca`14-I&95bTD8@If$tH!VGX|z!q50gIn9es zadzG$s%}EtX8xWi=6}R#N-4I}lK70@zVP1{kqDX(+AQy@AUnVW!wDB+6fbI&kv;(e zxLN_D3iJCa?DIfnIiAQ*F;lUn<zT5t9nt)Mo0&}S8*}X?EFQF+&PRy^nL}HK<}E~^ zTlVEcwQL7u?mjOgpY3drOofJXU;_Zc9-Z_9KnKajG!=(LA$V+qCUDM+k-y7pj*6MM z&Lz_p+bUu{K(Kqyhfh5=l>p_7Sl+d;DL&$9PdTGMTc_|yux`yZb+fF0S5s$poVbc3 ze!wTb1OV_{vIG41Xhp>iw~S+By)nM)1Se2&8V?Bmv`6)rH#AgdkSaezy8GD}U@4j% zjCO2tMltl4y<<wyHnHBL*3$5+<Z%akx5Sj^7*$ka8AVwGEYpMC^QB%e`e&IZ=J&YO zXEsx3FS+9NZoisEI9pQw$Qv=C=qml^B>a*}s;){76mtU`=Y<w|RaIlp+$Zr^1{Rv# zUGVZL-Fqbq*^zMEheG8=D^S_O$aV24Z`-f#m-{3~mO!X**5eKHa*kHW8^9Ild%qA{ z={7Xv_8+jVKkvq1M7nIPl_C&>mhd$E=DS^4ZK3SP9zSAcWs0E|O9;5&B-)!X%?H-B zp}7USlHgC5e673}q0%PCrMWVR*=d*r#WxhBeY2eSxXSvS>VGUvcOm>3a;YOKyCU8h zG<c0^q|V8T?#w9-X{HWJpVIra9gLQ)CXL6Z2SKQPq%E@{AA-t=Er4#A(5YIO%E;^k zW70K&3(*?f-**}`>V_v4WwNS-oRLU0$vF>TGZphSBtFWCqE#PK6*o#K?Ek&X%)*F& z4y=^Zt&Kz@_6dbNLe+fxW^{rJ(Jgq&eDC)gzdBX)@2nYaOp<1?@g*TWnAQGvOh?uF zmqcTV*j-2dM!<j8e&*oeenYcGP6=p+q5=^j7zrE+m8C_$`NJNGNyIav@WT=<^WL&$ znFF#4BnCf~24)g2(W|2?$2dl9w<VVYwxuOX1^?gD*=|Q?1;jhOp`&=?Ez-TPDok<j zjBS|GRuQfK=Tw|EFS9n8S8jU`n2G5+BI;$+Y`lxVwLHiD1fAq5iko->Qb$MZX<0~N z5`?PfW@D-y#nC$JGQnO7r9p^PFS<t`db)CDfndc8BDn2)x+CfSkMfP5Ts5@Nz8pV_ zKPdn++A$}M9eJ+fPfJkPhhQ9eX)nFDrOp{qYdaaV<v}8lzlakTJ|5`ir$H@iHsrWd z1uwClH^yUEy4b@=jh}&=%_-_U`svNtW4gW%?#G4BlSEm|em_>_)cWDx@?y$ISu)ti zY5q&F<LYioOR^T=IM05{Y0;SH8gnPKnK;|T4O!iJ;XBiQ>U}B+5moT5nwLE^dbXeP z@60GohEp<xBMvot56a>%L>eLOrvp2I!_2o<giLA(H+4nKz46lKX;xaj1|8x_`kQsb zdu6md^;75S^q<!bMq<(|_=a=sMYsn-<pE3NMtE;bJw@*Pu_Wy*+&&y8&VkI_2Y}n- z6Op3TQ4*HJt@l<OcO60^z!P#4G827Z1oG7y8r^f_SZ*fHl7DqWi6O2#yGc`hqhnG< z@T=V@7~DDDM#1Pqj&flM?GrsRtOVxBwA(Xdx3qKI&W7RGc8@5<q#exRqi!P+l6Cii zmBG>g-%IEY8=7qN1cW<jUPzf<HZGhQXo9G}$j^8kxn=AKcq6P+++l}R@L!HOBSx_E zkkQYK2e>lXkx2h&+%4~<F2!(%5$>{1(@AAdSeL4}<j_?+<%l<=8RQ+K4rd-r+)4TI zk$nr9@7^zSU`G<FsTPYtTRRHnb++C->`xJE8k^8XTlsU`4Zcf&Nu(AVklR=3>?Q@s zS%HqS(@BCv@7}*}D*hu3H;DNxLFBm`c?Yyl=+&XUW|fk6QM!o{kEh8=fUXHF)l3{f zM3m{-S&R02$NIEKPDHIR#Q7D0Z%|OZ^q(dkXGo(WAu<oit#1ZHZIn;^t%X0?FUcWx zE5bX^_bd6fCcp(3wOr0Dz;dO7i<l~&$ecUG&0wV)On}P!=&u1Ic#eo`kUuINog(J* z$AENhQu1sh^nN?8G@*$!H24Wo?v<Nh7_ogBHsYk8@_#n?n4F#S)-Q=2cN6~f!<&vZ zQ_-NvFH04q_QSvxpY5tSeDS%4%XVr)VfgVSiZpmQOu@{qZvqD=&>d1>i0_%fW4lgk z`aqtvyi7L*u)3d=F{c-k3QYkCEG(}K5mjv`#)9inv7IbJqz}z(H03m8qDZU^u?|n_ z^<t{^ihYn7Z`<J9_cK2`HsdwAvvQ$7PGtL@t@CI|(Kmx;Ht<RgZTtf*ISu<ZcN$Mo z`rZGya3_k}jzgO7D76TB5w)+XslPT))MtABr1t(Iw^V|3<M)23Ztg!Vy;Vy>h(HKq zURod)E-))&78S`2llUuI`G-dW{8flSwCfJ{j=sXy*mP})?)@AZS;Gmh*7CJEMqeNf zB87&^5gy9#kk1V%9D#C5)x&j(_4vOE&qXJOe2zLQL)U)qUB7vTVnNL+ozigJ%m~qY zi&G)SsA$Y!Vt?uO1??~2+RGfX7VfU}AQhT@B1JO^ZzkU$6ofh%u46RuI^;JDbl%*R z^K_ebDZ+aQi`tewHmvahqx%@XaM{0h1)eiQq)wDTF}QzblDg4XhJxm@07*OYR!lDV zZUpb3$uzaF$lDuSR#qL8SeAY@?${Fv-j$6d1gRGBB#KG?P(QpS6XOj@wzwQ`)Km_9 zDPWcUn!~q~J#UTLW>$s@-N=uOo936O+4CQTdii+a|B7}FydC}dL2=VMB+tC(=h-Wa nzBdEKf3utQj+^r|2NY{-6;aj4@k97V_`kho{2vqe-}Qe0D)LE; diff --git a/old/static/img/undraw_docusaurus_mountain.svg b/old/static/img/undraw_docusaurus_mountain.svg deleted file mode 100644 index af961c4..0000000 --- a/old/static/img/undraw_docusaurus_mountain.svg +++ /dev/null @@ -1,171 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" width="1088" height="687.962" viewBox="0 0 1088 687.962"> - <title>Easy to Use - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/old/static/img/undraw_docusaurus_react.svg b/old/static/img/undraw_docusaurus_react.svg deleted file mode 100644 index 94b5cf0..0000000 --- a/old/static/img/undraw_docusaurus_react.svg +++ /dev/null @@ -1,170 +0,0 @@ - - Powered by React - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/old/static/img/undraw_docusaurus_tree.svg b/old/static/img/undraw_docusaurus_tree.svg deleted file mode 100644 index d9161d3..0000000 --- a/old/static/img/undraw_docusaurus_tree.svg +++ /dev/null @@ -1,40 +0,0 @@ - - Focus on What Matters - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/old/static/manifest.json b/old/static/manifest.json deleted file mode 100644 index 5740903..0000000 --- a/old/static/manifest.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "name": "Synthèses et ressources pour développeurs | Memento Dev", - "lang": "fr", - "description": "Découvrez des synthèses et ressources open-source dans le développement informatique, rédigées par une communauté de développeurs.", - "orientation": "any", - "short_name": "Memento Dev", - "start_url": "/", - "display": "standalone", - "background_color": "#f8f6fb", - "theme_color": "#7c3aed", - "icons": [ - { - "src": "/icons/icon-72x72.png", - "sizes": "72x72", - "type": "image/png" - }, - { - "src": "/icons/icon-72x72.webp", - "sizes": "72x72", - "type": "image/webp" - }, - { - "src": "/icons/icon-96x96.png", - "sizes": "96x96", - "type": "image/png" - }, - { - "src": "/icons/icon-96x96.webp", - "sizes": "96x96", - "type": "image/webp" - }, - { - "src": "/icons/icon-128x128.png", - "sizes": "128x128", - "type": "image/png" - }, - { - "src": "/icons/icon-128x128.webp", - "sizes": "128x128", - "type": "image/webp" - }, - { - "src": "/icons/icon-144x144.png", - "sizes": "144x144", - "type": "image/png" - }, - { - "src": "/icons/icon-144x144.webp", - "sizes": "144x144", - "type": "image/webp" - }, - { - "src": "/icons/icon-152x152.png", - "sizes": "152x152", - "type": "image/png" - }, - { - "src": "/icons/icon-152x152.webp", - "sizes": "152x152", - "type": "image/webp" - }, - { - "src": "/icons/icon-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "/icons/icon-192x192.webp", - "sizes": "192x192", - "type": "image/webp" - }, - { - "src": "/icons/icon-384x384.png", - "sizes": "384x384", - "type": "image/png" - }, - { - "src": "/icons/icon-384x384.webp", - "sizes": "384x384", - "type": "image/webp" - }, - { - "src": "/icons/icon-512x512.png", - "sizes": "512x512", - "type": "image/png" - }, - { - "src": "/icons/icon-512x512.webp", - "sizes": "512x512", - "type": "image/webp" - } - ] -} diff --git a/old/static/merise/mcd.webp b/old/static/merise/mcd.webp deleted file mode 100644 index 07f5726e81b21623ae37c567ebb8d1f6f344e114..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33714 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 M%ioXa7)@XR0DLX*VgLXD diff --git a/old/tailwind.config.js b/old/tailwind.config.js deleted file mode 100644 index e9fbeed..0000000 --- a/old/tailwind.config.js +++ /dev/null @@ -1,19 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -module.exports = { - content: [ - "./src/**/*.{js,jsx,ts,tsx,md,mdx}", - "./docs/**/*.{md,mdx}", - "./docusaurus.config.ts", - ], - theme: { - extend: { - fontFamily: { - sans: ["Luciole", "sans-serif"], - code: ["Fira Code", "monospace"], - }, - }, - }, - darkMode: ["class", "[data-theme='dark']"], - plugins: [], - blocklist: ["container"], -}; diff --git a/old/tsconfig.json b/old/tsconfig.json deleted file mode 100644 index 314eab8..0000000 --- a/old/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - // This file is not used in compilation. It is here just for a nice editor experience. - "extends": "@docusaurus/tsconfig", - "compilerOptions": { - "baseUrl": "." - } -}