From b85a6a2710b8678b095c8205177103a9bc365fef Mon Sep 17 00:00:00 2001 From: Anthony Dumas Date: Thu, 31 Dec 2020 17:38:30 +0100 Subject: [PATCH] Basic Internationalization Support --- .eslintcache | 2 +- package-lock.json | 310 ++++++++++++++++++ package.json | 1 + src/components/MenuComponent/MenuComponent.js | 57 +++- src/index.js | 31 ++ src/messages/en.json | 4 + src/messages/fr.json | 4 + yarn.lock | 143 +++++++- 8 files changed, 541 insertions(+), 11 deletions(-) create mode 100644 src/messages/en.json create mode 100644 src/messages/fr.json diff --git a/.eslintcache b/.eslintcache index 9cf64a1..3c18449 100644 --- a/.eslintcache +++ b/.eslintcache @@ -1 +1 @@ -[{"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/index.js":"1","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/App.js":"2","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/reportWebVitals.js":"3","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/menuComponent/index.js":"4","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/menuComponent/menuComponent.js":"5","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/MenuComponent/index.js":"6","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/MenuComponent/MenuComponent.js":"7","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/mainCard/mainCard.js":"8","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/MainCard/MainCard.js":"9","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ExperienceCard/index.js":"10","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ExperienceCard/ExperienceCard.js":"11","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/buttonIcon/index.js":"12","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/buttonIcon/buttonIcon.js":"13","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ButtonIcon/index.js":"14","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ButtonIcon/ButtonIcon.js":"15","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ProjectsCard/index.js":"16","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ProjectsCard/ProjectsCard.js":"17","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ProjectCard/index.js":"18","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ProjectCard/ProjectCard.js":"19","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ContactCard/index.js":"20","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ContactCard/ContactCard.js":"21","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/contactButton/index.js":"22","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/contactButton/contactButton.js":"23","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ContactButton/index.js":"24","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ContactButton/ContactButton.js":"25","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/FooterCard/index.js":"26","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/FooterCard/FooterCard.js":"27"},{"size":500,"mtime":1607637518763,"results":"28","hashOfConfig":"29"},{"size":521,"mtime":1609105967619,"results":"30","hashOfConfig":"29"},{"size":362,"mtime":1607637518766,"results":"31","hashOfConfig":"29"},{"size":74,"mtime":1607640746796,"results":"32","hashOfConfig":"33"},{"size":681,"mtime":1607640746796,"results":"34","hashOfConfig":"33"},{"size":74,"mtime":1607640746796,"results":"35","hashOfConfig":"29"},{"size":1059,"mtime":1609105413992,"results":"36","hashOfConfig":"29"},{"size":632,"mtime":1607641188004,"results":"37","hashOfConfig":"33"},{"size":5353,"mtime":1609105317832,"results":"38","hashOfConfig":"29"},{"size":77,"mtime":1607642019704,"results":"39","hashOfConfig":"29"},{"size":1500,"mtime":1607643468593,"results":"40","hashOfConfig":"29"},{"size":65,"mtime":1607643386517,"results":"41","hashOfConfig":"33"},{"size":674,"mtime":1607643491629,"results":"42","hashOfConfig":"33"},{"size":65,"mtime":1607643577907,"results":"43","hashOfConfig":"29"},{"size":491,"mtime":1607643905302,"results":"44","hashOfConfig":"29"},{"size":71,"mtime":1607644745576,"results":"45","hashOfConfig":"29"},{"size":1674,"mtime":1607646170128,"results":"46","hashOfConfig":"29"},{"size":68,"mtime":1607645435051,"results":"47","hashOfConfig":"29"},{"size":907,"mtime":1607645693299,"results":"48","hashOfConfig":"29"},{"size":68,"mtime":1609103467221,"results":"49","hashOfConfig":"29"},{"size":1739,"mtime":1609105125599,"results":"50","hashOfConfig":"29"},{"size":74,"mtime":1609104253014,"results":"51","hashOfConfig":"29"},{"size":1034,"mtime":1609105283072,"results":"52","hashOfConfig":"29"},{"size":74,"mtime":1609104253014,"results":"53","hashOfConfig":"29"},{"size":1034,"mtime":1609105283072,"results":"54","hashOfConfig":"29"},{"size":65,"mtime":1609105952845,"results":"55","hashOfConfig":"29"},{"size":5250,"mtime":1609258290462,"results":"56","hashOfConfig":"29"},{"filePath":"57","messages":"58","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},"v7zf0g",{"filePath":"60","messages":"61","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"62","messages":"63","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"64","messages":"65","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"n0bckm",{"filePath":"66","messages":"67","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"68","messages":"69","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"70","messages":"71","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"72","messages":"73","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"74"},{"filePath":"75","messages":"76","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"77","messages":"78","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"79","messages":"80","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"81","messages":"82","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"83"},{"filePath":"84","messages":"85","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"86","messages":"87","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"88","messages":"89","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"90","messages":"91","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"92","messages":"93","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"94","messages":"95","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"96","messages":"97","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"98","messages":"99","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"100","messages":"101","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"102","messages":"103","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"104","messages":"105","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"106","messages":"107","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"108","messages":"109","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"110","messages":"111","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"112","messages":"113","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/index.js",[],["114","115"],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/App.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/reportWebVitals.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/menuComponent/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/menuComponent/menuComponent.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/MenuComponent/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/MenuComponent/MenuComponent.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/mainCard/mainCard.js",[],["116","117"],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/MainCard/MainCard.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ExperienceCard/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ExperienceCard/ExperienceCard.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/buttonIcon/index.js",[],["118","119"],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/buttonIcon/buttonIcon.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ButtonIcon/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ButtonIcon/ButtonIcon.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ProjectsCard/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ProjectsCard/ProjectsCard.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ProjectCard/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ProjectCard/ProjectCard.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ContactCard/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ContactCard/ContactCard.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/contactButton/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/contactButton/contactButton.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ContactButton/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ContactButton/ContactButton.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/FooterCard/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/FooterCard/FooterCard.js",[],{"ruleId":"120","replacedBy":"121"},{"ruleId":"122","replacedBy":"123"},{"ruleId":"120","replacedBy":"124"},{"ruleId":"122","replacedBy":"125"},{"ruleId":"120","replacedBy":"126"},{"ruleId":"122","replacedBy":"127"},"no-native-reassign",["128"],"no-negated-in-lhs",["129"],["128"],["129"],["128"],["129"],"no-global-assign","no-unsafe-negation"] \ No newline at end of file +[{"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/index.js":"1","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/App.js":"2","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/reportWebVitals.js":"3","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/menuComponent/index.js":"4","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/menuComponent/menuComponent.js":"5","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/MenuComponent/index.js":"6","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/MenuComponent/MenuComponent.js":"7","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/mainCard/mainCard.js":"8","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/MainCard/MainCard.js":"9","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ExperienceCard/index.js":"10","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ExperienceCard/ExperienceCard.js":"11","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/buttonIcon/index.js":"12","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/buttonIcon/buttonIcon.js":"13","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ButtonIcon/index.js":"14","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ButtonIcon/ButtonIcon.js":"15","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ProjectsCard/index.js":"16","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ProjectsCard/ProjectsCard.js":"17","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ProjectCard/index.js":"18","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ProjectCard/ProjectCard.js":"19","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ContactCard/index.js":"20","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ContactCard/ContactCard.js":"21","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/contactButton/index.js":"22","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/contactButton/contactButton.js":"23","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ContactButton/index.js":"24","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ContactButton/ContactButton.js":"25","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/FooterCard/index.js":"26","/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/FooterCard/FooterCard.js":"27"},{"size":1195,"mtime":1609432497337,"results":"28","hashOfConfig":"29"},{"size":521,"mtime":1609403660650,"results":"30","hashOfConfig":"29"},{"size":362,"mtime":1607637518766,"results":"31","hashOfConfig":"29"},{"size":74,"mtime":1607640746796,"results":"32","hashOfConfig":"33"},{"size":681,"mtime":1607640746796,"results":"34","hashOfConfig":"33"},{"size":74,"mtime":1607640746796,"results":"35","hashOfConfig":"29"},{"size":2027,"mtime":1609432661946,"results":"36","hashOfConfig":"29"},{"size":632,"mtime":1607641188004,"results":"37","hashOfConfig":"33"},{"size":5353,"mtime":1609105317832,"results":"38","hashOfConfig":"29"},{"size":77,"mtime":1607642019704,"results":"39","hashOfConfig":"29"},{"size":1500,"mtime":1607643468593,"results":"40","hashOfConfig":"29"},{"size":65,"mtime":1607643386517,"results":"41","hashOfConfig":"33"},{"size":674,"mtime":1607643491629,"results":"42","hashOfConfig":"33"},{"size":65,"mtime":1607643577907,"results":"43","hashOfConfig":"29"},{"size":491,"mtime":1607643905302,"results":"44","hashOfConfig":"29"},{"size":71,"mtime":1607644745576,"results":"45","hashOfConfig":"29"},{"size":1674,"mtime":1607646170128,"results":"46","hashOfConfig":"29"},{"size":68,"mtime":1607645435051,"results":"47","hashOfConfig":"29"},{"size":907,"mtime":1607645693299,"results":"48","hashOfConfig":"29"},{"size":68,"mtime":1609103467221,"results":"49","hashOfConfig":"29"},{"size":1739,"mtime":1609105125599,"results":"50","hashOfConfig":"29"},{"size":74,"mtime":1609104253014,"results":"51","hashOfConfig":"29"},{"size":1034,"mtime":1609105283072,"results":"52","hashOfConfig":"29"},{"size":74,"mtime":1609104253014,"results":"53","hashOfConfig":"29"},{"size":1034,"mtime":1609105283072,"results":"54","hashOfConfig":"29"},{"size":65,"mtime":1609105952845,"results":"55","hashOfConfig":"29"},{"size":5250,"mtime":1609258290462,"results":"56","hashOfConfig":"29"},{"filePath":"57","messages":"58","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"v7zf0g",{"filePath":"59","messages":"60","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"61","messages":"62","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"64","messages":"65","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"n0bckm",{"filePath":"66","messages":"67","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"68","messages":"69","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"70","messages":"71","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"72","messages":"73","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"74"},{"filePath":"75","messages":"76","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"77","messages":"78","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"79","messages":"80","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"81","messages":"82","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"83"},{"filePath":"84","messages":"85","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"86","messages":"87","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"88","messages":"89","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"90","messages":"91","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"92","messages":"93","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"94","messages":"95","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"96","messages":"97","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"98","messages":"99","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"100","messages":"101","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"102","messages":"103","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"104","messages":"105","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"106","messages":"107","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"108","messages":"109","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"110","messages":"111","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"112","messages":"113","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/index.js",["114"],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/App.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/reportWebVitals.js",[],["115","116"],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/menuComponent/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/menuComponent/menuComponent.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/MenuComponent/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/MenuComponent/MenuComponent.js",["117","118"],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/mainCard/mainCard.js",[],["119","120"],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/MainCard/MainCard.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ExperienceCard/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ExperienceCard/ExperienceCard.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/buttonIcon/index.js",[],["121","122"],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/buttonIcon/buttonIcon.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ButtonIcon/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ButtonIcon/ButtonIcon.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ProjectsCard/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ProjectsCard/ProjectsCard.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ProjectCard/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ProjectCard/ProjectCard.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ContactCard/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ContactCard/ContactCard.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/contactButton/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/contactButton/contactButton.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ContactButton/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/ContactButton/ContactButton.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/FooterCard/index.js",[],"/Users/adamas/adm.ink/dev/anthony-dumas.fr/anthony-dumas.fr/src/components/FooterCard/FooterCard.js",[],{"ruleId":"123","severity":1,"message":"124","line":26,"column":21,"nodeType":"125","messageId":"126","endLine":26,"endColumn":23},{"ruleId":"127","replacedBy":"128"},{"ruleId":"129","replacedBy":"130"},{"ruleId":"131","severity":1,"message":"132","line":59,"column":11,"nodeType":"133","endLine":59,"endColumn":63},{"ruleId":"131","severity":1,"message":"132","line":62,"column":11,"nodeType":"133","endLine":62,"endColumn":62},{"ruleId":"127","replacedBy":"134"},{"ruleId":"129","replacedBy":"135"},{"ruleId":"127","replacedBy":"136"},{"ruleId":"129","replacedBy":"137"},"eqeqeq","Expected '===' and instead saw '=='.","BinaryExpression","unexpected","no-native-reassign",["138"],"no-negated-in-lhs",["139"],"jsx-a11y/anchor-is-valid","The href attribute is required for an anchor to be keyboard accessible. Provide a valid, navigable address as the href value. If you cannot provide an href, but still need the element to resemble a link, use a button and change it with appropriate styles. Learn more: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md","JSXOpeningElement",["138"],["139"],["138"],["139"],"no-global-assign","no-unsafe-negation"] \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ad1f8c4..27e9bd8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "bulma": "^0.9.1", "react": "^17.0.1", "react-dom": "^17.0.1", + "react-intl": "^5.10.9", "react-scripts": "4.0.1", "sass": "^1.30.0", "web-vitals": "^0.2.4" @@ -1462,6 +1463,66 @@ "node": ">=8" } }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.5.0.tgz", + "integrity": "sha512-wXv36yo+mfWllweN0Fq7sUs7PUiNopn7I0JpLTe3hGu6ZMR4CV7LqK1llhB18pndwpKoafQKb1et2DCJAOW20Q==", + "dependencies": { + "tslib": "^2.0.1" + } + }, + "node_modules/@formatjs/intl": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-1.4.13.tgz", + "integrity": "sha512-GEWwkaNFnskOGGd6gq0Y0RetiH2iNnARXzQ+glR2RqU0xk00aS5KpwkEDo1hN9NaO9fRr9UDvzDoEu9foQFVmA==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.5.0", + "@formatjs/intl-datetimeformat": "3.2.1", + "@formatjs/intl-displaynames": "4.0.2", + "@formatjs/intl-listformat": "5.0.2", + "@formatjs/intl-relativetimeformat": "8.0.1", + "fast-memoize": "^2.5.2", + "intl-messageformat": "9.4.0", + "intl-messageformat-parser": "6.1.0", + "tslib": "^2.0.1" + } + }, + "node_modules/@formatjs/intl-datetimeformat": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-datetimeformat/-/intl-datetimeformat-3.2.1.tgz", + "integrity": "sha512-teeUgUoieP0JjZYPWjJV72CoPQoukCMKGW1YUu00+TaHzZBNqVgPCdFJo2vgl1jKccOAT3VT79BHNEsR9DsBBQ==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.5.0", + "tslib": "^2.0.1" + } + }, + "node_modules/@formatjs/intl-displaynames": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-4.0.2.tgz", + "integrity": "sha512-rOlDcFzr6UFYqH7BKI9vlpDC5MpTT48dsPxO9I6yciDlOb1IyqvIgUs+xsuNOj96akDCDrgwocrdJ1VEDO0Ntw==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.5.0", + "tslib": "^2.0.1" + } + }, + "node_modules/@formatjs/intl-listformat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-5.0.2.tgz", + "integrity": "sha512-Y+7/Dw3oe29kT4afbw2KCSzast6M04ibidBMMPqjxOHHxan1LeL0KQsY/iRHTgTAcfiSIqZnneJZjZi4MzjLJg==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.5.0", + "tslib": "^2.0.1" + } + }, + "node_modules/@formatjs/intl-relativetimeformat": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-8.0.1.tgz", + "integrity": "sha512-yMCtrDeQnqx95ucaYbHc1BP4XUP0q+JoMiP8kzMe04AgVvkfAScsoRuKfXw1EH1FkV51C/vqWIKDoGj1WoZnxQ==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.5.0", + "tslib": "^2.0.1" + } + }, "node_modules/@hapi/address": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", @@ -2927,6 +2988,15 @@ "@types/node": "*" } }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, "node_modules/@types/html-minifier-terser": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", @@ -2997,11 +3067,25 @@ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==" }, + "node_modules/@types/prop-types": { + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" + }, "node_modules/@types/q": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" }, + "node_modules/@types/react": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.0.tgz", + "integrity": "sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw==", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, "node_modules/@types/resolve": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", @@ -6058,6 +6142,11 @@ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" }, + "node_modules/csstype": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.5.tgz", + "integrity": "sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ==" + }, "node_modules/cyclist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", @@ -8106,6 +8195,11 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, + "node_modules/fast-memoize": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz", + "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==" + }, "node_modules/fastq": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", @@ -9083,6 +9177,19 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -9693,6 +9800,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/intl-messageformat": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.4.0.tgz", + "integrity": "sha512-zcF8OWG52dCwwePkykqqv7F038vCaixPR14Lr3YUFc9jRdGoCazl2dTE3BwBaeHr3pG/qYb6A/mwMKrj4LFt9Q==", + "dependencies": { + "fast-memoize": "^2.5.2", + "intl-messageformat-parser": "6.1.0", + "tslib": "^2.0.1" + } + }, + "node_modules/intl-messageformat-parser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-6.1.0.tgz", + "integrity": "sha512-nPPh2kOrKqlh4D9bCAetxkrUiq5/6S1exPQyg52Ihusy0ECNGhZ0Qmq8pFRK9gWIuiQPVmLA7eSNp8diC2tX3w==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.5.0", + "tslib": "^2.0.1" + } + }, "node_modules/ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -15735,6 +15861,34 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.8.tgz", "integrity": "sha512-HvPuUQnLp5H7TouGq3kzBeioJmXms1wHy9EGjz2OURWBp4qZO6AfGEcnxts1D/CbwPLRAgTMPCEgYhA3sEM4vw==" }, + "node_modules/react-intl": { + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.10.9.tgz", + "integrity": "sha512-DfUF4YMlZqaNRfgfvf46AcXxz7pDi7pkxRbQoimUJWEkjep+6QYLlH7ogypysGD1Sl5kbWi7b69bbG7wPqt1vA==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.5.0", + "@formatjs/intl": "1.4.13", + "@formatjs/intl-displaynames": "4.0.2", + "@formatjs/intl-listformat": "5.0.2", + "@formatjs/intl-relativetimeformat": "8.0.1", + "@types/hoist-non-react-statics": "^3.3.1", + "fast-memoize": "^2.5.2", + "hoist-non-react-statics": "^3.3.2", + "intl-messageformat": "9.4.0", + "intl-messageformat-parser": "6.1.0", + "shallow-equal": "^1.2.1", + "tslib": "^2.0.1" + }, + "peerDependencies": { + "react": "^16.3.0 || 17", + "typescript": "4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/react-is": { "version": "17.0.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", @@ -17248,6 +17402,11 @@ "node": ">=8" } }, + "node_modules/shallow-equal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -22344,6 +22503,66 @@ } } }, + "@formatjs/ecma402-abstract": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.5.0.tgz", + "integrity": "sha512-wXv36yo+mfWllweN0Fq7sUs7PUiNopn7I0JpLTe3hGu6ZMR4CV7LqK1llhB18pndwpKoafQKb1et2DCJAOW20Q==", + "requires": { + "tslib": "^2.0.1" + } + }, + "@formatjs/intl": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-1.4.13.tgz", + "integrity": "sha512-GEWwkaNFnskOGGd6gq0Y0RetiH2iNnARXzQ+glR2RqU0xk00aS5KpwkEDo1hN9NaO9fRr9UDvzDoEu9foQFVmA==", + "requires": { + "@formatjs/ecma402-abstract": "1.5.0", + "@formatjs/intl-datetimeformat": "3.2.1", + "@formatjs/intl-displaynames": "4.0.2", + "@formatjs/intl-listformat": "5.0.2", + "@formatjs/intl-relativetimeformat": "8.0.1", + "fast-memoize": "^2.5.2", + "intl-messageformat": "9.4.0", + "intl-messageformat-parser": "6.1.0", + "tslib": "^2.0.1" + } + }, + "@formatjs/intl-datetimeformat": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-datetimeformat/-/intl-datetimeformat-3.2.1.tgz", + "integrity": "sha512-teeUgUoieP0JjZYPWjJV72CoPQoukCMKGW1YUu00+TaHzZBNqVgPCdFJo2vgl1jKccOAT3VT79BHNEsR9DsBBQ==", + "requires": { + "@formatjs/ecma402-abstract": "1.5.0", + "tslib": "^2.0.1" + } + }, + "@formatjs/intl-displaynames": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-4.0.2.tgz", + "integrity": "sha512-rOlDcFzr6UFYqH7BKI9vlpDC5MpTT48dsPxO9I6yciDlOb1IyqvIgUs+xsuNOj96akDCDrgwocrdJ1VEDO0Ntw==", + "requires": { + "@formatjs/ecma402-abstract": "1.5.0", + "tslib": "^2.0.1" + } + }, + "@formatjs/intl-listformat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-5.0.2.tgz", + "integrity": "sha512-Y+7/Dw3oe29kT4afbw2KCSzast6M04ibidBMMPqjxOHHxan1LeL0KQsY/iRHTgTAcfiSIqZnneJZjZi4MzjLJg==", + "requires": { + "@formatjs/ecma402-abstract": "1.5.0", + "tslib": "^2.0.1" + } + }, + "@formatjs/intl-relativetimeformat": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-8.0.1.tgz", + "integrity": "sha512-yMCtrDeQnqx95ucaYbHc1BP4XUP0q+JoMiP8kzMe04AgVvkfAScsoRuKfXw1EH1FkV51C/vqWIKDoGj1WoZnxQ==", + "requires": { + "@formatjs/ecma402-abstract": "1.5.0", + "tslib": "^2.0.1" + } + }, "@hapi/address": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", @@ -23408,6 +23627,15 @@ "@types/node": "*" } }, + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, "@types/html-minifier-terser": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", @@ -23478,11 +23706,25 @@ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==" }, + "@types/prop-types": { + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" + }, "@types/q": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" }, + "@types/react": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.0.tgz", + "integrity": "sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw==", + "requires": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, "@types/resolve": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", @@ -25942,6 +26184,11 @@ } } }, + "csstype": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.5.tgz", + "integrity": "sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ==" + }, "cyclist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", @@ -27539,6 +27786,11 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, + "fast-memoize": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz", + "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==" + }, "fastq": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", @@ -28308,6 +28560,21 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, "hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -28803,6 +29070,25 @@ } } }, + "intl-messageformat": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.4.0.tgz", + "integrity": "sha512-zcF8OWG52dCwwePkykqqv7F038vCaixPR14Lr3YUFc9jRdGoCazl2dTE3BwBaeHr3pG/qYb6A/mwMKrj4LFt9Q==", + "requires": { + "fast-memoize": "^2.5.2", + "intl-messageformat-parser": "6.1.0", + "tslib": "^2.0.1" + } + }, + "intl-messageformat-parser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-6.1.0.tgz", + "integrity": "sha512-nPPh2kOrKqlh4D9bCAetxkrUiq5/6S1exPQyg52Ihusy0ECNGhZ0Qmq8pFRK9gWIuiQPVmLA7eSNp8diC2tX3w==", + "requires": { + "@formatjs/ecma402-abstract": "1.5.0", + "tslib": "^2.0.1" + } + }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -33469,6 +33755,25 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.8.tgz", "integrity": "sha512-HvPuUQnLp5H7TouGq3kzBeioJmXms1wHy9EGjz2OURWBp4qZO6AfGEcnxts1D/CbwPLRAgTMPCEgYhA3sEM4vw==" }, + "react-intl": { + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.10.9.tgz", + "integrity": "sha512-DfUF4YMlZqaNRfgfvf46AcXxz7pDi7pkxRbQoimUJWEkjep+6QYLlH7ogypysGD1Sl5kbWi7b69bbG7wPqt1vA==", + "requires": { + "@formatjs/ecma402-abstract": "1.5.0", + "@formatjs/intl": "1.4.13", + "@formatjs/intl-displaynames": "4.0.2", + "@formatjs/intl-listformat": "5.0.2", + "@formatjs/intl-relativetimeformat": "8.0.1", + "@types/hoist-non-react-statics": "^3.3.1", + "fast-memoize": "^2.5.2", + "hoist-non-react-statics": "^3.3.2", + "intl-messageformat": "9.4.0", + "intl-messageformat-parser": "6.1.0", + "shallow-equal": "^1.2.1", + "tslib": "^2.0.1" + } + }, "react-is": { "version": "17.0.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", @@ -34651,6 +34956,11 @@ "kind-of": "^6.0.2" } }, + "shallow-equal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", diff --git a/package.json b/package.json index 546a4ee..c6877d4 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "bulma": "^0.9.1", "react": "^17.0.1", "react-dom": "^17.0.1", + "react-intl": "^5.10.9", "react-scripts": "4.0.1", "sass": "^1.30.0", "web-vitals": "^0.2.4" diff --git a/src/components/MenuComponent/MenuComponent.js b/src/components/MenuComponent/MenuComponent.js index 3de34ce..daa155a 100644 --- a/src/components/MenuComponent/MenuComponent.js +++ b/src/components/MenuComponent/MenuComponent.js @@ -1,27 +1,70 @@ import React, {Component} from '../../../node_modules/react'; +import {FormattedMessage} from 'react-intl'; import './MenuComponent.scss' -// import { connect } from "react-redux"; -// import { bindActionCreators } from "redux"; -// import * as MenuComponentActions from "../../store/MenuComponent/actions"; -let title = "Anthony Dumas"; -let jobTitle = "Développeur Full Stack @ Harvest"; +const URL_add_parameter = function(url, param, value){ + var hash = {}; + var parser = document.createElement('a'); + + parser.href = url; + + var parameters = parser.search.split(/\?|&/); + + for(var i=0; i < parameters.length; i++) { + if(!parameters[i]) + continue; + + var ary = parameters[i].split('='); + hash[ary[0]] = ary[1]; + } + + hash[param] = value; + + var list = []; + Object.keys(hash).forEach(function (key) { + list.push(key + '=' + hash[key]); + }); + + parser.search = '?' + list.join('&'); + return parser.href; +} export default class MenuComponent extends Component { // constructor(props) { // super(props); // this.state = {}; // } + honhonhon() { + window.location.href=URL_add_parameter(window.location.href, "lang", "fr"); + } + + heygovna() { + window.location.href=URL_add_parameter(window.location.href, "lang", "en"); + } + + render() { return ; } diff --git a/src/index.js b/src/index.js index ef2edf8..fdc2c7d 100644 --- a/src/index.js +++ b/src/index.js @@ -1,12 +1,43 @@ import React from 'react'; import ReactDOM from 'react-dom'; +import { IntlProvider } from 'react-intl'; + + import './index.css'; import App from './App'; import reportWebVitals from './reportWebVitals'; +import messages_fr from './messages/fr.json'; +import messages_en from './messages/en.json'; + +const messages = { + 'fr': messages_fr, + 'en': messages_en, +}; + +const i18nConfig = { + defaultLocale: 'fr', + messages, +}; + +const language = function() { + const queryString = window.location.search; + const urlParams = new URLSearchParams(queryString); + let lang = urlParams.get("lang"); + if(messages[lang] == undefined){ + lang = navigator.language.split(/[-_]/)[0]; + } + return lang; +} ReactDOM.render( + + , document.getElementById('root') ); diff --git a/src/messages/en.json b/src/messages/en.json new file mode 100644 index 0000000..fba979e --- /dev/null +++ b/src/messages/en.json @@ -0,0 +1,4 @@ +{ + "title":"Anthony Dumas", + "subtitle":"Full Stack Developer @ Harvest" +} \ No newline at end of file diff --git a/src/messages/fr.json b/src/messages/fr.json new file mode 100644 index 0000000..540118f --- /dev/null +++ b/src/messages/fr.json @@ -0,0 +1,4 @@ +{ + "title":"Anthony Yvon Dumas", + "subtitle":"Développeur Full Stack @ Harvest" +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 01f8b8d..40fed2b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1140,6 +1140,60 @@ "minimatch" "^3.0.4" "strip-json-comments" "^3.1.1" +"@formatjs/ecma402-abstract@1.5.0": + "integrity" "sha512-wXv36yo+mfWllweN0Fq7sUs7PUiNopn7I0JpLTe3hGu6ZMR4CV7LqK1llhB18pndwpKoafQKb1et2DCJAOW20Q==" + "resolved" "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.5.0.tgz" + "version" "1.5.0" + dependencies: + "tslib" "^2.0.1" + +"@formatjs/intl-datetimeformat@3.2.1": + "integrity" "sha512-teeUgUoieP0JjZYPWjJV72CoPQoukCMKGW1YUu00+TaHzZBNqVgPCdFJo2vgl1jKccOAT3VT79BHNEsR9DsBBQ==" + "resolved" "https://registry.npmjs.org/@formatjs/intl-datetimeformat/-/intl-datetimeformat-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "@formatjs/ecma402-abstract" "1.5.0" + "tslib" "^2.0.1" + +"@formatjs/intl-displaynames@4.0.2": + "integrity" "sha512-rOlDcFzr6UFYqH7BKI9vlpDC5MpTT48dsPxO9I6yciDlOb1IyqvIgUs+xsuNOj96akDCDrgwocrdJ1VEDO0Ntw==" + "resolved" "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "@formatjs/ecma402-abstract" "1.5.0" + "tslib" "^2.0.1" + +"@formatjs/intl-listformat@5.0.2": + "integrity" "sha512-Y+7/Dw3oe29kT4afbw2KCSzast6M04ibidBMMPqjxOHHxan1LeL0KQsY/iRHTgTAcfiSIqZnneJZjZi4MzjLJg==" + "resolved" "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-5.0.2.tgz" + "version" "5.0.2" + dependencies: + "@formatjs/ecma402-abstract" "1.5.0" + "tslib" "^2.0.1" + +"@formatjs/intl-relativetimeformat@8.0.1": + "integrity" "sha512-yMCtrDeQnqx95ucaYbHc1BP4XUP0q+JoMiP8kzMe04AgVvkfAScsoRuKfXw1EH1FkV51C/vqWIKDoGj1WoZnxQ==" + "resolved" "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-8.0.1.tgz" + "version" "8.0.1" + dependencies: + "@formatjs/ecma402-abstract" "1.5.0" + "tslib" "^2.0.1" + +"@formatjs/intl@1.4.13": + "integrity" "sha512-GEWwkaNFnskOGGd6gq0Y0RetiH2iNnARXzQ+glR2RqU0xk00aS5KpwkEDo1hN9NaO9fRr9UDvzDoEu9foQFVmA==" + "resolved" "https://registry.npmjs.org/@formatjs/intl/-/intl-1.4.13.tgz" + "version" "1.4.13" + dependencies: + "@formatjs/ecma402-abstract" "1.5.0" + "@formatjs/intl-datetimeformat" "3.2.1" + "@formatjs/intl-displaynames" "4.0.2" + "@formatjs/intl-listformat" "5.0.2" + "@formatjs/intl-relativetimeformat" "8.0.1" + "fast-memoize" "^2.5.2" + "intl-messageformat" "9.4.0" + "intl-messageformat-parser" "6.1.0" + "tslib" "^2.0.1" + "@hapi/address@2.x.x": "integrity" "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" "resolved" "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz" @@ -1672,6 +1726,14 @@ dependencies: "@types/node" "*" +"@types/hoist-non-react-statics@^3.3.1": + "integrity" "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==" + "resolved" "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz" + "version" "3.3.1" + dependencies: + "@types/react" "*" + "hoist-non-react-statics" "^3.3.0" + "@types/html-minifier-terser@^5.0.0": "integrity" "sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA==" "resolved" "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz" @@ -1739,11 +1801,24 @@ "resolved" "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz" "version" "2.1.5" +"@types/prop-types@*": + "integrity" "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" + "resolved" "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz" + "version" "15.7.3" + "@types/q@^1.5.1": "integrity" "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" "resolved" "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz" "version" "1.5.4" +"@types/react@*": + "integrity" "sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw==" + "resolved" "https://registry.npmjs.org/@types/react/-/react-17.0.0.tgz" + "version" "17.0.0" + dependencies: + "@types/prop-types" "*" + "csstype" "^3.0.2" + "@types/resolve@0.0.8": "integrity" "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==" "resolved" "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz" @@ -3830,6 +3905,11 @@ dependencies: "cssom" "~0.3.6" +"csstype@^3.0.2": + "integrity" "sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ==" + "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.0.5.tgz" + "version" "3.0.5" + "cyclist@^1.0.1": "integrity" "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" "resolved" "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz" @@ -4914,6 +4994,11 @@ "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" "version" "2.0.6" +"fast-memoize@^2.5.2": + "integrity" "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==" + "resolved" "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz" + "version" "2.5.2" + "fastq@^1.6.0": "integrity" "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==" "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz" @@ -5478,6 +5563,13 @@ "minimalistic-assert" "^1.0.0" "minimalistic-crypto-utils" "^1.0.1" +"hoist-non-react-statics@^3.3.0", "hoist-non-react-statics@^3.3.2": + "integrity" "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==" + "resolved" "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" + "version" "3.3.2" + dependencies: + "react-is" "^16.7.0" + "hoopy@^0.1.4": "integrity" "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==" "resolved" "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz" @@ -5791,6 +5883,23 @@ "has" "^1.0.3" "side-channel" "^1.0.2" +"intl-messageformat-parser@6.1.0": + "integrity" "sha512-nPPh2kOrKqlh4D9bCAetxkrUiq5/6S1exPQyg52Ihusy0ECNGhZ0Qmq8pFRK9gWIuiQPVmLA7eSNp8diC2tX3w==" + "resolved" "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-6.1.0.tgz" + "version" "6.1.0" + dependencies: + "@formatjs/ecma402-abstract" "1.5.0" + "tslib" "^2.0.1" + +"intl-messageformat@9.4.0": + "integrity" "sha512-zcF8OWG52dCwwePkykqqv7F038vCaixPR14Lr3YUFc9jRdGoCazl2dTE3BwBaeHr3pG/qYb6A/mwMKrj4LFt9Q==" + "resolved" "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.4.0.tgz" + "version" "9.4.0" + dependencies: + "fast-memoize" "^2.5.2" + "intl-messageformat-parser" "6.1.0" + "tslib" "^2.0.1" + "ip-regex@^2.1.0": "integrity" "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" "resolved" "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz" @@ -9054,6 +9163,29 @@ "resolved" "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.8.tgz" "version" "6.0.8" +"react-intl@^5.10.9": + "integrity" "sha512-DfUF4YMlZqaNRfgfvf46AcXxz7pDi7pkxRbQoimUJWEkjep+6QYLlH7ogypysGD1Sl5kbWi7b69bbG7wPqt1vA==" + "resolved" "https://registry.npmjs.org/react-intl/-/react-intl-5.10.9.tgz" + "version" "5.10.9" + dependencies: + "@formatjs/ecma402-abstract" "1.5.0" + "@formatjs/intl" "1.4.13" + "@formatjs/intl-displaynames" "4.0.2" + "@formatjs/intl-listformat" "5.0.2" + "@formatjs/intl-relativetimeformat" "8.0.1" + "@types/hoist-non-react-statics" "^3.3.1" + "fast-memoize" "^2.5.2" + "hoist-non-react-statics" "^3.3.2" + "intl-messageformat" "9.4.0" + "intl-messageformat-parser" "6.1.0" + "shallow-equal" "^1.2.1" + "tslib" "^2.0.1" + +"react-is@^16.7.0": + "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + "version" "16.13.1" + "react-is@^16.8.1": "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" @@ -9136,7 +9268,7 @@ optionalDependencies: "fsevents" "^2.1.3" -"react@*", "react@^17.0.1", "react@17.0.1": +"react@*", "react@^16.3.0 || 17", "react@^17.0.1", "react@17.0.1": "integrity" "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==" "resolved" "https://registry.npmjs.org/react/-/react-17.0.1.tgz" "version" "17.0.1" @@ -9951,6 +10083,11 @@ dependencies: "kind-of" "^6.0.2" +"shallow-equal@^1.2.1": + "integrity" "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" + "resolved" "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz" + "version" "1.2.1" + "shebang-command@^1.2.0": "integrity" "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=" "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" @@ -10832,7 +10969,7 @@ "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" "version" "1.14.1" -"tslib@^2.0.3": +"tslib@^2.0.1", "tslib@^2.0.3": "integrity" "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz" "version" "2.0.3" @@ -10930,7 +11067,7 @@ "resolved" "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" "version" "0.0.6" -"typescript@^3.2.1", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta": +"typescript@^3.2.1", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", "typescript@4": "integrity" "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==" "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz" "version" "4.1.2"