From c1c0f5a43da90e9ea12380c5c14ef5e1ce44ce56 Mon Sep 17 00:00:00 2001 From: Amruth Pillai Date: Sun, 6 Dec 2020 18:02:28 +0530 Subject: [PATCH 1/6] New translations en.json (Ukrainian) --- src/i18n/locales/uk.json | 252 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 252 insertions(+) create mode 100644 src/i18n/locales/uk.json diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json new file mode 100644 index 00000000..0056455d --- /dev/null +++ b/src/i18n/locales/uk.json @@ -0,0 +1,252 @@ +{ + "shared": { + "appName": "Reactive Resume", + "shortDescription": "Безкоштовний, open source конструктор резюме.", + "forms": { + "name": "Назва", + "title": "Заголовок", + "subtitle": "Підзаголовок", + "required": "обов'язково", + "website": "Веб сайт", + "date": "Дата", + "present": "теперішній час", + "position": "Посада", + "startDate": "Дата початку", + "endDate": "Дата завершення", + "address": "Адреса", + "phone": "Номер телефону", + "email": "E-mail адреса", + "summary": "Резюме", + "markdown": "Цей текстовий блок підтримує <1> markdown .", + "validation": { + "min": "Будь ласка, введіть мінімум {{number}} знаки.", + "dateRange": "Дата закінчення має бути пізніше, ніж дата початку.", + "email": "Адреса ел. пошти повинна бути дійсною.", + "required": "Це поле є обов`язковим.", + "url": "Повинен бути діючий URL." + } + }, + "buttons": { + "add": "Додати", + "edit": "Змінити", + "cancel": "Скасувати", + "delete": "Видалити", + "loading": "Завантаження...", + "confirmation": "Ви впевнені?", + "login": "Вхід", + "logout": "Вихід" + } + }, + "landing": { + "hero": { + "goToApp": "Перейти до додатка" + } + }, + "dashboard": { + "title": "Панель управління", + "createResume": "Створити Резюме", + "editResume": "Редагувати Резюме", + "lastUpdated": "Останнє оновлення {{timestamp}}", + "toasts": { + "deleted": "{{name}} був успішно видалений" + }, + "buttons": { + "duplicate": "Дублювати", + "rename": "Перейменувати" + }, + "helpText": "Ви збираєтеся створити нове резюме з нуля, але спочатку давайте дамо йому ім'я. Це може бути назва посади, на яку ви хочете подати заявку, або, якщо ви складаєте резюме для друга, ви можете назвати його «Резюме Алекса»." + }, + "builder": { + "toasts": { + "formErrors": "Можливо, вам буде потрібно заповнити всі обов'язкові поля перед відправкою цієї форми.", + "doesNotExist": "Резюме, яке ви шукали, більше не існує ... або, може бути, його ніколи не було?", + "loadDemoData": "Не впевнений, з чого почати? Спробуйте завантажити демо-дані, щоб дізнатися, що може запропонувати Reactive Resume.", + "printError": "У хмарної функції виникли проблеми, спробуйте ще раз пізніше або скористайтеся функцією друку браузера." + }, + "sections": { + "heading": "Заголовок", + "profile": "Профіль", + "social": "Соціальна мережа", + "objective": "Завдання", + "work": "Досвід роботи", + "education": "Освіта", + "project": "Проект", + "projects": "Проекти", + "award": "Нагорода", + "awards": "Нагороди", + "certification": "Сертифікат", + "certifications": "Сертифікати", + "skill": "Навичка", + "skills": "Навички", + "hobby": "Хобі", + "hobbies": "Хобі", + "language": "Мова", + "languages": "Мови", + "reference": "Посилання", + "references": "Посилання", + "templates": "Шаблони", + "layout": "Розмітка", + "colors": "Кольори", + "fonts": "Шрифти", + "actions": "Дії", + "settings": "Налаштування", + "about": "Про програму" + }, + "profile": { + "photograph": "Фотографія", + "firstName": "Ім'я", + "lastName": "Прізвище", + "birthDate": "Дата народження", + "address": { + "line1": "Адреса, рядок 1", + "line2": "Адреса, рядок 2", + "city": "Місто", + "pincode": "Індекс" + } + }, + "social": { + "network": "Мережа", + "username": "Ім'я користувача", + "url": "URL" + }, + "work": { + "company": "Організація" + }, + "education": { + "institution": "Установа", + "field": "Область дослідження", + "degree": "Тип ступеня", + "gpa": "Середній бал" + }, + "awards": { + "awarder": "Нагороджений" + }, + "certifications": { + "issuer": "Ким виданий" + }, + "skills": { + "level": "Рівень" + }, + "languages": { + "fluency": "Вільне володіння" + }, + "layout": { + "block": "Блокувати", + "reset": "Скинути макет", + "text": "Цей шаблон підтримує {{count}} блоків." + }, + "colors": { + "primary": "Основний колір", + "text": "Колір тексту", + "background": "Колір фону" + }, + "actions": { + "import": { + "heading": "Імпортувати Резюме", + "text": "Ви можете імпортувати свою інформацію з різних джерел, таких як JSON Resume або LinkedIn, щоб автоматично заповнювати більшу частину даних для свого резюме.", + "button": "Імпорт" + }, + "export": { + "heading": "Експорт Вашого Резюме", + "text": "Експортуйте своє резюме в форматі PDF, щоб поділитися з рекрутерами, або в форматі JSON, який ви зможете імпортувати назад в цей додаток на іншому комп'ютері.", + "button": "Експорт" + }, + "share": { + "heading": "Поділитися Вашим Резюме", + "text": "Посилання нижче буде доступна для всіх, якщо ви вирішите поділитися нею, і глядачі побачать останню версію вашого резюме в будь-який час." + }, + "loadDemoData": { + "text": "Незрозуміло, що робити зі свіжої порожньою сторінкою? Завантажте демо-дані, щоб побачити, як має виглядати резюме, і можете починати редагування звідти.", + "button": "Завантажити демо-дані" + }, + "resetEverything": { + "text": "Схоже, ви зробили дуже багато помилок? Не турбуйтеся, очистіть все одним клацанням миші, але будьте обережні, якщо немає резервних копій.", + "button": "Скинути все" + } + }, + "settings": { + "theme": "Тема", + "language": "Мова", + "translate": "Якщо ви хочете внести свій внесок, надавши переклади на свою мову, <1> перейдіть за цим посиланням .", + "dangerZone": { + "heading": "Небезпечна зона", + "text": "Якщо ви хочете видалити свій обліковий запис і стерти всі свої резюме, це всього лише одна кнопка. Будьте обережні, це незворотний процес.", + "button": "Видалити акаунт" + } + }, + "about": { + "donate": { + "heading": "Пожертвувати на Reactive Resume", + "text": "Я намагаюся робити все, що в моїх силах, але якщо ви знайшли додаток корисним або ви перебуваєте в кращому становищі, ніж інші, які залежать від цього проекту в своїй першій роботі, <1> розгляньте можливість пожертвувати всього 5 доларів, щоб допомогти зберегти проект живим :)", + "button": "Купіть мені кави!" + }, + "bugFeature": { + "heading": "Помилка? Пропозиція?", + "text": "Щось заважає вам скласти резюме? Знайшли набридливу помилку, яка просто не зникне? Обговоріть це в розділі GitHub Issues, використовуючи такі дії.", + "button": "Підняти питання" + }, + "appreciate": { + "heading": "Подобається Reactive Resume?", + "text": "Я ніколи не втомлююся чути історії про те, як цей додаток допоміг людям, і якщо він допоміг вам, або ви просто виявили, що Reactive Resume - відмінний інструмент, дайте мені знати. Ви можете зв'язатися зі мною на моєму веб-сайті." + }, + "sourceCode": { + "heading": "Вихідний код", + "text": "Хочете запустити проект з вихідного коду? Ви розробник, який бажає внести свій вклад в розробку цього проекту з відкритим вихідним кодом? Натисніть кнопку нижче.", + "button": "GitHub репозиторій" + }, + "footer": "Зроблено з любов'ю <1> Амрут Піллаі " + }, + "tooltips": { + "uploadPhotograph": "Завантажити фотографію", + "backToDashboard": "Повернутися до панелі управління" + }, + "emptyList": "Цей список порожній." + }, + "modals": { + "auth": { + "whoAreYou": "Хто ви?", + "welcome": "Ласкаво просимо, {{name}}!", + "loggedOutText": "Reactive Resume має знати, хто ви, щоб безпечно аутентифицировать вас в додатку і відображати тільки вашу інформацію. Як тільки ви ввійдете, ви можете почати створювати своє резюме, редагувати його, щоб додати нові навички або ділитися ним з усім світом!", + "loggedInText": "Приголомшливо. Тепер, коли ви пройшли аутентифікацію, ми можемо розібратися, чому ви тут. Натисніть кнопку «Перейти в додаток», щоб почати створювати своє резюме!", + "buttons": { + "google": "Ввійти за допомогою Google", + "anonymous": "Ввійти анонімно" + } + }, + "import": { + "button": "Вибрати Файл", + "reactiveResume": { + "heading": "Імпорт з Reactive Resume", + "text": "Reactive Resume має свій власний формат схеми, щоб максимально використовувати всі можливості налаштувань, які воно може запропонувати. Якщо ви хочете імпортувати резервну копію свого резюме, зробленого за допомогою цього додатка, просто завантажте файл, використовуючи кнопку нижче." + }, + "jsonResume": { + "heading": "Імпорт з резюме JSON", + "text": "JSON Resume - це відкритий стандарт структури схеми резюме. Якщо ви один з багатьох ентузіастів, у яких готове своє резюме в цьому форматі, досить одного клацання мишки, щоб почати роботу з Reactive Resume." + }, + "linkedIn": { + "heading": "Імпорт з LinkedIn", + "text": "Ви можете імпортувати JSON, який був експортований з LinkedIn, натиснувши кнопку нижче і вибравши відповідний файл." + } + }, + "export": { + "printDialog": { + "heading": "Використовуйте діалогове вікно друку браузера", + "text": "Тим з вас, хто хоче знайти швидке рішення, не потрібно шукати далі свого браузера. Все, що вам потрібно зробити, це натиснути Ctrl / Cmd + P, відкрити діалогове вікно друку в браузері і відразу ж роздрукувати своє резюме.", + "button": "Роздрукувати резюме" + }, + "downloadPDF": { + "heading": "Завантажити PDF", + "text": "Ці параметри дозволяють вам надрукувати необмежену версію вашого резюме, що ідеально підходить для тих, у кого багато контенту. Крім того, ви можете завантажити багатосторінкову версію свого резюме одним кліком миші.", + "buttons": { + "single": "Односторінкове Резюме", + "multi": "Багатосторінкове Резюме" + } + }, + "jsonFormat": { + "heading": "Експорт в формат JSON", + "text": "Ви також можете експортувати свої дані в формат JSON для безпечного зберігання, щоб ви могли легко імпортувати їх назад в Reactive Resume, коли захочете відредагувати або згенерувати резюме.", + "button": "Експорт JSON" + } + } + } +} From 4be55a41339c1ddf5db1e0416ad6c4f9be5974f3 Mon Sep 17 00:00:00 2001 From: Amruth Pillai Date: Wed, 9 Dec 2020 10:27:41 +0530 Subject: [PATCH 2/6] New translations en.json (Arabic) --- src/i18n/locales/ar.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 35fc66d9..77c01d1a 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -96,7 +96,7 @@ "photograph": "صورة فوتوغرافية", "firstName": "الاسم الاول", "lastName": "اسم العائلة", - "birthDate": "تاريخ الولادة", + "birthDate": "تاريخ الميلاد", "address": { "line1": "العنوان الأول", "line2": "العنوان الثاني", From 5f0bab8dd0ed9377e9a047645688bc9671a8f940 Mon Sep 17 00:00:00 2001 From: Amruth Pillai Date: Wed, 9 Dec 2020 10:36:37 +0530 Subject: [PATCH 3/6] New translations en.json (Polish) --- src/i18n/locales/pl.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 873774fd..960ab189 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -96,7 +96,7 @@ "photograph": "Fotografia", "firstName": "Imię", "lastName": "Nazwisko", - "birthDate": "Data urodzenia", + "birthDate": "Data urodzin", "address": { "line1": "Pole adresowe 1", "line2": "Pole adresowe 2", From d56ce24064e8cb30154c0be11a0a3be55cea5d0c Mon Sep 17 00:00:00 2001 From: Amruth Pillai Date: Wed, 9 Dec 2020 10:36:41 +0530 Subject: [PATCH 4/6] New translations en.json (Italian) --- src/i18n/locales/it.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index eabba658..9c893df2 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -96,7 +96,7 @@ "photograph": "Fotografia", "firstName": "Nome", "lastName": "Cognome", - "birthDate": "Data di Nascita", + "birthDate": "Data di nascita", "address": { "line1": "Riga Indirizzo 1", "line2": "Riga Indirizzo 2", From df71b86028391c710d7e045e3ee3e84c48f055c4 Mon Sep 17 00:00:00 2001 From: Amruth Pillai Date: Wed, 9 Dec 2020 10:40:27 +0530 Subject: [PATCH 5/6] - bumped version to 2.3.3 - fixed text alignment issues - updated dependencies - added ukranian language --- firebase.json | 28 +- functions/index.js | 169 ++-- functions/package-lock.json | 382 ++++---- functions/package.json | 10 +- gatsby-config.js | 2 +- package-lock.json | 907 +++++++++---------- package.json | 20 +- src/components/builder/left/LeftSidebar.js | 16 +- src/components/builder/right/RightNavbar.js | 36 +- src/components/builder/right/RightSidebar.js | 18 +- src/components/dashboard/TopNavbar.js | 20 +- src/components/router/LoadingScreen.js | 24 +- src/contexts/ModalContext.js | 10 +- src/i18n/index.js | 4 + src/i18n/locales/index.js | 2 + src/modals/ModalRegistrar.js | 38 +- src/pages/faq.js | 208 +++-- src/pages/index.js | 18 +- src/pages/r/view.js | 1 - src/styles/global.css | 1 + src/templates/Castform.js | 1 + src/templates/Celebi.js | 1 + src/templates/Gengar.js | 1 + src/templates/Glalie.js | 1 + src/templates/Onyx.js | 1 + src/templates/Pikachu.js | 1 + src/templates/blocks/Contact/ContactC.js | 5 +- src/templates/blocks/Contact/ContactD.js | 5 +- src/templates/blocks/Heading/HeadingC.js | 10 +- src/templates/blocks/Heading/HeadingE.js | 12 +- src/utils/dayjs.js | 1 + src/utils/index.js | 10 +- 32 files changed, 942 insertions(+), 1021 deletions(-) diff --git a/firebase.json b/firebase.json index f95951ba..a07f91b6 100644 --- a/firebase.json +++ b/firebase.json @@ -1,19 +1,17 @@ { - "hosting": [{ - "site": "rxresume", - "public": "public", - "ignore": [ - "firebase.json", - "**/.*", - "**/node_modules/**" - ], - "rewrites": [ - { - "source": "**", - "destination": "/index.html" - } - ] - }], + "hosting": [ + { + "site": "rxresume", + "public": "public", + "ignore": ["firebase.json", "**/.*", "**/node_modules/**"], + "rewrites": [ + { + "source": "**", + "destination": "/index.html" + } + ] + } + ], "emulators": { "functions": { "port": 5001 diff --git a/functions/index.js b/functions/index.js index c2a4d0ee..65aaa652 100644 --- a/functions/index.js +++ b/functions/index.js @@ -17,94 +17,99 @@ async function asyncForEach(array, callback) { } } -exports.deleteUser = functions.https.onCall((_, { auth }) => { - if (!auth) { - throw new functions.https.HttpsError( - 'failed-precondition', - 'The function must be called while authenticated.', - ); - } - - return new Promise((resolve) => { - const resumesRef = admin.database().ref('resumes'); - - resumesRef.once('value', async (snapshot) => { - const data = snapshot.val(); - - const resumes = Object.keys(data).filter( - (x) => data[x].user === auth.uid, +exports.deleteUser = functions + .runWith({ memory: '256MB' }) + .https.onCall((_, { auth }) => { + if (!auth) { + throw new functions.https.HttpsError( + 'failed-precondition', + 'The function must be called while authenticated.', ); + } - await asyncForEach(resumes, async (id) => { - await admin.database().ref(`resumes/${id}`).remove(); + return new Promise((resolve) => { + const resumesRef = admin.database().ref('resumes'); + + resumesRef.once('value', async (snapshot) => { + const data = snapshot.val(); + + const resumes = Object.keys(data).filter( + (x) => data[x].user === auth.uid, + ); + + await asyncForEach(resumes, async (id) => { + await admin.database().ref(`resumes/${id}`).remove(); + }); + + resolve(); }); - - resolve(); }); }); -}); -exports.printResume = functions.https.onCall(async ({ id, type }, { auth }) => { - if (!id) { - throw new functions.https.HttpsError( - 'invalid-argument', - 'The function must be called with argument "id" containing the resume ID.', - ); - } - - if (!type) { - throw new functions.https.HttpsError( - 'invalid-argument', - 'The function must be called with argument "type" containing the type of resume.', - ); - } - - if (!auth) { - throw new functions.https.HttpsError( - 'failed-precondition', - 'The function must be called while authenticated.', - ); - } - - const browser = await puppeteer.launch({ - headless: true, - }); - const page = await browser.newPage(); - await page.goto(BASE_URL + id, { - waitUntil: 'networkidle0', - }); - await timeout(6000); - await page.emulateMediaType('print'); - let pdf; - - if (type === 'single') { - const height = await page.evaluate(() => { - const { body } = document; - const html = document.documentElement; - - const maxHeight = Math.max( - body.scrollHeight, - body.offsetHeight, - html.clientHeight, - html.scrollHeight, - html.offsetHeight, +exports.printResume = functions + .runWith({ memory: '1GB' }) + .https.onCall(async ({ id, type }, { auth }) => { + if (!id) { + throw new functions.https.HttpsError( + 'invalid-argument', + 'The function must be called with argument "id" containing the resume ID.', ); + } - return maxHeight; - }); - pdf = await page.pdf({ - printBackground: true, - width: `21cm`, - height: `${height}px`, - pageRanges: '1', - }); - } else { - pdf = await page.pdf({ - format: 'A4', - printBackground: true, - }); - } + if (!type) { + throw new functions.https.HttpsError( + 'invalid-argument', + 'The function must be called with argument "type" containing the type of resume.', + ); + } - await browser.close(); - return Buffer.from(pdf).toString('base64'); -}); + if (!auth) { + throw new functions.https.HttpsError( + 'failed-precondition', + 'The function must be called while authenticated.', + ); + } + + const browser = await puppeteer.launch({ + headless: true, + args: ['--no-sandbox'], + }); + const page = await browser.newPage(); + await page.goto(BASE_URL + id, { + waitUntil: 'networkidle0', + }); + await timeout(6000); + await page.emulateMediaType('print'); + let pdf; + + if (type === 'single') { + const height = await page.evaluate(() => { + const { body } = document; + const html = document.documentElement; + + const maxHeight = Math.max( + body.scrollHeight, + body.offsetHeight, + html.clientHeight, + html.scrollHeight, + html.offsetHeight, + ); + + return maxHeight; + }); + pdf = await page.pdf({ + printBackground: true, + width: `21cm`, + height: `${height}px`, + pageRanges: '1', + }); + } else { + pdf = await page.pdf({ + format: 'A4', + printBackground: true, + }); + } + + await browser.close(); + return Buffer.from(pdf).toString('base64'); + }); diff --git a/functions/package-lock.json b/functions/package-lock.json index bead436c..0baf637a 100644 --- a/functions/package-lock.json +++ b/functions/package-lock.json @@ -58,9 +58,9 @@ } }, "@google-cloud/common": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-3.4.0.tgz", - "integrity": "sha512-bVMQlK4aZEeopo2oJwDUJiBhPVjRRQHfFCCv9JowmKS3L//PBHNDJzC/LxJixGZEU3fh3YXkUwm67JZ5TBCCNQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-3.5.0.tgz", + "integrity": "sha512-10d7ZAvKhq47L271AqvHEd8KzJqGU45TY+rwM2Z3JHuB070FeTi7oJJd7elfrnKaEvaktw3hH2wKnRWxk/3oWQ==", "optional": true, "requires": { "@google-cloud/projectify": "^2.0.0", @@ -69,20 +69,20 @@ "duplexify": "^4.1.1", "ent": "^2.2.0", "extend": "^3.0.2", - "google-auth-library": "^6.0.0", + "google-auth-library": "^6.1.1", "retry-request": "^4.1.1", "teeny-request": "^7.0.0" } }, "@google-cloud/firestore": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-4.4.0.tgz", - "integrity": "sha512-nixsumd4C7eL+hHEgyihspzhBBNe3agsvNFRX0xfqO3uR/6ro4CUj9XdcCvdnSSd3yTyqKfdBSRK2fEj1jIbYg==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-4.8.0.tgz", + "integrity": "sha512-cBPo7QQG+aUhS7AIr6fDlA9KIX0/U26rKZyL2K/L68LArDQzgBk1/xOiMoflHRNDQARwCQ0PAZmw8V8CXg7vTg==", "optional": true, "requires": { "fast-deep-equal": "^3.1.1", "functional-red-black-tree": "^1.0.1", - "google-gax": "^2.2.0" + "google-gax": "^2.9.2" } }, "@google-cloud/paginator": { @@ -108,22 +108,22 @@ "optional": true }, "@google-cloud/storage": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.3.0.tgz", - "integrity": "sha512-3t5UF3SZ14Bw2kcBHubCai6EIugU2GnQOstYWVSFuoO8IJ94RAaIOPq/dtexvQbUTpBTAGpd5smVR9WPL1mJVw==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.6.0.tgz", + "integrity": "sha512-nLcym8IuCzy1O7tNTXNFuMHfX900sTM3kSTqbKe7oFSoKUiaIM+FHuuuDimMMlieY6StA1xYNPRFFHz57Nv8YQ==", "optional": true, "requires": { - "@google-cloud/common": "^3.3.0", + "@google-cloud/common": "^3.5.0", "@google-cloud/paginator": "^3.0.0", "@google-cloud/promisify": "^2.0.0", "arrify": "^2.0.0", "compressible": "^2.0.12", - "concat-stream": "^2.0.0", "date-and-time": "^0.14.0", - "duplexify": "^3.5.0", + "duplexify": "^4.0.0", "extend": "^3.0.2", - "gaxios": "^3.0.0", + "gaxios": "^4.0.0", "gcs-resumable-upload": "^3.1.0", + "get-stream": "^6.0.0", "hash-stream-validation": "^0.2.2", "mime": "^2.2.0", "mime-types": "^2.0.8", @@ -135,63 +135,21 @@ "xdg-basedir": "^4.0.0" }, "dependencies": { - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "optional": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, "p-limit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", - "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "optional": true, "requires": { - "p-try": "^2.0.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" + "yocto-queue": "^0.1.0" } } } }, "@grpc/grpc-js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.1.7.tgz", - "integrity": "sha512-EuxMstI0u778dp0nk6Fe3gHXYPeV6FYsWOe0/QFwxv1NQ6bc5Wl/0Yxa4xl9uBlKElL6AIxuASmSfu7KEJhqiw==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.1.8.tgz", + "integrity": "sha512-64hg5rmEm6F/NvlWERhHmmgxbWU8nD2TMWE+9TvG7/WcOrFT3fzg/Uu631pXRFwmJ4aWO/kp9vVSlr8FUjBDLA==", "optional": true, "requires": { "@grpc/proto-loader": "^0.6.0-pre14", @@ -214,9 +172,9 @@ } }, "@types/node": { - "version": "12.12.62", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.62.tgz", - "integrity": "sha512-qAfo81CsD7yQIM9mVyh6B/U47li5g7cfpVQEDMfQeF8pSZVwzbhwU3crc0qG4DmpsebpJPR49AKOExQyJ05Cpg==", + "version": "12.19.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.8.tgz", + "integrity": "sha512-D4k2kNi0URNBxIRCb1khTnkWNHv8KSL1owPmS/K5e5t8B2GzMReY7AsJIY1BnP5KdlgC4rj9jk2IkDMasIE7xg==", "optional": true } } @@ -310,16 +268,10 @@ "@types/node": "*" } }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "optional": true - }, "@types/connect": { - "version": "3.4.33", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", - "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", + "version": "3.4.34", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", + "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", "requires": { "@types/node": "*" } @@ -335,9 +287,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.13.tgz", - "integrity": "sha512-RgDi5a4nuzam073lRGKTUIaL3eF2+H7LJvJ8eUnCI0wA6SNjXc44DCmWNiTLs/AZ7QlsFWZiw/gTG3nSQGL0fA==", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.15.tgz", + "integrity": "sha512-pb71P0BrBAx7cQE+/7QnA1HTQUkdBKMlkPY7lHUMn0YvPJkL2UA+KW3BdWQ309IT+i9En/qm45ZxpjIcpgEhNQ==", "requires": { "@types/node": "*", "@types/qs": "*", @@ -345,9 +297,9 @@ } }, "@types/lodash": { - "version": "4.14.161", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.161.tgz", - "integrity": "sha512-EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA==", + "version": "4.14.165", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", + "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==", "dev": true }, "@types/long": { @@ -362,9 +314,9 @@ "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==" }, "@types/node": { - "version": "10.17.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.35.tgz", - "integrity": "sha512-gXx7jAWpMddu0f7a+L+txMplp3FnHl53OhQIF9puXKq3hDGY/GjH+MF04oWnV/adPSCrbtHumDCFwzq2VhltWA==" + "version": "10.17.48", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.48.tgz", + "integrity": "sha512-Agl6xbYP6FOMDeAsr3QVZ+g7Yzg0uhPHWx0j5g4LFdUBHVtqtU+gH660k/lCEe506jJLOGbEzsnqPDTZGJQLag==" }, "@types/qs": { "version": "6.9.5", @@ -377,12 +329,12 @@ "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" }, "@types/serve-static": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.5.tgz", - "integrity": "sha512-6M64P58N+OXjU432WoLLBQxbA0LRGBCRm7aAGQJ+SMC1IMl0dgRVi9EFfoDcS2a7Xogygk/eGN94CfwU9UF7UQ==", + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", + "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", "requires": { - "@types/express-serve-static-core": "*", - "@types/mime": "*" + "@types/mime": "*", + "@types/node": "*" } }, "@types/yauzl": { @@ -413,9 +365,9 @@ } }, "agent-base": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz", - "integrity": "sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "optional": true, "requires": { "debug": "4" @@ -428,12 +380,11 @@ "optional": true }, "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "optional": true, "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, @@ -454,9 +405,9 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "bignumber.js": { "version": "9.0.1", @@ -516,12 +467,12 @@ } }, "buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, "buffer-crc32": { @@ -534,12 +485,6 @@ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "optional": true - }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", @@ -596,18 +541,6 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "optional": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, "configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", @@ -652,12 +585,6 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "optional": true - }, "cors": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", @@ -680,9 +607,9 @@ "optional": true }, "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "requires": { "ms": "2.1.2" } @@ -704,9 +631,9 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, "devtools-protocol": { - "version": "0.0.799653", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.799653.tgz", - "integrity": "sha512-t1CcaZbvm8pOlikqrsIM9GOa7Ipp07+4h/q9u0JXBWjPCjHdBl9KkddX87Vv9vBHoBGtwV79sYQNGnQM6iS5gg==" + "version": "0.0.818844", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.818844.tgz", + "integrity": "sha512-AD1hi7iVJ8OD0aMLQU5VK0XH9LDlA1+BcPIgrAxPfaibx2DbWucuyOhc4oyQCbnvDDO68nN6/LcKfqTP343Jjg==" }, "dicer": { "version": "0.3.0", @@ -863,6 +790,16 @@ "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + } } }, "fast-deep-equal": { @@ -932,13 +869,13 @@ } }, "firebase-admin": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-9.2.0.tgz", - "integrity": "sha512-LhnMYl71B4gP1FlTLfwaYlOWhBCAcNF+byb2CPTfaW/T4hkp4qlXOgo2bws/zbAv5X9GTFqGir3KexMslVGsIA==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-9.4.1.tgz", + "integrity": "sha512-y9r2Mz2x1WTr60YrCDqz8Lw70DlwIvRIieVltP+UdRogkVpfnvyd+bi4D0KPlujW3teqcFPmxuzsXB+DP5vGfQ==", "requires": { "@firebase/database": "^0.6.10", "@firebase/database-types": "^0.5.2", - "@google-cloud/firestore": "^4.0.0", + "@google-cloud/firestore": "^4.5.0", "@google-cloud/storage": "^5.3.0", "@types/node": "^10.10.0", "dicer": "^0.3.0", @@ -947,9 +884,9 @@ } }, "firebase-functions": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/firebase-functions/-/firebase-functions-3.11.0.tgz", - "integrity": "sha512-i1uMhZ/M6i5SCI3ulKo7EWX0/LD+I5o6N+sk0HbOWfzyWfOl0iJTvQkR3BVDcjrlhPVC4xG1bDTLxd+DTkLqaw==", + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/firebase-functions/-/firebase-functions-3.13.0.tgz", + "integrity": "sha512-tnltJL5KlGtbeBD9scsVjoKTSTMeo6EAy1gsdOfRlrwAu6idgLRKYVdmw0YymS8N7SwJ3CXo+3fuvSSihKhXbA==", "requires": { "@types/express": "4.17.3", "cors": "^2.8.5", @@ -958,9 +895,9 @@ } }, "firebase-functions-test": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/firebase-functions-test/-/firebase-functions-test-0.2.2.tgz", - "integrity": "sha512-SlHLnpKRn5nMsg4Y0CUTGs/R8NatghJCYZGw3fHzaS/5xDqwWPWuxmdHHc+MSuxrSrUROEwOrDTwrbjmRaSNjw==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/firebase-functions-test/-/firebase-functions-test-0.2.3.tgz", + "integrity": "sha512-zYX0QTm53wCazuej7O0xqbHl90r/v1PTXt/hwa0jo1YF8nDM+iBKnLDlkIoW66MDd0R6aGg4BvKzTTdJpvigUA==", "dev": true, "requires": { "@types/lodash": "^4.14.104", @@ -994,9 +931,9 @@ "optional": true }, "gaxios": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-3.2.0.tgz", - "integrity": "sha512-+6WPeVzPvOshftpxJwRi2Ozez80tn/hdtOUag7+gajDHRJvAblKxTFSSMPtr2hmnLy7p0mvYz0rMXLBl8pSO7Q==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.1.0.tgz", + "integrity": "sha512-vb0to8xzGnA2qcgywAjtshOKKVDf2eQhJoiL6fHhgW5tVN7wNk7egnYIO9zotfn3lQ3De1VPdf7V5/BWfCtCmg==", "optional": true, "requires": { "abort-controller": "^3.0.0", @@ -1007,12 +944,12 @@ } }, "gcp-metadata": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.2.0.tgz", - "integrity": "sha512-vQZD57cQkqIA6YPGXM/zc+PIZfNRFdukWGsGZ5+LcJzesi5xp6Gn7a02wRJi4eXPyArNMIYpPET4QMxGqtlk6Q==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.2.1.tgz", + "integrity": "sha512-tSk+REe5iq/N+K+SK1XjZJUrFPuDqGZVzCy2vocIHIGmPlTGsa8owXMJwGkrXr73NO0AzhPW4MF2DEHz7P2AVw==", "optional": true, "requires": { - "gaxios": "^3.0.0", + "gaxios": "^4.0.0", "json-bigint": "^1.0.0" } }, @@ -1029,6 +966,21 @@ "google-auth-library": "^6.0.0", "pumpify": "^2.0.0", "stream-events": "^1.0.4" + }, + "dependencies": { + "gaxios": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-3.2.0.tgz", + "integrity": "sha512-+6WPeVzPvOshftpxJwRi2Ozez80tn/hdtOUag7+gajDHRJvAblKxTFSSMPtr2hmnLy7p0mvYz0rMXLBl8pSO7Q==", + "optional": true, + "requires": { + "abort-controller": "^3.0.0", + "extend": "^3.0.2", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "node-fetch": "^2.3.0" + } + } } }, "get-caller-file": { @@ -1038,12 +990,10 @@ "optional": true }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", + "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", + "optional": true }, "glob": { "version": "7.1.6", @@ -1059,26 +1009,26 @@ } }, "google-auth-library": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-6.1.0.tgz", - "integrity": "sha512-GbalszIADE1YPWhUyfFMrkLhFHnlAgoRcqGVW+MsLDPsuaOB5MRPk7NNafPDv9SherNE4EKzcYuxMJjaxzXMOw==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-6.1.3.tgz", + "integrity": "sha512-m9mwvY3GWbr7ZYEbl61isWmk+fvTmOt0YNUfPOUY2VH8K5pZlAIWJjxEi0PqR3OjMretyiQLI6GURMrPSwHQ2g==", "optional": true, "requires": { "arrify": "^2.0.0", "base64-js": "^1.3.0", "ecdsa-sig-formatter": "^1.0.11", "fast-text-encoding": "^1.0.0", - "gaxios": "^3.0.0", - "gcp-metadata": "^4.1.0", - "gtoken": "^5.0.0", + "gaxios": "^4.0.0", + "gcp-metadata": "^4.2.0", + "gtoken": "^5.0.4", "jws": "^4.0.0", "lru-cache": "^6.0.0" } }, "google-gax": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-2.9.0.tgz", - "integrity": "sha512-MFMwA7Fb8PEwjnYwfGXjZMidCNyMl3gSnvS/+kS8TQioJZQDpzK+W3dmwyNyig/U13+kbABqDnbkkAXJ5NiUkw==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-2.9.2.tgz", + "integrity": "sha512-Pve4osEzNKpBZqFXMfGKBbKCtgnHpUe5IQMh5Ou+Xtg8nLcba94L3gF0xgM5phMdGRRqJn0SMjcuEVmOYu7EBg==", "optional": true, "requires": { "@grpc/grpc-js": "~1.1.1", @@ -1086,7 +1036,7 @@ "@types/long": "^4.0.0", "abort-controller": "^3.0.0", "duplexify": "^4.0.0", - "google-auth-library": "^6.0.0", + "google-auth-library": "^6.1.3", "is-stream-ended": "^0.1.4", "node-fetch": "^2.6.1", "protobufjs": "^6.9.0", @@ -1109,13 +1059,13 @@ "optional": true }, "gtoken": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.0.3.tgz", - "integrity": "sha512-Nyd1wZCMRc2dj/mAD0LlfQLcAO06uKdpKJXvK85SGrF5+5+Bpfil9u/2aw35ltvEHjvl0h5FMKN5knEU+9JrOg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.1.0.tgz", + "integrity": "sha512-4d8N6Lk8TEAHl9vVoRVMh9BNOKWVgl2DdNtr3428O75r3QFrF/a5MMu851VmK0AA8+iSvbwRv69k5XnMLURGhg==", "optional": true, "requires": { - "gaxios": "^3.0.0", - "google-p12-pem": "^3.0.0", + "gaxios": "^4.0.0", + "google-p12-pem": "^3.0.3", "jws": "^4.0.0", "mime": "^2.2.0" } @@ -1180,9 +1130,9 @@ } }, "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "imurmurhash": { "version": "0.1.4", @@ -1239,12 +1189,6 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "optional": true }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "optional": true - }, "json-bigint": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", @@ -1470,8 +1414,7 @@ "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "optional": true + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, "node-forge": { "version": "0.10.0", @@ -1562,21 +1505,15 @@ "find-up": "^4.0.0" } }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "optional": true - }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "protobufjs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.1.tgz", - "integrity": "sha512-pb8kTchL+1Ceg4lFd5XUpK8PdWacbvV5SK2ULH2ebrYtl4GjJmS24m6CKME67jzV53tbJxHlnNOSqQHbTsR9JQ==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.2.tgz", + "integrity": "sha512-27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ==", "optional": true, "requires": { "@protobufjs/aspromise": "^1.1.2", @@ -1595,9 +1532,9 @@ }, "dependencies": { "@types/node": { - "version": "13.13.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.21.tgz", - "integrity": "sha512-tlFWakSzBITITJSxHV4hg4KvrhR/7h3xbJdSFbYJBVzKubrASbnnIFuSgolUh7qKGo/ZeJPKUfbZ0WS6Jp14DQ==", + "version": "13.13.35", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.35.tgz", + "integrity": "sha512-q9aeOGwv+RRou/ca4aJVUM/jD5u7LBexu+rq9PkA/NhHNn8JifcMo94soKm0b6JGSfw/PSNdqtc428OscMvEYA==", "optional": true } } @@ -1637,14 +1574,15 @@ } }, "puppeteer": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-5.3.1.tgz", - "integrity": "sha512-YTM1RaBeYrj6n7IlRXRYLqJHF+GM7tasbvrNFx6w1S16G76NrPq7oYFKLDO+BQsXNtS8kW2GxWCXjIMPvfDyaQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-5.5.0.tgz", + "integrity": "sha512-OM8ZvTXAhfgFA7wBIIGlPQzvyEETzDjeRa4mZRCRHxYL+GNH5WAuYUQdja3rpWZvkX/JKqmuVgbsxDNsDFjMEg==", "requires": { "debug": "^4.1.0", - "devtools-protocol": "0.0.799653", + "devtools-protocol": "0.0.818844", "extract-zip": "^2.0.0", "https-proxy-agent": "^4.0.0", + "node-fetch": "^2.6.1", "pkg-dir": "^4.2.0", "progress": "^2.0.1", "proxy-from-env": "^1.0.0", @@ -1887,14 +1825,14 @@ "optional": true }, "tar-fs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz", - "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "requires": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", - "tar-stream": "^2.0.0" + "tar-stream": "^2.1.4" } }, "tar-stream": { @@ -1933,9 +1871,9 @@ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "type-is": { "version": "1.6.18", @@ -1946,12 +1884,6 @@ "mime-types": "~2.1.24" } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "optional": true - }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -1995,9 +1927,9 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", - "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "optional": true }, "vary": { @@ -2055,9 +1987,9 @@ } }, "ws": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", - "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==" + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz", + "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==" }, "xdg-basedir": { "version": "4.0.0", @@ -2066,9 +1998,9 @@ "optional": true }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "optional": true }, "yallist": { @@ -2114,6 +2046,12 @@ "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "optional": true } } } diff --git a/functions/package.json b/functions/package.json index 6a0e1dae..4ed3f4db 100644 --- a/functions/package.json +++ b/functions/package.json @@ -9,15 +9,15 @@ "logs": "firebase functions:log" }, "engines": { - "node": "10" + "node": "12" }, "dependencies": { - "firebase-admin": "^9.2.0", - "firebase-functions": "^3.11.0", - "puppeteer": "5.3.1" + "firebase-admin": "^9.4.1", + "firebase-functions": "^3.13.0", + "puppeteer": "5.5.0" }, "devDependencies": { - "firebase-functions-test": "^0.2.2" + "firebase-functions-test": "^0.2.3" }, "private": true } diff --git a/gatsby-config.js b/gatsby-config.js index 7857308f..6e643464 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -5,7 +5,7 @@ module.exports = { title: 'Reactive Resume', siteUrl: 'https://rxresu.me', description: 'A free and open source resume builder.', - version: '2.3', + version: '2.3.3', }, plugins: [ 'gatsby-plugin-react-helmet', diff --git a/package-lock.json b/package-lock.json index e2b4c4b9..57622557 100644 --- a/package-lock.json +++ b/package-lock.json @@ -137,9 +137,9 @@ "integrity": "sha512-8cEsSMwXfx7lWSUMA2s08z9dIgsnR5NAqjXP23stdsU3AUWkCr/rr4s4OFtHXn5XXr6+7kam3QFVoYyXNPdJPA==" }, "electron-to-chromium": { - "version": "1.3.616", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.616.tgz", - "integrity": "sha512-CI8L38UN2BEnqXw3/oRIQTmde0LiSeqWSRlPA42ZTYgJQ8fYenzAM2Z3ni+jtILTcrs5aiXZCGJ96Pm+3/yGyQ==" + "version": "1.3.620", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.620.tgz", + "integrity": "sha512-YbgWXUR2Mu+Fp6rm3GZ5YJdNo8SgZKLUTNSl2PNvdOcM8OIz07jRJnRkIaV9vdszFv9UUuGChh19w9qSuoLJgw==" }, "escalade": { "version": "3.1.1", @@ -1727,25 +1727,27 @@ } }, "@graphql-tools/url-loader": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.5.0.tgz", - "integrity": "sha512-lwjg5vhZ2VvuWAXuzPwvLJfLmVN+cXoFmV0UeBethgP0Zvy8nkm1V+3aFGoyGkhxnlQUfBg/PMidw/t+7vhfAg==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.6.0.tgz", + "integrity": "sha512-iZp6bCKU0AmGKRrsDOYqehg5mVImQS1/JMBvh73VPRp9ry2I1oxsE124Q54t3lHhD2b1wrQ9AJlXxgNsuxmJtQ==", "requires": { "@graphql-tools/delegate": "^7.0.1", "@graphql-tools/utils": "^7.1.4", "@graphql-tools/wrap": "^7.0.4", "@types/websocket": "1.0.1", "cross-fetch": "3.0.6", + "eventsource": "1.0.7", "extract-files": "9.0.0", "graphql-upload": "^11.0.0", - "graphql-ws": "2.0.0", + "graphql-ws": "2.0.1", "is-promise": "4.0.0", "isomorphic-form-data": "2.0.0", "isomorphic-ws": "4.0.1", + "sse-z": "0.3.0", "sync-fetch": "0.3.0", "tslib": "~2.0.1", "valid-url": "1.0.9", - "ws": "7.4.0" + "ws": "7.4.1" }, "dependencies": { "@graphql-tools/utils": { @@ -3340,6 +3342,26 @@ "normalize-path": "^2.1.1" }, "dependencies": { + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", @@ -3784,15 +3806,15 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "autoprefixer": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.0.4.tgz", - "integrity": "sha512-hmjYejN/WTyPP9cdNmiwtwqM8/ACVJPD5ExtwoOceQohNbgnFNiwpL2+U4bXS8aXozBL00WvH6WhqbuHf0Fgfg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.1.0.tgz", + "integrity": "sha512-0/lBNwN+ZUnb5su18NZo5MBIjDaq6boQKZcxwy86Gip/CmXA2zZqUoFQLCNAGI5P25ZWSP2RWdhDJ8osfKEjoQ==", "requires": { - "browserslist": "^4.14.7", - "caniuse-lite": "^1.0.30001161", + "browserslist": "^4.15.0", + "caniuse-lite": "^1.0.30001165", "colorette": "^1.2.1", + "fraction.js": "^4.0.12", "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", "postcss-value-parser": "^4.1.0" }, "dependencies": { @@ -3814,9 +3836,9 @@ "integrity": "sha512-8cEsSMwXfx7lWSUMA2s08z9dIgsnR5NAqjXP23stdsU3AUWkCr/rr4s4OFtHXn5XXr6+7kam3QFVoYyXNPdJPA==" }, "electron-to-chromium": { - "version": "1.3.616", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.616.tgz", - "integrity": "sha512-CI8L38UN2BEnqXw3/oRIQTmde0LiSeqWSRlPA42ZTYgJQ8fYenzAM2Z3ni+jtILTcrs5aiXZCGJ96Pm+3/yGyQ==" + "version": "1.3.620", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.620.tgz", + "integrity": "sha512-YbgWXUR2Mu+Fp6rm3GZ5YJdNo8SgZKLUTNSl2PNvdOcM8OIz07jRJnRkIaV9vdszFv9UUuGChh19w9qSuoLJgw==" }, "escalade": { "version": "3.1.1", @@ -4245,24 +4267,6 @@ "which": "^1.2.9" } }, - "download": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz", - "integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==", - "requires": { - "caw": "^2.0.0", - "content-disposition": "^0.5.2", - "decompress": "^4.0.0", - "ext-name": "^5.0.0", - "file-type": "5.2.0", - "filenamify": "^2.0.0", - "get-stream": "^3.0.0", - "got": "^7.0.0", - "make-dir": "^1.0.0", - "p-event": "^1.0.0", - "pify": "^3.0.0" - } - }, "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", @@ -4277,41 +4281,15 @@ "strip-eof": "^1.0.0" } }, - "file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" - }, "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - }, - "is-plain-obj": { + "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "lru-cache": { "version": "4.1.5", @@ -4322,14 +4300,6 @@ "yallist": "^2.1.2" } }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - } - }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -4338,45 +4308,6 @@ "path-key": "^2.0.0" } }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" - }, - "p-event": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz", - "integrity": "sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=", - "requires": { - "p-timeout": "^1.1.1" - } - }, - "p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "requires": { - "p-finally": "^1.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "requires": { - "prepend-http": "^1.0.1" - } - }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", @@ -4422,6 +4353,11 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", @@ -4477,6 +4413,11 @@ "pump": "^3.0.0" } }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -4517,11 +4458,70 @@ "pify": "^4.0.1" }, "dependencies": { + "download": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz", + "integrity": "sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==", + "requires": { + "archive-type": "^4.0.0", + "caw": "^2.0.1", + "content-disposition": "^0.5.2", + "decompress": "^4.2.0", + "ext-name": "^5.0.0", + "file-type": "^8.1.0", + "filenamify": "^2.0.0", + "get-stream": "^3.0.0", + "got": "^8.3.1", + "make-dir": "^1.2.0", + "p-event": "^2.1.0", + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "file-type": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz", + "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, "import-lazy": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==" }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "p-event": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", + "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", + "requires": { + "p-timeout": "^2.0.1" + } + }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", @@ -5490,6 +5490,11 @@ "pump": "^3.0.0" } }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -5856,9 +5861,9 @@ } }, "contentful-sdk-core": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.6.0.tgz", - "integrity": "sha512-/+Pi1ZK+hkYL704TONSHuVU0WGM0egkg/gE709HNOCdk0/M+PItFm9a+/sR5KsLhWdp8koRa7Mv6ZvYQgJMSWw==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.7.0.tgz", + "integrity": "sha512-+b8UXVE249Z6WzMLXvsu3CIvN/s5xXRZ9o+zY7zDdPkIYBMW15xcs9N2ATI6ncmc+s1uj4XZij/2skflletHiw==", "requires": { "fast-copy": "^2.1.0", "qs": "^6.9.4" @@ -5956,11 +5961,11 @@ "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" }, "core-js-compat": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.0.tgz", - "integrity": "sha512-o9QKelQSxQMYWHXc/Gc4L8bx/4F7TTraE5rhuN8I7mKBt5dBIUpXpIR3omv70ebr8ST5R3PqbDQr+ZI3+Tt1FQ==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.1.tgz", + "integrity": "sha512-a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ==", "requires": { - "browserslist": "^4.14.7", + "browserslist": "^4.15.0", "semver": "7.0.0" }, "dependencies": { @@ -5982,9 +5987,9 @@ "integrity": "sha512-8cEsSMwXfx7lWSUMA2s08z9dIgsnR5NAqjXP23stdsU3AUWkCr/rr4s4OFtHXn5XXr6+7kam3QFVoYyXNPdJPA==" }, "electron-to-chromium": { - "version": "1.3.616", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.616.tgz", - "integrity": "sha512-CI8L38UN2BEnqXw3/oRIQTmde0LiSeqWSRlPA42ZTYgJQ8fYenzAM2Z3ni+jtILTcrs5aiXZCGJ96Pm+3/yGyQ==" + "version": "1.3.620", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.620.tgz", + "integrity": "sha512-YbgWXUR2Mu+Fp6rm3GZ5YJdNo8SgZKLUTNSl2PNvdOcM8OIz07jRJnRkIaV9vdszFv9UUuGChh19w9qSuoLJgw==" }, "escalade": { "version": "3.1.1", @@ -6567,9 +6572,9 @@ "integrity": "sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ==" }, "dayjs": { - "version": "1.9.6", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.9.6.tgz", - "integrity": "sha512-HngNLtPEBWRo8EFVmHFmSXAjtCX8rGNqeXQI0Gh7wCTSqwaKgPIDqu9m07wABVopNwzvOeCb+2711vQhDlcIXw==" + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.9.7.tgz", + "integrity": "sha512-IC877KBdMhBrCfBfJXHQlo0G8keZ0Opy7YIIq5QKtUbCuHMzim8S4PyiVK4YmihI3iOF9lhfUBW4AQWHTR5WHA==" }, "debug": { "version": "4.3.1", @@ -6628,11 +6633,6 @@ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" } } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, @@ -6658,6 +6658,11 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" } } }, @@ -6677,6 +6682,11 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" } } }, @@ -6694,6 +6704,11 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" } } }, @@ -6721,11 +6736,6 @@ "object-assign": "^4.0.1", "pinkie-promise": "^2.0.0" } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, @@ -6788,6 +6798,11 @@ "pump": "^3.0.0" } }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -7205,29 +7220,64 @@ "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" }, "download": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz", - "integrity": "sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==", + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz", + "integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==", "requires": { - "archive-type": "^4.0.0", - "caw": "^2.0.1", + "caw": "^2.0.0", "content-disposition": "^0.5.2", - "decompress": "^4.2.0", + "decompress": "^4.0.0", "ext-name": "^5.0.0", - "file-type": "^8.1.0", + "file-type": "5.2.0", "filenamify": "^2.0.0", "get-stream": "^3.0.0", - "got": "^8.3.1", - "make-dir": "^1.2.0", - "p-event": "^2.1.0", + "got": "^7.0.0", + "make-dir": "^1.0.0", + "p-event": "^1.0.0", "pify": "^3.0.0" }, "dependencies": { + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + }, "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", @@ -7236,10 +7286,44 @@ "pify": "^3.0.0" } }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" + }, + "p-event": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz", + "integrity": "sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=", + "requires": { + "p-timeout": "^1.1.1" + } + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "requires": { + "p-finally": "^1.0.0" + } + }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } } } }, @@ -7887,21 +7971,10 @@ } }, "eslint-config-prettier": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz", - "integrity": "sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw==", - "dev": true, - "requires": { - "get-stdin": "^6.0.0" - }, - "dependencies": { - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true - } - } + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz", + "integrity": "sha512-8Y8lGLVPPZdaNA7JXqnvETVC7IiVRgAP6afQu9gOQRn90YY3otMNh+x7Vr2vMePQntF+5erdSUBqSzCmU/AxaQ==", + "dev": true }, "eslint-config-react-app": { "version": "5.2.1", @@ -8346,11 +8419,11 @@ "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==" }, "eventsource": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", - "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", "requires": { - "original": ">=0.0.5" + "original": "^1.0.0" } }, "evp_bytestokey": { @@ -8388,11 +8461,6 @@ "which": "^2.0.1" } }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -8921,9 +8989,9 @@ } }, "file-type": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz", - "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==" + "version": "12.4.2", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz", + "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==" }, "file-uri-to-path": { "version": "1.0.0", @@ -9145,6 +9213,11 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, + "fraction.js": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.12.tgz", + "integrity": "sha512-8Z1K0VTG4hzYY7kA/1sj4/r1/RWLBD3xwReT/RCrUCbzPszjNQCCsy3ktkU/eaEqX3MYa4pY37a52eiBlPMlhA==" + }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -9237,9 +9310,9 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gatsby": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-2.28.0.tgz", - "integrity": "sha512-kWejVSxsuiT/yfghLHDOeaJg0eV5UdS5zc66ANPcSEJ+9U3DgPWoVM18aFsa+VsywGWxp2uqzOPdsItjdiOt+A==", + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-2.28.1.tgz", + "integrity": "sha512-9+R4hICVl+EmKS16I3OHS0pCFfP9eV4d6Ee/t9kWvlgXQtgscMRuPxBQ02H4XMqUSPEdamN6Gf6ZN1RtcPZCnA==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/core": "^7.12.3", @@ -9408,14 +9481,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, "autoprefixer": { "version": "9.8.6", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", @@ -9430,14 +9495,6 @@ "postcss-value-parser": "^4.1.0" } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, "caniuse-lite": { "version": "1.0.30001165", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001165.tgz", @@ -9450,6 +9507,29 @@ "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } } }, "cliui": { @@ -9542,14 +9622,6 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -9560,19 +9632,6 @@ "supports-color": "^5.3.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, "debug": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", @@ -9581,11 +9640,6 @@ "ms": "2.1.2" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -9626,14 +9680,6 @@ "eslint-visitor-keys": "^1.1.0" } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, "gatsby-cli": { "version": "2.15.0", "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-2.15.0.tgz", @@ -9724,11 +9770,6 @@ "type-fest": "^0.8.1" } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, "hosted-git-info": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", @@ -9747,25 +9788,6 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, "p-finally": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", @@ -9786,14 +9808,6 @@ "supports-color": "^6.1.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -9814,36 +9828,10 @@ } } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } } } }, @@ -9920,19 +9908,11 @@ } }, "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" + "has-flag": "^3.0.0" } }, "uuid": { @@ -9963,6 +9943,14 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -10109,44 +10097,6 @@ "requires": { "regenerator-runtime": "^0.13.4" } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } } } }, @@ -10427,9 +10377,9 @@ } }, "gatsby-plugin-sharp": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-2.10.0.tgz", - "integrity": "sha512-ivR4gOdBYtJDsFzjS7VLKJ+ShFIEmDDy7BCKFeoHDslydHRWEGTKAWK1XQryaMWSaCkVWjeW+zPmpQS8Re6GfA==", + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-2.10.1.tgz", + "integrity": "sha512-w1a4waIlAUb7SpfvMstVI8S2V/R5EECqSEQ3IUFtARqbp/9eGFMlgwBBmn4AEA8bsIp3Bwvl1T2lIqZoh+jgHA==", "requires": { "@babel/runtime": "^7.12.5", "async": "^3.2.0", @@ -10587,22 +10537,6 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz", "integrity": "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==" }, - "p-event": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", - "requires": { - "p-timeout": "^3.1.0" - } - }, - "p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "requires": { - "p-finally": "^1.0.0" - } - }, "responselike": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", @@ -11630,11 +11564,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" - }, "graphql": { "version": "14.7.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-14.7.0.tgz", @@ -11751,9 +11680,9 @@ } }, "graphql-ws": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-2.0.0.tgz", - "integrity": "sha512-8mueXeT7PswGeh/LObzKSYij+uD0FMGrvanHNaHuuUaiCfzqzc1ReflhEhzpS6bo4rxzK8L4aZtJ9Ci3hFQnIw==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-2.0.1.tgz", + "integrity": "sha512-K8eaR00TZHFMVw2viZfjDxLWdF1hUIR8xY9Zow6tLI2CLT3E4homJ4XZNRrxEoQjAXEQoUHPcmGkDDynWivNrQ==" }, "gray-matter": { "version": "4.0.2", @@ -11958,13 +11887,6 @@ "requires": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - } } }, "hast-to-hyperscript": { @@ -12359,6 +12281,28 @@ "is-glob": "^4.0.0", "lodash": "^4.17.11", "micromatch": "^3.1.10" + }, + "dependencies": { + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } } }, "http-signature": { @@ -12493,13 +12437,6 @@ "make-dir": "^3.0.0", "p-pipe": "^3.0.0", "replace-ext": "^1.0.0" - }, - "dependencies": { - "file-type": { - "version": "12.4.2", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz", - "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==" - } } }, "imagemin-mozjpeg": { @@ -12522,13 +12459,6 @@ "is-stream": "^2.0.0", "ow": "^0.17.0", "pngquant-bin": "^6.0.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - } } }, "import-cwd": { @@ -13143,9 +13073,9 @@ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, "is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" }, "is-path-cwd": { "version": "2.2.0", @@ -13251,9 +13181,9 @@ } }, "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" }, "is-string": { "version": "1.0.5", @@ -14631,23 +14561,43 @@ } }, "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + } } }, "miller-rabin": { @@ -15713,11 +15663,21 @@ "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==" }, "p-event": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", - "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", "requires": { - "p-timeout": "^2.0.1" + "p-timeout": "^3.1.0" + }, + "dependencies": { + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "requires": { + "p-finally": "^1.0.0" + } + } } }, "p-finally": { @@ -16209,9 +16169,9 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { - "version": "8.1.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.1.14.tgz", - "integrity": "sha512-KatkyVPBKfENS+c3dpXJoDXnDD5UZs5exAnDksLqaRJPKwYphEPZt4N0m0i049v2/BtWVQibAhxW4ilXXcolpA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.0.tgz", + "integrity": "sha512-vZ8cb6AlN53hHlnPvR+oj7fA46LU05Ysv7O7sNh1ixQrCbtx+d8/h+5tDER9XAccVhkf3aYskAiWmh0DdjNLbw==", "requires": { "colorette": "^1.2.1", "nanoid": "^3.1.20", @@ -18592,9 +18552,9 @@ } }, "react-i18next": { - "version": "11.7.4", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.7.4.tgz", - "integrity": "sha512-Aq0+QVW7NMYuAtk0Stcwp4jWeNTd1p5XefAfBPcjs/4c/2duG3v3G3zdtn8fC8L4EyA/coKLwdULHI+lYTbF8w==", + "version": "11.8.1", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.8.1.tgz", + "integrity": "sha512-PbKWBphflI7la0gFc4MneeigmnCT2M/axnUUhCAz3MqfVekRdupFJFvYE25jiIMzbJcIpJeQJDfp/zyktD/O6Q==", "requires": { "@babel/runtime": "^7.3.1", "html-parse-stringify2": "2.0.1" @@ -18692,9 +18652,9 @@ "integrity": "sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg==" }, "react-toastify": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-6.1.0.tgz", - "integrity": "sha512-Ne+wIoO9A+jZlaqGqgeuXDC/DQfqTuJdyoc7G5SsuCHsr8mNRx7W26417YKtHRH0LcnFFd5ii76tGnmm0cMlLg==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-6.2.0.tgz", + "integrity": "sha512-XpjFrcBhQ0/nBOL4syqgP/TywFnOyxmstYLWgSQWcj39qpp+WU4vPt3C/ayIDx7RFyxRWfzWTdR2qOcDGo7G0w==", "requires": { "clsx": "^1.1.1", "prop-types": "^15.7.2", @@ -18844,6 +18804,28 @@ "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", "readable-stream": "^2.0.2" + }, + "dependencies": { + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } } }, "recursive-readdir": { @@ -19710,21 +19692,11 @@ } }, "seek-bzip": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", - "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", "requires": { - "commander": "~2.8.1" - }, - "dependencies": { - "commander": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", - "requires": { - "graceful-readlink": ">= 1.0.0" - } - } + "commander": "^2.8.1" } }, "select-hose": { @@ -20467,6 +20439,14 @@ "ms": "2.0.0" } }, + "eventsource": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "requires": { + "original": ">=0.0.5" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -20683,6 +20663,11 @@ } } }, + "sse-z": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/sse-z/-/sse-z-0.3.0.tgz", + "integrity": "sha512-jfcXynl9oAOS9YJ7iqS2JMUEHOlvrRAD+54CENiWnc4xsuVLQVSgmwf7cwOTcBd/uq3XkQKBGojgvEtVXcJ/8w==" + }, "sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", @@ -22174,9 +22159,9 @@ }, "dependencies": { "bl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", - "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", "requires": { "readable-stream": "^2.3.5", "safe-buffer": "^5.1.1" @@ -22496,9 +22481,9 @@ "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==" }, "ts-node": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.0.tgz", - "integrity": "sha512-0yqcL4sgruCvM+w64LiAfNJo6+lHfCYc5Ajj4yiLNkJ9oZ2HWaa+Kso7htYOOxVQ7+csAjdUjffOe9PIqC4pMg==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", "requires": { "arg": "^4.1.0", "create-require": "^1.1.0", @@ -23150,9 +23135,9 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", - "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==" + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "v8-compile-cache": { "version": "1.1.2", @@ -23414,6 +23399,26 @@ "semver": "^5.6.0" } }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, "p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", @@ -23627,14 +23632,6 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "requires": { - "original": "^1.0.0" - } - }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", @@ -24245,9 +24242,9 @@ } }, "ws": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", - "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==" + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz", + "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==" }, "x-is-string": { "version": "0.1.0", @@ -24343,9 +24340,9 @@ } }, "yargs": { - "version": "16.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.1.1.tgz", - "integrity": "sha512-hAD1RcFP/wfgfxgMVswPE+z3tlPFtxG8/yWUrG2i17sTWGCGqWnxKcLTF4cUKDUK8fzokwsmO9H0TDkRbMHy8w==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -24424,9 +24421,9 @@ } }, "yup": { - "version": "0.32.1", - "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.1.tgz", - "integrity": "sha512-wNXD3lXNLeFHGB/XZufXaXuKzyeruLa5kbb8YY2i1V0O5J3x3+LgeXsVlNp5pAE8XVsqEvPB/gN+0fpOMi0f7g==", + "version": "0.32.6", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.6.tgz", + "integrity": "sha512-i5poB/ZWU0zGoCwViLw++NQbUFy+X9xfoSSK31JOLh3RoBVUaYrNlYIyxqK8HGrxTHPIl5BBNu/mJYKNeFVvdA==", "requires": { "@babel/runtime": "^7.10.5", "@types/lodash": "^4.14.165", diff --git a/package.json b/package.json index 82ec5459..d880b680 100644 --- a/package.json +++ b/package.json @@ -20,14 +20,14 @@ "@reach/router": "^1.3.4", "animate.css": "^4.1.1", "array-move": "^3.0.1", - "autoprefixer": "^10.0.4", + "autoprefixer": "^10.1.0", "classnames": "^2.2.6", - "dayjs": "^1.9.6", + "dayjs": "^1.9.7", "dotenv": "^8.2.0", "downloadjs": "^1.4.7", "firebase": "^8.1.2", "formik": "^2.2.5", - "gatsby": "^2.28.0", + "gatsby": "^2.28.1", "gatsby-image": "^2.7.0", "gatsby-plugin-create-client-paths": "^2.6.0", "gatsby-plugin-firebase": "^0.2.0-beta.4", @@ -36,7 +36,7 @@ "gatsby-plugin-offline": "^3.6.0", "gatsby-plugin-postcss": "^3.3.0", "gatsby-plugin-react-helmet": "^3.6.0", - "gatsby-plugin-sharp": "^2.10.0", + "gatsby-plugin-sharp": "^2.10.1", "gatsby-plugin-sitemap": "^2.8.0", "gatsby-plugin-webfonts": "^1.1.3", "gatsby-source-filesystem": "^2.7.0", @@ -46,24 +46,24 @@ "i18next": "^19.8.4", "lodash": "^4.17.20", "nanoevents": "^5.1.10", - "postcss": "^8.1.14", + "postcss": "^8.2.0", "react": "^17.0.1", "react-beautiful-dnd": "^13.0.0", "react-dom": "^17.0.1", "react-helmet": "^6.1.0", - "react-i18next": "^11.7.4", + "react-i18next": "^11.8.1", "react-icons": "^4.1.0", "react-markdown": "^5.0.3", "react-scroll": "^1.8.1", - "react-toastify": "^6.1.0", + "react-toastify": "^6.2.0", "short-unique-id": "^3.2.0", - "uuid": "^8.3.1", - "yup": "^0.32.1" + "uuid": "^8.3.2", + "yup": "^0.32.6" }, "devDependencies": { "eslint": "^7.15.0", "eslint-config-airbnb": "^18.2.1", - "eslint-config-prettier": "^6.15.0", + "eslint-config-prettier": "^7.0.0", "eslint-loader": "^4.0.2", "eslint-plugin-jsx-a11y": "^6.4.1", "eslint-plugin-prettier": "^3.2.0", diff --git a/src/components/builder/left/LeftSidebar.js b/src/components/builder/left/LeftSidebar.js index 1100a4c8..f4dd8bd8 100644 --- a/src/components/builder/left/LeftSidebar.js +++ b/src/components/builder/left/LeftSidebar.js @@ -60,16 +60,14 @@ const SidebarSection = ({ id, event }) => { ); }; -const LeftSidebar = () => { - return ( -
- +const LeftSidebar = () => ( +
+ - + - ); -}; +
+); export default memo(LeftSidebar); diff --git a/src/components/builder/right/RightNavbar.js b/src/components/builder/right/RightNavbar.js index ac36c5a5..07c0ee53 100644 --- a/src/components/builder/right/RightNavbar.js +++ b/src/components/builder/right/RightNavbar.js @@ -4,25 +4,23 @@ import SectionIcon from '../../shared/SectionIcon'; import styles from './RightNavbar.module.css'; import SyncIndicator from './SyncIndicator'; -const RightNavbar = () => { - return ( -
-
- {sections.map((x) => ( - - ))} -
- -
- - +const RightNavbar = () => ( +
+
+ {sections.map((x) => ( + + ))}
- ); -}; + +
+ + +
+); export default memo(RightNavbar); diff --git a/src/components/builder/right/RightSidebar.js b/src/components/builder/right/RightSidebar.js index fcd2bd41..413c7664 100644 --- a/src/components/builder/right/RightSidebar.js +++ b/src/components/builder/right/RightSidebar.js @@ -45,16 +45,14 @@ const SidebarSection = ({ id, event }) => { ); }; -const RightSidebar = () => { - return ( -
- - - +const RightSidebar = () => ( +
+ - ); -}; + + +
+); export default memo(RightSidebar); diff --git a/src/components/dashboard/TopNavbar.js b/src/components/dashboard/TopNavbar.js index bb7f3302..08fb46c5 100644 --- a/src/components/dashboard/TopNavbar.js +++ b/src/components/dashboard/TopNavbar.js @@ -4,18 +4,16 @@ import Avatar from '../shared/Avatar'; import Logo from '../shared/Logo'; import styles from './TopNavbar.module.css'; -const TopNavbar = () => { - return ( -
-
- - - +const TopNavbar = () => ( +
+
+ + + - -
+
- ); -}; +
+); export default memo(TopNavbar); diff --git a/src/components/router/LoadingScreen.js b/src/components/router/LoadingScreen.js index 1b11c4b8..19b6ec3a 100644 --- a/src/components/router/LoadingScreen.js +++ b/src/components/router/LoadingScreen.js @@ -3,19 +3,17 @@ import React, { memo } from 'react'; import { getRandomTip } from '../../data/tips'; import Logo from '../shared/Logo'; -const LoadingScreen = () => { - return ( - - -
-
- - {getRandomTip()} -
+const LoadingScreen = () => ( + + +
+
+ + {getRandomTip()}
- - - ); -}; +
+
+
+); export default memo(LoadingScreen); diff --git a/src/contexts/ModalContext.js b/src/contexts/ModalContext.js index db86c4bf..adffbd12 100644 --- a/src/contexts/ModalContext.js +++ b/src/contexts/ModalContext.js @@ -8,13 +8,9 @@ const defaultState = { events: ModalEvents, emitter }; const ModalContext = createContext(defaultState); -const ModalProvider = ({ children }) => { - return ( - - {children} - - ); -}; +const ModalProvider = ({ children }) => ( + {children} +); export default ModalContext; diff --git a/src/i18n/index.js b/src/i18n/index.js index 700782ca..131ed90b 100644 --- a/src/i18n/index.js +++ b/src/i18n/index.js @@ -83,6 +83,10 @@ const languages = [ code: 'tr', name: 'Turkish (Türkçe)', }, + { + code: 'uk', + name: 'Ukrainian (Українська)', + }, ]; i18n.use(initReactI18next).init({ diff --git a/src/i18n/locales/index.js b/src/i18n/locales/index.js index 68bd3e01..f19aa165 100644 --- a/src/i18n/locales/index.js +++ b/src/i18n/locales/index.js @@ -17,6 +17,7 @@ import ptPt from './pt-pt.json'; import ru from './ru.json'; import sv from './sv.json'; import tr from './tr.json'; +import uk from './uk.json'; import zh from './zh.json'; export default { @@ -39,5 +40,6 @@ export default { ru: { translation: ru }, sv: { translation: sv }, tr: { translation: tr }, + uk: { translation: uk }, zh: { translation: zh }, }; diff --git a/src/modals/ModalRegistrar.js b/src/modals/ModalRegistrar.js index b19a1b5c..15156ee6 100644 --- a/src/modals/ModalRegistrar.js +++ b/src/modals/ModalRegistrar.js @@ -14,25 +14,23 @@ import SkillModal from './sections/SkillModal'; import SocialModal from './sections/SocialModal'; import WorkModal from './sections/WorkModal'; -const ModalRegistrar = () => { - return ( - <> - - - - - - - - - - - - - - - - ); -}; +const ModalRegistrar = () => ( + <> + + + + + + + + + + + + + + + +); export default memo(ModalRegistrar); diff --git a/src/pages/faq.js b/src/pages/faq.js index 90e4237d..80424a77 100644 --- a/src/pages/faq.js +++ b/src/pages/faq.js @@ -4,112 +4,110 @@ import { Helmet } from 'react-helmet'; import { MdKeyboardArrowLeft } from 'react-icons/md'; import Wrapper from '../components/shared/Wrapper'; -const FrequentlyAskedQuestions = () => { - return ( - - - Frequently Asked Questions | Reactive Resume - - +const FrequentlyAskedQuestions = () => ( + + + Frequently Asked Questions | Reactive Resume + + -
-
- - - -

- Frequently Asked Questions -

-
- -
-

- This is aimed to be the world's simplest privacy policy. This - document should explain to you why the app collects some - information, what happens when your account is deleted and some - other frequently asked questions answered regarding your privacy. -

- -

- If you have any more questions, please raise an issue regarding the - same on GitHub and I'll answer as honest and quickly as - possible :) -

-
- -
- -
-

- What identifiable information is stored about me? -

-

- Your name and your email address is stored along with your user - information, if you signed in with Google, and of course, all the - information you input in your resume is also stored in the database. - You won't even get any marketing emails, feature updates, - newsletters, notification emails, nothing. -

-
- -
- -
-

- Why are you using a database, why not keep everything local like in - the first version of Reactive Resume? -

-

- Not having a centralized database cause a lot more problems than I - could solve, mainly having a large chunk of the users of the app - having an outdated schema as the app evolved. This was a problem I - could not solve without having at least some control. -

- -

- Also, a lot of users were having trouble printing their resumes on - their browsers, so with the help of Cloud Functions from Firebase, - you can now print your resumes remotely. None of the resumes are - stored, and they are sent to you immediately after generation, which - can be verified by looking through the source code. -

-
- -
- -
-

- How is this all free? There must be a catch! -

-

- Absolutely no catch to this freebie. This project - is just my way of giving back to the community that I've - learned so much from. If you'd like to show your appreciation - however, you can follow me on my social media and let me know how - much it helped you, or donate to help pay the cloud bills, or if you - are a fellow developer, you can head to GitHub and contribute to the - code and raising a PR. -

-
- -
- -
-

- Is there a mobile app for Reactive Resume? -

-

- Not yet. But soon, maybe? One of the main - motivations for me to shift to a centralized database approach was - that I could one day build a mobile app as well that could let users - jump from editing on their desktops to editing on their phones. It - requires a lot of time, so I would not expect it any time soon, but - it's definitely in the pipeline. -

-
+
+
+ + + +

+ Frequently Asked Questions +

- - ); -}; + +
+

+ This is aimed to be the world's simplest privacy policy. This + document should explain to you why the app collects some information, + what happens when your account is deleted and some other frequently + asked questions answered regarding your privacy. +

+ +

+ If you have any more questions, please raise an issue regarding the + same on GitHub and I'll answer as honest and quickly as possible + :) +

+
+ +
+ +
+

+ What identifiable information is stored about me? +

+

+ Your name and your email address is stored along with your user + information, if you signed in with Google, and of course, all the + information you input in your resume is also stored in the database. + You won't even get any marketing emails, feature updates, + newsletters, notification emails, nothing. +

+
+ +
+ +
+

+ Why are you using a database, why not keep everything local like in + the first version of Reactive Resume? +

+

+ Not having a centralized database cause a lot more problems than I + could solve, mainly having a large chunk of the users of the app + having an outdated schema as the app evolved. This was a problem I + could not solve without having at least some control. +

+ +

+ Also, a lot of users were having trouble printing their resumes on + their browsers, so with the help of Cloud Functions from Firebase, you + can now print your resumes remotely. None of the resumes are stored, + and they are sent to you immediately after generation, which can be + verified by looking through the source code. +

+
+ +
+ +
+

+ How is this all free? There must be a catch! +

+

+ Absolutely no catch to this freebie. This project is + just my way of giving back to the community that I've learned so + much from. If you'd like to show your appreciation however, you + can follow me on my social media and let me know how much it helped + you, or donate to help pay the cloud bills, or if you are a fellow + developer, you can head to GitHub and contribute to the code and + raising a PR. +

+
+ +
+ +
+

+ Is there a mobile app for Reactive Resume? +

+

+ Not yet. But soon, maybe? One of the main motivations + for me to shift to a centralized database approach was that I could + one day build a mobile app as well that could let users jump from + editing on their desktops to editing on their phones. It requires a + lot of time, so I would not expect it any time soon, but it's + definitely in the pipeline. +

+
+
+ +); export default FrequentlyAskedQuestions; diff --git a/src/pages/index.js b/src/pages/index.js index 4ec86713..41b344c8 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -127,16 +127,14 @@ const Home = () => { ); }; -const Feature = ({ icon: Icon, title, children }) => { - return ( -
-
- -
{title}
-
-

{children}

+const Feature = ({ icon: Icon, title, children }) => ( +
+
+ +
{title}
- ); -}; +

{children}

+
+); export default memo(Home); diff --git a/src/pages/r/view.js b/src/pages/r/view.js index 49cb601f..3feec42d 100644 --- a/src/pages/r/view.js +++ b/src/pages/r/view.js @@ -52,7 +52,6 @@ const ResumeViewer = ({ id }) => {
diff --git a/src/styles/global.css b/src/styles/global.css index 82e67597..e893ce3e 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -76,6 +76,7 @@ section { #page { width: 21cm; position: absolute; + text-align: start; top: 0; left: 0; right: 0; diff --git a/src/templates/Castform.js b/src/templates/Castform.js index 19e2d683..b5039fe6 100644 --- a/src/templates/Castform.js +++ b/src/templates/Castform.js @@ -55,6 +55,7 @@ const Castform = ({ data }) => { return (
{ return (
{ return (
{ return (
{ return (
{ return (
{ - return value ? ( +const ContactItem = ({ value, label, link }) => + value ? (
{label}
{link ? ( @@ -16,7 +16,6 @@ const ContactItem = ({ value, label, link }) => { )}
) : null; -}; const ContactC = () => { const { t } = useTranslation(); diff --git a/src/templates/blocks/Contact/ContactD.js b/src/templates/blocks/Contact/ContactD.js index d99cd014..29e5eeea 100644 --- a/src/templates/blocks/Contact/ContactD.js +++ b/src/templates/blocks/Contact/ContactD.js @@ -4,8 +4,8 @@ import { MdFlare } from 'react-icons/md'; import PageContext from '../../../contexts/PageContext'; import { safetyCheck } from '../../../utils'; -const ContactItem = ({ value, label, link }) => { - return value ? ( +const ContactItem = ({ value, label, link }) => + value ? (
{label}
{link ? ( @@ -17,7 +17,6 @@ const ContactItem = ({ value, label, link }) => { )}
) : null; -}; const ContactD = () => { const { t } = useTranslation(); diff --git a/src/templates/blocks/Heading/HeadingC.js b/src/templates/blocks/Heading/HeadingC.js index f9b85d9c..7b8a3db1 100644 --- a/src/templates/blocks/Heading/HeadingC.js +++ b/src/templates/blocks/Heading/HeadingC.js @@ -1,11 +1,7 @@ import React, { memo } from 'react'; -const HeadingC = ({ children }) => { - return ( -
- {children} -
- ); -}; +const HeadingC = ({ children }) => ( +
{children}
+); export default memo(HeadingC); diff --git a/src/templates/blocks/Heading/HeadingE.js b/src/templates/blocks/Heading/HeadingE.js index 605a3df3..78bd2405 100644 --- a/src/templates/blocks/Heading/HeadingE.js +++ b/src/templates/blocks/Heading/HeadingE.js @@ -1,11 +1,9 @@ import React, { memo } from 'react'; -const HeadingC = ({ children }) => { - return ( -
- {children} -
- ); -}; +const HeadingC = ({ children }) => ( +
+ {children} +
+); export default memo(HeadingC); diff --git a/src/utils/dayjs.js b/src/utils/dayjs.js index 75ac6865..4ba8af78 100644 --- a/src/utils/dayjs.js +++ b/src/utils/dayjs.js @@ -15,6 +15,7 @@ import 'dayjs/locale/nl'; import 'dayjs/locale/pl'; import 'dayjs/locale/pt'; import 'dayjs/locale/tr'; +import 'dayjs/locale/uk'; import relativeTime from 'dayjs/plugin/relativeTime'; dayjs.extend(relativeTime); diff --git a/src/utils/index.js b/src/utils/index.js index 256b9adb..93967baa 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -1,15 +1,13 @@ import dayjs from 'dayjs'; import { get, isEmpty } from 'lodash'; -export const getModalText = (isEditMode, type, t) => { - return isEditMode +export const getModalText = (isEditMode, type, t) => + isEditMode ? `${t('shared.buttons.edit')} ${type}` : `${t('shared.buttons.add')} ${type}`; -}; -export const safetyCheck = (section, path = 'items') => { - return !!(section && section.visible === true && !isEmpty(section[path])); -}; +export const safetyCheck = (section, path = 'items') => + !!(section && section.visible === true && !isEmpty(section[path])); export const handleKeyUp = (event, action) => { (event.which === 13 || event.which === 32) && action(); From 5cd95b54f5f8c519ccfcdedb920d4e0b51f30b9f Mon Sep 17 00:00:00 2001 From: Amruth Pillai Date: Wed, 9 Dec 2020 10:42:01 +0530 Subject: [PATCH 6/6] Create .env --- .env | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 00000000..e877ea26 --- /dev/null +++ b/.env @@ -0,0 +1,8 @@ +FIREBASE_APIKEY="" +FIREBASE_APPID="" +FIREBASE_AUTHDOMAIN="" +FIREBASE_DATABASEURL="" +FIREBASE_MEASUREMENTID="" +FIREBASE_MESSAGINGSENDERID="" +FIREBASE_PROJECTID="" +FIREBASE_STORAGEBUCKET=""