From 630d7a32208b9167c5b4b3c913cea9fef01e87ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Fri, 14 Jan 2022 16:46:55 +0000 Subject: [PATCH 001/154] :globe_with_meridians: Add translations for: Turkish. Currently translated at 99.7% (866 of 868 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/tr/ --- frontend/translations/tr.po | 117 +++++++++++++++++++++++++++++++++--- 1 file changed, 107 insertions(+), 10 deletions(-) diff --git a/frontend/translations/tr.po b/frontend/translations/tr.po index 523f8cbd30..c0e28846bd 100644 --- a/frontend/translations/tr.po +++ b/frontend/translations/tr.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2021-11-25 13:50+0000\n" +"PO-Revision-Date: 2022-01-15 16:53+0000\n" "Last-Translator: Oğuz Ersen \n" -"Language-Team: Turkish " -"\n" +"Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.10-dev\n" +"X-Generator: Weblate 4.10.1\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -267,10 +267,10 @@ msgid "dashboard.export-frames" msgstr "Çalışma yüzeylerini PDF olarak dışarı aktar..." msgid "dashboard.export-multi" -msgstr "%s dosyayı dışarı aktar" +msgstr "Penpot %s dosyalarını dışa aktar" msgid "dashboard.export-single" -msgstr "Dosyayı dışarı aktar" +msgstr "Penpot dosyasını dışa aktar" msgid "dashboard.export.detail" msgstr "* Bileşenleri, grafikleri, renkleri ve/veya tipografileri içerebilir." @@ -333,7 +333,7 @@ msgstr "" "isteyebilirsiniz." msgid "dashboard.import" -msgstr "Dosyaları içeri aktar" +msgstr "Penpot dosyalarını içe aktar" msgid "dashboard.import.analyze-error" msgstr "Oops! Bu dosyayı içeri aktaramadık" @@ -1858,7 +1858,7 @@ msgstr "Yatay olarak ortaya hizala (%s)" #: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" -msgstr "Yatayda dağıt" +msgstr "Yatayda dağıt (%s)" #: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" @@ -1878,7 +1878,7 @@ msgstr "Dikey olarak ortaya hizala (%s)" #: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" -msgstr "Dikeyde dağıt" +msgstr "Dikeyde dağıt (%s)" #: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" @@ -3298,4 +3298,101 @@ msgid "workspace.updates.update" msgstr "Güncelle" msgid "workspace.viewport.click-to-close-path" -msgstr "Yolu kapatmak için tıklayın" \ No newline at end of file +msgstr "Yolu kapatmak için tıklayın" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-dissolve" +msgstr "Çöz" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-offset-effect" +msgstr "Uzaklık efekti" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-in" +msgstr "Giriş" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.fonts-added" +msgid_plural "dashboard.fonts.fonts-added" +msgstr[0] "1 yazı tipi eklendi" +msgstr[1] "%s yazı tipi eklendi" + +msgid "dashboard.import.import-warning" +msgstr "Bazı dosyalar kaldırılmış geçersiz nesneler içeriyordu." + +msgid "errors.team-leave.insufficient-members" +msgstr "Takımdan ayrılmak için yeterli üye yok, onu silmek isteyebilirsiniz." + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.dismiss-all" +msgstr "Hepsini kapat" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.upload-all" +msgstr "Tümünü karşıya yükle" + +msgid "errors.auth.unable-to-login" +msgstr "Kimliğiniz doğrulanmamış veya oturumun süresi dolmuş gibi görünüyor." + +msgid "errors.team-leave.member-does-not-exists" +msgstr "Atamaya çalıştığınız üye mevcut değil." + +msgid "errors.team-leave.owner-cant-leave" +msgstr "Sahip takımdan ayrılamaz, sahip rolünü yeniden atamanız gerekir." + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation" +msgstr "Canlandırma" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-push" +msgstr "İt" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-slide" +msgstr "Kaydır" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing" +msgstr "Yumuşatma" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-none" +msgstr "Hiçbiri" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-linear" +msgstr "Doğrusal" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-duration" +msgstr "Süre" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.create-artboard-from-selection" +msgstr "Çalışma yüzeyi için seçim" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-ease" +msgstr "Yumuşat" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-ease-in-out" +msgstr "Yumuşak giriş çıkış" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.detach-instances-in-bulk" +msgstr "Örnekleri ayır" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-ease-in" +msgstr "Yumuşak giriş" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-ease-out" +msgstr "Yumuşak çıkış" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-out" +msgstr "Çıkış" From b99fa16b969e8664199f40569d5be3c33dd48aee Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Fri, 14 Jan 2022 14:50:08 +0000 Subject: [PATCH 002/154] :globe_with_meridians: Add translations for: Hebrew. Currently translated at 100.0% (868 of 868 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/he/ --- frontend/translations/he.po | 119 +++++++++++++++++++++++++++++++++--- 1 file changed, 109 insertions(+), 10 deletions(-) diff --git a/frontend/translations/he.po b/frontend/translations/he.po index 01956021b7..70366c418b 100644 --- a/frontend/translations/he.po +++ b/frontend/translations/he.po @@ -1,16 +1,16 @@ msgid "" msgstr "" -"PO-Revision-Date: 2021-11-25 13:50+0000\n" +"PO-Revision-Date: 2022-01-15 16:53+0000\n" "Last-Translator: Yaron Shahrabani \n" -"Language-Team: Hebrew " -"\n" +"Language-Team: Hebrew \n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " "n % 10 == 0) ? 2 : 3));\n" -"X-Generator: Weblate 4.10-dev\n" +"X-Generator: Weblate 4.10.1\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -259,10 +259,10 @@ msgid "dashboard.export-frames" msgstr "ייצוא לוחות אומנות ל־PDF…" msgid "dashboard.export-multi" -msgstr "ייצוא קובצי %s" +msgstr "ייצוא קובצי %s של Penpot" msgid "dashboard.export-single" -msgstr "ייצוא קובץ" +msgstr "ייצוא קובץ Penpot" msgid "dashboard.export.detail" msgstr "* עשוי לכלול רכיבים, גרפיקה, צבעים ו/או טיפוגרפיות." @@ -316,7 +316,7 @@ msgstr "" "גופנים](https://www.typography.com/faq)." msgid "dashboard.import" -msgstr "ייבוא קבצים" +msgstr "ייבוא קובצי Penpot" msgid "dashboard.import.analyze-error" msgstr "אופס! לא הצלחנו לייבא את הקובץ הזה" @@ -1766,7 +1766,7 @@ msgid "viewer.frame-not-found" msgstr "לוח האומנות לא נמצא." msgid "viewer.header.comments-section" -msgstr "הערות" +msgstr "הערות (%s)" #: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" @@ -1784,7 +1784,7 @@ msgid "viewer.header.interactions" msgstr "אינטראקציות" msgid "viewer.header.interactions-section" -msgstr "אינטראקציות" +msgstr "אינטראקציות (%s)" #: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" @@ -3264,4 +3264,103 @@ msgid "workspace.updates.update" msgstr "עדכון" msgid "workspace.viewport.click-to-close-path" -msgstr "לחיצה תסגור את הנתיב" \ No newline at end of file +msgstr "לחיצה תסגור את הנתיב" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.upload-all" +msgstr "להעלות הכול" + +msgid "errors.team-leave.member-does-not-exists" +msgstr "החבר שניסית להקצות לא קיים." + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-slide" +msgstr "גלישה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-duration" +msgstr "משך" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-dissolve" +msgstr "התמוססות" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing" +msgstr "החלקה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-linear" +msgstr "קווי" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-offset-effect" +msgstr "אפקט הזחה" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.dismiss-all" +msgstr "להתעלם מהכול" + +msgid "errors.team-leave.owner-cant-leave" +msgstr "הבעלים לא יכולים לעזוב את הקבוצה, עליך להעביר את תפקיד הבעלות." + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-push" +msgstr "דחיפה" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.fonts-added" +msgid_plural "dashboard.fonts.fonts-added" +msgstr[0] "נוסף גופן" +msgstr[1] "נוספו 2 גופנים" +msgstr[2] "נוספו %s גופנים" +msgstr[3] "נוספו %s גופנים" + +msgid "errors.auth.unable-to-login" +msgstr "נראה שלא עברת אימות או שתוקף ההפעלה פג." + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation" +msgstr "הנפשה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-none" +msgstr "ללא" + +msgid "dashboard.import.import-warning" +msgstr "חלק מהקבצים הכילו פריטים שגויים שהוסרו." + +msgid "errors.team-leave.insufficient-members" +msgstr "אין מספיק חברים כדי לעזוב את הצוות, כנראה יהיה עליך למחוק אותו." + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-in" +msgstr "פנימה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-out" +msgstr "החוצה" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.create-artboard-from-selection" +msgstr "בחירה ללוח אומנות" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.detach-instances-in-bulk" +msgstr "הפרדת מופעים" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-ease-out" +msgstr "החלקה החוצה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-ease-in-out" +msgstr "החלקה פנימה החוצה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-ease" +msgstr "קלה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-ease-in" +msgstr "החלקה פנימה" From 6a6f079a8406a24bd401601b3653eb676b677bcb Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Wed, 19 Jan 2022 17:10:53 +0100 Subject: [PATCH 003/154] :construction_worker: Create firsts e2e tests --- .gitignore | 2 + CHANGES.md | 1 + frontend/cypress.json | 5 +- .../cypress/fixtures/validuser-sample.json | 4 + .../01-auth/create-account.spec.js | 41 + .../integration/01-auth/demo-account.specs.js | 22 + .../cypress/integration/01-auth/login.spec.js | 20 + .../integration/01-auth/recover.spec.js | 46 + .../integration/02-onboarding/slides.spec.js | 80 + .../integration/03-projects/projects.spec.js | 25 + frontend/cypress/support/commands.js | 13 + frontend/package-lock.json | 20575 ++++++++++++++++ frontend/package.json | 2 +- frontend/yarn.lock | 1851 +- 14 files changed, 21759 insertions(+), 928 deletions(-) create mode 100644 frontend/cypress/fixtures/validuser-sample.json create mode 100644 frontend/cypress/integration/01-auth/create-account.spec.js create mode 100644 frontend/cypress/integration/01-auth/demo-account.specs.js create mode 100644 frontend/cypress/integration/01-auth/recover.spec.js create mode 100644 frontend/cypress/integration/02-onboarding/slides.spec.js create mode 100644 frontend/cypress/integration/03-projects/projects.spec.js create mode 100644 frontend/package-lock.json diff --git a/.gitignore b/.gitignore index 7b5ea6e613..08fab849b5 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,5 @@ clj-profiler/ .clj-kondo .lsp /frontend/cypress/videos/*/ +/frontend/cypress/fixtures/validuser.json + diff --git a/CHANGES.md b/CHANGES.md index a5e769979d..0bf134bc1f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,7 @@ ### :sparkles: New features +- Create firsts e2e test [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608). - Add an option to hide artboards names on the viewport [Taiga #2034](https://tree.taiga.io/project/penpot/issue/2034). - Limit pasted object position to container boundaries [Taiga #2449](https://tree.taiga.io/project/penpot/us/2449). - Add new options for zoom widget in workspace and viewer mode [Taiga #896](https://tree.taiga.io/project/penpot/us/896). diff --git a/frontend/cypress.json b/frontend/cypress.json index 0967ef424b..53555d954b 100644 --- a/frontend/cypress.json +++ b/frontend/cypress.json @@ -1 +1,4 @@ -{} +{ + "watchForFileChanges": false, + "video": false +} diff --git a/frontend/cypress/fixtures/validuser-sample.json b/frontend/cypress/fixtures/validuser-sample.json new file mode 100644 index 0000000000..6bf5894a92 --- /dev/null +++ b/frontend/cypress/fixtures/validuser-sample.json @@ -0,0 +1,4 @@ +{ + "email": "validuser@penpot.app", + "password": "password" +} \ No newline at end of file diff --git a/frontend/cypress/integration/01-auth/create-account.spec.js b/frontend/cypress/integration/01-auth/create-account.spec.js new file mode 100644 index 0000000000..03323e72a4 --- /dev/null +++ b/frontend/cypress/integration/01-auth/create-account.spec.js @@ -0,0 +1,41 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright (c) UXBOX Labs SL + */ + +"use strict"; + +describe("account creation", () => { + let validUser + + beforeEach(() => { + cy.fixture('validuser.json').then((user) => { + validUser = user; + }); + cy.visit("http://localhost:3449/#/auth/login"); + cy.get("a").contains("Create an account").click() + }); + + it("displays the account creation form", () => { + cy.get("input[type=submit]").contains("Create an account").should("exist"); + }); + + it("create an account of an existent email fails", () => { + cy.get("#email").type(validUser.email); + cy.get("#password").type("anewpassword"); + cy.get("input[type=submit]").contains("Create an account").click(); + cy.get(".error").should("contain", "Email already used") + }); + + + it("can go back", () => { + cy.get("a").contains("Login here").click() + cy.contains("Great to see you again!").should("exist"); + cy.get("#email").should("exist"); + cy.get("#password").should("exist"); + }); +}); + diff --git a/frontend/cypress/integration/01-auth/demo-account.specs.js b/frontend/cypress/integration/01-auth/demo-account.specs.js new file mode 100644 index 0000000000..89c177a20c --- /dev/null +++ b/frontend/cypress/integration/01-auth/demo-account.specs.js @@ -0,0 +1,22 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright (c) UXBOX Labs SL + */ + +"use strict"; + +describe("demo account", () => { + beforeEach(() => { + cy.visit("http://localhost:3449/#/auth/login"); + }); + + it.only("create demo account", () => { + cy.get("a").contains("Create demo account").click() + cy.get(".profile").contains("Demo User") + }); + +}); + diff --git a/frontend/cypress/integration/01-auth/login.spec.js b/frontend/cypress/integration/01-auth/login.spec.js index f3b84e2aff..91558b2156 100644 --- a/frontend/cypress/integration/01-auth/login.spec.js +++ b/frontend/cypress/integration/01-auth/login.spec.js @@ -14,8 +14,28 @@ describe("login", () => { }); it("displays the login form", () => { + cy.contains("Great to see you again!").should("exist"); cy.get("#email").should("exist"); cy.get("#password").should("exist"); }); + + it("can't login with an invalid user", () => { + cy.get("#email").type("bad@mail.com"); + cy.get("#password").type("badpassword"); + cy.get("input[type=submit]").first().click(); + cy.get(".warning") + .should("exist") + .should("contain", "Username or password seems to be wrong."); + }); + + it("can login with a valid user", () => { + cy.fixture('validuser.json').then((user) => { + cy.get("#email").type(user.email); + cy.get("#password").type(user.password); + }); + + cy.get("input[type=submit]").first().click(); + cy.get(".dashboard-layout").should("exist"); + }); }); diff --git a/frontend/cypress/integration/01-auth/recover.spec.js b/frontend/cypress/integration/01-auth/recover.spec.js new file mode 100644 index 0000000000..db34a858c4 --- /dev/null +++ b/frontend/cypress/integration/01-auth/recover.spec.js @@ -0,0 +1,46 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright (c) UXBOX Labs SL + */ + +"use strict"; + +describe("recover password", () => { + beforeEach(() => { + cy.visit("http://localhost:3449/#/auth/login"); + cy.get("a").contains("Forgot password?").click() + }); + + it("displays the recover form", () => { + cy.get("input[type=submit]").contains("Recover Password").should("exist"); + }); + + it("recover password with wrong mail works", () => { + cy.get("#email").type("bad@mail.com"); + cy.get("input[type=submit]").contains("Recover Password").click(); + cy.get(".info") + .should("exist") + .should("contain", "Password recovery link sent to your inbox."); + }); + + it("recover password with good mail works", () => { + cy.fixture('validuser.json').then((user) => { + cy.get("#email").type(user.email); + }); + cy.get("input[type=submit]").contains("Recover Password").click(); + cy.get(".info") + .should("exist") + .should("contain", "Password recovery link sent to your inbox."); + }); + + it("can go back", () => { + cy.get("a").contains("Go back").click() + cy.contains("Great to see you again!").should("exist"); + cy.get("#email").should("exist"); + cy.get("#password").should("exist"); + }); +}); + diff --git a/frontend/cypress/integration/02-onboarding/slides.spec.js b/frontend/cypress/integration/02-onboarding/slides.spec.js new file mode 100644 index 0000000000..6068e3e5e0 --- /dev/null +++ b/frontend/cypress/integration/02-onboarding/slides.spec.js @@ -0,0 +1,80 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright (c) UXBOX Labs SL + */ + + "use strict"; + + describe("onboarding slides", () => { + beforeEach(() => { + cy.demoLogin(); + + }); + + it("go trough all the onboarding slides", () => { + cy.get(".modal-right").should("contain", "Welcome to Penpot"); + cy.get(".modal-right button").should("contain", "Continue"); + cy.get(".modal-right button").click(); + + cy.get(".onboarding").should("contain", "Open Source Contributor?") + cy.get(".onboarding .skip").should("not.exist"); + cy.get(".onboarding button").should("contain", "Continue"); + cy.get(".onboarding button").click(); + + cy.get(".onboarding").should("contain", "Design libraries, styles and components") + cy.get(".onboarding .skip").should("exist"); + cy.get(".onboarding .step-dots").should("exist"); + cy.get(".onboarding button").should("contain", "Continue"); + cy.get(".onboarding button").click(); + + cy.get(".onboarding").should("contain", "Bring your designs to life with interactions") + cy.get(".onboarding .skip").should("exist"); + cy.get(".onboarding .step-dots").should("exist"); + cy.get(".onboarding button").should("contain", "Continue"); + cy.get(".onboarding button").click(); + + + cy.get(".onboarding").should("contain", "Get feedback, present and share your work") + cy.get(".onboarding .skip").should("exist"); + cy.get(".onboarding .step-dots").should("exist"); + cy.get(".onboarding button").should("contain", "Continue"); + cy.get(".onboarding button").click(); + + cy.get(".onboarding").should("contain", "One shared source of truth") + cy.get(".onboarding .skip").should("not.exist"); + cy.get(".onboarding .step-dots").should("exist"); + cy.get(".onboarding button").should("contain", "Start"); + cy.get(".onboarding button").click(); + + cy.get(".onboarding").should("contain", "Welcome to Penpot") + }); + + it("go to specific onboarding slides", () => { + cy.get(".modal-right button").click(); + cy.get(".onboarding button").click(); + + cy.get(".step-dots li:nth-child(4)").click(); + cy.get(".onboarding").should("contain", "One shared source of truth") + cy.get(".step-dots li:nth-child(3)").click(); + cy.get(".onboarding").should("contain", "Get feedback, present and share your work") + cy.get(".step-dots li:nth-child(2)").click(); + cy.get(".onboarding").should("contain", "Bring your designs to life with interactions") + cy.get(".step-dots li:nth-child(1)").click(); + cy.get(".onboarding").should("contain", "Design libraries, styles and components") + + }); + + it("skip onboarding slides", () => { + cy.get(".modal-right button").click(); + cy.get(".onboarding button").click(); + cy.get(".onboarding .skip").click(); + + cy.get(".onboarding").should("contain", "Welcome to Penpot") + }); + + }); + + \ No newline at end of file diff --git a/frontend/cypress/integration/03-projects/projects.spec.js b/frontend/cypress/integration/03-projects/projects.spec.js new file mode 100644 index 0000000000..b4e58f8236 --- /dev/null +++ b/frontend/cypress/integration/03-projects/projects.spec.js @@ -0,0 +1,25 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright (c) UXBOX Labs SL + */ + + "use strict"; + + describe("projects", () => { + beforeEach(() => { + cy.fixture('validuser.json').then((user) => { + cy.login(user.email, user.password) + }); + + }); + + it("displays the projects page", () => { + cy.get(".dashboard-title").should("contain", "Projects"); + }); + + }); + + \ No newline at end of file diff --git a/frontend/cypress/support/commands.js b/frontend/cypress/support/commands.js index 119ab03f7c..5a48d945c6 100644 --- a/frontend/cypress/support/commands.js +++ b/frontend/cypress/support/commands.js @@ -23,3 +23,16 @@ // // -- This will overwrite an existing command -- // Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) + + +Cypress.Commands.add('login', (email, password) => { + cy.visit("http://localhost:3449/#/auth/login"); + cy.get("#email").type(email); + cy.get("#password").type(password); + cy.get("input[type=submit]").first().click(); + }) + + Cypress.Commands.add('demoLogin', () => { + cy.visit("http://localhost:3449/#/auth/login"); + cy.get("a").contains("Create demo account").click() + }) \ No newline at end of file diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000000..e48a53af41 --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,20575 @@ +{ + "name": "app", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "app", + "version": "0.1.0", + "license": "SEE LICENSE IN ", + "dependencies": { + "@sentry/browser": "^6.16.1", + "@sentry/tracing": "^6.16.1", + "date-fns": "^2.28.0", + "draft-js": "^0.11.7", + "highlight.js": "^11.3.1", + "js-beautify": "^1.14.0", + "jszip": "^3.6.0", + "luxon": "^2.2.0", + "mousetrap": "^1.6.5", + "opentype.js": "^1.3.4", + "randomcolor": "^0.6.2", + "react": "~17.0.2", + "react-dom": "~17.0.2", + "react-virtualized": "^9.22.3", + "rxjs": "~7.4.0", + "sax": "^1.2.4", + "source-map-support": "^0.5.21", + "tdigest": "^0.1.1", + "ua-parser-js": "^1.0.2", + "xregexp": "^5.0.1" + }, + "devDependencies": { + "autoprefixer": "^10.4.1", + "cypress": "^9.2.1", + "gettext-parser": "^4.2.0", + "gulp": "4.0.2", + "gulp-concat": "^2.6.1", + "gulp-gzip": "^1.4.2", + "gulp-mustache": "^5.0.0", + "gulp-postcss": "^9.0.0", + "gulp-rename": "^2.0.0", + "gulp-sass": "^5.0.0", + "gulp-sourcemaps": "^3.0.0", + "gulp-svg-sprite": "^1.5.0", + "map-stream": "0.0.7", + "marked": "^4.0.8", + "mkdirp": "^1.0.4", + "nodemon": "^2.0.15", + "npm-run-all": "^4.1.5", + "postcss": "^8.4.5", + "postcss-clean": "^1.2.2", + "prettier": "^2.5.1", + "rimraf": "^3.0.0", + "sass": "^1.45.1", + "shadow-cljs": "2.16.12" + } + }, + "node_modules/@babel/runtime": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", + "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", + "integrity": "sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==", + "license": "MIT", + "dependencies": { + "core-js-pure": "^3.16.0", + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@cypress/request": { + "version": "2.88.10", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", + "integrity": "sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", + "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@gulp-sourcemaps/identity-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", + "integrity": "sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^6.4.1", + "normalize-path": "^3.0.0", + "postcss": "^7.0.16", + "source-map": "^0.6.0", + "through2": "^3.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@gulp-sourcemaps/identity-map/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/@gulp-sourcemaps/identity-map/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@gulp-sourcemaps/identity-map/node_modules/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@gulp-sourcemaps/identity-map/node_modules/through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, + "node_modules/@gulp-sourcemaps/map-sources": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", + "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", + "dev": true, + "license": "MIT", + "dependencies": { + "normalize-path": "^2.0.1", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@gulp-sourcemaps/map-sources/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@sentry/browser": { + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.16.1.tgz", + "integrity": "sha512-F2I5RL7RTLQF9CccMrqt73GRdK3FdqaChED3RulGQX5lH6U3exHGFxwyZxSrY4x6FedfBFYlfXWWCJXpLnFkow==", + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/core": "6.16.1", + "@sentry/types": "6.16.1", + "@sentry/utils": "6.16.1", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/core": { + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.16.1.tgz", + "integrity": "sha512-UFI0264CPUc5cR1zJH+S2UPOANpm6dLJOnsvnIGTjsrwzR0h8Hdl6rC2R/GPq+WNbnipo9hkiIwDlqbqvIU5vw==", + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/hub": "6.16.1", + "@sentry/minimal": "6.16.1", + "@sentry/types": "6.16.1", + "@sentry/utils": "6.16.1", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/hub": { + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.16.1.tgz", + "integrity": "sha512-4PGtg6AfpqMkreTpL7ymDeQ/U1uXv03bKUuFdtsSTn/FRf9TLS4JB0KuTZCxfp1IRgAA+iFg6B784dDkT8R9eg==", + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/types": "6.16.1", + "@sentry/utils": "6.16.1", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/minimal": { + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.16.1.tgz", + "integrity": "sha512-dq+mI1EQIvUM+zJtGCVgH3/B3Sbx4hKlGf2Usovm9KoqWYA+QpfVBholYDe/H2RXgO7LFEefDLvOdHDkqeJoyA==", + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/hub": "6.16.1", + "@sentry/types": "6.16.1", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/tracing": { + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.16.1.tgz", + "integrity": "sha512-MPSbqXX59P+OEeST+U2V/8Hu/8QjpTUxTNeNyTHWIbbchdcMMjDbXTS3etCgajZR6Ro+DHElOz5cdSxH6IBGlA==", + "license": "MIT", + "dependencies": { + "@sentry/hub": "6.16.1", + "@sentry/minimal": "6.16.1", + "@sentry/types": "6.16.1", + "@sentry/utils": "6.16.1", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/types": { + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.16.1.tgz", + "integrity": "sha512-Wh354g30UsJ5kYJbercektGX4ZMc9MHU++1NjeN2bTMnbofEcpUDWIiKeulZEY65IC1iU+1zRQQgtYO+/hgCUQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils": { + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.16.1.tgz", + "integrity": "sha512-7ngq/i4R8JZitJo9Sl8PDnjSbDehOxgr1vsoMmerIsyRZ651C/8B+jVkMhaAPgSdyJ0AlE3O7DKKTP1FXFw9qw==", + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/types": "6.16.1", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "14.17.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.34.tgz", + "integrity": "sha512-USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz", + "integrity": "sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yauzl": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", + "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yauzl/node_modules/@types/node": { + "version": "16.11.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz", + "integrity": "sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "license": "ISC" + }, + "node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-wrap": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansi-styles/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "license": "ISC", + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-equal": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "dev": true, + "license": "MIT", + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", + "dev": true, + "license": "MIT", + "dependencies": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-sort/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "license": "MIT" + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true, + "license": "ISC" + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "dev": true, + "license": "MIT", + "dependencies": { + "async-done": "^1.2.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true, + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.1.tgz", + "integrity": "sha512-B3ZEG7wtzXDRCEFsan7HmR2AeNsxdJB0+sEC0Hc5/c2NbhJqPwuZm+tn233GBVw82L+6CtD6IPSfVruwKjfV3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.19.1", + "caniuse-lite": "^1.0.30001294", + "fraction.js": "^4.1.2", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true, + "license": "MIT" + }, + "node_modules/bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/bintrees": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", + "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=" + }, + "node_modules/blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true, + "license": "ISC" + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true, + "license": "MIT" + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true, + "license": "ISC" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-rsa/node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true, + "license": "MIT" + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "license": "ISC", + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true, + "license": "MIT" + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "dev": true, + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true, + "license": "MIT" + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true, + "license": "MIT" + }, + "node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001294", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001294.tgz", + "integrity": "sha512-LiMlrs1nSKZ8qkNhpUf5KD0Al1KCBE3zaT7OLOwEkagXMEDij98SiOovn9wxVGQpklk9vVC/pUSqgYmkmKOS8g==", + "dev": true, + "license": "CC-BY-4.0", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/chokidar/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chokidar/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/chokidar/node_modules/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ci-info": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", + "dev": true, + "license": "MIT" + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz", + "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "colors": "1.4.0" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true, + "license": "MIT" + }, + "node_modules/cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "node_modules/clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "license": "MIT", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", + "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "node_modules/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-convert/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true, + "license": "MIT" + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", + "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true, + "license": "MIT" + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/colorspace": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", + "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color": "3.0.x", + "text-hex": "1.0.x" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dev": true, + "license": "ISC", + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true, + "license": "MIT" + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-source-map/node_modules/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-props": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", + "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "each-props": "^1.3.2", + "is-plain-object": "^5.0.0" + } + }, + "node_modules/copy-props/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-js": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.13.0.tgz", + "integrity": "sha512-iWDbiyha1M5vFwPFmQnvRv+tJzGbFAm6XimJUT0NgHYW3xZEs1SkCAcasWSVFxpI2Xb/V1DDJckq3v90+bQnog==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.17.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz", + "integrity": "sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "license": "MIT", + "dependencies": { + "node-fetch": "2.6.1" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true, + "license": "MIT" + }, + "node_modules/css-selector-parser": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz", + "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css/node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/cssmin": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/cssmin/-/cssmin-0.4.3.tgz", + "integrity": "sha1-yRlAd+Dr2s1pHV9ZAVudgZ840BU=", + "dev": true, + "bin": { + "cssmin": "bin/cssmin" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", + "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==", + "license": "MIT" + }, + "node_modules/cypress": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.2.1.tgz", + "integrity": "sha512-LVEe4yWCo4xO0Vd8iYjFHRyd5ulRvM56XqMgAdn05Qb9kJ6iJdO/MmjKD8gNd768698cp1FDuSmFQZHVZGk+Og==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@cypress/request": "^2.88.10", + "@cypress/xvfb": "^1.2.4", + "@types/node": "^14.14.31", + "@types/sinonjs__fake-timers": "^6.0.2", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "3.7.2", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^5.1.0", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.2", + "enquirer": "^2.3.6", + "eventemitter2": "^6.4.3", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.0", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.5", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "url": "^0.11.0", + "yauzl": "^2.10.0" + }, + "bin": { + "cypress": "bin/cypress" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/cypress/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cypress/node_modules/chalk/node_modules/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cypress/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/cypress/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cypress/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/cypress/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/date-fns": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", + "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", + "license": "MIT", + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/dayjs": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", + "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/debug-fabulous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", + "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "3.X", + "memoizee": "0.4.X", + "object-assign": "4.X" + } + }, + "node_modules/debug-fabulous/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/debug-fabulous/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-compare/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/draft-js": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/draft-js/-/draft-js-0.11.7.tgz", + "integrity": "sha512-ne7yFfN4sEL82QPQEn80xnADR8/Q6ALVworbC5UOSzOvjffmYfFsr3xSZtxbIirti14R7Y33EZC5rivpLgIbsg==", + "license": "MIT", + "dependencies": { + "fbjs": "^2.0.0", + "immutable": "~3.7.4", + "object-assign": "^4.1.1" + }, + "peerDependencies": { + "react": ">=0.14.0", + "react-dom": ">=0.14.0" + } + }, + "node_modules/draft-js/node_modules/immutable": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", + "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", + "license": "MIT", + "dependencies": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + }, + "bin": { + "editorconfig": "bin/editorconfig" + } + }, + "node_modules/editorconfig/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.30", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.30.tgz", + "integrity": "sha512-609z9sIMxDHg+TcR/VB3MXwH+uwtrYyeAwWc/orhnr90ixs6WVGSrt85CDLGUdNnLqCA7liv426V20EecjvflQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/enquirer/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", + "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract/node_modules/object-inspect": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "node_modules/es5-ext/node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true, + "license": "MIT" + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/eventemitter2": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.5.tgz", + "integrity": "sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/execa/node_modules/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/execa/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/execa/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/execa/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/execa/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "license": "ISC", + "dependencies": { + "type": "^2.0.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==", + "dev": true, + "license": "ISC" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" + }, + "node_modules/fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", + "dev": true, + "license": "MIT" + }, + "node_modules/fbjs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-2.0.0.tgz", + "integrity": "sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ==", + "license": "MIT", + "dependencies": { + "core-js": "^3.6.4", + "cross-fetch": "^3.0.4", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + }, + "node_modules/fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", + "license": "MIT" + }, + "node_modules/fbjs/node_modules/ua-parser-js": { + "version": "0.7.28", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", + "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fecha": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", + "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/findup-sync/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fraction.js": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz", + "integrity": "sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "license": "MIT", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-extra/node_modules/graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "dev": true, + "license": "ISC" + }, + "node_modules/fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "license": "ISC" + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true, + "license": "ISC" + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^3.2.0" + } + }, + "node_modules/getos/node_modules/async": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.2.tgz", + "integrity": "sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==", + "dev": true, + "license": "MIT" + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/gettext-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-4.2.0.tgz", + "integrity": "sha512-aMgPyjC9W5Mz9tbFU8DcQ7GYMXoFWq633kaWGt4imlcpBWzDIWk7HY7nCSZTCJxyjRaLq9L/NEjMKkZ9gR630Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "content-type": "^1.0.4", + "encoding": "^0.1.13", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.1" + } + }, + "node_modules/gettext-parser/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/glob-watcher/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/glob-watcher/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sparkles": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/got/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.x" + } + }, + "node_modules/gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/yargs": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", + "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.1" + } + }, + "node_modules/gulp-cli/node_modules/yargs-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + }, + "node_modules/gulp-concat": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", + "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", + "dev": true, + "license": "MIT", + "dependencies": { + "concat-with-sourcemaps": "^1.0.0", + "through2": "^2.0.0", + "vinyl": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-gzip": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/gulp-gzip/-/gulp-gzip-1.4.2.tgz", + "integrity": "sha512-ZIxfkUwk2XmZPTT9pPHrHUQlZMyp9nPhg2sfoeN27mBGpi7OaHnOD+WCN41NXjfJQ69lV1nQ9LLm1hYxx4h3UQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^1.0.1", + "bytes": "^3.0.0", + "fancy-log": "^1.3.2", + "plugin-error": "^1.0.0", + "stream-to-array": "^2.3.0", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/gulp-mustache": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp-mustache/-/gulp-mustache-5.0.0.tgz", + "integrity": "sha512-8tk0R1Fd+l6+e/t954e3UheFo25dKkTapPLD1sWoSroPXfIPxyHVgbhfH5VJGqeXl3te5GOwPtfcxxZJ+PYoFg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0", + "mustache": "^4.0.1", + "plugin-error": "^1.0.0", + "replace-ext": "^1.0.0", + "through2": "^3.0.1" + }, + "engines": { + "npm": ">=1.2.10" + } + }, + "node_modules/gulp-mustache/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/gulp-mustache/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gulp-mustache/node_modules/through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, + "node_modules/gulp-postcss": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/gulp-postcss/-/gulp-postcss-9.0.1.tgz", + "integrity": "sha512-9QUHam5JyXwGUxaaMvoFQVT44tohpEFpM8xBdPfdwTYGM0AItS1iTQz0MpsF8Jroh7GF5Jt2GVPaYgvy8qD2Fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fancy-log": "^1.3.3", + "plugin-error": "^1.0.1", + "postcss-load-config": "^3.0.0", + "vinyl-sourcemaps-apply": "^0.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/gulp-rename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz", + "integrity": "sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/gulp-sass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.0.0.tgz", + "integrity": "sha512-J0aH0/2N4+2szGCeut0ktGHK0Wg8L9uWivuigrl7xv+nhxozBQRAKLrhnDDaTa3FeUWYtgT8w4RlgdhRy5v16w==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.1", + "lodash": "^4.17.20", + "plugin-error": "^1.0.1", + "replace-ext": "^2.0.0", + "strip-ansi": "^6.0.0", + "transfob": "^1.0.0", + "vinyl-sourcemaps-apply": "^0.2.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/gulp-sass/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/gulp-sass/node_modules/chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/gulp-sass/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/gulp-sass/node_modules/replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/gulp-sass/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gulp-sass/node_modules/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gulp-sourcemaps": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz", + "integrity": "sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@gulp-sourcemaps/identity-map": "^2.0.1", + "@gulp-sourcemaps/map-sources": "^1.0.0", + "acorn": "^6.4.1", + "convert-source-map": "^1.0.0", + "css": "^3.0.0", + "debug-fabulous": "^1.0.0", + "detect-newline": "^2.0.0", + "graceful-fs": "^4.0.0", + "source-map": "^0.6.0", + "strip-bom-string": "^1.0.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gulp-svg-sprite": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/gulp-svg-sprite/-/gulp-svg-sprite-1.5.0.tgz", + "integrity": "sha512-xLepqh1DjCSNm+secZsxmoWKNTXAXCC6Tglop0e2oOoiIqwBWOvep5Y+qvqRP9L3dn8qBxKkqGot8aTheNGYoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "plugin-error": "^1.0.1", + "svg-sprite": "^1.5.0", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 6.4" + } + }, + "node_modules/gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, + "license": "MIT", + "dependencies": { + "glogg": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasha": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", + "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-stream": "^1.0.1", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/highlight.js": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.3.1.tgz", + "integrity": "sha512-PUhCRnPjLtiLHZAQ5A/Dt5F8cWZeMyj9KRsACsWT+OD6OP0x6dp5OmT5jdx0JgEyPxPZZIPQpRN2TciUT7occw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true, + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true, + "license": "ISC" + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "license": "MIT" + }, + "node_modules/immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/import-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", + "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-from": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true, + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", + "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", + "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true, + "license": "MIT" + }, + "node_modules/is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true, + "license": "MIT" + }, + "node_modules/js-beautify": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.0.tgz", + "integrity": "sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ==", + "license": "MIT", + "dependencies": { + "config-chain": "^1.1.12", + "editorconfig": "^0.15.3", + "glob": "^7.1.3", + "nopt": "^5.0.0" + }, + "bin": { + "css-beautify": "js/bin/css-beautify.js", + "html-beautify": "js/bin/html-beautify.js", + "js-beautify": "js/bin/js-beautify.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true, + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true, + "license": "ISC" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "node_modules/jszip": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", + "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "node_modules/just-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", + "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/kew": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", + "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "dev": true, + "license": "MIT" + }, + "node_modules/last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "dev": true, + "license": "MIT", + "dependencies": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "license": "MIT", + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true, + "license": "MIT", + "engines": { + "node": "> 0.8" + } + }, + "node_modules/lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "license": "MIT", + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "dev": true, + "license": "MIT", + "dependencies": { + "flush-write-stream": "^1.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/liftoff/node_modules/findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/lilconfig": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", + "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/listr2": { + "version": "3.13.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz", + "integrity": "sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.4.0", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/listr2/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-path/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash._arraymap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz", + "integrity": "sha1-Go/Q9MDfS2HeoHbXF83Jfwo8PmY=", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash._basecallback": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz", + "integrity": "sha1-t7K7Q9whYEJKIczybFfkQ3cqjic=", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash._baseisequal": "^3.0.0", + "lodash._bindcallback": "^3.0.0", + "lodash.isarray": "^3.0.0", + "lodash.pairs": "^3.0.0" + } + }, + "node_modules/lodash._baseeach": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz", + "integrity": "sha1-z4cGVyyhROjZ11InyZDamC+TKvM=", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.keys": "^3.0.0" + } + }, + "node_modules/lodash._baseget": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/lodash._baseget/-/lodash._baseget-3.7.2.tgz", + "integrity": "sha1-G2rh1frPPCVTI1ChPBGXy4u2dPQ=", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash._baseisequal": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz", + "integrity": "sha1-2AJfdjOdKTQnZ9zIh85cuVpbUfE=", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.isarray": "^3.0.0", + "lodash.istypedarray": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "node_modules/lodash._bindcallback": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash._topath": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/lodash._topath/-/lodash._topath-3.8.1.tgz", + "integrity": "sha1-PsXiYGAU9MuX91X+aRTt2L/ADqw=", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.isarray": "^3.0.0" + } + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.istypedarray": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz", + "integrity": "sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I=", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "node_modules/lodash.map": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-3.1.4.tgz", + "integrity": "sha1-tIOs0beGxce0ksSV97UmYim8AMI=", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash._arraymap": "^3.0.0", + "lodash._basecallback": "^3.0.0", + "lodash._baseeach": "^3.0.0", + "lodash.isarray": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.pairs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz", + "integrity": "sha1-u+CNV4bu6qCaFckevw3LfSvjJqk=", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.keys": "^3.0.0" + } + }, + "node_modules/lodash.pluck": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.pluck/-/lodash.pluck-3.1.2.tgz", + "integrity": "sha1-s0fwN0wBafDusE1nLYnOyGMsIjE=", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash._baseget": "^3.0.0", + "lodash._topath": "^3.0.0", + "lodash.isarray": "^3.0.0", + "lodash.map": "^3.0.0" + } + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logform": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz", + "integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "colors": "^1.2.1", + "fast-safe-stringify": "^2.0.4", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "triple-beam": "^1.3.0" + } + }, + "node_modules/logform/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "dev": true, + "license": "MIT", + "dependencies": { + "es5-ext": "~0.10.2" + } + }, + "node_modules/luxon": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.2.0.tgz", + "integrity": "sha512-LwmknessH4jVIseCsizUgveIHwlLv/RQZWC2uDSMfGJs7w8faPUi2JFxfyfMcTPrpNbChTem3Uz6IKRtn+LcIA==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/make-iterator/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "dev": true, + "license": "MIT" + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "license": "MIT", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/marked": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.8.tgz", + "integrity": "sha512-dkpJMIlJpc833hbjjg8jraw1t51e/eKDoG8TFOgc5O0Z77zaYKigYekTDop5AplRoKFGIaoazhYEhGkMtU3IeA==", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "dev": true, + "license": "MIT", + "dependencies": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/memoizee": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", + "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.53", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "license": "MIT", + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/mime-db": { + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", + "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.48.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true, + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true, + "license": "MIT" + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/mocha/node_modules/commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/mocha/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true, + "license": "MIT" + }, + "node_modules/mocha/node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mousetrap": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz", + "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==", + "license": "Apache-2.0 WITH LLVM-exception" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "license": "MIT" + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "dev": true, + "license": "MIT", + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "dev": true, + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "license": "MIT", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", + "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "license": "ISC", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.3.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "license": "MIT", + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "license": "MIT", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "dev": true, + "license": "MIT", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opentype.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/opentype.js/-/opentype.js-1.3.4.tgz", + "integrity": "sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw==", + "license": "MIT", + "dependencies": { + "string.prototype.codepointat": "^0.2.1", + "tiny-inflate": "^1.0.3" + }, + "bin": { + "ot": "bin/ot" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true, + "license": "MIT" + }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "license": "MIT", + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", + "dev": true, + "license": "MIT" + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "license": "ISC", + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "license": "MIT", + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-type/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true, + "license": "MIT" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true, + "license": "MIT" + }, + "node_modules/phantomjs-prebuilt": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", + "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "es6-promise": "^4.0.3", + "extract-zip": "^1.6.5", + "fs-extra": "^1.0.0", + "hasha": "^2.2.0", + "kew": "^0.7.0", + "progress": "^1.1.8", + "request": "^2.81.0", + "request-progress": "^2.0.1", + "which": "^1.2.10" + }, + "bin": { + "phantomjs": "bin/phantomjs" + } + }, + "node_modules/phantomjs-prebuilt/node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/phantomjs-prebuilt/node_modules/fs-extra": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0" + } + }, + "node_modules/phantomjs-prebuilt/node_modules/jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/phantomjs-prebuilt/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/phantomjs-prebuilt/node_modules/request-progress": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", + "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", + "dev": true, + "license": "MIT", + "dependencies": { + "throttleit": "^1.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/plugin-error/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-clean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-clean/-/postcss-clean-1.2.2.tgz", + "integrity": "sha512-DpuMWW19Dd2K9KY4wknMz3khq9q2yZYa2U37bnhzdtBdBv0ggIfUj5T2XD3ir6gKVlDkb5OtOqw1iQJWq6qvpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-css": "^4.x", + "postcss": "^6.x" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-clean/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", + "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-cwd": "^3.0.0", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/prettysize": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/prettysize/-/prettysize-1.1.0.tgz", + "integrity": "sha512-U5Noa+FYV1dGkICyLJz8IWlDUehPF4Bk9tZRO8YqPhLA9EoiHuFqtnpWY2mvMjHh5eOLo82HipeLn4RIiSsGqQ==", + "dev": true + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/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==", + "license": "MIT" + }, + "node_modules/progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "license": "MIT", + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "license": "ISC" + }, + "node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", + "dev": true, + "license": "MIT" + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "license": "ISC" + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomcolor": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/randomcolor/-/randomcolor-0.6.2.tgz", + "integrity": "sha512-Mn6TbyYpFgwFuQ8KJKqf3bqqY9O1y37/0jgSK/61PUxV4QfIMv0+K2ioq8DfOjkBslcjwSzRfIDEXfzA9aCx7A==", + "license": "CC0" + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", + "license": "MIT" + }, + "node_modules/react-virtualized": { + "version": "9.22.3", + "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.22.3.tgz", + "integrity": "sha512-MKovKMxWTcwPSxE1kK1HcheQTWfuCxAuBoSTf2gwyMM21NdX/PXUhnoP8Uc5dRKd+nKm8v41R36OellhdCpkrw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "clsx": "^1.0.4", + "dom-helpers": "^5.1.3", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0-alpha", + "react-dom": "^15.3.0 || ^16.0.0-alpha" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "license": "MIT", + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "license": "MIT", + "dependencies": { + "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" + } + }, + "node_modules/readable-stream/node_modules/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==", + "license": "MIT" + }, + "node_modules/readable-stream/node_modules/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==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readline-sync": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", + "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "license": "MIT" + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "license": "MIT", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true, + "license": "ISC" + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", + "dev": true, + "license": "MIT", + "dependencies": { + "throttleit": "^1.0.0" + } + }, + "node_modules/request/node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/request/node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "node_modules/request/node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true, + "license": "ISC" + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "dev": true, + "license": "MIT", + "dependencies": { + "value-or-function": "^3.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true, + "license": "MIT" + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rxjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", + "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "~2.1.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", + "license": "0BSD" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sass": { + "version": "1.45.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.45.1.tgz", + "integrity": "sha512-pwPRiq29UR0o4X3fiQyCtrESldXvUQAAE0QmcJTpsI4kuHHcLzZ54M1oNBVIXybQv8QF2zfkpFcTxp8ta97dUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "license": "ISC" + }, + "node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "dev": true, + "license": "MIT", + "dependencies": { + "sver-compat": "^1.5.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true, + "license": "ISC" + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "license": "MIT" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shadow-cljs": { + "version": "2.16.12", + "resolved": "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.16.12.tgz", + "integrity": "sha512-6JqOhN5X3n0IkxA/gSUcZ1lImwcW1LmpgzlaBDOC/u/pIysdNm0tiOxpOTEnExl9nKZBS/EYS7bXIIInywPJUA==", + "dev": true, + "license": "ISC", + "dependencies": { + "node-libs-browser": "^2.2.1", + "readline-sync": "^1.4.7", + "shadow-cljs-jar": "1.3.2", + "source-map-support": "^0.4.15", + "which": "^1.3.1", + "ws": "^7.4.6" + }, + "bin": { + "shadow-cljs": "cli/runner.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/shadow-cljs-jar": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/shadow-cljs-jar/-/shadow-cljs-jar-1.3.2.tgz", + "integrity": "sha512-XmeffAZHv8z7451kzeq9oKh8fh278Ak+UIOGGrapyqrFBB773xN8vMQ3O7J7TYLnb9BUwcqadKkmgaq7q6fhZg==", + "dev": true, + "license": "ISC" + }, + "node_modules/shadow-cljs/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shadow-cljs/node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "should-equal": "^2.0.0", + "should-format": "^3.0.3", + "should-type": "^1.4.0", + "should-type-adaptors": "^1.0.1", + "should-util": "^1.0.0" + } + }, + "node_modules/should-equal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "should-type": "^1.4.0" + } + }, + "node_modules/should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=", + "dev": true, + "license": "MIT", + "dependencies": { + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" + } + }, + "node_modules/should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=", + "dev": true, + "license": "MIT" + }, + "node_modules/should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "should-type": "^1.3.0", + "should-util": "^1.0.0" + } + }, + "node_modules/should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", + "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true, + "license": "MIT" + }, + "node_modules/sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", + "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-to-array": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz", + "integrity": "sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M=", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.1.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.codepointat": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz", + "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==", + "license": "MIT" + }, + "node_modules/string.prototype.padend": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz", + "integrity": "sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.padend/node_modules/es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.padend/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.padend/node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.padend/node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "dev": true, + "license": "MIT", + "dependencies": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/svg-sprite": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/svg-sprite/-/svg-sprite-1.5.0.tgz", + "integrity": "sha512-0mE5BLY3K8wg3+HrYfzpiKbIM44IGcg8uINED8ri22EdQbLvGecOHjRtkrNAlphbiU5kyGyqoBlIaukL45fs2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^2.6.1", + "css-selector-parser": "^1.3.0", + "cssmin": "^0.4.3", + "cssom": "^0.3.4", + "dateformat": "^3.0.3", + "glob": "^7.1.3", + "js-yaml": "^3.12.0", + "lodash": "^4.17.11", + "lodash.pluck": "^3.1.2", + "mkdirp": "^0.5.1", + "mocha": "^5.2.0", + "mustache": "^3.0.0", + "phantomjs-prebuilt": "^2.1.16", + "prettysize": "^1.1.0", + "should": "^13.2.3", + "svgo": "^1.1.1", + "vinyl": "^2.2.0", + "winston": "^3.1.0", + "xmldom": "0.1.27", + "xpath": "^0.0.27", + "yargs": "^12.0.2" + }, + "bin": { + "svg-sprite": "bin/svg-sprite.js" + }, + "engines": { + "node": ">= 6.4.0" + } + }, + "node_modules/svg-sprite/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/svg-sprite/node_modules/mustache": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-3.2.1.tgz", + "integrity": "sha512-RERvMFdLpaFfSRIEe632yDm5nsd0SDKn8hGmcUwswnyiE5mtdZLDybtHAz6hjJhawokF0hXvGLtx9mrQfm6FkA==", + "dev": true, + "license": "MIT", + "bin": { + "mustache": "bin/mustache" + }, + "engines": { + "npm": ">=1.4.0" + } + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/tdigest": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz", + "integrity": "sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=", + "license": "MIT", + "dependencies": { + "bintrees": "1.0.1" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "dev": true, + "license": "MIT" + }, + "node_modules/throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "dev": true, + "license": "MIT" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true, + "license": "MIT" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "node_modules/time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "license": "MIT" + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true, + "license": "MIT" + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "dev": true, + "license": "MIT", + "dependencies": { + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "license": "ISC", + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/touch/node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "license": "MIT", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/transfob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/transfob/-/transfob-1.0.0.tgz", + "integrity": "sha1-x/wnpbVDCtSGJnrmZtkj90oKsyA=", + "dev": true, + "license": "MIT" + }, + "node_modules/triple-beam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", + "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true, + "license": "MIT" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "license": "Unlicense" + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true, + "license": "ISC" + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true, + "license": "MIT" + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/ua-parser-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz", + "integrity": "sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undertaker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true, + "license": "MIT" + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "license": "MIT", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/update-notifier/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/update-notifier/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/update-notifier/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/update-notifier/node_modules/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true, + "license": "MIT" + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true, + "license": "MIT" + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "license": "MIT" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true, + "license": "ISC" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror/node_modules/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=", + "dev": true, + "license": "MIT" + }, + "node_modules/verror/node_modules/extsprintf": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz", + "integrity": "sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" + }, + "node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "license": "MIT", + "dependencies": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "dev": true, + "license": "MIT", + "dependencies": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "dev": true, + "license": "ISC", + "dependencies": { + "source-map": "^0.5.1" + } + }, + "node_modules/vinyl-sourcemaps-apply/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true, + "license": "ISC" + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/winston": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", + "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@dabh/diagnostics": "^2.0.2", + "async": "^3.1.0", + "is-stream": "^2.0.0", + "logform": "^2.2.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.4.0" + }, + "engines": { + "node": ">= 6.4.0" + } + }, + "node_modules/winston-transport": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", + "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.3.7", + "triple-beam": "^1.2.0" + }, + "engines": { + "node": ">= 6.4.0" + } + }, + "node_modules/winston/node_modules/async": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", + "dev": true, + "license": "MIT" + }, + "node_modules/winston/node_modules/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/winston/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz", + "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/xmldom": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", + "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", + "dev": true, + "engines": { + "node": ">=0.1" + } + }, + "node_modules/xpath": { + "version": "0.0.27", + "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz", + "integrity": "sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/xregexp": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-5.1.0.tgz", + "integrity": "sha512-PynwUWtXnSZr8tpQlDPMZfPTyv78EYuA4oI959ukxcQ0a9O/lvndLVKy5wpImzzA26eMxpZmnAXJYiQA13AtWA==", + "license": "MIT", + "dependencies": { + "@babel/runtime-corejs3": "^7.14.9" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "node_modules/yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/yargs/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "invert-kv": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + }, + "dependencies": { + "@babel/runtime": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", + "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", + "integrity": "sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==", + "requires": { + "core-js-pure": "^3.16.0", + "regenerator-runtime": "^0.13.4" + } + }, + "@cypress/request": { + "version": "2.88.10", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", + "integrity": "sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + } + }, + "@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "@dabh/diagnostics": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", + "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", + "dev": true, + "requires": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "@gulp-sourcemaps/identity-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", + "integrity": "sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==", + "dev": true, + "requires": { + "acorn": "^6.4.1", + "normalize-path": "^3.0.0", + "postcss": "^7.0.16", + "source-map": "^0.6.0", + "through2": "^3.0.1" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + } + } + }, + "@gulp-sourcemaps/map-sources": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", + "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", + "dev": true, + "requires": { + "normalize-path": "^2.0.1", + "through2": "^2.0.3" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "@sentry/browser": { + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.16.1.tgz", + "integrity": "sha512-F2I5RL7RTLQF9CccMrqt73GRdK3FdqaChED3RulGQX5lH6U3exHGFxwyZxSrY4x6FedfBFYlfXWWCJXpLnFkow==", + "requires": { + "@sentry/core": "6.16.1", + "@sentry/types": "6.16.1", + "@sentry/utils": "6.16.1", + "tslib": "^1.9.3" + } + }, + "@sentry/core": { + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.16.1.tgz", + "integrity": "sha512-UFI0264CPUc5cR1zJH+S2UPOANpm6dLJOnsvnIGTjsrwzR0h8Hdl6rC2R/GPq+WNbnipo9hkiIwDlqbqvIU5vw==", + "requires": { + "@sentry/hub": "6.16.1", + "@sentry/minimal": "6.16.1", + "@sentry/types": "6.16.1", + "@sentry/utils": "6.16.1", + "tslib": "^1.9.3" + } + }, + "@sentry/hub": { + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.16.1.tgz", + "integrity": "sha512-4PGtg6AfpqMkreTpL7ymDeQ/U1uXv03bKUuFdtsSTn/FRf9TLS4JB0KuTZCxfp1IRgAA+iFg6B784dDkT8R9eg==", + "requires": { + "@sentry/types": "6.16.1", + "@sentry/utils": "6.16.1", + "tslib": "^1.9.3" + } + }, + "@sentry/minimal": { + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.16.1.tgz", + "integrity": "sha512-dq+mI1EQIvUM+zJtGCVgH3/B3Sbx4hKlGf2Usovm9KoqWYA+QpfVBholYDe/H2RXgO7LFEefDLvOdHDkqeJoyA==", + "requires": { + "@sentry/hub": "6.16.1", + "@sentry/types": "6.16.1", + "tslib": "^1.9.3" + } + }, + "@sentry/tracing": { + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.16.1.tgz", + "integrity": "sha512-MPSbqXX59P+OEeST+U2V/8Hu/8QjpTUxTNeNyTHWIbbchdcMMjDbXTS3etCgajZR6Ro+DHElOz5cdSxH6IBGlA==", + "requires": { + "@sentry/hub": "6.16.1", + "@sentry/minimal": "6.16.1", + "@sentry/types": "6.16.1", + "@sentry/utils": "6.16.1", + "tslib": "^1.9.3" + } + }, + "@sentry/types": { + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.16.1.tgz", + "integrity": "sha512-Wh354g30UsJ5kYJbercektGX4ZMc9MHU++1NjeN2bTMnbofEcpUDWIiKeulZEY65IC1iU+1zRQQgtYO+/hgCUQ==" + }, + "@sentry/utils": { + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.16.1.tgz", + "integrity": "sha512-7ngq/i4R8JZitJo9Sl8PDnjSbDehOxgr1vsoMmerIsyRZ651C/8B+jVkMhaAPgSdyJ0AlE3O7DKKTP1FXFw9qw==", + "requires": { + "@sentry/types": "6.16.1", + "tslib": "^1.9.3" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/node": { + "version": "14.17.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.34.tgz", + "integrity": "sha512-USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg==", + "dev": true + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true + }, + "@types/sinonjs__fake-timers": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz", + "integrity": "sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A==", + "dev": true + }, + "@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "dev": true + }, + "@types/yauzl": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", + "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.11.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz", + "integrity": "sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==", + "dev": true, + "optional": true + } + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "requires": { + "string-width": "^4.1.0" + } + }, + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "requires": { + "ansi-wrap": "^0.1.0" + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } + } + }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + }, + "dependencies": { + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + } + } + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "dev": true, + "requires": { + "buffer-equal": "^1.0.0" + } + }, + "arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "dev": true, + "requires": { + "make-iterator": "^1.0.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "dev": true, + "requires": { + "make-iterator": "^1.0.0" + } + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true + }, + "array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", + "dev": true, + "requires": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true + }, + "array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "requires": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "dev": true, + "requires": { + "async-done": "^1.2.2" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.1.tgz", + "integrity": "sha512-B3ZEG7wtzXDRCEFsan7HmR2AeNsxdJB0+sEC0Hc5/c2NbhJqPwuZm+tn233GBVw82L+6CtD6IPSfVruwKjfV3A==", + "dev": true, + "requires": { + "browserslist": "^4.19.1", + "caniuse-lite": "^1.0.30001294", + "fraction.js": "^4.1.2", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "dev": true, + "requires": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bintrees": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", + "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=" + }, + "blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true + } + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", + "dev": true + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, + "cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001294", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001294.tgz", + "integrity": "sha512-LiMlrs1nSKZ8qkNhpUf5KD0Al1KCBE3zaT7OLOwEkagXMEDij98SiOovn9wxVGQpklk9vVC/pUSqgYmkmKOS8g==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.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==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + } + } + }, + "check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "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==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "ci-info": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + } + }, + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-table3": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz", + "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==", + "dev": true, + "requires": { + "colors": "1.4.0", + "string-width": "^4.2.0" + } + }, + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "dev": true + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "dev": true, + "requires": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", + "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "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==", + "dev": true, + "requires": { + "color-name": "1.1.3" + }, + "dependencies": { + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "color-string": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", + "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "colorspace": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", + "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", + "dev": true, + "requires": { + "color": "3.0.x", + "text-hex": "1.0.x" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + }, + "common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-props": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", + "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "dev": true, + "requires": { + "each-props": "^1.3.2", + "is-plain-object": "^5.0.0" + }, + "dependencies": { + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + } + } + }, + "core-js": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.13.0.tgz", + "integrity": "sha512-iWDbiyha1M5vFwPFmQnvRv+tJzGbFAm6XimJUT0NgHYW3xZEs1SkCAcasWSVFxpI2Xb/V1DDJckq3v90+bQnog==" + }, + "core-js-pure": { + "version": "3.17.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz", + "integrity": "sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==" + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-fetch": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "requires": { + "node-fetch": "2.6.1" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + } + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-selector-parser": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz", + "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==", + "dev": true + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true + }, + "cssmin": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/cssmin/-/cssmin-0.4.3.tgz", + "integrity": "sha1-yRlAd+Dr2s1pHV9ZAVudgZ840BU=", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + } + } + }, + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "csstype": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", + "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" + }, + "cypress": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.2.1.tgz", + "integrity": "sha512-LVEe4yWCo4xO0Vd8iYjFHRyd5ulRvM56XqMgAdn05Qb9kJ6iJdO/MmjKD8gNd768698cp1FDuSmFQZHVZGk+Og==", + "dev": true, + "requires": { + "@cypress/request": "^2.88.10", + "@cypress/xvfb": "^1.2.4", + "@types/node": "^14.14.31", + "@types/sinonjs__fake-timers": "^6.0.2", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "3.7.2", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^5.1.0", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.2", + "enquirer": "^2.3.6", + "eventemitter2": "^6.4.3", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.0", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.5", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "url": "^0.11.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-fns": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", + "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" + }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true + }, + "dayjs": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", + "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "debug-fabulous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", + "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", + "dev": true, + "requires": { + "debug": "3.X", + "memoizee": "0.4.X", + "object-assign": "4.X" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "requires": { + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", + "dev": true + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "draft-js": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/draft-js/-/draft-js-0.11.7.tgz", + "integrity": "sha512-ne7yFfN4sEL82QPQEn80xnADR8/Q6ALVworbC5UOSzOvjffmYfFsr3xSZtxbIirti14R7Y33EZC5rivpLgIbsg==", + "requires": { + "fbjs": "^2.0.0", + "immutable": "~3.7.4", + "object-assign": "^4.1.1" + }, + "dependencies": { + "immutable": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", + "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=" + } + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", + "requires": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } + } + }, + "electron-to-chromium": { + "version": "1.4.30", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.30.tgz", + "integrity": "sha512-609z9sIMxDHg+TcR/VB3MXwH+uwtrYyeAwWc/orhnr90ixs6WVGSrt85CDLGUdNnLqCA7liv426V20EecjvflQ==", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + } + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", + "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "dependencies": { + "object-inspect": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + }, + "dependencies": { + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + } + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "eventemitter2": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.5.tgz", + "integrity": "sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "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==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "requires": { + "pify": "^2.2.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", + "dev": true + }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", + "dev": true + }, + "fbjs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-2.0.0.tgz", + "integrity": "sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ==", + "requires": { + "core-js": "^3.6.4", + "cross-fetch": "^3.0.4", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + }, + "dependencies": { + "ua-parser-js": { + "version": "0.7.28", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", + "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==" + } + } + }, + "fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "fecha": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", + "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + } + }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fraction.js": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz", + "integrity": "sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "dev": true + } + } + }, + "fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "requires": { + "async": "^3.2.0" + }, + "dependencies": { + "async": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.2.tgz", + "integrity": "sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==", + "dev": true + } + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "gettext-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-4.2.0.tgz", + "integrity": "sha512-aMgPyjC9W5Mz9tbFU8DcQ7GYMXoFWq633kaWGt4imlcpBWzDIWk7HY7nCSZTCJxyjRaLq9L/NEjMKkZ9gR630Q==", + "dev": true, + "requires": { + "content-type": "^1.0.4", + "encoding": "^0.1.13", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "dev": true, + "requires": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + } + }, + "glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" + }, + "dependencies": { + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } + } + }, + "global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "requires": { + "ini": "2.0.0" + }, + "dependencies": { + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + } + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dev": true, + "requires": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + } + }, + "gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "yargs": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", + "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.1" + } + }, + "yargs-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + } + } + }, + "gulp-concat": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", + "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", + "dev": true, + "requires": { + "concat-with-sourcemaps": "^1.0.0", + "through2": "^2.0.0", + "vinyl": "^2.0.0" + } + }, + "gulp-gzip": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/gulp-gzip/-/gulp-gzip-1.4.2.tgz", + "integrity": "sha512-ZIxfkUwk2XmZPTT9pPHrHUQlZMyp9nPhg2sfoeN27mBGpi7OaHnOD+WCN41NXjfJQ69lV1nQ9LLm1hYxx4h3UQ==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "bytes": "^3.0.0", + "fancy-log": "^1.3.2", + "plugin-error": "^1.0.0", + "stream-to-array": "^2.3.0", + "through2": "^2.0.3" + } + }, + "gulp-mustache": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp-mustache/-/gulp-mustache-5.0.0.tgz", + "integrity": "sha512-8tk0R1Fd+l6+e/t954e3UheFo25dKkTapPLD1sWoSroPXfIPxyHVgbhfH5VJGqeXl3te5GOwPtfcxxZJ+PYoFg==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0", + "mustache": "^4.0.1", + "plugin-error": "^1.0.0", + "replace-ext": "^1.0.0", + "through2": "^3.0.1" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + } + } + }, + "gulp-postcss": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/gulp-postcss/-/gulp-postcss-9.0.1.tgz", + "integrity": "sha512-9QUHam5JyXwGUxaaMvoFQVT44tohpEFpM8xBdPfdwTYGM0AItS1iTQz0MpsF8Jroh7GF5Jt2GVPaYgvy8qD2Fw==", + "dev": true, + "requires": { + "fancy-log": "^1.3.3", + "plugin-error": "^1.0.1", + "postcss-load-config": "^3.0.0", + "vinyl-sourcemaps-apply": "^0.2.1" + } + }, + "gulp-rename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz", + "integrity": "sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==", + "dev": true + }, + "gulp-sass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.0.0.tgz", + "integrity": "sha512-J0aH0/2N4+2szGCeut0ktGHK0Wg8L9uWivuigrl7xv+nhxozBQRAKLrhnDDaTa3FeUWYtgT8w4RlgdhRy5v16w==", + "dev": true, + "requires": { + "chalk": "^4.1.1", + "lodash": "^4.17.20", + "plugin-error": "^1.0.1", + "replace-ext": "^2.0.0", + "strip-ansi": "^6.0.0", + "transfob": "^1.0.0", + "vinyl-sourcemaps-apply": "^0.2.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "gulp-sourcemaps": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz", + "integrity": "sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==", + "dev": true, + "requires": { + "@gulp-sourcemaps/identity-map": "^2.0.1", + "@gulp-sourcemaps/map-sources": "^1.0.0", + "acorn": "^6.4.1", + "convert-source-map": "^1.0.0", + "css": "^3.0.0", + "debug-fabulous": "^1.0.0", + "detect-newline": "^2.0.0", + "graceful-fs": "^4.0.0", + "source-map": "^0.6.0", + "strip-bom-string": "^1.0.0", + "through2": "^2.0.0" + } + }, + "gulp-svg-sprite": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/gulp-svg-sprite/-/gulp-svg-sprite-1.5.0.tgz", + "integrity": "sha512-xLepqh1DjCSNm+secZsxmoWKNTXAXCC6Tglop0e2oOoiIqwBWOvep5Y+qvqRP9L3dn8qBxKkqGot8aTheNGYoQ==", + "dev": true, + "requires": { + "plugin-error": "^1.0.1", + "svg-sprite": "^1.5.0", + "through2": "^2.0.3" + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, + "requires": { + "glogg": "^1.0.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hasha": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", + "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", + "dev": true, + "requires": { + "is-stream": "^1.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "highlight.js": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.3.1.tgz", + "integrity": "sha512-PUhCRnPjLtiLHZAQ5A/Dt5F8cWZeMyj9KRsACsWT+OD6OP0x6dp5OmT5jdx0JgEyPxPZZIPQpRN2TciUT7occw==" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + }, + "immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true + }, + "import-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", + "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", + "dev": true, + "requires": { + "import-from": "^3.0.0" + } + }, + "import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-bigint": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true + }, + "is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "requires": { + "ci-info": "^3.2.0" + } + }, + "is-core-module": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", + "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "is-date-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", + "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", + "dev": true + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-number-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", + "dev": true + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + } + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-string": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", + "dev": true + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "dev": true + }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-beautify": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.0.tgz", + "integrity": "sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ==", + "requires": { + "config-chain": "^1.1.12", + "editorconfig": "^0.15.3", + "glob": "^7.1.3", + "nopt": "^5.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "jszip": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", + "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "just-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", + "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", + "dev": true + }, + "kew": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", + "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", + "dev": true + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "dev": true + }, + "last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "dev": true, + "requires": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + } + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "dev": true, + "requires": { + "flush-write-stream": "^1.0.2" + } + }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "requires": { + "immediate": "~3.0.5" + } + }, + "liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "dev": true, + "requires": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "dependencies": { + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + } + } + }, + "lilconfig": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", + "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", + "dev": true + }, + "listr2": { + "version": "3.13.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz", + "integrity": "sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==", + "dev": true, + "requires": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.4.0", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^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=", + "dev": true + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash._arraymap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz", + "integrity": "sha1-Go/Q9MDfS2HeoHbXF83Jfwo8PmY=", + "dev": true + }, + "lodash._basecallback": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz", + "integrity": "sha1-t7K7Q9whYEJKIczybFfkQ3cqjic=", + "dev": true, + "requires": { + "lodash._baseisequal": "^3.0.0", + "lodash._bindcallback": "^3.0.0", + "lodash.isarray": "^3.0.0", + "lodash.pairs": "^3.0.0" + } + }, + "lodash._baseeach": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz", + "integrity": "sha1-z4cGVyyhROjZ11InyZDamC+TKvM=", + "dev": true, + "requires": { + "lodash.keys": "^3.0.0" + } + }, + "lodash._baseget": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/lodash._baseget/-/lodash._baseget-3.7.2.tgz", + "integrity": "sha1-G2rh1frPPCVTI1ChPBGXy4u2dPQ=", + "dev": true + }, + "lodash._baseisequal": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz", + "integrity": "sha1-2AJfdjOdKTQnZ9zIh85cuVpbUfE=", + "dev": true, + "requires": { + "lodash.isarray": "^3.0.0", + "lodash.istypedarray": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "lodash._bindcallback": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._topath": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/lodash._topath/-/lodash._topath-3.8.1.tgz", + "integrity": "sha1-PsXiYGAU9MuX91X+aRTt2L/ADqw=", + "dev": true, + "requires": { + "lodash.isarray": "^3.0.0" + } + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.istypedarray": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz", + "integrity": "sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash.map": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-3.1.4.tgz", + "integrity": "sha1-tIOs0beGxce0ksSV97UmYim8AMI=", + "dev": true, + "requires": { + "lodash._arraymap": "^3.0.0", + "lodash._basecallback": "^3.0.0", + "lodash._baseeach": "^3.0.0", + "lodash.isarray": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "dev": true + }, + "lodash.pairs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz", + "integrity": "sha1-u+CNV4bu6qCaFckevw3LfSvjJqk=", + "dev": true, + "requires": { + "lodash.keys": "^3.0.0" + } + }, + "lodash.pluck": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.pluck/-/lodash.pluck-3.1.2.tgz", + "integrity": "sha1-s0fwN0wBafDusE1nLYnOyGMsIjE=", + "dev": true, + "requires": { + "lodash._baseget": "^3.0.0", + "lodash._topath": "^3.0.0", + "lodash.isarray": "^3.0.0", + "lodash.map": "^3.0.0" + } + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "logform": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz", + "integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==", + "dev": true, + "requires": { + "colors": "^1.2.1", + "fast-safe-stringify": "^2.0.4", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "triple-beam": "^1.3.0" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "dev": true, + "requires": { + "es5-ext": "~0.10.2" + } + }, + "luxon": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.2.0.tgz", + "integrity": "sha512-LwmknessH4jVIseCsizUgveIHwlLv/RQZWC2uDSMfGJs7w8faPUi2JFxfyfMcTPrpNbChTem3Uz6IKRtn+LcIA==" + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "marked": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.8.tgz", + "integrity": "sha512-dkpJMIlJpc833hbjjg8jraw1t51e/eKDoG8TFOgc5O0Z77zaYKigYekTDop5AplRoKFGIaoazhYEhGkMtU3IeA==", + "dev": true + }, + "matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "dev": true, + "requires": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "memoizee": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", + "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", + "dev": true, + "requires": { + "d": "^1.0.1", + "es5-ext": "^0.10.53", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + } + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "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" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime-db": { + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", + "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "dev": true, + "requires": { + "mime-db": "1.48.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "dev": true, + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "mousetrap": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz", + "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "dev": true + }, + "mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "dev": true + }, + "nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "dev": true + }, + "nodemon": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", + "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "dev": true, + "requires": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true + }, + "now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "requires": { + "once": "^1.3.2" + } + }, + "npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.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==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + } + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + }, + "dependencies": { + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + } + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.values": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "dev": true, + "requires": { + "fn.name": "1.x.x" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "opentype.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/opentype.js/-/opentype.js-1.3.4.tgz", + "integrity": "sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw==", + "requires": { + "string.prototype.codepointat": "^0.2.1", + "tiny-inflate": "^1.0.3" + } + }, + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", + "dev": true + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "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=", + "dev": true + } + } + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "phantomjs-prebuilt": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", + "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3", + "extract-zip": "^1.6.5", + "fs-extra": "^1.0.0", + "hasha": "^2.2.0", + "kew": "^0.7.0", + "progress": "^1.1.8", + "request": "^2.81.0", + "request-progress": "^2.0.1", + "which": "^1.2.10" + }, + "dependencies": { + "extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "requires": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + } + }, + "fs-extra": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "request-progress": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", + "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", + "dev": true, + "requires": { + "throttleit": "^1.0.0" + } + } + } + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + }, + "pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "dev": true, + "requires": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + } + }, + "postcss-clean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-clean/-/postcss-clean-1.2.2.tgz", + "integrity": "sha512-DpuMWW19Dd2K9KY4wknMz3khq9q2yZYa2U37bnhzdtBdBv0ggIfUj5T2XD3ir6gKVlDkb5OtOqw1iQJWq6qvpw==", + "dev": true, + "requires": { + "clean-css": "^4.x", + "postcss": "^6.x" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + } + } + }, + "postcss-load-config": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", + "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", + "dev": true, + "requires": { + "import-cwd": "^3.0.0", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "prettier": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", + "dev": true + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true + }, + "prettysize": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/prettysize/-/prettysize-1.1.0.tgz", + "integrity": "sha512-U5Noa+FYV1dGkICyLJz8IWlDUehPF4Bk9tZRO8YqPhLA9EoiHuFqtnpWY2mvMjHh5eOLo82HipeLn4RIiSsGqQ==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "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==" + }, + "progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "~2.0.3" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" + }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomcolor": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/randomcolor/-/randomcolor-0.6.2.tgz", + "integrity": "sha512-Mn6TbyYpFgwFuQ8KJKqf3bqqY9O1y37/0jgSK/61PUxV4QfIMv0+K2ioq8DfOjkBslcjwSzRfIDEXfzA9aCx7A==" + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "react-virtualized": { + "version": "9.22.3", + "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.22.3.tgz", + "integrity": "sha512-MKovKMxWTcwPSxE1kK1HcheQTWfuCxAuBoSTf2gwyMM21NdX/PXUhnoP8Uc5dRKd+nKm8v41R36OellhdCpkrw==", + "requires": { + "@babel/runtime": "^7.7.2", + "clsx": "^1.0.4", + "dom-helpers": "^5.1.3", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-lifecycles-compat": "^3.0.4" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.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==", + "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" + }, + "dependencies": { + "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==" + }, + "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==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "readline-sync": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", + "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==", + "dev": true + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + } + }, + "remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "dev": true, + "requires": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true + }, + "replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, + "request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", + "dev": true, + "requires": { + "throttleit": "^1.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "dev": true, + "requires": { + "value-or-function": "^3.0.0" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rxjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", + "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", + "requires": { + "tslib": "~2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + } + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass": { + "version": "1.45.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.45.1.tgz", + "integrity": "sha512-pwPRiq29UR0o4X3fiQyCtrESldXvUQAAE0QmcJTpsI4kuHHcLzZ54M1oNBVIXybQv8QF2zfkpFcTxp8ta97dUA==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "dev": true, + "requires": { + "sver-compat": "^1.5.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shadow-cljs": { + "version": "2.16.12", + "resolved": "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.16.12.tgz", + "integrity": "sha512-6JqOhN5X3n0IkxA/gSUcZ1lImwcW1LmpgzlaBDOC/u/pIysdNm0tiOxpOTEnExl9nKZBS/EYS7bXIIInywPJUA==", + "dev": true, + "requires": { + "node-libs-browser": "^2.2.1", + "readline-sync": "^1.4.7", + "shadow-cljs-jar": "1.3.2", + "source-map-support": "^0.4.15", + "which": "^1.3.1", + "ws": "^7.4.6" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + } + } + }, + "shadow-cljs-jar": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/shadow-cljs-jar/-/shadow-cljs-jar-1.3.2.tgz", + "integrity": "sha512-XmeffAZHv8z7451kzeq9oKh8fh278Ak+UIOGGrapyqrFBB773xN8vMQ3O7J7TYLnb9BUwcqadKkmgaq7q6fhZg==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "dev": true + }, + "should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "dev": true, + "requires": { + "should-equal": "^2.0.0", + "should-format": "^3.0.3", + "should-type": "^1.4.0", + "should-type-adaptors": "^1.0.1", + "should-util": "^1.0.0" + } + }, + "should-equal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "dev": true, + "requires": { + "should-type": "^1.4.0" + } + }, + "should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=", + "dev": true, + "requires": { + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" + } + }, + "should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=", + "dev": true + }, + "should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "dev": true, + "requires": { + "should-type": "^1.3.0", + "should-util": "^1.0.0" + } + }, + "should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, + "signal-exit": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", + "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", + "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "stream-to-array": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz", + "integrity": "sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M=", + "dev": true, + "requires": { + "any-promise": "^1.1.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "string.prototype.codepointat": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz", + "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==" + }, + "string.prototype.padend": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz", + "integrity": "sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "dev": true, + "requires": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "svg-sprite": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/svg-sprite/-/svg-sprite-1.5.0.tgz", + "integrity": "sha512-0mE5BLY3K8wg3+HrYfzpiKbIM44IGcg8uINED8ri22EdQbLvGecOHjRtkrNAlphbiU5kyGyqoBlIaukL45fs2Q==", + "dev": true, + "requires": { + "async": "^2.6.1", + "css-selector-parser": "^1.3.0", + "cssmin": "^0.4.3", + "cssom": "^0.3.4", + "dateformat": "^3.0.3", + "glob": "^7.1.3", + "js-yaml": "^3.12.0", + "lodash": "^4.17.11", + "lodash.pluck": "^3.1.2", + "mkdirp": "^0.5.1", + "mocha": "^5.2.0", + "mustache": "^3.0.0", + "phantomjs-prebuilt": "^2.1.16", + "prettysize": "^1.1.0", + "should": "^13.2.3", + "svgo": "^1.1.1", + "vinyl": "^2.2.0", + "winston": "^3.1.0", + "xmldom": "0.1.27", + "xpath": "^0.0.27", + "yargs": "^12.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "mustache": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-3.2.1.tgz", + "integrity": "sha512-RERvMFdLpaFfSRIEe632yDm5nsd0SDKn8hGmcUwswnyiE5mtdZLDybtHAz6hjJhawokF0hXvGLtx9mrQfm6FkA==", + "dev": true + } + } + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "tdigest": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz", + "integrity": "sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=", + "requires": { + "bintrees": "1.0.1" + } + }, + "text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "dev": true + }, + "throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "dev": true, + "requires": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, + "tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "dev": true, + "requires": { + "through2": "^2.0.3" + } + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1" + } + } + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "transfob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/transfob/-/transfob-1.0.0.tgz", + "integrity": "sha1-x/wnpbVDCtSGJnrmZtkj90oKsyA=", + "dev": true + }, + "triple-beam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", + "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "ua-parser-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz", + "integrity": "sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==" + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "undertaker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + } + }, + "undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "dev": true, + "requires": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, + "v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "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=", + "dev": true + }, + "extsprintf": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz", + "integrity": "sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=", + "dev": true + } + } + }, + "vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + }, + "vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "requires": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + } + }, + "vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "dev": true, + "requires": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "dev": true, + "requires": { + "source-map": "^0.5.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } + }, + "winston": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", + "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", + "dev": true, + "requires": { + "@dabh/diagnostics": "^2.0.2", + "async": "^3.1.0", + "is-stream": "^2.0.0", + "logform": "^2.2.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.4.0" + }, + "dependencies": { + "async": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", + "dev": true + }, + "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==", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "winston-transport": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", + "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", + "dev": true, + "requires": { + "readable-stream": "^2.3.7", + "triple-beam": "^1.2.0" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz", + "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==", + "dev": true, + "requires": {} + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, + "xmldom": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", + "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", + "dev": true + }, + "xpath": { + "version": "0.0.27", + "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz", + "integrity": "sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ==", + "dev": true + }, + "xregexp": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-5.1.0.tgz", + "integrity": "sha512-PynwUWtXnSZr8tpQlDPMZfPTyv78EYuA4oI959ukxcQ0a9O/lvndLVKy5wpImzzA26eMxpZmnAXJYiQA13AtWA==", + "requires": { + "@babel/runtime-corejs3": "^7.14.9" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + } + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json index 5c484d65e1..35e27b598f 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -25,7 +25,7 @@ }, "devDependencies": { "autoprefixer": "^10.4.1", - "cypress": "^9.2.0", + "cypress": "^9.2.1", "gettext-parser": "^4.2.0", "gulp": "4.0.2", "gulp-concat": "^2.6.1", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 419622455f..4744c16ca3 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -4,7 +4,7 @@ "@babel/runtime-corejs3@^7.14.9": version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz#403139af262b9a6e8f9ba04a6fdcebf8de692bf1" + resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz" integrity sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg== dependencies: core-js-pure "^3.16.0" @@ -12,14 +12,14 @@ "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7": version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz" integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== dependencies: regenerator-runtime "^0.13.4" "@cypress/request@^2.88.10": version "2.88.10" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.10.tgz#b66d76b07f860d3a4b8d7a0604d020c662752cce" + resolved "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz" integrity sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg== dependencies: aws-sign2 "~0.7.0" @@ -43,7 +43,7 @@ "@cypress/xvfb@^1.2.4": version "1.2.4" - resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" + resolved "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz" integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== dependencies: debug "^3.1.0" @@ -51,7 +51,7 @@ "@dabh/diagnostics@^2.0.2": version "2.0.2" - resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.2.tgz#290d08f7b381b8f94607dc8f471a12c675f9db31" + resolved "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz" integrity sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q== dependencies: colorspace "1.1.x" @@ -60,7 +60,7 @@ "@gulp-sourcemaps/identity-map@^2.0.1": version "2.0.1" - resolved "https://registry.yarnpkg.com/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz#a6e8b1abec8f790ec6be2b8c500e6e68037c0019" + resolved "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz" integrity sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q== dependencies: acorn "^6.4.1" @@ -71,7 +71,7 @@ "@gulp-sourcemaps/map-sources@^1.0.0": version "1.0.0" - resolved "https://registry.yarnpkg.com/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz#890ae7c5d8c877f6d384860215ace9d7ec945bda" + resolved "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz" integrity sha1-iQrnxdjId/bThIYCFazp1+yUW9o= dependencies: normalize-path "^2.0.1" @@ -79,7 +79,7 @@ "@sentry/browser@^6.16.1": version "6.16.1" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.16.1.tgz#4270ab0fbd1de425e339b3e7a364feb09f470a87" + resolved "https://registry.npmjs.org/@sentry/browser/-/browser-6.16.1.tgz" integrity sha512-F2I5RL7RTLQF9CccMrqt73GRdK3FdqaChED3RulGQX5lH6U3exHGFxwyZxSrY4x6FedfBFYlfXWWCJXpLnFkow== dependencies: "@sentry/core" "6.16.1" @@ -89,7 +89,7 @@ "@sentry/core@6.16.1": version "6.16.1" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.16.1.tgz#d9f7a75f641acaddf21b6aafa7a32e142f68f17c" + resolved "https://registry.npmjs.org/@sentry/core/-/core-6.16.1.tgz" integrity sha512-UFI0264CPUc5cR1zJH+S2UPOANpm6dLJOnsvnIGTjsrwzR0h8Hdl6rC2R/GPq+WNbnipo9hkiIwDlqbqvIU5vw== dependencies: "@sentry/hub" "6.16.1" @@ -100,7 +100,7 @@ "@sentry/hub@6.16.1": version "6.16.1" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.16.1.tgz#526e19db51f4412da8634734044c605b936a7b80" + resolved "https://registry.npmjs.org/@sentry/hub/-/hub-6.16.1.tgz" integrity sha512-4PGtg6AfpqMkreTpL7ymDeQ/U1uXv03bKUuFdtsSTn/FRf9TLS4JB0KuTZCxfp1IRgAA+iFg6B784dDkT8R9eg== dependencies: "@sentry/types" "6.16.1" @@ -109,7 +109,7 @@ "@sentry/minimal@6.16.1": version "6.16.1" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.16.1.tgz#6a9506a92623d2ff1fc17d60989688323326772e" + resolved "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.16.1.tgz" integrity sha512-dq+mI1EQIvUM+zJtGCVgH3/B3Sbx4hKlGf2Usovm9KoqWYA+QpfVBholYDe/H2RXgO7LFEefDLvOdHDkqeJoyA== dependencies: "@sentry/hub" "6.16.1" @@ -118,7 +118,7 @@ "@sentry/tracing@^6.16.1": version "6.16.1" - resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.16.1.tgz#32fba3e07748e9a955055afd559a65996acb7d71" + resolved "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.16.1.tgz" integrity sha512-MPSbqXX59P+OEeST+U2V/8Hu/8QjpTUxTNeNyTHWIbbchdcMMjDbXTS3etCgajZR6Ro+DHElOz5cdSxH6IBGlA== dependencies: "@sentry/hub" "6.16.1" @@ -129,12 +129,12 @@ "@sentry/types@6.16.1": version "6.16.1" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.16.1.tgz#4917607115b30315757c2cf84f80bac5100b8ac0" + resolved "https://registry.npmjs.org/@sentry/types/-/types-6.16.1.tgz" integrity sha512-Wh354g30UsJ5kYJbercektGX4ZMc9MHU++1NjeN2bTMnbofEcpUDWIiKeulZEY65IC1iU+1zRQQgtYO+/hgCUQ== "@sentry/utils@6.16.1": version "6.16.1" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.16.1.tgz#1b9e14c2831b6e8b816f7021b9876133bf2be008" + resolved "https://registry.npmjs.org/@sentry/utils/-/utils-6.16.1.tgz" integrity sha512-7ngq/i4R8JZitJo9Sl8PDnjSbDehOxgr1vsoMmerIsyRZ651C/8B+jVkMhaAPgSdyJ0AlE3O7DKKTP1FXFw9qw== dependencies: "@sentry/types" "6.16.1" @@ -142,61 +142,61 @@ "@sindresorhus/is@^0.14.0": version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== "@szmarczak/http-timer@^1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== dependencies: defer-to-connect "^1.0.1" "@types/node@*": version "16.11.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.11.tgz#6ea7342dfb379ea1210835bada87b3c512120234" + resolved "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz" integrity sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw== "@types/node@^14.14.31": version "14.17.34" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.34.tgz#fe4b38b3f07617c0fa31ae923fca9249641038f0" + resolved "https://registry.npmjs.org/@types/node/-/node-14.17.34.tgz" integrity sha512-USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg== "@types/q@^1.5.1": version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" + resolved "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz" integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== "@types/sinonjs__fake-timers@^6.0.2": version "6.0.4" - resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz#0ecc1b9259b76598ef01942f547904ce61a6a77d" + resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz" integrity sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A== "@types/sizzle@^2.3.2": version "2.3.3" - resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" + resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz" integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== "@types/yauzl@^2.9.1": version "2.9.2" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" + resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz" integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA== dependencies: "@types/node" "*" abbrev@1: version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== acorn@^6.4.1: version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" @@ -204,7 +204,7 @@ aggregate-error@^3.0.0: ajv@^6.12.3: version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -214,84 +214,84 @@ ajv@^6.12.3: ansi-align@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz" integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== dependencies: string-width "^4.1.0" ansi-colors@^1.0.1: version "1.1.0" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz" integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA== dependencies: ansi-wrap "^0.1.0" ansi-colors@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== ansi-escapes@^4.3.0: version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" ansi-gray@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" + resolved "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz" integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE= dependencies: ansi-wrap "0.1.0" ansi-regex@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= ansi-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= ansi-regex@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ansi-wrap@0.1.0, ansi-wrap@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + resolved "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz" integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= any-promise@^1.1.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= anymatch@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz" integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== dependencies: micromatch "^3.1.4" @@ -299,7 +299,7 @@ anymatch@^2.0.0: anymatch@~3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: normalize-path "^3.0.0" @@ -307,65 +307,65 @@ anymatch@~3.1.2: append-buffer@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" + resolved "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz" integrity sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE= dependencies: buffer-equal "^1.0.0" arch@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + resolved "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz" integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== archy@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + resolved "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz" integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= argparse@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" arr-diff@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= arr-filter@^1.1.1: version "1.1.2" - resolved "https://registry.yarnpkg.com/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee" + resolved "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz" integrity sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4= dependencies: make-iterator "^1.0.0" arr-flatten@^1.0.1, arr-flatten@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== arr-map@^2.0.0, arr-map@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4" + resolved "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz" integrity sha1-Onc0X/wc814qkYJWAfnljy4kysQ= dependencies: make-iterator "^1.0.0" arr-union@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= array-each@^1.0.0, array-each@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + resolved "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz" integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= array-initial@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795" + resolved "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz" integrity sha1-L6dLJnOTccOUe9enrcc74zSz15U= dependencies: array-slice "^1.0.0" @@ -373,19 +373,19 @@ array-initial@^1.0.0: array-last@^1.1.1: version "1.3.0" - resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336" + resolved "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz" integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg== dependencies: is-number "^4.0.0" array-slice@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + resolved "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz" integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== array-sort@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a" + resolved "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz" integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg== dependencies: default-compare "^1.0.0" @@ -394,17 +394,17 @@ array-sort@^1.0.0: array-unique@^0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= asap@~2.0.3: version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= asn1.js@^5.2.0: version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== dependencies: bn.js "^4.0.0" @@ -414,19 +414,19 @@ asn1.js@^5.2.0: asn1@~0.2.3: version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz" integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= assert@^1.1.1: version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz" integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== dependencies: object-assign "^4.1.1" @@ -434,17 +434,17 @@ assert@^1.1.1: assign-symbols@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= astral-regex@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async-done@^1.2.0, async-done@^1.2.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.3.2.tgz#5e15aa729962a4b07414f528a88cdf18e0b290a2" + resolved "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz" integrity sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw== dependencies: end-of-stream "^1.1.0" @@ -454,51 +454,51 @@ async-done@^1.2.0, async-done@^1.2.2: async-each@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== async-settle@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b" + resolved "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz" integrity sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs= dependencies: async-done "^1.2.2" async@^2.6.1: version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz" integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== dependencies: lodash "^4.17.14" async@^3.1.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" + resolved "https://registry.npmjs.org/async/-/async-3.2.0.tgz" integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== async@^3.2.0: version "3.2.2" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.2.tgz#2eb7671034bb2194d45d30e31e24ec7e7f9670cd" + resolved "https://registry.npmjs.org/async/-/async-3.2.2.tgz" integrity sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g== asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= at-least-node@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== atob@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== autoprefixer@^10.4.1: version "10.4.1" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.1.tgz#1735959d6462420569bc42408016acbc56861c12" + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.1.tgz" integrity sha512-B3ZEG7wtzXDRCEFsan7HmR2AeNsxdJB0+sEC0Hc5/c2NbhJqPwuZm+tn233GBVw82L+6CtD6IPSfVruwKjfV3A== dependencies: browserslist "^4.19.1" @@ -510,17 +510,17 @@ autoprefixer@^10.4.1: aws-sign2@~0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== bach@^1.0.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880" + resolved "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz" integrity sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA= dependencies: arr-filter "^1.1.1" @@ -535,17 +535,17 @@ bach@^1.0.0: balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base64-js@^1.0.2: version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base@^0.11.1: version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz" integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== dependencies: cache-base "^1.0.1" @@ -558,19 +558,19 @@ base@^0.11.1: bcrypt-pbkdf@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= dependencies: tweetnacl "^0.14.3" binary-extensions@^1.0.0: version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== bindings@^1.5.0: @@ -582,37 +582,37 @@ bindings@^1.5.0: bintrees@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.1.tgz#0e655c9b9c2435eaab68bf4027226d2b55a34524" + resolved "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz" integrity sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ= blob-util@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" + resolved "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz" integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== bluebird@3.7.2: version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== bn.js@^5.0.0, bn.js@^5.1.1: version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz" integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= boxen@^5.0.0: version "5.1.2" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + resolved "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz" integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== dependencies: ansi-align "^3.0.0" @@ -626,7 +626,7 @@ boxen@^5.0.0: brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -634,7 +634,7 @@ brace-expansion@^1.1.7: braces@^2.3.1, braces@^2.3.2: version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== dependencies: arr-flatten "^1.1.0" @@ -650,24 +650,24 @@ braces@^2.3.1, braces@^2.3.2: braces@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= browser-stdout@1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" @@ -679,7 +679,7 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4: browserify-cipher@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== dependencies: browserify-aes "^1.0.4" @@ -688,7 +688,7 @@ browserify-cipher@^1.0.0: browserify-des@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== dependencies: cipher-base "^1.0.1" @@ -698,7 +698,7 @@ browserify-des@^1.0.0: browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== dependencies: bn.js "^5.0.0" @@ -706,7 +706,7 @@ browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: browserify-sign@^4.0.0: version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz" integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== dependencies: bn.js "^5.1.1" @@ -721,14 +721,14 @@ browserify-sign@^4.0.0: browserify-zlib@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz" integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== dependencies: pako "~1.0.5" browserslist@^4.19.1: version "4.19.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz" integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== dependencies: caniuse-lite "^1.0.30001286" @@ -739,27 +739,27 @@ browserslist@^4.19.1: buffer-crc32@~0.2.3: version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= buffer-equal@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" + resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz" integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer-xor@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= buffer@^4.3.0: version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== dependencies: base64-js "^1.0.2" @@ -768,17 +768,17 @@ buffer@^4.3.0: builtin-status-codes@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= bytes@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== cache-base@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== dependencies: collection-visit "^1.0.0" @@ -793,7 +793,7 @@ cache-base@^1.0.1: cacheable-request@^6.0.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== dependencies: clone-response "^1.0.2" @@ -806,12 +806,12 @@ cacheable-request@^6.0.0: cachedir@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" + resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz" integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" @@ -819,32 +819,32 @@ call-bind@^1.0.0, call-bind@^1.0.2: camelcase@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz" integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= camelcase@^5.0.0: version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.2.0: version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== caniuse-lite@^1.0.30001286, caniuse-lite@^1.0.30001294: version "1.0.30001294" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001294.tgz#4849f27b101fd59ddee3751598c663801032533d" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001294.tgz" integrity sha512-LiMlrs1nSKZ8qkNhpUf5KD0Al1KCBE3zaT7OLOwEkagXMEDij98SiOovn9wxVGQpklk9vVC/pUSqgYmkmKOS8g== caseless@~0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -853,7 +853,7 @@ chalk@^2.4.1, chalk@^2.4.2: chalk@^4.1.0: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -861,7 +861,7 @@ chalk@^4.1.0: chalk@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz" integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== dependencies: ansi-styles "^4.1.0" @@ -869,12 +869,12 @@ chalk@^4.1.1: check-more-types@^2.24.0: version "2.24.0" - resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" + resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz" integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= "chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.2: version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== dependencies: anymatch "~3.1.2" @@ -889,7 +889,7 @@ check-more-types@^2.24.0: chokidar@^2.0.0: version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== dependencies: anymatch "^2.0.0" @@ -908,17 +908,17 @@ chokidar@^2.0.0: ci-info@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== ci-info@^3.2.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz" integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" @@ -926,7 +926,7 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: class-utils@^0.3.5: version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== dependencies: arr-union "^3.1.0" @@ -936,41 +936,40 @@ class-utils@^0.3.5: clean-css@^4.x: version "4.2.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz" integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== dependencies: source-map "~0.6.0" clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-boxes@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== cli-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" -cli-table3@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" - integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== +cli-table3@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz" + integrity sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA== dependencies: - object-assign "^4.1.0" string-width "^4.2.0" optionalDependencies: - colors "^1.1.2" + colors "1.4.0" cli-truncate@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz" integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== dependencies: slice-ansi "^3.0.0" @@ -978,7 +977,7 @@ cli-truncate@^2.1.0: cliui@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + resolved "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz" integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= dependencies: string-width "^1.0.1" @@ -987,7 +986,7 @@ cliui@^3.2.0: cliui@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + resolved "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz" integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== dependencies: string-width "^2.1.1" @@ -996,29 +995,29 @@ cliui@^4.0.0: clone-buffer@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + resolved "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz" integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= clone-response@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= dependencies: mimic-response "^1.0.0" clone-stats@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + resolved "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz" integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= clone@^2.1.1: version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= cloneable-readable@^1.0.0: version "1.1.3" - resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" + resolved "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz" integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== dependencies: inherits "^2.0.1" @@ -1027,12 +1026,12 @@ cloneable-readable@^1.0.0: clsx@^1.0.4: version "1.1.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" + resolved "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz" integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== coa@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz" integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== dependencies: "@types/q" "^1.5.1" @@ -1041,12 +1040,12 @@ coa@^2.0.2: code-point-at@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= collection-map@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c" + resolved "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz" integrity sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw= dependencies: arr-map "^2.0.2" @@ -1055,7 +1054,7 @@ collection-map@^1.0.0: collection-visit@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= dependencies: map-visit "^1.0.0" @@ -1063,31 +1062,31 @@ collection-visit@^1.0.0: color-convert@^1.9.0, color-convert@^1.9.1: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-string@^1.5.2: version "1.5.5" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014" + resolved "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz" integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg== dependencies: color-name "^1.0.0" @@ -1095,12 +1094,12 @@ color-string@^1.5.2: color-support@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== color@3.0.x: version "3.0.0" - resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a" + resolved "https://registry.npmjs.org/color/-/color-3.0.0.tgz" integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w== dependencies: color-convert "^1.9.1" @@ -1108,17 +1107,17 @@ color@3.0.x: colorette@^2.0.16: version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" + resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz" integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== -colors@^1.1.2, colors@^1.2.1: +colors@1.4.0, colors@^1.2.1: version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== colorspace@1.1.x: version "1.1.2" - resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.2.tgz#e0128950d082b86a2168580796a0aa5d6c68d8c5" + resolved "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz" integrity sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ== dependencies: color "3.0.x" @@ -1126,44 +1125,44 @@ colorspace@1.1.x: combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" commander@2.15.1: version "2.15.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + resolved "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz" integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== commander@^2.19.0: version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== commander@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== common-tags@^1.8.0: version "1.8.2" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz" integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== component-emitter@^1.2.1: version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= concat-stream@^1.6.0, concat-stream@^1.6.2: version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" @@ -1173,14 +1172,14 @@ concat-stream@^1.6.0, concat-stream@^1.6.2: concat-with-sourcemaps@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" + resolved "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz" integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== dependencies: source-map "^0.6.1" config-chain@^1.1.12: version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz" integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== dependencies: ini "^1.3.4" @@ -1188,7 +1187,7 @@ config-chain@^1.1.12: configstore@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + resolved "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== dependencies: dot-prop "^5.2.0" @@ -1200,34 +1199,34 @@ configstore@^5.0.1: console-browserify@^1.1.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== constants-browserify@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= content-type@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== convert-source-map@^1.0.0, convert-source-map@^1.5.0: version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== dependencies: safe-buffer "~5.1.1" copy-descriptor@^0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= copy-props@^2.0.1: version "2.0.5" - resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.5.tgz#03cf9ae328d4ebb36f8f1d804448a6af9ee3f2d2" + resolved "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz" integrity sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw== dependencies: each-props "^1.3.2" @@ -1235,27 +1234,27 @@ copy-props@^2.0.1: core-js-pure@^3.16.0: version "3.17.3" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.17.3.tgz#98ea3587188ab7ef4695db6518eeb71aec42604a" + resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz" integrity sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ== core-js@^3.6.4: version "3.13.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.13.0.tgz#58ca436bf01d6903aee3d364089868d0d89fe58d" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.13.0.tgz" integrity sha512-iWDbiyha1M5vFwPFmQnvRv+tJzGbFAm6XimJUT0NgHYW3xZEs1SkCAcasWSVFxpI2Xb/V1DDJckq3v90+bQnog== core-util-is@1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= core-util-is@~1.0.0: version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== create-ecdh@^4.0.0: version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== dependencies: bn.js "^4.1.0" @@ -1263,7 +1262,7 @@ create-ecdh@^4.0.0: create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" @@ -1274,7 +1273,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" @@ -1286,14 +1285,14 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: cross-fetch@^3.0.4: version "3.1.4" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39" + resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz" integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ== dependencies: node-fetch "2.6.1" cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: nice-try "^1.0.4" @@ -1304,7 +1303,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: cross-spawn@^7.0.0: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -1313,7 +1312,7 @@ cross-spawn@^7.0.0: crypto-browserify@^3.11.0: version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== dependencies: browserify-cipher "^1.0.0" @@ -1330,17 +1329,17 @@ crypto-browserify@^3.11.0: crypto-random-string@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== css-select-base-adapter@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz" integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== css-select@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + resolved "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz" integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== dependencies: boolbase "^1.0.0" @@ -1350,12 +1349,12 @@ css-select@^2.0.0: css-selector-parser@^1.3.0: version "1.4.1" - resolved "https://registry.yarnpkg.com/css-selector-parser/-/css-selector-parser-1.4.1.tgz#03f9cb8a81c3e5ab2c51684557d5aaf6d2569759" + resolved "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz" integrity sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g== css-tree@1.0.0-alpha.37: version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz" integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== dependencies: mdn-data "2.0.4" @@ -1363,7 +1362,7 @@ css-tree@1.0.0-alpha.37: css-tree@^1.1.2: version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== dependencies: mdn-data "2.0.14" @@ -1371,12 +1370,12 @@ css-tree@^1.1.2: css-what@^3.2.1: version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + resolved "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz" integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== css@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" + resolved "https://registry.npmjs.org/css/-/css-3.0.0.tgz" integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== dependencies: inherits "^2.0.4" @@ -1385,30 +1384,30 @@ css@^3.0.0: cssmin@^0.4.3: version "0.4.3" - resolved "https://registry.yarnpkg.com/cssmin/-/cssmin-0.4.3.tgz#c9194077e0ebdacd691d5f59015b9d819f38d015" + resolved "https://registry.npmjs.org/cssmin/-/cssmin-0.4.3.tgz" integrity sha1-yRlAd+Dr2s1pHV9ZAVudgZ840BU= csso@^4.0.2: version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + resolved "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz" integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== dependencies: css-tree "^1.1.2" cssom@^0.3.4: version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== csstype@^3.0.2: version "3.0.8" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz" integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== -cypress@^9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.2.0.tgz#727c20b4662167890db81d5f6ba615231835b17d" - integrity sha512-Jn26Tprhfzh/a66Sdj9SoaYlnNX6Mjfmj5PHu2a7l3YHXhrgmavM368wjCmgrxC6KHTOv9SpMQGhAJn+upDViA== +cypress@^9.2.1: + version "9.2.1" + resolved "https://registry.npmjs.org/cypress/-/cypress-9.2.1.tgz" + integrity sha512-LVEe4yWCo4xO0Vd8iYjFHRyd5ulRvM56XqMgAdn05Qb9kJ6iJdO/MmjKD8gNd768698cp1FDuSmFQZHVZGk+Og== dependencies: "@cypress/request" "^2.88.10" "@cypress/xvfb" "^1.2.4" @@ -1422,7 +1421,7 @@ cypress@^9.2.0: chalk "^4.1.0" check-more-types "^2.24.0" cli-cursor "^3.1.0" - cli-table3 "~0.6.0" + cli-table3 "~0.6.1" commander "^5.1.0" common-tags "^1.8.0" dayjs "^1.10.4" @@ -1454,7 +1453,7 @@ cypress@^9.2.0: d@1, d@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz" integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== dependencies: es5-ext "^0.10.50" @@ -1462,29 +1461,29 @@ d@1, d@^1.0.1: dashdash@^1.12.0: version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" date-fns@^2.28.0: version "2.28.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.28.0.tgz#9570d656f5fc13143e50c975a3b6bbeb46cd08b2" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz" integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw== dateformat@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== dayjs@^1.10.4: version "1.10.7" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz" integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig== debug-fabulous@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/debug-fabulous/-/debug-fabulous-1.1.0.tgz#af8a08632465224ef4174a9f06308c3c2a1ebc8e" + resolved "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz" integrity sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg== dependencies: debug "3.X" @@ -1493,95 +1492,95 @@ debug-fabulous@^1.0.0: debug@3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" debug@3.X, debug@^3.1.0, debug@^3.2.7: version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" debug@^4.1.1, debug@^4.3.2: version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== dependencies: ms "2.1.2" decamelize@^1.1.1, decamelize@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= decode-uri-component@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= decompress-response@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= dependencies: mimic-response "^1.0.0" deep-extend@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== default-compare@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f" + resolved "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz" integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ== dependencies: kind-of "^5.0.2" default-resolution@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" + resolved "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz" integrity sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ= defer-to-connect@^1.0.1: version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== define-properties@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: object-keys "^1.0.12" define-property@^0.2.5: version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= dependencies: is-descriptor "^1.0.0" define-property@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== dependencies: is-descriptor "^1.0.2" @@ -1589,12 +1588,12 @@ define-property@^2.0.2: delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= des.js@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== dependencies: inherits "^2.0.1" @@ -1602,22 +1601,22 @@ des.js@^1.0.0: detect-file@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= detect-newline@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz" integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= diff@3.5.0: version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== diffie-hellman@^5.0.0: version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== dependencies: bn.js "^4.1.0" @@ -1626,7 +1625,7 @@ diffie-hellman@^5.0.0: dom-helpers@^5.1.3: version "5.2.1" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + resolved "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz" integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== dependencies: "@babel/runtime" "^7.8.7" @@ -1634,7 +1633,7 @@ dom-helpers@^5.1.3: dom-serializer@0: version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz" integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== dependencies: domelementtype "^2.0.1" @@ -1642,22 +1641,22 @@ dom-serializer@0: domain-browser@^1.1.1: version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== domelementtype@1: version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== domelementtype@^2.0.1: version "2.2.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz" integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== domutils@^1.7.0: version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz" integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== dependencies: dom-serializer "0" @@ -1665,14 +1664,14 @@ domutils@^1.7.0: dot-prop@^5.2.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== dependencies: is-obj "^2.0.0" draft-js@^0.11.7: version "0.11.7" - resolved "https://registry.yarnpkg.com/draft-js/-/draft-js-0.11.7.tgz#be293aaa255c46d8a6647f3860aa4c178484a206" + resolved "https://registry.npmjs.org/draft-js/-/draft-js-0.11.7.tgz" integrity sha512-ne7yFfN4sEL82QPQEn80xnADR8/Q6ALVworbC5UOSzOvjffmYfFsr3xSZtxbIirti14R7Y33EZC5rivpLgIbsg== dependencies: fbjs "^2.0.0" @@ -1681,12 +1680,12 @@ draft-js@^0.11.7: duplexer3@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= duplexify@^3.6.0: version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz" integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== dependencies: end-of-stream "^1.0.0" @@ -1696,7 +1695,7 @@ duplexify@^3.6.0: each-props@^1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333" + resolved "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz" integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA== dependencies: is-plain-object "^2.0.1" @@ -1704,7 +1703,7 @@ each-props@^1.3.2: ecc-jsbn@~0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" @@ -1712,7 +1711,7 @@ ecc-jsbn@~0.1.1: editorconfig@^0.15.3: version "0.15.3" - resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + resolved "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz" integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== dependencies: commander "^2.19.0" @@ -1722,12 +1721,12 @@ editorconfig@^0.15.3: electron-to-chromium@^1.4.17: version "1.4.30" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.30.tgz#0f75a1dce26dffbd5a0f7212e5b87fe0b61cbc76" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.30.tgz" integrity sha512-609z9sIMxDHg+TcR/VB3MXwH+uwtrYyeAwWc/orhnr90ixs6WVGSrt85CDLGUdNnLqCA7liv426V20EecjvflQ== elliptic@^6.5.3: version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: bn.js "^4.11.9" @@ -1740,50 +1739,50 @@ elliptic@^6.5.3: emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== enabled@2.0.x: version "2.0.0" - resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + resolved "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz" integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== encoding@^0.1.13: version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== dependencies: iconv-lite "^0.6.2" end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" enquirer@^2.3.6: version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== dependencies: ansi-colors "^4.1.1" entities@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" es-abstract@^1.17.2, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: version "1.18.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz" integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw== dependencies: call-bind "^1.0.2" @@ -1805,7 +1804,7 @@ es-abstract@^1.17.2, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: es-abstract@^1.19.1: version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz" integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== dependencies: call-bind "^1.0.2" @@ -1831,7 +1830,7 @@ es-abstract@^1.19.1: es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" @@ -1840,7 +1839,7 @@ es-to-primitive@^1.2.1: es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz" integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== dependencies: es6-iterator "~2.0.3" @@ -1849,7 +1848,7 @@ es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@ es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz" integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= dependencies: d "1" @@ -1858,12 +1857,12 @@ es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.3: es6-promise@^4.0.3: version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== es6-symbol@^3.1.1, es6-symbol@~3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz" integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== dependencies: d "^1.0.1" @@ -1871,7 +1870,7 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.3: es6-weak-map@^2.0.1, es6-weak-map@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + resolved "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz" integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== dependencies: d "1" @@ -1881,32 +1880,32 @@ es6-weak-map@^2.0.1, es6-weak-map@^2.0.3: escalade@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-goat@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escape-string-regexp@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== esprima@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== event-emitter@^0.3.5: version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + resolved "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz" integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= dependencies: d "1" @@ -1914,17 +1913,17 @@ event-emitter@^0.3.5: eventemitter2@^6.4.3: version "6.4.5" - resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.5.tgz#97380f758ae24ac15df8353e0cc27f8b95644655" + resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.5.tgz" integrity sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw== events@^3.0.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" @@ -1932,7 +1931,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: execa@4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz" integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== dependencies: cross-spawn "^7.0.0" @@ -1947,7 +1946,7 @@ execa@4.1.0: execa@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== dependencies: cross-spawn "^6.0.0" @@ -1960,14 +1959,14 @@ execa@^1.0.0: executable@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" + resolved "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz" integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== dependencies: pify "^2.2.0" expand-brackets@^2.1.4: version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= dependencies: debug "^2.3.3" @@ -1980,28 +1979,28 @@ expand-brackets@^2.1.4: expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz" integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= dependencies: homedir-polyfill "^1.0.1" ext@^1.1.2: version "1.4.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + resolved "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz" integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== dependencies: type "^2.0.0" extend-shallow@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= dependencies: assign-symbols "^1.0.0" @@ -2009,12 +2008,12 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: extend@^3.0.0, extend@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== extglob@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz" integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== dependencies: array-unique "^0.3.2" @@ -2028,7 +2027,7 @@ extglob@^2.0.4: extract-zip@2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz" integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== dependencies: debug "^4.1.1" @@ -2039,7 +2038,7 @@ extract-zip@2.0.1: extract-zip@^1.6.5: version "1.7.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz" integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== dependencies: concat-stream "^1.6.2" @@ -2049,17 +2048,17 @@ extract-zip@^1.6.5: extsprintf@1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= fancy-log@^1.3.2, fancy-log@^1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" + resolved "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz" integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== dependencies: ansi-gray "^0.1.1" @@ -2069,32 +2068,32 @@ fancy-log@^1.3.2, fancy-log@^1.3.3: fast-deep-equal@^3.1.1: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^1.0.0: version "1.1.4" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz#e6a754cc8f15e58987aa9cbd27af66fd6f4e5af9" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz" integrity sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk= fast-safe-stringify@^2.0.4: version "2.0.7" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" + resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz" integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== fbjs-css-vars@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" + resolved "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz" integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== fbjs@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-2.0.0.tgz#01fb812138d7e31831ed3e374afe27b9169ef442" + resolved "https://registry.npmjs.org/fbjs/-/fbjs-2.0.0.tgz" integrity sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ== dependencies: core-js "^3.6.4" @@ -2108,19 +2107,19 @@ fbjs@^2.0.0: fd-slicer@~1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= dependencies: pend "~1.2.0" fecha@^4.2.0: version "4.2.1" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce" + resolved "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz" integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q== figures@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" @@ -2132,7 +2131,7 @@ file-uri-to-path@1.0.0: fill-range@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= dependencies: extend-shallow "^2.0.1" @@ -2142,14 +2141,14 @@ fill-range@^4.0.0: fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" find-up@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz" integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= dependencies: path-exists "^2.0.0" @@ -2157,14 +2156,14 @@ find-up@^1.0.0: find-up@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" findup-sync@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz" integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= dependencies: detect-file "^1.0.0" @@ -2174,7 +2173,7 @@ findup-sync@^2.0.0: findup-sync@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz" integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== dependencies: detect-file "^1.0.0" @@ -2184,7 +2183,7 @@ findup-sync@^3.0.0: fined@^1.0.1: version "1.2.0" - resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" + resolved "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz" integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== dependencies: expand-tilde "^2.0.2" @@ -2195,12 +2194,12 @@ fined@^1.0.1: flagged-respawn@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" + resolved "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz" integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== flush-write-stream@^1.0.2: version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz" integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== dependencies: inherits "^2.0.3" @@ -2208,29 +2207,29 @@ flush-write-stream@^1.0.2: fn.name@1.x.x: version "1.1.0" - resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + resolved "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz" integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= for-own@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + resolved "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz" integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= dependencies: for-in "^1.0.1" forever-agent@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@~2.3.2: version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" @@ -2239,19 +2238,19 @@ form-data@~2.3.2: fraction.js@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.2.tgz#13e420a92422b6cf244dff8690ed89401029fbe8" + resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz" integrity sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA== fragment-cache@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= dependencies: map-cache "^0.2.2" fs-extra@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz" integrity sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA= dependencies: graceful-fs "^4.1.2" @@ -2260,7 +2259,7 @@ fs-extra@^1.0.0: fs-extra@^9.1.0: version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: at-least-node "^1.0.0" @@ -2270,7 +2269,7 @@ fs-extra@^9.1.0: fs-mkdirp-stream@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" + resolved "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz" integrity sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes= dependencies: graceful-fs "^4.1.11" @@ -2278,7 +2277,7 @@ fs-mkdirp-stream@^1.0.0: fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: @@ -2296,17 +2295,17 @@ fsevents@~2.3.2: function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== get-caller-file@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== dependencies: function-bind "^1.1.1" @@ -2315,21 +2314,21 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" get-symbol-description@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== dependencies: call-bind "^1.0.2" @@ -2337,26 +2336,26 @@ get-symbol-description@^1.0.0: get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= getos@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" + resolved "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz" integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== dependencies: async "^3.2.0" getpass@^0.1.1: version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" gettext-parser@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/gettext-parser/-/gettext-parser-4.2.0.tgz#9327140f76b122d44f0e8cb9338fd855667d9434" + resolved "https://registry.npmjs.org/gettext-parser/-/gettext-parser-4.2.0.tgz" integrity sha512-aMgPyjC9W5Mz9tbFU8DcQ7GYMXoFWq633kaWGt4imlcpBWzDIWk7HY7nCSZTCJxyjRaLq9L/NEjMKkZ9gR630Q== dependencies: content-type "^1.0.4" @@ -2366,7 +2365,7 @@ gettext-parser@^4.2.0: glob-parent@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz" integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= dependencies: is-glob "^3.1.0" @@ -2374,14 +2373,14 @@ glob-parent@^3.1.0: glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-stream@^6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" + resolved "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz" integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= dependencies: extend "^3.0.0" @@ -2397,7 +2396,7 @@ glob-stream@^6.1.0: glob-watcher@^5.0.3: version "5.0.5" - resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.5.tgz#aa6bce648332924d9a8489be41e3e5c52d4186dc" + resolved "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz" integrity sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw== dependencies: anymatch "^2.0.0" @@ -2410,7 +2409,7 @@ glob-watcher@^5.0.3: glob@7.1.2: version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz" integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== dependencies: fs.realpath "^1.0.0" @@ -2422,7 +2421,7 @@ glob@7.1.2: glob@^7.1.1, glob@^7.1.3: version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" @@ -2434,14 +2433,14 @@ glob@^7.1.1, glob@^7.1.3: global-dirs@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" + resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz" integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== dependencies: ini "2.0.0" global-modules@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz" integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== dependencies: global-prefix "^1.0.1" @@ -2450,7 +2449,7 @@ global-modules@^1.0.0: global-prefix@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz" integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= dependencies: expand-tilde "^2.0.2" @@ -2461,14 +2460,14 @@ global-prefix@^1.0.1: glogg@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.2.tgz#2d7dd702beda22eb3bffadf880696da6d846313f" + resolved "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz" integrity sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA== dependencies: sparkles "^1.0.0" got@^9.6.0: version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== dependencies: "@sindresorhus/is" "^0.14.0" @@ -2485,22 +2484,22 @@ got@^9.6.0: graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== graceful-fs@^4.2.0: version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== growl@1.10.5: version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== gulp-cli@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.3.0.tgz#ec0d380e29e52aa45e47977f0d32e18fd161122f" + resolved "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz" integrity sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A== dependencies: ansi-colors "^1.0.1" @@ -2524,7 +2523,7 @@ gulp-cli@^2.2.0: gulp-concat@^2.6.1: version "2.6.1" - resolved "https://registry.yarnpkg.com/gulp-concat/-/gulp-concat-2.6.1.tgz#633d16c95d88504628ad02665663cee5a4793353" + resolved "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz" integrity sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M= dependencies: concat-with-sourcemaps "^1.0.0" @@ -2533,7 +2532,7 @@ gulp-concat@^2.6.1: gulp-gzip@^1.4.2: version "1.4.2" - resolved "https://registry.yarnpkg.com/gulp-gzip/-/gulp-gzip-1.4.2.tgz#0422a94014248655b5b1a9eea1c2abee1d4f4337" + resolved "https://registry.npmjs.org/gulp-gzip/-/gulp-gzip-1.4.2.tgz" integrity sha512-ZIxfkUwk2XmZPTT9pPHrHUQlZMyp9nPhg2sfoeN27mBGpi7OaHnOD+WCN41NXjfJQ69lV1nQ9LLm1hYxx4h3UQ== dependencies: ansi-colors "^1.0.1" @@ -2545,7 +2544,7 @@ gulp-gzip@^1.4.2: gulp-mustache@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/gulp-mustache/-/gulp-mustache-5.0.0.tgz#5ebc8bbb36a0e657391b341f11325579d4502b07" + resolved "https://registry.npmjs.org/gulp-mustache/-/gulp-mustache-5.0.0.tgz" integrity sha512-8tk0R1Fd+l6+e/t954e3UheFo25dKkTapPLD1sWoSroPXfIPxyHVgbhfH5VJGqeXl3te5GOwPtfcxxZJ+PYoFg== dependencies: escape-string-regexp "^2.0.0" @@ -2556,7 +2555,7 @@ gulp-mustache@^5.0.0: gulp-postcss@^9.0.0: version "9.0.1" - resolved "https://registry.yarnpkg.com/gulp-postcss/-/gulp-postcss-9.0.1.tgz#d43caa2f2ce1018f889f7c1296faf82e9928b66f" + resolved "https://registry.npmjs.org/gulp-postcss/-/gulp-postcss-9.0.1.tgz" integrity sha512-9QUHam5JyXwGUxaaMvoFQVT44tohpEFpM8xBdPfdwTYGM0AItS1iTQz0MpsF8Jroh7GF5Jt2GVPaYgvy8qD2Fw== dependencies: fancy-log "^1.3.3" @@ -2566,12 +2565,12 @@ gulp-postcss@^9.0.0: gulp-rename@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-2.0.0.tgz#9bbc3962b0c0f52fc67cd5eaff6c223ec5b9cf6c" + resolved "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz" integrity sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ== gulp-sass@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/gulp-sass/-/gulp-sass-5.0.0.tgz#c338fc021e450a51ae977fea9014eda331ce66b7" + resolved "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.0.0.tgz" integrity sha512-J0aH0/2N4+2szGCeut0ktGHK0Wg8L9uWivuigrl7xv+nhxozBQRAKLrhnDDaTa3FeUWYtgT8w4RlgdhRy5v16w== dependencies: chalk "^4.1.1" @@ -2584,7 +2583,7 @@ gulp-sass@^5.0.0: gulp-sourcemaps@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz#2e154e1a2efed033c0e48013969e6f30337b2743" + resolved "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz" integrity sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ== dependencies: "@gulp-sourcemaps/identity-map" "^2.0.1" @@ -2601,7 +2600,7 @@ gulp-sourcemaps@^3.0.0: gulp-svg-sprite@^1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/gulp-svg-sprite/-/gulp-svg-sprite-1.5.0.tgz#292694c6af8570093f62cba09092ec8e5241d322" + resolved "https://registry.npmjs.org/gulp-svg-sprite/-/gulp-svg-sprite-1.5.0.tgz" integrity sha512-xLepqh1DjCSNm+secZsxmoWKNTXAXCC6Tglop0e2oOoiIqwBWOvep5Y+qvqRP9L3dn8qBxKkqGot8aTheNGYoQ== dependencies: plugin-error "^1.0.1" @@ -2610,7 +2609,7 @@ gulp-svg-sprite@^1.5.0: gulp@4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.2.tgz#543651070fd0f6ab0a0650c6a3e6ff5a7cb09caa" + resolved "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz" integrity sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA== dependencies: glob-watcher "^5.0.3" @@ -2620,19 +2619,19 @@ gulp@4.0.2: gulplog@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + resolved "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz" integrity sha1-4oxNRdBey77YGDY86PnFkmIp/+U= dependencies: glogg "^1.0.0" har-schema@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.3: version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: ajv "^6.12.3" @@ -2640,34 +2639,34 @@ har-validator@~5.1.3: has-bigints@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== has-tostringtag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== dependencies: has-symbols "^1.0.2" has-value@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= dependencies: get-value "^2.0.3" @@ -2676,7 +2675,7 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= dependencies: get-value "^2.0.6" @@ -2685,12 +2684,12 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= has-values@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= dependencies: is-number "^3.0.0" @@ -2698,19 +2697,19 @@ has-values@^1.0.0: has-yarn@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== has@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hash-base@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: inherits "^2.0.4" @@ -2719,7 +2718,7 @@ hash-base@^3.0.0: hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" @@ -2727,7 +2726,7 @@ hash.js@^1.0.0, hash.js@^1.0.3: hasha@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" + resolved "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz" integrity sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE= dependencies: is-stream "^1.0.1" @@ -2735,17 +2734,17 @@ hasha@^2.2.0: he@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + resolved "https://registry.npmjs.org/he/-/he-1.1.1.tgz" integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= highlight.js@^11.3.1: version "11.3.1" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.3.1.tgz#813078ef3aa519c61700f84fe9047231c5dc3291" + resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-11.3.1.tgz" integrity sha512-PUhCRnPjLtiLHZAQ5A/Dt5F8cWZeMyj9KRsACsWT+OD6OP0x6dp5OmT5jdx0JgEyPxPZZIPQpRN2TciUT7occw== hmac-drbg@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= dependencies: hash.js "^1.0.3" @@ -2754,24 +2753,24 @@ hmac-drbg@^1.0.1: homedir-polyfill@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz" integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== dependencies: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== http-cache-semantics@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== http-signature@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" @@ -2780,7 +2779,7 @@ http-signature@~1.2.0: http-signature@~1.3.6: version "1.3.6" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz" integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw== dependencies: assert-plus "^1.0.0" @@ -2789,78 +2788,78 @@ http-signature@~1.3.6: https-browserify@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= human-signals@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== iconv-lite@^0.6.2: version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" ieee754@^1.1.4: version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore-by-default@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz" integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= immediate@~3.0.5: version "3.0.6" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz" integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= immutable@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" + resolved "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz" integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== immutable@~3.7.4: version "3.7.6" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" + resolved "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz" integrity sha1-E7TTyxK++hVIKib+Gy665kAHHks= import-cwd@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" + resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz" integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== dependencies: import-from "^3.0.0" import-from@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" + resolved "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz" integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== dependencies: resolve-from "^5.0.0" import-lazy@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" @@ -2868,32 +2867,32 @@ inflight@^1.0.4: inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= inherits@2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== ini@^1.3.4, ini@~1.3.0: version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== dependencies: get-intrinsic "^1.1.0" @@ -2902,22 +2901,22 @@ internal-slot@^1.0.3: interpret@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== invert-kv@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz" integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= invert-kv@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz" integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== is-absolute@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + resolved "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz" integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== dependencies: is-relative "^1.0.0" @@ -2925,112 +2924,112 @@ is-absolute@^1.0.0: is-accessor-descriptor@^0.1.6: version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= dependencies: kind-of "^3.0.2" is-accessor-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== dependencies: kind-of "^6.0.0" is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-arrayish@^0.3.1: version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== is-bigint@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz" integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== is-binary-path@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz" integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= dependencies: binary-extensions "^1.0.0" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz" integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== dependencies: call-bind "^1.0.2" is-buffer@^1.1.5: version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-callable@^1.1.4, is-callable@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz" integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== is-callable@^1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== is-ci@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== dependencies: ci-info "^2.0.0" is-ci@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + resolved "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz" integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== dependencies: ci-info "^3.2.0" is-core-module@^2.2.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz" integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg== dependencies: has "^1.0.3" is-data-descriptor@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= dependencies: kind-of "^3.0.2" is-data-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== dependencies: kind-of "^6.0.0" is-date-object@^1.0.1: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz" integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== is-descriptor@^0.1.0: version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== dependencies: is-accessor-descriptor "^0.1.6" @@ -3039,7 +3038,7 @@ is-descriptor@^0.1.0: is-descriptor@^1.0.0, is-descriptor@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== dependencies: is-accessor-descriptor "^1.0.0" @@ -3048,55 +3047,55 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= is-extendable@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== dependencies: is-plain-object "^2.0.4" is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-fullwidth-code-point@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz" integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= dependencies: is-extglob "^2.1.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" is-installed-globally@^0.4.0, is-installed-globally@~0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz" integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== dependencies: global-dirs "^3.0.0" @@ -3104,71 +3103,71 @@ is-installed-globally@^0.4.0, is-installed-globally@~0.4.0: is-negated-glob@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" + resolved "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz" integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= is-negative-zero@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz" integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== is-npm@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" + resolved "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz" integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== is-number-object@^1.0.4: version "1.0.5" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz" integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== is-number@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= dependencies: kind-of "^3.0.2" is-number@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + resolved "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz" integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-obj@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== is-path-inside@^3.0.2: version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" is-plain-object@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== is-promise@^2.2.2: version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== is-regex@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz" integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== dependencies: call-bind "^1.0.2" @@ -3176,7 +3175,7 @@ is-regex@^1.1.3: is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" @@ -3184,119 +3183,119 @@ is-regex@^1.1.4: is-relative@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + resolved "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz" integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== dependencies: is-unc-path "^1.0.0" is-shared-array-buffer@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz" integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= is-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + 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@^1.0.5, is-string@^1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz" integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== is-string@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: has-symbols "^1.0.2" is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= is-unc-path@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + resolved "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz" integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== dependencies: unc-path-regex "^0.1.2" is-unicode-supported@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== is-utf8@^0.2.0, is-utf8@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= is-valid-glob@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" + resolved "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz" integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= is-weakref@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz" integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ== dependencies: call-bind "^1.0.0" is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-yarn-global@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isobject@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= isstream@~0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= js-beautify@^1.14.0: version "1.14.0" - resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.0.tgz#2ce790c555d53ce1e3d7363227acf5dc69024c2d" + resolved "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.0.tgz" integrity sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ== dependencies: config-chain "^1.1.12" @@ -3306,12 +3305,12 @@ js-beautify@^1.14.0: "js-tokens@^3.0.0 || ^4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.12.0, js-yaml@^3.13.1: version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" @@ -3319,54 +3318,54 @@ js-yaml@^3.12.0, js-yaml@^3.13.1: jsbn@~0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= json-buffer@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= json-parse-better-errors@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema@0.2.3: version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= json-schema@0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= json-stringify-safe@~5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= jsonfile@^2.1.0: version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz" integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= optionalDependencies: graceful-fs "^4.1.6" jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -3375,7 +3374,7 @@ jsonfile@^6.0.1: jsprim@^1.2.2: version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz" integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= dependencies: assert-plus "1.0.0" @@ -3385,7 +3384,7 @@ jsprim@^1.2.2: jsprim@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz" integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ== dependencies: assert-plus "1.0.0" @@ -3395,7 +3394,7 @@ jsprim@^2.0.2: jszip@^3.6.0: version "3.7.1" - resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.7.1.tgz#bd63401221c15625a1228c556ca8a68da6fda3d9" + resolved "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz" integrity sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg== dependencies: lie "~3.3.0" @@ -3405,60 +3404,60 @@ jszip@^3.6.0: just-debounce@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.1.0.tgz#2f81a3ad4121a76bc7cb45dbf704c0d76a8e5ddf" + resolved "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz" integrity sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ== kew@^0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" + resolved "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz" integrity sha1-edk9LTM2PW/dKXCzNdkUGtWR15s= keyv@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== dependencies: json-buffer "3.0.0" kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= dependencies: is-buffer "^1.1.5" kind-of@^5.0.0, kind-of@^5.0.2: version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== klaw@^1.0.0: version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= optionalDependencies: graceful-fs "^4.1.9" kuler@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + resolved "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz" integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== last-run@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b" + resolved "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz" integrity sha1-RblpQsF7HHnHchmCWbqUO+v4yls= dependencies: default-resolution "^2.0.0" @@ -3466,54 +3465,54 @@ last-run@^1.1.0: latest-version@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + resolved "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== dependencies: package-json "^6.3.0" lazy-ass@^1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" + resolved "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz" integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= lazystream@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + resolved "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz" integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= dependencies: readable-stream "^2.0.5" lcid@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + resolved "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz" integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= dependencies: invert-kv "^1.0.0" lcid@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + resolved "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz" integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== dependencies: invert-kv "^2.0.0" lead@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" + resolved "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz" integrity sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI= dependencies: flush-write-stream "^1.0.2" lie@~3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" + resolved "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz" integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== dependencies: immediate "~3.0.5" liftoff@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3" + resolved "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz" integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog== dependencies: extend "^3.0.0" @@ -3527,12 +3526,12 @@ liftoff@^3.1.0: lilconfig@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.3.tgz#68f3005e921dafbd2a2afb48379986aa6d2579fd" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz" integrity sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg== listr2@^3.8.3: version "3.13.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.13.5.tgz#105a813f2eb2329c4aae27373a281d610ee4985f" + resolved "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz" integrity sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA== dependencies: cli-truncate "^2.1.0" @@ -3546,7 +3545,7 @@ listr2@^3.8.3: load-json-file@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= dependencies: graceful-fs "^4.1.2" @@ -3557,7 +3556,7 @@ load-json-file@^1.0.0: load-json-file@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= dependencies: graceful-fs "^4.1.2" @@ -3567,7 +3566,7 @@ load-json-file@^4.0.0: locate-path@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" @@ -3575,12 +3574,12 @@ locate-path@^3.0.0: lodash._arraymap@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz#1a8fd0f4c0df4b61dea076d717cdc97f0a3c3e66" + resolved "https://registry.npmjs.org/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz" integrity sha1-Go/Q9MDfS2HeoHbXF83Jfwo8PmY= lodash._basecallback@^3.0.0: version "3.3.1" - resolved "https://registry.yarnpkg.com/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz#b7b2bb43dc2160424a21ccf26c57e443772a8e27" + resolved "https://registry.npmjs.org/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz" integrity sha1-t7K7Q9whYEJKIczybFfkQ3cqjic= dependencies: lodash._baseisequal "^3.0.0" @@ -3590,19 +3589,19 @@ lodash._basecallback@^3.0.0: lodash._baseeach@^3.0.0: version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz#cf8706572ca144e8d9d75227c990da982f932af3" + resolved "https://registry.npmjs.org/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz" integrity sha1-z4cGVyyhROjZ11InyZDamC+TKvM= dependencies: lodash.keys "^3.0.0" lodash._baseget@^3.0.0: version "3.7.2" - resolved "https://registry.yarnpkg.com/lodash._baseget/-/lodash._baseget-3.7.2.tgz#1b6ae1d5facf3c25532350a13c1197cb8bb674f4" + resolved "https://registry.npmjs.org/lodash._baseget/-/lodash._baseget-3.7.2.tgz" integrity sha1-G2rh1frPPCVTI1ChPBGXy4u2dPQ= lodash._baseisequal@^3.0.0: version "3.0.7" - resolved "https://registry.yarnpkg.com/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz#d8025f76339d29342767dcc887ce5cb95a5b51f1" + resolved "https://registry.npmjs.org/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz" integrity sha1-2AJfdjOdKTQnZ9zIh85cuVpbUfE= dependencies: lodash.isarray "^3.0.0" @@ -3611,39 +3610,39 @@ lodash._baseisequal@^3.0.0: lodash._bindcallback@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + resolved "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz" integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4= lodash._getnative@^3.0.0: version "3.9.1" - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + resolved "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz" integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= lodash._topath@^3.0.0: version "3.8.1" - resolved "https://registry.yarnpkg.com/lodash._topath/-/lodash._topath-3.8.1.tgz#3ec5e2606014f4cb97f755fe6914edd8bfc00eac" + resolved "https://registry.npmjs.org/lodash._topath/-/lodash._topath-3.8.1.tgz" integrity sha1-PsXiYGAU9MuX91X+aRTt2L/ADqw= dependencies: lodash.isarray "^3.0.0" lodash.isarguments@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + resolved "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz" integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= lodash.isarray@^3.0.0: version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + resolved "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= lodash.istypedarray@^3.0.0: version "3.0.6" - resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62" + resolved "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz" integrity sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I= lodash.keys@^3.0.0: version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + resolved "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz" integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo= dependencies: lodash._getnative "^3.0.0" @@ -3652,7 +3651,7 @@ lodash.keys@^3.0.0: lodash.map@^3.0.0: version "3.1.4" - resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-3.1.4.tgz#b483acd1b786c5c7b492c495f7b5266229bc00c2" + resolved "https://registry.npmjs.org/lodash.map/-/lodash.map-3.1.4.tgz" integrity sha1-tIOs0beGxce0ksSV97UmYim8AMI= dependencies: lodash._arraymap "^3.0.0" @@ -3663,19 +3662,19 @@ lodash.map@^3.0.0: lodash.once@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= lodash.pairs@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash.pairs/-/lodash.pairs-3.0.1.tgz#bbe08d5786eeeaa09a15c91ebf0dcb7d2be326a9" + resolved "https://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz" integrity sha1-u+CNV4bu6qCaFckevw3LfSvjJqk= dependencies: lodash.keys "^3.0.0" lodash.pluck@^3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash.pluck/-/lodash.pluck-3.1.2.tgz#b347f0374c0169f0eeb04d672d89cec8632c2231" + resolved "https://registry.npmjs.org/lodash.pluck/-/lodash.pluck-3.1.2.tgz" integrity sha1-s0fwN0wBafDusE1nLYnOyGMsIjE= dependencies: lodash._baseget "^3.0.0" @@ -3685,12 +3684,12 @@ lodash.pluck@^3.1.2: lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: chalk "^4.1.0" @@ -3698,7 +3697,7 @@ log-symbols@^4.0.0: log-update@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + resolved "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz" integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== dependencies: ansi-escapes "^4.3.0" @@ -3708,7 +3707,7 @@ log-update@^4.0.0: logform@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.2.0.tgz#40f036d19161fc76b68ab50fdc7fe495544492f2" + resolved "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz" integrity sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg== dependencies: colors "^1.2.1" @@ -3719,24 +3718,24 @@ logform@^2.2.0: loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== lowercase-keys@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== lru-cache@^4.1.5: version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== dependencies: pseudomap "^1.0.2" @@ -3744,69 +3743,69 @@ lru-cache@^4.1.5: lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" lru-queue@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + resolved "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz" integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= dependencies: es5-ext "~0.10.2" luxon@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-2.2.0.tgz#f5c4a234ba4016f792488b11aaed2d5bc14c888e" + resolved "https://registry.npmjs.org/luxon/-/luxon-2.2.0.tgz" integrity sha512-LwmknessH4jVIseCsizUgveIHwlLv/RQZWC2uDSMfGJs7w8faPUi2JFxfyfMcTPrpNbChTem3Uz6IKRtn+LcIA== make-dir@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" make-iterator@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" + resolved "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz" integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== dependencies: kind-of "^6.0.2" map-age-cleaner@^0.1.1: version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + resolved "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz" integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== dependencies: p-defer "^1.0.0" map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= map-stream@0.0.7: version "0.0.7" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.0.7.tgz#8a1f07896d82b10926bd3744a2420009f88974a8" + resolved "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz" integrity sha1-ih8HiW2CsQkmvTdEokIACfiJdKg= map-visit@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= dependencies: object-visit "^1.0.0" marked@^4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.8.tgz#ef127626ac65786460f9420d57cc8d5ffdcacbed" + resolved "https://registry.npmjs.org/marked/-/marked-4.0.8.tgz" integrity sha512-dkpJMIlJpc833hbjjg8jraw1t51e/eKDoG8TFOgc5O0Z77zaYKigYekTDop5AplRoKFGIaoazhYEhGkMtU3IeA== matchdep@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" + resolved "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz" integrity sha1-xvNINKDY28OzfCfui7yyfHd1WC4= dependencies: findup-sync "^2.0.0" @@ -3816,7 +3815,7 @@ matchdep@^2.0.0: md5.js@^1.3.4: version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" @@ -3825,17 +3824,17 @@ md5.js@^1.3.4: mdn-data@2.0.14: version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== mdn-data@2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== mem@^4.0.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + resolved "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz" integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== dependencies: map-age-cleaner "^0.1.1" @@ -3844,7 +3843,7 @@ mem@^4.0.0: memoizee@0.4.X: version "0.4.15" - resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" + resolved "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz" integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== dependencies: d "^1.0.1" @@ -3858,17 +3857,17 @@ memoizee@0.4.X: memorystream@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== dependencies: arr-diff "^4.0.0" @@ -3887,7 +3886,7 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: miller-rabin@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" @@ -3895,56 +3894,56 @@ miller-rabin@^4.0.0: mime-db@1.48.0: version "1.48.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz" integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== mime-types@^2.1.12, mime-types@~2.1.19: version "2.1.31" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz" integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== dependencies: mime-db "1.48.0" mimic-fn@^2.0.0, mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" minimist@0.0.8: version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== mixin-deep@^1.2.0: version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz" integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== dependencies: for-in "^1.0.2" @@ -3952,26 +3951,26 @@ mixin-deep@^1.2.0: mkdirp@0.5.1: version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@~0.5.1: version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== mocha@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" + resolved "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz" integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ== dependencies: browser-stdout "1.3.1" @@ -3988,52 +3987,52 @@ mocha@^5.2.0: mousetrap@^1.6.5: version "1.6.5" - resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.5.tgz#8a766d8c272b08393d5f56074e0b5ec183485bf9" + resolved "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz" integrity sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA== ms@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== ms@^2.1.1: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== mustache@^3.0.0: version "3.2.1" - resolved "https://registry.yarnpkg.com/mustache/-/mustache-3.2.1.tgz#89e78a9d207d78f2799b1e95764a25bf71a28322" + resolved "https://registry.npmjs.org/mustache/-/mustache-3.2.1.tgz" integrity sha512-RERvMFdLpaFfSRIEe632yDm5nsd0SDKn8hGmcUwswnyiE5mtdZLDybtHAz6hjJhawokF0hXvGLtx9mrQfm6FkA== mustache@^4.0.1: version "4.2.0" - resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" + resolved "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz" integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== mute-stdout@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331" + resolved "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz" integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg== nan@^2.12.1: - version "2.14.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" - integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + version "2.15.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" + integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== nanoid@^3.1.30: version "3.1.30" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz" integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== nanomatch@^1.2.9: version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== dependencies: arr-diff "^4.0.0" @@ -4050,27 +4049,27 @@ nanomatch@^1.2.9: next-tick@1, next-tick@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== next-tick@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= nice-try@^1.0.4: version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== node-fetch@2.6.1: version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== node-libs-browser@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz" integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== dependencies: assert "^1.1.1" @@ -4099,12 +4098,12 @@ node-libs-browser@^2.2.1: node-releases@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz" integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== nodemon@^2.0.15: version "2.0.15" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.15.tgz#504516ce3b43d9dc9a955ccd9ec57550a31a8d4e" + resolved "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz" integrity sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA== dependencies: chokidar "^3.5.2" @@ -4120,21 +4119,21 @@ nodemon@^2.0.15: nopt@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== dependencies: abbrev "1" nopt@~1.0.10: version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + resolved "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz" integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= dependencies: abbrev "1" normalize-package-data@^2.3.2: version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: hosted-git-info "^2.1.4" @@ -4144,36 +4143,36 @@ normalize-package-data@^2.3.2: normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz" integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= dependencies: remove-trailing-separator "^1.0.1" normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-range@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= normalize-url@^4.1.0: version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== now-and-later@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.1.tgz#8e579c8685764a7cc02cb680380e94f43ccb1f7c" + resolved "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz" integrity sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ== dependencies: once "^1.3.2" npm-run-all@^4.1.5: version "4.1.5" - resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" + resolved "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz" integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== dependencies: ansi-styles "^3.2.1" @@ -4188,43 +4187,43 @@ npm-run-all@^4.1.5: npm-run-path@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= dependencies: path-key "^2.0.0" npm-run-path@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" nth-check@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz" integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== dependencies: boolbase "~1.0.0" number-is-nan@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= oauth-sign@~0.9.0: version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-assign@4.X, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= object-copy@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= dependencies: copy-descriptor "^0.1.0" @@ -4233,29 +4232,29 @@ object-copy@^0.1.0: object-inspect@^1.10.3: version "1.10.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz" integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== object-inspect@^1.11.0, object-inspect@^1.9.0: version "1.11.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz" integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object-visit@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= dependencies: isobject "^3.0.0" object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: call-bind "^1.0.0" @@ -4265,7 +4264,7 @@ object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.2: object.defaults@^1.0.0, object.defaults@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + resolved "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz" integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= dependencies: array-each "^1.0.1" @@ -4275,7 +4274,7 @@ object.defaults@^1.0.0, object.defaults@^1.1.0: object.getownpropertydescriptors@^2.1.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" + resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz" integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== dependencies: call-bind "^1.0.2" @@ -4284,7 +4283,7 @@ object.getownpropertydescriptors@^2.1.0: object.map@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + resolved "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz" integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= dependencies: for-own "^1.0.0" @@ -4292,14 +4291,14 @@ object.map@^1.0.0: object.pick@^1.2.0, object.pick@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= dependencies: isobject "^3.0.1" object.reduce@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad" + resolved "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz" integrity sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60= dependencies: for-own "^1.0.0" @@ -4307,7 +4306,7 @@ object.reduce@^1.0.0: object.values@^1.1.0: version "1.1.4" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz" integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== dependencies: call-bind "^1.0.2" @@ -4316,28 +4315,28 @@ object.values@^1.1.0: once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" one-time@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + resolved "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz" integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== dependencies: fn.name "1.x.x" onetime@^5.1.0: version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" opentype.js@^1.3.4: version "1.3.4" - resolved "https://registry.yarnpkg.com/opentype.js/-/opentype.js-1.3.4.tgz#1c0e72e46288473cc4a4c6a2dc60fd7fe6020d77" + resolved "https://registry.npmjs.org/opentype.js/-/opentype.js-1.3.4.tgz" integrity sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw== dependencies: string.prototype.codepointat "^0.2.1" @@ -4345,26 +4344,26 @@ opentype.js@^1.3.4: ordered-read-streams@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" + resolved "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz" integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= dependencies: readable-stream "^2.0.1" os-browserify@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= os-locale@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + resolved "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz" integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= dependencies: lcid "^1.0.0" os-locale@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + resolved "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz" integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== dependencies: execa "^1.0.0" @@ -4373,58 +4372,58 @@ os-locale@^3.0.0: ospath@^1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" + resolved "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz" integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= p-cancelable@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== p-defer@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + resolved "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz" integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= p-finally@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= p-is-promise@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz" integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== p-limit@^2.0.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-locate@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" p-map@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" p-try@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== package-json@^6.3.0: version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + resolved "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== dependencies: got "^9.6.0" @@ -4434,12 +4433,12 @@ package-json@^6.3.0: pako@~1.0.2, pako@~1.0.5: version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== parse-asn1@^5.0.0, parse-asn1@^5.1.5: version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== dependencies: asn1.js "^5.2.0" @@ -4450,7 +4449,7 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: parse-filepath@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + resolved "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz" integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= dependencies: is-absolute "^1.0.0" @@ -4459,14 +4458,14 @@ parse-filepath@^1.0.1: parse-json@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz" integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= dependencies: error-ex "^1.2.0" parse-json@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= dependencies: error-ex "^1.3.1" @@ -4474,76 +4473,76 @@ parse-json@^4.0.0: parse-node-version@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + resolved "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz" integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== parse-passwd@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= pascalcase@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= path-browserify@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz" integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== path-dirname@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz" integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= path-exists@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= dependencies: pinkie-promise "^2.0.0" path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-root-regex@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + resolved "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz" integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= path-root@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + resolved "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz" integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= dependencies: path-root-regex "^0.1.0" path-type@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz" integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= dependencies: graceful-fs "^4.1.2" @@ -4552,14 +4551,14 @@ path-type@^1.0.0: path-type@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== dependencies: pify "^3.0.0" pbkdf2@^3.0.3: version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== dependencies: create-hash "^1.1.2" @@ -4570,17 +4569,17 @@ pbkdf2@^3.0.3: pend@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= performance-now@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= phantomjs-prebuilt@^2.1.16: version "2.1.16" - resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz#efd212a4a3966d3647684ea8ba788549be2aefef" + resolved "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz" integrity sha1-79ISpKOWbTZHaE6ouniFSb4q7+8= dependencies: es6-promise "^4.0.3" @@ -4595,44 +4594,44 @@ phantomjs-prebuilt@^2.1.16: picocolors@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== picomatch@^2.0.4, picomatch@^2.2.1: version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== pidtree@^0.3.0: version "0.3.1" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" + resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz" integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== pify@^2.0.0, pify@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= pify@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= plugin-error@^1.0.0, plugin-error@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" + resolved "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz" integrity sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA== dependencies: ansi-colors "^1.0.1" @@ -4642,12 +4641,12 @@ plugin-error@^1.0.0, plugin-error@^1.0.1: posix-character-classes@^0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= postcss-clean@^1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/postcss-clean/-/postcss-clean-1.2.2.tgz#7b44303dcecbc2b29a70ed18d22af427203fa256" + resolved "https://registry.npmjs.org/postcss-clean/-/postcss-clean-1.2.2.tgz" integrity sha512-DpuMWW19Dd2K9KY4wknMz3khq9q2yZYa2U37bnhzdtBdBv0ggIfUj5T2XD3ir6gKVlDkb5OtOqw1iQJWq6qvpw== dependencies: clean-css "^4.x" @@ -4655,7 +4654,7 @@ postcss-clean@^1.2.2: postcss-load-config@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.0.tgz#d39c47091c4aec37f50272373a6a648ef5e97829" + resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz" integrity sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g== dependencies: import-cwd "^3.0.0" @@ -4664,12 +4663,12 @@ postcss-load-config@^3.0.0: postcss-value-parser@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^6.x: version "6.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + resolved "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz" integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== dependencies: chalk "^2.4.1" @@ -4678,7 +4677,7 @@ postcss@^6.x: postcss@^7.0.16: version "7.0.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" + resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz" integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== dependencies: chalk "^2.4.2" @@ -4687,7 +4686,7 @@ postcss@^7.0.16: postcss@^8.4.5: version "8.4.5" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz" integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg== dependencies: nanoid "^3.1.30" @@ -4696,54 +4695,54 @@ postcss@^8.4.5: prepend-http@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= prettier@^2.5.1: version "2.5.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz" integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== pretty-bytes@^5.6.0: version "5.6.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== pretty-hrtime@^1.0.0: version "1.0.3" - resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + resolved "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz" integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= prettysize@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/prettysize/-/prettysize-1.1.0.tgz#c6c52f87161ff172ea435f375f99831dd9a97bb0" + resolved "https://registry.npmjs.org/prettysize/-/prettysize-1.1.0.tgz" integrity sha512-U5Noa+FYV1dGkICyLJz8IWlDUehPF4Bk9tZRO8YqPhLA9EoiHuFqtnpWY2mvMjHh5eOLo82HipeLn4RIiSsGqQ== process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@^0.11.10: version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= progress@^1.1.8: version "1.1.8" - resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + resolved "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz" integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74= promise@^7.1.1: version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + resolved "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz" integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== dependencies: asap "~2.0.3" prop-types@^15.7.2: version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== dependencies: loose-envify "^1.4.0" @@ -4752,32 +4751,32 @@ prop-types@^15.7.2: proto-list@~1.2.1: version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= proxy-from-env@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz" integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= pseudomap@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= psl@^1.1.28: version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== pstree.remy@^1.1.8: version "1.1.8" - resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" + resolved "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz" integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== public-encrypt@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== dependencies: bn.js "^4.1.0" @@ -4789,7 +4788,7 @@ public-encrypt@^4.0.0: pump@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz" integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== dependencies: end-of-stream "^1.1.0" @@ -4797,7 +4796,7 @@ pump@^2.0.0: pump@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" @@ -4805,7 +4804,7 @@ pump@^3.0.0: pumpify@^1.3.5: version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz" integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== dependencies: duplexify "^3.6.0" @@ -4814,61 +4813,61 @@ pumpify@^1.3.5: punycode@1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= punycode@^1.2.4: version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== pupa@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + resolved "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== dependencies: escape-goat "^2.0.0" q@^1.1.2: version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= qs@~6.5.2: version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== querystring-es3@^0.2.0: version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= querystring@0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" randomcolor@^0.6.2: version "0.6.2" - resolved "https://registry.yarnpkg.com/randomcolor/-/randomcolor-0.6.2.tgz#7a57362ae1a1278439aeed2c15e5deb8ea33f56d" + resolved "https://registry.npmjs.org/randomcolor/-/randomcolor-0.6.2.tgz" integrity sha512-Mn6TbyYpFgwFuQ8KJKqf3bqqY9O1y37/0jgSK/61PUxV4QfIMv0+K2ioq8DfOjkBslcjwSzRfIDEXfzA9aCx7A== randomfill@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== dependencies: randombytes "^2.0.5" @@ -4876,7 +4875,7 @@ randomfill@^1.0.3: rc@^1.2.8: version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" @@ -4886,7 +4885,7 @@ rc@^1.2.8: react-dom@~17.0.2: version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz" integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== dependencies: loose-envify "^1.1.0" @@ -4895,17 +4894,17 @@ react-dom@~17.0.2: react-is@^16.8.1: version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== react-lifecycles-compat@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + resolved "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== react-virtualized@^9.22.3: version "9.22.3" - resolved "https://registry.yarnpkg.com/react-virtualized/-/react-virtualized-9.22.3.tgz#f430f16beb0a42db420dbd4d340403c0de334421" + resolved "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.22.3.tgz" integrity sha512-MKovKMxWTcwPSxE1kK1HcheQTWfuCxAuBoSTf2gwyMM21NdX/PXUhnoP8Uc5dRKd+nKm8v41R36OellhdCpkrw== dependencies: "@babel/runtime" "^7.7.2" @@ -4917,7 +4916,7 @@ react-virtualized@^9.22.3: react@~17.0.2: version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" + resolved "https://registry.npmjs.org/react/-/react-17.0.2.tgz" integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== dependencies: loose-envify "^1.1.0" @@ -4925,7 +4924,7 @@ react@~17.0.2: read-pkg-up@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= dependencies: find-up "^1.0.0" @@ -4933,7 +4932,7 @@ read-pkg-up@^1.0.1: read-pkg@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= dependencies: load-json-file "^1.0.0" @@ -4942,7 +4941,7 @@ read-pkg@^1.0.0: read-pkg@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= dependencies: load-json-file "^4.0.0" @@ -4951,7 +4950,7 @@ read-pkg@^3.0.0: "readable-stream@2 || 3", readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" @@ -4960,7 +4959,7 @@ read-pkg@^3.0.0: readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@^2.3.7, readable-stream@~2.3.6: version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" @@ -4973,7 +4972,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable readdirp@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz" integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== dependencies: graceful-fs "^4.1.11" @@ -4982,31 +4981,31 @@ readdirp@^2.2.1: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" readline-sync@^1.4.7: version "1.4.10" - resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b" + resolved "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz" integrity sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw== rechoir@^0.6.2: version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= dependencies: resolve "^1.1.6" regenerator-runtime@^0.13.4: version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== dependencies: extend-shallow "^3.0.2" @@ -5014,21 +5013,21 @@ regex-not@^1.0.0, regex-not@^1.0.2: registry-auth-token@^4.0.0: version "4.2.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" + resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz" integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== dependencies: rc "^1.2.8" registry-url@^5.0.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + resolved "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz" integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== dependencies: rc "^1.2.8" remove-bom-buffer@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" + resolved "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz" integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ== dependencies: is-buffer "^1.1.5" @@ -5036,7 +5035,7 @@ remove-bom-buffer@^3.0.0: remove-bom-stream@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" + resolved "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz" integrity sha1-BfGlk/FuQuH7kOv1nejlaVJflSM= dependencies: remove-bom-buffer "^3.0.0" @@ -5045,32 +5044,32 @@ remove-bom-stream@^1.2.0: remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= repeat-element@^1.1.2: version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz" integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== repeat-string@^1.6.1: version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= replace-ext@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" + resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz" integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== replace-ext@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-2.0.0.tgz#9471c213d22e1bcc26717cd6e50881d88f812b06" + resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz" integrity sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug== replace-homedir@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-1.0.0.tgz#e87f6d513b928dde808260c12be7fec6ff6e798c" + resolved "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz" integrity sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw= dependencies: homedir-polyfill "^1.0.1" @@ -5079,21 +5078,21 @@ replace-homedir@^1.0.0: request-progress@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08" + resolved "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz" integrity sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg= dependencies: throttleit "^1.0.0" request-progress@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" + resolved "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz" integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= dependencies: throttleit "^1.0.0" request@^2.81.0: version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" @@ -5119,17 +5118,17 @@ request@^2.81.0: require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-main-filename@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz" integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= dependencies: expand-tilde "^2.0.0" @@ -5137,24 +5136,24 @@ resolve-dir@^1.0.0, resolve-dir@^1.0.1: resolve-from@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== resolve-options@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" + resolved "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz" integrity sha1-MrueOcBtZzONyTeMDW1gdFZq0TE= dependencies: value-or-function "^3.0.0" resolve-url@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.4.0: version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== dependencies: is-core-module "^2.2.0" @@ -5162,14 +5161,14 @@ resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.4.0: responselike@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= dependencies: lowercase-keys "^1.0.0" restore-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: onetime "^5.1.0" @@ -5177,24 +5176,24 @@ restore-cursor@^3.1.0: ret@~0.1.10: version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== rfdc@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== rimraf@^3.0.0: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" @@ -5202,36 +5201,36 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: rxjs@^7.4.0, rxjs@~7.4.0: version "7.4.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz" integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== dependencies: tslib "~2.1.0" safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-regex@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= dependencies: ret "~0.1.10" "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sass@^1.45.1: version "1.45.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.45.1.tgz#fa03951f924d1ba5762949567eaf660e608a1ab0" + resolved "https://registry.npmjs.org/sass/-/sass-1.45.1.tgz" integrity sha512-pwPRiq29UR0o4X3fiQyCtrESldXvUQAAE0QmcJTpsI4kuHHcLzZ54M1oNBVIXybQv8QF2zfkpFcTxp8ta97dUA== dependencies: chokidar ">=3.0.0 <4.0.0" @@ -5240,12 +5239,12 @@ sass@^1.45.1: sax@^1.2.4, sax@~1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== scheduler@^0.20.2: version "0.20.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz" integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== dependencies: loose-envify "^1.1.0" @@ -5253,48 +5252,48 @@ scheduler@^0.20.2: semver-diff@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz" integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== dependencies: semver "^6.3.0" semver-greatest-satisfied-range@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" + resolved "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz" integrity sha1-E+jCZYq5aRywzXEJMkAoDTb3els= dependencies: sver-compat "^1.5.0" "semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== semver@^7.3.4: version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" set-blocking@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= set-immediate-shim@~1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + resolved "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== dependencies: extend-shallow "^2.0.1" @@ -5304,12 +5303,12 @@ set-value@^2.0.0, set-value@^2.0.1: setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" @@ -5317,12 +5316,12 @@ sha.js@^2.4.0, sha.js@^2.4.8: shadow-cljs-jar@1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/shadow-cljs-jar/-/shadow-cljs-jar-1.3.2.tgz#97273afe1747b6a2311917c1c88d9e243c81957b" + resolved "https://registry.npmjs.org/shadow-cljs-jar/-/shadow-cljs-jar-1.3.2.tgz" integrity sha512-XmeffAZHv8z7451kzeq9oKh8fh278Ak+UIOGGrapyqrFBB773xN8vMQ3O7J7TYLnb9BUwcqadKkmgaq7q6fhZg== shadow-cljs@2.16.12: version "2.16.12" - resolved "https://registry.yarnpkg.com/shadow-cljs/-/shadow-cljs-2.16.12.tgz#8757b3079dadfff15ca09192f81eb69b5d25266d" + resolved "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.16.12.tgz" integrity sha512-6JqOhN5X3n0IkxA/gSUcZ1lImwcW1LmpgzlaBDOC/u/pIysdNm0tiOxpOTEnExl9nKZBS/EYS7bXIIInywPJUA== dependencies: node-libs-browser "^2.2.1" @@ -5334,43 +5333,43 @@ shadow-cljs@2.16.12: shebang-command@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= dependencies: shebang-regex "^1.0.0" shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shell-quote@^1.6.1: version "1.7.2" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz" integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== should-equal@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-2.0.0.tgz#6072cf83047360867e68e98b09d71143d04ee0c3" + resolved "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz" integrity sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA== dependencies: should-type "^1.4.0" should-format@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1" + resolved "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz" integrity sha1-m/yPdPo5IFxT04w01xcwPidxJPE= dependencies: should-type "^1.3.0" @@ -5378,7 +5377,7 @@ should-format@^3.0.3: should-type-adaptors@^1.0.1: version "1.1.0" - resolved "https://registry.yarnpkg.com/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz#401e7f33b5533033944d5cd8bf2b65027792e27a" + resolved "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz" integrity sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA== dependencies: should-type "^1.3.0" @@ -5386,17 +5385,17 @@ should-type-adaptors@^1.0.1: should-type@^1.3.0, should-type@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3" + resolved "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz" integrity sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM= should-util@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.1.tgz#fb0d71338f532a3a149213639e2d32cbea8bcb28" + resolved "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz" integrity sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g== should@^13.2.3: version "13.2.3" - resolved "https://registry.yarnpkg.com/should/-/should-13.2.3.tgz#96d8e5acf3e97b49d89b51feaa5ae8d07ef58f10" + resolved "https://registry.npmjs.org/should/-/should-13.2.3.tgz" integrity sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ== dependencies: should-equal "^2.0.0" @@ -5407,7 +5406,7 @@ should@^13.2.3: side-channel@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: call-bind "^1.0.0" @@ -5416,29 +5415,29 @@ side-channel@^1.0.4: sigmund@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + resolved "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= signal-exit@^3.0.0: version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== signal-exit@^3.0.2: version "3.0.5" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz" integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== simple-swizzle@^0.2.2: version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= dependencies: is-arrayish "^0.3.1" slice-ansi@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz" integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== dependencies: ansi-styles "^4.0.0" @@ -5447,7 +5446,7 @@ slice-ansi@^3.0.0: slice-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: ansi-styles "^4.0.0" @@ -5456,7 +5455,7 @@ slice-ansi@^4.0.0: snapdragon-node@^2.0.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== dependencies: define-property "^1.0.0" @@ -5465,14 +5464,14 @@ snapdragon-node@^2.0.1: snapdragon-util@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== dependencies: kind-of "^3.2.0" snapdragon@^0.8.1: version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== dependencies: base "^0.11.1" @@ -5486,12 +5485,12 @@ snapdragon@^0.8.1: "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz" integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== source-map-resolve@^0.5.0: version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: atob "^2.1.2" @@ -5502,7 +5501,7 @@ source-map-resolve@^0.5.0: source-map-resolve@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" + resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz" integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== dependencies: atob "^2.1.2" @@ -5510,14 +5509,14 @@ source-map-resolve@^0.6.0: source-map-support@^0.4.15: version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz" integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== dependencies: source-map "^0.5.6" source-map-support@^0.5.21: version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" @@ -5525,27 +5524,27 @@ source-map-support@^0.5.21: source-map-url@^0.4.0: version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== source-map@^0.5.1, source-map@^0.5.6: version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== sparkles@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c" + resolved "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz" integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw== spdx-correct@^3.0.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== dependencies: spdx-expression-parse "^3.0.0" @@ -5553,12 +5552,12 @@ spdx-correct@^3.0.0: spdx-exceptions@^2.1.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" @@ -5566,24 +5565,24 @@ spdx-expression-parse@^3.0.0: spdx-license-ids@^3.0.0: version "3.0.9" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz" integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== dependencies: extend-shallow "^3.0.0" sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sshpk@^1.14.1, sshpk@^1.7.0: version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz" integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== dependencies: asn1 "~0.2.3" @@ -5598,17 +5597,17 @@ sshpk@^1.14.1, sshpk@^1.7.0: stable@^0.1.8: version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== stack-trace@0.0.10, stack-trace@0.0.x: version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz" integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= static-extend@^0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= dependencies: define-property "^0.2.5" @@ -5616,7 +5615,7 @@ static-extend@^0.1.1: stream-browserify@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz" integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== dependencies: inherits "~2.0.1" @@ -5624,12 +5623,12 @@ stream-browserify@^2.0.1: stream-exhaust@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d" + resolved "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz" integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw== stream-http@^2.7.2: version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz" integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== dependencies: builtin-status-codes "^3.0.0" @@ -5640,19 +5639,19 @@ stream-http@^2.7.2: stream-shift@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== stream-to-array@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/stream-to-array/-/stream-to-array-2.3.0.tgz#bbf6b39f5f43ec30bc71babcb37557acecf34353" + resolved "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz" integrity sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M= dependencies: any-promise "^1.1.0" string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= dependencies: code-point-at "^1.0.0" @@ -5661,7 +5660,7 @@ string-width@^1.0.1, string-width@^1.0.2: string-width@^2.0.0, string-width@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" @@ -5669,7 +5668,7 @@ string-width@^2.0.0, string-width@^2.1.1: string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2: version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -5678,12 +5677,12 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2 string.prototype.codepointat@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz#004ad44c8afc727527b108cd462b4d971cd469bc" + resolved "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz" integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg== string.prototype.padend@^3.0.0: version "3.1.3" - resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz#997a6de12c92c7cb34dc8a201a6c53d9bd88a5f1" + resolved "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz" integrity sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg== dependencies: call-bind "^1.0.2" @@ -5692,7 +5691,7 @@ string.prototype.padend@^3.0.0: string.prototype.trimend@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== dependencies: call-bind "^1.0.2" @@ -5700,7 +5699,7 @@ string.prototype.trimend@^1.0.4: string.prototype.trimstart@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== dependencies: call-bind "^1.0.2" @@ -5708,116 +5707,116 @@ string.prototype.trimstart@^1.0.4: string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: ansi-regex "^3.0.0" strip-ansi@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== dependencies: ansi-regex "^5.0.0" strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-bom-string@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + resolved "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz" integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= strip-bom@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= dependencies: is-utf8 "^0.2.0" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= strip-eof@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-json-comments@~2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= supports-color@5.4.0: version "5.4.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz" integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w== dependencies: has-flag "^3.0.0" supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz" integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== dependencies: has-flag "^3.0.0" supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-color@^8.1.1: version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" sver-compat@^1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" + resolved "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz" integrity sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg= dependencies: es6-iterator "^2.0.1" @@ -5825,7 +5824,7 @@ sver-compat@^1.5.0: svg-sprite@^1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/svg-sprite/-/svg-sprite-1.5.0.tgz#d0c0dd2f9aa1bc12ca649d7a8f301370b26e42ce" + resolved "https://registry.npmjs.org/svg-sprite/-/svg-sprite-1.5.0.tgz" integrity sha512-0mE5BLY3K8wg3+HrYfzpiKbIM44IGcg8uINED8ri22EdQbLvGecOHjRtkrNAlphbiU5kyGyqoBlIaukL45fs2Q== dependencies: async "^2.6.1" @@ -5852,7 +5851,7 @@ svg-sprite@^1.5.0: svgo@^1.1.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz" integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== dependencies: chalk "^2.4.1" @@ -5871,24 +5870,24 @@ svgo@^1.1.1: tdigest@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.1.tgz#2e3cb2c39ea449e55d1e6cd91117accca4588021" + resolved "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz" integrity sha1-Ljyyw56kSeVdHmzZEReszKRYgCE= dependencies: bintrees "1.0.1" text-hex@1.0.x: version "1.0.0" - resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + resolved "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz" integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== throttleit@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" + resolved "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz" integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= through2-filter@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" + resolved "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz" integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== dependencies: through2 "~2.0.0" @@ -5896,7 +5895,7 @@ through2-filter@^3.0.0: through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== dependencies: readable-stream "~2.3.6" @@ -5904,7 +5903,7 @@ through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: through2@^3.0.1: version "3.0.2" - resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4" + resolved "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz" integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ== dependencies: inherits "^2.0.4" @@ -5912,24 +5911,24 @@ through2@^3.0.1: through@^2.3.8: version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= time-stamp@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" + resolved "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz" integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= timers-browserify@^2.0.4: version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz" integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== dependencies: setimmediate "^1.0.4" timers-ext@^0.1.7: version "0.1.7" - resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + resolved "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz" integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== dependencies: es5-ext "~0.10.46" @@ -5937,19 +5936,19 @@ timers-ext@^0.1.7: tiny-inflate@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4" + resolved "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz" integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== tmp@~0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== dependencies: rimraf "^3.0.0" to-absolute-glob@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" + resolved "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz" integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= dependencies: is-absolute "^1.0.0" @@ -5957,24 +5956,24 @@ to-absolute-glob@^2.0.0: to-arraybuffer@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= to-object-path@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= dependencies: kind-of "^3.0.2" to-readable-stream@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== to-regex-range@^2.1.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= dependencies: is-number "^3.0.0" @@ -5982,14 +5981,14 @@ to-regex-range@^2.1.0: to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== dependencies: define-property "^2.0.2" @@ -5999,21 +5998,21 @@ to-regex@^3.0.1, to-regex@^3.0.2: to-through@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" + resolved "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz" integrity sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY= dependencies: through2 "^2.0.3" touch@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + resolved "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz" integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== dependencies: nopt "~1.0.10" tough-cookie@~2.5.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: psl "^1.1.28" @@ -6021,86 +6020,86 @@ tough-cookie@~2.5.0: transfob@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/transfob/-/transfob-1.0.0.tgz#c7fc27a5b5430ad486267ae666d923f74a0ab320" + resolved "https://registry.npmjs.org/transfob/-/transfob-1.0.0.tgz" integrity sha1-x/wnpbVDCtSGJnrmZtkj90oKsyA= triple-beam@^1.2.0, triple-beam@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" + resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz" integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== tslib@^1.9.3: version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz" integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== tty-browserify@0.0.0: version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== type@^1.0.1: version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz" integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== type@^2.0.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" + resolved "https://registry.npmjs.org/type/-/type-2.5.0.tgz" integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== typedarray-to-buffer@^3.1.5: version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= ua-parser-js@^0.7.18: version "0.7.28" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" + resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz" integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== ua-parser-js@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.2.tgz#e2976c34dbfb30b15d2c300b2a53eac87c57a775" + resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz" integrity sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg== unbox-primitive@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== dependencies: function-bind "^1.1.1" @@ -6110,22 +6109,22 @@ unbox-primitive@^1.0.1: unc-path-regex@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + resolved "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz" integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= undefsafe@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" + resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz" integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== undertaker-registry@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50" + resolved "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz" integrity sha1-XkvaMI5KiirlhPm5pDWaSZglzFA= undertaker@^1.2.1: version "1.3.0" - resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.3.0.tgz#363a6e541f27954d5791d6fa3c1d321666f86d18" + resolved "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz" integrity sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg== dependencies: arr-flatten "^1.0.1" @@ -6141,7 +6140,7 @@ undertaker@^1.2.1: union-value@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== dependencies: arr-union "^3.1.0" @@ -6151,7 +6150,7 @@ union-value@^1.0.0: unique-stream@^2.0.2: version "2.3.1" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" + resolved "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz" integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A== dependencies: json-stable-stringify-without-jsonify "^1.0.1" @@ -6159,24 +6158,24 @@ unique-stream@^2.0.2: unique-string@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== dependencies: crypto-random-string "^2.0.0" universalify@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== unquote@~1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz" integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= unset-value@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= dependencies: has-value "^0.3.1" @@ -6184,17 +6183,17 @@ unset-value@^1.0.0: untildify@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== upath@^1.1.1: version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== update-notifier@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" + resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz" integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== dependencies: boxen "^5.0.0" @@ -6214,26 +6213,26 @@ update-notifier@^5.1.0: uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" urix@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= url-parse-lax@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= dependencies: prepend-http "^2.0.0" url@^0.11.0: version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= dependencies: punycode "1.3.2" @@ -6241,17 +6240,17 @@ url@^0.11.0: use@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util.promisify@~1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz" integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== dependencies: define-properties "^1.1.3" @@ -6261,38 +6260,38 @@ util.promisify@~1.0.0: util@0.10.3: version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz" integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= dependencies: inherits "2.0.1" util@^0.11.0: version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz" integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== dependencies: inherits "2.0.3" uuid@^3.3.2: version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== uuid@^8.3.2: version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== v8flags@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656" + resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz" integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== dependencies: homedir-polyfill "^1.0.1" validate-npm-package-license@^3.0.1: version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" @@ -6300,12 +6299,12 @@ validate-npm-package-license@^3.0.1: value-or-function@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" + resolved "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz" integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= verror@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= dependencies: assert-plus "^1.0.0" @@ -6314,7 +6313,7 @@ verror@1.10.0: vinyl-fs@^3.0.0: version "3.0.3" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" + resolved "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz" integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== dependencies: fs-mkdirp-stream "^1.0.0" @@ -6337,7 +6336,7 @@ vinyl-fs@^3.0.0: vinyl-sourcemap@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" + resolved "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz" integrity sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY= dependencies: append-buffer "^1.0.2" @@ -6350,14 +6349,14 @@ vinyl-sourcemap@^1.1.0: vinyl-sourcemaps-apply@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" + resolved "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz" integrity sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU= dependencies: source-map "^0.5.1" vinyl@^2.0.0, vinyl@^2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" + resolved "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz" integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== dependencies: clone "^2.1.1" @@ -6369,12 +6368,12 @@ vinyl@^2.0.0, vinyl@^2.2.0: vm-browserify@^1.0.1: version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== which-boxed-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -6385,38 +6384,38 @@ which-boxed-primitive@^1.0.2: which-module@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + resolved "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz" integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= which-module@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= which@^1.2.10, which@^1.2.14, which@^1.2.9, which@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" which@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" widest-line@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== dependencies: string-width "^4.0.0" winston-transport@^4.4.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.0.tgz#17af518daa690d5b2ecccaa7acf7b20ca7925e59" + resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz" integrity sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw== dependencies: readable-stream "^2.3.7" @@ -6424,7 +6423,7 @@ winston-transport@^4.4.0: winston@^3.1.0: version "3.3.3" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.3.3.tgz#ae6172042cafb29786afa3d09c8ff833ab7c9170" + resolved "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz" integrity sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw== dependencies: "@dabh/diagnostics" "^2.0.2" @@ -6439,7 +6438,7 @@ winston@^3.1.0: wrap-ansi@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz" integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= dependencies: string-width "^1.0.1" @@ -6447,7 +6446,7 @@ wrap-ansi@^2.0.0: wrap-ansi@^6.2.0: version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: ansi-styles "^4.0.0" @@ -6456,7 +6455,7 @@ wrap-ansi@^6.2.0: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -6465,12 +6464,12 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@^3.0.0: version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== dependencies: imurmurhash "^0.1.4" @@ -6480,64 +6479,64 @@ write-file-atomic@^3.0.0: ws@^7.4.6: version "7.5.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.0.tgz#0033bafea031fb9df041b2026fc72a571ca44691" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz" integrity sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw== xdg-basedir@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== xmldom@0.1.27: version "0.1.27" - resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" + resolved "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz" integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk= xpath@^0.0.27: version "0.0.27" - resolved "https://registry.yarnpkg.com/xpath/-/xpath-0.0.27.tgz#dd3421fbdcc5646ac32c48531b4d7e9d0c2cfa92" + resolved "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz" integrity sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ== xregexp@^5.0.1: version "5.1.0" - resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-5.1.0.tgz#c87e7ae5ffa5fdc520f898a467dcba02b0d391e9" + resolved "https://registry.npmjs.org/xregexp/-/xregexp-5.1.0.tgz" integrity sha512-PynwUWtXnSZr8tpQlDPMZfPTyv78EYuA4oI959ukxcQ0a9O/lvndLVKy5wpImzzA26eMxpZmnAXJYiQA13AtWA== dependencies: "@babel/runtime-corejs3" "^7.14.9" xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^3.2.1: version "3.2.2" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" + resolved "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz" integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== "y18n@^3.2.1 || ^4.0.0": version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== yallist@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= yallist@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^1.10.2: version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== yargs-parser@^11.1.1: version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz" integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== dependencies: camelcase "^5.0.0" @@ -6545,7 +6544,7 @@ yargs-parser@^11.1.1: yargs-parser@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.1.tgz#7ede329c1d8cdbbe209bd25cdb990e9b1ebbb394" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz" integrity sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA== dependencies: camelcase "^3.0.0" @@ -6553,7 +6552,7 @@ yargs-parser@^5.0.1: yargs@^12.0.2: version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + resolved "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz" integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== dependencies: cliui "^4.0.0" @@ -6571,7 +6570,7 @@ yargs@^12.0.2: yargs@^7.1.0: version "7.1.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.2.tgz#63a0a5d42143879fdbb30370741374e0641d55db" + resolved "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz" integrity sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA== dependencies: camelcase "^3.0.0" @@ -6590,7 +6589,7 @@ yargs@^7.1.0: yauzl@^2.10.0: version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= dependencies: buffer-crc32 "~0.2.3" From 9681d8c805c722a163f4f4ad339aed32b60177d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n?= Date: Wed, 19 Jan 2022 19:46:42 +0000 Subject: [PATCH 004/154] :globe_with_meridians: Add translations for: Catalan. Currently translated at 98.8% (858 of 868 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ca/ --- frontend/translations/ca.po | 97 ++++++++++++++++++++++++++++++++----- 1 file changed, 85 insertions(+), 12 deletions(-) diff --git a/frontend/translations/ca.po b/frontend/translations/ca.po index af16177e50..5ac69474c7 100644 --- a/frontend/translations/ca.po +++ b/frontend/translations/ca.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2021-12-06 11:26+0000\n" -"Last-Translator: Rubén \n" -"Language-Team: Catalan " -"\n" +"PO-Revision-Date: 2022-01-20 20:55+0000\n" +"Last-Translator: Rubén \n" +"Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.10-dev\n" +"X-Generator: Weblate 4.11-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -234,7 +234,7 @@ msgstr "+ Crea un equip nou" #: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" -msgstr "El vostre Penpot" +msgstr "El meu Penpot" #: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" @@ -267,10 +267,10 @@ msgid "dashboard.export-frames" msgstr "Exporta les taules de treball a PDF..." msgid "dashboard.export-multi" -msgstr "Exporta %s fitxers" +msgstr "Exporta %s fitxers de Penpot" msgid "dashboard.export-single" -msgstr "Exporta el fitxer" +msgstr "Exporta el fitxer de Penpot" msgid "dashboard.export.detail" msgstr "* Pot incloure components, gràfics, colors i/o tipografies." @@ -334,7 +334,7 @@ msgstr "" "[llicències dels tipus de lletra](https://www.typography.com/faq)." msgid "dashboard.import" -msgstr "Importa fitxers" +msgstr "Importa fitxers de Penpot" msgid "dashboard.import.analyze-error" msgstr "Vaja! No s'ha pogut importar aquest fitxer" @@ -518,7 +518,7 @@ msgstr "S'ha mogut el projecte" #: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.switch-team" -msgstr "Canvia d'equip" +msgstr "Canvieu d'equip" #: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" @@ -562,7 +562,7 @@ msgstr "Nom" #: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" -msgstr "El vostre Penpot" +msgstr "El meu Penpot" #: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" @@ -3313,4 +3313,77 @@ msgid "workspace.updates.update" msgstr "Actualitza" msgid "workspace.viewport.click-to-close-path" -msgstr "Feu clic per a tancar el camí" \ No newline at end of file +msgstr "Feu clic per a tancar el camí" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.dismiss-all" +msgstr "Descarta-ho tot" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.fonts-added" +msgid_plural "dashboard.fonts.fonts-added" +msgstr[0] "S'ha afegit 1 tipografia" +msgstr[1] "S'han afegit %s tipografies" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.upload-all" +msgstr "Puja-ho tot" + +msgid "errors.team-leave.insufficient-members" +msgstr "" +"No hi ha suficients membres com per a abandonar l'equip, potser voleu " +"eliminar-lo." + +msgid "errors.team-leave.member-does-not-exists" +msgstr "El membre que intenteu assignar no existeix." + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-dissolve" +msgstr "Dissol" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-none" +msgstr "Cap" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-push" +msgstr "Empenta" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-slide" +msgstr "Lliscament" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-duration" +msgstr "Durada" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-linear" +msgstr "Lineal" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.detach-instances-in-bulk" +msgstr "Desenganxa les instàncies" + +msgid "errors.team-leave.owner-cant-leave" +msgstr "" +"El propietari no pot abandonar l'equip, heu de reassignar el rol de " +"propietat." + +msgid "dashboard.import.import-warning" +msgstr "Alguns fitxers contenen objectes no vàlids que s'han eliminat." + +msgid "errors.auth.unable-to-login" +msgstr "Sembla que no esteu autenticat o que la sessió ha caducat." + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-offset-effect" +msgstr "Efecte de desplaçament" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation" +msgstr "Animació" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.create-artboard-from-selection" +msgstr "Selecciona a la taula de treball" From 43951aad696e38b8e008561c485c8c2a715eba29 Mon Sep 17 00:00:00 2001 From: Voxybuns Date: Wed, 19 Jan 2022 03:45:02 +0000 Subject: [PATCH 005/154] :globe_with_meridians: Add translations for: French. Currently translated at 79.9% (694 of 868 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/fr/ --- frontend/translations/fr.po | 68 ++++++++++++++++++++++++++++++++++--- 1 file changed, 63 insertions(+), 5 deletions(-) diff --git a/frontend/translations/fr.po b/frontend/translations/fr.po index 70f85c1fe9..8b546c0212 100644 --- a/frontend/translations/fr.po +++ b/frontend/translations/fr.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2021-08-10 23:33+0000\n" +"PO-Revision-Date: 2022-01-20 20:55+0000\n" "Last-Translator: Voxybuns \n" -"Language-Team: French " -"\n" +"Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -"X-Generator: Weblate 4.8-dev\n" +"X-Generator: Weblate 4.11-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -2721,4 +2721,62 @@ msgid "workspace.updates.update" msgstr "Actualiser" msgid "workspace.viewport.click-to-close-path" -msgstr "Cliquez pour fermer le chemin" \ No newline at end of file +msgstr "Cliquez pour fermer le chemin" + +msgid "common.share-link.placeholder" +msgstr "Le lien à partager apparaîtra ici" + +msgid "common.share-link.title" +msgstr "Partager les prototypes" + +msgid "common.share-link.view-all-pages" +msgstr "Toutes les pages" + +msgid "common.share-link.view-current-page" +msgstr "Seulement cette page" + +msgid "common.share-link.view-selected-pages" +msgstr "Pages sélectionnées" + +msgid "dashboard.export-frames" +msgstr "Exporter les plans de travail comme PDF..." + +msgid "dashboard.export.detail" +msgstr "" +"* Peut inclure les composants, éléments graphiques, couleurs et/ou polices " +"de caractère." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.newsletter-subscription" +msgstr "Je souhaite m'abonner à la newsletter de Penpot." + +msgid "dashboard.export.explain" +msgstr "" +"Un ou plusieurs fichiers que vous souhaitez exporter utilisent des " +"bibliothèques partagées. Que voulez-vous faire avec leurs ressources ?" + +msgid "common.share-link.confirm-deletion-link-description" +msgstr "" +"Êtes-vous certain de vouloir supprimer ce lien ? Si oui, plus personne ne " +"pourra y accéder" + +msgid "common.share-link.get-link" +msgstr "Obtenir le lien" + +msgid "common.share-link.link-copied-success" +msgstr "Lien copié avec succès" + +msgid "common.share-link.link-deleted-success" +msgstr "Lien supprimé avec succès" + +msgid "common.share-link.permissions-can-access" +msgstr "Peut y accéder" + +msgid "common.share-link.permissions-can-view" +msgstr "Peut le visionner" + +msgid "common.share-link.permissions-hint" +msgstr "N'importe qui possédant ce lien peut y accéder" + +msgid "common.share-link.remove-link" +msgstr "Supprimer le lien" From 5409f83167316422e8b32bfde21ba30518bf1676 Mon Sep 17 00:00:00 2001 From: Eva Date: Wed, 19 Jan 2022 16:58:33 +0100 Subject: [PATCH 006/154] :sparkles: Divide file menu options in semantically groups --- CHANGES.md | 1 + .../main/partials/workspace-header.scss | 54 ++++++++- .../src/app/main/ui/workspace/header.cljs | 113 +++++++++++------- frontend/translations/en.po | 24 ++++ frontend/translations/es.po | 24 ++++ 5 files changed, 169 insertions(+), 47 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index f3e14a3523..2be278b4c5 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,7 @@ ### :sparkles: New features +- Improve file menu by adding semantically groups [Github #1203](https://github.com/penpot/penpot/issues/1203). - Create firsts e2e test [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608). - Add an option to hide artboards names on the viewport [Taiga #2034](https://tree.taiga.io/project/penpot/issue/2034). - Limit pasted object position to container boundaries [Taiga #2449](https://tree.taiga.io/project/penpot/us/2449). diff --git a/frontend/resources/styles/main/partials/workspace-header.scss b/frontend/resources/styles/main/partials/workspace-header.scss index 1e0c48f417..43faf986c4 100644 --- a/frontend/resources/styles/main/partials/workspace-header.scss +++ b/frontend/resources/styles/main/partials/workspace-header.scss @@ -132,7 +132,7 @@ position: absolute; top: 40px; left: 40px; - width: 270px; + width: 183px; z-index: 12; @include animation(0, 0.2s, fadeInDown); @@ -158,6 +158,54 @@ margin: 0 $size-1; } + &:hover { + background-color: $color-primary-lighter; + } + + &.feedback { + border-top: 1px solid $color-gray-10; + } + } + } + + .sub-menu { + position: absolute; + left: 230px; + width: 270px; + z-index: 12; + @include animation(0, 0.2s, fadeInDown); + background-color: $color-white; + border-radius: $br-small; + box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.25); + + &.file { + top: 40px; + } + + &.edit { + top: 77px; + } + + &.view { + top: 114px; + } + + &.preferences { + top: 150px; + } + + li { + cursor: pointer; + font-size: $fs14; + padding: $size-2; + display: flex; + justify-content: space-between; + + span { + color: $color-gray-60; + margin: 0 $size-1; + } + .shortcut { color: $color-gray-20; font-size: $fs12; @@ -166,10 +214,6 @@ &:hover { background-color: $color-primary-lighter; } - - &.feedback { - border-top: 1px solid $color-gray-10; - } } } diff --git a/frontend/src/app/main/ui/workspace/header.cljs b/frontend/src/app/main/ui/workspace/header.cljs index ca418b63fa..6a7c5aaab8 100644 --- a/frontend/src/app/main/ui/workspace/header.cljs +++ b/frontend/src/app/main/ui/workspace/header.cljs @@ -100,6 +100,7 @@ (mf/defc menu [{:keys [layout project file team-id page-id] :as props}] (let [show-menu? (mf/use-state false) + show-sub-menu? (mf/use-state false) editing? (mf/use-state false) frames (mf/deref refs/workspace-frames) @@ -192,7 +193,8 @@ (dom/trigger-download filename body)) (fn [_error] (st/emit! (dm/error (tr "errors.unexpected-error")))) - (st/emitf dm/hide)))))))] + (st/emitf dm/hide))))))) + on-item-click (fn [item] (fn [event] (do (dom/stop-propagation event) (reset! show-sub-menu? item))))] (mf/use-effect (mf/deps @editing?) @@ -223,6 +225,51 @@ [:& dropdown {:show @show-menu? :on-close #(reset! show-menu? false)} [:ul.menu + [:li {:on-click (on-item-click :file)} + [:span (tr "workspace.header.menu.option.file")] + [:span i/arrow-slide]] + [:li {:on-click (on-item-click :edit)} + [:span (tr "workspace.header.menu.option.edit")] [:span i/arrow-slide]] + [:li {:on-click (on-item-click :view)} + [:span (tr "workspace.header.menu.option.view")] [:span i/arrow-slide]] + [:li {:on-click (on-item-click :preferences)} + [:span (tr "workspace.header.menu.option.preferences")] [:span i/arrow-slide]] + (when (contains? @cf/flags :user-feedback) + [:* + [:li.separator] + [:li.feedback {:on-click (st/emitf (rt/nav :settings-feedback))} + [:span (tr "labels.give-feedback")]]])]] + + [:& dropdown {:show (= @show-sub-menu? :file) + :on-close #(reset! show-sub-menu? false)} + [:ul.sub-menu.file + (if (:is-shared file) + [:li {:on-click on-remove-shared} + [:span (tr "dashboard.remove-shared")]] + [:li {:on-click on-add-shared} + [:span (tr "dashboard.add-shared")]]) + [:li.export-file {:on-click on-export-file} + [:span (tr "dashboard.export-single")]] + (when (seq frames) + [:li.export-file {:on-click on-export-frames} + [:span (tr "dashboard.export-frames")]])]] + + [:& dropdown {:show (= @show-sub-menu? :edit) + :on-close #(reset! show-sub-menu? false)} + [:ul.sub-menu.edit + [:li {:on-click #(st/emit! (dw/select-all))} + [:span (tr "workspace.header.menu.select-all")] + [:span.shortcut (sc/get-tooltip :select-all)]] + [:li {:on-click #(st/emit! (dw/toggle-layout-flags :scale-text))} + [:span + (if (contains? layout :scale-text) + (tr "workspace.header.menu.disable-scale-text") + (tr "workspace.header.menu.enable-scale-text"))] + [:span.shortcut (sc/get-tooltip :toggle-scale-text)]]]] + + [:& dropdown {:show (= @show-sub-menu? :view) + :on-close #(reset! show-sub-menu? false)} + [:ul.sub-menu.view [:li {:on-click #(st/emit! (dw/toggle-layout-flags :rules))} [:span (if (contains? layout :rules) @@ -237,13 +284,6 @@ (tr "workspace.header.menu.show-grid"))] [:span.shortcut (sc/get-tooltip :toggle-grid)]] - [:li {:on-click #(st/emit! (dw/toggle-layout-flags :snap-grid))} - [:span - (if (contains? layout :snap-grid) - (tr "workspace.header.menu.disable-snap-grid") - (tr "workspace.header.menu.enable-snap-grid"))] - [:span.shortcut (sc/get-tooltip :toggle-snap-grid)]] - [:li {:on-click #(st/emit! (dw/toggle-layout-flags :sitemap :layers))} [:span (if (or (contains? layout :sitemap) (contains? layout :layers)) @@ -258,12 +298,6 @@ (tr "workspace.header.menu.show-palette"))] [:span.shortcut (sc/get-tooltip :toggle-palette)]] - [:li {:on-click #(st/emit! (dw/toggle-layout-flags :display-artboard-names))} - [:span - (if (contains? layout :display-artboard-names) - (tr "workspace.header.menu.hide-artboard-names") - (tr "workspace.header.menu.show-artboard-names"))]] - [:li {:on-click #(st/emit! (dw/toggle-layout-flags :assets))} [:span (if (contains? layout :assets) @@ -271,40 +305,35 @@ (tr "workspace.header.menu.show-assets"))] [:span.shortcut (sc/get-tooltip :toggle-assets)]] - [:li {:on-click #(st/emit! (dw/select-all))} - [:span (tr "workspace.header.menu.select-all")] - [:span.shortcut (sc/get-tooltip :select-all)]] + [:li {:on-click #(st/emit! (dw/toggle-layout-flags :display-artboard-names))} + [:span + (if (contains? layout :display-artboard-names) + (tr "workspace.header.menu.hide-artboard-names") + (tr "workspace.header.menu.show-artboard-names"))]]]] + + [:& dropdown {:show (= @show-sub-menu? :preferences) + :on-close #(reset! show-sub-menu? false)} + [:ul.sub-menu.preferences + #_[:li {:on-click #()} + [:span + (if (contains? layout :snap-guide) + (tr "workspace.header.menu.disable-snap-guides") + (tr "workspace.header.menu.enable-snap-guides"))] + [:span.shortcut (sc/get-tooltip :toggle-snap-grid)]] + + [:li {:on-click #(st/emit! (dw/toggle-layout-flags :snap-grid))} + [:span + (if (contains? layout :snap-grid) + (tr "workspace.header.menu.disable-snap-grid") + (tr "workspace.header.menu.enable-snap-grid"))] + [:span.shortcut (sc/get-tooltip :toggle-snap-grid)]] [:li {:on-click #(st/emit! (dw/toggle-layout-flags :dynamic-alignment))} [:span (if (contains? layout :dynamic-alignment) (tr "workspace.header.menu.disable-dynamic-alignment") (tr "workspace.header.menu.enable-dynamic-alignment"))] - [:span.shortcut (sc/get-tooltip :toggle-alignment)]] - - [:li {:on-click #(st/emit! (dw/toggle-layout-flags :scale-text))} - [:span - (if (contains? layout :scale-text) - (tr "workspace.header.menu.disable-scale-text") - (tr "workspace.header.menu.enable-scale-text"))] - [:span.shortcut (sc/get-tooltip :toggle-scale-text)]] - - (if (:is-shared file) - [:li {:on-click on-remove-shared} - [:span (tr "dashboard.remove-shared")]] - [:li {:on-click on-add-shared} - [:span (tr "dashboard.add-shared")]]) - - [:li.export-file {:on-click on-export-file} - [:span (tr "dashboard.export-single")]] - - (when (seq frames) - [:li.export-file {:on-click on-export-frames} - [:span (tr "dashboard.export-frames")]]) - - (when (contains? @cf/flags :user-feedback) - [:li.feedback {:on-click (st/emitf (rt/nav :settings-feedback))} - [:span (tr "labels.give-feedback")]])]]])) + [:span.shortcut (sc/get-tooltip :toggle-alignment)]]]]])) ;; --- Header Component diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 0778497b5a..2b1be1b532 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -2009,6 +2009,22 @@ msgstr "Linear gradient" msgid "workspace.gradients.radial" msgstr "Radial gradient" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.option.file" +msgstr "File" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.option.edit" +msgstr "Edit" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.option.view" +msgstr "View" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.option.preferences" +msgstr "Preferences" + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Disable dynamic alignment" @@ -2021,6 +2037,10 @@ msgstr "Disable scale text" msgid "workspace.header.menu.disable-snap-grid" msgstr "Disable snap to grid" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-snap-guides" +msgstr "Disable snap to guides" + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Enable dynamic alignment" @@ -2033,6 +2053,10 @@ msgstr "Enable scale text" msgid "workspace.header.menu.enable-snap-grid" msgstr "Snap to grid" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-snap-guides" +msgstr "Snap to guides" + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Hide artboard names" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 154b274471..28099b4c8e 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -2024,6 +2024,22 @@ msgstr "Degradado lineal" msgid "workspace.gradients.radial" msgstr "Degradado radial" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.option.file" +msgstr "Archivo" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.option.edit" +msgstr "Editar" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.option.view" +msgstr "Ver" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.option.preferences" +msgstr "Preferencias" + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Desactivar alineamiento dinámico" @@ -2036,6 +2052,10 @@ msgstr "Desactivar escalar texto" msgid "workspace.header.menu.disable-snap-grid" msgstr "Desactivar alinear a la rejilla" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-snap-guides" +msgstr "Desactivar alinear a las guias" + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Activar alineamiento dinámico" @@ -2048,6 +2068,10 @@ msgstr "Activar escalar texto" msgid "workspace.header.menu.enable-snap-grid" msgstr "Alinear a la rejilla" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-snap-guides" +msgstr "Alinear a las guias" + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Ocultar nombres de tableros" From dcd53183a8471dbf457199f18d92fbd03545ac23 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 20 Jan 2022 17:15:37 +0100 Subject: [PATCH 007/154] :paperclip: Simplify distribute-objects fn impl. --- frontend/src/app/main/data/workspace.cljs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index d11e75f37a..f90d696c98 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -1198,15 +1198,16 @@ (ptk/reify ::distribute-objects ptk/WatchEvent (watch [_ state _] - (let [page-id (:current-page-id state) - objects (wsh/lookup-page-objects state page-id) - selected (wsh/lookup-selected state) - moved (-> (map #(get objects %) selected) - (gal/distribute-space axis objects)) + (let [page-id (:current-page-id state) + objects (wsh/lookup-page-objects state page-id) + selected (wsh/lookup-selected state) + moved (-> (map #(get objects %) selected) + (gal/distribute-space axis objects)) - moved-objects (->> moved (group-by :id)) - ids (keys moved-objects) - update-fn (fn [shape] (first (get moved-objects (:id shape))))] + moved (d/index-by :id moved) + ids (keys moved) + + update-fn #(get moved (:id %))] (when (can-distribute? selected) (rx/of (dch/update-shapes ids update-fn {:reg-objects? true}))))))) From c754a757eb70a9c72c24abbdf477e51ff0fc7337 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 20 Jan 2022 18:21:46 +0100 Subject: [PATCH 008/154] :sparkles: Upgrade rumext and add some examples of syntax sugar. --- .../app/common/geom/shapes/transforms.cljc | 1 - frontend/deps.edn | 2 +- frontend/src/app/main/render.cljs | 32 ++++------ frontend/src/app/main/ui.cljs | 3 +- frontend/src/app/main/ui/confirm.cljs | 20 +++--- frontend/src/app/main/ui/dashboard.cljs | 6 +- frontend/src/app/main/ui/render.cljs | 62 +++++++++---------- frontend/src/app/main/ui/workspace.cljs | 30 ++++----- 8 files changed, 67 insertions(+), 89 deletions(-) diff --git a/common/src/app/common/geom/shapes/transforms.cljc b/common/src/app/common/geom/shapes/transforms.cljc index 56010f1965..e591b76b9c 100644 --- a/common/src/app/common/geom/shapes/transforms.cljc +++ b/common/src/app/common/geom/shapes/transforms.cljc @@ -546,7 +546,6 @@ (defn transform-selrect [selrect {:keys [displacement resize-transform-inverse resize-vector resize-origin resize-vector-2 resize-origin-2]}] - ;; FIXME: Improve Performance (let [resize-transform-inverse (or resize-transform-inverse (gmt/matrix)) diff --git a/frontend/deps.edn b/frontend/deps.edn index 28d19e8260..56225cef59 100644 --- a/frontend/deps.edn +++ b/frontend/deps.edn @@ -9,7 +9,7 @@ funcool/beicon {:mvn/version "2021.07.05-1"} funcool/okulary {:mvn/version "2020.04.14-0"} funcool/potok {:mvn/version "2021.09.20-0"} - funcool/rumext {:mvn/version "2021.05.12-1"} + funcool/rumext {:mvn/version "2022.01.20.128"} funcool/tubax {:mvn/version "2021.05.20-0"} instaparse/instaparse {:mvn/version "1.4.10"} diff --git a/frontend/src/app/main/render.cljs b/frontend/src/app/main/render.cljs index b76f478593..26a197e5ae 100644 --- a/frontend/src/app/main/render.cljs +++ b/frontend/src/app/main/render.cljs @@ -227,31 +227,25 @@ include-metadata? (mf/use-ctx export/include-metadata-ctx) modifier - (mf/use-memo - (mf/deps (:x frame) (:y frame)) - (fn [] - (-> (gpt/point (:x frame) (:y frame)) - (gpt/negate) - (gmt/translate-matrix)))) + (mf/with-memo [(:x frame) (:y frame)] + (-> (gpt/point (:x frame) (:y frame)) + (gpt/negate) + (gmt/translate-matrix))) objects - (mf/use-memo - (mf/deps frame-id objects modifier) - (fn [] - (let [update-fn #(assoc-in %1 [%2 :modifiers :displacement] modifier)] - (->> (cp/get-children frame-id objects) - (into [frame-id]) - (reduce update-fn objects))))) + (mf/with-memo [frame-id objects modifier] + (let [update-fn #(assoc-in %1 [%2 :modifiers :displacement] modifier)] + (->> (cp/get-children frame-id objects) + (into [frame-id]) + (reduce update-fn objects)))) frame - (mf/use-memo - (mf/deps modifier) - (fn [] (assoc-in frame [:modifiers :displacement] modifier))) + (mf/with-memo [modifier] + (assoc-in frame [:modifiers :displacement] modifier)) wrapper - (mf/use-memo - (mf/deps objects) - (fn [] (frame-wrapper-factory objects))) + (mf/with-memo [objects] + (frame-wrapper-factory objects)) width (* (:width frame) zoom) height (* (:height frame) zoom) diff --git a/frontend/src/app/main/ui.cljs b/frontend/src/app/main/ui.cljs index c6392cc26b..6220e8372d 100644 --- a/frontend/src/app/main/ui.cljs +++ b/frontend/src/app/main/ui.cljs @@ -29,7 +29,8 @@ (mf/defc on-main-error [{:keys [error] :as props}] - (mf/use-effect (st/emitf (rt/assign-exception error))) + (mf/with-effect + (st/emit! (rt/assign-exception error))) [:span "Internal application error"]) (mf/defc main-page diff --git a/frontend/src/app/main/ui/confirm.cljs b/frontend/src/app/main/ui/confirm.cljs index a39f47b1dd..6efc5bc9b8 100644 --- a/frontend/src/app/main/ui/confirm.cljs +++ b/frontend/src/app/main/ui/confirm.cljs @@ -51,17 +51,15 @@ (st/emit! (modal/hide)) (on-cancel props)))] - (mf/use-effect - (fn [] - (let [on-keydown - (fn [event] - (when (k/enter? event) - (dom/prevent-default event) - (dom/stop-propagation event) - (st/emit! (modal/hide)) - (on-accept props))) - key (events/listen js/document EventType.KEYDOWN on-keydown)] - #(events/unlistenByKey key)))) + (mf/with-effect + (letfn [(on-keydown [event] + (when (k/enter? event) + (dom/prevent-default event) + (dom/stop-propagation event) + (st/emit! (modal/hide)) + (on-accept props)))] + (->> (events/listen js/document EventType.KEYDOWN on-keydown) + (partial events/unlistenByKey)))) [:div.modal-overlay [:div.modal-container.confirm-dialog diff --git a/frontend/src/app/main/ui/dashboard.cljs b/frontend/src/app/main/ui/dashboard.cljs index 33addf9f1e..d27bca6ba8 100644 --- a/frontend/src/app/main/ui/dashboard.cljs +++ b/frontend/src/app/main/ui/dashboard.cljs @@ -92,10 +92,8 @@ (hooks/use-shortcuts ::dashboard sc/shortcuts) - (mf/use-effect - (mf/deps team-id) - (fn [] - (st/emit! (dd/initialize {:id team-id})))) + (mf/with-effect [team-id] + (st/emit! (dd/initialize {:id team-id}))) [:& (mf/provider ctx/current-team-id) {:value team-id} [:& (mf/provider ctx/current-project-id) {:value project-id} diff --git a/frontend/src/app/main/ui/render.cljs b/frontend/src/app/main/ui/render.cljs index d5909a9ed5..5542a46713 100644 --- a/frontend/src/app/main/ui/render.cljs +++ b/frontend/src/app/main/ui/render.cljs @@ -78,28 +78,24 @@ vbox (str/join " " coords) frame-wrapper - (mf/use-memo - (mf/deps objects) - #(render/frame-wrapper-factory objects)) + (mf/with-memo [objects] + (render/frame-wrapper-factory objects)) group-wrapper - (mf/use-memo - (mf/deps objects) - #(render/group-wrapper-factory objects)) + (mf/with-memo [objects] + (render/group-wrapper-factory objects)) shape-wrapper - (mf/use-memo - (mf/deps objects) - #(render/shape-wrapper-factory objects)) + (mf/with-memo [objects] + (render/shape-wrapper-factory objects)) text-shapes (->> objects (filter (fn [[_ shape]] (= :text (:type shape)))) (mapv second))] - (mf/use-effect - (mf/deps width height) - #(dom/set-page-style {:size (str (mth/ceil width) "px " + (mf/with-effect [width height] + (dom/set-page-style {:size (str (mth/ceil width) "px " (mth/ceil height) "px")})) [:& (mf/provider embed/context) {:value false} @@ -148,20 +144,19 @@ (mf/defc render-object [{:keys [file-id page-id object-id render-texts?] :as props}] (let [objects (mf/use-state nil)] - (mf/use-effect - (mf/deps file-id page-id object-id) - (fn [] - (->> (rx/zip - (repo/query! :font-variants {:file-id file-id}) - (repo/query! :trimmed-file {:id file-id :page-id page-id :object-id object-id})) - (rx/subs - (fn [[fonts {:keys [data]}]] - (when (seq fonts) - (st/emit! (df/fonts-fetched fonts))) - (let [objs (get-in data [:pages-index page-id :objects]) - objs (adapt-root-frame objs object-id)] - (reset! objects objs))))) - (constantly nil))) + + (mf/with-effect [file-id page-id object-id] + (->> (rx/zip + (repo/query! :font-variants {:file-id file-id}) + (repo/query! :trimmed-file {:id file-id :page-id page-id :object-id object-id})) + (rx/subs + (fn [[fonts {:keys [data]}]] + (when (seq fonts) + (st/emit! (df/fonts-fetched fonts))) + (let [objs (get-in data [:pages-index page-id :objects]) + objs (adapt-root-frame objs object-id)] + (reset! objects objs))))) + (constantly nil)) (when @objects [:& object-svg {:objects @objects @@ -172,14 +167,13 @@ (mf/defc render-sprite [{:keys [file-id component-id] :as props}] (let [file (mf/use-state nil)] - (mf/use-effect - (mf/deps file-id) - (fn [] - (->> (repo/query! :file {:id file-id}) - (rx/subs - (fn [result] - (reset! file result)))) - (constantly nil))) + + (mf/with-effect [file-id] + (->> (repo/query! :file {:id file-id}) + (rx/subs + (fn [result] + (reset! file result)))) + (constantly nil)) (when @file [:* diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index 7181f147fa..43f89e04e6 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -117,29 +117,23 @@ layout (mf/deref refs/workspace-layout)] ;; Setting the layout preset by its name - (mf/use-effect - (mf/deps layout-name) - (fn [] - (st/emit! (dw/setup-layout layout-name)))) + (mf/with-effect [layout-name] + (st/emit! (dw/setup-layout layout-name))) - (mf/use-effect - (mf/deps project-id file-id) - (fn [] - (st/emit! (dw/initialize-file project-id file-id)) - (fn [] - (st/emit! ::dwp/force-persist - (dw/finalize-file project-id file-id))))) + (mf/with-effect [project-id file-id] + (st/emit! (dw/initialize-file project-id file-id)) + (fn [] + (st/emit! ::dwp/force-persist + (dw/finalize-file project-id file-id)))) ;; Close any non-modal dialog that may be still open - (mf/use-effect - (fn [] (st/emit! dm/hide))) + (mf/with-effect + (st/emit! dm/hide)) ;; Set properly the page title - (mf/use-effect - (mf/deps (:name file)) - (fn [] - (when (:name file) - (dom/set-html-title (tr "title.workspace" (:name file)))))) + (mf/with-effect [(:name file)] + (when (:name file) + (dom/set-html-title (tr "title.workspace" (:name file))))) [:& (mf/provider ctx/current-file-id) {:value (:id file)} [:& (mf/provider ctx/current-team-id) {:value (:team-id project)} From 07a0f67b32b8c63be03abc242ca0f044812f5142 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 20 Jan 2022 18:22:21 +0100 Subject: [PATCH 009/154] :lipstick: Minor cosmetic change on reg-object. --- common/src/app/common/pages/changes.cljc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/common/src/app/common/pages/changes.cljc b/common/src/app/common/pages/changes.cljc index f8539e038e..46ccfcb176 100644 --- a/common/src/app/common/pages/changes.cljc +++ b/common/src/app/common/pages/changes.cljc @@ -160,9 +160,7 @@ update-fn #(d/update-when %1 %2 update-group %1) xform (comp (mapcat #(cons % (cph/get-parents % objects))) - (map lookup) - (filter #(contains? #{:group :bool} (:type %))) - (map :id) + (filter #(contains? #{:group :bool} (-> % lookup :type))) (distinct))] (->> (sequence xform shapes) From b96ad5b37f13d73fcc8ef7b66b7d86cc62538b54 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 20 Jan 2022 18:26:36 +0100 Subject: [PATCH 010/154] :lipstick: Minor cosmetic change on get-parents fn. --- common/src/app/common/pages/helpers.cljc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/common/src/app/common/pages/helpers.cljc b/common/src/app/common/pages/helpers.cljc index 4fd822eca4..5cefcd4ae9 100644 --- a/common/src/app/common/pages/helpers.cljc +++ b/common/src/app/common/pages/helpers.cljc @@ -137,9 +137,8 @@ (defn get-parents [shape-id objects] - (let [{:keys [parent-id]} (get objects shape-id)] - (when parent-id - (lazy-seq (cons parent-id (get-parents parent-id objects)))))) + (when-let [parent-id (->> shape-id (get objects) :parent-id)] + (lazy-seq (cons parent-id (get-parents parent-id objects))))) (defn get-frame "Get the frame that contains the shape. If the shape is already a frame, get itself." From 2d00e68b78468a2c5dac99892394ce17b70eddef Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Fri, 21 Jan 2022 13:45:17 +0100 Subject: [PATCH 011/154] :construction_worker: Tests e2e for drawing basic forms --- CHANGES.md | 1 + .../integration/09-draw/draw-shapes.spec.js | 69 +++++++++++++++++++ frontend/cypress/support/commands.js | 56 ++++++++++++++- frontend/src/debug.cljs | 10 ++- 4 files changed, 134 insertions(+), 2 deletions(-) create mode 100644 frontend/cypress/integration/09-draw/draw-shapes.spec.js diff --git a/CHANGES.md b/CHANGES.md index 2be278b4c5..89b2722751 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,7 @@ ### :sparkles: New features +- Create e2e tests for drawing basic fors [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608). - Improve file menu by adding semantically groups [Github #1203](https://github.com/penpot/penpot/issues/1203). - Create firsts e2e test [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608). - Add an option to hide artboards names on the viewport [Taiga #2034](https://tree.taiga.io/project/penpot/issue/2034). diff --git a/frontend/cypress/integration/09-draw/draw-shapes.spec.js b/frontend/cypress/integration/09-draw/draw-shapes.spec.js new file mode 100644 index 0000000000..d1fd9ec5aa --- /dev/null +++ b/frontend/cypress/integration/09-draw/draw-shapes.spec.js @@ -0,0 +1,69 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright (c) UXBOX Labs SL + */ + + "use strict"; + + describe("draw shapes", () => { + beforeEach(() => { + cy.fixture('validuser.json').then((user) => { + cy.login(user.email, user.password) + cy.get(".project-th").first().dblclick() + cy.clearViewport(); + }); + }); + + it("draw an artboard", () => { + cy.get(".viewport-controls rect").should("not.exist"); + cy.get(".left-toolbar-options li[alt='Artboard (A)']").click() + cy.drawInViewport(300, 300, 400, 450) + cy.get(".viewport-controls rect").first().as("artboard"); + cy.get("@artboard").should("exist"); + cy.get("@artboard").invoke('attr', 'width').should('eq', '100') + cy.get("@artboard").invoke('attr', 'height').should('eq', '150') + }); + + it("draw a square", () => { + cy.get(".viewport-controls rect").should("not.exist"); + cy.get(".left-toolbar-options li[alt='Rectangle (R)']").click() + cy.drawInViewport(300, 300, 400, 450) + cy.get(".viewport-controls rect").should("exist"); + cy.get(".viewport-controls rect").invoke('attr', 'width').should('eq', '100') + cy.get(".viewport-controls rect").invoke('attr', 'height').should('eq', '150') + }); + + it("draw an ellipse", () => { + cy.get(".viewport-controls ellipse").should("not.exist"); + cy.get(".left-toolbar-options li[alt='Ellipse (E)']").click() + cy.drawInViewport(300, 300, 400, 450) + cy.get(".viewport-controls ellipse").as("ellipse") + cy.get("@ellipse").should("exist"); + cy.get("@ellipse").invoke('attr', 'rx').should('eq', '50') + cy.get("@ellipse").invoke('attr', 'ry').should('eq', '75') + }); + + it("draw a curve", () => { + cy.get(".viewport-controls path").should("not.exist"); + cy.get(".left-toolbar-options li[alt='Curve (Shift+C)']").click() + cy.drawMultiInViewport([{x:300, y:300}, {x:350, y:300}, {x:300, y:350}, {x:400, y:450}]) + cy.get(".viewport-controls path").as("curve") + cy.get("@curve").should("exist"); + cy.get("@curve").invoke('attr', 'd').should('eq', "M300,300L350,300L300,350L400,450") + }); + + it("draw a path", () => { + cy.get(".viewport-controls path").should("not.exist"); + cy.get(".left-toolbar-options li[alt='Path (P)']").click() + cy.clickMultiInViewport([{x:300, y:300}, {x:350, y:300}]) + cy.drawMultiInViewport([{x:400, y:450}, {x:450, y:450}], true) + cy.clickMultiInViewport([{x:300, y:300}]) + cy.get(".viewport-controls path").as("curve") + cy.get("@curve").should("exist"); + cy.get("@curve").invoke('attr', 'd').should('eq', "M300,300L350,300C350,300,350,450,400,450C450,450,300,300,300,300Z") + }); + + }); diff --git a/frontend/cypress/support/commands.js b/frontend/cypress/support/commands.js index 5a48d945c6..a5c7845edb 100644 --- a/frontend/cypress/support/commands.js +++ b/frontend/cypress/support/commands.js @@ -35,4 +35,58 @@ Cypress.Commands.add('login', (email, password) => { Cypress.Commands.add('demoLogin', () => { cy.visit("http://localhost:3449/#/auth/login"); cy.get("a").contains("Create demo account").click() - }) \ No newline at end of file + }) + + Cypress.Commands.add('drawInViewport', (x1, y1, x2, y2) => { + cy.get(".viewport-controls") + .trigger('mousemove', { x: x1, y: y1 }) + .trigger('mousedown', { + x: x1, + y: y1, + which: 1 + }) + .trigger('mousemove', { x: x2, y: y2 }) + .trigger('mouseup', { x: x2, y: y2, which: 1 }); +}) + +Cypress.Commands.add('drawMultiInViewport', (coords, force=false) => { + cy.get(".viewport-controls") + .trigger('mousemove', { x: coords[0].x, y: coords[0].y, force: force}) + .trigger('mousedown', { + x: coords[0].x, + y: coords[0].y, + which: 1, + force: force + }); + + for (var i=1; i { + for (var i=0; i { + cy.get(".viewport-controls").type('{ctrl}a'); + cy.get(".viewport-controls").type('{del}'); + cy.window().its("debug").invoke('reset_viewport') +}) \ No newline at end of file diff --git a/frontend/src/debug.cljs b/frontend/src/debug.cljs index d46e0b35c4..ef4bb46e57 100644 --- a/frontend/src/debug.cljs +++ b/frontend/src/debug.cljs @@ -11,7 +11,8 @@ [app.common.pages :as cp] [app.common.transit :as t] [app.common.uuid :as uuid] - [app.main.data.workspace.changes :as dwc] + [app.main.data.workspace :as dw] + [app.main.data.workspace.changes :as dwc] [app.main.store :as st] [app.util.object :as obj] [app.util.timers :as timers] @@ -270,3 +271,10 @@ (-> (p/let [response (js/fetch url)] (.text response)) (p/then apply-changes))) + +(defn ^:export reset-viewport + [] + (st/emit! + dw/reset-zoom + (dw/update-viewport-position {:x (constantly 0) :y (constantly 0)}))) + From ffa134f8245381487d87e7ac1c2305fed49fc3ce Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 21 Jan 2022 14:47:22 +0100 Subject: [PATCH 012/154] :bug: Fix incorrect behavior of trim-file-data. --- backend/src/app/rpc/queries/files.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/app/rpc/queries/files.clj b/backend/src/app/rpc/queries/files.clj index ea6832aa29..8e22f66371 100644 --- a/backend/src/app/rpc/queries/files.clj +++ b/backend/src/app/rpc/queries/files.clj @@ -251,7 +251,7 @@ (-> file (update :data assoc :pages-index {page-id page}) - (assoc :pages [page-id])))) + (update :data assoc :pages [page-id])))) (declare strip-frames-with-thumbnails) From 8f6fdf361b2b5b61aedc9413cb33a4ca8030f9d8 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 21 Jan 2022 14:48:33 +0100 Subject: [PATCH 013/154] :zap: Improve path rendering performance. --- common/src/app/common/geom/shapes/path.cljc | 19 +-- .../app/common/geom/shapes/transforms.cljc | 13 +- common/src/app/common/path/commands.cljc | 4 +- frontend/src/app/main/ui/shapes/path.cljs | 7 +- frontend/src/app/util/path/format.cljs | 144 +++++++++--------- 5 files changed, 95 insertions(+), 92 deletions(-) diff --git a/common/src/app/common/geom/shapes/path.cljc b/common/src/app/common/geom/shapes/path.cljc index b9fc403ba4..38d2e56807 100644 --- a/common/src/app/common/geom/shapes/path.cljc +++ b/common/src/app/common/geom/shapes/path.cljc @@ -376,19 +376,20 @@ set-tr (fn [params px py] - (assoc params - px (+ (get params px) dx) - py (+ (get params py) dy))) + (-> params + (update px + dx) + (update py + dy))) transform-params - (fn [params] + (fn [{:keys [x c1x c2x] :as params}] (cond-> params - (contains? params :x) (set-tr :x :y) - (contains? params :c1x) (set-tr :c1x :c1y) - (contains? params :c2x) (set-tr :c2x :c2y)))] + (some? x) (set-tr :x :y) + (some? c1x) (set-tr :c1x :c1y) + (some? c2x) (set-tr :c2x :c2y)))] - (->> content - (mapv #(d/update-when % :params transform-params))))) + (into [] + (map #(update % :params transform-params)) + content))) (defn transform-content [content transform] diff --git a/common/src/app/common/geom/shapes/transforms.cljc b/common/src/app/common/geom/shapes/transforms.cljc index e591b76b9c..4490f91947 100644 --- a/common/src/app/common/geom/shapes/transforms.cljc +++ b/common/src/app/common/geom/shapes/transforms.cljc @@ -42,9 +42,9 @@ (defn move "Move the shape relatively to its current position applying the provided delta." - [shape {dx :x dy :y}] - (let [dx (d/check-num dx) - dy (d/check-num dy) + [{:keys [type] :as shape} {dx :x dy :y}] + (let [dx (d/check-num dx) + dy (d/check-num dy) move-vec (gpt/point dx dy)] (-> shape @@ -52,11 +52,8 @@ (update :points move-points move-vec) (d/update-when :x + dx) (d/update-when :y + dy) - (cond-> (= :bool (:type shape)) - (update :bool-content gpa/move-content move-vec)) - (cond-> (= :path (:type shape)) - (update :content gpa/move-content move-vec))))) - + (cond-> (= :bool type) (update :bool-content gpa/move-content move-vec)) + (cond-> (= :path type) (update :content gpa/move-content move-vec))))) ;; --- Absolute Movement diff --git a/common/src/app/common/path/commands.cljc b/common/src/app/common/path/commands.cljc index d787c2457a..a79b346760 100644 --- a/common/src/app/common/path/commands.cljc +++ b/common/src/app/common/path/commands.cljc @@ -17,8 +17,8 @@ (command->point command)))) ([command] - (when-not (nil? command) - (let [{{:keys [x y]} :params} command] + (when command + (let [{:keys [x y]} (:params command)] (gpt/point x y))))) diff --git a/frontend/src/app/main/ui/shapes/path.cljs b/frontend/src/app/main/ui/shapes/path.cljs index 8c2decdc6f..2a71c026f9 100644 --- a/frontend/src/app/main/ui/shapes/path.cljs +++ b/frontend/src/app/main/ui/shapes/path.cljs @@ -19,10 +19,11 @@ [props] (let [shape (unchecked-get props "shape") content (:content shape) - pdata (mf/use-memo (mf/deps content) #(upf/format-path content)) + pdata (mf/with-memo [content] + (upf/format-path content)) + props (-> (attrs/extract-style-attrs shape) - (obj/merge! - #js {:d pdata}))] + (obj/set! "d" pdata))] [:& shape-custom-stroke {:shape shape} [:> :path props]])) diff --git a/frontend/src/app/util/path/format.cljs b/frontend/src/app/util/path/format.cljs index 80b1f92143..30c2745470 100644 --- a/frontend/src/app/util/path/format.cljs +++ b/frontend/src/app/util/path/format.cljs @@ -8,88 +8,92 @@ (:require [app.common.path.commands :as upc] [app.common.path.subpaths :refer [pt=]] - [cuerdas.core :as str])) + [app.util.array :as arr])) -(defn command->param-list [command] - (let [params (:params command)] - (case (:command command) - (:move-to :line-to :smooth-quadratic-bezier-curve-to) - (str (:x params) "," - (:y params)) +(defn- join-params + ([a] + (js* "\"\"+~{}" a)) + ([a b] + (js* "\"\"+~{}+\",\"+~{}" a b)) + ([a b c] + (js* "\"\"+~{}+\",\"+~{}+\",\"+~{}" a b c)) + ([a b c d] + (js* "\"\"+~{}+\",\"+~{}+\",\"+~{}+\",\"+~{}" a b c d)) + ([a b c d e] + (js* "\"\"+~{}+\",\"+~{}+\",\"+~{}+\",\"+~{}+\",\"+~{}" a b c d e)) + ([a b c d e f] + (js* "\"\"+~{}+\",\"+~{}+\",\"+~{}+\",\"+~{}+\",\"+~{}+\",\"+~{}" a b c d e f)) + ([a b c d e f g] + (js* "\"\"+~{}+\",\"+~{}+\",\"+~{}+\",\"+~{}+\",\"+~{}+\",\"+~{}+\",\"+~{}" a b c d e f g))) - :close-path - "" +(defn- translate-params + [command {:keys [x y] :as params}] + (case command + (:move-to :line-to :smooth-quadratic-bezier-curve-to) + (join-params x y) - (:line-to-horizontal :line-to-vertical) - (str (:value params)) + :close-path + "" - :curve-to - (str (:c1x params) "," - (:c1y params) "," - (:c2x params) "," - (:c2y params) "," - (:x params) "," - (:y params)) + (:line-to-horizontal :line-to-vertical) + (:value params) - (:smooth-curve-to :quadratic-bezier-curve-to) - (str (:cx params) "," - (:cy params) "," - (:x params) "," - (:y params)) + :curve-to + (let [{:keys [c1x c1y c2x c2y]} params] + (join-params c1x c1y c2x c2y x y)) - :elliptical-arc - (str (:rx params) "," - (:ry params) "," - (:x-axis-rotation params) "," - (:large-arc-flag params) "," - (:sweep-flag params) "," - (:x params) "," - (:y params)) + (:smooth-curve-to :quadratic-bezier-curve-to) + (let [{:keys [cx cy]} params] + (join-params cx cy x y)) - ""))) + :elliptical-arc + (let [{:keys [rx ry x-axis-rotation large-arc-flag sweep-flag]} params] + (join-params rx ry x-axis-rotation large-arc-flag sweep-flag x y)) -(defn command->string [{:keys [command relative] :as entry}] - (let [command-str (case command - :move-to "M" - :close-path "Z" - :line-to "L" - :line-to-horizontal "H" - :line-to-vertical "V" - :curve-to "C" - :smooth-curve-to "S" - :quadratic-bezier-curve-to "Q" - :smooth-quadratic-bezier-curve-to "T" - :elliptical-arc "A" - "") - command-str (if relative (str/lower command-str) command-str) - param-list (command->param-list entry)] - (str command-str param-list))) + "")) + +(defn- translate-command + [cname] + (case cname + :move-to "M" + :close-path "Z" + :line-to "L" + :line-to-horizontal "H" + :line-to-vertical "V" + :curve-to "C" + :smooth-curve-to "S" + :quadratic-bezier-curve-to "Q" + :smooth-quadratic-bezier-curve-to "T" + :elliptical-arc "A" + "")) -(defn set-point - [command point] - (-> command - (assoc-in [:params :x] (:x point)) - (assoc-in [:params :y] (:y point)))) +(defn- command->string + [{:keys [command relative params]}] + (let [cmd (cond-> (translate-command command) + relative (.toLowerCase)) + prm (translate-params command params)] + (js* "~{} + ~{}" cmd prm))) + +(defn- set-point + [command {:keys [x y]}] + (update command :params assoc :x x :y y)) (defn format-path [content] - (with-out-str - (loop [last-move nil - current (first content) - content (rest content)] + (let [result (make-array (count content))] + (reduce (fn [last-move current] + (let [point (upc/command->point current) + current-move? (= :move-to (:command current)) + last-move (if current-move? point last-move)] - (when (some? current) - (let [point (upc/command->point current) - current-move? (= :move-to (:command current)) - last-move (if current-move? point last-move)] + (if (and (not current-move?) (pt= last-move point)) + (arr/conj! result (command->string (set-point current last-move))) + (arr/conj! result (command->string current))) - (if (and (not current-move?) (pt= last-move point)) - (print (command->string (set-point current last-move))) - (print (command->string current))) + (when (and (not current-move?) (pt= last-move point)) + (arr/conj! result "Z")) - (when (and (not current-move?) (pt= last-move point)) - (print "Z")) - - (recur last-move - (first content) - (rest content))))))) + last-move)) + nil + content) + (.join ^js result ""))) From 540e1fc492ed8957b4dc889e3b248220808eb92b Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Tue, 25 Jan 2022 11:11:51 +0100 Subject: [PATCH 014/154] :bug: Fix missing entry of e2e fixtures on gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 21d28901f3..8edf733f89 100644 --- a/.gitignore +++ b/.gitignore @@ -34,13 +34,14 @@ /exporter/target /frontend/.shadow-cljs /frontend/cypress/videos/*/ -/frontend/cypress/videos/*/ +/frontend/cypress/fixtures/validuser.json /frontend/dist/ /frontend/npm-debug.log /frontend/out/ /frontend/resources/fonts/experiments /frontend/resources/public/* /frontend/target/ +/frontend/cypress/videos/*/ /media /telemetry/ /vendor/**/target From 0766938f98a4cc1af5a1fc6a59844a7a52485da5 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 18 Jan 2022 10:57:51 +0100 Subject: [PATCH 015/154] :sparkles: Add guides UI --- common/src/app/common/colors.cljc | 1 + frontend/src/app/main/data/workspace.cljs | 6 + .../src/app/main/data/workspace/guides.cljs | 70 +++ frontend/src/app/main/ui/workspace.cljs | 34 +- frontend/src/app/main/ui/workspace/rules.cljs | 122 ----- .../src/app/main/ui/workspace/viewport.cljs | 46 +- .../main/ui/workspace/viewport/guides.cljs | 437 ++++++++++++++++++ .../app/main/ui/workspace/viewport/rules.cljs | 137 ++++++ 8 files changed, 693 insertions(+), 160 deletions(-) create mode 100644 frontend/src/app/main/data/workspace/guides.cljs delete mode 100644 frontend/src/app/main/ui/workspace/rules.cljs create mode 100644 frontend/src/app/main/ui/workspace/viewport/guides.cljs create mode 100644 frontend/src/app/main/ui/workspace/viewport/rules.cljs diff --git a/common/src/app/common/colors.cljc b/common/src/app/common/colors.cljc index f8acee0d3f..a8db384076 100644 --- a/common/src/app/common/colors.cljc +++ b/common/src/app/common/colors.cljc @@ -15,4 +15,5 @@ (def info "#59B9E2") (def test "#fabada") (def white "#FFFFFF") +(def primary "#31EFB8") diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index d2d08f1558..2ed754a816 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -30,6 +30,7 @@ [app.main.data.workspace.drawing :as dwd] [app.main.data.workspace.fix-bool-contents :as fbc] [app.main.data.workspace.groups :as dwg] + [app.main.data.workspace.guides :as dwgu] [app.main.data.workspace.interactions :as dwi] [app.main.data.workspace.layers :as dwly] [app.main.data.workspace.libraries :as dwl] @@ -2033,3 +2034,8 @@ ;; Shapes to path (d/export dwps/convert-selected-to-path) + +;; Guides +(d/export dwgu/update-guides) +(d/export dwgu/remove-guide) + diff --git a/frontend/src/app/main/data/workspace/guides.cljs b/frontend/src/app/main/data/workspace/guides.cljs new file mode 100644 index 0000000000..612b4adf7e --- /dev/null +++ b/frontend/src/app/main/data/workspace/guides.cljs @@ -0,0 +1,70 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.main.data.workspace.guides + (:require + [app.main.data.workspace.changes :as dwc] + [app.main.data.workspace.state-helpers :as wsh] + [beicon.core :as rx] + [potok.core :as ptk])) + +(defn make-update-guide [guide] + (fn [other] + (cond-> other + (= (:id other) (:id guide)) + (merge guide)))) + +(defn update-guides [guide] + (ptk/reify ::update-guides + ptk/WatchEvent + (watch [it state _] + (let [page-id (:current-page-id state) + guides (-> state wsh/lookup-page-options (:guides [])) + guides-ids? (into #{} (map :id) guides) + + new-guides + (if (guides-ids? (:id guide)) + ;; Update existing guide + (mapv (make-update-guide guide) guides) + + ;; Add new guide + (conj guides guide)) + + rch [{:type :set-option + :page-id page-id + :option :guides + :value new-guides}] + uch [{:type :set-option + :page-id page-id + :option :guides + :value guides}]] + (rx/of + (dwc/commit-changes + {:redo-changes rch + :undo-changes uch + :origin it})))))) + +(defn remove-guide [guide] + (ptk/reify ::remove-guide + ptk/WatchEvent + (watch [it state _] + (let [page-id (:current-page-id state) + guides (-> state wsh/lookup-page-options (:guides [])) + new-guides (filterv #(not= (:id %) (:id guide)) guides) + + rch [{:type :set-option + :page-id page-id + :option :guides + :value new-guides}] + uch [{:type :set-option + :page-id page-id + :option :guides + :value guides}]] + (rx/of + (dwc/commit-changes + {:redo-changes rch + :undo-changes uch + :origin it})))))) diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index 43f89e04e6..541fb0b843 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -20,7 +20,6 @@ [app.main.ui.workspace.header :refer [header]] [app.main.ui.workspace.left-toolbar :refer [left-toolbar]] [app.main.ui.workspace.libraries] - [app.main.ui.workspace.rules :refer [horizontal-rule vertical-rule]] [app.main.ui.workspace.sidebar :refer [left-sidebar right-sidebar]] [app.main.ui.workspace.viewport :refer [viewport]] [app.util.dom :as dom] @@ -31,45 +30,22 @@ ;; --- Workspace -(mf/defc workspace-rules - {::mf/wrap-props false - ::mf/wrap [mf/memo]} - [props] - (let [zoom (or (obj/get props "zoom") 1) - vbox (obj/get props "vbox") - vport (obj/get props "vport") - colorpalette? (obj/get props "colorpalette?")] - - [:* - [:div.empty-rule-square] - [:& horizontal-rule {:zoom zoom - :vbox vbox - :vport vport}] - [:& vertical-rule {:zoom zoom - :vbox vbox - :vport vport}] - [:& coordinates/coordinates {:colorpalette? colorpalette?}]])) - (mf/defc workspace-content {::mf/wrap-props false} [props] (let [selected (mf/deref refs/selected-shapes) local (mf/deref refs/viewport-data) - {:keys [zoom vbox vport options-mode]} local + {:keys [options-mode]} local file (obj/get props "file") - layout (obj/get props "layout")] + layout (obj/get props "layout") + colorpalette? (:colorpalette layout)] [:* - (when (:colorpalette layout) - [:& colorpalette]) + (when colorpalette? [:& colorpalette]) [:section.workspace-content [:section.workspace-viewport - (when (contains? layout :rules) - [:& workspace-rules {:zoom zoom - :vbox vbox - :vport vport - :colorpalette? (contains? layout :colorpalette)}]) + [:& coordinates/coordinates {:colorpalette? colorpalette?}] [:& viewport {:file file :local local diff --git a/frontend/src/app/main/ui/workspace/rules.cljs b/frontend/src/app/main/ui/workspace/rules.cljs deleted file mode 100644 index a9d5b34b2e..0000000000 --- a/frontend/src/app/main/ui/workspace/rules.cljs +++ /dev/null @@ -1,122 +0,0 @@ -;; This Source Code Form is subject to the terms of the Mozilla Public -;; License, v. 2.0. If a copy of the MPL was not distributed with this -;; file, You can obtain one at http://mozilla.org/MPL/2.0/. -;; -;; Copyright (c) UXBOX Labs SL - -(ns app.main.ui.workspace.rules - (:require - [app.common.colors :as colors] - [app.common.math :as mth] - [app.util.object :as obj] - [rumext.alpha :as mf])) - -(defn- calculate-step-size - [zoom] - (cond - (< 0 zoom 0.008) 10000 - (< 0.008 zoom 0.015) 5000 - (< 0.015 zoom 0.04) 2500 - (< 0.04 zoom 0.07) 1000 - (< 0.07 zoom 0.2) 500 - (< 0.2 zoom 0.5) 250 - (< 0.5 zoom 1) 100 - (<= 1 zoom 2) 50 - (< 2 zoom 4) 25 - (< 4 zoom 6) 10 - (< 6 zoom 15) 5 - (< 15 zoom 25) 2 - (< 25 zoom) 1 - :else 1)) - -(defn draw-rule! - [dctx {:keys [zoom size start type]}] - (when start - (let [txfm (- (* (- 0 start) zoom) 20) - step (calculate-step-size zoom) - - minv (max (mth/round start) -100000) - minv (* (mth/ceil (/ minv step)) step) - - maxv (min (mth/round (+ start (/ size zoom))) 100000) - maxv (* (mth/floor (/ maxv step)) step) - - path (js/Path2D.)] - - (if (= type :horizontal) - (.translate dctx txfm 0) - (.translate dctx 0 txfm)) - - (obj/set! dctx "font" "12px worksans") - (obj/set! dctx "fillStyle" colors/gray-30) - (obj/set! dctx "strokeStyle" colors/gray-30) - (obj/set! dctx "textAlign" "center") - - (loop [i minv] - (if (<= i maxv) - (let [pos (+ (* i zoom) 0)] - (.save dctx) - (if (= type :horizontal) - (do - ;; Write the rule numbers - (.fillText dctx (str i) pos 13) - - ;; Build the rules lines - (.moveTo path pos 17) - (.lineTo path pos 20)) - (do - ;; Write the rule numbers - (.translate dctx 12 pos) - (.rotate dctx (/ (* 270 js/Math.PI) 180)) - (.fillText dctx (str i) 0 0) - - ;; Build the rules lines - (.moveTo path 17 pos) - (.lineTo path 20 pos))) - (.restore dctx) - (recur (+ i step))) - - ;; Put the path in the canvas - (.stroke dctx path)))))) - - -(mf/defc horizontal-rule - [{:keys [zoom vbox vport] :as props}] - (let [canvas (mf/use-ref) - width (- (:width vport) 20)] - (mf/use-layout-effect - (mf/deps zoom width (:x vbox)) - (fn [] - (let [node (mf/ref-val canvas) - dctx (.getContext ^js node "2d")] - (obj/set! node "width" width) - (draw-rule! dctx {:zoom zoom - :type :horizontal - :size width - :start (+ (:x vbox) (:left-offset vbox))})))) - - [:canvas.horizontal-rule - {:ref canvas - :width width - :height 20}])) - -(mf/defc vertical-rule - [{:keys [zoom vbox vport] :as props}] - (let [canvas (mf/use-ref) - height (- (:height vport) 20)] - (mf/use-layout-effect - (mf/deps zoom height (:y vbox)) - (fn [] - (let [node (mf/ref-val canvas) - dctx (.getContext ^js node "2d")] - (obj/set! node "height" height) - (draw-rule! dctx {:zoom zoom - :type :vertical - :size height - :count 100 - :start (:y vbox)})))) - - [:canvas.vertical-rule - {:ref canvas - :width 20 - :height height}])) diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index bb1eb36056..015d39e3e5 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -21,11 +21,13 @@ [app.main.ui.workspace.viewport.drawarea :as drawarea] [app.main.ui.workspace.viewport.frame-grid :as frame-grid] [app.main.ui.workspace.viewport.gradients :as gradients] + [app.main.ui.workspace.viewport.guides :as guides] [app.main.ui.workspace.viewport.hooks :as hooks] [app.main.ui.workspace.viewport.interactions :as interactions] [app.main.ui.workspace.viewport.outline :as outline] [app.main.ui.workspace.viewport.pixel-overlay :as pixel-overlay] [app.main.ui.workspace.viewport.presence :as presence] + [app.main.ui.workspace.viewport.rules :as rules] [app.main.ui.workspace.viewport.selection :as selection] [app.main.ui.workspace.viewport.snap-distances :as snap-distances] [app.main.ui.workspace.viewport.snap-points :as snap-points] @@ -89,6 +91,13 @@ ;; STREAMS move-stream (mf/use-memo #(rx/subject)) + frame-parent (mf/use-memo + (mf/deps @hover-ids base-objects) + (fn [] + (let [parent (get base-objects (last @hover-ids))] + (when (= :frame (:type parent)) + parent)))) + zoom (d/check-num zoom 1) drawing-tool (:tool drawing) drawing-obj (:object drawing) @@ -145,7 +154,11 @@ (or drawing-obj transform)) show-selrect? (and selrect (empty? drawing)) show-measures? (and (not transform) (not node-editing?) show-distances?) - show-artboard-names? (contains? layout :display-artboard-names)] + show-artboard-names? (contains? layout :display-artboard-names) + show-rules? (contains? layout :rules) + + ;; TODO + show-guides? true] (hooks/setup-dom-events viewport-ref zoom disable-paste in-viewport?) (hooks/setup-viewport-size viewport-ref) @@ -157,6 +170,8 @@ (hooks/setup-shortcuts node-editing? drawing-path?) (hooks/setup-active-frames base-objects vbox hover active-frames) + + [:div.viewport [:div.viewport-overlays @@ -294,7 +309,9 @@ (when show-grids? [:& frame-grid/frame-grid - {:zoom zoom :selected selected :transform transform}]) + {:zoom zoom + :selected selected + :transform transform}]) (when show-pixel-grid? [:& widgets/pixel-grid @@ -325,12 +342,6 @@ {:zoom zoom :tooltip tooltip}]) - (when show-presence? - [:& presence/active-cursors - {:page-id page-id}]) - - [:& widgets/viewport-actions] - (when show-prototypes? [:& interactions/interactions {:selected selected @@ -341,5 +352,22 @@ (when show-selrect? [:& widgets/selection-rect {:data selrect - :zoom zoom}])]]])) + :zoom zoom}]) + + (when show-presence? + [:& presence/active-cursors + {:page-id page-id}]) + + [:& widgets/viewport-actions] + + (when show-rules? + [:& rules/rules + {:zoom zoom + :vbox vbox}]) + + (when show-guides? + [:& guides/viewport-guides + {:zoom zoom + :vbox vbox + :hover-frame frame-parent}])]]])) diff --git a/frontend/src/app/main/ui/workspace/viewport/guides.cljs b/frontend/src/app/main/ui/workspace/viewport/guides.cljs new file mode 100644 index 0000000000..64e846e338 --- /dev/null +++ b/frontend/src/app/main/ui/workspace/viewport/guides.cljs @@ -0,0 +1,437 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.main.ui.workspace.viewport.guides + (:require + [app.common.colors :as colors] + [app.common.math :as mth] + [app.common.uuid :as uuid] + [app.main.data.workspace :as dw] + [app.main.refs :as refs] + [app.main.store :as st] + [app.main.streams :as ms] + [app.main.ui.workspace.viewport.rules :as rules] + [app.util.dom :as dom] + [rumext.alpha :as mf])) + +(def guide-width 1) +(def guide-opacity 0.7) +(def guide-opacity-hover 1) +(def guide-color colors/primary) +(def guide-pill-width 34) +(def guide-pill-height 20) +(def guide-pill-corner-radius 4) +(def guide-active-area 16) + +(defn use-guide + "Hooks to support drag/drop for existing guides and new guides" + [on-guide-change get-hover-frame zoom {:keys [position axis frame-id]}] + (let [dragging-ref (mf/use-ref false) + start-ref (mf/use-ref nil) + start-pos-ref (mf/use-ref nil) + state (mf/use-state {:hover false + :new-position nil + :new-frame-id frame-id}) + + frame-id (:new-frame-id @state) + + frame-ref (mf/use-memo (mf/deps frame-id) #(refs/object-by-id frame-id)) + frame (mf/deref frame-ref) + + on-pointer-enter + (mf/use-callback + (fn [] + (swap! state assoc :hover true))) + + on-pointer-leave + (mf/use-callback + (fn [] + (swap! state assoc :hover false))) + + on-pointer-down + (mf/use-callback + (fn [event] + (dom/capture-pointer event) + (mf/set-ref-val! dragging-ref true) + (mf/set-ref-val! start-ref (dom/get-client-position event)) + (mf/set-ref-val! start-pos-ref (get @ms/mouse-position axis)))) + + on-pointer-up + (mf/use-callback + (mf/deps (select-keys @state [:new-position :new-frame-id]) on-guide-change) + (fn [] + (when (some? on-guide-change) + (when (some? (:new-position @state)) + (on-guide-change {:position (:new-position @state) + :frame-id (:new-frame-id @state)}))))) + + on-lost-pointer-capture + (mf/use-callback + (fn [event] + (dom/release-pointer event) + (mf/set-ref-val! dragging-ref false) + (mf/set-ref-val! start-ref nil) + (mf/set-ref-val! start-pos-ref nil) + (swap! state assoc :new-position nil))) + + on-mouse-move + (mf/use-callback + (mf/deps position zoom) + (fn [event] + + (when-let [_ (mf/ref-val dragging-ref)] + (let [start-pt (mf/ref-val start-ref) + start-pos (mf/ref-val start-pos-ref) + current-pt (dom/get-client-position event) + delta (/ (- (get current-pt axis) (get start-pt axis)) zoom) + new-position (if (some? position) + (+ position delta) + (+ start-pos delta)) + + ;; TODO: Change when pixel-grid flag exists + new-position (mth/round new-position) + new-frame-id (:id (get-hover-frame))] + #_(prn ">>" new-position new-frame-id) + (swap! state assoc + :new-position new-position + :new-frame-id new-frame-id)))))] + {:on-pointer-enter on-pointer-enter + :on-pointer-leave on-pointer-leave + :on-pointer-down on-pointer-down + :on-pointer-up on-pointer-up + :on-lost-pointer-capture on-lost-pointer-capture + :on-mouse-move on-mouse-move + :state state + :frame frame})) + +;; This functions are auxiliary to get the coords of components depending on the axis +;; we're handling + +(defn guide-area-axis + [pos vbox zoom frame axis] + (let [rules-pos (/ rules/rules-pos zoom) + guide-active-area (/ guide-active-area zoom)] + (cond + (and (some? frame) (= axis :x)) + {:x (- pos (/ guide-active-area 2)) + :y (:y frame) + :width guide-active-area + :height (:height frame)} + + (some? frame) + {:x (:x frame) + :y (- pos (/ guide-active-area 2)) + :width (:width frame) + :height guide-active-area} + + (= axis :x) + {:x (- pos (/ guide-active-area 2)) + :y (+ (:y vbox) rules-pos) + :width guide-active-area + :height (:height vbox)} + + :else + {:x (+ (:x vbox) rules-pos) + :y (- pos (/ guide-active-area 2)) + :width (:width vbox) + :height guide-active-area} + + + + ))) + +(defn guide-line-axis + ([pos vbox axis] + (if (= axis :x) + {:x1 pos + :y1 (:y vbox) + :x2 pos + :y2 (+ (:y vbox) (:height vbox))} + + {:x1 (:x vbox) + :y1 pos + :x2 (+ (:x vbox) (:width vbox)) + :y2 pos})) + + ([pos vbox frame axis] + (if (= axis :x) + {:l1-x1 pos + :l1-y1 (:y vbox) + :l1-x2 pos + :l1-y2 (:y frame) + :l2-x1 pos + :l2-y1 (:y frame) + :l2-x2 pos + :l2-y2 (+ (:y frame) (:height frame)) + :l3-x1 pos + :l3-y1 (+ (:y frame) (:height frame)) + :l3-x2 pos + :l3-y2 (+ (:y vbox) (:height vbox))} + {:l1-x1 (:x vbox) + :l1-y1 pos + :l1-x2 (:x frame) + :l1-y2 pos + :l2-x1 (:x frame) + :l2-y1 pos + :l2-x2 (+ (:x frame) (:width frame)) + :l2-y2 pos + :l3-x1 (+ (:x frame) (:width frame)) + :l3-y1 pos + :l3-x2 (+ (:x vbox) (:width vbox)) + :l3-y2 pos}))) + +(defn guide-pill-axis + [pos vbox zoom axis] + (let [rules-pos (/ rules/rules-pos zoom) + guide-pill-width (/ guide-pill-width zoom) + guide-pill-height (/ guide-pill-height zoom)] + + (if (= axis :x) + {:rect-x (- pos (/ guide-pill-width 2)) + :rect-y (+ (:y vbox) rules-pos (- (/ guide-pill-width 2)) (/ 2 zoom)) + :rect-width guide-pill-width + :rect-height guide-pill-height + :text-x pos + :text-y (+ (:y vbox) rules-pos (- (/ 3 zoom)))} + + {:rect-x (+ (:x vbox) rules-pos (- (/ guide-pill-height 2)) (- (/ 5 zoom))) + :rect-y (- pos (/ guide-pill-width 2)) + :rect-width guide-pill-height + :rect-height guide-pill-width + :text-x (+ (:x vbox) rules-pos (- (/ 3 zoom))) + :text-y pos}))) + +(defn guide-inside-vbox? + ([vbox] + (partial guide-inside-vbox? vbox)) + + ([{:keys [x y width height]} {:keys [axis position]}] + (let [x1 x + x2 (+ x width) + y1 y + y2 (+ y height)] + (if (= axis :x) + (and (>= position x1) + (<= position x2)) + (and (>= position y1) + (<= position y2)))))) + +(defn guide-creation-area + [vbox zoom axis] + (if (= axis :x) + {:x (:x vbox) + :y (:y vbox) + :width (/ 24 zoom) + :height (:height vbox)} + + {:x (:x vbox) + :y (:y vbox) + :width (:width vbox) + :height (/ 24 zoom)})) + +(mf/defc guide + {::mf/wrap [mf/memo]} + [{:keys [guide hover? on-guide-change get-hover-frame vbox zoom hover-frame]}] + + (let [axis (:axis guide) + + handle-change-position + (mf/use-callback + (mf/deps on-guide-change) + (fn [changes] + (when on-guide-change + (on-guide-change (merge guide changes))))) + + {:keys [on-pointer-enter + on-pointer-leave + on-pointer-down + on-pointer-up + on-lost-pointer-capture + on-mouse-move + state + frame]} (use-guide handle-change-position get-hover-frame zoom guide) + + frame (or frame hover-frame) + pos (or (:new-position @state) (:position guide)) + guide-width (/ guide-width zoom) + guide-pill-corner-radius (/ guide-pill-corner-radius zoom)] + + [:g.guide-area + (let [{:keys [x y width height]} (guide-area-axis pos vbox zoom frame axis)] + [:rect {:x x + :y y + :width width + :height height + :style {:fill "none" + :pointer-events "fill" + :cursor (if (= axis :x) "ew-resize" "ns-resize")} + :on-pointer-enter on-pointer-enter + :on-pointer-leave on-pointer-leave + :on-pointer-down on-pointer-down + :on-pointer-up on-pointer-up + :on-lost-pointer-capture on-lost-pointer-capture + :on-mouse-move on-mouse-move}]) + + (if (some? frame) + (let [{:keys [l1-x1 l1-y1 l1-x2 l1-y2 + l2-x1 l2-y1 l2-x2 l2-y2 + l3-x1 l3-y1 l3-x2 l3-y2]} + (guide-line-axis pos vbox frame axis)] + [:g + (when (or hover? (:hover @state)) + [:line {:x1 l1-x1 + :y1 l1-y1 + :x2 l1-x2 + :y2 l1-y2 + :style {:stroke guide-color + :stroke-opacity guide-opacity-hover + :stroke-dasharray (str "0, " (/ 6 zoom)) + :stroke-linecap "round" + :stroke-width guide-width}}]) + [:line {:x1 l2-x1 + :y1 l2-y1 + :x2 l2-x2 + :y2 l2-y2 + :style {:stroke guide-color + :stroke-width guide-width + :stroke-opacity (if (or hover? (:hover @state)) + guide-opacity-hover + guide-opacity)}}] + (when (or hover? (:hover @state)) + [:line {:x1 l3-x1 + :y1 l3-y1 + :x2 l3-x2 + :y2 l3-y2 + :style {:stroke guide-color + :stroke-opacity guide-opacity-hover + :stroke-width guide-width + :stroke-dasharray (str "0, " (/ 6 zoom)) + :stroke-linecap "round"}}])]) + + (let [{:keys [x1 y1 x2 y2]} (guide-line-axis pos vbox axis)] + [:line {:x1 x1 + :y1 y1 + :x2 x2 + :y2 y2 + :style {:stroke guide-color + :stroke-width guide-width + :stroke-opacity (if (or hover? (:hover @state)) + guide-opacity-hover + guide-opacity)}}])) + + (when (or hover? (:hover @state)) + (let [{:keys [rect-x rect-y rect-width rect-height text-x text-y]} + (guide-pill-axis pos vbox zoom axis)] + [:g.guide-pill + [:rect {:x rect-x + :y rect-y + :width rect-width + :height rect-height + :rx guide-pill-corner-radius + :ry guide-pill-corner-radius + :style {:fill guide-color}}] + + [:text {:x text-x + :y text-y + :text-anchor "middle" + :dominant-baseline "middle" + :transform (when (= axis :y) (str "rotate(-90 " text-x "," text-y ")")) + :style {:font-size (/ 13 zoom) + :font-family "sourcesanspro" + :fill colors/black}} + (str (mth/round pos))]]))])) + +(mf/defc new-guide-area + [{:keys [vbox zoom axis get-hover-frame]}] + + (let [on-guide-change + (mf/use-callback + (mf/deps vbox) + (fn [guide] + (let [guide (-> guide + (assoc :id (uuid/next) + :axis axis))] + (when (guide-inside-vbox? vbox guide) + (st/emit! (dw/update-guides guide)))))) + + {:keys [on-pointer-enter + on-pointer-leave + on-pointer-down + on-pointer-up + on-lost-pointer-capture + on-mouse-move + state + frame]} (use-guide on-guide-change get-hover-frame zoom {:axis axis})] + + [:g.new-guides + (let [{:keys [x y width height]} (guide-creation-area vbox zoom axis)] + [:rect {:x x + :y y + :width width + :height height + :on-pointer-enter on-pointer-enter + :on-pointer-leave on-pointer-leave + :on-pointer-down on-pointer-down + :on-pointer-up on-pointer-up + :on-lost-pointer-capture on-lost-pointer-capture + :on-mouse-move on-mouse-move + :style {:fill "none" + :pointer-events "fill" + :cursor (if (= axis :x) "ew-resize" "ns-resize")}}]) + + (when (:new-position @state) + [:& guide {:guide {:axis axis + :position (:new-position @state)} + :get-hover-frame get-hover-frame + :vbox vbox + :zoom zoom + :hover? true + :hover-frame frame}])])) + +(mf/defc viewport-guides + {::mf/wrap [mf/memo]} + [{:keys [zoom vbox hover-frame]}] + + (let [page (mf/deref refs/workspace-page) + guides (->> (get-in page [:options :guides] []) + (filter (guide-inside-vbox? vbox))) + + hover-frame-ref (mf/use-ref nil) + + ;; We use the ref to not redraw every guide everytime the hovering frame change + ;; we're only interested to get the frame in the guide we're moving + get-hover-frame + (mf/use-callback + (fn [] + (mf/ref-val hover-frame-ref))) + + on-guide-change + (mf/use-callback + (mf/deps vbox) + (fn [guide] + (if (guide-inside-vbox? vbox guide) + (st/emit! (dw/update-guides guide)) + (st/emit! (dw/remove-guide guide)))))] + + #_(mf/use-effect (mf/deps guides) #(.log js/console (clj->js guides))) + (mf/use-effect + (mf/deps hover-frame) + (fn [] + #_(.log js/console "set" (clj->js hover-frame)) + (mf/set-ref-val! hover-frame-ref hover-frame))) + + [:g.guides {:pointer-events "none"} + [:& new-guide-area {:vbox vbox :zoom zoom :axis :x :get-hover-frame get-hover-frame}] + [:& new-guide-area {:vbox vbox :zoom zoom :axis :y :get-hover-frame get-hover-frame}] + + (for [current guides] + [:& guide {:key (str "guide-" (:id current)) + :guide current + :vbox vbox + :zoom zoom + :get-hover-frame get-hover-frame + :on-guide-change on-guide-change}])])) + diff --git a/frontend/src/app/main/ui/workspace/viewport/rules.cljs b/frontend/src/app/main/ui/workspace/viewport/rules.cljs new file mode 100644 index 0000000000..6b21452744 --- /dev/null +++ b/frontend/src/app/main/ui/workspace/viewport/rules.cljs @@ -0,0 +1,137 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.main.ui.workspace.viewport.rules + (:require + [app.common.colors :as colors] + [app.common.data :as d] + [app.common.math :as mth] + [app.util.object :as obj] + [rumext.alpha :as mf])) + +(def rules-pos 15) +(def rules-size 4) +(def rules-width 1) + +;; ---------------- +;; RULES +;; ---------------- + +(defn- calculate-step-size + [zoom] + (cond + (< 0 zoom 0.008) 10000 + (< 0.008 zoom 0.015) 5000 + (< 0.015 zoom 0.04) 2500 + (< 0.04 zoom 0.07) 1000 + (< 0.07 zoom 0.2) 500 + (< 0.2 zoom 0.5) 250 + (< 0.5 zoom 1) 100 + (<= 1 zoom 2) 50 + (< 2 zoom 4) 25 + (< 4 zoom 6) 10 + (< 6 zoom 15) 5 + (< 15 zoom 25) 2 + (< 25 zoom) 1 + :else 1)) + +(defn get-clip-area + [vbox zoom axis] + (if (= axis :x) + (let [x (+ (:x vbox) (/ 25 zoom)) + y (:y vbox) + width (- (:width vbox) (/ 21 zoom)) + height (/ 25 zoom)] + {:x x :y y :width width :height height}) + + (let [x (:x vbox) + y (+ (:y vbox) (/ 25 zoom)) + width (/ 25 zoom) + height (- (:height vbox) (/ 21 zoom))] + {:x x :y y :width width :height height}))) + +(defn get-rule-params + [vbox axis] + (if (= axis :x) + (let [start (:x vbox) + end (+ start (:width vbox))] + {:start start :end end}) + + (let [start (:y vbox) + end (+ start (:height vbox))] + {:start start :end end}))) + +(defn get-rule-axis + [val vbox zoom axis] + (let [rules-pos (/ rules-pos zoom) + rules-size (/ rules-size zoom)] + (if (= axis :x) + {:text-x val + :text-y (+ (:y vbox) (- rules-pos (/ 4 zoom))) + :line-x1 val + :line-y1 (+ (:y vbox) rules-pos (/ 2 zoom)) + :line-x2 val + :line-y2 (+ (:y vbox) rules-pos (/ 2 zoom) rules-size)} + + {:text-x (+ (:x vbox) (- rules-pos (/ 4 zoom))) + :text-y val + :line-x1 (+ (:x vbox) rules-pos (/ 2 zoom)) + :line-y1 val + :line-x2 (+ (:x vbox) rules-pos (/ 2 zoom) rules-size) + :line-y2 val}))) + +(mf/defc rules-axis + [{:keys [zoom vbox axis]}] + (let [rules-width (/ rules-width zoom) + step (calculate-step-size zoom) + clip-id (str "clip-rule-" (d/name axis))] + + [:g.rules {:clipPath (str "url(#" clip-id ")")} + + [:defs + [:clipPath {:id clip-id} + (let [{:keys [x y width height]} (get-clip-area vbox zoom axis)] + [:rect {:x x :y y :width width :height height}])]] + + (let [{:keys [start end]} (get-rule-params vbox axis) + minv (max (mth/round start) -100000) + minv (* (mth/ceil (/ minv step)) step) + maxv (min (mth/round end) 100000) + maxv (* (mth/floor (/ maxv step)) step)] + + (for [step-val (range minv (inc maxv) step)] + (let [{:keys [text-x text-y line-x1 line-y1 line-x2 line-y2]} + (get-rule-axis step-val vbox zoom axis)] + [:* + [:text {:key (str "text-" (d/name axis) "-" step-val) + :x text-x + :y text-y + :text-anchor "middle" + :dominant-baseline "middle" + :transform (when (= axis :y) (str "rotate(-90 " text-x "," text-y ")")) + :style {:font-size (/ 13 zoom) + :font-family "sourcesanspro" + :fill colors/gray-30}} + (str (mth/round step-val))] + + [:line {:key (str "line-" (d/name axis) "-" step-val) + :x1 line-x1 + :y1 line-y1 + :x2 line-x2 + :y2 line-y2 + :style {:stroke colors/gray-30 + :stroke-width rules-width}}]])))])) + +(mf/defc rules + {::mf/wrap-props false + ::mf/wrap [mf/memo]} + [props] + (let [zoom (obj/get props "zoom") + vbox (obj/get props "vbox")] + (when (some? vbox) + [:g.rules {:pointer-events "none"} + [:& rules-axis {:zoom zoom :vbox vbox :axis :x}] + [:& rules-axis {:zoom zoom :vbox vbox :axis :y}]]))) From 64e7cad2927b4bd0ec498029799f4b4dac6f2764 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 20 Jan 2022 22:20:32 +0100 Subject: [PATCH 016/154] :recycle: Redone the snap calculation and added guides --- common/src/app/common/file_builder.cljc | 28 ++ common/src/app/common/pages/diff.cljc | 170 ++++++++++++ .../src/app/main/data/workspace/guides.cljs | 15 +- frontend/src/app/main/snap.cljs | 10 +- .../main/ui/workspace/viewport/guides.cljs | 3 +- frontend/src/app/util/geom/snap_points.cljs | 9 + frontend/src/app/util/snap_data.cljs | 244 ++++++++++++++++++ frontend/src/app/worker/impl.cljs | 9 +- frontend/src/app/worker/selection.cljs | 6 +- frontend/src/app/worker/snaps.cljs | 174 +------------ frontend/test/app/util/snap_data_test.cljs | 243 +++++++++++++++++ 11 files changed, 726 insertions(+), 185 deletions(-) create mode 100644 common/src/app/common/pages/diff.cljc create mode 100644 frontend/src/app/util/snap_data.cljs create mode 100644 frontend/test/app/util/snap_data_test.cljs diff --git a/common/src/app/common/file_builder.cljc b/common/src/app/common/file_builder.cljc index 0d6c96ff4a..b323f51d97 100644 --- a/common/src/app/common/file_builder.cljc +++ b/common/src/app/common/file_builder.cljc @@ -568,4 +568,32 @@ (dissoc :current-component-id) (update :parent-stack pop)))) +(defn add-guide + [file guide] + (let [guide (cond-> guide + (nil? (:id guide)) + (assoc :id (uuid/next))) + page-id (:current-page-id file) + old-guides (or (get-in file [:data :pages-index page-id :options :guides]) {}) + new-guides (assoc old-guides (:id guide) guide)] + (commit-change + file + {:type :set-option + :page-id page-id + :option :guides + :value new-guides}))) + +(defn delete-object + [file id] + (let [page-id (:current-page-id file)] + (commit-change + file + {:type :del-obj + :page-id page-id + :id id}))) + +(defn get-current-page + [file] + (let [page-id (:current-page-id file)] + (-> file (get-in [:data :pages-index page-id])))) diff --git a/common/src/app/common/pages/diff.cljc b/common/src/app/common/pages/diff.cljc new file mode 100644 index 0000000000..46ba2f46bd --- /dev/null +++ b/common/src/app/common/pages/diff.cljc @@ -0,0 +1,170 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.common.pages.diff + "Given a page in its old version and the new will retrieve a map with + the differences that will have an impact in the snap data" + (:require + [app.common.data :as d] + [clojure.set :as set])) + +(defn calculate-page-diff + [old-page page check-attrs] + + (let [old-objects (get old-page :objects) + old-guides (or (get-in old-page [:options :guides]) []) + + new-objects (get page :objects) + new-guides (or (get-in page [:options :guides]) []) + + changed-object? + (fn [id] + (let [oldv (get old-objects id) + newv (get new-objects id)] + ;; Check first without select-keys because is faster if they are + ;; the same reference + (and (not= oldv newv) + (not= (select-keys oldv check-attrs) + (select-keys newv check-attrs))))) + + frame? + (fn [id] + (or (= :frame (get-in new-objects [id :type])) + (= :frame (get-in old-objects [id :type])))) + + changed-guide? + (fn [id] + (not= (get old-guides id) + (get new-guides id))) + + deleted-object? + #(and (contains? old-objects %) + (not (contains? new-objects %))) + + deleted-guide? + #(and (contains? old-guides %) + (not (contains? new-guides %))) + + new-object? + #(and (not (contains? old-objects %)) + (contains? new-objects %)) + + new-guide? + #(and (not (contains? old-guides %)) + (contains? new-guides %)) + + changed-frame-object? + #(and (contains? new-objects %) + (contains? old-objects %) + (not= (get-in old-objects [% :frame-id]) + (get-in new-objects [% :frame-id]))) + + changed-frame-guide? + #(and (contains? new-guides %) + (contains? old-guides %) + (not= (get-in old-objects [% :frame-id]) + (get-in new-objects [% :frame-id]))) + + changed-attrs-object? + #(and (contains? new-objects %) + (contains? old-objects %) + (= (get-in old-objects [% :frame-id]) + (get-in new-objects [% :frame-id]))) + + changed-attrs-guide? + #(and (contains? new-guides %) + (contains? old-guides %) + (= (get-in old-objects [% :frame-id]) + (get-in new-objects [% :frame-id]))) + + changed-object-ids + (into #{} + (filter changed-object?) + (set/union (set (keys old-objects)) + (set (keys new-objects)))) + + changed-guides-ids + (into #{} + (filter changed-guide?) + (set/union (set (keys old-guides)) + (set (keys new-guides)))) + + get-diff-object (fn [id] [(get old-objects id) (get new-objects id)]) + get-diff-guide (fn [id] [(get old-guides id) (get new-guides id)]) + + ;; Shapes with different frame owner + change-frame-shapes + (->> changed-object-ids + (into [] (comp (filter changed-frame-object?) + (map get-diff-object)))) + + ;; Guides that changed frames + change-frame-guides + (->> changed-guides-ids + (into [] (comp (filter changed-frame-guide?) + (map get-diff-guide)))) + + removed-frames + (->> changed-object-ids + (into [] (comp (filter frame?) + (filter deleted-object?) + (map (d/getf old-objects))))) + + removed-shapes + (->> changed-object-ids + (into [] (comp (remove frame?) + (filter deleted-object?) + (map (d/getf old-objects))))) + + removed-guides + (->> changed-guides-ids + (into [] (comp (filter deleted-guide?) + (map (d/getf old-guides))))) + + updated-frames + (->> changed-object-ids + (into [] (comp (filter frame?) + (filter changed-attrs-object?) + (map get-diff-object)))) + + updated-shapes + (->> changed-object-ids + (into [] (comp (remove frame?) + (filter changed-attrs-object?) + (map get-diff-object)))) + + updated-guides + (->> changed-guides-ids + (into [] (comp (filter changed-attrs-guide?) + (map get-diff-guide)))) + + new-frames + (->> changed-object-ids + (into [] (comp (filter frame?) + (filter new-object?) + (map (d/getf new-objects))))) + + new-shapes + (->> changed-object-ids + (into [] (comp (remove frame?) + (filter new-object?) + (map (d/getf new-objects))))) + + new-guides + (->> changed-guides-ids + (into [] (comp (filter new-guide?) + (map (d/getf new-guides)))))] + {:change-frame-shapes change-frame-shapes + :change-frame-guides change-frame-guides + :removed-frames removed-frames + :removed-shapes removed-shapes + :removed-guides removed-guides + :updated-frames updated-frames + :updated-shapes updated-shapes + :updated-guides updated-guides + :new-frames new-frames + :new-shapes new-shapes + :new-guides new-guides})) diff --git a/frontend/src/app/main/data/workspace/guides.cljs b/frontend/src/app/main/data/workspace/guides.cljs index 612b4adf7e..45502688a7 100644 --- a/frontend/src/app/main/data/workspace/guides.cljs +++ b/frontend/src/app/main/data/workspace/guides.cljs @@ -22,16 +22,9 @@ ptk/WatchEvent (watch [it state _] (let [page-id (:current-page-id state) - guides (-> state wsh/lookup-page-options (:guides [])) - guides-ids? (into #{} (map :id) guides) + guides (-> state wsh/lookup-page-options (:guides {})) - new-guides - (if (guides-ids? (:id guide)) - ;; Update existing guide - (mapv (make-update-guide guide) guides) - - ;; Add new guide - (conj guides guide)) + new-guides (assoc guides (:id guide) guide) rch [{:type :set-option :page-id page-id @@ -52,8 +45,8 @@ ptk/WatchEvent (watch [it state _] (let [page-id (:current-page-id state) - guides (-> state wsh/lookup-page-options (:guides [])) - new-guides (filterv #(not= (:id %) (:id guide)) guides) + guides (-> state wsh/lookup-page-options (:guides {})) + new-guides (dissoc guides (:id guide)) rch [{:type :set-option :page-id page-id diff --git a/frontend/src/app/main/snap.cljs b/frontend/src/app/main/snap.cljs index 41bd7ae79e..8fa0dc6ec4 100644 --- a/frontend/src/app/main/snap.cljs +++ b/frontend/src/app/main/snap.cljs @@ -19,7 +19,7 @@ [beicon.core :as rx] [clojure.set :as set])) -(def ^:const snap-accuracy 5) +(def ^:const snap-accuracy 10) (def ^:const snap-path-accuracy 10) (def ^:const snap-distance-accuracy 10) @@ -27,12 +27,12 @@ [remove-id?] (fn [query-result] (->> query-result - (map (fn [[value data]] [value (remove (comp remove-id? second) data)])) + (map (fn [[value data]] [value (remove (comp remove-id? :id) data)])) (filter (fn [[_ data]] (seq data)))))) (defn- flatten-to-points [query-result] - (mapcat (fn [[_ data]] (map (fn [[point _]] point) data)) query-result)) + (mapcat (fn [[_ data]] (map :pt data)) query-result)) (defn- calculate-distance [query-result point coord] (->> query-result @@ -62,7 +62,7 @@ (->> (uw/ask! {:cmd :snaps/range-query :page-id page-id :frame-id frame-id - :coord coord + :axis coord :ranges [[(- value 0.5) (+ value 0.5)]]}) (rx/first) (rx/map (remove-from-snap-points filter-shapes)) @@ -78,7 +78,7 @@ (->> (uw/ask! {:cmd :snaps/range-query :page-id page-id :frame-id frame-id - :coord coord + :axis coord :ranges ranges}) (rx/first) (rx/map (remove-from-snap-points filter-shapes)) diff --git a/frontend/src/app/main/ui/workspace/viewport/guides.cljs b/frontend/src/app/main/ui/workspace/viewport/guides.cljs index 64e846e338..1251a71e19 100644 --- a/frontend/src/app/main/ui/workspace/viewport/guides.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/guides.cljs @@ -396,7 +396,8 @@ [{:keys [zoom vbox hover-frame]}] (let [page (mf/deref refs/workspace-page) - guides (->> (get-in page [:options :guides] []) + guides (->> (get-in page [:options :guides] {}) + (vals) (filter (guide-inside-vbox? vbox))) hover-frame-ref (mf/use-ref nil) diff --git a/frontend/src/app/util/geom/snap_points.cljs b/frontend/src/app/util/geom/snap_points.cljs index 669a291130..04ce1ebbf9 100644 --- a/frontend/src/app/util/geom/snap_points.cljs +++ b/frontend/src/app/util/geom/snap_points.cljs @@ -28,3 +28,12 @@ (case (:type shape) :frame (-> shape :selrect frame-snap-points) (into #{(gsh/center-shape shape)} (:points shape))))) + +(defn guide-snap-points + [guide] + + ;; TODO: The line will be displayed from the position to the axis. Maybe + ;; revisit this + (if (= :x (:axis guide)) + #{(gpt/point (:position guide) 0)} + #{(gpt/point 0 (:position guide))})) diff --git a/frontend/src/app/util/snap_data.cljs b/frontend/src/app/util/snap_data.cljs new file mode 100644 index 0000000000..ed54272345 --- /dev/null +++ b/frontend/src/app/util/snap_data.cljs @@ -0,0 +1,244 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.util.snap-data + "Data structure that holds and retrieves the data to make the snaps. Internaly + is implemented with a balanced binary tree that queries by range. + https://en.wikipedia.org/wiki/Range_tree" + (:require + [app.common.data :as d] + [app.common.pages :as cp] + [app.common.pages.diff :as diff] + [app.common.uuid :as uuid] + [app.util.geom.grid :as gg] + [app.util.geom.snap-points :as snap] + [app.util.range-tree :as rt])) + +(def snap-attrs [:frame-id :x :y :width :height :hidden :selrect :grids]) + +;; PRIVATE FUNCTIONS + +(defn make-insert-tree-data + [shape-data axis] + (fn [tree] + (let [tree (or tree (rt/make-tree))] + (as-> tree $ + (reduce (fn [tree data] + (rt/insert tree (get-in data [:pt axis]) data)) + $ shape-data))))) + +(defn make-delete-tree-data + [shape-data axis] + (fn [tree] + (let [tree (or tree (rt/make-tree))] + (as-> tree $ + (reduce (fn [tree data] + (rt/remove tree (get-in data [:pt axis]) data)) + $ shape-data))))) + +(defn add-root-frame + [page-data] + (let [frame-id uuid/zero] + + (-> page-data + (assoc-in [frame-id :x] (rt/make-tree)) + (assoc-in [frame-id :y] (rt/make-tree))))) + +(defn add-frame + [page-data frame] + (let [frame-id (:id frame) + parent-id (:parent-id frame) + frame-data (->> (snap/shape-snap-points frame) + (map #(hash-map :type :shape + :id frame-id + :pt %))) + + grid-x-data (->> (gg/grid-snap-points frame :x) + (map #(hash-map :type :grid-x + :id frame-id + :pt %))) + + grid-y-data (->> (gg/grid-snap-points frame :y) + (map #(hash-map :type :grid-y + :id frame-id + :pt %)))] + + (-> page-data + ;; Update root frame information + (assoc-in [uuid/zero :objects-data frame-id] frame-data) + (update-in [parent-id :x] (make-insert-tree-data frame-data :x)) + (update-in [parent-id :y] (make-insert-tree-data frame-data :y)) + + ;; Update frame information + (assoc-in [frame-id :objects-data frame-id] (d/concat-vec frame-data grid-x-data grid-y-data)) + (update-in [frame-id :x] #(or % (rt/make-tree))) + (update-in [frame-id :y] #(or % (rt/make-tree))) + (update-in [frame-id :x] (make-insert-tree-data (d/concat-vec frame-data grid-x-data) :x)) + (update-in [frame-id :y] (make-insert-tree-data (d/concat-vec frame-data grid-y-data) :y))))) + +(defn add-shape + [page-data shape] + (let [frame-id (:frame-id shape) + snap-points (snap/shape-snap-points shape) + shape-data (->> snap-points + (mapv #(hash-map + :type :shape + :id (:id shape) + :pt %)))] + (-> page-data + (assoc-in [frame-id :objects-data (:id shape)] shape-data) + (update-in [frame-id :x] (make-insert-tree-data shape-data :x)) + (update-in [frame-id :y] (make-insert-tree-data shape-data :y))))) + + +(defn add-guide + [page-data guide] + + (let [guide-data (->> (snap/guide-snap-points guide) + (mapv #(hash-map + :type :guide + :id (:id guide) + :pt %)))] + + (if-let [frame-id (:frame-id guide)] + ;; Guide inside frame, we add the information only on that frame + (-> page-data + (assoc-in [frame-id :objects-data (:id guide)] guide-data) + (update-in [frame-id (:axis guide)] (make-insert-tree-data guide-data (:axis guide)))) + + ;; Guide outside the frame. We add the information in the global guides data + (-> page-data + (assoc-in [:guides :objects-data (:id guide)] [guide-data]) + (update-in [:guides (:axis guide)] (make-insert-tree-data guide-data (:axis guide))))))) + +(defn remove-frame + [page-data frame] + (let [frame-id (:id frame) + root-data (get-in page-data [uuid/zero :objects-data frame-id])] + (-> page-data + (d/dissoc-in [uuid/zero :objects-data frame-id]) + (update-in [uuid/zero :x] (make-delete-tree-data root-data :x)) + (update-in [uuid/zero :y] (make-delete-tree-data root-data :y)) + (dissoc frame-id)))) + +(defn remove-shape + [page-data shape] + + (let [frame-id (:frame-id shape) + shape-data (get-in page-data [frame-id :objects-data (:id shape)])] + (-> page-data + (d/dissoc-in [frame-id :objects-data (:id shape)]) + (update-in [frame-id :x] (make-delete-tree-data shape-data :x)) + (update-in [frame-id :y] (make-delete-tree-data shape-data :y))))) + +(defn remove-guide + [page-data guide] + (if-let [frame-id (:frame-id guide)] + (let [guide-data (get-in page-data [frame-id :objects-data (:id guide)])] + (-> page-data + (d/dissoc-in [frame-id :objects-data (:id guide)]) + (update-in [frame-id (:axis guide)] (make-delete-tree-data guide-data (:axis guide))))) + + ;; Guide outside the frame. We add the information in the global guides data + (let [guide-data (get-in page-data [:guides :objects-data (:id guide)])] + (-> page-data + (d/dissoc-in [:guides :objects-data (:id guide)]) + (update-in [:guides (:axis guide)] (make-delete-tree-data guide-data (:axis guide))))))) + +(defn update-frame + [page-data [_ new-frame]] + (let [frame-id (:id new-frame) + root-data (get-in page-data [uuid/zero :objects-data frame-id]) + frame-data (get-in page-data [frame-id :objects-data frame-id])] + (-> page-data + (update-in [uuid/zero :x] (make-delete-tree-data root-data :x)) + (update-in [uuid/zero :y] (make-delete-tree-data root-data :y)) + (update-in [frame-id :x] (make-delete-tree-data frame-data :x)) + (update-in [frame-id :y] (make-delete-tree-data frame-data :y)) + (add-frame new-frame)))) + +(defn update-shape + [page-data [old-shape new-shape]] + (-> page-data + (remove-shape old-shape) + (add-shape new-shape))) + +(defn update-guide + [page-data [old-guide new-guide]] + (-> page-data + (remove-guide old-guide) + (add-guide new-guide))) + +;; PUBLIC API +(defn make-snap-data + "Creates an empty snap index" + [] + {}) + +(defn add-page + "Adds page information" + [snap-data {:keys [objects options] :as page}] + + (let [frames (cp/select-frames objects) + shapes (cp/select-objects #(not= :frame (:type %)) page) + guides (vals (:guides options)) + + page-data + (as-> {} $ + (add-root-frame $) + (reduce add-frame $ frames) + (reduce add-shape $ shapes) + (reduce add-guide $ guides))] + (assoc snap-data (:id page) page-data))) + +(defn update-page + "Updates a previously inserted page with new data" + [snap-data old-page page] + + (if (contains? snap-data (:id page)) + ;; Update page + (update snap-data (:id page) + (fn [page-data] + (let [{:keys [change-frame-shapes + change-frame-guides + removed-frames + removed-shapes + removed-guides + updated-frames + updated-shapes + updated-guides + new-frames + new-shapes + new-guides]} + (diff/calculate-page-diff old-page page snap-attrs)] + + (as-> page-data $ + (reduce update-shape $ change-frame-shapes) + (reduce remove-frame $ removed-frames) + (reduce remove-shape $ removed-shapes) + (reduce update-frame $ updated-frames) + (reduce update-shape $ updated-shapes) + (reduce add-frame $ new-frames) + (reduce add-shape $ new-shapes) + (reduce update-guide $ change-frame-guides) + (reduce remove-guide $ removed-guides) + (reduce update-guide $ updated-guides) + (reduce add-guide $ new-guides))))) + + ;; Page doesn't exist, we create a new entry + (add-page snap-data page))) + +(defn query + [snap-data page-id frame-id axis [from to]] + + (d/concat-vec + (-> snap-data + (get-in [page-id frame-id axis]) + (rt/range-query from to)) + + (-> snap-data + (get-in [page-id :guides axis]) + (rt/range-query from to)))) diff --git a/frontend/src/app/worker/impl.cljs b/frontend/src/app/worker/impl.cljs index 13b7d167f7..977c8d85ee 100644 --- a/frontend/src/app/worker/impl.cljs +++ b/frontend/src/app/worker/impl.cljs @@ -40,14 +40,13 @@ (defmethod handler :update-page-indices [{:keys [page-id changes] :as message}] - (let [old-objects (get-in @state [:pages-index page-id :objects])] + (let [old-page (get-in @state [:pages-index page-id])] (swap! state ch/process-changes changes false) - (let [new-objects (get-in @state [:pages-index page-id :objects]) + (let [new-page (get-in @state [:pages-index page-id]) message (assoc message - :objects new-objects - :new-objects new-objects - :old-objects old-objects)] + :old-page old-page + :new-page new-page)] (handler (-> message (assoc :cmd :selection/update-index))) (handler (-> message diff --git a/frontend/src/app/worker/selection.cljs b/frontend/src/app/worker/selection.cljs index 3b9d922914..d0b2290341 100644 --- a/frontend/src/app/worker/selection.cljs +++ b/frontend/src/app/worker/selection.cljs @@ -170,8 +170,10 @@ nil)) (defmethod impl/handler :selection/update-index - [{:keys [page-id old-objects new-objects] :as message}] - (let [update-page-index + [{:keys [page-id old-page new-page] :as message}] + (let [old-objects (:objects old-page) + new-objects (:objects new-page) + update-page-index (fn [index] (let [old-bounds (:bounds index) new-bounds (objects-bounds new-objects)] diff --git a/frontend/src/app/worker/snaps.cljs b/frontend/src/app/worker/snaps.cljs index 66a4dff837..b992b51e77 100644 --- a/frontend/src/app/worker/snaps.cljs +++ b/frontend/src/app/worker/snaps.cljs @@ -6,179 +6,31 @@ (ns app.worker.snaps (:require - [app.common.data :as d] - [app.common.uuid :as uuid] - [app.util.geom.grid :as gg] - [app.util.geom.snap-points :as snap] - [app.util.range-tree :as rt] + [app.util.snap-data :as sd] [app.worker.impl :as impl] - [clojure.set :as set] [okulary.core :as l])) (defonce state (l/atom {})) -(defn process-shape [frame-id coord] - (fn [shape] - (let [points (when-not (:hidden shape) (snap/shape-snap-points shape)) - shape-data (->> points (mapv #(vector % (:id shape))))] - (if (= (:id shape) frame-id) - (into shape-data - - ;; The grid points are only added by the "root" of the coord-dat - (->> (gg/grid-snap-points shape coord) - (map #(vector % :layout)))) - shape-data)))) - -(defn- add-coord-data - "Initializes the range tree given the shapes" - [data frame-id shapes coord] - (letfn [(into-tree [tree [point _ :as data]] - (rt/insert tree (coord point) data))] - (->> shapes - (mapcat (process-shape frame-id coord)) - (reduce into-tree (or data (rt/make-tree)))))) - -(defn remove-coord-data - [data frame-id shapes coord] - (letfn [(remove-tree [tree [point _ :as data]] - (rt/remove tree (coord point) data))] - (->> shapes - (mapcat (process-shape frame-id coord)) - (reduce remove-tree (or data (rt/make-tree)))))) - -(defn aggregate-data - ([objects] - (aggregate-data objects (keys objects))) - - ([objects ids] - (->> ids - (filter #(contains? objects %)) - (map #(get objects %)) - (filter :frame-id) - (group-by :frame-id) - ;; Adds the frame - (d/mapm #(conj %2 (get objects %1)))))) - -(defn- initialize-snap-data - "Initialize the snap information with the current workspace information" - [objects] - (let [shapes-data (aggregate-data objects) - - create-index - (fn [frame-id shapes] - {:x (-> (rt/make-tree) (add-coord-data frame-id shapes :x)) - :y (-> (rt/make-tree) (add-coord-data frame-id shapes :y))})] - (d/mapm create-index shapes-data))) - -;; Attributes that will change the values of their snap -(def snap-attrs [:x :y :width :height :hidden :selrect :grids]) - -(defn- update-snap-data - [snap-data old-objects new-objects] - - (let [changed? (fn [id] - (let [oldv (get old-objects id) - newv (get new-objects id)] - ;; Check first without select-keys because is faster if they are - ;; the same reference - (and (not= oldv newv) - (not= (select-keys oldv snap-attrs) - (select-keys newv snap-attrs))))) - - is-deleted-frame? #(and (not= uuid/zero %) - (contains? old-objects %) - (not (contains? new-objects %)) - (= :frame (get-in old-objects [% :type]))) - is-new-frame? #(and (not= uuid/zero %) - (contains? new-objects %) - (not (contains? old-objects %)) - (= :frame (get-in new-objects [% :type]))) - - changed-ids (into #{} - (filter changed?) - (set/union (set (keys old-objects)) - (set (keys new-objects)))) - - to-delete (aggregate-data old-objects changed-ids) - to-add (aggregate-data new-objects changed-ids) - - frames-to-delete (->> changed-ids (filter is-deleted-frame?)) - frames-to-add (->> changed-ids (filter is-new-frame?)) - - delete-data - (fn [snap-data [frame-id shapes]] - (-> snap-data - (update-in [frame-id :x] remove-coord-data frame-id shapes :x) - (update-in [frame-id :y] remove-coord-data frame-id shapes :y))) - - add-data - (fn [snap-data [frame-id shapes]] - (-> snap-data - (update-in [frame-id :x] add-coord-data frame-id shapes :x) - (update-in [frame-id :y] add-coord-data frame-id shapes :y))) - - delete-frames - (fn [snap-data frame-id] - (dissoc snap-data frame-id)) - - add-frames - (fn [snap-data frame-id] - (assoc snap-data frame-id {:x (rt/make-tree) - :y (rt/make-tree)}))] - - (as-> snap-data $ - (reduce delete-data $ to-delete) - (reduce add-frames $ frames-to-add) - (reduce add-data $ to-add) - (reduce delete-frames $ frames-to-delete)))) - -;; (defn- log-state -;; "Helper function to print a friendly version of the snap tree. Debugging purposes" -;; [] -;; (let [process-frame-data #(d/mapm rt/as-map %) -;; process-page-data #(d/mapm process-frame-data %)] -;; (js/console.log "STATE" (clj->js (d/mapm process-page-data @state))))) - -(defn- index-page [state page-id objects] - (let [snap-data (initialize-snap-data objects)] - (assoc state page-id snap-data))) - -(defn- update-page [state page-id old-objects new-objects] - (let [snap-data (get state page-id) - snap-data (update-snap-data snap-data old-objects new-objects)] - (assoc state page-id snap-data))) - ;; Public API (defmethod impl/handler :snaps/initialize-index [{:keys [data] :as message}] - ;; Create the index - (letfn [(process-page [state page] - (let [id (:id page) - objects (:objects page)] - (index-page state id objects)))] - (swap! state #(reduce process-page % (vals (:pages-index data)))) - ;; (log-state) - ;; Return nil so the worker will not answer anything back - nil)) + + (let [pages (vals (:pages-index data))] + (reset! state (reduce sd/add-page (sd/make-snap-data) pages))) + + nil) (defmethod impl/handler :snaps/update-index - [{:keys [page-id old-objects new-objects] :as message}] - (swap! state update-page page-id old-objects new-objects) - - ;; Uncomment this to regenerate the index everytime - #_(swap! state index-page page-id new-objects) - ;; (log-state) + [{:keys [old-page new-page] :as message}] + (swap! state sd/update-page old-page new-page) nil) (defmethod impl/handler :snaps/range-query - [{:keys [page-id frame-id coord ranges] :as message}] - (letfn [(calculate-range [[from to]] - (-> @state - (get-in [page-id frame-id coord]) - (rt/range-query from to)))] - (->> ranges - (mapcat calculate-range) - set ;; unique - (into [])))) + [{:keys [page-id frame-id axis ranges] :as message}] + (->> ranges + (mapcat #(sd/query @state page-id frame-id axis %)) + (set) ;; unique + (into []))) diff --git a/frontend/test/app/util/snap_data_test.cljs b/frontend/test/app/util/snap_data_test.cljs new file mode 100644 index 0000000000..ff09693a42 --- /dev/null +++ b/frontend/test/app/util/snap_data_test.cljs @@ -0,0 +1,243 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.util.snap-data-test + (:require + [app.common.uuid :as uuid] + [cljs.test :as t :include-macros true] + [cljs.pprint :refer [pprint]] + [app.common.pages.init :as init] + [app.common.file-builder :as fb] + [app.util.snap-data :as sd])) + +(t/deftest test-create-index + (t/testing "Create empty data" + (let [data (sd/make-snap-data)] + (t/is (some? data)))) + + (t/testing "Add empty page (only root-frame)" + (let [page (-> (fb/create-file "Test") + (fb/add-page {:name "Page-1"}) + (fb/get-current-page)) + + data (-> (sd/make-snap-data) + (sd/add-page page))] + (t/is (some? data)))) + + (t/testing "Create simple shape on root" + (let [file (-> (fb/create-file "Test") + (fb/add-page {:name "Page-1"}) + (fb/create-rect + {:x 0 + :y 0 + :width 100 + :height 100})) + page (fb/get-current-page file) + + ;; frame-id (:last-id file) + data (-> (sd/make-snap-data) + (sd/add-page page)) + + result-x (sd/query data (:id page) uuid/zero :x [0 100])] + + (t/is (some? data)) + + ;; 3 = left side, center and right side + (t/is (= (count result-x) 3)) + + ;; Left side: two points + (t/is (= (first (nth result-x 0)) 0)) + + ;; Center one point + (t/is (= (first (nth result-x 1)) 50)) + + ;; Right side two points + (t/is (= (first (nth result-x 2)) 100)))) + + (t/testing "Add page with single empty frame" + (let [file (-> (fb/create-file "Test") + (fb/add-page {:name "Page-1"}) + (fb/add-artboard + {:x 0 + :y 0 + :width 100 + :height 100}) + (fb/close-artboard)) + + frame-id (:last-id file) + page (fb/get-current-page file) + + ;; frame-id (:last-id file) + data (-> (sd/make-snap-data) + (sd/add-page page)) + + result-zero-x (sd/query data (:id page) uuid/zero :x [0 100]) + result-frame-x (sd/query data (:id page) frame-id :x [0 100])] + + (t/is (some? data)) + (t/is (= (count result-zero-x) 3)) + (t/is (= (count result-frame-x) 3)))) + + (t/testing "Add page with some shapes inside frames" + (let [file (-> (fb/create-file "Test") + (fb/add-page {:name "Page-1"}) + (fb/add-artboard + {:x 0 + :y 0 + :width 100 + :height 100})) + frame-id (:last-id file) + + file (-> file + (fb/create-rect + {:x 25 + :y 25 + :width 50 + :height 50}) + (fb/close-artboard)) + + page (fb/get-current-page file) + + ;; frame-id (:last-id file) + data (-> (sd/make-snap-data) + (sd/add-page page)) + + result-zero-x (sd/query data (:id page) uuid/zero :x [0 100]) + result-frame-x (sd/query data (:id page) frame-id :x [0 100])] + + (t/is (some? data)) + (t/is (= (count result-zero-x) 3)) + (t/is (= (count result-frame-x) 5)))) + + (t/testing "Add a global guide" + (let [file (-> (fb/create-file "Test") + (fb/add-page {:name "Page-1"}) + (fb/add-guide {:position 50 :axis :x}) + (fb/add-artboard {:x 200 :y 200 :width 100 :height 100}) + (fb/close-artboard)) + + frame-id (:last-id file) + page (fb/get-current-page file) + + ;; frame-id (:last-id file) + data (-> (sd/make-snap-data) + (sd/add-page page)) + + result-zero-x (sd/query data (:id page) uuid/zero :x [0 100]) + result-zero-y (sd/query data (:id page) uuid/zero :y [0 100]) + result-frame-x (sd/query data (:id page) frame-id :x [0 100]) + result-frame-y (sd/query data (:id page) frame-id :y [0 100])] + + (t/is (some? data)) + ;; We can snap in the root + (t/is (= (count result-zero-x) 1)) + (t/is (= (count result-zero-y) 0)) + + ;; We can snap in the frame + (t/is (= (count result-frame-x) 1)) + (t/is (= (count result-frame-y) 0)))) + + (t/testing "Add a frame guide" + (let [file (-> (fb/create-file "Test") + (fb/add-page {:name "Page-1"}) + (fb/add-artboard {:x 200 :y 200 :width 100 :height 100}) + (fb/close-artboard)) + + frame-id (:last-id file) + + file (-> file + (fb/add-guide {:position 50 :axis :x :frame-id frame-id})) + + page (fb/get-current-page file) + + ;; frame-id (:last-id file) + data (-> (sd/make-snap-data) + (sd/add-page page)) + + result-zero-x (sd/query data (:id page) uuid/zero :x [0 100]) + result-zero-y (sd/query data (:id page) uuid/zero :y [0 100]) + result-frame-x (sd/query data (:id page) frame-id :x [0 100]) + result-frame-y (sd/query data (:id page) frame-id :y [0 100])] + (t/is (some? data)) + ;; We can snap in the root + (t/is (= (count result-zero-x) 0)) + (t/is (= (count result-zero-y) 0)) + + ;; We can snap in the frame + (t/is (= (count result-frame-x) 1)) + (t/is (= (count result-frame-y) 0))))) + +(t/deftest test-update-index + (t/testing "Create frame on root and then remove it." + (let [file (-> (fb/create-file "Test") + (fb/add-page {:name "Page-1"}) + (fb/add-artboard + {:x 0 + :y 0 + :width 100 + :height 100}) + (fb/close-artboard)) + + shape-id (:last-id file) + page (fb/get-current-page file) + + ;; frame-id (:last-id file) + data (-> (sd/make-snap-data) + (sd/add-page page)) + + file (-> file + (fb/delete-object shape-id)) + + new-page (fb/get-current-page file) + data (sd/update-page data page new-page) + + result-x (sd/query data (:id page) uuid/zero :x [0 100]) + result-y (sd/query data (:id page) uuid/zero :y [0 100])] + + (t/is (some? data)) + (t/is (= (count result-x) 0)) + (t/is (= (count result-y) 0)))) + + (t/testing "Create simple shape on root. Then remove it" + (let [file (-> (fb/create-file "Test") + (fb/add-page {:name "Page-1"}) + (fb/create-rect + {:x 0 + :y 0 + :width 100 + :height 100})) + + shape-id (:last-id file) + page (fb/get-current-page file) + + ;; frame-id (:last-id file) + data (-> (sd/make-snap-data) + (sd/add-page page)) + + file (-> file + (fb/delete-object shape-id)) + + new-page (fb/get-current-page file) + data (sd/update-page data page new-page) + + result-x (sd/query data (:id page) uuid/zero :x [0 100]) + result-y (sd/query data (:id page) uuid/zero :y [0 100])] + + (t/is (some? data)) + (t/is (= (count result-x) 0)) + (t/is (= (count result-y) 0)))) + + (t/testing "Create shape inside frame, then remove it") + (t/testing "Create guide then remove it") + + (t/testing "Update frame coordinates") + (t/testing "Update shape coordinates") + (t/testing "Update shape inside frame coordinates") + (t/testing "Update global guide") + (t/testing "Update frame guide") + + (t/testing "Change shape frame") + (t/testing "Change guide frame")) From d356a3fa5661eb3b32557c9e7dd4e9bc7c5f292f Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 20 Jan 2022 22:28:57 +0100 Subject: [PATCH 017/154] :sparkles: Spec definition for guides --- common/src/app/common/types/page_options.cljc | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/common/src/app/common/types/page_options.cljc b/common/src/app/common/types/page_options.cljc index 4901b87222..f7927363f5 100644 --- a/common/src/app/common/types/page_options.cljc +++ b/common/src/app/common/types/page_options.cljc @@ -61,12 +61,29 @@ (s/def ::flows (s/coll-of ::flow :kind vector?)) +;; --- Guides + +(s/def :guides/id ::us/uuid) +(s/def :guides/axis #{:x :y}) +(s/def :guides/position ::us/safe-number) +(s/def :guides/frame-id (s/nilable ::us/uuid)) + +(s/def ::guide + (s/keys :req-un [:guides/id + :guides/axis + :guides/position] + :opt-un [:guides/frame-id])) + +(s/def ::guides + (s/map-of uuid? ::shape)) + ;; --- Options (s/def ::options (s/keys :opt-un [::background ::saved-grids - ::flows])) + ::flows + ::guides])) ;; --- Helpers for flow From f303d7b33e4277c108f84993213161c795ad15d0 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 21 Jan 2022 13:52:21 +0100 Subject: [PATCH 018/154] :sparkles: Add support to export/import guides --- common/src/app/common/types/page_options.cljc | 2 +- frontend/src/app/main/data/workspace.cljs | 6 +- frontend/src/app/main/render.cljs | 4 +- frontend/src/app/main/snap.cljs | 54 ++++++----- frontend/src/app/main/ui/shapes/export.cljs | 30 ++++-- .../src/app/main/ui/workspace/viewport.cljs | 19 ++-- .../main/ui/workspace/viewport/guides.cljs | 91 +++++++++++-------- .../ui/workspace/viewport/snap_points.cljs | 37 ++++---- frontend/src/app/util/import/parser.cljs | 22 ++++- frontend/src/app/worker/import.cljs | 9 +- 10 files changed, 165 insertions(+), 109 deletions(-) diff --git a/common/src/app/common/types/page_options.cljc b/common/src/app/common/types/page_options.cljc index f7927363f5..687e989851 100644 --- a/common/src/app/common/types/page_options.cljc +++ b/common/src/app/common/types/page_options.cljc @@ -75,7 +75,7 @@ :opt-un [:guides/frame-id])) (s/def ::guides - (s/map-of uuid? ::shape)) + (s/map-of uuid? ::guide)) ;; --- Options diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 2ed754a816..6af0751cbd 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -84,7 +84,8 @@ :snap-grid :scale-text :dynamic-alignment - :display-artboard-names}) + :display-artboard-names + :snap-guides}) (s/def ::layout-flags (s/coll-of ::layout-flag)) @@ -96,7 +97,8 @@ :display-grid :snap-grid :dynamic-alignment - :display-artboard-names}) + :display-artboard-names + :snap-guides}) (def layout-presets {:assets diff --git a/frontend/src/app/main/render.cljs b/frontend/src/app/main/render.cljs index 26a197e5ae..91d6dd72d0 100644 --- a/frontend/src/app/main/render.cljs +++ b/frontend/src/app/main/render.cljs @@ -204,7 +204,9 @@ :height "100%" :background background-color}} - [:& export/export-page {:options (:options data)}] + (when include-metadata? + [:& export/export-page {:options (:options data)}]) + [:& ff/fontfaces-style {:shapes root-children}] (for [item shapes] (let [frame? (= (:type item) :frame)] diff --git a/frontend/src/app/main/snap.cljs b/frontend/src/app/main/snap.cljs index 8fa0dc6ec4..1de5b1aabc 100644 --- a/frontend/src/app/main/snap.cljs +++ b/frontend/src/app/main/snap.cljs @@ -24,12 +24,30 @@ (def ^:const snap-distance-accuracy 10) (defn- remove-from-snap-points - [remove-id?] + [remove-snap?] (fn [query-result] (->> query-result - (map (fn [[value data]] [value (remove (comp remove-id? :id) data)])) + (map (fn [[value data]] [value (remove remove-snap? data)])) (filter (fn [[_ data]] (seq data)))))) +(defn make-remove-snap + "Creates a filter for the snap data. Used to disable certain layouts" + [layout filter-shapes] + + (fn [{:keys [type id]}] + (cond + (= type :layout) + (or (not (contains? layout :display-grid)) + (not (contains? layout :snap-grid))) + + (= type :guide) + (or (not (contains? layout :rules)) + (not (contains? layout :snap-guides))) + + :else + (or (contains? filter-shapes id) + (not (contains? layout :dynamic-alignment)))))) + (defn- flatten-to-points [query-result] (mapcat (fn [[_ data]] (map :pt data)) query-result)) @@ -57,7 +75,7 @@ ;; Otherwise the root frame is the common :else zero))) -(defn get-snap-points [page-id frame-id filter-shapes point coord] +(defn get-snap-points [page-id frame-id remove-snap? point coord] (let [value (get point coord)] (->> (uw/ask! {:cmd :snaps/range-query :page-id page-id @@ -65,11 +83,11 @@ :axis coord :ranges [[(- value 0.5) (+ value 0.5)]]}) (rx/first) - (rx/map (remove-from-snap-points filter-shapes)) + (rx/map (remove-from-snap-points remove-snap?)) (rx/map flatten-to-points)))) (defn- search-snap - [page-id frame-id points coord filter-shapes zoom] + [page-id frame-id points coord remove-snap? zoom] (let [snap-accuracy (/ snap-accuracy zoom) ranges (->> points (map coord) @@ -81,7 +99,7 @@ :axis coord :ranges ranges}) (rx/first) - (rx/map (remove-from-snap-points filter-shapes)) + (rx/map (remove-from-snap-points remove-snap?)) (rx/map (get-min-distance-snap points coord))))) (defn snap->vector [[[from-x to-x] [from-y to-y]]] @@ -91,13 +109,12 @@ (gpt/to-vec from to)))) (defn- closest-snap - [page-id frame-id points filter-shapes zoom] - (let [snap-x (search-snap page-id frame-id points :x filter-shapes zoom) - snap-y (search-snap page-id frame-id points :y filter-shapes zoom)] + [page-id frame-id points remove-snap? zoom] + (let [snap-x (search-snap page-id frame-id points :x remove-snap? zoom) + snap-y (search-snap page-id frame-id points :y remove-snap? zoom)] (->> (rx/combine-latest snap-x snap-y) (rx/map snap->vector)))) - (defn sr-distance [coord sr1 sr2] (let [c1 (if (= coord :x) :x1 :y1) c2 (if (= coord :x) :x2 :y2) @@ -209,12 +226,8 @@ [page-id shapes layout zoom point] (let [frame-id (snap-frame-id shapes) filter-shapes (into #{} (map :id shapes)) - filter-shapes (fn [id] (if (= id :layout) - (or (not (contains? layout :display-grid)) - (not (contains? layout :snap-grid))) - (or (filter-shapes id) - (not (contains? layout :dynamic-alignment)))))] - (->> (closest-snap page-id frame-id [point] filter-shapes zoom) + remove-snap? (make-remove-snap layout filter-shapes)] + (->> (closest-snap page-id frame-id [point] remove-snap? zoom) (rx/map #(or % (gpt/point 0 0))) (rx/map #(gpt/add point %))))) @@ -222,11 +235,8 @@ [page-id shapes objects layout zoom movev] (let [frame-id (snap-frame-id shapes) filter-shapes (into #{} (map :id shapes)) - filter-shapes (fn [id] (if (= id :layout) - (or (not (contains? layout :display-grid)) - (not (contains? layout :snap-grid))) - (or (filter-shapes id) - (not (contains? layout :dynamic-alignment))))) + remove-snap? (make-remove-snap layout filter-shapes) + shape (if (> (count shapes) 1) (->> shapes (map gsh/transform-shape) gsh/selection-rect (gsh/setup {:type :rect})) (->> shapes (first))) @@ -236,7 +246,7 @@ ;; Move the points in the translation vector (map #(gpt/add % movev)))] - (->> (rx/merge (closest-snap page-id frame-id shapes-points filter-shapes zoom) + (->> (rx/merge (closest-snap page-id frame-id shapes-points remove-snap? zoom) (when (contains? layout :dynamic-alignment) (closest-distance-snap page-id shapes objects zoom movev))) (rx/reduce gpt/min) diff --git a/frontend/src/app/main/ui/shapes/export.cljs b/frontend/src/app/main/ui/shapes/export.cljs index 1ea58e5ed5..efce856f6d 100644 --- a/frontend/src/app/main/ui/shapes/export.cljs +++ b/frontend/src/app/main/ui/shapes/export.cljs @@ -155,20 +155,30 @@ :name name :starting-frame starting-frame}])]) +(mf/defc export-guides + [{:keys [guides]}] + [:> "penpot:guides" #js {} + (for [{:keys [id position frame-id axis]} (vals guides)] + [:> "penpot:guide" #js {:position position + :frame-id frame-id + :axis (d/name axis)}])]) + (mf/defc export-page [{:keys [options]}] (let [saved-grids (get options :saved-grids) - flows (get options :flows)] - (when (or (seq saved-grids) (seq flows)) - (let [parse-grid - (fn [[type params]] - {:type type :params params}) + flows (get options :flows) + guides (get options :guides)] + [:> "penpot:page" #js {} + (when (d/not-empty? saved-grids) + (let [parse-grid (fn [[type params]] {:type type :params params}) grids (->> saved-grids (mapv parse-grid))] - [:> "penpot:page" #js {} - (when (seq saved-grids) - [:& export-grid-data {:grids grids}]) - (when (seq flows) - [:& export-flows {:flows flows}])])))) + [:& export-grid-data {:grids grids}])) + + (when (d/not-empty? flows) + [:& export-flows {:flows flows}]) + + (when (d/not-empty? guides) + [:& export-guides {:guides guides}])])) (defn- export-shadow-data [{:keys [shadow]}] (mf/html diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index 015d39e3e5..41a1a04e2c 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -158,7 +158,7 @@ show-rules? (contains? layout :rules) ;; TODO - show-guides? true] + disabled-guides? (or drawing-tool transform)] (hooks/setup-dom-events viewport-ref zoom disable-paste in-viewport?) (hooks/setup-viewport-size viewport-ref) @@ -361,13 +361,14 @@ [:& widgets/viewport-actions] (when show-rules? - [:& rules/rules - {:zoom zoom - :vbox vbox}]) + [:* + [:& rules/rules + {:zoom zoom + :vbox vbox}] - (when show-guides? - [:& guides/viewport-guides - {:zoom zoom - :vbox vbox - :hover-frame frame-parent}])]]])) + [:& guides/viewport-guides + {:zoom zoom + :vbox vbox + :hover-frame frame-parent + :disabled-guides? disabled-guides?}]])]]])) diff --git a/frontend/src/app/main/ui/workspace/viewport/guides.cljs b/frontend/src/app/main/ui/workspace/viewport/guides.cljs index 1251a71e19..8c0c7f84b7 100644 --- a/frontend/src/app/main/ui/workspace/viewport/guides.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/guides.cljs @@ -234,7 +234,7 @@ (mf/defc guide {::mf/wrap [mf/memo]} - [{:keys [guide hover? on-guide-change get-hover-frame vbox zoom hover-frame]}] + [{:keys [guide hover? on-guide-change get-hover-frame vbox zoom hover-frame disabled-guides?]}] (let [axis (:axis guide) @@ -260,20 +260,21 @@ guide-pill-corner-radius (/ guide-pill-corner-radius zoom)] [:g.guide-area - (let [{:keys [x y width height]} (guide-area-axis pos vbox zoom frame axis)] - [:rect {:x x - :y y - :width width - :height height - :style {:fill "none" - :pointer-events "fill" - :cursor (if (= axis :x) "ew-resize" "ns-resize")} - :on-pointer-enter on-pointer-enter - :on-pointer-leave on-pointer-leave - :on-pointer-down on-pointer-down - :on-pointer-up on-pointer-up - :on-lost-pointer-capture on-lost-pointer-capture - :on-mouse-move on-mouse-move}]) + (when-not disabled-guides? + (let [{:keys [x y width height]} (guide-area-axis pos vbox zoom frame axis)] + [:rect {:x x + :y y + :width width + :height height + :style {:fill "none" + :pointer-events "fill" + :cursor (if (= axis :x) "ew-resize" "ns-resize")} + :on-pointer-enter on-pointer-enter + :on-pointer-leave on-pointer-leave + :on-pointer-down on-pointer-down + :on-pointer-up on-pointer-up + :on-lost-pointer-capture on-lost-pointer-capture + :on-mouse-move on-mouse-move}])) (if (some? frame) (let [{:keys [l1-x1 l1-y1 l1-x2 l1-y2 @@ -345,7 +346,7 @@ (str (mth/round pos))]]))])) (mf/defc new-guide-area - [{:keys [vbox zoom axis get-hover-frame]}] + [{:keys [vbox zoom axis get-hover-frame disabled-guides?]}] (let [on-guide-change (mf/use-callback @@ -367,20 +368,21 @@ frame]} (use-guide on-guide-change get-hover-frame zoom {:axis axis})] [:g.new-guides - (let [{:keys [x y width height]} (guide-creation-area vbox zoom axis)] - [:rect {:x x - :y y - :width width - :height height - :on-pointer-enter on-pointer-enter - :on-pointer-leave on-pointer-leave - :on-pointer-down on-pointer-down - :on-pointer-up on-pointer-up - :on-lost-pointer-capture on-lost-pointer-capture - :on-mouse-move on-mouse-move - :style {:fill "none" - :pointer-events "fill" - :cursor (if (= axis :x) "ew-resize" "ns-resize")}}]) + (when-not disabled-guides? + (let [{:keys [x y width height]} (guide-creation-area vbox zoom axis)] + [:rect {:x x + :y y + :width width + :height height + :on-pointer-enter on-pointer-enter + :on-pointer-leave on-pointer-leave + :on-pointer-down on-pointer-down + :on-pointer-up on-pointer-up + :on-lost-pointer-capture on-lost-pointer-capture + :on-mouse-move on-mouse-move + :style {:fill "none" + :pointer-events "fill" + :cursor (if (= axis :x) "ew-resize" "ns-resize")}}])) (when (:new-position @state) [:& guide {:guide {:axis axis @@ -393,12 +395,15 @@ (mf/defc viewport-guides {::mf/wrap [mf/memo]} - [{:keys [zoom vbox hover-frame]}] + [{:keys [zoom vbox hover-frame disabled-guides?]}] (let [page (mf/deref refs/workspace-page) - guides (->> (get-in page [:options :guides] {}) - (vals) - (filter (guide-inside-vbox? vbox))) + + guides (mf/use-memo + (mf/deps page vbox) + #(->> (get-in page [:options :guides] {}) + (vals) + (filter (guide-inside-vbox? vbox)))) hover-frame-ref (mf/use-ref nil) @@ -417,16 +422,23 @@ (st/emit! (dw/update-guides guide)) (st/emit! (dw/remove-guide guide)))))] - #_(mf/use-effect (mf/deps guides) #(.log js/console (clj->js guides))) (mf/use-effect (mf/deps hover-frame) (fn [] - #_(.log js/console "set" (clj->js hover-frame)) (mf/set-ref-val! hover-frame-ref hover-frame))) [:g.guides {:pointer-events "none"} - [:& new-guide-area {:vbox vbox :zoom zoom :axis :x :get-hover-frame get-hover-frame}] - [:& new-guide-area {:vbox vbox :zoom zoom :axis :y :get-hover-frame get-hover-frame}] + [:& new-guide-area {:vbox vbox + :zoom zoom + :axis :x + :get-hover-frame get-hover-frame + :disabled-guides? disabled-guides?}] + + [:& new-guide-area {:vbox vbox + :zoom zoom + :axis :y + :get-hover-frame get-hover-frame + :disabled-guides? disabled-guides?}] (for [current guides] [:& guide {:key (str "guide-" (:id current)) @@ -434,5 +446,6 @@ :vbox vbox :zoom zoom :get-hover-frame get-hover-frame - :on-guide-change on-guide-change}])])) + :on-guide-change on-guide-change + :disabled-guides? disabled-guides?}])])) diff --git a/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs b/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs index ec95528eec..ee807765f1 100644 --- a/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs @@ -52,7 +52,7 @@ :opacity line-opacity}]) (defn get-snap - [coord {:keys [shapes page-id filter-shapes modifiers]}] + [coord {:keys [shapes page-id remove-snap? modifiers]}] (let [shape (if (> (count shapes) 1) (->> shapes (map gsh/transform-shape) gsh/selection-rect (gsh/setup {:type :rect})) (->> shapes (first))) @@ -68,7 +68,7 @@ (->> (sp/shape-snap-points shape) (map #(vector frame-id %))))) (rx/flat-map (fn [[frame-id point]] - (->> (snap/get-snap-points page-id frame-id filter-shapes point coord) + (->> (snap/get-snap-points page-id frame-id remove-snap? point coord) (rx/map #(vector point % coord))))) (rx/reduce conj [])))) @@ -104,7 +104,7 @@ (hash-map coord fixedv (flip coord) maxv)])))) (mf/defc snap-feedback - [{:keys [shapes filter-shapes zoom modifiers] :as props}] + [{:keys [shapes remove-snap? zoom modifiers] :as props}] (let [state (mf/use-state []) subject (mf/use-memo #(rx/subject)) @@ -129,7 +129,7 @@ #(rx/dispose! sub)))) (mf/use-effect - (mf/deps shapes filter-shapes modifiers) + (mf/deps shapes remove-snap? modifiers) (fn [] (rx/push! subject props))) @@ -152,29 +152,26 @@ {::mf/wrap [mf/memo]} [{:keys [layout zoom objects selected page-id drawing transform modifiers] :as props}] - (let [;; shapes (mf/deref (refs/objects-by-id selected)) - ;; filter-shapes (mf/deref refs/selected-shapes-with-children) + (let [shapes + (->> selected + (map #(get objects %)) + (filterv (comp not nil?))) - shapes (->> selected - (map #(get objects %)) - (filterv (comp not nil?))) - filter-shapes (into #{} - (comp (mapcat #(cp/get-object-with-children % objects)) - (map :id)) - selected) + filter-shapes + (into #{} + (comp (mapcat #(cp/get-object-with-children % objects)) + (map :id)) + selected) - filter-shapes (fn [id] - (if (= id :layout) - (or (not (contains? layout :display-grid)) - (not (contains? layout :snap-grid))) - (or (filter-shapes id) - (not (contains? layout :dynamic-alignment))))) + remove-snap? (mf/use-memo + (mf/deps layout filter-shapes) + #(snap/make-remove-snap layout filter-shapes)) shapes (if drawing [drawing] shapes)] (when (or drawing transform) [:& snap-feedback {:shapes shapes :page-id page-id - :filter-shapes filter-shapes + :remove-snap? remove-snap? :zoom zoom :modifiers modifiers}]))) diff --git a/frontend/src/app/util/import/parser.cljs b/frontend/src/app/util/import/parser.cljs index dec08ba7c5..35f9e74f0e 100644 --- a/frontend/src/app/util/import/parser.cljs +++ b/frontend/src/app/util/import/parser.cljs @@ -515,6 +515,20 @@ (let [flows-node (get-data node :penpot:flows)] (->> flows-node :content (mapv parse-flow-node)))) +(defn parse-guide-node [node] + (let [attrs (-> node :attrs remove-penpot-prefix)] + (println attrs) + (let [id (uuid/next)] + [id + {:id id + :frame-id (when (:frame-id attrs) (-> attrs :frame-id uuid)) + :axis (-> attrs :axis keyword) + :position (-> attrs :position d/parse-double)}]))) + +(defn parse-guides [node] + (let [guides-node (get-data node :penpot:guides)] + (->> guides-node :content (map parse-guide-node) (into {})))) + (defn extract-from-data ([node tag] (extract-from-data node tag identity)) @@ -764,7 +778,8 @@ grids (->> (parse-grids node) (group-by :type) (d/mapm (fn [_ v] (-> v first :params)))) - flows (parse-flows node)] + flows (parse-flows node) + guides (parse-guides node)] (cond-> {} (some? background) (assoc-in [:options :background] background) @@ -773,7 +788,10 @@ (assoc-in [:options :saved-grids] grids) (d/not-empty? flows) - (assoc-in [:options :flows] flows)))) + (assoc-in [:options :flows] flows) + + (d/not-empty? guides) + (assoc-in [:options :guides] guides)))) (defn parse-interactions [node] diff --git a/frontend/src/app/worker/import.cljs b/frontend/src/app/worker/import.cljs index 983e5d83de..e6bdb5d494 100644 --- a/frontend/src/app/worker/import.cljs +++ b/frontend/src/app/worker/import.cljs @@ -283,7 +283,6 @@ (defn setup-interactions [file] - (letfn [(add-interactions [file [id interactions]] (->> interactions @@ -294,7 +293,6 @@ (let [interactions (:interactions file) file (dissoc file :interactions)] (->> interactions (reduce add-interactions file))))] - (-> file process-interactions))) (defn resolve-media @@ -328,7 +326,12 @@ (assoc :id (resolve page-id))) flows (->> (get-in page-data [:options :flows]) (mapv #(update % :starting-frame resolve))) - page-data (d/assoc-in-when page-data [:options :flows] flows) + guides (->> (get-in page-data [:options :guides]) + (d/mapm #(update %2 :frame-id resolve))) + + page-data (-> page-data + (d/assoc-in-when [:options :flows] flows) + (d/assoc-in-when [:options :guides] guides)) file (-> file (fb/add-page page-data))] (->> (rx/from nodes) (rx/filter cip/shape?) From f0fd1bb40ca172c9e77cac980ac17e16494c04e3 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 21 Jan 2022 14:04:20 +0100 Subject: [PATCH 019/154] :sparkles: Add menu option for guides --- .../app/main/data/workspace/shortcuts.cljs | 4 ++++ .../src/app/main/ui/workspace/header.cljs | 20 ++++++++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs index 939f9e26ed..7c6cc2212f 100644 --- a/frontend/src/app/main/data/workspace/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/shortcuts.cljs @@ -58,6 +58,10 @@ :command (ds/c-mod "shift+'") :fn #(st/emit! (dw/toggle-layout-flags :snap-grid))} + :toggle-snap-guide {:tooltip (ds/meta-shift "G") + :command (ds/c-mod "shift+G") + :fn #(st/emit! (dw/toggle-layout-flags :snap-guides))} + :toggle-alignment {:tooltip (ds/meta "\\") :command (ds/c-mod "\\") :fn #(st/emit! (dw/toggle-layout-flags :dynamic-alignment))} diff --git a/frontend/src/app/main/ui/workspace/header.cljs b/frontend/src/app/main/ui/workspace/header.cljs index 6a7c5aaab8..f400f2f7ba 100644 --- a/frontend/src/app/main/ui/workspace/header.cljs +++ b/frontend/src/app/main/ui/workspace/header.cljs @@ -194,7 +194,13 @@ (fn [_error] (st/emit! (dm/error (tr "errors.unexpected-error")))) (st/emitf dm/hide))))))) - on-item-click (fn [item] (fn [event] (do (dom/stop-propagation event) (reset! show-sub-menu? item))))] + + on-item-click + (mf/use-callback + (fn [item] + (fn [event] + (dom/stop-propagation event) + (reset! show-sub-menu? item))))] (mf/use-effect (mf/deps @editing?) @@ -314,12 +320,12 @@ [:& dropdown {:show (= @show-sub-menu? :preferences) :on-close #(reset! show-sub-menu? false)} [:ul.sub-menu.preferences - #_[:li {:on-click #()} - [:span - (if (contains? layout :snap-guide) - (tr "workspace.header.menu.disable-snap-guides") - (tr "workspace.header.menu.enable-snap-guides"))] - [:span.shortcut (sc/get-tooltip :toggle-snap-grid)]] + [:li {:on-click #(st/emit! (dw/toggle-layout-flags :snap-guides))} + [:span + (if (contains? layout :snap-guides) + (tr "workspace.header.menu.disable-snap-guides") + (tr "workspace.header.menu.enable-snap-guides"))] + [:span.shortcut (sc/get-tooltip :toggle-snap-guide)]] [:li {:on-click #(st/emit! (dw/toggle-layout-flags :snap-grid))} [:span From 3f89baa1fec6597b4f1b74c3a5408f6e4b210c5f Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 21 Jan 2022 15:49:22 +0100 Subject: [PATCH 020/154] :sparkles: Move guides together with frames --- .../src/app/main/data/workspace/guides.cljs | 37 +++++++++++++++++++ .../app/main/data/workspace/transforms.cljs | 4 ++ .../main/ui/workspace/viewport/guides.cljs | 2 +- .../app/main/ui/workspace/viewport/utils.cljs | 11 ++++-- frontend/src/app/util/dom.cljs | 17 +++++++-- 5 files changed, 63 insertions(+), 8 deletions(-) diff --git a/frontend/src/app/main/data/workspace/guides.cljs b/frontend/src/app/main/data/workspace/guides.cljs index 45502688a7..a5f4d44ca7 100644 --- a/frontend/src/app/main/data/workspace/guides.cljs +++ b/frontend/src/app/main/data/workspace/guides.cljs @@ -6,9 +6,11 @@ (ns app.main.data.workspace.guides (:require + [app.common.spec :as us] [app.main.data.workspace.changes :as dwc] [app.main.data.workspace.state-helpers :as wsh] [beicon.core :as rx] + [cljs.spec.alpha :as s] [potok.core :as ptk])) (defn make-update-guide [guide] @@ -18,6 +20,7 @@ (merge guide)))) (defn update-guides [guide] + ;; TODO CHECK SPEC (ptk/reify ::update-guides ptk/WatchEvent (watch [it state _] @@ -41,6 +44,7 @@ :origin it})))))) (defn remove-guide [guide] + ;; TODO CHECK SPEC (ptk/reify ::remove-guide ptk/WatchEvent (watch [it state _] @@ -61,3 +65,36 @@ {:redo-changes rch :undo-changes uch :origin it})))))) + +(defn move-frame-guides + [ids] + (us/verify (s/coll-of uuid?) ids) + + (ptk/reify ::move-frame-guides + ptk/WatchEvent + + (watch [_ state _] + (let [objects (wsh/lookup-page-objects state) + frame-ids (->> ids (filter #(= :frame (get-in objects [% :type]))) (into #{})) + object-modifiers (get state :workspace-modifiers) + + moved-guide? + (fn [guide] + (let [frame-id (:frame-id guide)] + (and (contains? frame-ids frame-id) + (some? (get-in object-modifiers [frame-id :modifiers :displacement]))))) + + build-move-event + (fn [guide] + (let [disp (get-in object-modifiers [(:frame-id guide) :modifiers :displacement]) + guide (if (= :x (:axis guide)) + (update guide :position + (:e disp)) + (update guide :position + (:f disp)))] + (update-guides guide)))] + + (->> (wsh/lookup-page-options state) + :guides + (vals) + (filter moved-guide?) + (map build-move-event) + (rx/from)))))) diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index 94c3c3af0f..51ee42708d 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -16,6 +16,7 @@ [app.common.spec :as us] [app.main.data.workspace.changes :as dch] [app.main.data.workspace.common :as dwc] + [app.main.data.workspace.guides :as dwg] [app.main.data.workspace.selection :as dws] [app.main.data.workspace.state-helpers :as wsh] [app.main.data.workspace.undo :as dwu] @@ -155,6 +156,8 @@ (update state :workspace-modifiers #(reduce update-shape % shapes))))))) + + (defn- apply-modifiers [ids] (us/verify (s/coll-of uuid?) ids) @@ -186,6 +189,7 @@ :rotation :flip-x :flip-y]}) + (dwg/move-frame-guides ids-with-children) (clear-local-transform) (dwu/commit-undo-transaction)))))) diff --git a/frontend/src/app/main/ui/workspace/viewport/guides.cljs b/frontend/src/app/main/ui/workspace/viewport/guides.cljs index 8c0c7f84b7..854d4d430d 100644 --- a/frontend/src/app/main/ui/workspace/viewport/guides.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/guides.cljs @@ -259,7 +259,7 @@ guide-width (/ guide-width zoom) guide-pill-corner-radius (/ guide-pill-corner-radius zoom)] - [:g.guide-area + [:g.guide-area {:data-guide-frame-id (when (some? frame) (str (:id frame)))} (when-not disabled-guides? (let [{:keys [x y width height]} (guide-area-axis pos vbox zoom frame axis)] [:rect {:x x diff --git a/frontend/src/app/main/ui/workspace/viewport/utils.cljs b/frontend/src/app/main/ui/workspace/viewport/utils.cljs index 088d175494..5c9e3334de 100644 --- a/frontend/src/app/main/ui/workspace/viewport/utils.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/utils.cljs @@ -85,13 +85,16 @@ mask? (and group? masked-group?) ;; When the shape is a frame we maybe need to move its thumbnail - thumb-node (when frame? (dom/get-element (str "thumbnail-" id)))] + thumb-node (when frame? (dom/get-element (str "thumbnail-" id))) + + ] (cond frame? - [thumb-node - (dom/query shape-node ".frame-background") - (dom/query shape-node ".frame-clip")] + (into [thumb-node + (dom/query shape-node ".frame-background") + (dom/query shape-node ".frame-clip")] + (dom/query-all (str "[data-guide-frame-id='" id "']"))) ;; For groups we don't want to transform the whole group but only ;; its filters/masks diff --git a/frontend/src/app/util/dom.cljs b/frontend/src/app/util/dom.cljs index 37e75d1a9f..e6505c51a8 100644 --- a/frontend/src/app/util/dom.cljs +++ b/frontend/src/app/util/dom.cljs @@ -213,9 +213,20 @@ (.-innerText el))) (defn query - [^js el ^string query] - (when (some? el) - (.querySelector el query))) + ([^string query] + (query globals/document query)) + + ([^js el ^string query] + (when (some? el) + (.querySelector el query)))) + +(defn query-all + ([^string query] + (query-all globals/document query)) + + ([^js el ^string query] + (when (some? el) + (.querySelectorAll el query)))) (defn get-client-position [^js event] From 62f7323acf5349844f2fc5a28e34e3fa438890e2 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 24 Jan 2022 11:46:04 +0100 Subject: [PATCH 021/154] :sparkles: Move frames with guides move the guides --- .../src/app/main/data/workspace/guides.cljs | 29 +-- .../app/main/data/workspace/transforms.cljs | 2 +- frontend/src/app/main/ui/shapes/export.cljs | 2 +- .../src/app/main/ui/workspace/viewport.cljs | 1 + .../main/ui/workspace/viewport/guides.cljs | 193 ++++++++++-------- 5 files changed, 122 insertions(+), 105 deletions(-) diff --git a/frontend/src/app/main/data/workspace/guides.cljs b/frontend/src/app/main/data/workspace/guides.cljs index a5f4d44ca7..703ae08d40 100644 --- a/frontend/src/app/main/data/workspace/guides.cljs +++ b/frontend/src/app/main/data/workspace/guides.cljs @@ -6,7 +6,10 @@ (ns app.main.data.workspace.guides (:require + [app.common.geom.point :as gpt] + [app.common.geom.shapes :as gsh] [app.common.spec :as us] + [app.common.types.page-options :as tpo] [app.main.data.workspace.changes :as dwc] [app.main.data.workspace.state-helpers :as wsh] [beicon.core :as rx] @@ -20,7 +23,7 @@ (merge guide)))) (defn update-guides [guide] - ;; TODO CHECK SPEC + (us/verify ::tpo/guide guide) (ptk/reify ::update-guides ptk/WatchEvent (watch [it state _] @@ -44,7 +47,7 @@ :origin it})))))) (defn remove-guide [guide] - ;; TODO CHECK SPEC + (us/verify ::tpo/guide guide) (ptk/reify ::remove-guide ptk/WatchEvent (watch [it state _] @@ -75,26 +78,24 @@ (watch [_ state _] (let [objects (wsh/lookup-page-objects state) - frame-ids (->> ids (filter #(= :frame (get-in objects [% :type]))) (into #{})) + frame-ids? (->> ids (filter #(= :frame (get-in objects [% :type]))) (into #{})) object-modifiers (get state :workspace-modifiers) - moved-guide? - (fn [guide] - (let [frame-id (:frame-id guide)] - (and (contains? frame-ids frame-id) - (some? (get-in object-modifiers [frame-id :modifiers :displacement]))))) - build-move-event (fn [guide] - (let [disp (get-in object-modifiers [(:frame-id guide) :modifiers :displacement]) - guide (if (= :x (:axis guide)) - (update guide :position + (:e disp)) - (update guide :position + (:f disp)))] + (let [frame (get objects (:frame-id guide)) + frame' (-> (merge frame (get object-modifiers (:frame-id guide))) + (gsh/transform-shape)) + + moved (gpt/to-vec (gpt/point (:x frame) (:y frame)) + (gpt/point (:x frame') (:y frame'))) + + guide (update guide :position + (get moved (:axis guide)))] (update-guides guide)))] (->> (wsh/lookup-page-options state) :guides (vals) - (filter moved-guide?) + (filter (comp frame-ids? :frame-id)) (map build-move-event) (rx/from)))))) diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index 51ee42708d..5edec0efb3 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -171,6 +171,7 @@ ignore-tree (get-ignore-tree object-modifiers objects ids)] (rx/of (dwu/start-undo-transaction) + (dwg/move-frame-guides ids-with-children) (dch/update-shapes ids-with-children (fn [shape] @@ -189,7 +190,6 @@ :rotation :flip-x :flip-y]}) - (dwg/move-frame-guides ids-with-children) (clear-local-transform) (dwu/commit-undo-transaction)))))) diff --git a/frontend/src/app/main/ui/shapes/export.cljs b/frontend/src/app/main/ui/shapes/export.cljs index efce856f6d..bde04d4420 100644 --- a/frontend/src/app/main/ui/shapes/export.cljs +++ b/frontend/src/app/main/ui/shapes/export.cljs @@ -158,7 +158,7 @@ (mf/defc export-guides [{:keys [guides]}] [:> "penpot:guides" #js {} - (for [{:keys [id position frame-id axis]} (vals guides)] + (for [{:keys [position frame-id axis]} (vals guides)] [:> "penpot:guide" #js {:position position :frame-id frame-id :axis (d/name axis)}])]) diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index 41a1a04e2c..ca67ea5981 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -370,5 +370,6 @@ {:zoom zoom :vbox vbox :hover-frame frame-parent + :modifiers modifiers :disabled-guides? disabled-guides?}]])]]])) diff --git a/frontend/src/app/main/ui/workspace/viewport/guides.cljs b/frontend/src/app/main/ui/workspace/viewport/guides.cljs index 854d4d430d..fd5a389189 100644 --- a/frontend/src/app/main/ui/workspace/viewport/guides.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/guides.cljs @@ -7,6 +7,8 @@ (ns app.main.ui.workspace.viewport.guides (:require [app.common.colors :as colors] + [app.common.geom.point :as gpt] + [app.common.geom.shapes :as gsh] [app.common.math :as mth] [app.common.uuid :as uuid] [app.main.data.workspace :as dw] @@ -137,11 +139,7 @@ {:x (+ (:x vbox) rules-pos) :y (- pos (/ guide-active-area 2)) :width (:width vbox) - :height guide-active-area} - - - - ))) + :height guide-active-area}))) (defn guide-line-axis ([pos vbox axis] @@ -232,9 +230,19 @@ :width (:width vbox) :height (/ 24 zoom)})) +(defn is-guide-inside-frame? + [guide frame] + + (if (= :x (:axis guide)) + (and (>= (:position guide) (:x frame) ) + (<= (:position guide) (+ (:x frame) (:width frame)) )) + + (and (>= (:position guide) (:y frame) ) + (<= (:position guide) (+ (:y frame) (:height frame)) )))) + (mf/defc guide {::mf/wrap [mf/memo]} - [{:keys [guide hover? on-guide-change get-hover-frame vbox zoom hover-frame disabled-guides?]}] + [{:keys [guide hover? on-guide-change get-hover-frame vbox zoom hover-frame disabled-guides? frame-modifier]}] (let [axis (:axis guide) @@ -254,96 +262,102 @@ state frame]} (use-guide handle-change-position get-hover-frame zoom guide) - frame (or frame hover-frame) - pos (or (:new-position @state) (:position guide)) + base-frame (or frame hover-frame) + frame (gsh/transform-shape (merge base-frame frame-modifier)) + + move-vec (gpt/to-vec (gpt/point (:x base-frame) (:y base-frame)) + (gpt/point (:x frame) (:y frame))) + + pos (+ (or (:new-position @state) (:position guide)) (get move-vec axis)) guide-width (/ guide-width zoom) guide-pill-corner-radius (/ guide-pill-corner-radius zoom)] - [:g.guide-area {:data-guide-frame-id (when (some? frame) (str (:id frame)))} - (when-not disabled-guides? - (let [{:keys [x y width height]} (guide-area-axis pos vbox zoom frame axis)] - [:rect {:x x - :y y - :width width - :height height - :style {:fill "none" - :pointer-events "fill" - :cursor (if (= axis :x) "ew-resize" "ns-resize")} - :on-pointer-enter on-pointer-enter - :on-pointer-leave on-pointer-leave - :on-pointer-down on-pointer-down - :on-pointer-up on-pointer-up - :on-lost-pointer-capture on-lost-pointer-capture - :on-mouse-move on-mouse-move}])) + (when (or (nil? frame) (is-guide-inside-frame? (assoc guide :position pos) frame)) + [:g.guide-area {:data-guide-frame-id (when (some? frame) (str (:id frame)))} + (when-not disabled-guides? + (let [{:keys [x y width height]} (guide-area-axis pos vbox zoom frame axis)] + [:rect {:x x + :y y + :width width + :height height + :style {:fill "none" + :pointer-events "fill" + :cursor (if (= axis :x) "ew-resize" "ns-resize")} + :on-pointer-enter on-pointer-enter + :on-pointer-leave on-pointer-leave + :on-pointer-down on-pointer-down + :on-pointer-up on-pointer-up + :on-lost-pointer-capture on-lost-pointer-capture + :on-mouse-move on-mouse-move}])) - (if (some? frame) - (let [{:keys [l1-x1 l1-y1 l1-x2 l1-y2 - l2-x1 l2-y1 l2-x2 l2-y2 - l3-x1 l3-y1 l3-x2 l3-y2]} - (guide-line-axis pos vbox frame axis)] - [:g - (when (or hover? (:hover @state)) - [:line {:x1 l1-x1 - :y1 l1-y1 - :x2 l1-x2 - :y2 l1-y2 + (if (some? frame) + (let [{:keys [l1-x1 l1-y1 l1-x2 l1-y2 + l2-x1 l2-y1 l2-x2 l2-y2 + l3-x1 l3-y1 l3-x2 l3-y2]} + (guide-line-axis pos vbox frame axis)] + [:g + (when (or hover? (:hover @state)) + [:line {:x1 l1-x1 + :y1 l1-y1 + :x2 l1-x2 + :y2 l1-y2 + :style {:stroke guide-color + :stroke-opacity guide-opacity-hover + :stroke-dasharray (str "0, " (/ 6 zoom)) + :stroke-linecap "round" + :stroke-width guide-width}}]) + [:line {:x1 l2-x1 + :y1 l2-y1 + :x2 l2-x2 + :y2 l2-y2 :style {:stroke guide-color - :stroke-opacity guide-opacity-hover - :stroke-dasharray (str "0, " (/ 6 zoom)) - :stroke-linecap "round" - :stroke-width guide-width}}]) - [:line {:x1 l2-x1 - :y1 l2-y1 - :x2 l2-x2 - :y2 l2-y2 - :style {:stroke guide-color - :stroke-width guide-width - :stroke-opacity (if (or hover? (:hover @state)) - guide-opacity-hover - guide-opacity)}}] - (when (or hover? (:hover @state)) - [:line {:x1 l3-x1 - :y1 l3-y1 - :x2 l3-x2 - :y2 l3-y2 - :style {:stroke guide-color - :stroke-opacity guide-opacity-hover :stroke-width guide-width - :stroke-dasharray (str "0, " (/ 6 zoom)) - :stroke-linecap "round"}}])]) + :stroke-opacity (if (or hover? (:hover @state)) + guide-opacity-hover + guide-opacity)}}] + (when (or hover? (:hover @state)) + [:line {:x1 l3-x1 + :y1 l3-y1 + :x2 l3-x2 + :y2 l3-y2 + :style {:stroke guide-color + :stroke-opacity guide-opacity-hover + :stroke-width guide-width + :stroke-dasharray (str "0, " (/ 6 zoom)) + :stroke-linecap "round"}}])]) - (let [{:keys [x1 y1 x2 y2]} (guide-line-axis pos vbox axis)] - [:line {:x1 x1 - :y1 y1 - :x2 x2 - :y2 y2 - :style {:stroke guide-color - :stroke-width guide-width - :stroke-opacity (if (or hover? (:hover @state)) - guide-opacity-hover - guide-opacity)}}])) + (let [{:keys [x1 y1 x2 y2]} (guide-line-axis pos vbox axis)] + [:line {:x1 x1 + :y1 y1 + :x2 x2 + :y2 y2 + :style {:stroke guide-color + :stroke-width guide-width + :stroke-opacity (if (or hover? (:hover @state)) + guide-opacity-hover + guide-opacity)}}])) - (when (or hover? (:hover @state)) - (let [{:keys [rect-x rect-y rect-width rect-height text-x text-y]} - (guide-pill-axis pos vbox zoom axis)] - [:g.guide-pill - [:rect {:x rect-x - :y rect-y - :width rect-width - :height rect-height - :rx guide-pill-corner-radius - :ry guide-pill-corner-radius - :style {:fill guide-color}}] - - [:text {:x text-x - :y text-y - :text-anchor "middle" - :dominant-baseline "middle" - :transform (when (= axis :y) (str "rotate(-90 " text-x "," text-y ")")) - :style {:font-size (/ 13 zoom) - :font-family "sourcesanspro" - :fill colors/black}} - (str (mth/round pos))]]))])) + (when (or hover? (:hover @state)) + (let [{:keys [rect-x rect-y rect-width rect-height text-x text-y]} + (guide-pill-axis pos vbox zoom axis)] + [:g.guide-pill + [:rect {:x rect-x + :y rect-y + :width rect-width + :height rect-height + :rx guide-pill-corner-radius + :ry guide-pill-corner-radius + :style {:fill guide-color}}] + + [:text {:x text-x + :y text-y + :text-anchor "middle" + :dominant-baseline "middle" + :transform (when (= axis :y) (str "rotate(-90 " text-x "," text-y ")")) + :style {:font-size (/ 13 zoom) + :font-family "sourcesanspro" + :fill colors/black}} + (str (mth/round pos))]]))]))) (mf/defc new-guide-area [{:keys [vbox zoom axis get-hover-frame disabled-guides?]}] @@ -395,7 +409,7 @@ (mf/defc viewport-guides {::mf/wrap [mf/memo]} - [{:keys [zoom vbox hover-frame disabled-guides?]}] + [{:keys [zoom vbox hover-frame disabled-guides? modifiers]}] (let [page (mf/deref refs/workspace-page) @@ -445,6 +459,7 @@ :guide current :vbox vbox :zoom zoom + :frame-modifier (get modifiers (:frame-id current)) :get-hover-frame get-hover-frame :on-guide-change on-guide-change :disabled-guides? disabled-guides?}])])) From 39334b81ace3f7e4bb0dcda80921c7677f21da6f Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 24 Jan 2022 12:50:28 +0100 Subject: [PATCH 022/154] :sparkles: Guides cursors --- frontend/resources/images/cursors/resize-h-2.svg | 1 + frontend/src/app/main/ui/cursors.cljs | 3 +++ frontend/src/app/main/ui/workspace/viewport/guides.cljs | 9 ++++++--- 3 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 frontend/resources/images/cursors/resize-h-2.svg diff --git a/frontend/resources/images/cursors/resize-h-2.svg b/frontend/resources/images/cursors/resize-h-2.svg new file mode 100644 index 0000000000..5522037b14 --- /dev/null +++ b/frontend/resources/images/cursors/resize-h-2.svg @@ -0,0 +1 @@ + diff --git a/frontend/src/app/main/ui/cursors.cljs b/frontend/src/app/main/ui/cursors.cljs index c52be68919..a575750997 100644 --- a/frontend/src/app/main/ui/cursors.cljs +++ b/frontend/src/app/main/ui/cursors.cljs @@ -38,6 +38,9 @@ (def resize-nwse (cursor-fn :resize-h 135)) (def rotate (cursor-fn :rotate 90)) +;; +(def resize-ew-2 (cursor-fn :resize-h-2 0)) +(def resize-ns-2 (cursor-fn :resize-h-2 90)) (mf/defc debug-preview {::mf/wrap-props false} diff --git a/frontend/src/app/main/ui/workspace/viewport/guides.cljs b/frontend/src/app/main/ui/workspace/viewport/guides.cljs index fd5a389189..25afe586c4 100644 --- a/frontend/src/app/main/ui/workspace/viewport/guides.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/guides.cljs @@ -15,6 +15,7 @@ [app.main.refs :as refs] [app.main.store :as st] [app.main.streams :as ms] + [app.main.ui.cursors :as cur] [app.main.ui.workspace.viewport.rules :as rules] [app.util.dom :as dom] [rumext.alpha :as mf])) @@ -272,7 +273,9 @@ guide-width (/ guide-width zoom) guide-pill-corner-radius (/ guide-pill-corner-radius zoom)] - (when (or (nil? frame) (is-guide-inside-frame? (assoc guide :position pos) frame)) + (when (or (nil? frame) + (is-guide-inside-frame? (assoc guide :position pos) frame) + (:hover @state true)) [:g.guide-area {:data-guide-frame-id (when (some? frame) (str (:id frame)))} (when-not disabled-guides? (let [{:keys [x y width height]} (guide-area-axis pos vbox zoom frame axis)] @@ -282,7 +285,7 @@ :height height :style {:fill "none" :pointer-events "fill" - :cursor (if (= axis :x) "ew-resize" "ns-resize")} + :cursor (if (= axis :x) (cur/resize-ew 0) (cur/resize-ns 0))} :on-pointer-enter on-pointer-enter :on-pointer-leave on-pointer-leave :on-pointer-down on-pointer-down @@ -396,7 +399,7 @@ :on-mouse-move on-mouse-move :style {:fill "none" :pointer-events "fill" - :cursor (if (= axis :x) "ew-resize" "ns-resize")}}])) + :cursor (if (= axis :x) (cur/resize-ew 0) (cur/resize-ns 0))}}])) (when (:new-position @state) [:& guide {:guide {:axis axis From d9b1c0e2e637890af33f63021877efbea538332e Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 24 Jan 2022 14:49:23 +0100 Subject: [PATCH 023/154] :sparkles: More tests for snap data --- common/src/app/common/file_builder.cljc | 78 ++++++-- frontend/src/app/util/snap_data.cljs | 3 +- frontend/test/app/util/snap_data_test.cljs | 212 +++++++++++++++++++-- 3 files changed, 263 insertions(+), 30 deletions(-) diff --git a/common/src/app/common/file_builder.cljc b/common/src/app/common/file_builder.cljc index b323f51d97..e2dd9f30e2 100644 --- a/common/src/app/common/file_builder.cljc +++ b/common/src/app/common/file_builder.cljc @@ -568,22 +568,6 @@ (dissoc :current-component-id) (update :parent-stack pop)))) -(defn add-guide - [file guide] - - (let [guide (cond-> guide - (nil? (:id guide)) - (assoc :id (uuid/next))) - page-id (:current-page-id file) - old-guides (or (get-in file [:data :pages-index page-id :options :guides]) {}) - new-guides (assoc old-guides (:id guide) guide)] - (commit-change - file - {:type :set-option - :page-id page-id - :option :guides - :value new-guides}))) - (defn delete-object [file id] (let [page-id (:current-page-id file)] @@ -593,7 +577,69 @@ :page-id page-id :id id}))) +(defn update-object + [file old-obj new-obj] + (let [page-id (:current-page-id file) + new-obj (setup-selrect new-obj) + attrs (d/concat-set (keys old-obj) (keys new-obj)) + generate-operation + (fn [changes attr] + (let [old-val (get old-obj attr) + new-val (get new-obj attr)] + (if (= old-val new-val) + changes + (conj changes {:type :set :attr attr :val new-val}))))] + (-> file + (commit-change + {:type :mod-obj + :operations (reduce generate-operation [] attrs) + :page-id page-id + :id (:id old-obj)})))) + (defn get-current-page [file] (let [page-id (:current-page-id file)] (-> file (get-in [:data :pages-index page-id])))) + +(defn add-guide + [file guide] + + (let [guide (cond-> guide + (nil? (:id guide)) + (assoc :id (uuid/next))) + page-id (:current-page-id file) + old-guides (or (get-in file [:data :pages-index page-id :options :guides]) {}) + new-guides (assoc old-guides (:id guide) guide)] + (-> file + (commit-change + {:type :set-option + :page-id page-id + :option :guides + :value new-guides}) + (assoc :last-id (:id guide))))) + +(defn delete-guide + [file id] + + (let [page-id (:current-page-id file) + old-guides (or (get-in file [:data :pages-index page-id :options :guides]) {}) + new-guides (dissoc old-guides id)] + (-> file + (commit-change + {:type :set-option + :page-id page-id + :option :guides + :value new-guides})))) + +(defn update-guide + [file guide] + + (let [page-id (:current-page-id file) + old-guides (or (get-in file [:data :pages-index page-id :options :guides]) {}) + new-guides (assoc old-guides (:id guide) guide)] + (-> file + (commit-change + {:type :set-option + :page-id page-id + :option :guides + :value new-guides})))) diff --git a/frontend/src/app/util/snap_data.cljs b/frontend/src/app/util/snap_data.cljs index ed54272345..1874f77932 100644 --- a/frontend/src/app/util/snap_data.cljs +++ b/frontend/src/app/util/snap_data.cljs @@ -102,7 +102,6 @@ :type :guide :id (:id guide) :pt %)))] - (if-let [frame-id (:frame-id guide)] ;; Guide inside frame, we add the information only on that frame (-> page-data @@ -111,7 +110,7 @@ ;; Guide outside the frame. We add the information in the global guides data (-> page-data - (assoc-in [:guides :objects-data (:id guide)] [guide-data]) + (assoc-in [:guides :objects-data (:id guide)] guide-data) (update-in [:guides (:axis guide)] (make-insert-tree-data guide-data (:axis guide))))))) (defn remove-frame diff --git a/frontend/test/app/util/snap_data_test.cljs b/frontend/test/app/util/snap_data_test.cljs index ff09693a42..6982d4f6f5 100644 --- a/frontend/test/app/util/snap_data_test.cljs +++ b/frontend/test/app/util/snap_data_test.cljs @@ -37,7 +37,6 @@ :height 100})) page (fb/get-current-page file) - ;; frame-id (:last-id file) data (-> (sd/make-snap-data) (sd/add-page page)) @@ -217,8 +216,7 @@ data (-> (sd/make-snap-data) (sd/add-page page)) - file (-> file - (fb/delete-object shape-id)) + file (fb/delete-object file shape-id) new-page (fb/get-current-page file) data (sd/update-page data page new-page) @@ -230,14 +228,204 @@ (t/is (= (count result-x) 0)) (t/is (= (count result-y) 0)))) - (t/testing "Create shape inside frame, then remove it") - (t/testing "Create guide then remove it") + (t/testing "Create shape inside frame, then remove it" + (let [file (-> (fb/create-file "Test") + (fb/add-page {:name "Page-1"}) + (fb/add-artboard + {:x 0 + :y 0 + :width 100 + :height 100})) + frame-id (:last-id file) - (t/testing "Update frame coordinates") - (t/testing "Update shape coordinates") - (t/testing "Update shape inside frame coordinates") - (t/testing "Update global guide") - (t/testing "Update frame guide") + file (fb/create-rect file {:x 25 :y 25 :width 50 :height 50}) + shape-id (:last-id file) - (t/testing "Change shape frame") - (t/testing "Change guide frame")) + file (fb/close-artboard file) + + page (fb/get-current-page file) + data (-> (sd/make-snap-data) + (sd/add-page page)) + + file (fb/delete-object file shape-id) + new-page (fb/get-current-page file) + + data (sd/update-page data page new-page) + + result-zero-x (sd/query data (:id page) uuid/zero :x [0 100]) + result-frame-x (sd/query data (:id page) frame-id :x [0 100])] + + (t/is (some? data)) + (t/is (= (count result-zero-x) 3)) + (t/is (= (count result-frame-x) 3)))) + + (t/testing "Create global guide then remove it" + (let [file (-> (fb/create-file "Test") + (fb/add-page {:name "Page-1"}) + (fb/add-guide {:position 50 :axis :x})) + + guide-id (:last-id file) + + file (-> (fb/add-artboard file {:x 200 :y 200 :width 100 :height 100}) + (fb/close-artboard)) + + frame-id (:last-id file) + page (fb/get-current-page file) + data (-> (sd/make-snap-data) (sd/add-page page)) + + new-page (-> (fb/delete-guide file guide-id) + (fb/get-current-page)) + + data (sd/update-page data page new-page) + + result-zero-x (sd/query data (:id page) uuid/zero :x [0 100]) + result-zero-y (sd/query data (:id page) uuid/zero :y [0 100]) + result-frame-x (sd/query data (:id page) frame-id :x [0 100]) + result-frame-y (sd/query data (:id page) frame-id :y [0 100])] + + (t/is (some? data)) + ;; We can snap in the root + (t/is (= (count result-zero-x) 0)) + (t/is (= (count result-zero-y) 0)) + + ;; We can snap in the frame + (t/is (= (count result-frame-x) 0)) + (t/is (= (count result-frame-y) 0)))) + + (t/testing "Create frame guide then remove it" + (let [file (-> (fb/create-file "Test") + (fb/add-page {:name "Page-1"}) + (fb/add-artboard {:x 200 :y 200 :width 100 :height 100}) + (fb/close-artboard)) + + frame-id (:last-id file) + file (fb/add-guide file {:position 50 :axis :x :frame-id frame-id}) + guide-id (:last-id file) + + page (fb/get-current-page file) + data (-> (sd/make-snap-data) (sd/add-page page)) + + new-page (-> (fb/delete-guide file guide-id) + (fb/get-current-page)) + + data (sd/update-page data page new-page) + + result-zero-x (sd/query data (:id page) uuid/zero :x [0 100]) + result-zero-y (sd/query data (:id page) uuid/zero :y [0 100]) + result-frame-x (sd/query data (:id page) frame-id :x [0 100]) + result-frame-y (sd/query data (:id page) frame-id :y [0 100])] + (t/is (some? data)) + ;; We can snap in the root + (t/is (= (count result-zero-x) 0)) + (t/is (= (count result-zero-y) 0)) + + ;; We can snap in the frame + (t/is (= (count result-frame-x) 0)) + (t/is (= (count result-frame-y) 0)))) + + (t/testing "Update frame coordinates" + (let [file (-> (fb/create-file "Test") + (fb/add-page {:name "Page-1"}) + (fb/add-artboard + {:x 0 + :y 0 + :width 100 + :height 100}) + (fb/close-artboard)) + + frame-id (:last-id file) + page (fb/get-current-page file) + data (-> (sd/make-snap-data) (sd/add-page page)) + + frame (fb/lookup-shape file frame-id) + new-frame (-> frame + (assoc :x 200 :y 200)) + + file (fb/update-object file frame new-frame) + new-page (fb/get-current-page file) + + data (sd/update-page data page new-page) + + result-zero-x-1 (sd/query data (:id page) uuid/zero :x [0 100]) + result-frame-x-1 (sd/query data (:id page) frame-id :x [0 100]) + result-zero-x-2 (sd/query data (:id page) uuid/zero :x [200 300]) + result-frame-x-2 (sd/query data (:id page) frame-id :x [200 300])] + + (t/is (some? data)) + (t/is (= (count result-zero-x-1) 0)) + (t/is (= (count result-frame-x-1) 0)) + (t/is (= (count result-zero-x-2) 3)) + (t/is (= (count result-frame-x-2) 3)))) + + (t/testing "Update shape coordinates" + (let [file (-> (fb/create-file "Test") + (fb/add-page {:name "Page-1"}) + (fb/create-rect + {:x 0 + :y 0 + :width 100 + :height 100})) + + shape-id (:last-id file) + page (fb/get-current-page file) + data (-> (sd/make-snap-data) (sd/add-page page)) + + shape (fb/lookup-shape file shape-id) + new-shape (-> shape + (assoc :x 200 :y 200)) + + file (fb/update-object file shape new-shape) + new-page (fb/get-current-page file) + + data (sd/update-page data page new-page) + + result-zero-x-1 (sd/query data (:id page) uuid/zero :x [0 100]) + result-zero-x-2 (sd/query data (:id page) uuid/zero :x [200 300])] + + (t/is (some? data)) + (t/is (= (count result-zero-x-1) 0)) + (t/is (= (count result-zero-x-2) 3)))) + + (t/testing "Update global guide" + (let [guide {:position 50 :axis :x} + file (-> (fb/create-file "Test") + (fb/add-page {:name "Page-1"}) + (fb/add-guide guide)) + + guide-id (:last-id file) + guide (assoc guide :id guide-id) + + file (-> (fb/add-artboard file {:x 500 :y 500 :width 100 :height 100}) + (fb/close-artboard)) + + frame-id (:last-id file) + page (fb/get-current-page file) + data (-> (sd/make-snap-data) (sd/add-page page)) + + new-page (-> (fb/update-guide file (assoc guide :position 150)) + (fb/get-current-page)) + + data (sd/update-page data page new-page) + + result-zero-x-1 (sd/query data (:id page) uuid/zero :x [0 100]) + result-zero-y-1 (sd/query data (:id page) uuid/zero :y [0 100]) + result-frame-x-1 (sd/query data (:id page) frame-id :x [0 100]) + result-frame-y-1 (sd/query data (:id page) frame-id :y [0 100]) + + result-zero-x-2 (sd/query data (:id page) uuid/zero :x [0 200]) + result-zero-y-2 (sd/query data (:id page) uuid/zero :y [0 200]) + result-frame-x-2 (sd/query data (:id page) frame-id :x [0 200]) + result-frame-y-2 (sd/query data (:id page) frame-id :y [0 200]) + ] + + (t/is (some? data)) + + (t/is (= (count result-zero-x-1) 0)) + (t/is (= (count result-zero-y-1) 0)) + (t/is (= (count result-frame-x-1) 0)) + (t/is (= (count result-frame-y-1) 0)) + + (t/is (= (count result-zero-x-2) 1)) + (t/is (= (count result-zero-y-2) 0)) + (t/is (= (count result-frame-x-2) 1)) + (t/is (= (count result-frame-y-2) 0))))) From 663358bdae34a66e50f9e2389f158401bc5b4d3a Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 24 Jan 2022 14:53:47 +0100 Subject: [PATCH 024/154] :books: Update changelog --- CHANGES.md | 12 +++++++++--- version.txt | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index d6c0fa10fc..634e6a503c 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,13 +2,19 @@ ## :rocket: Next +### :sparkles: New features + +- Guides [Taiga #290](https://tree.taiga.io/project/penpot/us/290?milestone=307334) +- Improve file menu by adding semantically groups [Github #1203](https://github.com/penpot/penpot/issues/1203). +- Create e2e tests for drawing basic fors [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608). +- Create firsts e2e test [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608). + +## 1.11.0-beta + ### :boom: Breaking changes ### :sparkles: New features -- Create e2e tests for drawing basic fors [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608). -- Improve file menu by adding semantically groups [Github #1203](https://github.com/penpot/penpot/issues/1203). -- Create firsts e2e test [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608). - Add an option to hide artboards names on the viewport [Taiga #2034](https://tree.taiga.io/project/penpot/issue/2034). - Limit pasted object position to container boundaries [Taiga #2449](https://tree.taiga.io/project/penpot/us/2449). - Add new options for zoom widget in workspace and viewer mode [Taiga #896](https://tree.taiga.io/project/penpot/us/896). diff --git a/version.txt b/version.txt index 4beb19d049..08c36205db 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.11.0-beta +1.12.0-beta From 8833e19c7fbe9447db422e94ded99580e58dd6fb Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 24 Jan 2022 15:04:36 +0100 Subject: [PATCH 025/154] :bug: Small fixes for guides --- .../src/app/main/data/workspace/guides.cljs | 2 +- .../src/app/main/ui/workspace/viewport.cljs | 1 - .../main/ui/workspace/viewport/guides.cljs | 3 +-- .../app/main/ui/workspace/viewport/utils.cljs | 11 +++----- frontend/src/app/util/geom/snap_points.cljs | 3 --- frontend/src/app/util/snap_data.cljs | 26 ++++++++++--------- 6 files changed, 20 insertions(+), 26 deletions(-) diff --git a/frontend/src/app/main/data/workspace/guides.cljs b/frontend/src/app/main/data/workspace/guides.cljs index 703ae08d40..ba614eebd4 100644 --- a/frontend/src/app/main/data/workspace/guides.cljs +++ b/frontend/src/app/main/data/workspace/guides.cljs @@ -70,12 +70,12 @@ :origin it})))))) (defn move-frame-guides + "Move guides that are inside a frame when that frame is moved" [ids] (us/verify (s/coll-of uuid?) ids) (ptk/reify ::move-frame-guides ptk/WatchEvent - (watch [_ state _] (let [objects (wsh/lookup-page-objects state) frame-ids? (->> ids (filter #(= :frame (get-in objects [% :type]))) (into #{})) diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index ca67ea5981..2ca92bb7fa 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -157,7 +157,6 @@ show-artboard-names? (contains? layout :display-artboard-names) show-rules? (contains? layout :rules) - ;; TODO disabled-guides? (or drawing-tool transform)] (hooks/setup-dom-events viewport-ref zoom disable-paste in-viewport?) diff --git a/frontend/src/app/main/ui/workspace/viewport/guides.cljs b/frontend/src/app/main/ui/workspace/viewport/guides.cljs index 25afe586c4..f18d913f61 100644 --- a/frontend/src/app/main/ui/workspace/viewport/guides.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/guides.cljs @@ -97,7 +97,6 @@ ;; TODO: Change when pixel-grid flag exists new-position (mth/round new-position) new-frame-id (:id (get-hover-frame))] - #_(prn ">>" new-position new-frame-id) (swap! state assoc :new-position new-position :new-frame-id new-frame-id)))))] @@ -276,7 +275,7 @@ (when (or (nil? frame) (is-guide-inside-frame? (assoc guide :position pos) frame) (:hover @state true)) - [:g.guide-area {:data-guide-frame-id (when (some? frame) (str (:id frame)))} + [:g.guide-area (when-not disabled-guides? (let [{:keys [x y width height]} (guide-area-axis pos vbox zoom frame axis)] [:rect {:x x diff --git a/frontend/src/app/main/ui/workspace/viewport/utils.cljs b/frontend/src/app/main/ui/workspace/viewport/utils.cljs index 5c9e3334de..088d175494 100644 --- a/frontend/src/app/main/ui/workspace/viewport/utils.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/utils.cljs @@ -85,16 +85,13 @@ mask? (and group? masked-group?) ;; When the shape is a frame we maybe need to move its thumbnail - thumb-node (when frame? (dom/get-element (str "thumbnail-" id))) - - ] + thumb-node (when frame? (dom/get-element (str "thumbnail-" id)))] (cond frame? - (into [thumb-node - (dom/query shape-node ".frame-background") - (dom/query shape-node ".frame-clip")] - (dom/query-all (str "[data-guide-frame-id='" id "']"))) + [thumb-node + (dom/query shape-node ".frame-background") + (dom/query shape-node ".frame-clip")] ;; For groups we don't want to transform the whole group but only ;; its filters/masks diff --git a/frontend/src/app/util/geom/snap_points.cljs b/frontend/src/app/util/geom/snap_points.cljs index 04ce1ebbf9..8fccf5bf36 100644 --- a/frontend/src/app/util/geom/snap_points.cljs +++ b/frontend/src/app/util/geom/snap_points.cljs @@ -31,9 +31,6 @@ (defn guide-snap-points [guide] - - ;; TODO: The line will be displayed from the position to the axis. Maybe - ;; revisit this (if (= :x (:axis guide)) #{(gpt/point (:position guide) 0)} #{(gpt/point 0 (:position guide))})) diff --git a/frontend/src/app/util/snap_data.cljs b/frontend/src/app/util/snap_data.cljs index 1874f77932..9a58cd1b2d 100644 --- a/frontend/src/app/util/snap_data.cljs +++ b/frontend/src/app/util/snap_data.cljs @@ -21,7 +21,7 @@ ;; PRIVATE FUNCTIONS -(defn make-insert-tree-data +(defn- make-insert-tree-data [shape-data axis] (fn [tree] (let [tree (or tree (rt/make-tree))] @@ -30,7 +30,7 @@ (rt/insert tree (get-in data [:pt axis]) data)) $ shape-data))))) -(defn make-delete-tree-data +(defn- make-delete-tree-data [shape-data axis] (fn [tree] (let [tree (or tree (rt/make-tree))] @@ -39,7 +39,7 @@ (rt/remove tree (get-in data [:pt axis]) data)) $ shape-data))))) -(defn add-root-frame +(defn- add-root-frame [page-data] (let [frame-id uuid/zero] @@ -47,7 +47,7 @@ (assoc-in [frame-id :x] (rt/make-tree)) (assoc-in [frame-id :y] (rt/make-tree))))) -(defn add-frame +(defn- add-frame [page-data frame] (let [frame-id (:id frame) parent-id (:parent-id frame) @@ -79,7 +79,7 @@ (update-in [frame-id :x] (make-insert-tree-data (d/concat-vec frame-data grid-x-data) :x)) (update-in [frame-id :y] (make-insert-tree-data (d/concat-vec frame-data grid-y-data) :y))))) -(defn add-shape +(defn- add-shape [page-data shape] (let [frame-id (:frame-id shape) snap-points (snap/shape-snap-points shape) @@ -94,7 +94,7 @@ (update-in [frame-id :y] (make-insert-tree-data shape-data :y))))) -(defn add-guide +(defn- add-guide [page-data guide] (let [guide-data (->> (snap/guide-snap-points guide) @@ -113,7 +113,7 @@ (assoc-in [:guides :objects-data (:id guide)] guide-data) (update-in [:guides (:axis guide)] (make-insert-tree-data guide-data (:axis guide))))))) -(defn remove-frame +(defn- remove-frame [page-data frame] (let [frame-id (:id frame) root-data (get-in page-data [uuid/zero :objects-data frame-id])] @@ -123,7 +123,7 @@ (update-in [uuid/zero :y] (make-delete-tree-data root-data :y)) (dissoc frame-id)))) -(defn remove-shape +(defn- remove-shape [page-data shape] (let [frame-id (:frame-id shape) @@ -133,7 +133,7 @@ (update-in [frame-id :x] (make-delete-tree-data shape-data :x)) (update-in [frame-id :y] (make-delete-tree-data shape-data :y))))) -(defn remove-guide +(defn- remove-guide [page-data guide] (if-let [frame-id (:frame-id guide)] (let [guide-data (get-in page-data [frame-id :objects-data (:id guide)])] @@ -147,7 +147,7 @@ (d/dissoc-in [:guides :objects-data (:id guide)]) (update-in [:guides (:axis guide)] (make-delete-tree-data guide-data (:axis guide))))))) -(defn update-frame +(defn- update-frame [page-data [_ new-frame]] (let [frame-id (:id new-frame) root-data (get-in page-data [uuid/zero :objects-data frame-id]) @@ -159,19 +159,20 @@ (update-in [frame-id :y] (make-delete-tree-data frame-data :y)) (add-frame new-frame)))) -(defn update-shape +(defn- update-shape [page-data [old-shape new-shape]] (-> page-data (remove-shape old-shape) (add-shape new-shape))) -(defn update-guide +(defn- update-guide [page-data [old-guide new-guide]] (-> page-data (remove-guide old-guide) (add-guide new-guide))) ;; PUBLIC API + (defn make-snap-data "Creates an empty snap index" [] @@ -231,6 +232,7 @@ (add-page snap-data page))) (defn query + "Retrieve the shape data for the snaps in that range" [snap-data page-id frame-id axis [from to]] (d/concat-vec From 6e0433a34bfd90052c1573c8930c17f8eaaeaa74 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 25 Jan 2022 14:48:54 +0100 Subject: [PATCH 026/154] :sparkles: Review changes --- .../src/app/common/pages/changes_builder.cljc | 38 ++++++++++--- .../src/app/main/data/workspace/guides.cljs | 55 +++++++------------ .../main/data/workspace/state_helpers.cljs | 6 ++ .../ui/workspace/viewport/snap_points.cljs | 5 +- frontend/src/app/util/snap_data.cljs | 48 +++++++++------- frontend/src/app/worker/snaps.cljs | 9 +-- 6 files changed, 91 insertions(+), 70 deletions(-) diff --git a/common/src/app/common/pages/changes_builder.cljc b/common/src/app/common/pages/changes_builder.cljc index d393742246..81e913975e 100644 --- a/common/src/app/common/pages/changes_builder.cljc +++ b/common/src/app/common/pages/changes_builder.cljc @@ -13,12 +13,21 @@ ;; Auxiliary functions to help create a set of changes (undo + redo) (defn empty-changes - [origin page-id] - (let [changes {:redo-changes [] - :undo-changes [] - :origin origin}] - (with-meta changes - {::page-id page-id}))) + ([origin page-id] + (let [changes (empty-changes origin)] + (with-meta changes + {::page-id page-id}))) + + ([origin] + {:redo-changes [] + :undo-changes [] + :origin origin})) + +(defn with-page [changes page] + (vary-meta changes assoc + ::page page + ::page-id (:id page) + ::objects (:objects page))) (defn with-objects [changes objects] (vary-meta changes assoc ::objects objects)) @@ -167,10 +176,25 @@ (reduce add-undo-change-parent $ ids) (reduce add-undo-change-shape $ ids)))))) - (defn move-page [chdata index prev-index] (let [page-id (::page-id (meta chdata))] (-> chdata (update :redo-changes conj {:type :mov-page :id page-id :index index}) (update :undo-changes conj {:type :mov-page :id page-id :index prev-index})))) + +(defn set-page-option + [chdata option-key option-val] + (let [page-id (::page-id (meta chdata)) + page (::page (meta chdata)) + old-val (get-in page [:options option-key])] + + (-> chdata + (update :redo-changes conj {:type :set-option + :page-id page-id + :option option-key + :value option-val}) + (update :undo-changes conj {:type :set-option + :page-id page-id + :option option-key + :value old-val})))) diff --git a/frontend/src/app/main/data/workspace/guides.cljs b/frontend/src/app/main/data/workspace/guides.cljs index ba614eebd4..c446d8876c 100644 --- a/frontend/src/app/main/data/workspace/guides.cljs +++ b/frontend/src/app/main/data/workspace/guides.cljs @@ -8,6 +8,7 @@ (:require [app.common.geom.point :as gpt] [app.common.geom.shapes :as gsh] + [app.common.pages.changes-builder :as pcb] [app.common.spec :as us] [app.common.types.page-options :as tpo] [app.main.data.workspace.changes :as dwc] @@ -27,47 +28,30 @@ (ptk/reify ::update-guides ptk/WatchEvent (watch [it state _] - (let [page-id (:current-page-id state) - guides (-> state wsh/lookup-page-options (:guides {})) - + (let [page (wsh/lookup-page state) + guides (get-in page [:options :guides] {}) new-guides (assoc guides (:id guide) guide) - - rch [{:type :set-option - :page-id page-id - :option :guides - :value new-guides}] - uch [{:type :set-option - :page-id page-id - :option :guides - :value guides}]] - (rx/of - (dwc/commit-changes - {:redo-changes rch - :undo-changes uch - :origin it})))))) + + changes + (-> (pcb/empty-changes it) + (pcb/with-page page) + (pcb/set-page-option :guides new-guides))] + (rx/of (dwc/commit-changes changes)))))) (defn remove-guide [guide] (us/verify ::tpo/guide guide) (ptk/reify ::remove-guide ptk/WatchEvent (watch [it state _] - (let [page-id (:current-page-id state) - guides (-> state wsh/lookup-page-options (:guides {})) + (let [page (wsh/lookup-page state) + guides (get-in page [:options :guides] {}) new-guides (dissoc guides (:id guide)) - - rch [{:type :set-option - :page-id page-id - :option :guides - :value new-guides}] - uch [{:type :set-option - :page-id page-id - :option :guides - :value guides}]] - (rx/of - (dwc/commit-changes - {:redo-changes rch - :undo-changes uch - :origin it})))))) + + changes + (-> (pcb/empty-changes it) + (pcb/with-page page) + (pcb/set-page-option :guides new-guides))] + (rx/of (dwc/commit-changes changes)))))) (defn move-frame-guides "Move guides that are inside a frame when that frame is moved" @@ -78,7 +62,10 @@ ptk/WatchEvent (watch [_ state _] (let [objects (wsh/lookup-page-objects state) - frame-ids? (->> ids (filter #(= :frame (get-in objects [% :type]))) (into #{})) + + is-frame? (fn [id] (= :frame (get-in objects [id :type]))) + frame-ids? (into #{} (filter is-frame?) ids) + object-modifiers (get state :workspace-modifiers) build-move-event diff --git a/frontend/src/app/main/data/workspace/state_helpers.cljs b/frontend/src/app/main/data/workspace/state_helpers.cljs index f144670bac..661b272adf 100644 --- a/frontend/src/app/main/data/workspace/state_helpers.cljs +++ b/frontend/src/app/main/data/workspace/state_helpers.cljs @@ -9,6 +9,12 @@ [app.common.data :as d] [app.common.pages :as cp])) +(defn lookup-page + ([state] + (lookup-page state (:current-page-id state))) + ([state page-id] + (get-in state [:workspace-data :pages-index page-id]))) + (defn lookup-page-objects ([state] (lookup-page-objects state (:current-page-id state))) diff --git a/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs b/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs index ee807765f1..d361099114 100644 --- a/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs @@ -152,10 +152,7 @@ {::mf/wrap [mf/memo]} [{:keys [layout zoom objects selected page-id drawing transform modifiers] :as props}] - (let [shapes - (->> selected - (map #(get objects %)) - (filterv (comp not nil?))) + (let [shapes (into [] (keep (d/getf objects)) selected) filter-shapes (into #{} diff --git a/frontend/src/app/util/snap_data.cljs b/frontend/src/app/util/snap_data.cljs index 9a58cd1b2d..6c667c2178 100644 --- a/frontend/src/app/util/snap_data.cljs +++ b/frontend/src/app/util/snap_data.cljs @@ -22,22 +22,28 @@ ;; PRIVATE FUNCTIONS (defn- make-insert-tree-data + "Inserts all data in it's corresponding axis bucket" [shape-data axis] (fn [tree] - (let [tree (or tree (rt/make-tree))] - (as-> tree $ - (reduce (fn [tree data] - (rt/insert tree (get-in data [:pt axis]) data)) - $ shape-data))))) + (let [tree (or tree (rt/make-tree)) + + insert-data + (fn [tree data] + (rt/insert tree (get-in data [:pt axis]) data))] + + (reduce insert-data tree shape-data)))) (defn- make-delete-tree-data + "Removes all data in it's corresponding axis bucket" [shape-data axis] (fn [tree] - (let [tree (or tree (rt/make-tree))] - (as-> tree $ - (reduce (fn [tree data] - (rt/remove tree (get-in data [:pt axis]) data)) - $ shape-data))))) + (let [tree (or tree (rt/make-tree)) + + remove-data + (fn [tree data] + (rt/remove tree (get-in data [:pt axis]) data))] + + (reduce remove-data tree shape-data)))) (defn- add-root-frame [page-data] @@ -52,19 +58,19 @@ (let [frame-id (:id frame) parent-id (:parent-id frame) frame-data (->> (snap/shape-snap-points frame) - (map #(hash-map :type :shape - :id frame-id - :pt %))) + (mapv #(array-map :type :shape + :id frame-id + :pt %))) grid-x-data (->> (gg/grid-snap-points frame :x) - (map #(hash-map :type :grid-x - :id frame-id - :pt %))) + (mapv #(array-map :type :grid-x + :id frame-id + :pt %))) grid-y-data (->> (gg/grid-snap-points frame :y) - (map #(hash-map :type :grid-y - :id frame-id - :pt %)))] + (mapv #(array-map :type :grid-y + :id frame-id + :pt %)))] (-> page-data ;; Update root frame information @@ -84,7 +90,7 @@ (let [frame-id (:frame-id shape) snap-points (snap/shape-snap-points shape) shape-data (->> snap-points - (mapv #(hash-map + (mapv #(array-map :type :shape :id (:id shape) :pt %)))] @@ -98,7 +104,7 @@ [page-data guide] (let [guide-data (->> (snap/guide-snap-points guide) - (mapv #(hash-map + (mapv #(array-map :type :guide :id (:id guide) :pt %)))] diff --git a/frontend/src/app/worker/snaps.cljs b/frontend/src/app/worker/snaps.cljs index b992b51e77..da872c2f72 100644 --- a/frontend/src/app/worker/snaps.cljs +++ b/frontend/src/app/worker/snaps.cljs @@ -28,9 +28,10 @@ (defmethod impl/handler :snaps/range-query [{:keys [page-id frame-id axis ranges] :as message}] - (->> ranges - (mapcat #(sd/query @state page-id frame-id axis %)) - (set) ;; unique - (into []))) + + (into [] + (comp (mapcat #(sd/query @state page-id frame-id axis %)) + (distinct)) + ranges)) From 50c20e2290c3f416ccf3f6cc2131c77706b09019 Mon Sep 17 00:00:00 2001 From: Eva Date: Wed, 26 Jan 2022 08:49:57 +0100 Subject: [PATCH 027/154] :bug: Fix header z-index in viewer mode fullscreen --- frontend/resources/styles/main/layouts/handoff.scss | 12 ++++++++++-- frontend/resources/styles/main/layouts/viewer.scss | 2 +- frontend/resources/styles/main/partials/viewer.scss | 4 +++- frontend/src/app/main/ui/viewer.cljs | 3 ++- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/frontend/resources/styles/main/layouts/handoff.scss b/frontend/resources/styles/main/layouts/handoff.scss index 4e06e85d05..5dfa7fefd9 100644 --- a/frontend/resources/styles/main/layouts/handoff.scss +++ b/frontend/resources/styles/main/layouts/handoff.scss @@ -18,13 +18,14 @@ $width-settings-bar: 16rem; } } -.fullscreen .handoff-layout:not(.force-visible) { +.fullscreen.handoff-layout:not(.force-visible) { .viewer-header { width: 100%; position: fixed; top: -48px; left: 0; transition: top 400ms ease 300ms; + z-index: 25; &::after { content: " "; @@ -49,7 +50,14 @@ $width-settings-bar: 16rem; .handoff-layout { .viewer-section { flex-wrap: nowrap; + &.fullscreen{ + .settings-bar, + .settings-bar { + padding-top:48px; + } + } } + .settings-bar { transition: width 0.2s; &.expanded { @@ -78,7 +86,7 @@ $width-settings-bar: 16rem; .handoff-svg-container { display: grid; width: 100%; - height: calc(100% - 35px); + height: 100%; overflow: auto; align-items: center; justify-content: safe center; diff --git a/frontend/resources/styles/main/layouts/viewer.scss b/frontend/resources/styles/main/layouts/viewer.scss index f1ad747b6e..28a817ad7e 100644 --- a/frontend/resources/styles/main/layouts/viewer.scss +++ b/frontend/resources/styles/main/layouts/viewer.scss @@ -22,7 +22,7 @@ top: -48px; left: 0; transition: top 400ms ease 300ms; - + z-index: 1; &::after { content: " "; position: absolute; diff --git a/frontend/resources/styles/main/partials/viewer.scss b/frontend/resources/styles/main/partials/viewer.scss index c9ef5bab5b..30cb96e7f3 100644 --- a/frontend/resources/styles/main/partials/viewer.scss +++ b/frontend/resources/styles/main/partials/viewer.scss @@ -8,7 +8,9 @@ .viewer-section { height: calc(100vh - 48px); - + &.fullscreen{ + height: 100vh; + } grid-row: 1 / span 2; grid-column: 1 / span 1; diff --git a/frontend/src/app/main/ui/viewer.cljs b/frontend/src/app/main/ui/viewer.cljs index 068162b055..432f4ec050 100644 --- a/frontend/src/app/main/ui/viewer.cljs +++ b/frontend/src/app/main/ui/viewer.cljs @@ -234,7 +234,8 @@ :show? (:show-thumbnails local false) :page page :index index}] - [:section.viewer-section {:id "viewer-section"} + [:section.viewer-section {:id "viewer-section" + :class (if fullscreen? "fullscreen" "")} (cond (empty? frames) [:section.empty-state From b2b3de2782d6fcda35d97497e28c02e3d7ff3b93 Mon Sep 17 00:00:00 2001 From: Eva Date: Wed, 26 Jan 2022 08:54:50 +0100 Subject: [PATCH 028/154] :bug: fix typo in zoom options --- frontend/resources/styles/main/layouts/handoff.scss | 6 +++--- frontend/resources/styles/main/partials/viewer.scss | 2 +- frontend/translations/en.po | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/frontend/resources/styles/main/layouts/handoff.scss b/frontend/resources/styles/main/layouts/handoff.scss index 5dfa7fefd9..087c0c6f47 100644 --- a/frontend/resources/styles/main/layouts/handoff.scss +++ b/frontend/resources/styles/main/layouts/handoff.scss @@ -50,14 +50,14 @@ $width-settings-bar: 16rem; .handoff-layout { .viewer-section { flex-wrap: nowrap; - &.fullscreen{ + &.fullscreen { .settings-bar, .settings-bar { - padding-top:48px; + padding-top: 48px; } } } - + .settings-bar { transition: width 0.2s; &.expanded { diff --git a/frontend/resources/styles/main/partials/viewer.scss b/frontend/resources/styles/main/partials/viewer.scss index 30cb96e7f3..4f9f13fe14 100644 --- a/frontend/resources/styles/main/partials/viewer.scss +++ b/frontend/resources/styles/main/partials/viewer.scss @@ -8,7 +8,7 @@ .viewer-section { height: calc(100vh - 48px); - &.fullscreen{ + &.fullscreen { height: 100vh; } grid-row: 1 / span 2; diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 726d22db81..2910557c71 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -2135,7 +2135,7 @@ msgstr "View mode (%s)" #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" -msgstr "Fill -Scale to fill" +msgstr "Fill - Scale to fill" #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" From 3482d6c3038884ff031ceb7a0f4096d0c76b242b Mon Sep 17 00:00:00 2001 From: Eva Date: Tue, 18 Jan 2022 16:48:58 +0100 Subject: [PATCH 029/154] :sparkles: Add Update component in bulk option --- CHANGES.md | 1 + .../resources/styles/main/partials/modal.scss | 20 ++++ .../app/main/data/workspace/libraries.cljs | 92 ++++++++++--------- frontend/src/app/main/ui/confirm.cljs | 14 ++- .../app/main/ui/workspace/context_menu.cljs | 50 ++++++---- frontend/translations/en.po | 20 +++- frontend/translations/es.po | 20 +++- 7 files changed, 155 insertions(+), 62 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 634e6a503c..8886b953af 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,7 @@ - Guides [Taiga #290](https://tree.taiga.io/project/penpot/us/290?milestone=307334) - Improve file menu by adding semantically groups [Github #1203](https://github.com/penpot/penpot/issues/1203). +- Add update components in bulk option in context menu [Taiga #1975](https://tree.taiga.io/project/penpot/us/1975). - Create e2e tests for drawing basic fors [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608). - Create firsts e2e test [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608). diff --git a/frontend/resources/styles/main/partials/modal.scss b/frontend/resources/styles/main/partials/modal.scss index d852fbd0ec..e48eb161d3 100644 --- a/frontend/resources/styles/main/partials/modal.scss +++ b/frontend/resources/styles/main/partials/modal.scss @@ -105,6 +105,26 @@ } } + .modal-item-element { + display: flex; + padding-bottom: 3px; + margin-left: 10px; + font-size: $fs14; + color: $color-info; + + .modal-component-icon { + margin-right: 16px; + display: flex; + justify-content: center; + align-items: center; + svg { + width: 16px; + height: 16px; + fill: $color-info; + } + } + } + .modal-content { display: flex; flex-direction: column; diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index fa8132e043..7fe7ccf319 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -347,7 +347,7 @@ (let [component (cp/get-component id (:current-file-id state) (dwlh/get-local-file state) - nil) + nil) all-components (vals (get-in state [:workspace-data :components])) unames (set (map :name all-components)) new-name (dwc/generate-unique-name unames (:name component)) @@ -424,7 +424,7 @@ (cond-> new-shape true (as-> $ - (geom/move $ delta) + (geom/move $ delta) (assoc $ :frame-id frame-id) (assoc $ :parent-id (or (:parent-id $) (:frame-id $))) @@ -444,9 +444,9 @@ [new-shape new-shapes _] (cp/clone-object component-shape - nil - (get component :objects) - update-new-shape) + nil + (get component :objects) + update-new-shape) rchanges (mapv (fn [obj] {:type :add-obj @@ -506,8 +506,8 @@ [rchanges uchanges] (reduce (fn [changes id] (dwlh/concat-changes - changes - (dwlh/generate-detach-instance id container))) + changes + (dwlh/generate-detach-instance id container))) dwlh/empty-changes selected)] @@ -565,8 +565,8 @@ libraries true)] (log/debug :msg "RESET-COMPONENT finished" :js/rchanges (log-changes - rchanges - local-library)) + rchanges + local-library)) (rx/of (dch/commit-changes {:redo-changes rchanges :undo-changes uchanges @@ -603,26 +603,26 @@ file (dwlh/get-file state file-id) xf-filter (comp - (filter :local-change?) - (map #(dissoc % :local-change?))) + (filter :local-change?) + (map #(dissoc % :local-change?))) local-rchanges (into [] xf-filter rchanges) local-uchanges (into [] xf-filter uchanges) xf-remove (comp - (remove :local-change?) - (map #(dissoc % :local-change?))) + (remove :local-change?) + (map #(dissoc % :local-change?))) rchanges (into [] xf-remove rchanges) uchanges (into [] xf-remove uchanges)] (log/debug :msg "UPDATE-COMPONENT finished" :js/local-rchanges (log-changes - local-rchanges - local-library) + local-rchanges + local-library) :js/rchanges (log-changes - rchanges - file)) + rchanges + file)) (rx/of (when (seq local-rchanges) (dch/commit-changes {:redo-changes local-rchanges @@ -649,6 +649,16 @@ (sync-file file-id file-id)) (dwu/commit-undo-transaction)))))) +(defn update-component-in-bulk + [shapes file-id] + (ptk/reify ::update-component-in-bulk + ptk/WatchEvent + (watch [_ _ _] + (rx/concat + (rx/of (dwu/start-undo-transaction)) + (rx/map #(update-component-sync (:id %) file-id) (rx/from shapes)) + (rx/of (dwu/commit-undo-transaction)))))) + (declare sync-file-2nd-stage) (defn sync-file @@ -690,28 +700,28 @@ (sequence xf-scat file-changes))] (log/debug :msg "SYNC-FILE finished" :js/rchanges (log-changes - rchanges - file)) + rchanges + file)) (rx/concat - (rx/of (dm/hide-tag :sync-dialog)) - (when rchanges - (rx/of (dch/commit-changes {:redo-changes rchanges - :undo-changes uchanges - :origin it - :file-id file-id}))) - (when (not= file-id library-id) + (rx/of (dm/hide-tag :sync-dialog)) + (when rchanges + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it + :file-id file-id}))) + (when (not= file-id library-id) ;; When we have just updated the library file, give some time for the ;; update to finish, before marking this file as synced. ;; TODO: look for a more precise way of syncing this. ;; Maybe by using the stream (second argument passed to watch) ;; to wait for the corresponding changes-committed and then proceed ;; with the :update-sync mutation. - (rx/concat (rx/timer 3000) - (rp/mutation :update-sync - {:file-id file-id - :library-id library-id}))) - (when (some? library-changes) - (rx/of (sync-file-2nd-stage file-id library-id)))))))) + (rx/concat (rx/timer 3000) + (rp/mutation :update-sync + {:file-id file-id + :library-id library-id}))) + (when (some? library-changes) + (rx/of (sync-file-2nd-stage file-id library-id)))))))) (defn sync-file-2nd-stage "If some components have been modified, we need to launch another synchronization @@ -738,8 +748,8 @@ uchanges (d/concat-vec uchanges1 uchanges2)] (when rchanges (log/debug :msg "SYNC-FILE (2nd stage) finished" :js/rchanges (log-changes - rchanges - file)) + rchanges + file)) (rx/of (dch/commit-changes {:redo-changes rchanges :undo-changes uchanges :origin it @@ -774,11 +784,11 @@ (st/emit! dm/hide))] (rx/of (dm/info-dialog - (tr "workspace.updates.there-are-updates") - :inline-actions - [{:label (tr "workspace.updates.update") - :callback do-update} - {:label (tr "workspace.updates.dismiss") - :callback do-dismiss}] - :sync-dialog)))))) + (tr "workspace.updates.there-are-updates") + :inline-actions + [{:label (tr "workspace.updates.update") + :callback do-update} + {:label (tr "workspace.updates.dismiss") + :callback do-dismiss}] + :sync-dialog)))))) diff --git a/frontend/src/app/main/ui/confirm.cljs b/frontend/src/app/main/ui/confirm.cljs index 6efc5bc9b8..7e154ef950 100644 --- a/frontend/src/app/main/ui/confirm.cljs +++ b/frontend/src/app/main/ui/confirm.cljs @@ -24,6 +24,7 @@ on-accept on-cancel hint + items cancel-label accept-label accept-style] :as props}] @@ -70,9 +71,18 @@ {:on-click cancel-fn} i/close]] [:div.modal-content - [:h3 message] + (when (and (string? message) (not= message "")) + [:h3 message]) (when (string? hint) - [:p hint])] + [:p hint]) + (when (> (count items) 0) + [:* + [:p (tr "ds.component-subtitle")] + [:ul + (for [item items] + [:li.modal-item-element + [:span.modal-component-icon i/component] + [:span (:name item)]])]])] [:div.modal-footer [:div.action-buttons diff --git a/frontend/src/app/main/ui/workspace/context_menu.cljs b/frontend/src/app/main/ui/workspace/context_menu.cljs index 58556d94ff..cc13bcecb6 100644 --- a/frontend/src/app/main/ui/workspace/context_menu.cljs +++ b/frontend/src/app/main/ui/workspace/context_menu.cljs @@ -186,10 +186,10 @@ (when (not has-frame?) [:* - [:& menu-entry {:title (tr "workspace.shape.menu.create-artboard-from-selection") - :shortcut (sc/get-tooltip :create-artboard-from-selection) - :on-click do-create-artboard-from-selection}] - [:& menu-separator]])])) + [:& menu-entry {:title (tr "workspace.shape.menu.create-artboard-from-selection") + :shortcut (sc/get-tooltip :create-artboard-from-selection) + :on-click do-create-artboard-from-selection}] + [:& menu-separator]])])) (mf/defc context-menu-path [{:keys [shapes disable-flatten? disable-booleans?]}] @@ -303,6 +303,7 @@ shape-id (->> shapes first :id) component-id (->> shapes first :component-id) component-file (-> shapes first :component-file) + component-shapes (filter #(contains? % :component-id) shapes) current-file-id (mf/use-ctx ctx/current-file-id) local-component? (= component-file current-file-id) @@ -314,6 +315,7 @@ do-show-component (st/emitf (dw/go-to-component component-id)) do-navigate-component-file (st/emitf (dwl/nav-to-component-file component-file)) do-update-component (st/emitf (dwl/update-component-sync shape-id component-file)) + do-update-component-in-bulk (st/emitf (dwl/update-component-in-bulk component-shapes component-file)) do-update-remote-component (st/emitf (modal/show @@ -324,7 +326,18 @@ :cancel-label (tr "modals.update-remote-component.cancel") :accept-label (tr "modals.update-remote-component.accept") :accept-style :primary - :on-accept do-update-component}))] + :on-accept do-update-component})) + + do-update-in-bulk (st/emitf (modal/show + {:type :confirm + :message "" + :title (tr "modals.update-remote-component-in-bulk.message") + :hint (tr "modals.update-remote-component-in-bulk.hint") + :items component-shapes + :cancel-label (tr "modals.update-remote-component.cancel") + :accept-label (tr "modals.update-remote-component.accept") + :accept-style :primary + :on-accept do-update-component-in-bulk}))] [:* (when (and (not has-frame?) (not is-component?)) [:* @@ -335,7 +348,10 @@ (when has-component? [:& menu-entry {:title (tr "workspace.shape.menu.detach-instances-in-bulk") :shortcut (sc/get-tooltip :detach-component) - :on-click do-detach-component-in-bulk}])]) + :on-click do-detach-component-in-bulk}] + (when (not single?) + [:& menu-entry {:title (tr "workspace.shape.menu.update-components-in-bulk") + :on-click do-update-in-bulk}]))]) (when is-component? ;; WARNING: this menu is the same as the context menu at the sidebar. @@ -407,17 +423,17 @@ dropdown-ref (mf/use-ref)] (mf/use-effect - (mf/deps mdata) - #(let [dropdown (mf/ref-val dropdown-ref)] - (when dropdown - (let [bounding-rect (dom/get-bounding-rect dropdown) - window-size (dom/get-window-size) - delta-x (max (- (+ (:right bounding-rect) 250) (:width window-size)) 0) - delta-y (max (- (:bottom bounding-rect) (:height window-size)) 0) - new-style (str "top: " (- top delta-y) "px; " - "left: " (- left delta-x) "px;")] - (when (or (> delta-x 0) (> delta-y 0)) - (.setAttribute ^js dropdown "style" new-style)))))) + (mf/deps mdata) + #(let [dropdown (mf/ref-val dropdown-ref)] + (when dropdown + (let [bounding-rect (dom/get-bounding-rect dropdown) + window-size (dom/get-window-size) + delta-x (max (- (+ (:right bounding-rect) 250) (:width window-size)) 0) + delta-y (max (- (:bottom bounding-rect) (:height window-size)) 0) + new-style (str "top: " (- top delta-y) "px; " + "left: " (- left delta-x) "px;")] + (when (or (> delta-x 0) (> delta-y 0)) + (.setAttribute ^js dropdown "style" new-style)))))) [:& dropdown {:show (boolean mdata) :on-close (st/emitf dw/hide-context-menu)} diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 2910557c71..fcf7dc3890 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -588,6 +588,10 @@ msgstr "Ok" msgid "ds.confirm-title" msgstr "Are you sure?" +#: src/app/main/ui/confirm.cljs +msgid "ds.component-subtitle" +msgstr "Components to update:" + #: src/app/main/ui/dashboard/grid.cljs msgid "ds.updated-at" msgstr "Updated: %s" @@ -1550,7 +1554,7 @@ msgstr "Remove “%s” as Shared Library" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" -msgstr "Update component" +msgstr "Update" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" @@ -1562,10 +1566,20 @@ msgstr "" "You are about to update a component in a shared library. This may affect " "other files that use it." +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component-in-bulk.hint" +msgstr "" +"You are about to update components in a shared library. This may affect " +"other files that use it." + #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Update a component in a shared library" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component-in-bulk.message" +msgstr "Update components in a shared library" + #: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Invitation sent successfully" @@ -3115,6 +3129,10 @@ msgstr "Detach instance" msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Detach instances" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.update-components-in-bulk" +msgstr "Update main components" + msgid "workspace.shape.menu.difference" msgstr "Difference" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 60a97fc0f5..cec3547e51 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -590,6 +590,10 @@ msgstr "Cancelar" msgid "ds.confirm-ok" msgstr "Ok" +#: src/app/main/ui/confirm.cljs +msgid "ds.component-subtitle" +msgstr "Componentes a actualizar:" + #: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "¿Seguro?" @@ -1552,7 +1556,7 @@ msgstr "Añadir “%s” como Biblioteca Compartida" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" -msgstr "Actualizar componente" +msgstr "Actualizar" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" @@ -1564,10 +1568,20 @@ msgstr "" "Vas a actualizar un componente en una librería compartida. Esto puede " "afectar a otros archivos que la usen." +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component-in-bulk.hint" +msgstr "" +"Vas a actualizar componentes en una librería compartida. Esto puede " +"afectar a otros archivos que la usen." + #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Actualizar un componente en librería" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component-in-bulk.message" +msgstr "Actualizar componentes en librería" + #: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Invitación enviada con éxito" @@ -3128,6 +3142,10 @@ msgstr "Desacoplar instancia" msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Desacoplar instancias" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.update-components-in-bulk" +msgstr "Actualizar componentes" + msgid "workspace.shape.menu.difference" msgstr "Diferencia" From 406c4063deb6424449a39e878b8a2939ed66ae3a Mon Sep 17 00:00:00 2001 From: Eva Date: Mon, 24 Jan 2022 09:59:58 +0100 Subject: [PATCH 030/154] :sparkles: Add select layer to contest menu --- CHANGES.md | 3 +- .../styles/main/partials/workspace.scss | 38 ++++- .../app/main/data/workspace/selection.cljs | 20 +-- frontend/src/app/main/refs.cljs | 6 + .../app/main/ui/workspace/context_menu.cljs | 83 ++++++++-- .../src/app/main/ui/workspace/viewport.cljs | 2 +- .../main/ui/workspace/viewport/actions.cljs | 149 +++++++++--------- frontend/translations/en.po | 4 + frontend/translations/es.po | 4 + 9 files changed, 204 insertions(+), 105 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 8886b953af..a823d53817 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,10 +4,11 @@ ### :sparkles: New features +- Add select layer option to context menu [Taiga #2474](https://tree.taiga.io/project/penpot/us/2474). - Guides [Taiga #290](https://tree.taiga.io/project/penpot/us/290?milestone=307334) - Improve file menu by adding semantically groups [Github #1203](https://github.com/penpot/penpot/issues/1203). - Add update components in bulk option in context menu [Taiga #1975](https://tree.taiga.io/project/penpot/us/1975). -- Create e2e tests for drawing basic fors [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608). +- Create e2e tests for drawing basic shapes [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608). - Create firsts e2e test [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608). ## 1.11.0-beta diff --git a/frontend/resources/styles/main/partials/workspace.scss b/frontend/resources/styles/main/partials/workspace.scss index 561be4c629..08bfead57e 100644 --- a/frontend/resources/styles/main/partials/workspace.scss +++ b/frontend/resources/styles/main/partials/workspace.scss @@ -34,11 +34,11 @@ margin: 2px; } - span:first-child { + span { color: $color-gray-60; } - span:last-child { + span.shortcut { color: $color-gray-20; font-size: $fs12; } @@ -57,6 +57,40 @@ } } } + + .sub-menu-item { + display: flex; + justify-content: flex-start; + + &:hover { + background-color: $color-primary-lighter; + } + + span.title { + margin-left: 5px; + } + + .selected-icon { + svg { + width: 10px; + height: 10px; + } + } + + .shape-icon { + margin-left: 3px; + svg { + width: 13px; + height: 13px; + } + } + + .icon-wrapper { + display: grid; + grid-template-columns: 1fr 1fr; + margin: 0; + } + } } .workspace-loader { diff --git a/frontend/src/app/main/data/workspace/selection.cljs b/frontend/src/app/main/data/workspace/selection.cljs index 5763b5e840..8d5901da66 100644 --- a/frontend/src/app/main/data/workspace/selection.cljs +++ b/frontend/src/app/main/data/workspace/selection.cljs @@ -150,7 +150,7 @@ ptk/WatchEvent (watch [_ state _] - (let [objects (wsh/lookup-page-objects state)] + (let [objects (wsh/lookup-page-objects state)] (rx/of (dwc/expand-all-parents ids objects)))))) (defn select-all @@ -256,7 +256,7 @@ ;; in the later vector position selected (->> children reverse - (d/seek #(geom/has-point? % position)))] + (d/seek #(geom/has-point? % position)))] (when selected (rx/of (select-shape (:id selected)))))))) @@ -312,8 +312,8 @@ result (prepare-duplicate-change objects page-id unames update-unames! ids-map id delta) result (if (vector? result) result [result])] (recur - (next ids) - (into chgs result))) + (next ids) + (into chgs result))) chgs)))) (defn duplicate-changes-update-indices @@ -384,12 +384,12 @@ (mapcat #(prepare-duplicate-shape-change objects page-id unames update-unames! ids-map % delta new-id new-id))) new-frame (-> obj - (assoc :id new-id - :name frame-name - :frame-id uuid/zero - :shapes []) - (geom/move delta) - (d/update-when :interactions #(cti/remap-interactions % ids-map objects))) + (assoc :id new-id + :name frame-name + :frame-id uuid/zero + :shapes []) + (geom/move delta) + (d/update-when :interactions #(cti/remap-interactions % ids-map objects))) fch {:type :add-obj :old-id (:id obj) diff --git a/frontend/src/app/main/refs.cljs b/frontend/src/app/main/refs.cljs index f93a53ae99..35ec0839b0 100644 --- a/frontend/src/app/main/refs.cljs +++ b/frontend/src/app/main/refs.cljs @@ -152,6 +152,12 @@ (def current-hover (l/derived :hover workspace-local)) +(def context-menu + (l/derived :context-menu workspace-local)) + +(def current-hover-ids + (l/derived :hover-ids context-menu)) + (def editors (l/derived :editors workspace-local)) diff --git a/frontend/src/app/main/ui/workspace/context_menu.cljs b/frontend/src/app/main/ui/workspace/context_menu.cljs index cc13bcecb6..20b8772f1b 100644 --- a/frontend/src/app/main/ui/workspace/context_menu.cljs +++ b/frontend/src/app/main/ui/workspace/context_menu.cljs @@ -13,6 +13,7 @@ [app.main.data.workspace :as dw] [app.main.data.workspace.interactions :as dwi] [app.main.data.workspace.libraries :as dwl] + [app.main.data.workspace.selection :as dws] [app.main.data.workspace.shortcuts :as sc] [app.main.refs :as refs] [app.main.store :as st] @@ -33,8 +34,33 @@ (dom/prevent-default event) (dom/stop-propagation event)) + +(mf/defc element-icon + [{:keys [shape] :as props}] + (case (:type shape) + :frame i/artboard + :image i/image + :line i/line + :circle i/circle + :path i/curve + :rect i/box + :text i/text + :group (if (some? (:component-id shape)) + i/component + (if (:masked-group? shape) + i/mask + i/folder)) + :bool (case (:bool-type shape) + :difference i/bool-difference + :exclude i/bool-exclude + :intersection i/bool-intersection + #_:default i/bool-union) + :svg-raw i/file-svg + nil)) + + (mf/defc menu-entry - [{:keys [title shortcut on-click children] :as props}] + [{:keys [title shortcut on-click children selected has-icon? shape] :as props}] (let [submenu-ref (mf/use-ref nil) hovering? (mf/use-ref false) @@ -64,22 +90,33 @@ (when (and (some? dom) (some? submenu-node)) (dom/set-css-property! submenu-node "top" (str (.-offsetTop dom) "px"))))))] - [:li {:ref set-dom-node - :on-click on-click - :on-pointer-enter on-pointer-enter - :on-pointer-leave on-pointer-leave} - [:span.title title] - [:span.shortcut (or shortcut "")] + (if has-icon? + [:li.sub-menu-item {:ref set-dom-node + :on-click on-click + :on-pointer-enter on-pointer-enter + :on-pointer-leave on-pointer-leave} + (when has-icon? + [:span.icon-wrapper + (if selected [:span.selected-icon i/tick] + [:span.selected-icon]) + [:span.shape-icon (element-icon {:shape shape})]]) + [:span.title title]] + [:li {:ref set-dom-node + :on-click on-click + :on-pointer-enter on-pointer-enter + :on-pointer-leave on-pointer-leave} + [:span.title title] + [:span.shortcut (or shortcut "")] - (when (> (count children) 1) - [:span.submenu-icon i/arrow-slide]) + (when (> (count children) 1) + [:span.submenu-icon i/arrow-slide]) - (when (> (count children) 1) - [:ul.workspace-context-menu - {:ref submenu-ref - :style {:display "none" :left 250} - :on-context-menu prevent-default} - children])])) + (when (> (count children) 1) + [:ul.workspace-context-menu + {:ref submenu-ref + :style {:display "none" :left 250} + :on-context-menu prevent-default} + children])]))) (mf/defc menu-separator [] @@ -108,12 +145,21 @@ [:& menu-separator]])) (mf/defc context-menu-layer-position - [] + [{:keys [hover-objs shapes]}] (let [do-bring-forward (st/emitf (dw/vertical-order-selected :up)) do-bring-to-front (st/emitf (dw/vertical-order-selected :top)) do-send-backward (st/emitf (dw/vertical-order-selected :down)) - do-send-to-back (st/emitf (dw/vertical-order-selected :bottom))] + do-send-to-back (st/emitf (dw/vertical-order-selected :bottom)) + select-shapes (fn [id] (st/emitf (dws/select-shape id)))] [:* + (when (> (count hover-objs) 1) + [:& menu-entry {:title (tr "workspace.shape.menu.select-layer")} + (for [object hover-objs] + [:& menu-entry {:title (:name object) + :selected (some #(= object %) shapes) + :on-click (select-shapes (:id object)) + :has-icon? true + :shape object}])]) [:& menu-entry {:title (tr "workspace.shape.menu.forward") :shortcut (sc/get-tooltip :bring-forward) :on-click do-bring-forward}] @@ -392,8 +438,11 @@ [{:keys [mdata] :as props}] (let [{:keys [disable-booleans? disable-flatten?]} mdata shapes (mf/deref refs/selected-objects) + hover-ids (mf/deref refs/current-hover-ids) + hover-objs (mf/deref (refs/objects-by-id hover-ids)) props #js {:shapes shapes + :hover-objs hover-objs :disable-booleans? disable-booleans? :disable-flatten? disable-flatten?}] (when-not (empty? shapes) diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index 2ca92bb7fa..86b7441665 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -115,7 +115,7 @@ text-editing? (and edition (= :text (get-in base-objects [edition :type]))) on-click (actions/on-click hover selected edition drawing-path? drawing-tool) - on-context-menu (actions/on-context-menu hover) + on-context-menu (actions/on-context-menu hover hover-ids) on-double-click (actions/on-double-click hover hover-ids drawing-path? base-objects edition) on-drag-enter (actions/on-drag-enter) on-drag-over (actions/on-drag-over) diff --git a/frontend/src/app/main/ui/workspace/viewport/actions.cljs b/frontend/src/app/main/ui/workspace/viewport/actions.cljs index 9f1fc6b52f..54b46e727f 100644 --- a/frontend/src/app/main/ui/workspace/viewport/actions.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/actions.cljs @@ -186,9 +186,9 @@ (dw/start-editing-selected)))))))) (defn on-context-menu - [hover] + [hover hover-ids] (mf/use-callback - (mf/deps @hover) + (mf/deps @hover @hover-ids) (fn [event] (when (or (dom/class? (dom/get-target event) "viewport-controls") (dom/class? (dom/get-target event) "viewport-selrect")) @@ -200,18 +200,19 @@ #(st/emit! (if (some? @hover) (dw/show-shape-context-menu {:position position - :shape @hover}) + :shape @hover + :hover-ids @hover-ids}) (dw/show-context-menu {:position position}))))))))) (defn on-menu-selected [hover hover-ids selected] (mf/use-callback - (mf/deps @hover hover-ids selected) + (mf/deps @hover @hover-ids selected) (fn [event] (dom/prevent-default event) (dom/stop-propagation event) (let [position (dom/get-client-position event)] - (st/emit! (dw/show-shape-context-menu {:position position})))))) + (st/emit! (dw/show-shape-context-menu {:position position :hover-ids @hover-ids})))))) (defn on-mouse-up [disable-paste] @@ -251,58 +252,58 @@ (reset! in-viewport? false)))) (defn on-pointer-down [] - (mf/use-callback - (fn [event] + (mf/use-callback + (fn [event] ;; We need to handle editor related stuff here because ;; handling on editor dom node does not works properly. - (let [target (dom/get-target event) - editor (.closest ^js target ".public-DraftEditor-content")] + (let [target (dom/get-target event) + editor (.closest ^js target ".public-DraftEditor-content")] ;; Capture mouse pointer to detect the movements even if cursor ;; leaves the viewport or the browser itself ;; https://developer.mozilla.org/en-US/docs/Web/API/Element/setPointerCapture - (if editor - (.setPointerCapture editor (.-pointerId event)) - (.setPointerCapture target (.-pointerId event))))))) + (if editor + (.setPointerCapture editor (.-pointerId event)) + (.setPointerCapture target (.-pointerId event))))))) (defn on-pointer-up [] - (mf/use-callback - (fn [event] - (let [target (dom/get-target event)] + (mf/use-callback + (fn [event] + (let [target (dom/get-target event)] ; Release pointer on mouse up - (.releasePointerCapture target (.-pointerId event)))))) + (.releasePointerCapture target (.-pointerId event)))))) (defn on-key-down [] - (mf/use-callback - (fn [event] - (let [bevent (.getBrowserEvent ^js event) - key (.-key ^js event) - ctrl? (kbd/ctrl? event) - shift? (kbd/shift? event) - alt? (kbd/alt? event) - meta? (kbd/meta? event) - target (dom/get-target event) - editing? (or (some? (.closest ^js target ".public-DraftEditor-content")) - (= "rich-text" (obj/get target "className")) - (= "INPUT" (obj/get target "tagName")) - (= "TEXTAREA" (obj/get target "tagName")))] + (mf/use-callback + (fn [event] + (let [bevent (.getBrowserEvent ^js event) + key (.-key ^js event) + ctrl? (kbd/ctrl? event) + shift? (kbd/shift? event) + alt? (kbd/alt? event) + meta? (kbd/meta? event) + target (dom/get-target event) + editing? (or (some? (.closest ^js target ".public-DraftEditor-content")) + (= "rich-text" (obj/get target "className")) + (= "INPUT" (obj/get target "tagName")) + (= "TEXTAREA" (obj/get target "tagName")))] - (when-not (.-repeat bevent) - (st/emit! (ms/->KeyboardEvent :down key shift? ctrl? alt? meta? editing?))))))) + (when-not (.-repeat bevent) + (st/emit! (ms/->KeyboardEvent :down key shift? ctrl? alt? meta? editing?))))))) (defn on-key-up [] - (mf/use-callback - (fn [event] - (let [key (.-key event) - ctrl? (kbd/ctrl? event) - shift? (kbd/shift? event) - alt? (kbd/alt? event) - meta? (kbd/meta? event) - target (dom/get-target event) - editing? (or (some? (.closest ^js target ".public-DraftEditor-content")) - (= "rich-text" (obj/get target "className")) - (= "INPUT" (obj/get target "tagName")) - (= "TEXTAREA" (obj/get target "tagName")))] - (st/emit! (ms/->KeyboardEvent :up key shift? ctrl? alt? meta? editing?)))))) + (mf/use-callback + (fn [event] + (let [key (.-key event) + ctrl? (kbd/ctrl? event) + shift? (kbd/shift? event) + alt? (kbd/alt? event) + meta? (kbd/meta? event) + target (dom/get-target event) + editing? (or (some? (.closest ^js target ".public-DraftEditor-content")) + (= "rich-text" (obj/get target "className")) + (= "INPUT" (obj/get target "tagName")) + (= "TEXTAREA" (obj/get target "tagName")))] + (st/emit! (ms/->KeyboardEvent :up key shift? ctrl? alt? meta? editing?)))))) (defn on-mouse-move [viewport-ref zoom] (let [last-position (mf/use-var nil)] @@ -386,29 +387,29 @@ :y #(+ % delta-y)}))))))))) (defn on-drag-enter [] - (mf/use-callback - (fn [e] - (when (or (dnd/has-type? e "penpot/shape") - (dnd/has-type? e "penpot/component") - (dnd/has-type? e "Files") - (dnd/has-type? e "text/uri-list") - (dnd/has-type? e "text/asset-id")) - (dom/prevent-default e))))) + (mf/use-callback + (fn [e] + (when (or (dnd/has-type? e "penpot/shape") + (dnd/has-type? e "penpot/component") + (dnd/has-type? e "Files") + (dnd/has-type? e "text/uri-list") + (dnd/has-type? e "text/asset-id")) + (dom/prevent-default e))))) (defn on-drag-over [] - (mf/use-callback - (fn [e] - (when (or (dnd/has-type? e "penpot/shape") - (dnd/has-type? e "penpot/component") - (dnd/has-type? e "Files") - (dnd/has-type? e "text/uri-list") - (dnd/has-type? e "text/asset-id")) - (dom/prevent-default e))))) + (mf/use-callback + (fn [e] + (when (or (dnd/has-type? e "penpot/shape") + (dnd/has-type? e "penpot/component") + (dnd/has-type? e "Files") + (dnd/has-type? e "text/uri-list") + (dnd/has-type? e "text/asset-id")) + (dom/prevent-default e))))) (defn on-image-uploaded [] - (mf/use-callback - (fn [image position] - (st/emit! (dw/image-uploaded image position))))) + (mf/use-callback + (fn [image position] + (st/emit! (dw/image-uploaded image position))))) (defn on-drop [file viewport-ref zoom] (let [on-image-uploaded (on-image-uploaded)] @@ -483,19 +484,19 @@ (st/emit! (dw/upload-media-workspace params))))))))) (defn on-paste [disable-paste in-viewport?] - (mf/use-callback - (fn [event] + (mf/use-callback + (fn [event] ;; We disable the paste just after mouse-up of a middle button so when panning won't ;; paste the content into the workspace - (let [tag-name (-> event dom/get-target dom/get-tag-name)] - (when (and (not (#{"INPUT" "TEXTAREA"} tag-name)) (not @disable-paste)) - (st/emit! (dw/paste-from-event event @in-viewport?))))))) + (let [tag-name (-> event dom/get-target dom/get-tag-name)] + (when (and (not (#{"INPUT" "TEXTAREA"} tag-name)) (not @disable-paste)) + (st/emit! (dw/paste-from-event event @in-viewport?))))))) (defn on-resize [viewport-ref] - (mf/use-callback - (fn [_] - (let [node (mf/ref-val viewport-ref) - prnt (dom/get-parent node) - size (dom/get-client-size prnt)] + (mf/use-callback + (fn [_] + (let [node (mf/ref-val viewport-ref) + prnt (dom/get-parent node) + size (dom/get-client-size prnt)] ;; We schedule the event so it fires after `initialize-page` event - (timers/schedule #(st/emit! (dw/update-viewport-size size))))))) + (timers/schedule #(st/emit! (dw/update-viewport-size size))))))) diff --git a/frontend/translations/en.po b/frontend/translations/en.po index fcf7dc3890..1f575ac6e2 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -3162,6 +3162,10 @@ msgstr "Flip vertical" msgid "workspace.shape.menu.flow-start" msgstr "Flow start" +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.select-layer" +msgstr "Select layer" + #: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Bring forward" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index cec3547e51..477b300942 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -3175,6 +3175,10 @@ msgstr "Voltear vertical" msgid "workspace.shape.menu.flow-start" msgstr "Inicio de flujo" +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.select-layer" +msgstr "Seleccionar capa" + #: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Mover hacia delante" From 5f14769abc9af517c623ee7db27cbc6a190a1ba9 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 24 Jan 2022 12:04:16 +0100 Subject: [PATCH 031/154] :bug: Fix problem with hover-ids --- .../styles/main/partials/workspace.scss | 2 +- .../app/main/ui/components/shape_icon.cljs | 34 +++++++++++++ .../main/ui/viewer/handoff/left_sidebar.cljs | 5 +- .../main/ui/viewer/handoff/right_sidebar.cljs | 4 +- .../app/main/ui/workspace/context_menu.cljs | 49 +++++-------------- .../app/main/ui/workspace/sidebar/layers.cljs | 28 +---------- .../app/main/ui/workspace/viewport/hooks.cljs | 7 +-- 7 files changed, 59 insertions(+), 70 deletions(-) create mode 100644 frontend/src/app/main/ui/components/shape_icon.cljs diff --git a/frontend/resources/styles/main/partials/workspace.scss b/frontend/resources/styles/main/partials/workspace.scss index 08bfead57e..e3767bd000 100644 --- a/frontend/resources/styles/main/partials/workspace.scss +++ b/frontend/resources/styles/main/partials/workspace.scss @@ -58,7 +58,7 @@ } } - .sub-menu-item { + .icon-menu-item { display: flex; justify-content: flex-start; diff --git a/frontend/src/app/main/ui/components/shape_icon.cljs b/frontend/src/app/main/ui/components/shape_icon.cljs new file mode 100644 index 0000000000..0a54feeae5 --- /dev/null +++ b/frontend/src/app/main/ui/components/shape_icon.cljs @@ -0,0 +1,34 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.main.ui.components.shape-icon + (:require + [app.main.ui.icons :as i] + [rumext.alpha :as mf])) + + +(mf/defc element-icon + [{:keys [shape] :as props}] + (case (:type shape) + :frame i/artboard + :image i/image + :line i/line + :circle i/circle + :path i/curve + :rect i/box + :text i/text + :group (if (some? (:component-id shape)) + i/component + (if (:masked-group? shape) + i/mask + i/folder)) + :bool (case (:bool-type shape) + :difference i/bool-difference + :exclude i/bool-exclude + :intersection i/bool-intersection + #_:default i/bool-union) + :svg-raw i/file-svg + nil)) diff --git a/frontend/src/app/main/ui/viewer/handoff/left_sidebar.cljs b/frontend/src/app/main/ui/viewer/handoff/left_sidebar.cljs index 6dd87c2a76..4319c262d1 100644 --- a/frontend/src/app/main/ui/viewer/handoff/left_sidebar.cljs +++ b/frontend/src/app/main/ui/viewer/handoff/left_sidebar.cljs @@ -9,8 +9,9 @@ [app.common.data :as d] [app.main.data.viewer :as dv] [app.main.store :as st] + [app.main.ui.components.shape-icon :as si] [app.main.ui.icons :as i] - [app.main.ui.workspace.sidebar.layers :refer [element-icon layer-name]] + [app.main.ui.workspace.sidebar.layers :refer [layer-name]] [app.util.dom :as dom] [app.util.keyboard :as kbd] [okulary.core :as l] @@ -70,7 +71,7 @@ [:div.element-list-body {:class (dom/classnames :selected selected? :icon-layer (= (:type item) :icon)) :on-click select-shape} - [:& element-icon {:shape item}] + [:& si/element-icon {:shape item}] [:& layer-name {:shape item}] (when (and (not disable-collapse?) (:shapes item)) diff --git a/frontend/src/app/main/ui/viewer/handoff/right_sidebar.cljs b/frontend/src/app/main/ui/viewer/handoff/right_sidebar.cljs index 0cbf82a799..53b4895a84 100644 --- a/frontend/src/app/main/ui/viewer/handoff/right_sidebar.cljs +++ b/frontend/src/app/main/ui/viewer/handoff/right_sidebar.cljs @@ -7,12 +7,12 @@ (ns app.main.ui.viewer.handoff.right-sidebar (:require [app.common.data :as d] + [app.main.ui.components.shape-icon :as si] [app.main.ui.components.tab-container :refer [tab-container tab-element]] [app.main.ui.icons :as i] [app.main.ui.viewer.handoff.attributes :refer [attributes]] [app.main.ui.viewer.handoff.code :refer [code]] [app.main.ui.viewer.handoff.selection-feedback :refer [resolve-shapes]] - [app.main.ui.workspace.sidebar.layers :refer [element-icon]] [app.util.i18n :refer [tr]] [rumext.alpha :as mf])) @@ -44,7 +44,7 @@ [:span.tool-window-bar-title (tr "handoff.tabs.code.selected.multiple" (count shapes))]] [:* [:span.tool-window-bar-icon - [:& element-icon {:shape first-shape}]] + [:& si/element-icon {:shape first-shape}]] [:span.tool-window-bar-title (->> selected-type d/name (str "handoff.tabs.code.selected.") (tr))]]) ] [:div.tool-window-content diff --git a/frontend/src/app/main/ui/workspace/context_menu.cljs b/frontend/src/app/main/ui/workspace/context_menu.cljs index 20b8772f1b..0f1605b1a7 100644 --- a/frontend/src/app/main/ui/workspace/context_menu.cljs +++ b/frontend/src/app/main/ui/workspace/context_menu.cljs @@ -18,6 +18,7 @@ [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.components.dropdown :refer [dropdown]] + [app.main.ui.components.shape-icon :as si] [app.main.ui.context :as ctx] [app.main.ui.icons :as i] [app.util.dom :as dom] @@ -35,32 +36,10 @@ (dom/stop-propagation event)) -(mf/defc element-icon - [{:keys [shape] :as props}] - (case (:type shape) - :frame i/artboard - :image i/image - :line i/line - :circle i/circle - :path i/curve - :rect i/box - :text i/text - :group (if (some? (:component-id shape)) - i/component - (if (:masked-group? shape) - i/mask - i/folder)) - :bool (case (:bool-type shape) - :difference i/bool-difference - :exclude i/bool-exclude - :intersection i/bool-intersection - #_:default i/bool-union) - :svg-raw i/file-svg - nil)) (mf/defc menu-entry - [{:keys [title shortcut on-click children selected has-icon? shape] :as props}] + [{:keys [title shortcut on-click children selected? icon] :as props}] (let [submenu-ref (mf/use-ref nil) hovering? (mf/use-ref false) @@ -90,16 +69,15 @@ (when (and (some? dom) (some? submenu-node)) (dom/set-css-property! submenu-node "top" (str (.-offsetTop dom) "px"))))))] - (if has-icon? - [:li.sub-menu-item {:ref set-dom-node - :on-click on-click - :on-pointer-enter on-pointer-enter - :on-pointer-leave on-pointer-leave} - (when has-icon? - [:span.icon-wrapper - (if selected [:span.selected-icon i/tick] - [:span.selected-icon]) - [:span.shape-icon (element-icon {:shape shape})]]) + (if icon + [:li.icon-menu-item {:ref set-dom-node + :on-click on-click + :on-pointer-enter on-pointer-enter + :on-pointer-leave on-pointer-leave} + [:span.icon-wrapper + (if selected? [:span.selected-icon i/tick] + [:span.selected-icon]) + [:span.shape-icon icon]] [:span.title title]] [:li {:ref set-dom-node :on-click on-click @@ -156,10 +134,9 @@ [:& menu-entry {:title (tr "workspace.shape.menu.select-layer")} (for [object hover-objs] [:& menu-entry {:title (:name object) - :selected (some #(= object %) shapes) + :selected? (some #(= object %) shapes) :on-click (select-shapes (:id object)) - :has-icon? true - :shape object}])]) + :icon (si/element-icon {:shape object})}])]) [:& menu-entry {:title (tr "workspace.shape.menu.forward") :shortcut (sc/get-tooltip :bring-forward) :on-click do-bring-forward}] diff --git a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs index 824cd61385..e23e839772 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs @@ -13,6 +13,7 @@ [app.main.data.workspace.common :as dwc] [app.main.refs :as refs] [app.main.store :as st] + [app.main.ui.components.shape-icon :as si] [app.main.ui.hooks :as hooks] [app.main.ui.icons :as i] [app.util.dom :as dom] @@ -24,31 +25,6 @@ [okulary.core :as l] [rumext.alpha :as mf])) -;; --- Helpers - -(mf/defc element-icon - [{:keys [shape] :as props}] - (case (:type shape) - :frame i/artboard - :image i/image - :line i/line - :circle i/circle - :path i/curve - :rect i/box - :text i/text - :group (if (some? (:component-id shape)) - i/component - (if (:masked-group? shape) - i/mask - i/folder)) - :bool (case (:bool-type shape) - :difference i/bool-difference - :exclude i/bool-exclude - :intersection i/bool-intersection - #_:default i/bool-union) - :svg-raw i/file-svg - nil)) - ;; --- Layer Name (def shape-for-rename-ref @@ -227,7 +203,7 @@ :icon-layer (= (:type item) :icon)) :on-click select-shape :on-double-click #(dom/stop-propagation %)} - [:& element-icon {:shape item}] + [:& si/element-icon {:shape item}] [:& layer-name {:shape item :on-start-edit #(reset! disable-drag true) :on-stop-edit #(reset! disable-drag false)}] diff --git a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs index 2ff6e17445..33cf92fe38 100644 --- a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs @@ -164,9 +164,10 @@ @ctrl? (into (filter is-group?) ids)) - ids (filterv (comp not remove-id?) ids) - hover-shape (get objects (first ids))] - + hover-shape (->> ids + (filterv (comp not remove-id?)) + (first) + (get objects))] (reset! hover hover-shape) (reset! hover-ids ids)))))) From 3142d48f3c9e9730ee91bf90480146a6c8469108 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 26 Jan 2022 12:19:10 +0100 Subject: [PATCH 032/154] :lipstick: Minor cosmetic change on changelog file. --- CHANGES.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 3c4e56be46..6d5e6b51e8 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -10,8 +10,7 @@ - Guides [Taiga #290](https://tree.taiga.io/project/penpot/us/290?milestone=307334) - Improve file menu by adding semantically groups [Github #1203](https://github.com/penpot/penpot/issues/1203). - Add update components in bulk option in context menu [Taiga #1975](https://tree.taiga.io/project/penpot/us/1975). -- Create e2e tests for drawing basic shapes [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608). -- Create firsts e2e test [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608). +- Create first E2E tests [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608), [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608) ### :bug: Bugs fixed ### :arrow_up: Deps updates From 2f8c63505f4a19388b2d3ad7852cec5eb63235a2 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 26 Jan 2022 14:44:01 +0100 Subject: [PATCH 033/154] :lipstick: Fix linter issues. --- backend/src/app/http/errors.clj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/app/http/errors.clj b/backend/src/app/http/errors.clj index e8686d87c6..d74d525c61 100644 --- a/backend/src/app/http/errors.clj +++ b/backend/src/app/http/errors.clj @@ -12,8 +12,8 @@ [app.common.uuid :as uuid] [clojure.pprint] [clojure.spec.alpha :as s] - [expound.alpha :as expound] - [cuerdas.core :as str])) + [cuerdas.core :as str] + [expound.alpha :as expound])) (defn- parse-client-ip [{:keys [headers] :as request}] From 04f7169aef67977044dcb568a4ae2a4e9dc83612 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 25 Jan 2022 00:07:08 +0100 Subject: [PATCH 034/154] :recycle: Refactor and modularize all specs. --- backend/src/app/rpc/mutations/comments.clj | 3 +- backend/src/app/srepl/main.clj | 6 +- common/src/app/common/file_builder.cljc | 5 +- common/src/app/common/geom/matrix.cljc | 24 +- common/src/app/common/geom/point.cljc | 11 +- common/src/app/common/geom/shapes.cljc | 4 + .../app/common/geom/shapes/constraints.cljc | 24 +- common/src/app/common/pages.cljc | 16 +- common/src/app/common/pages/changes.cljc | 11 +- common/src/app/common/pages/helpers.cljc | 3 +- common/src/app/common/pages/spec.cljc | 623 ------------------ common/src/app/common/spec.cljc | 2 - common/src/app/common/spec/blur.cljc | 19 + common/src/app/common/spec/change.cljc | 165 +++++ common/src/app/common/spec/color.cljc | 75 +++ common/src/app/common/spec/export.cljc | 22 + common/src/app/common/spec/file.cljc | 54 ++ .../common/{types => spec}/interactions.cljc | 4 +- common/src/app/common/spec/page.cljc | 129 ++++ .../app/common/{types => spec}/radius.cljc | 2 +- common/src/app/common/spec/shadow.cljc | 37 ++ common/src/app/common/spec/shape.cljc | 241 +++++++ common/src/app/common/spec/typography.cljc | 38 ++ common/src/app/common/types/page_options.cljc | 112 ---- ..._test.cljc => spec_interactions_test.cljc} | 292 ++++---- frontend/src/app/main/data/comments.cljs | 3 +- frontend/src/app/main/data/viewer.cljs | 7 +- frontend/src/app/main/data/workspace.cljs | 12 +- .../src/app/main/data/workspace/changes.cljs | 6 +- .../src/app/main/data/workspace/common.cljs | 13 +- .../src/app/main/data/workspace/guides.cljs | 6 +- .../app/main/data/workspace/interactions.cljs | 34 +- .../app/main/data/workspace/libraries.cljs | 20 +- .../main/data/workspace/notifications.cljs | 4 +- .../app/main/data/workspace/persistence.cljs | 6 +- .../app/main/data/workspace/selection.cljs | 2 +- .../src/app/main/data/workspace/undo.cljs | 6 +- frontend/src/app/main/ui/shapes/attrs.cljs | 14 +- .../ui/viewer/handoff/attributes/layout.cljs | 2 +- .../src/app/main/ui/viewer/interactions.cljs | 4 +- frontend/src/app/main/ui/viewer/shapes.cljs | 2 +- .../app/main/ui/workspace/context_menu.cljs | 4 +- .../sidebar/options/menus/constraints.cljs | 5 +- .../sidebar/options/menus/interactions.cljs | 62 +- .../sidebar/options/menus/measures.cljs | 2 +- .../sidebar/options/menus/stroke.cljs | 3 +- .../ui/workspace/viewport/interactions.cljs | 2 +- frontend/src/app/util/import/parser.cljs | 2 +- 48 files changed, 1112 insertions(+), 1031 deletions(-) delete mode 100644 common/src/app/common/pages/spec.cljc create mode 100644 common/src/app/common/spec/blur.cljc create mode 100644 common/src/app/common/spec/change.cljc create mode 100644 common/src/app/common/spec/color.cljc create mode 100644 common/src/app/common/spec/export.cljc create mode 100644 common/src/app/common/spec/file.cljc rename common/src/app/common/{types => spec}/interactions.cljc (99%) create mode 100644 common/src/app/common/spec/page.cljc rename common/src/app/common/{types => spec}/radius.cljc (98%) create mode 100644 common/src/app/common/spec/shadow.cljc create mode 100644 common/src/app/common/spec/shape.cljc create mode 100644 common/src/app/common/spec/typography.cljc delete mode 100644 common/src/app/common/types/page_options.cljc rename common/test/app/common/{types_interactions_test.cljc => spec_interactions_test.cljc} (69%) diff --git a/backend/src/app/rpc/mutations/comments.clj b/backend/src/app/rpc/mutations/comments.clj index 82f8d9b778..4c4a6eccc9 100644 --- a/backend/src/app/rpc/mutations/comments.clj +++ b/backend/src/app/rpc/mutations/comments.clj @@ -7,6 +7,7 @@ (ns app.rpc.mutations.comments (:require [app.common.exceptions :as ex] + [app.common.geom.point :as gpt] [app.common.spec :as us] [app.db :as db] [app.rpc.queries.comments :as comments] @@ -26,7 +27,7 @@ (s/def ::page-id ::us/uuid) (s/def ::file-id ::us/uuid) (s/def ::profile-id ::us/uuid) -(s/def ::position ::us/point) +(s/def ::position ::gpt/point) (s/def ::content ::us/string) (s/def ::create-comment-thread diff --git a/backend/src/app/srepl/main.clj b/backend/src/app/srepl/main.clj index 08ea82a9b3..3f0a725e9d 100644 --- a/backend/src/app/srepl/main.clj +++ b/backend/src/app/srepl/main.clj @@ -7,7 +7,7 @@ [app.common.logging :as l] [app.common.pages :as cp] [app.common.pages.migrations :as pmg] - [app.common.pages.spec :as spec] + [app.common.spec.file :as spec.file] [app.common.uuid :as uuid] [app.config :as cfg] [app.db :as db] @@ -86,7 +86,7 @@ (validate-item [{:keys [id data modified-at] :as file}] (let [data (blob/decode data) - valid? (s/valid? ::spec/data data)] + valid? (s/valid? ::spec.file/data data)] (l/debug :hint "validated file" :file-id id @@ -98,7 +98,7 @@ :valid valid?) (when (and (not valid?) verbose?) - (let [edata (-> (s/explain-data ::spec/data data) + (let [edata (-> (s/explain-data ::spec.file/data data) (update ::s/problems #(take 5 %)))] (binding [s/*explain-out* expound/printer] (l/warn ::l/raw (with-out-str (s/explain-out edata)))))) diff --git a/common/src/app/common/file_builder.cljc b/common/src/app/common/file_builder.cljc index e2dd9f30e2..d58abedd79 100644 --- a/common/src/app/common/file_builder.cljc +++ b/common/src/app/common/file_builder.cljc @@ -13,6 +13,7 @@ [app.common.pages.changes :as ch] [app.common.pages.init :as init] [app.common.spec :as us] + [app.common.spec.change :as spec.change] [app.common.uuid :as uuid] [cuerdas.core :as str])) @@ -38,9 +39,9 @@ :frame-id (:current-frame-id file)))] (when fail-on-spec? - (us/verify :app.common.pages.spec/change change)) + (us/verify ::spec.change/change change)) - (let [valid? (us/valid? :app.common.pages.spec/change change)] + (let [valid? (us/valid? ::spec.change/change change)] #?(:cljs (when-not valid? (.warn js/console "Invalid shape" (clj->js change)))) diff --git a/common/src/app/common/geom/matrix.cljc b/common/src/app/common/geom/matrix.cljc index b03cba0d4e..88ba2ed5d6 100644 --- a/common/src/app/common/geom/matrix.cljc +++ b/common/src/app/common/geom/matrix.cljc @@ -10,7 +10,9 @@ :clj [clojure.pprint :as pp]) [app.common.data :as d] [app.common.geom.point :as gpt] - [app.common.math :as mth])) + [app.common.math :as mth] + [app.common.spec :as us] + [clojure.spec.alpha :as s])) ;; --- Matrix Impl @@ -24,6 +26,21 @@ (toString [_] (str "matrix(" a "," b "," c "," d "," e "," f ")"))) +(defn ^boolean matrix? + "Return true if `v` is Matrix instance." + [v] + (instance? Matrix v)) + +(s/def ::a ::us/safe-number) +(s/def ::b ::us/safe-number) +(s/def ::c ::us/safe-number) +(s/def ::d ::us/safe-number) +(s/def ::e ::us/safe-number) +(s/def ::f ::us/safe-number) + +(s/def ::matrix + (s/and (s/keys :req-un [::a ::b ::c ::d ::e ::f]) matrix?)) + (defn matrix "Create a new matrix instance." ([] @@ -84,11 +101,6 @@ (- m1a m2a) (- m1b m2b) (- m1c m2c) (- m1d m2d) (- m1e m2e) (- m1f m2f))) -(defn ^boolean matrix? - "Return true if `v` is Matrix instance." - [v] - (instance? Matrix v)) - (def base (matrix)) (defn base? diff --git a/common/src/app/common/geom/point.cljc b/common/src/app/common/geom/point.cljc index 21fecc68b3..c2b81b2482 100644 --- a/common/src/app/common/geom/point.cljc +++ b/common/src/app/common/geom/point.cljc @@ -11,7 +11,9 @@ :clj [clojure.pprint :as pp]) #?(:cljs [cljs.core :as c] :clj [clojure.core :as c]) - [app.common.math :as mth])) + [app.common.math :as mth] + [app.common.spec :as us] + [clojure.spec.alpha :as s])) ;; --- Point Impl @@ -25,6 +27,13 @@ (or (instance? Point v) (and (map? v) (contains? v :x) (contains? v :y)))) +(s/def ::x ::us/safe-number) +(s/def ::y ::us/safe-number) + +(s/def ::point + (s/and (s/keys :req-un [::x ::y]) point?)) + + (defn ^boolean point-like? [{:keys [x y] :as v}] (and (map? v) diff --git a/common/src/app/common/geom/shapes.cljc b/common/src/app/common/geom/shapes.cljc index 6df3f748ea..bf63582e50 100644 --- a/common/src/app/common/geom/shapes.cljc +++ b/common/src/app/common/geom/shapes.cljc @@ -185,3 +185,7 @@ ;; Bool (d/export gsb/update-bool-selrect) (d/export gsb/calc-bool-content) + +;; Constraints +(d/export gct/default-constraints-h) +(d/export gct/default-constraints-v) diff --git a/common/src/app/common/geom/shapes/constraints.cljc b/common/src/app/common/geom/shapes/constraints.cljc index 4ead68b4e0..8732be74b6 100644 --- a/common/src/app/common/geom/shapes/constraints.cljc +++ b/common/src/app/common/geom/shapes/constraints.cljc @@ -11,7 +11,7 @@ [app.common.geom.shapes.common :as gco] [app.common.geom.shapes.transforms :as gtr] [app.common.math :as mth] - [app.common.pages.spec :as spec])) + [app.common.uuid :as uuid])) ;; Auxiliary methods to work in an specifica axis (defn get-delta-start [axis rect tr-rect] @@ -117,7 +117,7 @@ (not (mth/close? (:y resize-vector-2) 1))) (assoc :resize-origin (:resize-origin-2 modifiers) :resize-vector (gpt/point 1 (:y resize-vector-2))) - + (some? displacement) (assoc :displacement (get-displacement axis (-> (gpt/point 0 0) @@ -138,16 +138,32 @@ :center :center :scale :scale}) +(defn default-constraints-h + [shape] + (if (= (:parent-id shape) uuid/zero) + nil + (if (= (:parent-id shape) (:frame-id shape)) + :left + :scale))) + +(defn default-constraints-v + [shape] + (if (= (:parent-id shape) uuid/zero) + nil + (if (= (:parent-id shape) (:frame-id shape)) + :top + :scale))) + (defn calc-child-modifiers [parent child modifiers ignore-constraints transformed-parent-rect] (let [constraints-h (if-not ignore-constraints - (:constraints-h child (spec/default-constraints-h child)) + (:constraints-h child (default-constraints-h child)) :scale) constraints-v (if-not ignore-constraints - (:constraints-v child (spec/default-constraints-v child)) + (:constraints-v child (default-constraints-v child)) :scale) modifiers-h (constraint-modifier (constraints-h const->type+axis) :x parent child modifiers transformed-parent-rect) diff --git a/common/src/app/common/pages.cljc b/common/src/app/common/pages.cljc index 4c6248b86a..25fe398fe1 100644 --- a/common/src/app/common/pages.cljc +++ b/common/src/app/common/pages.cljc @@ -12,9 +12,7 @@ [app.common.pages.common :as common] [app.common.pages.helpers :as helpers] [app.common.pages.indices :as indices] - [app.common.pages.init :as init] - [app.common.pages.spec :as spec] - [clojure.spec.alpha :as s])) + [app.common.pages.init :as init])) ;; Common (d/export common/root) @@ -88,15 +86,3 @@ (d/export init/make-minimal-shape) (d/export init/make-minimal-group) (d/export init/empty-file-data) - -;; Specs - -(s/def ::changes ::spec/changes) -(s/def ::color ::spec/color) -(s/def ::data ::spec/data) -(s/def ::media-object ::spec/media-object) -(s/def ::page ::spec/page) -(s/def ::recent-color ::spec/recent-color) -(s/def ::shape-attrs ::spec/shape-attrs) -(s/def ::typography ::spec/typography) - diff --git a/common/src/app/common/pages/changes.cljc b/common/src/app/common/pages/changes.cljc index 46ccfcb176..87283db389 100644 --- a/common/src/app/common/pages/changes.cljc +++ b/common/src/app/common/pages/changes.cljc @@ -5,6 +5,7 @@ ;; Copyright (c) UXBOX Labs SL (ns app.common.pages.changes + #_:clj-kondo/ignore (:require [app.common.data :as d] [app.common.exceptions :as ex] @@ -13,9 +14,9 @@ [app.common.pages.common :refer [component-sync-attrs]] [app.common.pages.helpers :as cph] [app.common.pages.init :as init] - [app.common.pages.spec :as spec] - [app.common.spec :as us])) - + [app.common.spec :as us] + [app.common.spec.change :as spec.change] + [app.common.spec.shape :as spec.shape])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Specific helpers @@ -47,7 +48,7 @@ ;; When verify? false we spec the schema validation. Currently used to make just ;; 1 validation even if the changes are applied twice (when verify? - (us/assert ::spec/changes items)) + (us/assert ::spec.change/changes items)) (let [result (reduce #(or (process-change %1 %2) %1) data items)] ;; Validate result shapes (only on the backend) @@ -57,7 +58,7 @@ (doseq [[id shape] (:objects page)] (when-not (= shape (get-in data [:pages-index page-id :objects id])) ;; If object has change verify is correct - (us/verify ::spec/shape shape)))))) + (us/verify ::spec.shape/shape shape)))))) result))) diff --git a/common/src/app/common/pages/helpers.cljc b/common/src/app/common/pages/helpers.cljc index 5cefcd4ae9..c529051f82 100644 --- a/common/src/app/common/pages/helpers.cljc +++ b/common/src/app/common/pages/helpers.cljc @@ -9,7 +9,7 @@ [app.common.data :as d] [app.common.geom.shapes :as gsh] [app.common.spec :as us] - [app.common.types.interactions :as cti] + [app.common.spec.interactions :as cti] [app.common.uuid :as uuid] [cuerdas.core :as str])) @@ -464,3 +464,4 @@ (tree-seq #(d/not-empty? (get shape :shapes)) #(->> (get % :shapes) (map getter)) shape))) + diff --git a/common/src/app/common/pages/spec.cljc b/common/src/app/common/pages/spec.cljc deleted file mode 100644 index 59ded8f62d..0000000000 --- a/common/src/app/common/pages/spec.cljc +++ /dev/null @@ -1,623 +0,0 @@ -;; This Source Code Form is subject to the terms of the Mozilla Public -;; License, v. 2.0. If a copy of the MPL was not distributed with this -;; file, You can obtain one at http://mozilla.org/MPL/2.0/. -;; -;; Copyright (c) UXBOX Labs SL - -(ns app.common.pages.spec - (:require - [app.common.geom.matrix :as gmt] - [app.common.geom.point :as gpt] - [app.common.spec :as us] - [app.common.types.interactions :as cti] - [app.common.types.page-options :as cto] - [app.common.types.radius :as ctr] - [app.common.uuid :as uuid] - [clojure.set :as set] - [clojure.spec.alpha :as s])) - -;; --- Specs - -(s/def ::frame-id uuid?) -(s/def ::id uuid?) -(s/def ::name string?) -(s/def ::path (s/nilable string?)) -(s/def ::page-id uuid?) -(s/def ::parent-id uuid?) -(s/def ::string string?) -(s/def ::type keyword?) -(s/def ::uuid uuid?) - -(s/def ::component-id uuid?) -(s/def ::component-file uuid?) -(s/def ::component-root? boolean?) -(s/def ::shape-ref uuid?) - -(s/def :internal.matrix/a ::us/safe-number) -(s/def :internal.matrix/b ::us/safe-number) -(s/def :internal.matrix/c ::us/safe-number) -(s/def :internal.matrix/d ::us/safe-number) -(s/def :internal.matrix/e ::us/safe-number) -(s/def :internal.matrix/f ::us/safe-number) - -(s/def ::matrix - (s/and (s/keys :req-un [:internal.matrix/a - :internal.matrix/b - :internal.matrix/c - :internal.matrix/d - :internal.matrix/e - :internal.matrix/f]) - gmt/matrix?)) - - -(s/def :internal.point/x ::us/safe-number) -(s/def :internal.point/y ::us/safe-number) - -(s/def ::point - (s/and (s/keys :req-un [:internal.point/x - :internal.point/y]) - gpt/point?)) - -;; GRADIENTS - -(s/def :internal.gradient.stop/color ::string) -(s/def :internal.gradient.stop/opacity ::us/safe-number) -(s/def :internal.gradient.stop/offset ::us/safe-number) - -(s/def :internal.gradient/type #{:linear :radial}) -(s/def :internal.gradient/start-x ::us/safe-number) -(s/def :internal.gradient/start-y ::us/safe-number) -(s/def :internal.gradient/end-x ::us/safe-number) -(s/def :internal.gradient/end-y ::us/safe-number) -(s/def :internal.gradient/width ::us/safe-number) - -(s/def :internal.gradient/stop - (s/keys :req-un [:internal.gradient.stop/color - :internal.gradient.stop/opacity - :internal.gradient.stop/offset])) - -(s/def :internal.gradient/stops - (s/coll-of :internal.gradient/stop :kind vector?)) - -(s/def ::gradient - (s/keys :req-un [:internal.gradient/type - :internal.gradient/start-x - :internal.gradient/start-y - :internal.gradient/end-x - :internal.gradient/end-y - :internal.gradient/width - :internal.gradient/stops])) - - -;;; COLORS - -(s/def :internal.color/name ::string) -(s/def :internal.color/path (s/nilable ::string)) -(s/def :internal.color/value (s/nilable ::string)) -(s/def :internal.color/color (s/nilable ::string)) -(s/def :internal.color/opacity (s/nilable ::us/safe-number)) -(s/def :internal.color/gradient (s/nilable ::gradient)) - -(s/def ::color - (s/keys :opt-un [::id - :internal.color/name - :internal.color/path - :internal.color/value - :internal.color/color - :internal.color/opacity - :internal.color/gradient])) - - -;;; SHADOW EFFECT - -(s/def :internal.shadow/id uuid?) -(s/def :internal.shadow/style #{:drop-shadow :inner-shadow}) -(s/def :internal.shadow/color ::color) -(s/def :internal.shadow/offset-x ::us/safe-number) -(s/def :internal.shadow/offset-y ::us/safe-number) -(s/def :internal.shadow/blur ::us/safe-number) -(s/def :internal.shadow/spread ::us/safe-number) -(s/def :internal.shadow/hidden boolean?) - -(s/def :internal.shadow/shadow - (s/keys :req-un [:internal.shadow/id - :internal.shadow/style - :internal.shadow/color - :internal.shadow/offset-x - :internal.shadow/offset-y - :internal.shadow/blur - :internal.shadow/spread - :internal.shadow/hidden])) - -(s/def ::shadow - (s/coll-of :internal.shadow/shadow :kind vector?)) - - -;;; BLUR EFFECT - -(s/def :internal.blur/id uuid?) -(s/def :internal.blur/type #{:layer-blur}) -(s/def :internal.blur/value ::us/safe-number) -(s/def :internal.blur/hidden boolean?) - -(s/def ::blur - (s/keys :req-un [:internal.blur/id - :internal.blur/type - :internal.blur/value - :internal.blur/hidden])) - -;; Size constraints - -(s/def :internal.shape/constraints-h #{:left :right :leftright :center :scale}) -(s/def :internal.shape/constraints-v #{:top :bottom :topbottom :center :scale}) -(s/def :internal.shape/fixed-scroll boolean?) - -; Shapes in the top frame have no constraints. Shapes directly below some -; frame are left-top constrained. Else (shapes in a group) are scaled. -(defn default-constraints-h - [shape] - (if (= (:parent-id shape) uuid/zero) - nil - (if (= (:parent-id shape) (:frame-id shape)) - :left - :scale))) - -(defn default-constraints-v - [shape] - (if (= (:parent-id shape) uuid/zero) - nil - (if (= (:parent-id shape) (:frame-id shape)) - :top - :scale))) - -;; Page Data related -(s/def :internal.shape/blocked boolean?) -(s/def :internal.shape/collapsed boolean?) - -(s/def :internal.shape/fill-color string?) -(s/def :internal.shape/fill-opacity ::us/safe-number) -(s/def :internal.shape/fill-color-gradient (s/nilable ::gradient)) -(s/def :internal.shape/fill-color-ref-file (s/nilable uuid?)) -(s/def :internal.shape/fill-color-ref-id (s/nilable uuid?)) -(s/def :internal.shape/hide-fill-on-export boolean?) - -(s/def :internal.shape/font-family string?) -(s/def :internal.shape/font-size ::us/safe-integer) -(s/def :internal.shape/font-style string?) -(s/def :internal.shape/font-weight string?) -(s/def :internal.shape/hidden boolean?) -(s/def :internal.shape/letter-spacing ::us/safe-number) -(s/def :internal.shape/line-height ::us/safe-number) -(s/def :internal.shape/locked boolean?) -(s/def :internal.shape/page-id uuid?) -(s/def :internal.shape/proportion ::us/safe-number) -(s/def :internal.shape/proportion-lock boolean?) -(s/def :internal.shape/stroke-color string?) -(s/def :internal.shape/stroke-color-gradient (s/nilable ::gradient)) -(s/def :internal.shape/stroke-color-ref-file (s/nilable uuid?)) -(s/def :internal.shape/stroke-color-ref-id (s/nilable uuid?)) -(s/def :internal.shape/stroke-opacity ::us/safe-number) -(s/def :internal.shape/stroke-style #{:solid :dotted :dashed :mixed :none :svg}) - -(def stroke-caps-line #{:round :square}) -(def stroke-caps-marker #{:line-arrow :triangle-arrow :square-marker :circle-marker :diamond-marker}) -(def stroke-caps (set/union stroke-caps-line stroke-caps-marker)) -(s/def :internal.shape/stroke-cap-start stroke-caps) -(s/def :internal.shape/stroke-cap-end stroke-caps) - -(defn has-caps? - [shape] - (= (:type shape) :path)) - -(s/def :internal.shape/stroke-width ::us/safe-number) -(s/def :internal.shape/stroke-alignment #{:center :inner :outer}) -(s/def :internal.shape/text-align #{"left" "right" "center" "justify"}) -(s/def :internal.shape/x ::us/safe-number) -(s/def :internal.shape/y ::us/safe-number) -(s/def :internal.shape/cx ::us/safe-number) -(s/def :internal.shape/cy ::us/safe-number) -(s/def :internal.shape/width ::us/safe-number) -(s/def :internal.shape/height ::us/safe-number) -(s/def :internal.shape/index integer?) -(s/def :internal.shape/shadow ::shadow) -(s/def :internal.shape/blur ::blur) - -(s/def :internal.shape/x1 ::us/safe-number) -(s/def :internal.shape/y1 ::us/safe-number) -(s/def :internal.shape/x2 ::us/safe-number) -(s/def :internal.shape/y2 ::us/safe-number) - -(s/def :internal.shape.export/suffix string?) -(s/def :internal.shape.export/scale ::us/safe-number) -(s/def :internal.shape/export - (s/keys :req-un [::type - :internal.shape.export/suffix - :internal.shape.export/scale])) - -(s/def :internal.shape/exports - (s/coll-of :internal.shape/export :kind vector?)) - -(s/def :internal.shape/selrect - (s/keys :req-un [:internal.shape/x - :internal.shape/y - :internal.shape/x1 - :internal.shape/y1 - :internal.shape/x2 - :internal.shape/y2 - :internal.shape/width - :internal.shape/height])) - -(s/def :internal.shape/points - (s/every ::point :kind vector?)) - -(s/def :internal.shape/shapes - (s/every uuid? :kind vector?)) - -(s/def :internal.shape/transform ::matrix) -(s/def :internal.shape/transform-inverse ::matrix) - -(s/def :internal.shape/opacity ::us/safe-number) -(s/def :internal.shape/blend-mode - #{:normal - :darken - :multiply - :color-burn - :lighten - :screen - :color-dodge - :overlay - :soft-light - :hard-light - :difference - :exclusion - :hue - :saturation - :color - :luminosity}) - -(s/def ::shape-attrs - (s/keys :opt-un [::id - ::type - ::name - ::component-id - ::component-file - ::component-root? - ::shape-ref - :internal.shape/selrect - :internal.shape/points - :internal.shape/blocked - :internal.shape/collapsed - :internal.shape/fill-color - :internal.shape/fill-opacity - :internal.shape/fill-color-gradient - :internal.shape/fill-color-ref-file - :internal.shape/fill-color-ref-id - :internal.shape/font-family - :internal.shape/font-size - :internal.shape/font-style - :internal.shape/font-weight - :internal.shape/hidden - :internal.shape/letter-spacing - :internal.shape/line-height - :internal.shape/locked - :internal.shape/proportion - :internal.shape/proportion-lock - :internal.shape/constraints-h - :internal.shape/constraints-v - :internal.shape/fixed-scroll - ::ctr/rx - ::ctr/ry - ::ctr/r1 - ::ctr/r2 - ::ctr/r3 - ::ctr/r4 - :internal.shape/x - :internal.shape/y - :internal.shape/exports - :internal.shape/shapes - :internal.shape/stroke-color - :internal.shape/stroke-color-ref-file - :internal.shape/stroke-color-ref-id - :internal.shape/stroke-opacity - :internal.shape/stroke-style - :internal.shape/stroke-width - :internal.shape/stroke-alignment - :internal.shape/stroke-cap-start - :internal.shape/stroke-cap-end - :internal.shape/text-align - :internal.shape/transform - :internal.shape/transform-inverse - :internal.shape/width - :internal.shape/height - ::cti/interactions - :internal.shape/masked-group? - :internal.shape/shadow - :internal.shape/blur - :internal.shape/opacity - :internal.shape/blend-mode])) - -(s/def :internal.shape.text/type #{"root" "paragraph-set" "paragraph"}) -(s/def :internal.shape.text/children - (s/coll-of :internal.shape.text/content - :kind vector? - :min-count 1)) - -(s/def :internal.shape.text/text string?) -(s/def :internal.shape.text/key string?) - -(s/def :internal.shape.text/content - (s/nilable - (s/or :text-container - (s/keys :req-un [:internal.shape.text/type - :internal.shape.text/children] - :opt-un [:internal.shape.text/key]) - :text-content - (s/keys :req-un [:internal.shape.text/text])))) - -(s/def :internal.shape.path/command keyword?) -(s/def :internal.shape.path/params - (s/nilable (s/map-of keyword? any?))) - -(s/def :internal.shape.path/command-item - (s/keys :req-un [:internal.shape.path/command] - :opt-un [:internal.shape.path/params])) - -(s/def :internal.shape.path/content - (s/coll-of :internal.shape.path/command-item :kind vector?)) - -(defmulti shape-spec :type) - -(defmethod shape-spec :default [_] - (s/spec ::shape-attrs)) - -(defmethod shape-spec :text [_] - (s/and ::shape-attrs - (s/keys :opt-un [:internal.shape.text/content]))) - -(defmethod shape-spec :path [_] - (s/and ::shape-attrs - (s/keys :opt-un [:internal.shape.path/content]))) - -(defmethod shape-spec :frame [_] - (s/and ::shape-attrs - (s/keys :opt-un [:internal.shape/hide-fill-on-export]))) - -(s/def ::shape - (s/and (s/multi-spec shape-spec :type) - #(contains? % :name) - #(contains? % :type))) - -(s/def :internal.page/objects (s/map-of uuid? ::shape)) - -(s/def ::page - (s/keys :req-un [::id - ::name - ::cto/options - :internal.page/objects])) - -(s/def ::recent-color - (s/keys :opt-un [:internal.color/value - :internal.color/color - :internal.color/opacity - :internal.color/gradient])) - -(s/def :internal.media-object/name ::string) -(s/def :internal.media-object/width ::us/safe-integer) -(s/def :internal.media-object/height ::us/safe-integer) -(s/def :internal.media-object/mtype ::string) - -(s/def ::media-object - (s/keys :req-un [::id - ::name - :internal.media-object/width - :internal.media-object/height - :internal.media-object/mtype])) - -(s/def ::media-object-update - (s/keys :req-un [::id] - :opt-un [::name - :internal.media-object/width - :internal.media-object/height - :internal.media-object/mtype])) - -(s/def :internal.file/colors - (s/map-of ::uuid ::color)) - -(s/def :internal.file/recent-colors - (s/coll-of ::recent-color :kind vector?)) - -(s/def :internal.typography/id ::id) -(s/def :internal.typography/name ::string) -(s/def :internal.typography/path (s/nilable ::string)) -(s/def :internal.typography/font-id ::string) -(s/def :internal.typography/font-family ::string) -(s/def :internal.typography/font-variant-id ::string) -(s/def :internal.typography/font-size ::string) -(s/def :internal.typography/font-weight ::string) -(s/def :internal.typography/font-style ::string) -(s/def :internal.typography/line-height ::string) -(s/def :internal.typography/letter-spacing ::string) -(s/def :internal.typography/text-transform ::string) - -(s/def ::typography - (s/keys :req-un [:internal.typography/id - :internal.typography/name - :internal.typography/font-id - :internal.typography/font-family - :internal.typography/font-variant-id - :internal.typography/font-size - :internal.typography/font-weight - :internal.typography/font-style - :internal.typography/line-height - :internal.typography/letter-spacing - :internal.typography/text-transform] - :opt-un [:internal.typography/path])) - -(s/def :internal.file/pages - (s/coll-of ::uuid :kind vector?)) - -(s/def :internal.file/media - (s/map-of ::uuid ::media-object)) - -(s/def :internal.file/pages-index - (s/map-of ::uuid ::page)) - -(s/def ::data - (s/keys :req-un [:internal.file/pages-index - :internal.file/pages] - :opt-un [:internal.file/colors - :internal.file/recent-colors - :internal.file/media])) - -(s/def :internal.container/type #{:page :component}) - -(s/def ::container - (s/keys :req-un [:internal.container/type - ::id - ::name - :internal.page/objects])) - -(defmulti operation-spec :type) - -(s/def :internal.operations.set/attr keyword?) -(s/def :internal.operations.set/val any?) -(s/def :internal.operations.set/touched - (s/nilable (s/every keyword? :kind set?))) -(s/def :internal.operations.set/remote-synced? - (s/nilable boolean?)) - -(defmethod operation-spec :set [_] - (s/keys :req-un [:internal.operations.set/attr - :internal.operations.set/val])) - -(defmethod operation-spec :set-touched [_] - (s/keys :req-un [:internal.operations.set/touched])) - -(defmethod operation-spec :set-remote-synced [_] - (s/keys :req-un [:internal.operations.set/remote-synced?])) - -(defmulti change-spec :type) - -(s/def :internal.changes.set-option/option any?) -(s/def :internal.changes.set-option/value any?) - -(defmethod change-spec :set-option [_] - (s/keys :req-un [:internal.changes.set-option/option - :internal.changes.set-option/value])) - -(s/def :internal.changes.add-obj/obj ::shape) - -(defn- valid-container-id-frame? - [o] - (or (and (contains? o :page-id) - (not (contains? o :component-id)) - (some? (:frame-id o))) - (and (contains? o :component-id) - (not (contains? o :page-id)) - (nil? (:frame-id o))))) - -(defn- valid-container-id? - [o] - (or (and (contains? o :page-id) - (not (contains? o :component-id))) - (and (contains? o :component-id) - (not (contains? o :page-id))))) - -(defmethod change-spec :add-obj [_] - (s/and (s/keys :req-un [::id :internal.changes.add-obj/obj] - :opt-un [::page-id ::component-id ::parent-id ::frame-id]) - valid-container-id-frame?)) - -(s/def ::operation (s/multi-spec operation-spec :type)) -(s/def ::operations (s/coll-of ::operation)) - -(defmethod change-spec :mod-obj [_] - (s/and (s/keys :req-un [::id ::operations] - :opt-un [::page-id ::component-id]) - valid-container-id?)) - -(defmethod change-spec :del-obj [_] - (s/and (s/keys :req-un [::id] - :opt-un [::page-id ::component-id]) - valid-container-id?)) - -(s/def :internal.changes.reg-objects/shapes - (s/coll-of uuid? :kind vector?)) - -(defmethod change-spec :reg-objects [_] - (s/and (s/keys :req-un [:internal.changes.reg-objects/shapes] - :opt-un [::page-id ::component-id]) - valid-container-id?)) - -(defmethod change-spec :mov-objects [_] - (s/and (s/keys :req-un [::parent-id :internal.shape/shapes] - :opt-un [::page-id ::component-id ::index]) - valid-container-id?)) - -(defmethod change-spec :add-page [_] - (s/or :empty (s/keys :req-un [::id ::name]) - :complete (s/keys :req-un [::page]))) - -(defmethod change-spec :mod-page [_] - (s/keys :req-un [::id ::name])) - -(defmethod change-spec :del-page [_] - (s/keys :req-un [::id])) - -(defmethod change-spec :mov-page [_] - (s/keys :req-un [::id ::index])) - -(defmethod change-spec :add-color [_] - (s/keys :req-un [::color])) - -(defmethod change-spec :mod-color [_] - (s/keys :req-un [::color])) - -(defmethod change-spec :del-color [_] - (s/keys :req-un [::id])) - -(s/def :internal.changes.add-recent-color/color ::recent-color) - -(defmethod change-spec :add-recent-color [_] - (s/keys :req-un [:internal.changes.add-recent-color/color])) - -(s/def :internal.changes.media/object ::media-object) - -(defmethod change-spec :add-media [_] - (s/keys :req-un [:internal.changes.media/object])) - -(s/def :internal.changes.media.mod/object ::media-object-update) - -(defmethod change-spec :mod-media [_] - (s/keys :req-un [:internal.changes.media.mod/object])) - -(defmethod change-spec :del-media [_] - (s/keys :req-un [::id])) - -(s/def :internal.changes.add-component/shapes - (s/coll-of ::shape)) - -(defmethod change-spec :add-component [_] - (s/keys :req-un [::id ::name :internal.changes.add-component/shapes] - :opt-un [::path])) - -(defmethod change-spec :mod-component [_] - (s/keys :req-un [::id] - :opt-un [::name :internal.changes.add-component/shapes])) - -(defmethod change-spec :del-component [_] - (s/keys :req-un [::id])) - -(s/def :internal.changes.typography/typography ::typography) - -(defmethod change-spec :add-typography [_] - (s/keys :req-un [:internal.changes.typography/typography])) - -(defmethod change-spec :mod-typography [_] - (s/keys :req-un [:internal.changes.typography/typography])) - -(defmethod change-spec :del-typography [_] - (s/keys :req-un [:internal.typography/id])) - -(s/def ::change (s/multi-spec change-spec :type)) -(s/def ::changes (s/coll-of ::change)) diff --git a/common/src/app/common/spec.cljc b/common/src/app/common/spec.cljc index 61688c426e..2e77b98e9c 100644 --- a/common/src/app/common/spec.cljc +++ b/common/src/app/common/spec.cljc @@ -16,7 +16,6 @@ ;; because of some strange interaction with cljs.spec.alpha and ;; modules splitting. [app.common.exceptions :as ex] - [app.common.geom.point :as gpt] [app.common.uuid :as uuid] [cuerdas.core :as str] [expound.alpha])) @@ -110,7 +109,6 @@ (s/def ::not-empty-string (s/and string? #(not (str/empty? %)))) (s/def ::url string?) (s/def ::fn fn?) -(s/def ::point gpt/point?) (s/def ::id ::uuid) (defn bytes? diff --git a/common/src/app/common/spec/blur.cljc b/common/src/app/common/spec/blur.cljc new file mode 100644 index 0000000000..04b643e896 --- /dev/null +++ b/common/src/app/common/spec/blur.cljc @@ -0,0 +1,19 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.common.spec.blur + (:require + [app.common.spec :as us] + [clojure.spec.alpha :as s])) + +(s/def ::id uuid?) +(s/def ::type #{:layer-blur}) +(s/def ::value ::us/safe-number) +(s/def ::hidden boolean?) + +(s/def ::blur + (s/keys :req-un [::id ::type ::value ::hidden])) + diff --git a/common/src/app/common/spec/change.cljc b/common/src/app/common/spec/change.cljc new file mode 100644 index 0000000000..b38aa3e85f --- /dev/null +++ b/common/src/app/common/spec/change.cljc @@ -0,0 +1,165 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.common.spec.change + (:require + [app.common.spec.color :as color] + [app.common.spec.file :as file] + [app.common.spec.page :as page] + [app.common.spec.shape :as shape] + [app.common.spec.typography :as typg] + [clojure.spec.alpha :as s])) + +(s/def ::index integer?) +(s/def ::id uuid?) +(s/def ::parent-id uuid?) +(s/def ::frame-id uuid?) +(s/def ::page-id uuid?) +(s/def ::component-id uuid?) +(s/def ::name string?) + +(defmulti operation-spec :type) + +(s/def :internal.operations.set/attr keyword?) +(s/def :internal.operations.set/val any?) + +(s/def :internal.operations.set/touched + (s/nilable (s/every keyword? :kind set?))) + +(s/def :internal.operations.set/remote-synced? + (s/nilable boolean?)) + +(defmethod operation-spec :set [_] + (s/keys :req-un [:internal.operations.set/attr + :internal.operations.set/val])) + +(defmethod operation-spec :set-touched [_] + (s/keys :req-un [:internal.operations.set/touched])) + +(defmethod operation-spec :set-remote-synced [_] + (s/keys :req-un [:internal.operations.set/remote-synced?])) + +(defmulti change-spec :type) + +(s/def :internal.changes.set-option/option any?) +(s/def :internal.changes.set-option/value any?) + +(defmethod change-spec :set-option [_] + (s/keys :req-un [:internal.changes.set-option/option + :internal.changes.set-option/value])) + +(s/def :internal.changes.add-obj/obj ::shape/shape) + +(defn- valid-container-id-frame? + [o] + (or (and (contains? o :page-id) + (not (contains? o :component-id)) + (some? (:frame-id o))) + (and (contains? o :component-id) + (not (contains? o :page-id)) + (nil? (:frame-id o))))) + +(defn- valid-container-id? + [o] + (or (and (contains? o :page-id) + (not (contains? o :component-id))) + (and (contains? o :component-id) + (not (contains? o :page-id))))) + +(defmethod change-spec :add-obj [_] + (s/and (s/keys :req-un [::id :internal.changes.add-obj/obj] + :opt-un [::page-id ::component-id ::parent-id ::frame-id]) + valid-container-id-frame?)) + +(s/def ::operation (s/multi-spec operation-spec :type)) +(s/def ::operations (s/coll-of ::operation)) + +(defmethod change-spec :mod-obj [_] + (s/and (s/keys :req-un [::id ::operations] + :opt-un [::page-id ::component-id]) + valid-container-id?)) + +(defmethod change-spec :del-obj [_] + (s/and (s/keys :req-un [::id] + :opt-un [::page-id ::component-id]) + valid-container-id?)) + +(defmethod change-spec :reg-objects [_] + (s/and (s/keys :req-un [::shape/shapes] + :opt-un [::page-id ::component-id]) + valid-container-id?)) + +(defmethod change-spec :mov-objects [_] + (s/and (s/keys :req-un [::parent-id ::shape/shapes] + :opt-un [::page-id ::component-id ::index]) + valid-container-id?)) + +(defmethod change-spec :add-page [_] + (s/or :empty (s/keys :req-un [::id ::name]) + :complete (s/keys :req-un [::page/page]))) + +(defmethod change-spec :mod-page [_] + (s/keys :req-un [::id ::name])) + +(defmethod change-spec :del-page [_] + (s/keys :req-un [::id])) + +(defmethod change-spec :mov-page [_] + (s/keys :req-un [::id ::index])) + +(defmethod change-spec :add-color [_] + (s/keys :req-un [::color/color])) + +(defmethod change-spec :mod-color [_] + (s/keys :req-un [::color/color])) + +(defmethod change-spec :del-color [_] + (s/keys :req-un [::id])) + +(s/def :internal.changes.add-recent-color/color ::color/recent-color) + +(defmethod change-spec :add-recent-color [_] + (s/keys :req-un [:internal.changes.add-recent-color/color])) + +(s/def :internal.changes.media/object ::file/media-object) + +(defmethod change-spec :add-media [_] + (s/keys :req-un [:internal.changes.media/object])) + +(s/def :internal.changes.media.mod/object + (s/and ::file/media-object #(contains? % :id))) + +(defmethod change-spec :mod-media [_] + (s/keys :req-un [:internal.changes.media.mod/object])) + +(defmethod change-spec :del-media [_] + (s/keys :req-un [::id])) + +(s/def :internal.changes.add-component/shapes + (s/coll-of ::shape/shape)) + +(defmethod change-spec :add-component [_] + (s/keys :req-un [::id ::name :internal.changes.add-component/shapes] + :opt-un [::path])) + +(defmethod change-spec :mod-component [_] + (s/keys :req-un [::id] + :opt-un [::name :internal.changes.add-component/shapes])) + +(defmethod change-spec :del-component [_] + (s/keys :req-un [::id])) + +(defmethod change-spec :add-typography [_] + (s/keys :req-un [::typg/typography])) + +(defmethod change-spec :mod-typography [_] + (s/keys :req-un [::typg/typography])) + +(defmethod change-spec :del-typography [_] + (s/keys :req-un [::typg/id])) + +(s/def ::change (s/multi-spec change-spec :type)) +(s/def ::changes (s/coll-of ::change)) diff --git a/common/src/app/common/spec/color.cljc b/common/src/app/common/spec/color.cljc new file mode 100644 index 0000000000..627094a990 --- /dev/null +++ b/common/src/app/common/spec/color.cljc @@ -0,0 +1,75 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.common.spec.color + (:require + [app.common.spec :as us] + [clojure.spec.alpha :as s])) + +;; TODO: waiting clojure 1.11 to rename this all :internal.stuff to a +;; more consistent name. + +;; TODO: maybe define ::color-hex-string with proper hex color spec? + +;; --- GRADIENTS + +(s/def ::id uuid?) + +(s/def :internal.gradient.stop/color string?) +(s/def :internal.gradient.stop/opacity ::us/safe-number) +(s/def :internal.gradient.stop/offset ::us/safe-number) + +(s/def :internal.gradient/type #{:linear :radial}) +(s/def :internal.gradient/start-x ::us/safe-number) +(s/def :internal.gradient/start-y ::us/safe-number) +(s/def :internal.gradient/end-x ::us/safe-number) +(s/def :internal.gradient/end-y ::us/safe-number) +(s/def :internal.gradient/width ::us/safe-number) + +(s/def :internal.gradient/stop + (s/keys :req-un [:internal.gradient.stop/color + :internal.gradient.stop/opacity + :internal.gradient.stop/offset])) + +(s/def :internal.gradient/stops + (s/coll-of :internal.gradient/stop :kind vector?)) + +(s/def ::gradient + (s/keys :req-un [:internal.gradient/type + :internal.gradient/start-x + :internal.gradient/start-y + :internal.gradient/end-x + :internal.gradient/end-y + :internal.gradient/width + :internal.gradient/stops])) + +;;; --- COLORS + +(s/def :internal.color/name string?) +(s/def :internal.color/path (s/nilable string?)) +(s/def :internal.color/value (s/nilable string?)) +(s/def :internal.color/color (s/nilable string?)) +(s/def :internal.color/opacity (s/nilable ::us/safe-number)) +(s/def :internal.color/gradient (s/nilable ::gradient)) + +(s/def ::color + (s/keys :opt-un [::id + :internal.color/name + :internal.color/path + :internal.color/value + :internal.color/color + :internal.color/opacity + :internal.color/gradient])) + +(s/def ::recent-color + (s/keys :opt-un [:internal.color/value + :internal.color/color + :internal.color/opacity + :internal.color/gradient])) + + + + diff --git a/common/src/app/common/spec/export.cljc b/common/src/app/common/spec/export.cljc new file mode 100644 index 0000000000..acfe7b2791 --- /dev/null +++ b/common/src/app/common/spec/export.cljc @@ -0,0 +1,22 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.common.spec.export + (:require + [app.common.spec :as us] + [clojure.spec.alpha :as s])) + + +(s/def ::suffix string?) +(s/def ::scale ::us/safe-number) +(s/def ::type keyword?) + +(s/def ::export + (s/keys :req-un [::type + ::suffix + ::scale])) + + diff --git a/common/src/app/common/spec/file.cljc b/common/src/app/common/spec/file.cljc new file mode 100644 index 0000000000..a1e538ecc2 --- /dev/null +++ b/common/src/app/common/spec/file.cljc @@ -0,0 +1,54 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.common.spec.file + (:require + [app.common.spec :as us] + [app.common.spec.color :as color] + [app.common.spec.page :as page] + [app.common.spec.typography] + [clojure.spec.alpha :as s])) + +(s/def :internal.media-object/name string?) +(s/def :internal.media-object/width ::us/safe-integer) +(s/def :internal.media-object/height ::us/safe-integer) +(s/def :internal.media-object/mtype string?) + +(s/def ::media-object + (s/keys :req-un [::id + ::name + :internal.media-object/width + :internal.media-object/height + :internal.media-object/mtype])) + +(s/def ::colors + (s/map-of uuid? ::color/color)) + +(s/def ::recent-colors + (s/coll-of ::color/recent-color :kind vector?)) + +(s/def ::typographies + (s/map-of uuid? :app.common.spec.typography/typography)) + +(s/def ::pages + (s/coll-of uuid? :kind vector?)) + +(s/def ::media + (s/map-of uuid? ::media-object)) + +(s/def ::pages-index + (s/map-of uuid? ::page/page)) + +(s/def ::components + (s/map-of uuid? ::page/container)) + +(s/def ::data + (s/keys :req-un [::pages-index + ::pages] + :opt-un [::colors + ::recent-colors + ::typographies + ::media])) diff --git a/common/src/app/common/types/interactions.cljc b/common/src/app/common/spec/interactions.cljc similarity index 99% rename from common/src/app/common/types/interactions.cljc rename to common/src/app/common/spec/interactions.cljc index 5903662c34..eb3c2171dc 100644 --- a/common/src/app/common/types/interactions.cljc +++ b/common/src/app/common/spec/interactions.cljc @@ -4,7 +4,7 @@ ;; ;; Copyright (c) UXBOX Labs SL -(ns app.common.types.interactions +(ns app.common.spec.interactions (:require [app.common.data :as d] [app.common.geom.point :as gpt] @@ -100,7 +100,7 @@ :bottom-left :bottom-right :bottom-center}) -(s/def ::overlay-position ::us/point) +(s/def ::overlay-position ::gpt/point) (s/def ::url ::us/string) (s/def ::close-click-outside ::us/boolean) (s/def ::background-overlay ::us/boolean) diff --git a/common/src/app/common/spec/page.cljc b/common/src/app/common/spec/page.cljc new file mode 100644 index 0000000000..9ed545ac43 --- /dev/null +++ b/common/src/app/common/spec/page.cljc @@ -0,0 +1,129 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.common.spec.page + (:require + [app.common.data :as d] + [app.common.spec :as us] + [app.common.spec.shape :as shape] + [clojure.spec.alpha :as s])) + + +;; --- Grid options + +(s/def :internal.grid.color/color string?) +(s/def :internal.grid.color/opacity ::us/safe-number) + +(s/def :internal.grid/size (s/nilable ::us/safe-integer)) +(s/def :internal.grid/item-length (s/nilable ::us/safe-number)) + +(s/def :internal.grid/color (s/keys :req-un [:internal.grid.color/color + :internal.grid.color/opacity])) +(s/def :internal.grid/type #{:stretch :left :center :right}) +(s/def :internal.grid/gutter (s/nilable ::us/safe-integer)) +(s/def :internal.grid/margin (s/nilable ::us/safe-integer)) + +(s/def :internal.grid/square + (s/keys :req-un [:internal.grid/size + :internal.grid/color])) + +(s/def :internal.grid/column + (s/keys :req-un [:internal.grid/color] + :opt-un [:internal.grid/size + :internal.grid/type + :internal.grid/item-length + :internal.grid/margin + :internal.grid/gutter])) + +(s/def :internal.grid/row :internal.grid/column) + +(s/def ::saved-grids + (s/keys :opt-un [:internal.grid/square + :internal.grid/row + :internal.grid/column])) + +;; --- Background options + +(s/def ::background string?) + +;; --- Flow options + +(s/def :internal.flow/id uuid?) +(s/def :internal.flow/name string?) +(s/def :internal.flow/starting-frame uuid?) + +(s/def ::flow + (s/keys :req-un [:internal.flow/id + :internal.flow/name + :internal.flow/starting-frame])) + +(s/def ::flows + (s/coll-of ::flow :kind vector?)) + +;; --- Guides + +(s/def :internal.guides/id uuid?) +(s/def :internal.guides/axis #{:x :y}) +(s/def :internal.guides/position ::us/safe-number) +(s/def :internal.guides/frame-id (s/nilable uuid?)) + +(s/def ::guide + (s/keys :req-un [:internal.guides/id + :internal.guides/axis + :internal.guides/position] + :opt-un [:internal.guides/frame-id])) + +(s/def ::guides + (s/map-of uuid? ::guide)) + +;; --- Page Options + +(s/def ::options + (s/keys :opt-un [::background + ::saved-grids + ::flows + ::guides])) + +;; --- Page + +(s/def ::id uuid?) +(s/def ::name string?) +(s/def ::objects (s/map-of uuid? ::shape/shape)) + +(s/def ::page + (s/keys :req-un [::id ::name ::objects ::options])) + +(s/def ::type #{:page :component}) +(s/def ::path (s/nilable string?)) +(s/def ::container + (s/keys :req-un [::id ::name ::objects] + :opt-un [::type ::path])) + +;; --- Helpers for flow + +(defn rename-flow + [flow name] + (assoc flow :name name)) + +(defn add-flow + [flows flow] + (conj (or flows []) flow)) + +(defn remove-flow + [flows flow-id] + (d/removev #(= (:id %) flow-id) flows)) + +(defn update-flow + [flows flow-id update-fn] + (let [index (d/index-of-pred flows #(= (:id %) flow-id))] + (update flows index update-fn))) + +(defn get-frame-flow + [flows frame-id] + (d/seek #(= (:starting-frame %) frame-id) flows)) + + + diff --git a/common/src/app/common/types/radius.cljc b/common/src/app/common/spec/radius.cljc similarity index 98% rename from common/src/app/common/types/radius.cljc rename to common/src/app/common/spec/radius.cljc index 308de6c2e3..91f0eb78b6 100644 --- a/common/src/app/common/types/radius.cljc +++ b/common/src/app/common/spec/radius.cljc @@ -4,7 +4,7 @@ ;; ;; Copyright (c) UXBOX Labs SL -(ns app.common.types.radius +(ns app.common.spec.radius (:require [app.common.spec :as us] [clojure.spec.alpha :as s])) diff --git a/common/src/app/common/spec/shadow.cljc b/common/src/app/common/spec/shadow.cljc new file mode 100644 index 0000000000..b7c61a7ee9 --- /dev/null +++ b/common/src/app/common/spec/shadow.cljc @@ -0,0 +1,37 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.common.spec.shadow + (:require + [app.common.spec :as us] + [app.common.spec.color :as color] + [clojure.spec.alpha :as s])) + + +;;; SHADOW EFFECT + +(s/def ::id uuid?) +(s/def ::style #{:drop-shadow :inner-shadow}) +(s/def ::color ::color/color) +(s/def ::offset-x ::us/safe-number) +(s/def ::offset-y ::us/safe-number) +(s/def ::blur ::us/safe-number) +(s/def ::spread ::us/safe-number) +(s/def ::hidden boolean?) + +(s/def ::shadow-props + (s/keys :req-un [:internal.shadow/id + :internal.shadow/style + :internal.shadow/color + :internal.shadow/offset-x + :internal.shadow/offset-y + :internal.shadow/blur + :internal.shadow/spread + :internal.shadow/hidden])) + +(s/def ::shadow + (s/coll-of ::shadow-props :kind vector?)) + diff --git a/common/src/app/common/spec/shape.cljc b/common/src/app/common/spec/shape.cljc new file mode 100644 index 0000000000..87ac864142 --- /dev/null +++ b/common/src/app/common/spec/shape.cljc @@ -0,0 +1,241 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.common.spec.shape + (:require + [app.common.geom.matrix :as gmt] + [app.common.geom.point :as gpt] + [app.common.spec :as us] + [app.common.spec.blur :as blur] + [app.common.spec.color :as color] + [app.common.spec.export :as export] + [app.common.spec.interactions :as cti] + [app.common.spec.radius :as radius] + [app.common.spec.shadow :as shadow] + [clojure.set :as set] + [clojure.spec.alpha :as s])) + +;; --- Specs + +(s/def ::frame-id uuid?) +(s/def ::id uuid?) +(s/def ::name string?) +(s/def ::path (s/nilable string?)) +(s/def ::page-id uuid?) +(s/def ::parent-id uuid?) +(s/def ::string string?) +(s/def ::type keyword?) +(s/def ::uuid uuid?) + +(s/def ::component-id uuid?) +(s/def ::component-file uuid?) +(s/def ::component-root? boolean?) +(s/def ::shape-ref uuid?) + +;; Size constraints + +(s/def ::constraints-h #{:left :right :leftright :center :scale}) +(s/def ::constraints-v #{:top :bottom :topbottom :center :scale}) +(s/def ::fixed-scroll boolean?) + +;; Page Data related +(s/def ::blocked boolean?) +(s/def ::collapsed boolean?) + +(s/def ::fill-color string?) +(s/def ::fill-opacity ::us/safe-number) +(s/def ::fill-color-gradient (s/nilable ::color/gradient)) +(s/def ::fill-color-ref-file (s/nilable uuid?)) +(s/def ::fill-color-ref-id (s/nilable uuid?)) + +(s/def ::hide-fill-on-export boolean?) + +(s/def ::masked-group? boolean?) +(s/def ::font-family string?) +(s/def ::font-size ::us/safe-integer) +(s/def ::font-style string?) +(s/def ::font-weight string?) +(s/def ::hidden boolean?) +(s/def ::letter-spacing ::us/safe-number) +(s/def ::line-height ::us/safe-number) +(s/def ::locked boolean?) +(s/def ::page-id uuid?) +(s/def ::proportion ::us/safe-number) +(s/def ::proportion-lock boolean?) +(s/def ::stroke-color string?) +(s/def ::stroke-color-gradient (s/nilable ::color/gradient)) +(s/def ::stroke-color-ref-file (s/nilable uuid?)) +(s/def ::stroke-color-ref-id (s/nilable uuid?)) +(s/def ::stroke-opacity ::us/safe-number) +(s/def ::stroke-style #{:solid :dotted :dashed :mixed :none :svg}) + +(def stroke-caps-line #{:round :square}) +(def stroke-caps-marker #{:line-arrow :triangle-arrow :square-marker :circle-marker :diamond-marker}) +(def stroke-caps (set/union stroke-caps-line stroke-caps-marker)) + +(s/def ::stroke-cap-start stroke-caps) +(s/def ::stroke-cap-end stroke-caps) + +(s/def ::stroke-width ::us/safe-number) +(s/def ::stroke-alignment #{:center :inner :outer}) +(s/def ::text-align #{"left" "right" "center" "justify"}) +(s/def ::x ::us/safe-number) +(s/def ::y ::us/safe-number) +(s/def ::cx ::us/safe-number) +(s/def ::cy ::us/safe-number) +(s/def ::width ::us/safe-number) +(s/def ::height ::us/safe-number) +(s/def ::index integer?) + +(s/def ::x1 ::us/safe-number) +(s/def ::y1 ::us/safe-number) +(s/def ::x2 ::us/safe-number) +(s/def ::y2 ::us/safe-number) + +(s/def ::selrect + (s/keys :req-un [::x ::y ::x1 ::y1 ::x2 ::y2 ::width ::height])) + +(s/def ::exports + (s/coll-of ::export/export :kind vector?)) + +(s/def ::points + (s/every ::gpt/point :kind vector?)) + +(s/def ::shapes + (s/every uuid? :kind vector?)) + +(s/def ::transform ::gmt/matrix) +(s/def ::transform-inverse ::gmt/matrix) +(s/def ::opacity ::us/safe-number) +(s/def ::blend-mode + #{:normal + :darken + :multiply + :color-burn + :lighten + :screen + :color-dodge + :overlay + :soft-light + :hard-light + :difference + :exclusion + :hue + :saturation + :color + :luminosity}) + +(s/def ::shape-attrs + (s/keys :opt-un [::id + ::type + ::name + ::component-id + ::component-file + ::component-root? + ::shape-ref + ::selrect + ::points + ::blocked + ::collapsed + ::fill-color + ::fill-opacity + ::fill-color-gradient + ::fill-color-ref-file + ::fill-color-ref-id + ::font-family + ::font-size + ::font-style + ::font-weight + ::hidden + ::letter-spacing + ::line-height + ::locked + ::proportion + ::proportion-lock + ::constraints-h + ::constraints-v + ::fixed-scroll + ::radius/rx + ::radius/ry + ::radius/r1 + ::radius/r2 + ::radius/r3 + ::radius/r4 + ::x + ::y + ::exports + ::shapes + ::stroke-color + ::stroke-color-ref-file + ::stroke-color-ref-id + ::stroke-opacity + ::stroke-style + ::stroke-width + ::stroke-alignment + ::stroke-cap-start + ::stroke-cap-end + ::text-align + ::transform + ::transform-inverse + ::width + ::height + ::masked-group? + ::cti/interactions + ::shadow/shadow + ::blur/blur + ::opacity + ::blend-mode])) + +(s/def :internal.shape.text/type #{"root" "paragraph-set" "paragraph"}) +(s/def :internal.shape.text/children + (s/coll-of :internal.shape.text/content + :kind vector? + :min-count 1)) + +(s/def :internal.shape.text/text string?) +(s/def :internal.shape.text/key string?) + +(s/def :internal.shape.text/content + (s/nilable + (s/or :text-container + (s/keys :req-un [:internal.shape.text/type + :internal.shape.text/children] + :opt-un [:internal.shape.text/key]) + :text-content + (s/keys :req-un [:internal.shape.text/text])))) + +(s/def :internal.shape.path/command keyword?) +(s/def :internal.shape.path/params + (s/nilable (s/map-of keyword? any?))) + +(s/def :internal.shape.path/command-item + (s/keys :req-un [:internal.shape.path/command] + :opt-un [:internal.shape.path/params])) + +(s/def :internal.shape.path/content + (s/coll-of :internal.shape.path/command-item :kind vector?)) + +(defmulti shape-spec :type) + +(defmethod shape-spec :default [_] + (s/spec ::shape-attrs)) + +(defmethod shape-spec :text [_] + (s/and ::shape-attrs + (s/keys :opt-un [:internal.shape.text/content]))) + +(defmethod shape-spec :path [_] + (s/and ::shape-attrs + (s/keys :opt-un [:internal.shape.path/content]))) + +(defmethod shape-spec :frame [_] + (s/and ::shape-attrs + (s/keys :opt-un [::hide-fill-on-export]))) + +(s/def ::shape + (s/and (s/multi-spec shape-spec :type) + #(contains? % :type) + #(contains? % :name))) diff --git a/common/src/app/common/spec/typography.cljc b/common/src/app/common/spec/typography.cljc new file mode 100644 index 0000000000..51c54a5171 --- /dev/null +++ b/common/src/app/common/spec/typography.cljc @@ -0,0 +1,38 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.common.spec.typography + (:require + [clojure.spec.alpha :as s])) + +(s/def ::id uuid?) +(s/def ::name string?) +(s/def ::path (s/nilable string?)) +(s/def ::font-id string?) +(s/def ::font-family string?) +(s/def ::font-variant-id string?) +(s/def ::font-size string?) +(s/def ::font-weight string?) +(s/def ::font-style string?) +(s/def ::line-height string?) +(s/def ::letter-spacing string?) +(s/def ::text-transform string?) + +(s/def ::typography + (s/keys :req-un [::id + ::name + ::font-id + ::font-family + ::font-variant-id + ::font-size + ::font-weight + ::font-style + ::line-height + ::letter-spacing + ::text-transform] + :opt-un [::path])) + + diff --git a/common/src/app/common/types/page_options.cljc b/common/src/app/common/types/page_options.cljc deleted file mode 100644 index 687e989851..0000000000 --- a/common/src/app/common/types/page_options.cljc +++ /dev/null @@ -1,112 +0,0 @@ -;; This Source Code Form is subject to the terms of the Mozilla Public -;; License, v. 2.0. If a copy of the MPL was not distributed with this -;; file, You can obtain one at http://mozilla.org/MPL/2.0/. -;; -;; Copyright (c) UXBOX Labs SL - -(ns app.common.types.page-options - (:require - [app.common.data :as d] - [app.common.spec :as us] - [clojure.spec.alpha :as s])) - -;; --- Grid options - -(s/def :artboard-grid.color/color ::us/string) -(s/def :artboard-grid.color/opacity ::us/safe-number) - -(s/def :artboard-grid/size (s/nilable ::us/safe-integer)) -(s/def :artboard-grid/item-length (s/nilable ::us/safe-number)) - -(s/def :artboard-grid/color (s/keys :req-un [:artboard-grid.color/color - :artboard-grid.color/opacity])) -(s/def :artboard-grid/type #{:stretch :left :center :right}) -(s/def :artboard-grid/gutter (s/nilable ::us/safe-integer)) -(s/def :artboard-grid/margin (s/nilable ::us/safe-integer)) - -(s/def :artboard-grid/square - (s/keys :req-un [:artboard-grid/size - :artboard-grid/color])) - -(s/def :artboard-grid/column - (s/keys :req-un [:artboard-grid/color] - :opt-un [:artboard-grid/size - :artboard-grid/type - :artboard-grid/item-length - :artboard-grid/margin - :artboard-grid/gutter])) - -(s/def :artboard-grid/row :artboard-grid/column) - -(s/def ::saved-grids - (s/keys :opt-un [:artboard-grid/square - :artboard-grid/row - :artboard-grid/column])) - -;; --- Background options - -(s/def ::background string?) - -;; --- Flow options - -(s/def :interactions-flow/id ::us/uuid) -(s/def :interactions-flow/name ::us/string) -(s/def :interactions-flow/starting-frame ::us/uuid) - -(s/def ::flow - (s/keys :req-un [:interactions-flow/id - :interactions-flow/name - :interactions-flow/starting-frame])) - -(s/def ::flows - (s/coll-of ::flow :kind vector?)) - -;; --- Guides - -(s/def :guides/id ::us/uuid) -(s/def :guides/axis #{:x :y}) -(s/def :guides/position ::us/safe-number) -(s/def :guides/frame-id (s/nilable ::us/uuid)) - -(s/def ::guide - (s/keys :req-un [:guides/id - :guides/axis - :guides/position] - :opt-un [:guides/frame-id])) - -(s/def ::guides - (s/map-of uuid? ::guide)) - -;; --- Options - -(s/def ::options - (s/keys :opt-un [::background - ::saved-grids - ::flows - ::guides])) - -;; --- Helpers for flow - -(defn rename-flow - [flow name] - (assoc flow :name name)) - -;; --- Helpers for flows - -(defn add-flow - [flows flow] - (conj (or flows []) flow)) - -(defn remove-flow - [flows flow-id] - (d/removev #(= (:id %) flow-id) flows)) - -(defn update-flow - [flows flow-id update-fn] - (let [index (d/index-of-pred flows #(= (:id %) flow-id))] - (update flows index update-fn))) - -(defn get-frame-flow - [flows frame-id] - (d/seek #(= (:starting-frame %) frame-id) flows)) - diff --git a/common/test/app/common/types_interactions_test.cljc b/common/test/app/common/spec_interactions_test.cljc similarity index 69% rename from common/test/app/common/types_interactions_test.cljc rename to common/test/app/common/spec_interactions_test.cljc index f5df8c448d..d874268955 100644 --- a/common/test/app/common/types_interactions_test.cljc +++ b/common/test/app/common/spec_interactions_test.cljc @@ -4,68 +4,68 @@ ;; ;; Copyright (c) UXBOX Labs SL -(ns app.common.types-interactions-test +(ns app.common.spec-interactions-test (:require [clojure.test :as t] [clojure.pprint :refer [pprint]] [app.common.exceptions :as ex] [app.common.pages.init :as cpi] - [app.common.types.interactions :as cti] + [app.common.spec.interactions :as csi] [app.common.uuid :as uuid] [app.common.geom.point :as gpt])) (t/deftest set-event-type - (let [interaction cti/default-interaction + (let [interaction csi/default-interaction shape (cpi/make-minimal-shape :rect) frame (cpi/make-minimal-shape :frame)] (t/testing "Set event type unchanged" (let [new-interaction - (cti/set-event-type interaction :click shape)] + (csi/set-event-type interaction :click shape)] (t/is (= :click (:event-type new-interaction))))) (t/testing "Set event type changed" (let [new-interaction - (cti/set-event-type interaction :mouse-press shape)] + (csi/set-event-type interaction :mouse-press shape)] (t/is (= :mouse-press (:event-type new-interaction))))) (t/testing "Set after delay on non-frame" (let [result (ex/try - (cti/set-event-type interaction :after-delay shape))] + (csi/set-event-type interaction :after-delay shape))] (t/is (ex/exception? result)))) (t/testing "Set after delay on frame" (let [new-interaction - (cti/set-event-type interaction :after-delay frame)] + (csi/set-event-type interaction :after-delay frame)] (t/is (= :after-delay (:event-type new-interaction))) (t/is (= 600 (:delay new-interaction))))) (t/testing "Set after delay with previous data" (let [interaction (assoc interaction :delay 300) new-interaction - (cti/set-event-type interaction :after-delay frame)] + (csi/set-event-type interaction :after-delay frame)] (t/is (= :after-delay (:event-type new-interaction))) (t/is (= 300 (:delay new-interaction))))))) (t/deftest set-action-type - (let [interaction cti/default-interaction] + (let [interaction csi/default-interaction] (t/testing "Set action type unchanged" (let [new-interaction - (cti/set-action-type interaction :navigate)] + (csi/set-action-type interaction :navigate)] (t/is (= :navigate (:action-type new-interaction))))) (t/testing "Set action type changed" (let [new-interaction - (cti/set-action-type interaction :prev-screen)] + (csi/set-action-type interaction :prev-screen)] (t/is (= :prev-screen (:action-type new-interaction))))) (t/testing "Set action type navigate" (let [interaction {:event-type :click :action-type :prev-screen} new-interaction - (cti/set-action-type interaction :navigate)] + (csi/set-action-type interaction :navigate)] (t/is (= :navigate (:action-type new-interaction))) (t/is (nil? (:destination new-interaction))) (t/is (= false (:preserve-scroll new-interaction))))) @@ -77,14 +77,14 @@ :destination destination :preserve-scroll true} new-interaction - (cti/set-action-type interaction :navigate)] + (csi/set-action-type interaction :navigate)] (t/is (= :navigate (:action-type new-interaction))) (t/is (= destination (:destination new-interaction))) (t/is (= true (:preserve-scroll new-interaction))))) (t/testing "Set action type open-overlay" (let [new-interaction - (cti/set-action-type interaction :open-overlay)] + (csi/set-action-type interaction :open-overlay)] (t/is (= :open-overlay (:action-type new-interaction))) (t/is (= :center (:overlay-pos-type new-interaction))) (t/is (= (gpt/point 0 0) (:overlay-position new-interaction))))) @@ -93,14 +93,14 @@ (let [interaction (assoc interaction :overlay-pos-type :top-left :overlay-position (gpt/point 100 200)) new-interaction - (cti/set-action-type interaction :open-overlay)] + (csi/set-action-type interaction :open-overlay)] (t/is (= :open-overlay (:action-type new-interaction))) (t/is (= :top-left (:overlay-pos-type new-interaction))) (t/is (= (gpt/point 100 200) (:overlay-position new-interaction))))) (t/testing "Set action type toggle-overlay" (let [new-interaction - (cti/set-action-type interaction :toggle-overlay)] + (csi/set-action-type interaction :toggle-overlay)] (t/is (= :toggle-overlay (:action-type new-interaction))) (t/is (= :center (:overlay-pos-type new-interaction))) (t/is (= (gpt/point 0 0) (:overlay-position new-interaction))))) @@ -109,14 +109,14 @@ (let [interaction (assoc interaction :overlay-pos-type :top-left :overlay-position (gpt/point 100 200)) new-interaction - (cti/set-action-type interaction :toggle-overlay)] + (csi/set-action-type interaction :toggle-overlay)] (t/is (= :toggle-overlay (:action-type new-interaction))) (t/is (= :top-left (:overlay-pos-type new-interaction))) (t/is (= (gpt/point 100 200) (:overlay-position new-interaction))))) (t/testing "Set action type close-overlay" (let [new-interaction - (cti/set-action-type interaction :close-overlay)] + (csi/set-action-type interaction :close-overlay)] (t/is (= :close-overlay (:action-type new-interaction))) (t/is (nil? (:destination new-interaction))))) @@ -124,89 +124,89 @@ (let [destination (uuid/next) interaction (assoc interaction :destination destination) new-interaction - (cti/set-action-type interaction :close-overlay)] + (csi/set-action-type interaction :close-overlay)] (t/is (= :close-overlay (:action-type new-interaction))) (t/is (= destination (:destination new-interaction))))) (t/testing "Set action type prev-screen" (let [new-interaction - (cti/set-action-type interaction :prev-screen)] + (csi/set-action-type interaction :prev-screen)] (t/is (= :prev-screen (:action-type new-interaction))))) (t/testing "Set action type open-url" (let [new-interaction - (cti/set-action-type interaction :open-url)] + (csi/set-action-type interaction :open-url)] (t/is (= :open-url (:action-type new-interaction))) (t/is (= "" (:url new-interaction))))) (t/testing "Set action type open-url with previous data" (let [interaction (assoc interaction :url "https://example.com") new-interaction - (cti/set-action-type interaction :open-url)] + (csi/set-action-type interaction :open-url)] (t/is (= :open-url (:action-type new-interaction))) (t/is (= "https://example.com" (:url new-interaction))))))) (t/deftest option-delay (let [frame (cpi/make-minimal-shape :frame) - i1 cti/default-interaction - i2 (cti/set-event-type i1 :after-delay frame)] + i1 csi/default-interaction + i2 (csi/set-event-type i1 :after-delay frame)] (t/testing "Has delay" - (t/is (not (cti/has-delay i1))) - (t/is (cti/has-delay i2))) + (t/is (not (csi/has-delay i1))) + (t/is (csi/has-delay i2))) (t/testing "Set delay" - (let [new-interaction (cti/set-delay i2 1000)] + (let [new-interaction (csi/set-delay i2 1000)] (t/is (= 1000 (:delay new-interaction))))))) (t/deftest option-destination (let [destination (uuid/next) - i1 cti/default-interaction - i2 (cti/set-action-type i1 :prev-screen) - i3 (cti/set-action-type i1 :open-overlay)] + i1 csi/default-interaction + i2 (csi/set-action-type i1 :prev-screen) + i3 (csi/set-action-type i1 :open-overlay)] (t/testing "Has destination" - (t/is (cti/has-destination i1)) - (t/is (not (cti/has-destination i2)))) + (t/is (csi/has-destination i1)) + (t/is (not (csi/has-destination i2)))) (t/testing "Set destination" - (let [new-interaction (cti/set-destination i1 destination)] + (let [new-interaction (csi/set-destination i1 destination)] (t/is (= destination (:destination new-interaction))) (t/is (nil? (:overlay-pos-type new-interaction))) (t/is (nil? (:overlay-position new-interaction))))) (t/testing "Set destination of overlay" - (let [new-interaction (cti/set-destination i3 destination)] + (let [new-interaction (csi/set-destination i3 destination)] (t/is (= destination (:destination new-interaction))) (t/is (= :center (:overlay-pos-type new-interaction))) (t/is (= (gpt/point 0 0) (:overlay-position new-interaction))))))) (t/deftest option-preserve-scroll - (let [i1 cti/default-interaction - i2 (cti/set-action-type i1 :prev-screen)] + (let [i1 csi/default-interaction + i2 (csi/set-action-type i1 :prev-screen)] (t/testing "Has preserve-scroll" - (t/is (cti/has-preserve-scroll i1)) - (t/is (not (cti/has-preserve-scroll i2)))) + (t/is (csi/has-preserve-scroll i1)) + (t/is (not (csi/has-preserve-scroll i2)))) (t/testing "Set preserve-scroll" - (let [new-interaction (cti/set-preserve-scroll i1 true)] + (let [new-interaction (csi/set-preserve-scroll i1 true)] (t/is (= true (:preserve-scroll new-interaction))))))) (t/deftest option-url - (let [i1 cti/default-interaction - i2 (cti/set-action-type i1 :open-url)] + (let [i1 csi/default-interaction + i2 (csi/set-action-type i1 :open-url)] (t/testing "Has url" - (t/is (not (cti/has-url i1))) - (t/is (cti/has-url i2))) + (t/is (not (csi/has-url i1))) + (t/is (csi/has-url i2))) (t/testing "Set url" - (let [new-interaction (cti/set-url i2 "https://example.com")] + (let [new-interaction (csi/set-url i2 "https://example.com")] (t/is (= "https://example.com" (:url new-interaction))))))) @@ -220,35 +220,35 @@ objects {(:id base-frame) base-frame (:id overlay-frame) overlay-frame} - i1 cti/default-interaction - i2 (cti/set-action-type i1 :open-overlay) + i1 csi/default-interaction + i2 (csi/set-action-type i1 :open-overlay) i3 (-> i1 - (cti/set-action-type :open-overlay) - (cti/set-destination (:id overlay-frame)))] + (csi/set-action-type :open-overlay) + (csi/set-destination (:id overlay-frame)))] (t/testing "Has overlay options" - (t/is (not (cti/has-overlay-opts i1))) - (t/is (cti/has-overlay-opts i2))) + (t/is (not (csi/has-overlay-opts i1))) + (t/is (csi/has-overlay-opts i2))) (t/testing "Set overlay-pos-type without destination" - (let [new-interaction (cti/set-overlay-pos-type i2 :top-right base-frame objects)] + (let [new-interaction (csi/set-overlay-pos-type i2 :top-right base-frame objects)] (t/is (= :top-right (:overlay-pos-type new-interaction))) (t/is (= (gpt/point 0 0) (:overlay-position new-interaction))))) (t/testing "Set overlay-pos-type with destination and auto" - (let [new-interaction (cti/set-overlay-pos-type i3 :bottom-right base-frame objects)] + (let [new-interaction (csi/set-overlay-pos-type i3 :bottom-right base-frame objects)] (t/is (= :bottom-right (:overlay-pos-type new-interaction))) (t/is (= (gpt/point 0 0) (:overlay-position new-interaction))))) (t/testing "Set overlay-pos-type with destination and manual" - (let [new-interaction (cti/set-overlay-pos-type i3 :manual base-frame objects)] + (let [new-interaction (csi/set-overlay-pos-type i3 :manual base-frame objects)] (t/is (= :manual (:overlay-pos-type new-interaction))) (t/is (= (gpt/point 35 40) (:overlay-position new-interaction))))) (t/testing "Toggle overlay-pos-type" - (let [new-interaction (cti/toggle-overlay-pos-type i3 :center base-frame objects) - new-interaction-2 (cti/toggle-overlay-pos-type new-interaction :center base-frame objects) - new-interaction-3 (cti/toggle-overlay-pos-type new-interaction-2 :top-right base-frame objects)] + (let [new-interaction (csi/toggle-overlay-pos-type i3 :center base-frame objects) + new-interaction-2 (csi/toggle-overlay-pos-type new-interaction :center base-frame objects) + new-interaction-3 (csi/toggle-overlay-pos-type new-interaction-2 :top-right base-frame objects)] (t/is (= :manual (:overlay-pos-type new-interaction))) (t/is (= (gpt/point 35 40) (:overlay-position new-interaction))) (t/is (= :center (:overlay-pos-type new-interaction-2))) @@ -257,73 +257,73 @@ (t/is (= (gpt/point 0 0) (:overlay-position new-interaction-3))))) (t/testing "Set overlay-position" - (let [new-interaction (cti/set-overlay-position i3 (gpt/point 50 60))] + (let [new-interaction (csi/set-overlay-position i3 (gpt/point 50 60))] (t/is (= :manual (:overlay-pos-type new-interaction))) (t/is (= (gpt/point 50 60) (:overlay-position new-interaction))))) (t/testing "Set close-click-outside" - (let [new-interaction (cti/set-close-click-outside i3 true)] + (let [new-interaction (csi/set-close-click-outside i3 true)] (t/is (not (:close-click-outside i3))) (t/is (:close-click-outside new-interaction)))) (t/testing "Set background-overlay" - (let [new-interaction (cti/set-background-overlay i3 true)] + (let [new-interaction (csi/set-background-overlay i3 true)] (t/is (not (:background-overlay i3))) (t/is (:background-overlay new-interaction)))))) (t/deftest animation-checks - (let [i1 cti/default-interaction - i2 (cti/set-action-type i1 :open-overlay) - i3 (cti/set-action-type i1 :toggle-overlay) - i4 (cti/set-action-type i1 :close-overlay) - i5 (cti/set-action-type i1 :prev-screen) - i6 (cti/set-action-type i1 :open-url)] + (let [i1 csi/default-interaction + i2 (csi/set-action-type i1 :open-overlay) + i3 (csi/set-action-type i1 :toggle-overlay) + i4 (csi/set-action-type i1 :close-overlay) + i5 (csi/set-action-type i1 :prev-screen) + i6 (csi/set-action-type i1 :open-url)] (t/testing "Has animation?" - (t/is (cti/has-animation? i1)) - (t/is (cti/has-animation? i2)) - (t/is (cti/has-animation? i3)) - (t/is (cti/has-animation? i4)) - (t/is (not (cti/has-animation? i5))) - (t/is (not (cti/has-animation? i6)))) + (t/is (csi/has-animation? i1)) + (t/is (csi/has-animation? i2)) + (t/is (csi/has-animation? i3)) + (t/is (csi/has-animation? i4)) + (t/is (not (csi/has-animation? i5))) + (t/is (not (csi/has-animation? i6)))) (t/testing "Valid push?" - (t/is (cti/allow-push? (:action-type i1))) - (t/is (not (cti/allow-push? (:action-type i2)))) - (t/is (not (cti/allow-push? (:action-type i3)))) - (t/is (not (cti/allow-push? (:action-type i4)))) - (t/is (not (cti/allow-push? (:action-type i5)))) - (t/is (not (cti/allow-push? (:action-type i6))))))) + (t/is (csi/allow-push? (:action-type i1))) + (t/is (not (csi/allow-push? (:action-type i2)))) + (t/is (not (csi/allow-push? (:action-type i3)))) + (t/is (not (csi/allow-push? (:action-type i4)))) + (t/is (not (csi/allow-push? (:action-type i5)))) + (t/is (not (csi/allow-push? (:action-type i6))))))) (t/deftest set-animation-type - (let [i1 cti/default-interaction - i2 (cti/set-animation-type i1 :dissolve)] + (let [i1 csi/default-interaction + i2 (csi/set-animation-type i1 :dissolve)] (t/testing "Set animation type nil" (let [new-interaction - (cti/set-animation-type i1 nil)] + (csi/set-animation-type i1 nil)] (t/is (nil? (-> new-interaction :animation :animation-type))))) (t/testing "Set animation type unchanged" (let [new-interaction - (cti/set-animation-type i2 :dissolve)] + (csi/set-animation-type i2 :dissolve)] (t/is (= :dissolve (-> new-interaction :animation :animation-type))))) (t/testing "Set animation type changed" (let [new-interaction - (cti/set-animation-type i2 :slide)] + (csi/set-animation-type i2 :slide)] (t/is (= :slide (-> new-interaction :animation :animation-type))))) (t/testing "Set animation type reset" (let [new-interaction - (cti/set-animation-type i2 nil)] + (csi/set-animation-type i2 nil)] (t/is (nil? (-> new-interaction :animation))))) (t/testing "Set animation type dissolve" (let [new-interaction - (cti/set-animation-type i1 :dissolve)] + (csi/set-animation-type i1 :dissolve)] (t/is (= :dissolve (-> new-interaction :animation :animation-type))) (t/is (= 300 (-> new-interaction :animation :duration))) (t/is (= :linear (-> new-interaction :animation :easing))))) @@ -336,14 +336,14 @@ :direction :left :offset-effect true}) new-interaction - (cti/set-animation-type interaction :dissolve)] + (csi/set-animation-type interaction :dissolve)] (t/is (= :dissolve (-> new-interaction :animation :animation-type))) (t/is (= 1000 (-> new-interaction :animation :duration))) (t/is (= :ease-out (-> new-interaction :animation :easing))))) (t/testing "Set animation type slide" (let [new-interaction - (cti/set-animation-type i1 :slide)] + (csi/set-animation-type i1 :slide)] (t/is (= :slide (-> new-interaction :animation :animation-type))) (t/is (= 300 (-> new-interaction :animation :duration))) (t/is (= :linear (-> new-interaction :animation :easing))) @@ -359,7 +359,7 @@ :direction :left :offset-effect true}) new-interaction - (cti/set-animation-type interaction :slide)] + (csi/set-animation-type interaction :slide)] (t/is (= :slide (-> new-interaction :animation :animation-type))) (t/is (= 1000 (-> new-interaction :animation :duration))) (t/is (= :ease-out (-> new-interaction :animation :easing))) @@ -369,7 +369,7 @@ (t/testing "Set animation type push" (let [new-interaction - (cti/set-animation-type i1 :push)] + (csi/set-animation-type i1 :push)] (t/is (= :push (-> new-interaction :animation :animation-type))) (t/is (= 300 (-> new-interaction :animation :duration))) (t/is (= :linear (-> new-interaction :animation :easing))) @@ -383,7 +383,7 @@ :direction :left :offset-effect true}) new-interaction - (cti/set-animation-type interaction :push)] + (csi/set-animation-type interaction :push)] (t/is (= :push (-> new-interaction :animation :animation-type))) (t/is (= 1000 (-> new-interaction :animation :duration))) (t/is (= :ease-out (-> new-interaction :animation :easing))) @@ -391,9 +391,9 @@ (t/deftest allowed-animation - (let [i1 (cti/set-action-type cti/default-interaction :open-overlay) - i2 (cti/set-action-type cti/default-interaction :close-overlay) - i3 (cti/set-action-type cti/default-interaction :toggle-overlay)] + (let [i1 (csi/set-action-type csi/default-interaction :open-overlay) + i2 (csi/set-action-type csi/default-interaction :close-overlay) + i3 (csi/set-action-type csi/default-interaction :toggle-overlay)] (t/testing "Cannot use animation push for an overlay action" (let [bad-interaction-1 (assoc i1 :animation {:animation-type :push @@ -408,72 +408,72 @@ :duration 1000 :easing :ease-out :direction :left})] - (t/is (not (cti/allowed-animation? (:action-type bad-interaction-1) + (t/is (not (csi/allowed-animation? (:action-type bad-interaction-1) (-> bad-interaction-1 :animation :animation-type)))) - (t/is (not (cti/allowed-animation? (:action-type bad-interaction-2) + (t/is (not (csi/allowed-animation? (:action-type bad-interaction-2) (-> bad-interaction-1 :animation :animation-type)))) - (t/is (not (cti/allowed-animation? (:action-type bad-interaction-3) + (t/is (not (csi/allowed-animation? (:action-type bad-interaction-3) (-> bad-interaction-1 :animation :animation-type)))))) (t/testing "Remove animation if moving to an forbidden state" - (let [interaction (cti/set-animation-type cti/default-interaction :push) - new-interaction (cti/set-action-type interaction :open-overlay)] + (let [interaction (csi/set-animation-type csi/default-interaction :push) + new-interaction (csi/set-action-type interaction :open-overlay)] (t/is (nil? (:animation new-interaction))))))) (t/deftest option-duration - (let [i1 cti/default-interaction - i2 (cti/set-animation-type cti/default-interaction :dissolve)] + (let [i1 csi/default-interaction + i2 (csi/set-animation-type csi/default-interaction :dissolve)] (t/testing "Has duration?" - (t/is (not (cti/has-duration? i1))) - (t/is (cti/has-duration? i2))) + (t/is (not (csi/has-duration? i1))) + (t/is (csi/has-duration? i2))) (t/testing "Set duration" - (let [new-interaction (cti/set-duration i2 1000)] + (let [new-interaction (csi/set-duration i2 1000)] (t/is (= 1000 (-> new-interaction :animation :duration))))))) (t/deftest option-easing - (let [i1 cti/default-interaction - i2 (cti/set-animation-type cti/default-interaction :dissolve)] + (let [i1 csi/default-interaction + i2 (csi/set-animation-type csi/default-interaction :dissolve)] (t/testing "Has easing?" - (t/is (not (cti/has-easing? i1))) - (t/is (cti/has-easing? i2))) + (t/is (not (csi/has-easing? i1))) + (t/is (csi/has-easing? i2))) (t/testing "Set easing" - (let [new-interaction (cti/set-easing i2 :ease-in)] + (let [new-interaction (csi/set-easing i2 :ease-in)] (t/is (= :ease-in (-> new-interaction :animation :easing))))))) (t/deftest option-way - (let [i1 cti/default-interaction - i2 (cti/set-animation-type cti/default-interaction :slide) - i3 (cti/set-action-type i2 :open-overlay)] + (let [i1 csi/default-interaction + i2 (csi/set-animation-type csi/default-interaction :slide) + i3 (csi/set-action-type i2 :open-overlay)] (t/testing "Has way?" - (t/is (not (cti/has-way? i1))) - (t/is (cti/has-way? i2)) - (t/is (not (cti/has-way? i3))) + (t/is (not (csi/has-way? i1))) + (t/is (csi/has-way? i2)) + (t/is (not (csi/has-way? i3))) (t/is (some? (-> i3 :animation :way)))) ; <- it exists but is ignored (t/testing "Set way" - (let [new-interaction (cti/set-way i2 :out)] + (let [new-interaction (csi/set-way i2 :out)] (t/is (= :out (-> new-interaction :animation :way))))))) (t/deftest option-direction - (let [i1 cti/default-interaction - i2 (cti/set-animation-type cti/default-interaction :push) - i3 (cti/set-animation-type cti/default-interaction :dissolve)] + (let [i1 csi/default-interaction + i2 (csi/set-animation-type csi/default-interaction :push) + i3 (csi/set-animation-type csi/default-interaction :dissolve)] (t/testing "Has direction?" - (t/is (not (cti/has-direction? i1))) - (t/is (cti/has-direction? i2))) + (t/is (not (csi/has-direction? i1))) + (t/is (csi/has-direction? i2))) (t/testing "Set direction" - (let [new-interaction (cti/set-direction i2 :left)] + (let [new-interaction (csi/set-direction i2 :left)] (t/is (= :left (-> new-interaction :animation :direction))))) (t/testing "Invert direction" @@ -483,12 +483,12 @@ a-up (assoc a-right :direction :up) a-down (assoc a-right :direction :down) - a-nil' (cti/invert-direction nil) - a-none' (cti/invert-direction a-none) - a-right' (cti/invert-direction a-right) - a-left' (cti/invert-direction a-left) - a-up' (cti/invert-direction a-up) - a-down' (cti/invert-direction a-down)] + a-nil' (csi/invert-direction nil) + a-none' (csi/invert-direction a-none) + a-right' (csi/invert-direction a-right) + a-left' (csi/invert-direction a-left) + a-up' (csi/invert-direction a-up) + a-down' (csi/invert-direction a-down)] (t/is (nil? a-nil')) (t/is (nil? (:direction a-none'))) @@ -499,44 +499,44 @@ (t/deftest option-offset-effect - (let [i1 cti/default-interaction - i2 (cti/set-animation-type cti/default-interaction :slide) - i3 (cti/set-action-type i2 :open-overlay)] + (let [i1 csi/default-interaction + i2 (csi/set-animation-type csi/default-interaction :slide) + i3 (csi/set-action-type i2 :open-overlay)] (t/testing "Has offset-effect" - (t/is (not (cti/has-offset-effect? i1))) - (t/is (cti/has-offset-effect? i2)) - (t/is (not (cti/has-offset-effect? i3))) + (t/is (not (csi/has-offset-effect? i1))) + (t/is (csi/has-offset-effect? i2)) + (t/is (not (csi/has-offset-effect? i3))) (t/is (some? (-> i3 :animation :offset-effect)))) ; <- it exists but is ignored (t/testing "Set offset-effect" - (let [new-interaction (cti/set-offset-effect i2 true)] + (let [new-interaction (csi/set-offset-effect i2 true)] (t/is (= true (-> new-interaction :animation :offset-effect))))))) (t/deftest modify-interactions - (let [i1 (cti/set-action-type cti/default-interaction :open-overlay) - i2 (cti/set-action-type cti/default-interaction :close-overlay) - i3 (cti/set-action-type cti/default-interaction :prev-screen) + (let [i1 (csi/set-action-type csi/default-interaction :open-overlay) + i2 (csi/set-action-type csi/default-interaction :close-overlay) + i3 (csi/set-action-type csi/default-interaction :prev-screen) interactions [i1 i2]] (t/testing "Add interaction to nil" - (let [new-interactions (cti/add-interaction nil i3)] + (let [new-interactions (csi/add-interaction nil i3)] (t/is (= (count new-interactions) 1)) (t/is (= (:action-type (last new-interactions)) :prev-screen)))) (t/testing "Add interaction to normal" - (let [new-interactions (cti/add-interaction interactions i3)] + (let [new-interactions (csi/add-interaction interactions i3)] (t/is (= (count new-interactions) 3)) (t/is (= (:action-type (last new-interactions)) :prev-screen)))) (t/testing "Remove interaction" - (let [new-interactions (cti/remove-interaction interactions 0)] + (let [new-interactions (csi/remove-interaction interactions 0)] (t/is (= (count new-interactions) 1)) (t/is (= (:action-type (last new-interactions)) :close-overlay)))) (t/testing "Update interaction" - (let [new-interactions (cti/update-interaction interactions 1 #(cti/set-action-type % :open-url))] + (let [new-interactions (csi/update-interaction interactions 1 #(csi/set-action-type % :open-url))] (t/is (= (count new-interactions) 2)) (t/is (= (:action-type (last new-interactions)) :open-url)))))) @@ -556,16 +556,16 @@ ids-map {(:id frame1) (:id frame4) (:id frame2) (:id frame5)} - i1 (cti/set-destination cti/default-interaction (:id frame1)) - i2 (cti/set-destination cti/default-interaction (:id frame2)) - i3 (cti/set-destination cti/default-interaction (:id frame3)) - i4 (cti/set-destination cti/default-interaction nil) - i5 (cti/set-destination cti/default-interaction (:id frame6)) + i1 (csi/set-destination csi/default-interaction (:id frame1)) + i2 (csi/set-destination csi/default-interaction (:id frame2)) + i3 (csi/set-destination csi/default-interaction (:id frame3)) + i4 (csi/set-destination csi/default-interaction nil) + i5 (csi/set-destination csi/default-interaction (:id frame6)) interactions [i1 i2 i3 i4 i5]] (t/testing "Remap interactions" - (let [new-interactions (cti/remap-interactions interactions ids-map objects)] + (let [new-interactions (csi/remap-interactions interactions ids-map objects)] (t/is (= (count new-interactions) 4)) (t/is (= (:id frame4) (:destination (get new-interactions 0)))) (t/is (= (:id frame5) (:destination (get new-interactions 1)))) diff --git a/frontend/src/app/main/data/comments.cljs b/frontend/src/app/main/data/comments.cljs index e3f26495e3..36a9a9e719 100644 --- a/frontend/src/app/main/data/comments.cljs +++ b/frontend/src/app/main/data/comments.cljs @@ -7,6 +7,7 @@ (ns app.main.data.comments (:require [app.common.data :as d] + [app.common.geom.point :as gpt] [app.common.spec :as us] [app.main.repo :as rp] [beicon.core :as rx] @@ -24,7 +25,7 @@ (s/def ::page-id ::us/uuid) (s/def ::page-name ::us/string) (s/def ::participants (s/every ::us/uuid :kind set?)) -(s/def ::position ::us/point) +(s/def ::position ::gpt/point) (s/def ::project-id ::us/uuid) (s/def ::seqn ::us/integer) (s/def ::thread-id ::us/uuid) diff --git a/frontend/src/app/main/data/viewer.cljs b/frontend/src/app/main/data/viewer.cljs index 6ff2212393..d528509fa6 100644 --- a/frontend/src/app/main/data/viewer.cljs +++ b/frontend/src/app/main/data/viewer.cljs @@ -7,9 +7,10 @@ (ns app.main.data.viewer (:require [app.common.data :as d] + [app.common.geom.point :as gpt] [app.common.pages :as cp] [app.common.spec :as us] - [app.common.types.interactions :as cti] + [app.common.spec.interactions :as cti] [app.common.uuid :as uuid] [app.main.data.comments :as dcm] [app.main.data.fonts :as df] @@ -469,7 +470,7 @@ (defn open-overlay [frame-id position close-click-outside background-overlay animation] (us/verify ::us/uuid frame-id) - (us/verify ::us/point position) + (us/verify ::gpt/point position) (us/verify (s/nilable ::us/boolean) close-click-outside) (us/verify (s/nilable ::us/boolean) background-overlay) (us/verify (s/nilable ::cti/animation) animation) @@ -494,7 +495,7 @@ (defn toggle-overlay [frame-id position close-click-outside background-overlay animation] (us/verify ::us/uuid frame-id) - (us/verify ::us/point position) + (us/verify ::gpt/point position) (us/verify (s/nilable ::us/boolean) close-click-outside) (us/verify (s/nilable ::us/boolean) background-overlay) (us/verify (s/nilable ::cti/animation) animation) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index fbe80847b5..4e910febd5 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -17,8 +17,8 @@ [app.common.pages :as cp] [app.common.pages.changes-builder :as pcb] [app.common.pages.helpers :as cph] - [app.common.pages.spec :as spec] [app.common.spec :as us] + [app.common.spec.shape :as spec.shape] [app.common.transit :as t] [app.common.uuid :as uuid] [app.config :as cfg] @@ -59,7 +59,7 @@ [cuerdas.core :as str] [potok.core :as ptk])) -(s/def ::shape-attrs ::cp/shape-attrs) +(s/def ::shape-attrs ::spec.shape/shape) (s/def ::set-of-string (s/every string? :kind set?)) @@ -925,13 +925,13 @@ :id id :operations [{:type :set :attr :constraints-h - :val (spec/default-constraints-h - (assoc obj :parent-id parent-id :frame-id frame-id)) + :val (gsh/default-constraints-h + (assoc obj :parent-id parent-id :frame-id frame-id)) :ignore-touched true} {:type :set :attr :constraints-v - :val (spec/default-constraints-v - (assoc obj :parent-id parent-id :frame-id frame-id)) + :val (gsh/default-constraints-v + (assoc obj :parent-id parent-id :frame-id frame-id)) :ignore-touched true}]})) shapes-to-unconstraint) diff --git a/frontend/src/app/main/data/workspace/changes.cljs b/frontend/src/app/main/data/workspace/changes.cljs index 9516d4db32..cd2aacd5a9 100644 --- a/frontend/src/app/main/data/workspace/changes.cljs +++ b/frontend/src/app/main/data/workspace/changes.cljs @@ -9,8 +9,8 @@ [app.common.data :as d] [app.common.logging :as log] [app.common.pages :as cp] - [app.common.pages.spec :as spec] [app.common.spec :as us] + [app.common.spec.change :as spec.change] [app.main.data.workspace.state-helpers :as wsh] [app.main.data.workspace.undo :as dwu] [app.main.store :as st] @@ -137,8 +137,8 @@ [:workspace-data] [:workspace-libraries file-id :data])] (try - (us/assert ::spec/changes redo-changes) - (us/assert ::spec/changes undo-changes) + (us/assert ::spec.change/changes redo-changes) + (us/assert ::spec.change/changes undo-changes) ;; (prn "====== commit-changes ======" path) ;; (cljs.pprint/pprint redo-changes) diff --git a/frontend/src/app/main/data/workspace/common.cljs b/frontend/src/app/main/data/workspace/common.cljs index 1fb8fc85b7..9c9648e603 100644 --- a/frontend/src/app/main/data/workspace/common.cljs +++ b/frontend/src/app/main/data/workspace/common.cljs @@ -12,8 +12,9 @@ [app.common.logging :as log] [app.common.pages :as cp] [app.common.spec :as us] - [app.common.types.interactions :as cti] - [app.common.types.page-options :as cto] + [app.common.spec.interactions :as csi] + [app.common.spec.page :as csp] + [app.common.spec.shape :as spec.shape] [app.common.uuid :as uuid] [app.main.data.workspace.changes :as dch] [app.main.data.workspace.state-helpers :as wsh] @@ -27,7 +28,7 @@ ;; Change this to :info :debug or :trace to debug this module (log/set-level! :warn) -(s/def ::shape-attrs ::cp/shape-attrs) +(s/def ::shape-attrs ::spec.shape/shape) (s/def ::set-of-string (s/every string? :kind set?)) (s/def ::ordered-set-of-uuid (s/every uuid? :kind d/ordered-set?)) @@ -409,7 +410,7 @@ interacting-shapes (filter (fn [shape] (let [interactions (:interactions shape)] - (some #(and (cti/has-destination %) + (some #(and (csi/has-destination %) (contains? ids (:destination %))) interactions))) (vals objects)) @@ -482,7 +483,7 @@ :operations [{:type :set :attr :interactions :val (vec (remove (fn [interaction] - (and (cti/has-destination interaction) + (and (csi/has-destination interaction) (contains? ids (:destination interaction)))) (:interactions obj)))}]}))) mk-mod-int-add-xf @@ -501,7 +502,7 @@ {:type :set-option :page-id page-id :option :flows - :value (cto/remove-flow flows (:id flow))}))) + :value (csp/remove-flow flows (:id flow))}))) mk-mod-add-flow-xf (comp (filter some?) diff --git a/frontend/src/app/main/data/workspace/guides.cljs b/frontend/src/app/main/data/workspace/guides.cljs index c446d8876c..473d03df0d 100644 --- a/frontend/src/app/main/data/workspace/guides.cljs +++ b/frontend/src/app/main/data/workspace/guides.cljs @@ -10,7 +10,7 @@ [app.common.geom.shapes :as gsh] [app.common.pages.changes-builder :as pcb] [app.common.spec :as us] - [app.common.types.page-options :as tpo] + [app.common.spec.page :as csp] [app.main.data.workspace.changes :as dwc] [app.main.data.workspace.state-helpers :as wsh] [beicon.core :as rx] @@ -24,7 +24,7 @@ (merge guide)))) (defn update-guides [guide] - (us/verify ::tpo/guide guide) + (us/verify ::csp/guide guide) (ptk/reify ::update-guides ptk/WatchEvent (watch [it state _] @@ -39,7 +39,7 @@ (rx/of (dwc/commit-changes changes)))))) (defn remove-guide [guide] - (us/verify ::tpo/guide guide) + (us/verify ::csp/guide guide) (ptk/reify ::remove-guide ptk/WatchEvent (watch [it state _] diff --git a/frontend/src/app/main/data/workspace/interactions.cljs b/frontend/src/app/main/data/workspace/interactions.cljs index bf7ba200f7..5b515539d2 100644 --- a/frontend/src/app/main/data/workspace/interactions.cljs +++ b/frontend/src/app/main/data/workspace/interactions.cljs @@ -10,8 +10,8 @@ [app.common.geom.point :as gpt] [app.common.pages.helpers :as cph] [app.common.spec :as us] - [app.common.types.interactions :as cti] - [app.common.types.page-options :as cto] + [app.common.spec.interactions :as csi] + [app.common.spec.page :as csp] [app.common.uuid :as uuid] [app.main.data.workspace.changes :as dch] [app.main.data.workspace.common :as dwc] @@ -45,7 +45,7 @@ {:redo-changes [{:type :set-option :page-id page-id :option :flows - :value (cto/add-flow flows new-flow)}] + :value (csp/add-flow flows new-flow)}] :undo-changes [{:type :set-option :page-id page-id :option :flows @@ -76,7 +76,7 @@ {:redo-changes [{:type :set-option :page-id page-id :option :flows - :value (cto/remove-flow flows flow-id)}] + :value (csp/remove-flow flows flow-id)}] :undo-changes [{:type :set-option :page-id page-id :option :flows @@ -100,8 +100,8 @@ {:redo-changes [{:type :set-option :page-id page-id :option :flows - :value (cto/update-flow flows flow-id - #(cto/rename-flow % name))}] + :value (csp/update-flow flows flow-id + #(csp/rename-flow % name))}] :undo-changes [{:type :set-option :page-id page-id :option :flows @@ -140,15 +140,15 @@ page-id :options :flows] []) - flow (cto/get-frame-flow flows (:id frame))] + flow (csp/get-frame-flow flows (:id frame))] (rx/concat (rx/of (dch/update-shapes [(:id shape)] (fn [shape] - (let [new-interaction (cti/set-destination - cti/default-interaction - destination)] + (let [new-interaction (csi/set-destination + csi/default-interaction + destination)] (update shape :interactions - cti/add-interaction new-interaction))))) + csi/add-interaction new-interaction))))) (when (and (not (cph/connected-frame? (:id frame) objects)) (nil? flow)) (rx/of (add-flow (:id frame)))))))))) @@ -161,7 +161,7 @@ (rx/of (dch/update-shapes [(:id shape)] (fn [shape] (update shape :interactions - cti/remove-interaction index))))))) + csi/remove-interaction index))))))) (defn update-interaction [shape index update-fn] @@ -171,7 +171,7 @@ (rx/of (dch/update-shapes [(:id shape)] (fn [shape] (update shape :interactions - cti/update-interaction index update-fn))))))) + csi/update-interaction index update-fn))))))) (declare move-edit-interaction) (declare finish-edit-interaction) @@ -244,11 +244,11 @@ (rx/of (update-interaction shape index (fn [interaction] (cond-> interaction - (not (cti/has-destination interaction)) - (cti/set-action-type :navigate) + (not (csi/has-destination interaction)) + (csi/set-action-type :navigate) :always - (cti/set-destination (:id frame)))))))))))))) + (csi/set-destination (:id frame)))))))))))))) ;; --- Overlays (declare move-overlay-pos) @@ -326,7 +326,7 @@ new-interactions (update interactions index - #(cti/set-overlay-position % overlay-pos))] + #(csi/set-overlay-position % overlay-pos))] (rx/of (dch/update-shapes [(:id shape)] #(merge % {:interactions new-interactions}))))))) diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index 7fe7ccf319..5c1a24c1cf 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -12,6 +12,10 @@ [app.common.logging :as log] [app.common.pages :as cp] [app.common.spec :as us] + [app.common.spec.change :as spec.change] + [app.common.spec.color :as spec.color] + [app.common.spec.file :as spec.file] + [app.common.spec.typography :as spec.typography] [app.common.uuid :as uuid] [app.main.data.messages :as dm] [app.main.data.workspace.changes :as dch] @@ -88,7 +92,7 @@ color (-> color (assoc :id id) (assoc :name (default-color-name color)))] - (us/assert ::cp/color color) + (us/assert ::spec.color/color color) (ptk/reify ::add-color IDeref (-deref [_] color) @@ -105,7 +109,7 @@ :origin it}))))))) (defn add-recent-color [color] - (us/assert ::cp/recent-color color) + (us/assert ::spec.color/recent-color color) (ptk/reify ::add-recent-color ptk/WatchEvent (watch [it _ _] @@ -123,7 +127,7 @@ (defn update-color [{:keys [id] :as color} file-id] - (us/assert ::cp/color color) + (us/assert ::spec.color/color color) (us/assert ::us/uuid file-id) (ptk/reify ::update-color ptk/WatchEvent @@ -159,7 +163,7 @@ (defn add-media [{:keys [id] :as media}] - (us/assert ::cp/media-object media) + (us/assert ::spec.file/media-object media) (ptk/reify ::add-media ptk/WatchEvent (watch [it _ _] @@ -215,7 +219,7 @@ ([typography] (add-typography typography true)) ([typography edit?] (let [typography (update typography :id #(or % (uuid/next)))] - (us/assert ::cp/typography typography) + (us/assert ::spec.typography/typography typography) (ptk/reify ::add-typography IDeref (-deref [_] typography) @@ -235,7 +239,7 @@ (defn update-typography [typography file-id] - (us/assert ::cp/typography typography) + (us/assert ::spec.typography/typography typography) (us/assert ::us/uuid file-id) (ptk/reify ::update-typography ptk/WatchEvent @@ -396,7 +400,7 @@ [file-id component-id position] (us/assert ::us/uuid file-id) (us/assert ::us/uuid component-id) - (us/assert ::us/point position) + (us/assert ::gpt/point position) (ptk/reify ::instantiate-component ptk/WatchEvent (watch [it state _] @@ -533,7 +537,7 @@ (defn ext-library-changed [file-id modified-at revn changes] (us/assert ::us/uuid file-id) - (us/assert ::cp/changes changes) + (us/assert ::spec.change/changes changes) (ptk/reify ::ext-library-changed ptk/UpdateEvent (update [_ state] diff --git a/frontend/src/app/main/data/workspace/notifications.cljs b/frontend/src/app/main/data/workspace/notifications.cljs index 73172018c1..f104e8874d 100644 --- a/frontend/src/app/main/data/workspace/notifications.cljs +++ b/frontend/src/app/main/data/workspace/notifications.cljs @@ -8,8 +8,8 @@ (:require [app.common.data :as d] [app.common.geom.point :as gpt] - [app.common.pages :as cp] [app.common.spec :as us] + [app.common.spec.change :as spec.change] [app.common.transit :as t] [app.common.uri :as u] [app.config :as cf] @@ -201,7 +201,7 @@ (s/def ::file-id uuid?) (s/def ::session-id uuid?) (s/def ::revn integer?) -(s/def ::changes ::cp/changes) +(s/def ::changes ::spec.change/changes) (s/def ::file-change-event (s/keys :req-un [::type ::profile-id ::file-id ::session-id ::revn ::changes])) diff --git a/frontend/src/app/main/data/workspace/persistence.cljs b/frontend/src/app/main/data/workspace/persistence.cljs index eb89d83b2e..26b77c5a4c 100644 --- a/frontend/src/app/main/data/workspace/persistence.cljs +++ b/frontend/src/app/main/data/workspace/persistence.cljs @@ -10,6 +10,8 @@ [app.common.exceptions :as ex] [app.common.pages :as cp] [app.common.spec :as us] + [app.common.spec.change :as spec.change] + [app.common.spec.file :as spec.file] [app.common.uuid :as uuid] [app.main.data.dashboard :as dd] [app.main.data.events :as ev] @@ -200,7 +202,7 @@ :updated-at (dt/now))))))) (s/def ::shapes-changes-persisted - (s/keys :req-un [::revn ::cp/changes])) + (s/keys :req-un [::revn ::spec.change/changes])) (defn shapes-persisted-event? [event] (= (ptk/type event) ::changes-persisted)) @@ -238,7 +240,7 @@ (s/def ::version ::us/integer) (s/def ::revn ::us/integer) (s/def ::ordering ::us/integer) -(s/def ::data ::cp/data) +(s/def ::data ::spec.file/data) (s/def ::file ::dd/file) (s/def ::project ::dd/project) diff --git a/frontend/src/app/main/data/workspace/selection.cljs b/frontend/src/app/main/data/workspace/selection.cljs index 8d5901da66..f6bd9a518f 100644 --- a/frontend/src/app/main/data/workspace/selection.cljs +++ b/frontend/src/app/main/data/workspace/selection.cljs @@ -12,7 +12,7 @@ [app.common.math :as mth] [app.common.pages :as cp] [app.common.spec :as us] - [app.common.types.interactions :as cti] + [app.common.spec.interactions :as cti] [app.common.uuid :as uuid] [app.main.data.modal :as md] [app.main.data.workspace.changes :as dch] diff --git a/frontend/src/app/main/data/workspace/undo.cljs b/frontend/src/app/main/data/workspace/undo.cljs index d25c22ea5f..b4a93cd53a 100644 --- a/frontend/src/app/main/data/workspace/undo.cljs +++ b/frontend/src/app/main/data/workspace/undo.cljs @@ -6,8 +6,8 @@ (ns app.main.data.workspace.undo (:require - [app.common.pages.spec :as spec] [app.common.spec :as us] + [app.common.spec.change :as spec.change] [cljs.spec.alpha :as s] [potok.core :as ptk])) @@ -15,8 +15,8 @@ ;; Undo / Redo ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(s/def ::undo-changes ::spec/changes) -(s/def ::redo-changes ::spec/changes) +(s/def ::undo-changes ::spec.change/changes) +(s/def ::redo-changes ::spec.change/changes) (s/def ::undo-entry (s/keys :req-un [::undo-changes ::redo-changes])) diff --git a/frontend/src/app/main/ui/shapes/attrs.cljs b/frontend/src/app/main/ui/shapes/attrs.cljs index ae5967d1ba..081306f4ca 100644 --- a/frontend/src/app/main/ui/shapes/attrs.cljs +++ b/frontend/src/app/main/ui/shapes/attrs.cljs @@ -6,8 +6,8 @@ (ns app.main.ui.shapes.attrs (:require - [app.common.pages.spec :as spec] - [app.common.types.radius :as ctr] + [app.common.spec.radius :as ctr] + [app.common.spec.shape :refer [stroke-caps-line stroke-caps-marker]] [app.main.ui.context :as muc] [app.util.object :as obj] [app.util.svg :as usvg] @@ -131,7 +131,7 @@ ;; For simple line caps we use svg stroke-line-cap attribute. This ;; only works if all caps are the same and we are not using the tricks ;; for inner or outer strokes. - (and (spec/stroke-caps-line (:stroke-cap-start shape)) + (and (stroke-caps-line (:stroke-cap-start shape)) (= (:stroke-cap-start shape) (:stroke-cap-end shape)) (not (#{:inner :outer} (:stroke-alignment shape))) (not= :dotted stroke-style)) @@ -141,15 +141,15 @@ (assoc :strokeLinecap "round") ;; For other cap types we use markers. - (and (or (spec/stroke-caps-marker (:stroke-cap-start shape)) - (and (spec/stroke-caps-line (:stroke-cap-start shape)) + (and (or (stroke-caps-marker (:stroke-cap-start shape)) + (and (stroke-caps-line (:stroke-cap-start shape)) (not= (:stroke-cap-start shape) (:stroke-cap-end shape)))) (not (#{:inner :outer} (:stroke-alignment shape)))) (assoc :markerStart (str/format "url(#marker-%s-%s)" render-id (name (:stroke-cap-start shape)))) - (and (or (spec/stroke-caps-marker (:stroke-cap-end shape)) - (and (spec/stroke-caps-line (:stroke-cap-end shape)) + (and (or (stroke-caps-marker (:stroke-cap-end shape)) + (and (stroke-caps-line (:stroke-cap-end shape)) (not= (:stroke-cap-start shape) (:stroke-cap-end shape)))) (not (#{:inner :outer} (:stroke-alignment shape)))) (assoc :markerEnd diff --git a/frontend/src/app/main/ui/viewer/handoff/attributes/layout.cljs b/frontend/src/app/main/ui/viewer/handoff/attributes/layout.cljs index bc8c485898..abf9fc37bb 100644 --- a/frontend/src/app/main/ui/viewer/handoff/attributes/layout.cljs +++ b/frontend/src/app/main/ui/viewer/handoff/attributes/layout.cljs @@ -7,7 +7,7 @@ (ns app.main.ui.viewer.handoff.attributes.layout (:require [app.common.math :as mth] - [app.common.types.radius :as ctr] + [app.common.spec.radius :as ctr] [app.main.ui.components.copy-button :refer [copy-button]] [app.util.code-gen :as cg] [app.util.i18n :refer [t]] diff --git a/frontend/src/app/main/ui/viewer/interactions.cljs b/frontend/src/app/main/ui/viewer/interactions.cljs index 1258e49f24..e60c5af348 100644 --- a/frontend/src/app/main/ui/viewer/interactions.cljs +++ b/frontend/src/app/main/ui/viewer/interactions.cljs @@ -10,7 +10,7 @@ [app.common.geom.matrix :as gmt] [app.common.geom.point :as gpt] [app.common.pages :as cp] - [app.common.types.page-options :as cto] + [app.common.spec.page :as csp] [app.main.data.comments :as dcm] [app.main.data.viewer :as dv] [app.main.refs :as refs] @@ -107,7 +107,7 @@ frames (:frames page) frame (get frames index) current-flow (mf/use-state - (cto/get-frame-flow flows (:id frame))) + (csp/get-frame-flow flows (:id frame))) show-dropdown? (mf/use-state false) toggle-dropdown (mf/use-fn #(swap! show-dropdown? not)) diff --git a/frontend/src/app/main/ui/viewer/shapes.cljs b/frontend/src/app/main/ui/viewer/shapes.cljs index 38c628c4f4..8ccc9a1453 100644 --- a/frontend/src/app/main/ui/viewer/shapes.cljs +++ b/frontend/src/app/main/ui/viewer/shapes.cljs @@ -11,7 +11,7 @@ [app.common.geom.point :as gpt] [app.common.geom.shapes :as geom] [app.common.pages :as cp] - [app.common.types.interactions :as cti] + [app.common.spec.interactions :as cti] [app.main.data.viewer :as dv] [app.main.refs :as refs] [app.main.store :as st] diff --git a/frontend/src/app/main/ui/workspace/context_menu.cljs b/frontend/src/app/main/ui/workspace/context_menu.cljs index 0f1605b1a7..0406b9dfb5 100644 --- a/frontend/src/app/main/ui/workspace/context_menu.cljs +++ b/frontend/src/app/main/ui/workspace/context_menu.cljs @@ -8,7 +8,7 @@ "A workspace specific context menu (mouse right click)." (:require [app.common.data :as d] - [app.common.types.page-options :as cto] + [app.common.spec.page :as csp] [app.main.data.modal :as modal] [app.main.data.workspace :as dw] [app.main.data.workspace.interactions :as dwi] @@ -307,7 +307,7 @@ is-frame? (and single? has-frame?)] (when (and prototype? is-frame?) - (let [flow (cto/get-frame-flow flows (-> shapes first :id))] + (let [flow (csp/get-frame-flow flows (-> shapes first :id))] (if (some? flow) [:& menu-entry {:title (tr "workspace.shape.menu.delete-flow-start") :on-click (do-remove-flow flow)}] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs index a0ec0508fc..6a83b194b1 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs @@ -8,7 +8,6 @@ (:require [app.common.data :as d] [app.common.geom.shapes :as gsh] - [app.common.pages.spec :as spec] [app.common.uuid :as uuid] [app.main.data.workspace.changes :as dch] [app.main.refs :as refs] @@ -50,8 +49,8 @@ ;; first-level? (and in-frame? ;; (= (:parent-id values) (:frame-id values))) - constraints-h (get values :constraints-h (spec/default-constraints-h values)) - constraints-v (get values :constraints-v (spec/default-constraints-v values)) + constraints-h (get values :constraints-h (gsh/default-constraints-h values)) + constraints-v (get values :constraints-v (gsh/default-constraints-v values)) on-constraint-button-clicked (mf/use-callback diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs index f704ce7152..598fea72fc 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs @@ -8,8 +8,8 @@ (:require [app.common.data :as d] [app.common.pages :as cp] - [app.common.types.interactions :as cti] - [app.common.types.page-options :as cto] + [app.common.spec.interactions :as csi] + [app.common.spec.page :as csp] [app.common.uuid :as uuid] [app.main.data.workspace :as dw] [app.main.data.workspace.interactions :as dwi] @@ -79,7 +79,7 @@ {:dissolve (tr "workspace.options.interaction-animation-dissolve") :slide (tr "workspace.options.interaction-animation-slide")} - (cti/allow-push? (:action-type interaction)) + (csi/allow-push? (:action-type interaction)) (assoc :push (tr "workspace.options.interaction-animation-push")))) (defn- easing-names @@ -165,7 +165,7 @@ (mf/defc shape-flows [{:keys [flows shape]}] (when (= (:type shape) :frame) - (let [flow (cto/get-frame-flow flows (:id shape))] + (let [flow (csp/get-frame-flow flows (:id shape))] [:div.element-set.interactions-options [:div.element-set-title [:span (tr "workspace.options.flows.flow-start")]] @@ -201,27 +201,27 @@ change-event-type (fn [event] (let [value (-> event dom/get-target dom/get-value d/read-string)] - (update-interaction index #(cti/set-event-type % value shape)))) + (update-interaction index #(csi/set-event-type % value shape)))) change-action-type (fn [event] (let [value (-> event dom/get-target dom/get-value d/read-string)] - (update-interaction index #(cti/set-action-type % value)))) + (update-interaction index #(csi/set-action-type % value)))) change-delay (fn [value] - (update-interaction index #(cti/set-delay % value))) + (update-interaction index #(csi/set-delay % value))) change-destination (fn [event] (let [value (-> event dom/get-target dom/get-value) value (when (not= value "") (uuid/uuid value))] - (update-interaction index #(cti/set-destination % value)))) + (update-interaction index #(csi/set-destination % value)))) change-preserve-scroll (fn [event] (let [value (-> event dom/get-target dom/checked?)] - (update-interaction index #(cti/set-preserve-scroll % value)))) + (update-interaction index #(csi/set-preserve-scroll % value)))) change-url (fn [event] @@ -237,55 +237,55 @@ (if (dom/valid? target) (do (dom/remove-class! target "error") - (update-interaction index #(cti/set-url % value))) + (update-interaction index #(csi/set-url % value))) (dom/add-class! target "error")))) change-overlay-pos-type (fn [event] (let [value (-> event dom/get-target dom/get-value d/read-string)] - (update-interaction index #(cti/set-overlay-pos-type % value shape objects)))) + (update-interaction index #(csi/set-overlay-pos-type % value shape objects)))) toggle-overlay-pos-type (fn [pos-type] - (update-interaction index #(cti/toggle-overlay-pos-type % pos-type shape objects))) + (update-interaction index #(csi/toggle-overlay-pos-type % pos-type shape objects))) change-close-click-outside (fn [event] (let [value (-> event dom/get-target dom/checked?)] - (update-interaction index #(cti/set-close-click-outside % value)))) + (update-interaction index #(csi/set-close-click-outside % value)))) change-background-overlay (fn [event] (let [value (-> event dom/get-target dom/checked?)] - (update-interaction index #(cti/set-background-overlay % value)))) + (update-interaction index #(csi/set-background-overlay % value)))) change-animation-type (fn [event] (let [value (-> event dom/get-target dom/get-value d/read-string)] - (update-interaction index #(cti/set-animation-type % value)))) + (update-interaction index #(csi/set-animation-type % value)))) change-duration (fn [value] - (update-interaction index #(cti/set-duration % value))) + (update-interaction index #(csi/set-duration % value))) change-easing (fn [event] (let [value (-> event dom/get-target dom/get-value d/read-string)] - (update-interaction index #(cti/set-easing % value)))) + (update-interaction index #(csi/set-easing % value)))) change-way (fn [event] (let [value (-> event dom/get-target dom/get-value d/read-string)] - (update-interaction index #(cti/set-way % value)))) + (update-interaction index #(csi/set-way % value)))) change-direction (fn [value] - (update-interaction index #(cti/set-direction % value))) + (update-interaction index #(csi/set-direction % value))) change-offset-effect (fn [event] (let [value (-> event dom/get-target dom/checked?)] - (update-interaction index #(cti/set-offset-effect % value)))) + (update-interaction index #(csi/set-offset-effect % value)))) ] [:* @@ -316,7 +316,7 @@ [:option {:value (str value)} name]))]] ; Delay - (when (cti/has-delay interaction) + (when (csi/has-delay interaction) [:div.interactions-element [:span.element-set-subtitle.wide (tr "workspace.options.interaction-delay")] [:div.input-element {:title (tr "workspace.options.interaction-ms")} @@ -337,7 +337,7 @@ [:option {:value (str value)} name])]] ; Destination - (when (cti/has-destination interaction) + (when (csi/has-destination interaction) [:div.interactions-element [:span.element-set-subtitle.wide (tr "workspace.options.interaction-destination")] [:select.input-select @@ -352,7 +352,7 @@ [:option {:value (str (:id frame))} (:name frame)]))]]) ; Preserve scroll - (when (cti/has-preserve-scroll interaction) + (when (csi/has-preserve-scroll interaction) [:div.interactions-element [:div.input-checkbox [:input {:type "checkbox" @@ -363,7 +363,7 @@ (tr "workspace.options.interaction-preserve-scroll")]]]) ; URL - (when (cti/has-url interaction) + (when (csi/has-url interaction) [:div.interactions-element [:span.element-set-subtitle.wide (tr "workspace.options.interaction-url")] [:input.input-text {:type "url" @@ -371,7 +371,7 @@ :default-value (str (:url interaction)) :on-blur change-url}]]) - (when (cti/has-overlay-opts interaction) + (when (csi/has-overlay-opts interaction) [:* ; Overlay position (select) [:div.interactions-element @@ -433,7 +433,7 @@ [:label {:for (str "background-" index)} (tr "workspace.options.interaction-background")]]]]) - (when (cti/has-animation? interaction) + (when (csi/has-animation? interaction) [:* ; Animation select [:div.interactions-element.separator @@ -446,7 +446,7 @@ [:option {:value (str value)} name])]] ; Direction - (when (cti/has-way? interaction) + (when (csi/has-way? interaction) [:div.interactions-element.interactions-way-buttons [:div.input-radio [:input {:type "radio" @@ -466,7 +466,7 @@ [:label {:for "way-out"} (tr "workspace.options.interaction-out")]]]) ; Direction - (when (cti/has-direction? interaction) + (when (csi/has-direction? interaction) [:div.interactions-element.interactions-direction-buttons [:div.element-set-actions-button {:class (dom/classnames :active (= direction :right)) @@ -486,7 +486,7 @@ i/animate-up]]) ; Duration - (when (cti/has-duration? interaction) + (when (csi/has-duration? interaction) [:div.interactions-element [:span.element-set-subtitle.wide (tr "workspace.options.interaction-duration")] [:div.input-element {:title (tr "workspace.options.interaction-ms")} @@ -498,7 +498,7 @@ [:span.after (tr "workspace.options.interaction-ms")]]]) ; Easing - (when (cti/has-easing? interaction) + (when (csi/has-easing? interaction) [:div.interactions-element [:span.element-set-subtitle.wide (tr "workspace.options.interaction-easing")] [:select.input-select @@ -515,7 +515,7 @@ :ease-in-out i/easing-ease-in-out)]]) ; Offset effect - (when (cti/has-offset-effect? interaction) + (when (csi/has-offset-effect? interaction) [:div.interactions-element [:div.input-checkbox [:input {:type "checkbox" diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs index 19978d1649..7a6493b2da 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs @@ -9,7 +9,7 @@ [app.common.data :as d] [app.common.geom.shapes :as gsh] [app.common.math :as math] - [app.common.types.radius :as ctr] + [app.common.spec.radius :as ctr] [app.main.data.workspace :as udw] [app.main.data.workspace.changes :as dch] [app.main.refs :as refs] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs index bfd6948091..4dd8c5c154 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs @@ -8,7 +8,6 @@ (:require [app.common.colors :as clr] [app.common.data :as d] - [app.common.pages.spec :as spec] [app.main.data.workspace.changes :as dch] [app.main.data.workspace.colors :as dc] [app.main.store :as st] @@ -127,7 +126,7 @@ update-cap-attr (fn [& kvs] - #(if (spec/has-caps? %) + #(if (= :path (:type %)) (apply (partial assoc %) kvs) %)) diff --git a/frontend/src/app/main/ui/workspace/viewport/interactions.cljs b/frontend/src/app/main/ui/workspace/viewport/interactions.cljs index 90f120024c..780c223a58 100644 --- a/frontend/src/app/main/ui/workspace/viewport/interactions.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/interactions.cljs @@ -10,7 +10,7 @@ [app.common.data :as d] [app.common.geom.shapes :as gsh] [app.common.pages :as cp] - [app.common.types.interactions :as cti] + [app.common.spec.interactions :as cti] [app.main.data.workspace :as dw] [app.main.refs :as refs] [app.main.store :as st] diff --git a/frontend/src/app/util/import/parser.cljs b/frontend/src/app/util/import/parser.cljs index 35f9e74f0e..82fd838ad9 100644 --- a/frontend/src/app/util/import/parser.cljs +++ b/frontend/src/app/util/import/parser.cljs @@ -9,7 +9,7 @@ [app.common.data :as d] [app.common.geom.matrix :as gmt] [app.common.geom.point :as gpt] - [app.common.types.interactions :as cti] + [app.common.spec.interactions :as cti] [app.common.uuid :as uuid] [app.util.color :as uc] [app.util.json :as json] From f72e140327ee83ebecf556edd8dbe4d274648444 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 26 Jan 2022 09:58:25 +0100 Subject: [PATCH 035/154] :sparkles: Graphic tablet use improvements: add scroll bars --- CHANGES.md | 3 +- .../styles/main/partials/workspace.scss | 4 +- .../src/app/main/ui/workspace/viewport.cljs | 9 +- .../ui/workspace/viewport/scroll_bars.cljs | 212 ++++++++++++++++++ .../app/main/ui/workspace/viewport/utils.cljs | 9 +- 5 files changed, 230 insertions(+), 7 deletions(-) create mode 100644 frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs diff --git a/CHANGES.md b/CHANGES.md index 6d5e6b51e8..9377f4d9d5 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,8 +6,9 @@ ### :sparkles: New features +- Scroll bars [Taiga #2550](https://tree.taiga.io/project/penpot/task/2550) - Add select layer option to context menu [Taiga #2474](https://tree.taiga.io/project/penpot/us/2474). -- Guides [Taiga #290](https://tree.taiga.io/project/penpot/us/290?milestone=307334) +- Guides [Taiga #290](https://tree.taiga.io/project/penpot/us/290) - Improve file menu by adding semantically groups [Github #1203](https://github.com/penpot/penpot/issues/1203). - Add update components in bulk option in context menu [Taiga #1975](https://tree.taiga.io/project/penpot/us/1975). - Create first E2E tests [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608), [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608) diff --git a/frontend/resources/styles/main/partials/workspace.scss b/frontend/resources/styles/main/partials/workspace.scss index e3767bd000..101ec69bce 100644 --- a/frontend/resources/styles/main/partials/workspace.scss +++ b/frontend/resources/styles/main/partials/workspace.scss @@ -138,10 +138,10 @@ .coordinates { background-color: $color-dark-bg; border-radius: $br-small; - bottom: -10px; + bottom: 0px; padding-left: 5px; position: fixed; - right: calc(#{$width-settings-bar} + 10px); + right: calc(#{$width-settings-bar} + 14px); text-align: center; width: 125px; white-space: nowrap; diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index 86b7441665..1f2860f71a 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -28,6 +28,7 @@ [app.main.ui.workspace.viewport.pixel-overlay :as pixel-overlay] [app.main.ui.workspace.viewport.presence :as presence] [app.main.ui.workspace.viewport.rules :as rules] + [app.main.ui.workspace.viewport.scroll-bars :as scroll-bars] [app.main.ui.workspace.viewport.selection :as selection] [app.main.ui.workspace.viewport.snap-distances :as snap-distances] [app.main.ui.workspace.viewport.snap-points :as snap-points] @@ -250,7 +251,13 @@ :hover (when (not= :frame (:type @hover)) #{(or @frame-hover (:id @hover))}) :edition edition - :zoom zoom}]) + :zoom zoom}] + + [:& scroll-bars/viewport-scrollbars + {:objects base-objects + :zoom zoom + :vbox vbox + :viewport-ref viewport-ref}]) (when show-selection-handlers? [:& selection/selection-handlers diff --git a/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs b/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs new file mode 100644 index 0000000000..d4bff28492 --- /dev/null +++ b/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs @@ -0,0 +1,212 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.main.ui.workspace.viewport.scroll-bars + (:require + [app.common.geom.shapes :as gsh] + [app.common.geom.shapes.rect :as gpr] + [app.common.pages.helpers :as cph] + [app.main.data.workspace :as dw] + [app.main.store :as st] + [app.main.ui.workspace.viewport.utils :as utils] + [app.util.dom :as dom] + [rumext.alpha :as mf])) + +(mf/defc viewport-scrollbars + {::mf/wrap [mf/memo]} + [{:keys [objects viewport-ref zoom vbox]}] + + (let [v-scrolling? (mf/use-state false) + h-scrolling? (mf/use-state false) + start-ref (mf/use-ref nil) + v-scrollbar-y-ref (mf/use-ref nil) + h-scrollbar-x-ref (mf/use-ref nil) + v-scrollbar-y-stored (mf/ref-val v-scrollbar-y-ref) + h-scrollbar-x-stored (mf/ref-val h-scrollbar-x-ref) + v-scrollbar-y-padding-ref (mf/use-ref nil) + h-scrollbar-x-padding-ref (mf/use-ref nil) + scrollbar-height-ref (mf/use-ref nil) + scrollbar-width-ref (mf/use-ref nil) + scrollbar-height-stored (mf/ref-val scrollbar-height-ref) + scrollbar-width-stored (mf/ref-val scrollbar-width-ref) + height-factor-ref (mf/use-ref nil) + width-factor-ref (mf/use-ref nil) + vbox-y-ref (mf/use-ref nil) + vbox-x-ref (mf/use-ref nil) + + vbox-x (:x vbox) + vbox-y (:y vbox) + + base-objects-rect + (mf/use-memo + (mf/deps objects) + (fn [] + (let [root-shapes (-> objects cph/get-top-frame :shapes) + shapes (->> root-shapes (mapv #(get objects %)))] + (gsh/selection-rect shapes)))) + + inv-zoom (/ 1 zoom) + vbox-height (- (:height vbox) (* inv-zoom 44)) + vbox-width (- (:width vbox) (* inv-zoom 34)) + + ;; top space hidden because of the scroll + top-offset (-> (- vbox-y (:y base-objects-rect)) + (max 0) + (* vbox-height) + (/ (:height base-objects-rect))) + ;; left space hidden because of the scroll + left-offset (-> (- vbox-x (:x base-objects-rect)) + (max 0) + (* vbox-width) + (/ (:width base-objects-rect))) + + ;; bottom space hidden because of the scroll + bottom-offset (-> (- (:y2 base-objects-rect) (+ vbox-y vbox-height)) + (max 0) + (* vbox-height) + (/ (:height base-objects-rect))) + + ;; right space hidden because of the scroll + right-offset (-> (- (:x2 base-objects-rect) (+ vbox-x vbox-width)) + (max 0) + (* vbox-width) + (/ (:width base-objects-rect))) + + show-v-scroll? (or @v-scrolling? (> top-offset 0) (> bottom-offset 0)) + show-h-scroll? (or @h-scrolling? (> left-offset 0) (> right-offset 0)) + + v-scrollbar-x (+ vbox-x (:width vbox) (* inv-zoom -32)) + v-scrollbar-y (+ vbox-y top-offset) + + h-scrollbar-x (+ vbox-x left-offset) + h-scrollbar-y (+ vbox-y (:height vbox) (* inv-zoom -40)) + + scrollbar-height (-> (- (+ vbox-y vbox-height) bottom-offset v-scrollbar-y)) + scrollbar-height (-> (cond + @v-scrolling? scrollbar-height-stored + :else scrollbar-height) + (max (* inv-zoom 100))) + + scrollbar-width (-> (- (+ vbox-x vbox-width) right-offset h-scrollbar-x)) + scrollbar-width (-> (cond + @h-scrolling? scrollbar-width-stored + :else scrollbar-width) + (max (* inv-zoom 100))) + + v-scrollbar-y (-> (cond + @v-scrolling? (- v-scrollbar-y-stored (- (- vbox-y (mf/ref-val vbox-y-ref)))) + :else v-scrollbar-y) + (max (+ vbox-y (* inv-zoom 26)))) + + v-scrollbar-y (if (> (+ v-scrollbar-y scrollbar-height) (+ vbox-y vbox-height)) ;; the scroll bar is stick to the bottom + (-> (+ vbox-y vbox-height) + (- scrollbar-height)) + v-scrollbar-y) + + h-scrollbar-x (-> (cond + @h-scrolling? (- h-scrollbar-x-stored (- (- vbox-x (mf/ref-val vbox-x-ref)))) + :else h-scrollbar-x) + (max (+ vbox-x (* inv-zoom 26)))) + + h-scrollbar-x (if (> (+ h-scrollbar-x scrollbar-width) (+ vbox-x vbox-width)) ;; the scroll bar is stick to the right + (-> (+ vbox-x vbox-width) + (- scrollbar-width)) + h-scrollbar-x) + + on-mouse-move + (mf/use-callback + (mf/deps zoom v-scrolling?) + (fn [event axis] + (when-let [_ (or @v-scrolling? @h-scrolling?)] + (let [viewport (mf/ref-val viewport-ref) + start-pt (mf/ref-val start-ref) + current-pt (dom/get-client-position event) + current-pt-viewport (utils/translate-point-to-viewport-raw viewport zoom current-pt) + y-delta (/ (* (mf/ref-val height-factor-ref) (- (:y current-pt) (:y start-pt))) zoom) + x-delta (/ (* (mf/ref-val width-factor-ref) (- (:x current-pt) (:x start-pt))) zoom) + new-v-scrollbar-y (-> current-pt-viewport + (:y) + (+ (mf/ref-val v-scrollbar-y-padding-ref))) + new-h-scrollbar-x (-> current-pt-viewport + (:x) + (+ (mf/ref-val h-scrollbar-x-padding-ref))) + viewport-update (-> {} + (cond-> (= axis :y) (assoc :y #(+ % y-delta))) + (cond-> (= axis :x) (assoc :x #(+ % x-delta))))] + (mf/set-ref-val! vbox-y-ref vbox-y) + (mf/set-ref-val! vbox-x-ref vbox-x) + (st/emit! (dw/update-viewport-position viewport-update)) + (mf/set-ref-val! v-scrollbar-y-ref new-v-scrollbar-y) + (mf/set-ref-val! h-scrollbar-x-ref new-h-scrollbar-x) + (mf/set-ref-val! start-ref current-pt))))) + + on-mouse-down + (mf/use-callback + (mf/deps v-scrollbar-y scrollbar-height) + (fn [event axis] + (let [viewport (mf/ref-val viewport-ref) + start-pt (dom/get-client-position event) + new-v-scrollbar-y (-> (utils/translate-point-to-viewport-raw viewport zoom start-pt) :y) + new-h-scrollbar-x (-> (utils/translate-point-to-viewport-raw viewport zoom start-pt) :x) + v-scrollbar-y-padding (- v-scrollbar-y new-v-scrollbar-y) + h-scrollbar-x-padding (- h-scrollbar-x new-h-scrollbar-x) + vbox-rect {:x vbox-x + :y vbox-y + :x1 vbox-x + :y1 vbox-y + :x2 (+ vbox-x (:width vbox)) + :y2 (+ vbox-y (:height vbox)) + :width (:width vbox) + :height (:height vbox)} + containing-rect (gpr/join-selrects [base-objects-rect vbox-rect]) + height-factor (/ (:height containing-rect) vbox-height) + width-factor (/ (:width containing-rect) vbox-width)] + (mf/set-ref-val! start-ref start-pt) + (mf/set-ref-val! v-scrollbar-y-padding-ref v-scrollbar-y-padding) + (mf/set-ref-val! h-scrollbar-x-padding v-scrollbar-y-padding) + (mf/set-ref-val! v-scrollbar-y-ref (+ new-v-scrollbar-y v-scrollbar-y-padding)) + (mf/set-ref-val! h-scrollbar-x-ref (+ new-h-scrollbar-x h-scrollbar-x-padding)) + (mf/set-ref-val! vbox-y-ref vbox-y) + (mf/set-ref-val! vbox-x-ref vbox-x) + (mf/set-ref-val! scrollbar-height-ref scrollbar-height) + (mf/set-ref-val! scrollbar-width-ref scrollbar-width) + (mf/set-ref-val! height-factor-ref height-factor) + (mf/set-ref-val! width-factor-ref width-factor) + (reset! v-scrolling? (= axis :y)) + (reset! h-scrolling? (= axis :x))))) + + on-mouse-up + (mf/use-callback + (mf/deps) + (fn [_] + (reset! v-scrolling? false) + (reset! h-scrolling? false)))] + + [* + (when show-v-scroll? + [:g.v-scroll + [:rect {:on-mouse-move #(on-mouse-move % :y) + :on-mouse-down #(on-mouse-down % :y) + :on-mouse-up #(on-mouse-up % :y) + :width (* inv-zoom 7) + :rx (* inv-zoom 3) + :ry (* inv-zoom 3) + :height scrollbar-height + :fill-opacity 0.4 + :x v-scrollbar-x + :y v-scrollbar-y}]]) + (when show-h-scroll? + [:g.h-scroll + [:rect {:on-mouse-move #(on-mouse-move % :x) + :on-mouse-down #(on-mouse-down % :x) + :on-mouse-up #(on-mouse-up % :x) + :width scrollbar-width + :rx (* inv-zoom 3) + :ry (* inv-zoom 3) + :height (* inv-zoom 7) + :fill-opacity 0.4 + :x h-scrollbar-x + :y h-scrollbar-y}]])])) diff --git a/frontend/src/app/main/ui/workspace/viewport/utils.cljs b/frontend/src/app/main/ui/workspace/viewport/utils.cljs index 088d175494..b7c6ff280d 100644 --- a/frontend/src/app/main/ui/workspace/viewport/utils.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/utils.cljs @@ -153,7 +153,7 @@ (:width vbox 0) (:height vbox 0)])) -(defn translate-point-to-viewport [viewport zoom pt] +(defn translate-point-to-viewport-raw [viewport zoom pt] (let [vbox (.. ^js viewport -viewBox -baseVal) brect (dom/get-bounding-rect viewport) brect (gpt/point (d/parse-integer (:left brect)) @@ -162,8 +162,11 @@ zoom (gpt/point zoom)] (-> (gpt/subtract pt brect) (gpt/divide zoom) - (gpt/add box) - (gpt/round 0)))) + (gpt/add box)))) + +(defn translate-point-to-viewport [viewport zoom pt] + (-> (translate-point-to-viewport-raw viewport zoom pt) + (gpt/round 0))) (defn get-cursor [cursor] (case cursor From bc2a0432b923691659147fd8e11a5816d2536a27 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 27 Jan 2022 14:02:37 +0100 Subject: [PATCH 036/154] :sparkles: Allow connect to read-only databases. --- backend/src/app/config.clj | 2 + backend/src/app/db.clj | 11 ++- backend/src/app/http/session.clj | 112 +++++++++++++++++++-------- backend/src/app/loggers/audit.clj | 50 ++++++++---- backend/src/app/loggers/database.clj | 7 +- backend/src/app/main.clj | 1 + backend/src/app/setup.clj | 85 ++++++++++---------- backend/src/app/worker.clj | 83 ++++++++++++-------- 8 files changed, 216 insertions(+), 135 deletions(-) diff --git a/backend/src/app/config.clj b/backend/src/app/config.clj index 71ee82fbeb..dbd234dde7 100644 --- a/backend/src/app/config.clj +++ b/backend/src/app/config.clj @@ -112,6 +112,7 @@ (s/def ::database-password (s/nilable ::us/string)) (s/def ::database-uri ::us/string) (s/def ::database-username (s/nilable ::us/string)) +(s/def ::database-readonly ::us/boolean) (s/def ::default-blob-version ::us/integer) (s/def ::error-report-webhook ::us/string) (s/def ::user-feedback-destination ::us/string) @@ -201,6 +202,7 @@ ::database-password ::database-uri ::database-username + ::database-readonly ::default-blob-version ::error-report-webhook ::file-change-snapshot-every diff --git a/backend/src/app/db.clj b/backend/src/app/db.clj index a4976b47b0..d6eb7fa725 100644 --- a/backend/src/app/db.clj +++ b/backend/src/app/db.clj @@ -62,12 +62,13 @@ :opt-un [::migrations ::mtx/metrics ::read-only])) (defmethod ig/init-key ::pool - [_ {:keys [migrations metrics name] :as cfg}] + [_ {:keys [migrations metrics name read-only] :as cfg}] (l/info :action "initialize connection pool" :name (d/name name) :uri (:uri cfg)) (some-> metrics :registry instrument-jdbc!) (let [pool (create-pool cfg)] - (some->> (seq migrations) (apply-migrations! pool)) + (when-not read-only + (some->> (seq migrations) (apply-migrations! pool))) pool)) (defmethod ig/halt-key! ::pool @@ -136,10 +137,14 @@ (s/def ::pool pool?) -(defn pool-closed? +(defn closed? [pool] (.isClosed ^HikariDataSource pool)) +(defn read-only? + [pool] + (.isReadOnly ^HikariDataSource pool)) + (defn create-pool [cfg] (let [dsc (create-datasource-config cfg)] diff --git a/backend/src/app/http/session.clj b/backend/src/app/http/session.clj index 90e3d217d2..08abfe6e03 100644 --- a/backend/src/app/http/session.clj +++ b/backend/src/app/http/session.clj @@ -11,74 +11,114 @@ [app.common.logging :as l] [app.config :as cfg] [app.db :as db] + [app.db.sql :as sql] [app.metrics :as mtx] [app.util.async :as aa] [app.util.time :as dt] [app.worker :as wrk] [clojure.core.async :as a] [clojure.spec.alpha :as s] - [integrant.core :as ig])) + [integrant.core :as ig] + [ring.middleware.session.store :as rss])) ;; A default cookie name for storing the session. We don't allow ;; configure it. (def cookie-name "auth-token") +(deftype DatabaseStore [pool tokens] + rss/SessionStore + (read-session [_ token] + (db/exec-one! pool (sql/select :http-session {:id token}))) + + (write-session [_ _ data] + (let [profile-id (:profile-id data) + user-agent (:user-agent data) + token (tokens :generate {:iss "authentication" + :iat (dt/now) + :uid profile-id}) + params {:user-agent user-agent + :profile-id profile-id + :id token}] + (db/insert! pool :http-session params) + token)) + + (delete-session [_ token] + (db/delete! pool :http-session {:id token}) + nil)) + +(deftype MemoryStore [cache tokens] + rss/SessionStore + (read-session [_ token] + (get @cache token)) + + (write-session [_ _ data] + (let [profile-id (:profile-id data) + user-agent (:user-agent data) + token (tokens :generate {:iss "authentication" + :iat (dt/now) + :uid profile-id}) + params {:user-agent user-agent + :profile-id profile-id + :id token}] + + (swap! cache assoc token params) + token)) + + (delete-session [_ token] + (swap! cache dissoc token) + nil)) + ;; --- IMPL (defn- create-session - [{:keys [conn tokens] :as cfg} {:keys [profile-id headers] :as request}] - (let [token (tokens :generate {:iss "authentication" - :iat (dt/now) - :uid profile-id}) - params {:user-agent (get headers "user-agent") - :profile-id profile-id - :id token}] - (db/insert! conn :http-session params))) + [store request profile-id] + (let [params {:user-agent (get-in request [:headers "user-agent"]) + :profile-id profile-id}] + (rss/write-session store nil params))) (defn- delete-session - [{:keys [conn] :as cfg} {:keys [cookies] :as request}] + [store {:keys [cookies] :as request}] (when-let [token (get-in cookies [cookie-name :value])] - (db/delete! conn :http-session {:id token})) - nil) + (rss/delete-session store token))) (defn- retrieve-session - [{:keys [conn] :as cfg} id] - (when id - (db/exec-one! conn ["select id, profile_id from http_session where id = ?" id]))) + [store token] + (when token + (rss/read-session store token))) (defn- retrieve-from-request - [cfg {:keys [cookies] :as request}] + [store {:keys [cookies] :as request}] (->> (get-in cookies [cookie-name :value]) - (retrieve-session cfg))) + (retrieve-session store))) (defn- add-cookies - [response {:keys [id] :as session}] + [response token] (let [cors? (contains? cfg/flags :cors) secure? (contains? cfg/flags :secure-session-cookies)] (assoc response :cookies {cookie-name {:path "/" :http-only true - :value id + :value token :same-site (if cors? :none :lax) :secure secure?}}))) - (defn- clear-cookies [response] (assoc response :cookies {cookie-name {:value "" :max-age -1}})) (defn- middleware - [cfg handler] + [events-ch store handler] (fn [request] - (if-let [{:keys [id profile-id] :as session} (retrieve-from-request cfg request)] + (if-let [{:keys [id profile-id] :as session} (retrieve-from-request store request)] (do - (a/>!! (::events-ch cfg) id) + (a/>!! events-ch id) (l/set-context! {:profile-id profile-id}) (handler (assoc request :profile-id profile-id :session-id id))) (handler request)))) ;; --- STATE INIT: SESSION +(s/def ::tokens fn?) (defmethod ig/pre-init-spec ::session [_] - (s/keys :req-un [::db/pool])) + (s/keys :req-un [::db/pool ::tokens])) (defmethod ig/prep-key ::session [_ cfg] @@ -86,20 +126,24 @@ (d/without-nils cfg))) (defmethod ig/init-key ::session - [_ {:keys [pool] :as cfg}] - (let [events (a/chan (a/dropping-buffer (:buffer-size cfg))) - cfg (-> cfg - (assoc :conn pool) - (assoc ::events-ch events))] + [_ {:keys [pool tokens] :as cfg}] + (let [events-ch (a/chan (a/dropping-buffer (:buffer-size cfg))) + store (if (db/read-only? pool) + (->MemoryStore (atom {}) tokens) + (->DatabaseStore pool tokens))] + + (when (db/read-only? pool) + (l/warn :hint "sessions module initialized with in-memory store")) + (-> cfg - (assoc :middleware #(middleware cfg %)) + (assoc ::events-ch events-ch) + (assoc :middleware #(middleware events-ch store %)) (assoc :create (fn [profile-id] (fn [request response] - (let [request (assoc request :profile-id profile-id) - session (create-session cfg request)] - (add-cookies response session))))) + (let [token (create-session store request profile-id)] + (add-cookies response token))))) (assoc :delete (fn [request response] - (delete-session cfg request) + (delete-session store request) (-> response (assoc :status 204) (assoc :body "") diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj index d8c5d33f7a..b212b24c41 100644 --- a/backend/src/app/loggers/audit.clj +++ b/backend/src/app/loggers/audit.clj @@ -89,19 +89,24 @@ (s/def ::events (s/every ::event)) (defmethod ig/init-key ::http-handler - [_ {:keys [executor] :as cfg}] - (fn [{:keys [params profile-id] :as request}] - (when (contains? cf/flags :audit-log) - (let [events (->> (:events params) - (remove #(not= profile-id (:profile-id %))) - (us/conform ::events)) - ip-addr (parse-client-ip request) - cfg (-> cfg - (assoc :source "frontend") - (assoc :events events) - (assoc :ip-addr ip-addr))] - (px/run! executor #(persist-http-events cfg)))) - {:status 204 :body ""})) + [_ {:keys [executor pool] :as cfg}] + (if (db/read-only? pool) + (do + (l/warn :hint "audit log http handler disabled, db is read-only") + (constantly {:status 204 :body ""})) + (fn [{:keys [params profile-id] :as request}] + (when (contains? cf/flags :audit-log) + (let [events (->> (:events params) + (remove #(not= profile-id (:profile-id %))) + (us/conform ::events)) + ip-addr (parse-client-ip request) + cfg (-> cfg + (assoc :source "frontend") + (assoc :events events) + (assoc :ip-addr ip-addr))] + + (px/run! executor #(persist-http-events cfg)))) + {:status 204 :body ""}))) (defn- persist-http-events [{:keys [pool events ip-addr source] :as cfg}] @@ -148,13 +153,25 @@ (map clean-props))) (defmethod ig/init-key ::collector - [_ cfg] - (when (contains? cf/flags :audit-log) - (l/info :msg "initializing audit log collector") + [_ {:keys [pool] :as cfg}] + (cond + (not (contains? cf/flags :audit-log)) + (do + (l/info :hint "audit log collection disabled") + (constantly nil)) + + (db/read-only? pool) + (do + (l/warn :hint "audit log collection disabled, db is read-only") + (constantly nil)) + + :else (let [input (a/chan 512 event-xform) buffer (aa/batch input {:max-batch-size 100 :max-batch-age (* 10 1000) ; 10s :init []})] + + (l/info :hint "audit log collector initialized") (a/go-loop [] (when-let [[_type events] (a/ (bn/random-bytes 64) + (bc/bytes->b64u) + (bc/bytes->str))) + +(defn- retrieve-all + [conn] + (->> (db/query conn :server-prop {:preload true}) + (filter #(not= "secret-key" (:id %))) + (map (fn [row] + [(keyword (:id row)) + (db/decode-transit-pgobject (:content row))])) + (into {}))) + +(defn- handle-instance-id + [instance-id conn read-only?] + (or instance-id + (let [instance-id (uuid/random)] + (when-not read-only? + (try + (db/insert! conn :server-prop + {:id "instance-id" + :preload true + :content (db/tjson instance-id)}) + (catch Throwable cause + (l/warn :hint "unable to persist instance-id" + :instance-id instance-id + :cause cause)))) + instance-id))) (defmethod ig/pre-init-spec ::props [_] (s/keys :req-un [::db/pool])) (defmethod ig/init-key ::props - [_ {:keys [pool] :as cfg}] + [_ {:keys [pool key] :as cfg}] (db/with-atomic [conn pool] - (let [cfg (assoc cfg :conn conn)] - (initialize-secret-key! cfg) - (initialize-instance-id! cfg) - (retrieve-all cfg)))) + (db/xact-lock! conn 0) + (when-not key + (l/warn :hint (str "using autogenerated secret-key, it will change on each restart and will invalidate " + "all sessions on each restart, it is hightly recommeded setting up the " + "PENPOT_SECRET_KEY environment variable"))) -(def sql:upsert-secret-key - "insert into server_prop (id, preload, content) - values ('secret-key', true, ?::jsonb) - on conflict (id) do update set content = ?::jsonb") - -(def sql:insert-secret-key - "insert into server_prop (id, preload, content) - values ('secret-key', true, ?::jsonb) - on conflict (id) do nothing") - -(defn- initialize-secret-key! - [{:keys [conn key] :as cfg}] - (if key - (let [key (db/tjson key)] - (db/exec-one! conn [sql:upsert-secret-key key key])) - (let [key (-> (bn/random-bytes 64) - (bc/bytes->b64u) - (bc/bytes->str)) - key (db/tjson key)] - (db/exec-one! conn [sql:insert-secret-key key])))) - -(defn- initialize-instance-id! - [{:keys [conn] :as cfg}] - (let [iid (uuid/random)] - - (db/insert! conn :server-prop - {:id "instance-id" - :preload true - :content (db/tjson iid)} - {:on-conflict-do-nothing true}))) - -(defn- retrieve-all - [{:keys [conn] :as cfg}] - (reduce (fn [acc row] - (assoc acc (keyword (:id row)) (db/decode-transit-pgobject (:content row)))) - {} - (db/query conn :server-prop {:preload true}))) + (let [stored (-> (retrieve-all conn) + (assoc :secret-key (or key (generate-random-key))))] + (update stored :instance-id handle-instance-id conn (db/read-only? pool))))) diff --git a/backend/src/app/worker.clj b/backend/src/app/worker.clj index 7d532f5e01..72a1ba16e4 100644 --- a/backend/src/app/worker.clj +++ b/backend/src/app/worker.clj @@ -59,6 +59,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (declare event-loop-fn) +(declare event-loop) (declare instrument-tasks) (s/def ::queue keyword?) @@ -85,13 +86,10 @@ :queue :default} (d/without-nils cfg))) -(defmethod ig/init-key ::worker - [_ {:keys [pool poll-interval name queue] :as cfg}] - (l/info :action "start worker" - :name (d/name name) - :queue (d/name queue)) - (let [close-ch (a/chan 1) - poll-ms (inst-ms poll-interval)] +(defn- event-loop + "Main, worker eventloop" + [{:keys [pool poll-interval close-ch] :as cfg}] + (let [poll-ms (inst-ms poll-interval)] (a/go-loop [] (let [[val port] (a/alts! [close-ch (event-loop-fn cfg)] :priority true)] (cond @@ -100,7 +98,7 @@ (or (= port close-ch) (nil? val)) (l/debug :hint "stop condition found") - (db/pool-closed? pool) + (db/closed? pool) (do (l/debug :hint "eventloop aborted because pool is closed") (a/close! close-ch)) @@ -132,14 +130,27 @@ (= ::empty val) (do (a/> schedule - (filter some?) - ;; If id is not defined, use the task as id. - (map (fn [{:keys [id task] :as item}] - (if (some? id) - (assoc item :id (d/name id)) - (assoc item :id (d/name task))))) - (map (fn [{:keys [task] :as item}] - (let [f (get tasks task)] - (when-not f - (ex/raise :type :internal - :code :task-not-found - :hint (str/fmt "task %s not configured" task))) - (-> item - (dissoc :task) - (assoc :fn f)))))) - cfg (assoc cfg - :scheduler scheduler - :schedule schedule)] + [_ {:keys [schedule tasks pool] :as cfg}] + (let [scheduler (Executors/newScheduledThreadPool (int 1))] + (if (db/read-only? pool) + (l/warn :hint "scheduler not started, db is read-only") + (let [schedule (->> schedule + (filter some?) + ;; If id is not defined, use the task as id. + (map (fn [{:keys [id task] :as item}] + (if (some? id) + (assoc item :id (d/name id)) + (assoc item :id (d/name task))))) + (map (fn [{:keys [task] :as item}] + (let [f (get tasks task)] + (when-not f + (ex/raise :type :internal + :code :task-not-found + :hint (str/fmt "task %s not configured" task))) + (-> item + (dissoc :task) + (assoc :fn f)))))) + cfg (assoc cfg + :scheduler scheduler + :schedule schedule)] + (l/info :hint "scheduler started" + :registred-tasks (count schedule)) - (synchronize-schedule cfg) - (run! (partial schedule-task cfg) - (filter some? schedule)) + (synchronize-schedule cfg) + (run! (partial schedule-task cfg) + (filter some? schedule)))) (reify java.lang.AutoCloseable From f185836fd49bbcdf539d3c6a7fd708af42836c0f Mon Sep 17 00:00:00 2001 From: Eva Date: Tue, 25 Jan 2022 16:56:46 +0100 Subject: [PATCH 037/154] :construction_worker: Add e2e test to profile area --- frontend/cypress/fixtures/test-image-jpg.jpg | Bin 0 -> 34208 bytes frontend/cypress/fixtures/test-image-png.png | Bin 0 -> 116424 bytes .../01-auth/create-account.spec.js | 18 +- ...-account.specs.js => demo-account.spec.js} | 11 +- .../cypress/integration/01-auth/login.spec.js | 15 +- .../integration/01-auth/recover.spec.js | 25 ++- .../integration/02-onboarding/slides.spec.js | 105 +++++------- .../integration/03-projects/projects.spec.js | 2 +- .../integration/04-profile/profile.spec.js | 155 ++++++++++++++++++ .../integration/09-draw/draw-shapes.spec.js | 104 +++++++----- frontend/cypress/support/commands.js | 14 +- frontend/cypress/support/utils.js | 12 ++ frontend/package.json | 1 + frontend/src/app/main/ui/auth/login.cljs | 17 +- .../app/main/ui/auth/recovery_request.cljs | 6 +- frontend/src/app/main/ui/auth/register.cljs | 11 +- .../app/main/ui/components/file_uploader.cljs | 5 +- .../src/app/main/ui/components/forms.cljs | 13 +- .../src/app/main/ui/dashboard/sidebar.cljs | 15 +- frontend/src/app/main/ui/messages.cljs | 10 +- frontend/src/app/main/ui/onboarding.cljs | 32 ++-- .../app/main/ui/onboarding/team_choice.cljs | 5 +- .../src/app/main/ui/onboarding/templates.cljs | 3 +- frontend/src/app/main/ui/settings.cljs | 2 +- .../app/main/ui/settings/change_email.cljs | 5 +- .../app/main/ui/settings/delete_account.cljs | 3 +- .../src/app/main/ui/settings/options.cljs | 12 +- .../src/app/main/ui/settings/password.cljs | 3 +- .../src/app/main/ui/settings/profile.cljs | 6 +- .../src/app/main/ui/settings/sidebar.cljs | 3 +- frontend/yarn.lock | 5 + 31 files changed, 412 insertions(+), 206 deletions(-) create mode 100644 frontend/cypress/fixtures/test-image-jpg.jpg create mode 100644 frontend/cypress/fixtures/test-image-png.png rename frontend/cypress/integration/01-auth/{demo-account.specs.js => demo-account.spec.js} (58%) create mode 100644 frontend/cypress/integration/04-profile/profile.spec.js create mode 100644 frontend/cypress/support/utils.js diff --git a/frontend/cypress/fixtures/test-image-jpg.jpg b/frontend/cypress/fixtures/test-image-jpg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..868bdfdf982181669597d01625802069532c3615 GIT binary patch literal 34208 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 S9=Q>a1Kv^oiA5y;&iyZ|BS^{s literal 0 HcmV?d00001 diff --git a/frontend/cypress/fixtures/test-image-png.png b/frontend/cypress/fixtures/test-image-png.png new file mode 100644 index 0000000000000000000000000000000000000000..414556939645ffb11fcffbf94a800364f8cd2627 GIT binary patch literal 116424 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

F!Ri?g`AAF`Yp}hY}gv8ATANM`2rW8tbZ3 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

Wft$ml3|kqbIR9`M5FQB*6+R6gmJv@FmW-Yk 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%0DTE3hD#@jxQG>$* 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 { - let validUser + let validUser; beforeEach(() => { - cy.fixture('validuser.json').then((user) => { + cy.fixture("validuser.json").then((user) => { validUser = user; }); cy.visit("http://localhost:3449/#/auth/login"); - cy.get("a").contains("Create an account").click() + cy.getBySel("register-submit").click(); }); it("displays the account creation form", () => { - cy.get("input[type=submit]").contains("Create an account").should("exist"); + cy.getBySel("register-form-submit").should("exist"); }); it("create an account of an existent email fails", () => { cy.get("#email").type(validUser.email); cy.get("#password").type("anewpassword"); - cy.get("input[type=submit]").contains("Create an account").click(); - cy.get(".error").should("contain", "Email already used") + cy.getBySel("register-form-submit").click(); + cy.getBySel("email-input-error").should("exist"); }); - it("can go back", () => { - cy.get("a").contains("Login here").click() - cy.contains("Great to see you again!").should("exist"); + cy.getBySel("login-here-link").click(); + cy.getBySel("login-title").should("exist"); cy.get("#email").should("exist"); cy.get("#password").should("exist"); }); }); - diff --git a/frontend/cypress/integration/01-auth/demo-account.specs.js b/frontend/cypress/integration/01-auth/demo-account.spec.js similarity index 58% rename from frontend/cypress/integration/01-auth/demo-account.specs.js rename to frontend/cypress/integration/01-auth/demo-account.spec.js index 89c177a20c..075ce0d221 100644 --- a/frontend/cypress/integration/01-auth/demo-account.specs.js +++ b/frontend/cypress/integration/01-auth/demo-account.spec.js @@ -10,13 +10,12 @@ describe("demo account", () => { beforeEach(() => { - cy.visit("http://localhost:3449/#/auth/login"); + cy.visit("http://localhost:3449/#/auth/login"); }); - it.only("create demo account", () => { - cy.get("a").contains("Create demo account").click() - cy.get(".profile").contains("Demo User") + it("create demo account", () => { + cy.getBySel("demo-account-link").should("exist"); + cy.getBySel("demo-account-link").click(); + cy.get(".profile").contains("Demo User"); }); - }); - diff --git a/frontend/cypress/integration/01-auth/login.spec.js b/frontend/cypress/integration/01-auth/login.spec.js index 91558b2156..34decb0e78 100644 --- a/frontend/cypress/integration/01-auth/login.spec.js +++ b/frontend/cypress/integration/01-auth/login.spec.js @@ -14,7 +14,7 @@ describe("login", () => { }); it("displays the login form", () => { - cy.contains("Great to see you again!").should("exist"); + cy.getBySel("login-title").should("exist"); cy.get("#email").should("exist"); cy.get("#password").should("exist"); }); @@ -22,20 +22,17 @@ describe("login", () => { it("can't login with an invalid user", () => { cy.get("#email").type("bad@mail.com"); cy.get("#password").type("badpassword"); - cy.get("input[type=submit]").first().click(); - cy.get(".warning") - .should("exist") - .should("contain", "Username or password seems to be wrong."); + cy.getBySel("login-submit").click(); + cy.getBySel("login-banner").should("exist"); }); it("can login with a valid user", () => { - cy.fixture('validuser.json').then((user) => { + cy.fixture("validuser.json").then((user) => { cy.get("#email").type(user.email); cy.get("#password").type(user.password); }); - - cy.get("input[type=submit]").first().click(); + + cy.getBySel("login-submit").click(); cy.get(".dashboard-layout").should("exist"); }); }); - diff --git a/frontend/cypress/integration/01-auth/recover.spec.js b/frontend/cypress/integration/01-auth/recover.spec.js index db34a858c4..91488250f0 100644 --- a/frontend/cypress/integration/01-auth/recover.spec.js +++ b/frontend/cypress/integration/01-auth/recover.spec.js @@ -11,36 +11,31 @@ describe("recover password", () => { beforeEach(() => { cy.visit("http://localhost:3449/#/auth/login"); - cy.get("a").contains("Forgot password?").click() + cy.getBySel("forgot-password").click(); }); it("displays the recover form", () => { - cy.get("input[type=submit]").contains("Recover Password").should("exist"); + cy.getBySel("recovery-resquest-submit").should("exist"); }); it("recover password with wrong mail works", () => { cy.get("#email").type("bad@mail.com"); - cy.get("input[type=submit]").contains("Recover Password").click(); - cy.get(".info") - .should("exist") - .should("contain", "Password recovery link sent to your inbox."); + cy.getBySel("recovery-resquest-submit").click(); + cy.get(".info").should("exist"); }); it("recover password with good mail works", () => { - cy.fixture('validuser.json').then((user) => { + cy.fixture("validuser.json").then((user) => { cy.get("#email").type(user.email); - }); - cy.get("input[type=submit]").contains("Recover Password").click(); - cy.get(".info") - .should("exist") - .should("contain", "Password recovery link sent to your inbox."); + }); + cy.getBySel("recovery-resquest-submit").click(); + cy.get(".info").should("exist"); }); it("can go back", () => { - cy.get("a").contains("Go back").click() - cy.contains("Great to see you again!").should("exist"); + cy.getBySel("go-back-link").click(); + cy.getBySel("login-title").should("exist"); cy.get("#email").should("exist"); cy.get("#password").should("exist"); }); }); - diff --git a/frontend/cypress/integration/02-onboarding/slides.spec.js b/frontend/cypress/integration/02-onboarding/slides.spec.js index 6068e3e5e0..79dd6d275b 100644 --- a/frontend/cypress/integration/02-onboarding/slides.spec.js +++ b/frontend/cypress/integration/02-onboarding/slides.spec.js @@ -6,75 +6,50 @@ * Copyright (c) UXBOX Labs SL */ - "use strict"; +"use strict"; +import { + checkOnboardingSlide, + goToSlideByNumber, +} from "../../support/utils.js"; - describe("onboarding slides", () => { - beforeEach(() => { +describe("onboarding slides", () => { + beforeEach(() => { cy.demoLogin(); - - }); - - it("go trough all the onboarding slides", () => { - cy.get(".modal-right").should("contain", "Welcome to Penpot"); - cy.get(".modal-right button").should("contain", "Continue"); - cy.get(".modal-right button").click(); - - cy.get(".onboarding").should("contain", "Open Source Contributor?") - cy.get(".onboarding .skip").should("not.exist"); - cy.get(".onboarding button").should("contain", "Continue"); - cy.get(".onboarding button").click(); - - cy.get(".onboarding").should("contain", "Design libraries, styles and components") - cy.get(".onboarding .skip").should("exist"); - cy.get(".onboarding .step-dots").should("exist"); - cy.get(".onboarding button").should("contain", "Continue"); - cy.get(".onboarding button").click(); - - cy.get(".onboarding").should("contain", "Bring your designs to life with interactions") - cy.get(".onboarding .skip").should("exist"); - cy.get(".onboarding .step-dots").should("exist"); - cy.get(".onboarding button").should("contain", "Continue"); - cy.get(".onboarding button").click(); - - - cy.get(".onboarding").should("contain", "Get feedback, present and share your work") - cy.get(".onboarding .skip").should("exist"); - cy.get(".onboarding .step-dots").should("exist"); - cy.get(".onboarding button").should("contain", "Continue"); - cy.get(".onboarding button").click(); - - cy.get(".onboarding").should("contain", "One shared source of truth") - cy.get(".onboarding .skip").should("not.exist"); - cy.get(".onboarding .step-dots").should("exist"); - cy.get(".onboarding button").should("contain", "Start"); - cy.get(".onboarding button").click(); - - cy.get(".onboarding").should("contain", "Welcome to Penpot") - }); - - it("go to specific onboarding slides", () => { - cy.get(".modal-right button").click(); - cy.get(".onboarding button").click(); - - cy.get(".step-dots li:nth-child(4)").click(); - cy.get(".onboarding").should("contain", "One shared source of truth") - cy.get(".step-dots li:nth-child(3)").click(); - cy.get(".onboarding").should("contain", "Get feedback, present and share your work") - cy.get(".step-dots li:nth-child(2)").click(); - cy.get(".onboarding").should("contain", "Bring your designs to life with interactions") - cy.get(".step-dots li:nth-child(1)").click(); - cy.get(".onboarding").should("contain", "Design libraries, styles and components") - }); - it("skip onboarding slides", () => { - cy.get(".modal-right button").click(); - cy.get(".onboarding button").click(); - cy.get(".onboarding .skip").click(); + it("go trough all the onboarding slides", () => { + cy.getBySel("onboarding-welcome").should("exist"); + cy.getBySel("onboarding-next-btn").should("exist"); + cy.getBySel("onboarding-next-btn").click(); - cy.get(".onboarding").should("contain", "Welcome to Penpot") + cy.getBySel("opsource-next-btn").should("exist"); + cy.getBySel("skip-btn").should("not.exist"); + cy.getBySel("opsource-next-btn").click(); + + var genArr = Array.from(Array(3).keys()); + cy.wrap(genArr).each((index) => { + checkOnboardingSlide(index, true); + }); + checkOnboardingSlide("3", false); + + cy.getBySel("onboarding-welcome-title").should("exist"); }); - }); - - \ No newline at end of file + it("go to specific onboarding slides", () => { + cy.getBySel("onboarding-next-btn").click(); + cy.getBySel(`opsource-next-btn`).click(); + + var genArr = Array.from(Array(4).keys()); + cy.wrap(genArr).each((index) => { + goToSlideByNumber(4 - index); + }); + }); + + it("skip onboarding slides", () => { + cy.getBySel("onboarding-next-btn").click(); + cy.getBySel("opsource-next-btn").click(); + cy.getBySel("skip-btn").click(); + cy.getBySel("fly-solo-op").click(); + cy.getBySel("onboarding-welcome-title").should("exist"); + }); +}); diff --git a/frontend/cypress/integration/03-projects/projects.spec.js b/frontend/cypress/integration/03-projects/projects.spec.js index b4e58f8236..97743c085c 100644 --- a/frontend/cypress/integration/03-projects/projects.spec.js +++ b/frontend/cypress/integration/03-projects/projects.spec.js @@ -17,7 +17,7 @@ }); it("displays the projects page", () => { - cy.get(".dashboard-title").should("contain", "Projects"); + cy.get(".dashboard-title").should("exist"); }); }); diff --git a/frontend/cypress/integration/04-profile/profile.spec.js b/frontend/cypress/integration/04-profile/profile.spec.js new file mode 100644 index 0000000000..5079f6031d --- /dev/null +++ b/frontend/cypress/integration/04-profile/profile.spec.js @@ -0,0 +1,155 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright (c) UXBOX Labs SL + */ +"use strict"; + +describe("profile", () => { + beforeEach(() => { + cy.fixture("validuser.json").then((user) => { + cy.login(user.email, user.password); + }); + }); + + it("open profile section", () => { + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").should("exist"); + cy.getBySel("profile-profile-opt").click(); + cy.getBySel("account-title").should("exist"); + }); + + it("change profile name", () => { + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").click(); + cy.get("#fullname").should("exist"); + cy.get("#fullname").clear().type("New name").type("{enter}"); + cy.get(".banner.success").should("exist"); + }); + + it("change profile image with png", () => { + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").click(); + cy.getBySel("profile-image-input").should("exist"); + + cy.get(".profile img").then((oldImg) => { + cy.getBySel("profile-image-input").attachFile("test-image-png.png"); + cy.get(".profile img") + .invoke("attr", "src") + .should("not.eq", oldImg[0].src); + }); + }); + + it("change profile image with jpg", () => { + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").click(); + cy.getBySel("profile-image-input").should("exist"); + + cy.get(".profile img").then((oldImg) => { + cy.getBySel("profile-image-input").attachFile("test-image-jpg.jpg"); + cy.get(".profile img") + .invoke("attr", "src") + .should("not.eq", oldImg[0].src); + }); + }); + + it("change profile email", () => { + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").click(); + cy.get(".change-email").should("exist"); + cy.get(".change-email").click(); + cy.getBySel("change-email-title").should("exist"); + cy.fixture("validuser.json").then((user) => { + cy.get("#email-1").type(user.email); + cy.get("#email-2").type(user.email); + }); + cy.getBySel("change-email-submit").click(); + cy.get(".banner.info").should("exist"); + }); + + it("type wrong email while trying to update should throw an error", () => { + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").click(); + cy.get(".change-email").click(); + cy.fixture("validuser.json").then((user) => { + cy.get("#email-1").type(user.email); + }); + cy.get("#email-2").type("bad@email.com"); + cy.getBySel("change-email-submit").click(); + cy.get(".error").should("exist"); + }); + + it("open password section", () => { + cy.get(".profile").click(); + cy.getBySel("password-profile-opt").click(); + cy.get(".password-form").should("exist"); + }); + + it("type old password wrong should throw an error", () => { + cy.get(".profile").click(); + cy.getBySel("password-profile-opt").click(); + cy.get("#password-old").type("badpassword"); + cy.get("#password-1").type("pretty-new-password"); + cy.get("#password-2").type("pretty-new-password"); + cy.getBySel("submit-password").click(); + cy.get(".error").should("exist"); + }); + + it("type same old password should work", () => { + cy.get(".profile").click(); + cy.getBySel("password-profile-opt").click(); + cy.fixture("validuser.json").then((user) => { + cy.get("#password-old").type(user.password); + cy.get("#password-1").type(user.password); + cy.get("#password-2").type(user.password); + }); + cy.getBySel("submit-password").click(); + cy.get(".banner.success").should("exist"); + }); + + it("open settings section", () => { + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").click(); + cy.getBySel("settings-profile").should("exist"); + }); + + it("set lang to Spanish and back to english", () => { + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").click(); + cy.getBySel("settings-profile").click(); + cy.getBySel("setting-lang").should("exist"); + cy.getBySel("setting-lang").select("es"); + cy.getBySel("submit-lang-change").should("exist"); + cy.getBySel("submit-lang-change").click(); + cy.contains("Tu cuenta").should("exist"); + cy.getBySel("setting-lang").select("en"); + cy.getBySel("submit-lang-change").click(); + cy.contains("Your account").should("exist"); + }); + + it("log out from app", () => { + cy.get(".profile").click(); + cy.getBySel("logout-profile-opt").should("exist"); + cy.getBySel("logout-profile-opt").click(); + cy.getBySel("login-title").should("exist"); + }); +}); + +describe("remove account", () => { + it("create demo account and delete it", () => { + cy.visit("http://localhost:3449/#/auth/login"); + cy.getBySel("demo-account-link").click(); + cy.getBySel("onboarding-next-btn").click(); + cy.getBySel("opsource-next-btn").click(); + cy.getBySel("skip-btn").click(); + cy.getBySel("fly-solo-op").click(); + cy.getBySel("close-templates-btn").click(); + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").click(); + cy.getBySel("remove-acount-btn").click(); + cy.getBySel("delete-account-btn").click(); + cy.getBySel("login-title").should("exist"); + }); +}); diff --git a/frontend/cypress/integration/09-draw/draw-shapes.spec.js b/frontend/cypress/integration/09-draw/draw-shapes.spec.js index d1fd9ec5aa..c9ab4784ff 100644 --- a/frontend/cypress/integration/09-draw/draw-shapes.spec.js +++ b/frontend/cypress/integration/09-draw/draw-shapes.spec.js @@ -6,64 +6,88 @@ * Copyright (c) UXBOX Labs SL */ - "use strict"; +"use strict"; - describe("draw shapes", () => { - beforeEach(() => { - cy.fixture('validuser.json').then((user) => { - cy.login(user.email, user.password) - cy.get(".project-th").first().dblclick() - cy.clearViewport(); +describe("draw shapes", () => { + beforeEach(() => { + cy.fixture("validuser.json").then((user) => { + cy.login(user.email, user.password); + cy.get(".project-th").first().dblclick(); + cy.clearViewport(); }); - }); - - it("draw an artboard", () => { - cy.get(".viewport-controls rect").should("not.exist"); - cy.get(".left-toolbar-options li[alt='Artboard (A)']").click() - cy.drawInViewport(300, 300, 400, 450) - cy.get(".viewport-controls rect").first().as("artboard"); - cy.get("@artboard").should("exist"); - cy.get("@artboard").invoke('attr', 'width').should('eq', '100') - cy.get("@artboard").invoke('attr', 'height').should('eq', '150') - }); + }); - it("draw a square", () => { + it("draw an artboard", () => { cy.get(".viewport-controls rect").should("not.exist"); - cy.get(".left-toolbar-options li[alt='Rectangle (R)']").click() - cy.drawInViewport(300, 300, 400, 450) + cy.get(".left-toolbar-options li[alt='Artboard (A)']").click(); + cy.drawInViewport(300, 300, 400, 450); + cy.get(".viewport-controls rect").first().as("artboard"); + cy.get("@artboard").should("exist"); + cy.get("@artboard").invoke("attr", "width").should("eq", "100"); + cy.get("@artboard").invoke("attr", "height").should("eq", "150"); + }); + + it("draw a square", () => { + cy.get(".viewport-controls rect").should("not.exist"); + cy.get(".left-toolbar-options li[alt='Rectangle (R)']").click(); + cy.drawInViewport(300, 300, 400, 450); cy.get(".viewport-controls rect").should("exist"); - cy.get(".viewport-controls rect").invoke('attr', 'width').should('eq', '100') - cy.get(".viewport-controls rect").invoke('attr', 'height').should('eq', '150') + cy.get(".viewport-controls rect") + .invoke("attr", "width") + .should("eq", "100"); + cy.get(".viewport-controls rect") + .invoke("attr", "height") + .should("eq", "150"); }); it("draw an ellipse", () => { cy.get(".viewport-controls ellipse").should("not.exist"); - cy.get(".left-toolbar-options li[alt='Ellipse (E)']").click() - cy.drawInViewport(300, 300, 400, 450) - cy.get(".viewport-controls ellipse").as("ellipse") + cy.get(".left-toolbar-options li[alt='Ellipse (E)']").click(); + cy.drawInViewport(300, 300, 400, 450); + cy.get(".viewport-controls ellipse").as("ellipse"); cy.get("@ellipse").should("exist"); - cy.get("@ellipse").invoke('attr', 'rx').should('eq', '50') - cy.get("@ellipse").invoke('attr', 'ry').should('eq', '75') + cy.get("@ellipse").invoke("attr", "rx").should("eq", "50"); + cy.get("@ellipse").invoke("attr", "ry").should("eq", "75"); }); it("draw a curve", () => { cy.get(".viewport-controls path").should("not.exist"); - cy.get(".left-toolbar-options li[alt='Curve (Shift+C)']").click() - cy.drawMultiInViewport([{x:300, y:300}, {x:350, y:300}, {x:300, y:350}, {x:400, y:450}]) - cy.get(".viewport-controls path").as("curve") + cy.get(".left-toolbar-options li[alt='Curve (Shift+C)']").click(); + cy.drawMultiInViewport([ + { x: 300, y: 300 }, + { x: 350, y: 300 }, + { x: 300, y: 350 }, + { x: 400, y: 450 }, + ]); + cy.get(".viewport-controls path").as("curve"); cy.get("@curve").should("exist"); - cy.get("@curve").invoke('attr', 'd').should('eq', "M300,300L350,300L300,350L400,450") + cy.get("@curve") + .invoke("attr", "d") + .should("eq", "M300,300L350,300L300,350L400,450"); }); it("draw a path", () => { cy.get(".viewport-controls path").should("not.exist"); - cy.get(".left-toolbar-options li[alt='Path (P)']").click() - cy.clickMultiInViewport([{x:300, y:300}, {x:350, y:300}]) - cy.drawMultiInViewport([{x:400, y:450}, {x:450, y:450}], true) - cy.clickMultiInViewport([{x:300, y:300}]) - cy.get(".viewport-controls path").as("curve") + cy.get(".left-toolbar-options li[alt='Path (P)']").click(); + cy.clickMultiInViewport([ + { x: 300, y: 300 }, + { x: 350, y: 300 }, + ]); + cy.drawMultiInViewport( + [ + { x: 400, y: 450 }, + { x: 450, y: 450 }, + ], + true + ); + cy.clickMultiInViewport([{ x: 300, y: 300 }]); + cy.get(".viewport-controls path").as("curve"); cy.get("@curve").should("exist"); - cy.get("@curve").invoke('attr', 'd').should('eq', "M300,300L350,300C350,300,350,450,400,450C450,450,300,300,300,300Z") + cy.get("@curve") + .invoke("attr", "d") + .should( + "eq", + "M300,300L350,300C350,300,350,450,400,450C450,450,300,300,300,300Z" + ); }); - - }); +}); diff --git a/frontend/cypress/support/commands.js b/frontend/cypress/support/commands.js index a5c7845edb..9283cca5eb 100644 --- a/frontend/cypress/support/commands.js +++ b/frontend/cypress/support/commands.js @@ -23,18 +23,18 @@ // // -- This will overwrite an existing command -- // Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) - +import 'cypress-file-upload'; Cypress.Commands.add('login', (email, password) => { cy.visit("http://localhost:3449/#/auth/login"); cy.get("#email").type(email); cy.get("#password").type(password); - cy.get("input[type=submit]").first().click(); + cy.getBySel("login-submit").click(); }) Cypress.Commands.add('demoLogin', () => { cy.visit("http://localhost:3449/#/auth/login"); - cy.get("a").contains("Create demo account").click() + cy.getBySel("demo-account-link").click() }) Cypress.Commands.add('drawInViewport', (x1, y1, x2, y2) => { @@ -89,4 +89,12 @@ Cypress.Commands.add('clearViewport', () => { cy.get(".viewport-controls").type('{ctrl}a'); cy.get(".viewport-controls").type('{del}'); cy.window().its("debug").invoke('reset_viewport') +}) + +Cypress.Commands.add('getBySel', (selector, ...args) => { + return cy.get(`[data-test=${selector}]`, ...args) +}) + +Cypress.Commands.add('getBySelLike', (selector, ...args) => { + return cy.get(`[data-test*=${selector}]`, ...args) }) \ No newline at end of file diff --git a/frontend/cypress/support/utils.js b/frontend/cypress/support/utils.js new file mode 100644 index 0000000000..ee5ea66afb --- /dev/null +++ b/frontend/cypress/support/utils.js @@ -0,0 +1,12 @@ +export const checkOnboardingSlide = (number, checkSkip) => { + cy.getBySel(`slide-${number}-title`).should("exist"); + if(checkSkip){cy.getBySel("skip-btn").should("exist");} + cy.get(".onboarding .step-dots").should("exist"); + cy.getBySel(`slide-${number}-btn`).should("exist"); + cy.getBySel(`slide-${number}-btn`).click(); +}; + +export const goToSlideByNumber = (number) => { + cy.get(`.step-dots li:nth-child(${number})`).click(); + cy.getBySel(`slide-${number -1}-btn`).should("exist"); +}; \ No newline at end of file diff --git a/frontend/package.json b/frontend/package.json index 35e27b598f..1d1a8d8404 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -26,6 +26,7 @@ "devDependencies": { "autoprefixer": "^10.4.1", "cypress": "^9.2.1", + "cypress-file-upload": "^5.0.8", "gettext-parser": "^4.2.0", "gulp": "4.0.2", "gulp-concat": "^2.6.1", diff --git a/frontend/src/app/main/ui/auth/login.cljs b/frontend/src/app/main/ui/auth/login.cljs index 399e4ddb46..58d4f97ecf 100644 --- a/frontend/src/app/main/ui/auth/login.cljs +++ b/frontend/src/app/main/ui/auth/login.cljs @@ -91,7 +91,8 @@ [:& msgs/inline-banner {:type :warning :content message - :on-close #(reset! error nil)}]) + :on-close #(reset! error nil) + :data-test "login-banner"}]) [:& fm/form {:on-submit on-submit :form form} [:div.fields-row @@ -111,7 +112,8 @@ [:div.buttons-stack [:& fm/submit-button - {:label (tr "auth.login-submit")}] + {:label (tr "auth.login-submit") + :data-test "login-submit"}] (when (contains? @cf/flags :login-with-ldap) [:& fm/submit-button @@ -149,7 +151,7 @@ [{:keys [params] :as props}] [:div.generic-form.login-form [:div.form-container - [:h1 (tr "auth.login-title")] + [:h1 {:data-test "login-title"} (tr "auth.login-title")] [:div.subtitle (tr "auth.login-subtitle")] [:& login-form {:params params}] @@ -163,18 +165,21 @@ [:div.links [:div.link-entry - [:a {:on-click #(st/emit! (rt/nav :auth-recovery-request))} + [:a {:on-click #(st/emit! (rt/nav :auth-recovery-request)) + :data-test "forgot-password"} (tr "auth.forgot-password")]] (when (contains? @cf/flags :registration) [:div.link-entry [:span (tr "auth.register") " "] - [:a {:on-click #(st/emit! (rt/nav :auth-register {} params))} + [:a {:on-click #(st/emit! (rt/nav :auth-register {} params)) + :data-test "register-submit"} (tr "auth.register-submit")]])] (when (contains? @cf/flags :demo-users) [:div.links.demo [:div.link-entry [:span (tr "auth.create-demo-profile") " "] - [:a {:on-click (st/emitf (du/create-demo-profile))} + [:a {:on-click (st/emitf (du/create-demo-profile)) + :data-test "demo-account-link"} (tr "auth.create-demo-account")]]])]]) diff --git a/frontend/src/app/main/ui/auth/recovery_request.cljs b/frontend/src/app/main/ui/auth/recovery_request.cljs index 31c1eb2302..6477cfb32d 100644 --- a/frontend/src/app/main/ui/auth/recovery_request.cljs +++ b/frontend/src/app/main/ui/auth/recovery_request.cljs @@ -67,7 +67,8 @@ :type "text"}]] [:& fm/submit-button - {:label (tr "auth.recovery-request-submit")}]])) + {:label (tr "auth.recovery-request-submit") + :data-test "recovery-resquest-submit"}]])) ;; --- Recovery Request Page @@ -82,5 +83,6 @@ [:div.links [:div.link-entry - [:a {:on-click #(st/emit! (rt/nav :auth-login))} + [:a {:on-click #(st/emit! (rt/nav :auth-login)) + :data-test "go-back-link"} (tr "labels.go-back")]]]]]) diff --git a/frontend/src/app/main/ui/auth/register.cljs b/frontend/src/app/main/ui/auth/register.cljs index 84c362fb23..9fabc8d5c6 100644 --- a/frontend/src/app/main/ui/auth/register.cljs +++ b/frontend/src/app/main/ui/auth/register.cljs @@ -98,7 +98,8 @@ :name :email :tab-index "2" :help-icon i/at - :label (tr "auth.email")}]] + :label (tr "auth.email") + :data-test "email-input"}]] [:div.fields-row [:& fm/input {:name :password :tab-index "3" @@ -108,12 +109,13 @@ [:& fm/submit-button {:label (tr "auth.register-submit") - :disabled @submitted?}]])) + :disabled @submitted? + :data-test "register-form-submit"}]])) (mf/defc register-page [{:keys [params] :as props}] [:div.form-container - [:h1 (tr "auth.register-title")] + [:h1 {:data-test "registration-title"} (tr "auth.register-title")] [:div.subtitle (tr "auth.register-subtitle")] (when (contains? @cf/flags :demo-warning) @@ -132,7 +134,8 @@ [:div.link-entry [:span (tr "auth.already-have-account") " "] [:a {:on-click #(st/emit! (rt/nav :auth-login {} params)) - :tab-index "4"} + :tab-index "4" + :data-test "login-here-link"} (tr "auth.login-here")]] (when (contains? @cf/flags :demo-users) diff --git a/frontend/src/app/main/ui/components/file_uploader.cljs b/frontend/src/app/main/ui/components/file_uploader.cljs index 8aa5c55b53..3ee25d09c3 100644 --- a/frontend/src/app/main/ui/components/file_uploader.cljs +++ b/frontend/src/app/main/ui/components/file_uploader.cljs @@ -12,7 +12,7 @@ (mf/defc file-uploader {::mf/forward-ref true} - [{:keys [accept multi label-text label-class input-id on-selected] :as props} input-ref] + [{:keys [accept multi label-text label-class input-id on-selected data-test] :as props} input-ref] (let [opt-pick-one #(if multi % (first %)) on-files-selected @@ -37,5 +37,6 @@ :accept accept :type "file" :ref input-ref - :on-change on-files-selected}]])) + :on-change on-files-selected + :data-test data-test}]])) diff --git a/frontend/src/app/main/ui/components/forms.cljs b/frontend/src/app/main/ui/components/forms.cljs index fd15aa757f..8d744090be 100644 --- a/frontend/src/app/main/ui/components/forms.cljs +++ b/frontend/src/app/main/ui/components/forms.cljs @@ -12,6 +12,7 @@ [app.util.forms :as fm] [app.util.i18n :as i18n :refer [tr]] [app.util.object :as obj] + [clojure.string] [cuerdas.core :as str] [rumext.alpha :as mf])) @@ -19,7 +20,7 @@ (def use-form fm/use-form) (mf/defc input - [{:keys [label help-icon disabled form hint trim children] :as props}] + [{:keys [label help-icon disabled form hint trim children data-test] :as props}] (let [input-type (get props :type "text") input-name (get props :name) more-classes (get props :class) @@ -112,7 +113,7 @@ help-icon']) (cond (and touched? (:message error)) - [:span.error (tr (:message error))] + [:span.error {:data-test (clojure.string/join [data-test "-error"]) }(tr (:message error))] (string? hint) [:span.hint hint])]])) @@ -170,7 +171,7 @@ [:span.hint hint])]])) (mf/defc select - [{:keys [options label form default] :as props + [{:keys [options label form default data-test] :as props :or {default ""}}] (let [input-name (get props :name) @@ -181,7 +182,8 @@ [:div.custom-select [:select {:value value - :on-change on-change} + :on-change on-change + :data-test data-test} (for [item options] [:option {:key (:value item) :value (:value item)} (:label item)])] @@ -194,7 +196,7 @@ i/arrow-slide]]])) (mf/defc submit-button - [{:keys [label form on-click disabled] :as props}] + [{:keys [label form on-click disabled data-test] :as props}] (let [form (or form (mf/use-ctx form-ctx))] [:input.btn-primary.btn-large {:name "submit" @@ -202,6 +204,7 @@ :disabled (or (not (:valid @form)) (true? disabled)) :on-click on-click :value label + :data-test data-test :type "submit"}])) (mf/defc form diff --git a/frontend/src/app/main/ui/dashboard/sidebar.cljs b/frontend/src/app/main/ui/dashboard/sidebar.cljs index 061b41f45b..f632ca2f4a 100644 --- a/frontend/src/app/main/ui/dashboard/sidebar.cljs +++ b/frontend/src/app/main/ui/dashboard/sidebar.cljs @@ -501,25 +501,30 @@ (st/emit! section))))] [:div.profile-section - [:div.profile {:on-click #(reset! show true)} + [:div.profile {:on-click #(reset! show true) + :data-test "profile-btn"} [:img {:src photo}] [:span (:fullname profile)] [:& dropdown {:on-close #(reset! show false) :show @show} [:ul.dropdown - [:li {:on-click (partial on-click :settings-profile)} + [:li {:on-click (partial on-click :settings-profile) + :data-test "profile-profile-opt"} [:span.icon i/user] [:span.text (tr "labels.profile")]] - [:li {:on-click (partial on-click :settings-password)} + [:li {:on-click (partial on-click :settings-password) + :data-test "password-profile-opt"} [:span.icon i/lock] [:span.text (tr "labels.password")]] - [:li {:on-click #(on-click (du/logout) %)} + [:li {:on-click #(on-click (du/logout) %) + :data-test "logout-profile-opt"} [:span.icon i/exit] [:span.text (tr "labels.logout")]] (when (contains? @cf/flags :user-feedback) - [:li.feedback {:on-click (partial on-click :settings-feedback)} + [:li.feedback {:on-click (partial on-click :settings-feedback) + :data-test "feedback-profile-opt"} [:span.icon i/msg-info] [:span.text (tr "labels.give-feedback")] ])]]] diff --git a/frontend/src/app/main/ui/messages.cljs b/frontend/src/app/main/ui/messages.cljs index aff6c6f81e..7325580dad 100644 --- a/frontend/src/app/main/ui/messages.cljs +++ b/frontend/src/app/main/ui/messages.cljs @@ -15,7 +15,7 @@ [rumext.alpha :as mf])) (mf/defc banner - [{:keys [type position status controls content actions on-close] :as props}] + [{:keys [type position status controls content actions on-close data-test] :as props}] [:div.banner {:class (dom/classnames :warning (= type :warning) :error (= type :error) @@ -34,7 +34,8 @@ i/msg-error)] [:div.content {:class (dom/classnames :inline-actions (= controls :inline-actions) - :bottom-actions (= controls :bottom-actions))} + :bottom-actions (= controls :bottom-actions)) + :data-test data-test} content (when (or (= controls :bottom-actions) (= controls :inline-actions)) [:div.actions @@ -59,7 +60,7 @@ (mf/defc inline-banner {::mf/wrap [mf/memo]} - [{:keys [type content on-close actions] :as props}] + [{:keys [type content on-close actions data-test] :as props}] [:& banner {:type type :position :inline :status :visible @@ -70,5 +71,6 @@ :none)) :content content :on-close on-close - :actions actions}]) + :actions actions + :data-test data-test}]) diff --git a/frontend/src/app/main/ui/onboarding.cljs b/frontend/src/app/main/ui/onboarding.cljs index 0f31f117d3..76fb137557 100644 --- a/frontend/src/app/main/ui/onboarding.cljs +++ b/frontend/src/app/main/ui/onboarding.cljs @@ -27,14 +27,14 @@ [:img {:src "images/login-on.jpg" :border "0" :alt (tr "onboarding.welcome.alt")}]] [:div.modal-right [:div.modal-title - [:h2 (tr "onboarding.welcome.title")]] + [:h2 {:data-test "onboarding-welcome"} (tr "onboarding.welcome.title")]] [:span.release "Beta version " (:main @cf/version)] [:div.modal-content [:p (tr "onboarding.welcome.desc1")] [:p (tr "onboarding.welcome.desc2")] [:p (tr "onboarding.welcome.desc3")]] [:div.modal-navigation - [:button.btn-secondary {:on-click next} (tr "labels.continue")]]] + [:button.btn-secondary {:on-click next :data-test "onboarding-next-btn"} (tr "labels.continue")]]] [:img.deco {:src "images/deco-left.png" :border "0"}] [:img.deco.right {:src "images/deco-right.png" :border "0"}]]) @@ -55,7 +55,7 @@ "\u00A0" (tr "onboarding.contrib.desc2.2")]] [:div.modal-navigation - [:button.btn-secondary {:on-click next} (tr "labels.continue")]]]]) + [:button.btn-secondary {:on-click next :data-test "opsource-next-btn"} (tr "labels.continue")]]]]) (defmulti render-slide :slide) @@ -67,13 +67,14 @@ [:img {:src "images/on-design.gif" :border "0" :alt (tr "onboarding.slide.0.alt")}]] [:div.modal-right [:div.modal-title - [:h2 (tr "onboarding.slide.0.title")]] + [:h2 {:data-test "slide-0-title"} (tr "onboarding.slide.0.title")]] [:div.modal-content [:p (tr "onboarding.slide.0.desc1")] [:p (tr "onboarding.slide.0.desc2")]] [:div.modal-navigation - [:button.btn-secondary {:on-click #(navigate 1)} (tr "labels.continue")] - [:span.skip {:on-click skip} (tr "labels.skip")] + [:button.btn-secondary {:on-click #(navigate 1) + :data-test "slide-0-btn"} (tr "labels.continue")] + [:span.skip {:on-click skip :data-test "skip-btn"} (tr "labels.skip")] [:& rc/navigation-bullets {:slide slide :navigate navigate @@ -87,13 +88,14 @@ [:img {:src "images/on-proto.gif" :border "0" :alt (tr "onboarding.slide.1.alt")}]] [:div.modal-right [:div.modal-title - [:h2 (tr "onboarding.slide.1.title")]] + [:h2 {:data-test "slide-1-title"} (tr "onboarding.slide.1.title")]] [:div.modal-content [:p (tr "onboarding.slide.1.desc1")] [:p (tr "onboarding.slide.1.desc2")]] [:div.modal-navigation - [:button.btn-secondary {:on-click #(navigate 2)} (tr "labels.continue")] - [:span.skip {:on-click skip} (tr "labels.skip")] + [:button.btn-secondary {:on-click #(navigate 2) + :data-test "slide-1-btn"} (tr "labels.continue")] + [:span.skip {:on-click skip :data-test "skip-btn"} (tr "labels.skip")] [:& rc/navigation-bullets {:slide slide :navigate navigate @@ -107,12 +109,13 @@ [:img {:src "images/on-feed.gif" :border "0" :alt (tr "onboarding.slide.2.alt")}]] [:div.modal-right [:div.modal-title - [:h2 (tr "onboarding.slide.2.title")]] + [:h2 {:data-test "slide-2-title"} (tr "onboarding.slide.2.title")]] [:div.modal-content [:p (tr "onboarding.slide.2.desc1")]] [:div.modal-navigation - [:button.btn-secondary {:on-click #(navigate 3)} (tr "labels.continue")] - [:span.skip {:on-click skip} (tr "labels.skip")] + [:button.btn-secondary {:on-click #(navigate 3) + :data-test "slide-2-btn"} (tr "labels.continue")] + [:span.skip {:on-click skip :data-test "skip-btn"} (tr "labels.skip")] [:& rc/navigation-bullets {:slide slide :navigate navigate @@ -126,12 +129,13 @@ [:img {:src "images/on-handoff.gif" :border "0" :alt (tr "onboarding.slide.3.alt")}]] [:div.modal-right [:div.modal-title - [:h2 (tr "onboarding.slide.3.title")]] + [:h2 {:data-test "slide-3-title"} (tr "onboarding.slide.3.title")]] [:div.modal-content [:p (tr "onboarding.slide.3.desc1")] [:p (tr "onboarding.slide.3.desc2")]] [:div.modal-navigation - [:button.btn-secondary {:on-click skip} (tr "labels.start")] + [:button.btn-secondary {:on-click skip + :data-test "slide-3-btn"} (tr "labels.start")] [:& rc/navigation-bullets {:slide slide :navigate navigate diff --git a/frontend/src/app/main/ui/onboarding/team_choice.cljs b/frontend/src/app/main/ui/onboarding/team_choice.cljs index 6e5961a8fa..abaaa8d93a 100644 --- a/frontend/src/app/main/ui/onboarding/team_choice.cljs +++ b/frontend/src/app/main/ui/onboarding/team_choice.cljs @@ -42,11 +42,12 @@ [:div.modal-overlay [:div.modal-container.onboarding.final.animated.fadeInUp [:div.modal-top - [:h1 (tr "onboarding.welcome.title")] + [:h1 {:data-test "onboarding-welcome-title"} (tr "onboarding.welcome.title")] [:p (tr "onboarding.welcome.desc3")]] [:div.modal-columns [:div.modal-left - [:div.content-button {:on-click on-fly-solo} + [:div.content-button {:on-click on-fly-solo + :data-test "fly-solo-op"} [:h2 (tr "onboarding.choice.fly-solo")] [:p (tr "onboarding.choice.fly-solo-desc")]]] [:div.modal-right diff --git a/frontend/src/app/main/ui/onboarding/templates.cljs b/frontend/src/app/main/ui/onboarding/templates.cljs index de4a5b381a..84bfc15582 100644 --- a/frontend/src/app/main/ui/onboarding/templates.cljs +++ b/frontend/src/app/main/ui/onboarding/templates.cljs @@ -70,7 +70,8 @@ [:div.modal-container.onboarding-templates [:div.modal-header [:div.modal-close-button - {:on-click close-fn} i/close]] + {:on-click close-fn + :data-test "close-templates-btn"} i/close]] [:div.modal-content [:h3 (tr "onboarding.templates.title")] diff --git a/frontend/src/app/main/ui/settings.cljs b/frontend/src/app/main/ui/settings.cljs index 6adc821c29..46edd62c13 100644 --- a/frontend/src/app/main/ui/settings.cljs +++ b/frontend/src/app/main/ui/settings.cljs @@ -22,7 +22,7 @@ [] [:header.dashboard-header [:div.dashboard-title - [:h1 (tr "dashboard.your-account-title")]]]) + [:h1 {:data-test "account-title"} (tr "dashboard.your-account-title")]]]) (mf/defc settings [{:keys [route] :as props}] diff --git a/frontend/src/app/main/ui/settings/change_email.cljs b/frontend/src/app/main/ui/settings/change_email.cljs index 7c538fbffa..0574499096 100644 --- a/frontend/src/app/main/ui/settings/change_email.cljs +++ b/frontend/src/app/main/ui/settings/change_email.cljs @@ -86,7 +86,8 @@ [:div.modal-header [:div.modal-header-title - [:h2 (tr "modals.change-email.title")]] + [:h2 {:data-test "change-email-title"} + (tr "modals.change-email.title")]] [:div.modal-close-button {:on-click on-close} i/close]] @@ -108,7 +109,7 @@ :trim true}]]]] [:div.modal-footer - [:div.action-buttons + [:div.action-buttons {:data-test "change-email-submit"} [:& fm/submit-button {:label (tr "modals.change-email.submit")}]]]]]])) diff --git a/frontend/src/app/main/ui/settings/delete_account.cljs b/frontend/src/app/main/ui/settings/delete_account.cljs index f4e7262192..886d966800 100644 --- a/frontend/src/app/main/ui/settings/delete_account.cljs +++ b/frontend/src/app/main/ui/settings/delete_account.cljs @@ -51,7 +51,8 @@ [:div.modal-footer [:div.action-buttons - [:button.btn-warning.btn-large {:on-click on-accept} + [:button.btn-warning.btn-large {:on-click on-accept + :data-test "delete-account-btn"} (tr "modals.delete-account.confirm")] [:button.btn-secondary.btn-large {:on-click on-close} (tr "modals.delete-account.cancel")]]]]])) diff --git a/frontend/src/app/main/ui/settings/options.cljs b/frontend/src/app/main/ui/settings/options.cljs index c2317e32d3..66d213bdcb 100644 --- a/frontend/src/app/main/ui/settings/options.cljs +++ b/frontend/src/app/main/ui/settings/options.cljs @@ -48,20 +48,23 @@ [:h2 (t locale "labels.language")] [:div.fields-row - [:& fm/select {:options (into [{:label "Auto (browser)" :value ""}] + [:& fm/select {:options (into [{:label "Auto (browser)" :value "default"}] i18n/supported-locales) :label (t locale "dashboard.select-ui-language") :default "" - :name :lang}]] + :name :lang + :data-test "setting-lang"}]] [:h2 (t locale "dashboard.theme-change")] [:div.fields-row [:& fm/select {:label (t locale "dashboard.select-ui-theme") :name :theme :default "default" - :options [{:label "Default" :value "default"}]}]] + :options [{:label "Default" :value "default"}] + :data-test "theme-lang"}]] [:& fm/submit-button - {:label (t locale "dashboard.update-settings")}]])) + {:label (t locale "dashboard.update-settings") + :data-test "submit-lang-change"}]])) ;; --- Password Page @@ -72,4 +75,5 @@ [:div.dashboard-settings [:div.form-container + {:data-test "settings-form"} [:& options-form {:locale locale}]]]) diff --git a/frontend/src/app/main/ui/settings/password.cljs b/frontend/src/app/main/ui/settings/password.cljs index 12d43561e6..278eca9a41 100644 --- a/frontend/src/app/main/ui/settings/password.cljs +++ b/frontend/src/app/main/ui/settings/password.cljs @@ -89,7 +89,8 @@ :label (t locale "labels.confirm-password")}]] [:& fm/submit-button - {:label (t locale "dashboard.update-settings")}]])) + {:label (t locale "dashboard.update-settings") + :data-test "submit-password"}]])) ;; --- Password Page diff --git a/frontend/src/app/main/ui/settings/profile.cljs b/frontend/src/app/main/ui/settings/profile.cljs index eded1e265e..e92a71eaa6 100644 --- a/frontend/src/app/main/ui/settings/profile.cljs +++ b/frontend/src/app/main/ui/settings/profile.cljs @@ -71,7 +71,8 @@ [:div.links [:div.link-item - [:a {:on-click #(modal/show! :delete-account {})} + [:a {:on-click #(modal/show! :delete-account {}) + :data-test "remove-acount-btn"} (t locale "dashboard.remove-account")]]]])) ;; --- Profile Photo Form @@ -94,7 +95,8 @@ [:& file-uploader {:accept "image/jpeg,image/png" :multi false :ref file-input - :on-selected on-file-selected}]]])) + :on-selected on-file-selected + :data-test "profile-image-input"}]]])) ;; --- Profile Page diff --git a/frontend/src/app/main/ui/settings/sidebar.cljs b/frontend/src/app/main/ui/settings/sidebar.cljs index aa3ec05ec9..102a66cb49 100644 --- a/frontend/src/app/main/ui/settings/sidebar.cljs +++ b/frontend/src/app/main/ui/settings/sidebar.cljs @@ -80,7 +80,8 @@ [:span.element-title (tr "labels.password")]] [:li {:class (when options? "current") - :on-click go-settings-options} + :on-click go-settings-options + :data-test "settings-profile"} i/tree [:span.element-title (tr "labels.settings")]] diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 4744c16ca3..4f4095cce1 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -1404,6 +1404,11 @@ csstype@^3.0.2: resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz" integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== +cypress-file-upload@^5.0.8: + version "5.0.8" + resolved "https://registry.yarnpkg.com/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz#d8824cbeaab798e44be8009769f9a6c9daa1b4a1" + integrity sha512-+8VzNabRk3zG6x8f8BWArF/xA/W0VK4IZNx3MV0jFWrJS/qKn8eHfa5nU73P9fOQAgwHFJx7zjg4lwOnljMO8g== + cypress@^9.2.1: version "9.2.1" resolved "https://registry.npmjs.org/cypress/-/cypress-9.2.1.tgz" From 90d130a3bc414deb53886f52178acc91972c43d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Fri, 28 Jan 2022 10:21:36 +0100 Subject: [PATCH 038/154] :books: Remove unneeded section in changelog --- CHANGES.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 9377f4d9d5..4707218865 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -20,8 +20,6 @@ ## 1.11.0-beta -### :boom: Breaking changes - ### :sparkles: New features - Add an option to hide artboards names on the viewport [Taiga #2034](https://tree.taiga.io/project/penpot/issue/2034). From 5c1b007c1b1ea6e18ef0d9205270efb1a2de1f65 Mon Sep 17 00:00:00 2001 From: Eva Date: Fri, 28 Jan 2022 10:30:37 +0100 Subject: [PATCH 039/154] :sparkles: Align item to it's parent --- CHANGES.md | 7 ++++--- frontend/src/app/main/data/workspace.cljs | 11 ++++++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 4707218865..11eee70878 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,12 +6,13 @@ ### :sparkles: New features -- Scroll bars [Taiga #2550](https://tree.taiga.io/project/penpot/task/2550) +- Allow to align items relative to groups [Taiga #2533](https://tree.taiga.io/project/penpot/us/2533). +- Scroll bars [Taiga #2550](https://tree.taiga.io/project/penpot/task/2550). - Add select layer option to context menu [Taiga #2474](https://tree.taiga.io/project/penpot/us/2474). -- Guides [Taiga #290](https://tree.taiga.io/project/penpot/us/290) +- Guides [Taiga #290](https://tree.taiga.io/project/penpot/us/290). - Improve file menu by adding semantically groups [Github #1203](https://github.com/penpot/penpot/issues/1203). - Add update components in bulk option in context menu [Taiga #1975](https://tree.taiga.io/project/penpot/us/1975). -- Create first E2E tests [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608), [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608) +- Create first E2E tests [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608), [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608). ### :bug: Bugs fixed ### :arrow_up: Deps updates diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 4e910febd5..56b69b5bc3 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -1148,7 +1148,7 @@ ;; --- Shape / Selection Alignment and Distribution -(declare align-object-to-frame) +(declare align-object-to-parent) (declare align-objects-list) (defn can-align? [selected objects] @@ -1168,7 +1168,7 @@ objects (wsh/lookup-page-objects state page-id) selected (wsh/lookup-selected state) moved (if (= 1 (count selected)) - (align-object-to-frame objects (first selected) axis) + (align-object-to-parent objects (first selected) axis) (align-objects-list objects selected axis)) moved-objects (->> moved (group-by :id)) ids (keys moved-objects) @@ -1176,11 +1176,12 @@ (when (can-align? selected objects) (rx/of (dch/update-shapes ids update-fn {:reg-objects? true}))))))) -(defn align-object-to-frame +(defn align-object-to-parent [objects object-id axis] (let [object (get objects object-id) - frame (get objects (:frame-id object))] - (gal/align-to-rect object frame axis objects))) + parent (:parent-id (get objects object-id)) + parent-obj (get objects parent)] + (gal/align-to-rect object parent-obj axis objects))) (defn align-objects-list [objects selected axis] From d66619fe6d87b8f0d221d70e7b3b1d8667539d03 Mon Sep 17 00:00:00 2001 From: Eva Date: Fri, 28 Jan 2022 11:36:47 +0100 Subject: [PATCH 040/154] :lipstick: Remove dots at the end of each line in changes file --- CHANGES.md | 70 +++++++++++++++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 11eee70878..658352c0a4 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -23,35 +23,35 @@ ### :sparkles: New features -- Add an option to hide artboards names on the viewport [Taiga #2034](https://tree.taiga.io/project/penpot/issue/2034). -- Limit pasted object position to container boundaries [Taiga #2449](https://tree.taiga.io/project/penpot/us/2449). -- Add new options for zoom widget in workspace and viewer mode [Taiga #896](https://tree.taiga.io/project/penpot/us/896). -- Allow decimals on stroke width and positions [Taiga #2035](https://tree.taiga.io/project/penpot/issue/2035). -- Ability to ignore background when exporting an artboard [Taiga #1395](https://tree.taiga.io/project/penpot/us/1395). -- Show color hex or name on hover [Taiga #2413](https://tree.taiga.io/project/penpot/us/2413). -- Add shortcut to create artboard from selected objects [Taiga #2412](https://tree.taiga.io/project/penpot/us/2412). -- Add shortcut for opacity [Taiga #2442](https://tree.taiga.io/project/penpot/us/2442). -- Setting fill automatically for new texts [Taiga #2441](https://tree.taiga.io/project/penpot/us/2441). -- Add shortcut to move action [Github #1213](https://github.com/penpot/penpot/issues/1213). -- Add alt as mod key to add stroke color from library menu [Taiga #2207](https://tree.taiga.io/project/penpot/us/2207). -- Add detach in bulk option to context menu [Taiga #2210](https://tree.taiga.io/project/penpot/us/2210). -- Add penpot look and feel to multiuser cursors [Taiga #1387](https://tree.taiga.io/project/penpot/us/1387). -- Add actions to go to main component context menu option [Taiga #2053](https://tree.taiga.io/project/penpot/us/2053). -- Add contrast between component select color and shape select color [Taiga #2121](https://tree.taiga.io/project/penpot/issue/2121). -- Add animations in interactions [Taiga #2244](https://tree.taiga.io/project/penpot/us/2244). -- Add performance improvements on .penpot file import process [Taiga 2497](https://tree.taiga.io/project/penpot/us/2497). +- Add an option to hide artboards names on the viewport [Taiga #2034](https://tree.taiga.io/project/penpot/issue/2034) +- Limit pasted object position to container boundaries [Taiga #2449](https://tree.taiga.io/project/penpot/us/2449) +- Add new options for zoom widget in workspace and viewer mode [Taiga #896](https://tree.taiga.io/project/penpot/us/896) +- Allow decimals on stroke width and positions [Taiga #2035](https://tree.taiga.io/project/penpot/issue/2035) +- Ability to ignore background when exporting an artboard [Taiga #1395](https://tree.taiga.io/project/penpot/us/1395) +- Show color hex or name on hover [Taiga #2413](https://tree.taiga.io/project/penpot/us/2413) +- Add shortcut to create artboard from selected objects [Taiga #2412](https://tree.taiga.io/project/penpot/us/2412) +- Add shortcut for opacity [Taiga #2442](https://tree.taiga.io/project/penpot/us/2442) +- Setting fill automatically for new texts [Taiga #2441](https://tree.taiga.io/project/penpot/us/2441) +- Add shortcut to move action [Github #1213](https://github.com/penpot/penpot/issues/1213) +- Add alt as mod key to add stroke color from library menu [Taiga #2207](https://tree.taiga.io/project/penpot/us/2207) +- Add detach in bulk option to context menu [Taiga #2210](https://tree.taiga.io/project/penpot/us/2210) +- Add penpot look and feel to multiuser cursors [Taiga #1387](https://tree.taiga.io/project/penpot/us/1387) +- Add actions to go to main component context menu option [Taiga #2053](https://tree.taiga.io/project/penpot/us/2053) +- Add contrast between component select color and shape select color [Taiga #2121](https://tree.taiga.io/project/penpot/issue/2121) +- Add animations in interactions [Taiga #2244](https://tree.taiga.io/project/penpot/us/2244) +- Add performance improvements on .penpot file import process [Taiga 2497](https://tree.taiga.io/project/penpot/us/2497) ### :bug: Bugs fixed -- Fix remove gradient if any when applying color from library [Taiga #2299](https://tree.taiga.io/project/penpot/issue/2299). -- Fix Enter as key action to exit edit path [Taiga #2444](https://tree.taiga.io/project/penpot/issue/2444). -- Fix add fill color from palette to groups and components [Taiga #2313](https://tree.taiga.io/project/penpot/issue/2313). -- Fix default project name in all languages [Taiga #2280](https://tree.taiga.io/project/penpot/issue/2280). -- Fix line-height and letter-spacing inputs to allow negative values [Taiga #2381](https://tree.taiga.io/project/penpot/issue/2381). -- Fix typo in Handoff tooltip [Taiga #2428](https://tree.taiga.io/project/penpot/issue/2428). -- Fix crash when pressing Shift+1 on empty file [#1435](https://github.com/penpot/penpot/issues/1435). -- Fix masked group resize strange behavior [Taiga #2317](https://tree.taiga.io/project/penpot/issue/2317). -- Fix problems when exporting all artboards [Taiga #2234](https://tree.taiga.io/project/penpot/issue/2234). +- Fix remove gradient if any when applying color from library [Taiga #2299](https://tree.taiga.io/project/penpot/issue/2299) +- Fix Enter as key action to exit edit path [Taiga #2444](https://tree.taiga.io/project/penpot/issue/2444) +- Fix add fill color from palette to groups and components [Taiga #2313](https://tree.taiga.io/project/penpot/issue/2313) +- Fix default project name in all languages [Taiga #2280](https://tree.taiga.io/project/penpot/issue/2280) +- Fix line-height and letter-spacing inputs to allow negative values [Taiga #2381](https://tree.taiga.io/project/penpot/issue/2381) +- Fix typo in Handoff tooltip [Taiga #2428](https://tree.taiga.io/project/penpot/issue/2428) +- Fix crash when pressing Shift+1 on empty file [#1435](https://github.com/penpot/penpot/issues/1435) +- Fix masked group resize strange behavior [Taiga #2317](https://tree.taiga.io/project/penpot/issue/2317) +- Fix problems when exporting all artboards [Taiga #2234](https://tree.taiga.io/project/penpot/issue/2234) - Fix problems with team management [#1353](https://github.com/penpot/penpot/issues/1353) - Fix problem when importing in shared libraries [#1362](https://github.com/penpot/penpot/issues/1362) - Fix problem with join nodes [#1422](https://github.com/penpot/penpot/issues/1422) @@ -67,7 +67,7 @@ - Improved behaviour on text options when not text is selected [Taiga #2390](https://tree.taiga.io/project/penpot/issue/2390) - Fix decimal numbers in export viewbox [Taiga #2290](https://tree.taiga.io/project/penpot/issue/2290) - Right click over artboard name to open its menu [Taiga #1679](https://tree.taiga.io/project/penpot/issue/1679) -- Make the default session cookue use SameSite=Lax instead of Strict (causes some issues in latest versions of Chrome). +- Make the default session cookue use SameSite=Lax instead of Strict (causes some issues in latest versions of Chrome) - Fix "open in new tab" on dashboard [Taiga #2235](https://tree.taiga.io/project/penpot/issue/2355) - Changing pages while comments activated will not close the panel [#1350](https://github.com/penpot/penpot/issues/1350) - Fix navigate comments in right sidebar [Taiga #2163](https://tree.taiga.io/project/penpot/issue/2163) @@ -95,25 +95,25 @@ ### :arrow_up: Deps updates -- Update devenv docker image dependencies. +- Update devenv docker image dependencies ### :heart: Community contributions by (Thank you!) -- Spelling fixes (by @jsoref) [#1340](https://github.com/penpot/penpot/pull/1340). -- Explain folders in components (by @candideu) [Penpot-docs #42](https://github.com/penpot/penpot-docs/pull/42). -- Readability improvements of user guide (by @PaulSchulz) [Penpot-docs #50](https://github.com/penpot/penpot-docs/pull/50). +- Spelling fixes (by @jsoref) [#1340](https://github.com/penpot/penpot/pull/1340) +- Explain folders in components (by @candideu) [Penpot-docs #42](https://github.com/penpot/penpot-docs/pull/42) +- Readability improvements of user guide (by @PaulSchulz) [Penpot-docs #50](https://github.com/penpot/penpot-docs/pull/50) ## 1.10.4-beta ### :sparkles: Enhacements -- Allow parametrice file snapshoting interval. +- Allow parametrice file snapshoting interval ### :bug: Bugs fixed -- Fix issue on :mov-object change impl. -- Minor fix on how file changes log is persisted. -- Fix many issues on error reporting. +- Fix issue on :mov-object change impl +- Minor fix on how file changes log is persisted +- Fix many issues on error reporting ## 1.10.3-beta From f40c58c64adf8fffa90b3fabc706668e6a1a0333 Mon Sep 17 00:00:00 2001 From: Eva Date: Fri, 28 Jan 2022 11:40:22 +0100 Subject: [PATCH 041/154] :lipstick: Remove dots at the end of each line in changes file in actual sprint --- CHANGES.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 658352c0a4..7a2d68f866 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,13 +6,13 @@ ### :sparkles: New features -- Allow to align items relative to groups [Taiga #2533](https://tree.taiga.io/project/penpot/us/2533). -- Scroll bars [Taiga #2550](https://tree.taiga.io/project/penpot/task/2550). -- Add select layer option to context menu [Taiga #2474](https://tree.taiga.io/project/penpot/us/2474). -- Guides [Taiga #290](https://tree.taiga.io/project/penpot/us/290). -- Improve file menu by adding semantically groups [Github #1203](https://github.com/penpot/penpot/issues/1203). -- Add update components in bulk option in context menu [Taiga #1975](https://tree.taiga.io/project/penpot/us/1975). -- Create first E2E tests [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608), [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608). +- Allow to align items relative to groups [Taiga #2533](https://tree.taiga.io/project/penpot/us/2533) +- Scroll bars [Taiga #2550](https://tree.taiga.io/project/penpot/task/2550) +- Add select layer option to context menu [Taiga #2474](https://tree.taiga.io/project/penpot/us/2474) +- Guides [Taiga #290](https://tree.taiga.io/project/penpot/us/290) +- Improve file menu by adding semantically groups [Github #1203](https://github.com/penpot/penpot/issues/1203) +- Add update components in bulk option in context menu [Taiga #1975](https://tree.taiga.io/project/penpot/us/1975) +- Create first E2E tests [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608), [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608) ### :bug: Bugs fixed ### :arrow_up: Deps updates From 26e5d57ceda8fcb15a5e11090757e6e72fc287a9 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 28 Jan 2022 16:16:45 +0100 Subject: [PATCH 042/154] :bug: Fix incorrect alias on shape-attrs spec on workspace. --- common/src/app/common/spec/shape.cljc | 1 + frontend/src/app/main/data/workspace.cljs | 2 +- frontend/src/app/main/data/workspace/common.cljs | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/common/src/app/common/spec/shape.cljc b/common/src/app/common/spec/shape.cljc index 87ac864142..08ab1b023f 100644 --- a/common/src/app/common/spec/shape.cljc +++ b/common/src/app/common/spec/shape.cljc @@ -145,6 +145,7 @@ ::fill-color-gradient ::fill-color-ref-file ::fill-color-ref-id + ::hide-fill-on-export ::font-family ::font-size ::font-style diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 56b69b5bc3..38613db7bf 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -59,7 +59,7 @@ [cuerdas.core :as str] [potok.core :as ptk])) -(s/def ::shape-attrs ::spec.shape/shape) +(s/def ::shape-attrs ::spec.shape/shape-attrs) (s/def ::set-of-string (s/every string? :kind set?)) diff --git a/frontend/src/app/main/data/workspace/common.cljs b/frontend/src/app/main/data/workspace/common.cljs index 9c9648e603..21406795d8 100644 --- a/frontend/src/app/main/data/workspace/common.cljs +++ b/frontend/src/app/main/data/workspace/common.cljs @@ -28,7 +28,7 @@ ;; Change this to :info :debug or :trace to debug this module (log/set-level! :warn) -(s/def ::shape-attrs ::spec.shape/shape) +(s/def ::shape-attrs ::spec.shape/shape-attrs) (s/def ::set-of-string (s/every string? :kind set?)) (s/def ::ordered-set-of-uuid (s/every uuid? :kind d/ordered-set?)) From 5103624fe00d0c37109d2ca7f696b1bc4a623459 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Tue, 25 Jan 2022 09:33:52 +0100 Subject: [PATCH 043/154] :construction_worker: e2e tests for dashboard Including test for signing/singup, projects, files, teams, and misc --- .gitignore | 1 + frontend/cypress/fixtures/fonts/Viafont.otf | Bin 0 -> 11904 bytes frontend/cypress/fixtures/fonts/blkchcry.ttf | Bin 0 -> 56732 bytes .../cypress/fixtures/validuser-sample.json | 3 +- .../01-auth/create-account.spec.js | 11 + .../02-onboarding/onboarding-options.spec.js | 71 +++ .../integration/03-dashboard/files.spec.js | 489 ++++++++++++++++++ .../integration/03-dashboard/misc.spec.js | 150 ++++++ .../integration/03-dashboard/projects.spec.js | 153 ++++++ .../integration/03-dashboard/teams.spec.js | 155 ++++++ .../integration/03-projects/projects.spec.js | 25 - .../integration/09-draw/draw-shapes.spec.js | 34 +- frontend/cypress/support/commands.js | 18 +- frontend/cypress/support/utils.js | 63 +++ frontend/package-lock.json | 93 +++- frontend/package.json | 2 +- frontend/src/app/main/ui/auth/register.cljs | 2 +- .../app/main/ui/components/context_menu.cljs | 8 +- .../src/app/main/ui/dashboard/comments.cljs | 1 + .../src/app/main/ui/dashboard/file_menu.cljs | 23 +- frontend/src/app/main/ui/dashboard/files.cljs | 4 +- frontend/src/app/main/ui/dashboard/fonts.cljs | 8 +- .../src/app/main/ui/dashboard/import.cljs | 2 +- .../app/main/ui/dashboard/project_menu.cljs | 11 +- .../src/app/main/ui/dashboard/projects.cljs | 6 +- .../src/app/main/ui/dashboard/sidebar.cljs | 17 +- frontend/src/app/main/ui/dashboard/team.cljs | 2 +- .../app/main/ui/onboarding/team_choice.cljs | 4 +- .../src/app/main/ui/onboarding/templates.cljs | 2 +- .../src/app/main/ui/settings/sidebar.cljs | 2 +- .../app/main/ui/workspace/left_toolbar.cljs | 15 +- frontend/yarn.lock | 37 +- 32 files changed, 1285 insertions(+), 127 deletions(-) create mode 100644 frontend/cypress/fixtures/fonts/Viafont.otf create mode 100644 frontend/cypress/fixtures/fonts/blkchcry.ttf create mode 100644 frontend/cypress/integration/02-onboarding/onboarding-options.spec.js create mode 100644 frontend/cypress/integration/03-dashboard/files.spec.js create mode 100644 frontend/cypress/integration/03-dashboard/misc.spec.js create mode 100644 frontend/cypress/integration/03-dashboard/projects.spec.js create mode 100644 frontend/cypress/integration/03-dashboard/teams.spec.js delete mode 100644 frontend/cypress/integration/03-projects/projects.spec.js diff --git a/.gitignore b/.gitignore index 8edf733f89..67358d3dc4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ *-init.clj *.jar *.penpot +*.orig .calva .clj-kondo .cpcache diff --git a/frontend/cypress/fixtures/fonts/Viafont.otf b/frontend/cypress/fixtures/fonts/Viafont.otf new file mode 100644 index 0000000000000000000000000000000000000000..40a8470b486cc5838fc788db6828858a4dace12d GIT binary patch literal 11904 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 literal 0 HcmV?d00001 diff --git a/frontend/cypress/fixtures/fonts/blkchcry.ttf b/frontend/cypress/fixtures/fonts/blkchcry.ttf new file mode 100644 index 0000000000000000000000000000000000000000..cca50917c0378b525e5f19603b86aa17c670075d GIT binary patch literal 56732 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 F{yzig5I+C_ literal 0 HcmV?d00001 diff --git a/frontend/cypress/fixtures/validuser-sample.json b/frontend/cypress/fixtures/validuser-sample.json index 6bf5894a92..7301b2b7db 100644 --- a/frontend/cypress/fixtures/validuser-sample.json +++ b/frontend/cypress/fixtures/validuser-sample.json @@ -1,4 +1,5 @@ { "email": "validuser@penpot.app", - "password": "password" + "password": "password", + "team": "test team" } \ No newline at end of file diff --git a/frontend/cypress/integration/01-auth/create-account.spec.js b/frontend/cypress/integration/01-auth/create-account.spec.js index 84d390013c..3cc2b5269c 100644 --- a/frontend/cypress/integration/01-auth/create-account.spec.js +++ b/frontend/cypress/integration/01-auth/create-account.spec.js @@ -23,6 +23,17 @@ describe("account creation", () => { cy.getBySel("register-form-submit").should("exist"); }); + it("create an account", () => { + let email = "mail" + Date.now() +"@mail.com"; + cy.get("#email").type(email); + cy.get("#password").type("anewpassword"); + cy.get("input[type=submit]").click(); + cy.getBySel("register-title").should("exist"); + cy.get("#fullname").type("Test user") + cy.get("input[type=submit]").click(); + cy.get(".dashboard-layout").should("exist"); + }); + it("create an account of an existent email fails", () => { cy.get("#email").type(validUser.email); cy.get("#password").type("anewpassword"); diff --git a/frontend/cypress/integration/02-onboarding/onboarding-options.spec.js b/frontend/cypress/integration/02-onboarding/onboarding-options.spec.js new file mode 100644 index 0000000000..1db5d14d15 --- /dev/null +++ b/frontend/cypress/integration/02-onboarding/onboarding-options.spec.js @@ -0,0 +1,71 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright (c) UXBOX Labs SL + */ + + "use strict"; + + describe("onboarding options solo or team", () => { + beforeEach(() => { + cy.demoLogin(); + cy.get(".modal-right button").click(); + cy.get(".onboarding button").click(); + cy.get(".onboarding .skip").click(); + }); + + it("choose solo option", () => { + cy.getBySel("onboarding-welcome-title").should("exist"); + cy.getBySel("fly-solo-op").click(); + cy.getBySel("onboarding-templates-title").should("exist"); + }); + + it("choose team option and cancel", () => { + cy.getBySel("onboarding-welcome-title").should("exist"); + cy.getBySel("team-up-button").click(); + cy.getBySel("onboarding-choice-team-up").should("exist"); + cy.get("button").click(); + cy.getBySel("onboarding-welcome-title").should("exist"); + }); + + it("choose team option, set team name and cancel", () => { + cy.getBySel("onboarding-welcome-title").should("exist"); + cy.getBySel("team-up-button").click(); + cy.getBySel("onboarding-choice-team-up").should("exist"); + cy.get("#name").type("test team"); + cy.get("input[type=submit]").first().click(); + cy.get("#email").should("exist"); + cy.get("button").click(); + cy.getBySel("onboarding-welcome-title").should("exist"); + }); + + it("choose team option, set team name and skip", () => { + cy.getBySel("onboarding-welcome-title").should("exist"); + cy.getBySel("team-up-button").click(); + cy.getBySel("onboarding-choice-team-up").should("exist"); + cy.get("#name").type("test team"); + cy.get("input[type=submit]").first().click(); + cy.get("#email").should("exist"); + cy.get(".skip-action").click(); + cy.getBySel("onboarding-templates-title").should("exist"); + }); + + it("choose team option, set team name and invite", () => { + cy.getBySel("onboarding-welcome-title").should("exist"); + cy.getBySel("team-up-button").click(); + cy.getBySel("onboarding-choice-team-up").should("exist"); + cy.get("#name").type("test team"); + cy.get("input[type=submit]").first().click(); + cy.get("#email").should("exist"); + cy.get("#email").type("test@test.com"); + cy.get("input[type=submit]").first().click(); + cy.getBySel("onboarding-templates-title").should("exist"); + }); + + + + }); + + \ No newline at end of file diff --git a/frontend/cypress/integration/03-dashboard/files.spec.js b/frontend/cypress/integration/03-dashboard/files.spec.js new file mode 100644 index 0000000000..ff385c7a03 --- /dev/null +++ b/frontend/cypress/integration/03-dashboard/files.spec.js @@ -0,0 +1,489 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright (c) UXBOX Labs SL + */ + + "use strict"; + + import { + + createProject, + deleteFirstProject, + deleteFirstFile, + createFile + +} from '../../support/utils.js'; + + + + describe("files", () => { + beforeEach(() => { + cy.fixture('validuser.json').then((user) => { + cy.login(user.email, user.password); + createProject("test project" + Date.now()); + }); + + }); + + afterEach(() => { + //cleanup + deleteFirstProject(); + }); + + + it("can create a new file", () => { + cy.get(".grid-item").then((files) => { + cy.get('.project').first().find("[data-test=project-new-file]").click(); + cy.get("#workspace").should("exist"); + cy.get(".project-tree").should("contain", "New File"); + + //Go back + cy.get(".main-icon a").click(); + cy.get(".grid-item").should('have.length', files.length + 1); + }) + + }) + + it("can create a new file inside a project", () => { + cy.get(".project").first().find("h2").click(); + cy.get(".grid-item").should('have.length', 0); + createFile(); + cy.get(".grid-item").should('have.length', 1); + + //Go back + cy.get(".recent-projects").click(); + }) + + it("can create a new file inside a project with shortcut", () => { + cy.get(".project").first().find("h2").click(); + cy.get(".grid-item").should('have.length', 0); + cy.get("body").type("+"); + cy.get(".grid-item").should('have.length', 1); + + //Go back + cy.get(".recent-projects").click(); + }) + + it("can delete a file inside a project", () => { + cy.get(".project").first().find("h2").click(); + createFile(); + cy.get(".grid-item").should('have.length', 1); + cy.get('.menu') + .trigger('mouseover') + .click(); + cy.getBySel("file-delete").click(); + cy.get('.accept-button').click(); + cy.get(".grid-item").should('have.length', 0); + + //Go back + cy.get(".recent-projects").click(); + }) + + it("can cancel a file deletion inside a project", () => { + cy.get(".project").first().find("h2").click(); + createFile(); + cy.get(".grid-item").should('have.length', 1); + cy.get('.menu') + .trigger('mouseover') + .click(); + cy.getBySel("file-delete").click(); + cy.get('.cancel-button').click(); + cy.get(".grid-item").should('have.length', 1); + + //Go back + cy.get(".recent-projects").click(); + }) + + + it("can delete a file outside a project", () => { + cy.get(".project").first().find("h2").click(); + createFile(); + + //Go back + cy.get(".recent-projects").click(); + + cy.get(".grid-item").then((files) => { + cy.get('.menu') + .first() + .trigger('mouseover') + .click(); + cy.getBySel("file-delete").click(); + cy.get('.accept-button').click(); + cy.get(".grid-item").should('have.length', files.length-1); + }); + }) + + it("can cancel a file deletion outside a project", () => { + cy.get(".project").first().find("h2").click(); + createFile(); + + //Go back + cy.get(".recent-projects").click(); + + cy.get(".grid-item").then((files) => { + cy.get('.menu') + .first() + .trigger('mouseover') + .click(); + cy.getBySel("file-delete").click(); + cy.get('.cancel-button').click(); + cy.get(".grid-item").should('have.length', files.length); + }); + }) + + it("can rename a file", () => { + const fileName = "test file " + Date.now(); + + cy.get(".project").first().find("h2").click(); + createFile(); + + cy.get('.menu') + .trigger('mouseover') + .click(); + cy.getBySel("file-rename").click(); + cy.get(".edit-wrapper").should("exist"); + cy.get(".edit-wrapper").type(fileName + "{enter}"); + + cy.get(".grid-item").first().should("contain", fileName); + + //Go back + cy.get(".recent-projects").click(); + }) + + it("can duplicate a file", () => { + cy.get(".project").first().find("h2").click(); + createFile(); + + cy.get(".grid-item").should('have.length', 1); + cy.get('.menu') + .trigger('mouseover') + .click(); + cy.getBySel("file-duplicate").click(); + cy.get(".grid-item").should('have.length', 2); + + //Go back + cy.get(".recent-projects").click(); + }) + + + it("can move a file to another project", () => { + const projectToMoveName = "test project to move " + Date.now(); + const fileName = "test file " + Date.now(); + + createProject(projectToMoveName); + cy.get(".project").eq(1).find("h2").click(); + createFile(fileName); + + //TODO: Bug workaround. When a file is selected, it doesn't open context menu + cy.get(".dashboard-grid").click(); + + + cy.get('.menu') + .trigger('mouseover') + .click(); + cy.wait(500); + cy.getBySel("file-move-to").click(); + + cy.get('a').contains(projectToMoveName).click(); + + cy.getBySel("project-title").should("contain", projectToMoveName); + cy.get(".grid-item").should('have.length', 1); + cy.get(".grid-item").first().should("contain", fileName); + + + //Go back and cleanup: delete project + cy.get(".recent-projects").click(); + deleteFirstProject(); + }); + + + it("can move a file to another team", () => { + const fileName = "test file " + Date.now(); + cy.get(".project").first().find("h2").click(); + createFile(fileName); + + //TODO: Bug workaround. When a file is selected, it doesn't open context menu + cy.get(".dashboard-grid").click(); + + + cy.get('.menu') + .trigger('mouseover') + .click(); + cy.wait(500); + cy.getBySel("file-move-to").click(); + + cy.getBySel("move-to-other-team").click(); + cy.fixture('validuser.json').then((user) => { + cy.get('a').contains(user.team).click(); + cy.get('a').contains("Drafts").click(); + cy.get(".current-team").should("contain", user.team); + cy.get(".dashboard-title").should("contain", "Drafts"); + cy.get(".grid-item").first().should("contain", fileName); + }); + + + //cleanup + deleteFirstFile(); + cy.get(".current-team").click(); + cy.get(".team-name").contains("Your Penpot").click(); + }); + + + it("can make a file a shared library", () => { + cy.get(".project").first().find("h2").click(); + createFile(); + + cy.get(".icon-library").should('have.length', 0); + cy.get('.menu') + .trigger('mouseover') + .click(); + cy.getBySel("file-add-shared").click(); + cy.get(".accept-button").click(); + cy.get(".icon-library").should('have.length', 1); + + //Go back + cy.get(".recent-projects").click(); + }) + + it("can cancel make a file a shared library", () => { + cy.get(".project").first().find("h2").click(); + createFile(); + + cy.get(".icon-library").should('have.length', 0); + cy.get('.menu') + .trigger('mouseover') + .click(); + cy.getBySel("file-add-shared").click(); + cy.get(".modal-close-button").click(); + cy.get(".icon-library").should('have.length', 0); + + //Go back + cy.get(".recent-projects").click(); + }) + + + it("can remove a file as shared library", () => { + cy.get(".project").first().find("h2").click(); + createFile(); + + cy.get('.menu') + .trigger('mouseover') + .click(); + cy.getBySel("file-add-shared").click(); + cy.get(".accept-button").click(); + cy.get(".icon-library").should('have.length', 1); + + //TODO: Bug workaround. When a file is selected, it doesn't open context menu + cy.get(".dashboard-grid").click(); + + cy.get('.menu') + .trigger('mouseover') + .click(); + cy.getBySel("file-del-shared").click(); + cy.get(".accept-button").click(); + cy.get(".icon-library").should('have.length', 0); + + + //Go back + cy.get(".recent-projects").click(); + }) + + it("can cancel remove a file as shared library", () => { + cy.get(".project").first().find("h2").click(); + createFile(); + + cy.get('.menu') + .trigger('mouseover') + .click(); + cy.getBySel("file-add-shared").click(); + cy.get(".accept-button").click(); + cy.get(".icon-library").should('have.length', 1); + + //TODO: Bug workaround. When a file is selected, it doesn't open context menu + cy.get(".dashboard-grid").click(); + + cy.get('.menu') + .trigger('mouseover') + .click(); + cy.getBySel("file-del-shared").click(); + cy.get(".modal-close-button").click(); + cy.get(".icon-library").should('have.length', 1); + + + //Go back + cy.get(".recent-projects").click(); + }) + + + it("can search for a file", () => { + const fileName = "test file " + Date.now(); + + cy.get(".project").first().find("h2").click(); + createFile(fileName); + + cy.get("#search-input").type("bad name"); + cy.get(".grid-item").should('have.length', 0); + + cy.get("#search-input").clear().type(fileName); + cy.get(".grid-item").should('have.length', 1); + + //Go back + cy.get(".recent-projects").click(); + }) + + + it("can multiselect files", () => { + cy.get(".project").first().find("h2").click(); + createFile(); + createFile(); + createFile(); + + cy.get(".selected").should('have.length', 0); + + cy.get(".grid-item").eq(0).click({shiftKey: true}); + cy.get(".selected").should('have.length', 1); + + cy.get(".grid-item").eq(2).click({shiftKey: true}); + cy.get(".selected").should('have.length', 2); + + cy.get(".grid-item").eq(1).click({shiftKey: true}); + cy.get(".selected").should('have.length', 3); + + cy.get(".grid-item").eq(1).click({shiftKey: true}); + cy.get(".selected").should('have.length', 2); + + //Go back + cy.get(".recent-projects").click(); + }) + + it("can delete multiselected files", () => { + cy.get(".project").first().find("h2").click(); + createFile(); + createFile(); + createFile(); + + cy.get(".grid-item").eq(0).click({shiftKey: true}); + cy.get(".grid-item").eq(2).click({shiftKey: true}); + + cy.get(".grid-item").should('have.length', 3); + cy.get(".grid-item").eq(0).rightclick(); + cy.getBySel("delete-multi-files").should("contain", "Delete 2 files"); + cy.getBySel("delete-multi-files").click(); + cy.get('.accept-button').click(); + cy.get(".grid-item").should('have.length', 1); + + //Go back + cy.get(".recent-projects").click(); + }) + + it("can cancel delete multiselected files", () => { + cy.get(".project").first().find("h2").click(); + createFile(); + createFile(); + createFile(); + + cy.get(".grid-item").eq(0).click({shiftKey: true}); + cy.get(".grid-item").eq(2).click({shiftKey: true}); + + cy.get(".grid-item").should('have.length', 3); + cy.get(".grid-item").eq(0).rightclick(); + cy.getBySel("delete-multi-files").should("contain", "Delete 2 files"); + cy.getBySel("delete-multi-files").click(); + cy.get('.cancel-button').click(); + cy.get(".grid-item").should('have.length', 3); + + //Go back + cy.get(".recent-projects").click(); + }) + + + it("can duplicate multiselected files", () => { + cy.get(".project").first().find("h2").click(); + createFile(); + createFile(); + createFile(); + + cy.get(".grid-item").eq(0).click({shiftKey: true}); + cy.get(".grid-item").eq(2).click({shiftKey: true}); + + cy.get(".grid-item").should('have.length', 3); + cy.get(".grid-item").eq(0).rightclick(); + cy.getBySel("duplicate-multi").should("contain", "Duplicate 2 files"); + cy.getBySel("duplicate-multi").click(); + cy.get(".grid-item").should('have.length', 5); + + //Go back + cy.get(".recent-projects").click(); + }) + + it("can move multiselected files to another project", () => { + const projectToMoveName = "test project to move " + Date.now(); + createProject(projectToMoveName); + + cy.get(".project").eq(1).find("h2").click(); + createFile(); + createFile(); + createFile(); + + cy.get(".grid-item").eq(0).click({shiftKey: true}); + cy.get(".grid-item").eq(2).click({shiftKey: true}); + + + cy.get(".grid-item").eq(0).rightclick(); + cy.getBySel("move-to-multi").should("contain", "Move 2 files to"); + cy.getBySel("move-to-multi").click(); + cy.get('a').contains(projectToMoveName).click(); + + cy.getBySel("project-title").should("contain", projectToMoveName); + cy.get(".grid-item").should('have.length', 2); + + + //Go back + cy.get(".recent-projects").click(); + deleteFirstProject(); + }) + + + it("can move multiselected files to another team", () => { + const fileName1 = "test file " + Date.now(); + const fileName2 = "test file " + Date.now(); + const fileName3 = "test file " + Date.now(); + + cy.get(".project").first().find("h2").click(); + createFile(fileName1) + createFile(fileName2) + createFile(fileName3) + + + //multiselect first and third file + cy.get(".grid-item").eq(0).click({shiftKey: true}); + cy.get(".grid-item").eq(2).click({shiftKey: true}); + + + cy.get(".grid-item").eq(0).rightclick(); + cy.getBySel("move-to-multi").should("contain", "Move 2 files to"); + cy.getBySel("move-to-multi").click(); + cy.getBySel("move-to-other-team").click(); + cy.fixture('validuser.json').then((user) => { + cy.get('a').contains(user.team).click(); + cy.get('a').contains("Drafts").click(); + cy.get(".current-team").should("contain", user.team); + cy.get(".dashboard-title").should("contain", "Drafts"); + cy.get(".grid-item").eq(0).should("contain", fileName1); + cy.get(".grid-item").eq(1).should("contain", fileName2); + }); + + + //cleanup + deleteFirstFile() + deleteFirstFile() + cy.get(".current-team").click(); + cy.get(".team-name").contains("Your Penpot").click(); + }) + + }); + + diff --git a/frontend/cypress/integration/03-dashboard/misc.spec.js b/frontend/cypress/integration/03-dashboard/misc.spec.js new file mode 100644 index 0000000000..840d5b2961 --- /dev/null +++ b/frontend/cypress/integration/03-dashboard/misc.spec.js @@ -0,0 +1,150 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright (c) UXBOX Labs SL + */ + + "use strict"; + + import { + + deleteFirstFile, + deleteFirstFont + +} from '../../support/utils.js'; + + + +describe("comments", () => { + beforeEach(() => { + cy.fixture('validuser.json').then((user) => { + cy.login(user.email, user.password); + }); + + }); + + it("can open and close comments popup", () => { + cy.get(".comments-section").should("not.exist"); + cy.getBySel("open-comments").click(); + cy.get(".comments-section").should("exist"); + cy.getBySel("open-comments").click(); + cy.get(".comments-section").should("not.exist"); + }); + +}); + +describe("import and export", () => { + beforeEach(() => { + cy.fixture('validuser.json').then((user) => { + cy.login(user.email, user.password); + }); + }); + + it("can export a file", () => { + cy.get('.menu') + .first() + .trigger('mouseover') + .click(); + cy.getBySel("file-export").click(); + cy.get('.icon-tick').should("exist"); + }); + + it("can import a file", () => { + cy.get(".grid-item").then((files) => { + cy.get('.project').first().find("[data-test=project-options]").click(); + cy.getBySel("file-import").click(); + + cy.uploadBinaryFile("input[type=file]", "test-file-import.penpot"); + + cy.get(".accept-button").should('not.be.disabled'); + cy.get(".accept-button").click(); + cy.get(".accept-button").should('not.be.disabled'); + cy.get(".accept-button").click(); + cy.get(".grid-item").should('have.length', files.length+1); + }); + + //cleanup + deleteFirstFile() ; + }) + +}) + +describe("release notes", () => { + beforeEach(() => { + cy.fixture('validuser.json').then((user) => { + cy.login(user.email, user.password); + }); + }); + + it("can show release notes", () => { + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").click(); + cy.get(".onboarding").should("not.exist"); + cy.getBySel("release-notes").click(); + cy.get(".onboarding").should("exist"); + }); +}); + +describe("fonts", () => { + beforeEach(() => { + cy.fixture('validuser.json').then((user) => { + cy.login(user.email, user.password); + }); + }); + + it("can upload a font file", () => { + cy.getBySel("fonts").click(); + cy.get(".font-item").should('have.length', 0); + cy.uploadBinaryFile("#font-upload", "fonts/Viafont.otf"); + cy.get(".upload-button").click(); + cy.get(".font-item").should('have.length', 1); + + //cleanup + deleteFirstFont(); + + }); + + it("can upload multiple font files", () => { + cy.getBySel("fonts").click(); + cy.get(".font-item").should('have.length', 0); + cy.uploadBinaryFile("#font-upload", "fonts/Viafont.otf"); + cy.uploadBinaryFile("#font-upload", "fonts/blkchcry.ttf"); + cy.getBySel("upload-all").click(); + cy.get(".font-item").should('have.length', 2); + + //cleanup + deleteFirstFont(); + deleteFirstFont(); + }); + + it("can dismiss multiple font files", () => { + cy.getBySel("fonts").click(); + cy.get(".font-item").should('have.length', 0); + cy.uploadBinaryFile("#font-upload", "fonts/Viafont.otf"); + cy.uploadBinaryFile("#font-upload", "fonts/blkchcry.ttf"); + cy.getBySel("dismiss-all").click(); + cy.get(".font-item").should('have.length', 0); + }); + + it("can rename a font", () => { + const fontName = "test font " + Date.now(); + + //Upload a font + cy.getBySel("fonts").click(); + cy.uploadBinaryFile("#font-upload", "fonts/Viafont.otf"); + cy.get(".upload-button").click(); + cy.get(".font-item").should('have.length', 1); + + //Rename font + cy.get(".font-item .options").first().click(); + cy.getBySel("font-edit").click(); + cy.get(".dashboard-installed-fonts input[value=Viafont]").type(fontName+"{enter}"); + cy.get(".dashboard-installed-fonts").should("contain", fontName); + + //cleanup + deleteFirstFont(); + + }); +}); \ No newline at end of file diff --git a/frontend/cypress/integration/03-dashboard/projects.spec.js b/frontend/cypress/integration/03-dashboard/projects.spec.js new file mode 100644 index 0000000000..d2b94aac56 --- /dev/null +++ b/frontend/cypress/integration/03-dashboard/projects.spec.js @@ -0,0 +1,153 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright (c) UXBOX Labs SL + */ + + "use strict"; + + import { + + createProject, + deleteFirstProject + +} from '../../support/utils.js'; + + + + describe("projects", () => { + beforeEach(() => { + cy.fixture('validuser.json').then((user) => { + cy.login(user.email, user.password) + }); + + }); + + it("displays the projects page", () => { + cy.get(".dashboard-title").should("contain", "Projects"); + }); + + it("can create a new project", () => { + let projectName = "test project " + Date.now(); + cy.get(".project").then((projects) => { + cy.getBySel("new-project-button").click(); + cy.get('.project').should('have.length', projects.length + 1); + cy.get('.project').first().find(".edit-wrapper").type(projectName + "{enter}") + cy.get('.project').first().find("h2").should("contain", projectName); + + //cleanup: delete project + deleteFirstProject(); + }) + + }) + + it("can rename a project", () => { + let projectName = "test project " + Date.now(); + let projectName2 = "renamed project " + Date.now(); + + createProject(projectName); + + cy.get('.project').first().find("h2").should("contain", projectName); + cy.get('.project').first().find("[data-test=project-options]").click(); + cy.get('.project').first().find("[data-test=project-rename]").click(); + cy.get('.project').first().find(".edit-wrapper").type(projectName2 + "{enter}") + cy.get('.project').first().find("h2").should("contain", projectName2) + + //cleanup: delete project + deleteFirstProject(); + }); + + it("can delete a project", () => { + createProject(); + cy.get(".project").then((projects) => { + cy.get('.project').first().find("[data-test=project-options]").click(); + cy.wait(500); + cy.getBySel("project-delete").click(); + cy.wait(500); + cy.get('.accept-button').click(); + cy.wait(500); + + cy.get('.project').should('have.length', projects.length - 1); + }) + }); + + it("can cancel the deletion of a project", () => { + createProject(); + cy.get(".project").then((projects) => { + cy.get('.project').first().find("[data-test=project-options]").click(); + cy.wait(500); + cy.getBySel("project-delete").click(); + cy.wait(500); + cy.get('.cancel-button').click(); + cy.wait(500); + + cy.get('.project').should('have.length', projects.length); + + + //cleanup: delete project + deleteFirstProject(); + }) + }); + + it("can duplicate a project", () => { + let projectName = "test project " + Date.now(); + createProject(projectName); + cy.get('.project').first().find("[data-test=project-options]").click(); + cy.wait(500); + cy.getBySel("project-duplicate").click(); + cy.getBySel("project-title").should("exist"); + cy.getBySel("project-title").should("contain", projectName+" ("); + + + //cleanup: delete project + cy.get(".recent-projects").click(); + deleteFirstProject(); + deleteFirstProject(); + }); + + + it("can move a project to a team", () => { + let projectName = "test project " + Date.now(); + createProject(projectName); + + cy.fixture('validuser.json').then((user) => { + cy.get('.project').first().find("[data-test=project-options]").click(); + cy.get('.project').first().find("[data-test=project-move-to]").click(); + cy.get('a').contains(user.team).click(); + + cy.get(".current-team").should("contain", user.team); + cy.get(".project").first().should("contain", projectName); + + + //cleanup: delete project + deleteFirstProject(); + }); + }); + + + it("pin and unpin project to sidebar", () => { + let projectName = "test project " + Date.now(); + createProject(projectName); + + cy.get(".project").first().find(".icon-pin-fill").should("exist"); + cy.getBySel("pinned-projects").should("contain", projectName); + + //unpin + cy.get(".project").first().find(".pin-icon").click(); + cy.get(".project").first().find(".icon-pin-fill").should("not.exist"); + cy.getBySel("pinned-projects").should("not.contain", projectName); + + //pin + cy.get(".project").first().find(".pin-icon").click(); + cy.get(".project").first().find(".icon-pin-fill").should("exist"); + cy.getBySel("pinned-projects").should("contain", projectName); + + //cleanup: delete project + deleteFirstProject(); + }); + + }); + + diff --git a/frontend/cypress/integration/03-dashboard/teams.spec.js b/frontend/cypress/integration/03-dashboard/teams.spec.js new file mode 100644 index 0000000000..98071e3d2f --- /dev/null +++ b/frontend/cypress/integration/03-dashboard/teams.spec.js @@ -0,0 +1,155 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright (c) UXBOX Labs SL + */ + + "use strict"; + + import { + + createTeam, + deleteCurrentTeam + + } from '../../support/utils.js'; + + + describe("teams", () => { + beforeEach(() => { + cy.fixture('validuser.json').then((user) => { + cy.login(user.email, user.password); + }); + + }); + + it("can create a new team", () => { + const teamName = "test team " + Date.now(); + cy.get(".current-team").click(); + cy.getBySel("create-new-team").click(); + cy.get("#name").type(teamName); + cy.get("input[type=submit]").click(); + + cy.get(".current-team").should("contain", teamName); + + //cleanup + deleteCurrentTeam(); + + }) + + it("can cancel create a new team", () => { + cy.get(".current-team").click(); + cy.getBySel("create-new-team").click(); + cy.get(".modal-close-button").click(); + + cy.get(".current-team").should("contain", "Your Penpot"); + }) + + it("can delete a team", () => { + const teamName = "test team " + Date.now(); + createTeam(teamName); + + cy.get(".icon-actions").first().click(); + cy.getBySel("delete-team").click(); + cy.get(".accept-button").click(); + cy.get(".current-team").should("contain", "Your Penpot"); + }) + + it("can cancel the deletion of a team", () => { + const teamName = "test team " + Date.now(); + createTeam(teamName); + + cy.get(".icon-actions").first().click(); + cy.getBySel("delete-team").click(); + cy.get(".cancel-button").click(); + cy.get(".current-team").should("contain", teamName); + + + //cleanup + deleteCurrentTeam(); + }) + + it("can see the members page of a team", () => { + const teamName = "test team " + Date.now(); + createTeam(teamName); + + cy.get(".icon-actions").first().click(); + cy.getBySel("team-members").click(); + + cy.get(".dashboard-title").should("contain", "Members"); + cy.fixture('validuser.json').then((user) => { + cy.get(".dashboard-table").should("contain", user.email); + }); + + //cleanup + deleteCurrentTeam(); + }) + + it("can invite someone to a team", () => { + const teamName = "test team " + Date.now(); + createTeam(teamName); + + cy.get(".icon-actions").first().click(); + cy.getBySel("team-members").click(); + + cy.getBySel("invite-member").click(); + cy.get("#email").type("mail@mail.com"); + cy.get(".custom-select select").select("admin"); + cy.get("input[type=submit]").click(); + + cy.get(".success").should("exist"); + + //cleanup + deleteCurrentTeam(); + }) + + it("can see the settings page of a team", () => { + const teamName = "test team " + Date.now(); + createTeam(teamName); + + cy.get(".icon-actions").first().click(); + cy.getBySel("team-settings").click(); + + cy.get(".dashboard-title").should("contain", "Settings"); + + cy.get(".team-settings .name").should("contain", teamName); + + //cleanup + deleteCurrentTeam(); + }) + + it("can rename team", () => { + const teamName = "test team " + Date.now(); + const newTeamName = "test team " + Date.now(); + createTeam(teamName); + + cy.get(".icon-actions").first().click(); + cy.getBySel("rename-team").click(); + cy.get("#name").type(newTeamName); + cy.get("input[type=submit]").click(); + + cy.get(".current-team").should("contain", newTeamName); + + //cleanup + deleteCurrentTeam(); + }) + + it("can cancel the rename of a team", () => { + const teamName = "test team " + Date.now(); + createTeam(teamName); + + cy.get(".icon-actions").first().click(); + cy.getBySel("rename-team").click(); + cy.get(".modal-close-button").click(); + + cy.get(".current-team").should("contain", teamName); + + //cleanup + deleteCurrentTeam(); + }) + + + + +}) \ No newline at end of file diff --git a/frontend/cypress/integration/03-projects/projects.spec.js b/frontend/cypress/integration/03-projects/projects.spec.js deleted file mode 100644 index 97743c085c..0000000000 --- a/frontend/cypress/integration/03-projects/projects.spec.js +++ /dev/null @@ -1,25 +0,0 @@ -/** - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * Copyright (c) UXBOX Labs SL - */ - - "use strict"; - - describe("projects", () => { - beforeEach(() => { - cy.fixture('validuser.json').then((user) => { - cy.login(user.email, user.password) - }); - - }); - - it("displays the projects page", () => { - cy.get(".dashboard-title").should("exist"); - }); - - }); - - \ No newline at end of file diff --git a/frontend/cypress/integration/09-draw/draw-shapes.spec.js b/frontend/cypress/integration/09-draw/draw-shapes.spec.js index c9ab4784ff..46e7970f79 100644 --- a/frontend/cypress/integration/09-draw/draw-shapes.spec.js +++ b/frontend/cypress/integration/09-draw/draw-shapes.spec.js @@ -18,48 +18,48 @@ describe("draw shapes", () => { }); it("draw an artboard", () => { - cy.get(".viewport-controls rect").should("not.exist"); - cy.get(".left-toolbar-options li[alt='Artboard (A)']").click(); + cy.get(".render-shapes rect").should("not.exist"); + cy.getBySel("artboard-btn").click(); cy.drawInViewport(300, 300, 400, 450); - cy.get(".viewport-controls rect").first().as("artboard"); + cy.get(".render-shapes rect").first().as("artboard"); cy.get("@artboard").should("exist"); cy.get("@artboard").invoke("attr", "width").should("eq", "100"); cy.get("@artboard").invoke("attr", "height").should("eq", "150"); }); it("draw a square", () => { - cy.get(".viewport-controls rect").should("not.exist"); - cy.get(".left-toolbar-options li[alt='Rectangle (R)']").click(); + cy.get(".render-shapes rect").should("not.exist"); + cy.getBySel("rect-btn").click(); cy.drawInViewport(300, 300, 400, 450); - cy.get(".viewport-controls rect").should("exist"); - cy.get(".viewport-controls rect") + cy.get(".render-shapes rect").should("exist"); + cy.get(".render-shapes rect") .invoke("attr", "width") .should("eq", "100"); - cy.get(".viewport-controls rect") + cy.get(".render-shapes rect") .invoke("attr", "height") .should("eq", "150"); }); it("draw an ellipse", () => { - cy.get(".viewport-controls ellipse").should("not.exist"); - cy.get(".left-toolbar-options li[alt='Ellipse (E)']").click(); + cy.get(".render-shapes ellipse").should("not.exist"); + cy.getBySel("ellipse-btn").click(); cy.drawInViewport(300, 300, 400, 450); - cy.get(".viewport-controls ellipse").as("ellipse"); + cy.get(".render-shapes ellipse").as("ellipse"); cy.get("@ellipse").should("exist"); cy.get("@ellipse").invoke("attr", "rx").should("eq", "50"); cy.get("@ellipse").invoke("attr", "ry").should("eq", "75"); }); it("draw a curve", () => { - cy.get(".viewport-controls path").should("not.exist"); - cy.get(".left-toolbar-options li[alt='Curve (Shift+C)']").click(); + cy.get(".render-shapes path").should("not.exist"); + cy.getBySel("curve-btn").click(); cy.drawMultiInViewport([ { x: 300, y: 300 }, { x: 350, y: 300 }, { x: 300, y: 350 }, { x: 400, y: 450 }, ]); - cy.get(".viewport-controls path").as("curve"); + cy.get(".render-shapes path").as("curve"); cy.get("@curve").should("exist"); cy.get("@curve") .invoke("attr", "d") @@ -67,8 +67,8 @@ describe("draw shapes", () => { }); it("draw a path", () => { - cy.get(".viewport-controls path").should("not.exist"); - cy.get(".left-toolbar-options li[alt='Path (P)']").click(); + cy.get(".render-shapes path").should("not.exist"); + cy.getBySel("path-btn").click(); cy.clickMultiInViewport([ { x: 300, y: 300 }, { x: 350, y: 300 }, @@ -81,7 +81,7 @@ describe("draw shapes", () => { true ); cy.clickMultiInViewport([{ x: 300, y: 300 }]); - cy.get(".viewport-controls path").as("curve"); + cy.get(".render-shapes path").as("curve"); cy.get("@curve").should("exist"); cy.get("@curve") .invoke("attr", "d") diff --git a/frontend/cypress/support/commands.js b/frontend/cypress/support/commands.js index 9283cca5eb..fa5cee7418 100644 --- a/frontend/cypress/support/commands.js +++ b/frontend/cypress/support/commands.js @@ -88,7 +88,7 @@ Cypress.Commands.add('clickMultiInViewport', (coords) => { Cypress.Commands.add('clearViewport', () => { cy.get(".viewport-controls").type('{ctrl}a'); cy.get(".viewport-controls").type('{del}'); - cy.window().its("debug").invoke('reset_viewport') + cy.window().its("debug").invoke('reset_viewport'); }) Cypress.Commands.add('getBySel', (selector, ...args) => { @@ -97,4 +97,18 @@ Cypress.Commands.add('getBySel', (selector, ...args) => { Cypress.Commands.add('getBySelLike', (selector, ...args) => { return cy.get(`[data-test*=${selector}]`, ...args) -}) \ No newline at end of file +}) + +Cypress.Commands.add('uploadBinaryFile', (fileInputSelector, fileName) => { + cy.fixture(fileName, "binary") + .then(Cypress.Blob.binaryStringToBlob) + .then(fileContent => { + cy.get(fileInputSelector).attachFile({ + fileContent, + filePath: fileName, + encoding: 'utf-8', + lastModified: new Date().getTime() + }); + }); +}) + diff --git a/frontend/cypress/support/utils.js b/frontend/cypress/support/utils.js index ee5ea66afb..595f71ced8 100644 --- a/frontend/cypress/support/utils.js +++ b/frontend/cypress/support/utils.js @@ -5,8 +5,71 @@ export const checkOnboardingSlide = (number, checkSkip) => { cy.getBySel(`slide-${number}-btn`).should("exist"); cy.getBySel(`slide-${number}-btn`).click(); }; +export const deleteFirstProject = () => { + cy.get('.project').first().find("[data-test=project-options]").click(); + cy.wait(500); + cy.get('.project').first().find("[data-test=project-delete]").click(); + cy.wait(500); + cy.get('.accept-button').click(); + } + + export const createProject = (projectName="") => { + cy.getBySel("new-project-button").click(); + cy.wait(500); + cy.get('.project').first().find(".edit-wrapper").type(projectName + "{enter}"); + cy.wait(500); + } + + + export const deleteFirstFile = () => { + cy.get('.menu') + .first() + .trigger('mouseover') + .click(); + cy.getBySel("file-delete").click(); + cy.get('.accept-button').click(); + } + + + export const createFile = (fileName="", projectNum=0) => { + cy.getBySel("new-file").click(); + cy.wait(500); + if (fileName !=""){ + cy.get('.menu') + .first() + .trigger('mouseover') + .click(); + cy.getBySel("file-rename").click(); + cy.get(".edit-wrapper").type(fileName + "{enter}"); + //TODO: Bug workaround. When a file is selected, it doesn't open context menu + cy.get(".dashboard-grid").click(); + } + } + + export const createTeam = (teamName) => { + cy.get(".current-team").click(); + cy.getBySel("create-new-team").click(); + cy.get("#name").type(teamName); + cy.get("input[type=submit]").click(); + cy.wait(500); + } + + export const deleteCurrentTeam = () => { + cy.get(".icon-actions").first().click(); + cy.getBySel("delete-team").click(); + cy.get(".accept-button").click(); + } + + + export const goToSlideByNumber = (number) => { cy.get(`.step-dots li:nth-child(${number})`).click(); cy.getBySel(`slide-${number -1}-btn`).should("exist"); +}; + +export const deleteFirstFont = () => { + cy.get(".font-item .options").first().click(); + cy.getBySel("font-delete").click(); + cy.get(".accept-button").click(); }; \ No newline at end of file diff --git a/frontend/package-lock.json b/frontend/package-lock.json index e48a53af41..2486f8650f 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -32,7 +32,8 @@ }, "devDependencies": { "autoprefixer": "^10.4.1", - "cypress": "^9.2.1", + "cypress": "^9.3.1", + "cypress-file-upload": "^5.0.8", "gettext-parser": "^4.2.0", "gulp": "4.0.2", "gulp-concat": "^2.6.1", @@ -385,11 +386,10 @@ "license": "MIT" }, "node_modules/@types/sinonjs__fake-timers": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz", - "integrity": "sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A==", - "dev": true, - "license": "MIT" + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true }, "node_modules/@types/sizzle": { "version": "2.3.3", @@ -2539,20 +2539,21 @@ "license": "MIT" }, "node_modules/cypress": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.2.1.tgz", - "integrity": "sha512-LVEe4yWCo4xO0Vd8iYjFHRyd5ulRvM56XqMgAdn05Qb9kJ6iJdO/MmjKD8gNd768698cp1FDuSmFQZHVZGk+Og==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.3.1.tgz", + "integrity": "sha512-BODdPesxX6bkVUnH8BVsV8I/jn57zQtO1FEOUTiuG2us3kslW7g0tcuwiny7CKCmJUZz8S/D587ppC+s58a+5Q==", "dev": true, "hasInstallScript": true, "dependencies": { "@cypress/request": "^2.88.10", "@cypress/xvfb": "^1.2.4", "@types/node": "^14.14.31", - "@types/sinonjs__fake-timers": "^6.0.2", + "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "arch": "^2.2.0", "blob-util": "^2.0.2", - "bluebird": "3.7.2", + "bluebird": "^3.7.2", + "buffer": "^5.6.0", "cachedir": "^2.3.0", "chalk": "^4.1.0", "check-more-types": "^2.24.0", @@ -2594,6 +2595,42 @@ "node": ">=12.0.0" } }, + "node_modules/cypress-file-upload": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz", + "integrity": "sha512-+8VzNabRk3zG6x8f8BWArF/xA/W0VK4IZNx3MV0jFWrJS/qKn8eHfa5nU73P9fOQAgwHFJx7zjg4lwOnljMO8g==", + "dev": true, + "engines": { + "node": ">=8.2.1" + }, + "peerDependencies": { + "cypress": ">3.0.0" + } + }, + "node_modules/cypress/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/cypress/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -12105,9 +12142,9 @@ "dev": true }, "@types/sinonjs__fake-timers": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz", - "integrity": "sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", "dev": true }, "@types/sizzle": { @@ -13707,19 +13744,20 @@ "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" }, "cypress": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.2.1.tgz", - "integrity": "sha512-LVEe4yWCo4xO0Vd8iYjFHRyd5ulRvM56XqMgAdn05Qb9kJ6iJdO/MmjKD8gNd768698cp1FDuSmFQZHVZGk+Og==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.3.1.tgz", + "integrity": "sha512-BODdPesxX6bkVUnH8BVsV8I/jn57zQtO1FEOUTiuG2us3kslW7g0tcuwiny7CKCmJUZz8S/D587ppC+s58a+5Q==", "dev": true, "requires": { "@cypress/request": "^2.88.10", "@cypress/xvfb": "^1.2.4", "@types/node": "^14.14.31", - "@types/sinonjs__fake-timers": "^6.0.2", + "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "arch": "^2.2.0", "blob-util": "^2.0.2", - "bluebird": "3.7.2", + "bluebird": "^3.7.2", + "buffer": "^5.6.0", "cachedir": "^2.3.0", "chalk": "^4.1.0", "check-more-types": "^2.24.0", @@ -13755,6 +13793,16 @@ "yauzl": "^2.10.0" }, "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -13808,6 +13856,13 @@ } } }, + "cypress-file-upload": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz", + "integrity": "sha512-+8VzNabRk3zG6x8f8BWArF/xA/W0VK4IZNx3MV0jFWrJS/qKn8eHfa5nU73P9fOQAgwHFJx7zjg4lwOnljMO8g==", + "dev": true, + "requires": {} + }, "d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", diff --git a/frontend/package.json b/frontend/package.json index 1d1a8d8404..827e6a9463 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -25,7 +25,7 @@ }, "devDependencies": { "autoprefixer": "^10.4.1", - "cypress": "^9.2.1", + "cypress": "^9.3.1", "cypress-file-upload": "^5.0.8", "gettext-parser": "^4.2.0", "gulp": "4.0.2", diff --git a/frontend/src/app/main/ui/auth/register.cljs b/frontend/src/app/main/ui/auth/register.cljs index 9fabc8d5c6..6516c43a4c 100644 --- a/frontend/src/app/main/ui/auth/register.cljs +++ b/frontend/src/app/main/ui/auth/register.cljs @@ -237,7 +237,7 @@ (mf/defc register-validate-page [{:keys [params] :as props}] [:div.form-container - [:h1 (tr "auth.register-title")] + [:h1 {:data-test "register-title"} (tr "auth.register-title")] [:div.subtitle (tr "auth.register-subtitle")] [:& register-validate-form {:params params}] diff --git a/frontend/src/app/main/ui/components/context_menu.cljs b/frontend/src/app/main/ui/components/context_menu.cljs index b83efcc14a..908e992e48 100644 --- a/frontend/src/app/main/ui/components/context_menu.cljs +++ b/frontend/src/app/main/ui/components/context_menu.cljs @@ -101,7 +101,7 @@ [:span i/arrow-slide] parent-option]] [:li.separator]]) - (for [[index [option-name option-handler sub-options]] (d/enumerate (:options level))] + (for [[index [option-name option-handler sub-options data-test]] (d/enumerate (:options level))] (when option-name (if (= option-name :separator) [:li.separator] @@ -111,12 +111,14 @@ (if-not sub-options [:a.context-menu-action {:on-click #(do (dom/stop-propagation %) (on-close) - (option-handler %))} + (option-handler %)) + :data-test data-test} (if (and in-dashboard? (= option-name "Default")) (tr "dashboard.default-team-name") option-name)] [:a.context-menu-action.submenu {:data-no-close true - :on-click (enter-submenu option-name sub-options)} + :on-click (enter-submenu option-name sub-options) + :data-test data-test} option-name [:span i/arrow-slide]])])))])]]))) diff --git a/frontend/src/app/main/ui/dashboard/comments.cljs b/frontend/src/app/main/ui/dashboard/comments.cljs index 4fd92a4745..582ea47ac4 100644 --- a/frontend/src/app/main/ui/dashboard/comments.cljs +++ b/frontend/src/app/main/ui/dashboard/comments.cljs @@ -55,6 +55,7 @@ [:div.dashboard-comments-section [:div.button {:on-click show-dropdown + :data-test "open-comments" :class (dom/classnames :open @show-dropdown? :unread (boolean (seq tgroups)))} i/chat] diff --git a/frontend/src/app/main/ui/dashboard/file_menu.cljs b/frontend/src/app/main/ui/dashboard/file_menu.cljs index dba16d15b1..085f26b9bc 100644 --- a/frontend/src/app/main/ui/dashboard/file_menu.cljs +++ b/frontend/src/app/main/ui/dashboard/file_menu.cljs @@ -203,27 +203,28 @@ (for [sub-project (:projects team)] [(get-project-name sub-project) (on-move (:id team) - (:id sub-project))])])])) + (:id sub-project))])]) + "move-to-other-team"])) options (if multi? - [[(tr "dashboard.duplicate-multi" file-count) on-duplicate] + [[(tr "dashboard.duplicate-multi" file-count) on-duplicate nil "duplicate-multi"] (when (or (seq current-projects) (seq other-teams)) - [(tr "dashboard.move-to-multi" file-count) nil sub-options]) + [(tr "dashboard.move-to-multi" file-count) nil sub-options "move-to-multi"]) [(tr "dashboard.export-multi" file-count) on-export-files] [:separator] - [(tr "labels.delete-multi-files" file-count) on-delete]] + [(tr "labels.delete-multi-files" file-count) on-delete nil "delete-multi-files"]] [[(tr "dashboard.open-in-new-tab") on-new-tab] - [(tr "labels.rename") on-edit] - [(tr "dashboard.duplicate") on-duplicate] + [(tr "labels.rename") on-edit nil "file-rename"] + [(tr "dashboard.duplicate") on-duplicate nil "file-duplicate"] (when (or (seq current-projects) (seq other-teams)) - [(tr "dashboard.move-to") nil sub-options]) + [(tr "dashboard.move-to") nil sub-options "file-move-to"]) (if (:is-shared file) - [(tr "dashboard.remove-shared") on-del-shared] - [(tr "dashboard.add-shared") on-add-shared]) - [(tr "dashboard.export-single") on-export-files] + [(tr "dashboard.remove-shared") on-del-shared nil "file-del-shared"] + [(tr "dashboard.add-shared") on-add-shared nil "file-add-shared"]) + [(tr "dashboard.export-single") on-export-files nil "file-export"] [:separator] - [(tr "labels.delete") on-delete]])] + [(tr "labels.delete") on-delete nil "file-delete"]])] [:& context-menu {:on-close on-menu-close :show show? diff --git a/frontend/src/app/main/ui/dashboard/files.cljs b/frontend/src/app/main/ui/dashboard/files.cljs index 9d050206ab..770b67f54f 100644 --- a/frontend/src/app/main/ui/dashboard/files.cljs +++ b/frontend/src/app/main/ui/dashboard/files.cljs @@ -70,7 +70,7 @@ (with-meta {::ev/origin "project"})))) (swap! local assoc :edition false)))}] [:div.dashboard-title - [:h1 {:on-double-click on-edit} + [:h1 {:on-double-click on-edit :data-test "project-title"} (:name project)]])) [:& project-menu {:project project @@ -82,7 +82,7 @@ :on-import on-import}] [:div.dashboard-header-actions - [:a.btn-secondary.btn-small {:on-click on-create-clicked} + [:a.btn-secondary.btn-small {:on-click on-create-clicked :data-test "new-file"} (tr "dashboard.new-file")] (when-not (:is-default project) diff --git a/frontend/src/app/main/ui/dashboard/fonts.cljs b/frontend/src/app/main/ui/dashboard/fonts.cljs index 0199f42130..706bc1fb68 100644 --- a/frontend/src/app/main/ui/dashboard/fonts.cljs +++ b/frontend/src/app/main/ui/dashboard/fonts.cljs @@ -149,10 +149,10 @@ [:span (tr "dashboard.fonts.fonts-added" (i18n/c (count (vals @fonts))))] [:div.table-field.options [:div.btn-primary - {:on-click #(on-upload-all (vals @fonts))} + {:on-click #(on-upload-all (vals @fonts)) :data-test "upload-all"} [:span (tr "dashboard.fonts.upload-all")]] [:div.btn-secondary - {:on-click #(on-dismiss-all (vals @fonts))} + {:on-click #(on-dismiss-all (vals @fonts)) :data-test "dismiss-all"} [:span (tr "dashboard.fonts.dismiss-all")]]]]) (for [item (sort-by :font-family (vals @fonts))] @@ -277,8 +277,8 @@ :fixed? false :top -15 :left -115 - :options [[(tr "labels.edit") #(reset! edit? true)] - [(tr "labels.delete") on-delete]]}]])])) + :options [[(tr "labels.edit") #(reset! edit? true) nil "font-edit"] + [(tr "labels.delete") on-delete nil "font-delete"]]}]])])) (mf/defc installed-fonts diff --git a/frontend/src/app/main/ui/dashboard/import.cljs b/frontend/src/app/main/ui/dashboard/import.cljs index 6edfbb955b..1f80a452dd 100644 --- a/frontend/src/app/main/ui/dashboard/import.cljs +++ b/frontend/src/app/main/ui/dashboard/import.cljs @@ -21,7 +21,7 @@ [potok.core :as ptk] [rumext.alpha :as mf])) -(log/set-level! :warn) +(log/set-level! :debug) (def ^:const emit-delay 1000) diff --git a/frontend/src/app/main/ui/dashboard/project_menu.cljs b/frontend/src/app/main/ui/dashboard/project_menu.cljs index 1df2385378..c374ef16de 100644 --- a/frontend/src/app/main/ui/dashboard/project_menu.cljs +++ b/frontend/src/app/main/ui/dashboard/project_menu.cljs @@ -108,19 +108,20 @@ :top top :left left :options [(when-not (:is-default project) - [(tr "labels.rename") on-edit]) + [(tr "labels.rename") on-edit nil "project-rename"]) (when-not (:is-default project) - [(tr "dashboard.duplicate") on-duplicate]) + [(tr "dashboard.duplicate") on-duplicate nil "project-duplicate"]) (when-not (:is-default project) [(tr "dashboard.pin-unpin") toggle-pin]) (when (and (seq teams) (not (:is-default project))) [(tr "dashboard.move-to") nil (for [team teams] - [(:name team) (on-move (:id team))])]) + [(:name team) (on-move (:id team))]) + "project-move-to"]) (when (some? on-import) - [(tr "dashboard.import") on-import-files]) + [(tr "dashboard.import") on-import-files nil "file-import"]) (when-not (:is-default project) [:separator]) (when-not (:is-default project) - [(tr "labels.delete") on-delete])]}]])) + [(tr "labels.delete") on-delete nil "project-delete"])]}]])) diff --git a/frontend/src/app/main/ui/dashboard/projects.cljs b/frontend/src/app/main/ui/dashboard/projects.cljs index 9a3ddc966b..b8352a11f4 100644 --- a/frontend/src/app/main/ui/dashboard/projects.cljs +++ b/frontend/src/app/main/ui/dashboard/projects.cljs @@ -30,7 +30,7 @@ [:div.dashboard-title [:h1 (tr "dashboard.projects-title")]] - [:a.btn-secondary.btn-small {:on-click create} + [:a.btn-secondary.btn-small {:on-click create :data-test "new-project-button"} (tr "dashboard.new-project")]])) (mf/defc project-item @@ -140,11 +140,11 @@ i/pin)]) [:a.btn-secondary.btn-small.tooltip.tooltip-bottom - {:on-click create-file :alt (tr "dashboard.new-file")} + {:on-click create-file :alt (tr "dashboard.new-file") :data-test "project-new-file"} i/close] [:a.btn-secondary.btn-small.tooltip.tooltip-bottom - {:on-click on-menu-click :alt (tr "dashboard.options")} + {:on-click on-menu-click :alt (tr "dashboard.options") :data-test "project-options"} i/actions]] [:& line-grid diff --git a/frontend/src/app/main/ui/dashboard/sidebar.cljs b/frontend/src/app/main/ui/dashboard/sidebar.cljs index f632ca2f4a..5f0c3f7153 100644 --- a/frontend/src/app/main/ui/dashboard/sidebar.cljs +++ b/frontend/src/app/main/ui/dashboard/sidebar.cljs @@ -221,7 +221,7 @@ [:span.team-text {:title (:name team)} (:name team)]]]) [:hr] - [:li.action {:on-click on-create-clicked} + [:li.action {:on-click on-create-clicked :data-test "create-new-team"} (tr "dashboard.create-new-team")]])) (s/def ::member-id ::us/uuid) @@ -349,21 +349,21 @@ :on-accept delete-fn}))] [:ul.dropdown.options-dropdown - [:li {:on-click go-members} (tr "labels.members")] - [:li {:on-click go-settings} (tr "labels.settings")] + [:li {:on-click go-members :data-test "team-members"} (tr "labels.members")] + [:li {:on-click go-settings :data-test "team-settings"} (tr "labels.settings")] [:hr] - [:li {:on-click on-rename-clicked} (tr "labels.rename")] + [:li {:on-click on-rename-clicked :data-test "rename-team"} (tr "labels.rename")] (cond (get-in team [:permissions :is-owner]) - [:li {:on-click on-leave-as-owner-clicked} (tr "dashboard.leave-team")] + [:li {:on-click on-leave-as-owner-clicked :data-test "leave-team"} (tr "dashboard.leave-team")] (> (count members) 1) [:li {:on-click on-leave-clicked} (tr "dashboard.leave-team")]) (when (get-in team [:permissions :is-owner]) - [:li {:on-click on-delete-clicked} (tr "dashboard.delete-team")])])) + [:li {:on-click on-delete-clicked :data-test "delete-team"} (tr "dashboard.delete-team")])])) (mf/defc sidebar-team-switch @@ -466,13 +466,14 @@ [:div.sidebar-content-section [:ul.sidebar-nav.no-overflow - [:li.recent-projects + [:li {:on-click go-fonts + :data-test "fonts" :class-name (when fonts? "current")} [:span.element-title (tr "labels.fonts")]]]] [:hr] - [:div.sidebar-content-section + [:div.sidebar-content-section {:data-test "pinned-projects"} (if (seq pinned-projects) [:ul.sidebar-nav (for [item pinned-projects] diff --git a/frontend/src/app/main/ui/dashboard/team.cljs b/frontend/src/app/main/ui/dashboard/team.cljs index 35758737d0..6d98ddae77 100644 --- a/frontend/src/app/main/ui/dashboard/team.cljs +++ b/frontend/src/app/main/ui/dashboard/team.cljs @@ -48,7 +48,7 @@ [:a {:on-click go-settings} (tr "labels.settings")]]]] (if (and members-section? (:is-admin permissions)) - [:a.btn-secondary.btn-small {:on-click invite-member} + [:a.btn-secondary.btn-small {:on-click invite-member :data-test "invite-member"} (tr "dashboard.invite-profile")] [:div])])) diff --git a/frontend/src/app/main/ui/onboarding/team_choice.cljs b/frontend/src/app/main/ui/onboarding/team_choice.cljs index abaaa8d93a..56f3c5b2d0 100644 --- a/frontend/src/app/main/ui/onboarding/team_choice.cljs +++ b/frontend/src/app/main/ui/onboarding/team_choice.cljs @@ -51,7 +51,7 @@ [:h2 (tr "onboarding.choice.fly-solo")] [:p (tr "onboarding.choice.fly-solo-desc")]]] [:div.modal-right - [:div.content-button {:on-click on-team-up} + [:div.content-button {:on-click on-team-up :data-test "team-up-button"} [:h2 (tr "onboarding.choice.team-up")] [:p (tr "onboarding.choice.team-up-desc")]]]] [:img.deco {:src "images/deco-left.png" :border "0"}] @@ -72,7 +72,7 @@ [:div.modal-overlay [:div.modal-container.onboarding-team [:div.title - [:h2 (tr "onboarding.choice.team-up")] + [:h2 {:data-test "onboarding-choice-team-up"} (tr "onboarding.choice.team-up")] [:p (tr "onboarding.choice.team-up-desc")]] [:& fm/form {:form form diff --git a/frontend/src/app/main/ui/onboarding/templates.cljs b/frontend/src/app/main/ui/onboarding/templates.cljs index 84bfc15582..c8ef3e3272 100644 --- a/frontend/src/app/main/ui/onboarding/templates.cljs +++ b/frontend/src/app/main/ui/onboarding/templates.cljs @@ -74,7 +74,7 @@ :data-test "close-templates-btn"} i/close]] [:div.modal-content - [:h3 (tr "onboarding.templates.title")] + [:h3 {:data-test "onboarding-templates-title"} (tr "onboarding.templates.title")] [:p (tr "onboarding.templates.subtitle")] [:div.templates diff --git a/frontend/src/app/main/ui/settings/sidebar.cljs b/frontend/src/app/main/ui/settings/sidebar.cljs index 102a66cb49..0b9cce30de 100644 --- a/frontend/src/app/main/ui/settings/sidebar.cljs +++ b/frontend/src/app/main/ui/settings/sidebar.cljs @@ -87,7 +87,7 @@ [:hr] - [:li {:on-click show-release-notes} + [:li {:on-click show-release-notes :data-test "release-notes"} i/pencil [:span.element-title (tr "labels.release-notes")]] diff --git a/frontend/src/app/main/ui/workspace/left_toolbar.cljs b/frontend/src/app/main/ui/workspace/left_toolbar.cljs index 94c48e702c..be41b8e6dc 100644 --- a/frontend/src/app/main/ui/workspace/left_toolbar.cljs +++ b/frontend/src/app/main/ui/workspace/left_toolbar.cljs @@ -75,17 +75,20 @@ [:li.tooltip.tooltip-right {:alt (tr "workspace.toolbar.frame" (sc/get-tooltip :draw-frame)) :class (when (= selected-drawtool :frame) "selected") - :on-click (partial select-drawtool :frame)} + :on-click (partial select-drawtool :frame) + :data-test "artboard-btn"} i/artboard] [:li.tooltip.tooltip-right {:alt (tr "workspace.toolbar.rect" (sc/get-tooltip :draw-rect)) :class (when (= selected-drawtool :rect) "selected") - :on-click (partial select-drawtool :rect)} + :on-click (partial select-drawtool :rect) + :data-test "rect-btn"} i/box] [:li.tooltip.tooltip-right {:alt (tr "workspace.toolbar.ellipse" (sc/get-tooltip :draw-ellipse)) :class (when (= selected-drawtool :circle) "selected") - :on-click (partial select-drawtool :circle)} + :on-click (partial select-drawtool :circle) + :data-test "ellipse-btn"} i/circle] [:li.tooltip.tooltip-right {:alt (tr "workspace.toolbar.text" (sc/get-tooltip :draw-text)) @@ -98,12 +101,14 @@ [:li.tooltip.tooltip-right {:alt (tr "workspace.toolbar.curve" (sc/get-tooltip :draw-curve)) :class (when (= selected-drawtool :curve) "selected") - :on-click (partial select-drawtool :curve)} + :on-click (partial select-drawtool :curve) + :data-test "curve-btn"} i/pencil] [:li.tooltip.tooltip-right {:alt (tr "workspace.toolbar.path" (sc/get-tooltip :draw-path)) :class (when (= selected-drawtool :path) "selected") - :on-click (partial select-drawtool :path)} + :on-click (partial select-drawtool :path) + :data-test "path-btn"} i/pen] [:li.tooltip.tooltip-right diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 4f4095cce1..9ad2d6ad5f 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -167,10 +167,10 @@ resolved "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz" integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== -"@types/sinonjs__fake-timers@^6.0.2": - version "6.0.4" - resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz" - integrity sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A== +"@types/sinonjs__fake-timers@8.1.1": + version "8.1.1" + resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz" + integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== "@types/sizzle@^2.3.2": version "2.3.3" @@ -538,7 +538,7 @@ balanced-match@^1.0.0: resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.0.2: +base64-js@^1.0.2, base64-js@^1.3.1: version "1.5.1" resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -590,7 +590,7 @@ blob-util@^2.0.2: resolved "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz" integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== -bluebird@3.7.2: +bluebird@^3.7.2: version "3.7.2" resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -766,6 +766,14 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" +buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" @@ -1406,22 +1414,23 @@ csstype@^3.0.2: cypress-file-upload@^5.0.8: version "5.0.8" - resolved "https://registry.yarnpkg.com/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz#d8824cbeaab798e44be8009769f9a6c9daa1b4a1" + resolved "https://registry.npmjs.org/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz" integrity sha512-+8VzNabRk3zG6x8f8BWArF/xA/W0VK4IZNx3MV0jFWrJS/qKn8eHfa5nU73P9fOQAgwHFJx7zjg4lwOnljMO8g== -cypress@^9.2.1: - version "9.2.1" - resolved "https://registry.npmjs.org/cypress/-/cypress-9.2.1.tgz" - integrity sha512-LVEe4yWCo4xO0Vd8iYjFHRyd5ulRvM56XqMgAdn05Qb9kJ6iJdO/MmjKD8gNd768698cp1FDuSmFQZHVZGk+Og== +cypress@^9.3.1: + version "9.3.1" + resolved "https://registry.npmjs.org/cypress/-/cypress-9.3.1.tgz" + integrity sha512-BODdPesxX6bkVUnH8BVsV8I/jn57zQtO1FEOUTiuG2us3kslW7g0tcuwiny7CKCmJUZz8S/D587ppC+s58a+5Q== dependencies: "@cypress/request" "^2.88.10" "@cypress/xvfb" "^1.2.4" "@types/node" "^14.14.31" - "@types/sinonjs__fake-timers" "^6.0.2" + "@types/sinonjs__fake-timers" "8.1.1" "@types/sizzle" "^2.3.2" arch "^2.2.0" blob-util "^2.0.2" - bluebird "3.7.2" + bluebird "^3.7.2" + buffer "^5.6.0" cachedir "^2.3.0" chalk "^4.1.0" check-more-types "^2.24.0" @@ -2808,7 +2817,7 @@ iconv-lite@^0.6.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -ieee754@^1.1.4: +ieee754@^1.1.13, ieee754@^1.1.4: version "1.2.1" resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== From 37f4b83d961e3011ce342356d07dcf4a62ce1246 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 1 Feb 2022 13:09:51 +0100 Subject: [PATCH 044/154] :bug: Fix problem with hover shapes --- frontend/src/app/main/ui/workspace/viewport.cljs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index 1f2860f71a..4c673a565a 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -251,13 +251,13 @@ :hover (when (not= :frame (:type @hover)) #{(or @frame-hover (:id @hover))}) :edition edition - :zoom zoom}] + :zoom zoom}]) [:& scroll-bars/viewport-scrollbars {:objects base-objects :zoom zoom :vbox vbox - :viewport-ref viewport-ref}]) + :viewport-ref viewport-ref}] (when show-selection-handlers? [:& selection/selection-handlers From a2c3b0926b6cd281c2c8269f54dccdc373da0204 Mon Sep 17 00:00:00 2001 From: Eva Date: Tue, 1 Feb 2022 12:55:51 +0100 Subject: [PATCH 045/154] :sparkles: Add recent used fonts in font selection widget --- CHANGES.md | 1 + .../partials/sidebar-element-options.scss | 4 +-- frontend/src/app/main/data/fonts.cljs | 26 ++++++++++++++++ frontend/src/app/main/refs.cljs | 5 ++++ .../sidebar/options/menus/typography.cljs | 30 ++++++++++++++----- 5 files changed, 57 insertions(+), 9 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index b1173fd905..b9ecfdcc16 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,7 @@ ### :sparkles: New features +- Add recent used fonts in font selection widget [Taiga #1381](https://tree.taiga.io/project/penpot/us/1381) - Allow to align items relative to groups [Taiga #2533](https://tree.taiga.io/project/penpot/us/2533) - Scroll bars [Taiga #2550](https://tree.taiga.io/project/penpot/task/2550) - Add select layer option to context menu [Taiga #2474](https://tree.taiga.io/project/penpot/us/2474) diff --git a/frontend/resources/styles/main/partials/sidebar-element-options.scss b/frontend/resources/styles/main/partials/sidebar-element-options.scss index 95dd6ef0c0..03c7f92d2b 100644 --- a/frontend/resources/styles/main/partials/sidebar-element-options.scss +++ b/frontend/resources/styles/main/partials/sidebar-element-options.scss @@ -1168,9 +1168,9 @@ } header { - padding: 15px 17px; display: flex; align-items: center; + flex-direction: column; position: relative; .backend-filters { @@ -1225,7 +1225,7 @@ border-radius: $br-small; color: $color-gray-20; border: 1px solid $color-gray-30; - margin: 0px; + margin: 15px 17px; } .options { diff --git a/frontend/src/app/main/data/fonts.cljs b/frontend/src/app/main/data/fonts.cljs index 96fb4dbba8..b9593a0860 100644 --- a/frontend/src/app/main/data/fonts.cljs +++ b/frontend/src/app/main/data/fonts.cljs @@ -14,6 +14,7 @@ [app.common.uuid :as uuid] [app.main.fonts :as fonts] [app.main.repo :as rp] + [app.util.storage :refer [storage]] [app.util.webapi :as wa] [beicon.core :as rx] [cuerdas.core :as str] @@ -250,3 +251,28 @@ (let [team-id (:current-team-id state)] (->> (rp/mutation! :delete-font-variant {:id id :team-id team-id}) (rx/ignore)))))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Workspace related events +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defn add-recent-font + [font] + (ptk/reify ::add-recent-font + ptk/UpdateEvent + (update [_ state] + (let [recent-fonts (get-in state [:workspace-data :recent-fonts]) + most-recent-fonts (into [font] (comp (remove #(= font %)) (take 3)) recent-fonts)] + (assoc-in state [:workspace-data :recent-fonts] most-recent-fonts))) + ptk/EffectEvent + (effect [_ state _] + (let [most-recent-fonts (get-in state [:workspace-data :recent-fonts])] + (swap! storage assoc ::recent-fonts most-recent-fonts))))) + +(defn load-recent-fonts + [] + (ptk/reify ::load-recent-fonts + ptk/UpdateEvent + (update [_ state] + (let [saved-recent-fonts (::recent-fonts @storage)] + (assoc-in state [:workspace-data :recent-fonts] saved-recent-fonts))))) diff --git a/frontend/src/app/main/refs.cljs b/frontend/src/app/main/refs.cljs index 35ec0839b0..c2efd50d84 100644 --- a/frontend/src/app/main/refs.cljs +++ b/frontend/src/app/main/refs.cljs @@ -188,6 +188,11 @@ (get-in state [:workspace-data :recent-colors] [])) st/state)) +(def workspace-recent-fonts + (l/derived (fn [state] + (get-in state [:workspace-data :recent-fonts] [])) + st/state)) + (def workspace-file-typography (l/derived (fn [state] (when-let [file (:workspace-data state)] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs index c39f715994..2d790de2f8 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs @@ -11,8 +11,10 @@ [app.common.exceptions :as ex] [app.common.pages :as cp] [app.common.text :as txt] + [app.main.data.fonts :as fts] [app.main.data.shortcuts :as dsc] [app.main.fonts :as fonts] + [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.components.editable-select :refer [editable-select]] [app.main.ui.components.numeric-input :refer [numeric-input]] @@ -93,13 +95,14 @@ (mf/defc font-selector [{:keys [on-select on-close current-font] :as props}] - (let [selected (mf/use-state current-font) - state (mf/use-state {:term "" :backends #{}}) + (let [selected (mf/use-state current-font) + state (mf/use-state {:term "" :backends #{}}) - flist (mf/use-ref) - input (mf/use-ref) + flist (mf/use-ref) + input (mf/use-ref) - fonts (mf/use-memo (mf/deps @state) #(filter-fonts @state @fonts/fonts)) + fonts (mf/use-memo (mf/deps @state) #(filter-fonts @state @fonts/fonts)) + recent-fonts (mf/deref refs/workspace-recent-fonts) select-next (mf/use-callback @@ -142,6 +145,10 @@ (on-select font) (on-close))) ] + + (mf/use-effect + (fn [] + (st/emit! (fts/load-recent-fonts)))) (mf/use-effect (mf/deps fonts) @@ -183,6 +190,13 @@ :ref input :spell-check false :on-change on-filter-change}] + (when recent-fonts + (for [font recent-fonts] + [:& font-item {:key (:id font) + :font font + :style {} + :on-click on-select-and-close + :current? (= (:id font) (:id @selected))}])) #_[:div.options {:on-click #(swap! state assoc :show-options true) @@ -242,12 +256,13 @@ fonts (mf/deref fonts/fontsdb) font (get fonts font-id) + recent-fonts (mf/deref refs/workspace-recent-fonts) open-selector? (mf/use-state false) change-font (mf/use-callback - (mf/deps on-change fonts) + (mf/deps on-change fonts recent-fonts) (fn [new-font-id] (let [{:keys [family] :as font} (get fonts new-font-id) {:keys [id name weight style]} (fonts/get-default-variant font)] @@ -255,7 +270,8 @@ :font-family family :font-variant-id (or id name) :font-weight weight - :font-style style})))) + :font-style style}) + (st/emit! (fts/add-recent-font font))))) on-font-size-change (mf/use-callback From 34bf73210ef25e7e1f0c2db0c7904145cff16f47 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 2 Feb 2022 19:14:12 +0100 Subject: [PATCH 046/154] :fire: Remove package-lock.json file. --- frontend/package-lock.json | 20630 ----------------------------------- 1 file changed, 20630 deletions(-) delete mode 100644 frontend/package-lock.json diff --git a/frontend/package-lock.json b/frontend/package-lock.json deleted file mode 100644 index 2486f8650f..0000000000 --- a/frontend/package-lock.json +++ /dev/null @@ -1,20630 +0,0 @@ -{ - "name": "app", - "version": "0.1.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "app", - "version": "0.1.0", - "license": "SEE LICENSE IN ", - "dependencies": { - "@sentry/browser": "^6.16.1", - "@sentry/tracing": "^6.16.1", - "date-fns": "^2.28.0", - "draft-js": "^0.11.7", - "highlight.js": "^11.3.1", - "js-beautify": "^1.14.0", - "jszip": "^3.6.0", - "luxon": "^2.2.0", - "mousetrap": "^1.6.5", - "opentype.js": "^1.3.4", - "randomcolor": "^0.6.2", - "react": "~17.0.2", - "react-dom": "~17.0.2", - "react-virtualized": "^9.22.3", - "rxjs": "~7.4.0", - "sax": "^1.2.4", - "source-map-support": "^0.5.21", - "tdigest": "^0.1.1", - "ua-parser-js": "^1.0.2", - "xregexp": "^5.0.1" - }, - "devDependencies": { - "autoprefixer": "^10.4.1", - "cypress": "^9.3.1", - "cypress-file-upload": "^5.0.8", - "gettext-parser": "^4.2.0", - "gulp": "4.0.2", - "gulp-concat": "^2.6.1", - "gulp-gzip": "^1.4.2", - "gulp-mustache": "^5.0.0", - "gulp-postcss": "^9.0.0", - "gulp-rename": "^2.0.0", - "gulp-sass": "^5.0.0", - "gulp-sourcemaps": "^3.0.0", - "gulp-svg-sprite": "^1.5.0", - "map-stream": "0.0.7", - "marked": "^4.0.8", - "mkdirp": "^1.0.4", - "nodemon": "^2.0.15", - "npm-run-all": "^4.1.5", - "postcss": "^8.4.5", - "postcss-clean": "^1.2.2", - "prettier": "^2.5.1", - "rimraf": "^3.0.0", - "sass": "^1.45.1", - "shadow-cljs": "2.16.12" - } - }, - "node_modules/@babel/runtime": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", - "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", - "integrity": "sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==", - "license": "MIT", - "dependencies": { - "core-js-pure": "^3.16.0", - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@cypress/request": { - "version": "2.88.10", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", - "integrity": "sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "http-signature": "~1.3.6", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@cypress/xvfb": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", - "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.1.0", - "lodash.once": "^4.1.1" - } - }, - "node_modules/@cypress/xvfb/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@cypress/xvfb/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@dabh/diagnostics": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", - "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "node_modules/@gulp-sourcemaps/identity-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", - "integrity": "sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^6.4.1", - "normalize-path": "^3.0.0", - "postcss": "^7.0.16", - "source-map": "^0.6.0", - "through2": "^3.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/@gulp-sourcemaps/identity-map/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/@gulp-sourcemaps/identity-map/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@gulp-sourcemaps/identity-map/node_modules/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@gulp-sourcemaps/identity-map/node_modules/through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "node_modules/@gulp-sourcemaps/map-sources": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", - "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", - "dev": true, - "license": "MIT", - "dependencies": { - "normalize-path": "^2.0.1", - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/@gulp-sourcemaps/map-sources/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "license": "MIT", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@sentry/browser": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.16.1.tgz", - "integrity": "sha512-F2I5RL7RTLQF9CccMrqt73GRdK3FdqaChED3RulGQX5lH6U3exHGFxwyZxSrY4x6FedfBFYlfXWWCJXpLnFkow==", - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/core": "6.16.1", - "@sentry/types": "6.16.1", - "@sentry/utils": "6.16.1", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/core": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.16.1.tgz", - "integrity": "sha512-UFI0264CPUc5cR1zJH+S2UPOANpm6dLJOnsvnIGTjsrwzR0h8Hdl6rC2R/GPq+WNbnipo9hkiIwDlqbqvIU5vw==", - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/hub": "6.16.1", - "@sentry/minimal": "6.16.1", - "@sentry/types": "6.16.1", - "@sentry/utils": "6.16.1", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/hub": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.16.1.tgz", - "integrity": "sha512-4PGtg6AfpqMkreTpL7ymDeQ/U1uXv03bKUuFdtsSTn/FRf9TLS4JB0KuTZCxfp1IRgAA+iFg6B784dDkT8R9eg==", - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/types": "6.16.1", - "@sentry/utils": "6.16.1", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/minimal": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.16.1.tgz", - "integrity": "sha512-dq+mI1EQIvUM+zJtGCVgH3/B3Sbx4hKlGf2Usovm9KoqWYA+QpfVBholYDe/H2RXgO7LFEefDLvOdHDkqeJoyA==", - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/hub": "6.16.1", - "@sentry/types": "6.16.1", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/tracing": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.16.1.tgz", - "integrity": "sha512-MPSbqXX59P+OEeST+U2V/8Hu/8QjpTUxTNeNyTHWIbbchdcMMjDbXTS3etCgajZR6Ro+DHElOz5cdSxH6IBGlA==", - "license": "MIT", - "dependencies": { - "@sentry/hub": "6.16.1", - "@sentry/minimal": "6.16.1", - "@sentry/types": "6.16.1", - "@sentry/utils": "6.16.1", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/types": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.16.1.tgz", - "integrity": "sha512-Wh354g30UsJ5kYJbercektGX4ZMc9MHU++1NjeN2bTMnbofEcpUDWIiKeulZEY65IC1iU+1zRQQgtYO+/hgCUQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/utils": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.16.1.tgz", - "integrity": "sha512-7ngq/i4R8JZitJo9Sl8PDnjSbDehOxgr1vsoMmerIsyRZ651C/8B+jVkMhaAPgSdyJ0AlE3O7DKKTP1FXFw9qw==", - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/types": "6.16.1", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@types/node": { - "version": "14.17.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.34.tgz", - "integrity": "sha512-USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", - "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", - "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", - "dev": true - }, - "node_modules/@types/sizzle": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", - "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yauzl/node_modules/@types/node": { - "version": "16.11.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz", - "integrity": "sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "license": "ISC" - }, - "node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-wrap": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-wrap": "0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ansi-styles/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", - "dev": true, - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "license": "ISC", - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "license": "MIT", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-equal": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arch": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true, - "license": "MIT" - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "dev": true, - "license": "MIT", - "dependencies": { - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "dev": true, - "license": "MIT", - "dependencies": { - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "dev": true, - "license": "MIT", - "dependencies": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-initial/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-last/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-sort/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "license": "MIT" - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true, - "license": "ISC" - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "dev": true, - "license": "MIT", - "dependencies": { - "async-done": "^1.2.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true, - "license": "MIT" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "license": "(MIT OR Apache-2.0)", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.1.tgz", - "integrity": "sha512-B3ZEG7wtzXDRCEFsan7HmR2AeNsxdJB0+sEC0Hc5/c2NbhJqPwuZm+tn233GBVw82L+6CtD6IPSfVruwKjfV3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001294", - "fraction.js": "^4.1.2", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true, - "license": "MIT" - }, - "node_modules/bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/bintrees": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", - "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=" - }, - "node_modules/blob-util": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", - "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true, - "license": "MIT" - }, - "node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "license": "MIT" - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true, - "license": "ISC" - }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/boxen/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true, - "license": "MIT" - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true, - "license": "ISC" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-rsa/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true, - "license": "MIT" - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "license": "ISC", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true, - "license": "MIT" - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "dev": true, - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true, - "license": "MIT" - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true, - "license": "MIT" - }, - "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "license": "MIT", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cachedir": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", - "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001294", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001294.tgz", - "integrity": "sha512-LiMlrs1nSKZ8qkNhpUf5KD0Al1KCBE3zaT7OLOwEkagXMEDij98SiOovn9wxVGQpklk9vVC/pUSqgYmkmKOS8g==", - "dev": true, - "license": "CC-BY-4.0", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/check-more-types": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/chokidar/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar/node_modules/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chokidar/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/chokidar/node_modules/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true, - "license": "MIT" - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-css": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", - "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", - "dev": true, - "license": "MIT", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-table3": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz", - "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "colors": "1.4.0" - } - }, - "node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "license": "MIT", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "license": "MIT", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true, - "license": "MIT" - }, - "node_modules/cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "node_modules/clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "license": "MIT", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", - "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } - }, - "node_modules/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-convert/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true, - "license": "MIT" - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/color-string": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", - "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true, - "license": "MIT" - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/colorspace": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", - "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color": "3.0.x", - "text-hex": "1.0.x" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true, - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "license": "MIT" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-with-sourcemaps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", - "dev": true, - "license": "ISC", - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true, - "license": "MIT" - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/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==", - "dev": true, - "license": "MIT" - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/copy-props": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", - "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", - "dev": true, - "license": "MIT", - "dependencies": { - "each-props": "^1.3.2", - "is-plain-object": "^5.0.0" - } - }, - "node_modules/copy-props/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-js": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.13.0.tgz", - "integrity": "sha512-iWDbiyha1M5vFwPFmQnvRv+tJzGbFAm6XimJUT0NgHYW3xZEs1SkCAcasWSVFxpI2Xb/V1DDJckq3v90+bQnog==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-pure": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz", - "integrity": "sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/cross-fetch": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", - "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", - "license": "MIT", - "dependencies": { - "node-fetch": "2.6.1" - } - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, - "node_modules/css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "node_modules/css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "dev": true, - "license": "MIT" - }, - "node_modules/css-selector-parser": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz", - "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==", - "dev": true, - "license": "MIT" - }, - "node_modules/css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css/node_modules/source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, - "node_modules/cssmin": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/cssmin/-/cssmin-0.4.3.tgz", - "integrity": "sha1-yRlAd+Dr2s1pHV9ZAVudgZ840BU=", - "dev": true, - "bin": { - "cssmin": "bin/cssmin" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "license": "MIT", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true, - "license": "MIT" - }, - "node_modules/csstype": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", - "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==", - "license": "MIT" - }, - "node_modules/cypress": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.3.1.tgz", - "integrity": "sha512-BODdPesxX6bkVUnH8BVsV8I/jn57zQtO1FEOUTiuG2us3kslW7g0tcuwiny7CKCmJUZz8S/D587ppC+s58a+5Q==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@cypress/request": "^2.88.10", - "@cypress/xvfb": "^1.2.4", - "@types/node": "^14.14.31", - "@types/sinonjs__fake-timers": "8.1.1", - "@types/sizzle": "^2.3.2", - "arch": "^2.2.0", - "blob-util": "^2.0.2", - "bluebird": "^3.7.2", - "buffer": "^5.6.0", - "cachedir": "^2.3.0", - "chalk": "^4.1.0", - "check-more-types": "^2.24.0", - "cli-cursor": "^3.1.0", - "cli-table3": "~0.6.1", - "commander": "^5.1.0", - "common-tags": "^1.8.0", - "dayjs": "^1.10.4", - "debug": "^4.3.2", - "enquirer": "^2.3.6", - "eventemitter2": "^6.4.3", - "execa": "4.1.0", - "executable": "^4.1.1", - "extract-zip": "2.0.1", - "figures": "^3.2.0", - "fs-extra": "^9.1.0", - "getos": "^3.2.1", - "is-ci": "^3.0.0", - "is-installed-globally": "~0.4.0", - "lazy-ass": "^1.6.0", - "listr2": "^3.8.3", - "lodash": "^4.17.21", - "log-symbols": "^4.0.0", - "minimist": "^1.2.5", - "ospath": "^1.2.2", - "pretty-bytes": "^5.6.0", - "proxy-from-env": "1.0.0", - "request-progress": "^3.0.0", - "supports-color": "^8.1.1", - "tmp": "~0.2.1", - "untildify": "^4.0.0", - "url": "^0.11.0", - "yauzl": "^2.10.0" - }, - "bin": { - "cypress": "bin/cypress" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/cypress-file-upload": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz", - "integrity": "sha512-+8VzNabRk3zG6x8f8BWArF/xA/W0VK4IZNx3MV0jFWrJS/qKn8eHfa5nU73P9fOQAgwHFJx7zjg4lwOnljMO8g==", - "dev": true, - "engines": { - "node": ">=8.2.1" - }, - "peerDependencies": { - "cypress": ">3.0.0" - } - }, - "node_modules/cypress/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/cypress/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/cypress/node_modules/chalk/node_modules/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cypress/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/cypress/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cypress/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/cypress/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "license": "ISC", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", - "license": "MIT", - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/dayjs": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", - "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==", - "dev": true, - "license": "MIT" - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/debug-fabulous": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", - "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "3.X", - "memoizee": "0.4.X", - "object-assign": "4.X" - } - }, - "node_modules/debug-fabulous/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/debug-fabulous/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^5.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-compare/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/draft-js": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/draft-js/-/draft-js-0.11.7.tgz", - "integrity": "sha512-ne7yFfN4sEL82QPQEn80xnADR8/Q6ALVworbC5UOSzOvjffmYfFsr3xSZtxbIirti14R7Y33EZC5rivpLgIbsg==", - "license": "MIT", - "dependencies": { - "fbjs": "^2.0.0", - "immutable": "~3.7.4", - "object-assign": "^4.1.1" - }, - "peerDependencies": { - "react": ">=0.14.0", - "react-dom": ">=0.14.0" - } - }, - "node_modules/draft-js/node_modules/immutable": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", - "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "license": "MIT", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/editorconfig": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", - "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", - "license": "MIT", - "dependencies": { - "commander": "^2.19.0", - "lru-cache": "^4.1.5", - "semver": "^5.6.0", - "sigmund": "^1.0.1" - }, - "bin": { - "editorconfig": "bin/editorconfig" - } - }, - "node_modules/editorconfig/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.30", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.30.tgz", - "integrity": "sha512-609z9sIMxDHg+TcR/VB3MXwH+uwtrYyeAwWc/orhnr90ixs6WVGSrt85CDLGUdNnLqCA7liv426V20EecjvflQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/enquirer/node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", - "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.10.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-abstract/node_modules/object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/es5-ext/node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true, - "license": "MIT" - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "license": "MIT", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "license": "ISC", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "license": "ISC", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "license": "MIT", - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/eventemitter2": { - "version": "6.4.5", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.5.tgz", - "integrity": "sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw==", - "dev": true, - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/execa/node_modules/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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/execa/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/execa/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/execa/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/execa/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/executable": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", - "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^2.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "license": "MIT", - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "dev": true, - "license": "ISC", - "dependencies": { - "type": "^2.0.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", - "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==", - "dev": true, - "license": "ISC" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true, - "license": "MIT" - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extract-zip/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/extract-zip/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" - }, - "node_modules/fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", - "dev": true, - "license": "MIT" - }, - "node_modules/fbjs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-2.0.0.tgz", - "integrity": "sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ==", - "license": "MIT", - "dependencies": { - "core-js": "^3.6.4", - "cross-fetch": "^3.0.4", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - } - }, - "node_modules/fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", - "license": "MIT" - }, - "node_modules/fbjs/node_modules/ua-parser-js": { - "version": "0.7.28", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", - "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/fecha": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", - "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/findup-sync/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dev": true, - "license": "MIT", - "dependencies": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", - "dev": true, - "license": "MIT" - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "license": "MIT", - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/fraction.js": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz", - "integrity": "sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "license": "MIT", - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs-extra/node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true, - "license": "ISC" - }, - "node_modules/fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "license": "ISC" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true, - "license": "MIT" - }, - "node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true, - "license": "ISC" - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getos": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", - "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "async": "^3.2.0" - } - }, - "node_modules/getos/node_modules/async": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.2.tgz", - "integrity": "sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==", - "dev": true, - "license": "MIT" - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/gettext-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-4.2.0.tgz", - "integrity": "sha512-aMgPyjC9W5Mz9tbFU8DcQ7GYMXoFWq633kaWGt4imlcpBWzDIWk7HY7nCSZTCJxyjRaLq9L/NEjMKkZ9gR630Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "content-type": "^1.0.4", - "encoding": "^0.1.13", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.1" - } - }, - "node_modules/gettext-parser/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "dev": true, - "license": "MIT", - "dependencies": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/glob-watcher/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/glob-watcher/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/global-dirs/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "license": "MIT", - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "license": "MIT", - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "sparkles": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/got/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.x" - } - }, - "node_modules/gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "dev": true, - "license": "MIT", - "dependencies": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/gulp-cli/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "license": "MIT", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "license": "MIT", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/yargs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", - "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.1" - } - }, - "node_modules/gulp-cli/node_modules/yargs-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", - "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } - }, - "node_modules/gulp-concat": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", - "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", - "dev": true, - "license": "MIT", - "dependencies": { - "concat-with-sourcemaps": "^1.0.0", - "through2": "^2.0.0", - "vinyl": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/gulp-gzip": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/gulp-gzip/-/gulp-gzip-1.4.2.tgz", - "integrity": "sha512-ZIxfkUwk2XmZPTT9pPHrHUQlZMyp9nPhg2sfoeN27mBGpi7OaHnOD+WCN41NXjfJQ69lV1nQ9LLm1hYxx4h3UQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-colors": "^1.0.1", - "bytes": "^3.0.0", - "fancy-log": "^1.3.2", - "plugin-error": "^1.0.0", - "stream-to-array": "^2.3.0", - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/gulp-mustache": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gulp-mustache/-/gulp-mustache-5.0.0.tgz", - "integrity": "sha512-8tk0R1Fd+l6+e/t954e3UheFo25dKkTapPLD1sWoSroPXfIPxyHVgbhfH5VJGqeXl3te5GOwPtfcxxZJ+PYoFg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0", - "mustache": "^4.0.1", - "plugin-error": "^1.0.0", - "replace-ext": "^1.0.0", - "through2": "^3.0.1" - }, - "engines": { - "npm": ">=1.2.10" - } - }, - "node_modules/gulp-mustache/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/gulp-mustache/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/gulp-mustache/node_modules/through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "node_modules/gulp-postcss": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/gulp-postcss/-/gulp-postcss-9.0.1.tgz", - "integrity": "sha512-9QUHam5JyXwGUxaaMvoFQVT44tohpEFpM8xBdPfdwTYGM0AItS1iTQz0MpsF8Jroh7GF5Jt2GVPaYgvy8qD2Fw==", - "dev": true, - "license": "MIT", - "dependencies": { - "fancy-log": "^1.3.3", - "plugin-error": "^1.0.1", - "postcss-load-config": "^3.0.0", - "vinyl-sourcemaps-apply": "^0.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/gulp-rename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz", - "integrity": "sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/gulp-sass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.0.0.tgz", - "integrity": "sha512-J0aH0/2N4+2szGCeut0ktGHK0Wg8L9uWivuigrl7xv+nhxozBQRAKLrhnDDaTa3FeUWYtgT8w4RlgdhRy5v16w==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.1", - "lodash": "^4.17.20", - "plugin-error": "^1.0.1", - "replace-ext": "^2.0.0", - "strip-ansi": "^6.0.0", - "transfob": "^1.0.0", - "vinyl-sourcemaps-apply": "^0.2.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/gulp-sass/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/gulp-sass/node_modules/chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/gulp-sass/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/gulp-sass/node_modules/replace-ext": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", - "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/gulp-sass/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/gulp-sass/node_modules/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/gulp-sourcemaps": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz", - "integrity": "sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@gulp-sourcemaps/identity-map": "^2.0.1", - "@gulp-sourcemaps/map-sources": "^1.0.0", - "acorn": "^6.4.1", - "convert-source-map": "^1.0.0", - "css": "^3.0.0", - "debug-fabulous": "^1.0.0", - "detect-newline": "^2.0.0", - "graceful-fs": "^4.0.0", - "source-map": "^0.6.0", - "strip-bom-string": "^1.0.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/gulp-svg-sprite": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/gulp-svg-sprite/-/gulp-svg-sprite-1.5.0.tgz", - "integrity": "sha512-xLepqh1DjCSNm+secZsxmoWKNTXAXCC6Tglop0e2oOoiIqwBWOvep5Y+qvqRP9L3dn8qBxKkqGot8aTheNGYoQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "plugin-error": "^1.0.1", - "svg-sprite": "^1.5.0", - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 6.4" - } - }, - "node_modules/gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "license": "MIT", - "dependencies": { - "glogg": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "license": "MIT", - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hasha": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", - "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-stream": "^1.0.1", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/highlight.js": { - "version": "11.3.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.3.1.tgz", - "integrity": "sha512-PUhCRnPjLtiLHZAQ5A/Dt5F8cWZeMyj9KRsACsWT+OD6OP0x6dp5OmT5jdx0JgEyPxPZZIPQpRN2TciUT7occw==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true, - "license": "ISC" - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/http-signature": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", - "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", - "dev": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^2.0.2", - "sshpk": "^1.14.1" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true, - "license": "MIT" - }, - "node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8.12.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true, - "license": "ISC" - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", - "license": "MIT" - }, - "node_modules/immutable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", - "dev": true, - "license": "MIT" - }, - "node_modules/import-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", - "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", - "dev": true, - "license": "MIT", - "dependencies": { - "import-from": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", - "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC" - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true, - "license": "MIT" - }, - "node_modules/is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", - "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-unc-path": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true, - "license": "MIT" - }, - "node_modules/is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "unc-path-regex": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true, - "license": "MIT" - }, - "node_modules/is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", - "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true, - "license": "MIT" - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true, - "license": "ISC" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true, - "license": "MIT" - }, - "node_modules/js-beautify": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.0.tgz", - "integrity": "sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ==", - "license": "MIT", - "dependencies": { - "config-chain": "^1.1.12", - "editorconfig": "^0.15.3", - "glob": "^7.1.3", - "nopt": "^5.0.0" - }, - "bin": { - "css-beautify": "js/bin/css-beautify.js", - "html-beautify": "js/bin/html-beautify.js", - "js-beautify": "js/bin/js-beautify.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "license": "MIT" - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true, - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true, - "license": "ISC" - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsprim": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", - "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "node_modules/jszip": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", - "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", - "license": "(MIT OR GPL-3.0-or-later)", - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - } - }, - "node_modules/just-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", - "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/kew": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", - "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", - "dev": true, - "license": "MIT" - }, - "node_modules/last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "dev": true, - "license": "MIT", - "dependencies": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "license": "MIT", - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lazy-ass": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", - "dev": true, - "license": "MIT", - "engines": { - "node": "> 0.8" - } - }, - "node_modules/lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "license": "MIT", - "dependencies": { - "invert-kv": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "dev": true, - "license": "MIT", - "dependencies": { - "flush-write-stream": "^1.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "license": "MIT", - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "dev": true, - "license": "MIT", - "dependencies": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/liftoff/node_modules/findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/lilconfig": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", - "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/listr2": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz", - "integrity": "sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.4.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } - } - }, - "node_modules/listr2/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/listr2/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/listr2/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/locate-path/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash._arraymap": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz", - "integrity": "sha1-Go/Q9MDfS2HeoHbXF83Jfwo8PmY=", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash._basecallback": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz", - "integrity": "sha1-t7K7Q9whYEJKIczybFfkQ3cqjic=", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash._baseisequal": "^3.0.0", - "lodash._bindcallback": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.pairs": "^3.0.0" - } - }, - "node_modules/lodash._baseeach": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz", - "integrity": "sha1-z4cGVyyhROjZ11InyZDamC+TKvM=", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash.keys": "^3.0.0" - } - }, - "node_modules/lodash._baseget": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/lodash._baseget/-/lodash._baseget-3.7.2.tgz", - "integrity": "sha1-G2rh1frPPCVTI1ChPBGXy4u2dPQ=", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash._baseisequal": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz", - "integrity": "sha1-2AJfdjOdKTQnZ9zIh85cuVpbUfE=", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash.isarray": "^3.0.0", - "lodash.istypedarray": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "node_modules/lodash._bindcallback": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", - "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash._topath": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/lodash._topath/-/lodash._topath-3.8.1.tgz", - "integrity": "sha1-PsXiYGAU9MuX91X+aRTt2L/ADqw=", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.istypedarray": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz", - "integrity": "sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I=", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/lodash.map": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-3.1.4.tgz", - "integrity": "sha1-tIOs0beGxce0ksSV97UmYim8AMI=", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash._arraymap": "^3.0.0", - "lodash._basecallback": "^3.0.0", - "lodash._baseeach": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.pairs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz", - "integrity": "sha1-u+CNV4bu6qCaFckevw3LfSvjJqk=", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash.keys": "^3.0.0" - } - }, - "node_modules/lodash.pluck": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.pluck/-/lodash.pluck-3.1.2.tgz", - "integrity": "sha1-s0fwN0wBafDusE1nLYnOyGMsIjE=", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash._baseget": "^3.0.0", - "lodash._topath": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.map": "^3.0.0" - } - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/logform": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz", - "integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "colors": "^1.2.1", - "fast-safe-stringify": "^2.0.4", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "triple-beam": "^1.3.0" - } - }, - "node_modules/logform/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "license": "ISC", - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "dev": true, - "license": "MIT", - "dependencies": { - "es5-ext": "~0.10.2" - } - }, - "node_modules/luxon": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.2.0.tgz", - "integrity": "sha512-LwmknessH4jVIseCsizUgveIHwlLv/RQZWC2uDSMfGJs7w8faPUi2JFxfyfMcTPrpNbChTem3Uz6IKRtn+LcIA==", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/make-iterator/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-defer": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", - "dev": true, - "license": "MIT" - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "license": "MIT", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/marked": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.8.tgz", - "integrity": "sha512-dkpJMIlJpc833hbjjg8jraw1t51e/eKDoG8TFOgc5O0Z77zaYKigYekTDop5AplRoKFGIaoazhYEhGkMtU3IeA==", - "dev": true, - "license": "MIT", - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "dev": true, - "license": "MIT", - "dependencies": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "license": "MIT", - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.48.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true, - "license": "ISC" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true, - "license": "MIT" - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true, - "license": "MIT" - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/mocha/node_modules/commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true, - "license": "MIT" - }, - "node_modules/mocha/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/mocha/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mocha/node_modules/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true, - "license": "MIT" - }, - "node_modules/mocha/node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mousetrap": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz", - "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==", - "license": "Apache-2.0 WITH LLVM-exception" - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "license": "MIT" - }, - "node_modules/mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "dev": true, - "license": "MIT", - "bin": { - "mustache": "bin/mustache" - } - }, - "node_modules/mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", - "dev": true, - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "license": "MIT", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true, - "license": "MIT" - }, - "node_modules/nodemon": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", - "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5", - "update-notifier": "^5.1.0" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/nodemon/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/nodemon/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "license": "ISC", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "once": "^1.3.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/npm-run-all/node_modules/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "license": "MIT", - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "license": "MIT", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "license": "MIT", - "dependencies": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", - "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "license": "MIT", - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "dev": true, - "license": "MIT", - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fn.name": "1.x.x" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/opentype.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/opentype.js/-/opentype.js-1.3.4.tgz", - "integrity": "sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw==", - "license": "MIT", - "dependencies": { - "string.prototype.codepointat": "^0.2.1", - "tiny-inflate": "^1.0.3" - }, - "bin": { - "ot": "bin/ot" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "^2.0.1" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true, - "license": "MIT" - }, - "node_modules/os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "license": "MIT", - "dependencies": { - "lcid": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ospath": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", - "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", - "dev": true, - "license": "MIT" - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "license": "(MIT AND Zlib)" - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "license": "ISC", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true, - "license": "MIT" - }, - "node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "license": "MIT", - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "license": "MIT", - "dependencies": { - "path-root-regex": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-type/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true, - "license": "MIT" - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true, - "license": "MIT" - }, - "node_modules/phantomjs-prebuilt": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", - "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "es6-promise": "^4.0.3", - "extract-zip": "^1.6.5", - "fs-extra": "^1.0.0", - "hasha": "^2.2.0", - "kew": "^0.7.0", - "progress": "^1.1.8", - "request": "^2.81.0", - "request-progress": "^2.0.1", - "which": "^1.2.10" - }, - "bin": { - "phantomjs": "bin/phantomjs" - } - }, - "node_modules/phantomjs-prebuilt/node_modules/extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - } - }, - "node_modules/phantomjs-prebuilt/node_modules/fs-extra": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", - "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0" - } - }, - "node_modules/phantomjs-prebuilt/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/phantomjs-prebuilt/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/phantomjs-prebuilt/node_modules/request-progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", - "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", - "dev": true, - "license": "MIT", - "dependencies": { - "throttleit": "^1.0.0" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true, - "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "license": "MIT", - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/plugin-error/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plugin-error/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-clean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/postcss-clean/-/postcss-clean-1.2.2.tgz", - "integrity": "sha512-DpuMWW19Dd2K9KY4wknMz3khq9q2yZYa2U37bnhzdtBdBv0ggIfUj5T2XD3ir6gKVlDkb5OtOqw1iQJWq6qvpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-css": "^4.x", - "postcss": "^6.x" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-clean/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-load-config": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", - "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "import-cwd": "^3.0.0", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/prettier": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", - "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/prettysize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prettysize/-/prettysize-1.1.0.tgz", - "integrity": "sha512-U5Noa+FYV1dGkICyLJz8IWlDUehPF4Bk9tZRO8YqPhLA9EoiHuFqtnpWY2mvMjHh5eOLo82HipeLn4RIiSsGqQ==", - "dev": true - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/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==", - "license": "MIT" - }, - "node_modules/progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "license": "MIT", - "dependencies": { - "asap": "~2.0.3" - } - }, - "node_modules/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "license": "ISC" - }, - "node_modules/proxy-from-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", - "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", - "dev": true, - "license": "MIT" - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "license": "ISC" - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true, - "license": "MIT" - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomcolor": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/randomcolor/-/randomcolor-0.6.2.tgz", - "integrity": "sha512-Mn6TbyYpFgwFuQ8KJKqf3bqqY9O1y37/0jgSK/61PUxV4QfIMv0+K2ioq8DfOjkBslcjwSzRfIDEXfzA9aCx7A==", - "license": "CC0" - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", - "license": "MIT" - }, - "node_modules/react-virtualized": { - "version": "9.22.3", - "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.22.3.tgz", - "integrity": "sha512-MKovKMxWTcwPSxE1kK1HcheQTWfuCxAuBoSTf2gwyMM21NdX/PXUhnoP8Uc5dRKd+nKm8v41R36OellhdCpkrw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.7.2", - "clsx": "^1.0.4", - "dom-helpers": "^5.1.3", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-lifecycles-compat": "^3.0.4" - }, - "peerDependencies": { - "react": "^15.3.0 || ^16.0.0-alpha", - "react-dom": "^15.3.0 || ^16.0.0-alpha" - } - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "license": "MIT", - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "license": "MIT", - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "license": "MIT", - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==", - "license": "MIT", - "dependencies": { - "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" - } - }, - "node_modules/readable-stream/node_modules/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==", - "license": "MIT" - }, - "node_modules/readable-stream/node_modules/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==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readline-sync": { - "version": "1.4.10", - "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", - "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "license": "MIT" - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "license": "MIT", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "license": "MIT", - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "dev": true, - "license": "MIT", - "dependencies": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true, - "license": "ISC" - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "dev": true, - "license": "MIT", - "dependencies": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request-progress": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", - "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", - "dev": true, - "license": "MIT", - "dependencies": { - "throttleit": "^1.0.0" - } - }, - "node_modules/request/node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/request/node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "node_modules/request/node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true, - "license": "ISC" - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "license": "MIT", - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "dev": true, - "license": "MIT", - "dependencies": { - "value-or-function": "^3.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true, - "license": "MIT" - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "license": "MIT", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true, - "license": "MIT" - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "~2.1.0" - } - }, - "node_modules/rxjs/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "license": "0BSD" - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "license": "MIT", - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "license": "MIT" - }, - "node_modules/sass": { - "version": "1.45.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.45.1.tgz", - "integrity": "sha512-pwPRiq29UR0o4X3fiQyCtrESldXvUQAAE0QmcJTpsI4kuHHcLzZ54M1oNBVIXybQv8QF2zfkpFcTxp8ta97dUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "license": "ISC" - }, - "node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "dev": true, - "license": "MIT", - "dependencies": { - "sver-compat": "^1.5.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true, - "license": "ISC" - }, - "node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "license": "MIT" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shadow-cljs": { - "version": "2.16.12", - "resolved": "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.16.12.tgz", - "integrity": "sha512-6JqOhN5X3n0IkxA/gSUcZ1lImwcW1LmpgzlaBDOC/u/pIysdNm0tiOxpOTEnExl9nKZBS/EYS7bXIIInywPJUA==", - "dev": true, - "license": "ISC", - "dependencies": { - "node-libs-browser": "^2.2.1", - "readline-sync": "^1.4.7", - "shadow-cljs-jar": "1.3.2", - "source-map-support": "^0.4.15", - "which": "^1.3.1", - "ws": "^7.4.6" - }, - "bin": { - "shadow-cljs": "cli/runner.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/shadow-cljs-jar": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/shadow-cljs-jar/-/shadow-cljs-jar-1.3.2.tgz", - "integrity": "sha512-XmeffAZHv8z7451kzeq9oKh8fh278Ak+UIOGGrapyqrFBB773xN8vMQ3O7J7TYLnb9BUwcqadKkmgaq7q6fhZg==", - "dev": true, - "license": "ISC" - }, - "node_modules/shadow-cljs/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shadow-cljs/node_modules/source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", - "dev": true, - "license": "MIT" - }, - "node_modules/should": { - "version": "13.2.3", - "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", - "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "should-equal": "^2.0.0", - "should-format": "^3.0.3", - "should-type": "^1.4.0", - "should-type-adaptors": "^1.0.1", - "should-util": "^1.0.0" - } - }, - "node_modules/should-equal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", - "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "should-type": "^1.4.0" - } - }, - "node_modules/should-format": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", - "integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=", - "dev": true, - "license": "MIT", - "dependencies": { - "should-type": "^1.3.0", - "should-type-adaptors": "^1.0.1" - } - }, - "node_modules/should-type": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", - "integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=", - "dev": true, - "license": "MIT" - }, - "node_modules/should-type-adaptors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", - "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", - "dev": true, - "license": "MIT", - "dependencies": { - "should-type": "^1.3.0", - "should-util": "^1.0.0" - } - }, - "node_modules/should-util": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", - "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", - "dev": true, - "license": "MIT" - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "license": "ISC" - }, - "node_modules/signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "license": "MIT", - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true, - "license": "MIT" - }, - "node_modules/sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true, - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", - "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "license": "MIT", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true, - "license": "MIT" - }, - "node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/stream-to-array": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz", - "integrity": "sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M=", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.1.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.codepointat": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz", - "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==", - "license": "MIT" - }, - "node_modules/string.prototype.padend": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz", - "integrity": "sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.padend/node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.padend/node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.padend/node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.padend/node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "dev": true, - "license": "MIT", - "dependencies": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/svg-sprite": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/svg-sprite/-/svg-sprite-1.5.0.tgz", - "integrity": "sha512-0mE5BLY3K8wg3+HrYfzpiKbIM44IGcg8uINED8ri22EdQbLvGecOHjRtkrNAlphbiU5kyGyqoBlIaukL45fs2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "async": "^2.6.1", - "css-selector-parser": "^1.3.0", - "cssmin": "^0.4.3", - "cssom": "^0.3.4", - "dateformat": "^3.0.3", - "glob": "^7.1.3", - "js-yaml": "^3.12.0", - "lodash": "^4.17.11", - "lodash.pluck": "^3.1.2", - "mkdirp": "^0.5.1", - "mocha": "^5.2.0", - "mustache": "^3.0.0", - "phantomjs-prebuilt": "^2.1.16", - "prettysize": "^1.1.0", - "should": "^13.2.3", - "svgo": "^1.1.1", - "vinyl": "^2.2.0", - "winston": "^3.1.0", - "xmldom": "0.1.27", - "xpath": "^0.0.27", - "yargs": "^12.0.2" - }, - "bin": { - "svg-sprite": "bin/svg-sprite.js" - }, - "engines": { - "node": ">= 6.4.0" - } - }, - "node_modules/svg-sprite/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/svg-sprite/node_modules/mustache": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-3.2.1.tgz", - "integrity": "sha512-RERvMFdLpaFfSRIEe632yDm5nsd0SDKn8hGmcUwswnyiE5mtdZLDybtHAz6hjJhawokF0hXvGLtx9mrQfm6FkA==", - "dev": true, - "license": "MIT", - "bin": { - "mustache": "bin/mustache" - }, - "engines": { - "npm": ">=1.4.0" - } - }, - "node_modules/svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/svgo/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/tdigest": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz", - "integrity": "sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=", - "license": "MIT", - "dependencies": { - "bintrees": "1.0.1" - } - }, - "node_modules/text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", - "dev": true, - "license": "MIT" - }, - "node_modules/throttleit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", - "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", - "dev": true, - "license": "MIT" - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true, - "license": "MIT" - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, - "license": "MIT", - "dependencies": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "node_modules/time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "node_modules/tiny-inflate": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", - "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", - "license": "MIT" - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true, - "license": "MIT" - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "dev": true, - "license": "MIT", - "dependencies": { - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "license": "ISC", - "dependencies": { - "nopt": "~1.0.10" - }, - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/touch/node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "license": "MIT", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/transfob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/transfob/-/transfob-1.0.0.tgz", - "integrity": "sha1-x/wnpbVDCtSGJnrmZtkj90oKsyA=", - "dev": true, - "license": "MIT" - }, - "node_modules/triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", - "dev": true, - "license": "MIT" - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "license": "0BSD" - }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true, - "license": "MIT" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "license": "Unlicense" - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true, - "license": "ISC" - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true, - "license": "MIT" - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/ua-parser-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz", - "integrity": "sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true, - "license": "MIT" - }, - "node_modules/undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true, - "license": "MIT" - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "license": "MIT", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "license": "MIT", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "license": "MIT", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/update-notifier/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/update-notifier/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/update-notifier/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/update-notifier/node_modules/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true, - "license": "MIT" - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "license": "MIT", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true, - "license": "MIT" - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "license": "MIT" - }, - "node_modules/util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true, - "license": "ISC" - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/verror/node_modules/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=", - "dev": true, - "license": "MIT" - }, - "node_modules/verror/node_modules/extsprintf": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz", - "integrity": "sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" - }, - "node_modules/vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "dev": true, - "license": "MIT", - "dependencies": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "dev": true, - "license": "MIT", - "dependencies": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-sourcemap/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "license": "MIT", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/vinyl-sourcemaps-apply": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", - "dev": true, - "license": "ISC", - "dependencies": { - "source-map": "^0.5.1" - } - }, - "node_modules/vinyl-sourcemaps-apply/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true, - "license": "ISC" - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/winston": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", - "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@dabh/diagnostics": "^2.0.2", - "async": "^3.1.0", - "is-stream": "^2.0.0", - "logform": "^2.2.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.4.0" - }, - "engines": { - "node": ">= 6.4.0" - } - }, - "node_modules/winston-transport": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", - "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "^2.3.7", - "triple-beam": "^1.2.0" - }, - "engines": { - "node": ">= 6.4.0" - } - }, - "node_modules/winston/node_modules/async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", - "dev": true, - "license": "MIT" - }, - "node_modules/winston/node_modules/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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/winston/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "license": "MIT", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "license": "MIT", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "license": "MIT", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz", - "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/xmldom": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", - "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", - "dev": true, - "engines": { - "node": ">=0.1" - } - }, - "node_modules/xpath": { - "version": "0.0.27", - "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz", - "integrity": "sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/xregexp": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-5.1.0.tgz", - "integrity": "sha512-PynwUWtXnSZr8tpQlDPMZfPTyv78EYuA4oI959ukxcQ0a9O/lvndLVKy5wpImzzA26eMxpZmnAXJYiQA13AtWA==", - "license": "MIT", - "dependencies": { - "@babel/runtime-corejs3": "^7.14.9" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "license": "ISC" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "node_modules/yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/yargs/node_modules/cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/yargs/node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/yargs/node_modules/lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "invert-kv": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/yargs/node_modules/os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true, - "license": "ISC" - }, - "node_modules/yargs/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/yargs/node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true, - "license": "ISC" - }, - "node_modules/yargs/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - } - }, - "dependencies": { - "@babel/runtime": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", - "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs3": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", - "integrity": "sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==", - "requires": { - "core-js-pure": "^3.16.0", - "regenerator-runtime": "^0.13.4" - } - }, - "@cypress/request": { - "version": "2.88.10", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", - "integrity": "sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "http-signature": "~1.3.6", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^8.3.2" - } - }, - "@cypress/xvfb": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", - "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", - "dev": true, - "requires": { - "debug": "^3.1.0", - "lodash.once": "^4.1.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "@dabh/diagnostics": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", - "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", - "dev": true, - "requires": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "@gulp-sourcemaps/identity-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", - "integrity": "sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==", - "dev": true, - "requires": { - "acorn": "^6.4.1", - "normalize-path": "^3.0.0", - "postcss": "^7.0.16", - "source-map": "^0.6.0", - "through2": "^3.0.1" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - } - } - }, - "@gulp-sourcemaps/map-sources": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", - "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", - "dev": true, - "requires": { - "normalize-path": "^2.0.1", - "through2": "^2.0.3" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "@sentry/browser": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.16.1.tgz", - "integrity": "sha512-F2I5RL7RTLQF9CccMrqt73GRdK3FdqaChED3RulGQX5lH6U3exHGFxwyZxSrY4x6FedfBFYlfXWWCJXpLnFkow==", - "requires": { - "@sentry/core": "6.16.1", - "@sentry/types": "6.16.1", - "@sentry/utils": "6.16.1", - "tslib": "^1.9.3" - } - }, - "@sentry/core": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.16.1.tgz", - "integrity": "sha512-UFI0264CPUc5cR1zJH+S2UPOANpm6dLJOnsvnIGTjsrwzR0h8Hdl6rC2R/GPq+WNbnipo9hkiIwDlqbqvIU5vw==", - "requires": { - "@sentry/hub": "6.16.1", - "@sentry/minimal": "6.16.1", - "@sentry/types": "6.16.1", - "@sentry/utils": "6.16.1", - "tslib": "^1.9.3" - } - }, - "@sentry/hub": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.16.1.tgz", - "integrity": "sha512-4PGtg6AfpqMkreTpL7ymDeQ/U1uXv03bKUuFdtsSTn/FRf9TLS4JB0KuTZCxfp1IRgAA+iFg6B784dDkT8R9eg==", - "requires": { - "@sentry/types": "6.16.1", - "@sentry/utils": "6.16.1", - "tslib": "^1.9.3" - } - }, - "@sentry/minimal": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.16.1.tgz", - "integrity": "sha512-dq+mI1EQIvUM+zJtGCVgH3/B3Sbx4hKlGf2Usovm9KoqWYA+QpfVBholYDe/H2RXgO7LFEefDLvOdHDkqeJoyA==", - "requires": { - "@sentry/hub": "6.16.1", - "@sentry/types": "6.16.1", - "tslib": "^1.9.3" - } - }, - "@sentry/tracing": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.16.1.tgz", - "integrity": "sha512-MPSbqXX59P+OEeST+U2V/8Hu/8QjpTUxTNeNyTHWIbbchdcMMjDbXTS3etCgajZR6Ro+DHElOz5cdSxH6IBGlA==", - "requires": { - "@sentry/hub": "6.16.1", - "@sentry/minimal": "6.16.1", - "@sentry/types": "6.16.1", - "@sentry/utils": "6.16.1", - "tslib": "^1.9.3" - } - }, - "@sentry/types": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.16.1.tgz", - "integrity": "sha512-Wh354g30UsJ5kYJbercektGX4ZMc9MHU++1NjeN2bTMnbofEcpUDWIiKeulZEY65IC1iU+1zRQQgtYO+/hgCUQ==" - }, - "@sentry/utils": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.16.1.tgz", - "integrity": "sha512-7ngq/i4R8JZitJo9Sl8PDnjSbDehOxgr1vsoMmerIsyRZ651C/8B+jVkMhaAPgSdyJ0AlE3O7DKKTP1FXFw9qw==", - "requires": { - "@sentry/types": "6.16.1", - "tslib": "^1.9.3" - } - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/node": { - "version": "14.17.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.34.tgz", - "integrity": "sha512-USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg==", - "dev": true - }, - "@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", - "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", - "dev": true - }, - "@types/sinonjs__fake-timers": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", - "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", - "dev": true - }, - "@types/sizzle": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", - "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", - "dev": true - }, - "@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "16.11.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz", - "integrity": "sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==", - "dev": true, - "optional": true - } - } - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "requires": { - "string-width": "^4.1.0" - } - }, - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - }, - "dependencies": { - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - } - } - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "dev": true, - "requires": { - "buffer-equal": "^1.0.0" - } - }, - "arch": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", - "dev": true - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true - }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "dev": true, - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dev": true, - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true - }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "dev": true, - "requires": { - "async-done": "^1.2.2" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "autoprefixer": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.1.tgz", - "integrity": "sha512-B3ZEG7wtzXDRCEFsan7HmR2AeNsxdJB0+sEC0Hc5/c2NbhJqPwuZm+tn233GBVw82L+6CtD6IPSfVruwKjfV3A==", - "dev": true, - "requires": { - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001294", - "fraction.js": "^4.1.2", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "dev": true, - "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bintrees": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", - "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=" - }, - "blob-util": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", - "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", - "dev": true - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", - "dev": true - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } - } - }, - "cachedir": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", - "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001294", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001294.tgz", - "integrity": "sha512-LiMlrs1nSKZ8qkNhpUf5KD0Al1KCBE3zaT7OLOwEkagXMEDij98SiOovn9wxVGQpklk9vVC/pUSqgYmkmKOS8g==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.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==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - } - } - }, - "check-more-types": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", - "dev": true - }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "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==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.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==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - } - }, - "clean-css": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", - "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-table3": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz", - "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==", - "dev": true, - "requires": { - "colors": "1.4.0", - "string-width": "^4.2.0" - } - }, - "cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - } - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dev": true, - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "dev": true, - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", - "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", - "dev": true, - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } - }, - "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==", - "dev": true, - "requires": { - "color-name": "1.1.3" - }, - "dependencies": { - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - } - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "color-string": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", - "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, - "colorspace": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", - "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", - "dev": true, - "requires": { - "color": "3.0.x", - "text-hex": "1.0.x" - } - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "dev": true - }, - "common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "concat-with-sourcemaps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - } - }, - "config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "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==", - "dev": true - } - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "copy-props": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", - "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", - "dev": true, - "requires": { - "each-props": "^1.3.2", - "is-plain-object": "^5.0.0" - }, - "dependencies": { - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - } - } - }, - "core-js": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.13.0.tgz", - "integrity": "sha512-iWDbiyha1M5vFwPFmQnvRv+tJzGbFAm6XimJUT0NgHYW3xZEs1SkCAcasWSVFxpI2Xb/V1DDJckq3v90+bQnog==" - }, - "core-js-pure": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz", - "integrity": "sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==" - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-fetch": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", - "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", - "requires": { - "node-fetch": "2.6.1" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true - }, - "css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - }, - "dependencies": { - "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - } - } - }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "dev": true - }, - "css-selector-parser": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz", - "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==", - "dev": true - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "dev": true, - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "dev": true - }, - "cssmin": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/cssmin/-/cssmin-0.4.3.tgz", - "integrity": "sha1-yRlAd+Dr2s1pHV9ZAVudgZ840BU=", - "dev": true - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "requires": { - "css-tree": "^1.1.2" - }, - "dependencies": { - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - } - } - }, - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "csstype": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", - "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" - }, - "cypress": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.3.1.tgz", - "integrity": "sha512-BODdPesxX6bkVUnH8BVsV8I/jn57zQtO1FEOUTiuG2us3kslW7g0tcuwiny7CKCmJUZz8S/D587ppC+s58a+5Q==", - "dev": true, - "requires": { - "@cypress/request": "^2.88.10", - "@cypress/xvfb": "^1.2.4", - "@types/node": "^14.14.31", - "@types/sinonjs__fake-timers": "8.1.1", - "@types/sizzle": "^2.3.2", - "arch": "^2.2.0", - "blob-util": "^2.0.2", - "bluebird": "^3.7.2", - "buffer": "^5.6.0", - "cachedir": "^2.3.0", - "chalk": "^4.1.0", - "check-more-types": "^2.24.0", - "cli-cursor": "^3.1.0", - "cli-table3": "~0.6.1", - "commander": "^5.1.0", - "common-tags": "^1.8.0", - "dayjs": "^1.10.4", - "debug": "^4.3.2", - "enquirer": "^2.3.6", - "eventemitter2": "^6.4.3", - "execa": "4.1.0", - "executable": "^4.1.1", - "extract-zip": "2.0.1", - "figures": "^3.2.0", - "fs-extra": "^9.1.0", - "getos": "^3.2.1", - "is-ci": "^3.0.0", - "is-installed-globally": "~0.4.0", - "lazy-ass": "^1.6.0", - "listr2": "^3.8.3", - "lodash": "^4.17.21", - "log-symbols": "^4.0.0", - "minimist": "^1.2.5", - "ospath": "^1.2.2", - "pretty-bytes": "^5.6.0", - "proxy-from-env": "1.0.0", - "request-progress": "^3.0.0", - "supports-color": "^8.1.1", - "tmp": "~0.2.1", - "untildify": "^4.0.0", - "url": "^0.11.0", - "yauzl": "^2.10.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "cypress-file-upload": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz", - "integrity": "sha512-+8VzNabRk3zG6x8f8BWArF/xA/W0VK4IZNx3MV0jFWrJS/qKn8eHfa5nU73P9fOQAgwHFJx7zjg4lwOnljMO8g==", - "dev": true, - "requires": {} - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" - }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true - }, - "dayjs": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", - "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-fabulous": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", - "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", - "dev": true, - "requires": { - "debug": "3.X", - "memoizee": "0.4.X", - "object-assign": "4.X" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "requires": { - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", - "dev": true - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", - "dev": true - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - } - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "draft-js": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/draft-js/-/draft-js-0.11.7.tgz", - "integrity": "sha512-ne7yFfN4sEL82QPQEn80xnADR8/Q6ALVworbC5UOSzOvjffmYfFsr3xSZtxbIirti14R7Y33EZC5rivpLgIbsg==", - "requires": { - "fbjs": "^2.0.0", - "immutable": "~3.7.4", - "object-assign": "^4.1.1" - }, - "dependencies": { - "immutable": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", - "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=" - } - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "editorconfig": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", - "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", - "requires": { - "commander": "^2.19.0", - "lru-cache": "^4.1.5", - "semver": "^5.6.0", - "sigmund": "^1.0.1" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - } - } - }, - "electron-to-chromium": { - "version": "1.4.30", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.30.tgz", - "integrity": "sha512-609z9sIMxDHg+TcR/VB3MXwH+uwtrYyeAwWc/orhnr90ixs6WVGSrt85CDLGUdNnLqCA7liv426V20EecjvflQ==", - "dev": true - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", - "dev": true - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "requires": { - "iconv-lite": "^0.6.2" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - }, - "dependencies": { - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - } - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", - "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.10.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "dependencies": { - "object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true - } - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dev": true, - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - }, - "dependencies": { - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - } - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "eventemitter2": { - "version": "6.4.5", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.5.tgz", - "integrity": "sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw==", - "dev": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "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==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "executable": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", - "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", - "dev": true, - "requires": { - "pify": "^2.2.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "dev": true, - "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", - "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dev": true, - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", - "dev": true - }, - "fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", - "dev": true - }, - "fbjs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-2.0.0.tgz", - "integrity": "sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ==", - "requires": { - "core-js": "^3.6.4", - "cross-fetch": "^3.0.4", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - }, - "dependencies": { - "ua-parser-js": { - "version": "0.7.28", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", - "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==" - } - } - }, - "fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "fecha": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", - "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==", - "dev": true - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fraction.js": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz", - "integrity": "sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - } - } - }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "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==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getos": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", - "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", - "dev": true, - "requires": { - "async": "^3.2.0" - }, - "dependencies": { - "async": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.2.tgz", - "integrity": "sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==", - "dev": true - } - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "gettext-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-4.2.0.tgz", - "integrity": "sha512-aMgPyjC9W5Mz9tbFU8DcQ7GYMXoFWq633kaWGt4imlcpBWzDIWk7HY7nCSZTCJxyjRaLq9L/NEjMKkZ9gR630Q==", - "dev": true, - "requires": { - "content-type": "^1.0.4", - "encoding": "^0.1.13", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - } - }, - "glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" - }, - "dependencies": { - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - } - } - }, - "global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dev": true, - "requires": { - "ini": "2.0.0" - }, - "dependencies": { - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true - } - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "dependencies": { - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "dev": true, - "requires": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - } - }, - "gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "yargs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", - "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.1" - } - }, - "yargs-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", - "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } - } - } - }, - "gulp-concat": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", - "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", - "dev": true, - "requires": { - "concat-with-sourcemaps": "^1.0.0", - "through2": "^2.0.0", - "vinyl": "^2.0.0" - } - }, - "gulp-gzip": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/gulp-gzip/-/gulp-gzip-1.4.2.tgz", - "integrity": "sha512-ZIxfkUwk2XmZPTT9pPHrHUQlZMyp9nPhg2sfoeN27mBGpi7OaHnOD+WCN41NXjfJQ69lV1nQ9LLm1hYxx4h3UQ==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "bytes": "^3.0.0", - "fancy-log": "^1.3.2", - "plugin-error": "^1.0.0", - "stream-to-array": "^2.3.0", - "through2": "^2.0.3" - } - }, - "gulp-mustache": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gulp-mustache/-/gulp-mustache-5.0.0.tgz", - "integrity": "sha512-8tk0R1Fd+l6+e/t954e3UheFo25dKkTapPLD1sWoSroPXfIPxyHVgbhfH5VJGqeXl3te5GOwPtfcxxZJ+PYoFg==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0", - "mustache": "^4.0.1", - "plugin-error": "^1.0.0", - "replace-ext": "^1.0.0", - "through2": "^3.0.1" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - } - } - }, - "gulp-postcss": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/gulp-postcss/-/gulp-postcss-9.0.1.tgz", - "integrity": "sha512-9QUHam5JyXwGUxaaMvoFQVT44tohpEFpM8xBdPfdwTYGM0AItS1iTQz0MpsF8Jroh7GF5Jt2GVPaYgvy8qD2Fw==", - "dev": true, - "requires": { - "fancy-log": "^1.3.3", - "plugin-error": "^1.0.1", - "postcss-load-config": "^3.0.0", - "vinyl-sourcemaps-apply": "^0.2.1" - } - }, - "gulp-rename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz", - "integrity": "sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==", - "dev": true - }, - "gulp-sass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.0.0.tgz", - "integrity": "sha512-J0aH0/2N4+2szGCeut0ktGHK0Wg8L9uWivuigrl7xv+nhxozBQRAKLrhnDDaTa3FeUWYtgT8w4RlgdhRy5v16w==", - "dev": true, - "requires": { - "chalk": "^4.1.1", - "lodash": "^4.17.20", - "plugin-error": "^1.0.1", - "replace-ext": "^2.0.0", - "strip-ansi": "^6.0.0", - "transfob": "^1.0.0", - "vinyl-sourcemaps-apply": "^0.2.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "replace-ext": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", - "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "gulp-sourcemaps": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz", - "integrity": "sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==", - "dev": true, - "requires": { - "@gulp-sourcemaps/identity-map": "^2.0.1", - "@gulp-sourcemaps/map-sources": "^1.0.0", - "acorn": "^6.4.1", - "convert-source-map": "^1.0.0", - "css": "^3.0.0", - "debug-fabulous": "^1.0.0", - "detect-newline": "^2.0.0", - "graceful-fs": "^4.0.0", - "source-map": "^0.6.0", - "strip-bom-string": "^1.0.0", - "through2": "^2.0.0" - } - }, - "gulp-svg-sprite": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/gulp-svg-sprite/-/gulp-svg-sprite-1.5.0.tgz", - "integrity": "sha512-xLepqh1DjCSNm+secZsxmoWKNTXAXCC6Tglop0e2oOoiIqwBWOvep5Y+qvqRP9L3dn8qBxKkqGot8aTheNGYoQ==", - "dev": true, - "requires": { - "plugin-error": "^1.0.1", - "svg-sprite": "^1.5.0", - "through2": "^2.0.3" - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "requires": { - "glogg": "^1.0.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hasha": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", - "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", - "dev": true, - "requires": { - "is-stream": "^1.0.1", - "pinkie-promise": "^2.0.0" - } - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true - }, - "highlight.js": { - "version": "11.3.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.3.1.tgz", - "integrity": "sha512-PUhCRnPjLtiLHZAQ5A/Dt5F8cWZeMyj9KRsACsWT+OD6OP0x6dp5OmT5jdx0JgEyPxPZZIPQpRN2TciUT7occw==" - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "http-signature": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", - "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^2.0.2", - "sshpk": "^1.14.1" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" - }, - "immutable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", - "dev": true - }, - "import-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", - "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", - "dev": true, - "requires": { - "import-from": "^3.0.0" - } - }, - "import-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", - "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, - "requires": { - "ci-info": "^3.2.0" - } - }, - "is-core-module": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", - "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", - "dev": true - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, - "requires": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - } - }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - } - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", - "dev": true - }, - "is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", - "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "js-beautify": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.0.tgz", - "integrity": "sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ==", - "requires": { - "config-chain": "^1.1.12", - "editorconfig": "^0.15.3", - "glob": "^7.1.3", - "nopt": "^5.0.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jsprim": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", - "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "jszip": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", - "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - } - }, - "just-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", - "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", - "dev": true - }, - "kew": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", - "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", - "dev": true - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "requires": { - "json-buffer": "3.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", - "dev": true - }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "dev": true, - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "requires": { - "package-json": "^6.3.0" - } - }, - "lazy-ass": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", - "dev": true - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "dev": true, - "requires": { - "flush-write-stream": "^1.0.2" - } - }, - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "requires": { - "immediate": "~3.0.5" - } - }, - "liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "dev": true, - "requires": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, - "dependencies": { - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - } - } - }, - "lilconfig": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", - "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", - "dev": true - }, - "listr2": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz", - "integrity": "sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==", - "dev": true, - "requires": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.4.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^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=", - "dev": true - } - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash._arraymap": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz", - "integrity": "sha1-Go/Q9MDfS2HeoHbXF83Jfwo8PmY=", - "dev": true - }, - "lodash._basecallback": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz", - "integrity": "sha1-t7K7Q9whYEJKIczybFfkQ3cqjic=", - "dev": true, - "requires": { - "lodash._baseisequal": "^3.0.0", - "lodash._bindcallback": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.pairs": "^3.0.0" - } - }, - "lodash._baseeach": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz", - "integrity": "sha1-z4cGVyyhROjZ11InyZDamC+TKvM=", - "dev": true, - "requires": { - "lodash.keys": "^3.0.0" - } - }, - "lodash._baseget": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/lodash._baseget/-/lodash._baseget-3.7.2.tgz", - "integrity": "sha1-G2rh1frPPCVTI1ChPBGXy4u2dPQ=", - "dev": true - }, - "lodash._baseisequal": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz", - "integrity": "sha1-2AJfdjOdKTQnZ9zIh85cuVpbUfE=", - "dev": true, - "requires": { - "lodash.isarray": "^3.0.0", - "lodash.istypedarray": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "lodash._bindcallback": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", - "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "lodash._topath": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/lodash._topath/-/lodash._topath-3.8.1.tgz", - "integrity": "sha1-PsXiYGAU9MuX91X+aRTt2L/ADqw=", - "dev": true, - "requires": { - "lodash.isarray": "^3.0.0" - } - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", - "dev": true - }, - "lodash.istypedarray": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz", - "integrity": "sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I=", - "dev": true - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "lodash.map": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-3.1.4.tgz", - "integrity": "sha1-tIOs0beGxce0ksSV97UmYim8AMI=", - "dev": true, - "requires": { - "lodash._arraymap": "^3.0.0", - "lodash._basecallback": "^3.0.0", - "lodash._baseeach": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", - "dev": true - }, - "lodash.pairs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz", - "integrity": "sha1-u+CNV4bu6qCaFckevw3LfSvjJqk=", - "dev": true, - "requires": { - "lodash.keys": "^3.0.0" - } - }, - "lodash.pluck": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.pluck/-/lodash.pluck-3.1.2.tgz", - "integrity": "sha1-s0fwN0wBafDusE1nLYnOyGMsIjE=", - "dev": true, - "requires": { - "lodash._baseget": "^3.0.0", - "lodash._topath": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.map": "^3.0.0" - } - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "logform": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz", - "integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==", - "dev": true, - "requires": { - "colors": "^1.2.1", - "fast-safe-stringify": "^2.0.4", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "triple-beam": "^1.3.0" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "dev": true, - "requires": { - "es5-ext": "~0.10.2" - } - }, - "luxon": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.2.0.tgz", - "integrity": "sha512-LwmknessH4jVIseCsizUgveIHwlLv/RQZWC2uDSMfGJs7w8faPUi2JFxfyfMcTPrpNbChTem3Uz6IKRtn+LcIA==" - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "marked": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.8.tgz", - "integrity": "sha512-dkpJMIlJpc833hbjjg8jraw1t51e/eKDoG8TFOgc5O0Z77zaYKigYekTDop5AplRoKFGIaoazhYEhGkMtU3IeA==", - "dev": true - }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "dev": true, - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "dev": true - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", - "dev": true, - "requires": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" - } - }, - "memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "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" - }, - "dependencies": { - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", - "dev": true - }, - "mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", - "dev": true, - "requires": { - "mime-db": "1.48.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "requires": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "mousetrap": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz", - "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "dev": true - }, - "mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", - "dev": true - }, - "nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "nodemon": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", - "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", - "dev": true, - "requires": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5", - "update-notifier": "^5.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true - }, - "now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "dev": true, - "requires": { - "once": "^1.3.2" - } - }, - "npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.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==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - } - } - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - }, - "dependencies": { - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - } - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - } - }, - "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", - "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "dev": true, - "requires": { - "fn.name": "1.x.x" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "opentype.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/opentype.js/-/opentype.js-1.3.4.tgz", - "integrity": "sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw==", - "requires": { - "string.prototype.codepointat": "^0.2.1", - "tiny-inflate": "^1.0.3" - } - }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, - "ospath": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", - "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", - "dev": true - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "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=", - "dev": true - } - } - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "phantomjs-prebuilt": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", - "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", - "dev": true, - "requires": { - "es6-promise": "^4.0.3", - "extract-zip": "^1.6.5", - "fs-extra": "^1.0.0", - "hasha": "^2.2.0", - "kew": "^0.7.0", - "progress": "^1.1.8", - "request": "^2.81.0", - "request-progress": "^2.0.1", - "which": "^1.2.10" - }, - "dependencies": { - "extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "dev": true, - "requires": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - } - }, - "fs-extra": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", - "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0" - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "request-progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", - "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", - "dev": true, - "requires": { - "throttleit": "^1.0.0" - } - } - } - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - }, - "pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "dev": true, - "requires": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - } - }, - "postcss-clean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/postcss-clean/-/postcss-clean-1.2.2.tgz", - "integrity": "sha512-DpuMWW19Dd2K9KY4wknMz3khq9q2yZYa2U37bnhzdtBdBv0ggIfUj5T2XD3ir6gKVlDkb5OtOqw1iQJWq6qvpw==", - "dev": true, - "requires": { - "clean-css": "^4.x", - "postcss": "^6.x" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - } - } - }, - "postcss-load-config": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", - "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", - "dev": true, - "requires": { - "import-cwd": "^3.0.0", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - }, - "prettier": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", - "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", - "dev": true - }, - "pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "dev": true - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, - "prettysize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prettysize/-/prettysize-1.1.0.tgz", - "integrity": "sha512-U5Noa+FYV1dGkICyLJz8IWlDUehPF4Bk9tZRO8YqPhLA9EoiHuFqtnpWY2mvMjHh5eOLo82HipeLn4RIiSsGqQ==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "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==" - }, - "progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", - "dev": true - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" - } - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" - }, - "proxy-from-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", - "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "requires": { - "escape-goat": "^2.0.0" - } - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomcolor": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/randomcolor/-/randomcolor-0.6.2.tgz", - "integrity": "sha512-Mn6TbyYpFgwFuQ8KJKqf3bqqY9O1y37/0jgSK/61PUxV4QfIMv0+K2ioq8DfOjkBslcjwSzRfIDEXfzA9aCx7A==" - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "react-virtualized": { - "version": "9.22.3", - "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.22.3.tgz", - "integrity": "sha512-MKovKMxWTcwPSxE1kK1HcheQTWfuCxAuBoSTf2gwyMM21NdX/PXUhnoP8Uc5dRKd+nKm8v41R36OellhdCpkrw==", - "requires": { - "@babel/runtime": "^7.7.2", - "clsx": "^1.0.4", - "dom-helpers": "^5.1.3", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-lifecycles-compat": "^3.0.4" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.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==", - "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" - }, - "dependencies": { - "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==" - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "readline-sync": { - "version": "1.4.10", - "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", - "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==", - "dev": true - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "dev": true, - "requires": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true - }, - "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "request-progress": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", - "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", - "dev": true, - "requires": { - "throttleit": "^1.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "dev": true, - "requires": { - "value-or-function": "^3.0.0" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", - "requires": { - "tslib": "~2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - } - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sass": { - "version": "1.45.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.45.1.tgz", - "integrity": "sha512-pwPRiq29UR0o4X3fiQyCtrESldXvUQAAE0QmcJTpsI4kuHHcLzZ54M1oNBVIXybQv8QF2zfkpFcTxp8ta97dUA==", - "dev": true, - "requires": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "dev": true, - "requires": { - "sver-compat": "^1.5.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shadow-cljs": { - "version": "2.16.12", - "resolved": "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.16.12.tgz", - "integrity": "sha512-6JqOhN5X3n0IkxA/gSUcZ1lImwcW1LmpgzlaBDOC/u/pIysdNm0tiOxpOTEnExl9nKZBS/EYS7bXIIInywPJUA==", - "dev": true, - "requires": { - "node-libs-browser": "^2.2.1", - "readline-sync": "^1.4.7", - "shadow-cljs-jar": "1.3.2", - "source-map-support": "^0.4.15", - "which": "^1.3.1", - "ws": "^7.4.6" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - } - } - }, - "shadow-cljs-jar": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/shadow-cljs-jar/-/shadow-cljs-jar-1.3.2.tgz", - "integrity": "sha512-XmeffAZHv8z7451kzeq9oKh8fh278Ak+UIOGGrapyqrFBB773xN8vMQ3O7J7TYLnb9BUwcqadKkmgaq7q6fhZg==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", - "dev": true - }, - "should": { - "version": "13.2.3", - "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", - "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", - "dev": true, - "requires": { - "should-equal": "^2.0.0", - "should-format": "^3.0.3", - "should-type": "^1.4.0", - "should-type-adaptors": "^1.0.1", - "should-util": "^1.0.0" - } - }, - "should-equal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", - "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", - "dev": true, - "requires": { - "should-type": "^1.4.0" - } - }, - "should-format": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", - "integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=", - "dev": true, - "requires": { - "should-type": "^1.3.0", - "should-type-adaptors": "^1.0.1" - } - }, - "should-type": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", - "integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=", - "dev": true - }, - "should-type-adaptors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", - "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", - "dev": true, - "requires": { - "should-type": "^1.3.0", - "should-util": "^1.0.0" - } - }, - "should-util": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", - "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" - }, - "signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", - "dev": true - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - } - } - }, - "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", - "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "stream-to-array": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz", - "integrity": "sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M=", - "dev": true, - "requires": { - "any-promise": "^1.1.0" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "string.prototype.codepointat": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz", - "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==" - }, - "string.prototype.padend": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz", - "integrity": "sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - } - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "dev": true, - "requires": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "svg-sprite": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/svg-sprite/-/svg-sprite-1.5.0.tgz", - "integrity": "sha512-0mE5BLY3K8wg3+HrYfzpiKbIM44IGcg8uINED8ri22EdQbLvGecOHjRtkrNAlphbiU5kyGyqoBlIaukL45fs2Q==", - "dev": true, - "requires": { - "async": "^2.6.1", - "css-selector-parser": "^1.3.0", - "cssmin": "^0.4.3", - "cssom": "^0.3.4", - "dateformat": "^3.0.3", - "glob": "^7.1.3", - "js-yaml": "^3.12.0", - "lodash": "^4.17.11", - "lodash.pluck": "^3.1.2", - "mkdirp": "^0.5.1", - "mocha": "^5.2.0", - "mustache": "^3.0.0", - "phantomjs-prebuilt": "^2.1.16", - "prettysize": "^1.1.0", - "should": "^13.2.3", - "svgo": "^1.1.1", - "vinyl": "^2.2.0", - "winston": "^3.1.0", - "xmldom": "0.1.27", - "xpath": "^0.0.27", - "yargs": "^12.0.2" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mustache": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-3.2.1.tgz", - "integrity": "sha512-RERvMFdLpaFfSRIEe632yDm5nsd0SDKn8hGmcUwswnyiE5mtdZLDybtHAz6hjJhawokF0hXvGLtx9mrQfm6FkA==", - "dev": true - } - } - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "tdigest": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz", - "integrity": "sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=", - "requires": { - "bintrees": "1.0.1" - } - }, - "text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", - "dev": true - }, - "throttleit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", - "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true - }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "dev": true, - "requires": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "tiny-inflate": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", - "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "dev": true, - "requires": { - "through2": "^2.0.3" - } - }, - "touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "requires": { - "nopt": "~1.0.10" - }, - "dependencies": { - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "requires": { - "abbrev": "1" - } - } - } - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "transfob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/transfob/-/transfob-1.0.0.tgz", - "integrity": "sha1-x/wnpbVDCtSGJnrmZtkj90oKsyA=", - "dev": true - }, - "triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "ua-parser-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz", - "integrity": "sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==" - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true - }, - "undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - } - }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "dev": true, - "requires": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true - }, - "update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, - "requires": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "requires": { - "prepend-http": "^2.0.0" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - }, - "v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "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=", - "dev": true - }, - "extsprintf": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz", - "integrity": "sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=", - "dev": true - } - } - }, - "vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "dev": true, - "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - } - }, - "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "dev": true, - "requires": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "vinyl-sourcemaps-apply": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", - "dev": true, - "requires": { - "source-map": "^0.5.1" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "requires": { - "string-width": "^4.0.0" - } - }, - "winston": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", - "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", - "dev": true, - "requires": { - "@dabh/diagnostics": "^2.0.2", - "async": "^3.1.0", - "is-stream": "^2.0.0", - "logform": "^2.2.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.4.0" - }, - "dependencies": { - "async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", - "dev": true - }, - "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==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "winston-transport": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", - "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", - "dev": true, - "requires": { - "readable-stream": "^2.3.7", - "triple-beam": "^1.2.0" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz", - "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==", - "dev": true, - "requires": {} - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true - }, - "xmldom": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", - "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", - "dev": true - }, - "xpath": { - "version": "0.0.27", - "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz", - "integrity": "sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ==", - "dev": true - }, - "xregexp": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-5.1.0.tgz", - "integrity": "sha512-PynwUWtXnSZr8tpQlDPMZfPTyv78EYuA4oI959ukxcQ0a9O/lvndLVKy5wpImzzA26eMxpZmnAXJYiQA13AtWA==", - "requires": { - "@babel/runtime-corejs3": "^7.14.9" - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - } - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } - } - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - } - } -} From bd359f42f533ba005729f88c8a616576f0907fbe Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 2 Feb 2022 19:17:51 +0100 Subject: [PATCH 047/154] :paperclip: Add package-lock.json to .gitignore file --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 67358d3dc4..22ae73c022 100644 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,7 @@ /exporter/.shadow-cljs /exporter/target /frontend/.shadow-cljs +/frontend/package-lock.json /frontend/cypress/videos/*/ /frontend/cypress/fixtures/validuser.json /frontend/dist/ From 5f580f10ca57840247128a2d9a210da6d6b27518 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Tue, 1 Feb 2022 15:37:22 +0100 Subject: [PATCH 048/154] :sparkles: On user settings, hide the theme selector as long as we only have one theme --- CHANGES.md | 1 + frontend/src/app/main/ui/settings/options.cljs | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 606650c491..7e747dc370 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,7 @@ ### :sparkles: New features +- On user settings, hide the theme selector as long as we only have one theme [Taiga #2610](https://tree.taiga.io/project/penpot/us/2610) - Add recent used fonts in font selection widget [Taiga #1381](https://tree.taiga.io/project/penpot/us/1381) - Allow to align items relative to groups [Taiga #2533](https://tree.taiga.io/project/penpot/us/2533) - Scroll bars [Taiga #2550](https://tree.taiga.io/project/penpot/task/2550) diff --git a/frontend/src/app/main/ui/settings/options.cljs b/frontend/src/app/main/ui/settings/options.cljs index 66d213bdcb..1793d5bfb2 100644 --- a/frontend/src/app/main/ui/settings/options.cljs +++ b/frontend/src/app/main/ui/settings/options.cljs @@ -54,9 +54,10 @@ :default "" :name :lang :data-test "setting-lang"}]] - - [:h2 (t locale "dashboard.theme-change")] - [:div.fields-row + + ;; TODO: Do not show as long as we only have one theme + #_[:h2 (t locale "dashboard.theme-change")] + #_[:div.fields-row [:& fm/select {:label (t locale "dashboard.select-ui-theme") :name :theme :default "default" From 1797c702a7dd983886d21b1f960b9a10a8c34786 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Wed, 2 Feb 2022 09:10:59 +0100 Subject: [PATCH 049/154] :sparkles: Automatically open comments from dashboard notifications --- CHANGES.md | 1 + frontend/src/app/main/data/workspace/comments.cljs | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 7e747dc370..d4d3114945 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -7,6 +7,7 @@ ### :sparkles: New features - On user settings, hide the theme selector as long as we only have one theme [Taiga #2610](https://tree.taiga.io/project/penpot/us/2610) +- Automatically open comments from dashboard notifications [Taiga #2605](https://tree.taiga.io/project/penpot/us/2605) - Add recent used fonts in font selection widget [Taiga #1381](https://tree.taiga.io/project/penpot/us/1381) - Allow to align items relative to groups [Taiga #2533](https://tree.taiga.io/project/penpot/us/2533) - Scroll bars [Taiga #2550](https://tree.taiga.io/project/penpot/task/2550) diff --git a/frontend/src/app/main/data/workspace/comments.cljs b/frontend/src/app/main/data/workspace/comments.cljs index ede10867f2..c3a7f572ef 100644 --- a/frontend/src/app/main/data/workspace/comments.cljs +++ b/frontend/src/app/main/data/workspace/comments.cljs @@ -99,4 +99,5 @@ (rx/filter (ptk/type? ::dw/initialize-viewport)) (rx/take 1) (rx/mapcat #(rx/of (center-to-comment-thread thread) + (dw/select-for-drawing :comments) (dcm/open-thread thread))))))))) From 105cb6fa13819f80b6c2ca6c50c732d13b5cb6b2 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Wed, 2 Feb 2022 18:55:33 +0100 Subject: [PATCH 050/154] :sparkles: Enhance the behaviour of the artboards list on view mode --- CHANGES.md | 1 + .../styles/main/partials/viewer-thumbnails.scss | 13 ++++++++++++- frontend/src/app/main/ui/viewer.cljs | 2 ++ frontend/src/app/main/ui/viewer/header.cljs | 6 +++++- frontend/src/app/main/ui/viewer/thumbnails.cljs | 5 ++--- 5 files changed, 22 insertions(+), 5 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index d4d3114945..5b9d0d4df8 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -8,6 +8,7 @@ - On user settings, hide the theme selector as long as we only have one theme [Taiga #2610](https://tree.taiga.io/project/penpot/us/2610) - Automatically open comments from dashboard notifications [Taiga #2605](https://tree.taiga.io/project/penpot/us/2605) +- Enhance the behaviour of the artboards list on view mode [Taiga #2634](https://tree.taiga.io/project/penpot/us/2634) - Add recent used fonts in font selection widget [Taiga #1381](https://tree.taiga.io/project/penpot/us/1381) - Allow to align items relative to groups [Taiga #2533](https://tree.taiga.io/project/penpot/us/2533) - Scroll bars [Taiga #2550](https://tree.taiga.io/project/penpot/task/2550) diff --git a/frontend/resources/styles/main/partials/viewer-thumbnails.scss b/frontend/resources/styles/main/partials/viewer-thumbnails.scss index 29c7441c9a..8ccc4fcf14 100644 --- a/frontend/resources/styles/main/partials/viewer-thumbnails.scss +++ b/frontend/resources/styles/main/partials/viewer-thumbnails.scss @@ -6,7 +6,7 @@ overflow: hidden; display: flex; flex-direction: column; - z-index: 10; + z-index: 11; &.invisible { visibility: hidden; @@ -179,3 +179,14 @@ } } } + +.thumbnail-close { + grid-row: 1 / span 2; + grid-column: 1 / span 1; + z-index: 11; +} + +.thumbnail-close.invisible { + visibility: hidden; + pointer-events: none; +} diff --git a/frontend/src/app/main/ui/viewer.cljs b/frontend/src/app/main/ui/viewer.cljs index 432f4ec050..144c472d9b 100644 --- a/frontend/src/app/main/ui/viewer.cljs +++ b/frontend/src/app/main/ui/viewer.cljs @@ -230,6 +230,8 @@ :section section}] [:div.viewer-content + [:div.thumbnail-close {:on-click #(st/emit! dv/close-thumbnails-panel) + :class (dom/classnames :invisible (not (:show-thumbnails local false)))}] [:& thumbnails-panel {:frames frames :show? (:show-thumbnails local false) :page page diff --git a/frontend/src/app/main/ui/viewer/header.cljs b/frontend/src/app/main/ui/viewer/header.cljs index 8a3e078a06..d5a833f796 100644 --- a/frontend/src/app/main/ui/viewer/header.cljs +++ b/frontend/src/app/main/ui/viewer/header.cljs @@ -172,6 +172,10 @@ (let [go-to-dashboard (st/emitf (dv/go-to-dashboard)) + go-to-handoff + (fn [] + (st/emit! dv/close-thumbnails-panel (dv/go-to-section :handoff))) + navigate (fn [section] (st/emit! (dv/go-to-section section)))] @@ -203,7 +207,7 @@ (and (= (:type permissions) :share-link) (contains? (:flags permissions) :section-handoff))) [:button.mode-zone-button.tooltip.tooltip-bottom - {:on-click #(navigate :handoff) + {:on-click go-to-handoff :class (dom/classnames :active (= section :handoff)) :alt (tr "viewer.header.handoff-section" (sc/get-tooltip :open-handoff))} i/code])] diff --git a/frontend/src/app/main/ui/viewer/thumbnails.cljs b/frontend/src/app/main/ui/viewer/thumbnails.cljs index c383149a03..a38e8b16c3 100644 --- a/frontend/src/app/main/ui/viewer/thumbnails.cljs +++ b/frontend/src/app/main/ui/viewer/thumbnails.cljs @@ -104,14 +104,13 @@ {:class (dom/classnames :expanded @expanded? :invisible (not show?)) - :ref container - } + :ref container} [:& thumbnails-summary {:on-toggle-expand #(swap! expanded? not) :on-close on-close :total (count frames)}] [:& thumbnails-content {:expanded? @expanded? - :total (count frames)} + :total (count frames)} (for [[i frame] (d/enumerate frames)] [:& thumbnail-item {:index i :frame frame From 0f459ede50565e14ad8ee6410455867f18a821a6 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Thu, 3 Feb 2022 13:24:51 +0100 Subject: [PATCH 051/154] :bug: Fix issue in viewport-scrollbars --- frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs b/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs index d4bff28492..be47a40cf8 100644 --- a/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs @@ -185,7 +185,7 @@ (reset! v-scrolling? false) (reset! h-scrolling? false)))] - [* + [:* (when show-v-scroll? [:g.v-scroll [:rect {:on-mouse-move #(on-mouse-move % :y) From acc3d00fd5824c5acc918f363a2feb318413fdc1 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Fri, 28 Jan 2022 13:39:17 +0100 Subject: [PATCH 052/154] :tada: Add stroke properties to image shape --- CHANGES.md | 1 + frontend/src/app/main/ui/shapes/attrs.cljs | 18 +++++--- .../src/app/main/ui/shapes/fill_image.cljs | 16 +++++-- frontend/src/app/main/ui/shapes/image.cljs | 43 +++++++++++++------ frontend/src/app/main/ui/shapes/path.cljs | 8 +++- .../sidebar/options/shapes/image.cljs | 14 +++++- 6 files changed, 75 insertions(+), 25 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 5b9d0d4df8..8f5fb32edf 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,7 @@ ### :sparkles: New features +- Add stroke properties for image shapes [Taiga #497](https://tree.taiga.io/project/penpot/us/497) - On user settings, hide the theme selector as long as we only have one theme [Taiga #2610](https://tree.taiga.io/project/penpot/us/2610) - Automatically open comments from dashboard notifications [Taiga #2605](https://tree.taiga.io/project/penpot/us/2605) - Enhance the behaviour of the artboards list on view mode [Taiga #2634](https://tree.taiga.io/project/penpot/us/2634) diff --git a/frontend/src/app/main/ui/shapes/attrs.cljs b/frontend/src/app/main/ui/shapes/attrs.cljs index 081306f4ca..06ef83ccf7 100644 --- a/frontend/src/app/main/ui/shapes/attrs.cljs +++ b/frontend/src/app/main/ui/shapes/attrs.cljs @@ -81,6 +81,10 @@ (defn add-fill [attrs shape render-id] (let [fill-attrs (cond + (contains? shape :fill-image) + (let [fill-image-id (str "fill-image-" render-id)] + {:fill (str/format "url(#%s)" fill-image-id)}) + (contains? shape :fill-color-gradient) (let [fill-color-gradient-id (str "fill-color-gradient_" render-id)] {:fill (str/format "url(#%s)" fill-color-gradient-id)}) @@ -88,14 +92,10 @@ (contains? shape :fill-color) {:fill (:fill-color shape)} - (contains? shape :fill-image) - (let [fill-image-id (str "fill-image-" render-id)] - {:fill (str/format "url(#%s)" fill-image-id) }) - ;; If contains svg-attrs the origin is svg. If it's not svg origin ;; we setup the default fill as transparent (instead of black) (and (not (contains? shape :svg-attrs)) - (not (#{ :svg-raw :group } (:type shape)))) + (not (#{:svg-raw :group} (:type shape)))) {:fill "none"} :else @@ -206,3 +206,11 @@ [shape] (-> (obj/new) (add-style-attrs shape))) + +(defn extract-fill-attrs + [shape] + (let [render-id (mf/use-ctx muc/render-ctx) + fill-styles (-> (obj/get shape "style" (obj/new)) + (add-fill shape render-id))] + (-> (obj/new) + (obj/set! "style" fill-styles)))) diff --git a/frontend/src/app/main/ui/shapes/fill_image.cljs b/frontend/src/app/main/ui/shapes/fill_image.cljs index 986dbc37e3..e3c8f2dc71 100644 --- a/frontend/src/app/main/ui/shapes/fill_image.cljs +++ b/frontend/src/app/main/ui/shapes/fill_image.cljs @@ -8,6 +8,7 @@ (:require [app.common.geom.shapes :as gsh] [app.config :as cfg] + [app.main.ui.shapes.attrs :as attrs] [app.main.ui.shapes.embed :as embed] [app.util.object :as obj] [rumext.alpha :as mf])) @@ -23,7 +24,11 @@ fill-image-id (str "fill-image-" render-id) uri (cfg/resolve-file-media (:fill-image shape)) embed (embed/use-data-uris [uri]) - transform (gsh/transform-matrix shape)] + transform (gsh/transform-matrix shape) + shape-without-image (dissoc shape :fill-image) + fill-attrs (-> (attrs/extract-fill-attrs shape-without-image) + (obj/set! "width" width) + (obj/set! "height" height))] [:pattern {:id fill-image-id :patternUnits "userSpaceOnUse" @@ -33,6 +38,9 @@ :width width :patternTransform transform :data-loading (str (not (contains? embed uri)))} - [:image {:xlinkHref (get embed uri uri) - :width width - :height height}]])))) + [:g + [:> :rect fill-attrs] + [:image {:xlinkHref (get embed uri uri) + :width width + :height height}] + ]])))) diff --git a/frontend/src/app/main/ui/shapes/image.cljs b/frontend/src/app/main/ui/shapes/image.cljs index 5fa4eec47a..d438fa5cfe 100644 --- a/frontend/src/app/main/ui/shapes/image.cljs +++ b/frontend/src/app/main/ui/shapes/image.cljs @@ -6,11 +6,12 @@ (ns app.main.ui.shapes.image (:require - [app.common.geom.shapes :as geom] + [app.common.geom.shapes :as gsh] [app.config :as cfg] + [app.main.ui.context :as muc] [app.main.ui.shapes.attrs :as attrs] + [app.main.ui.shapes.custom-stroke :refer [shape-custom-stroke]] [app.main.ui.shapes.embed :as embed] - [app.util.dom :as dom] [app.util.object :as obj] [rumext.alpha :as mf])) @@ -23,22 +24,36 @@ uri (cfg/resolve-file-media metadata) embed (embed/use-data-uris [uri]) - transform (geom/transform-matrix shape) + transform (gsh/transform-matrix shape) + + fill-attrs (-> (attrs/extract-fill-attrs shape) + (obj/set! "width" width) + (obj/set! "height" height)) + + render-id (mf/use-ctx muc/render-ctx) + fill-image-id (str "fill-image-" render-id) + shape (assoc shape :fill-image fill-image-id) props (-> (attrs/extract-style-attrs shape) (obj/merge! #js {:x x :y y :transform transform :width width - :height height - :preserveAspectRatio "none" - :data-loading (str (not (contains? embed uri)))})) + :height height}))] - on-drag-start (fn [event] - ;; Prevent browser dragging of the image - (dom/prevent-default event))] - - [:> "image" (obj/merge! - props - #js {:xlinkHref (get embed uri uri) - :onDragStart on-drag-start})])) + [:g + [:defs + [:pattern {:id fill-image-id + :patternUnits "userSpaceOnUse" + :x x + :y y + :height height + :width width + :data-loading (str (not (contains? embed uri)))} + [:g + [:> :rect fill-attrs] + [:image {:xlinkHref (get embed uri uri) + :width width + :height height}]]]] + [:& shape-custom-stroke {:shape shape} + [:> :rect props]]])) diff --git a/frontend/src/app/main/ui/shapes/path.cljs b/frontend/src/app/main/ui/shapes/path.cljs index 36155fc7e8..c7d0b3e0fb 100644 --- a/frontend/src/app/main/ui/shapes/path.cljs +++ b/frontend/src/app/main/ui/shapes/path.cljs @@ -7,6 +7,7 @@ (ns app.main.ui.shapes.path (:require [app.common.logging :as log] + [app.main.ui.context :as muc] [app.main.ui.shapes.attrs :as attrs] [app.main.ui.shapes.custom-stroke :refer [shape-custom-stroke]] [app.util.object :as obj] @@ -18,7 +19,10 @@ (mf/defc path-shape {::mf/wrap-props false} [props] - (let [shape (unchecked-get props "shape") + (let [shape (-> (unchecked-get props "shape") + (dissoc :fill-color) + (dissoc :fill-opacity) + (dissoc :fill-image)) content (:content shape) pdata (mf/with-memo [content] (try @@ -30,6 +34,8 @@ :cause e) ""))) + render-id (mf/use-ctx muc/render-ctx) + shape (assoc shape :fill-image (str "fill-image-" render-id)) props (-> (attrs/extract-style-attrs shape) (obj/set! "d" pdata))] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/image.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/image.cljs index b71574c29c..eb91a0fa6a 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/image.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/image.cljs @@ -8,9 +8,11 @@ (:require [app.main.ui.workspace.sidebar.options.menus.blur :refer [blur-menu]] [app.main.ui.workspace.sidebar.options.menus.constraints :refer [constraint-attrs constraints-menu]] + [app.main.ui.workspace.sidebar.options.menus.fill :refer [fill-attrs fill-menu]] [app.main.ui.workspace.sidebar.options.menus.layer :refer [layer-attrs layer-menu]] [app.main.ui.workspace.sidebar.options.menus.measures :refer [measure-attrs measures-menu]] [app.main.ui.workspace.sidebar.options.menus.shadow :refer [shadow-menu]] + [app.main.ui.workspace.sidebar.options.menus.stroke :refer [stroke-attrs stroke-menu]] [rumext.alpha :as mf])) (mf/defc options @@ -19,7 +21,9 @@ type (:type shape) measure-values (select-keys shape measure-attrs) layer-values (select-keys shape layer-attrs) - constraint-values (select-keys shape constraint-attrs)] + constraint-values (select-keys shape constraint-attrs) + fill-values (select-keys shape fill-attrs) + stroke-values (select-keys shape stroke-attrs)] [:* [:& measures-menu {:ids ids :type type @@ -32,6 +36,14 @@ :type type :values layer-values}] + [:& fill-menu {:ids ids + :type type + :values fill-values}] + + [:& stroke-menu {:ids ids + :type type + :values stroke-values}] + [:& shadow-menu {:ids ids :values (select-keys shape [:shadow])}] From 1599b2644a016bbf23b21cba4fecc6a2860ef055 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Wed, 26 Jan 2022 15:16:21 +0100 Subject: [PATCH 053/154] :sparkles: Resizeable panels --- frontend/resources/styles/common/base.scss | 7 ++ .../styles/main/layouts/handoff.scss | 3 +- .../styles/main/partials/color-palette.scss | 21 ++-- .../styles/main/partials/left-toolbar.scss | 9 -- .../styles/main/partials/sidebar.scss | 35 +++--- .../main/partials/workspace-header.scss | 4 +- .../styles/main/partials/workspace.scss | 77 ++++++++++++-- frontend/src/app/main/data/workspace.cljs | 47 +++++--- frontend/src/app/main/ui/hooks/resize.cljs | 100 ++++++++++++++++++ frontend/src/app/main/ui/workspace.cljs | 15 ++- .../app/main/ui/workspace/colorpalette.cljs | 20 ++-- .../app/main/ui/workspace/left_toolbar.cljs | 5 +- .../src/app/main/ui/workspace/sidebar.cljs | 41 ++++--- .../src/app/main/ui/workspace/viewport.cljs | 3 - .../main/ui/workspace/viewport/actions.cljs | 8 -- .../main/ui/workspace/viewport/guides.cljs | 6 +- .../app/main/ui/workspace/viewport/hooks.cljs | 20 ++-- .../ui/workspace/viewport/pixel_overlay.cljs | 2 +- .../app/main/ui/workspace/viewport/utils.cljs | 2 +- 19 files changed, 307 insertions(+), 118 deletions(-) create mode 100644 frontend/src/app/main/ui/hooks/resize.cljs diff --git a/frontend/resources/styles/common/base.scss b/frontend/resources/styles/common/base.scss index 34ff9c2320..ebd5568d1e 100644 --- a/frontend/resources/styles/common/base.scss +++ b/frontend/resources/styles/common/base.scss @@ -11,6 +11,13 @@ body { display: flex; flex-direction: column; font-family: "worksans", sans-serif; + width: 100vw; + height: 100vh; + overflow: hidden; +} + +#app { + width: 100vw; height: 100vh; overflow: hidden; } diff --git a/frontend/resources/styles/main/layouts/handoff.scss b/frontend/resources/styles/main/layouts/handoff.scss index 087c0c6f47..59d981d227 100644 --- a/frontend/resources/styles/main/layouts/handoff.scss +++ b/frontend/resources/styles/main/layouts/handoff.scss @@ -1,4 +1,5 @@ -$width-settings-bar: 16rem; +$width-left-toolbar: 48px; +$width-settings-bar: 256px; .handoff-layout { height: 100vh; diff --git a/frontend/resources/styles/main/partials/color-palette.scss b/frontend/resources/styles/main/partials/color-palette.scss index fb42b2418b..040a24d735 100644 --- a/frontend/resources/styles/main/partials/color-palette.scss +++ b/frontend/resources/styles/main/partials/color-palette.scss @@ -10,10 +10,7 @@ background-color: $color-gray-50; border-top: 1px solid $color-gray-60; display: flex; - position: absolute; - bottom: 0; - left: 0; - width: 100%; + z-index: 11; & .right-arrow, @@ -46,16 +43,21 @@ @include animation(0, 0.5s, fadeOutDown); } - &.left-sidebar-open { - left: 303px; - width: calc(100% - 303px); - } - & .context-menu-items { bottom: 1.5rem; top: initial; min-width: 10rem; } + + & .resize-area { + position: absolute; + height: 8px; + width: 100%; + z-index: 10; + cursor: ns-resize; + top: 0; + left: 0; + } } .color-palette-actions { @@ -119,7 +121,6 @@ display: flex; overflow: hidden; width: 100%; - height: 5rem; padding: 0.25rem; &.size-small { diff --git a/frontend/resources/styles/main/partials/left-toolbar.scss b/frontend/resources/styles/main/partials/left-toolbar.scss index 9b5cf562e8..29ba7bc9a5 100644 --- a/frontend/resources/styles/main/partials/left-toolbar.scss +++ b/frontend/resources/styles/main/partials/left-toolbar.scss @@ -5,16 +5,8 @@ // Copyright (c) 2015-2020 Andrey Antukh // Copyright (c) 2015-2020 Juan de la Cruz -$width-left-toolbar: 48px; - .left-toolbar { background-color: $color-gray-50; - bottom: 0; - height: 100%; - position: fixed; - left: 0; - width: $width-left-toolbar; - z-index: 11; } .left-toolbar-inside { @@ -23,7 +15,6 @@ $width-left-toolbar: 48px; display: flex; flex-direction: column; overflow: visible; - padding-top: 48px; height: 100%; } diff --git a/frontend/resources/styles/main/partials/sidebar.scss b/frontend/resources/styles/main/partials/sidebar.scss index 1de3a52642..74b9db8f3d 100644 --- a/frontend/resources/styles/main/partials/sidebar.scss +++ b/frontend/resources/styles/main/partials/sidebar.scss @@ -5,29 +5,14 @@ // Copyright (c) 2015-2020 Andrey Antukh // Copyright (c) 2015-2020 Juan de la Cruz -$width-settings-bar: 16rem; -// This width is also used in update-viewport-size at frontend/src/app/main/data/workspace.cljs - .settings-bar { background-color: $color-gray-50; border-left: 1px solid $color-gray-60; - bottom: 0; - height: 100%; - position: fixed; - right: 0; - width: $width-settings-bar; - - &.expanded { - width: $width-settings-bar * 3; - } - - z-index: 10; - overflow-y: auto; + position: relative; &.settings-bar-left { border-left: none; border-right: 1px solid $color-gray-60; - left: 48px; } .settings-bar-inside { @@ -64,7 +49,6 @@ $width-settings-bar: 16rem; } flex-direction: column; - padding-top: 48px; height: 100%; .tool-window { @@ -163,6 +147,22 @@ $width-settings-bar: 16rem; height: auto; } } + + & .resize-area { + position: absolute; + width: 8px; + height: 100%; + z-index: 10; + cursor: ew-resize; + } + + &.settings-bar-left .resize-area { + right: -8px; + } + + &.settings-bar-right .resize-area { + left: -8px; + } } .tool-window-content { @@ -204,6 +204,7 @@ $width-settings-bar: 16rem; } } } + } .element-list.pages-list { diff --git a/frontend/resources/styles/main/partials/workspace-header.scss b/frontend/resources/styles/main/partials/workspace-header.scss index 43faf986c4..691ee2c6da 100644 --- a/frontend/resources/styles/main/partials/workspace-header.scss +++ b/frontend/resources/styles/main/partials/workspace-header.scss @@ -5,14 +5,12 @@ // Copyright (c) UXBOX Labs SL .workspace-header { + position: relative; align-items: center; background-color: $color-gray-50; border-bottom: 1px solid $color-gray-60; display: flex; - height: 48px; padding: $size-1 $size-4 $size-1 55px; - position: relative; - z-index: 12; justify-content: space-between; .main-icon { diff --git a/frontend/resources/styles/main/partials/workspace.scss b/frontend/resources/styles/main/partials/workspace.scss index 101ec69bce..a3c3f03a71 100644 --- a/frontend/resources/styles/main/partials/workspace.scss +++ b/frontend/resources/styles/main/partials/workspace.scss @@ -5,10 +5,70 @@ // Copyright (c) 2015-2016 Andrey Antukh // Copyright (c) 2015-2016 Juan de la Cruz +$width-left-toolbar: 48px; + +$width-settings-bar: 256px; +$width-settings-bar-min: 255px; +$width-settings-bar-max: 500px; + +$height-palette: 79px; +$height-palette-min: 54px; +$height-palette-max: 80px; + #workspace { + width: 100vw; + height: 100vh; user-select: none; + + display: grid; + grid-template-areas: "header header header header" + "toolbar left-sidebar viewport right-sidebar" + "toolbar left-sidebar color-palette right-sidebar"; + + grid-template-rows: auto 1fr auto; + grid-template-columns: auto auto 1fr auto; + + .workspace-header { + grid-area: header; + height: 48px; + } + + .left-toolbar { + grid-area: toolbar; + width: $width-left-toolbar; + } + + .settings-bar.settings-bar-left { + min-width: $width-settings-bar; + max-width: 500px; + width: var(--width, $width-settings-bar); + grid-area: left-sidebar; + } + + .settings-bar.settings-bar-right { + min-width: $width-settings-bar; + max-width: 500px; + width: var(--width, $width-settings-bar); + grid-area: right-sidebar; + } + + .workspace-loader { + grid-area: viewport; + } + + .workspace-content { + grid-area: viewport; + } + + .color-palette { + grid-area: color-palette; + min-height: $height-palette-min; + max-height: $height-palette-max; + height: var(--height, $height-palette); + } } + .workspace-context-menu { background-color: $color-white; border-radius: $br-small; @@ -97,7 +157,6 @@ display: flex; justify-content: center; align-items: center; - height: 100vh; svg#loader-pencil { fill: $color-gray-50; @@ -107,12 +166,8 @@ .workspace-content { background-color: $color-canvas; display: flex; - height: 100%; - width: calc(100% - #{$width-left-toolbar} - 2 * #{$width-settings-bar}); padding: 0; margin: 0; - position: fixed; - right: $width-settings-bar; &.scrolling { cursor: grab; @@ -171,14 +226,12 @@ } .workspace-viewport { - height: calc(100% - 40px); overflow: hidden; transition: none; - width: 100%; - display: grid; - grid-template-rows: 20px 100%; - grid-template-columns: 20px 100%; + grid-template-rows: 20px 1fr; + grid-template-columns: 20px 1fr; + flex: 1; } .viewport { @@ -209,10 +262,14 @@ .render-shapes { position: absolute; + width: 100%; + height: 100%; } .viewport-controls { position: absolute; + width: 100%; + height: 100%; } } diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 38613db7bf..ea93b46d73 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -481,7 +481,7 @@ (cond (or (not (mth/finite? (:width srect))) (not (mth/finite? (:height srect)))) - (assoc local :vbox (assoc size :x 0 :y 0 :left-offset 0)) + (assoc local :vbox (assoc size :x 0 :y 0)) (or (> (:width srect) width) (> (:height srect) height)) @@ -522,25 +522,44 @@ (update :y y))))))) (defn update-viewport-size - [{:keys [width height] :as size}] + [resize-type {:keys [width height] :as size}] (ptk/reify ::update-viewport-size ptk/UpdateEvent (update [_ state] (update state :workspace-local - (fn [{:keys [vport left-sidebar? zoom] :as local}] + (fn [{:keys [vport] :as local}] (if (or (mth/almost-zero? width) (mth/almost-zero? height)) ;; If we have a resize to zero just keep the old value local (let [wprop (/ (:width vport) width) hprop (/ (:height vport) height) - left-offset (if left-sidebar? 0 (/ (* -1 15 16) zoom))] - (-> local ;; This matches $width-settings-bar - (assoc :vport size) ;; in frontend/resources/styles/main/partials/sidebar.scss - (update :vbox (fn [vbox] - (-> vbox - (update :width #(/ % wprop)) - (update :height #(/ % hprop)) - (assoc :left-offset left-offset)))))))))))) + + vbox (:vbox local) + vbox-x (:x vbox) + vbox-y (:y vbox) + vbox-width (:width vbox) + vbox-height (:height vbox) + + vbox-width' (/ vbox-width wprop) + vbox-height' (/ vbox-height hprop) + + vbox-x' + (case resize-type + :left (+ vbox-x (- vbox-width vbox-width')) + :right vbox-x + (+ vbox-x (/ (- vbox-width vbox-width') 2))) + + vbox-y' + (case resize-type + :top (+ vbox-y (- vbox-height vbox-height')) + :bottom vbox-y + (+ vbox-y (/ (- vbox-height vbox-height') 2)))] + (-> local + (assoc :vport size) + (assoc-in [:vbox :x] vbox-x') + (assoc-in [:vbox :y] vbox-y') + (assoc-in [:vbox :width] vbox-width') + (assoc-in [:vbox :height] vbox-height'))))))))) (defn start-panning [] (ptk/reify ::start-panning @@ -596,14 +615,12 @@ (defn- impl-update-zoom [{:keys [vbox] :as local} center zoom] - (let [vbox (update vbox :x + (:left-offset vbox)) - new-zoom (if (fn? zoom) (zoom (:zoom local)) zoom) + (let [new-zoom (if (fn? zoom) (zoom (:zoom local)) zoom) old-zoom (:zoom local) center (if center center (gsh/center-rect vbox)) scale (/ old-zoom new-zoom) mtx (gmt/scale-matrix (gpt/point scale) center) - vbox' (gsh/transform-rect vbox mtx) - vbox' (update vbox' :x - (:left-offset vbox))] + vbox' (gsh/transform-rect vbox mtx)] (-> local (assoc :zoom new-zoom) (update :vbox merge (select-keys vbox' [:x :y :width :height]))))) diff --git a/frontend/src/app/main/ui/hooks/resize.cljs b/frontend/src/app/main/ui/hooks/resize.cljs new file mode 100644 index 0000000000..79b8600e13 --- /dev/null +++ b/frontend/src/app/main/ui/hooks/resize.cljs @@ -0,0 +1,100 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.main.ui.hooks.resize + (:require + [app.common.geom.point :as gpt] + [app.common.logging :as log] + [app.util.dom :as dom] + [rumext.alpha :as mf])) + +(log/set-level! :warn) + +(def last-resize-type nil) + +(defn set-resize-type! [type] + (set! last-resize-type type)) + +(defn use-resize-hook + [initial min-val max-val axis negate? resize-type] + (let [size-state (mf/use-state initial) + parent-ref (mf/use-ref nil) + + dragging-ref (mf/use-ref false) + start-size-ref (mf/use-ref nil) + start-ref (mf/use-ref nil) + + on-pointer-down + (fn [event] + (dom/capture-pointer event) + (mf/set-ref-val! start-size-ref @size-state) + (mf/set-ref-val! dragging-ref true) + (mf/set-ref-val! start-ref (dom/get-client-position event)) + (set! last-resize-type resize-type)) + + on-lost-pointer-capture + (fn [event] + (dom/release-pointer event) + (mf/set-ref-val! start-size-ref nil) + (mf/set-ref-val! dragging-ref false) + (mf/set-ref-val! start-ref nil) + (set! last-resize-type nil)) + + on-mouse-move + (fn [event] + (when (mf/ref-val dragging-ref) + (let [start (mf/ref-val start-ref) + pos (dom/get-client-position event) + delta (-> (gpt/to-vec start pos) + (cond-> negate? gpt/negate) + (get axis)) + start-size (mf/ref-val start-size-ref) + new-size (-> (+ start-size delta) (max min-val) (min max-val))] + + (reset! size-state new-size))))] + {:on-pointer-down on-pointer-down + :on-lost-pointer-capture on-lost-pointer-capture + :on-mouse-move on-mouse-move + :parent-ref parent-ref + :size @size-state})) + +(defn use-resize-observer + [callback] + + (let [prev-val-ref (mf/use-ref nil) + current-observer-ref (mf/use-ref nil) + + node-ref + (mf/use-callback + (mf/deps callback) + (fn [node] + (let [current-observer (mf/ref-val current-observer-ref) + prev-val (mf/ref-val prev-val-ref)] + + (when (and (not= prev-val node) (some? current-observer)) + (log/debug :action "disconnect" :js/prev-val prev-val :js/node node) + (.disconnect current-observer) + (mf/set-ref-val! current-observer-ref nil)) + + (when (and (not= prev-val node) (some? node)) + (let [observer + (js/ResizeObserver. + (fn [] + (let [size (dom/get-client-size node)] + (when callback (callback last-resize-type size)))))] + (mf/set-ref-val! current-observer-ref observer) + (log/debug :action "observe" :js/node node) + (.observe observer node)))) + (mf/set-ref-val! prev-val-ref node)))] + + (mf/use-effect + (fn [] + (fn [] + (let [current-observer (mf/ref-val current-observer-ref)] + (when (some? current-observer) + (log/debug :action "disconnect") + (.disconnect current-observer)))))) + node-ref)) diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index 541fb0b843..15c01c18cb 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -12,6 +12,7 @@ [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.context :as ctx] + [app.main.ui.hooks.resize :refer [use-resize-observer]] [app.main.ui.icons :as i] [app.main.ui.workspace.colorpalette :refer [colorpalette]] [app.main.ui.workspace.colorpicker] @@ -39,11 +40,19 @@ {:keys [options-mode]} local file (obj/get props "file") layout (obj/get props "layout") - colorpalette? (:colorpalette layout)] + colorpalette? (:colorpalette layout) + + on-resize + (mf/use-callback + (fn [resize-type size] + (when (:vport local) + (st/emit! (dw/update-viewport-size resize-type size))))) + + node-ref (use-resize-observer on-resize)] [:* (when colorpalette? [:& colorpalette]) - [:section.workspace-content + [:section.workspace-content {:ref node-ref} [:section.workspace-viewport [:& coordinates/coordinates {:colorpalette? colorpalette?}] @@ -131,3 +140,5 @@ :layout layout}] [:& workspace-loader])]]]]])) + + diff --git a/frontend/src/app/main/ui/workspace/colorpalette.cljs b/frontend/src/app/main/ui/workspace/colorpalette.cljs index 006fdaaa5c..45efa13f1d 100644 --- a/frontend/src/app/main/ui/workspace/colorpalette.cljs +++ b/frontend/src/app/main/ui/workspace/colorpalette.cljs @@ -12,6 +12,7 @@ [app.main.store :as st] [app.main.ui.components.color-bullet :as cb] [app.main.ui.components.dropdown :refer [dropdown]] + [app.main.ui.hooks.resize :refer [use-resize-hook]] [app.main.ui.icons :as i] [app.util.color :as uc] [app.util.i18n :refer [tr]] @@ -52,7 +53,7 @@ [:& cb/color-name {:color color :size size}]])) (mf/defc palette - [{:keys [current-colors recent-colors file-colors shared-libs selected size]}] + [{:keys [current-colors recent-colors file-colors shared-libs selected]}] (let [state (mf/use-state {:show-menu false }) width (:width @state 0) @@ -64,6 +65,9 @@ container (mf/use-ref nil) + {:keys [on-pointer-down on-lost-pointer-capture on-mouse-move parent-ref size]} + (use-resize-hook 72 54 80 :y true :bottom) + on-left-arrow-click (mf/use-callback (mf/deps max-offset visible) @@ -111,7 +115,11 @@ (fn [] (events/unlistenByKey key1)))) - [:div.color-palette.left-sidebar-open + [:div.color-palette {:ref parent-ref + :style #js {"--height" (str size "px")}} + [:div.resize-area {:on-pointer-down on-pointer-down + :on-lost-pointer-capture on-lost-pointer-capture + :on-mouse-move on-mouse-move}] [:& dropdown {:show (:show-menu @state) :on-close #(swap! state assoc :show-menu false)} [:ul.workspace-context-menu.palette-menu @@ -170,8 +178,7 @@ [:div.color-palette-inside {:style {:position "relative" :right (str (* 66 offset) "px")}} (for [[idx item] (map-indexed vector current-colors)] - [:& palette-item {:size size - :color item + [:& palette-item {:color item :key idx}])]] [:span.right-arrow {:on-click on-right-arrow-click} i/arrow-slide]])) @@ -188,8 +195,6 @@ file-colors (mf/deref refs/workspace-file-colors) shared-libs (mf/deref refs/workspace-libraries) selected (or (mf/deref selected-palette-ref) :recent) - size (or (mf/deref selected-palette-size-ref) :big) - current-library-colors (mf/use-state [])] (mf/use-effect @@ -219,5 +224,4 @@ :recent-colors recent-colors :file-colors file-colors :shared-libs shared-libs - :selected selected - :size size}])) + :selected selected}])) diff --git a/frontend/src/app/main/ui/workspace/left_toolbar.cljs b/frontend/src/app/main/ui/workspace/left_toolbar.cljs index be41b8e6dc..b9f60b75e5 100644 --- a/frontend/src/app/main/ui/workspace/left_toolbar.cljs +++ b/frontend/src/app/main/ui/workspace/left_toolbar.cljs @@ -14,6 +14,7 @@ [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.components.file-uploader :refer [file-uploader]] + [app.main.ui.hooks.resize :as r] [app.main.ui.icons :as i] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] @@ -136,5 +137,7 @@ [:li.tooltip.tooltip-right {:alt (tr "workspace.toolbar.color-palette" (sc/get-tooltip :toggle-palette)) :class (when (contains? layout :colorpalette) "selected") - :on-click (st/emitf (dw/toggle-layout-flags :colorpalette))} + :on-click (do + (r/set-resize-type! :bottom) + (st/emitf (dw/toggle-layout-flags :colorpalette)))} i/palette]]]])) diff --git a/frontend/src/app/main/ui/workspace/sidebar.cljs b/frontend/src/app/main/ui/workspace/sidebar.cljs index da154e26a7..361c6f7c81 100644 --- a/frontend/src/app/main/ui/workspace/sidebar.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar.cljs @@ -7,6 +7,7 @@ (ns app.main.ui.workspace.sidebar (:require [app.main.refs :as refs] + [app.main.ui.hooks.resize :refer [use-resize-hook]] [app.main.ui.workspace.comments :refer [comments-sidebar]] [app.main.ui.workspace.sidebar.assets :refer [assets-toolbox]] [app.main.ui.workspace.sidebar.history :refer [history-toolbox]] @@ -21,19 +22,26 @@ (mf/defc left-sidebar {:wrap [mf/memo]} [{:keys [layout ] :as props}] - [:aside.settings-bar.settings-bar-left - [:div.settings-bar-inside - {:data-layout (str/join "," layout)} - (when (contains? layout :layers) - [:* - [:& sitemap {:layout layout}] - [:& layers-toolbox]]) + (let [{:keys [on-pointer-down on-lost-pointer-capture on-mouse-move parent-ref size]} + (use-resize-hook 255 255 500 :x false :left)] - (when (contains? layout :document-history) - [:& history-toolbox]) + [:aside.settings-bar.settings-bar-left {:ref parent-ref + :style #js {"--width" (str size "px")}} + [:div.resize-area {:on-pointer-down on-pointer-down + :on-lost-pointer-capture on-lost-pointer-capture + :on-mouse-move on-mouse-move}] + [:div.settings-bar-inside + {:data-layout (str/join "," layout)} + (when (contains? layout :layers) + [:* + [:& sitemap {:layout layout}] + [:& layers-toolbox]]) - (when (contains? layout :assets) - [:& assets-toolbox])]]) + (when (contains? layout :document-history) + [:& history-toolbox]) + + (when (contains? layout :assets) + [:& assets-toolbox])]])) ;; --- Right Sidebar (Component) @@ -41,8 +49,15 @@ {::mf/wrap-props false ::mf/wrap [mf/memo]} [props] - (let [drawing-tool (:tool (mf/deref refs/workspace-drawing))] - [:aside.settings-bar + (let [{:keys [on-pointer-down on-lost-pointer-capture on-mouse-move parent-ref size]} + (use-resize-hook 255 255 500 :x true :right) + + drawing-tool (:tool (mf/deref refs/workspace-drawing))] + [:aside.settings-bar.settings-bar-right {:ref parent-ref + :style #js {"--width" (str size "px")}} + [:div.resize-area {:on-pointer-down on-pointer-down + :on-lost-pointer-capture on-lost-pointer-capture + :on-mouse-move on-mouse-move}] [:div.settings-bar-inside (if (= drawing-tool :comments) [:& comments-sidebar] diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index 4c673a565a..acc6cdeac1 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -163,7 +163,6 @@ (hooks/setup-dom-events viewport-ref zoom disable-paste in-viewport?) (hooks/setup-viewport-size viewport-ref) (hooks/setup-cursor cursor alt? panning drawing-tool drawing-path? node-editing?) - (hooks/setup-resize layout viewport-ref) (hooks/setup-keyboard alt? ctrl? space?) (hooks/setup-hover-shapes page-id move-stream base-objects transform selected ctrl? hover hover-ids @hover-disabled? zoom) (hooks/setup-viewport-modifiers modifiers base-objects) @@ -222,8 +221,6 @@ :xmlnsXlink "http://www.w3.org/1999/xlink" :preserveAspectRatio "xMidYMid meet" :key (str "viewport" page-id) - :width (:width vport 0) - :height (:height vport 0) :view-box (utils/format-viewbox vbox) :ref viewport-ref :class (when drawing-tool "drawing") diff --git a/frontend/src/app/main/ui/workspace/viewport/actions.cljs b/frontend/src/app/main/ui/workspace/viewport/actions.cljs index 54b46e727f..4862883743 100644 --- a/frontend/src/app/main/ui/workspace/viewport/actions.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/actions.cljs @@ -492,11 +492,3 @@ (when (and (not (#{"INPUT" "TEXTAREA"} tag-name)) (not @disable-paste)) (st/emit! (dw/paste-from-event event @in-viewport?))))))) -(defn on-resize [viewport-ref] - (mf/use-callback - (fn [_] - (let [node (mf/ref-val viewport-ref) - prnt (dom/get-parent node) - size (dom/get-client-size prnt)] - ;; We schedule the event so it fires after `initialize-page` event - (timers/schedule #(st/emit! (dw/update-viewport-size size))))))) diff --git a/frontend/src/app/main/ui/workspace/viewport/guides.cljs b/frontend/src/app/main/ui/workspace/viewport/guides.cljs index f18d913f61..03b7a3bdbb 100644 --- a/frontend/src/app/main/ui/workspace/viewport/guides.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/guides.cljs @@ -220,12 +220,12 @@ (defn guide-creation-area [vbox zoom axis] (if (= axis :x) - {:x (:x vbox) + {:x (+ (:x vbox) (/ 8 zoom)) :y (:y vbox) - :width (/ 24 zoom) + :width (/ 16 zoom) :height (:height vbox)} - {:x (:x vbox) + {:x (+ (:x vbox) (+ 28 zoom)) :y (:y vbox) :width (:width vbox) :height (/ 24 zoom)})) diff --git a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs index 33cf92fe38..21ea3e7001 100644 --- a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs @@ -31,10 +31,9 @@ on-key-up (actions/on-key-up) on-mouse-move (actions/on-mouse-move viewport-ref zoom) on-mouse-wheel (actions/on-mouse-wheel viewport-ref zoom) - on-resize (actions/on-resize viewport-ref) on-paste (actions/on-paste disable-paste in-viewport?)] (mf/use-layout-effect - (mf/deps on-key-down on-key-up on-mouse-move on-mouse-wheel on-resize on-paste) + (mf/deps on-key-down on-key-up on-mouse-move on-mouse-wheel on-paste) (fn [] (let [node (mf/ref-val viewport-ref) keys [(events/listen js/document EventType.KEYDOWN on-key-down) @@ -43,7 +42,6 @@ ;; bind with passive=false to allow the event to be cancelled ;; https://stackoverflow.com/a/57582286/3219895 (events/listen js/window EventType.WHEEL on-mouse-wheel #js {:passive false}) - (events/listen js/window EventType.RESIZE on-resize) (events/listen js/window EventType.PASTE on-paste)]] (fn [] @@ -52,12 +50,12 @@ (defn setup-viewport-size [viewport-ref] (mf/use-layout-effect - (fn [] - (let [node (mf/ref-val viewport-ref) - prnt (dom/get-parent node) - size (dom/get-client-size prnt)] - ;; We schedule the event so it fires after `initialize-page` event - (timers/schedule #(st/emit! (dw/initialize-viewport size))))))) + (fn [] + (let [node (mf/ref-val viewport-ref) + prnt (dom/get-parent node) + size (dom/get-client-size prnt)] + ;; We schedule the event so it fires after `initialize-page` event + (timers/schedule #(st/emit! (dw/initialize-viewport size))))))) (defn setup-cursor [cursor alt? panning drawing-tool drawing-path? path-editing?] (mf/use-effect @@ -80,10 +78,6 @@ (when (not= @cursor new-cursor) (reset! cursor new-cursor)))))) -(defn setup-resize [layout viewport-ref] - (let [on-resize (actions/on-resize viewport-ref)] - (mf/use-layout-effect (mf/deps layout) on-resize))) - (defn setup-keyboard [alt? ctrl? space?] (hooks/use-stream ms/keyboard-alt #(reset! alt? %)) (hooks/use-stream ms/keyboard-ctrl #(reset! ctrl? %)) diff --git a/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs b/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs index 3c09e952f3..fb35ba9976 100644 --- a/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs @@ -25,7 +25,7 @@ (:import goog.events.EventType)) (defn format-viewbox [vbox] - (str/join " " [(+ (:x vbox 0) (:left-offset vbox 0)) + (str/join " " [(:x vbox 0) (:y vbox 0) (:width vbox 0) (:height vbox 0)])) diff --git a/frontend/src/app/main/ui/workspace/viewport/utils.cljs b/frontend/src/app/main/ui/workspace/viewport/utils.cljs index b7c6ff280d..9c0734afaa 100644 --- a/frontend/src/app/main/ui/workspace/viewport/utils.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/utils.cljs @@ -148,7 +148,7 @@ (dom/remove-attribute node "transform"))))))) (defn format-viewbox [vbox] - (str/join " " [(+ (:x vbox 0) (:left-offset vbox 0)) + (str/join " " [(:x vbox 0) (:y vbox 0) (:width vbox 0) (:height vbox 0)])) From ada837f7e49e693ab7ea2fbf273d4718f74aa461 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Wed, 26 Jan 2022 17:26:57 +0100 Subject: [PATCH 054/154] :sparkles: New rules styles, resize pages --- .../styles/main/partials/sidebar-sitemap.scss | 13 ++- .../styles/main/partials/sidebar.scss | 28 ++++++- .../styles/main/partials/tab-container.scss | 4 - frontend/src/app/main/data/workspace.cljs | 4 +- .../main/ui/viewer/handoff/right_sidebar.cljs | 3 +- frontend/src/app/main/ui/workspace.cljs | 21 ++--- .../app/main/ui/workspace/left_toolbar.cljs | 21 ++--- .../src/app/main/ui/workspace/sidebar.cljs | 33 +++++--- .../main/ui/workspace/sidebar/sitemap.cljs | 18 +++- .../src/app/main/ui/workspace/viewport.cljs | 2 +- .../app/main/ui/workspace/viewport/rules.cljs | 84 ++++++++++++------- frontend/src/debug.cljs | 5 ++ 12 files changed, 153 insertions(+), 83 deletions(-) diff --git a/frontend/resources/styles/main/partials/sidebar-sitemap.scss b/frontend/resources/styles/main/partials/sidebar-sitemap.scss index 3a14879f97..ffc67c1371 100644 --- a/frontend/resources/styles/main/partials/sidebar-sitemap.scss +++ b/frontend/resources/styles/main/partials/sidebar-sitemap.scss @@ -5,8 +5,8 @@ // Copyright (c) 2015-2016 Andrey Antukh // Copyright (c) 2015-2016 Juan de la Cruz -.sitemap { - flex: none !important; +#sitemap { + height: var(--height, 200px); .element-list { li { @@ -118,6 +118,15 @@ } } } + + & .resize-area { + position: absolute; + width: 100%; + height: 16px; + bottom: -8px; + left: 0; + cursor: ns-resize; + } } .add-page, diff --git a/frontend/resources/styles/main/partials/sidebar.scss b/frontend/resources/styles/main/partials/sidebar.scss index 74b9db8f3d..dcb069febf 100644 --- a/frontend/resources/styles/main/partials/sidebar.scss +++ b/frontend/resources/styles/main/partials/sidebar.scss @@ -13,6 +13,27 @@ &.settings-bar-left { border-left: none; border-right: 1px solid $color-gray-60; + + & .tab-container-tabs { + padding-left: 1.5rem; + } + + & button.collapse-sidebar { + background: none; + border: none; + cursor: pointer; + height: 2.5rem; + padding-top: 0.75rem; + position: absolute; + width: 1rem; + + & svg { + width: 12px; + height: 12px; + fill: $color-gray-20; + transform: rotate(180deg); + } + } } .settings-bar-inside { @@ -59,7 +80,6 @@ flex: 1; width: 100%; height: 100%; - overflow: hidden; .tool-window-bar { align-items: center; @@ -148,7 +168,7 @@ } } - & .resize-area { + & > .resize-area { position: absolute; width: 8px; height: 100%; @@ -156,11 +176,11 @@ cursor: ew-resize; } - &.settings-bar-left .resize-area { + &.settings-bar-left > .resize-area { right: -8px; } - &.settings-bar-right .resize-area { + &.settings-bar-right > .resize-area { left: -8px; } } diff --git a/frontend/resources/styles/main/partials/tab-container.scss b/frontend/resources/styles/main/partials/tab-container.scss index 76417795ae..13a43185c6 100644 --- a/frontend/resources/styles/main/partials/tab-container.scss +++ b/frontend/resources/styles/main/partials/tab-container.scss @@ -32,10 +32,6 @@ .tab-container-content { flex: 1; - height: 100%; - max-height: 100%; - overflow-x: hidden; - overflow-y: auto; } .tab-element, diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index ea93b46d73..a303b31060 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -528,7 +528,9 @@ (update [_ state] (update state :workspace-local (fn [{:keys [vport] :as local}] - (if (or (mth/almost-zero? width) (mth/almost-zero? height)) + (if (or (nil? vport) + (mth/almost-zero? width) + (mth/almost-zero? height)) ;; If we have a resize to zero just keep the old value local (let [wprop (/ (:width vport) width) diff --git a/frontend/src/app/main/ui/viewer/handoff/right_sidebar.cljs b/frontend/src/app/main/ui/viewer/handoff/right_sidebar.cljs index 53b4895a84..ac9d30d3f6 100644 --- a/frontend/src/app/main/ui/viewer/handoff/right_sidebar.cljs +++ b/frontend/src/app/main/ui/viewer/handoff/right_sidebar.cljs @@ -45,8 +45,7 @@ [:* [:span.tool-window-bar-icon [:& si/element-icon {:shape first-shape}]] - [:span.tool-window-bar-title (->> selected-type d/name (str "handoff.tabs.code.selected.") (tr))]]) - ] + [:span.tool-window-bar-title (->> selected-type d/name (str "handoff.tabs.code.selected.") (tr))]])] [:div.tool-window-content [:& tab-container {:on-change-tab #(do (reset! expanded false) diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index 15c01c18cb..b8ba83f55b 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -61,12 +61,12 @@ :selected selected :layout layout}]]] - [:& left-toolbar {:layout layout}] - - ;; Aside - [:& left-sidebar {:layout layout}] - [:& right-sidebar {:section options-mode - :selected selected}]])) + (when-not (:hide-ui layout) + [:* + [:& left-toolbar {:layout layout}] + [:& left-sidebar {:layout layout}] + [:& right-sidebar {:section options-mode + :selected selected}]])])) (def trimmed-page-ref (l/derived :trimmed-page st/state =)) @@ -125,10 +125,11 @@ [:& (mf/provider ctx/current-project-id) {:value (:id project)} [:& (mf/provider ctx/current-page-id) {:value page-id} [:section#workspace - [:& header {:file file - :page-id page-id - :project project - :layout layout}] + (when (not (:hide-ui layout)) + [:& header {:file file + :page-id page-id + :project project + :layout layout}]) [:& context-menu] diff --git a/frontend/src/app/main/ui/workspace/left_toolbar.cljs b/frontend/src/app/main/ui/workspace/left_toolbar.cljs index b9f60b75e5..cb4f0c6671 100644 --- a/frontend/src/app/main/ui/workspace/left_toolbar.cljs +++ b/frontend/src/app/main/ui/workspace/left_toolbar.cljs @@ -120,20 +120,13 @@ [:ul.left-toolbar-options.panels [:li.tooltip.tooltip-right - {:alt (tr "workspace.sidebar.layers" (sc/get-tooltip :toggle-layers)) - :class (when (contains? layout :layers) "selected") - :on-click (st/emitf (dw/go-to-layout :layers))} - i/layers] - [:li.tooltip.tooltip-right - {:alt (tr "workspace.toolbar.assets" (sc/get-tooltip :toggle-assets)) - :class (when (contains? layout :assets) "selected") - :on-click (st/emitf (dw/go-to-layout :assets))} - i/library] - [:li.tooltip.tooltip-right - {:alt (tr "workspace.sidebar.history" (sc/get-tooltip :toggle-history)) - :class (when (contains? layout :document-history) "selected") - :on-click (st/emitf (dw/go-to-layout :document-history))} - i/recent] + {;;:alt (tr "workspace.toolbar.color-palette" (sc/get-tooltip :toggle-textpalette)) + :class (when (contains? layout :textpalette) "selected") + :on-click (do + (r/set-resize-type! :bottom) + (st/emitf (dw/toggle-layout-flags :textpalette)))} + i/palette] + [:li.tooltip.tooltip-right {:alt (tr "workspace.toolbar.color-palette" (sc/get-tooltip :toggle-palette)) :class (when (contains? layout :colorpalette) "selected") diff --git a/frontend/src/app/main/ui/workspace/sidebar.cljs b/frontend/src/app/main/ui/workspace/sidebar.cljs index 361c6f7c81..dec3a6feb8 100644 --- a/frontend/src/app/main/ui/workspace/sidebar.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar.cljs @@ -6,6 +6,8 @@ (ns app.main.ui.workspace.sidebar (:require + [app.main.ui.components.tab-container :refer [tab-container tab-element]] + [app.main.data.workspace :as dw] [app.main.refs :as refs] [app.main.ui.hooks.resize :refer [use-resize-hook]] [app.main.ui.workspace.comments :refer [comments-sidebar]] @@ -15,14 +17,20 @@ [app.main.ui.workspace.sidebar.options :refer [options-toolbox]] [app.main.ui.workspace.sidebar.sitemap :refer [sitemap]] [cuerdas.core :as str] - [rumext.alpha :as mf])) + [rumext.alpha :as mf] + [app.main.store :as st] + [app.main.ui.icons :as i] + )) ;; --- Left Sidebar (Component) (mf/defc left-sidebar {:wrap [mf/memo]} [{:keys [layout ] :as props}] - (let [{:keys [on-pointer-down on-lost-pointer-capture on-mouse-move parent-ref size]} + (let [section (cond (contains? layout :layers) :layers + (contains? layout :assets) :assets) + + {:keys [on-pointer-down on-lost-pointer-capture on-mouse-move parent-ref size]} (use-resize-hook 255 255 500 :x false :left)] [:aside.settings-bar.settings-bar-left {:ref parent-ref @@ -30,18 +38,21 @@ [:div.resize-area {:on-pointer-down on-pointer-down :on-lost-pointer-capture on-lost-pointer-capture :on-mouse-move on-mouse-move}] + + [:div.settings-bar-inside - {:data-layout (str/join "," layout)} - (when (contains? layout :layers) - [:* - [:& sitemap {:layout layout}] - [:& layers-toolbox]]) + [:button.collapse-sidebar i/arrow-slide] + [:& tab-container {:on-change-tab #(st/emit! (dw/go-to-layout %)) + :selected section} - (when (contains? layout :document-history) - [:& history-toolbox]) + [:& tab-element {:id :layers :title "Layers"} + [:& sitemap {:layout layout}] + [:& layers-toolbox]] - (when (contains? layout :assets) - [:& assets-toolbox])]])) + [:& tab-element {:id :assets :title "Library"} + [:& assets-toolbox]]]] + + ])) ;; --- Right Sidebar (Component) diff --git a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs index d2a65a52b5..a08eee3914 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs @@ -20,7 +20,9 @@ [app.util.keyboard :as kbd] [cuerdas.core :as str] [okulary.core :as l] - [rumext.alpha :as mf])) + [rumext.alpha :as mf] + [app.main.ui.hooks.resize :refer [use-resize-hook]] + )) ;; --- Page Item @@ -205,10 +207,14 @@ :project-id (:project-id file)})))) show-pages? (mf/use-state true) + {:keys [on-pointer-down on-lost-pointer-capture on-mouse-move parent-ref size]} + (use-resize-hook 200 38 400 :y false nil) + toggle-pages (mf/use-callback #(reset! show-pages? not))] - [:div.sitemap.tool-window + [:div#sitemap.tool-window {:ref parent-ref + :style #js {"--height" (str size "px")}} [:div.tool-window-bar [:span (tr "workspace.sidebar.sitemap")] [:div.add-page {:on-click create} i/close] @@ -216,4 +222,10 @@ (when @show-pages? [:div.tool-window-content - [:& pages-list {:file file :key (:id file)}]])])) + [:& pages-list {:file file :key (:id file)}]]) + + [:div.resize-area {:on-pointer-down on-pointer-down + :on-lost-pointer-capture on-lost-pointer-capture + :on-mouse-move on-mouse-move}] + + ])) diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index acc6cdeac1..6a233f7b7a 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -156,7 +156,7 @@ show-selrect? (and selrect (empty? drawing)) show-measures? (and (not transform) (not node-editing?) show-distances?) show-artboard-names? (contains? layout :display-artboard-names) - show-rules? (contains? layout :rules) + show-rules? (and (contains? layout :rules) (not (contains? layout :hide-ui))) disabled-guides? (or drawing-tool transform)] diff --git a/frontend/src/app/main/ui/workspace/viewport/rules.cljs b/frontend/src/app/main/ui/workspace/viewport/rules.cljs index 6b21452744..da40d316f3 100644 --- a/frontend/src/app/main/ui/workspace/viewport/rules.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/rules.cljs @@ -53,6 +53,21 @@ height (- (:height vbox) (/ 21 zoom))] {:x x :y y :width width :height height}))) +(defn get-background-area + [vbox zoom axis] + (if (= axis :x) + (let [x (:x vbox) + y (:y vbox) + width (:width vbox) + height (/ 22 zoom)] + {:x x :y y :width width :height height}) + + (let [x (:x vbox) + y (+ (:y vbox) (/ 22 zoom)) + width (/ 22 zoom) + height (- (:height vbox) (/ 21 zoom))] + {:x x :y y :width width :height height}))) + (defn get-rule-params [vbox axis] (if (= axis :x) @@ -89,41 +104,48 @@ step (calculate-step-size zoom) clip-id (str "clip-rule-" (d/name axis))] - [:g.rules {:clipPath (str "url(#" clip-id ")")} + + [:* + (let [{:keys [x y width height]} (get-background-area vbox zoom axis)] + [:rect {:x x :y y :width width :height height :style {:fill "#303236"}}]) - [:defs - [:clipPath {:id clip-id} - (let [{:keys [x y width height]} (get-clip-area vbox zoom axis)] - [:rect {:x x :y y :width width :height height}])]] + [:g.rules {:clipPath (str "url(#" clip-id ")")} - (let [{:keys [start end]} (get-rule-params vbox axis) - minv (max (mth/round start) -100000) - minv (* (mth/ceil (/ minv step)) step) - maxv (min (mth/round end) 100000) - maxv (* (mth/floor (/ maxv step)) step)] + [:defs + [:clipPath {:id clip-id} + (let [{:keys [x y width height]} (get-clip-area vbox zoom axis)] + [:rect {:x x :y y :width width :height height}])]] - (for [step-val (range minv (inc maxv) step)] - (let [{:keys [text-x text-y line-x1 line-y1 line-x2 line-y2]} - (get-rule-axis step-val vbox zoom axis)] - [:* - [:text {:key (str "text-" (d/name axis) "-" step-val) - :x text-x - :y text-y - :text-anchor "middle" - :dominant-baseline "middle" - :transform (when (= axis :y) (str "rotate(-90 " text-x "," text-y ")")) - :style {:font-size (/ 13 zoom) - :font-family "sourcesanspro" - :fill colors/gray-30}} - (str (mth/round step-val))] + - [:line {:key (str "line-" (d/name axis) "-" step-val) - :x1 line-x1 - :y1 line-y1 - :x2 line-x2 - :y2 line-y2 - :style {:stroke colors/gray-30 - :stroke-width rules-width}}]])))])) + (let [{:keys [start end]} (get-rule-params vbox axis) + minv (max (mth/round start) -100000) + minv (* (mth/ceil (/ minv step)) step) + maxv (min (mth/round end) 100000) + maxv (* (mth/floor (/ maxv step)) step)] + + (for [step-val (range minv (inc maxv) step)] + (let [{:keys [text-x text-y line-x1 line-y1 line-x2 line-y2]} + (get-rule-axis step-val vbox zoom axis)] + [:* + [:text {:key (str "text-" (d/name axis) "-" step-val) + :x text-x + :y text-y + :text-anchor "middle" + :dominant-baseline "middle" + :transform (when (= axis :y) (str "rotate(-90 " text-x "," text-y ")")) + :style {:font-size (/ 13 zoom) + :font-family "sourcesanspro" + :fill colors/gray-30}} + (str (mth/round step-val))] + + [:line {:key (str "line-" (d/name axis) "-" step-val) + :x1 line-x1 + :y1 line-y1 + :x2 line-x2 + :y2 line-y2 + :style {:stroke colors/gray-30 + :stroke-width rules-width}}]])))]])) (mf/defc rules {::mf/wrap-props false diff --git a/frontend/src/debug.cljs b/frontend/src/debug.cljs index ef4bb46e57..50f93a7bd7 100644 --- a/frontend/src/debug.cljs +++ b/frontend/src/debug.cljs @@ -278,3 +278,8 @@ dw/reset-zoom (dw/update-viewport-position {:x (constantly 0) :y (constantly 0)}))) + +(defn ^:export hide-ui + [] + (st/emit! + (dw/toggle-layout-flags :hide-ui))) From 8c3c9a8ca4f8dbc2418d68b5dea3d44edd3069a8 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 31 Jan 2022 17:50:33 +0100 Subject: [PATCH 055/154] :sparkles: Refactor workspace header --- CHANGES.md | 1 + .../styles/main/partials/sidebar.scss | 52 +++++++++++------- .../main/partials/workspace-header.scss | 51 ++++++++++++++++-- .../app/main/data/workspace/shortcuts.cljs | 12 +++-- frontend/src/app/main/refs.cljs | 3 ++ frontend/src/app/main/ui/hooks/resize.cljs | 13 +++-- frontend/src/app/main/ui/workspace.cljs | 13 +++-- .../app/main/ui/workspace/colorpalette.cljs | 2 +- .../app/main/ui/workspace/context_menu.cljs | 13 +++-- .../src/app/main/ui/workspace/header.cljs | 53 +++++++++++-------- .../src/app/main/ui/workspace/sidebar.cljs | 39 ++++++++------ .../main/ui/workspace/sidebar/sitemap.cljs | 7 ++- .../ui/workspace/viewport/scroll_bars.cljs | 26 ++++++--- frontend/translations/en.po | 5 +- frontend/translations/es.po | 5 +- 15 files changed, 207 insertions(+), 88 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 8f5fb32edf..df9e39e4cd 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -18,6 +18,7 @@ - Improve file menu by adding semantically groups [Github #1203](https://github.com/penpot/penpot/issues/1203) - Add update components in bulk option in context menu [Taiga #1975](https://tree.taiga.io/project/penpot/us/1975) - Create first E2E tests [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608), [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608) +- Refactor of workspace toolbars [Taiga #2319](https://tree.taiga.io/project/penpot/us/2319) ### :bug: Bugs fixed ### :arrow_up: Deps updates diff --git a/frontend/resources/styles/main/partials/sidebar.scss b/frontend/resources/styles/main/partials/sidebar.scss index dcb069febf..b760093257 100644 --- a/frontend/resources/styles/main/partials/sidebar.scss +++ b/frontend/resources/styles/main/partials/sidebar.scss @@ -17,23 +17,6 @@ & .tab-container-tabs { padding-left: 1.5rem; } - - & button.collapse-sidebar { - background: none; - border: none; - cursor: pointer; - height: 2.5rem; - padding-top: 0.75rem; - position: absolute; - width: 1rem; - - & svg { - width: 12px; - height: 12px; - fill: $color-gray-20; - transform: rotate(180deg); - } - } } .settings-bar-inside { @@ -181,7 +164,7 @@ } &.settings-bar-right > .resize-area { - left: -8px; + left: -4px; } } @@ -243,3 +226,36 @@ width: 100%; } } + +button.collapse-sidebar { + background: none; + border: none; + cursor: pointer; + height: 2.5rem; + padding-top: 0.75rem; + position: absolute; + width: 1rem; + + & svg { + width: 12px; + height: 12px; + fill: $color-gray-20; + transform: rotate(180deg); + } + + &.collapsed { + background: $color-black; + left: 48px; + top: 48px; + width: 18px; + height: 24px; + padding: 0; + border-radius: 0px 4px 4px 0px; + + & svg { + width: 8px; + height: 8px; + transform: rotate(0deg); + } + } +} diff --git a/frontend/resources/styles/main/partials/workspace-header.scss b/frontend/resources/styles/main/partials/workspace-header.scss index 691ee2c6da..f2e20d65d6 100644 --- a/frontend/resources/styles/main/partials/workspace-header.scss +++ b/frontend/resources/styles/main/partials/workspace-header.scss @@ -13,6 +13,28 @@ padding: $size-1 $size-4 $size-1 55px; justify-content: space-between; + display: grid; + grid-template-areas: "left center right"; + grid-template-columns: auto 1fr auto; + grid-template-rows: 100%; + padding: 0; + + .left-area { + grid-area: left; + display: flex; + height: 100%; + } + + .center-area { + grid-area: center; + } + + .right-area { + grid-area: right; + display: flex; + height: 100%; + } + .main-icon { align-items: center; background-color: $color-gray-60; @@ -21,9 +43,6 @@ display: flex; height: 100%; justify-content: center; - left: 0; - position: absolute; - top: 0; width: 48px; a { @@ -44,6 +63,7 @@ } .menu-section { + margin-left: 1rem; display: flex; justify-content: flex-start; align-items: center; @@ -73,6 +93,8 @@ justify-content: flex-end; align-items: center; position: relative; + padding-right: 1rem; + border-right: 1px solid black; > * { margin-left: $size-5; @@ -216,7 +238,8 @@ } .active-users { - align-items: center; + flex: 1; + justify-content: center; display: flex; margin: 0; @@ -233,6 +256,26 @@ } } } + + & button.document-history { + background: $color-gray-60; + border-radius: 3px; + border: none; + cursor: pointer; + height: 24px; + padding: 3px; + width: 24px; + + & svg { + width: 18px; + fill: $color-gray-20; + height: 18px; + } + + &.selected svg { + fill: $color-primary; + } + } } .persistence-status-widget { diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs index 7c6cc2212f..eafc00e19a 100644 --- a/frontend/src/app/main/data/workspace/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/shortcuts.cljs @@ -338,9 +338,15 @@ :command (ds/c-mod "alt+l") :fn #(st/emit! (dw/toggle-proportion-lock))} - :create-artboard-from-selection {:tooltip (ds/meta (ds/alt "G")) - :command (ds/c-mod "alt+g") - :fn #(st/emit! (dw/create-artboard-from-selection))}}) + :create-artboard-from-selection {:tooltip (ds/meta (ds/alt "G")) + :command (ds/c-mod "alt+g") + :fn #(st/emit! (dw/create-artboard-from-selection))} + + :hide-ui {:tooltip "\\" + :command "\\" + :fn #(st/emit! (dw/toggle-layout-flags :hide-ui))} + + }) (def opacity-shortcuts (into {} (->> diff --git a/frontend/src/app/main/refs.cljs b/frontend/src/app/main/refs.cljs index c2efd50d84..7478edc3fd 100644 --- a/frontend/src/app/main/refs.cljs +++ b/frontend/src/app/main/refs.cljs @@ -167,6 +167,9 @@ (def workspace-layout (l/derived :workspace-layout st/state)) +(def current-file-id + (l/derived :current-file-id st/state)) + (def workspace-file (l/derived (fn [state] (let [file (:workspace-file state) diff --git a/frontend/src/app/main/ui/hooks/resize.cljs b/frontend/src/app/main/ui/hooks/resize.cljs index 79b8600e13..b4ba927be0 100644 --- a/frontend/src/app/main/ui/hooks/resize.cljs +++ b/frontend/src/app/main/ui/hooks/resize.cljs @@ -8,7 +8,9 @@ (:require [app.common.geom.point :as gpt] [app.common.logging :as log] + [app.main.refs :as refs] [app.util.dom :as dom] + [app.util.storage :refer [storage]] [rumext.alpha :as mf])) (log/set-level! :warn) @@ -19,8 +21,10 @@ (set! last-resize-type type)) (defn use-resize-hook - [initial min-val max-val axis negate? resize-type] - (let [size-state (mf/use-state initial) + [key initial min-val max-val axis negate? resize-type] + + (let [current-file-id (mf/deref refs/current-file-id) + size-state (mf/use-state (or (get-in @storage [::saved-resize current-file-id key]) initial)) parent-ref (mf/use-ref nil) dragging-ref (mf/use-ref false) @@ -54,7 +58,8 @@ start-size (mf/ref-val start-size-ref) new-size (-> (+ start-size delta) (max min-val) (min max-val))] - (reset! size-state new-size))))] + (reset! size-state new-size) + (swap! storage assoc-in [::saved-resize current-file-id key] new-size))))] {:on-pointer-down on-pointer-down :on-lost-pointer-capture on-lost-pointer-capture :on-mouse-move on-mouse-move @@ -86,7 +91,7 @@ (let [size (dom/get-client-size node)] (when callback (callback last-resize-type size)))))] (mf/set-ref-val! current-observer-ref observer) - (log/debug :action "observe" :js/node node) + (log/debug :action "observe" :js/node node :js/observer observer) (.observe observer node)))) (mf/set-ref-val! prev-val-ref node)))] diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index b8ba83f55b..eba5fe8d24 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -26,6 +26,7 @@ [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] [app.util.object :as obj] + [debug :refer [debug?]] [okulary.core :as l] [rumext.alpha :as mf])) @@ -44,6 +45,7 @@ on-resize (mf/use-callback + (mf/deps (:vport local)) (fn [resize-type size] (when (:vport local) (st/emit! (dw/update-viewport-size resize-type size))))) @@ -54,7 +56,8 @@ [:section.workspace-content {:ref node-ref} [:section.workspace-viewport - [:& coordinates/coordinates {:colorpalette? colorpalette?}] + (when (debug? :coordinates) + [:& coordinates/coordinates {:colorpalette? colorpalette?}]) [:& viewport {:file file :local local @@ -64,9 +67,13 @@ (when-not (:hide-ui layout) [:* [:& left-toolbar {:layout layout}] - [:& left-sidebar {:layout layout}] + (if (:collapse-left-sidebar layout) + [:button.collapse-sidebar.collapsed {:on-click #(st/emit! (dw/toggle-layout-flags :collapse-left-sidebar))} + i/arrow-slide] + [:& left-sidebar {:layout layout}]) [:& right-sidebar {:section options-mode - :selected selected}]])])) + :selected selected + :layout layout}]])])) (def trimmed-page-ref (l/derived :trimmed-page st/state =)) diff --git a/frontend/src/app/main/ui/workspace/colorpalette.cljs b/frontend/src/app/main/ui/workspace/colorpalette.cljs index 45efa13f1d..40383d5261 100644 --- a/frontend/src/app/main/ui/workspace/colorpalette.cljs +++ b/frontend/src/app/main/ui/workspace/colorpalette.cljs @@ -66,7 +66,7 @@ container (mf/use-ref nil) {:keys [on-pointer-down on-lost-pointer-capture on-mouse-move parent-ref size]} - (use-resize-hook 72 54 80 :y true :bottom) + (use-resize-hook :palette 72 54 80 :y true :bottom) on-left-arrow-click (mf/use-callback diff --git a/frontend/src/app/main/ui/workspace/context_menu.cljs b/frontend/src/app/main/ui/workspace/context_menu.cljs index 0406b9dfb5..5f07b7dc95 100644 --- a/frontend/src/app/main/ui/workspace/context_menu.cljs +++ b/frontend/src/app/main/ui/workspace/context_menu.cljs @@ -436,10 +436,15 @@ (mf/defc viewport-context-menu [] - (let [do-paste (st/emitf dw/paste)] - [:& menu-entry {:title (tr "workspace.shape.menu.paste") - :shortcut (sc/get-tooltip :paste) - :on-click do-paste}])) + (let [do-paste (st/emitf dw/paste) + do-hide-ui (st/emitf (dw/toggle-layout-flags :hide-ui))] + [:* + [:& menu-entry {:title (tr "workspace.shape.menu.paste") + :shortcut (sc/get-tooltip :paste) + :on-click do-paste}] + [:& menu-entry {:title (tr "workspace.shape.menu.hide-ui") + :shortcut (sc/get-tooltip :hide-ui) + :on-click do-hide-ui}]])) (mf/defc context-menu [] diff --git a/frontend/src/app/main/ui/workspace/header.cljs b/frontend/src/app/main/ui/workspace/header.cljs index f400f2f7ba..7e9129ce98 100644 --- a/frontend/src/app/main/ui/workspace/header.cljs +++ b/frontend/src/app/main/ui/workspace/header.cljs @@ -360,31 +360,40 @@ (st/emitf (dw/go-to-viewer params)))] [:header.workspace-header - [:div.main-icon - [:a {:on-click go-back} i/logo-icon]] + [:div.left-area + [:div.main-icon + [:a {:on-click go-back} i/logo-icon]] - [:& menu {:layout layout - :project project - :file file - :team-id team-id - :page-id page-id}] + [:& menu {:layout layout + :project project + :file file + :team-id team-id + :page-id page-id}]] - [:div.users-section - [:& active-sessions]] + [:div.center-area + [:div.users-section + [:& active-sessions]]] - [:div.options-section - [:& persistence-state-widget] + [:div.right-area + [:div.options-section + [:& persistence-state-widget] + [:button.document-history + {:alt (tr "workspace.sidebar.history" (sc/get-tooltip :toggle-history)) + :class (when (contains? layout :document-history) "selected") + :on-click (st/emitf (dw/toggle-layout-flags :document-history))} + i/recent]] - [:& zoom-widget-workspace - {:zoom zoom - :on-increase #(st/emit! (dw/increase-zoom nil)) - :on-decrease #(st/emit! (dw/decrease-zoom nil)) - :on-zoom-reset #(st/emit! dw/reset-zoom) - :on-zoom-fit #(st/emit! dw/zoom-to-fit-all) - :on-zoom-selected #(st/emit! dw/zoom-to-selected-shape)}] + [:div.options-section + [:& zoom-widget-workspace + {:zoom zoom + :on-increase #(st/emit! (dw/increase-zoom nil)) + :on-decrease #(st/emit! (dw/decrease-zoom nil)) + :on-zoom-reset #(st/emit! dw/reset-zoom) + :on-zoom-fit #(st/emit! dw/zoom-to-fit-all) + :on-zoom-selected #(st/emit! dw/zoom-to-selected-shape)}] - [:a.btn-icon-dark.btn-small.tooltip.tooltip-bottom-left - {:alt (tr "workspace.header.viewer" (sc/get-tooltip :open-viewer)) - :on-click go-viewer} - i/play]]])) + [:a.btn-icon-dark.btn-small.tooltip.tooltip-bottom-left + {:alt (tr "workspace.header.viewer" (sc/get-tooltip :open-viewer)) + :on-click go-viewer} + i/play]]]])) diff --git a/frontend/src/app/main/ui/workspace/sidebar.cljs b/frontend/src/app/main/ui/workspace/sidebar.cljs index dec3a6feb8..3c506f61e4 100644 --- a/frontend/src/app/main/ui/workspace/sidebar.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar.cljs @@ -6,21 +6,20 @@ (ns app.main.ui.workspace.sidebar (:require - [app.main.ui.components.tab-container :refer [tab-container tab-element]] [app.main.data.workspace :as dw] [app.main.refs :as refs] + [app.main.store :as st] + [app.main.ui.components.tab-container :refer [tab-container tab-element]] [app.main.ui.hooks.resize :refer [use-resize-hook]] + [app.main.ui.icons :as i] [app.main.ui.workspace.comments :refer [comments-sidebar]] [app.main.ui.workspace.sidebar.assets :refer [assets-toolbox]] [app.main.ui.workspace.sidebar.history :refer [history-toolbox]] [app.main.ui.workspace.sidebar.layers :refer [layers-toolbox]] [app.main.ui.workspace.sidebar.options :refer [options-toolbox]] [app.main.ui.workspace.sidebar.sitemap :refer [sitemap]] - [cuerdas.core :as str] - [rumext.alpha :as mf] - [app.main.store :as st] - [app.main.ui.icons :as i] - )) + [app.util.object :as obj] + [rumext.alpha :as mf])) ;; --- Left Sidebar (Component) @@ -31,7 +30,11 @@ (contains? layout :assets) :assets) {:keys [on-pointer-down on-lost-pointer-capture on-mouse-move parent-ref size]} - (use-resize-hook 255 255 500 :x false :left)] + (use-resize-hook :left-sidebar 255 255 500 :x false :left) + + handle-collapse + (fn [] + (st/emit! (dw/toggle-layout-flags :collapse-left-sidebar)))] [:aside.settings-bar.settings-bar-left {:ref parent-ref :style #js {"--width" (str size "px")}} @@ -39,9 +42,10 @@ :on-lost-pointer-capture on-lost-pointer-capture :on-mouse-move on-mouse-move}] - [:div.settings-bar-inside - [:button.collapse-sidebar i/arrow-slide] + [:button.collapse-sidebar + {:on-click handle-collapse} + i/arrow-slide] [:& tab-container {:on-change-tab #(st/emit! (dw/go-to-layout %)) :selected section} @@ -50,9 +54,7 @@ [:& layers-toolbox]] [:& tab-element {:id :assets :title "Library"} - [:& assets-toolbox]]]] - - ])) + [:& assets-toolbox]]]]])) ;; --- Right Sidebar (Component) @@ -60,8 +62,9 @@ {::mf/wrap-props false ::mf/wrap [mf/memo]} [props] - (let [{:keys [on-pointer-down on-lost-pointer-capture on-mouse-move parent-ref size]} - (use-resize-hook 255 255 500 :x true :right) + (let [layout (obj/get props "layout") + {:keys [on-pointer-down on-lost-pointer-capture on-mouse-move parent-ref size]} + (use-resize-hook :right-sidebar 255 255 500 :x true :right) drawing-tool (:tool (mf/deref refs/workspace-drawing))] [:aside.settings-bar.settings-bar-right {:ref parent-ref @@ -70,7 +73,13 @@ :on-lost-pointer-capture on-lost-pointer-capture :on-mouse-move on-mouse-move}] [:div.settings-bar-inside - (if (= drawing-tool :comments) + (cond + (= drawing-tool :comments) [:& comments-sidebar] + + (contains? layout :document-history) + [:& history-toolbox] + + :else [:> options-toolbox props])]])) diff --git a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs index a08eee3914..e60ef66017 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs @@ -14,15 +14,14 @@ [app.main.ui.components.context-menu :refer [context-menu]] [app.main.ui.context :as ctx] [app.main.ui.hooks :as hooks] + [app.main.ui.hooks.resize :refer [use-resize-hook]] [app.main.ui.icons :as i] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] [app.util.keyboard :as kbd] [cuerdas.core :as str] [okulary.core :as l] - [rumext.alpha :as mf] - [app.main.ui.hooks.resize :refer [use-resize-hook]] - )) + [rumext.alpha :as mf])) ;; --- Page Item @@ -208,7 +207,7 @@ show-pages? (mf/use-state true) {:keys [on-pointer-down on-lost-pointer-capture on-mouse-move parent-ref size]} - (use-resize-hook 200 38 400 :y false nil) + (use-resize-hook :sitemap 200 38 400 :y false nil) toggle-pages (mf/use-callback #(reset! show-pages? not))] diff --git a/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs b/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs index be47a40cf8..70aa9746c2 100644 --- a/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs @@ -15,6 +15,16 @@ [app.util.dom :as dom] [rumext.alpha :as mf])) +(def scroll-x 10) +(def scroll-y 10) +(def scroll-height (+ scroll-x 4)) +(def scroll-width (+ scroll-y 4)) +(def other-x 26) +(def other-y 26) +(def other-width 100) +(def other-height 100) + + (mf/defc viewport-scrollbars {::mf/wrap [mf/memo]} [{:keys [objects viewport-ref zoom vbox]}] @@ -49,8 +59,8 @@ (gsh/selection-rect shapes)))) inv-zoom (/ 1 zoom) - vbox-height (- (:height vbox) (* inv-zoom 44)) - vbox-width (- (:width vbox) (* inv-zoom 34)) + vbox-height (- (:height vbox) (* inv-zoom scroll-height)) + vbox-width (- (:width vbox) (* inv-zoom scroll-width)) ;; top space hidden because of the scroll top-offset (-> (- vbox-y (:y base-objects-rect)) @@ -78,28 +88,28 @@ show-v-scroll? (or @v-scrolling? (> top-offset 0) (> bottom-offset 0)) show-h-scroll? (or @h-scrolling? (> left-offset 0) (> right-offset 0)) - v-scrollbar-x (+ vbox-x (:width vbox) (* inv-zoom -32)) + v-scrollbar-x (+ vbox-x (:width vbox) (* inv-zoom (- scroll-x))) v-scrollbar-y (+ vbox-y top-offset) h-scrollbar-x (+ vbox-x left-offset) - h-scrollbar-y (+ vbox-y (:height vbox) (* inv-zoom -40)) + h-scrollbar-y (+ vbox-y (:height vbox) (* inv-zoom (- scroll-y))) scrollbar-height (-> (- (+ vbox-y vbox-height) bottom-offset v-scrollbar-y)) scrollbar-height (-> (cond @v-scrolling? scrollbar-height-stored :else scrollbar-height) - (max (* inv-zoom 100))) + (max (* inv-zoom other-height))) scrollbar-width (-> (- (+ vbox-x vbox-width) right-offset h-scrollbar-x)) scrollbar-width (-> (cond @h-scrolling? scrollbar-width-stored :else scrollbar-width) - (max (* inv-zoom 100))) + (max (* inv-zoom other-width))) v-scrollbar-y (-> (cond @v-scrolling? (- v-scrollbar-y-stored (- (- vbox-y (mf/ref-val vbox-y-ref)))) :else v-scrollbar-y) - (max (+ vbox-y (* inv-zoom 26)))) + (max (+ vbox-y (* inv-zoom other-y)))) v-scrollbar-y (if (> (+ v-scrollbar-y scrollbar-height) (+ vbox-y vbox-height)) ;; the scroll bar is stick to the bottom (-> (+ vbox-y vbox-height) @@ -109,7 +119,7 @@ h-scrollbar-x (-> (cond @h-scrolling? (- h-scrollbar-x-stored (- (- vbox-x (mf/ref-val vbox-x-ref)))) :else h-scrollbar-x) - (max (+ vbox-x (* inv-zoom 26)))) + (max (+ vbox-x (* inv-zoom other-x)))) h-scrollbar-x (if (> (+ h-scrollbar-x scrollbar-width) (+ vbox-x vbox-width)) ;; the scroll bar is stick to the right (-> (+ vbox-x vbox-width) diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 1f575ac6e2..7d62a82447 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -3430,4 +3430,7 @@ msgid "workspace.updates.update" msgstr "Update" msgid "workspace.viewport.click-to-close-path" -msgstr "Click to close the path" \ No newline at end of file +msgstr "Click to close the path" + +msgid "workspace.shape.menu.hide-ui" +msgstr "Show/Hide UI" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 477b300942..512bae5487 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -3443,4 +3443,7 @@ msgid "workspace.updates.update" msgstr "Actualizar" msgid "workspace.viewport.click-to-close-path" -msgstr "Pulsar para cerrar la ruta" \ No newline at end of file +msgstr "Pulsar para cerrar la ruta" + +msgid "workspace.shape.menu.hide-ui" +msgstr "Mostrar/Ocultar Interfaz" From e352c700136ff8c82cf201ed72c71039462e7536 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 1 Feb 2022 13:02:31 +0100 Subject: [PATCH 056/154] :sparkles: Move layers and assets to tabs --- .../styles/main/partials/sidebar.scss | 48 ++++++------------- .../styles/main/partials/tab-container.scss | 9 ++-- .../src/app/main/ui/workspace/sidebar.cljs | 5 +- frontend/src/app/util/dom.cljs | 1 + 4 files changed, 24 insertions(+), 39 deletions(-) diff --git a/frontend/resources/styles/main/partials/sidebar.scss b/frontend/resources/styles/main/partials/sidebar.scss index b760093257..47a85e86e8 100644 --- a/frontend/resources/styles/main/partials/sidebar.scss +++ b/frontend/resources/styles/main/partials/sidebar.scss @@ -20,40 +20,10 @@ } .settings-bar-inside { - align-items: flex-start; display: grid; grid-template-columns: 100%; - - &[data-layout*="sitemap-pages"] { - grid-template-rows: auto; - } - - &[data-layout*="layers"] { - grid-template-rows: auto 1fr; - } - - &[data-layout*="libraries"] { - grid-template-rows: auto 1fr; - } - - &[data-layout*="layers"][data-layout*="sitemap-pages"] { - grid-template-rows: 11.5rem 1fr; - } - - &[data-layout*="libraries"][data-layout*="sitemap-pages"] { - grid-template-rows: 11.5rem 1fr; - } - - &[data-layout*="layers"][data-layout*="libraries"] { - grid-template-rows: auto 30% 1fr; - } - - &[data-layout*="layers"][data-layout*="libraries"][data-layout*="sitemap-pages"] { - grid-template-rows: 11.5rem 25% 1fr; - } - - flex-direction: column; - height: 100%; + grid-template-rows: 100%; + height: calc(100% - 2px); .tool-window { position: relative; @@ -171,9 +141,9 @@ .tool-window-content { display: flex; flex-direction: column; - overflow-y: auto; height: 100%; width: 100%; + overflow-y: auto; } .element-list { @@ -259,3 +229,15 @@ button.collapse-sidebar { } } } + +#layers.tool-window { + overflow: auto; +} + +.layers-tab { + display: grid; + grid-template-rows: auto 1fr; + grid-template-columns: 100%; + height: 100%; + overflow: hidden; +} diff --git a/frontend/resources/styles/main/partials/tab-container.scss b/frontend/resources/styles/main/partials/tab-container.scss index 13a43185c6..be52565e56 100644 --- a/frontend/resources/styles/main/partials/tab-container.scss +++ b/frontend/resources/styles/main/partials/tab-container.scss @@ -1,8 +1,8 @@ .tab-container { - display: flex; - flex-direction: column; + display: grid; + grid-template-rows: auto 1fr; + grid-template-columns: 100%; height: 100%; - width: 100%; } .tab-container-tabs { @@ -31,7 +31,8 @@ } .tab-container-content { - flex: 1; + overflow-y: auto; + overflow-x: hidden; } .tab-element, diff --git a/frontend/src/app/main/ui/workspace/sidebar.cljs b/frontend/src/app/main/ui/workspace/sidebar.cljs index 3c506f61e4..bb2328ac42 100644 --- a/frontend/src/app/main/ui/workspace/sidebar.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar.cljs @@ -50,8 +50,9 @@ :selected section} [:& tab-element {:id :layers :title "Layers"} - [:& sitemap {:layout layout}] - [:& layers-toolbox]] + [:div.layers-tab + [:& sitemap {:layout layout}] + [:& layers-toolbox]]] [:& tab-element {:id :assets :title "Library"} [:& assets-toolbox]]]]])) diff --git a/frontend/src/app/util/dom.cljs b/frontend/src/app/util/dom.cljs index e6505c51a8..6aab30c07b 100644 --- a/frontend/src/app/util/dom.cljs +++ b/frontend/src/app/util/dom.cljs @@ -416,6 +416,7 @@ (defn scroll-into-view-if-needed! ([^js element] + (.log js/console "SCROLL INTO VIEW" element) (when (some? element) (.scrollIntoViewIfNeeded ^js element false))) From 8d4612c683de163dc456d616bdbcdad24021a9a2 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 1 Feb 2022 13:36:12 +0100 Subject: [PATCH 057/154] :bug: Fix some problems with scroll into view for layers --- frontend/src/app/main/ui/comments.cljs | 2 +- .../app/main/ui/workspace/sidebar/layers.cljs | 16 +++++++++++----- .../ui/workspace/sidebar/options/common.cljs | 3 ++- .../app/main/ui/workspace/sidebar/sitemap.cljs | 2 +- frontend/src/app/util/dom.cljs | 15 ++++++--------- 5 files changed, 21 insertions(+), 17 deletions(-) diff --git a/frontend/src/app/main/ui/comments.cljs b/frontend/src/app/main/ui/comments.cljs index f65abba074..7677ba4451 100644 --- a/frontend/src/app/main/ui/comments.cljs +++ b/frontend/src/app/main/ui/comments.cljs @@ -300,7 +300,7 @@ (mf/deps thread comments-map) (fn [] (when-let [node (mf/ref-val ref)] - (.scrollIntoViewIfNeeded ^js node)))) + (dom/scroll-into-view-if-needed! node)))) (when (some? comment) [:div.thread-content diff --git a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs index 6d3fff53da..6fbc68a261 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs @@ -180,12 +180,17 @@ :name (:name item)})] (mf/use-effect - (mf/deps selected) + (mf/deps selected? selected) (fn [] - (let [subid - (when (and (= (count selected) 1) selected?) - (ts/schedule-on-idle - #(.scrollIntoView (mf/ref-val dref) #js {:block "nearest", :behavior "smooth"})))] + (let [single? (= (count selected) 1) + node (mf/ref-val dref) + + subid + (when (and single? selected?) + (ts/schedule + 100 + #(dom/scroll-into-view! node #js {:block "nearest", :behavior "smooth"})))] + #(when (some? subid) (rx/dispose! subid))))) @@ -247,6 +252,7 @@ {::mf/wrap [#(mf/memo % =)]} [{:keys [objects] :as props}] (let [selected (mf/deref refs/selected-shapes) + selected (hooks/use-equal-memo selected) root (get objects uuid/zero)] [:ul.element-list [:& hooks/sortable-container {} diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/common.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/common.cljs index 733fd420b8..7e42847e26 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/common.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/common.cljs @@ -6,6 +6,7 @@ (ns app.main.ui.workspace.sidebar.options.common (:require + [app.util.dom :as dom] [rumext.alpha :as mf])) (mf/defc advanced-options [{:keys [visible? children]}] @@ -15,7 +16,7 @@ (fn [] (when-let [node (mf/ref-val ref)] (when visible? - (.scrollIntoViewIfNeeded ^js node))))) + (dom/scroll-into-view-if-needed! node))))) (when visible? [:div.advanced-options-wrapper {:ref ref} diff --git a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs index e60ef66017..cbc66fdc73 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs @@ -107,7 +107,7 @@ (fn [] (when selected? (let [node (mf/ref-val dref)] - (.scrollIntoViewIfNeeded ^js node))))) + (dom/scroll-into-view-if-needed! node))))) (mf/use-layout-effect (mf/deps (:edition @local)) diff --git a/frontend/src/app/util/dom.cljs b/frontend/src/app/util/dom.cljs index 6aab30c07b..b202fab0ff 100644 --- a/frontend/src/app/util/dom.cljs +++ b/frontend/src/app/util/dom.cljs @@ -407,22 +407,19 @@ (defn scroll-into-view! ([^js element] - (when (some? element) - (.scrollIntoView element false))) + (scroll-into-view! element false)) - ([^js element scroll-top] + ([^js element options] (when (some? element) - (.scrollIntoView element scroll-top)))) + (.scrollIntoView element options)))) (defn scroll-into-view-if-needed! ([^js element] - (.log js/console "SCROLL INTO VIEW" element) - (when (some? element) - (.scrollIntoViewIfNeeded ^js element false))) + (scroll-into-view-if-needed! element false)) - ([^js element scroll-top] + ([^js element options] (when (some? element) - (.scrollIntoViewIfNeeded ^js element scroll-top)))) + (.scrollIntoViewIfNeeded ^js element options)))) (defn is-in-viewport? [^js element] From b26cbeccca1808f09eb8cfcdca95b6e9fc434dbe Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 1 Feb 2022 16:52:36 +0100 Subject: [PATCH 058/154] :sparkles: Resizable color palette --- .../styles/main/partials/color-bullet.scss | 89 ++++++++----------- .../styles/main/partials/color-palette.scss | 17 ++-- .../styles/main/partials/sidebar-assets.scss | 12 ++- .../styles/main/partials/sidebar-layers.scss | 7 +- frontend/src/app/main/data/workspace.cljs | 9 ++ .../app/main/data/workspace/shortcuts.cljs | 15 +++- .../app/main/ui/components/color_bullet.cljs | 22 ++--- frontend/src/app/main/ui/workspace.cljs | 12 ++- .../app/main/ui/workspace/colorpalette.cljs | 32 +++---- .../src/app/main/ui/workspace/header.cljs | 22 ++++- .../app/main/ui/workspace/left_toolbar.cljs | 16 ++-- .../src/app/main/ui/workspace/sidebar.cljs | 5 ++ .../app/main/ui/workspace/sidebar/layers.cljs | 2 +- .../app/main/ui/workspace/textpalette.cljs | 31 +++++++ 14 files changed, 181 insertions(+), 110 deletions(-) create mode 100644 frontend/src/app/main/ui/workspace/textpalette.cljs diff --git a/frontend/resources/styles/main/partials/color-bullet.scss b/frontend/resources/styles/main/partials/color-bullet.scss index c9c1acfa64..1b3b870aca 100644 --- a/frontend/resources/styles/main/partials/color-bullet.scss +++ b/frontend/resources/styles/main/partials/color-bullet.scss @@ -5,30 +5,26 @@ // Copyright (c) UXBOX Labs SL .color-cell { + display: grid; + grid-template-columns: 100%; + grid-template-rows: 1fr auto; + height: 100%; + justify-items: center; + width: 65px; + .color-bullet { - // Creates strange artifacts border: 2px solid $color-gray-60; - // box-shadow: 0 0 0 2px $color-gray-60; - border-radius: 50%; + position: relative; + width: var(--bullet-size); + height: var(--bullet-size); &:hover { border-color: $color-primary; } } - &.cell-big .color-bullet { - width: 50px; - height: 50px; - } - - &.cell-small .color-bullet { - width: 40px; - height: 40px; - } - - .color-bullet.color-big { - width: 50px; - height: 50px; + & > * { + overflow: hidden; } } @@ -38,10 +34,10 @@ } } + ul.palette-menu .color-bullet { width: 20px; height: 20px; - border-radius: 12px; border: 1px solid $color-gray-10; margin-right: 5px; background-size: 8px; @@ -67,14 +63,12 @@ ul.palette-menu .color-bullet { grid-area: color; width: 20px; height: 20px; - border-radius: 12px; border: 1px solid $color-gray-10; background-size: 8px; } .asset-section .asset-list-item .color-bullet { border: 1px solid $color-gray-20; - border-radius: 10px; height: 20px; margin-right: $size-1; width: 20px; @@ -91,38 +85,29 @@ ul.palette-menu .color-bullet { .color-bullet { display: flex; flex-direction: row; - background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAADFJREFUOE9jZGBgEAFifOANPknGUQMYhkkYEEgG+NMJKAwIAbwJbdQABnBCIgRoG4gAIF8IsXB/Rs4AAAAASUVORK5CYII=") - left center; - background-color: $color-white; + border-radius: 50%; - & > * { + & .color-bullet-wrapper { + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAADFJREFUOE9jZGBgEAFifOANPknGUQMYhkkYEEgG+NMJKAwIAbwJbdQABnBCIgRoG4gAIF8IsXB/Rs4AAAAASUVORK5CYII=") left center; + background-color: $color-white; + clip-path: circle(50%); + display: flex; + flex-direction: row; + height: 100%; + width: 100%; + } + + &.is-gradient { + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAADFJREFUOE9jZGBgEAFifOANPknGUQMYhkkYEEgG+NMJKAwIAbwJbdQABnBCIgRoG4gAIF8IsXB/Rs4AAAAASUVORK5CYII=") left center; + background-color: $color-white; + } + + & .color-bullet-wrapper > * { width: 100%; height: 100%; } } -.color-bullet.is-library-color .color-bullet-left, -.selected-colors .color-bullet .color-bullet-left { - border-radius: 10px 0 0 10px; -} - -.color-bullet.is-library-color .color-bullet-right, -.selected-colors .color-bullet .color-bullet-right { - border-radius: 0 10px 10px 0; -} - -.color-palette .color-bullet .color-bullet-left { - border-radius: 25px 0 0 25px; -} - -.color-palette .color-bullet .color-bullet-right { - border-radius: 0 25px 25px 0; -} - -.color-data .color-bullet.is-library-color { - border-radius: 50%; -} - .color-data .color-bullet.multiple { background: transparent; @@ -133,7 +118,7 @@ ul.palette-menu .color-bullet { .color-data .color-bullet { border: 1px solid $color-gray-30; - border-radius: $br-small; + border-radius: 50%; cursor: pointer; display: flex; align-items: center; @@ -144,10 +129,6 @@ ul.palette-menu .color-bullet { margin: 5px 4px 0 0; width: 20px; - &.color-name { - border-radius: 10px; - } - &.palette-th { align-items: center; border: 1px solid $color-gray-30; @@ -198,3 +179,11 @@ ul.palette-menu .color-bullet { fill: $color-black; } } + +.color-data .color-bullet.is-not-library-color { + border-radius: $br-small; + + & .color-bullet-wrapper { + clip-path: none; + } +} diff --git a/frontend/resources/styles/main/partials/color-palette.scss b/frontend/resources/styles/main/partials/color-palette.scss index 040a24d735..f61657c1ff 100644 --- a/frontend/resources/styles/main/partials/color-palette.scss +++ b/frontend/resources/styles/main/partials/color-palette.scss @@ -122,6 +122,7 @@ overflow: hidden; width: 100%; padding: 0.25rem; + height: 100%; &.size-small { height: 3.5rem; @@ -135,6 +136,7 @@ transition: all 0.6s ease; width: 100%; scroll-behavior: smooth; + height: 100%; } .color-cell { @@ -145,24 +147,21 @@ flex-shrink: 0; position: relative; - &.cell-big { - flex-basis: 66px; - } - - &.cell-small { - flex-basis: 52px; - } - .color-text { color: $color-gray-20; font-size: $fs12; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; - width: 66px; + width: 65px; text-align: center; margin-top: 0.25rem; + + .no-text & { + display: none; + } } + &.current { .color-text { color: $color-gray-50; diff --git a/frontend/resources/styles/main/partials/sidebar-assets.scss b/frontend/resources/styles/main/partials/sidebar-assets.scss index eed7e64b3e..75907e30fc 100644 --- a/frontend/resources/styles/main/partials/sidebar-assets.scss +++ b/frontend/resources/styles/main/partials/sidebar-assets.scss @@ -231,15 +231,23 @@ .asset-grid { display: grid; - grid-template-columns: 1fr 1fr 1fr 1fr; + grid-template-columns: repeat(4, 1fr); grid-auto-rows: 6vh; column-gap: 0.5rem; row-gap: 0.5rem; &.big { - grid-template-columns: 1fr 1fr; + grid-template-columns: repeat(2, 1fr); grid-auto-rows: 10vh; + .three-row & { + grid-template-columns: repeat(3, 1fr); + } + + .four-row & { + grid-template-columns: repeat(4, 1fr); + } + .grid-cell { padding: $size-1; diff --git a/frontend/resources/styles/main/partials/sidebar-layers.scss b/frontend/resources/styles/main/partials/sidebar-layers.scss index ce99e46335..e8747f1325 100644 --- a/frontend/resources/styles/main/partials/sidebar-layers.scss +++ b/frontend/resources/styles/main/partials/sidebar-layers.scss @@ -207,6 +207,11 @@ span.element-name { margin-left: auto; position: relative; width: 32px; + right: 20px; + + &.is-parent { + right: 0; + } svg { height: 13px; @@ -242,7 +247,7 @@ span.element-name { } .toggle-content { - margin-left: auto; + margin-left: 8px; width: 12px; svg { diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index a303b31060..d36dde0638 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -432,6 +432,15 @@ stored (d/concat-set flags))))))) +(defn remove-layout-flags + [& flags] + (ptk/reify ::remove-layout-flags + ptk/UpdateEvent + (update [_ state] + (update state :workspace-layout + (fn [stored] + (reduce disj stored (d/concat-set flags))))))) + ;; --- Set element options mode (defn set-options-mode diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs index eafc00e19a..44667db499 100644 --- a/frontend/src/app/main/data/workspace/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/shortcuts.cljs @@ -17,6 +17,7 @@ [app.main.data.workspace.transforms :as dwt] [app.main.data.workspace.undo :as dwu] [app.main.store :as st] + [app.main.ui.hooks.resize :as r] [app.util.dom :as dom])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -38,9 +39,17 @@ :command (ds/a-mod "h") :fn #(st/emit! (dw/go-to-layout :document-history))} - :toggle-palette {:tooltip (ds/alt "P") - :command (ds/a-mod "p") - :fn #(st/emit! (dw/toggle-layout-flags :colorpalette))} + :toggle-colorpalette {:tooltip (ds/alt "P") + :command (ds/a-mod "p") + :fn #(do (r/set-resize-type! :bottom) + (st/emit! (dw/remove-layout-flags :textpalette) + (dw/toggle-layout-flags :colorpalette)))} + + :toggle-textpalette {:tooltip (ds/alt "T") + :command (ds/a-mod "t") + :fn #(do (r/set-resize-type! :bottom) + (st/emit! (dw/remove-layout-flags :colorpalette) + (dw/toggle-layout-flags :textpalette)))} :toggle-rules {:tooltip (ds/meta-shift "R") :command (ds/c-mod "shift+r") diff --git a/frontend/src/app/main/ui/components/color_bullet.cljs b/frontend/src/app/main/ui/components/color_bullet.cljs index 62faf19f00..aa177e0947 100644 --- a/frontend/src/app/main/ui/components/color_bullet.cljs +++ b/frontend/src/app/main/ui/components/color_bullet.cljs @@ -7,6 +7,7 @@ (ns app.main.ui.components.color-bullet (:require [app.util.color :as uc] + [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] [rumext.alpha :as mf])) @@ -21,17 +22,18 @@ [:div.color-bullet.multiple {:on-click #(when on-click (on-click %))}] ;; No multiple selection - (let [color (if (string? color) {:color color :opacity 1} color) - background (if (:gradient color) (uc/color->background color) "auto")] - [:div.color-bullet.tooltip.tooltip-right {:class (if (:id color) "is-library-color" "is-not-library-color") - :on-click #(when on-click (on-click %)) - :alt (or (:name color) (:color color) (gradient-type->string (:type (:gradient color)))) - :style {:background background}} - (when (not(:gradient color)) - [:* + (let [color (if (string? color) {:color color :opacity 1} color)] + [:div.color-bullet.tooltip.tooltip-right + {:class (dom/classnames :is-library-color (some? (:id color)) + :is-not-library-color (nil? (:id color)) + :is-gradient (some? (:gradient color))) + :on-click #(when on-click (on-click %)) + :alt (or (:name color) (:color color) (gradient-type->string (:type (:gradient color))))} + (if (:gradient color) + [:div.color-bullet-wrapper {:style {:background (uc/color->background color)}}] + [:div.color-bullet-wrapper [:div.color-bullet-left {:style {:background (uc/color->background (assoc color :opacity 1))}}] - [:div.color-bullet-right {:style {:background (uc/color->background color)}}]] - )]))) + [:div.color-bullet-right {:style {:background (uc/color->background color)}}]])]))) (mf/defc color-name [{:keys [color size on-click on-double-click]}] (let [color (if (string? color) {:color color :opacity 1} color) diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index eba5fe8d24..88d74fbfd9 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -22,6 +22,7 @@ [app.main.ui.workspace.left-toolbar :refer [left-toolbar]] [app.main.ui.workspace.libraries] [app.main.ui.workspace.sidebar :refer [left-sidebar right-sidebar]] + [app.main.ui.workspace.textpalette :refer [textpalette]] [app.main.ui.workspace.viewport :refer [viewport]] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] @@ -41,7 +42,10 @@ {:keys [options-mode]} local file (obj/get props "file") layout (obj/get props "layout") + colorpalette? (:colorpalette layout) + textpalette? (:textpalette layout) + hide-ui? (:hide-ui layout) on-resize (mf/use-callback @@ -52,7 +56,11 @@ node-ref (use-resize-observer on-resize)] [:* - (when colorpalette? [:& colorpalette]) + (when (and colorpalette? (not hide-ui?)) + [:& colorpalette]) + + (when (and textpalette? (not hide-ui?)) + [:& textpalette]) [:section.workspace-content {:ref node-ref} [:section.workspace-viewport @@ -64,7 +72,7 @@ :selected selected :layout layout}]]] - (when-not (:hide-ui layout) + (when-not hide-ui? [:* [:& left-toolbar {:layout layout}] (if (:collapse-left-sidebar layout) diff --git a/frontend/src/app/main/ui/workspace/colorpalette.cljs b/frontend/src/app/main/ui/workspace/colorpalette.cljs index 40383d5261..a5d43895cb 100644 --- a/frontend/src/app/main/ui/workspace/colorpalette.cljs +++ b/frontend/src/app/main/ui/workspace/colorpalette.cljs @@ -6,6 +6,7 @@ (ns app.main.ui.workspace.colorpalette (:require + [app.common.data :as d] [app.common.math :as mth] [app.main.data.workspace.colors :as mdc] [app.main.refs :as refs] @@ -15,6 +16,7 @@ [app.main.ui.hooks.resize :refer [use-resize-hook]] [app.main.ui.icons :as i] [app.util.color :as uc] + [app.util.dom :as dom] [app.util.i18n :refer [tr]] [app.util.keyboard :as kbd] [app.util.object :as obj] @@ -39,7 +41,7 @@ ;; --- Components (mf/defc palette-item - [{:keys [color size]}] + [{:keys [color]}] (let [ids-with-children (map :id (mf/deref refs/selected-shapes-with-children)) select-color (fn [event] @@ -47,10 +49,9 @@ (st/emit! (mdc/change-stroke ids-with-children (merge uc/empty-color color))) (st/emit! (mdc/change-fill ids-with-children (merge uc/empty-color color)))))] - [:div.color-cell {:class (str "cell-"(name size)) - :on-click select-color} + [:div.color-cell {:on-click select-color} [:& cb/color-bullet {:color color}] - [:& cb/color-name {:color color :size size}]])) + [:& cb/color-name {:color color}]])) (mf/defc palette [{:keys [current-colors recent-colors file-colors shared-libs selected]}] @@ -116,7 +117,9 @@ (events/unlistenByKey key1)))) [:div.color-palette {:ref parent-ref - :style #js {"--height" (str size "px")}} + :class (dom/classnames :no-text (< size 72)) + :style #js {"--height" (str size "px") + "--bullet-size" (str (if (< size 72) (- size 15) (- size 30)) "px")}} [:div.resize-area {:on-pointer-down on-pointer-down :on-lost-pointer-capture on-lost-pointer-capture :on-mouse-move on-mouse-move}] @@ -155,31 +158,18 @@ (for [[idx color] (map-indexed vector (take 7 (reverse recent-colors))) ] [:& cb/color-bullet {:key (str "color-" idx) :color color}])]] - - [:hr.dropdown-separator] - - [:li - {:on-click #(st/emit! (mdc/change-palette-size :big))} - (when (= size :big) i/tick) - (tr "workspace.libraries.colors.big-thumbnails")] - - [:li - {:on-click #(st/emit! (mdc/change-palette-size :small))} - (when (= size :small) i/tick) - (tr "workspace.libraries.colors.small-thumbnails")]]] + ]] [:div.color-palette-actions {:on-click #(swap! state assoc :show-menu true)} [:div.color-palette-actions-button i/actions]] [:span.left-arrow {:on-click on-left-arrow-click} i/arrow-slide] - [:div.color-palette-content {:class (if (= size :big) "size-big" "size-small") - :ref container :on-wheel on-scroll} + [:div.color-palette-content {:ref container :on-wheel on-scroll} [:div.color-palette-inside {:style {:position "relative" :right (str (* 66 offset) "px")}} (for [[idx item] (map-indexed vector current-colors)] - [:& palette-item {:color item - :key idx}])]] + [:& palette-item {:color item :key idx}])]] [:span.right-arrow {:on-click on-right-arrow-click} i/arrow-slide]])) diff --git a/frontend/src/app/main/ui/workspace/header.cljs b/frontend/src/app/main/ui/workspace/header.cljs index 7e9129ce98..038143f176 100644 --- a/frontend/src/app/main/ui/workspace/header.cljs +++ b/frontend/src/app/main/ui/workspace/header.cljs @@ -18,6 +18,7 @@ [app.main.repo :as rp] [app.main.store :as st] [app.main.ui.components.dropdown :refer [dropdown]] + [app.main.ui.hooks.resize :as r] [app.main.ui.icons :as i] [app.main.ui.workspace.presence :refer [active-sessions]] [app.util.dom :as dom] @@ -297,12 +298,25 @@ (tr "workspace.header.menu.show-layers"))] [:span.shortcut (sc/get-tooltip :toggle-layers)]] - [:li {:on-click #(st/emit! (dw/toggle-layout-flags :colorpalette))} + [:li {:on-click (fn [] + (r/set-resize-type! :bottom) + (st/emit! (dw/remove-layout-flags :textpalette) + (dw/toggle-layout-flags :colorpalette)))} [:span (if (contains? layout :colorpalette) - (tr "workspace.header.menu.hide-palette") - (tr "workspace.header.menu.show-palette"))] - [:span.shortcut (sc/get-tooltip :toggle-palette)]] + (tr "workspace.header.menu.hide-colorpalette") + (tr "workspace.header.menu.show-colorpalette"))] + [:span.shortcut (sc/get-tooltip :toggle-colorpalette)]] + + [:li {:on-click (fn [] + (r/set-resize-type! :bottom) + (st/emit! (dw/remove-layout-flags :colorpalette) + (dw/toggle-layout-flags :textpalette)))} + [:span + (if (contains? layout :textpalette) + (tr "workspace.header.menu.hide-textpalette") + (tr "workspace.header.menu.show-textpalette"))] + [:span.shortcut (sc/get-tooltip :toggle-textpalette)]] [:li {:on-click #(st/emit! (dw/toggle-layout-flags :assets))} [:span diff --git a/frontend/src/app/main/ui/workspace/left_toolbar.cljs b/frontend/src/app/main/ui/workspace/left_toolbar.cljs index cb4f0c6671..dbddf07778 100644 --- a/frontend/src/app/main/ui/workspace/left_toolbar.cljs +++ b/frontend/src/app/main/ui/workspace/left_toolbar.cljs @@ -120,17 +120,19 @@ [:ul.left-toolbar-options.panels [:li.tooltip.tooltip-right - {;;:alt (tr "workspace.toolbar.color-palette" (sc/get-tooltip :toggle-textpalette)) + {:alt (tr "workspace.toolbar.text-palette" (sc/get-tooltip :toggle-textpalette)) :class (when (contains? layout :textpalette) "selected") - :on-click (do + :on-click (fn [] (r/set-resize-type! :bottom) - (st/emitf (dw/toggle-layout-flags :textpalette)))} - i/palette] + (st/emit! (dw/remove-layout-flags :colorpalette) + (dw/toggle-layout-flags :textpalette)))} + "Ag"] [:li.tooltip.tooltip-right - {:alt (tr "workspace.toolbar.color-palette" (sc/get-tooltip :toggle-palette)) + {:alt (tr "workspace.toolbar.color-palette" (sc/get-tooltip :toggle-colorpalette)) :class (when (contains? layout :colorpalette) "selected") - :on-click (do + :on-click (fn [] (r/set-resize-type! :bottom) - (st/emitf (dw/toggle-layout-flags :colorpalette)))} + (st/emit! (dw/remove-layout-flags :textpalette) + (dw/toggle-layout-flags :colorpalette)))} i/palette]]]])) diff --git a/frontend/src/app/main/ui/workspace/sidebar.cljs b/frontend/src/app/main/ui/workspace/sidebar.cljs index bb2328ac42..93a66e9d22 100644 --- a/frontend/src/app/main/ui/workspace/sidebar.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar.cljs @@ -18,6 +18,7 @@ [app.main.ui.workspace.sidebar.layers :refer [layers-toolbox]] [app.main.ui.workspace.sidebar.options :refer [options-toolbox]] [app.main.ui.workspace.sidebar.sitemap :refer [sitemap]] + [app.util.dom :as dom] [app.util.object :as obj] [rumext.alpha :as mf])) @@ -37,6 +38,10 @@ (st/emit! (dw/toggle-layout-flags :collapse-left-sidebar)))] [:aside.settings-bar.settings-bar-left {:ref parent-ref + :class (dom/classnames + :two-row (<= size 300) + :three-row (and (> size 300) (<= size 400)) + :four-row (> size 400)) :style #js {"--width" (str size "px")}} [:div.resize-area {:on-pointer-down on-pointer-down :on-lost-pointer-capture on-lost-pointer-capture diff --git a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs index 6fbc68a261..e18483c09f 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs @@ -213,7 +213,7 @@ :on-start-edit #(reset! disable-drag true) :on-stop-edit #(reset! disable-drag false)}] - [:div.element-actions + [:div.element-actions {:class (when (:shapes item) "is-parent")} [:div.toggle-element {:class (when (:hidden item) "selected") :on-click toggle-visibility} (if (:hidden item) i/eye-closed i/eye)] diff --git a/frontend/src/app/main/ui/workspace/textpalette.cljs b/frontend/src/app/main/ui/workspace/textpalette.cljs new file mode 100644 index 0000000000..36c0479609 --- /dev/null +++ b/frontend/src/app/main/ui/workspace/textpalette.cljs @@ -0,0 +1,31 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.main.ui.workspace.textpalette + (:require + #_[app.util.dom :as dom] + #_[app.common.data :as d] + #_[app.common.math :as mth] + #_[app.main.data.workspace.colors :as mdc] + #_[app.main.refs :as refs] + #_[app.main.store :as st] + #_[app.main.ui.components.color-bullet :as cb] + #_[app.main.ui.components.dropdown :refer [dropdown]] + #_[app.main.ui.hooks.resize :refer [use-resize-hook]] + #_[app.main.ui.icons :as i] + #_[app.util.color :as uc] + #_[app.util.i18n :refer [tr]] + #_[app.util.keyboard :as kbd] + #_[app.util.object :as obj] + #_[cuerdas.core :as str] + #_[goog.events :as events] + #_[okulary.core :as l] + [rumext.alpha :as mf] + )) + +(mf/defc textpalette + [] + [:div]) From 5cac5eb26bdcf762ab8a6834ef365ddfd6665da1 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Wed, 2 Feb 2022 09:18:13 +0100 Subject: [PATCH 059/154] :sparkles: New text typographies palette --- frontend/resources/styles/main-default.scss | 1 + .../styles/main/partials/color-palette.scss | 6 +- .../styles/main/partials/text-palette.scss | 24 +++ frontend/src/app/main/refs.cljs | 2 +- .../app/main/ui/workspace/colorpalette.cljs | 4 +- .../app/main/ui/workspace/textpalette.cljs | 176 ++++++++++++++++-- 6 files changed, 188 insertions(+), 25 deletions(-) create mode 100644 frontend/resources/styles/main/partials/text-palette.scss diff --git a/frontend/resources/styles/main-default.scss b/frontend/resources/styles/main-default.scss index ca1c5c61b7..bb6dafbfb0 100644 --- a/frontend/resources/styles/main-default.scss +++ b/frontend/resources/styles/main-default.scss @@ -55,6 +55,7 @@ @import "main/partials/zoom-widget"; @import "main/partials/activity-bar"; @import "main/partials/color-palette"; +@import "main/partials/text-palette"; @import "main/partials/colorpicker"; @import "main/partials/dashboard"; @import "main/partials/dashboard-header"; diff --git a/frontend/resources/styles/main/partials/color-palette.scss b/frontend/resources/styles/main/partials/color-palette.scss index f61657c1ff..21939482ac 100644 --- a/frontend/resources/styles/main/partials/color-palette.scss +++ b/frontend/resources/styles/main/partials/color-palette.scss @@ -9,7 +9,9 @@ align-items: center; background-color: $color-gray-50; border-top: 1px solid $color-gray-60; - display: flex; + + display: grid; + grid-template-columns: auto auto 1fr auto auto; z-index: 11; @@ -252,7 +254,7 @@ ul.palette-menu { left: 8px; top: auto; - bottom: 4.5rem; + bottom: var(--height); color: $color-black; li { diff --git a/frontend/resources/styles/main/partials/text-palette.scss b/frontend/resources/styles/main/partials/text-palette.scss new file mode 100644 index 0000000000..a48fc32eb4 --- /dev/null +++ b/frontend/resources/styles/main/partials/text-palette.scss @@ -0,0 +1,24 @@ +.typography-item { + padding: 0 1rem; + margin-right: 1rem; + cursor: pointer; + + & > * { + white-space: nowrap; + } + + & .typography-name { + color: $color-white; + } + + & .typography-font, & .typography-data { + font-size: 16px; + color: #7B7D85; + } + + .no-text & { + & .typography-font, & .typography-data { + display: none; + } + } +} diff --git a/frontend/src/app/main/refs.cljs b/frontend/src/app/main/refs.cljs index 7478edc3fd..15fdbb9367 100644 --- a/frontend/src/app/main/refs.cljs +++ b/frontend/src/app/main/refs.cljs @@ -92,7 +92,7 @@ (l/derived :workspace-drawing st/state)) (def selected-shapes - (l/derived wsh/lookup-selected st/state)) + (l/derived wsh/lookup-selected st/state =)) (defn make-selected-ref [id] diff --git a/frontend/src/app/main/ui/workspace/colorpalette.cljs b/frontend/src/app/main/ui/workspace/colorpalette.cljs index a5d43895cb..1818909079 100644 --- a/frontend/src/app/main/ui/workspace/colorpalette.cljs +++ b/frontend/src/app/main/ui/workspace/colorpalette.cljs @@ -6,7 +6,6 @@ (ns app.main.ui.workspace.colorpalette (:require - [app.common.data :as d] [app.common.math :as mth] [app.main.data.workspace.colors :as mdc] [app.main.refs :as refs] @@ -55,7 +54,7 @@ (mf/defc palette [{:keys [current-colors recent-colors file-colors shared-libs selected]}] - (let [state (mf/use-state {:show-menu false }) + (let [state (mf/use-state {:show-menu false}) width (:width @state 0) visible (mth/round (/ width 66)) @@ -180,6 +179,7 @@ (vals)))) (mf/defc colorpalette + {::mf/wrap [mf/memo]} [] (let [recent-colors (mf/deref refs/workspace-recent-colors) file-colors (mf/deref refs/workspace-file-colors) diff --git a/frontend/src/app/main/ui/workspace/textpalette.cljs b/frontend/src/app/main/ui/workspace/textpalette.cljs index 36c0479609..c64eb2148b 100644 --- a/frontend/src/app/main/ui/workspace/textpalette.cljs +++ b/frontend/src/app/main/ui/workspace/textpalette.cljs @@ -6,26 +6,162 @@ (ns app.main.ui.workspace.textpalette (:require - #_[app.util.dom :as dom] - #_[app.common.data :as d] - #_[app.common.math :as mth] - #_[app.main.data.workspace.colors :as mdc] - #_[app.main.refs :as refs] - #_[app.main.store :as st] - #_[app.main.ui.components.color-bullet :as cb] - #_[app.main.ui.components.dropdown :refer [dropdown]] - #_[app.main.ui.hooks.resize :refer [use-resize-hook]] - #_[app.main.ui.icons :as i] - #_[app.util.color :as uc] - #_[app.util.i18n :refer [tr]] - #_[app.util.keyboard :as kbd] - #_[app.util.object :as obj] - #_[cuerdas.core :as str] - #_[goog.events :as events] - #_[okulary.core :as l] - [rumext.alpha :as mf] - )) + [app.common.data :as d] + [app.main.data.workspace.texts :as dwt] + [app.main.fonts :as f] + [app.main.refs :as refs] + [app.main.store :as st] + [app.main.ui.components.dropdown :refer [dropdown]] + [app.main.ui.hooks.resize :refer [use-resize-hook]] + [app.main.ui.icons :as i] + [app.util.dom :as dom] + [app.util.i18n :refer [tr]] + [cuerdas.core :as str] + [okulary.core :as l] + [rumext.alpha :as mf])) + +(mf/defc typography-item + [{:keys [local file-id selected-ids typography name-only?]}] + (let [font-data (f/get-font-data (:font-id typography)) + font-variant-id (:font-variant-id typography) + variant-data (->> font-data :variants (d/seek #(= (:id %) font-variant-id))) + + handle-click + (mf/use-callback + (mf/deps local typography selected-ids) + (fn [] + (let [attrs (merge + {:typography-ref-file file-id + :typography-ref-id (:id typography)} + (dissoc typography :id :name))] + (->> selected-ids + (run! #(st/emit! (dwt/update-text-attrs {:id % :editor (get-in local [:editors %]) :attrs attrs})))))))] + + [:div.typography-item {:on-click handle-click} + [:div.typography-name + {:style {:font-family (:font-family typography) + :font-weight (:font-weight typography) + :font-style (:font-style typography)}} + (:name typography)] + (when-not name-only? + [:* + [:div.typography-font (:name font-data)] + [:div.typography-data (str (:font-size typography) "pt | " (:name variant-data))]])])) + +(mf/defc palette + [{:keys [local selected-ids current-file-id file-typographies shared-libs]}] + + (let [state (mf/use-state {:show-menu false}) + + selected (mf/use-state :file) + + file-id + (case @selected + :recent nil + :file current-file-id + @selected) + + current-typographies + (case @selected + :recent [] + :file (vals file-typographies) + (vals (get-in shared-libs [@selected :data :typographies]))) + + container (mf/use-ref nil) + + on-left-arrow-click + (mf/use-callback + (fn [] + (when-let [node (mf/ref-val container)] + (.scrollBy node #js {:left -200 :behavior "smooth"})))) + + on-right-arrow-click + (mf/use-callback + (fn [] + (when-let [node (mf/ref-val container)] + (.scrollBy node #js {:left 200 :behavior "smooth"})))) + + on-wheel + (mf/use-callback + (fn [event] + (let [delta (+ (.. event -nativeEvent -deltaY) (.. event -nativeEvent -deltaX))] + (if (pos? delta) + (on-right-arrow-click) + (on-left-arrow-click))))) + + {:keys [on-pointer-down on-lost-pointer-capture on-mouse-move parent-ref size]} + (use-resize-hook :palette 72 54 80 :y true :bottom)] + + [:div.color-palette {:ref parent-ref + :class (dom/classnames :no-text (< size 72)) + :style #js {"--height" (str size "px")}} + [:div.resize-area {:on-pointer-down on-pointer-down + :on-lost-pointer-capture on-lost-pointer-capture + :on-mouse-move on-mouse-move}] + [:& dropdown {:show (:show-menu @state) + :on-close #(swap! state assoc :show-menu false)} + + [:ul.workspace-context-menu.palette-menu + (for [[idx cur-library] (map-indexed vector (vals shared-libs))] + (let [typographies (-> cur-library (get-in [:data :typographies]) vals)] + [:li.palette-library + {:key (str "library-" idx) + :on-click #(reset! selected (:id cur-library))} + + (when (= @selected (:id cur-library)) i/tick) + + [:div.library-name (str (:name cur-library) " " (str/format "(%s)" (count typographies)))]])) + + [:li.palette-library + {:on-click #(reset! selected :file)} + (when (= selected :file) i/tick) + [:div.library-name (str (tr "workspace.libraries.colors.file-library") + (str/format " (%s)" (count file-typographies)))]] + + #_[:li.palette-library + {:on-click #(st/emit! (mdc/change-palette-selected :recent))} + (when (= selected :recent) i/tick) + [:div.library-name (str (tr "workspace.libraries.colors.recent-colors") + (str/format " (%s)" (count recent-colors)))] + [:div.color-sample + (for [[idx color] (map-indexed vector (take 7 (reverse recent-colors))) ] + [:& cb/color-bullet {:key (str "color-" idx) + :color color}])]] + ]] + + [:div.color-palette-actions + {:on-click #(swap! state assoc :show-menu true)} + [:div.color-palette-actions-button i/actions]] + + [:span.left-arrow {:on-click on-left-arrow-click} i/arrow-slide] + + [:div.color-palette-content {:ref container :on-wheel on-wheel} + [:div.color-palette-inside {:style {:position "relative"}} + (for [[idx item] (map-indexed vector current-typographies)] + [:& typography-item + {:key idx + :file-id file-id + :local local + :selected-ids selected-ids + :typography item}])]] + + [:span.right-arrow {:on-click on-right-arrow-click} i/arrow-slide]]) + + ) + +(def local-data + (l/derived #(select-keys % [:editors]) refs/workspace-local =)) (mf/defc textpalette + {::mf/wrap [mf/memo]} [] - [:div]) + (let [local (mf/deref local-data) + selected-ids (mf/deref refs/selected-shapes) + file-typographies (mf/deref refs/workspace-file-typography) + shared-libs (mf/deref refs/workspace-libraries) + current-file-id (mf/deref refs/current-file-id)] + [:& palette {:local local + :current-file-id current-file-id + :selected-ids selected-ids + :file-typographies file-typographies + :shared-libs shared-libs}])) From 1dee767762faa023f99a4a424288022b09075309 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Wed, 2 Feb 2022 18:08:47 +0100 Subject: [PATCH 060/154] :sparkles: Selection area on rules --- CHANGES.md | 2 +- .../styles/main/partials/color-bullet.scss | 7 +- .../styles/main/partials/color-palette.scss | 2 +- .../styles/main/partials/sidebar.scss | 12 +- .../styles/main/partials/text-palette.scss | 8 +- .../styles/main/partials/workspace.scss | 10 +- .../src/app/main/ui/workspace/sidebar.cljs | 10 +- .../app/main/ui/workspace/textpalette.cljs | 20 +-- .../src/app/main/ui/workspace/viewport.cljs | 3 +- .../app/main/ui/workspace/viewport/rules.cljs | 128 ++++++++++++++++-- 10 files changed, 148 insertions(+), 54 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index df9e39e4cd..df3edd087a 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -18,7 +18,7 @@ - Improve file menu by adding semantically groups [Github #1203](https://github.com/penpot/penpot/issues/1203) - Add update components in bulk option in context menu [Taiga #1975](https://tree.taiga.io/project/penpot/us/1975) - Create first E2E tests [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608), [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608) -- Refactor of workspace toolbars [Taiga #2319](https://tree.taiga.io/project/penpot/us/2319) +- Redesign of workspace toolbars [Taiga #2319](https://tree.taiga.io/project/penpot/us/2319) ### :bug: Bugs fixed ### :arrow_up: Deps updates diff --git a/frontend/resources/styles/main/partials/color-bullet.scss b/frontend/resources/styles/main/partials/color-bullet.scss index 1b3b870aca..3ee47482f1 100644 --- a/frontend/resources/styles/main/partials/color-bullet.scss +++ b/frontend/resources/styles/main/partials/color-bullet.scss @@ -34,7 +34,6 @@ } } - ul.palette-menu .color-bullet { width: 20px; height: 20px; @@ -88,7 +87,8 @@ ul.palette-menu .color-bullet { border-radius: 50%; & .color-bullet-wrapper { - background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAADFJREFUOE9jZGBgEAFifOANPknGUQMYhkkYEEgG+NMJKAwIAbwJbdQABnBCIgRoG4gAIF8IsXB/Rs4AAAAASUVORK5CYII=") left center; + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAADFJREFUOE9jZGBgEAFifOANPknGUQMYhkkYEEgG+NMJKAwIAbwJbdQABnBCIgRoG4gAIF8IsXB/Rs4AAAAASUVORK5CYII=") + left center; background-color: $color-white; clip-path: circle(50%); display: flex; @@ -98,7 +98,8 @@ ul.palette-menu .color-bullet { } &.is-gradient { - background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAADFJREFUOE9jZGBgEAFifOANPknGUQMYhkkYEEgG+NMJKAwIAbwJbdQABnBCIgRoG4gAIF8IsXB/Rs4AAAAASUVORK5CYII=") left center; + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAADFJREFUOE9jZGBgEAFifOANPknGUQMYhkkYEEgG+NMJKAwIAbwJbdQABnBCIgRoG4gAIF8IsXB/Rs4AAAAASUVORK5CYII=") + left center; background-color: $color-white; } diff --git a/frontend/resources/styles/main/partials/color-palette.scss b/frontend/resources/styles/main/partials/color-palette.scss index 21939482ac..2edac74577 100644 --- a/frontend/resources/styles/main/partials/color-palette.scss +++ b/frontend/resources/styles/main/partials/color-palette.scss @@ -12,7 +12,7 @@ display: grid; grid-template-columns: auto auto 1fr auto auto; - + z-index: 11; & .right-arrow, diff --git a/frontend/resources/styles/main/partials/sidebar.scss b/frontend/resources/styles/main/partials/sidebar.scss index 47a85e86e8..e086a1d06b 100644 --- a/frontend/resources/styles/main/partials/sidebar.scss +++ b/frontend/resources/styles/main/partials/sidebar.scss @@ -177,7 +177,6 @@ } } } - } .element-list.pages-list { @@ -214,24 +213,23 @@ button.collapse-sidebar { } &.collapsed { - background: $color-black; + background: $color-gray-60; left: 48px; top: 48px; - width: 18px; - height: 24px; + width: 28px; + height: 48px; padding: 0; border-radius: 0px 4px 4px 0px; + border-left: 1px solid $color-gray-50; & svg { - width: 8px; - height: 8px; transform: rotate(0deg); } } } #layers.tool-window { - overflow: auto; + overflow: auto; } .layers-tab { diff --git a/frontend/resources/styles/main/partials/text-palette.scss b/frontend/resources/styles/main/partials/text-palette.scss index a48fc32eb4..b1c223da1e 100644 --- a/frontend/resources/styles/main/partials/text-palette.scss +++ b/frontend/resources/styles/main/partials/text-palette.scss @@ -11,13 +11,15 @@ color: $color-white; } - & .typography-font, & .typography-data { + & .typography-font, + & .typography-data { font-size: 16px; - color: #7B7D85; + color: $color-gray-30; } .no-text & { - & .typography-font, & .typography-data { + & .typography-font, + & .typography-data { display: none; } } diff --git a/frontend/resources/styles/main/partials/workspace.scss b/frontend/resources/styles/main/partials/workspace.scss index a3c3f03a71..2bba2d53af 100644 --- a/frontend/resources/styles/main/partials/workspace.scss +++ b/frontend/resources/styles/main/partials/workspace.scss @@ -21,9 +21,10 @@ $height-palette-max: 80px; user-select: none; display: grid; - grid-template-areas: "header header header header" - "toolbar left-sidebar viewport right-sidebar" - "toolbar left-sidebar color-palette right-sidebar"; + grid-template-areas: + "header header header header" + "toolbar left-sidebar viewport right-sidebar" + "toolbar left-sidebar color-palette right-sidebar"; grid-template-rows: auto 1fr auto; grid-template-columns: auto auto 1fr auto; @@ -48,7 +49,7 @@ $height-palette-max: 80px; .settings-bar.settings-bar-right { min-width: $width-settings-bar; max-width: 500px; - width: var(--width, $width-settings-bar); + width: $width-settings-bar; grid-area: right-sidebar; } @@ -68,7 +69,6 @@ $height-palette-max: 80px; } } - .workspace-context-menu { background-color: $color-white; border-radius: $br-small; diff --git a/frontend/src/app/main/ui/workspace/sidebar.cljs b/frontend/src/app/main/ui/workspace/sidebar.cljs index 93a66e9d22..06d3b986c6 100644 --- a/frontend/src/app/main/ui/workspace/sidebar.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar.cljs @@ -69,15 +69,9 @@ ::mf/wrap [mf/memo]} [props] (let [layout (obj/get props "layout") - {:keys [on-pointer-down on-lost-pointer-capture on-mouse-move parent-ref size]} - (use-resize-hook :right-sidebar 255 255 500 :x true :right) - drawing-tool (:tool (mf/deref refs/workspace-drawing))] - [:aside.settings-bar.settings-bar-right {:ref parent-ref - :style #js {"--width" (str size "px")}} - [:div.resize-area {:on-pointer-down on-pointer-down - :on-lost-pointer-capture on-lost-pointer-capture - :on-mouse-move on-mouse-move}] + + [:aside.settings-bar.settings-bar-right [:div.settings-bar-inside (cond (= drawing-tool :comments) diff --git a/frontend/src/app/main/ui/workspace/textpalette.cljs b/frontend/src/app/main/ui/workspace/textpalette.cljs index c64eb2148b..72225aa20d 100644 --- a/frontend/src/app/main/ui/workspace/textpalette.cljs +++ b/frontend/src/app/main/ui/workspace/textpalette.cljs @@ -52,7 +52,6 @@ [{:keys [local selected-ids current-file-id file-typographies shared-libs]}] (let [state (mf/use-state {:show-menu false}) - selected (mf/use-state :file) file-id @@ -116,18 +115,7 @@ {:on-click #(reset! selected :file)} (when (= selected :file) i/tick) [:div.library-name (str (tr "workspace.libraries.colors.file-library") - (str/format " (%s)" (count file-typographies)))]] - - #_[:li.palette-library - {:on-click #(st/emit! (mdc/change-palette-selected :recent))} - (when (= selected :recent) i/tick) - [:div.library-name (str (tr "workspace.libraries.colors.recent-colors") - (str/format " (%s)" (count recent-colors)))] - [:div.color-sample - (for [[idx color] (map-indexed vector (take 7 (reverse recent-colors))) ] - [:& cb/color-bullet {:key (str "color-" idx) - :color color}])]] - ]] + (str/format " (%s)" (count file-typographies)))]]]] [:div.color-palette-actions {:on-click #(swap! state assoc :show-menu true)} @@ -136,7 +124,7 @@ [:span.left-arrow {:on-click on-left-arrow-click} i/arrow-slide] [:div.color-palette-content {:ref container :on-wheel on-wheel} - [:div.color-palette-inside {:style {:position "relative"}} + [:div.color-palette-inside (for [[idx item] (map-indexed vector current-typographies)] [:& typography-item {:key idx @@ -145,9 +133,7 @@ :selected-ids selected-ids :typography item}])]] - [:span.right-arrow {:on-click on-right-arrow-click} i/arrow-slide]]) - - ) + [:span.right-arrow {:on-click on-right-arrow-click} i/arrow-slide]])) (def local-data (l/derived #(select-keys % [:editors]) refs/workspace-local =)) diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index 6a233f7b7a..35e8f44b12 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -367,7 +367,8 @@ [:* [:& rules/rules {:zoom zoom - :vbox vbox}] + :vbox vbox + :selected-shapes selected-shapes}] [:& guides/viewport-guides {:zoom zoom diff --git a/frontend/src/app/main/ui/workspace/viewport/rules.cljs b/frontend/src/app/main/ui/workspace/viewport/rules.cljs index da40d316f3..fa533c1952 100644 --- a/frontend/src/app/main/ui/workspace/viewport/rules.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/rules.cljs @@ -8,7 +8,9 @@ (:require [app.common.colors :as colors] [app.common.data :as d] + [app.common.geom.shapes :as gsh] [app.common.math :as mth] + [app.main.ui.hooks :as hooks] [app.util.object :as obj] [rumext.alpha :as mf])) @@ -16,6 +18,11 @@ (def rules-size 4) (def rules-width 1) +(def rule-area-size 22) +(def rule-area-half-size (/ rule-area-size 2)) + +(def rules-background "var(--color-gray-50)") + ;; ---------------- ;; RULES ;; ---------------- @@ -59,12 +66,12 @@ (let [x (:x vbox) y (:y vbox) width (:width vbox) - height (/ 22 zoom)] + height (/ rule-area-size zoom)] {:x x :y y :width width :height height}) (let [x (:x vbox) - y (+ (:y vbox) (/ 22 zoom)) - width (/ 22 zoom) + y (+ (:y vbox) (/ rule-area-size zoom)) + width (/ rule-area-size zoom) height (- (:height vbox) (/ 21 zoom))] {:x x :y y :width width :height height}))) @@ -107,7 +114,7 @@ [:* (let [{:keys [x y width height]} (get-background-area vbox zoom axis)] - [:rect {:x x :y y :width width :height height :style {:fill "#303236"}}]) + [:rect {:x x :y y :width width :height height :style {:fill rules-background}}]) [:g.rules {:clipPath (str "url(#" clip-id ")")} @@ -147,13 +154,118 @@ :style {:stroke colors/gray-30 :stroke-width rules-width}}]])))]])) +(def selection-area-color "var(--color-primary)") +(def selection-area-opacity 0.3) +(def over-number-size 50) +(def over-number-opacity 0.7) + +(mf/defc selection-area + [{:keys [vbox zoom selection-rect]}] + [:g.selection-area + [:g + [:rect {:x (:x selection-rect) + :y (:y vbox) + :width (:width selection-rect) + :height (/ rule-area-size zoom) + :style {:fill selection-area-color + :fill-opacity selection-area-opacity}}] + + [:rect {:x (- (:x selection-rect) (/ over-number-size zoom)) + :y (:y vbox) + :width (/ over-number-size zoom) + :height (/ rule-area-size zoom) + :style {:fill rules-background + :fill-opacity over-number-opacity}}] + + [:text {:x (- (:x1 selection-rect) (/ 4 zoom)) + :y (+ (:y vbox) (/ 12 zoom)) + :text-anchor "end" + :dominant-baseline "middle" + :style {:font-size (/ 13 zoom) + :font-family "sourcesanspro" + :fill selection-area-color}} + (str (mth/round (:x1 selection-rect)))] + + [:rect {:x (:x2 selection-rect) + :y (:y vbox) + :width (/ over-number-size zoom) + :height (/ rule-area-size zoom) + :style {:fill rules-background + :fill-opacity over-number-opacity}}] + + [:text {:x (+ (:x2 selection-rect) (/ 4 zoom)) + :y (+ (:y vbox) (/ 12 zoom)) + :text-anchor "start" + :dominant-baseline "middle" + :style {:font-size (/ 13 zoom) + :font-family "sourcesanspro" + :fill selection-area-color}} + (str (mth/round (:x2 selection-rect)))]] + + (let [center-x (+ (:x vbox) (/ rule-area-half-size zoom)) + center-y (- (+ (:y selection-rect) (/ (:height selection-rect) 2)) (/ rule-area-half-size zoom))] + + [:g {:transform (str "rotate(-90 " center-x "," center-y ")")} + [:rect {:x (- center-x (/ (:height selection-rect) 2) (/ rule-area-half-size zoom)) + :y (- center-y (/ rule-area-half-size zoom)) + :width (:height selection-rect) + :height (/ rule-area-size zoom) + :style {:fill selection-area-color + :fill-opacity selection-area-opacity}}] + + [:rect {:x (- center-x (/ (:height selection-rect) 2) (/ rule-area-half-size zoom) (/ over-number-size zoom)) + :y (- center-y (/ rule-area-half-size zoom)) + :width (/ over-number-size zoom) + :height (/ rule-area-size zoom) + :style {:fill rules-background + :fill-opacity over-number-opacity}}] + + [:rect {:x (+ (- center-x (/ (:height selection-rect) 2) (/ rule-area-half-size zoom) ) (:height selection-rect)) + :y (- center-y (/ rule-area-half-size zoom)) + :width (/ over-number-size zoom) + :height (/ rule-area-size zoom) + :style {:fill rules-background + :fill-opacity over-number-opacity}}] + + [:text {:x (- center-x (/ (:height selection-rect) 2) (/ 15 zoom)) + :y center-y + :text-anchor "end" + :dominant-baseline "middle" + :style {:font-size (/ 13 zoom) + :font-family "sourcesanspro" + :fill selection-area-color}} + (str (mth/round (:y2 selection-rect)))] + + [:text {:x (+ center-x (/ (:height selection-rect) 2) ) + :y center-y + :text-anchor "start" + :dominant-baseline "middle" + :style {:font-size (/ 13 zoom) + :font-family "sourcesanspro" + :fill selection-area-color}} + (str (mth/round (:y1 selection-rect)))]])]) + (mf/defc rules {::mf/wrap-props false - ::mf/wrap [mf/memo]} + ::mf/wrap [#(mf/memo' % (mf/check-props ["zoom" "vbox" "selected-shapes"]))]} [props] - (let [zoom (obj/get props "zoom") - vbox (obj/get props "vbox")] + (let [zoom (obj/get props "zoom") + vbox (obj/get props "vbox") + selected-shapes (-> (obj/get props "selected-shapes") + (hooks/use-equal-memo)) + + selection-rect + (mf/use-memo + (mf/deps selected-shapes) + #(when (d/not-empty? selected-shapes) + (gsh/selection-rect selected-shapes)))] + (when (some? vbox) [:g.rules {:pointer-events "none"} [:& rules-axis {:zoom zoom :vbox vbox :axis :x}] - [:& rules-axis {:zoom zoom :vbox vbox :axis :y}]]))) + [:& rules-axis {:zoom zoom :vbox vbox :axis :y}] + + (when (some? selection-rect) + [:& selection-area {:zoom zoom + :vbox vbox + :selection-rect selection-rect}])]))) From 779f685f726a872428a87c32961636a0e9727ea0 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 3 Feb 2022 11:08:37 +0100 Subject: [PATCH 061/154] :sparkles: Update strings for the new tabs --- .../app/main/ui/workspace/colorpalette.cljs | 3 +- .../src/app/main/ui/workspace/sidebar.cljs | 5 +-- .../main/ui/workspace/sidebar/sitemap.cljs | 4 +-- .../main/ui/workspace/viewport/guides.cljs | 13 ++++--- .../app/main/ui/workspace/viewport/rules.cljs | 34 +++++++++---------- frontend/translations/ca.po | 4 +-- frontend/translations/de.po | 4 +-- frontend/translations/el.po | 4 +-- frontend/translations/en.po | 4 +-- frontend/translations/es.po | 4 +-- frontend/translations/fr.po | 4 +-- frontend/translations/he.po | 4 +-- frontend/translations/pt_BR.po | 2 +- frontend/translations/ro.po | 4 +-- frontend/translations/tr.po | 4 +-- frontend/translations/zh_CN.po | 4 +-- 16 files changed, 52 insertions(+), 49 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/colorpalette.cljs b/frontend/src/app/main/ui/workspace/colorpalette.cljs index 1818909079..86b79e0f44 100644 --- a/frontend/src/app/main/ui/workspace/colorpalette.cljs +++ b/frontend/src/app/main/ui/workspace/colorpalette.cljs @@ -156,8 +156,7 @@ [:div.color-sample (for [[idx color] (map-indexed vector (take 7 (reverse recent-colors))) ] [:& cb/color-bullet {:key (str "color-" idx) - :color color}])]] - ]] + :color color}])]]]] [:div.color-palette-actions {:on-click #(swap! state assoc :show-menu true)} diff --git a/frontend/src/app/main/ui/workspace/sidebar.cljs b/frontend/src/app/main/ui/workspace/sidebar.cljs index 06d3b986c6..6173862014 100644 --- a/frontend/src/app/main/ui/workspace/sidebar.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar.cljs @@ -19,6 +19,7 @@ [app.main.ui.workspace.sidebar.options :refer [options-toolbox]] [app.main.ui.workspace.sidebar.sitemap :refer [sitemap]] [app.util.dom :as dom] + [app.util.i18n :refer [tr]] [app.util.object :as obj] [rumext.alpha :as mf])) @@ -54,12 +55,12 @@ [:& tab-container {:on-change-tab #(st/emit! (dw/go-to-layout %)) :selected section} - [:& tab-element {:id :layers :title "Layers"} + [:& tab-element {:id :layers :title (tr "workspace.sidebar.layers")} [:div.layers-tab [:& sitemap {:layout layout}] [:& layers-toolbox]]] - [:& tab-element {:id :assets :title "Library"} + [:& tab-element {:id :assets :title (tr "workspace.toolbar.assets")} [:& assets-toolbox]]]]])) ;; --- Right Sidebar (Component) diff --git a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs index cbc66fdc73..56ed2bf760 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs @@ -225,6 +225,4 @@ [:div.resize-area {:on-pointer-down on-pointer-down :on-lost-pointer-capture on-lost-pointer-capture - :on-mouse-move on-mouse-move}] - - ])) + :on-mouse-move on-mouse-move}]])) diff --git a/frontend/src/app/main/ui/workspace/viewport/guides.cljs b/frontend/src/app/main/ui/workspace/viewport/guides.cljs index 03b7a3bdbb..2a179628c7 100644 --- a/frontend/src/app/main/ui/workspace/viewport/guides.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/guides.cljs @@ -29,6 +29,11 @@ (def guide-pill-corner-radius 4) (def guide-active-area 16) +(def guide-creation-margin-left 8) +(def guide-creation-margin-top 28) +(def guide-creation-width 16) +(def guide-creation-height 24) + (defn use-guide "Hooks to support drag/drop for existing guides and new guides" [on-guide-change get-hover-frame zoom {:keys [position axis frame-id]}] @@ -220,15 +225,15 @@ (defn guide-creation-area [vbox zoom axis] (if (= axis :x) - {:x (+ (:x vbox) (/ 8 zoom)) + {:x (+ (:x vbox) (/ guide-creation-margin-left zoom)) :y (:y vbox) - :width (/ 16 zoom) + :width (/ guide-creation-width zoom) :height (:height vbox)} - {:x (+ (:x vbox) (+ 28 zoom)) + {:x (+ (:x vbox) (+ guide-creation-margin-top zoom)) :y (:y vbox) :width (:width vbox) - :height (/ 24 zoom)})) + :height (/ guide-creation-height zoom)})) (defn is-guide-inside-frame? [guide frame] diff --git a/frontend/src/app/main/ui/workspace/viewport/rules.cljs b/frontend/src/app/main/ui/workspace/viewport/rules.cljs index fa533c1952..eac0324035 100644 --- a/frontend/src/app/main/ui/workspace/viewport/rules.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/rules.cljs @@ -17,11 +17,16 @@ (def rules-pos 15) (def rules-size 4) (def rules-width 1) - (def rule-area-size 22) (def rule-area-half-size (/ rule-area-size 2)) - (def rules-background "var(--color-gray-50)") +(def selection-area-color "var(--color-primary)") +(def selection-area-opacity 0.3) +(def over-number-size 50) +(def over-number-opacity 0.7) + +(def font-size 13) +(def font-family "sourcesanspro") ;; ---------------- ;; RULES @@ -141,8 +146,8 @@ :text-anchor "middle" :dominant-baseline "middle" :transform (when (= axis :y) (str "rotate(-90 " text-x "," text-y ")")) - :style {:font-size (/ 13 zoom) - :font-family "sourcesanspro" + :style {:font-size (/ font-size zoom) + :font-family font-family :fill colors/gray-30}} (str (mth/round step-val))] @@ -154,11 +159,6 @@ :style {:stroke colors/gray-30 :stroke-width rules-width}}]])))]])) -(def selection-area-color "var(--color-primary)") -(def selection-area-opacity 0.3) -(def over-number-size 50) -(def over-number-opacity 0.7) - (mf/defc selection-area [{:keys [vbox zoom selection-rect]}] [:g.selection-area @@ -181,8 +181,8 @@ :y (+ (:y vbox) (/ 12 zoom)) :text-anchor "end" :dominant-baseline "middle" - :style {:font-size (/ 13 zoom) - :font-family "sourcesanspro" + :style {:font-size (/ font-size zoom) + :font-family font-family :fill selection-area-color}} (str (mth/round (:x1 selection-rect)))] @@ -197,8 +197,8 @@ :y (+ (:y vbox) (/ 12 zoom)) :text-anchor "start" :dominant-baseline "middle" - :style {:font-size (/ 13 zoom) - :font-family "sourcesanspro" + :style {:font-size (/ font-size zoom) + :font-family font-family :fill selection-area-color}} (str (mth/round (:x2 selection-rect)))]] @@ -231,8 +231,8 @@ :y center-y :text-anchor "end" :dominant-baseline "middle" - :style {:font-size (/ 13 zoom) - :font-family "sourcesanspro" + :style {:font-size (/ font-size zoom) + :font-family font-family :fill selection-area-color}} (str (mth/round (:y2 selection-rect)))] @@ -240,8 +240,8 @@ :y center-y :text-anchor "start" :dominant-baseline "middle" - :style {:font-size (/ 13 zoom) - :font-family "sourcesanspro" + :style {:font-size (/ font-size zoom) + :font-family font-family :fill selection-area-color}} (str (mth/round (:y1 selection-rect)))]])]) diff --git a/frontend/translations/ca.po b/frontend/translations/ca.po index af16177e50..9976f5e048 100644 --- a/frontend/translations/ca.po +++ b/frontend/translations/ca.po @@ -3127,7 +3127,7 @@ msgstr "Historial (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" -msgstr "Capes (%s)" +msgstr "Capes" #: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/handoff/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" @@ -3143,7 +3143,7 @@ msgstr "Mapa del lloc" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" -msgstr "Recursos (%s)" +msgstr "Recursos" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" diff --git a/frontend/translations/de.po b/frontend/translations/de.po index f9389599f6..beafaf1319 100644 --- a/frontend/translations/de.po +++ b/frontend/translations/de.po @@ -3032,7 +3032,7 @@ msgstr "Verlauf (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" -msgstr "Ebenen (%s)" +msgstr "Ebenen" #: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/handoff/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" @@ -3048,7 +3048,7 @@ msgstr "Sitemap" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" -msgstr "Assets (%s)" +msgstr "Assets" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" diff --git a/frontend/translations/el.po b/frontend/translations/el.po index 8ad56d4dba..f3100b1c49 100644 --- a/frontend/translations/el.po +++ b/frontend/translations/el.po @@ -2163,7 +2163,7 @@ msgstr "Ιστορικό (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" -msgstr "στρώσεις (%s)" +msgstr "στρώσεις" #: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/handoff/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" @@ -2179,7 +2179,7 @@ msgstr "Χάρτης ιστοτόπου" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" -msgstr "Στοιχεία (%s)" +msgstr "Στοιχεία" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 7d62a82447..7dbf326b7e 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -3244,7 +3244,7 @@ msgstr "History (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" -msgstr "Layers (%s)" +msgstr "Layers" #: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/handoff/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" @@ -3260,7 +3260,7 @@ msgstr "Sitemap" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" -msgstr "Assets (%s)" +msgstr "Assets" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 512bae5487..ba784e4056 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -3257,7 +3257,7 @@ msgstr "Historial (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" -msgstr "Capas (%s)" +msgstr "Capas" #: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/handoff/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" @@ -3273,7 +3273,7 @@ msgstr "Mapa del sitio" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" -msgstr "Recursos (%s)" +msgstr "Recursos" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" diff --git a/frontend/translations/fr.po b/frontend/translations/fr.po index 70f85c1fe9..eb704a5ac9 100644 --- a/frontend/translations/fr.po +++ b/frontend/translations/fr.po @@ -2535,7 +2535,7 @@ msgstr "Historique (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" -msgstr "Calques (%s)" +msgstr "Calques" #: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/handoff/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" @@ -2551,7 +2551,7 @@ msgstr "Plan du site" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" -msgstr "Ressources (%s)" +msgstr "Ressources" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" diff --git a/frontend/translations/he.po b/frontend/translations/he.po index 01956021b7..eaa620b490 100644 --- a/frontend/translations/he.po +++ b/frontend/translations/he.po @@ -3078,7 +3078,7 @@ msgstr "היסטוריה (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" -msgstr "שכבות (%s)" +msgstr "שכבות" #: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/handoff/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" @@ -3094,7 +3094,7 @@ msgstr "מפת אתר" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" -msgstr "משאבים (%s)" +msgstr "משאבים" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" diff --git a/frontend/translations/pt_BR.po b/frontend/translations/pt_BR.po index cfdf4e3207..cd0442519e 100644 --- a/frontend/translations/pt_BR.po +++ b/frontend/translations/pt_BR.po @@ -1844,7 +1844,7 @@ msgstr "Histórico (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" -msgstr "Camadas (%s)" +msgstr "Camadas" #: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/handoff/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" diff --git a/frontend/translations/ro.po b/frontend/translations/ro.po index a16acbce51..26c1f7e93e 100644 --- a/frontend/translations/ro.po +++ b/frontend/translations/ro.po @@ -2417,7 +2417,7 @@ msgstr "Istoric (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" -msgstr "Layere (%s)" +msgstr "Layere" #: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/handoff/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" @@ -2433,7 +2433,7 @@ msgstr "Harta site-ului" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" -msgstr "Obiecte (%s)" +msgstr "Obiecte" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" diff --git a/frontend/translations/tr.po b/frontend/translations/tr.po index 523f8cbd30..ff4cb091fd 100644 --- a/frontend/translations/tr.po +++ b/frontend/translations/tr.po @@ -3112,7 +3112,7 @@ msgstr "Geçmiş (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" -msgstr "Katmanlar (%s)" +msgstr "Katmanlar" #: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/handoff/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" @@ -3128,7 +3128,7 @@ msgstr "Site haritası" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" -msgstr "Varlıklar(%s)" +msgstr "Varlıklar" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" diff --git a/frontend/translations/zh_CN.po b/frontend/translations/zh_CN.po index c01314468d..43cfecabd2 100644 --- a/frontend/translations/zh_CN.po +++ b/frontend/translations/zh_CN.po @@ -2527,7 +2527,7 @@ msgstr "历史(%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" -msgstr "图层(%s)" +msgstr "图层" #: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/handoff/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" @@ -2543,7 +2543,7 @@ msgstr "站点地图" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" -msgstr "素材(%s)" +msgstr "素材" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" From 03052ddd28a66915e2714f8ca735a4592cdc79af Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 3 Feb 2022 11:15:50 +0100 Subject: [PATCH 062/154] :sparkles: Fixed hover on sidebar --- frontend/resources/styles/main/partials/left-toolbar.scss | 3 +++ .../styles/main/partials/sidebar-document-history.scss | 3 +++ 2 files changed, 6 insertions(+) diff --git a/frontend/resources/styles/main/partials/left-toolbar.scss b/frontend/resources/styles/main/partials/left-toolbar.scss index 29ba7bc9a5..1c787bd96b 100644 --- a/frontend/resources/styles/main/partials/left-toolbar.scss +++ b/frontend/resources/styles/main/partials/left-toolbar.scss @@ -35,6 +35,7 @@ justify-content: center; position: relative; width: 48px; + color: $color-gray-20; svg { fill: $color-gray-20; @@ -44,6 +45,7 @@ &:hover { background-color: $color-primary; + color: $color-gray-50; svg { fill: $color-gray-50; @@ -52,6 +54,7 @@ &.selected { background-color: $color-gray-60; + color: $color-primary; svg { fill: $color-primary; diff --git a/frontend/resources/styles/main/partials/sidebar-document-history.scss b/frontend/resources/styles/main/partials/sidebar-document-history.scss index 93ea710f1a..72553e3367 100644 --- a/frontend/resources/styles/main/partials/sidebar-document-history.scss +++ b/frontend/resources/styles/main/partials/sidebar-document-history.scss @@ -40,6 +40,9 @@ font-size: $fs12; color: $color-gray-20; fill: $color-gray-20; + height: 100%; + overflow-x: hidden; + overflow-y: auto; } .history-entry { From 9789b7081a8f3a05b5910500e0aa8ea69336b6d7 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 3 Feb 2022 14:15:23 +0100 Subject: [PATCH 063/154] :sparkles: Post-review changes --- frontend/src/app/main/refs.cljs | 8 ++- frontend/src/app/main/ui/hooks/resize.cljs | 68 ++++++++++--------- .../app/main/ui/workspace/sidebar/assets.cljs | 29 ++++---- .../app/main/ui/workspace/textpalette.cljs | 29 ++++---- 4 files changed, 71 insertions(+), 63 deletions(-) diff --git a/frontend/src/app/main/refs.cljs b/frontend/src/app/main/refs.cljs index 15fdbb9367..b24e1af90d 100644 --- a/frontend/src/app/main/refs.cljs +++ b/frontend/src/app/main/refs.cljs @@ -124,6 +124,11 @@ :move-overlay-index]) workspace-local =)) +(def typography-data + (l/derived #(select-keys % [:rename-typography + :edit-typography]) + workspace-local =)) + (def local-displacement (l/derived #(select-keys % [:modifiers :selected]) workspace-local =)) @@ -158,9 +163,6 @@ (def current-hover-ids (l/derived :hover-ids context-menu)) -(def editors - (l/derived :editors workspace-local)) - (def selected-assets (l/derived :selected-assets workspace-local)) diff --git a/frontend/src/app/main/ui/hooks/resize.cljs b/frontend/src/app/main/ui/hooks/resize.cljs index b4ba927be0..742066c822 100644 --- a/frontend/src/app/main/ui/hooks/resize.cljs +++ b/frontend/src/app/main/ui/hooks/resize.cljs @@ -32,34 +32,38 @@ start-ref (mf/use-ref nil) on-pointer-down - (fn [event] - (dom/capture-pointer event) - (mf/set-ref-val! start-size-ref @size-state) - (mf/set-ref-val! dragging-ref true) - (mf/set-ref-val! start-ref (dom/get-client-position event)) - (set! last-resize-type resize-type)) + (mf/use-callback + (mf/deps @size-state) + (fn [event] + (dom/capture-pointer event) + (mf/set-ref-val! start-size-ref @size-state) + (mf/set-ref-val! dragging-ref true) + (mf/set-ref-val! start-ref (dom/get-client-position event)) + (set! last-resize-type resize-type))) on-lost-pointer-capture - (fn [event] - (dom/release-pointer event) - (mf/set-ref-val! start-size-ref nil) - (mf/set-ref-val! dragging-ref false) - (mf/set-ref-val! start-ref nil) - (set! last-resize-type nil)) + (mf/use-callback + (fn [event] + (dom/release-pointer event) + (mf/set-ref-val! start-size-ref nil) + (mf/set-ref-val! dragging-ref false) + (mf/set-ref-val! start-ref nil) + (set! last-resize-type nil))) on-mouse-move - (fn [event] - (when (mf/ref-val dragging-ref) - (let [start (mf/ref-val start-ref) - pos (dom/get-client-position event) - delta (-> (gpt/to-vec start pos) - (cond-> negate? gpt/negate) - (get axis)) - start-size (mf/ref-val start-size-ref) - new-size (-> (+ start-size delta) (max min-val) (min max-val))] - - (reset! size-state new-size) - (swap! storage assoc-in [::saved-resize current-file-id key] new-size))))] + (mf/use-callback + (mf/deps min-val max-val) + (fn [event] + (when (mf/ref-val dragging-ref) + (let [start (mf/ref-val start-ref) + pos (dom/get-client-position event) + delta (-> (gpt/to-vec start pos) + (cond-> negate? gpt/negate) + (get axis)) + start-size (mf/ref-val start-size-ref) + new-size (-> (+ start-size delta) (max min-val) (min max-val))] + (reset! size-state new-size) + (swap! storage assoc-in [::saved-resize current-file-id key] new-size)))))] {:on-pointer-down on-pointer-down :on-lost-pointer-capture on-lost-pointer-capture :on-mouse-move on-mouse-move @@ -68,16 +72,18 @@ (defn use-resize-observer [callback] + (assert (some? callback)) (let [prev-val-ref (mf/use-ref nil) current-observer-ref (mf/use-ref nil) + ;; We use the ref as a callback when the dom node is ready (or change) node-ref (mf/use-callback (mf/deps callback) - (fn [node] - (let [current-observer (mf/ref-val current-observer-ref) - prev-val (mf/ref-val prev-val-ref)] + (fn [^js node] + (let [^js current-observer (mf/ref-val current-observer-ref) + ^js prev-val (mf/ref-val prev-val-ref)] (when (and (not= prev-val node) (some? current-observer)) (log/debug :action "disconnect" :js/prev-val prev-val :js/node node) @@ -85,11 +91,8 @@ (mf/set-ref-val! current-observer-ref nil)) (when (and (not= prev-val node) (some? node)) - (let [observer - (js/ResizeObserver. - (fn [] - (let [size (dom/get-client-size node)] - (when callback (callback last-resize-type size)))))] + (let [^js observer + (js/ResizeObserver. #(callback last-resize-type (dom/get-client-size node)))] (mf/set-ref-val! current-observer-ref observer) (log/debug :action "observe" :js/node node :js/observer observer) (.observe observer node)))) @@ -97,6 +100,7 @@ (mf/use-effect (fn [] + ;; On dismount we need to disconnect the current observer (fn [] (let [current-observer (mf/ref-val current-observer-ref)] (when (some? current-observer) diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs index 13b6506961..ca278502c9 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs @@ -1087,7 +1087,7 @@ ;; ---- Typography box ---- (mf/defc typographies-group - [{:keys [file-id prefix groups open-groups file local? selected-typographies local + [{:keys [file-id prefix groups open-groups file local? selected-typographies local-data editing-id on-asset-click handle-change apply-typography on-rename-group on-ungroup on-context-menu]}] (let [group-open? (get open-groups prefix true)] @@ -1115,7 +1115,7 @@ :on-click #(on-asset-click % (:id typography) (partial apply-typography typography)) :editing? (= editing-id (:id typography)) - :focus-name? (= (:rename-typography local) (:id typography))}])]) + :focus-name? (= (:rename-typography local-data) (:id typography))}])]) (for [[path-item content] groups] (when-not (empty? path-item) @@ -1127,7 +1127,7 @@ :local? local? :selected-typographies selected-typographies :editing-id editing-id - :local local + :local-data local-data :on-asset-click on-asset-click :handle-change handle-change :apply-typography apply-typography @@ -1141,11 +1141,9 @@ (let [state (mf/use-state {:detail-open? false :id nil}) + local-data (mf/deref refs/typography-data) menu-state (mf/use-state auto-pos-menu-state) - - local (deref refs/workspace-local) - - groups (group-assets typographies reverse-sort?) + groups (group-assets typographies reverse-sort?) selected-typographies (:typographies selected-assets) multi-typographies? (> (count selected-typographies) 1) @@ -1174,7 +1172,11 @@ {:typography-ref-file file-id :typography-ref-id (:id typography)} (dissoc typography :id :name))] - (run! #(st/emit! (dwt/update-text-attrs {:id % :editor (get-in local [:editors %]) :attrs attrs})) + (run! #(st/emit! + (dwt/update-text-attrs + {:id % + :editor (get @refs/workspace-editor-state %) + :attrs attrs})) ids))) create-group @@ -1273,14 +1275,15 @@ (dwl/sync-file file-id file-id) (dwu/commit-undo-transaction))))) - editing-id (or (:rename-typography local) (:edit-typography local))] + editing-id (or (:rename-typography local-data) + (:edit-typography local-data))] (mf/use-effect - (mf/deps local) + (mf/deps local-data) (fn [] - (when (:rename-typography local) + (when (:rename-typography local-data) (st/emit! #(update % :workspace-local dissoc :rename-typography))) - (when (:edit-typography local) + (when (:edit-typography local-data) (st/emit! #(update % :workspace-local dissoc :edit-typography))))) [:& asset-section {:file-id file-id @@ -1303,7 +1306,7 @@ :local? local? :selected-typographies selected-typographies :editing-id editing-id - :local local + :local-data local-data :on-asset-click (partial on-asset-click groups) :handle-change handle-change :apply-typography apply-typography diff --git a/frontend/src/app/main/ui/workspace/textpalette.cljs b/frontend/src/app/main/ui/workspace/textpalette.cljs index 72225aa20d..4d9ca61586 100644 --- a/frontend/src/app/main/ui/workspace/textpalette.cljs +++ b/frontend/src/app/main/ui/workspace/textpalette.cljs @@ -12,30 +12,35 @@ [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.components.dropdown :refer [dropdown]] + [app.main.ui.context :as ctx] [app.main.ui.hooks.resize :refer [use-resize-hook]] [app.main.ui.icons :as i] [app.util.dom :as dom] [app.util.i18n :refer [tr]] [cuerdas.core :as str] - [okulary.core :as l] [rumext.alpha :as mf])) (mf/defc typography-item - [{:keys [local file-id selected-ids typography name-only?]}] + [{:keys [file-id selected-ids typography name-only?]}] (let [font-data (f/get-font-data (:font-id typography)) font-variant-id (:font-variant-id typography) variant-data (->> font-data :variants (d/seek #(= (:id %) font-variant-id))) handle-click (mf/use-callback - (mf/deps local typography selected-ids) + (mf/deps typography selected-ids) (fn [] (let [attrs (merge {:typography-ref-file file-id :typography-ref-id (:id typography)} (dissoc typography :id :name))] - (->> selected-ids - (run! #(st/emit! (dwt/update-text-attrs {:id % :editor (get-in local [:editors %]) :attrs attrs})))))))] + + (run! #(st/emit! + (dwt/update-text-attrs + {:id % + :editor (get @refs/workspace-editor-state %) + :attrs attrs})) + selected-ids))))] [:div.typography-item {:on-click handle-click} [:div.typography-name @@ -49,7 +54,7 @@ [:div.typography-data (str (:font-size typography) "pt | " (:name variant-data))]])])) (mf/defc palette - [{:keys [local selected-ids current-file-id file-typographies shared-libs]}] + [{:keys [selected-ids current-file-id file-typographies shared-libs]}] (let [state (mf/use-state {:show-menu false}) selected (mf/use-state :file) @@ -129,25 +134,19 @@ [:& typography-item {:key idx :file-id file-id - :local local :selected-ids selected-ids :typography item}])]] [:span.right-arrow {:on-click on-right-arrow-click} i/arrow-slide]])) -(def local-data - (l/derived #(select-keys % [:editors]) refs/workspace-local =)) - (mf/defc textpalette {::mf/wrap [mf/memo]} [] - (let [local (mf/deref local-data) - selected-ids (mf/deref refs/selected-shapes) + (let [selected-ids (mf/deref refs/selected-shapes) file-typographies (mf/deref refs/workspace-file-typography) shared-libs (mf/deref refs/workspace-libraries) - current-file-id (mf/deref refs/current-file-id)] - [:& palette {:local local - :current-file-id current-file-id + current-file-id (mf/use-ctx ctx/current-file-id)] + [:& palette {:current-file-id current-file-id :selected-ids selected-ids :file-typographies file-typographies :shared-libs shared-libs}])) From 1e0dacfe9b308d043475b159ad500f53ec789202 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 2 Feb 2022 23:50:09 +0100 Subject: [PATCH 064/154] :sparkles: Add reusable helper for expound pretty printing --- backend/src/app/http/errors.clj | 20 ++++---------------- common/src/app/common/spec.cljc | 11 ++++++++++- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/backend/src/app/http/errors.clj b/backend/src/app/http/errors.clj index b49df8e462..052764b79a 100644 --- a/backend/src/app/http/errors.clj +++ b/backend/src/app/http/errors.clj @@ -9,11 +9,11 @@ (:require [app.common.exceptions :as ex] [app.common.logging :as l] + [app.common.spec :as us] [app.common.uuid :as uuid] [clojure.pprint] [clojure.spec.alpha :as s] - [cuerdas.core :as str] - [expound.alpha :as expound])) + [cuerdas.core :as str])) (defn- parse-client-ip [{:keys [headers] :as request}] @@ -41,9 +41,7 @@ :frontend-version (get headers "x-frontend-version" "unknown")}) (when (and data (::s/problems data)) - {:spec-explain (binding [s/*explain-out* expound/printer] - (with-out-str - (s/explain-out (update data ::s/problems #(take 10 %)))))})))) + {:spec-explain (us/pretty-explain data)})))) (defmulti handle-exception (fn [err & _rest] @@ -59,20 +57,10 @@ [err _] {:status 400 :body (ex-data err)}) -(defn- explain-spec-error-data - [data] - (when (and (::s/problems data) - (::s/value data) - (::s/spec data)) - (binding [s/*explain-out* expound/printer] - (with-out-str - (s/explain-out (update data ::s/problems #(take 10 %))))))) - - (defmethod handle-exception :validation [err _] (let [data (ex-data err) - explain (explain-spec-error-data data)] + explain (us/pretty-explain data)] {:status 400 :body (-> data (dissoc ::s/problems) diff --git a/common/src/app/common/spec.cljc b/common/src/app/common/spec.cljc index bf739c9600..15b0cd1e7b 100644 --- a/common/src/app/common/spec.cljc +++ b/common/src/app/common/spec.cljc @@ -18,7 +18,7 @@ [app.common.exceptions :as ex] [app.common.uuid :as uuid] [cuerdas.core :as str] - [expound.alpha])) + [expound.alpha :as expound])) (s/check-asserts true) @@ -268,3 +268,12 @@ (spec-assert* ~spec params# ~message mdata#) (apply origf# params#))))))) +(defn pretty-explain + ([data] (pretty-explain data nil)) + ([data {:keys [max-problems] :or {max-problems 10}}] + (when (and (::s/problems data) + (::s/value data) + (::s/spec data)) + (binding [s/*explain-out* expound/printer] + (with-out-str + (s/explain-out (update data ::s/problems #(take max-problems %)))))))) From 2a6ba79e9aecb47014cae46d1f715d6479233a31 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 2 Feb 2022 23:50:43 +0100 Subject: [PATCH 065/154] :sparkles: Ignore EOF errors on writting streamed response --- backend/src/app/http/middleware.clj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/backend/src/app/http/middleware.clj b/backend/src/app/http/middleware.clj index 3845fe8398..153ddc7277 100644 --- a/backend/src/app/http/middleware.clj +++ b/backend/src/app/http/middleware.clj @@ -90,6 +90,9 @@ (with-open [bos (buffered-output-stream output-stream buffer-size)] (let [tw (t/writer bos opts)] (t/write! tw data))) + (catch org.eclipse.jetty.io.EofException _cause + ;; Do nothing, EOF means client closes connection abruptly + nil) (catch Throwable cause (l/warn :hint "unexpected error on encoding response" :cause cause)))))) From cbb8d13570e9fbc702df7dcf68eede7b361bffa0 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 3 Feb 2022 12:57:49 +0100 Subject: [PATCH 066/154] :arrow_up: Update frontend npm dependencies --- frontend/package.json | 22 ++--- frontend/yarn.lock | 225 ++++++++++++++++++++++-------------------- 2 files changed, 130 insertions(+), 117 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 827e6a9463..49474b5807 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -24,8 +24,8 @@ "test-e2e-gui": "cypress open" }, "devDependencies": { - "autoprefixer": "^10.4.1", - "cypress": "^9.3.1", + "autoprefixer": "^10.4.2", + "cypress": "^9.4.1", "cypress-file-upload": "^5.0.8", "gettext-parser": "^4.2.0", "gulp": "4.0.2", @@ -34,37 +34,37 @@ "gulp-mustache": "^5.0.0", "gulp-postcss": "^9.0.0", "gulp-rename": "^2.0.0", - "gulp-sass": "^5.0.0", + "gulp-sass": "^5.1.0", "gulp-sourcemaps": "^3.0.0", "gulp-svg-sprite": "^1.5.0", "map-stream": "0.0.7", - "marked": "^4.0.8", + "marked": "^4.0.12", "mkdirp": "^1.0.4", "nodemon": "^2.0.15", "npm-run-all": "^4.1.5", - "postcss": "^8.4.5", + "postcss": "^8.4.6", "postcss-clean": "^1.2.2", "prettier": "^2.5.1", "rimraf": "^3.0.0", - "sass": "^1.45.1", + "sass": "^1.49.7", "shadow-cljs": "2.16.12" }, "dependencies": { - "@sentry/browser": "^6.16.1", - "@sentry/tracing": "^6.16.1", + "@sentry/browser": "^6.17.4", + "@sentry/tracing": "^6.17.4", "date-fns": "^2.28.0", "draft-js": "^0.11.7", - "highlight.js": "^11.3.1", + "highlight.js": "^11.4.0", "js-beautify": "^1.14.0", "jszip": "^3.6.0", - "luxon": "^2.2.0", + "luxon": "^2.3.0", "mousetrap": "^1.6.5", "opentype.js": "^1.3.4", "randomcolor": "^0.6.2", "react": "~17.0.2", "react-dom": "~17.0.2", "react-virtualized": "^9.22.3", - "rxjs": "~7.4.0", + "rxjs": "~7.5.2", "sax": "^1.2.4", "source-map-support": "^0.5.21", "tdigest": "^0.1.1", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 9ad2d6ad5f..16c147311f 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -77,67 +77,67 @@ normalize-path "^2.0.1" through2 "^2.0.3" -"@sentry/browser@^6.16.1": - version "6.16.1" - resolved "https://registry.npmjs.org/@sentry/browser/-/browser-6.16.1.tgz" - integrity sha512-F2I5RL7RTLQF9CccMrqt73GRdK3FdqaChED3RulGQX5lH6U3exHGFxwyZxSrY4x6FedfBFYlfXWWCJXpLnFkow== +"@sentry/browser@^6.17.4": + version "6.17.4" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.17.4.tgz#c2711a12e89dab4abecd9a04716c07c86712fa5a" + integrity sha512-ezLZ/FP2ZJPPemzGKMiu8RCHvuRYfDYXbkQb9KhUbpylJokL4GSRZHy8EYkcHugnvAiov7p8cdj7QgOZQPDAgw== dependencies: - "@sentry/core" "6.16.1" - "@sentry/types" "6.16.1" - "@sentry/utils" "6.16.1" + "@sentry/core" "6.17.4" + "@sentry/types" "6.17.4" + "@sentry/utils" "6.17.4" tslib "^1.9.3" -"@sentry/core@6.16.1": - version "6.16.1" - resolved "https://registry.npmjs.org/@sentry/core/-/core-6.16.1.tgz" - integrity sha512-UFI0264CPUc5cR1zJH+S2UPOANpm6dLJOnsvnIGTjsrwzR0h8Hdl6rC2R/GPq+WNbnipo9hkiIwDlqbqvIU5vw== +"@sentry/core@6.17.4": + version "6.17.4" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.17.4.tgz#ac23c2a9896b27fe4c532c2013c58c01f39adcdb" + integrity sha512-7QFgw+I9YK/X1Gie0c7phwT5pHMow66UCXHzDzHR2aK/0X3Lhn8OWlcGjIt5zmiBK/LHwNfQBNMskbktbYHgdA== dependencies: - "@sentry/hub" "6.16.1" - "@sentry/minimal" "6.16.1" - "@sentry/types" "6.16.1" - "@sentry/utils" "6.16.1" + "@sentry/hub" "6.17.4" + "@sentry/minimal" "6.17.4" + "@sentry/types" "6.17.4" + "@sentry/utils" "6.17.4" tslib "^1.9.3" -"@sentry/hub@6.16.1": - version "6.16.1" - resolved "https://registry.npmjs.org/@sentry/hub/-/hub-6.16.1.tgz" - integrity sha512-4PGtg6AfpqMkreTpL7ymDeQ/U1uXv03bKUuFdtsSTn/FRf9TLS4JB0KuTZCxfp1IRgAA+iFg6B784dDkT8R9eg== +"@sentry/hub@6.17.4": + version "6.17.4" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.17.4.tgz#af4f5f745340d676be023dc3038690b557111f4d" + integrity sha512-6+EvPcrPCwUmayeieIpm1ZrRNWriqMHWZFyw+MzunFLgG8IH8G45cJU1zNnTY9Jwwg4sFIS9xrHy3AOkctnIGw== dependencies: - "@sentry/types" "6.16.1" - "@sentry/utils" "6.16.1" + "@sentry/types" "6.17.4" + "@sentry/utils" "6.17.4" tslib "^1.9.3" -"@sentry/minimal@6.16.1": - version "6.16.1" - resolved "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.16.1.tgz" - integrity sha512-dq+mI1EQIvUM+zJtGCVgH3/B3Sbx4hKlGf2Usovm9KoqWYA+QpfVBholYDe/H2RXgO7LFEefDLvOdHDkqeJoyA== +"@sentry/minimal@6.17.4": + version "6.17.4" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.17.4.tgz#6a35dbdb22a1c532d1eb7b4c0d9223618cb67ccd" + integrity sha512-p1A8UTtRt7bhV4ygu7yDNCannFr9E9dmqgeZWC7HrrTfygcnhNRFvTXTj92wEb0bFKuZr67wPSKnoXlkqkGxsw== dependencies: - "@sentry/hub" "6.16.1" - "@sentry/types" "6.16.1" + "@sentry/hub" "6.17.4" + "@sentry/types" "6.17.4" tslib "^1.9.3" -"@sentry/tracing@^6.16.1": - version "6.16.1" - resolved "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.16.1.tgz" - integrity sha512-MPSbqXX59P+OEeST+U2V/8Hu/8QjpTUxTNeNyTHWIbbchdcMMjDbXTS3etCgajZR6Ro+DHElOz5cdSxH6IBGlA== +"@sentry/tracing@^6.17.4": + version "6.17.4" + resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.17.4.tgz#17c2ab50d9e4cdf727b9b25e7f91ae3a9ea19437" + integrity sha512-UV6wWH/fqndts0k0cptsNtzD0h8KXqHInJSCGqlWDlygFRO16jwMKv0wfXgqsgc3cBGDlsl8C4l6COSwz9ROdg== dependencies: - "@sentry/hub" "6.16.1" - "@sentry/minimal" "6.16.1" - "@sentry/types" "6.16.1" - "@sentry/utils" "6.16.1" + "@sentry/hub" "6.17.4" + "@sentry/minimal" "6.17.4" + "@sentry/types" "6.17.4" + "@sentry/utils" "6.17.4" tslib "^1.9.3" -"@sentry/types@6.16.1": - version "6.16.1" - resolved "https://registry.npmjs.org/@sentry/types/-/types-6.16.1.tgz" - integrity sha512-Wh354g30UsJ5kYJbercektGX4ZMc9MHU++1NjeN2bTMnbofEcpUDWIiKeulZEY65IC1iU+1zRQQgtYO+/hgCUQ== +"@sentry/types@6.17.4": + version "6.17.4" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.17.4.tgz#36b78d7c4a6de19b2bbc631bb34893bcad30c0ba" + integrity sha512-RUyiXCKf61k2GIMP7FQX0naoSew4zLxe+UrtbjwVcWU4AFPZfH7tLNtTpVE85zAKbxsaiq3OD2FPtTZarHcwxQ== -"@sentry/utils@6.16.1": - version "6.16.1" - resolved "https://registry.npmjs.org/@sentry/utils/-/utils-6.16.1.tgz" - integrity sha512-7ngq/i4R8JZitJo9Sl8PDnjSbDehOxgr1vsoMmerIsyRZ651C/8B+jVkMhaAPgSdyJ0AlE3O7DKKTP1FXFw9qw== +"@sentry/utils@6.17.4": + version "6.17.4" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.17.4.tgz#4f109629d2e7f16c5595b4367445ef47bfe96b61" + integrity sha512-+ENzZbrlVL1JJ+FoK2EOS27nbA/yToeaJPFlyVOnbthUxVyN3TTi9Uzn9F05fIE/2BTkOEk89wPtgcHafgrD6A== dependencies: - "@sentry/types" "6.16.1" + "@sentry/types" "6.17.4" tslib "^1.9.3" "@sindresorhus/is@^0.14.0": @@ -496,13 +496,13 @@ atob@^2.1.2: resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^10.4.1: - version "10.4.1" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.1.tgz" - integrity sha512-B3ZEG7wtzXDRCEFsan7HmR2AeNsxdJB0+sEC0Hc5/c2NbhJqPwuZm+tn233GBVw82L+6CtD6IPSfVruwKjfV3A== +autoprefixer@^10.4.2: + version "10.4.2" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.2.tgz#25e1df09a31a9fba5c40b578936b90d35c9d4d3b" + integrity sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ== dependencies: browserslist "^4.19.1" - caniuse-lite "^1.0.30001294" + caniuse-lite "^1.0.30001297" fraction.js "^4.1.2" normalize-range "^0.1.2" picocolors "^1.0.0" @@ -840,11 +840,16 @@ camelcase@^6.2.0: resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== -caniuse-lite@^1.0.30001286, caniuse-lite@^1.0.30001294: +caniuse-lite@^1.0.30001286: version "1.0.30001294" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001294.tgz" integrity sha512-LiMlrs1nSKZ8qkNhpUf5KD0Al1KCBE3zaT7OLOwEkagXMEDij98SiOovn9wxVGQpklk9vVC/pUSqgYmkmKOS8g== +caniuse-lite@^1.0.30001297: + version "1.0.30001306" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001306.tgz#582592afe243bad2223081b8abab07bf289cc699" + integrity sha512-Wd1OuggRzg1rbnM5hv1wXs2VkxJH/AA+LuudlIqvZiCvivF+wJJe2mgBZC8gPMgI7D76PP5CTx8Luvaqc1V6OQ== + caseless@~0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" @@ -867,14 +872,6 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz" - integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - check-more-types@^2.24.0: version "2.24.0" resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz" @@ -1417,10 +1414,10 @@ cypress-file-upload@^5.0.8: resolved "https://registry.npmjs.org/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz" integrity sha512-+8VzNabRk3zG6x8f8BWArF/xA/W0VK4IZNx3MV0jFWrJS/qKn8eHfa5nU73P9fOQAgwHFJx7zjg4lwOnljMO8g== -cypress@^9.3.1: - version "9.3.1" - resolved "https://registry.npmjs.org/cypress/-/cypress-9.3.1.tgz" - integrity sha512-BODdPesxX6bkVUnH8BVsV8I/jn57zQtO1FEOUTiuG2us3kslW7g0tcuwiny7CKCmJUZz8S/D587ppC+s58a+5Q== +cypress@^9.4.1: + version "9.4.1" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.4.1.tgz#1a4ba706435829c24b7edf350c2b059e05da9084" + integrity sha512-+JgMG9uT+QFx97JU9kOHE3jO3+0UdkQ9H1oCBiC7A74qme7Jkdy2sYDBCPjjGczutnWnGUTMRlwiNMP/Uq6LrQ== dependencies: "@cypress/request" "^2.88.10" "@cypress/xvfb" "^1.2.4" @@ -1459,10 +1456,10 @@ cypress@^9.3.1: pretty-bytes "^5.6.0" proxy-from-env "1.0.0" request-progress "^3.0.0" + semver "^7.3.2" supports-color "^8.1.1" tmp "~0.2.1" untildify "^4.0.0" - url "^0.11.0" yauzl "^2.10.0" d@1, d@^1.0.1: @@ -2582,17 +2579,16 @@ gulp-rename@^2.0.0: resolved "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz" integrity sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ== -gulp-sass@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.0.0.tgz" - integrity sha512-J0aH0/2N4+2szGCeut0ktGHK0Wg8L9uWivuigrl7xv+nhxozBQRAKLrhnDDaTa3FeUWYtgT8w4RlgdhRy5v16w== +gulp-sass@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/gulp-sass/-/gulp-sass-5.1.0.tgz#bb3d9094f39a260f62a8d0a6797b95ab826f9663" + integrity sha512-7VT0uaF+VZCmkNBglfe1b34bxn/AfcssquLKVDYnCDJ3xNBaW7cUuI3p3BQmoKcoKFrs9jdzUxyb+u+NGfL4OQ== dependencies: - chalk "^4.1.1" - lodash "^4.17.20" + lodash.clonedeep "^4.5.0" + picocolors "^1.0.0" plugin-error "^1.0.1" replace-ext "^2.0.0" - strip-ansi "^6.0.0" - transfob "^1.0.0" + strip-ansi "^6.0.1" vinyl-sourcemaps-apply "^0.2.1" gulp-sourcemaps@^3.0.0: @@ -2751,10 +2747,10 @@ he@1.1.1: resolved "https://registry.npmjs.org/he/-/he-1.1.1.tgz" integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= -highlight.js@^11.3.1: - version "11.3.1" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-11.3.1.tgz" - integrity sha512-PUhCRnPjLtiLHZAQ5A/Dt5F8cWZeMyj9KRsACsWT+OD6OP0x6dp5OmT5jdx0JgEyPxPZZIPQpRN2TciUT7occw== +highlight.js@^11.4.0: + version "11.4.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.4.0.tgz#34ceadd49e1596ee5aba3d99346cdfd4845ee05a" + integrity sha512-nawlpCBCSASs7EdvZOYOYVkJpGmAOKMYZgZtUqSRqodZE0GRVcFKwo1RcpeOemqh9hyttTdd5wDBwHkuSyUfnA== hmac-drbg@^1.0.1: version "1.0.1" @@ -3639,6 +3635,11 @@ lodash._topath@^3.0.0: dependencies: lodash.isarray "^3.0.0" +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + lodash.isarguments@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz" @@ -3696,7 +3697,7 @@ lodash.pluck@^3.1.2: lodash.isarray "^3.0.0" lodash.map "^3.0.0" -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.20, lodash@^4.17.21: +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.21: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -3769,10 +3770,10 @@ lru-queue@^0.1.0: dependencies: es5-ext "~0.10.2" -luxon@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/luxon/-/luxon-2.2.0.tgz" - integrity sha512-LwmknessH4jVIseCsizUgveIHwlLv/RQZWC2uDSMfGJs7w8faPUi2JFxfyfMcTPrpNbChTem3Uz6IKRtn+LcIA== +luxon@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-2.3.0.tgz#bf16a7e642513c2a20a6230a6a41b0ab446d0045" + integrity sha512-gv6jZCV+gGIrVKhO90yrsn8qXPKD8HYZJtrUDSfEbow8Tkw84T9OnCyJhWvnJIaIF/tBuiAjZuQHUt1LddX2mg== make-dir@^3.0.0: version "3.1.0" @@ -3812,10 +3813,10 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -marked@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/marked/-/marked-4.0.8.tgz" - integrity sha512-dkpJMIlJpc833hbjjg8jraw1t51e/eKDoG8TFOgc5O0Z77zaYKigYekTDop5AplRoKFGIaoazhYEhGkMtU3IeA== +marked@^4.0.12: + version "4.0.12" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.12.tgz#2262a4e6fd1afd2f13557726238b69a48b982f7d" + integrity sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ== matchdep@^2.0.0: version "2.0.0" @@ -4039,10 +4040,10 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== -nanoid@^3.1.30: - version "3.1.30" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz" - integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== +nanoid@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c" + integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA== nanomatch@^1.2.9: version "1.2.13" @@ -4698,14 +4699,14 @@ postcss@^7.0.16: source-map "^0.6.1" supports-color "^6.1.0" -postcss@^8.4.5: - version "8.4.5" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz" - integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg== +postcss@^8.4.6: + version "8.4.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.6.tgz#c5ff3c3c457a23864f32cb45ac9b741498a09ae1" + integrity sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA== dependencies: - nanoid "^3.1.30" + nanoid "^3.2.0" picocolors "^1.0.0" - source-map-js "^1.0.1" + source-map-js "^1.0.2" prepend-http@^2.0.0: version "2.0.0" @@ -5213,13 +5214,20 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rxjs@^7.4.0, rxjs@~7.4.0: +rxjs@^7.4.0: version "7.4.0" resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz" integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== dependencies: tslib "~2.1.0" +rxjs@~7.5.2: + version "7.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.2.tgz#11e4a3a1dfad85dbf7fb6e33cbba17668497490b" + integrity sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w== + dependencies: + tslib "^2.1.0" + safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" @@ -5242,10 +5250,10 @@ safe-regex@^1.1.0: resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.45.1: - version "1.45.1" - resolved "https://registry.npmjs.org/sass/-/sass-1.45.1.tgz" - integrity sha512-pwPRiq29UR0o4X3fiQyCtrESldXvUQAAE0QmcJTpsI4kuHHcLzZ54M1oNBVIXybQv8QF2zfkpFcTxp8ta97dUA== +sass@^1.49.7: + version "1.49.7" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.7.tgz#22a86a50552b9b11f71404dfad1b9ff44c6b0c49" + integrity sha512-13dml55EMIR2rS4d/RDHHP0sXMY3+30e1TKsyXaSz3iLWVoDWEoboY8WzJd5JMnxrRHffKO3wq2mpJ0jxRJiEQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -5288,7 +5296,7 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.4: +semver@^7.3.2, semver@^7.3.4: version "7.3.5" resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -5497,11 +5505,16 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1: +"source-map-js@>=0.6.2 <2.0.0": version "1.0.1" resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz" integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" @@ -6032,11 +6045,6 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -transfob@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/transfob/-/transfob-1.0.0.tgz" - integrity sha1-x/wnpbVDCtSGJnrmZtkj90oKsyA= - triple-beam@^1.2.0, triple-beam@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz" @@ -6047,6 +6055,11 @@ tslib@^1.9.3: resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + tslib@~2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz" From 637d6a007622bef4a65c014566ddb5234f18a5a1 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 3 Feb 2022 12:59:58 +0100 Subject: [PATCH 067/154] :arrow_up: Update common module deps --- common/deps.edn | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common/deps.edn b/common/deps.edn index 10b2415878..3e2bab6d31 100644 --- a/common/deps.edn +++ b/common/deps.edn @@ -13,7 +13,7 @@ org.apache.logging.log4j/log4j-slf4j18-impl {:mvn/version "2.17.1"} org.slf4j/slf4j-api {:mvn/version "2.0.0-alpha1"} - selmer/selmer {:mvn/version "1.12.49"} + selmer/selmer {:mvn/version "1.12.50"} criterium/criterium {:mvn/version "0.4.6"} expound/expound {:mvn/version "0.9.0"} @@ -21,10 +21,10 @@ com.cognitect/transit-cljs {:mvn/version "0.8.269"} java-http-clj/java-http-clj {:mvn/version "0.4.3"} - funcool/promesa {:mvn/version "6.0.2"} + funcool/promesa {:mvn/version "6.1.431"} funcool/cuerdas {:mvn/version "2022.01.14-391"} - lambdaisland/uri {:mvn/version "1.12.89" + lambdaisland/uri {:mvn/version "1.13.95" :exclusions [org.clojure/data.json]} frankiesardo/linked {:mvn/version "1.3.0"} From bfb23ad60b4c698f70f7c61f5236b2b7f1b46c1d Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 3 Feb 2022 13:06:24 +0100 Subject: [PATCH 068/154] :arrow_up: Update backend and frontend clojure deps --- backend/deps.edn | 15 ++++++--------- frontend/deps.edn | 2 +- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/backend/deps.edn b/backend/deps.edn index f2c71a40de..42014d8fbd 100644 --- a/backend/deps.edn +++ b/backend/deps.edn @@ -6,7 +6,7 @@ org.zeromq/jeromq {:mvn/version "0.5.2"} com.taoensso/nippy {:mvn/version "3.1.1"} - com.github.luben/zstd-jni {:mvn/version "1.5.1-1"} + com.github.luben/zstd-jni {:mvn/version "1.5.2-1"} org.clojure/data.fressian {:mvn/version "1.0.0"} io.prometheus/simpleclient {:mvn/version "0.14.1"} @@ -25,7 +25,7 @@ com.github.seancorfield/next.jdbc {:mvn/version "1.2.761"} metosin/reitit-ring {:mvn/version "0.5.15"} - org.postgresql/postgresql {:mvn/version "42.3.1"} + org.postgresql/postgresql {:mvn/version "42.3.2"} com.zaxxer/HikariCP {:mvn/version "5.0.1"} funcool/datoteka {:mvn/version "2.0.0"} @@ -39,11 +39,11 @@ org.clojars.pntblnk/clj-ldap {:mvn/version "0.0.17"} integrant/integrant {:mvn/version "0.8.0"} - io.sentry/sentry {:mvn/version "5.5.2"} + io.sentry/sentry {:mvn/version "5.6.1"} ;; Pretty Print specs pretty-spec/pretty-spec {:mvn/version "0.1.4"} - software.amazon.awssdk/s3 {:mvn/version "2.17.111"}} + software.amazon.awssdk/s3 {:mvn/version "2.17.122"}} :paths ["src" "resources" "target/classes"] :aliases @@ -59,13 +59,10 @@ :extra-paths ["test" "dev"]} :build - {:extra-deps {io.github.clojure/tools.build {:git/tag "v0.7.4" :git/sha "ac442da"}} + {:extra-deps + {io.github.clojure/tools.build {:git/tag "v0.7.5" :git/sha "34727f7"}} :ns-default build} - :kaocha - {:extra-deps {lambdaisland/kaocha {:mvn/version "RELEASE"}} - :main-opts ["-m" "kaocha.runner"]} - :test {:extra-paths ["test"] :extra-deps diff --git a/frontend/deps.edn b/frontend/deps.edn index 56225cef59..a305978803 100644 --- a/frontend/deps.edn +++ b/frontend/deps.edn @@ -31,7 +31,7 @@ :extra-deps {thheller/shadow-cljs {:mvn/version "2.16.12"} org.clojure/tools.namespace {:mvn/version "RELEASE"} - cider/cider-nrepl {:mvn/version "0.28.0"}}} + cider/cider-nrepl {:mvn/version "0.28.2"}}} :shadow-cljs {:main-opts ["-m" "shadow.cljs.devtools.cli"]} From 6461ebe2b83fd545ce331bdc15dedf736612dd1d Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 3 Feb 2022 14:10:32 +0100 Subject: [PATCH 069/154] :fire: Remove unreachable code. --- frontend/src/app/main/ui/auth/register.cljs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/main/ui/auth/register.cljs b/frontend/src/app/main/ui/auth/register.cljs index 6516c43a4c..91e5dcb4fb 100644 --- a/frontend/src/app/main/ui/auth/register.cljs +++ b/frontend/src/app/main/ui/auth/register.cljs @@ -32,14 +32,10 @@ (defn- validate [data] - (let [password (:password data) - terms-privacy (:terms-privacy data)] + (let [password (:password data)] (cond-> {} (> 8 (count password)) - (assoc :password {:message "errors.password-too-short"}) - - (and (not terms-privacy) false) - (assoc :terms-privacy {:message "errors.terms-privacy-agreement-invalid"})))) + (assoc :password {:message "errors.password-too-short"})))) (s/def ::fullname ::us/not-empty-string) (s/def ::password ::us/not-empty-string) From 86e4826e4845a494f869ae24497ce46ebf702c1c Mon Sep 17 00:00:00 2001 From: Eva Date: Fri, 4 Feb 2022 10:32:37 +0100 Subject: [PATCH 070/154] :sparkles: Add configurable nudge amount --- CHANGES.md | 1 + .../styles/common/dependencies/colors.scss | 2 +- .../resources/styles/main/partials/modal.scss | 80 +++++++++++++++++++ frontend/src/app/main/data/users.cljs | 14 ++++ .../app/main/data/workspace/transforms.cljs | 3 +- frontend/src/app/main/ui/workspace.cljs | 1 + .../src/app/main/ui/workspace/header.cljs | 5 +- frontend/src/app/main/ui/workspace/nudge.cljs | 62 ++++++++++++++ frontend/translations/en.po | 12 +++ frontend/translations/es.po | 12 +++ 10 files changed, 189 insertions(+), 3 deletions(-) create mode 100644 frontend/src/app/main/ui/workspace/nudge.cljs diff --git a/CHANGES.md b/CHANGES.md index df3edd087a..da63fa5a07 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,7 @@ ### :sparkles: New features +- Add configurable nudge amount [Taiga #910](https://tree.taiga.io/project/penpot/us/910) - Add stroke properties for image shapes [Taiga #497](https://tree.taiga.io/project/penpot/us/497) - On user settings, hide the theme selector as long as we only have one theme [Taiga #2610](https://tree.taiga.io/project/penpot/us/2610) - Automatically open comments from dashboard notifications [Taiga #2605](https://tree.taiga.io/project/penpot/us/2605) diff --git a/frontend/resources/styles/common/dependencies/colors.scss b/frontend/resources/styles/common/dependencies/colors.scss index 57b538061d..8ca5bbb8a7 100644 --- a/frontend/resources/styles/common/dependencies/colors.scss +++ b/frontend/resources/styles/common/dependencies/colors.scss @@ -15,7 +15,7 @@ $color-dashboard: #f6f6f6; $color-primary: #31efb8; // Secondary colors -$color-success: #58c35c; +$color-success: #49d793; $color-complete: #a599c6; $color-warning: #fc8802; $color-danger: #e65244; diff --git a/frontend/resources/styles/main/partials/modal.scss b/frontend/resources/styles/main/partials/modal.scss index e48eb161d3..44ebe2550b 100644 --- a/frontend/resources/styles/main/partials/modal.scss +++ b/frontend/resources/styles/main/partials/modal.scss @@ -1226,3 +1226,83 @@ background-color: rgba(0, 0, 0, 0.9); } } + +// Nudge modal + +.nudge-modal-overlay { + display: flex; + align-items: center; + justify-content: center; + position: fixed; + left: calc(50vw - 107px); + top: calc(50vh - 57px); + height: 110px; + width: 215px; + padding: 8px 20px; + background-color: $color-white; + box-shadow: 0px 2px 8px 0px rgb(0 0 0 / 20%); + z-index: 1000; + + &.transparent { + background-color: rgba($color-white, 0); + } + + .nudge-modal-container { + display: flex; + flex-direction: column; + justify-content: space-around; + height: 100%; + width: 100%; + + .nudge-modal-header { + display: flex; + justify-content: space-between; + margin-bottom: 7px; + + .modal-close-button { + display: flex; + justify-content: center; + align-items: center; + background-color: transparent; + border: none; + cursor: pointer; + + svg { + height: 12px; + width: 12px; + transform: rotate(45deg); + } + } + + .nudge-modal-title { + padding: 0; + margin: 0; + color: $color-black; + font-size: $fs12; + } + } + + .nudge-modal-body { + display: flex; + justify-content: space-between; + + .nudge-subtitle { + margin: 0; + } + + input { + width: 72px; + background-color: transparent; + border: none; + border-bottom: 1px solid $color-black; + margin-bottom: 12px; + + &:active, + &:focus, + &:hover { + border-bottom: 1px solid $color-primary; + } + } + } + } +} diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index fcf19fc542..b4eae4da6c 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -447,6 +447,20 @@ (->> (rp/query :team-users {:team-id team-id}) (rx/map #(partial fetched %))))))) +;; --- Update Nudge + +(defn update-nudge + [value] + (ptk/reify ::update-nudge + ptk/UpdateEvent + (update [_ state] + (update-in state [:profile :props] assoc :nudge value)) + ptk/WatchEvent + (watch [_ _ _] + (let [props {:nudge value}] + (->> (rp/mutation :update-profile-props {:props props}) + (rx/map (constantly (fetch-profile)))))))) + ;; --- EVENT: request-account-deletion (defn request-account-deletion diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index 5edec0efb3..559895ddd2 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -606,13 +606,14 @@ (watch [_ state stream] (if (= same-event (get-in state [:workspace-local :current-move-selected])) (let [selected (wsh/lookup-selected state {:omit-blocked? true}) + nudge (get-in state [:profile :props :nudge] {:big 10 :small 1}) move-events (->> stream (rx/filter (ptk/type? ::move-selected)) (rx/filter #(= direction (deref %)))) stopper (->> move-events (rx/debounce 100) (rx/first)) - scale (if shift? (gpt/point 10) (gpt/point 1)) + scale (if shift? (gpt/point (:big nudge)) (gpt/point (:small nudge))) mov-vec (gpt/multiply (get-displacement direction) scale)] (rx/concat diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index 88d74fbfd9..e9d06b920b 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -21,6 +21,7 @@ [app.main.ui.workspace.header :refer [header]] [app.main.ui.workspace.left-toolbar :refer [left-toolbar]] [app.main.ui.workspace.libraries] + [app.main.ui.workspace.nudge] [app.main.ui.workspace.sidebar :refer [left-sidebar right-sidebar]] [app.main.ui.workspace.textpalette :refer [textpalette]] [app.main.ui.workspace.viewport :refer [viewport]] diff --git a/frontend/src/app/main/ui/workspace/header.cljs b/frontend/src/app/main/ui/workspace/header.cljs index 038143f176..17a40500d9 100644 --- a/frontend/src/app/main/ui/workspace/header.cljs +++ b/frontend/src/app/main/ui/workspace/header.cljs @@ -353,7 +353,10 @@ (if (contains? layout :dynamic-alignment) (tr "workspace.header.menu.disable-dynamic-alignment") (tr "workspace.header.menu.enable-dynamic-alignment"))] - [:span.shortcut (sc/get-tooltip :toggle-alignment)]]]]])) + [:span.shortcut (sc/get-tooltip :toggle-alignment)]] + + [:li {:on-click #(st/emit! (modal/show {:type :nudge-option}))} + [:span (tr "modals.nudge-title")]]]]])) ;; --- Header Component diff --git a/frontend/src/app/main/ui/workspace/nudge.cljs b/frontend/src/app/main/ui/workspace/nudge.cljs new file mode 100644 index 0000000000..c479a00bac --- /dev/null +++ b/frontend/src/app/main/ui/workspace/nudge.cljs @@ -0,0 +1,62 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.main.ui.workspace.nudge + (:require + [app.main.data.modal :as modal] + [app.main.data.users :as du] + [app.main.refs :as refs] + [app.main.store :as st] + [app.main.ui.components.numeric-input :refer [numeric-input]] + [app.main.ui.icons :as i] + [app.util.dom :as dom] + [app.util.i18n :as i18n :refer [tr]] + [app.util.keyboard :as k] + [goog.events :as events] + [rumext.alpha :as mf]) + (:import goog.events.EventType)) + + +(mf/defc nudge-modal + {::mf/register modal/components + ::mf/register-as :nudge-option} + [] + (let [profile (mf/deref refs/profile) + nudge (get-in profile [:props :nudge] {:big 10 :small 1}) + update-nudge (fn [value size] (let [update-nudge (if (= :big size) + {:big value :small (:small nudge)} + {:small value :big (:big nudge)})] + (st/emit! (du/update-nudge update-nudge)))) + update-big (fn [value] (update-nudge value :big)) + update-small (fn [value] (update-nudge value :small)) + close #(modal/hide!)] + (mf/with-effect + (letfn [(on-keydown [event] + (when (k/enter? event) + (dom/prevent-default event) + (dom/stop-propagation event) + (close)))] + (->> (events/listen js/document EventType.KEYDOWN on-keydown) + (partial events/unlistenByKey)))) + + [:div.nudge-modal-overlay + [:div.nudge-modal-container + [:div.nudge-modal-header + [:p.nudge-modal-title (tr "modals.nudge-title")] + [:button.modal-close-button {:on-click close} i/close]] + [:div.nudge-modal-body + [:div.input-wrapper + [:span + [:p.nudge-subtitle (tr "modals.small-nudge")] + [:> numeric-input {:min 1 + :value (:small nudge) + :on-change update-small}]]] + [:div.input-wrapper + [:span + [:p.nudge-subtitle (tr "modals.big-nudge")] + [:> numeric-input {:min 1 + :value (:big nudge) + :on-change update-big}]]]]]])) \ No newline at end of file diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 7dbf326b7e..4cd2704dc9 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -1580,6 +1580,18 @@ msgstr "Update a component in a shared library" msgid "modals.update-remote-component-in-bulk.message" msgstr "Update components in a shared library" +#: src/app/main/ui/workspace/nudge.cljs +msgid "modals.nudge-title" +msgstr "Nudge amount" + +#: src/app/main/ui/workspace/nudge.cljs +msgid "modals.small-nudge" +msgstr "Small nudge" + +#: src/app/main/ui/workspace/nudge.cljs +msgid "modals.big-nudge" +msgstr "Big nudge" + #: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Invitation sent successfully" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index ba784e4056..76bac95871 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -1582,6 +1582,18 @@ msgstr "Actualizar un componente en librería" msgid "modals.update-remote-component-in-bulk.message" msgstr "Actualizar componentes en librería" +#: src/app/main/ui/workspace/nudge.cljs +msgid "modals.nudge-title" +msgstr "Desplazamiento" + +#: src/app/main/ui/workspace/nudge.cljs +msgid "modals.small-nudge" +msgstr "Mínimo" + +#: src/app/main/ui/workspace/nudge.cljs +msgid "modals.big-nudge" +msgstr "Máximo" + #: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Invitación enviada con éxito" From 7134bbf484d827116a5a9d25dded0e82388beb60 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Fri, 4 Feb 2022 09:28:23 +0100 Subject: [PATCH 071/154] :sparkles: Disallow using same password as user email --- CHANGES.md | 1 + backend/src/app/rpc/mutations/profile.clj | 11 +++++ backend/test/app/services_profile_test.clj | 46 +++++++++++++++++++ frontend/src/app/main/ui/auth/register.cljs | 4 ++ .../src/app/main/ui/settings/password.cljs | 3 ++ frontend/translations/en.po | 3 ++ frontend/translations/es.po | 3 ++ 7 files changed, 71 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index da63fa5a07..3f386a80f4 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,7 @@ ### :sparkles: New features +- Disallow using same password as user email [Taiga #2454](https://tree.taiga.io/project/penpot/us/2454) - Add configurable nudge amount [Taiga #910](https://tree.taiga.io/project/penpot/us/910) - Add stroke properties for image shapes [Taiga #497](https://tree.taiga.io/project/penpot/us/497) - On user settings, hide the theme selector as long as we only have one theme [Taiga #2610](https://tree.taiga.io/project/penpot/us/2610) diff --git a/backend/src/app/rpc/mutations/profile.clj b/backend/src/app/rpc/mutations/profile.clj index ab1a5a405f..d100f0ff8d 100644 --- a/backend/src/app/rpc/mutations/profile.clj +++ b/backend/src/app/rpc/mutations/profile.clj @@ -116,6 +116,12 @@ (check-profile-existence! pool params) + (when (= (str/lower (:email params)) + (str/lower (:password params))) + (ex/raise :type :validation + :code :email-as-password + :hint "you can't use your email as password")) + (let [params (assoc params :backend "penpot" :iss :prepared-register @@ -381,6 +387,11 @@ (db/with-atomic [conn pool] (let [profile (validate-password! conn params) session-id (:app.rpc/session-id params)] + (when (= (str/lower (:email profile)) + (str/lower (:password params))) + (ex/raise :type :validation + :code :email-as-password + :hint "you can't use your email as password")) (update-profile-password! conn (assoc profile :password password)) (invalidate-profile-session! conn (:id profile) session-id) nil))) diff --git a/backend/test/app/services_profile_test.clj b/backend/test/app/services_profile_test.clj index ba82c0f0e8..78c423872c 100644 --- a/backend/test/app/services_profile_test.clj +++ b/backend/test/app/services_profile_test.clj @@ -240,6 +240,16 @@ (t/is (nil? error)) (t/is (string? (:token result)))))) +(t/deftest test-register-profile-with-email-as-password + (let [data {::th/type :prepare-register-profile + :email "user@example.com" + :password "USER@example.com"}] + + (let [{:keys [result error] :as out} (th/mutation! data)] + (t/is (th/ex-info? error)) + (t/is (th/ex-of-type? error :validation)) + (t/is (th/ex-of-code? error :email-as-password))))) + (t/deftest test-email-change-request (with-mocks [email-send-mock {:target 'app.emails/send! :return nil} cfg-get-mock {:target 'app.config/get @@ -345,3 +355,39 @@ (t/is (th/ex-of-code? error :email-has-permanent-bounces))) ))) + + +(t/deftest update-profile-password + (let [profile (th/create-profile* 1) + data {::th/type :update-profile-password + :profile-id (:id profile) + :old-password "123123" + :password "foobarfoobar"} + out (th/mutation! data)] + (t/is (nil? (:error out))) + (t/is (nil? (:result out))) + )) + + +(t/deftest update-profile-password-bad-old-password + (let [profile (th/create-profile* 1) + data {::th/type :update-profile-password + :profile-id (:id profile) + :old-password "badpassword" + :password "foobarfoobar"} + {:keys [result error] :as out} (th/mutation! data)] + (t/is (th/ex-info? error)) + (t/is (th/ex-of-type? error :validation)) + (t/is (th/ex-of-code? error :old-password-not-match)))) + + +(t/deftest update-profile-password-email-as-password + (let [profile (th/create-profile* 1) + data {::th/type :update-profile-password + :profile-id (:id profile) + :old-password "123123" + :password "profile1.test@nodomain.com"} + {:keys [result error] :as out} (th/mutation! data)] + (t/is (th/ex-info? error)) + (t/is (th/ex-of-type? error :validation)) + (t/is (th/ex-of-code? error :email-as-password)))) diff --git a/frontend/src/app/main/ui/auth/register.cljs b/frontend/src/app/main/ui/auth/register.cljs index 91e5dcb4fb..c9a2d89a81 100644 --- a/frontend/src/app/main/ui/auth/register.cljs +++ b/frontend/src/app/main/ui/auth/register.cljs @@ -60,6 +60,10 @@ :email-already-exists (swap! form assoc-in [:errors :email] {:message "errors.email-already-exists"}) + + :email-as-password + (swap! form assoc-in [:errors :password] + {:message "errors.email-as-password"}) (st/emit! (dm/error (tr "errors.generic"))))) diff --git a/frontend/src/app/main/ui/settings/password.cljs b/frontend/src/app/main/ui/settings/password.cljs index 278eca9a41..225af7fc17 100644 --- a/frontend/src/app/main/ui/settings/password.cljs +++ b/frontend/src/app/main/ui/settings/password.cljs @@ -22,6 +22,9 @@ :old-password-not-match (swap! form assoc-in [:errors :password-old] {:message (tr "errors.wrong-old-password")}) + :email-as-password + (swap! form assoc-in [:errors :password-1] + {:message (tr "errors.email-as-password")}) (let [msg (tr "generic.error")] (st/emit! (dm/error msg))))) diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 4cd2704dc9..d25325f57f 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -607,6 +607,9 @@ msgstr "Your browser cannot do this operation" msgid "errors.email-already-exists" msgstr "Email already used" +msgid "errors.email-as-password" +msgstr "You can't use your email as password" + #: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "Email already validated." diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 76bac95871..ca65a37fc0 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -610,6 +610,9 @@ msgstr "Tu navegador no puede realizar esta operación" msgid "errors.email-already-exists" msgstr "Este correo ya está en uso" +msgid "errors.email-as-password" +msgstr "No puedes usar tu email como password" + #: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "Este correo ya está validado." From 38b7474f0bc4bb43e51de2c48363f194ee650645 Mon Sep 17 00:00:00 2001 From: Eva Date: Fri, 4 Feb 2022 14:52:46 +0100 Subject: [PATCH 072/154] :sparkles: Add a little improvent in recent fonts selector --- .../partials/sidebar-element-options.scss | 7 +++++- .../sidebar/options/menus/typography.cljs | 25 +++++++++++-------- frontend/translations/en.po | 3 +++ frontend/translations/es.po | 3 +++ 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/frontend/resources/styles/main/partials/sidebar-element-options.scss b/frontend/resources/styles/main/partials/sidebar-element-options.scss index 03c7f92d2b..e9bd57dabe 100644 --- a/frontend/resources/styles/main/partials/sidebar-element-options.scss +++ b/frontend/resources/styles/main/partials/sidebar-element-options.scss @@ -1169,7 +1169,6 @@ header { display: flex; - align-items: center; flex-direction: column; position: relative; @@ -1225,9 +1224,15 @@ border-radius: $br-small; color: $color-gray-20; border: 1px solid $color-gray-30; + width: 88%; margin: 15px 17px; } + .title { + font-size: $fs14; + margin: 9px 17px; + } + .options { display: flex; justify-content: center; diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs index 2d790de2f8..41a642f3d6 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs @@ -143,9 +143,8 @@ (mf/deps on-select on-close) (fn [font] (on-select font) - (on-close))) - ] - + (on-close)))] + (mf/use-effect (fn [] (st/emit! (fts/load-recent-fonts)))) @@ -190,13 +189,16 @@ :ref input :spell-check false :on-change on-filter-change}] + [:hr] (when recent-fonts - (for [font recent-fonts] - [:& font-item {:key (:id font) - :font font - :style {} - :on-click on-select-and-close - :current? (= (:id font) (:id @selected))}])) + [* + [:p.title (tr "workspace.options.recent-fonts")] + (for [font recent-fonts] + [:& font-item {:key (:id font) + :font font + :style {} + :on-click on-select-and-close + :current? (= (:id font) (:id @selected))}])]) #_[:div.options {:on-click #(swap! state assoc :show-options true) @@ -257,6 +259,7 @@ fonts (mf/deref fonts/fontsdb) font (get fonts font-id) recent-fonts (mf/deref refs/workspace-recent-fonts) + last-font (mf/use-ref nil) open-selector? (mf/use-state false) @@ -271,7 +274,7 @@ :font-variant-id (or id name) :font-weight weight :font-style style}) - (st/emit! (fts/add-recent-font font))))) + (mf/set-ref-val! last-font font)))) on-font-size-change (mf/use-callback @@ -309,7 +312,7 @@ (reset! open-selector? false) (when (some? on-blur) (on-blur)) - ))] + (st/emit! (fts/add-recent-font (mf/ref-val last-font)))))] [:* (when @open-selector? diff --git a/frontend/translations/en.po b/frontend/translations/en.po index d25325f57f..b3e1f68ede 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -2815,6 +2815,9 @@ msgstr "Rotation" msgid "workspace.options.search-font" msgstr "Search font" +msgid "workspace.options.recent-fonts" +msgstr "Recent" + #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "Select a shape, artboard or group to drag a connection to other artboard." diff --git a/frontend/translations/es.po b/frontend/translations/es.po index ca65a37fc0..b771a1376d 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -2826,6 +2826,9 @@ msgstr "Rotación" msgid "workspace.options.search-font" msgstr "Buscar fuente" +msgid "workspace.options.recent-fonts" +msgstr "Recientes" + #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "" From fc2a26f249c5230fb53562627e68c639dd4f2a0a Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Fri, 28 Jan 2022 13:39:17 +0100 Subject: [PATCH 073/154] :tada: Add border radius support to image shapes --- CHANGES.md | 1 + common/src/app/common/pages/common.cljc | 2 +- common/src/app/common/pages/init.cljc | 4 +++- common/src/app/common/pages/migrations.cljc | 19 +++++++++++++++++ frontend/src/app/main/ui/shapes/attrs.cljs | 5 +++++ frontend/src/app/main/ui/shapes/export.cljs | 12 ++++++++++- frontend/src/app/main/ui/shapes/image.cljs | 8 +++++-- .../main/ui/viewer/handoff/attributes.cljs | 2 +- .../ui/viewer/handoff/attributes/fill.cljs | 2 +- .../ui/viewer/handoff/attributes/shadow.cljs | 2 +- frontend/src/app/util/import/parser.cljs | 21 ++++++++++++++++--- 11 files changed, 67 insertions(+), 11 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 3f386a80f4..05ccca284f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,7 @@ ### :sparkles: New features +- Support border radius and stroke properties for images [Taiga #497](https://tree.taiga.io/project/penpot/us/497) - Disallow using same password as user email [Taiga #2454](https://tree.taiga.io/project/penpot/us/2454) - Add configurable nudge amount [Taiga #910](https://tree.taiga.io/project/penpot/us/910) - Add stroke properties for image shapes [Taiga #497](https://tree.taiga.io/project/penpot/us/497) diff --git a/common/src/app/common/pages/common.cljc b/common/src/app/common/pages/common.cljc index 6356f4bbec..43cd9371cf 100644 --- a/common/src/app/common/pages/common.cljc +++ b/common/src/app/common/pages/common.cljc @@ -9,7 +9,7 @@ [app.common.colors :as clr] [app.common.uuid :as uuid])) -(def file-version 12) +(def file-version 13) (def default-color clr/gray-20) (def root uuid/zero) diff --git a/common/src/app/common/pages/init.cljc b/common/src/app/common/pages/init.cljc index 8e3b5bb92f..21a209c359 100644 --- a/common/src/app/common/pages/init.cljc +++ b/common/src/app/common/pages/init.cljc @@ -51,7 +51,9 @@ :rx 0 :ry 0} - {:type :image} + {:type :image + :rx 0 + :ry 0} {:type :circle :name "Circle-1" diff --git a/common/src/app/common/pages/migrations.cljc b/common/src/app/common/pages/migrations.cljc index dd7d232681..d87f2156e8 100644 --- a/common/src/app/common/pages/migrations.cljc +++ b/common/src/app/common/pages/migrations.cljc @@ -281,3 +281,22 @@ (d/update-in-when page [:options :saved-grids] #(d/mapm update-grid %)))] (update data :pages-index #(d/mapm update-page %)))) + +;; Add rx and ry to images +(defmethod migrate 13 + [data] + (letfn [(fix-radius [shape] + (if-not (or (contains? shape :rx) (contains? shape :r1)) + (-> shape + (assoc :rx 0) + (assoc :ry 0)) + shape)) + (update-object [_ object] + (cond-> object + (= :image (:type object)) + (fix-radius))) + + (update-page [_ page] + (update page :objects #(d/mapm update-object %)))] + + (update data :pages-index #(d/mapm update-page %)))) diff --git a/frontend/src/app/main/ui/shapes/attrs.cljs b/frontend/src/app/main/ui/shapes/attrs.cljs index 06ef83ccf7..dd6a041abb 100644 --- a/frontend/src/app/main/ui/shapes/attrs.cljs +++ b/frontend/src/app/main/ui/shapes/attrs.cljs @@ -214,3 +214,8 @@ (add-fill shape render-id))] (-> (obj/new) (obj/set! "style" fill-styles)))) + +(defn extract-border-radius-attrs + [shape] + (-> (obj/new) + (add-border-radius shape))) diff --git a/frontend/src/app/main/ui/shapes/export.cljs b/frontend/src/app/main/ui/shapes/export.cljs index bde04d4420..d61fe8a49d 100644 --- a/frontend/src/app/main/ui/shapes/export.cljs +++ b/frontend/src/app/main/ui/shapes/export.cljs @@ -64,6 +64,7 @@ (let [add! (add-factory shape) group? (= :group (:type shape)) rect? (= :rect (:type shape)) + image? (= :image (:type shape)) text? (= :text (:type shape)) path? (= :path (:type shape)) mask? (and group? (:masked-group? shape)) @@ -92,12 +93,21 @@ (add! :constraints-v) (add! :fixed-scroll) - (cond-> (and rect? (some? (:r1 shape))) + (cond-> (and (or rect? image?) (some? (:r1 shape))) (-> (add! :r1) (add! :r2) (add! :r3) (add! :r4))) + (cond-> (and image? (some? (:rx shape))) + (-> (add! :rx) + (add! :ry))) + + (cond-> image? + (-> (add! :fill-color) + (add! :fill-opacity) + (add! :fill-color-gradient))) + (cond-> path? (-> (add! :stroke-cap-start) (add! :stroke-cap-end))) diff --git a/frontend/src/app/main/ui/shapes/image.cljs b/frontend/src/app/main/ui/shapes/image.cljs index d438fa5cfe..988c522472 100644 --- a/frontend/src/app/main/ui/shapes/image.cljs +++ b/frontend/src/app/main/ui/shapes/image.cljs @@ -34,12 +34,14 @@ fill-image-id (str "fill-image-" render-id) shape (assoc shape :fill-image fill-image-id) props (-> (attrs/extract-style-attrs shape) + (obj/merge! (attrs/extract-border-radius-attrs shape)) (obj/merge! #js {:x x :y y :transform transform :width width - :height height}))] + :height height})) + path? (some? (.-d props))] [:g [:defs @@ -56,4 +58,6 @@ :width width :height height}]]]] [:& shape-custom-stroke {:shape shape} - [:> :rect props]]])) + (if path? + [:> :path props] + [:> :rect props])]])) diff --git a/frontend/src/app/main/ui/viewer/handoff/attributes.cljs b/frontend/src/app/main/ui/viewer/handoff/attributes.cljs index 2792ae1fef..7a09206895 100644 --- a/frontend/src/app/main/ui/viewer/handoff/attributes.cljs +++ b/frontend/src/app/main/ui/viewer/handoff/attributes.cljs @@ -26,7 +26,7 @@ :rect [:layout :fill :stroke :shadow :blur :svg] :circle [:layout :fill :stroke :shadow :blur :svg] :path [:layout :fill :stroke :shadow :blur :svg] - :image [:image :layout :shadow :blur :svg] + :image [:image :layout :fill :stroke :shadow :blur :svg] :text [:layout :text :shadow :blur]}) (mf/defc attributes diff --git a/frontend/src/app/main/ui/viewer/handoff/attributes/fill.cljs b/frontend/src/app/main/ui/viewer/handoff/attributes/fill.cljs index c1ee2269f0..8c600a2d74 100644 --- a/frontend/src/app/main/ui/viewer/handoff/attributes/fill.cljs +++ b/frontend/src/app/main/ui/viewer/handoff/attributes/fill.cljs @@ -24,7 +24,7 @@ (defn has-color? [shape] (and - (not (contains? #{:image :text :group} (:type shape))) + (not (contains? #{:text :group} (:type shape))) (or (:fill-color shape) (:fill-color-gradient shape)))) diff --git a/frontend/src/app/main/ui/viewer/handoff/attributes/shadow.cljs b/frontend/src/app/main/ui/viewer/handoff/attributes/shadow.cljs index 67a934f5c7..511f4ad782 100644 --- a/frontend/src/app/main/ui/viewer/handoff/attributes/shadow.cljs +++ b/frontend/src/app/main/ui/viewer/handoff/attributes/shadow.cljs @@ -60,7 +60,7 @@ (mf/defc shadow-panel [{:keys [shapes]}] (let [shapes (->> shapes (filter has-shadow?))] - (when (seq shapes) + (when (and (seq shapes) (> (count shapes) 0)) [:div.attributes-block [:div.attributes-block-title [:div.attributes-block-title-text (tr "handoff.attributes.shadow")] diff --git a/frontend/src/app/util/import/parser.cljs b/frontend/src/app/util/import/parser.cljs index 82fd838ad9..63cc626689 100644 --- a/frontend/src/app/util/import/parser.cljs +++ b/frontend/src/app/util/import/parser.cljs @@ -364,7 +364,11 @@ (let [fill (:fill svg-data) hide-fill-on-export (get-meta node :hide-fill-on-export str->bool) gradient (when (str/starts-with? fill "url") - (parse-gradient node fill))] + (parse-gradient node fill)) + meta-fill-color (get-meta node :fill-color) + meta-fill-opacity (get-meta node :fill-opacity) + meta-fill-color-gradient (get-meta node :fill-color-gradient)] + (cond-> props :always (assoc :fill-color nil @@ -380,7 +384,16 @@ :fill-opacity (-> svg-data (:fill-opacity "1") d/parse-double)) (some? hide-fill-on-export) - (assoc :hide-fill-on-export hide-fill-on-export)))) + (assoc :hide-fill-on-export hide-fill-on-export) + + (some? meta-fill-color) + (assoc :fill-color meta-fill-color + :fill-opacity (d/parse-double meta-fill-opacity)) + + (some? meta-fill-color-gradient) + (assoc :fill-color-gradient meta-fill-color-gradient + :fill-color nil + :fill-opacity nil)))) (defn add-stroke [props node svg-data] @@ -763,7 +776,9 @@ (add-rect-data node svg-data)) (cond-> (some? (get-in node [:attrs :penpot:media-id])) - (add-image-data type node)) + (-> + (add-rect-data node svg-data) + (add-image-data type node))) (cond-> (= :text type) (add-text-data node)) From 5f6cb1e0d73e2bc325dcbd0dda856f807296b847 Mon Sep 17 00:00:00 2001 From: Eva Date: Mon, 7 Feb 2022 09:45:36 +0100 Subject: [PATCH 074/154] :bug: Fix shadow type text in handoff section --- CHANGES.md | 3 +++ .../styles/main/partials/handoff.scss | 5 +--- .../ui/viewer/handoff/attributes/shadow.cljs | 26 +++++++------------ 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 05ccca284f..108078dca6 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -24,6 +24,9 @@ - Redesign of workspace toolbars [Taiga #2319](https://tree.taiga.io/project/penpot/us/2319) ### :bug: Bugs fixed + +- Fixed handoff shadow type text [Taiga #2717](https://tree.taiga.io/project/penpot/issue/2717) + ### :arrow_up: Deps updates ### :heart: Community contributions by (Thank you!) diff --git a/frontend/resources/styles/main/partials/handoff.scss b/frontend/resources/styles/main/partials/handoff.scss index c666f03cd5..3ebfd23741 100644 --- a/frontend/resources/styles/main/partials/handoff.scss +++ b/frontend/resources/styles/main/partials/handoff.scss @@ -233,10 +233,7 @@ .attributes-shadow { display: flex; - - .attributes-label { - margin-right: 2px; - } + margin-left: 4px; } } diff --git a/frontend/src/app/main/ui/viewer/handoff/attributes/shadow.cljs b/frontend/src/app/main/ui/viewer/handoff/attributes/shadow.cljs index 511f4ad782..94146d5195 100644 --- a/frontend/src/app/main/ui/viewer/handoff/attributes/shadow.cljs +++ b/frontend/src/app/main/ui/viewer/handoff/attributes/shadow.cljs @@ -35,22 +35,18 @@ (let [color-format (mf/use-state :hex)] [:div.attributes-shadow-block [:div.attributes-shadow-row - [:div.attributes-label (->> shadow :style d/name (str "handoff.attributes.shadow.style.") (tr))] - [:div.attributes-shadow - [:div.attributes-label (tr "handoff.attributes.shadow.shorthand.offset-x")] - [:div.attributes-value (str (:offset-x shadow))]] + [:div.attributes-label (->> shadow :style d/name (str "workspace.options.shadow-options.") (tr))] + [:div.attributes-shadow {:title (tr "workspace.options.shadow-options.offsetx")} + [:div.attributes-value (str (:offset-x shadow) "px")]] - [:div.attributes-shadow - [:div.attributes-label (tr "handoff.attributes.shadow.shorthand.offset-y")] - [:div.attributes-value (str (:offset-y shadow))]] + [:div.attributes-shadow {:title (tr "workspace.options.shadow-options.offsety")} + [:div.attributes-value (str (:offset-y shadow) "px")]] - [:div.attributes-shadow - [:div.attributes-label (tr "handoff.attributes.shadow.shorthand.blur")] - [:div.attributes-value (str (:blur shadow))]] + [:div.attributes-shadow {:title (tr "workspace.options.shadow-options.blur")} + [:div.attributes-value (str (:blur shadow) "px")]] - [:div.attributes-shadow - [:div.attributes-label (tr "handoff.attributes.shadow.shorthand.spread")] - [:div.attributes-value (str (:spread shadow))]] + [:div.attributes-shadow {:title (tr "workspace.options.shadow-options.spread")} + [:div.attributes-value (str (:spread shadow) "px")]] [:& copy-button {:data (shadow-copy-data shadow)}]] @@ -63,9 +59,7 @@ (when (and (seq shapes) (> (count shapes) 0)) [:div.attributes-block [:div.attributes-block-title - [:div.attributes-block-title-text (tr "handoff.attributes.shadow")] - (when (= (count shapes) 1) - [:& copy-button {:data (shape-copy-data (first shapes))}])] + [:div.attributes-block-title-text (tr "handoff.attributes.shadow")]] [:div.attributes-shadow-blocks (for [shape shapes] From b8f2f3e34d40a90949bb9bf27300bad9316b19f1 Mon Sep 17 00:00:00 2001 From: Eva Date: Mon, 7 Feb 2022 12:16:48 +0100 Subject: [PATCH 075/154] :sparkles: Show recent fonts only on text edition area not in typographies --- .../workspace/sidebar/options/menus/text.cljs | 1 + .../sidebar/options/menus/typography.cljs | 23 +++++++++++-------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs index 24b9718c15..24c98f9718 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs @@ -301,6 +301,7 @@ opts #js {:ids ids :values values :on-change on-change + :show-recent true :on-blur (fn [] (tm/schedule diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs index 41a642f3d6..088bbbd84b 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs @@ -94,7 +94,7 @@ ;; (conj backends id))) (mf/defc font-selector - [{:keys [on-select on-close current-font] :as props}] + [{:keys [on-select on-close current-font show-recent] :as props}] (let [selected (mf/use-state current-font) state (mf/use-state {:term "" :backends #{}}) @@ -189,8 +189,8 @@ :ref input :spell-check false :on-change on-filter-change}] - [:hr] - (when recent-fonts + (when (and recent-fonts show-recent) + [:hr] [* [:p.title (tr "workspace.options.recent-fonts")] (for [font recent-fonts] @@ -249,7 +249,7 @@ :current? (= (:id font) (:id selected))}]))) (mf/defc font-options - [{:keys [values on-change on-blur] :as props}] + [{:keys [values on-change on-blur show-recent] :as props}] (let [{:keys [font-id font-size font-variant-id]} values font-id (or font-id (:font-id txt/default-text-attrs)) @@ -312,14 +312,17 @@ (reset! open-selector? false) (when (some? on-blur) (on-blur)) - (st/emit! (fts/add-recent-font (mf/ref-val last-font)))))] + (when (mf/ref-val last-font) + (st/emit! (fts/add-recent-font (mf/ref-val last-font)))) + ))] [:* (when @open-selector? [:& font-selector {:current-font font :on-close on-font-selector-close - :on-select on-font-select}]) + :on-select on-font-select + :show-recent show-recent}]) [:div.row-flex [:div.input-select.font-option @@ -434,12 +437,13 @@ i/titlecase]])) (mf/defc typography-options - [{:keys [ids editor values on-change on-blur]}] + [{:keys [ids editor values on-change on-blur show-recent]}] (let [opts #js {:editor editor :ids ids :values values :on-change on-change - :on-blur on-blur}] + :on-blur on-blur + :show-recent show-recent}] [:div.element-set-content [:> font-options opts] [:div.row-flex @@ -580,4 +584,5 @@ i/actions]]] [:& typography-options {:values typography - :on-change on-change}]])]])) + :on-change on-change + :show-recent false}]])]])) From fbbb079599cdecf830824debc5a5d166f7977e43 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 3 Feb 2022 18:30:25 +0100 Subject: [PATCH 076/154] :recycle: Remove `rx/first` calls and replaced by safer `rx/take 1` --- frontend/src/app/main/data/workspace.cljs | 4 ++-- frontend/src/app/main/data/workspace/colors.cljs | 2 +- frontend/src/app/main/data/workspace/drawing.cljs | 2 +- frontend/src/app/main/data/workspace/layers.cljs | 2 +- frontend/src/app/main/data/workspace/transforms.cljs | 4 ++-- frontend/src/app/main/snap.cljs | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index d36dde0638..21fb41f395 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -196,7 +196,7 @@ (->> stream (rx/filter #(= ::dwc/index-initialized %)) - (rx/first) + (rx/take 1) (rx/map #(file-initialized bundle))))))))) ptk/EffectEvent @@ -1636,7 +1636,7 @@ (->> (rx/concat paste-transit-str paste-plain-text-str paste-image-str) - (rx/first) + (rx/take 1) (rx/catch (fn [err] (js/console.error "Clipboard error:" err) diff --git a/frontend/src/app/main/data/workspace/colors.cljs b/frontend/src/app/main/data/workspace/colors.cljs index 017cc967d6..5c9d01fab4 100644 --- a/frontend/src/app/main/data/workspace/colors.cljs +++ b/frontend/src/app/main/data/workspace/colors.cljs @@ -219,7 +219,7 @@ ;; Hide the modal if the stop event is emitted (->> stop? - (rx/first) + (rx/take 1) (rx/map #(md/hide)))))) ptk/UpdateEvent diff --git a/frontend/src/app/main/data/workspace/drawing.cljs b/frontend/src/app/main/data/workspace/drawing.cljs index 14ec47a2ac..1fc7186e9a 100644 --- a/frontend/src/app/main/data/workspace/drawing.cljs +++ b/frontend/src/app/main/data/workspace/drawing.cljs @@ -74,7 +74,7 @@ (rx/of (handle-drawing type)) (->> stream (rx/filter (ptk/type? ::common/handle-finish-drawing) ) - (rx/first) + (rx/take 1) (rx/map #(fn [state] (update state :workspace-drawing dissoc :lock))))))))))) (defn handle-drawing diff --git a/frontend/src/app/main/data/workspace/layers.cljs b/frontend/src/app/main/data/workspace/layers.cljs index 4344e13e89..0f06eac314 100644 --- a/frontend/src/app/main/data/workspace/layers.cljs +++ b/frontend/src/app/main/data/workspace/layers.cljs @@ -70,7 +70,7 @@ (let [opacity-events (->> stream ;; Stop buffering after time without opacities (rx/filter (ptk/type? ::pressed-opacity)) (rx/buffer-time 600) - (rx/first) + (rx/take 1) (rx/map #(set-opacity (calculate-opacity (map deref %)))))] (rx/concat (rx/of (set-opacity (calculate-opacity [opacity]))) ;; First opacity is always fired diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index 559895ddd2..1d343f035d 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -523,7 +523,7 @@ (watch [_ _ stream] (->> stream (rx/filter (ptk/type? ::dws/duplicate-selected)) - (rx/first) + (rx/take 1) (rx/map #(start-move from-position)))))) (defn- start-move @@ -612,7 +612,7 @@ (rx/filter #(= direction (deref %)))) stopper (->> move-events (rx/debounce 100) - (rx/first)) + (rx/take 1)) scale (if shift? (gpt/point (:big nudge)) (gpt/point (:small nudge))) mov-vec (gpt/multiply (get-displacement direction) scale)] diff --git a/frontend/src/app/main/snap.cljs b/frontend/src/app/main/snap.cljs index 1de5b1aabc..3da469e5df 100644 --- a/frontend/src/app/main/snap.cljs +++ b/frontend/src/app/main/snap.cljs @@ -82,7 +82,7 @@ :frame-id frame-id :axis coord :ranges [[(- value 0.5) (+ value 0.5)]]}) - (rx/first) + (rx/take 1) (rx/map (remove-from-snap-points remove-snap?)) (rx/map flatten-to-points)))) @@ -98,7 +98,7 @@ :frame-id frame-id :axis coord :ranges ranges}) - (rx/first) + (rx/take 1) (rx/map (remove-from-snap-points remove-snap?)) (rx/map (get-min-distance-snap points coord))))) From ec1cc8ec64fb7f26dae06040af9e164fa6de7c04 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 3 Feb 2022 18:32:06 +0100 Subject: [PATCH 077/154] :sparkles: Adds new shortcut for zoom in --- frontend/src/app/main/data/workspace/shortcuts.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs index 44667db499..ec42b727ae 100644 --- a/frontend/src/app/main/data/workspace/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/shortcuts.cljs @@ -80,7 +80,7 @@ :fn #(st/emit! (dw/toggle-layout-flags :scale-text))} :increase-zoom {:tooltip "+" - :command "+" + :command ["+" "="] :fn #(st/emit! (dw/increase-zoom nil))} :decrease-zoom {:tooltip "-" From 72c2a213b42c98397496931f23b224a6a7786541 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 3 Feb 2022 18:32:23 +0100 Subject: [PATCH 078/154] :sparkles: Curve tool improvements --- .../src/app/main/data/workspace/common.cljs | 58 ++++++++++--------- .../src/app/main/data/workspace/drawing.cljs | 9 +++ .../main/data/workspace/drawing/common.cljs | 5 +- .../src/app/main/ui/workspace/viewport.cljs | 2 +- 4 files changed, 44 insertions(+), 30 deletions(-) diff --git a/frontend/src/app/main/data/workspace/common.cljs b/frontend/src/app/main/data/workspace/common.cljs index 21406795d8..a58bf8aa5f 100644 --- a/frontend/src/app/main/data/workspace/common.cljs +++ b/frontend/src/app/main/data/workspace/common.cljs @@ -314,37 +314,41 @@ [redo-changes undo-changes]))) (defn add-shape - [attrs] - (us/verify ::shape-attrs attrs) - (ptk/reify ::add-shape - ptk/WatchEvent - (watch [it state _] - (let [page-id (:current-page-id state) - objects (wsh/lookup-page-objects state page-id) + ([attrs] + (add-shape attrs {})) - id (or (:id attrs) (uuid/next)) - name (-> objects - (retrieve-used-names) - (generate-unique-name (:name attrs))) + ([attrs {:keys [no-select?]}] + (us/verify ::shape-attrs attrs) + (ptk/reify ::add-shape + ptk/WatchEvent + (watch [it state _] + (let [page-id (:current-page-id state) + objects (wsh/lookup-page-objects state page-id) - selected (wsh/lookup-selected state) + id (or (:id attrs) (uuid/next)) + name (-> objects + (retrieve-used-names) + (generate-unique-name (:name attrs))) - [rchanges uchanges] (add-shape-changes - page-id - objects - selected - (-> attrs - (assoc :id id ) - (assoc :name name)))] + selected (wsh/lookup-selected state) - (rx/concat - (rx/of (dch/commit-changes {:redo-changes rchanges - :undo-changes uchanges - :origin it}) - (select-shapes (d/ordered-set id))) - (when (= :text (:type attrs)) - (->> (rx/of (start-edition-mode id)) - (rx/observe-on :async)))))))) + [rchanges uchanges] (add-shape-changes + page-id + objects + selected + (-> attrs + (assoc :id id ) + (assoc :name name)))] + + (rx/concat + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it}) + (when-not no-select? + (select-shapes (d/ordered-set id)))) + (when (= :text (:type attrs)) + (->> (rx/of (start-edition-mode id)) + (rx/observe-on :async))))))))) (defn move-shapes-into-frame [frame-id shapes] (ptk/reify ::move-shapes-into-frame diff --git a/frontend/src/app/main/data/workspace/drawing.cljs b/frontend/src/app/main/data/workspace/drawing.cljs index 1fc7186e9a..522d0150a2 100644 --- a/frontend/src/app/main/data/workspace/drawing.cljs +++ b/frontend/src/app/main/data/workspace/drawing.cljs @@ -42,6 +42,15 @@ (when (= tool :path) (rx/of (start-drawing :path))) + (when (= tool :curve) + (let [stopper (->> stream (rx/filter dwc/interrupt?))] + (->> stream + (rx/take-until stopper) + (rx/filter (ptk/type? ::common/handle-finish-drawing)) + (rx/take 1) + (rx/observe-on :async) + (rx/map #(select-for-drawing tool data))))) + ;; NOTE: comments are a special case and they manage they ;; own interrupt cycle.q (when (and (not= tool :comments) diff --git a/frontend/src/app/main/data/workspace/drawing/common.cljs b/frontend/src/app/main/data/workspace/drawing/common.cljs index fb93c6f5cc..624bbf3084 100644 --- a/frontend/src/app/main/data/workspace/drawing/common.cljs +++ b/frontend/src/app/main/data/workspace/drawing/common.cljs @@ -24,7 +24,8 @@ (ptk/reify ::handle-finish-drawing ptk/WatchEvent (watch [_ state _] - (let [shape (get-in state [:workspace-drawing :object])] + (let [tool (get-in state [:workspace-drawing :tool]) + shape (get-in state [:workspace-drawing :object])] (rx/concat (when (:initialized? shape) (let [page-id (:current-page-id state) @@ -55,7 +56,7 @@ (rx/of (dwu/start-undo-transaction)) (rx/empty)) - (rx/of (dwc/add-shape shape)) + (rx/of (dwc/add-shape shape {:no-select? (= tool :curve)})) (if (= :frame (:type shape)) (->> (uw/ask! {:cmd :selection/query diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index 35e8f44b12..f88972c484 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -142,7 +142,7 @@ show-draw-area? drawing-obj show-gradient-handlers? (= (count selected) 1) show-grids? (contains? layout :display-grid) - show-outlines? (and (nil? transform) (not edition) (not drawing-obj) (not (#{:comments :path} drawing-tool))) + show-outlines? (and (nil? transform) (not edition) (not drawing-obj) (not (#{:comments :path :curve} drawing-tool))) show-pixel-grid? (>= zoom 8) show-presence? page-id show-prototypes? (= options-mode :prototype) From 67c6a042a0900d87e6bcd22f60c80f7b22cba17f Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 4 Feb 2022 09:51:26 +0100 Subject: [PATCH 079/154] :sparkles: Improved incremental selection --- frontend/src/app/main/data/workspace/selection.cljs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/main/data/workspace/selection.cljs b/frontend/src/app/main/data/workspace/selection.cljs index f6bd9a518f..46b554a22a 100644 --- a/frontend/src/app/main/data/workspace/selection.cljs +++ b/frontend/src/app/main/data/workspace/selection.cljs @@ -88,7 +88,9 @@ (rx/merge (->> selrect-stream (rx/map update-selrect)) (->> selrect-stream - (rx/debounce 50) + (rx/buffer-time 100) + (rx/map #(last %)) + (rx/dedupe) (rx/map #(select-shapes-by-current-selrect preserve?)))) (rx/of (update-selrect nil)))))))) From 76b34bb600403ffc10f43b8977ca42f3a29852f4 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 4 Feb 2022 12:52:00 +0100 Subject: [PATCH 080/154] :sparkles: Workspace interactions improvements --- frontend/resources/images/cursors/zoom-in.svg | 1 + .../resources/images/cursors/zoom-out.svg | 1 + frontend/resources/images/cursors/zoom.svg | 1 + .../main/partials/debug-icons-preview.scss | 2 + .../app/main/data/workspace/selection.cljs | 7 +- frontend/src/app/main/ui/cursors.cljs | 3 + .../src/app/main/ui/workspace/viewport.cljs | 14 +-- .../main/ui/workspace/viewport/actions.cljs | 105 ++++++++++-------- .../app/main/ui/workspace/viewport/hooks.cljs | 7 +- .../app/main/ui/workspace/viewport/utils.cljs | 3 + frontend/src/app/worker/selection.cljs | 7 +- 11 files changed, 89 insertions(+), 62 deletions(-) create mode 100644 frontend/resources/images/cursors/zoom-in.svg create mode 100644 frontend/resources/images/cursors/zoom-out.svg create mode 100644 frontend/resources/images/cursors/zoom.svg diff --git a/frontend/resources/images/cursors/zoom-in.svg b/frontend/resources/images/cursors/zoom-in.svg new file mode 100644 index 0000000000..ecd153448a --- /dev/null +++ b/frontend/resources/images/cursors/zoom-in.svg @@ -0,0 +1 @@ + diff --git a/frontend/resources/images/cursors/zoom-out.svg b/frontend/resources/images/cursors/zoom-out.svg new file mode 100644 index 0000000000..65a5a300f2 --- /dev/null +++ b/frontend/resources/images/cursors/zoom-out.svg @@ -0,0 +1 @@ + diff --git a/frontend/resources/images/cursors/zoom.svg b/frontend/resources/images/cursors/zoom.svg new file mode 100644 index 0000000000..9650153fef --- /dev/null +++ b/frontend/resources/images/cursors/zoom.svg @@ -0,0 +1 @@ + diff --git a/frontend/resources/styles/main/partials/debug-icons-preview.scss b/frontend/resources/styles/main/partials/debug-icons-preview.scss index 8ddba1688c..afca851233 100644 --- a/frontend/resources/styles/main/partials/debug-icons-preview.scss +++ b/frontend/resources/styles/main/partials/debug-icons-preview.scss @@ -2,7 +2,9 @@ display: flex; flex-direction: column; overflow: scroll; + height: 100%; } + .debug-icons-preview { display: flex; flex-wrap: wrap; diff --git a/frontend/src/app/main/data/workspace/selection.cljs b/frontend/src/app/main/data/workspace/selection.cljs index 46b554a22a..264874a94c 100644 --- a/frontend/src/app/main/data/workspace/selection.cljs +++ b/frontend/src/app/main/data/workspace/selection.cljs @@ -47,7 +47,7 @@ (assoc-in state [:workspace-local :selrect] selrect)))) (defn handle-area-selection - [preserve?] + [preserve? ignore-groups?] (letfn [(data->selrect [data] (let [start (:start data) stop (:stop data) @@ -91,7 +91,7 @@ (rx/buffer-time 100) (rx/map #(last %)) (rx/dedupe) - (rx/map #(select-shapes-by-current-selrect preserve?)))) + (rx/map #(select-shapes-by-current-selrect preserve? ignore-groups?)))) (rx/of (update-selrect nil)))))))) @@ -218,7 +218,7 @@ ;; --- Select Shapes (By selrect) (defn select-shapes-by-current-selrect - [preserve?] + [preserve? ignore-groups?] (ptk/reify ::select-shapes-by-current-selrect ptk/WatchEvent (watch [_ state _] @@ -237,6 +237,7 @@ :page-id page-id :rect selrect :include-frames? true + :ignore-groups? ignore-groups? :full-frame? true}) (rx/map #(cp/clean-loops objects %)) (rx/map #(into initial-set (filter (comp not blocked?)) %)) diff --git a/frontend/src/app/main/ui/cursors.cljs b/frontend/src/app/main/ui/cursors.cljs index a575750997..2d571ed06e 100644 --- a/frontend/src/app/main/ui/cursors.cljs +++ b/frontend/src/app/main/ui/cursors.cljs @@ -30,6 +30,9 @@ (def pointer-node (cursor-ref :pointer-node 0 0 10 32)) (def resize-alt (cursor-ref :resize-alt)) (def text (cursor-ref :text)) +(def zoom (cursor-ref :zoom)) +(def zoom-in (cursor-ref :zoom-in)) +(def zoom-out (cursor-ref :zoom-out)) ;; Dynamic cursors (def resize-ew (cursor-fn :resize-h 0)) diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index f88972c484..def9a0852d 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -115,21 +115,21 @@ node-editing? (and edition (not= :text (get-in base-objects [edition :type]))) text-editing? (and edition (= :text (get-in base-objects [edition :type]))) - on-click (actions/on-click hover selected edition drawing-path? drawing-tool) + on-click (actions/on-click hover selected edition drawing-path? drawing-tool space?) on-context-menu (actions/on-context-menu hover hover-ids) on-double-click (actions/on-double-click hover hover-ids drawing-path? base-objects edition) on-drag-enter (actions/on-drag-enter) on-drag-over (actions/on-drag-over) on-drop (actions/on-drop file viewport-ref zoom) on-mouse-down (actions/on-mouse-down @hover selected edition drawing-tool text-editing? node-editing? - drawing-path? create-comment? space? viewport-ref zoom) + drawing-path? create-comment? space? viewport-ref zoom panning) on-mouse-up (actions/on-mouse-up disable-paste) on-pointer-down (actions/on-pointer-down) on-pointer-enter (actions/on-pointer-enter in-viewport?) on-pointer-leave (actions/on-pointer-leave in-viewport?) on-pointer-move (actions/on-pointer-move viewport-ref zoom move-stream) on-pointer-up (actions/on-pointer-up) - on-move-selected (actions/on-move-selected hover hover-ids selected) + on-move-selected (actions/on-move-selected hover hover-ids selected space?) on-menu-selected (actions/on-menu-selected hover hover-ids selected) on-frame-enter (actions/on-frame-enter frame-hover) @@ -162,15 +162,13 @@ (hooks/setup-dom-events viewport-ref zoom disable-paste in-viewport?) (hooks/setup-viewport-size viewport-ref) - (hooks/setup-cursor cursor alt? panning drawing-tool drawing-path? node-editing?) + (hooks/setup-cursor cursor alt? ctrl? space? panning drawing-tool drawing-path? node-editing?) (hooks/setup-keyboard alt? ctrl? space?) (hooks/setup-hover-shapes page-id move-stream base-objects transform selected ctrl? hover hover-ids @hover-disabled? zoom) (hooks/setup-viewport-modifiers modifiers base-objects) (hooks/setup-shortcuts node-editing? drawing-path?) (hooks/setup-active-frames base-objects vbox hover active-frames) - - [:div.viewport [:div.viewport-overlays @@ -245,7 +243,7 @@ [:& outline/shape-outlines {:objects base-objects :selected selected - :hover (when (not= :frame (:type @hover)) + :hover (when (or @ctrl? (not= :frame (:type @hover))) #{(or @frame-hover (:id @hover))}) :edition edition :zoom zoom}]) @@ -262,7 +260,7 @@ :shapes selected-shapes :zoom zoom :edition edition - :disable-handlers (or drawing-tool edition) + :disable-handlers (or drawing-tool edition @space?) :on-move-selected on-move-selected :on-context-menu on-menu-selected}]) diff --git a/frontend/src/app/main/ui/workspace/viewport/actions.cljs b/frontend/src/app/main/ui/workspace/viewport/actions.cljs index 4862883743..084f9ec8f4 100644 --- a/frontend/src/app/main/ui/workspace/viewport/actions.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/actions.cljs @@ -28,10 +28,11 @@ (defn on-mouse-down [{:keys [id blocked hidden type]} selected edition drawing-tool text-editing? - node-editing? drawing-path? create-comment? space? viewport-ref zoom] + node-editing? drawing-path? create-comment? space? viewport-ref zoom panning] (mf/use-callback (mf/deps id blocked hidden type selected edition drawing-tool text-editing? - node-editing? drawing-path? create-comment? space? viewport-ref zoom) + node-editing? drawing-path? create-comment? @space? viewport-ref zoom + panning) (fn [bevent] (when (or (dom/class? (dom/get-target bevent) "viewport-controls") (dom/class? (dom/get-target bevent) "viewport-selrect")) @@ -42,62 +43,75 @@ shift? (kbd/shift? event) alt? (kbd/alt? event) - left-click? (= 1 (.-which event)) - middle-click? (= 2 (.-which event)) + left-click? (and (not panning) (= 1 (.-which event))) + middle-click? (and (not panning) (= 2 (.-which event))) frame? (= :frame type) selected? (contains? selected id)] - (when middle-click? - (dom/prevent-default bevent) - (if ctrl? - (let [raw-pt (dom/get-client-position event) - viewport (mf/ref-val viewport-ref) - pt (utils/translate-point-to-viewport viewport zoom raw-pt)] - (st/emit! (dw/start-zooming pt))) - (st/emit! (dw/start-panning)))) + (cond + middle-click? + (do + (dom/prevent-default bevent) + (if ctrl? + (let [raw-pt (dom/get-client-position event) + viewport (mf/ref-val viewport-ref) + pt (utils/translate-point-to-viewport viewport zoom raw-pt)] + (st/emit! (dw/start-zooming pt))) + (st/emit! (dw/start-panning)))) - (when left-click? - (st/emit! (ms/->MouseEvent :down ctrl? shift? alt?)) - (when (and (not= edition id) text-editing?) - (st/emit! dw/clear-edition-mode)) + left-click? + (do + (st/emit! (ms/->MouseEvent :down ctrl? shift? alt?)) - (when (and (not text-editing?) - (not blocked) - (not hidden) - (not create-comment?) - (not drawing-path?)) - (cond - drawing-tool - (st/emit! (dd/start-drawing drawing-tool)) + (when (and (not= edition id) text-editing?) + (st/emit! dw/clear-edition-mode)) - node-editing? - ;; Handle path node area selection - (st/emit! (dwdp/handle-area-selection shift?)) + (when (and (not text-editing?) + (not blocked) + (not hidden) + (not create-comment?) + (not drawing-path?)) + (cond + node-editing? + ;; Handle path node area selection + (st/emit! (dwdp/handle-area-selection shift?)) - @space? - (st/emit! (dw/start-panning)) + (and @space? ctrl?) + (let [raw-pt (dom/get-client-position event) + viewport (mf/ref-val viewport-ref) + pt (utils/translate-point-to-viewport viewport zoom raw-pt)] + (st/emit! (dw/start-zooming pt))) - (or (not id) (and frame? (not selected?))) - (st/emit! (dw/handle-area-selection shift?)) + @space? + (st/emit! (dw/start-panning)) - (not drawing-tool) - (st/emit! (when (or shift? (not selected?)) - (dw/select-shape id shift?)) - (dw/start-move-selected)))))))))) + drawing-tool + (st/emit! (dd/start-drawing drawing-tool)) + + (or (not id) (and frame? (not selected?)) ctrl?) + (st/emit! (dw/handle-area-selection shift? ctrl?)) + + (not drawing-tool) + (st/emit! (when (or shift? (not selected?)) + (dw/select-shape id shift?)) + (dw/start-move-selected))))))))))) (defn on-move-selected - [hover hover-ids selected] + [hover hover-ids selected space?] (mf/use-callback - (mf/deps @hover @hover-ids selected) + (mf/deps @hover @hover-ids selected @space?) (fn [bevent] (let [event (.-nativeEvent bevent) shift? (kbd/shift? event) + ctrl? (kbd/ctrl? event) left-click? (= 1 (.-which event))] (when (and left-click? + (not ctrl?) (not shift?) + (not @space?) (or (not @hover) (= :frame (:type @hover)) (some #(contains? selected %) @hover-ids))) @@ -130,9 +144,9 @@ (reset! frame-hover nil)))) (defn on-click - [hover selected edition drawing-path? drawing-tool] + [hover selected edition drawing-path? drawing-tool space?] (mf/use-callback - (mf/deps @hover selected edition drawing-path? drawing-tool) + (mf/deps @hover selected edition drawing-path? drawing-tool @space?) (fn [event] (when (or (dom/class? (dom/get-target event) "viewport-controls") (dom/class? (dom/get-target event) "viewport-selrect")) @@ -147,7 +161,8 @@ (when (and hovering? (not shift?) - (not frame?) + (or ctrl? (not frame?)) + (not @space?) (not selected?) (not edition) (not drawing-path?) @@ -229,17 +244,17 @@ middle-click? (= 2 (.-which event))] (when left-click? - (st/emit! (dw/finish-panning) - (ms/->MouseEvent :up ctrl? shift? alt?))) + (st/emit! (ms/->MouseEvent :up ctrl? shift? alt?))) (when middle-click? (dom/prevent-default event) ;; We store this so in Firefox the middle button won't do a paste of the content (reset! disable-paste true) - (timers/schedule #(reset! disable-paste false)) - (st/emit! (dw/finish-panning) - (dw/finish-zooming))))))) + (timers/schedule #(reset! disable-paste false))) + + (st/emit! (dw/finish-panning) + (dw/finish-zooming)))))) (defn on-pointer-enter [in-viewport?] (mf/use-callback diff --git a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs index 21ea3e7001..49c1d9315c 100644 --- a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs @@ -57,13 +57,14 @@ ;; We schedule the event so it fires after `initialize-page` event (timers/schedule #(st/emit! (dw/initialize-viewport size))))))) -(defn setup-cursor [cursor alt? panning drawing-tool drawing-path? path-editing?] +(defn setup-cursor [cursor alt? ctrl? space? panning drawing-tool drawing-path? path-editing?] (mf/use-effect - (mf/deps @cursor @alt? panning drawing-tool drawing-path? path-editing?) + (mf/deps @cursor @alt? @ctrl? @space? panning drawing-tool drawing-path? path-editing?) (fn [] (let [new-cursor (cond - panning (utils/get-cursor :hand) + (and @ctrl? @space?) (utils/get-cursor :zoom) + (or panning @space?) (utils/get-cursor :hand) (= drawing-tool :comments) (utils/get-cursor :comments) (= drawing-tool :frame) (utils/get-cursor :create-artboard) (= drawing-tool :rect) (utils/get-cursor :create-rectangle) diff --git a/frontend/src/app/main/ui/workspace/viewport/utils.cljs b/frontend/src/app/main/ui/workspace/viewport/utils.cljs index 9c0734afaa..8730610705 100644 --- a/frontend/src/app/main/ui/workspace/viewport/utils.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/utils.cljs @@ -179,4 +179,7 @@ :pencil cur/pencil :create-shape cur/create-shape :duplicate cur/duplicate + :zoom cur/zoom + :zoom-in cur/zoom-in + :zooom-out cur/zoom-out cur/pointer-inner)) diff --git a/frontend/src/app/worker/selection.cljs b/frontend/src/app/worker/selection.cljs index d0b2290341..ed0412f86e 100644 --- a/frontend/src/app/worker/selection.cljs +++ b/frontend/src/app/worker/selection.cljs @@ -105,7 +105,7 @@ (assoc data :index index :z-index z-index))) (defn- query-index - [{index :index z-index :z-index} rect frame-id full-frame? include-frames? clip-children? reverse?] + [{index :index z-index :z-index} rect frame-id full-frame? include-frames? ignore-groups? clip-children? reverse?] (let [result (-> (qdt/search index (clj->js rect)) (es6-iterator-seq)) @@ -117,6 +117,7 @@ (or (not frame-id) (= frame-id (:frame-id shape))) (case (:type shape) :frame include-frames? + (:bool :group) (not ignore-groups?) true) (or (not full-frame?) @@ -189,10 +190,10 @@ nil) (defmethod impl/handler :selection/query - [{:keys [page-id rect frame-id reverse? full-frame? include-frames? clip-children?] + [{:keys [page-id rect frame-id reverse? full-frame? include-frames? ignore-groups? clip-children?] :or {reverse? false full-frame? false include-frames? false clip-children? true} :as message}] (when-let [index (get @state page-id)] - (query-index index rect frame-id full-frame? include-frames? clip-children? reverse?))) + (query-index index rect frame-id full-frame? include-frames? ignore-groups? clip-children? reverse?))) (defmethod impl/handler :selection/query-z-index [{:keys [page-id objects ids]}] From 1abcd5819bdf73c23b506b1b1c34b348823e95c0 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 4 Feb 2022 15:57:11 +0100 Subject: [PATCH 081/154] :sparkles: Enter in dashboard to open files --- frontend/src/app/main/data/dashboard.cljs | 13 ++++++++++++- frontend/src/app/main/ui/dashboard.cljs | 15 ++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/main/data/dashboard.cljs b/frontend/src/app/main/data/dashboard.cljs index c986116f83..6e34b0f5d9 100644 --- a/frontend/src/app/main/data/dashboard.cljs +++ b/frontend/src/app/main/data/dashboard.cljs @@ -834,4 +834,15 @@ action (if in-project? file-created project-created)] (->> (rp/mutation! action-name params) - (rx/map action)))))) \ No newline at end of file + (rx/map action)))))) + +(defn open-selected-file + [] + (ptk/reify ::open-selected-file + ptk/WatchEvent + (watch [_ state _] + (let [files (get-in state [:dashboard-local :selected-files])] + (if (= 1 (count files)) + (let [file (get-in state [:dashboard-files (first files)])] + (rx/of (go-to-workspace file))) + (rx/empty)))))) diff --git a/frontend/src/app/main/ui/dashboard.cljs b/frontend/src/app/main/ui/dashboard.cljs index d27bca6ba8..a377a70df8 100644 --- a/frontend/src/app/main/ui/dashboard.cljs +++ b/frontend/src/app/main/ui/dashboard.cljs @@ -22,7 +22,10 @@ [app.main.ui.dashboard.sidebar :refer [sidebar]] [app.main.ui.dashboard.team :refer [team-settings-page team-members-page]] [app.main.ui.hooks :as hooks] - [rumext.alpha :as mf])) + [app.util.keyboard :as kbd] + [goog.events :as events] + [rumext.alpha :as mf]) + (:import goog.events.EventType)) (defn ^boolean uuid-str? [s] @@ -95,6 +98,16 @@ (mf/with-effect [team-id] (st/emit! (dd/initialize {:id team-id}))) + (mf/use-effect + (fn [] + (let [events [(events/listen goog/global EventType.KEYDOWN + (fn [event] + (when (kbd/enter? event) + (st/emit! (dd/open-selected-file)))))]] + (fn [] + (doseq [key events] + (events/unlistenByKey key)))))) + [:& (mf/provider ctx/current-team-id) {:value team-id} [:& (mf/provider ctx/current-project-id) {:value project-id} ;; NOTE: dashboard events and other related functions assumes From 2b1c8cafe981b0ec96680116842468592b083616 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 7 Feb 2022 12:35:24 +0100 Subject: [PATCH 082/154] :sparkles: Improved color picker --- .../src/app/main/data/workspace/colors.cljs | 10 +++--- .../app/main/ui/workspace/colorpicker.cljs | 4 +-- .../sidebar/options/menus/shadow.cljs | 6 ++-- .../src/app/main/ui/workspace/viewport.cljs | 12 +++---- .../ui/workspace/viewport/pixel_overlay.cljs | 7 ++-- .../ui/workspace/viewport/scroll_bars.cljs | 36 ++++++++++--------- 6 files changed, 39 insertions(+), 36 deletions(-) diff --git a/frontend/src/app/main/data/workspace/colors.cljs b/frontend/src/app/main/data/workspace/colors.cljs index 5c9d01fab4..0cb4eca12d 100644 --- a/frontend/src/app/main/data/workspace/colors.cljs +++ b/frontend/src/app/main/data/workspace/colors.cljs @@ -206,11 +206,9 @@ stop? (rx/filter (ptk/type? ::stop-picker) stream) update-events - (fn [[color shift?]] - (rx/of (if shift? - (change-stroke ids color) - (change-fill ids color)) - (stop-picker)))] + (fn [color] + (rx/of (change-fill ids color)))] + (rx/merge ;; Stream that updates the stroke/width and stops if `esc` pressed (->> sub @@ -224,7 +222,7 @@ ptk/UpdateEvent (update [_ state] - (let [handle-change-color (fn [color shift?] (rx/push! sub [color shift?]))] + (let [handle-change-color (fn [color] (rx/push! sub color))] (-> state (assoc-in [:workspace-local :picking-color?] true) (assoc ::md/modal {:id (random-uuid) diff --git a/frontend/src/app/main/ui/workspace/colorpicker.cljs b/frontend/src/app/main/ui/workspace/colorpicker.cljs index 2b34513072..1b5046eeb7 100644 --- a/frontend/src/app/main/ui/workspace/colorpicker.cljs +++ b/frontend/src/app/main/ui/workspace/colorpicker.cljs @@ -226,9 +226,9 @@ ;; Updates color when used el pixel picker (mf/use-effect - (mf/deps picking-color? picked-color-select) + (mf/deps picking-color? picked-color picked-color-select) (fn [] - (when (and picking-color? picked-color-select) + (when (and picking-color? picked-color picked-color-select) (let [[r g b alpha] picked-color hex (uc/rgb->hex [r g b]) [h s v] (uc/hex->hsv hex)] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs index f7e126c705..6ad85d7fe0 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs @@ -77,13 +77,11 @@ update-color (fn [index] - (fn [color opacity] + (fn [color] (let [color (dissoc color :id :file-id :gradient)] (st/emit! (dch/update-shapes ids - #(-> % - (assoc-in [:shadow index :color] color) - (assoc-in [:shadow index :opacity] opacity))))))) + #(assoc-in % [:shadow index :color] color)))))) detach-color (fn [index] diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index def9a0852d..16aff53f2c 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -248,12 +248,6 @@ :edition edition :zoom zoom}]) - [:& scroll-bars/viewport-scrollbars - {:objects base-objects - :zoom zoom - :vbox vbox - :viewport-ref viewport-ref}] - (when show-selection-handlers? [:& selection/selection-handlers {:selected selected @@ -361,6 +355,12 @@ [:& widgets/viewport-actions] + [:& scroll-bars/viewport-scrollbars + {:objects base-objects + :zoom zoom + :vbox vbox + :viewport-ref viewport-ref}] + (when show-rules? [:* [:& rules/rules diff --git a/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs b/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs index fb35ba9976..9fda55c82b 100644 --- a/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs @@ -10,6 +10,7 @@ [app.common.uuid :as uuid] [app.main.data.modal :as modal] [app.main.data.workspace.colors :as dwc] + [app.main.data.workspace.undo :as dwu] [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.cursors :as cur] @@ -101,14 +102,16 @@ (fn [event] (dom/prevent-default event) (dom/stop-propagation event) - (st/emit! (dwc/pick-color-select true (kbd/shift? event))))) + (st/emit! (dwu/start-undo-transaction) + (dwc/pick-color-select true (kbd/shift? event))))) handle-mouse-up-picker (mf/use-callback (fn [event] (dom/prevent-default event) (dom/stop-propagation event) - (st/emit! (dwc/stop-picker)) + (st/emit! (dwu/commit-undo-transaction) + (dwc/stop-picker)) (modal/disallow-click-outside!))) handle-image-load diff --git a/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs b/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs index 70aa9746c2..61830c5665 100644 --- a/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs @@ -157,20 +157,20 @@ (mf/use-callback (mf/deps v-scrollbar-y scrollbar-height) (fn [event axis] - (let [viewport (mf/ref-val viewport-ref) - start-pt (dom/get-client-position event) - new-v-scrollbar-y (-> (utils/translate-point-to-viewport-raw viewport zoom start-pt) :y) - new-h-scrollbar-x (-> (utils/translate-point-to-viewport-raw viewport zoom start-pt) :x) - v-scrollbar-y-padding (- v-scrollbar-y new-v-scrollbar-y) - h-scrollbar-x-padding (- h-scrollbar-x new-h-scrollbar-x) - vbox-rect {:x vbox-x - :y vbox-y - :x1 vbox-x - :y1 vbox-y - :x2 (+ vbox-x (:width vbox)) - :y2 (+ vbox-y (:height vbox)) - :width (:width vbox) - :height (:height vbox)} + (let [viewport (mf/ref-val viewport-ref) + start-pt (dom/get-client-position event) + new-v-scrollbar-y (-> (utils/translate-point-to-viewport-raw viewport zoom start-pt) :y) + new-h-scrollbar-x (-> (utils/translate-point-to-viewport-raw viewport zoom start-pt) :x) + v-scrollbar-y-padding (- v-scrollbar-y new-v-scrollbar-y) + h-scrollbar-x-padding (- h-scrollbar-x new-h-scrollbar-x) + vbox-rect {:x vbox-x + :y vbox-y + :x1 vbox-x + :y1 vbox-y + :x2 (+ vbox-x (:width vbox)) + :y2 (+ vbox-y (:height vbox)) + :width (:width vbox) + :height (:height vbox)} containing-rect (gpr/join-selrects [base-objects-rect vbox-rect]) height-factor (/ (:height containing-rect) vbox-height) width-factor (/ (:width containing-rect) vbox-width)] @@ -207,7 +207,9 @@ :height scrollbar-height :fill-opacity 0.4 :x v-scrollbar-x - :y v-scrollbar-y}]]) + :y v-scrollbar-y + :style {:stroke "white" + :stroke-width 0.15}}]]) (when show-h-scroll? [:g.h-scroll [:rect {:on-mouse-move #(on-mouse-move % :x) @@ -219,4 +221,6 @@ :height (* inv-zoom 7) :fill-opacity 0.4 :x h-scrollbar-x - :y h-scrollbar-y}]])])) + :y h-scrollbar-y + :style {:stroke "white" + :stroke-width 0.15}}]])])) From af8e9058a3c3fff781a3447de8c8c864ea51415f Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 7 Feb 2022 15:05:38 +0100 Subject: [PATCH 083/154] :sparkles: Move selection with space --- CHANGES.md | 1 + .../src/app/main/data/workspace/drawing.cljs | 4 +- .../app/main/data/workspace/selection.cljs | 90 ++++++++++--------- 3 files changed, 50 insertions(+), 45 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 108078dca6..bcfe100841 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -22,6 +22,7 @@ - Add update components in bulk option in context menu [Taiga #1975](https://tree.taiga.io/project/penpot/us/1975) - Create first E2E tests [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608), [Taiga #2608](https://tree.taiga.io/project/penpot/task/2608) - Redesign of workspace toolbars [Taiga #2319](https://tree.taiga.io/project/penpot/us/2319) +- Graphic Tablet usability improvements [Taiga #1913](https://tree.taiga.io/project/penpot/us/1913) ### :bug: Bugs fixed diff --git a/frontend/src/app/main/data/workspace/drawing.cljs b/frontend/src/app/main/data/workspace/drawing.cljs index 522d0150a2..c333a7a293 100644 --- a/frontend/src/app/main/data/workspace/drawing.cljs +++ b/frontend/src/app/main/data/workspace/drawing.cljs @@ -45,11 +45,11 @@ (when (= tool :curve) (let [stopper (->> stream (rx/filter dwc/interrupt?))] (->> stream - (rx/take-until stopper) (rx/filter (ptk/type? ::common/handle-finish-drawing)) (rx/take 1) (rx/observe-on :async) - (rx/map #(select-for-drawing tool data))))) + (rx/map #(select-for-drawing tool data)) + (rx/take-until stopper)))) ;; NOTE: comments are a special case and they manage they ;; own interrupt cycle.q diff --git a/frontend/src/app/main/data/workspace/selection.cljs b/frontend/src/app/main/data/workspace/selection.cljs index 264874a94c..916103b03a 100644 --- a/frontend/src/app/main/data/workspace/selection.cljs +++ b/frontend/src/app/main/data/workspace/selection.cljs @@ -9,7 +9,6 @@ [app.common.data :as d] [app.common.geom.point :as gpt] [app.common.geom.shapes :as geom] - [app.common.math :as mth] [app.common.pages :as cp] [app.common.spec :as us] [app.common.spec.interactions :as cti] @@ -48,52 +47,57 @@ (defn handle-area-selection [preserve? ignore-groups?] - (letfn [(data->selrect [data] - (let [start (:start data) - stop (:stop data) - start-x (min (:x start) (:x stop)) - start-y (min (:y start) (:y stop)) - end-x (max (:x start) (:x stop)) - end-y (max (:y start) (:y stop))] - {:type :rect - :x start-x - :y start-y - :width (mth/abs (- end-x start-x)) - :height (mth/abs (- end-y start-y))}))] - (ptk/reify ::handle-area-selection - ptk/WatchEvent - (watch [_ state stream] - (let [zoom (get-in state [:workspace-local :zoom] 1) - stop? (fn [event] (or (dwc/interrupt? event) (ms/mouse-up? event))) - stoper (->> stream (rx/filter stop?)) + (ptk/reify ::handle-area-selection + ptk/WatchEvent + (watch [_ state stream] + (let [zoom (get-in state [:workspace-local :zoom] 1) + stop? (fn [event] (or (dwc/interrupt? event) (ms/mouse-up? event))) + stoper (->> stream (rx/filter stop?)) - calculate-selrect - (fn [data pos] - (if data - (assoc data :stop pos) - {:start pos :stop pos})) + init-selrect + {:type :rect + :x (:x @ms/mouse-position) + :y (:y @ms/mouse-position) + :width 0 + :height 0} - selrect-stream - (->> ms/mouse-position - (rx/scan calculate-selrect nil) - (rx/map data->selrect) - (rx/filter #(or (> (:width %) (/ 10 zoom)) - (> (:height %) (/ 10 zoom)))) - (rx/take-until stoper))] - (rx/concat - (if preserve? - (rx/empty) - (rx/of (deselect-all))) + calculate-selrect + (fn [selrect [delta space?]] + (if space? + (-> selrect + (update :x + (:x delta)) + (update :y + (:y delta))) - (rx/merge - (->> selrect-stream (rx/map update-selrect)) - (->> selrect-stream - (rx/buffer-time 100) - (rx/map #(last %)) - (rx/dedupe) - (rx/map #(select-shapes-by-current-selrect preserve? ignore-groups?)))) + (-> selrect + (update :width + (:x delta)) + (update :height + (:y delta))))) - (rx/of (update-selrect nil)))))))) + selrect-stream + (->> ms/mouse-position + (rx/buffer 2 1) + (rx/map (fn [[from to]] (when (and from to) (gpt/to-vec from to)))) + (rx/filter some?) + (rx/with-latest-from ms/keyboard-space) + (rx/scan calculate-selrect init-selrect) + (rx/filter #(or (> (:width %) (/ 10 zoom)) + (> (:height %) (/ 10 zoom)))) + (rx/take-until stoper))] + (rx/concat + (if preserve? + (rx/empty) + (rx/of (deselect-all))) + + (rx/merge + (->> selrect-stream + (rx/map update-selrect)) + + (->> selrect-stream + (rx/buffer-time 100) + (rx/map #(last %)) + (rx/dedupe) + (rx/map #(select-shapes-by-current-selrect preserve? ignore-groups?)))) + + (rx/of (update-selrect nil))))))) ;; --- Toggle shape's selection status (selected or deselected) From 4caf278da575cdf9996ea1a71c2afa3cf28ee930 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 7 Feb 2022 16:34:31 +0100 Subject: [PATCH 084/154] :bug: Fix problems with handoff layout --- frontend/resources/styles/main/layouts/handoff.scss | 3 +++ 1 file changed, 3 insertions(+) diff --git a/frontend/resources/styles/main/layouts/handoff.scss b/frontend/resources/styles/main/layouts/handoff.scss index 59d981d227..3f8b6f1511 100644 --- a/frontend/resources/styles/main/layouts/handoff.scss +++ b/frontend/resources/styles/main/layouts/handoff.scss @@ -61,18 +61,21 @@ $width-settings-bar: 256px; .settings-bar { transition: width 0.2s; + width: $width-settings-bar; &.expanded { width: $width-settings-bar * 3; } &.settings-bar-right, &.settings-bar-left { + height: 100%; position: relative; left: unset; right: unset; .settings-bar-inside { padding-top: 0.5rem; + overflow-y: auto; } } } From e665f4e285967374ef7ff5b0992a84ef967894ec Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 8 Feb 2022 00:18:48 +0100 Subject: [PATCH 085/154] :bug: Log correct deleted number value on recheck task --- backend/src/app/storage.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/app/storage.clj b/backend/src/app/storage.clj index 947d69776d..413b33882e 100644 --- a/backend/src/app/storage.clj +++ b/backend/src/app/storage.clj @@ -463,7 +463,7 @@ (l/info :task "recheck" :action "recheck items" :processed n - :deleted n) + :deleted d) {:processed n :deleted d}))))))) (def sql:retrieve-pending-to-recheck From 39b05f5f9f060bdc05c57e29e823a5a623cae6f3 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 8 Feb 2022 12:11:56 +0100 Subject: [PATCH 086/154] :bug: Fix problem with selection rect --- .../app/main/data/workspace/selection.cljs | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/frontend/src/app/main/data/workspace/selection.cljs b/frontend/src/app/main/data/workspace/selection.cljs index 916103b03a..5214d2ed52 100644 --- a/frontend/src/app/main/data/workspace/selection.cljs +++ b/frontend/src/app/main/data/workspace/selection.cljs @@ -9,6 +9,7 @@ [app.common.data :as d] [app.common.geom.point :as gpt] [app.common.geom.shapes :as geom] + [app.common.math :as mth] [app.common.pages :as cp] [app.common.spec :as us] [app.common.spec.interactions :as cti] @@ -56,21 +57,27 @@ init-selrect {:type :rect - :x (:x @ms/mouse-position) - :y (:y @ms/mouse-position) - :width 0 - :height 0} + :x1 (:x @ms/mouse-position) + :y1 (:y @ms/mouse-position) + :x2 (:x @ms/mouse-position) + :y2 (:y @ms/mouse-position)} calculate-selrect (fn [selrect [delta space?]] - (if space? - (-> selrect - (update :x + (:x delta)) - (update :y + (:y delta))) + (let [result + (cond-> selrect + :always + (-> (update :x2 + (:x delta)) + (update :y2 + (:y delta))) - (-> selrect - (update :width + (:x delta)) - (update :height + (:y delta))))) + space? + (-> (update :x1 + (:x delta)) + (update :y1 + (:y delta))))] + (assoc result + :x (min (:x1 result) (:x2 result)) + :y (min (:y1 result) (:y2 result)) + :width (mth/abs (- (:x2 result) (:x1 result))) + :height (mth/abs (- (:y2 result) (:y1 result)))))) selrect-stream (->> ms/mouse-position From a81b6db09355418dd1bda8ea56bed9d25e360d45 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 8 Feb 2022 12:30:52 +0100 Subject: [PATCH 087/154] :bug: Fix problem with svg icons --- frontend/src/app/main/ui/shapes/path.cljs | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/frontend/src/app/main/ui/shapes/path.cljs b/frontend/src/app/main/ui/shapes/path.cljs index c7d0b3e0fb..36155fc7e8 100644 --- a/frontend/src/app/main/ui/shapes/path.cljs +++ b/frontend/src/app/main/ui/shapes/path.cljs @@ -7,7 +7,6 @@ (ns app.main.ui.shapes.path (:require [app.common.logging :as log] - [app.main.ui.context :as muc] [app.main.ui.shapes.attrs :as attrs] [app.main.ui.shapes.custom-stroke :refer [shape-custom-stroke]] [app.util.object :as obj] @@ -19,10 +18,7 @@ (mf/defc path-shape {::mf/wrap-props false} [props] - (let [shape (-> (unchecked-get props "shape") - (dissoc :fill-color) - (dissoc :fill-opacity) - (dissoc :fill-image)) + (let [shape (unchecked-get props "shape") content (:content shape) pdata (mf/with-memo [content] (try @@ -34,8 +30,6 @@ :cause e) ""))) - render-id (mf/use-ctx muc/render-ctx) - shape (assoc shape :fill-image (str "fill-image-" render-id)) props (-> (attrs/extract-style-attrs shape) (obj/set! "d" pdata))] From 40b005f46ef7eec1b6d7a4d76d563dff0984634c Mon Sep 17 00:00:00 2001 From: Eva Date: Tue, 8 Feb 2022 12:08:09 +0100 Subject: [PATCH 088/154] :bug: fix color palette overflow --- CHANGES.md | 1 + frontend/src/app/main/ui/workspace/colorpicker.cljs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 589b6dfbfa..45533af508 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -26,6 +26,7 @@ ### :bug: Bugs fixed +- Fixed color palette outside viewport [Taiga #2715](https://tree.taiga.io/project/penpot/issue/2715) - Fixed handoff shadow type text [Taiga #2717](https://tree.taiga.io/project/penpot/issue/2717) ### :arrow_up: Deps updates diff --git a/frontend/src/app/main/ui/workspace/colorpicker.cljs b/frontend/src/app/main/ui/workspace/colorpicker.cljs index 1b5046eeb7..3f4f18a614 100644 --- a/frontend/src/app/main/ui/workspace/colorpicker.cljs +++ b/frontend/src/app/main/ui/workspace/colorpicker.cljs @@ -358,7 +358,7 @@ "Calculates the style properties for the given coordinates and position" [{vh :height} position x y] (let [;; picker height in pixels - h 360 + h 430 ;; Checks for overflow outside the viewport height overflow-fix (max 0 (+ y (- 50) h (- vh)))] (cond From 048ab9a0fc7a9070e86e47f3eb479f6ca23dc266 Mon Sep 17 00:00:00 2001 From: Eva Date: Tue, 8 Feb 2022 14:10:11 +0100 Subject: [PATCH 089/154] :bug: fix missing translace string --- CHANGES.md | 1 + frontend/translations/en.po | 4 ++++ frontend/translations/es.po | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 45533af508..6f2efbca68 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -27,6 +27,7 @@ ### :bug: Bugs fixed - Fixed color palette outside viewport [Taiga #2715](https://tree.taiga.io/project/penpot/issue/2715) +- Fixed missing translate string [Taiga #2780](https://tree.taiga.io/project/penpot/issue/2780) - Fixed handoff shadow type text [Taiga #2717](https://tree.taiga.io/project/penpot/issue/2717) ### :arrow_up: Deps updates diff --git a/frontend/translations/en.po b/frontend/translations/en.po index b3e1f68ede..1c9460c6e7 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -3284,6 +3284,10 @@ msgstr "Assets" msgid "workspace.toolbar.color-palette" msgstr "Color Palette (%s)" +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.text-palette" +msgstr "Typographies (%s)" + #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Comments (%s)" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index b771a1376d..d1dc8d49e2 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -3297,6 +3297,10 @@ msgstr "Recursos" msgid "workspace.toolbar.color-palette" msgstr "Paleta de colores (%s)" +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.text-palette" +msgstr "Tipografías (%s)" + #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Comentarios (%s)" From 24724e3340d190caa973bf6e2eb53412d55959f0 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 7 Feb 2022 12:00:26 +0100 Subject: [PATCH 090/154] :paperclip: Add helpful require on user ns --- backend/dev/user.clj | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/dev/user.clj b/backend/dev/user.clj index 5e7fdcb94b..88fa512754 100644 --- a/backend/dev/user.clj +++ b/backend/dev/user.clj @@ -6,6 +6,7 @@ (ns user (:require + [app.common.data :as d] [app.common.exceptions :as ex] [app.common.geom.matrix :as gmt] [app.common.perf :as perf] From a1da4d42331b46346fd68f870ac48ade14ee66a4 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 7 Feb 2022 12:37:54 +0100 Subject: [PATCH 091/154] :recycle: Refactor common.page.helpers namespace. --- backend/src/app/rpc/queries/files.clj | 11 +- common/src/app/common/pages.cljc | 50 - common/src/app/common/pages/changes.cljc | 13 +- .../src/app/common/pages/changes_builder.cljc | 7 +- common/src/app/common/pages/helpers.cljc | 501 +++++---- common/src/app/common/pages/indices.cljc | 17 +- common/src/app/common/spec/page.cljc | 1 - frontend/src/app/main/data/viewer.cljs | 4 +- frontend/src/app/main/data/workspace.cljs | 48 +- .../src/app/main/data/workspace/bool.cljs | 14 +- .../src/app/main/data/workspace/common.cljs | 31 +- .../app/main/data/workspace/drawing/box.cljs | 4 +- .../main/data/workspace/drawing/curve.cljs | 8 +- .../src/app/main/data/workspace/groups.cljs | 19 +- .../app/main/data/workspace/interactions.cljs | 14 +- .../app/main/data/workspace/libraries.cljs | 123 ++- .../data/workspace/libraries_helpers.cljs | 169 ++- .../app/main/data/workspace/path/changes.cljs | 4 +- .../app/main/data/workspace/path/drawing.cljs | 8 +- .../data/workspace/path/shapes_to_path.cljs | 4 +- .../app/main/data/workspace/persistence.cljs | 3 +- .../app/main/data/workspace/selection.cljs | 63 +- .../main/data/workspace/state_helpers.cljs | 4 +- .../app/main/data/workspace/svg_upload.cljs | 8 +- .../src/app/main/data/workspace/texts.cljs | 17 +- .../app/main/data/workspace/transforms.cljs | 21 +- frontend/src/app/main/refs.cljs | 18 +- frontend/src/app/main/render.cljs | 35 +- frontend/src/app/main/snap.cljs | 6 +- frontend/src/app/main/ui/render.cljs | 6 +- .../app/main/ui/viewer/handoff/render.cljs | 14 +- .../src/app/main/ui/viewer/interactions.cljs | 5 +- frontend/src/app/main/ui/viewer/shapes.cljs | 7 +- .../src/app/main/ui/workspace/header.cljs | 8 +- .../src/app/main/ui/workspace/shapes.cljs | 31 +- .../app/main/ui/workspace/shapes/frame.cljs | 4 +- .../app/main/ui/workspace/sidebar/assets.cljs | 978 +++++++++--------- .../app/main/ui/workspace/sidebar/layers.cljs | 31 +- .../sidebar/options/menus/component.cljs | 82 +- .../sidebar/options/menus/interactions.cljs | 20 +- .../sidebar/options/menus/typography.cljs | 4 +- .../app/main/ui/workspace/viewport/hooks.cljs | 6 +- .../ui/workspace/viewport/interactions.cljs | 6 +- .../main/ui/workspace/viewport/outline.cljs | 4 +- .../ui/workspace/viewport/scroll_bars.cljs | 11 +- .../ui/workspace/viewport/snap_distances.cljs | 4 +- .../ui/workspace/viewport/snap_points.cljs | 17 +- .../main/ui/workspace/viewport/widgets.cljs | 4 +- frontend/src/app/util/snap_data.cljs | 10 +- frontend/src/app/worker/selection.cljs | 3 +- frontend/src/debug.cljs | 6 +- frontend/test/app/components_basic_test.cljs | 22 +- frontend/test/app/components_sync_test.cljs | 1 - frontend/test/app/test_helpers/libraries.cljs | 72 +- frontend/test/app/test_helpers/pages.cljs | 2 +- 55 files changed, 1235 insertions(+), 1348 deletions(-) diff --git a/backend/src/app/rpc/queries/files.clj b/backend/src/app/rpc/queries/files.clj index 8e22f66371..91e0c4023f 100644 --- a/backend/src/app/rpc/queries/files.clj +++ b/backend/src/app/rpc/queries/files.clj @@ -7,7 +7,7 @@ (ns app.rpc.queries.files (:require [app.common.data :as d] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.pages.migrations :as pmg] [app.common.spec :as us] [app.common.uuid :as uuid] @@ -242,13 +242,10 @@ (defn- trim-file-data [file {:keys [page-id object-id]}] (let [page (get-in file [:data :pages-index page-id]) - objects (->> (:objects page) - (cp/get-object-with-children object-id) - (map #(dissoc % :thumbnail))) - - objects (d/index-by :id objects) + objects (->> (cph/get-children-with-self (:objects page) object-id) + (map #(dissoc % :thumbnail)) + (d/index-by :id)) page (assoc page :objects objects)] - (-> file (update :data assoc :pages-index {page-id page}) (update :data assoc :pages [page-id])))) diff --git a/common/src/app/common/pages.cljc b/common/src/app/common/pages.cljc index 25fe398fe1..3c10910d42 100644 --- a/common/src/app/common/pages.cljc +++ b/common/src/app/common/pages.cljc @@ -10,7 +10,6 @@ [app.common.data :as d] [app.common.pages.changes :as changes] [app.common.pages.common :as common] - [app.common.pages.helpers :as helpers] [app.common.pages.indices :as indices] [app.common.pages.init :as init])) @@ -20,55 +19,6 @@ (d/export common/default-color) (d/export common/component-sync-attrs) -;; Helpers - -(d/export helpers/walk-pages) -(d/export helpers/select-objects) -(d/export helpers/update-object-list) -(d/export helpers/get-component-shape) -(d/export helpers/get-root-shape) -(d/export helpers/make-container) -(d/export helpers/page?) -(d/export helpers/component?) -(d/export helpers/get-container) -(d/export helpers/get-shape) -(d/export helpers/get-component) -(d/export helpers/is-main-of) -(d/export helpers/get-component-root) -(d/export helpers/get-children) -(d/export helpers/get-children-objects) -(d/export helpers/get-object-with-children) -(d/export helpers/select-children) -(d/export helpers/is-shape-grouped) -(d/export helpers/get-parent) -(d/export helpers/get-parents) -(d/export helpers/get-frame) -(d/export helpers/clean-loops) -(d/export helpers/calculate-invalid-targets) -(d/export helpers/valid-frame-target) -(d/export helpers/position-on-parent) -(d/export helpers/insert-at-index) -(d/export helpers/append-at-the-end) -(d/export helpers/select-toplevel-shapes) -(d/export helpers/select-frames) -(d/export helpers/clone-object) -(d/export helpers/indexed-shapes) -(d/export helpers/expand-region-selection) -(d/export helpers/frame-id-by-position) -(d/export helpers/set-touched-group) -(d/export helpers/touched-group?) -(d/export helpers/get-base-shape) -(d/export helpers/is-parent?) -(d/export helpers/get-index-in-parent) -(d/export helpers/split-path) -(d/export helpers/join-path) -(d/export helpers/parse-path-name) -(d/export helpers/merge-path-item) -(d/export helpers/compact-path) -(d/export helpers/compact-name) -(d/export helpers/unframed-shape?) -(d/export helpers/children-seq) - ;; Indices (d/export indices/calculate-z-index) (d/export indices/update-z-index) diff --git a/common/src/app/common/pages/changes.cljc b/common/src/app/common/pages/changes.cljc index 87283db389..e950bc7ccb 100644 --- a/common/src/app/common/pages/changes.cljc +++ b/common/src/app/common/pages/changes.cljc @@ -160,7 +160,7 @@ (let [lookup (d/getf objects) update-fn #(d/update-when %1 %2 update-group %1) xform (comp - (mapcat #(cons % (cph/get-parents % objects))) + (mapcat #(cons % (cph/get-parent-ids objects %))) (filter #(contains? #{:group :bool} (-> % lookup :type))) (distinct))] @@ -202,11 +202,16 @@ (defmethod process-change :mov-objects [data {:keys [parent-id shapes index page-id component-id ignore-touched]}] - (letfn [(is-valid-move? [objects shape-id] - (let [invalid-targets (cph/calculate-invalid-targets shape-id objects)] + (letfn [(calculate-invalid-targets [objects shape-id] + (let [reduce-fn #(into %1 (calculate-invalid-targets objects %2))] + (->> (get-in objects [shape-id :shapes]) + (reduce reduce-fn #{shape-id})))) + + (is-valid-move? [objects shape-id] + (let [invalid-targets (calculate-invalid-targets objects shape-id)] (and (contains? objects shape-id) (not (invalid-targets parent-id)) - (cph/valid-frame-target shape-id parent-id objects)))) + (cph/valid-frame-target? objects parent-id shape-id)))) (insert-items [prev-shapes index shapes] (let [prev-shapes (or prev-shapes [])] diff --git a/common/src/app/common/pages/changes_builder.cljc b/common/src/app/common/pages/changes_builder.cljc index b808cbf61c..e0c3b27154 100644 --- a/common/src/app/common/pages/changes_builder.cljc +++ b/common/src/app/common/pages/changes_builder.cljc @@ -7,8 +7,7 @@ (ns app.common.pages.changes-builder (:require [app.common.data :as d] - [app.common.pages :as cp] - [app.common.pages.helpers :as h])) + [app.common.pages.helpers :as cph])) ;; Auxiliary functions to help create a set of changes (undo + redo) @@ -78,7 +77,7 @@ :page-id (::page-id (meta changes)) :parent-id (:parent-id shape) :shapes [(:id shape)] - :index (cp/position-on-parent (:id shape) objects)}))] + :index (cph/get-position-on-parent objects (:id shape))}))] (-> changes (update :redo-changes conj set-parent-change) @@ -171,7 +170,7 @@ :page-id page-id :parent-id (:parent-id shape) :shapes [id] - :index (h/position-on-parent id objects) + :index (cph/get-position-on-parent objects id) :ignore-touched true})))] (-> changes diff --git a/common/src/app/common/pages/helpers.cljc b/common/src/app/common/pages/helpers.cljc index c529051f82..4fdd8e4b45 100644 --- a/common/src/app/common/pages/helpers.cljc +++ b/common/src/app/common/pages/helpers.cljc @@ -9,43 +9,234 @@ [app.common.data :as d] [app.common.geom.shapes :as gsh] [app.common.spec :as us] - [app.common.spec.interactions :as cti] + [app.common.spec.page :as spec.page] [app.common.uuid :as uuid] [cuerdas.core :as str])) -(defn walk-pages - "Go through all pages of a file and apply a function to each one" - ;; The function receives two parameters (page-id and page), and - ;; returns the updated page. - [f data] - (update data :pages-index #(d/mapm f %))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GENERIC SHAPE SELECTORS AND PREDICATES +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defn select-objects - "Get a list of all objects in a container (a page or a component) that - satisfy a condition" - [f container] - (filter f (vals (get container :objects)))) +(defn ^boolean root-frame? + [{:keys [id type]}] + (and (= type :frame) + (= id uuid/zero))) -(defn update-object-list - "Update multiple objects in a page at once" - [page objects-list] - (update page :objects - #(into % (d/index-by :id objects-list)))) +(defn ^boolean frame-shape? + [{:keys [type]}] + (= type :frame)) + +(defn ^boolean group-shape? + [{:keys [type]}] + (= type :group)) + +(defn ^boolean text-shape? + [{:keys [type]}] + (= type :text)) + +(defn ^boolean unframed-shape? + "Checks if it's a non-frame shape in the top level." + [shape] + (and (not (frame-shape? shape)) + (= (:frame-id shape) uuid/zero))) + +(defn get-shape + [container shape-id] + (us/assert ::spec.page/container container) + (us/assert ::us/uuid shape-id) + (-> container + (get :objects) + (get shape-id))) + +(defn get-children-ids + [objects id] + (if-let [shapes (-> (get objects id) :shapes (some-> vec))] + (into shapes (mapcat #(get-children-ids objects %)) shapes) + [])) + +(defn get-children + [objects id] + (mapv (d/getf objects) (get-children-ids objects id))) + +(defn get-children-with-self + [objects id] + (let [lookup (d/getf objects)] + (into [(lookup id)] (map lookup) (get-children-ids objects id)))) + +(defn get-parent + "Retrieve the id of the parent for the shape-id (if exists)" + [objects id] + (let [lookup (d/getf objects)] + (-> id lookup :parent-id lookup))) + +(defn get-parent-id + "Retrieve the id of the parent for the shape-id (if exists)" + [objects id] + (-> objects (get id) :parent-id)) + +(defn get-parent-ids + "Returns a vector of parents of the specified shape." + [objects shape-id] + (loop [result [] id shape-id] + (if-let [parent-id (->> id (get objects) :parent-id)] + (recur (conj result parent-id) parent-id) + result))) + +(defn get-frame + "Get the frame that contains the shape. If the shape is already a + frame, get itself. If no shape is provided, returns the root frame." + ([objects] + (get objects uuid/zero)) + ([objects shape-or-id] + (cond + (map? shape-or-id) + (if (frame-shape? shape-or-id) + shape-or-id + (get objects (:frame-id shape-or-id))) + + (= uuid/zero shape-or-id) + (get objects uuid/zero) + + :else + (some->> shape-or-id + (get objects) + (get-frame objects))))) + +(defn valid-frame-target? + [objects parent-id shape-id] + (let [shape (get objects shape-id)] + (or (not (frame-shape? shape)) + (= parent-id uuid/zero)))) + +(defn get-position-on-parent + [objects id] + (let [obj (get objects id) + pid (:parent-id obj) + prt (get objects pid)] + (d/index-of (:shapes prt) id))) + +(defn get-immediate-children + "Retrieve resolved shape objects that are immediate children + of the specified shape-id" + ([objects] (get-immediate-children objects uuid/zero)) + ([objects shape-id] + (let [lookup (d/getf objects)] + (->> (lookup shape-id) + (:shapes) + (keep lookup))))) + +(defn get-frames + "Retrieves all frame objects as vector. It is not implemented in + function of `get-immediate-children` for performance reasons. This + function is executed in the render hot path." + [objects] + (let [lookup (d/getf objects) + xform (comp (keep lookup) + (filter frame-shape?))] + (->> (:shapes (lookup uuid/zero)) + (into [] xform)))) + +(defn frame-id-by-position + [objects position] + (let [frames (get-frames objects)] + (or + (->> frames + (reverse) + (d/seek #(and position (gsh/has-point? % position))) + :id) + uuid/zero))) + +(declare indexed-shapes) + +(defn get-base-shape + "Selects the shape that will be the base to add the shapes over" + [objects selected] + (let [;; Gets the tree-index for all the shapes + indexed-shapes (indexed-shapes objects) + + ;; Filters the selected and retrieve a list of ids + sorted-ids (->> indexed-shapes + (filter (comp selected second)) + (map second))] + + ;; The first id will be the top-most + (get objects (first sorted-ids)))) + +(defn is-parent? + "Check if `parent-candidate` is parent of `shape-id`" + [objects shape-id parent-candidate] + + (loop [current (get objects parent-candidate) + done #{} + pending (:shapes current)] + + (cond + (contains? done (:id current)) + (recur (get objects (first pending)) + done + (rest pending)) + + (empty? pending) false + (and current (contains? (set (:shapes current)) shape-id)) true + + :else + (recur (get objects (first pending)) + (conj done (:id current)) + (concat (rest pending) (:shapes current)))))) + +(defn get-index-in-parent + "Retrieves the index in the parent" + [objects shape-id] + (let [shape (get objects shape-id) + parent (get objects (:parent-id shape)) + [parent-idx _] (d/seek (fn [[_idx child-id]] (= child-id shape-id)) + (d/enumerate (:shapes parent)))] + parent-idx)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; COMPONENTS HELPERS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defn set-touched-group + [touched group] + (conj (or touched #{}) group)) + +(defn touched-group? + [shape group] + ((or (:touched shape) #{}) group)) + +(defn get-component + "Retrieve a component from libraries, if no library-id is provided, we + iterate over all libraries and find the component on it." + ([libraries component-id] + (some #(-> % :components (get component-id)) (vals libraries))) + ([libraries library-id component-id] + (get-in libraries [library-id :components component-id]))) + +(defn ^boolean is-main-of? + [shape-main shape-inst] + (and (:shape-ref shape-inst) + (or (= (:shape-ref shape-inst) (:id shape-main)) + (= (:shape-ref shape-inst) (:shape-ref shape-main))))) + +(defn get-component-root + [component] + (get-in component [:objects (:id component)])) (defn get-component-shape "Get the parent shape linked to a component for this shape, if any" - [shape objects] + [objects shape] (if-not (:shape-ref shape) nil (if (:component-id shape) shape (if-let [parent-id (:parent-id shape)] - (get-component-shape (get objects parent-id) objects) + (get-component-shape objects (get objects parent-id)) nil)))) (defn get-root-shape - "Get the root shape linked to a component for this shape, if any" - [shape objects] + "Get the root shape linked to a component for this shape, if any." + [objects shape] (cond (some? (:component-root? shape)) @@ -57,12 +248,10 @@ (defn make-container [page-or-component type] - (assoc page-or-component - :type type)) + (assoc page-or-component :type type)) (defn page? [container] - (us/assert some? (:type container)) (= (:type container) :page)) (defn component? @@ -70,120 +259,32 @@ (= (:type container) :component)) (defn get-container - [id type local-file] - (assert (some? type)) + [file type id] + (us/assert map? file) + (us/assert keyword? type) + (us/assert uuid? id) + (-> (if (= type :page) - (get-in local-file [:pages-index id]) - (get-in local-file [:components id])) + (get-in file [:pages-index id]) + (get-in file [:components id])) (assoc :type type))) -(defn get-shape - [container shape-id] - (get-in container [:objects shape-id])) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ALGORITHMS & TRANSFORMATIONS FOR SHAPES +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defn get-component - [component-id library-id local-library libraries] - (assert (some? (:id local-library))) - (let [file (if (= library-id (:id local-library)) - local-library - (get-in libraries [library-id :data]))] - (get-in file [:components component-id]))) +(defn walk-pages + "Go through all pages of a file and apply a function to each one" + ;; The function receives two parameters (page-id and page), and + ;; returns the updated page. + [f data] + (update data :pages-index #(d/mapm f %))) -(defn is-main-of - [shape-main shape-inst] - (and (:shape-ref shape-inst) - (or (= (:shape-ref shape-inst) (:id shape-main)) - (= (:shape-ref shape-inst) (:shape-ref shape-main))))) - -(defn get-component-root - [component] - (get-in component [:objects (:id component)])) - -(defn get-children [id objects] - (if-let [shapes (-> (get objects id) :shapes (some-> vec))] - (into shapes (mapcat #(get-children % objects)) shapes) - [])) - -(defn get-children-objects - "Retrieve all children objects recursively for a given object" - [id objects] - (mapv #(get objects %) (get-children id objects))) - -(defn get-object-with-children - "Retrieve a vector with an object and all of its children" - [id objects] - (mapv #(get objects %) (cons id (get-children id objects)))) - -(defn select-children [id objects] - (->> (get-children id objects) - (select-keys objects))) - -(defn is-shape-grouped - "Checks if a shape is inside a group" - [shape-id objects] - (let [contains-shape-fn (fn [{:keys [shapes]}] ((set shapes) shape-id)) - shapes (remove #(= (:type %) :frame) (vals objects))] - (some contains-shape-fn shapes))) - -(defn get-top-frame - [objects] - (get objects uuid/zero)) - -(defn get-parent - "Retrieve the id of the parent for the shape-id (if exists)" - [shape-id objects] - (let [obj (get objects shape-id)] - (:parent-id obj))) - -(defn get-parents - [shape-id objects] - (when-let [parent-id (->> shape-id (get objects) :parent-id)] - (lazy-seq (cons parent-id (get-parents parent-id objects))))) - -(defn get-frame - "Get the frame that contains the shape. If the shape is already a frame, get itself." - [shape objects] - (if (= (:type shape) :frame) - shape - (get objects (:frame-id shape)))) - -(defn clean-loops - "Clean a list of ids from circular references." - [objects ids] - - (let [parent-selected? - (fn [id] - (let [parents (get-parents id objects)] - (some ids parents))) - - add-element - (fn [result id] - (cond-> result - (not (parent-selected? id)) - (conj id)))] - - (reduce add-element (d/ordered-set) ids))) - -(defn calculate-invalid-targets - [shape-id objects] - (let [result #{shape-id} - children (get-in objects [shape-id :shapes]) - reduce-fn (fn [result child-id] - (into result (calculate-invalid-targets child-id objects)))] - (reduce reduce-fn result children))) - -(defn valid-frame-target - [shape-id parent-id objects] - (let [shape (get objects shape-id)] - (or (not= (:type shape) :frame) - (= parent-id uuid/zero)))) - -(defn position-on-parent - [id objects] - (let [obj (get objects id) - pid (:parent-id obj) - prt (get objects pid)] - (d/index-of (:shapes prt) id))) +(defn update-object-list + "Update multiple objects in a page at once" + [page objects-list] + (update page :objects + #(into % (d/index-by :id objects-list)))) (defn insert-at-index [objects index ids] @@ -203,41 +304,22 @@ (vec prev-ids) ids)) -(defn select-toplevel-shapes - ([objects] (select-toplevel-shapes objects nil)) - ([objects {:keys [include-frames? include-frame-children?] - :or {include-frames? false - include-frame-children? true}}] +(defn clean-loops + "Clean a list of ids from circular references." + [objects ids] - (let [lookup #(get objects %) - root (lookup uuid/zero) - root-children (:shapes root) + (let [parent-selected? + (fn [id] + (let [parents (get-parent-ids objects id)] + (some ids parents))) - lookup-shapes - (fn [result id] - (if (nil? id) - result - (let [obj (lookup id) - typ (:type obj) - children (:shapes obj)] + add-element + (fn [result id] + (cond-> result + (not (parent-selected? id)) + (conj id)))] - (cond-> result - (or (not= :frame typ) include-frames?) - (conj obj) - - (and (= :frame typ) include-frame-children?) - (into (map lookup) children)))))] - - (reduce lookup-shapes [] root-children)))) - -(defn select-frames - [objects] - (let [lookup #(get objects %) - frame? #(= :frame (:type %)) - xform (comp (map lookup) - (filter frame?))] - (->> (:shapes (lookup uuid/zero)) - (into [] xform)))) + (reduce add-element (d/ordered-set) ids))) (defn clone-object "Gets a copy of the object and all its children, with new ids @@ -304,8 +386,6 @@ (reduce red-fn cur-idx (reverse (:shapes object)))))] (into {} (rec-index '() uuid/zero)))) - - (defn expand-region-selection "Given a selection selects all the shapes between the first and last in an indexed manner (shift selection)" @@ -322,67 +402,9 @@ (map second) (into #{})))) -(defn frame-id-by-position [objects position] - (let [frames (select-frames objects)] - (or - (->> frames - (reverse) - (d/seek #(and position (gsh/has-point? % position))) - :id) - uuid/zero))) - -(defn set-touched-group - [touched group] - (conj (or touched #{}) group)) - -(defn touched-group? - [shape group] - ((or (:touched shape) #{}) group)) - -(defn get-base-shape - "Selects the shape that will be the base to add the shapes over" - [objects selected] - (let [;; Gets the tree-index for all the shapes - indexed-shapes (indexed-shapes objects) - - ;; Filters the selected and retrieve a list of ids - sorted-ids (->> indexed-shapes - (filter (comp selected second)) - (map second))] - - ;; The first id will be the top-most - (get objects (first sorted-ids)))) - -(defn is-parent? - "Check if `parent-candidate` is parent of `shape-id`" - [objects shape-id parent-candidate] - - (loop [current (get objects parent-candidate) - done #{} - pending (:shapes current)] - - (cond - (contains? done (:id current)) - (recur (get objects (first pending)) - done - (rest pending)) - - (empty? pending) false - (and current (contains? (set (:shapes current)) shape-id)) true - - :else - (recur (get objects (first pending)) - (conj done (:id current)) - (concat (rest pending) (:shapes current)))))) - -(defn get-index-in-parent - "Retrieves the index in the parent" - [objects shape-id] - (let [shape (get objects shape-id) - parent (get objects (:parent-id shape)) - [parent-idx _] (d/seek (fn [[_idx child-id]] (= child-id shape-id)) - (d/enumerate (:shapes parent)))] - parent-idx)) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; SHAPES ORGANIZATION (PATH MANAGEMENT) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defn split-path "Decompose a string in the form 'one / two / three' into @@ -442,26 +464,3 @@ [path name] (let [path-split (split-path path)] (merge-path-item (first path-split) name))) - -(defn connected-frame? - "Check if some frame is origin or destination of any navigate interaction - in the page" - [frame-id objects] - (let [children (get-object-with-children frame-id objects)] - (or (some cti/flow-origin? (map :interactions children)) - (some #(cti/flow-to? % frame-id) (map :interactions (vals objects)))))) - -(defn unframed-shape? - "Checks if it's a non-frame shape in the top level." - [shape] - (and (not= (:type shape) :frame) - (= (:frame-id shape) uuid/zero))) - -(defn children-seq - "Creates a sequence of shapes through the objects tree" - [shape objects] - (let [getter (partial get objects)] - (tree-seq #(d/not-empty? (get shape :shapes)) - #(->> (get % :shapes) (map getter)) - shape))) - diff --git a/common/src/app/common/pages/indices.cljc b/common/src/app/common/pages/indices.cljc index 8145d2f0ae..2ec5124784 100644 --- a/common/src/app/common/pages/indices.cljc +++ b/common/src/app/common/pages/indices.cljc @@ -7,7 +7,7 @@ (ns app.common.pages.indices (:require [app.common.data :as d] - [app.common.pages.helpers :as helpers] + [app.common.pages.helpers :as cph] [app.common.uuid :as uuid] [clojure.set :as set])) @@ -45,7 +45,7 @@ means is displayed over other shapes with less index." [objects] - (let [frames (helpers/select-frames objects) + (let [frames (cph/get-frames objects) z-index (calculate-frame-z-index {} uuid/zero objects)] (->> frames (map :id) @@ -61,7 +61,7 @@ changed-frames (set/union old-frames new-frames) - frames (->> (helpers/select-frames new-objects) + frames (->> (cph/get-frames new-objects) (map :id) (filter #(contains? changed-frames %))) @@ -84,13 +84,10 @@ (generate-child-all-parents-index objects (vals objects))) ([objects shapes] - (let [shape->parents - (fn [shape] - (->> (helpers/get-parents (:id shape) objects) - (into [])))] - (->> shapes - (map #(vector (:id %) (shape->parents %))) - (into {}))))) + (let [xf-parents (comp + (map :id) + (map #(vector % (cph/get-parent-ids objects %))))] + (into {} xf-parents shapes)))) (defn create-clip-index "Retrieves the mask information for an object" diff --git a/common/src/app/common/spec/page.cljc b/common/src/app/common/spec/page.cljc index 9ed545ac43..135eadb1eb 100644 --- a/common/src/app/common/spec/page.cljc +++ b/common/src/app/common/spec/page.cljc @@ -11,7 +11,6 @@ [app.common.spec.shape :as shape] [clojure.spec.alpha :as s])) - ;; --- Grid options (s/def :internal.grid.color/color string?) diff --git a/frontend/src/app/main/data/viewer.cljs b/frontend/src/app/main/data/viewer.cljs index d528509fa6..c79909eecc 100644 --- a/frontend/src/app/main/data/viewer.cljs +++ b/frontend/src/app/main/data/viewer.cljs @@ -8,7 +8,7 @@ (:require [app.common.data :as d] [app.common.geom.point :as gpt] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.spec :as us] [app.common.spec.interactions :as cti] [app.common.uuid :as uuid] @@ -571,7 +571,7 @@ (conj id))] (-> state (assoc-in [:viewer-local :selected] - (cp/expand-region-selection objects selection))))))) + (cph/expand-region-selection objects selection))))))) (defn select-all [] diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 21fb41f395..ce81ba363a 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -484,7 +484,7 @@ (initialize [state local] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) - shapes (cp/select-toplevel-shapes objects {:include-frames? true}) + shapes (cph/get-immediate-children objects) srect (gsh/selection-rect shapes) local (assoc local :vport size :zoom 1)] (cond @@ -675,7 +675,7 @@ (update [_ state] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) - shapes (cp/select-toplevel-shapes objects {:include-frames? true}) + shapes (cph/get-immediate-children objects) srect (gsh/selection-rect shapes)] (if (empty? shapes) state @@ -794,7 +794,7 @@ :frame-id (:frame-id obj) :page-id page-id :shapes [id] - :index (cp/position-on-parent id objects)})) + :index (cph/get-position-on-parent objects id)})) selected)] ;; TODO: maybe missing the :reg-objects event? (rx/of (dch/commit-changes {:redo-changes rchanges @@ -821,7 +821,7 @@ {:type :mov-objects :parent-id (:parent-id obj) :page-id page-id - :index (cp/position-on-parent id objects) + :index (cph/get-position-on-parent objects id) :shapes [id]})) (reverse ids)) @@ -1023,11 +1023,11 @@ objects (wsh/lookup-page-objects state page-id) ;; Ignore any shape whose parent is also intented to be moved - ids (cp/clean-loops objects ids) + ids (cph/clean-loops objects ids) ;; If we try to move a parent into a child we remove it - ids (filter #(not (cp/is-parent? objects parent-id %)) ids) - parents (into #{parent-id} (map #(cp/get-parent % objects)) ids) + ids (filter #(not (cph/is-parent? objects parent-id %)) ids) + parents (into #{parent-id} (map #(cph/get-parent-id objects %)) ids) groups-to-delete (loop [current-id (first parents) @@ -1045,7 +1045,7 @@ (empty? (remove removed-id? (:shapes group)))) ;; Adds group to the remove and check its parent - (let [to-check (concat to-check [(cp/get-parent current-id objects)])] + (let [to-check (concat to-check [(cph/get-parent-id objects current-id)])] (recur (first to-check) (rest to-check) (conj removed-id? current-id) @@ -1090,8 +1090,8 @@ (not (:component-root? shape))) parent (get objects parent-id) - component-shape (cph/get-component-shape shape objects) - component-shape-parent (cph/get-component-shape parent objects) + component-shape (cph/get-component-shape objects shape) + component-shape-parent (cph/get-component-shape objects parent) detach? (and instance-part? (not= (:id component-shape) (:id component-shape-parent))) @@ -1099,7 +1099,7 @@ reroot? (and sub-instance? (not component-shape-parent)) ids-to-detach (when detach? - (cons id (cph/get-children id objects)))] + (cons id (cph/get-children-ids objects id)))] [(cond-> shapes-to-detach detach? (into ids-to-detach)) (cond-> shapes-to-deroot deroot? (conj id)) @@ -1286,7 +1286,7 @@ (boolean? blocked) (assoc :blocked blocked) (boolean? hidden) (assoc :hidden hidden))) objects (wsh/lookup-page-objects state) - ids (into ids (->> ids (mapcat #(cp/get-children % objects))))] + ids (into ids (->> ids (mapcat #(cph/get-children-ids objects %))))] (rx/of (dch/update-shapes ids update-fn)))))) (defn toggle-visibility-selected @@ -1483,7 +1483,7 @@ (watch [_ state _] (let [selected (wsh/lookup-selected state) objects (wsh/lookup-page-objects state) - all-selected (into [] (mapcat #(cp/get-object-with-children % objects)) selected) + all-selected (into [] (mapcat #(cph/get-children-with-self objects %)) selected) head (get objects (first selected)) not-group-like? (and (= (count selected) 1) @@ -1588,7 +1588,7 @@ (watch [_ state _] (let [objects (wsh/lookup-page-objects state) selected (->> (wsh/lookup-selected state) - (cp/clean-loops objects)) + (cph/clean-loops objects)) pdata (reduce (partial collect-object-ids objects) {} selected) initial {:type :copied-shapes :file-id (:current-file-id state) @@ -1771,18 +1771,18 @@ [frame-id frame-id delta]) (empty? page-selected) - (let [frame-id (cp/frame-id-by-position page-objects mouse-pos) + (let [frame-id (cph/frame-id-by-position page-objects mouse-pos) delta (gpt/subtract mouse-pos orig-pos)] [frame-id frame-id delta]) :else - (let [base (cp/get-base-shape page-objects page-selected) - index (cp/position-on-parent (:id base) page-objects) - frame-id (:frame-id base) + (let [base (cph/get-base-shape page-objects page-selected) + index (cph/get-position-on-parent page-objects (:id base)) + frame-id (:frame-id base) parent-id (:parent-id base) - delta (if in-viewport? - (gpt/subtract mouse-pos orig-pos) - (gpt/subtract (gpt/point (:selrect base)) orig-pos))] + delta (if in-viewport? + (gpt/subtract mouse-pos orig-pos) + (gpt/subtract (gpt/point (:selrect base)) orig-pos))] [frame-id parent-id delta index])))) ;; Change the indexes if the paste is done with an element selected @@ -1804,7 +1804,7 @@ ;; Check if the shape is an instance whose master is defined in a ;; library that is not linked to the current file (foreign-instance? [shape paste-objects state] - (let [root (cph/get-root-shape shape paste-objects) + (let [root (cph/get-root-shape paste-objects shape) root-file-id (:component-file root)] (and (some? root) (not= root-file-id (:current-file-id state)) @@ -1896,7 +1896,7 @@ height 16 page-id (:current-page-id state) frame-id (-> (wsh/lookup-page-objects state page-id) - (cp/frame-id-by-position @ms/mouse-position)) + (cph/frame-id-by-position @ms/mouse-position)) shape (gsh/setup-selrect {:id id :type :text @@ -1987,7 +1987,7 @@ (watch [_ state _] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) - shapes (cp/select-toplevel-shapes objects {:include-frames? true}) + shapes (cph/get-immediate-children objects) selected (wsh/lookup-selected state) selected-objs (map #(get objects %) selected) has-frame? (some #(= (:type %) :frame) selected-objs)] diff --git a/frontend/src/app/main/data/workspace/bool.cljs b/frontend/src/app/main/data/workspace/bool.cljs index ab0ec4fdd4..6c705cb619 100644 --- a/frontend/src/app/main/data/workspace/bool.cljs +++ b/frontend/src/app/main/data/workspace/bool.cljs @@ -9,8 +9,8 @@ [app.common.colors :as clr] [app.common.data :as d] [app.common.geom.shapes :as gsh] - [app.common.pages :as cp] [app.common.pages.changes-builder :as cb] + [app.common.pages.helpers :as cph] [app.common.path.shapes-to-path :as stp] [app.common.uuid :as uuid] [app.main.data.workspace.changes :as dch] @@ -22,12 +22,12 @@ (defn selected-shapes [state] - (let [objects (wsh/lookup-page-objects state)] + (let [objects (wsh/lookup-page-objects state)] (->> (wsh/lookup-selected state) - (cp/clean-loops objects) - (map #(get objects %)) - (filter #(not= :frame (:type %))) - (map #(assoc % ::index (cp/position-on-parent (:id %) objects))) + (cph/clean-loops objects) + (map (d/getf objects)) + (remove cph/frame-shape?) + (map #(assoc % ::index (cph/get-position-on-parent objects (:id %)))) (sort-by ::index)))) (defn create-bool-data @@ -51,7 +51,7 @@ (merge head-data) (gsh/update-bool-selrect shapes objects))] - [bool-shape (cp/position-on-parent (:id head) objects)])) + [bool-shape (cph/get-position-on-parent objects (:id head))])) (defn group->bool [group bool-type objects] diff --git a/frontend/src/app/main/data/workspace/common.cljs b/frontend/src/app/main/data/workspace/common.cljs index a58bf8aa5f..461a0f7f54 100644 --- a/frontend/src/app/main/data/workspace/common.cljs +++ b/frontend/src/app/main/data/workspace/common.cljs @@ -11,6 +11,7 @@ [app.common.geom.shapes :as gsh] [app.common.logging :as log] [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.spec :as us] [app.common.spec.interactions :as csi] [app.common.spec.page :as csp] @@ -58,12 +59,13 @@ ;; --- Common Helpers & Events +;; TODO: looks duplicate + (defn get-frame-at-point [objects point] - (let [frames (cp/select-frames objects)] + (let [frames (cph/get-frames objects)] (d/seek #(gsh/has-point? % point) frames))) - (defn- extract-numeric-suffix [basename] (if-let [[_ p1 p2] (re-find #"(.*)-([0-9]+)$" basename)] @@ -195,9 +197,9 @@ (let [expand-fn (fn [expanded] (merge expanded (->> ids - (map #(cp/get-parents % objects)) + (map #(cph/get-parent-ids objects %)) flatten - (filter #(not= % uuid/zero)) + (remove #(= % uuid/zero)) (map (fn [id] {id true})) (into {}))))] (update-in state [:workspace-local :expanded] expand-fn))))) @@ -264,9 +266,9 @@ ;; Calculate the frame over which we're drawing (let [position @ms/mouse-position - frame-id (:frame-id attrs (cp/frame-id-by-position objects position)) + frame-id (:frame-id attrs (cph/frame-id-by-position objects position)) shape (when-not (empty? selected) - (cp/get-base-shape objects selected))] + (cph/get-base-shape objects selected))] ;; When no shapes has been selected or we're over a different frame ;; we add it as the latest shape of that frame @@ -274,7 +276,7 @@ [frame-id frame-id nil] ;; Otherwise, we add it to next to the selected shape - (let [index (cp/position-on-parent (:id shape) objects) + (let [index (cph/get-position-on-parent objects (:id shape)) {:keys [frame-id parent-id]} shape] [frame-id parent-id (inc index)]))))) @@ -356,8 +358,9 @@ (watch [it state _] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) - to-move-shapes (->> (cp/select-toplevel-shapes objects {:include-frames? false}) - (filterv #(= (:frame-id %) uuid/zero)) + + to-move-shapes (->> (cph/get-immediate-children objects) + (remove cph/frame-shape?) (mapv :id) (d/enumerate) (filterv (comp shapes second))) @@ -394,7 +397,7 @@ objects (wsh/lookup-page-objects state page-id) options (wsh/lookup-page-options state page-id) - ids (cp/clean-loops objects ids) + ids (cph/clean-loops objects ids) flows (:flows options) groups-to-unmask @@ -434,14 +437,14 @@ all-parents (reduce (fn [res id] - (into res (cp/get-parents id objects))) + (into res (cph/get-parent-ids objects id))) (d/ordered-set) ids) all-children (->> ids (reduce (fn [res id] - (into res (cp/get-children id objects))) + (into res (cph/get-children-ids objects id))) []) (reverse) (into (d/ordered-set))) @@ -463,7 +466,7 @@ {:type :add-obj :id (:id item) :page-id page-id - :index (cp/position-on-parent id objects) + :index (cph/get-position-on-parent objects id) :frame-id (:frame-id item) :parent-id (:parent-id item) :obj item})))) @@ -588,7 +591,7 @@ y (:y data (- vbc-y (/ height 2))) page-id (:current-page-id state) frame-id (-> (wsh/lookup-page-objects state page-id) - (cp/frame-id-by-position {:x frame-x :y frame-y})) + (cph/frame-id-by-position {:x frame-x :y frame-y})) shape (-> (cp/make-minimal-shape type) (merge data) (merge {:x x :y y}) diff --git a/frontend/src/app/main/data/workspace/drawing/box.cljs b/frontend/src/app/main/data/workspace/drawing/box.cljs index 01632a744c..561a372b87 100644 --- a/frontend/src/app/main/data/workspace/drawing/box.cljs +++ b/frontend/src/app/main/data/workspace/drawing/box.cljs @@ -9,7 +9,7 @@ [app.common.geom.point :as gpt] [app.common.geom.shapes :as gsh] [app.common.math :as mth] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.uuid :as uuid] [app.main.data.workspace.drawing.common :as common] [app.main.data.workspace.state-helpers :as wsh] @@ -62,7 +62,7 @@ layout (get state :workspace-layout) zoom (get-in state [:workspace-local :zoom] 1) - frames (cp/select-frames objects) + frames (cph/get-frames objects) fid (or (->> frames (filter #(gsh/has-point? % initial)) first diff --git a/frontend/src/app/main/data/workspace/drawing/curve.cljs b/frontend/src/app/main/data/workspace/drawing/curve.cljs index 463c1e9ead..f221ff4f25 100644 --- a/frontend/src/app/main/data/workspace/drawing/curve.cljs +++ b/frontend/src/app/main/data/workspace/drawing/curve.cljs @@ -8,7 +8,7 @@ (:require [app.common.geom.shapes :as gsh] [app.common.geom.shapes.path :as gsp] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.main.data.workspace.drawing.common :as common] [app.main.data.workspace.state-helpers :as wsh] [app.main.streams :as ms] @@ -44,10 +44,10 @@ ptk/UpdateEvent (update [_ state] - (let [objects (wsh/lookup-page-objects state) - content (get-in state [:workspace-drawing :object :content] []) + (let [objects (wsh/lookup-page-objects state) + content (get-in state [:workspace-drawing :object :content] []) position (get-in content [0 :params] nil) - frame-id (cp/frame-id-by-position objects position)] + frame-id (cph/frame-id-by-position objects position)] (-> state (assoc-in [:workspace-drawing :object :frame-id] frame-id)))))) diff --git a/frontend/src/app/main/data/workspace/groups.cljs b/frontend/src/app/main/data/workspace/groups.cljs index bf452c58fe..2cfdc1a4ef 100644 --- a/frontend/src/app/main/data/workspace/groups.cljs +++ b/frontend/src/app/main/data/workspace/groups.cljs @@ -10,6 +10,7 @@ [app.common.geom.shapes :as gsh] [app.common.pages :as cp] [app.common.pages.changes-builder :as cb] + [app.common.pages.helpers :as cph] [app.common.spec :as us] [app.main.data.workspace.changes :as dch] [app.main.data.workspace.common :as dwc] @@ -22,7 +23,7 @@ (->> selected (map #(get objects %)) (filter #(not= :frame (:type %))) - (map #(assoc % ::index (cp/position-on-parent (:id %) objects))) + (map #(assoc % ::index (cph/get-position-on-parent objects (:id %)))) (sort-by ::index))) (defn- get-empty-groups-after-group-creation @@ -34,10 +35,8 @@ group, one (or many) groups can become empty because they have had a single shape which is moved to the created group." [objects parent-id shapes] - (let [ids (cp/clean-loops objects (into #{} (map :id) shapes)) - parents (->> ids - (reduce #(conj %1 (cp/get-parent %2 objects)) - #{}))] + (let [ids (cph/clean-loops objects (into #{} (map :id) shapes)) + parents (into #{} (map #(cph/get-parent-id objects %)) ids)] (loop [current-id (first parents) to-check (rest parents) removed-id? ids @@ -53,7 +52,7 @@ (empty? (remove removed-id? (:shapes group)))) ;; Adds group to the remove and check its parent - (let [to-check (concat to-check [(cp/get-parent current-id objects)]) ] + (let [to-check (concat to-check [(cph/get-parent-id objects current-id)]) ] (recur (first to-check) (rest to-check) (conj removed-id? current-id) @@ -139,7 +138,7 @@ (defn prepare-remove-group [it page-id group objects] (let [children (mapv #(get objects %) (:shapes group)) - parent-id (cp/get-parent (:id group) objects) + parent-id (cph/get-parent-id objects (:id group)) parent (get objects parent-id) index-in-parent @@ -149,7 +148,7 @@ (ffirst)) ids-to-detach (when (:component-id group) - (cp/get-children (:id group) objects)) + (cph/get-children-ids objects (:id group))) detach-fn (fn [attrs] (dissoc attrs @@ -202,7 +201,7 @@ (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) selected (wsh/lookup-selected state) - selected (cp/clean-loops objects selected) + selected (cph/clean-loops objects selected) shapes (shapes-for-grouping objects selected)] (when-not (empty? shapes) (let [[group rchanges uchanges] @@ -241,7 +240,7 @@ (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) selected (wsh/lookup-selected state) - selected (cp/clean-loops objects selected) + selected (cph/clean-loops objects selected) shapes (shapes-for-grouping objects selected)] (when-not (empty? shapes) (let [;; If the selected shape is a group, we can use it. If not, diff --git a/frontend/src/app/main/data/workspace/interactions.cljs b/frontend/src/app/main/data/workspace/interactions.cljs index 5b515539d2..cf71f907b2 100644 --- a/frontend/src/app/main/data/workspace/interactions.cljs +++ b/frontend/src/app/main/data/workspace/interactions.cljs @@ -126,6 +126,14 @@ ;; --- Interactions +(defn- connected-frame? + "Check if some frame is origin or destination of any navigate interaction + in the page" + [objects frame-id] + (let [children (cph/get-children-with-self objects frame-id)] + (or (some csi/flow-origin? (map :interactions children)) + (some #(csi/flow-to? % frame-id) (map :interactions (vals objects)))))) + (defn add-new-interaction ([shape] (add-new-interaction shape nil)) ([shape destination] @@ -134,7 +142,7 @@ (watch [_ state _] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) - frame (cph/get-frame shape objects) + frame (cph/get-frame objects shape) flows (get-in state [:workspace-data :pages-index page-id @@ -149,7 +157,7 @@ destination)] (update shape :interactions csi/add-interaction new-interaction))))) - (when (and (not (cph/connected-frame? (:id frame) objects)) + (when (and (not (connected-frame? objects (:id frame))) (nil? flow)) (rx/of (add-flow (:id frame)))))))))) @@ -278,7 +286,7 @@ overlay-pos (-> shape (get-in [:interactions index]) :overlay-position) - orig-frame (cph/get-frame shape objects) + orig-frame (cph/get-frame objects shape) frame-pos (gpt/point (:x orig-frame) (:y orig-frame)) offset (-> initial-pos (gpt/subtract overlay-pos) diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index 5c1a24c1cf..9c30f882b5 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -11,6 +11,7 @@ [app.common.geom.shapes :as geom] [app.common.logging :as log] [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.spec :as us] [app.common.spec.change :as spec.change] [app.common.spec.color :as spec.color] @@ -132,7 +133,7 @@ (ptk/reify ::update-color ptk/WatchEvent (watch [it state _] - (let [[path name] (cp/parse-path-name (:name color)) + (let [[path name] (cph/parse-path-name (:name color)) color (assoc color :path path :name name) prev (get-in state [:workspace-data :colors id]) rchg {:type :mod-color @@ -184,7 +185,7 @@ ptk/WatchEvent (watch [it state _] (let [object (get-in state [:workspace-data :media id]) - [path name] (cp/parse-path-name new-name) + [path name] (cph/parse-path-name new-name) rchanges [{:type :mod-media :object {:id id @@ -244,7 +245,7 @@ (ptk/reify ::update-typography ptk/WatchEvent (watch [it state _] - (let [[path name] (cp/parse-path-name (:name typography)) + (let [[path name] (cph/parse-path-name (:name typography)) typography (assoc typography :path path :name name) prev (get-in state [:workspace-data :typographies (:id typography)]) rchg {:type :mod-typography @@ -307,7 +308,7 @@ (watch [_ state _] (let [objects (wsh/lookup-page-objects state) selected (->> (wsh/lookup-selected state) - (cp/clean-loops objects))] + (cph/clean-loops objects))] (rx/of (add-component2 selected)))))) (defn rename-component @@ -318,7 +319,7 @@ (ptk/reify ::rename-component ptk/WatchEvent (watch [it state _] - (let [[path name] (cp/parse-path-name new-name) + (let [[path name] (cph/parse-path-name new-name) component (get-in state [:workspace-data :components id]) objects (get component :objects) ; Give the same name to the root shape @@ -348,12 +349,10 @@ (ptk/reify ::duplicate-component ptk/WatchEvent (watch [it state _] - (let [component (cp/get-component id - (:current-file-id state) - (dwlh/get-local-file state) - nil) - all-components (vals (get-in state [:workspace-data :components])) - unames (set (map :name all-components)) + (let [libraries (dwlh/get-libraries state) + component (cph/get-component libraries id) + all-components (-> state :workspace-data :components vals) + unames (into #{} (map :name) all-components) new-name (dwc/generate-unique-name unames (:name component)) [new-shape new-shapes _updated-shapes] @@ -404,10 +403,9 @@ (ptk/reify ::instantiate-component ptk/WatchEvent (watch [it state _] - (let [local-library (dwlh/get-local-file state) - libraries (get state :workspace-libraries) - component (cp/get-component component-id file-id local-library libraries) - component-shape (cp/get-shape component component-id) + (let [libraries (dwlh/get-libraries state) + component (cph/get-component libraries file-id component-id) + component-shape (cph/get-shape component component-id) orig-pos (gpt/point (:x component-shape) (:y component-shape)) delta (gpt/subtract position orig-pos) @@ -416,7 +414,7 @@ objects (wsh/lookup-page-objects state page-id) unames (volatile! (dwc/retrieve-used-names objects)) - frame-id (cp/frame-id-by-position objects (gpt/add orig-pos delta)) + frame-id (cph/frame-id-by-position objects (gpt/add orig-pos delta)) update-new-shape (fn [new-shape original-shape] @@ -447,10 +445,10 @@ (dissoc :component-root?)))) [new-shape new-shapes _] - (cp/clone-object component-shape - nil - (get component :objects) - update-new-shape) + (cph/clone-object component-shape + nil + (get component :objects) + update-new-shape) rchanges (mapv (fn [obj] {:type :add-obj @@ -482,13 +480,12 @@ (ptk/reify ::detach-component ptk/WatchEvent (watch [it state _] - (let [local-library (dwlh/get-local-file state) - container (cp/get-container (get state :current-page-id) - :page - local-library) + (let [file (dwlh/get-local-file state) + page-id (get state :current-page-id) + container (cph/get-container file :page page-id) [rchanges uchanges] - (dwlh/generate-detach-instance id container)] + (dwlh/generate-detach-instance container id)] (rx/of (dch/commit-changes {:redo-changes rchanges :undo-changes uchanges @@ -498,20 +495,19 @@ (ptk/reify ::detach-selected-components ptk/WatchEvent (watch [it state _] - (let [page-id (:current-page-id state) - objects (wsh/lookup-page-objects state page-id) - local-library (dwlh/get-local-file state) - container (cp/get-container page-id :page local-library) - - selected (->> state - (wsh/lookup-selected) - (cp/clean-loops objects)) + (let [page-id (:current-page-id state) + objects (wsh/lookup-page-objects state page-id) + file (dwlh/get-local-file state) + container (cph/get-container file :page page-id) + selected (->> state + (wsh/lookup-selected) + (cph/clean-loops objects)) [rchanges uchanges] (reduce (fn [changes id] (dwlh/concat-changes changes - (dwlh/generate-detach-instance id container))) + (dwlh/generate-detach-instance container id))) dwlh/empty-changes selected)] @@ -557,21 +553,18 @@ ptk/WatchEvent (watch [it state _] (log/info :msg "RESET-COMPONENT of shape" :id (str id)) - (let [local-library (dwlh/get-local-file state) - libraries (dwlh/get-libraries state) - container (cp/get-container (get state :current-page-id) - :page - local-library) + (let [file (dwlh/get-local-file state) + libraries (dwlh/get-libraries state) + + page-id (:current-page-id state) + container (cph/get-container file :page page-id) + [rchanges uchanges] - (dwlh/generate-sync-shape-direct container - id - local-library - libraries - true)] + (dwlh/generate-sync-shape-direct libraries container id true)] + (log/debug :msg "RESET-COMPONENT finished" :js/rchanges (log-changes rchanges - local-library)) - + file)) (rx/of (dch/commit-changes {:redo-changes rchanges :undo-changes uchanges :origin it})))))) @@ -592,17 +585,16 @@ (watch [it state _] (log/info :msg "UPDATE-COMPONENT of shape" :id (str id)) (let [page-id (get state :current-page-id) - local-library (dwlh/get-local-file state) + + local-file (dwlh/get-local-file state) libraries (dwlh/get-libraries state) - [rchanges uchanges] - (dwlh/generate-sync-shape-inverse page-id - id - local-library - libraries) + container (cph/get-container local-file :page page-id) + shape (cph/get-shape container id) + + [rchanges uchanges] + (dwlh/generate-sync-shape-inverse libraries container id) - container (cp/get-container page-id :page local-library) - shape (cp/get-shape container id) file-id (:component-file shape) file (dwlh/get-file state file-id) @@ -623,21 +615,22 @@ (log/debug :msg "UPDATE-COMPONENT finished" :js/local-rchanges (log-changes local-rchanges - local-library) + file) :js/rchanges (log-changes rchanges file)) - (rx/of (when (seq local-rchanges) - (dch/commit-changes {:redo-changes local-rchanges - :undo-changes local-uchanges - :origin it - :file-id (:id local-library)})) - (when (seq rchanges) - (dch/commit-changes {:redo-changes rchanges - :undo-changes uchanges - :origin it - :file-id file-id}))))))) + (rx/of + (when (seq local-rchanges) + (dch/commit-changes {:redo-changes local-rchanges + :undo-changes local-uchanges + :origin it + :file-id (:id local-file)})) + (when (seq rchanges) + (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it + :file-id file-id}))))))) (defn update-component-sync [shape-id file-id] diff --git a/frontend/src/app/main/data/workspace/libraries_helpers.cljs b/frontend/src/app/main/data/workspace/libraries_helpers.cljs index b917a971d6..6ec7dcaeb9 100644 --- a/frontend/src/app/main/data/workspace/libraries_helpers.cljs +++ b/frontend/src/app/main/data/workspace/libraries_helpers.cljs @@ -11,6 +11,7 @@ [app.common.geom.shapes :as geom] [app.common.logging :as log] [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.spec :as us] [app.common.text :as txt] [app.main.data.workspace.groups :as dwg] @@ -57,7 +58,7 @@ (letfn [(concat-changes' [[rchanges1 uchanges1] [rchanges2 uchanges2]] [(d/concat-vec rchanges1 rchanges2) (d/concat-vec uchanges1 uchanges2)])] - (transduce (remove nil?) concat-changes' empty-changes rest))) + (transduce (remove nil?) (completing concat-changes') empty-changes rest))) (defn get-local-file [state] @@ -70,8 +71,11 @@ (get-in state [:workspace-libraries file-id :data]))) (defn get-libraries + "Retrieve all libraries, including the local file." [state] - (get state :workspace-libraries)) + (let [{:keys [id] :as local} (:workspace-data state)] + (-> (:workspace-libraries state) + (assoc id local)))) (defn pretty-file [file-id state] @@ -120,7 +124,7 @@ (some? (:parent-id new-shape)) (dissoc :component-root?)))] - (cp/clone-object shape nil objects update-new-shape update-original-shape))) + (cph/clone-object shape nil objects update-new-shape update-original-shape))) (defn generate-add-component "If there is exactly one id, and it's a group, use it as root. Otherwise, @@ -204,18 +208,18 @@ "Clone the root shape of the component and all children. Generate new ids from all of them." [component] - (let [component-root (cp/get-component-root component)] - (cp/clone-object component-root - nil - (get component :objects) - identity))) + (let [component-root (cph/get-component-root component)] + (cph/clone-object component-root + nil + (get component :objects) + identity))) (defn generate-detach-instance "Generate changes to remove the links between a shape and all its children with a component." - [shape-id container] + [container shape-id] (log/debug :msg "Detach instance" :shape-id shape-id :container (:id container)) - (let [shapes (cp/get-object-with-children shape-id (:objects container)) + (let [shapes (cph/get-children-with-self (:objects container) shape-id) rchanges (mapv (fn [obj] (make-change container @@ -293,7 +297,7 @@ (generate-sync-container asset-type library-id state - (cp/make-container page :page))] + (cph/make-container page :page))] (recur (next pages) (into rchanges page-rchanges) (into uchanges page-uchanges))) @@ -319,8 +323,7 @@ (generate-sync-container asset-type library-id state - (cp/make-container local-component - :component))] + (cph/make-container local-component :component))] (recur (next local-components) (into rchanges comp-rchanges) (into uchanges comp-uchanges))) @@ -331,12 +334,13 @@ or a component) that use assets of the given type in the given library." [asset-type library-id state container] - (if (cp/page? container) + (if (cph/page? container) (log/debug :msg "Sync page in local file" :page-id (:id container)) (log/debug :msg "Sync component in local library" :component-id (:id container))) - (let [has-asset-reference? (has-asset-reference-fn asset-type library-id (cp/page? container)) - linked-shapes (cp/select-objects has-asset-reference? container)] + (let [has-asset-reference? (has-asset-reference-fn asset-type library-id (cph/page? container)) + linked-shapes (->> (vals (:objects container)) + (filter has-asset-reference?))] (loop [shapes (seq linked-shapes) rchanges [] uchanges []] @@ -398,11 +402,9 @@ (defmethod generate-sync-shape :components [_ _ state container shape] - (generate-sync-shape-direct container - (:id shape) - (get-local-file state) - (get-libraries state) - false)) + (let [shape-id (:id shape) + libraries (get-libraries state)] + (generate-sync-shape-direct libraries container shape-id false))) (defn- generate-sync-text-shape [shape container update-node] @@ -624,19 +626,18 @@ (defn generate-sync-shape-direct "Generate changes to synchronize one shape that the root of a component instance, and all its children, from the given component." - [container shape-id local-library libraries reset?] + [libraries container shape-id reset?] (log/debug :msg "Sync shape direct" :shape (str shape-id) :reset? reset?) - (let [shape-inst (cp/get-shape container shape-id) - component (cp/get-component (:component-id shape-inst) - (:component-file shape-inst) - local-library - libraries) - shape-main (cp/get-shape component (:shape-ref shape-inst)) + (let [shape-inst (cph/get-shape container shape-id) + component (cph/get-component libraries + (:component-file shape-inst) + (:component-id shape-inst)) + shape-main (cph/get-shape component (:shape-ref shape-inst)) initial-root? (:component-root? shape-inst) root-inst shape-inst - root-main (cp/get-component-root component)] + root-main (cph/get-component-root component)] (if component (generate-sync-shape-direct-recursive container @@ -683,9 +684,9 @@ (when set-remote-synced? (change-remote-synced shape-inst container true))) - children-inst (mapv #(cp/get-shape container %) + children-inst (mapv #(cph/get-shape container %) (:shapes shape-inst)) - children-main (mapv #(cp/get-shape component %) + children-main (mapv #(cph/get-shape component %) (:shapes shape-main)) only-inst (fn [child-inst] @@ -743,20 +744,18 @@ (defn generate-sync-shape-inverse "Generate changes to update the component a shape is linked to, from the values in the shape and all its children." - [page-id shape-id local-library libraries] + [libraries container shape-id] (log/debug :msg "Sync shape inverse" :shape (str shape-id)) - (let [container (cp/get-container page-id :page local-library) - shape-inst (cp/get-shape container shape-id) - component (cp/get-component (:component-id shape-inst) - (:component-file shape-inst) - local-library - libraries) - shape-main (cp/get-shape component (:shape-ref shape-inst)) + (let [shape-inst (cph/get-shape container shape-id) + component (cph/get-component libraries + (:component-file shape-inst) + (:component-id shape-inst)) + shape-main (cph/get-shape component (:shape-ref shape-inst)) initial-root? (:component-root? shape-inst) root-inst shape-inst - root-main (cp/get-component-root component)] + root-main (cph/get-component-root component)] (if component (generate-sync-shape-inverse-recursive container @@ -777,7 +776,7 @@ (if (nil? shape-main) ;; This should not occur, but protect against it in any case empty-changes - (let [component-container (cp/make-container component :component) + (let [component-container (cph/make-container component :component) omit-touched? false set-remote-synced? (not initial-root?) @@ -805,9 +804,9 @@ (when set-remote-synced? (change-remote-synced shape-inst container true))) - children-inst (mapv #(cp/get-shape container %) + children-inst (mapv #(cph/get-shape container %) (:shapes shape-inst)) - children-main (mapv #(cp/get-shape component %) + children-main (mapv #(cph/get-shape component %) (:shapes shape-main)) only-inst (fn [child-inst] @@ -885,13 +884,13 @@ (transduce (map only-inst-cb) concat-changes changes children-inst) :else - (if (cp/is-main-of child-main child-inst) + (if (cph/is-main-of? child-main child-inst) (recur (next children-inst) (next children-main) (concat-changes changes (both-cb child-inst child-main))) - (let [child-inst' (d/seek #(cp/is-main-of child-main %) children-inst) - child-main' (d/seek #(cp/is-main-of % child-inst) children-main)] + (let [child-inst' (d/seek #(cph/is-main-of? child-main %) children-inst) + child-main' (d/seek #(cph/is-main-of? % child-inst) children-main)] (cond (nil? child-inst') (recur children-inst @@ -919,13 +918,13 @@ (defn- add-shape-to-instance [component-shape index component container root-instance root-main omit-touched? set-remote-synced?] (log/info :msg (str "ADD [P] " (:name component-shape))) - (let [component-parent-shape (cp/get-shape component (:parent-id component-shape)) - parent-shape (d/seek #(cp/is-main-of component-parent-shape %) - (cp/get-object-with-children (:id root-instance) - (:objects container))) - all-parents (vec (cons (:id parent-shape) - (cp/get-parents (:id parent-shape) - (:objects container)))) + (let [component-parent-shape (cph/get-shape component (:parent-id component-shape)) + parent-shape (d/seek #(cph/is-main-of? component-parent-shape %) + (cph/get-children-with-self (:objects container) + (:id root-instance))) + all-parents (into [(:id parent-shape)] + (cph/get-parent-ids (:objects container) + (:id parent-shape))) update-new-shape (fn [new-shape original-shape] (let [new-shape (reposition-shape new-shape @@ -945,11 +944,11 @@ original-shape) [_ new-shapes _] - (cp/clone-object component-shape - (:id parent-shape) - (get component :objects) - update-new-shape - update-original-shape) + (cph/clone-object component-shape + (:id parent-shape) + (get component :objects) + update-new-shape + update-original-shape) rchanges (d/concat-vec (map (fn [shape'] @@ -978,20 +977,20 @@ :ignore-touched true})) new-shapes)] - (if (and (cp/touched-group? parent-shape :shapes-group) omit-touched?) + (if (and (cph/touched-group? parent-shape :shapes-group) omit-touched?) empty-changes [rchanges uchanges]))) (defn- add-shape-to-main [shape index component page root-instance root-main] (log/info :msg (str "ADD [C] " (:name shape))) - (let [parent-shape (cp/get-shape page (:parent-id shape)) - component-parent-shape (d/seek #(cp/is-main-of % parent-shape) - (cp/get-object-with-children (:id root-main) - (:objects component))) - all-parents (vec (cons (:id component-parent-shape) - (cp/get-parents (:id component-parent-shape) - (:objects component)))) + (let [parent-shape (cph/get-shape page (:parent-id shape)) + component-parent-shape (d/seek #(cph/is-main-of? % parent-shape) + (cph/get-children-with-self (:objects component) + (:id root-main))) + all-parents (into [(:id component-parent-shape)] + (cph/get-parent-ids (:objects component) + (:id component-parent-shape))) update-new-shape (fn [new-shape _original-shape] (reposition-shape new-shape @@ -1005,11 +1004,11 @@ original-shape)) [_new-shape new-shapes updated-shapes] - (cp/clone-object shape - (:id component-parent-shape) - (get page :objects) - update-new-shape - update-original-shape) + (cph/clone-object shape + (:id component-parent-shape) + (get page :objects) + update-new-shape + update-original-shape) rchanges (d/concat-vec (map (fn [shape'] @@ -1057,12 +1056,12 @@ (defn- remove-shape [shape container omit-touched?] (log/info :msg (str "REMOVE-SHAPE " - (if (cp/page? container) "[P] " "[C] ") + (if (cph/page? container) "[P] " "[C] ") (:name shape))) (let [objects (get container :objects) - parents (cp/get-parents (:id shape) objects) + parents (cph/get-parent-ids objects (:id shape)) parent (first parents) - children (cp/get-children (:id shape) objects) + children (cph/get-children-ids objects (:id shape)) rchanges [(make-change container @@ -1080,7 +1079,7 @@ container (as-> {:type :add-obj :id id - :index (cp/position-on-parent id objects) + :index (cph/get-position-on-parent objects id) :parent-id (:parent-id shape') :ignore-touched true :obj shape'} $ @@ -1096,20 +1095,20 @@ {:type :reg-objects :shapes (vec parents)})])] - (if (and (cp/touched-group? parent :shapes-group) omit-touched?) + (if (and (cph/touched-group? parent :shapes-group) omit-touched?) empty-changes [rchanges uchanges]))) (defn- move-shape [shape index-before index-after container omit-touched?] (log/info :msg (str "MOVE " - (if (cp/page? container) "[P] " "[C] ") + (if (cph/page? container) "[P] " "[C] ") (:name shape) " " index-before " -> " index-after)) - (let [parent (cp/get-shape container (:parent-id shape)) + (let [parent (cph/get-shape container (:parent-id shape)) rchanges [(make-change container @@ -1126,7 +1125,7 @@ :index index-before :ignore-touched true})]] - (if (and (cp/touched-group? parent :shapes-group) omit-touched?) + (if (and (cph/touched-group? parent :shapes-group) omit-touched?) empty-changes [rchanges uchanges]))) @@ -1138,7 +1137,7 @@ empty-changes (do (log/info :msg (str "CHANGE-TOUCHED " - (if (cp/page? container) "[P] " "[C] ") + (if (cph/page? container) "[P] " "[C] ") (:name dest-shape)) :options options) (let [new-touched (cond @@ -1174,7 +1173,7 @@ empty-changes (do (log/info :msg (str "CHANGE-REMOTE-SYNCED? " - (if (cp/page? container) "[P] " "[C] ") + (if (cph/page? container) "[P] " "[C] ") (:name shape)) :remote-synced? remote-synced?) (let [rchanges [(make-change @@ -1205,7 +1204,7 @@ (log/info :msg (str "SYNC " (:name origin-shape) " -> " - (if (cp/page? container) "[P] " "[C] ") + (if (cph/page? container) "[P] " "[C] ") (:name dest-shape))) (let [; To synchronize geometry attributes we need to make a prior @@ -1224,8 +1223,8 @@ (let [attr (first attrs)] (if (nil? attr) - (let [all-parents (vec (or (cp/get-parents (:id dest-shape) - (:objects container)) [])) + (let [all-parents (cph/get-parent-ids (:objects container) + (:id dest-shape)) rchanges [(make-change container {:type :mod-obj @@ -1285,7 +1284,7 @@ (defn- make-change [container change] - (if (cp/page? container) + (if (cph/page? container) (assoc change :page-id (:id container)) (assoc change :component-id (:id container)))) diff --git a/frontend/src/app/main/data/workspace/path/changes.cljs b/frontend/src/app/main/data/workspace/path/changes.cljs index c31745babd..87fb18be16 100644 --- a/frontend/src/app/main/data/workspace/path/changes.cljs +++ b/frontend/src/app/main/data/workspace/path/changes.cljs @@ -6,7 +6,7 @@ (ns app.main.data.workspace.path.changes (:require - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.spec :as us] [app.main.data.workspace.changes :as dch] [app.main.data.workspace.path.helpers :as helpers] @@ -24,7 +24,7 @@ (let [shape-id (:id shape) frame-id (:frame-id shape) parent-id (:parent-id shape) - parent-index (cp/position-on-parent shape-id objects) + parent-index (cph/get-position-on-parent objects shape-id) [old-points old-selrect] (helpers/content->points+selrect shape old-content) [new-points new-selrect] (helpers/content->points+selrect shape new-content) diff --git a/frontend/src/app/main/data/workspace/path/drawing.cljs b/frontend/src/app/main/data/workspace/path/drawing.cljs index 8e7de7caeb..a6f0a41f51 100644 --- a/frontend/src/app/main/data/workspace/path/drawing.cljs +++ b/frontend/src/app/main/data/workspace/path/drawing.cljs @@ -8,7 +8,7 @@ (:require [app.common.geom.point :as gpt] [app.common.geom.shapes.path :as upg] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.path.commands :as upc] [app.common.path.shapes-to-path :as upsp] [app.common.spec :as us] @@ -255,10 +255,10 @@ (ptk/reify ::setup-frame-path ptk/UpdateEvent (update [_ state] - (let [objects (wsh/lookup-page-objects state) - content (get-in state [:workspace-drawing :object :content] []) + (let [objects (wsh/lookup-page-objects state) + content (get-in state [:workspace-drawing :object :content] []) position (get-in content [0 :params] nil) - frame-id (cp/frame-id-by-position objects position)] + frame-id (cph/frame-id-by-position objects position)] (-> state (assoc-in [:workspace-drawing :object :frame-id] frame-id)))))) diff --git a/frontend/src/app/main/data/workspace/path/shapes_to_path.cljs b/frontend/src/app/main/data/workspace/path/shapes_to_path.cljs index eae4dfb91e..54dfda1783 100644 --- a/frontend/src/app/main/data/workspace/path/shapes_to_path.cljs +++ b/frontend/src/app/main/data/workspace/path/shapes_to_path.cljs @@ -6,8 +6,8 @@ (ns app.main.data.workspace.path.shapes-to-path (:require - [app.common.pages :as cp] [app.common.pages.changes-builder :as cb] + [app.common.pages.helpers :as cph] [app.common.path.shapes-to-path :as upsp] [app.main.data.workspace.changes :as dch] [app.main.data.workspace.state-helpers :as wsh] @@ -24,7 +24,7 @@ children-ids (into #{} - (mapcat #(cp/get-children % objects)) + (mapcat #(cph/get-children-ids objects %)) selected) changes diff --git a/frontend/src/app/main/data/workspace/persistence.cljs b/frontend/src/app/main/data/workspace/persistence.cljs index 26b77c5a4c..82f856c0ae 100644 --- a/frontend/src/app/main/data/workspace/persistence.cljs +++ b/frontend/src/app/main/data/workspace/persistence.cljs @@ -9,6 +9,7 @@ [app.common.data :as d] [app.common.exceptions :as ex] [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.spec :as us] [app.common.spec.change :as spec.change] [app.common.spec.file :as spec.file] @@ -658,7 +659,7 @@ (rx/map extract-frame-changes) (rx/share)) - frames (-> state wsh/lookup-page-objects cp/select-frames) + frames (-> state wsh/lookup-page-objects cph/get-frames) no-thumb-frames (->> frames (filter (comp nil? :thumbnail)) (mapv :id))] diff --git a/frontend/src/app/main/data/workspace/selection.cljs b/frontend/src/app/main/data/workspace/selection.cljs index 5214d2ed52..bb29ac8f15 100644 --- a/frontend/src/app/main/data/workspace/selection.cljs +++ b/frontend/src/app/main/data/workspace/selection.cljs @@ -10,7 +10,7 @@ [app.common.geom.point :as gpt] [app.common.geom.shapes :as geom] [app.common.math :as mth] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.spec :as us] [app.common.spec.interactions :as cti] [app.common.uuid :as uuid] @@ -151,7 +151,7 @@ (conj id))] (-> state (assoc-in [:workspace-local :selected] - (cp/expand-region-selection objects selection)))))))) + (cph/expand-region-selection objects selection)))))))) (defn select-shapes [ids] @@ -171,39 +171,23 @@ (ptk/reify ::select-all ptk/WatchEvent (watch [_ state _] - (let [page-id (:current-page-id state) - objects (wsh/lookup-page-objects state page-id) - new-selected (let [selected-objs - (->> (wsh/lookup-selected state) - (map #(get objects %))) + (let [page-id (:current-page-id state) + objects (wsh/lookup-page-objects state page-id) - frame-ids - (reduce #(conj %1 (:frame-id %2)) - #{} - selected-objs) + selected (let [frame-ids (into #{} (comp + (map (d/getf objects)) + (map :frame-id)) + (wsh/lookup-selected state)) + frame-id (if (= 1 (count frame-ids)) + (first frame-ids) + uuid/zero)] + (cph/get-immediate-children objects frame-id)) - common-frame-id - (when (= (count frame-ids) 1) (first frame-ids))] + selected (into (d/ordered-set) + (remove :blocked) + selected)] - (if (and common-frame-id - (not= (:id common-frame-id) uuid/zero)) - (-> (get objects common-frame-id) - :shapes) - (->> (cp/select-toplevel-shapes objects - {:include-frames? true - :include-frame-children? false}) - (map :id)))) - - is-not-blocked (fn [shape-id] (not (get-in state [:workspace-data - :pages-index page-id - :objects shape-id - :blocked] false))) - - selected-ids (into lks/empty-linked-set - (comp (filter some?) - (filter is-not-blocked)) - new-selected)] - (rx/of (select-shapes selected-ids)))))) + (rx/of (select-shapes selected)))))) (defn deselect-all "Clear all possible state of drawing, edition @@ -250,7 +234,7 @@ :include-frames? true :ignore-groups? ignore-groups? :full-frame? true}) - (rx/map #(cp/clean-loops objects %)) + (rx/map #(cph/clean-loops objects %)) (rx/map #(into initial-set (filter (comp not blocked?)) %)) (rx/map select-shapes))))))) @@ -314,11 +298,8 @@ [objects page-id unames ids delta] (let [unames (volatile! unames) update-unames! (fn [new-name] (vswap! unames conj new-name)) - all-ids (reduce (fn [ids-set id] - (into ids-set (cons id (cp/get-children id objects)))) - #{} - ids) - ids-map (into {} (map #(vector % (uuid/next)) all-ids))] + all-ids (reduce #(into %1 (cons %2 (cph/get-children-ids objects %2))) #{} ids) + ids-map (into {} (map #(vector % (uuid/next))) all-ids)] (loop [ids (seq ids) chgs []] (if ids @@ -337,7 +318,7 @@ (let [process-id (fn [index-map id] (let [parent-id (get-in objects [id :parent-id]) - parent-index (cp/position-on-parent id objects)] + parent-index (cph/get-position-on-parent objects id)] (update index-map parent-id (fnil conj []) [id parent-index]))) index-map (reduce process-id {} ids)] (-> changes (update-indices index-map)))) @@ -345,7 +326,7 @@ (defn- prepare-duplicate-change [objects page-id unames update-unames! ids-map id delta] (let [obj (get objects id)] - (if (= :frame (:type obj)) + (if (cph/frame-shape? obj) (prepare-duplicate-frame-change objects page-id unames update-unames! ids-map obj delta) (prepare-duplicate-shape-change objects page-id unames update-unames! ids-map obj delta (:frame-id obj) (:parent-id obj))))) @@ -449,7 +430,7 @@ ;; The default is leave normal shapes in place, but put ;; new frames to the right of the original. - (if (= (:type obj) :frame) + (if (cph/frame-shape? obj) (gpt/point (+ (:width obj) 50) 0) (gpt/point 0 0)) diff --git a/frontend/src/app/main/data/workspace/state_helpers.cljs b/frontend/src/app/main/data/workspace/state_helpers.cljs index 661b272adf..bade10256e 100644 --- a/frontend/src/app/main/data/workspace/state_helpers.cljs +++ b/frontend/src/app/main/data/workspace/state_helpers.cljs @@ -7,7 +7,7 @@ (ns app.main.data.workspace.state-helpers (:require [app.common.data :as d] - [app.common.pages :as cp])) + [app.common.pages.helpers :as cph])) (defn lookup-page ([state] @@ -43,7 +43,7 @@ :or {omit-blocked? false}}] (let [objects (lookup-page-objects state) selected (->> (get-in state [:workspace-local :selected]) - (cp/clean-loops objects)) + (cph/clean-loops objects)) selectable? (fn [id] (and (contains? objects id) (or (not omit-blocked?) diff --git a/frontend/src/app/main/data/workspace/svg_upload.cljs b/frontend/src/app/main/data/workspace/svg_upload.cljs index 118fbc0dad..b649250aaf 100644 --- a/frontend/src/app/main/data/workspace/svg_upload.cljs +++ b/frontend/src/app/main/data/workspace/svg_upload.cljs @@ -12,7 +12,7 @@ [app.common.geom.point :as gpt] [app.common.geom.shapes :as gsh] [app.common.math :as mth] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.spec :refer [max-safe-int min-safe-int]] [app.common.uuid :as uuid] [app.main.data.workspace.changes :as dch] @@ -454,9 +454,9 @@ ptk/WatchEvent (watch [it state _] (try - (let [page-id (:current-page-id state) - objects (wsh/lookup-page-objects state page-id) - frame-id (cp/frame-id-by-position objects position) + (let [page-id (:current-page-id state) + objects (wsh/lookup-page-objects state page-id) + frame-id (cph/frame-id-by-position objects position) selected (wsh/lookup-selected state) [vb-x vb-y vb-width vb-height] (svg-dimensions svg-data) diff --git a/frontend/src/app/main/data/workspace/texts.cljs b/frontend/src/app/main/data/workspace/texts.cljs index 04d6b0eb9d..061130b15b 100644 --- a/frontend/src/app/main/data/workspace/texts.cljs +++ b/frontend/src/app/main/data/workspace/texts.cljs @@ -10,7 +10,7 @@ [app.common.data :as d] [app.common.geom.shapes :as gsh] [app.common.math :as mth] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.text :as txt] [app.main.data.workspace.changes :as dch] [app.main.data.workspace.common :as dwc] @@ -160,8 +160,9 @@ shape (get objects id) update-fn #(update-shape % txt/is-root-node? attrs/merge attrs) - shape-ids (cond (= (:type shape) :text) [id] - (= (:type shape) :group) (cp/get-children id objects))] + + shape-ids (cond (cph/text-shape? shape) [id] + (cph/group-shape? shape) (cph/get-children-ids objects id))] (rx/of (dch/update-shapes shape-ids update-fn)))))) @@ -186,8 +187,9 @@ attrs)) update-fn #(update-shape % txt/is-paragraph-node? merge-fn attrs) - shape-ids (cond (= (:type shape) :text) [id] - (= (:type shape) :group) (cp/get-children id objects))] + shape-ids (cond + (cph/text-shape? shape) [id] + (cph/group-shape? shape) (cph/get-children-ids objects id))] (rx/of (dch/update-shapes shape-ids update-fn)))))))) @@ -208,8 +210,9 @@ (txt/is-paragraph-node? node))) update-fn #(update-shape % update-node? attrs/merge attrs) - shape-ids (cond (= (:type shape) :text) [id] - (= (:type shape) :group) (cp/get-children id objects))] + shape-ids (cond + (cph/text-shape? shape) [id] + (cph/group-shape? shape) (cph/get-children-ids objects id))] (rx/of (dch/update-shapes shape-ids update-fn))))))) ;; --- RESIZE UTILS diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index 1d343f035d..fc0e792489 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -12,7 +12,7 @@ [app.common.geom.point :as gpt] [app.common.geom.shapes :as gsh] [app.common.math :as mth] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.spec :as us] [app.main.data.workspace.changes :as dch] [app.main.data.workspace.common :as dwc] @@ -144,9 +144,7 @@ (let [objects (wsh/lookup-page-objects state) shapes (->> shapes (remove #(get % :blocked false)) - (mapcat (fn [shape] - (->> (cp/get-children (:id shape) objects) - (map #(get objects %))))) + (mapcat #(cph/get-children objects (:id %))) (concat shapes)) update-shape @@ -156,8 +154,6 @@ (update state :workspace-modifiers #(reduce update-shape % shapes))))))) - - (defn- apply-modifiers [ids] (us/verify (s/coll-of uuid?) ids) @@ -165,8 +161,7 @@ ptk/WatchEvent (watch [_ state _] (let [objects (wsh/lookup-page-objects state) - children-ids (->> ids (mapcat #(cp/get-children % objects))) - ids-with-children (d/concat-vec children-ids ids) + ids-with-children (into (vec ids) (mapcat #(cph/get-children-ids objects %)) ids) object-modifiers (get state :workspace-modifiers) ignore-tree (get-ignore-tree object-modifiers objects ids)] @@ -203,7 +198,7 @@ shape (nil? root) - (cp/get-root-shape shape objects) + (cph/get-root-shape objects shape) :else root) @@ -213,7 +208,7 @@ transformed-shape (nil? transformed-root) - (cp/get-root-shape transformed-shape objects) + (cph/get-root-shape objects transformed-shape) :else transformed-root) @@ -663,10 +658,10 @@ (let [position @ms/mouse-position page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) - frame-id (cp/frame-id-by-position objects position) + frame-id (cph/frame-id-by-position objects position) moving-shapes (->> ids - (cp/clean-loops objects) + (cph/clean-loops objects) (map #(get objects %)) (remove #(or (nil? %) (= (:frame-id %) frame-id)))) @@ -683,7 +678,7 @@ {:type :mov-objects :page-id page-id :parent-id (:parent-id shape) - :index (cp/get-index-in-parent objects (:id shape)) + :index (cph/get-index-in-parent objects (:id shape)) :shapes [(:id shape)]})))] (when-not (empty? uch) diff --git a/frontend/src/app/main/refs.cljs b/frontend/src/app/main/refs.cljs index b24e1af90d..b94e0af0e1 100644 --- a/frontend/src/app/main/refs.cljs +++ b/frontend/src/app/main/refs.cljs @@ -9,7 +9,7 @@ (:require [app.common.data :as d] [app.common.geom.shapes :as gsh] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.path.commands :as upc] [app.main.data.workspace.state-helpers :as wsh] [app.main.store :as st] @@ -218,7 +218,7 @@ :media :typographies :components])) - st/state)) + st/state =)) (def workspace-libraries (l/derived :workspace-libraries st/state)) @@ -246,7 +246,7 @@ (l/derived :options workspace-page)) (def workspace-frames - (l/derived cp/select-frames workspace-page-objects =)) + (l/derived cph/get-frames workspace-page-objects =)) (def workspace-editor (l/derived :workspace-editor st/state)) @@ -276,9 +276,11 @@ (defn select-bool-children [id] (let [selector (fn [state] - (let [objects (wsh/lookup-page-objects state) - modifiers (:workspace-modifiers state)] - (as-> (cp/select-children id objects) $ + (let [objects (wsh/lookup-page-objects state) + modifiers (:workspace-modifiers state) + children (->> (cph/get-children-ids objects id) + (select-keys objects))] + (as-> children $ (gsh/merge-modifiers $ modifiers) (d/mapm (set-content-modifiers state) $))))] (l/derived selector st/state =))) @@ -293,7 +295,7 @@ (defn is-child-selected? [id] (letfn [(selector [{:keys [selected objects]}] - (let [children (cp/get-children id objects)] + (let [children (cph/get-children-ids objects id)] (some #(contains? selected %) children)))] (l/derived selector selected-data =))) @@ -307,7 +309,7 @@ (def selected-shapes-with-children (letfn [(selector [{:keys [selected objects]}] (let [xform (comp (remove nil?) - (mapcat #(cp/get-children % objects))) + (mapcat #(cph/get-children-ids objects %))) shapes (into selected xform selected)] (mapv (d/getf objects) shapes)))] (l/derived selector selected-data =))) diff --git a/frontend/src/app/main/render.cljs b/frontend/src/app/main/render.cljs index 91d6dd72d0..fa08642824 100644 --- a/frontend/src/app/main/render.cljs +++ b/frontend/src/app/main/render.cljs @@ -19,8 +19,7 @@ [app.common.geom.point :as gpt] [app.common.geom.shapes :as gsh] [app.common.math :as mth] - [app.common.pages :as cp] - [app.common.uuid :as uuid] + [app.common.pages.helpers :as cph] [app.config :as cfg] [app.main.fonts :as fonts] [app.main.ui.shapes.bool :as bool] @@ -59,12 +58,11 @@ (defn- calculate-dimensions [{:keys [objects] :as data} vport] - (let [shapes (cp/select-toplevel-shapes objects {:include-frames? true - :include-frame-children? false}) + (let [shapes (cph/get-immediate-children objects) to-finite (fn [val fallback] (if (not (mth/finite? val)) fallback val)) - rect (cond->> (gsh/selection-rect shapes) - (some? vport) - (gal/adjust-to-viewport vport))] + rect (cond->> (gsh/selection-rect shapes) + (some? vport) + (gal/adjust-to-viewport vport))] (-> rect (update :x to-finite 0) (update :y to-finite 0) @@ -101,11 +99,9 @@ bool-shape (bool/bool-shape shape-wrapper)] (mf/fnc bool-wrapper [{:keys [shape] :as props}] - (let [childs (mf/use-memo - (mf/deps (:id shape) objects) - (fn [] - (->> (cp/get-children (:id shape) objects) - (select-keys objects))))] + (let [childs (mf/with-memo [(:id shape) objects] + (->> (cph/get-children-ids objects (:id shape)) + (select-keys objects)))] [:& bool-shape {:shape shape :childs childs}])))) (defn svg-raw-wrapper-factory @@ -166,15 +162,12 @@ [{:keys [data width height thumbnails? embed? include-metadata?] :as props :or {embed? false include-metadata? false}}] (let [objects (:objects data) - root (get objects uuid/zero) - shapes - (->> (:shapes root) - (map #(get objects %))) + shapes (cph/get-immediate-children objects) root-children (->> shapes - (filter #(not= :frame (:type %))) - (mapcat #(cp/get-object-with-children (:id %) objects))) + (remove cph/frame-shape?) + (mapcat #(cph/get-children-with-self objects (:id %)))) vport (when (and (some? width) (some? height)) {:width width :height height}) @@ -237,7 +230,7 @@ objects (mf/with-memo [frame-id objects modifier] (let [update-fn #(assoc-in %1 [%2 :modifiers :displacement] modifier)] - (->> (cp/get-children frame-id objects) + (->> (cph/get-children-ids objects frame-id) (into [frame-id]) (reduce update-fn objects)))) @@ -280,7 +273,7 @@ (mf/use-memo (mf/deps modifier objects group-id) (fn [] - (let [modifier-ids (concat [group-id] (cp/get-children group-id objects)) + (let [modifier-ids (cons group-id (cph/get-children-ids objects group-id)) update-fn #(assoc-in %1 [%2 :modifiers :displacement] modifier) modifiers (reduce update-fn {} modifier-ids)] (gsh/merge-modifiers objects modifiers)))) @@ -334,7 +327,7 @@ (mf/use-memo (mf/deps modifier id objects) (fn [] - (let [modifier-ids (concat [id] (cp/get-children id objects)) + (let [modifier-ids (cons id (cph/get-children-ids objects id)) update-fn #(assoc-in %1 [%2 :modifiers :displacement] modifier)] (reduce update-fn objects modifier-ids)))) diff --git a/frontend/src/app/main/snap.cljs b/frontend/src/app/main/snap.cljs index 3da469e5df..862d7bbd70 100644 --- a/frontend/src/app/main/snap.cljs +++ b/frontend/src/app/main/snap.cljs @@ -10,7 +10,7 @@ [app.common.geom.point :as gpt] [app.common.geom.shapes :as gsh] [app.common.math :as mth] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.uuid :refer [zero]] [app.main.refs :as refs] [app.main.worker :as uw] @@ -202,9 +202,9 @@ :frame-id (->> shapes first :frame-id) :include-frames? true :rect area-selrect}) - (rx/map #(cp/clean-loops objects %)) + (rx/map #(cph/clean-loops objects %)) (rx/map #(set/difference % (into #{} (map :id shapes)))) - (rx/map (fn [ids] (map #(get objects %) ids))))) + (rx/map #(map (d/getf objects) %)))) (defn closest-distance-snap [page-id shapes objects zoom movev] diff --git a/frontend/src/app/main/ui/render.cljs b/frontend/src/app/main/ui/render.cljs index 5542a46713..6d021f5343 100644 --- a/frontend/src/app/main/ui/render.cljs +++ b/frontend/src/app/main/ui/render.cljs @@ -10,7 +10,7 @@ [app.common.geom.point :as gpt] [app.common.geom.shapes :as gsh] [app.common.math :as mth] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.uuid :as uuid] [app.main.data.fonts :as df] [app.main.render :as render] @@ -60,7 +60,7 @@ (gpt/negate) (gmt/translate-matrix)) - mod-ids (cons frame-id (cp/get-children frame-id objects)) + mod-ids (cons frame-id (cph/get-children-ids objects frame-id)) updt-fn #(-> %1 (assoc-in [%2 :modifiers :displacement] modifier) (update %2 gsh/transform-shape)) @@ -133,7 +133,7 @@ [objects object-id] (if (uuid/zero? object-id) (let [object (get objects object-id) - shapes (cp/select-toplevel-shapes objects {:include-frames? true}) + shapes (cph/get-immediate-children objects) srect (gsh/selection-rect shapes) object (merge object (select-keys srect [:x :y :width :height])) object (gsh/transform-shape object) diff --git a/frontend/src/app/main/ui/viewer/handoff/render.cljs b/frontend/src/app/main/ui/viewer/handoff/render.cljs index 0f1854fc15..7aa9c7568f 100644 --- a/frontend/src/app/main/ui/viewer/handoff/render.cljs +++ b/frontend/src/app/main/ui/viewer/handoff/render.cljs @@ -8,7 +8,7 @@ "The main container for a frame in handoff mode" (:require [app.common.geom.shapes :as geom] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.main.data.viewer :as dv] [app.main.store :as st] [app.main.ui.shapes.bool :as bool] @@ -116,12 +116,12 @@ (mf/fnc bool-container {::mf/wrap-props false} [props] - (let [shape (unchecked-get props "shape") - children-ids (cp/get-children (:id shape) objects) - childs (select-keys objects children-ids) - props (-> (obj/new) - (obj/merge! props) - (obj/merge! #js {:childs childs}))] + (let [shape (unchecked-get props "shape") + children (->> (cph/get-children-ids objects (:id shape)) + (select-keys objects)) + props (-> (obj/new) + (obj/merge! props) + (obj/merge! #js {:childs children}))] [:> bool-wrapper props])))) (defn svg-raw-container-factory diff --git a/frontend/src/app/main/ui/viewer/interactions.cljs b/frontend/src/app/main/ui/viewer/interactions.cljs index e60c5af348..e3e0b55b40 100644 --- a/frontend/src/app/main/ui/viewer/interactions.cljs +++ b/frontend/src/app/main/ui/viewer/interactions.cljs @@ -9,7 +9,7 @@ [app.common.data :as d] [app.common.geom.matrix :as gmt] [app.common.geom.point :as gpt] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.spec.page :as csp] [app.main.data.comments :as dcm] [app.main.data.viewer :as dv] @@ -35,11 +35,10 @@ update-fn #(d/update-when %1 %2 assoc-in [:modifiers :displacement] modifier)] - (->> (cp/get-children frame-id objects) + (->> (cph/get-children-ids objects frame-id) (into [frame-id]) (reduce update-fn objects))))) - (mf/defc viewport {::mf/wrap [mf/memo]} [{:keys [page interactions-mode frame base-frame frame-offset size]}] diff --git a/frontend/src/app/main/ui/viewer/shapes.cljs b/frontend/src/app/main/ui/viewer/shapes.cljs index 8ccc9a1453..ab39c835ec 100644 --- a/frontend/src/app/main/ui/viewer/shapes.cljs +++ b/frontend/src/app/main/ui/viewer/shapes.cljs @@ -10,7 +10,7 @@ [app.common.geom.matrix :as gmt] [app.common.geom.point :as gpt] [app.common.geom.shapes :as geom] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.spec.interactions :as cti] [app.main.data.viewer :as dv] [app.main.refs :as refs] @@ -330,7 +330,8 @@ {::mf/wrap-props false} [props] (let [shape (unchecked-get props "shape") - childs (select-keys objects (cp/get-children (:id shape) objects)) + childs (->> (cph/get-children-ids objects (:id shape)) + (select-keys objects)) props (obj/merge! #js {} props #js {:childs childs :objects objects})] @@ -399,7 +400,7 @@ update-fn #(assoc-in %1 [%2 :modifiers :displacement] modifier) frame-id (:id frame) - modifier-ids (into [frame-id] (cp/get-children frame-id objects)) + modifier-ids (into [frame-id] (cph/get-children-ids objects frame-id)) objects (reduce update-fn objects modifier-ids) frame (assoc-in frame [:modifiers :displacement] modifier) diff --git a/frontend/src/app/main/ui/workspace/header.cljs b/frontend/src/app/main/ui/workspace/header.cljs index 17a40500d9..945b293955 100644 --- a/frontend/src/app/main/ui/workspace/header.cljs +++ b/frontend/src/app/main/ui/workspace/header.cljs @@ -100,13 +100,11 @@ (mf/defc menu [{:keys [layout project file team-id page-id] :as props}] - (let [show-menu? (mf/use-state false) + (let [show-menu? (mf/use-state false) show-sub-menu? (mf/use-state false) - editing? (mf/use-state false) - - frames (mf/deref refs/workspace-frames) - + editing? (mf/use-state false) edit-input-ref (mf/use-ref nil) + frames (mf/deref refs/workspace-frames) add-shared-fn (st/emitf (dw/set-file-shared (:id file) true)) diff --git a/frontend/src/app/main/ui/workspace/shapes.cljs b/frontend/src/app/main/ui/workspace/shapes.cljs index 315d697a9b..359e2c56f9 100644 --- a/frontend/src/app/main/ui/workspace/shapes.cljs +++ b/frontend/src/app/main/ui/workspace/shapes.cljs @@ -12,9 +12,7 @@ others are defined using a generic wrapper implemented in common." (:require - [app.common.pages :as cp] - [app.common.uuid :as uuid] - [app.main.refs :as refs] + [app.common.pages.helpers :as cph] [app.main.ui.shapes.circle :as circle] [app.main.ui.shapes.image :as image] [app.main.ui.shapes.rect :as rect] @@ -29,7 +27,6 @@ [app.main.ui.workspace.shapes.text :as text] [app.util.object :as obj] [debug :refer [debug?]] - [okulary.core :as l] [rumext.alpha :as mf])) (declare shape-wrapper) @@ -42,31 +39,23 @@ (def image-wrapper (common/generic-wrapper-factory image/image-shape)) (def rect-wrapper (common/generic-wrapper-factory rect/rect-shape)) -(defn make-is-moving-ref - [id] - (fn [] - (let [check-moving (fn [local] - (and (= :move (:transform local)) - (contains? (:selected local) id)))] - (l/derived check-moving refs/workspace-local)))) - (mf/defc root-shape "Draws the root shape of the viewport and recursively all the shapes" {::mf/wrap-props false} [props] (let [objects (obj/get props "objects") active-frames (obj/get props "active-frames") - root-shapes (get-in objects [uuid/zero :shapes]) - shapes (->> root-shapes (mapv #(get objects %))) - - root-children (->> shapes - (filter #(not= :frame (:type %))) - (mapcat #(cp/get-object-with-children (:id %) objects)))] - + shapes (cph/get-immediate-children objects)] [:* - [:& ff/fontfaces-style {:shapes root-children}] + ;; Render font faces only for shapes that are part of the root + ;; frame but don't belongs to any other frame. + (let [xform (comp + (remove cph/frame-shape?) + (mapcat #(cph/get-children-with-self objects (:id %))))] + [:& ff/fontfaces-style {:shapes (into [] xform shapes)}]) + (for [item shapes] - (if (= (:type item) :frame) + (if (cph/frame-shape? item) [:& frame-wrapper {:shape item :key (:id item) :objects objects diff --git a/frontend/src/app/main/ui/workspace/shapes/frame.cljs b/frontend/src/app/main/ui/workspace/shapes/frame.cljs index fe79dd29e0..def9684643 100644 --- a/frontend/src/app/main/ui/workspace/shapes/frame.cljs +++ b/frontend/src/app/main/ui/workspace/shapes/frame.cljs @@ -7,7 +7,7 @@ (ns app.main.ui.workspace.shapes.frame (:require [app.common.data :as d] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.main.ui.hooks :as hooks] [app.main.ui.shapes.frame :as frame] [app.main.ui.shapes.shape :refer [shape-container]] @@ -105,7 +105,7 @@ (hooks/use-equal-memo)) all-children - (-> (cp/get-children-objects (:id shape) objects) + (-> (cph/get-children objects (:id shape)) (hooks/use-equal-memo)) show-thumbnail? diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs index ca278502c9..8ed877406d 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs @@ -8,7 +8,7 @@ (:require [app.common.data :as d] [app.common.media :as cm] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.spec :as us] [app.common.text :as txt] [app.config :as cfg] @@ -43,18 +43,18 @@ [potok.core :as ptk] [rumext.alpha :as mf])) -; TODO: refactor to remove duplicate code and less parameter passing. -; - Move all state to [:workspace-local :assets-bar file-id :open-boxes {} -; :open-groups {} -; :reverse-sort? -; :listing-thumbs? -; :selected-assets {}] -; - Move selection code to independent functions that receive the state as a parameter. -; -; TODO: change update operations to admit multiple ids, thus avoiding the need of -; emitting many events and opening an undo transaction. Also move the logic -; of grouping, deleting, etc. to events in the data module, since now the -; selection info is in the global state. +;; TODO: refactor to remove duplicate code and less parameter passing. +;; - Move all state to [:workspace-local :assets-bar file-id :open-boxes {} +;; :open-groups {} +;; :reverse-sort? +;; :listing-thumbs? +;; :selected-assets {}] +;; - Move selection code to independent functions that receive the state as a parameter. +;; +;; TODO: change update operations to admit multiple ids, thus avoiding the need of +;; emitting many events and opening an undo transaction. Also move the logic +;; of grouping, deleting, etc. to events in the data module, since now the +;; selection info is in the global state. ;; ---- Group assets management ---- @@ -74,7 +74,7 @@ (compare (d/name key1) (d/name key2))))] (when-not (empty? assets) (reduce (fn [groups asset] - (let [path-vector (cp/split-path (or (:path asset) ""))] + (let [path-vector (cph/split-path (or (:path asset) ""))] (update-in groups (conj path-vector "") (fn [group] (if-not group @@ -86,30 +86,30 @@ (defn add-group [asset group-name] (-> (:path asset) - (cp/merge-path-item group-name) - (cp/merge-path-item (:name asset)))) + (cph/merge-path-item group-name) + (cph/merge-path-item (:name asset)))) (defn rename-group [asset path last-path] (-> (:path asset) (str/slice 0 (count path)) - (cp/split-path) + (cph/split-path) butlast (vec) (conj last-path) - (cp/join-path) + (cph/join-path) (str (str/slice (:path asset) (count path))) - (cp/merge-path-item (:name asset)))) + (cph/merge-path-item (:name asset)))) (defn ungroup [asset path] (-> (:path asset) (str/slice 0 (count path)) - (cp/split-path) + (cph/split-path) butlast - (cp/join-path) + (cph/join-path) (str (str/slice (:path asset) (count path))) - (cp/merge-path-item (:name asset)))) + (cph/merge-path-item (:name asset)))) (s/def ::asset-name ::us/not-empty-string) (s/def ::name-group-form @@ -121,8 +121,8 @@ [{:keys [path last-path accept] :as ctx :or {path "" last-path ""}}] (let [initial (mf/use-memo - (mf/deps last-path) - (constantly {:asset-name last-path})) + (mf/deps last-path) + (constantly {:asset-name last-path})) form (fm/use-form :spec ::name-group-form :initial initial) @@ -225,27 +225,27 @@ (mf/defc asset-group-title [{:keys [file-id box path group-open? on-rename on-ungroup]}] (when-not (empty? path) - (let [[other-path last-path truncated] (cp/compact-path path 35) + (let [[other-path last-path truncated] (cph/compact-path path 35) menu-state (mf/use-state auto-pos-menu-state) on-fold-group (mf/use-callback - (mf/deps file-id box path group-open?) - (fn [event] - (dom/stop-propagation event) - (st/emit! (dwl/set-assets-group-open file-id - box - path - (not group-open?))))) + (mf/deps file-id box path group-open?) + (fn [event] + (dom/stop-propagation event) + (st/emit! (dwl/set-assets-group-open file-id + box + path + (not group-open?))))) on-context-menu (mf/use-callback - (fn [event] - (swap! menu-state #(open-auto-pos-menu % event)))) + (fn [event] + (swap! menu-state #(open-auto-pos-menu % event)))) on-close-menu (mf/use-callback - (fn [] - (swap! menu-state close-auto-pos-menu)))] + (fn [] + (swap! menu-state close-auto-pos-menu)))] [:div.group-title {:class (when-not group-open? "closed") :on-click on-fold-group @@ -268,38 +268,38 @@ (mf/defc components-item [{:keys [component renaming listing-thumbs? selected-components on-asset-click on-context-menu on-drag-start do-rename cancel-rename]}] - [:div {:key (:id component) - :class-name (dom/classnames - :selected (contains? selected-components (:id component)) - :grid-cell @listing-thumbs? - :enum-item (not @listing-thumbs?)) - :id (str "component-shape-id-" (:id component)) - :draggable true - :on-click #(on-asset-click % (:id component) nil) - :on-context-menu (on-context-menu (:id component)) - :on-drag-start (partial on-drag-start component)} - [:& component-svg {:group (get-in component [:objects (:id component)]) - :objects (:objects component)}] - (let [renaming? (= renaming (:id component))] - [:& editable-label - {:class-name (dom/classnames - :cell-name @listing-thumbs? - :item-name (not @listing-thumbs?) - :editing renaming?) - :value (cp/merge-path-item (:path component) (:name component)) - :tooltip (cp/merge-path-item (:path component) (:name component)) - :display-value (if @listing-thumbs? - (:name component) - (cp/compact-name (:path component) - (:name component))) - :editing? renaming? - :disable-dbl-click? true - :on-change do-rename - :on-cancel cancel-rename}])]) + [:div {:key (:id component) + :class-name (dom/classnames + :selected (contains? selected-components (:id component)) + :grid-cell @listing-thumbs? + :enum-item (not @listing-thumbs?)) + :id (str "component-shape-id-" (:id component)) + :draggable true + :on-click #(on-asset-click % (:id component) nil) + :on-context-menu (on-context-menu (:id component)) + :on-drag-start (partial on-drag-start component)} + [:& component-svg {:group (get-in component [:objects (:id component)]) + :objects (:objects component)}] + (let [renaming? (= renaming (:id component))] + [:& editable-label + {:class-name (dom/classnames + :cell-name @listing-thumbs? + :item-name (not @listing-thumbs?) + :editing renaming?) + :value (cph/merge-path-item (:path component) (:name component)) + :tooltip (cph/merge-path-item (:path component) (:name component)) + :display-value (if @listing-thumbs? + (:name component) + (cph/compact-name (:path component) + (:name component))) + :editing? renaming? + :disable-dbl-click? true + :on-change do-rename + :on-cancel cancel-rename}])]) (mf/defc components-group [{:keys [file-id prefix groups open-groups renaming listing-thumbs? selected-components on-asset-click - on-drag-start do-rename cancel-rename on-rename-group on-ungroup on-context-menu]}] + on-drag-start do-rename cancel-rename on-rename-group on-ungroup on-context-menu]}] (let [group-open? (get open-groups prefix true)] [:* @@ -313,9 +313,9 @@ [:* (let [components (get groups "" [])] [:div {:class-name (dom/classnames - :asset-grid @listing-thumbs? - :big @listing-thumbs? - :asset-enum (not @listing-thumbs?))} + :asset-grid @listing-thumbs? + :big @listing-thumbs? + :asset-enum (not @listing-thumbs?))} (for [component components] [:& components-item {:component component :renaming renaming @@ -329,7 +329,7 @@ (for [[path-item content] groups] (when-not (empty? path-item) [:& components-group {:file-id file-id - :prefix (cp/merge-path-item prefix path-item) + :prefix (cph/merge-path-item prefix path-item) :groups content :open-groups open-groups :renaming renaming @@ -361,119 +361,119 @@ on-duplicate (mf/use-callback - (mf/deps @state) - (fn [] - (if (empty? selected-components) - (st/emit! (dwl/duplicate-component {:id (:component-id @state)})) - (do - (st/emit! (dwu/start-undo-transaction)) - (apply st/emit! (map #(dwl/duplicate-component {:id %}) selected-components)) - (st/emit! (dwu/commit-undo-transaction)))))) + (mf/deps @state) + (fn [] + (if (empty? selected-components) + (st/emit! (dwl/duplicate-component {:id (:component-id @state)})) + (do + (st/emit! (dwu/start-undo-transaction)) + (apply st/emit! (map #(dwl/duplicate-component {:id %}) selected-components)) + (st/emit! (dwu/commit-undo-transaction)))))) on-delete (mf/use-callback - (mf/deps @state file-id multi-components? multi-assets?) - (fn [] - (if (or multi-components? multi-assets?) - (on-assets-delete) - (st/emit! (dwu/start-undo-transaction) - (dwl/delete-component {:id (:component-id @state)}) - (dwl/sync-file file-id file-id) - (dwu/commit-undo-transaction))))) + (mf/deps @state file-id multi-components? multi-assets?) + (fn [] + (if (or multi-components? multi-assets?) + (on-assets-delete) + (st/emit! (dwu/start-undo-transaction) + (dwl/delete-component {:id (:component-id @state)}) + (dwl/sync-file file-id file-id) + (dwu/commit-undo-transaction))))) on-rename (mf/use-callback - (mf/deps @state) - (fn [] - (swap! state assoc :renaming (:component-id @state)))) + (mf/deps @state) + (fn [] + (swap! state assoc :renaming (:component-id @state)))) do-rename (mf/use-callback - (mf/deps @state) - (fn [new-name] - (st/emit! (dwl/rename-component (:renaming @state) new-name)) - (swap! state assoc :renaming nil))) + (mf/deps @state) + (fn [new-name] + (st/emit! (dwl/rename-component (:renaming @state) new-name)) + (swap! state assoc :renaming nil))) cancel-rename (mf/use-callback - (fn [] - (swap! state assoc :renaming nil))) + (fn [] + (swap! state assoc :renaming nil))) on-context-menu (mf/use-callback - (mf/deps selected-components on-clear-selection) - (fn [component-id] - (fn [event] - (when local? - (when-not (contains? selected-components component-id) - (on-clear-selection)) - (swap! state assoc :component-id component-id) - (swap! menu-state #(open-auto-pos-menu % event)))))) + (mf/deps selected-components on-clear-selection) + (fn [component-id] + (fn [event] + (when local? + (when-not (contains? selected-components component-id) + (on-clear-selection)) + (swap! state assoc :component-id component-id) + (swap! menu-state #(open-auto-pos-menu % event)))))) on-close-menu (mf/use-callback - (fn [] - (swap! menu-state close-auto-pos-menu))) + (fn [] + (swap! menu-state close-auto-pos-menu))) create-group (mf/use-callback - (mf/deps components selected-components on-clear-selection) - (fn [group-name] - (on-clear-selection) - (st/emit! (dwu/start-undo-transaction)) - (apply st/emit! - (->> components - (filter #(if multi-components? - (contains? selected-components (:id %)) - (= (:component-id @state) (:id %)))) - (map #(dwl/rename-component - (:id %) - (add-group % group-name))))) - (st/emit! (dwu/commit-undo-transaction)))) + (mf/deps components selected-components on-clear-selection) + (fn [group-name] + (on-clear-selection) + (st/emit! (dwu/start-undo-transaction)) + (apply st/emit! + (->> components + (filter #(if multi-components? + (contains? selected-components (:id %)) + (= (:component-id @state) (:id %)))) + (map #(dwl/rename-component + (:id %) + (add-group % group-name))))) + (st/emit! (dwu/commit-undo-transaction)))) rename-group (mf/use-callback - (mf/deps components) - (fn [path last-path] - (on-clear-selection) - (st/emit! (dwu/start-undo-transaction)) - (apply st/emit! - (->> components - (filter #(str/starts-with? (:path %) path)) - (map #(dwl/rename-component - (:id %) - (rename-group % path last-path))))) - (st/emit! (dwu/commit-undo-transaction)))) + (mf/deps components) + (fn [path last-path] + (on-clear-selection) + (st/emit! (dwu/start-undo-transaction)) + (apply st/emit! + (->> components + (filter #(str/starts-with? (:path %) path)) + (map #(dwl/rename-component + (:id %) + (rename-group % path last-path))))) + (st/emit! (dwu/commit-undo-transaction)))) on-group (mf/use-callback - (mf/deps components selected-components) - (fn [event] - (dom/stop-propagation event) - (modal/show! :name-group-dialog {:accept create-group}))) + (mf/deps components selected-components) + (fn [event] + (dom/stop-propagation event) + (modal/show! :name-group-dialog {:accept create-group}))) on-rename-group (mf/use-callback - (mf/deps components) - (fn [event path last-path] - (dom/stop-propagation event) - (modal/show! :name-group-dialog {:path path - :last-path last-path - :accept rename-group}))) + (mf/deps components) + (fn [event path last-path] + (dom/stop-propagation event) + (modal/show! :name-group-dialog {:path path + :last-path last-path + :accept rename-group}))) on-ungroup (mf/use-callback - (mf/deps components) - (fn [path] - (on-clear-selection) - (st/emit! (dwu/start-undo-transaction)) - (apply st/emit! - (->> components - (filter #(str/starts-with? (:path %) path)) - (map #(dwl/rename-component - (:id %) - (ungroup % path))))) - (st/emit! (dwu/commit-undo-transaction)))) + (mf/deps components) + (fn [path] + (on-clear-selection) + (st/emit! (dwu/start-undo-transaction)) + (apply st/emit! + (->> components + (filter #(str/starts-with? (:path %) path)) + (map #(dwl/rename-component + (:id %) + (ungroup % path))))) + (st/emit! (dwu/commit-undo-transaction)))) on-drag-start (mf/use-callback @@ -522,9 +522,9 @@ on-asset-click on-context-menu on-drag-start do-rename cancel-rename]}] [:div {:key (:id object) :class-name (dom/classnames - :selected (contains? selected-objects (:id object)) - :grid-cell @listing-thumbs? - :enum-item (not @listing-thumbs?)) + :selected (contains? selected-objects (:id object)) + :grid-cell @listing-thumbs? + :enum-item (not @listing-thumbs?)) :draggable true :on-click #(on-asset-click % (:id object) nil) :on-context-menu (on-context-menu (:id object)) @@ -535,15 +535,15 @@ (let [renaming? (= renaming (:id object))] [:& editable-label {:class-name (dom/classnames - :cell-name @listing-thumbs? - :item-name (not @listing-thumbs?) - :editing renaming?) - :value (cp/merge-path-item (:path object) (:name object)) - :tooltip (cp/merge-path-item (:path object) (:name object)) + :cell-name @listing-thumbs? + :item-name (not @listing-thumbs?) + :editing renaming?) + :value (cph/merge-path-item (:path object) (:name object)) + :tooltip (cph/merge-path-item (:path object) (:name object)) :display-value (if @listing-thumbs? (:name object) - (cp/compact-name (:path object) - (:name object))) + (cph/compact-name (:path object) + (:name object))) :editing? renaming? :disable-dbl-click? true :on-change do-rename @@ -566,8 +566,8 @@ [:* (let [objects (get groups "" [])] [:div {:class-name (dom/classnames - :asset-grid @listing-thumbs? - :asset-enum (not @listing-thumbs?))} + :asset-grid @listing-thumbs? + :asset-enum (not @listing-thumbs?))} (for [object objects] [:& graphics-item {:object object :renaming renaming @@ -581,7 +581,7 @@ (for [[path-item content] groups] (when-not (empty? path-item) [:& graphics-group {:file-id file-id - :prefix (cp/merge-path-item prefix path-item) + :prefix (cph/merge-path-item prefix path-item) :groups content :open-groups open-groups :renaming renaming @@ -638,96 +638,96 @@ on-rename (mf/use-callback - (mf/deps @state) - (fn [] - (swap! state assoc :renaming (:object-id @state)))) + (mf/deps @state) + (fn [] + (swap! state assoc :renaming (:object-id @state)))) cancel-rename (mf/use-callback - (fn [] - (swap! state assoc :renaming nil))) + (fn [] + (swap! state assoc :renaming nil))) do-rename (mf/use-callback - (mf/deps @state) - (fn [new-name] - (st/emit! (dwl/rename-media (:renaming @state) new-name)) - (swap! state assoc :renaming nil))) + (mf/deps @state) + (fn [new-name] + (st/emit! (dwl/rename-media (:renaming @state) new-name)) + (swap! state assoc :renaming nil))) on-context-menu (mf/use-callback - (mf/deps selected-objects on-clear-selection) - (fn [object-id] - (fn [event] - (when local? - (when-not (contains? selected-objects object-id) - (on-clear-selection)) - (swap! state assoc :object-id object-id) - (swap! menu-state #(open-auto-pos-menu % event)))))) + (mf/deps selected-objects on-clear-selection) + (fn [object-id] + (fn [event] + (when local? + (when-not (contains? selected-objects object-id) + (on-clear-selection)) + (swap! state assoc :object-id object-id) + (swap! menu-state #(open-auto-pos-menu % event)))))) on-close-menu (mf/use-callback - (fn [] - (swap! menu-state close-auto-pos-menu))) + (fn [] + (swap! menu-state close-auto-pos-menu))) create-group (mf/use-callback - (mf/deps objects selected-objects on-clear-selection) - (fn [group-name] - (on-clear-selection) - (st/emit! (dwu/start-undo-transaction)) - (apply st/emit! - (->> objects - (filter #(if multi-objects? - (contains? selected-objects (:id %)) - (= (:object-id @state) (:id %)))) - (map #(dwl/rename-media - (:id %) - (add-group % group-name))))) - (st/emit! (dwu/commit-undo-transaction)))) + (mf/deps objects selected-objects on-clear-selection) + (fn [group-name] + (on-clear-selection) + (st/emit! (dwu/start-undo-transaction)) + (apply st/emit! + (->> objects + (filter #(if multi-objects? + (contains? selected-objects (:id %)) + (= (:object-id @state) (:id %)))) + (map #(dwl/rename-media + (:id %) + (add-group % group-name))))) + (st/emit! (dwu/commit-undo-transaction)))) rename-group (mf/use-callback - (mf/deps objects) - (fn [path last-path] - (on-clear-selection) - (st/emit! (dwu/start-undo-transaction)) - (apply st/emit! - (->> objects - (filter #(str/starts-with? (:path %) path)) - (map #(dwl/rename-media - (:id %) - (rename-group % path last-path))))) - (st/emit! (dwu/commit-undo-transaction)))) + (mf/deps objects) + (fn [path last-path] + (on-clear-selection) + (st/emit! (dwu/start-undo-transaction)) + (apply st/emit! + (->> objects + (filter #(str/starts-with? (:path %) path)) + (map #(dwl/rename-media + (:id %) + (rename-group % path last-path))))) + (st/emit! (dwu/commit-undo-transaction)))) on-group (mf/use-callback - (mf/deps objects selected-objects) - (fn [event] - (dom/stop-propagation event) - (modal/show! :name-group-dialog {:accept create-group}))) + (mf/deps objects selected-objects) + (fn [event] + (dom/stop-propagation event) + (modal/show! :name-group-dialog {:accept create-group}))) on-rename-group (mf/use-callback - (mf/deps objects) - (fn [event path last-path] - (dom/stop-propagation event) - (modal/show! :name-group-dialog {:path path - :last-path last-path - :accept rename-group}))) + (mf/deps objects) + (fn [event path last-path] + (dom/stop-propagation event) + (modal/show! :name-group-dialog {:path path + :last-path last-path + :accept rename-group}))) on-ungroup (mf/use-callback - (mf/deps objects) - (fn [path] - (on-clear-selection) - (st/emit! (dwu/start-undo-transaction)) - (apply st/emit! - (->> objects - (filter #(str/starts-with? (:path %) path)) - (map #(dwl/rename-media - (:id %) - (ungroup % path))))) - (st/emit! (dwu/commit-undo-transaction)))) + (mf/deps objects) + (fn [path] + (on-clear-selection) + (st/emit! (dwu/start-undo-transaction)) + (apply st/emit! + (->> objects + (filter #(str/starts-with? (:path %) path)) + (map #(dwl/rename-media + (:id %) + (ungroup % path))))) + (st/emit! (dwu/commit-undo-transaction)))) on-drag-start (mf/use-callback @@ -742,39 +742,39 @@ :box :graphics :assets-count (count objects) :open? open?} - (when local? - [:& asset-section-block {:role :title-button} - [:div.assets-button {:on-click add-graphic} - i/plus - [:& file-uploader {:accept cm/str-image-types - :multi true - :ref input-ref - :on-selected on-file-selected}]]]) + (when local? + [:& asset-section-block {:role :title-button} + [:div.assets-button {:on-click add-graphic} + i/plus + [:& file-uploader {:accept cm/str-image-types + :multi true + :ref input-ref + :on-selected on-file-selected}]]]) - [:& asset-section-block {:role :content} - [:& graphics-group {:file-id file-id - :prefix "" - :groups groups - :open-groups open-groups - :renaming (:renaming @state) - :listing-thumbs? listing-thumbs? - :selected-objects selected-objects - :on-asset-click (partial on-asset-click groups) - :on-drag-start on-drag-start - :do-rename do-rename - :cancel-rename cancel-rename - :on-rename-group on-rename-group - :on-ungroup on-ungroup - :on-context-menu on-context-menu}] - (when local? - [:& auto-pos-menu - {:on-close on-close-menu - :state @menu-state - :options [(when-not (or multi-objects? multi-assets?) - [(tr "workspace.assets.rename") on-rename]) - [(tr "workspace.assets.delete") on-delete] - (when-not multi-assets? - [(tr "workspace.assets.group") on-group])]}])]])) + [:& asset-section-block {:role :content} + [:& graphics-group {:file-id file-id + :prefix "" + :groups groups + :open-groups open-groups + :renaming (:renaming @state) + :listing-thumbs? listing-thumbs? + :selected-objects selected-objects + :on-asset-click (partial on-asset-click groups) + :on-drag-start on-drag-start + :do-rename do-rename + :cancel-rename cancel-rename + :on-rename-group on-rename-group + :on-ungroup on-ungroup + :on-context-menu on-context-menu}] + (when local? + [:& auto-pos-menu + {:on-close on-close-menu + :state @menu-state + :options [(when-not (or multi-objects? multi-assets?) + [(tr "workspace.assets.rename") on-rename]) + [(tr "workspace.assets.delete") on-delete] + (when-not multi-assets? + [(tr "workspace.assets.group") on-group])]}])]])) ;; ---- Colors box ---- @@ -808,7 +808,7 @@ edit-color (fn [new-color] (let [old-data (-> (select-keys color [:id :file-id]) - (assoc :name (cp/merge-path-item (:path color) (:name color)))) + (assoc :name (cph/merge-path-item (:path color) (:name color)))) updated-color (merge new-color old-data)] (st/emit! (dwl/update-color updated-color file-id)))) @@ -856,31 +856,31 @@ on-context-menu (mf/use-callback - (mf/deps color selected-colors on-clear-selection) - (fn [event] - (when local? - (when-not (contains? selected-colors (:id color)) - (on-clear-selection)) - (swap! menu-state #(open-auto-pos-menu % event))))) + (mf/deps color selected-colors on-clear-selection) + (fn [event] + (when local? + (when-not (contains? selected-colors (:id color)) + (on-clear-selection)) + (swap! menu-state #(open-auto-pos-menu % event))))) on-close-menu (mf/use-callback - (fn [] - (swap! menu-state close-auto-pos-menu)))] + (fn [] + (swap! menu-state close-auto-pos-menu)))] (mf/use-effect - (mf/deps (:editing @state)) - #(when (:editing @state) - (let [input (mf/ref-val input-ref)] - (dom/select-text! input)) - nil)) + (mf/deps (:editing @state)) + #(when (:editing @state) + (let [input (mf/ref-val input-ref)] + (dom/select-text! input)) + nil)) [:div.asset-list-item {:class-name (dom/classnames - :selected (contains? selected-colors (:id color))) + :selected (contains? selected-colors (:id color))) :on-context-menu on-context-menu :on-click (when-not (:editing @state) #(on-asset-click % (:id color) - (partial apply-color (:id color))))} + (partial apply-color (:id color))))} [:& bc/color-bullet {:color color}] (if (:editing @state) @@ -890,7 +890,7 @@ :on-blur input-blur :on-key-down input-key-down :auto-focus true - :default-value (cp/merge-path-item (:path color) (:name color))}] + :default-value (cph/merge-path-item (:path color) (:name color))}] [:div.name-block {:on-double-click rename-color-clicked} (:name color) @@ -898,15 +898,15 @@ [:span default-name])]) (when local? [:& auto-pos-menu - {:on-close on-close-menu - :state @menu-state - :options [(when-not (or multi-colors? multi-assets?) - [(tr "workspace.assets.rename") rename-color-clicked]) - (when-not (or multi-colors? multi-assets?) - [(tr "workspace.assets.edit") edit-color-clicked]) - [(tr "workspace.assets.delete") delete-color] - (when-not multi-assets? - [(tr "workspace.assets.group") (on-group (:id color))])]}])])) + {:on-close on-close-menu + :state @menu-state + :options [(when-not (or multi-colors? multi-assets?) + [(tr "workspace.assets.rename") rename-color-clicked]) + (when-not (or multi-colors? multi-assets?) + [(tr "workspace.assets.edit") edit-color-clicked]) + [(tr "workspace.assets.delete") delete-color] + (when-not multi-assets? + [(tr "workspace.assets.group") (on-group (:id color))])]}])])) (mf/defc colors-group [{:keys [file-id prefix groups open-groups local? selected-colors @@ -945,7 +945,7 @@ (for [[path-item content] groups] (when-not (empty? path-item) [:& colors-group {:file-id file-id - :prefix (cp/merge-path-item prefix path-item) + :prefix (cph/merge-path-item prefix path-item) :key (str "group-" path-item) :groups content :open-groups open-groups @@ -995,94 +995,94 @@ create-group (mf/use-callback - (mf/deps colors selected-colors on-clear-selection file-id) - (fn [color-id] - (fn [group-name] - (on-clear-selection) - (st/emit! (dwu/start-undo-transaction)) - (apply st/emit! - (->> colors - (filter #(if multi-colors? - (contains? selected-colors (:id %)) - (= color-id (:id %)))) - (map #(dwl/update-color - (assoc % :name - (add-group % group-name)) - file-id)))) - (st/emit! (dwu/commit-undo-transaction))))) + (mf/deps colors selected-colors on-clear-selection file-id) + (fn [color-id] + (fn [group-name] + (on-clear-selection) + (st/emit! (dwu/start-undo-transaction)) + (apply st/emit! + (->> colors + (filter #(if multi-colors? + (contains? selected-colors (:id %)) + (= color-id (:id %)))) + (map #(dwl/update-color + (assoc % :name + (add-group % group-name)) + file-id)))) + (st/emit! (dwu/commit-undo-transaction))))) rename-group (mf/use-callback - (mf/deps colors) - (fn [path last-path] - (on-clear-selection) - (st/emit! (dwu/start-undo-transaction)) - (apply st/emit! - (->> colors - (filter #(str/starts-with? (:path %) path)) - (map #(dwl/update-color - (assoc % :name - (rename-group % path last-path)) - file-id)))) - (st/emit! (dwu/commit-undo-transaction)))) + (mf/deps colors) + (fn [path last-path] + (on-clear-selection) + (st/emit! (dwu/start-undo-transaction)) + (apply st/emit! + (->> colors + (filter #(str/starts-with? (:path %) path)) + (map #(dwl/update-color + (assoc % :name + (rename-group % path last-path)) + file-id)))) + (st/emit! (dwu/commit-undo-transaction)))) on-group (mf/use-callback - (mf/deps colors selected-colors) - (fn [color-id] - (fn [event] - (dom/stop-propagation event) - (modal/show! :name-group-dialog {:accept (create-group color-id)})))) + (mf/deps colors selected-colors) + (fn [color-id] + (fn [event] + (dom/stop-propagation event) + (modal/show! :name-group-dialog {:accept (create-group color-id)})))) on-rename-group (mf/use-callback - (mf/deps colors) - (fn [event path last-path] - (dom/stop-propagation event) - (modal/show! :name-group-dialog {:path path - :last-path last-path - :accept rename-group}))) + (mf/deps colors) + (fn [event path last-path] + (dom/stop-propagation event) + (modal/show! :name-group-dialog {:path path + :last-path last-path + :accept rename-group}))) on-ungroup (mf/use-callback - (mf/deps colors) - (fn [path] - (on-clear-selection) - (st/emit! (dwu/start-undo-transaction)) - (apply st/emit! - (->> colors - (filter #(str/starts-with? (:path %) path)) - (map #(dwl/update-color - (assoc % :name - (ungroup % path)) - file-id)))) - (st/emit! (dwu/commit-undo-transaction))))] + (mf/deps colors) + (fn [path] + (on-clear-selection) + (st/emit! (dwu/start-undo-transaction)) + (apply st/emit! + (->> colors + (filter #(str/starts-with? (:path %) path)) + (map #(dwl/update-color + (assoc % :name + (ungroup % path)) + file-id)))) + (st/emit! (dwu/commit-undo-transaction))))] [:& asset-section {:file-id file-id :title (tr "workspace.assets.colors") :box :colors :assets-count (count colors) :open? open?} - (when local? - [:& asset-section-block {:role :title-button} - [:div.assets-button {:on-click add-color-clicked} - i/plus]]) + (when local? + [:& asset-section-block {:role :title-button} + [:div.assets-button {:on-click add-color-clicked} + i/plus]]) - [:& asset-section-block {:role :content} - [:& colors-group {:file-id file-id - :prefix "" - :groups groups - :open-groups open-groups - :local? local? - :selected-colors selected-colors - :multi-colors? multi-colors? - :multi-assets? multi-assets? - :on-asset-click (partial on-asset-click groups) - :on-assets-delete on-assets-delete - :on-clear-selection on-clear-selection - :on-group on-group - :on-rename-group on-rename-group - :on-ungroup on-ungroup - :colors colors}]]])) + [:& asset-section-block {:role :content} + [:& colors-group {:file-id file-id + :prefix "" + :groups groups + :open-groups open-groups + :local? local? + :selected-colors selected-colors + :multi-colors? multi-colors? + :multi-assets? multi-assets? + :on-asset-click (partial on-asset-click groups) + :on-assets-delete on-assets-delete + :on-clear-selection on-clear-selection + :on-group on-group + :on-rename-group on-rename-group + :on-ungroup on-ungroup + :colors colors}]]])) ;; ---- Typography box ---- @@ -1120,7 +1120,7 @@ (for [[path-item content] groups] (when-not (empty? path-item) [:& typographies-group {:file-id file-id - :prefix (cp/merge-path-item prefix path-item) + :prefix (cph/merge-path-item prefix path-item) :groups content :open-groups open-groups :file file @@ -1169,9 +1169,9 @@ (fn [typography _event] (let [ids (wsh/lookup-selected @st/state) attrs (merge - {:typography-ref-file file-id - :typography-ref-id (:id typography)} - (dissoc typography :id :name))] + {:typography-ref-file file-id + :typography-ref-id (:id typography)} + (dissoc typography :id :name))] (run! #(st/emit! (dwt/update-text-attrs {:id % @@ -1181,80 +1181,80 @@ create-group (mf/use-callback - (mf/deps typographies selected-typographies on-clear-selection file-id) - (fn [group-name] - (on-clear-selection) - (st/emit! (dwu/start-undo-transaction)) - (apply st/emit! - (->> typographies - (filter #(if multi-typographies? - (contains? selected-typographies (:id %)) - (= (:id @state) (:id %)))) - (map #(dwl/update-typography - (assoc % :name - (add-group % group-name)) - file-id)))) - (st/emit! (dwu/commit-undo-transaction)))) + (mf/deps typographies selected-typographies on-clear-selection file-id) + (fn [group-name] + (on-clear-selection) + (st/emit! (dwu/start-undo-transaction)) + (apply st/emit! + (->> typographies + (filter #(if multi-typographies? + (contains? selected-typographies (:id %)) + (= (:id @state) (:id %)))) + (map #(dwl/update-typography + (assoc % :name + (add-group % group-name)) + file-id)))) + (st/emit! (dwu/commit-undo-transaction)))) rename-group (mf/use-callback - (mf/deps typographies) - (fn [path last-path] - (on-clear-selection) - (st/emit! (dwu/start-undo-transaction)) - (apply st/emit! - (->> typographies - (filter #(str/starts-with? (:path %) path)) - (map #(dwl/update-typography - (assoc % :name - (rename-group % path last-path)) - file-id)))) - (st/emit! (dwu/commit-undo-transaction)))) + (mf/deps typographies) + (fn [path last-path] + (on-clear-selection) + (st/emit! (dwu/start-undo-transaction)) + (apply st/emit! + (->> typographies + (filter #(str/starts-with? (:path %) path)) + (map #(dwl/update-typography + (assoc % :name + (rename-group % path last-path)) + file-id)))) + (st/emit! (dwu/commit-undo-transaction)))) on-group (mf/use-callback - (mf/deps typographies selected-typographies) - (fn [event] - (dom/stop-propagation event) - (modal/show! :name-group-dialog {:accept create-group}))) + (mf/deps typographies selected-typographies) + (fn [event] + (dom/stop-propagation event) + (modal/show! :name-group-dialog {:accept create-group}))) on-rename-group (mf/use-callback - (mf/deps typographies) - (fn [event path last-path] - (dom/stop-propagation event) - (modal/show! :name-group-dialog {:path path - :last-path last-path - :accept rename-group}))) + (mf/deps typographies) + (fn [event path last-path] + (dom/stop-propagation event) + (modal/show! :name-group-dialog {:path path + :last-path last-path + :accept rename-group}))) on-ungroup (mf/use-callback - (mf/deps typographies) - (fn [path] - (on-clear-selection) - (st/emit! (dwu/start-undo-transaction)) - (apply st/emit! - (->> typographies - (filter #(str/starts-with? (:path %) path)) - (map #(dwl/update-typography - (assoc % :name - (ungroup % path)) - file-id)))) - (st/emit! (dwu/commit-undo-transaction)))) + (mf/deps typographies) + (fn [path] + (on-clear-selection) + (st/emit! (dwu/start-undo-transaction)) + (apply st/emit! + (->> typographies + (filter #(str/starts-with? (:path %) path)) + (map #(dwl/update-typography + (assoc % :name + (ungroup % path)) + file-id)))) + (st/emit! (dwu/commit-undo-transaction)))) on-context-menu (mf/use-callback - (mf/deps selected-typographies on-clear-selection) - (fn [id event] - (when local? - (when-not (contains? selected-typographies id) - (on-clear-selection)) - (swap! state assoc :id id) - (swap! menu-state #(open-auto-pos-menu % event))))) + (mf/deps selected-typographies on-clear-selection) + (fn [id event] + (when local? + (when-not (contains? selected-typographies id) + (on-clear-selection)) + (swap! state assoc :id id) + (swap! menu-state #(open-auto-pos-menu % event))))) on-close-menu (mf/use-callback - (fn [] - (swap! menu-state close-auto-pos-menu))) + (fn [] + (swap! menu-state close-auto-pos-menu))) handle-rename-typography-clicked (fn [] @@ -1291,40 +1291,40 @@ :box :typographies :assets-count (count typographies) :open? open?} + (when local? + [:& asset-section-block {:role :title-button} + [:div.assets-button {:on-click add-typography} + i/plus]]) + + [:& asset-section-block {:role :content} + [:& typographies-group {:file-id file-id + :prefix "" + :groups groups + :open-groups open-groups + :state state + :file file + :local? local? + :selected-typographies selected-typographies + :editing-id editing-id + :local-data local-data + :on-asset-click (partial on-asset-click groups) + :handle-change handle-change + :apply-typography apply-typography + :on-rename-group on-rename-group + :on-ungroup on-ungroup + :on-context-menu on-context-menu}] + (when local? - [:& asset-section-block {:role :title-button} - [:div.assets-button {:on-click add-typography} - i/plus]]) - - [:& asset-section-block {:role :content} - [:& typographies-group {:file-id file-id - :prefix "" - :groups groups - :open-groups open-groups - :state state - :file file - :local? local? - :selected-typographies selected-typographies - :editing-id editing-id - :local-data local-data - :on-asset-click (partial on-asset-click groups) - :handle-change handle-change - :apply-typography apply-typography - :on-rename-group on-rename-group - :on-ungroup on-ungroup - :on-context-menu on-context-menu}] - - (when local? - [:& auto-pos-menu - {:on-close on-close-menu - :state @menu-state - :options [(when-not (or multi-typographies? multi-assets?) - [(tr "workspace.assets.rename") handle-rename-typography-clicked]) - (when-not (or multi-typographies? multi-assets?) - [(tr "workspace.assets.edit") handle-edit-typography-clicked]) - [(tr "workspace.assets.delete") handle-delete-typography] - (when-not multi-assets? - [(tr "workspace.assets.group") on-group])]}])]])) + [:& auto-pos-menu + {:on-close on-close-menu + :state @menu-state + :options [(when-not (or multi-typographies? multi-assets?) + [(tr "workspace.assets.rename") handle-rename-typography-clicked]) + (when-not (or multi-typographies? multi-assets?) + [(tr "workspace.assets.edit") handle-edit-typography-clicked]) + [(tr "workspace.assets.delete") handle-delete-typography] + (when-not multi-assets? + [(tr "workspace.assets.group") on-group])]}])]])) ;; --- Assets toolbox ---- @@ -1377,12 +1377,12 @@ (filter (fn [item] (or (matches-search (:name item "!$!") (:term filters)) (matches-search (:value item "!$!") (:term filters))))) - ; Sort by folder order, but putting all "root" items always first, - ; independently of sort order. - (sort-by #(str/lower (cp/merge-path-item (if (empty? (:path %)) - (if reverse-sort? "z" "a") - (:path %)) - (:name %))) + ; Sort by folder order, but putting all "root" items always first, + ; independently of sort order. + (sort-by #(str/lower (cph/merge-path-item (if (empty? (:path %)) + (if reverse-sort? "z" "a") + (:path %)) + (:name %))) comp-fn)))) (mf/defc file-library @@ -1528,16 +1528,16 @@ (if local? [:* - [:span (tr "workspace.assets.file-library")] - (when shared? - [:span.tool-badge (tr "workspace.assets.shared")])] + [:span (tr "workspace.assets.file-library")] + (when shared? + [:span.tool-badge (tr "workspace.assets.shared")])] [:* - [:span (:name file)] - [:span.tool-link.tooltip.tooltip-left {:alt "Open library file"} - [:a {:href (str "#" url) - :target "_blank" - :on-click dom/stop-propagation} - i/chain]]])] + [:span (:name file)] + [:span.tool-link.tooltip.tooltip-left {:alt "Open library file"} + [:a {:href (str "#" url) + :target "_blank" + :on-click dom/stop-propagation} + i/chain]]])] (when open? (let [show-components? (and (or (= (:box filters) :all) @@ -1658,33 +1658,33 @@ [:div.assets-bar [:div.tool-window - [:div.tool-window-content - [:div.assets-bar-title - (tr "workspace.assets.assets") - [:div.libraries-button {:on-click #(modal/show! :libraries-dialog {})} - i/text-align-justify - (tr "workspace.assets.libraries")]] + [:div.tool-window-content + [:div.assets-bar-title + (tr "workspace.assets.assets") + [:div.libraries-button {:on-click #(modal/show! :libraries-dialog {})} + i/text-align-justify + (tr "workspace.assets.libraries")]] - [:div.search-block - [:input.search-input - {:placeholder (tr "workspace.assets.search") - :type "text" - :value (:term @filters) - :on-change on-search-term-change}] - (if (str/empty? (:term @filters)) - [:div.search-icon - i/search] - [:div.search-icon.close - {:on-click on-search-clear-click} - i/close])] + [:div.search-block + [:input.search-input + {:placeholder (tr "workspace.assets.search") + :type "text" + :value (:term @filters) + :on-change on-search-term-change}] + (if (str/empty? (:term @filters)) + [:div.search-icon + i/search] + [:div.search-icon.close + {:on-click on-search-clear-click} + i/close])] - [:select.input-select {:value (:box @filters) - :on-change on-box-filter-change} - [:option {:value ":all"} (tr "workspace.assets.box-filter-all")] - [:option {:value ":components"} (tr "workspace.assets.components")] - [:option {:value ":graphics"} (tr "workspace.assets.graphics")] - [:option {:value ":colors"} (tr "workspace.assets.colors")] - [:option {:value ":typographies"} (tr "workspace.assets.typography")]]]] + [:select.input-select {:value (:box @filters) + :on-change on-box-filter-change} + [:option {:value ":all"} (tr "workspace.assets.box-filter-all")] + [:option {:value ":components"} (tr "workspace.assets.components")] + [:option {:value ":graphics"} (tr "workspace.assets.graphics")] + [:option {:value ":colors"} (tr "workspace.assets.colors")] + [:option {:value ":typographies"} (tr "workspace.assets.typography")]]]] [:div.libraries-wrapper [:& file-library diff --git a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs index e18483c09f..9e65bbf54d 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs @@ -7,7 +7,7 @@ (ns app.main.ui.workspace.sidebar.layers (:require [app.common.data :as d] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.uuid :as uuid] [app.main.data.workspace :as dw] [app.main.data.workspace.common :as dwc] @@ -58,18 +58,16 @@ (when (kbd/enter? event) (accept-edit)) (when (kbd/esc? event) (cancel-edit)))] - (mf/use-effect - (mf/deps shape-for-rename) - #(when (and (= shape-for-rename (:id shape)) - (not (:edition @local))) - (start-edit))) + (mf/with-effect [shape-for-rename] + (when (and (= shape-for-rename (:id shape)) + (not (:edition @local))) + (start-edit))) - (mf/use-effect - (mf/deps (:edition @local)) - #(when (:edition @local) - (let [name-input (mf/ref-val name-ref)] - (dom/select-text! name-input)) - nil)) + (mf/with-effect [(:edition @local)] + (when (:edition @local) + (let [name-input (mf/ref-val name-ref)] + (dom/select-text! name-input) + nil))) (if (:edition @local) [:input.element-name @@ -92,9 +90,10 @@ (mf/defc layer-item [{:keys [index item selected objects] :as props}] - (let [id (:id item) - selected? (contains? selected id) - container? (or (= (:type item) :frame) (= (:type item) :group)) + (let [id (:id item) + selected? (contains? selected id) + container? (or (cph/frame-shape? item) + (cph/group-shape? item)) disable-drag (mf/use-state false) @@ -160,7 +159,7 @@ (if (= side :center) (st/emit! (dw/relocate-selected-shapes (:id item) 0)) (let [to-index (if (= side :top) (inc index) index) - parent-id (cp/get-parent (:id item) objects)] + parent-id (cph/get-parent-id objects (:id item))] (st/emit! (dw/relocate-selected-shapes parent-id to-index))))) on-hold diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs index 8710ff7d52..4552b3c400 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs @@ -6,7 +6,7 @@ (ns app.main.ui.workspace.sidebar.options.menus.component (:require - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.main.data.modal :as modal] [app.main.data.workspace :as dw] [app.main.data.workspace.libraries :as dwl] @@ -16,7 +16,7 @@ [app.main.ui.context :as ctx] [app.main.ui.icons :as i] [app.util.dom :as dom] - [app.util.i18n :as i18n :refer [t]] + [app.util.i18n :as i18n :refer [tr]] [rumext.alpha :as mf])) (def component-attrs [:component-id :component-file :shape-ref]) @@ -25,47 +25,59 @@ [{:keys [ids values] :as props}] (let [current-file-id (mf/use-ctx ctx/current-file-id) - id (first ids) - locale (mf/deref i18n/locale) - local (mf/use-state {:menu-open false}) + id (first ids) + local (mf/use-state {:menu-open false}) - show? (some? (:component-id values)) - local-library (mf/deref refs/workspace-local-library) - libraries (mf/deref refs/workspace-libraries) - {:keys [component-id component-file]} values + component-id (:component-id values) + library-id (:component-file values) - component (cp/get-component component-id component-file local-library libraries) + local-file (deref refs/workspace-local-library) + libraries (deref refs/workspace-libraries) - on-menu-click (mf/use-callback - (fn [event] - (dom/prevent-default event) - (dom/stop-propagation event) - (swap! local assoc :menu-open true))) + ;; NOTE: this is necessary because the `cph/get-component` + ;; expects a map of all libraries, including the local one. + libraries (assoc libraries (:id local-file) local-file) - on-menu-close (mf/use-callback - #(swap! local assoc :menu-open false)) + component (cph/get-component libraries library-id component-id) + show? (some? component-id) - do-detach-component (st/emitf (dwl/detach-component id)) - do-reset-component (st/emitf (dwl/reset-component id)) - do-update-component (st/emitf (dwl/update-component-sync id component-file)) + on-menu-click + (mf/use-callback + (fn [event] + (dom/prevent-default event) + (dom/stop-propagation event) + (swap! local assoc :menu-open true))) + + on-menu-close + (mf/use-callback + #(swap! local assoc :menu-open false)) + + do-detach-component + (st/emitf (dwl/detach-component id)) + + do-reset-component + (st/emitf (dwl/reset-component id)) + + do-update-component + (st/emitf (dwl/update-component-sync id library-id)) do-update-remote-component (st/emitf (modal/show {:type :confirm :message "" - :title (t locale "modals.update-remote-component.message") - :hint (t locale "modals.update-remote-component.hint") - :cancel-label (t locale "modals.update-remote-component.cancel") - :accept-label (t locale "modals.update-remote-component.accept") + :title (tr "modals.update-remote-component.message") + :hint (tr "modals.update-remote-component.hint") + :cancel-label (tr "modals.update-remote-component.cancel") + :accept-label (tr "modals.update-remote-component.accept") :accept-style :primary :on-accept do-update-component})) do-show-component (st/emitf (dw/go-to-component component-id)) - do-navigate-component-file (st/emitf (dwl/nav-to-component-file component-file))] + do-navigate-component-file (st/emitf (dwl/nav-to-component-file library-id))] (when show? [:div.element-set [:div.element-set-title - [:span (t locale "workspace.options.component")]] + [:span (tr "workspace.options.component")]] [:div.element-set-content [:div.row-flex.component-row i/component @@ -78,14 +90,14 @@ ;; app/main/ui/workspace/context_menu.cljs [:& context-menu {:on-close on-menu-close :show (:menu-open @local) - :options (if (= (:component-file values) current-file-id) - [[(t locale "workspace.shape.menu.detach-instance") do-detach-component] - [(t locale "workspace.shape.menu.reset-overrides") do-reset-component] - [(t locale "workspace.shape.menu.update-main") do-update-component] - [(t locale "workspace.shape.menu.show-main") do-show-component]] + :options (if (= library-id current-file-id) + [[(tr "workspace.shape.menu.detach-instance") do-detach-component] + [(tr "workspace.shape.menu.reset-overrides") do-reset-component] + [(tr "workspace.shape.menu.update-main") do-update-component] + [(tr "workspace.shape.menu.show-main") do-show-component]] - [[(t locale "workspace.shape.menu.detach-instance") do-detach-component] - [(t locale "workspace.shape.menu.reset-overrides") do-reset-component] - [(t locale "workspace.shape.menu.go-main") do-navigate-component-file] - [(t locale "workspace.shape.menu.update-main") do-update-remote-component]])}]]]]]))) + [[(tr "workspace.shape.menu.detach-instance") do-detach-component] + [(tr "workspace.shape.menu.reset-overrides") do-reset-component] + [(tr "workspace.shape.menu.go-main") do-navigate-component-file] + [(tr "workspace.shape.menu.update-main") do-update-remote-component]])}]]]]]))) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs index 598fea72fc..a37c968fbb 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs @@ -7,7 +7,7 @@ (ns app.main.ui.workspace.sidebar.options.menus.interactions (:require [app.common.data :as d] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.spec.interactions :as csi] [app.common.spec.page :as csp] [app.common.uuid :as uuid] @@ -178,10 +178,10 @@ (mf/defc interaction-entry [{:keys [index shape interaction update-interaction remove-interaction]}] - (let [objects (deref refs/workspace-page-objects) - destination (get objects (:destination interaction)) - frames (mf/use-memo (mf/deps objects) - #(cp/select-frames objects)) + (let [objects (deref refs/workspace-page-objects) + destination (get objects (:destination interaction)) + frames (mf/with-memo [objects] + (cph/get-frames objects)) overlay-pos-type (:overlay-pos-type interaction) close-click-outside? (:close-click-outside interaction false) @@ -190,10 +190,10 @@ way (-> interaction :animation :way) direction (-> interaction :animation :direction) - extended-open? (mf/use-state false) + extended-open? (mf/use-state false) - ext-delay-ref (mf/use-ref nil) - ext-duration-ref (mf/use-ref nil) + ext-delay-ref (mf/use-ref nil) + ext-duration-ref (mf/use-ref nil) select-text (fn [ref] (fn [_] (dom/select-text! (mf/ref-val ref)))) @@ -550,7 +550,7 @@ [:& page-flows {:flows flows}]) [:div.element-set.interactions-options - (when (and shape (not (cp/unframed-shape? shape))) + (when (and shape (not (cph/unframed-shape? shape))) [:div.element-set-title [:span (tr "workspace.options.interactions")] [:div.add-page {:on-click add-interaction} @@ -558,7 +558,7 @@ [:div.element-set-content (when (= (count interactions) 0) [:* - (when (and shape (not (cp/unframed-shape? shape))) + (when (and shape (not (cph/unframed-shape? shape))) [:* [:div.interactions-help-icon i/plus] [:div.interactions-help.separator (tr "workspace.options.add-interaction")]]) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs index 088bbbd84b..8ab07deacf 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs @@ -9,7 +9,7 @@ ["react-virtualized" :as rvt] [app.common.data :as d] [app.common.exceptions :as ex] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.text :as txt] [app.main.data.fonts :as fts] [app.main.data.shortcuts :as dsc] @@ -575,7 +575,7 @@ [:input.element-name.adv-typography-name {:type "text" :ref name-input-ref - :default-value (cp/merge-path-item (:path typography) (:name typography)) + :default-value (cph/merge-path-item (:path typography) (:name typography)) :on-blur on-name-blur :on-change on-name-change}] diff --git a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs index 49c1d9315c..af3180260f 100644 --- a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs @@ -8,7 +8,7 @@ (:require [app.common.data :as d] [app.common.geom.shapes :as gsh] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.main.data.shortcuts :as dsc] [app.main.data.workspace :as dw] [app.main.data.workspace.path.shortcuts :as psc] @@ -154,13 +154,13 @@ selected (mf/ref-val selected-ref) - remove-xfm (mapcat #(cp/get-parents % objects)) + remove-xfm (mapcat #(cph/get-parent-ids objects %)) remove-id? (cond-> (into #{} remove-xfm selected) @ctrl? (into (filter is-group?) ids)) hover-shape (->> ids - (filterv (comp not remove-id?)) + (filter (comp not remove-id?)) (first) (get objects))] (reset! hover hover-shape) diff --git a/frontend/src/app/main/ui/workspace/viewport/interactions.cljs b/frontend/src/app/main/ui/workspace/viewport/interactions.cljs index 780c223a58..590b392a28 100644 --- a/frontend/src/app/main/ui/workspace/viewport/interactions.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/interactions.cljs @@ -9,7 +9,7 @@ (:require [app.common.data :as d] [app.common.geom.shapes :as gsh] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.spec.interactions :as cti] [app.main.data.workspace :as dw] [app.main.refs :as refs] @@ -210,7 +210,7 @@ (st/emit! (dw/start-move-overlay-pos index)))] (when dest-shape - (let [orig-frame (cp/get-frame orig-shape objects) + (let [orig-frame (cph/get-frame objects orig-shape) marker-x (+ (:x orig-frame) (:x position)) marker-y (+ (:y orig-frame) (:y position)) width (:width dest-shape) @@ -326,7 +326,7 @@ :objects objects :hover-disabled? hover-disabled?}]))]))) (when (and shape - (not (cp/unframed-shape? shape)) + (not (cph/unframed-shape? shape)) (not (#{:move :rotate} current-transform))) [:& interaction-handle {:key (:id shape) :index nil diff --git a/frontend/src/app/main/ui/workspace/viewport/outline.cljs b/frontend/src/app/main/ui/workspace/viewport/outline.cljs index f525bb31f8..95d58b0167 100644 --- a/frontend/src/app/main/ui/workspace/viewport/outline.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/outline.cljs @@ -8,7 +8,7 @@ (:require [app.common.exceptions :as ex] [app.common.geom.shapes :as gsh] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.main.refs :as refs] [app.util.object :as obj] [app.util.path.format :as upf] @@ -89,7 +89,7 @@ transform (mf/deref refs/current-transform) outlines-ids (->> (set/union selected hover) - (cp/clean-loops objects)) + (cph/clean-loops objects)) show-outline? (fn [shape] (and (not (:hidden shape)) (not (:blocked shape)))) diff --git a/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs b/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs index 61830c5665..3de69d6b24 100644 --- a/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs @@ -50,13 +50,10 @@ vbox-x (:x vbox) vbox-y (:y vbox) - base-objects-rect - (mf/use-memo - (mf/deps objects) - (fn [] - (let [root-shapes (-> objects cph/get-top-frame :shapes) - shapes (->> root-shapes (mapv #(get objects %)))] - (gsh/selection-rect shapes)))) + base-objects-rect (mf/with-memo [objects] + (-> objects + (cph/get-immediate-children) + (gsh/selection-rect))) inv-zoom (/ 1 zoom) vbox-height (- (:height vbox) (* inv-zoom scroll-height)) diff --git a/frontend/src/app/main/ui/workspace/viewport/snap_distances.cljs b/frontend/src/app/main/ui/workspace/viewport/snap_distances.cljs index cf990d062c..ca450b2a81 100644 --- a/frontend/src/app/main/ui/workspace/viewport/snap_distances.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/snap_distances.cljs @@ -9,7 +9,7 @@ [app.common.data :as d] [app.common.geom.shapes :as gsh] [app.common.math :as mth] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.main.refs :as refs] [app.main.worker :as uw] [beicon.core :as rx] @@ -225,7 +225,7 @@ :frame-id (:id frame) :include-frames? true :rect rect}) - (rx/map #(cp/clean-loops @refs/workspace-page-objects %)) + (rx/map #(cph/clean-loops @refs/workspace-page-objects %)) (rx/map #(set/difference % selected)) (rx/map #(->> % (map (partial get @refs/workspace-page-objects))))) (rx/of nil))))] diff --git a/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs b/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs index d361099114..e5a63b11da 100644 --- a/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs @@ -9,7 +9,8 @@ [app.common.data :as d] [app.common.geom.shapes :as gsh] [app.common.math :as mth] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] + [app.common.spec :as us] [app.main.snap :as snap] [app.util.geom.snap-points :as sp] [beicon.core :as rx] @@ -151,18 +152,14 @@ (mf/defc snap-points {::mf/wrap [mf/memo]} [{:keys [layout zoom objects selected page-id drawing transform modifiers] :as props}] - - (let [shapes (into [] (keep (d/getf objects)) selected) + (us/assert set? selected) + (let [shapes (into [] (keep (d/getf objects)) selected) filter-shapes - (into #{} - (comp (mapcat #(cp/get-object-with-children % objects)) - (map :id)) - selected) + (into selected (mapcat #(cph/get-children-ids objects %)) selected) - remove-snap? (mf/use-memo - (mf/deps layout filter-shapes) - #(snap/make-remove-snap layout filter-shapes)) + remove-snap? (mf/with-memo [layout filter-shapes] + (snap/make-remove-snap layout filter-shapes)) shapes (if drawing [drawing] shapes)] (when (or drawing transform) diff --git a/frontend/src/app/main/ui/workspace/viewport/widgets.cljs b/frontend/src/app/main/ui/workspace/viewport/widgets.cljs index 2a1e9df0f8..507d8fc677 100644 --- a/frontend/src/app/main/ui/workspace/viewport/widgets.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/widgets.cljs @@ -8,7 +8,7 @@ (:require [app.common.geom.point :as gpt] [app.common.geom.shapes :as gsh] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.main.data.workspace :as dw] [app.main.data.workspace.interactions :as dwi] [app.main.refs :as refs] @@ -161,7 +161,7 @@ on-frame-enter (unchecked-get props "on-frame-enter") on-frame-leave (unchecked-get props "on-frame-leave") on-frame-select (unchecked-get props "on-frame-select") - frames (cp/select-frames objects)] + frames (cph/get-frames objects)] [:g.frame-titles (for [frame frames] diff --git a/frontend/src/app/util/snap_data.cljs b/frontend/src/app/util/snap_data.cljs index 6c667c2178..95e0675db5 100644 --- a/frontend/src/app/util/snap_data.cljs +++ b/frontend/src/app/util/snap_data.cljs @@ -10,8 +10,8 @@ https://en.wikipedia.org/wiki/Range_tree" (:require [app.common.data :as d] - [app.common.pages :as cp] [app.common.pages.diff :as diff] + [app.common.pages.helpers :as cph] [app.common.uuid :as uuid] [app.util.geom.grid :as gg] [app.util.geom.snap-points :as snap] @@ -187,9 +187,9 @@ (defn add-page "Adds page information" [snap-data {:keys [objects options] :as page}] - - (let [frames (cp/select-frames objects) - shapes (cp/select-objects #(not= :frame (:type %)) page) + (let [frames (cph/get-frames objects) + shapes (->> (vals (:objects page)) + (remove cph/frame-shape?)) guides (vals (:guides options)) page-data @@ -233,7 +233,7 @@ (reduce remove-guide $ removed-guides) (reduce update-guide $ updated-guides) (reduce add-guide $ new-guides))))) - + ;; Page doesn't exist, we create a new entry (add-page snap-data page))) diff --git a/frontend/src/app/worker/selection.cljs b/frontend/src/app/worker/selection.cljs index ed0412f86e..30879d60b8 100644 --- a/frontend/src/app/worker/selection.cljs +++ b/frontend/src/app/worker/selection.cljs @@ -9,6 +9,7 @@ [app.common.data :as d] [app.common.geom.shapes :as gsh] [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.uuid :as uuid] [app.util.quadtree :as qdt] [app.worker.impl :as impl] @@ -86,7 +87,7 @@ changed-ids (into #{} (comp (filter #(not= % uuid/zero)) (filter changes?) - (mapcat #(into [%] (cp/get-children % new-objects)))) + (mapcat #(into [%] (cph/get-children-ids new-objects %)))) (set/union (set (keys old-objects)) (set (keys new-objects)))) diff --git a/frontend/src/debug.cljs b/frontend/src/debug.cljs index 50f93a7bd7..9c5cbbe07e 100644 --- a/frontend/src/debug.cljs +++ b/frontend/src/debug.cljs @@ -8,11 +8,11 @@ (:require [app.common.data :as d] [app.common.math :as mth] - [app.common.pages :as cp] + [app.common.pages.helpers :as cph] [app.common.transit :as t] [app.common.uuid :as uuid] [app.main.data.workspace :as dw] - [app.main.data.workspace.changes :as dwc] + [app.main.data.workspace.changes :as dwc] [app.main.store :as st] [app.util.object :as obj] [app.util.timers :as timers] @@ -208,7 +208,7 @@ (show-component [shape objects] (if (nil? (:shape-ref shape)) "" - (let [root-shape (cp/get-component-shape shape objects) + (let [root-shape (cph/get-component-shape objects shape) component-id (when root-shape (:component-id root-shape)) component-file-id (when root-shape (:component-file root-shape)) component-file (when component-file-id (get libraries component-file-id nil)) diff --git a/frontend/test/app/components_basic_test.cljs b/frontend/test/app/components_basic_test.cljs index 6a22c61be0..7b8138e25b 100644 --- a/frontend/test/app/components_basic_test.cljs +++ b/frontend/test/app/components_basic_test.cljs @@ -197,13 +197,10 @@ "Renamed component")) (rx/do (fn [new-state] - (let [file (dwlh/get-local-file new-state) - component (cph/get-component - (:component-id instance1) - (:component-file instance1) - file - {})] - + (let [libs (dwlh/get-libraries new-state) + component (cph/get-component libs + (:component-file instance1) + (:component-id instance1))] (t/is (= (:name component) "Renamed component"))))) @@ -274,13 +271,10 @@ new-state (:id instance1)) - file (dwlh/get-local-file new-state) - component (cph/get-component - (:component-id instance1) - (:component-file instance1) - file - {})] - + libs (dwlh/get-libraries new-state) + component (cph/get-component libs + (:component-file instance1) + (:component-id instance1))] (t/is (nil? component))))) (rx/subs done #(throw %)))))) diff --git a/frontend/test/app/components_sync_test.cljs b/frontend/test/app/components_sync_test.cljs index 033ab60c1c..29ea86996e 100644 --- a/frontend/test/app/components_sync_test.cljs +++ b/frontend/test/app/components_sync_test.cljs @@ -3,7 +3,6 @@ [app.common.colors :as clr] [app.common.data :as d] [app.common.geom.point :as gpt] - [app.common.pages.helpers :as cph] [app.main.data.workspace.changes :as dwc] [app.main.data.workspace.libraries :as dwl] [app.main.data.workspace.libraries-helpers :as dwlh] diff --git a/frontend/test/app/test_helpers/libraries.cljs b/frontend/test/app/test_helpers/libraries.cljs index b93f81f2a5..a49faa5187 100644 --- a/frontend/test/app/test_helpers/libraries.cljs +++ b/frontend/test/app/test_helpers/libraries.cljs @@ -7,7 +7,6 @@ [app.common.uuid :as uuid] [app.common.geom.point :as gpt] [app.common.geom.shapes :as gsh] - [app.common.pages :as cp] [app.common.pages.helpers :as cph] [app.main.data.workspace :as dw] [app.main.data.workspace.libraries-helpers :as dwlh] @@ -55,26 +54,22 @@ (defn resolve-instance [state root-inst-id] - (let [page (thp/current-page state) - root-inst (cph/get-shape page root-inst-id) - shapes-inst (cph/get-object-with-children - root-inst-id - (:objects page))] - + (let [page (thp/current-page state) + root-inst (cph/get-shape page root-inst-id) + shapes-inst (cph/get-children-with-self (:objects page) + root-inst-id)] ;; Validate that the instance tree is well constructed - (t/is (is-instance-root (first shapes-inst))) + (is-instance-root (first shapes-inst)) (run! is-instance-child (rest shapes-inst)) shapes-inst)) (defn resolve-noninstance [state root-inst-id] - (let [page (thp/current-page state) - root-inst (cph/get-shape page root-inst-id) - shapes-inst (cph/get-object-with-children - root-inst-id - (:objects page))] - + (let [page (thp/current-page state) + root-inst (cph/get-shape page root-inst-id) + shapes-inst (cph/get-children-with-self (:objects page) + root-inst-id)] ;; Validate that the tree is not an instance (run! is-noninstance shapes-inst) @@ -82,31 +77,23 @@ (defn resolve-instance-and-main [state root-inst-id] - (let [page (thp/current-page state) - root-inst (cph/get-shape page root-inst-id) + (let [page (thp/current-page state) + root-inst (cph/get-shape page root-inst-id) - file (dwlh/get-local-file state) - component (cph/get-component - (:component-id root-inst) - (:id file) - file - nil) + libs (dwlh/get-libraries state) + component (cph/get-component libs (:component-id root-inst)) - shapes-inst (cph/get-object-with-children - root-inst-id - (:objects page)) - shapes-main (cph/get-object-with-children - (:shape-ref root-inst) - (:objects component)) + shapes-inst (cph/get-children-with-self (:objects page) root-inst-id) + shapes-main (cph/get-children-with-self (:objects component) (:shape-ref root-inst)) - unique-refs (into #{} (map :shape-ref shapes-inst)) + unique-refs (into #{} (map :shape-ref) shapes-inst) - main-exists? (fn [shape] - (t/is (some #(= (:id %) (:shape-ref shape)) - shapes-main)))] + main-exists? (fn [shape] + (t/is (some #(= (:id %) (:shape-ref shape)) + shapes-main)))] ;; Validate that the instance tree is well constructed - (t/is (is-instance-root (first shapes-inst))) + (is-instance-root (first shapes-inst)) (run! is-instance-child (rest shapes-inst)) (run! is-noninstance shapes-main) (t/is (= (count shapes-inst) @@ -118,20 +105,11 @@ (defn resolve-component [state component-id] - (let [page (thp/current-page state) - - file (dwlh/get-local-file state) - component (cph/get-component - component-id - (:id file) - file - nil) - - root-main (cph/get-component-root - component) - shapes-main (cph/get-object-with-children - (:id root-main) - (:objects component))] + (let [page (thp/current-page state) + libs (dwlh/get-libraries state) + component (cph/get-component libs component-id) + root-main (cph/get-component-root component) + shapes-main (cph/get-children-with-self (:objects component) (:id root-main))] ;; Validate that the component tree is well constructed (run! is-noninstance shapes-main) diff --git a/frontend/test/app/test_helpers/pages.cljs b/frontend/test/app/test_helpers/pages.cljs index 9f3af5f33d..e16fed14b2 100644 --- a/frontend/test/app/test_helpers/pages.cljs +++ b/frontend/test/app/test_helpers/pages.cljs @@ -66,7 +66,7 @@ ([state label type] (sample-shape state type {})) ([state label type props] (let [page (current-page state) - frame (cph/get-top-frame (:objects page)) + frame (cph/get-frame (:objects page)) shape (-> (cp/make-minimal-shape type) (gsh/setup {:x 0 :y 0 :width 1 :height 1}) (merge props))] From 2f7029516b293efda417fc57782ac77c9fb3ac5c Mon Sep 17 00:00:00 2001 From: Eva Date: Wed, 9 Feb 2022 09:11:35 +0100 Subject: [PATCH 092/154] :bug: Fixed missing translation texts --- CHANGES.md | 1 + frontend/src/app/main/ui/workspace/header.cljs | 4 ++-- frontend/translations/en.po | 9 +++++++++ frontend/translations/es.po | 8 ++++++++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 6f2efbca68..81820a069e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -26,6 +26,7 @@ ### :bug: Bugs fixed +- Fixed missing translation strings [Taiga #2786](https://tree.taiga.io/project/penpot/issue/2786) - Fixed color palette outside viewport [Taiga #2715](https://tree.taiga.io/project/penpot/issue/2715) - Fixed missing translate string [Taiga #2780](https://tree.taiga.io/project/penpot/issue/2780) - Fixed handoff shadow type text [Taiga #2717](https://tree.taiga.io/project/penpot/issue/2717) diff --git a/frontend/src/app/main/ui/workspace/header.cljs b/frontend/src/app/main/ui/workspace/header.cljs index 945b293955..a98c4051da 100644 --- a/frontend/src/app/main/ui/workspace/header.cljs +++ b/frontend/src/app/main/ui/workspace/header.cljs @@ -302,8 +302,8 @@ (dw/toggle-layout-flags :colorpalette)))} [:span (if (contains? layout :colorpalette) - (tr "workspace.header.menu.hide-colorpalette") - (tr "workspace.header.menu.show-colorpalette"))] + (tr "workspace.header.menu.hide-palette") + (tr "workspace.header.menu.show-palette"))] [:span.shortcut (sc/get-tooltip :toggle-colorpalette)]] [:li {:on-click (fn [] diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 1c9460c6e7..af9ea76fd4 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -2110,6 +2110,10 @@ msgstr "Hide color palette" msgid "workspace.header.menu.hide-rules" msgstr "Hide rules" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-textpalette" +msgstr "Hide fonts palette" + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Select all" @@ -2138,6 +2142,11 @@ msgstr "Show color palette" msgid "workspace.header.menu.show-rules" msgstr "Show rules" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-textpalette" +msgstr "Show fonts palette" + + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Reset" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index d1dc8d49e2..9b7d2e16d0 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -2125,6 +2125,10 @@ msgstr "Ocultar paleta de colores" msgid "workspace.header.menu.hide-rules" msgstr "Ocultar reglas" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-textpalette" +msgstr "Ocultar paleta de textos" + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Seleccionar todo" @@ -2153,6 +2157,10 @@ msgstr "Mostrar paleta de colores" msgid "workspace.header.menu.show-rules" msgstr "Mostrar reglas" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-textpalette" +msgstr "Mostrar paleta de textos" + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Restablecer" From ee5b341d0e41740e163ea39705088f966ae791f4 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Wed, 9 Feb 2022 13:04:16 +0100 Subject: [PATCH 093/154] :bug: Fix problem with gradient handlers --- .../main/ui/workspace/viewport/gradients.cljs | 90 +++++++++++-------- 1 file changed, 55 insertions(+), 35 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/viewport/gradients.cljs b/frontend/src/app/main/ui/workspace/viewport/gradients.cljs index 0164211a41..d8fa9096c6 100644 --- a/frontend/src/app/main/ui/workspace/viewport/gradients.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/gradients.cljs @@ -35,7 +35,7 @@ (l/derived (l/in [:workspace-local :editing-stop]) st/state)) (def current-gradient-ref - (l/derived (l/in [:workspace-local :current-gradient]) st/state)) + (l/derived (l/in [:workspace-local :current-gradient]) st/state =)) (mf/defc shadow [{:keys [id x y width height offset]}] [:filter {:id id @@ -158,17 +158,19 @@ (rx/filter ms/pointer-event?) (rx/filter #(= :viewport (:source %))) (rx/map :pt) - (rx/subs #(case @moving-point - :from-p (when on-change-start (on-change-start %)) - :to-p (when on-change-finish (on-change-finish %)) - :width-p (when on-change-width - (let [width-v (gpt/unit (gpt/to-vec from-p width-p)) - distance (gpt/point-line-distance % from-p to-p) - new-width-p (gpt/add - from-p - (gpt/multiply width-v (gpt/point distance)))] - (on-change-width new-width-p))) - nil)))] + (rx/subs + (fn [pt] + (case @moving-point + :from-p (when on-change-start (on-change-start pt)) + :to-p (when on-change-finish (on-change-finish pt)) + :width-p (when on-change-width + (let [width-v (gpt/unit (gpt/to-vec from-p width-p)) + distance (gpt/point-line-distance pt from-p to-p) + new-width-p (gpt/add + from-p + (gpt/multiply width-v (gpt/point distance)))] + (on-change-width new-width-p))) + nil))))] (fn [] (rx/dispose! subs))))) [:g.gradient-handlers [:defs @@ -229,9 +231,15 @@ (mf/defc gradient-handlers + {::mf/wrap [mf/memo]} [{:keys [id zoom]}] - (let [shape (mf/deref (refs/object-by-id id)) + (let [current-change (mf/use-state {}) + shape-ref (mf/use-memo (mf/deps id) #(refs/object-by-id id)) + shape (mf/deref shape-ref) + gradient (mf/deref current-gradient-ref) + gradient (merge gradient @current-change) + editing-spot (mf/deref editing-spot-ref) transform (gsh/transform-matrix shape) @@ -261,31 +269,43 @@ width-p (gpt/add from-p width-v) - change! (fn [changes] - (st/emit! (dc/update-gradient changes))) + change! + (mf/use-callback + (fn [changes] + (swap! current-change merge changes) + (st/emit! (dc/update-gradient changes)))) - on-change-start (fn [point] - (let [point (gpt/transform point transform-inverse) - start-x (/ (- (:x point) x) width) - start-y (/ (- (:y point) y) height) - start-x (mth/precision start-x 2) - start-y (mth/precision start-y 2)] - (change! {:start-x start-x :start-y start-y}))) + on-change-start + (mf/use-callback + (mf/deps transform-inverse width height) + (fn [point] + (let [point (gpt/transform point transform-inverse) + start-x (/ (- (:x point) x) width) + start-y (/ (- (:y point) y) height) + start-x (mth/precision start-x 2) + start-y (mth/precision start-y 2)] + (change! {:start-x start-x :start-y start-y})))) - on-change-finish (fn [point] - (let [point (gpt/transform point transform-inverse) - end-x (/ (- (:x point) x) width) - end-y (/ (- (:y point) y) height) - end-x (mth/precision end-x 2) - end-y (mth/precision end-y 2)] - (change! {:end-x end-x :end-y end-y}))) + on-change-finish + (mf/use-callback + (mf/deps transform-inverse width height) + (fn [point] + (let [point (gpt/transform point transform-inverse) + end-x (/ (- (:x point) x) width) + end-y (/ (- (:y point) y) height) + end-x (mth/precision end-x 2) + end-y (mth/precision end-y 2)] + (change! {:end-x end-x :end-y end-y})))) - on-change-width (fn [point] - (let [scale-factor-y (/ gradient-length (/ height 2)) - norm-dist (/ (gpt/distance point from-p) - (* (/ width 2) scale-factor-y))] - (when (and norm-dist (mth/finite? norm-dist)) - (change! {:width norm-dist}))))] + on-change-width + (mf/use-callback + (mf/deps gradient-length width height) + (fn [point] + (let [scale-factor-y (/ gradient-length (/ height 2)) + norm-dist (/ (gpt/distance point from-p) + (* (/ width 2) scale-factor-y))] + (when (and norm-dist (mth/finite? norm-dist)) + (change! {:width norm-dist})))))] (when (and gradient (= id (:shape-id gradient)) From ca284a86a326de5bfab2dc58cd1ae877e4077373 Mon Sep 17 00:00:00 2001 From: Rodolfo Carvalho Date: Tue, 8 Feb 2022 18:16:03 +0100 Subject: [PATCH 094/154] :sparkles: Remove dangling images Clean up images that are no longer in use. Removed in 50eb744c3b7ec214963291d897c3def2c11a8955: - frontend/resources/images/color-bar-library.png - frontend/resources/images/color-bar-options.png Removed in 0de4f9074d79a91f6b08c1e64f5b441459288e54: - frontend/resources/images/color-gamma.png Removed in 196b4dd89b3095a677739592e4d7a1fc2345f0a8: - frontend/resources/images/colorspecrum-400x300.png Added in 35c172a06b53d1a305695a18162bed22c25ed187 but maybe never used: - frontend/resources/images/favicon-preview.png Removed in d93fa72e48dabc7be7f5b16886ef0b2e20f796c5: - frontend/resources/images/pot.png --- .../resources/images/color-bar-library.png | Bin 256 -> 0 bytes .../resources/images/color-bar-options.png | Bin 314 -> 0 bytes frontend/resources/images/color-gamma.png | Bin 3306 -> 0 bytes .../resources/images/colorspecrum-400x300.png | Bin 28698 -> 0 bytes frontend/resources/images/favicon-preview.png | Bin 14816 -> 0 bytes frontend/resources/images/pot.png | Bin 117830 -> 0 bytes 6 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 frontend/resources/images/color-bar-library.png delete mode 100644 frontend/resources/images/color-bar-options.png delete mode 100644 frontend/resources/images/color-gamma.png delete mode 100644 frontend/resources/images/colorspecrum-400x300.png delete mode 100644 frontend/resources/images/favicon-preview.png delete mode 100644 frontend/resources/images/pot.png diff --git a/frontend/resources/images/color-bar-library.png b/frontend/resources/images/color-bar-library.png deleted file mode 100644 index 70dad5429f1c1ebf23373bedc19d1adce365386a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^{6Kt$g9%6~pU7heQk(@Ik;M!Q+`=Ht$S`Y;1W=H@ z#M9T6{Q)BnFF)6z&5kR8Li0Uc978hhy`ApJ#carP{XE)7O>#0iz5Ti^jsj8FPU`$30yfLn02popz9mS&_#@U3JT@ z|Nqx!WnP@Od%5fy)kzg~Ek9(0QXe#)c5iH6^m&;{`RONz5-c{pv1b2UyJWHOR_&HW zf?qoI9;RIKEPiM`$LG={0}d&t3#WAQG&V0;aOQ{E)stRT*Y~}(=$v!L>f?lb$9m(f zON~sVT*bTAIkq31Z~bv%gtgzat71LYj`us>D@>8xc%gZb@S2iI=1arx8SVV=R#|=b zuVqFW{%M;|Rs`0cb-LKQ=(W?X884UYD!3H0$8X82`NEHwcfN}0Izopr0QfP2B>(^b diff --git a/frontend/resources/images/color-gamma.png b/frontend/resources/images/color-gamma.png deleted file mode 100644 index f0132e1fe8ffeb9f6c505c321fe84663850a101d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3306 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 diff --git a/frontend/resources/images/colorspecrum-400x300.png b/frontend/resources/images/colorspecrum-400x300.png deleted file mode 100644 index bbc5b793dc11f6642eda2b2e8274ab15ccaa0151..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28698 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 diff --git a/frontend/resources/images/favicon-preview.png b/frontend/resources/images/favicon-preview.png deleted file mode 100644 index bf99637fa57797ec15d36d2c7625128c6739ee19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14816 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

+ksP<-kgaNlPN$RSf@Zq%49dUl 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 Date: Wed, 9 Feb 2022 15:07:05 +0100 Subject: [PATCH 095/154] :books: Add new contributor change --- CHANGES.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 81820a069e..0c3967c978 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -32,8 +32,11 @@ - Fixed handoff shadow type text [Taiga #2717](https://tree.taiga.io/project/penpot/issue/2717) ### :arrow_up: Deps updates + ### :heart: Community contributions by (Thank you!) +- Cleanup unused static images (by @rhcarvalho) [#1561](https://github.com/penpot/penpot/pull/1561) + ## 1.11.1-beta ### :bug: Bugs fixed From a1586280a96787c0ee5084cf54a1a702a3ce8ea4 Mon Sep 17 00:00:00 2001 From: Rodolfo Carvalho Date: Tue, 8 Feb 2022 18:56:27 +0100 Subject: [PATCH 096/154] :zap: Compress PNG images using zopflipng Add a helper script and compress existing PNG images with zopflipng. Before 552K total After 428K total Signed-off-by: Rodolfo Carvalho --- frontend/cypress/fixtures/test-image-png.png | Bin 116424 -> 88573 bytes frontend/resources/images/deco-left.png | Bin 4124 -> 1536 bytes frontend/resources/images/deco-right.png | Bin 3616 -> 1415 bytes .../resources/images/email/logo-github.png | Bin 4457 -> 898 bytes .../resources/images/email/logo-instagram.png | Bin 4595 -> 1039 bytes .../resources/images/email/logo-taiga.png | Bin 3105 -> 765 bytes .../resources/images/email/logo-twitter.png | Bin 3815 -> 814 bytes .../resources/images/email/logo-uxbox.png | Bin 4123 -> 900 bytes .../resources/images/email/uxbox-title.png | Bin 2620 -> 1567 bytes frontend/resources/images/favicon.png | Bin 12521 -> 1336 bytes frontend/resources/images/form/adobe-xd.png | Bin 30195 -> 22231 bytes frontend/resources/images/form/figma.png | Bin 25586 -> 18820 bytes frontend/resources/images/form/invision.png | Bin 53192 -> 42142 bytes frontend/resources/images/form/never-used.png | Bin 203423 -> 176091 bytes frontend/resources/images/form/sketch.png | Bin 38809 -> 26837 bytes frontend/resources/images/form/uxpin.png | Bin 19741 -> 13208 bytes frontend/scripts/compress-png | 62 ++++++++++++++++++ 17 files changed, 62 insertions(+) create mode 100755 frontend/scripts/compress-png diff --git a/frontend/cypress/fixtures/test-image-png.png b/frontend/cypress/fixtures/test-image-png.png index 414556939645ffb11fcffbf94a800364f8cd2627..86c42a560694dc005da6044ea96c66616381aa99 100644 GIT binary patch literal 88573 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

F!Ri?g`AAF`Yp}hY}gv8ATANM`2rW8tbZ3 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

Wft$ml3|kqbIR9`M5FQB*6+R6gmJv@FmW-Yk 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%0DTE3hD#@jxQG>$* zKPg90A{`|N-C(2f03#vFcP@yc(o(4y7C1amsO6#KIs42x!cu@Y+)HdVB?ugPnEG%MOG$G3FLSYc)U%GWf55k}OOaOd4eS1FKtTM-rGk z6vi>(-{2th3u#%;(k;@uw*#?Z8Aa+cc z!Y(W8E;n-4kd4HV7KtpA7cI(u?0;UT-LzBleI6ZOFfi~^40D!>DZp7$Z3nGi8%QW& z0(sx@G_%gvzx_bXP0~(nAQC2uT*CG^x}J=g;!{u6YncP5o#Inyr?NE4XzajLr2M&% zmq+^lcQjay)%^~S76E-?!R5F|_7S}#5d~61 z1Wo2gl@hPb03yoFf~ZPOrP|$_sgQ%LM+au8Udjv%7Ul*4U~Sy~xNiEG8*SA1r%lt%`6>_3U9C(4qUor5wB0jSsW0b(u3~432=fRbEb|4UNrwdIqz~ zg513Li&D1VS{+EfLR4_!(!Dd4TnNfo5Q`#)f3d_Cef8XL%t|y;yO2U3tWVrB1UaIo|#cO6-a?lk+KpUGBJh%S|Bx89+hj> z;{isZ;_?hysgVy7hdR1H65U2;95*kgz4EuTtM#o1CH>tnP&=urGoF9;JGpWrFdwQ9 z&%jYKjFfq;cjjyJG$BpcT^Nj54VIV!U6tFZL@t^#zUR7R_OPg?dU(*Ba z7vP8^a#GhHMMJv8ydelgCO70F;s?5f5_Uso8 zxpjAlxQ}Pf>oQ<6gI1tu$m`A{t}XE-y|AqS+bbojllx85_R*ZnK#Q5DM$)9x*>P{F3Cq$xiY4bpVQU^2A^az^`GuSZ~uO*N$!dqo@Bw!Z5y z1M?Iwu7|dwE6+oQVzU56Q%kLdQsO{px=w&XR8$Db z4Blp0WeNH+mQ63l?f`5{*b}C@I3OYh>1PhdVki?9Xf?R- zjurrtoZ_|-9Uls2TJjiJ{{~_)61>b+frxbm-2T|BQ!JI)y)=s|^$a94)4SDxG|wk} zHt32b%=?dF2hCbn(Tp&EAW!Nuvh{39a7a{N{T}2g@loQbAWi zcD;NwBVu>N*Y=KrD1ppbj!*|OukNGMH6r&M-~*ykIQ%$^Q4HF$3?I6P>BYN?jx?FN zOG#`qwH0Uwqt{@KDfsN77p2s~$S^TcZOMPNs2D3>k{4>R`smd@(sO>tM4%7yj#M!a zPaWwCeK`*mI+hY@$%ssUE)t2?5&d|g5#3J)+ z*zahV*WrvfhV+M~7INwMJYG0MhqbZdmKpvkkSIzR*$tI*c1KZ{#Tz}a3kZ#AEa1>u z!@JU#L}%injVtqM4R+!kz8x~Xe>Lni?~sLjEAguRf-Kgx1^Pd8Djrqxcc5m4FD$c| z?vCkoQZwPeW2qqjJqZ+46oK{o366~N%Q8NTD%ug|L`uw<2Zs;#%9Wn9-zdi^MQ*R$v?;`$U_^D&6 zBg$MM?aV~!LVj5N`-{gDB@NkG+nZ4BaYlANTNTLVWQhBfsQs!WD437jXd_=@;<-{02lFYAyG2xGU1dlNC^@Fj>n1CC~Obe7Ncm8u$l zJ_Zw@H`09XQ{2KtB#2(^PNV%8!X*`}j8D9?!3q(ZIh)p8GA#^aCrqO`6e4z8LX5ey z=mc0{O0mmwM>464)6x=E{6#MM2yDknLN@w$?>yznf^Rp_Ou|EdWpd4>VyJ?~LSi_J zyx@^(6-^j({xb_a_z=l(Hr}b3ewzot;K~dF1>X9S>47A4Bdji-tjiHjYdIFfA5=;oBCA^dLUz;AlO4v~f_9r;uzPPIruJ!&DnM1kF> z;*~=f%C;S$jFN;IzOx)}mpfE2s~8MbLLOZuDa;fh*YHYO8_+fljh^)x=et;Xw`?&K z%e&8A%=f01Pl6Znp&hG?DxMnkoYNICk;wHQcUZ&c3g7f*zs5c4;CRdtayL*q%Jm5# zNc%>{bjB809&xoV4?iW$>A4!Bab~~Z6+^%a%6tZiU7v7+j$!8^~N!>Xd( zvgA$pB#-B2tVy7rFFanmo)qCzYrL%5*z%Y-6`sO;Q_gw0NlAD|gy_ej@Aq(xUDqvI zS58;2=hcC4K%+TV{%rVy(?K`ymEQI?e58!OwOGL1NJIz#O*@n zt4s|1@#=Q=^aHhvL;pdT$k1T+g*41uWT-5Nhe*UTn&|FCZ|BP~=rXg%t9x7Vki+PS zA5hMN$mcvxPL}@hH@kopj313u>7A+UoCv2AK%m7IMcbAodA*`CmIdF@;Ef@GZk^w| zxzfjRJl$WdFSq617AU^I{JS~u_AdZfi)stZx#MI8bn=EH9W1NY*4aPXb(SIR>vdq6gEhq}MKqY1kz!kJp*--A)(xagK zzn9nN`-%jRVb7T`P53L7|G-#p>6;-ueD0qB2^~o0yYOxh(uVUO*HyPO$h@~kZ=gZv zh)mdF7B;NgNipn;!6**KSG|%gsc^*hiI9?1NSSJUm)H=?BTGJ z(wcn3n)jfq1SK2^?hJ1j*C&0Va+&aG0{K%h`d8Wo5u^}%zB6H{ZY`+S@K9%1P? z*7nuG8FYUdhXwZZmJ@S^J?yK&sQZ`GG#McE7FF4_rpG6fm7eksyn(AB&Le;kal$Ra zF3srF*aawbKR8Tcoz-#!FaVRYjjZ$2l*Gwl?rweNkel7&B;Xz;sB87Ujgct*!ndp` zBU-|cvbJJ}&lXeaH=1?I8U)XXKIg|rqegZXkDzA%3B9qAiCE+N&AKCmx-VEBB4ij2 z2Xrf)@Zu${`6o@0k_SSh(YS!B2AZ&`n=0hY^bqG%M zgP!v^w96)sD)dF=#^ZMK8)iO;)Bo_{tdIa$PsAf#)9NE)VfN#m-V~B@T!C&W-;Y27 zNf0s-{+7Y$bQXBta<#L4yW}!xNN;`Wn~l8Qgl;`6=`6r25IXd~?N56@B7K;Y5JdJb zEM+R5{tW8foX1|`k9yaAN&VX7iAzHBD>;=|#zTlA0aJg%lHFc0UQ)-nUp*S+wxhSx)#L)sCLLm>YBcSSFH4fG{Sp_7MGhM&wnQ1 zM)Qz6%Nvz7bOst{M3LpfcE8Zi#}Ext9P#1^FzdT;`iy>CBZ1H#V+KAGots%TVS`xu zc~WR<`r80~mAl=ruu+zXi#LJS6GSpH>fpS@hLpDMQ!KOu78*H^&+T61PuCNZkvKw+ zCE%`bSwj4Ty8Fn9Wb`a?1Slg9H)OjxM2xt32hC4F!yPqpk=e@%sU|1&*7NnNKF?&% zr3Ljcxp~RZW3E)k6hl1g)%yaDD4o|H4)?y*annB$P2|OGu^#G{gpE1m?40f?Iq&Fl zCqSQCatPV8MBq@rFg%J@O+^Ertg+KvHu!Ms6?cr0%H3EMaaMtwrc0Bnq{j;|G(Nq; zV>sve0p6Q@HkV*+e9k!X3;G`+71>vSmZ8L=Z+x;>ZYmXwx#gZNs+QF_&Ij$0LHm_= z;Hv$ad@Fd+G1g2rfrN}P7NdY8sTWHEuVn!Z*n@1$enR)=ScFekQse?!Vt>mr|9jU{ zN(MGRU2OLb)ISu$_1nNUtAVY-zXiQL+@xpzDXRo{0FcKHJTN*Rt(s=@!14%xVigyx3Y zUoxzXqW1QDLy2(Oi>d=6qIYAYoWNc!o2&2TkjnMiA~(h$fi2sgjGF>!CpR-3^MXN0 zK$$HWIUro1>y5hs^K%XFQG>+waihJJsR8jGw#n{0vpKAu%XNQ4>-L-nRp1qO@oGs_ z9z<8iNJ|!4cXRrxO=_s*c~=jp4wt@WPHfF6wOzWuPTHQMq=?F+-ds_r%h*_>xw`Pd zz`1$pGXnzD#+GN)aHO3_{S$61dK(7^o!tJH%E4fij7YPc6TzaD@;P5bo!^*^9rRG$ zm{1ycX6s8vJn!}o^}?kU04scW;1x=2EFtdL?Q3XpxzmsdR%Vqyb|nhzv1Vm$(ZWfI z#tmG>=$k%Au&zr>OYhPA<-zQ=#Pa5JIk0$)uwU`ooqHPJy=}*=Yp|2@3vb_%jF&Zv z*QO=3@CD1h+46YIA^3ji*YfTC8wi2hqmlC!!%t$YwQgP;{x@8TDBRFXB;_<=FubOm z&uhG`G(h`gN2*cpBLDF1P3=9kRr&rNxK4)@W@ZoVUO`|Ism_yGZ@;i}F1C zlIp?yiNpTWyM}sQ26+3D|H7?g6fdOgf!=txp?ypooYcucayd)3HVeMaReN{BY%8j- zt`>S}#=hOZbqiUEFqDK)pFzHdaKpqAu1L~p&ZQ9tJ+>$5^av-2YSlgrW(_5-mG?1$cl;|Ee4cr&5u07C9vh@#y7qMeD@*e ztv+{LfQ$xzCvINXw`$r}_m3aC-}cPkt`IIz@Iy~a_G7tfRP`IS3Y z_x_d0^q&51aM{{bML#9{o@iy~>=dR!5{3@k^0<~zuB(Mz(b4{FwXkV_YJ1vJ6bXls z5*Gw3eBSaP3Vd*XPunKs1T#dDkdM80Bk-Kqa42UvMaNeJ1&ef86Vtr z-c640t-F+jiZHqAt>RlSA^S(bc^~Fd*zYrMy~|EznOgJM8j<5q8cT zykvjRDTSy=qzp4^V$63!*PoyeYas*#18AR`afcgHFzo#`v#}`X((R6!}h|BFpk#-uf zbi2)4-9J4(@mb?Jyz+&QwM3p>=fzv=y$wCbYHvV1IP9kN$8uQ%Jukmbc3}G za{Y)Vrl`in5j#zodp`fb?7KNVRYkZ zTYhw^x=Z$1>}T8r);kmNAJ!Txjgbso?_5QFE(dGRcuOq;&PlJJUifui-+|0VsekBy zpLSDjN0;!v{$0@GnG5+hu5}GF6aoZuW3GMkj+x*tJq%735Fb5B z%*D*>%1VBS{3RnH!gBkP$urppG!Z)TJiw>#t~G-zVtuF(q4U4JAhgKi(V?|fz)!a3 zwlQJ3-PeV^xashYTd4P0F5C|c5I<1e>tytlllsFTOB$g0I!nsuvF+ONdDf-nZmYl);NfJjcK&VHpCW&IsGKk| zGIf|He}sgxGkzvdU?LKe+`(%EPI~1L;3Y0UPt(PGzvUC?X7fo{g}c~)<(RZedg=Lx zA*Sn|fAqMVkyjyhHRU;EL$cC`sK#2Or=g-`*XU+%(Hj+-DJ_-jn?D^~6iNT-PycHF z!0U2RO>x&NMS8k$L)x6=NaV8m0mw0D?YSksY?bCNe-M%xw6_n*{own+;ql| zk;NObB5g+@#P=5}@eTBB4^ZS^pUKmNqfB6Ry}8u%j$p;yigNSX;D%szEWevm)|Nn8+NdxehV{+>f}bLDze&>AO}Kz~&A`F!4hs zrbUnb5HnmH|9GRQLdGE67=Fe~mK0oWWH&A$Ri4sKLV!rWQ2_;P>2}zEyBd-T`|{L+ zDTE*i@0c>r7K_qZG!c@Jp6@Be&L95So}K^LE>x`CY=X>^+a2W-q~g^-p3kI53LD_9=dqY${|n{K~E zN@lHo%G*&M?zqD2NErUUU|_q#cO8dr5b{FJH8h#9nDcxi@V58HBVj76O8|;PIpBQ@`lPoZuIv)G;}nW zA+$#0fx#4HJnp~GKHr?J}X^l{G0`Z4KIs1^OsjZQeAhU3$M6e$?i!E!C;aC9tT@o0UX zM0jISiWK>ZcboS%z96TZr1`BR!a}Vht98+;=_}ZFTQR62Zs=UEiQgJ+bU`~?+mL(Y zD_odQN1r1)kM>OruXqtzU%tL?yGyPQ2|=}(U%PWqurVegl&yPqmD~)rD6(;8e-_le z0Mbc*5OZZGPkT5l-@Gmh{4f!?@w(N;@I^%2;0&(Q**itT4c0|&*(3+|p~hX0reHnD z#;jev;Ilt|%@Awq57s@gmE;u5%7*A7_VnKDF1x;zk1>;v`{*$}iS=yp0tZ3{#oc!cLwm}i z0gJu>F7J$p^n=^{1l=vy%@6s&6walXZ!OmwRA8gUeAKgH&NqGE@1`(cIwTyOh9<6* zi5r>H!U3iaHM9im;f)$TOx^UR4;nQ5nZS|_ZAsVQ2lMGh)9Z!GES5dz3ck-n5{*T4xUUG9&h4m-4SsK57#(mBj$2!Sujx1JXS1hh5AOUJ1q7RicT6eB zC0ZtDH5qPCo7bl^^~^wqg7p-e`{TJ_^b&n6;`cL-sp3-=9`U{CAF{ZfvzxsxyA zbzDuYEyhH&wE)=yq0pt%d6CAtI=m5fvb_6BI)w+vNanXj zPkv5(%kS545f;M-dRs%eRF(W5NS!mx^>&c)_YGXJ&gmX&2)mtD5m2`X`oi~DD@EBU z@6o1X@r;tCn8N}1Z*~BI6ruSX6PL5W6-#ysz663H4j&xj%x(oJchF#OBiqY0-*nG5 z2|YN_>fu&9?t?!`N*1G+RA0SBXvW3E+#)zKSdfwZb?!e8jz7q=Y13~K6UL!qR*j91 za1mK@bv9IaQOn@(Eal!d-)Y`s&}0ux*iPK`re+%>qxL@2y6={Lq5j3eAG%(Tsr~aV zbVVrOD@e!+T?{|+K>>UDL$PCR=?M+o~ zmxRl}*JKWrJ*1vrL6thK&6Yo=iygncU-6R=f{6;^YyRDaZ^i(rON?}s1NU3^4cpYd zA$6skutM&tZ~1TEuKk_Xo*e+2C9EZvDqG_geizU+!P}9B@Mvg;g(THR9}{JY=%97} z)zNH1Y@qASh8QKL_|UqcsY)HIZIeQ2GxEKiQexe;<}z*#Vx=-m<-pE z{h`|y4mpCKNgE zp&%E&PncvC1>fP0{Zh1?qU-nQdRPS1mvm|$yX^jre*B!nYTNT)gR~gMVSG}LyZ!pd z4VFsC0N&;u4JnQ|ApkH{Htc0SCs}QM?clTkM-6^HsFUnpt^Y<-)_se2I9=sqaU-jd z!xnEZo-I6BaXYIJ?f6>cgK)G4CMV1(S*z~Jh*=w-ADDRD*&0{gr|9?w$@*7TyuQ>~ zV#v5iQ=^d%a25;ET3Yab?DiN$WRwFp#nx|*jNQ_1?aO5FUu~`|=V3eZiI7%w5Zs3v zfy38tFQ<}Z{w~HW4mT&5j31w$6A0E&Z7?0<6I{9DZ(nLow;XLsj!70}Hwz#*@-3cI zY;ATR*(8Mh$%8+|Sw$%z!CG$wy|&R2u1N)Z6JsYHHZYorJeK&UyU|~M`Yw|*1N}Jg zb7Y*F0ginZGv%I_M6Khcvt0Hqoe3~Qs?%TO zAb5ROxbiWf0gl3jw89D0%`0vTYEDTTriA}hvV5N-e{^@4xt+??Mi?W9CDSP=uyidj zIIcHguszFqg4XL1BX9Wk_=T3Cq(ybKf>o{7-&r)*&10k6t*%XrZ-T> zsp0lQG2aW+&E@|8Xu8J6NSh@Z+qP}n-f&~vw(X6*v6D@*+1U2Pwr$(Vo%h5212g?p zSDmUpB{4kcg)+~SryO~q$p-MNgR;i!}6hopAcJ6=!{|}UM`Es zdf4k($_o66$@v5Kwt;(10WCLxH}6iN9jr6$5ATl!CMZC2vABe3p1xqrdA28M?|43f ztq^rX!;5BQH^GF!aCNH0mDN15B+bNHPw@Qe=;6mxCDw43B+;{VoNV#sZE6xdFQ$O| zHKG8QF-t-2dIgP2KeDZd>+w7>*x-iBLq&>GboQ(!T<_-3E3)aUmj*8qKV_|e+-{Q7coq49!r3NXiFaBrKSuBE6vy|fn`R_|V1KSIlU8HzL^Kd+IO8We z<@((k^s{@T>Gzd#-04r|2n1cC>3?|xu3e4=c|+N&(4J1`8`v?D4&}G+7j(}Qm2y`7 zs!~kU0^LGbPu~xC0az(id})I=o~&=P$XY$_j!AdfkQeK6{}WfnK+76*dT;%bCs=EnxUEE@{4-;`N54ZO z*b^^;vWq{VZyz~JMv?Pb5e4*uPD<~EKuD1*Uln`50koFjJLX2gEBYqa^K+$2WpO4T z_zDG55Rq^SN4~EiAGtX|y{k;kF&42#vZuUk1Gc>#XAlQpppviM60OI{H>g3%)U@5~ zm?y!{=LL9T!B3BI`S!IH4NNYro>vwVs07RpT>4!H5*_^RCoc5_cj?Z#I^uJSzc-mp zS}@~8ZpM13UA|ilFolFwQx3EU<#jvrlq_lvzF-G%gbN7omoALP*4a_L+ZK=!jppKj zgHY_0Iw#Gim$K~LSzcF}wVFMAE0$?s+9f!SU%OK>+wV19^x8HyeOPpp@#zZ-%uKT)$Xr@PrQB?$$5_&Kpl zvrpa0ZtF%b>EBd3$nc5Rj>@O>8nF?0RA+yZoufTtw`ri~RT2aF1Go&Adn29iaQ2ub zj>504oW}lYedy@a@481A^y>4de9fVG8%=JN{@DYBEB{OWu)Yy!a}cBwp9OY^|a*S9=(307)`?^Nl&{5B6%ypAm$ckGe19MMT^qf zy}n*$%h z9xmfMQ*Jgy1F`1W-kyLOidXoH1S|${! zLgd>Uji1wp&p|f&Uep8w)w0BGcec(R06!=hZpAH$$!_|}brtZW+G>V6Z^gm(2;9o6KMZJE zu2Yej9<^M)HRI!q8@zJ6uR#tl?#rrrIoa8|1#k70cMS1oJgnACOAbGOcDcUKPsz;= zJml5`O_>ro{$;T->p?=E?M5+UBt;W4&zo7YYTvraMWpkD$)B7s-`gW(n&rM9&*dNW zgeXC49xErXD*mV`(nDyYV!~&G2P!nsk>(h_3Z9^}VQ4!<3Mk zJlIGOA@3b`&}ir5?l4N7@Rj=(OnGcV3-7D=XXdgwz1P`W?%0J!4CUfb>G%YxbN1K= z4>F?ueB;Mgi!0_eu&Y!Fn(O}IkKxTT92u)MbFc-mgCl?Pv2ViAKN?7^KgUErlgw7C z3d9oA!wJfAGvB$;Pxl8#T0JP6nL#VZ`=E7yvj|iRDu4~VdMx9$O8{p17~p6rkL_PS zOh?s@h+e8z-Z^J0NGJtc&U!s7a`$J;8?<7fu5dQ9hbo(UDIErMJ&2E52&qrDn~fQt zs(JpVesu5ipyzp|zx91Fd|&)n11!}nh|k-2-YrBn&@=EEV+HPo6niy%Q)Gn$b~JJ? z1Uy6dvHfMHsRW~*pGdEY-)s4*WGJ>2@e|y8qNLknNqViG4q}p=*tkQ*E23V2l`q1L zY4J%4r;8+c+R)thr_GXn!f&Mgj6y`g&U`m>_|X!!LYXO3`#t{Cp}CQ}mUl<(#9O=j zh3HX_$f98UDN3wnOZPd`%tQxj=(%IAeY&UuJ<=6zVKy+6d$i=G+5$epfgXPM#CTy# zpYj=+!(R-hix%gOu?NV$eh4&*@+CdJ_2oSwZk+i-caZ zi>xNqxD=XFK<-g6Fql0sb`)UC?5H`9SAk3_rjJfdOiCHfWe!mIz1a8Jf?(?AsdNxL zPpfUW9T?Kgh=+=<@)b22*rPk8YdCQmCR;(q;DgR6Zfb>tGPNUB74?Kny1<|DiTi^< zUN|P*gkr(YWGzp4q*qk8$7(M`?3U9f<+`!%VukBYZFF*yk4>nXf3{n+T&4bPAppso zVxEO0^$Ss_02}UnnrOFcGG-+&9dIC(o8jq24zvY>OHX=OQe}cs+1-IExy*J~Ts{(hnqb6Zx*VZ46tr>8ow`2C41OIi<7DpkA_yq$5|N*6`eKOxZ3 ze9(>9j9uF@y8{^$YCa-dy>VZl!teWu*>RTtG1nlsX8w#pc13pFuh{O{7g?(?`CO1F zi@v?<>pt-{i?_s8^?Ee|%0WDVbjQ5!Yh2BV*Y?48nIVtOh1c^8SRqH=tt^4~bhJiJ zxh~aln~?NKT~p0X+>_fOx~*jU;F#e=;qOFVwXNsibR{yBkOLSHJg8wDl#4GMglr zSn{t3*G;q$nKmsZ%61L?TRdOrCqv8qjoOU{3{COv9*bKwP+D)KJ=+fSKxeVf354_Y zgiLrWEZY1Q7j|?g_uh3i{z%zy6r4vsp{$m?Z~t5L3S4c0z-_N9yiMq9xQpA5x_6qC zypMu4$>XK4zK6JINtp6$Y=zn(>`*X1NU*MtTW&n3R%72g);t}~(1%WrDT}hXUg6kN zQ{p0LCkU>{&{N-~q~vU=>xin1`U77Lf^8kMRXe=~R6kY|umCD_=9pT0?~%>^a>gH4v)s(;K{m{7l%;r60=sw)C<~ z4%e)>-hNy>6|s&9`3AtXJTR}uweTgWxV-35DRuJ4V4i!<)mxM2y$@?aH9M*lzHwa% zj+R&o?M=Ks&|O(O$BHE=*H8n5;Xz#_7;H8M7Fc)IUO_kK z^TVwL&)`XtvBY(tFF$dX4?kfyS(QLI3U^-lp}mJ#wN7hJ#PAW$|?FQ zA#>E!_vUnhQgUoNhcDsWx23O~*^nb>Y{#iRqr(E*v-=SobmjH=An9XU0sOW{9`0%` zQN@LZH%2%AHS3;}gbxHMmxO^K!eUDlXj-Nk7{HO96~~9+XC6O=NpeE1%VfsK_pF}0 zkMcH#m@Z^;kx+?3lLPRcN5wl`M(^T8Q1*!dRj}Y~T|jame|35!lNlK0eVJU^hN!Z` zP}sbAOL&PN)O|`8E5Za%j05U?NHHXSm(z0W(t>NsMmY&_UW&PS$Jt1Lc_v&AYYH%2x&Jaz1LKJbrI20YLsPjTQVGXS;PN|ial7jq?#*qmIz-OE=|pmnf!AM z?r6#%*o^0+2j_r&dOCVBHab|!A3wiKvfY#=@5^=aXv9JK5enoE&f;kJ2>)^t&rOjg zTr*>#EHCd2O~Qg_F0^9-ntlibA*L1mNqtdj*2l_IKKiDiny!SryHR*!1Qj82uv$T88vvr^&Um&rTWBR8b5zxFV8r44AZTF>|iZt<7Wo2rq-~>eGM>l6o@se;42?{9b$b_1i2H(n^0CJ5Am0>WI z;gy4M$kyyF17CZ1R8Qw<#f6&Q+2K8e^#TDKJs~B@0yz_sZryVD-w@6kDgD2kyA@y_ zc`~A?V4nK1dau~xs3H8)&qtxx8erIh8}+VL7ktiniVA1P*JefAvYm<~9|1im7(LpqttRVDj_ZM1i z_FGV~Fw9C*<(C1mWs((vd4U!m%iP0W>~}0Kl`IEi@Oe3&46SLUC{yNq(Us>3Gy9B> zu|_XRUD2Z>_i3c#Of)x_k)Pa~O8eT;Ne8guXw%Zrbx$?-XJlGT6CZWkEh;SI*qUVl1~N$l8uR~f_%YcHnz%# zTB&evLl3TrhEbfJIUxLp|xkIYFtkz@afJH8{9EJ!mc#}5P_V8e0*Rb1d`!P@+O~dD)&K5YS z`1L$+-FY9lf4V}^Iag%r+3t0*Z^$t_TaH1-hIL=7`|~4IWVXO7JmO`Rp*{xYGnfj?PmBgh4y$KN|gLjp^b30)h_1k$V5p$ z4S09eVE0@^67o8s(&7B4mud}?{`c-9cKg)^AU3ui)qS3)MLTip`D-j{@-yZp4mXuQTX#1&M*>+i1fHgyI9WL9)VX>ag2P>;3e^)BTqWzG@+N&AOXp z>Y9UBSyC`&7I^)8F#^6|&$EK92^Ro=FK!yRH?B=q3O5PaC;`{b8$oy2|NdA+*bsnx zrnbJ>`e%k7&Vra2t7bJ~{LpzD$lE6;O}_N$vugG?@%=GC`CR87+BW(7FrY3wnmh^Z zeezgwkVYPAYYzOMz}T4aYxwhkd0I`&L22|nIx=SVlm|Uud(ZtW zGppsJmv?N1#%AYrq2zHZV>Rs6R}X{C_FtPFNWk9&>K=`-7>pjiW`W}d7%Ik7S%VV>R$j5AjiIUnRu9%WHpjR5GCWV#Cja zxMG)uBfUU&bQqrdZc%9*6b1&i$n+hnU|x~MN{vwrCP!DJ@R}8)VjjD}&rAyLsm-v+ z;*SxYFTbpsT~!Q_a8VD_Re!xZer(!|v;B?l+f2gnVnU@-@z;+x5K(bCe?WT)VLhJm z{%hH_kR-<<607dx;ZE4=baxczfiflm>s72+tpuVll@5pPQ{e2h7>Doqk>~7t^e(C5 z$BKo2n7mxy`BWJS>7%WCCoptJsy2JfQ4|OtuY#2Rhv*jFKRmq=ew!TTG_K)zw6dBy z-dXA61n$}Mf~mdQcJkm85#N@F*b#qwwh+D%sE-}+zGuCc&BburmGxqk`fE0}d)bKs z()6IeN6zVbJp^qP2X(Rag_f0+L>T-0!80kdLhH&44OQjqqE$WoNKro=I97aJ`mx_^ z#`^q`GZrOe1V#AwzxByBH6GV}+i${IP8+1H zfO6U&Br`&?zxJI>;C>v>%T{UP%i)0l4eouT#_3Wk zCMyLt8p*Vh3C9OP@)llV?M``qsyIOoqyv+ay!2%S6)eZ2WFWrKHL&)um}=>RR27H} zD5Ma%>l~$$p<|Jnv*kEqFu+=kkonUe7?v%ow@;6SO6$?3#Z1W1(-uy{4f)9_m$!dx z=c@^kgKB?TwJ_guxCi+P+ zelajzygc=ohk=uIqnBH*QY6mO?&y0dsw@Zb`d<6mYaO54ePW!Els3LCA?ScI}_lLmbmj62rzXbzSC@6D7X0@R2?Uk-$!?zh*@mu4t*$nVy8{ugy zIjo_u;(Ea_T9G+)whTytqC$@V<=zphon$8pyJ1K)FWVQYC0q`^JTcWZI+=ktZZ61^ z3%gKJsgR4BkQrJr2eFy^p@c*Qtiv+!^Jk1bT?TEK{kg8+M#XyOUT~7}{l3&+f8mE; z7guDpSpLSP8mQHfz1;nQyLi~YLp*~0-Img{j$H5fEsB5zzuDm-Sw<5E3B8YxG0`$_ zIY&a3(;P<*no!G8jy*C%WbgD}QCEVh3W>5pP_=TH$eMjdJ7Cue3Vxdq;|291e21~i^ z_4JEnU@c;(uXHqgoQFY41z0zxh@_7!jL%pxP+FCUY4fN+1zvsim}2#z_tqNv_Ny;1 zBO7()rq5L+fz-KTwcC89%3P5%N3Jf%91%)WSj*~2CIfx8ClMWk+~kObRt-`Zu(wRV zKi|2MZdy^lzoxPUWTx5N)}YmvCK{#D0d4eaQ090Qbt0UOhv5}_6aW+WtS8Zq^SYv7q#NH~$snN6q3$je ztIy}Vov1368(>I(Icnvf#w;5*dAmHWTp$67{Rj^Q5lzWHVbG^s#r@#)ZV~s6sCYO_ z0KF&X5f~e;Tcb7Jz{AivkM|ygsPW^;Y8O6?XakjkcB2*R`V+yyZ&H0(1Q|T^z2T8= z!dK^2s(UOj@JHcH5k!? z8f>rkI*)N8uIrVd%M|K;(>f!r%-VLfKmNigQRp&F9?MVUEuh@2;;Z3YOanX2&|TBL`za95X7i}25Qpp-@Q|cYLw+Nk z)w!I5#uE#NuN#?-1bu;og@xblBRBAR9Z&#KQRhqx7XGHte_Tt$Ua%l)x+xxIq?16x z2&a8Ss=N#d`**sBAQC?i8Ce@o<9}joSSsleu#1rpa;4rtm0KT^P!HVe1TXcGu_?I%JlZ{7YzcQI}T}Ln>Nof(;$ZlSP{bUJaB3=@}m4q5nkv?|6EO*u;~%o` z8juNi5_=0swqCrbw7oT_jyZ}{RlnYAdNApi|K-`jgO*z=?eWz^4~#^azkjM@4xd4u zL@Llc=_Rk?(oE{4y>z091#uz+LmyxObU&jji=d)I1UwpvxweCDy9>BtI#yLXmvY$7 zlX4d;9@ACV!NJk}2KGIjT7GKsYUPtlEy=S=@yVOpua3JuHQ0xf4Y(jz=qF4lC`4rV z(&r%216{%kVfRBnMKPEwf{mov(Dw8d?l@ZrQUN)K^FT=%O!1ysnXa$;5Rx#FKY8M< zxkKk*2e0fWI_`|GpOAZ|x;KnkelyQ_!T%(Tl!5k>#C|-lT^sP7#=KCjp))MybpOjh za?FBJTduqKBLysbe6q3BwpOR=B4%Pph_Mer zfn&$2CZ+GOJDop=^txXv1}@aok(#&73h~Dou4!=orytv`jgKH0DQdl^>f|4FV79l` zjU}F7Tb~<5T(k(|d8yV|v3;2lCzT=7=B)x*UbB zexWXpqG0wq98$8QdAanm2%{xVgi5(vb%aT-v)kfm7ans9`Cy)1}1nki~IvY22V#nSEo8 zKF=T*4endW>xF_n-9fUefAY|&a>B5SFeq^c1n^+5O`4xa;>i9b8ceX#lkYk@if#B) zpv6S0yI7Cu1uD1SzSzf@4rLzRN+Ur^5><@ErNPPJlMs0EFvX+nd4HYcfe$8ezn&Z9 z`mwtF0%bv%ol$-%OxkyoDYp20df++^P})pyyNx~G7v4@yX_GTZjdK5D(dl1ARmzuK z1Wz&hq>cJYAkCMGgH^w;p{|#!asAt^d%9BBn9YYb$pZ8~(IGqd?M zP?nO}WM^vcDGq+Jz>)l89}45kf6onVn{mr!)%WbVDl$o>Xr30xc$`H;OUa4D+}uA& z)J#o`wf`I=PZ12QaP1$n&jrb7g&1v6rmopivbcZ5^h zhTrG7&YeBx4cBbB3WU>gMiKH^et^D`PkhtDGlO;yd=L->*SHxw;N5SVAs^3u_o@z$ zy+hLBKxaw&f-J?fiIm#l-K?qICuj)lks3b7pEBs|pl;*_5o))R#rRZJ4q6nQwBKwOFid&Ez$rZj9jugsorot?C_{OjrK9s`ajN`P#M% z2+?F-55I#Y!VESlU+tFA?g)p-qiZ$-a5@I!hk(s(b)PJ$q%`}7H*8*L5P7nSvko^hKCrFcur!aHVi_f>u^)+`z-LsL1|y*eIKnI0q3jkTUSPaXf(+=y$ol^M0$O zY>lB93(=0@2KmX%krA&zMz{KR5CsRs2izA~FV?_GbZkRqPleutOrZB)nRD@;a(z?X zAK-|RurfH>^B-H5!mm-qmUDmGxbZZ_VEQty7;(7EZFkxF7qsD5y>8@pIg!*|_F{)G z+jO(3v=Gu7JQ9tT&Sz-BGy#%I?eKd$Zj~!^I9eKM$v}C+r@?HM7b>FzacL-3(hqIA z^lnb`-nosQ=v=1QhUE-c*ZgeE5qo=p8C*8tidQIf-#^vUrY)KJb{FPMmmwVp7xEMd1tVGXnYg!^_2ilt z`;ypC%m0>$n$Z-3Vm@1RV5D!xsZlDXcg(cIK0VW0t%q+K@TR{z`>&&7s=6`Dt{=BW zzuY@MVt-r$PYgBIzU+FThIT!nS1pKf1|noZel5U5lsn}rcfseCa~-fLp=bf6B5P7K zzOk$P_cgVcq;+I>Zo)Oe5dpzH_Y=H}|2>xK5kO%(v8UmDHA?TMG??%pOMdwXMtPhp`GJ3J7 zT%5ipuz>@Z?mkb*H_g3=WIJRyI==>-HxHwrA~HuOoJqk((cA>2wx%eWWWSP5#f^iq zco2ro)$gm@KLSlLE|r?|qGOxMZ1QSgYOJ#Ut#myu z6)mMNsGH;?-awfJKaS@<_rO9;s3aMrz3JB<>-`MbL z&Ii7Tr}Nk%dY^3Dar>r7mTcu%i)ni%%Cp%nt+KADtjv(*$!`hRn2-&-neR~*Ofchd z>hE#vBqr+iUlBmRCPpW_Iw&oB0}r+xM5lD7@n3*0e!=gO#e7^-bLn8UQzw#_$C60e zwMH6*xc=V(121WO9Uk|6lX{jrMH@fDPoC)>yt%|%9Z8#T1T zpwaW>9>|q{D;9yV{OpkTjL+Uw`PhKfQgB5WGbz4!&KMEdhdRcYp=KK0hR0%7q;{g3 zbz*6WA&typc}bwE#@~(|yVkDdHfSK&>d9KA0gqb-Ba@Z07Aibf03>vVlHb!;g{Vxc3-|S|;W#3vi#@5O#J% zX;C&FNf-pa={s2i1B0|l8BEaqNGnpeGYB!@KsT1m7$t@<5sMNdLl#1PGX@)3G+DjM zy?qhjD z7qzpLVa5gJB(WM?BNXY5ap$*=D$3dgf`%Ry@!^!rU4W8Xx;KP!Z6X%2Uz7p7` zO-V^V+l6}m{F$~`rtDlYk7NOlBR^z_u_M%t3{3HqQzI3{*r7B*F3RKa z3WtK%$4Feo1ty7=cKAB+O|O%hnh*ZKDj_NpRZ??r11b%_irO@nQ87rpuButRpndDZ z{*;v7zfil5R2MY#m6G@Ec4`eL8f=2D_;cj`g-Lb_{wd6k&QV#WNRo>b)PnEfb%8`K|#VRnQC!199*;3E+AB2|72GjJy)$}dqbV)(Sq6Hm;_RR+V zN^6jn1CkcqRW^JEBKtQaI*l|$JqpDZNl5sudXj?cU-H2X!S5HeZpw9OStK$b4P{kw z`9feo4mwh(nNnqT@r6PHJrD1Xz+Qv-w6V~qc^nse6}cBKu%YH%W{-(rEY)G_!-@|d zIhXdh`(`yDo0^_3i``rgg0y)|F!LoQ1qJ!~D)oSXI z?Ud|cn+Dh6%IzfkCd1v_bQ1V)Rf-aYpH3`sCZ?m!e7wJtRZDx?P(pwS1LK$bK8d)q zT{hJ6(#_~{Z1>kVe_CZFLNV-B7*rIMwz?e+IfwDXL4PCu2oFKgvYJ^+ZlJT^(QbQ< z?fecjQ@@>yks3k~V<}g4y~^OhgX`bS5%NoQ4BXVQKqgf;X!L#<8`5Rz9nLPFF(Tli zr#()tY~B}f`z7qNY5v=b<1Z9#l9-5)*02pcnWuHjDF`RMdeoee0UyO_C$!?X0N zHKzb8A%Gd=xq_TVDBxE}ot~;yzbj^9Mh@V@T-T-p9}g0S)XPd98SrqarS&wmkiS}c zEwQ>~DBIR&G-y``l9-Wcc!>TpkeL0`heFN16pyk~#(^hGi{7C$m zHW0x^2{RwN$AQ}XH8Cx!z!%y_5hMuQWM5ZzQ z5FU85S(9B^$c=|ts!;s4;ioE!VXL;4#g}e(epp3xn9Ls7_A1%6Jn==OyyC)xnqGM} zKot)CHdE)M%Xg$2*OF_eV1Jlj2 zV)Ik0I*dv{6ICNScey8Hd`(}vQQL-4R2hQ#+n(h1))}Ov#Qg3>+SSPbz_xhmzTkM) zCdA%lb+o!eGOe;+H$Xj7QN)2D`9=@%$vwFZc%kEb?8b-z{*IbG4FvUT>wk+~81i%c5 z;Z4#`~s1sb4;hIn$yO|0y@c zo-Kt0Zt-=pNPKQi2TUZD#H!Rh)2-}ywnghm)z#Hy_z75sJrN12GWsLlKJNW77L1t) z;e>BLa|U)#pyY;u>dYpVlF_B1nOImt-QrO`Ml~VThS6bGIVEHSHPV+2=#&-|9 ztXp|)g#>NGQNVZ?V$d*P0YgdU;kD8+d2d&SCNf*mr1!nz({OJjvth@mM@nD&q5M~r zRsvcCaXw$C-|uW=IqX|WuCIC(R{D2(pE=??;q;o=1fH($l)S5X>USfja2AZVrbl=O zhy5{;%{4z(@jM_%`0;0lHu^G5-F}@K`a=)oS)%UN;aeP4z)tg-loqeEYY%-4Obcl@ z*`?tZs^WDpDa4X(+KFkh<94%{k!|^)iWBO7H+G-V1`0cn>mYItc-fU~ zhg$yQI;X`8WMmx!jxpzs<`fL+%J)(_vmmXJAa+jeTId=o&Wh|BMqzJHjw}?gWAK*# zRpZWzLI8%UwO{c_eAh%AA*7Gj;i7-qYq=^FKY12fOhb6FFls#r*4@wTK`Z?`{ zRg*&#W5(%A#o+<<1~naIU{VU{c3)>1=5g|pqs5)oyg|AdODxD{e_*~1Cr8g4NVw-A zcYqhn)6!5u#}f*M44D8n7c>1&oo!W=BvHM*+FTy|zKY&#|3N)jRw*hLc)b@sxo>sb zrzZj4oJF&5|EX%c?X|c)+zb?Bv(_YGrUJ&CUD<9uzpuw7!l6hg{f?`YUT#@^N60-b zsR`tzWaa2_2nls-2PwmLP6w2Bb`HW)orHSu*6IHAcc%^L?#akSYd73+^NGROO)lcJ zT+p(O0QmA|~H)s*uoD-mzXA=k`lkNY810tu+( zSG8QMCOkqGxe6)*~Q_L7Yg3P$(MJZ`I(J)T|2Pp%gwG6ZMm)_$q9?SN+v zeQ;A-E%Lauy*;A?U&BvCu+L6Vno9c}c@0>QbYU;Y(bb6*=%?Kyi)n;RT@C4Dyf<6g z=$-q>xm!2SOyNI_uvKJYBqf8%fuKXe7?d9K5l$FggjqKN5eRXLXy0SsMkYQ_SJbuw zEM(xFFO}Qxaj#Vvm8(R?em;J7qd_%Wd3hIWEy%UZEoqBPgaMXKG6?WHnVY9N6tPWW zFd3PHes_#!-vEz5pn0I~8vHr@etFV9SUcuf&;qR?ls!@kd~SlAcD3=TW1e<5@Oi}q zVbH)|HGkClXN#S!gnBb6{6SXD#NGd3+mN>?4FgL4i4Sn|0Txht$G)~0=ImH0J`Pkz z02FA%ZlLowr-L`Mj}so--Az-{86Ad70OD%J}wH_9WM&EIti`POi>G{`L2EftZ#oA4R zM{dZmJ9`&{Qw!yY_L2>GKxX0mDt6|yO-n28?_V{|RP_8r83zZZK2lN%$*_B3;TKfh zxp`p1h2Zmqd;*JJ7p-^&1HJyw^ju#-v8_&NZL5uP7bk}XxIN(hSKVCtwoTLRv#@}y z#_FXitE~XR*ZH`wm&-I3h?@H0^Y;!ikM|WDwPFs)PM2Z#Xxc{Q#YOfE=tWgvXK$w6Zg%s=^XXut!3UNj7a zKJWDbG42kq956OGv3J9Ohn!$U%+2(5GwtlzVfm5m>5|h{y8wr>ky7y`0%f#WV#7JG9 zB%Tl8#;XkG+Fv#Lc=QYys@s#A?6Aze-Fxy1cy2mYPHl_#cgtArxq)2k;2RwuADA2f zFP_b7dT=@AbQ@cP4^pn#@9AtshfW#zV6|^kFy)-F5Wq)JPfJ~HzFEkd^y0H6U0X)) zP$6f@lGkIZAC}7|z&Eup35kkw_WSt2#mg_~=!)y^V>RGwL^Sj~?nw3eZspG^w>mAX zZZrML;5wgeH3Vw>U|YJPk(F6aQ3R8LU?XI)qUSTSl>mwxU-%^KE)Q>qb44xG(NU?2 zy0yKn`0=TDpe;Me=>`7oqIjk)6POrG(EvEFOLtJF_WcJdV%)nZdfsr5?S%b*>jsdW)KIznjUb>vd~H^_5qRT%xFq8tfNcH81%8S^&4gjMGzmWtPV6 za6lK(J4i`2sjLf)!28ZSvoXpma`LfG=KCLuBRTw#=#kBsh-M>8U-zTjiJEcc!Y~^>E`=jO_;M(Ez+^LK_*{`r~Fbf1^ zTzYKcAKL!>>s-|6SLa-TYGpJRvI+b2+kU|IG85Pbj}CEMJYb|3GD1RJBo5xDqB6Xo z!26r3%yKmgPtGsn8@wW>BL%$QYR|;rHRR3O>K}%J7Y9rBq#kYcA$R_E=%~}c*yL(o zZ>;*=QWSxZuTzXg*iGWkFcPkXgxW+9Cd@@Pc2jI(T1xO@^iCfydOq_@Z04|_5fS3A z&r8=JK2P~~1*?Aqz&jGZqAZyLx}$u(ileynrwM*)IMNY$nB)9yp@c~bBU_ab9W_l; zTo_UrIAkL;6(t94&SixvU1;jnZbMonCgKw~7kpXuQY|NWuv7lKE>f4n zsF%NmZBvEc`v82WH(LU5rTj)NVMY$u{^jN9Fg9H6l=ixHe{r44e~90fj#OCR49V=s z%;qrmigt88B#j+&N}O%%DO=Kf@PwiqX5{I^paJWB=yA)cq@+B*Fj=W&*Jn1f?Yer| zHSp0V+$AaTOBi&^!2>+v!{!UP>YX=9KPoVY`LRmyV{%%F&1%s&n;`$Yno0$EO|Aa{hma@ax@ zsIDai?cvx@fA)=x&3FI?cyLdp)lJ#gpJxa)f?cjj z+X<;E=Uzl4(M7fFlyHUIiK;4*bd*(_;CfYd2Tf%jO!U9XQ}OL&*$|3TxP>8!JU{1`v+Hej^S*) zJ~MNH8GYbaR*fou?9J=(Ntb#1*!F+4p}j1vTRORTknJGlJ?IQKw!@IFWMPc{8MK-@ z(q!eg{Znj-l0D<>B)7qMTtA`-zhfBao;S86#I`S{97ZCv5~FlacX~y9q@&7DT|f33 z^Zmq@9(|63i`!xA&%yCKlu7_U%=Z-IEmDfs`s8S+%NlqLJ%YH_j<&lvV!xn-7HC{& zl-hbs=h4J>Np6qUQcfPiRGcnT;Vo7@FK76I1D-W3jqc);t^JT06v zY4^*k*Zt_B35cwX?oR@O)g%mFW-iBk`lHbMaI-;aBes(xM&cGq=^M*!epyLV;dgdm zbKZlQo$P@nwQCXl89;2<1r3KvLV^z85kB%xq&A7t?*lDOe1HSO1Cn6mmfVYV) z8IqJ>#cUtOa?AZzreEGhT0~2B%H{$$Uzm~$-Ag2KKyP)dM2NrOPlxtA5vQuE$iVke zWsg5YyXU7x?kaLKoGeo6uGoFuL@{e+6}Ca!UjXJPm?!Fu?UeI;I8vEtm=asB*l63! z|8#WhOtg%eoCzb;AhN8Iyyrd6@Mb@OsgNBv3hrrO)U3B)zK&8Tr|0v_7h}=AmRc}= z1q6A5?f_#MjD=>3-bqsSrQzEzKkUSb?8EWbJW$ajV z5%7Qw4F&H|Df)>aTF^o-^z}v1@w2zIACE1$2=@6oi+QMgIVlrobXsWie>GiGU|ekz z4x3Gr#%gTaw%OQLV_S`F+iC0#8mF;sG&VMN{{1fgz1@p*&b;%^JTvpm%#MjNL%2uT z?xAb8nX3w`ps8e?D%L~}p_^^x*!2K=oaB2FL33R=f`LJv?+Km*=)6|pX{*sT6PG|< z--apR^KX1ad@L#D3IYktm##Pk7LrcCeSS8L^|!+SZ8vDlZx@~Q4s0^0f$VV^6%{sR z?WM`++UoorOwdZ$a3*5!Z92;`iprQ*IrL^elJrWK^81^~t6YqNfKQ1q=6Md}H&eO`+Kc0hPO%IGI#YvBSoW8jXJ!R@N1nKe z3~5bNRoFo!f+4Wa&ZJc-phzdhqm;xv3^me6=udf6`GYj=;Gs{q%OYa>I_VBa=fyPi)c#(Xo) zMmCPG#UDH3TJ;sQLa*fMZ9f8HJRa_EZx2L8FfGPoGiBs7g`V&I z-d54{H9tEg|q-KR6z2qH8}KKxw}VJ-r^Xe>riE$hzvvtvZI;x^=-&FEpr#FJlPwE<1%ie_~ud2ig$Tw z|Ms!{nG&p<4A!77JN-};TLr+uD^X5qL0K*pEBg74zlNj3yahrON~``Fn{Kt4Cdb~< z4sQTcYtb5c&*SH3%3&bO!|!3nF>~?|VhY-Xusqa{z1(^JCc1Cf!-M0oyb{LCho0T{ z^QIU}z}wTp3D{ly%d63bHG?(0tdW|Z;JZNDXHW}(98H95^YM1%?T9&J*@Rg8<9(c| z?6p_HK>Y9@?sDX2NO%=|DX~1uOW^O9AQL_6%muYr`tG_*ml@Vj%I-BWIq>kD) z3h>X&0Fw-SOPXDoEi`y?GMTq4_%adAN``JfPV`=M)*ankDA-s`68B8yBbfBx=ilN3 z-e}-jexvRByc%VI{Wl+3;8kZp+Snms-U@!aeWuJg%=P;`MQ1>5f_`fzOJ)sc_s2Z? zLd!!v2aAaeNExHAF!#jwpe{gIb(%T6m4bm+iFhRycaYCA%Ii~}u?~M?ps&rdeRg^? zGcVC9E^o55-7>?{!!8S(RRSQ`LzkKCrQY1^=5j7e)6rUrc76iRRg9trA}URR8RM?S z!Za1-_C{X_0-m0OQ|=UJHhv;MSmos&$lLRDLw@+~Wa_`2&fAt$2BnPTan@_6FUBEU zs`^Z`+y4ziB@}zHXXZ7sshBs2P%oV z@=>L1KB+lkFE(` zfqAgTNqXMVtk1xPnlem@7MLq`ruwineK|fQDB0Jcnm*r@U!NiWrts}fK7%I%RnFIw z_+V0?+1-__w4}2z*6HqCF;2Kn6-C%Kfol&-#@|aI)Q!N5TnhcN)lmaX&0Fo^Nknf? zeLGb{ies!b8wzFQal(WO>ePdOxZgDl0KpG3yqlGY?{p1Fe$;@4y?N5Gz~$y#SrE2a zG203V>z$k(slDTl!&-2DQ-S|3GyBxW!000<3KQyPmov>!Y-$vvZ`Ht^iS@Mr?Em(f zI0dKG!C(KXG0ovNIr zF=uwBm4hU9ewbZ(e9)XuOk7-NJzM6{gWXPWG=;ppe9@ZiKBnd#A;!oNHfQ^F_2Q7 zBV$jLp^v?B*y6e|`|(Hw^3L`aPq2a|F&U@lEQcOJjIC1SZnn@{#9Jk0_w_=YL>Nq9 zUTul^7trPJ_LOA~FtG?MWkbifdm4RK$;kXd)1IOkxV0GEHM%3+yFQs2v%sxr zmOj78*4trO>-}LTWqAo4s1rC4 z_VgbiISfy(8lNOP^e@he>zJ@R_+E5~ONAuiU$!3O2Pk2;lu_N(tC70G9=U8Q2wiq&cJg$f6nf{5ZmDHt#9F#tQ(ecx;pWb~vz3kb zH;{@JCKdjC0;=kKxl`oNvCpWuQi|Q5O!kUVkT(WuwK)Ql1o-CQLGBbYv#nNPGfGyIOGBi*e&D z4;f9-*Q)QyUyw>9z!QcF1ush|2OTf1 zF}vQye3J}=4IPPPNVr6=z~k8BQmAii)~(LYDXL1au$h=zh8S|wbn8@Ca#5vbfr{4I zyxi%AlOGe}z8m_N-k%?Nj4&_WH^3{uk*yd{s7@@)r$gz-j-S2XJLS5?rx~)yAH8b3{SF~Z24jF_ z(mvk_QB-7W(-u{ig$D7$=SSru|GC=3Hd!E))54azO_cMtP=tcrLj>YAISEPD`7Z9C zj+eF+O)<}UWYEsX?UExSlH`LWrAuXfUiX%NqntH70EzUV%*B3aa8}ye1Y;FbVS&Rf zL4T{arP=dM;EGYuiiKnW_z2p3oC3Y&#Yns|fp7Ih#GaN0jnp(|LK2RGTETLV3qB(6 z8}vKaSPhLFbAu0%r$QI}1t6qKwmwX=z<7;qkpRUrK4ux3u`(~j)R!+nLSHTd*xeiokV z@CDr2D4}Db_OEt2S8L!AkJ43{&lNSYEfS^)QO+d$t*i2Q0F$-?MW*&OP_WS@Z6mfj z>pi)%r6a!{xZ3j+o1*)Aw?~AOXzd1frB^rQhqEc!ZV$Bg>saHhbGx^v5a_A^9{%{G zoP#m)^Wq7AZ3^)E6#aYjln3kSY98+2L<9-n1of#pAs_)&vhfE$2~2~Cf!-N@aZzpL zY$OfilIv~%mfD6rt1R;|1{$d-x1n!r-wx{9pO?`p+udisY^S{S=~EtDeWslx`Ot-l4W30$#pI zf!8MdIXd#9s+~@|vRUd>X67+jx#e%MF~_T{0k<|Co2a7N=V?VV+JPn4Q>~#3bh~#c zZHxQ7AG-B?eRgUuK+B#KJY}r4E-CU$5cm#i#J`IW%k%~&k zBIYnLEllU`KLHfYQkmIo4sG4Pk2;|aggr5O`7vq2A=%0u*eVm`>UZIHs0|z{z>7a^ zZ_!|$2h}^+uzo&8qa!L!)LW{uk1;H{`V%segF9IEU6HPG7!FgZTK;)Q$4@V%0Jb{R zh6bKs#NOXsP> z!&vb^^Y*olfRdLrrHQBXm)~e%1u%L%mEn9`erSCVG5{HylS;~^usm%i(Mi!V9St2- z-bB3DH@66?D>63n-(NPb3!Y*Br@I=%h9vfHl9W{fxJB)OhhCkmx}tV8Y@u9 zQ`>gK7U2}Q-SYM3=<@-qd&{6?IE?WpdIw1$Tp}t-=Q9Y_xl+f|{*f|=z<%PV9)8Tz zvo{Fz>oYYbR3t3Xgf6hHgs9CUI(DoIt=_Css3HU=iBb2F{l;n#13?A`w7#R|P4O3HRUz3GQL&!EoB zoEARH1#ESP{j=?lU&kweq<&xQl)8zwLqZ-YRUfA5b46X|;z;<119=H5flUEv zno$}X5@ObvyK6l26SuEEY`dPXCh(>%CuJS4Vbs+Z2me|;H*)Y%L{W%N~e*48XbAXE5E|fiI+{6bV>?`}eTx-(hIY1+HjieAiR8($4G& zbJsQAFLAqS9iT~Q0M5&bS+zPWvtXn3fjzrMad2i<&hALNFPbUYQ}D9kKU?F;w;M2f zVCQIiq6)Q!u5DP)+b-P)I7IoGmWUDw0I(W9Ie<=)6fY4kK zH2k9z87F5{@~XLfd@N|{x7UC~NCL`^&^E|U2{3$oD(mh=hQKc@VbM4xP3u_jEoM@f>p)})e9_ke20JV=|Av|p7^ z*Wh`3Bwz#1t8#D@B9dFMZ z?n>6PBQF4tG%Njs!ZQ;KvCu%`+NX@8(rR2oleL}gqo#}IGA_2HTEeui&tUk=-tn%yqE+tZA0=7mD4WE&-na#TPX-|*sBa4gA6$~{ zWVt0G$}cJI02j~*^t;$S9!!wpj4FpeYA3Q77C1e2fL?IW7j{Ov`nSiWp67#>nD2HW z!RSM|;q`~PBIOU}9L7yWNRP%V-Y8bUf|ezrrE$A6RZrhw=90@^l_X&0j$KGLc35-n z3U1XQ|2c<7^y`J^gayLs0M5p)x)2-N_~MNXqI}kBCa#2R8xhN_an4wUnXPR~mD@$h zfD{^!Wv0c#*+|4U5pM28Lyh6PJ4A`pZ_N)#O?ImEjFfvpkJ?};i$)ao`!`?uO;x=% zLy8*LJO{go1vmpT-hAfyhqr-^A&v}Nj@!K=0eW2p)NOva2R7CWoZyBEET@*XJa7{4 zIyZWtKozEfg#>Y;JVlKY0_?(NmEE8<;Q6?~gRNmyWZ(SwS*m^*EH_f0LiGL{!BHh6 zdvINL$yZWPU}NTw+Pw_MC+c1vZafbh+@t4Lk;QNb2+3Zqd|C(eposr~X*tz>gCCYs z4kBePu^m*&L~e?A_^7|9;#Vm`h!iEt54*o%$+STu8zr(ya`_COxosFlq@^^ zh|PejZ8}@M)oLrbxC)Q|aO&Pbtxt9Nd=t&9vZlJzNxQ*|jnd7Tc`#CzK5*{HiiNE@ z7n?UU$9K1Kzv7#&0mAt$=oIu{fER1Nx?A%Ca*?~(h{<~+TMu}C2`I!ArzN89twX=mQwC;VU zu9yqg%I3oCsP5gNmeX}Q-)7a{@0s3|rSl%AD{c>}5 zt-J5Aw=I`UOqU%#h}=IPxNz|EcjtRv8T1^Y6petZPfJR1*TDRof#vaU*dAQ|drBXf zhcb?caazjRqup`pE;3qA@?hYA*Iy6biJ*U@f&b7Ip-Vz<`F}3Jc>Wv05Oy~^6UJi@ z8cv{|b%i0o%!jPyQ0Fe&eJ!B)(KGgb>Q6REy0?B$2165h;`s=rs%?}~Pk_bjT!er~ zq=sqPg5PFB$5k5I54zK(>{pGI6My#i@Ws*4q9_}!Nvy38a=hYXbZ{7Rt1ZMe{AKUt z>~CsNC6A>#0#V-N-}B?4ho=MyNtm5(`;c%LaHL5AW|T1BezZfO?G}UMC_PstQ2?5# z?`*cbuOn~v+o8W;s|Px7uBev_^7iY~SA)x1{`~J!+au&eIiscKxSSGjE}T^nhQ3)+ z;`Kt?Z^g^c(%!EV96V$SiBOGth zH|%G7Wc~iYk05G9(-xv7VF|NbEfUUIN2X_5bQ}GFTIyn+ya=Z z8f=R$H=9ii!i@`G&B<9K|H}URNq^5zG&}|R0ws0`S?%?^0Ym?bx&$^_EC~t0&Td>y zSD$@o%LM0)6lD>oMv!@Aw*p{)f{rSK!G=@f38P2Cc9h2W3*+rmf4b)*_F{w9JSJDVfKk{(cy~ln?($|~roxuSv z>x|S`ld^GO33*uF@e-V{kdO~bC4s}`fdPziTJ>*sIds>%W`rhL#gb6dTv8k7O>|URk8HM$8 zByV|XTzoAa`-4Up=@&5Ec2Df=ilVDMRVg`!*{6Jr&iVt+ zr(WYwXozY2#S#cp-rf}+KZQLr%P}AnaQ_YWPx#NX^U@B7i1@mcqy!wXm>#Mq(g*~Q z`Qwrrqb4T{znKRyAwKS*xCZz= z>1~VQI`pi^bpTX&dhxtn70c9{=oxhKw%)J@J|xVwY}=>Zu3Ukng#n0s`TaVn$mpgI z+N0MHEo&+mN``mv-;c@A8ZEkD5&vu#SSjk!3woNK4b@{-1%0oW&j*^ z@`+jV(uYU>g@zJF;zxD*gQ(@EstQ+C0X|xSC^dq2Cb*{ZAIRUB6GfvccId%gaX$?d zYWaYIiY0BO4y~#>4-S2UX8Q)>_N5`9_;WnH48N!oh=D6OlYZN><_8>8n2Wa)c`>k= z0(*boq$A^Z-fv3_)?iHvTH}*7WdVptlpOuY@bcL;zDH^_GREDV59f?qJh@6PE_ejc z#pIVOvMzpP(xU_WFq%g+8`)Hgg04ldQzIDpv1|qx`H<2=elV&RkRx`O!K_P98#0$ z=&EMe%SJ9BGkR(yIS)FGTY7NS*HuAhH4P`QSUEmBIWqmxzTd(boEbrl9*jy!y6hJ5 zzcXeO>FXW{e<@t10n=s>K$K);fz?U8l$7V9EG!&D+5$@-&a1hyg>@NLvMOg`rHT;Z#X#`AI_e<_&N78Re1lPt z;>zuoFIUP`WJ@N)NX+q^O)%CsLrzgm-vRL{1zaY)ciP}T*4E={TFlhd4X|6`cXonv z@Q2G7fHiy?V!v!T@dPdiwCp%t`w~Y$%GFIxDQXM1vj?ocUA_^3yM8c3tnW@b3B7oP zrfcXa#7}J7B=_Lyz+`M4E)wbf@A4*WE-B#AokEZ@Cnw8&Na`YxuM~{&)XA{vbXL)b z;=;r6s2C4!r$%j6l1*3B&=ia%1eOy0h3RqN*z_$u`$go zEcP7V0{1n@f` z=e8;xGMguoOTao6HHR|!-5WB$hMVFM>DG^KFK!NpV@JzG!JBSS9-my2RTV%Lhg0Pl z@3;b+8SOBbd4e1rzl@)6d`ybs%E_@@dVkUNsKT;(At{cQfeaDwzN@h#I}iS9bH;%f znLQgmT!eIA{NT0{3ssxXRJtiO%O8t>-gRq$@@p_i&hle2Skc_{=Em5}#G4RLs`xJo37ze5-BU64P|RdS|APGsoqp} zS{jn~u;oSEOv^f8_zorm-+_+4C6EwYZv3IiATV+>vlWX6ph5K(=%2relQVF3#s^lx zioGzpDo3v9SSRk0AxtfYN|ISxrU5OlZRpevbcoM(Z5t z=nNY?`eFIa7c(Rr+u8G9!~GY3eC^Z&!o?P8dT$>%FyF~nSaTc2G#}Q zPRRH6SpS>8n))Cs>qsZ+uauQ9-o3u*8M+>0-#9o!YJi0LH!bRTAy#rf>BOK;ClI6l z?o#h_k%jaw=}ezLlL4qS<)=Sz`}?fAdlG+LBeYCAUWK6m7Q<>PmI&#lxPI2M&V78Y zsQElg4ofu(>1y^DdwP<&^46|T)ls6MP*Uxm(~JH#Tx{eZM6BA?lCX0?SA(GaJR6D%*lk3q6+z7^b1eXx|ueu>9qD> z-Mpp0Ib=WaCQ|`2VAdNsDgVMhh0VqsoX2zO!ta6v=WYO0mL)HaZ+|Y+!TKH*#AuE; zXClG9Er`A^!19O&pNrH!pz~*_cu;cVDNVr6;~rI8*=rnyC>C!dlP07Cd2aP0jt!9n zrl0@sd4)$}F?7ZQfArLNKzA3#gkOM{U9Dmq34=w51M}Rm5s|RZO94Wxh|{AecIp#K z?D^GycMO1$4ps$6w%BocL>?75uXemLxe+pgH*-!2io%AHi&xx`f+@VaG zc&P0v7&wmG^0ik-KL*&nK^S{5b9DZmIcb5NaDYT?VVQ9F9X$5S)%yobSO$hIK`a=} z{_urD=?;wF5S)HN&HE>f;NAt0+5Engj*XS@9+Jr{N^;|mAa!!kH3Ne z`~Drw(vUSc^6gzT4fVKl)F$eOrdCw^1(Q6=DCiAMUDdo`!AzR7nV`|M8Rmc5=M`jA zjhvPRzv*pTu@{f#QPsqW*NGe=d~x-KO0#6tYPDlP6hIG)-OCy+$cVW^P=CV^!c!&v zx9no%!+rugo^)Wt*_0L8xo%613?H1hWBMc@0sD7+ zgJ%b8`yn#RvP}Qm{6pWlbMx}#y>eCbW3CIWmkvreM5O>o#Gz850O{(FnBmbuLIaaf zA?LwCQ%3qERzsw!e-31jn@hnDsN)mt85cHXxVYoyT@xs2y5Z}&t%R35%90REV^A?2 z`7Oi7x|fe&qp%vmD~QM|FlW(0)uE$nL*VSZJLHnHE|v7Yc?{K`)(o?B<%uRXWbf$M z9ZpwEP{qh^ZOZYdP2t~hCn-odM<0SkC<*1u-p#VgRmhK-@L@=_i6(%=tR#5i_rSaR z+hcT!vxM7Bh(#(Yl&%k1lm~>0gO>6qrKM#<$`J{oq^a_e|0p5I7PcVjwHnJ2qH$&d$@%_WzW90Rn z2nb%B_y^VSdC<=$!N$IOc0$JSO)~BAxB!X+YaiaKX#8^##aJ?p&P=8T3`3FJOi3_? zynfJq&Wlm(F_WcScg*kVxdZh${h-DHYg@(I4}RaoxcKK7xZWH$G;ro%KH5-c$vG1c zr9}=SY6)@m>$NH(1;E8Lu<=rslPB8dO*%Oqky=vdgiUB+S^NDfKe7F{Dj2PGTxQ#? zj@<)RaGG#!G04$LDqxe|het1by~ep$2U%nA%oCi0#rJUt7!J8J3n zf)}v~NsPRcR*QxD>dl2-YT&NC|MoBXB|5~SKphCG>p;C^V3c?b5kCHO#xQ0kw!A`X zRu(hO+?Zm$T$*-x+~iBGYCyV15?*a~@%J)-Sn7`khbJ}V8E4b;I=Vq9P<}Tpn7-QD zKZb(hA$a({Nr&{opru^HfOVr!C&^r?Ayzn2Mq3l4vt%~(pYu?QEhQzIPp&K4?p)sT zY(*tDW@gM})bM--&mcyC9TXZ6JX68IA^1{!(jZ%20{ZDlHGfe$)iv+I4lbz{-QI|S z5WYw>AR9F3w$gNqM4TmRq(yFy6nuB{{yI2J6oWMWwxtkvFXv~^3<Ge#14~A zMU~W-k2@F?6tX|KqkhK=q<=A5xo7VmH3tFN*$GLr+Nup>l)9px$@8cT|CN#y=J_~+6Z`@XSeF+WN;Mcuvk3Z+h zv&CA7WO)^Q;Rjl=vZF!^Qc3k-_ieRHy z1pHin%nX4k6yKhox?!eCq+*8%`(no&%k*q`tkf@b*FGPrj6-A z&Odskmi_z1g7tknG{(z^0B&y6l~??)a z{p`>2z?~1&WVRQ8&_FnplQJH}mug#?MKdM<1EJH`ggIENoCzR)5XAPb4ySe;i6^C)(ROs&{K8)e}&L>OZHUOS3sd z(voYsP%LK~mvb>56+%AzK9L?r7OJ&CblQ220lvNzJm`a) z2yO*F`dW9jUL*J<6ib~hT9sc>qJpfBlDU0B$TJk?Q~6}!FXsWJAR zP!b~Wkvd#p@(EFu0w5!I$aj~49ylmnSaADo!1cQHnSyzB-AZYWlf!A;Bh{xqy@zJ7 zde-wVw)C%=lOIwXv$HcZT9hiJ;5LRY$pR|Btp6^#$5s%15VTBD-ktc&4E|=aa`)p4 zK^b`nJ3uaneTbkFrO&C6hL2;UHu!j``9{Kgln2DK*5Af9u{Wx#d^l!43xPu?R|90^ z89iKl3KN`*INgf3wH1emLoR>&Cak!H(W&YHk^POrX_;PXLJDZ{KaK;GQ zVYeJ+g%V9^UuG$F#wMW6Tlz<9!z^VL!I@yyf%`;3%~UNZs(UMy(b!VIAUm{yi(kFp zbJ$M*Zl8EjKYM~(z_SzHb8m+imUy3fE^=30@R!}fdt5qvEPnM#{z7PzBOg>Kp-(C! zmuocVO{36_L|acx4sXNnDW^^4A3&~sgY_TLRjC*YrmN6Wrl3hT9o8sm#2imFWhf0T zYl}jIPlS?zBzFG=VR7c8MCc8{xKiIkrzMVbdqD*?(8z)awC#`y1`ftMi%z#v_S9$ zuguG+gE6OljrU>kuWCJn16!&~L0t{z3}~D2(w4M=)pn%vT-1$kiL3hG2Sa8T^T1S5 zlz2J0?Vqp_EaHy@qEtiZO8F;nvarn=*_*xpK%V@!1yiU*0nqbvlJ!>W8||WAU6h|q zME}CzM);pE%+T})|B?MV7zIruc1+DMTq|6^a{UW-<*$s>*0e-@G%kRfC=B~CGMrWG{LJbLI zpTz+oVUlwJH|alV#W==w*5(yH3_p>AP`KhR0+YCz(ZhZkf0ex_Nzmg8lyXTv9^eLr zHXXaxN2siP!~-r@8cNcY)Zs7xgtzs;S=q~R7N)5x_hZ<*UZ1uLfS-m6(>sI_-znO* zrz-vW=Kh5gs#pxe{{cFP&mC>^QzGS=gH~v(7ba)0dOapW1deHXox&0~J3$SX057ix z-y^!h>R-EJwk!c?6+JR-%}fOe-86xi_;|xtpKq@-=R)f9tI*otX?ua6tO(y-+gv`K~j&g@;- zCNDm;kd?$h+Bh?>1&JXt^S|8dZb=0Vu)Z9OUo5FebkA6ESFq zzF5peDua*R5VjAnQ~O>HY(vm@V*}Mj_p-$zJ&@RNnM~*9G{`VB(4j2`mMuwaYwhU! zL`>(9Z~W*NS4y#gIg4%5wW;wf*){DXR=>}pLz9`8b zQ5HeRt1(djiMF)#%GBpdp%$yR5O|n_Ym1-KG)LqT+k_#6+!&y?zh)Juxf}a=1BDx$ zog>Z9f+Za2cxJ!LCdI<#o{|BTQ8_eXa!1V<6urxo!e*TILu60yC`0!|YMhkLD0&)0V0J6Dr`&Qw_e}DCA}#&& zi8H$QJ|CHx5YrhkUb5G_R=_-8NpCir2CoL?ck>+0{*fL-Yo-f&4dTyRL%kFfZo9WH z@~9 zf1YkUEpEt2r5lF-Guh3w0JMnoU#`!r<3c9&4{y?yEqhm!l!<&l%h7BWIft&05XjlW zIt_FA`LP8TA-(+CmU~RkF-j@WI+GZ0FmJZ!2@FY@7wp^y?->egke!cXIuqKa%jfyK z4(Y(A<&3ODj%+D9QB35lcvAl!Xv29T%r1hZZ3lAKv@Y4_^1G{b(j9g_>HV=P3Jm5X zD?69W$Fn61feoPLLi=rl6l^D+i30Mkr!J)bcoW$7$Sr983pCSkI>85DLuuM?Khc1A zjgf-gWHwpAWiV);!W0Y19NW zi$;g?&UoK@+AH;c^C;4koDuaeJ2%_*34aR^f*$0b4V+GVIoC{T)GED%bc%e779!X3 zft%fWO;1s_5|r9W7pkp-{m@ZK4}?SA2)B&rn4VydS5mN|HdNef8IJ@kG?Mp1p_L=^NIglA*6QH z0v`5tSE4N=2|Zn97)PPnYSEb&G#i}W7*+EFf6Jf5rVA&vNX$1v$^1@+vuGq1tM^B+ zmXkJ}uU-u~{2igxsqSxoAR5nU#=>_cp`)qhe=)KLqK{=3$IWsy{p+GgfAK0c`o5q4 z13UR;P89}@uwuhIo;K9*9mdL@!uz^mzY`&M-I8}%xiwHq9IQ4)PVhh{6&2kk7G>sN zB@=0Olp8>z`Gu&E*=lSq!AHj0M^SS_SM`!of@C{MmG7=5oz6!Op8Rr>gTh8LAMq9f zlm~w754oC=hCZk$tnq%(O@*umJfuNq&k1wuOz4;G$l49opd=sI^I9RA1-pNcGjzoR zM@m%LK(*xBmasDMQ#@uHPU2Myd8wmnuH;Izo`C9I)_-3!rWDFuMqj3k95(MqeE3^o zhagy+E=;fv@cedCv6Eh<%K|63KA^I6XwiLh3=_6MIkHQ9@bx4Il z0RdUQM5PI8&~q8NUi2$%-{6C^lL4@fcrBO^J9p zL$n*dF3)!ruvQQ6RS+&S95cCBp^*ssh3qygClV9i&zO#ktx~+0v(+FnvwUqIjrXWs zkI??E^t4J+1_Z;f*3jU)^E+qQs zGiWdf*{~|{ScSJ{QH zGYJwuTzz3Yo>k22c0itKG2C#9BzjpExDcWEp_&14ymGFOBJxLNr{8ASn3`A#m)%I& zttf;cAYj*I#6{E+gGM>2u%O+3jVt{dl4NGMhyZ4!xle>K{M-13#|_Ihqs#GId9@z% zb&C&1_tD6wV_fL22|xZfWqA;As zea+Rq?mbuIwuDLyk#ffisT4GDdeK-nDM+8VyJ$OUnu}EFA!+ zJp+QH4c>XE+Sj0nv;en6{Gs1T^Ka)8BW^aowrHDU!+v99svjmLqV_TUAuG zUbLiDk&j^VO3tJ2@qZF0DEPf4$(l)Ss(sn8M>asUC9WRnei5FAsg6@<$#{s!57icE za6V%$|5~ZbU(ya1-bOEn$uB3=QFijKw;`0C+pieTsXdG+wp(!mpM*PGuk`|(Z6|S@ zV35Zr{=?Gg8Go+PWVMtPQg(P-SWcpZMXug0o~d<{^biXkGq5eibJew4hSPcp(%$#( z^idUE+LROZOpQYD(LlYHhO)Q%TpZ4unIIQq+jlg5l|RqBZ|GQ<=}?xAkWGWTAdG_y9#|O76!Tk zl8*Cnay(hXFki+*@XWPW$}eZyj0i8F;}sNMx6q$g?`|vzGb$w7^U4za)T54361&m* zsXb}5;#TtOvef%v|4#F9_&g>D4zu#klqHJUGadY}Pc|YHb%`dNkkNW$;|ojxOPfxr zu|IIr>!FEAhEQzRT~srZExqWiVSW!n^&MUSuWad<$SW1P0YN2`-X@5TeI4rB9xNAC zPJ3h-_qsEqPInrdmW|{+aQUb(8#daB3d%Gy%V`HUQ4AESz83+Ra003E~U!Rd7G=Bh@P)t-s0000m@3%1Tw=(azG4HrB@3=AV zxH0dzFz>lA@3%1TuQBhrG4HrC@3%1Wxias#GVi!B@3=7UxG?XzFzUK7@4Yeax-jp$ zFz>iA@3%1TwlM6sFzmK4@4qnbxias#G4Ho9@47JUwlMFwFz>Z7_q{OhxH0d!Fn{m6 zGVi%C@3t`Ux-jp!G4HuB@3}JXw=nOyFzvT6>$mwI#3%p&05fz_PE!CNV2`ig|G$4g z5bw``U!QQlk6$n!KX0F)a9~gnkC5*$aIY{QZ_iJUP;cL_P++fsK=r+$`~Uz1u}MTh zRCodG+GUQzFc1ac=d?3+>@qGh?|P`)0F)WT`71Mf@iKzJ@J2NSk_)qtrt}QpISF9(C zG5hdM$86v)Bd8^d`RNyt?NVEbE_H4*QA|eV$KwLE?FbtzMFSIEg2^4jYx8 z?Zb&17SwmUvPrmnU$*`0;`oS5KUoYT?8yoxlJAGtq6n=%@uCrO3A_)@kdHg!T~dJf zcKK3>$j*(3HyF+%z9)xC7$#oub~KOpRwlD~7#$sjFrIv~WFPFoF#!Mo2*4nH?H|}0 zJCpGS6n_Z1ov3f`ERZaVK`07c1F`wq?(W|E-`hC9Q!;L+e!a7T`y>Lnf#~kSB2$3na4U_+xF5;;;6 zD8Jr3cSx^bzbs$f8G6h{BTgjIA(K2A`-UKyfPcGa0JlXJ=PEpESUHV5>t%{Z~u(-wk7SmptFaT2au0Hlcq!zowpvk$pyT z!nSE8U+AmAZ)+YH@cZgz?}IATflIY9o|$)CSAnr>j`nG7Z25wtGosJP$nr!_LZ4N% zPwQIHOIsnIe|i!j8>HDzqgC|F+Y%-ZgMXLj*Jg1NzbnHokr}tsF{8HUdh)z-JtRkTAns^J*X3RvcBvK(ikf*j9O?TkEg=)c?55i zt#2eaeeil;yH99&q6fyV2$dVzrzL9WTU`5wHbNElj=7YCp?tR@Kp6A^2dfeCZCYqbw;pXJ$1ONcs_wE{4(jy80 zV6b3krLX)D)m8Ms5pdTo5CGs6`8yfzS>F6bPcj5r-hlwn->$6DH_RS-rg{KCZ3@@1 z3kv`Mti5NTcR!SYO0sx9c3ZIbH`1HYJ5(rdruhyc`m5uk1S4O@4Wbyhdv`kK+})b9{EJrSzS5{>vl?D%r31Er&kTohzuwa6VHh zG}bT5t>ZzMXRGOaYLhls_ROWQBdT4QR#ARi%F?^m4+i@st^jP(RxfE5SaK86Q1H3k zDNF)6R2!C6L+$7D4~j#^JMSHR`cPkNaA0ybyUob(96xP;Gcx9(wQ+j~ek0-uFS*`Ta!q#PAT?x;uCm*#cL47qaM5VsHl zX+CK$jb-_@1GUdC;8-5{S1fMb0wIjkSW;PJAM9gu+U`0W%2%YE$HhA5_*cc_OW5`S1 zkjYHwW+?x=m`&Si*Qc-BXo|ZNJ{kssOvVl$yk37|UF6p%|25sW3GN#a8n8T|5{u@zy8nW4$22jyy2j~Y)Q)V* zxB15NI9At+XeWieJvC3aHH3yjAJswXE+xB!ZF8t)zDA@7zB#19bmR}2JP+<@r!|3Z zHxe4AJR9ftUw8i4M2?6+W6`%VG-tV};60=A{+w5L!<3U}!D;WS>G!|AtixoR!`I{2 z59(L3-k+;Nk@{?7(RwS~-N|JVyO;9qT*GJ~8LrR0vFuJU+osY?whlJo?qPY<&mL;X zu%sV4VleKV{owio!Z_HDF|0~`K3_@APB4b3RQa(%A!^Pse%5EWP*Mz`_KFCOjP}4E zD<6?M&Hi1*(%^Y3-PX+i5y61j*(|{hOrL#~Am2@vRhSK z_`4lBf~rVgElwxdHycr!s^T-?QnxztZu|zw`a4@~*;lL~v_bbXzyFUS985G76?3fi zb8cE97rU^NVHowku3;k1uxV|L*IY5&1zI|t_k3D6zw3hO^IZ>k@Fer;@6_?Z5;Mb_ zFs@IozeaW%zbNrq5Qeg_S`PmGB_$~f^aJTXwCPgLX!+G<(G>x;e{DlSi~qP7pB-Ux zkBlh1b9`oXf)t@p$sfRKcfJ7E>N%St-Lb1Xgb7*vJ#mf1-=sg%z30y3M9dfO-UQ;+ z?Rr;oa+9d;1?|V-nt#CFT-w0TkE(u7L+i|@8I#>p)dThXAPoln+N-FT?$~*a*{C2SOz$+wez}J>XQG&H&zaJ zb77=r`F6NGBqYi}2YIbeB%-&wCpq+k-N1dy25GCE8H`rJAEUNudzG+f6FANpqa$DR|s} zI`EI^!|ZGDJa5(&-sTG-{vwR`g=)^^3uh!6OUn#el3pNxzXn_~e=l3K@QQ6k%`dRO z2mge}9Ii#szk1d;^D8bael*1RShzDmfh+mUU|^Y>r@U&Az_MBEj_ zV;%yvJLuJO0JX^+8&KOyJ>LL|2M@l!HqbbYL8WYeaM<*#_gea%)!SpsoAb!jEmqk z8cc*SBU8mA0K_OM3KyRblr!SPJhj{P$W!l0KgZ>rO5tp;}OG`tJ{v-k}eMR8f z5mUKq3(6cX~I-6r`+RQ;rMzJdQT!>4613Ely&4@ zaXZnC+yd|ukE_*^L247;&VdbpE$V{2lN>;4^f^I9R~x?F&gq?wEX_lN|Kg5}lF8N_6Q ztRTC2VYn7)z*+>^x<`E_cbS?zIDjPg6mdR`Gd)d^6UB4l-B-?%=LKEK;EynitnZCTm3+-0R(iV^EHstXF}(+rbGQ+Ks7_ zmv~P;&)cG4MXIUWA5GcHvR(?Kx!cYf(rdG{pV>lnOs{3HoBlc-kaWGGW;M9r!g8WsOp zl6=MXCL3RT_H4L%NZGV{)k)|LP?|N`rULfFjJ)o9Fk>glQZYiu(nMNEj%OeTt-Rwi zxjc;~dCf$JhV?E@^Hf%ZFjv_aQ$|WG$x(5e^pgKJIPvWz%InXFgkykG{N{H1=y^JF z^~7n1%B?0pDhZg+WnZykFPd#3X;zMpG+R90JrTcH$7`Jvu<3OUh2MUk4s7F~BbX-x zi}+|`6CXYCX;~>VZA&^Ze!T#JsXvq9b$+cyLimpd)8XUA>84`%BY9Eme?^{dt;^8v z6TPsp=mUeETV>+)j?2K^>AtBSbZ4QJtGY>UzV3-NLf|w55Us%o{`vx%Bo~RcuwyDR zgOIOxa_(j5snLF`HjV2J-qKeNAm&wUc)hs(T-KU>lI5Ef=0n!3w5sKhVKKbm zYxqskM@!;tcA88rTqFIf*gn9Ad$QwOn0n+pQj^#m(S6&?B+yI9<)I60uxfbXhQu>Y zVVABAv-`FUTDhq2n;dxRm&24DhAwJK-D(?- zBm>fG1T{Djxo~nv+L0bgt^tbt}V_1vOwntu&VUm z@Hw|@zO&Zw(0j_`!Z|F~`S0okIn(m&t46dy^^9d}gA?8O`~7>dwyhWH?3V=sH!dco zBST|WrCg%+J|6qfOF(ze*fyuBC%CDn-qzRQJVpi7YAuzaujf79yk!lX%XdC?B-#h& pbK4lC(4ZjIy`fXuq<{3pA03gY==s%Fal~JHbkESt01bH*{eS)o3hn>^ diff --git a/frontend/resources/images/deco-right.png b/frontend/resources/images/deco-right.png index cc108924e5fe9150e0e0aa73c1873531724f2e79..f89dc1490762909ae9ff6c9104c064cb69eb737c 100644 GIT binary patch delta 1289 zcmX9-dr(qY7{B>0G_)}s(lLBxFY^NSaP48Ht!61p&iIzQ3Cpe~5-MS41UqVOD)H!kr+jB)}Rx+<}KRAS_$ONQq!IvJ+r60zg;=S_lZ}MF^Ji zEz(gVQ$$EWMsL-iS+#0{a1cTV_y%#d0K6pv0jo{83ta3XaFJr66I|>-;#ZTt=2?tD z^H;qFzx9`N0S`tk3r zH|I+5gI5VT72cxVo0CW7v$K~r8P2Ef&HLf{RFY%gNLW=gS~OU;vQiT5Mm-aAtHx!Q z=5??th!$ABZP64(8&50z@0^LOYrR8(3%q3?d}Q>#jt!m~hO~9exDnk3-@MSX5q%ZK zJD@0vNavciJ$7}o4sktd5U@HKg=k(2xw7v0TR)Z9=^gvLwxZW+mOlN*5z*NrJW2DA z7!yGatjhnkBEGJ0+?!oE&BEH4D`yGm!AsS9r)Hdu|8RVXHSKaCJzcwA-|dcTuW45- z?TJ6kEBEM~0O}gWOd%TC&;49b7mzwoX*=X#17W=wZbQ%%dP{Cua4t#9UY8sKBljw7PFe1Z)iPB zr+7nTgD=}l-oN0F#1qR?9n5mqpUQ^P3_(cOk8N$S2)ksJ?182>aamj1qIm&rC~6aH z#y12j-_7O?sTfvXcBjizal|Xc(o`EW=Mkk{9K{ZU=#l4o5CO_#+L!GzdxGfVfQPIf zQQE}$2<>!fDz3ejNI7L6Wu90HBdqfBI&NgA;IKCpa^}@dAK(4tn_v*jnw1% z`9wmo?XUYBLjFyelSq8jlh;SQ&R{X~fQQr`*&$ttMGf7f6Y#RC~7t*sfsWp<<8{a|(oTgb7e%IQ46pYr;<#iw8DMRm*DXViCVmg8~*l9QkFN;pX(wk$5-L09~3(aS8Wl{bDC4AdI42!+d#ALE_j8@;O|IjpzX&1t?8&uFSp1Ofq5zh_~sxgRIk|y ddczdJfJpExW_=zoQ~z!dt^2{{M67Y0v-w delta 3270 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 diff --git a/frontend/resources/images/email/logo-instagram.png b/frontend/resources/images/email/logo-instagram.png index c0ba9bb7d86e53b468b8cf573d462ea3babb557a..3b94e53a29bfe998f5872d6c6d393b7f1a2af8e5 100644 GIT binary patch delta 618 zcmV-w0+s#qBaaA>BeTH_k^z4Sa7bBm004Ar004Ar0Y!jsyY_=SG`PEzctwXi$F0E{yuzWzq3>JVT}tHK-T&PDx!cJ+IeRl-v02R~Z=>Y5 z#|cEusbDzfS`SNx3gNbjW&N(juYP^nP86P{Fv*% z!RU-bew=p5_4XOiXaXn~Nw$HZU>MkLg41R~+BL1FuqdX=RiKReIJ9nc){mA)VZCiA zcJjy?6_wx~7;D?djfyuEj;WLnhp30$EHG0KzKrR5gfZV};Sz;UU4IMYn-J-7{e>|v z>I9R-LEmw`pif>`gJS~d;J3unIniwCwCOLiA7>wzfhEL#Dwj~d5^MlROy%Tc`?i8e zKl-P7=+UoZ@WdN)4m<}rpo&QwVyLCQ1pMWbdBGmtEu%}Yg$pIb761SM07*qoM6N<$ Ef;*!s)c^nh delta 4200 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 delta 2698 zcmV;53U&4U1)&&_BYy}7dQ@0+Qek%>aB^>EX>4U6ba`-PAZ2)IW&i+q+O1eymgG7L z{MRaG2?7a$mZRr6cL%fl31ny1^LABrO}W#uWf>y^2`_B&l!5^#UkVUQ3QX>9x z&6OK2EM9;0oGIpWzHT1R=`~>sbC%9Xep-@FmR$<6By*p_8w!5uMPCZ$d9Y=-uln0cgE*-&!=~`EVqqt z@#zDS&y9af{D11h>8TOFeb8Qj`C#O|r|rG2-L+g`(Qp3b8!9`43zb2+A?DVS_F9OGFoX@vU@lPFN=xuMnc3^A-RT;oAab;P#nf zp(Io&Dzg&7js}1lH0PAL0|64@2_+c;QaC6Z`?v9q(pk&Gg?$>i2|x%UOMy*I4PfOg z@E^?vAAf3+B#TH96$?_Ol~i((Qi>K&a!r$F6)mc2TD4iSY+}XK%&N7@H6aH|Emf=4 zT3h4L@Sz4-4eJ|bI``CbmtMMd>$SH5_ZfM}C_{&hI@;u!Cep+#Q>V>3+oG_LDOO&x z%F<=4uD0Q8JMFw>m#y1&-R+6mjp~Qv2dL4F8h;<8e4Rc~!)#D}h#*fV;+O$3&IH8O z5r9LpV-}5aW=GC3iN3vA6vt$lCojb_xn(h#Id-0g*U!M9hK$V${SC)Jim z=YMQtMT72pw5%J3nhm>OV?^wQ5`^p{q(YIxT~~uu7Pb~A3{*0S~?OeqlkALBd1*sL+&N6jLepS~lb#I*=Y9nPqZ7Vys zP2Q~!wd7i0MD!l*W;UkiWg{^6Kz)}6As z`D&9wGJdE|yiogkVR}L7wHk2b-G7NE&O0!&il+^Pcpf|2G(m_b^b&Aej;7o`i{Z_%<0N3lx10)mMU<(+Y8%VbAP4F3wuR1XYPbC zq)zZc=_Cuj91k7VI0yJfmY*BK+ezn<3evA^^u;)I2GQZWZ)w7meU7XN2M5U| zVROpx@Qxa09RJtk(b%tOtamhq0&5EDls!;$Ag>hbC!r225#hOtpx#Sxxjk1W-CauD zYvqcv#YGTY&-pcskAK98dXgqrgb)}SL}xI5$>JLu%lV_*d zl19+CGNK-DRe7-cN9e+DA$!n5cwz6~k$3ppTIM}@hfgT=kT*Oa^UFS*+t7TVtViF_ z`)Pe_2ung=fM&<!ARv8@1+tV@hD}?*X8R(CWT8qbAIa?0>RExboRowZ^w8`)tR< z)_aRs$7&~KpmEu2qiWrYTW_}G1Ro*Dy;rEH%p)2yv^>qL5u_z3Ymil)j7A2Heq@26 zo4{@m0!BtfuT)kgZ=$?|uju<3Lcm!>3u*ZxCDznV)q7K_LBEJe^J6vHk~yG7X<0@+!k%52+Uzaf<=B=S;84{xB&hyIZEjID1w zl%j|L-Tn_`gj2PXbpFe+A(R1s24YJ`L;(K){{a7>y{D4^000SaNLh0L0CZ~r0CZ~s zMSySR00007bV*G`2jm722`d$fBy$D;00Ih0L_t(Y$E}smYtvvD$3Jh9I%;KIJLXNX zI&o=Lx}{d!Z3q7ZFUl-v?V)R9ohyzFyiT2eMK>F@dA&p_ zSrby5FXWJy_xXOG=Y4(&BEm4{m^SnZAe!4BmR>d*k?fSH0@H?`2Tb5@A$PhE)lNjY zRISwy18;!5cl2IBX~8o02NI~(>gPO?O#~aie|7iN1PG}v0TrL^1F4FN(vipnDPRhi z1X{LbuKvBG`HTv{LjWXyQq$BgNVb3reVn^4x-u^lit{ckS8vsi z{7Yo9Sfo^*)qzLAS>izpxYFL;SyM{o*?F&t;vxq)1H4LSCT=Q!fEu-<2ZRg!R7bL7 zt4A~AkAXR0A|~=CaQVga#xv2A

nv>%?JjAGmE>=8prjsCMHHuI8=)#($E(6D~6g zw%NZAM9Klk4dMMssi?vGpz9=3KxPPmG;~M9W|1C4Md@JzlfM5p@HXttz1h_}AWww} ztOM78OF){WGv*3i#Q+xjkS}XO%t$4f1vv_ofvaAL4!kmx!0VoFZvlpFnR~J9WKU!Y zSn;C1Xj|r56gxGlfYaIkbnN(vkHFKN_U9+9W;2rAAF8a3$Ry)1djJ3c07*qoM6N<$ Ef+Z*w(*OVf diff --git a/frontend/resources/images/email/logo-twitter.png b/frontend/resources/images/email/logo-twitter.png index dd73069bfc2ffbd94fc6dfd5559796f32f832dc8..4860be5d82d5e29266b7a28156702288dd6bc0d4 100644 GIT binary patch delta 375 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 Uo)5z4od5s;07*qoM6N<$g2egJoB#j- delta 3724 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 literal 30195 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 lPz~VD|1Wa?*-Y#V-v${uf>ZppF0l diff --git a/frontend/resources/images/form/figma.png b/frontend/resources/images/form/figma.png index 5e3bccb1a7cd4efd2bf505170d9413e6a770bacf..01511465da8101b50edf91ce1697657480a15fb2 100644 GIT binary patch literal 18820 zcmZU5c{r5q7w|J<8(D|43ypZoHnxcD8Wd3o*+!PE86nw6S(3G6sbonZvQ%V}WsoJZ zuOVv`GWLD@?xElJ$M;>=+uJ<%a_+OAbD!rtMH*buVmQWi41ypA9c|5P5CkWY{~)Nr z$P#ZtGX%lHoHR5HbTl;had+GuoLuc8=w52zVyFm~IvyU!E$A47M6dH&qJn~6L%oln~h3n{7k@ZI~l#>1P)%kli`YP7z` zu_)dAE04nD=e3@1(pXk&iicVFqVI@iAQ(Q((HuM&{dwbAq=&>AX4nmDp5L|{jzd&= z_KjQ0cT;C+$AYN~SIetSVc9A=68)te$c~Q;78d=o_DqCf7Ac?gR`#xYY(s*%`2!3%93tB8jDO{~FGJk^I~%$M)qIbo?|j^)Q2h?%LW|Qj z^MoKeR`MSh^gNXVg0$Y~XsQ|AgZ=$URcz7!^7j(zneg}U{<3s|5=QRY$R`&yMz4=C z#I2N@2dULNm-5`&5|ihie(jv{?3u9qcj@u3-v!^gw~YV#8(iA_H2M`y;7*Xm+FN1v z{-QtTWmnP@cIEaCw%UVzXWrS~wKhmSH&bG5kytO1_n}m2zv}JmaTSh({lv`;tyOqX} z&cqgSuOJ>jgAMhD8~e^q=HJej6E|NN-KY;RY2qJ#CZ)JRy|+HHGqG^9>h-~9eBViI zXemT@>m;}2+Hjt$HCJ%3*#5{_aU`i{K+Jb%tiLuEvHknkRG6&>{CYAHoA`I|f{MzS zs5cLDtr3#|1L-W%_pE(BOp|qzR+K)%X$pohJyRSX`~2xVyYb6)MO3OXuau0;@VMbP zuWw_Lp0BU3tv2zoG@R#g$@|&k?Jv9@ZD@-AS`2MKGo-hc{xHTqFQ-D!0vHHAsx%@6BRXl>;W#q+q-_mR_5~MQ8pIl`$+y_j}cC$G_R-w zwi-|WCiIC=#o?rg2M13^JAw_g^=L4TGPn1A;(Un&QSr!*&*y*5P}cIATxuAds#xe_k~7)Q2igJ|)ng_z>c;=gXd#~J&l zuP%JKbBSBsnHsJ7p!kdH%X!B2XZLXt)y+fO?Tl|}i3sU9#g@KrNU2f2D&(>*Y@BhF zzB*pQ?5z58du-^BdUXZo;WM9n<=-NiNd{BnW8Q~C_=t!`C!|<(_+2ypv~NL_rLX11 z?5VWWMYYpA_2H2YbeC`O8hSr!Ib~7Ba|acIizo`0`(0ojN9S}M%u;`mW50E=B=}MZ zm|^xyZyKV}XL4f0BWL5Dp8M;sIU^!KQOmo&(p&uZ?~Xzpr_biijbGP$odUIUe@cWZ zqW>Ov1l1*dj-NdiZD6jeP+z8%@t2;HnS^5|AtdPD#u5>0b=h8Cy<#JxZH#oayd3M* zDiUJ6tk+)Rk>+X*XQwuc)$aZvF(b2 zgTL{!P_zM^ZgXG$PcDGb^%|4fdVvsW5{`1+a*ZJRRh3Y8);~@J#l&9tAXIOqF|K93 z{Slg(R4f!;Y28*A#;X1tgAIMFx%R~HBywr#JsGr%!@xmQ#pKRO-mVfDN|(1`YM2vw z(j>HkQI$ZE9*0*E6HF1pVDpS#ZV798S@10@067jn^`TEY&Z0|)Ld)JwoX;__-?`pN zRm+?GRm^v2qFepG6P7Z&me8$`Gke?zA7sxj}$(YbKOox&YB6Bp`ATc7U zoykcl1lf0Dk~A!hlFB2aWaz4YaxI;`%MXTn$G!g4Q{UqPwexWjkyKHz5gp%0!C_;` zyiuYeJ~1&JAHo%;h;teFG!-dOAd9YjZo4tvH-lu83#IQ79}clOD6g<>c`HzG8cf|B zjmk}@Dc7a6~pVM}#d)>Y5 zqz346XwE%YIn=b`!RTV4hw=AZ$jhHe|Fu5J^6ng}c=psOaYi6=^vCc@EA8Uv(ZsyL z4PsZa26d?7_hO0PofGE;YMdqE`3}oZy7_ov9+pk2fCGd+J?Wl>>zo5mV+$1um}viV zG$K&c?eqPfn#$6+e*+kH-j$t~6SQ1hB;pH=8&25J6I#7))td5Z59)X~9ZoVT2owmS zYadOteek}cSvN00!NBM<)>q*+^E&?eF%Fxl_^$9g*S)q892Ba!xO4sugFpdr(O(pBfWf%;XM5_hX5#B^zZg}ZM?Ckhx?k4D$ww1yei){0r#yV%(L}?*Od_^j zxZ!7~jmrfSZ=3s=qJYOEj&lT{1?7z}WAXE6hxFsnn;0Mi8pa>}E3snww6u(2NO?OX z6(21S1JPzDA)ZK~`|i0;&gS}whsS^}*X>_cS1`qfK4`3c)`(%YI3Weh4JEs&ZgoRJ z==B2_M&41ke7?UBYYG^^v6ifUa2(q2!U0-SbJdkiMTXnBeI6r{{aM%H+v zoh-o`B~JW~r1%i~I~zwbs*L*@+Bog9W>sUhV3uVr81P852R7O?3{2>nv^%6TbIja; zPj|@%JNyz!Fq!YNeY{)2#s?Z?iPApPRo=1F*js zzIVWSO&d$8uI;4JD^|#M0TBQ8j{OxU4efZTP>);tW;e;}!Z1<4Ln$!>QF)>x$H@$O zyP~22NBylQi0)hcB_q&f9YOgG@%Mc2zGj?w2pH&-TaI1u_tKUzmx3FY^|C5}T~2*F zBk_)(>?lF_Tu~3ox?0t|Bb&K^Gnu&1UI7|*3=FifmBC$r9gy;3eL z)PLA1CC~NXc8ogt_~HX|f${5{T-j%%xDVHG_lJk_<#h4)UcTb1$zXek;^Jbw<4KfE z&+G0WkE0>S#rsD?1oMijBsKE+rH5xpl0K;zwD1EJT1<;)Cdp_Te+tS8mps&hotVQt zM!jd0jgOY-3yeo8>H!y{V>WDdIE1F99lt{H_l$m^Zp;Jn;f^zp1v*7Bju~X3$uhD4 zZe-Pas=qRe?ods*y|m0lLkrl^nUox^`H>?tM96-w_us1hYuYkVNG``~pAIg+B*Ri& zQ2F1YrNX0qR}bdNC`cEcjY=m6TvfdoKNU8Xlh~ULzOo>dG4QYEWFdLnYB09nk#Ob_ z1WW~K0UfQDeTs+ikL`#XTIAEK>1eHopLrOY1t^du?cKYhsZB5r=QK&IKS2&txdrVJ zp%SF;ggntgI`S!&YlXD`whXh7^=`2IykNlLG4DmlAWBO`1Va^Td6`LgoEG8ZNcL1N zJ^wIF%buCE>2Vg}LyR+Anl!SYp#?v^<2NT_X;PqZ#(Q`G6nHz89)(Nbao19NbD}Le zzj@udM_wBYL~jSPv9#U{rOs2Rcke$M@~cK34VBmH|J&xMEq}HyI$vSlr|&#@+v*4# zOHgWa^b0TZgU=0QVPkuOZMEem+oE4QEimalJj{ZJCAJwoDfDw<>L35bBp4zcB-JTm z6j$2wJmSfYX1$&9aA^Mjm+z~m=X9GV+HO#j8G2SQ)gwnB@5<8KqvzmbKr1xvDFKO$ z^%_;AUSf#;GSAc_MaHf|7;r8}pyB7lnrt)@@UE`LMg5g;bcaDg>&gpf4%DH{eusr7 z8#+B)svWL#VJ8n&Ju4GamJxj3h+w#$Sig2CrkH$`BWWnsnX1erTvP2^iH-kQ?uzD;P^W@&rmRey3l5fFQf!ip}rw zj)mDwM0JHcvV#T6lyakNYHBJ5Ed7Q6{@`~QBalbl-qX?P$I+_2PGZM^(hz0l0^JW? zlz&^g%KQI$*x3No!e*6Lgyu(18wud6d=8yp;{I8X0azK?FJ+U1wC=OcvEW0e`2V^| z{?MoAjO;y($w4!_;RHF7s5KYs8?(7HkezzTpUN|WxO{q__aG}5y9Xp;IQ169nxNEU zz%rD{YCY%LbD*m|3daoa-A*Q-6?eedRawjKldG_zzsSJ~DES#E?Owg;D#FH2}#;YE8g(L9#p%t@0l)HxHFtR~OEf3{=_-UO$UWvP^jk~91 zKL+keQ3!(MFJp2Jvt3bvbJgCUipHrL+3$22)6)Z7vPRIacPKFO{Od|hUK(UpULTI} zb($GcFIT}*GBy(oUCk4TQz<4;)12lJ0q#*T`~<0AC~9#03V@mtkF9Sf)V(&Zus9B)*L6)!mUn}kfZYX5 zylMuACV3z)D1V%s5`A9m$-!_0D3Jvf@psObu=y)~%zz`Lj>Tq?f-D7jy9FlNzF)cY zx>k3#vrvq8BS6?5%lP@&+P@Q}eqY0$lJUiyfEw8C+`&Z47=e@zXmPTotku#`<_9qO z+RnHkXc=F^VwuUo#X_?-S-nc1Y>KJm%Q7uvGBTC}7>G4Vf*-J%UYyP;5QHz$m)^R@ zpAMF+CSc@nu(;vtyY(kNmXgEfB6{Zdt&zzl;2A?Ce)F2Av2;C#quz0VibG&EIbTK3 zx-&SP#v`vYo^i_sE^mQ>2H;Wsn~ih$Y+cXbVZIptLW7!%heRyc>Z)hexN+t%L3VPB z#ceu(1e=^Ak4O^uUnf#xu*OC|`-Z-<%1Du~1=Siqv^ z$BiZstL`7(KLRe;W$XjCDL*Hxh@dGQ1}irI#VLEw%!X=>5v&fYDBZ}7#};se$d-Nd zydepE(?gM5dvadu4T=$l8uv@>LcP@je1k2%*6RsS$R0bq2(++*35QVcI&vmxoI}vC zQ_~}xSs7E>$u2(#^-iSW=jU4(J0k%KL%_$h3b)1K_&z!go1c<1-z(ATwk%TUuyIBs zpijH;eXJZIZ^^fI-uE8D`#=8LEE>1J6S!1L^0J1L&Z%%Y1zp?@Bh7^aM4d4PWTFE1}Q z#A9!8X0oMtMVVlt15Vpvsel^XIk`?FP*WnU?pEyY>2aN$RN5D-1IM0T=I(o4+Z)2< zo)G%|ax>SXY!hWet;IniYAyfoBED^7s8Bx3=C1rM1Ds92Gn$^96ifT|3K3CS50Wag z-ZLcmro$UjlGcM(fnFp>X5WD4{%)l4kA2HbYVutmZh7&Qp?aPOT7CZgLUYsQQ`dn8 z6)5Mw?+N9a_4~8jW5~e82<;(u^}&Gq|^z zmz`v1`F;$APH13nQ~ESpqTEBkQj9b5wP%e~AER}ML8e%?I8721-~=tC7PUPkP>w*zw6K&7EEQbs9eb(+-HRo}0?oDcs4#e(`PL?lUh{fz z5v~6}}`;2;4LH+9CMs1lTIH6t+jR;<%I= zPvXW>%FFw=*Bn&a%7`qVI2o!43T|u3%iP;c$7tozD5A}P=lEOw0+2>w_$}E%Nl*U2 z{&1gPhkhy(7L5zVZcI$}69@jwvobZI|mrsB0ZJsa>xKZ25RpU?q7(JTt2N z^|aCWW#7bW*Gh@|`*lcjMUC(?bUp+WlRw|1>V?+28WEt?aSXJk{uun3<@)3_DLGO} zd%i-wy>ZSS3c1er2=V1?fS8@>8&D$)%dbuUb@f1NdA-ISIddRTZPQ|*P4q&m^AfYY zR!LWOdUSpSbsnh5jSgCQ4<&151P1T!ByR-1KhPxHOdqOiYf$0}!`))JiwPJ#8C*2* zJH0MqrFf&|{B0lFg+7kDU^F1wtmHPPv_cG>r2bazja3TxIIg@;$#-moEF-pOj-#wjty(md1)herHA&v zoNwMOl?LV)meCY3l~pi)*m$9? z@q2JbF&aP45 z^q-H*{*~#Jg57=}JoacZn1o>+X+5(K?sm7lunK0I-5whAeuiY$C)hT|_VwMV{IKC% zT2E3*5s5kF{dQ~Ubw~R1_XolYjxX+yt99*IJlGJ5B6U*D6|!wn3C&` z@r(6A`h zr2pKfy<%nK58tZ6B*alC0mm|q=*7`nrOTLb)PwSaP;8H_i`mvz=8ekZ$vMxI_cv|V z5R>?;a$Ryvp-QX8*ENEfE5yO2d_&&aM*mn~)2T&g6#W~KC+~JwZRP$vZh&Pu3%YYT z>N|V8hjUC@#c`PSdR=0A!O7zJ_Udt*@3lV~tc`O5V41_~+idaOAF}&NHFE)3rZCh& zhg0F6=(4!vBbK(y$9#pwq!~FlufQ?txpP$CYfj2BlUTd`mb6=0>NMU7=X|zu=0P8O zRjoEwT>iwMU;n;|({VmLPG9jk!NqLvc0U63#$`|^dp;(LlX*S{Hm_5FunKOf)meg% zlN4?|v)e|~3D;O8AK(5tVsK{i73J4^hN`ATw`ArN1V;X&Kx}y3X#ZrYSpP>EKiQbG z<~4bfLepECsL$AwcU^<;m{l3z7XPrn^rO{m>Jrs2t%w2oosU<8eES)0*jk9<9dA?0 z=Vtz1Cr*W2*Qh?R@lFyNPn+ImrF*Lwy^SE0Ce1*TPy>O2 zjz7n~HC$OQ6rl0N#pU9YWEBqA3fPp-^m%(hqE|ezXuWT6%sb@}zNHpZnd3GM3fs~3 zYR9B9(Km)7FZT&MmCQ!ZLTeF=qo2_vfHoxV%HW%m1=VD0Juh19)r_~>RL%(!&Y5?Rt+$_9x=x z#wOmMQK}=*K=nz`O-KNRErSD!o#Z-n{&!=D}6kOzG($=Us3m)S+3vr_syQy3(? zjqgR*l?GVn6&l*r>zZzUdkbCEbogWM9{Lqt{fa-}8_n=;SflGGV}(@@n!7yc_c-LP zH?Pw0{b_m>mXhbAt(Hs798HFVFzi=}sEijvlIklrsj%RLPT$^_$H(L{{)@w<_uZLH z;_66FfW(T5SgxrKkEi{b+R&05#>+@lV~4L%B<)hF=FUNzMO^(t*viygs)GT9qEOb{W6(1&OY`&Dp-DKACi^*p7y}_N1TsqQWRbHFZ2q*Xheh zMW0VN9eySJb~YzEpT5I4<~nsz?4hWD*%`Kc5&kJ*0Ua;QN^B52ht**`1|pV@Jj^4) zAE?}r1p)f6+I9FQ1=}88^<&`%iyj$Qhe6M%PI$(P<9<0Fs`h+Ws2KA_Xst{RHN^jN zrFn{l3niBB?~gd%Sff@#JzR7!1UfI~B3lxIg-WTP5; zeGx`kq#_Atb|(m%ZOwcRrGxgWJfdKxPai-wm1)R|+vniSw+I{4xu2Lnw>tJg!%wcv z{b+#Em5xzBD(4OI@Ap@8krh-pwqN7PyPe>bW9-l^^hLoGMwY}5*FUV9EX+OxVc)G2 z6Lh9{UA}XSrVpv+>B&Kw^AyEbUQ#9BinJ!RX|ef}GfMUH*sAGD)Z&c3i|?XB144C5 zbXrs@hYMz!Qu60ESCgnT_Bv>JSct*#515A_{T6Mn1Mf9Gf3t3@{ zP7KzlPYPvSq!`P4oz=)q^S!s?F8qGK1kgxs5*vqG)Nw|dq(m=H%%%H_P!{a0DyEAIc#NWm3pDI-qW<>~J-1tyM)}^~YGh`dw=+OBw zc!PdEr23)$ZVMu*=v6aEWf`$BAyLx-4JJCP38(Jk33Zi8iRr>=_!=G0y+{vp3fHw4M4!<-*_yeVWUsI@8P|&v@#`YA4vrLI$`P(x{?1sqQ_#k5SEB6CG{45Z0JGTYF+Nt^rh zyFAwO+|ETHYSCI6V2KGae&-)k8nq8RO|#)yRDH2`ikWL$d7KQXw8E7|NA*PFs3haP z44OcgqyDTw&D_~T3fi8Xv=6~$A@R+hpHn?^2%}2DXZKraG6Ch;NHP_U#n0wV4YtZ- z^OZw`;2b`S3`B0EH zXgl7`wNR450R^Xcg~+YCaW$xo@CCN9Ly53DaF@AP?XVz@=lR^`6O(@WV_jQxc_Tec zddSA%%5>q4aJ00irAErLgwh)|w2j{yzJNeq3v&5s?8eT4pYz`vD_!5UtyPTIM7%m( z{H}X%r_Mmkq;aTK@22mwP9g;^mX`RF1R^iN;0voFegUWN@7K(Hkq%#Y_gp3%UCSGP zYdaMQHIAQ*a%Z|)0{uCWE<+v{{Lk@9+6){8Dc32j%Bn<8C1Nxvh`wsiZQ(>HVX-c- zggujD6R7m;jAq9o43l+N4u%cYX_5}CMc^lK3vAZB4M1CY?BGO1LdQ3+3z-!6m^POG zW=69?2WS`~8h>$;YpU}!(T5Nx*4wASEe1V$eAWnEs=d_}_%WNYc>t{w=s7It@;BX~A31i4qr+N)5V#QY3{ zP!Bst=Jc{IaCy6@h7(NpM-W8ZW!p~4%qk*6Hu+Y06JjwE$JCW7nAFb&B8%K&4300xPv$+v=Hqo)2X*i+-ud0n9`y-oaJY_sk-*)tW50(R^>R6J4ZObD z`rNQIB&lBRAupl!{Dyvtf%I6k;<9eA44elw{AH^1E8|%6!qMV+-DDOyyopahieDBI zk`tH8#HbRoDyvUk8h{GJ9-kgeZG!D`D(W&xW(EN)6L0xFLPBNgUA=UBK-?I8ee}_| z+}gSRPB{N-rN9B(5~$;aUM?S6UC&!8@TYGH6zX5rq=ccvPqYa2FmYsND~O5R!D`Qs zw6dV4s?sJip?Cv|UMo$UbcA*E*Xic6qtzMqaD4MqU|jI3{ss^+S%EUG0Ny>fXYH$i zXuG;a_5dOn6A8(qai^IW@;J+yay5u<$TbDlS*mCQ4PQgPC4k`*(||#50u;JKqX)40 zy{v0310PcuuKs=g26Q}K8V26L{#JOVa0sDglmoVyC;wF~0hC*dvfJJeCb=di+Y-0^P!#vGRy%Kbz{MYXF9trhV6Gj1y0y;gY`tXdzL-x4=_LbLyS8rH5jhA@CQ%=iPqeTWC}M1jLtfA4k)# z258iVz>BZK2b4@`GLd+i6ru!)cZ@B#XBm)|b6Q zM@-jSWC~Rr-={(KL$!O_s4{4`jq3!e=GG`r6-gvPk5cJ=y4a#sTh z7RkcaYL6s)INmK1$=$C?sQyYmZ!%)XQKGg%jz7{*!DEuW!!+;b(V2Vl-3XgWZggM& z^{+9us@6=>hfrQ;ocFz4#v&I48@l3HAea>PSP{A{1sk4>ecmMf(%}~yKK|?SO_UFm zYImQBf4FAuEp-1uzaebV8N4X;k_voT?7@I=Dr=(Ui6d({KH2aptFNIu$~Bc@e55-9 z3`3RQD0`StJw`cig^}k9VFEKVTa>XHswQ#Lu!_`2&o@U1C)EcC)S(#t7cA#V(3C@< zQq$oM)3g~DR5BFG->P%dxAHMJB#wpwb9p{fQj$XOphF}ICTVeghK(5jy~=VJ)C+t> zSYizIU-DLOWa5vhZ`4y&l2nf|BS;9|KE%f5A+NqFVa{GCBaI`oVQ}(NB=@K)L9X2I z`1?tk;u#y~6ujTf(C01Yw zM(L`j&B&wVpwKUu%BOx%b{N1n$_{=~;*mlE?W?q?cBr;;^DI&(8b6`R3Sm-0`AAun z2wtE}T1qb=E@h%)4@n4$M$;a9o^VTHv`H9`V`6=t{B`+KRwfLmJ3Y+bDhb0v!BHJlw{GWh9PmnzJ|A0 zF9e0)ima@3Z~DGP;zNAGX^Hb3Hs{Cga=NP$JimNLQ#^X03lWT|Hyp2KYi$QbgO|9C zeuEGA;nY^oFmASRoFaz!^VhRjsbw%Dq9Yn74M(SNz5n~7_yQh@lY5!8F6>u9Frtsr(WTD0@7(C`WHx)6AZw8#3;xRp-% zlr`;XEZ(c-v=ForiX@#_PD-1+;0o?;&I0c#>EqMVY~VP3j&UnBHP2<;9F8sExop%| zo|vZD%FIEj$6ucZ`yL{3)`NPL&F%vrmb^i(t^Z(RgPcruUf|pT4T0OuA4~71%}5=J z-7d0E|E6zD=Q|kg+b7l=EusDtXgJA4vD<&IfkBmE^2C%!CchKD=(3}z2W{5#=D+ca zfBSOgT6G9$=P_iG0{2dAgJlv=-kL5%qC;WBemxtp`2}ptq$@YB4RaXWAQBUp5cLb| z`zCGaN}hD@>8I8aEs}wwZN-P3-}jw^5mch_C;C8q2||Gah=@+l4&n@!dTo`9weLS% zoFZDXuyi@QZG~F_8dvtN`)-fvrdKVy;NNdsLZrlAM8mIN`tmk;i-8x9D-u+ye3A=y zAWBt|rzGLmZ=}6-C!ZQYAybBIsYYJ!KKADs^o|}wyfi1;6YHCOz_|seNtAJ35KMa0 z$wf03OioSU#ZnwLiTv%Wykt&QKKVK!OxfoJJt_iwMKPwQn>M=ZR&?b!&QmdyEZv@b zUA~?rOHC|w>H%TwIveWUDZ-bNEd0ZtPu|&vSyncO8pF`FXX{`zjTurdr~FXr;|tET;UtRnSTz>fEg_*)8{WQ*h5`Pc_?&?F>2@os?k-|v)IZ#0oB zL_^B0 z#%3I*qfBJo_Xi#)|Aiz%3LD1LASN|-os<3@-z_d6UYlP`WVlI=D}qUKTtDfc%H_P6 zZ7x|GJs5{gjD~P`)UxiI$0|VAoiykDi$Ivx{o+?h>%u}rbi?P9l;`9g0;;+m)|Vk< z#z=+`-<-fRbQJfknp51LMUC467xY+`>Mp@iYLGhKacYMckqK8?^49Uyy7ph z%0YJ?K;WCsZbgJ#kJ(_ih;GUi2!+Lzyx4v^stPKUm%7BNE)g?hxhf~Htl8W|L<-U{ zPI|9{%<&@Srpq_CxKSC(kJ8Ki?Px(ZK-T*i8Sj#IZSvkbxqU8Qm)*beI8QVcu(`Og z;-3KkR}JM_Q=NV>suCoEyT6BFVqw3d#rrTqkaQRlJ-O`R_N2@!v)z;ofU8uGr9~u~ z2QGfn>{Y8CG!#tF$0w#E4wUqnFSxG8$=RHPMdL%jcJs6uu0z&#{h6WVc~Qe$ zt{gKs6#9c24X18+m2|gR+S2||Ke#TJnzOXHfFc*pzFb%FIYbY~5LL~d&OG+bjygi| zS7RW^<6bdSkUn(U5B5=F4FHff0lHHAv>Bcw)8JbBBbda_38VNUN^+vvAW(=n&W81( zVuk^UQ`V+R4G0eY;PHz_pmVMGN!7Az!Oyl;+w`lzToWIkz5(u23(*eTAW*X(dT;2# zLnON6xJ=H^E|_xNF<<~>$9j9I_eadRjLkdb7znx#<7a-!sUf7Ln*thkRvdu{7??cOy^U*dG_1Fnfh=`rY2l9PgT`hBXDA1BU^A-;r|c%6;~j zv~$22yzV?p;b;FY*5(;RFM=U<7XC16c(G(K@L{k1vI z*m#~69yY9cEA#F*>6gxwu$nC3CtsVV=|$hX__}iWm)G07QZ*EKq(x1cbq>|bq>=Wb z1^9iF-j<|ZiCi7g1GiBBuSI{~ZyK#V{zz*DMUSxr^>p?5W>F;8 zZu_n}_GIZTQe!F0a75ViA*UHJ-|QFBQ0>q3j{e=(IUB&7dl98~H3qx6=4<5!$QBP^tuUvtTMqg36q=nYTJJSyZ{EdIR0&%Nt_Jm5laW|PXFfCE$~X< z;nZkX;kpzomja_&plikZ>`aTar5y;S`$k%)pQKp<>ySbvW1w-8KG~EtE0rRrPGA@_OstH5{;oE&o=bsx7*H8~ReJ#ia%=axPhj@( zxJFE%8yY-#V>mAL>+UOEFq(S?^_)OK(>q07;o$ZJ9H-ka&_d+e*Z%;xl`&wy+zd29 zHtw2%x!ZNgv_xKT-yoW#6_hH9&8Oc|Xl)W^ChfvUANpCcv`EKLv$Va9J-q59&^f(p#-OK*J^a3T?y*@q$%}0-c zC**$bDEz*n)e$p3Eyy-nP`E5(Qwmb;V;KrG*1TEcCikilJ{RoXpG12{Pn%{rh1up6 z@ZBvrCo{eeY7WMb7n^fq#T$uV&&1CGPUpm(Uwc%9YIVEh8qS+5%H4!}8QY}_fxA?$vg5qW+UqOX z?Vchr`k{(>aY6~XIeHg&%`gP5oIy-Fw`HF2_25NGn>85l|8P;R{y#m>HfcQ{JeJ@e zmi(akLjPrCI$Dmax2GW6+;V*2kCP!Q^v*XLO@Vi>zCt(nY`smoa%gwZ!s!?2XmBkx zbulUH7QDIue7K@#>0?8a6zexv7cPAnbRj1ip)*v#5z=;8<+?2=S#{o?&G*f&YX!+5 z=!lG;mMQl$>gvr0mtde0k2SWP=SpKt*YlaYyK|Gt;A&}%HGZ3N9TQ-Wv9!> zePxaT-c1T|Z7(1;Q8`% z_O^@AT603{_;hmby!iB_lgWb2PR>>Rlk+YgJNg4y_v0%45%EIb;PNNa6-9Pll!CX7 zPHsb=DrGr;RDN^HL0S7Rd*vzoaz?z%6xku{PWMo z{xs`v8--uizZs8Kx%N!eU+oXN*&{nz_@zS6cl2WgpV9HHUn=rhDQ$vX#SoU3S-VuG zYCG4Q5Uk{6Z8)N0?&CWr#Uvtr{1w87+y=+zYV}PncW1X}dACMow_*4A`$!z;W z@~xm2|6a==pI*5g%1F7R@$RL;Jokkg8?8IdJDnk~7+ApKKQGL|GIw8PDT7?l(gu2V z>^B03rdj^BpKTwap_2hM1kiE2y}q8M9NcA(0l31$6*ouMIxp=Imv^JElGL@lpbKmU zzu}%I+?tRIK4}72Yp5oV_*T?Ac2&K-kj^1m1y=A63lvmj6_)Q#EC;w2{{f9z;De2l z{(F;rR~~w-E7bA=CUm}@@zVP#r~hBOmS!|)9|7fyl#()UYS6k1X0Pfsn4I*UZ){$< zSW^qM0wC7aUtLu=JD5z6r#*z1F>S(jTVZzP3e5K3g09AMJ%K^qzRGepbpd^Vp?5rA zNNtE`t6l-n5k6lh`NXd(NMJ7iY<8gZ5~`>v`>oyE8I)WA<{@!@qMo9)00`yj zVF5SUwEUgj6EMIzX#9%73m>xz-Dg9Qpk@P3ygyiSp^B92!o*^ASizwz^>tbbw?BEN z{1Ao6Jonqi(@Xd1$mG8)em<1w`()sdm%_Q9bv)yw+L>=0?K3Wr@yRU@C~x{V>*qT@ zy{`oN*1_nYC!sn8C%;k5w^pEQuQBq~+)FZ3HrhD{sU4OZyo&~Tq zR57HrNOah%=eOtAqi3}@Z{plI^p;8Lpvw=C*(9_TbL!|P@m$d_?oD>kSPOUzzYHuv zs*F|p5MpTG1$`bhQ(C;}aOQ~Z_%Zu5q1Yp2UAuxVaU5Y}HaeX5Jt`FR36jt4wH(2a z8$eYFtfswkaV(lgs3om)x$}6>3y|AL!SMrW65)q{Xhng@MOF}!|D!bB`fTXG8DJCQ zE2aYfX1vp_#qR%`;a%L<%Tne;{d+F(4Tt_QUFK!snenRRe~%?$J5hW`vdS-C@1Fo2 z3uF<`PKCXoI~t$Z$yfx9a(J9@amnPDd?|f4<$t{NnNPR~LN}mk$xXuV=wR2Ct_g;g z3RChIBV+<)zqy|PAAEpn;#Z#x@&_USPRaCLaA*`At!9 zpye~+D9}m>#CFQuj8IBE+D^!Gx8leBZ^w!W<tUa=+&2_eO|I{G6Th>19^uM+5$U61vXw6vO)Ozgy{jC!entKGLTqmgTe?O}N zAN>1CD0dk_Isc<^c9~t1;gBo0^{5Uxe}I2^@n~de?f=58`k~cxgs+u<{69EVsDC?` zc!iI^MJ^n_O7S2Wyy!vr@PDFvEDz@gPQk!e zsW4XNA)AXg_Q2?BEp_-ir3`I|KI-)M*A*X&L)3<{wDb9(pvktlPzHLF-l>8|l*D4w zTG82+-}MairlSELk5*@tw=A&9p|J_Oou^=E(Ij+K`L3S_g+`y~aaz31`%p6(r!ZIaWDY77+oHaL<~_Y=NAif)d1i)E~n^ai7$xZunz|{0EUaEwcqdfpC!nifaG#m ztRgp$B71$KQu?8tV51d%g1}O?Vb*#Slos(4HfOg=B(MMDx5T52!raG>NfP)?Fm>r^W-_ zx(LT+h}wMWwcP(O7NWL!1yCk_d2B0R#S~xeVto~0*23a2QY&T>Tmtpp@oxkmERxWZ zA9FI4HdnZ?a%FCkKv;ts0+0ph`t~@p75hV($lmU^Mf1sST zY&7BV-kRv;6eA9kCS3q`Y<7OqM3-MM3#@?~1%A{A8>>bGRcZ0{z3gJDKc{@i3d`BzloG!GSfG#N64qm% z@`Z2U$=Qk^DuuGvxV%qPnE5O1VK3LV14hQkjo|pus38>ORwU8j?{IdbFEGCJ+;P zaeRXAS?oEFKTv9O*yR%dt0YRDrcveH5GuUH@&-2y5NOKsL*XS(El$S65lX!`zo&fO zo)UsiVZT{qx^s*W;rwUTcrj-oh#7WS$Un!$vO`0cM;_8LUP$J63qh**H2yQIKOXRz zLYwi`O--jEh+n-up7N(3o`Md4%_oV&gyZvZ2-5s>BH;1QR;r(lr|?xnsa_vqhIrUBl_VxGC?XG7)J+U@_qlk6XeeDvpd#stn+<@?3w zun14eZ0c!J2S~z`^b|%dChyVTPjhTfQzYVCMu$6xnK%H5J|53uBB&PJRhY@p zwBJ>6ISGO+h?K4`uMjd6Q{>n2*A%<stPkU*Wjhhq{gR%drWSsLAj%1l~qUx z+73f#M7&NI>7h~@{whhCiaww3gC?&>!cgxEQ$H7otPMzV58w?g$yNnHf8%K4T?Xlx z;TiCGAGBjZ9D=7Z*eo884pAw6)67t7Tdv>M0``IJc!=Ldbo=7$X3c*6u>Y>#aq zz|Y*ow{73&Ejv(pl+J(eS=;$YONo-@Tl%putL%;%lN2&Hvo5>bPZ3o|RvZKUUWWXz z+a@1F82(GR?PrUsBdeo<`JJ)kzO4)uTT@N3r`sDY3mf0gpt8U}4uUjrA!~q)tcMqV z_r(YA^1-GivZly{h^%>w|Jf2^L>3F2Srx-z7=RcuB!^w^7R}bHvPMAiHXrgqaR*Z6 zWrnq0`)(n8X61nX9+u*+zQT+iFl7UFP1Q-GFAX}G=^O(c)aySsu7Gv{DC7D=eD%r^q3obw?Lj1L+AzoFV88;0|_`DgGZl!N9XrK@K2u!*8u)iITH~9L3$dY@2MhZnqPk(Nu^YJ z5K_9B>7bOPU?{R!#mHh72dNgR8eCpKQbq=C&Jx zc1%)IjAYZiaq*_bY$j;?^UE@8!;%R zO}Nm(ZWv64w!nT7B??w9u3uyK;$yvfIYLlvw1Mgp1c_te{J_Z+zEG*B+AE994NIX?-e_ zSPL|te`(bX_GyP9%%R1Lcjfq2J;lMhk#(xrb^G;;axZ?iG@XC}O%dh86*-T+qt<8b zOh|ZgE!e11pGZ=Gpt>I(G+2p}E7XAmi4W~h<%;+|OVIVV1@2ixHg z#e~o0BJ26DI~mn?)byp_ziE>^D7@Pzd~1yn$WV3RA(|2ow z*1ts7a(WuFpgW-6ND)@c%6hxc`^esrfNRqWUIH)f0&NjlEn`=CKiU$ui?v-9^lVNP zk5Onzy?Lc-xM*nZmGJbB1&a=M<6wuiTRZX9uK#Di{50o=^4`>~&yrKN087XJj2WkQ ViPp$(*bL0544$rjF6*2UngG(-TUP)8 literal 25586 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 JcRCJF{tp9JDxd%W diff --git a/frontend/resources/images/form/invision.png b/frontend/resources/images/form/invision.png index 551b8e2c52612787a51b85a060e66431edd03be3..c57f8993fed85b6ae171217df43e5e48bcd979a0 100644 GIT binary patch literal 42142 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 literal 53192 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 z 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 z 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%0D8PLwd|zh0&Z0V7t~S1CmL5! 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%0DBY$x9BJdw5b^uPBiY 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

&QK36e%fCJ+`=AvX0U$rgu%sJM+|rb z4Ls3OC-E|@q3a{Lz$}q;M=2mzWAHZUZ;txFMe4bQs+1nsIE{&2PLH6SgIQPC#ig4F0e%oj;uu!Vy-4fw&5`LjWF<)k0;6ucrAdAX& z<)-KG8pCM(y%v1;t;qjDK4O5Iyy;`BMp}(X4obU>oR5J9NHHk5m~-G*l1P zNqjEQ&ZjoE6OJtDWu`xr+N50mcP4?9QFWOQLOQz5cJmi(rumfmCJp)Fk$1YBTp8O7 zzdYi+QJ1elo9IrkA!rpbCL>fyJRe#Clid-z1^0wlmY@5jNdhazz8ep!#6M0D23$oq z#kZG8EEAe2`ZGx=_3vbHX{h@Vl)!+v47YC{jg<17Yc`8TO&${UFW5bPaf0|F)SyY4 z3`}5*Z{DLvt(|M9bTpXS`2#~*Z#k`zvTOn&pn8QE&j1ra{dm({k8qipgFS9hyP#cY zMHWC;?o}L09R~m!h1H1@G68P$+?nkGE9hvOv>aJbR3fKcvN|u3g2OD+rm(770Ko6FN1`Q5rH{w5%d#h`i z{Sim0(Kh_HQ3>3}U>$rBU^7+z?3u!V7aM)2YziG0OqxE}#sGD4IA6 zLo>qWt@>!>)}2{cGk+q1CLoH-{{SkULFSF`Yfn~oWWP$Pg`K=D|Bt4#ii&G%wlIxr zu;9Vn-GjSJaJS&@?hxGFgFC?;8h0l^BTYjHt|7Qxa{h6j_uCq4)LvCJ=QoY!?okxF zJ)vFTf!b8vTxJI6g{^+qzu7~cIiTLyAbz9UKIK9C;%vVTlR;(?PfP58feT z=n41z&hOaTx%;3ol-a-UBu@$wCq#U16EoK&m+-MqwI2;m$cFwLK(Cj96z3B#bM(-C z_FA4eA@sHU zp=WK|wRX|&&o{_tMS3EAKNiB~6ib_la{r1TX(Mu?fMFQW3R@vxTkF{JC15ECS`_r* z0>=M~Uol1*X{+o#yvG9FS{oKcuH>PoFmsMnw~XKpS3+aOl{e7(B`4@Idy)M?@Cbch zO`Em!%{x%7lwjR-bK9Nrq>`0W9A(i~!fS_Y@zabNen-u6ALLcDjtX#=FA9(k zSVGw$-fvVGy=G5{`N)*{}_mpMmw}8QcUDioT>tAKdDNiq`|JY?t&?ikX@TF|$!EP*i zxT-}H$Bj9Ggkz}5wP@)&10+y4(Zeb-_TqmT&2EQ3?*g8x%*{Xx%odFp`nY2g{w9lz zM(ZVN%pzsYY$jiKbc4e>l56*Neyk+Onh4<(ahOQ{6P>-cKJmyEuo+3z*#pG7Q*LZy<9B^2FMl|bAd|vf4eUwAVoHJO^lCr; zKJw1W6PW5x=|?Sx2%Jf;ZvO46WE1S2&V~N{On?vT?$S)hpsaQ88FU@jglP zA}R43AmuPg!S0&~cG|tnIi)Ot?;|mSu^b88O*l4Hz;*lPP;m-#JcrvQVs1~NKRf_K zDqW4HwmlU<+~dUqH4}0j+Fso9G^hzFaLE1+B_uY~rf}=co6=AXKbGf8f$0rWE8mb4 z7Px)*PeqwuHAO?A8{Z9M0c8W%R6#57=yON+tUl}Lh8NP>{ zN@6-FMQbn^^&WpUljx1Y`;6mwPaqv9uBc35oymX2B@2B9bx4tgzR1>8seAj#*yw8g zt}4T^w#ugvg!%g$@Bmof-tN$%voQ?eYrbe63#^udsF$=WBJxaEYv4pmF*f8OB^kt3 z!>z%D0I)w+$92Li>u?c&9v%24;QcI?$Y^v)8vR`j7 zBs9SW=Eq1!Zu+$@RG=b>pv#kVT+G1eZ;dj*h1qH_iJyDo_%Vp2O|yIkC7Ru$G4AkF zX=z8u#4&p${mUMj$W3H(0^bum;1&~4WTzH;mK?Xrmlp9OY;sFqnT{W2Y!%mOmd9C( zy*&(+AGc$Q?pn2MEu-aH+TbU{7juBWXKEGm=L1LjCh&KKCO~tSXw0$+i)if^E}Jpk z55fwxDe{s>anK2bu{D}5YQ{a=4e#2kUvs8|5e@j?oale@7U08Sq<#65eo*{P_jQ;c ziOySuO<%zz5Vm7#Hej&+QT9A&*8EEqe)Bv*mfJO2DMk1G1$}I4`e_y*Xq(kJ$G zwH}~aD3006ncTcZHGL3nro63g*A8&$w#68;@q z3BSBRf*qniRhzsf86cR}BFSeLh-`iFuq?y~CA|LBB};U>F#RyhRCpBr>)Z&>$}^EW zOGPR)Vo9EuG0dZIkBO3EDzI#K5_EhOPZ@ZK7IYQUpThdYzj?Woc#kP<@Y8%bnDKLc zG2-r|ot*$ydFt+`A*O8l+eCG)a|O_$`r?-^D`?k2G_sDNu@_K%AjZwfYMB6a^6Wrj z=O44BNkTH->kW=n0yB_~7V^Pq7HreFb$IyPLG8)W=V_ktyHx|1=1-GO+r*9R*9D9C|7NwCNeEJ#N} zLg&D=MMc}Lj?1mk+YIGm5A_WH<$oq% zJm`nt{7!$JiBYY+s#545I#cZj9aX=lBZ9G=gD|7y8IqEPtuJQg$5>u3q&PDSOhtAc z7kV{v>ltYp)$;-hO3{kbk|@P7QY5D1V;FaTjRwauu%PnU!JfZg#`i=oQUU2vAw@p7 z!PbruD8PqLSgI;rH@H7Cnb_$~!y=lzPL=E~A^Ax~DBrh0;j zTtPziog8WwM)^An5FNWG7h}`TAN8FxbmZ7S%j7->d)=NH4NU<=q+s%7I zvK8@Fd9ugbKou;5Vdz){`C}6bWJJnNrn$U|Sv{@%P{WdO8MntuR10TE3)K(yj0Mk^ zzEM`lM)bGiJj;ek$>{~OG0G3^?uo?(x9Vn{`PpGjq9h8qPA58q(qvp7wyHjvyd6Vd zN`z>jkYN>p&@9(9@=l*TPZ9}4l{oJ zw${T+{v!Xk!PMM%H6IR5l$sXh?qt;w0Q^sS*pJzxzfqw$gbFL(#GN|aF~y`~#UGxI zHKfS=iHZwKBl9m%$#hzeVw&^FU&ikP(A<2{A^UdL4R#}ZZ^Qx+;X=rEjDiAk`8crTvN&@>Nb3+e+4h<}!7 z=Fd_j?L<#<(K5M^530_SC}yrh!7of$!oA_mnnKEi>hoYUAm|eKk{-n(?krzz#rvq%p`xzH7;Y5=+4Aiu;hT(NR&Di*U77zM2HFa` zO>5kqB+}y`X(jQ`MfeM;j()*!Iok6}e(et0^2&P@M>RG(j+~Mg0kWkNPL#IB*C(N- zF|8+tC|7(rdtNHsJX?5rS*^r45hp_R9UDddmkG=RHtCnH{v8?DB!0I+eFjK3waDEe zVd}PuJo7j1R<&OiD4SQK=0M77&!eyCkWscUtFmtSu2@t9asKtvxIhLRbn4Ave|QofH2mJ3M9 z#2gqC{|Q0#2!+6c0VE$t*llib8rhzx@9bp10#4dS9}@G%5EHSV64dCYRnH3m6E<`^Y^UpC%+c>lwg;RSm&8SRw8 zKvIJ|OxJ71skInC5FIDM4|7Tyd%;fsRAuh{65@f2($>VkRy&V=bLY3%U!RGUdVS#+mBZ%CCM{uboOaDZ65)ovQ^=xNBC(8o zdEd56xUVIRb4iP)eP)Tpd+L#^EGt_4WViaF_$SlmJUc4lI1A6PJig}8z+Yj7O1rGk zh=${K_d~TE)14D1>Hg=pUN@8OMsXzFV`>eS8@A!5^RV)yF8jY0bsu!Am-0LdRH4M< z+iLlN^e+WbP+5u_heQSi6IYhnX08XSSVh<(vRyr}n) zfNg3$*>!incC(${T_;t+^KtC!gw2cm;jTUDTU_P7ZZ?mtF~hFW#1pdHAM#iKuLTh9 zC$Y0Fdd^O}A*Afq=a8x_l4LZryeyCarpR;;e<`(no!I|K8`1;y2YH-cPa^ij2~zEG z3w80IGK*QgNk|OIZZF-+-keu7lLjOECJQ$_hWlLUZPcEv{ZR>>aj0(>J z2G300UBsHd3Xk!b7vSut2WPWOTEg=ndRM!At^fIB<_KA)XQKfu&%(HTctm4@%bDBN zL0Zq6%rHh75wznmyDhRBGRXlO4ZR|hzl6b=x~ zkAo$v0Mwdtz!^`aV$Z=FZ;8SsW;>n_yE5$Gi}Qg|LN;xZT{ib1Ptpdl;oKR58M;4`9{tiD*uT`+{`fO!Kn zP5u<*{Fd0XSob;u-1apH5;9JVSPE?<>A6C{B*0NwyIsVlct@jeC%pv0E$1_D0DL5J7W3eC5GCqR5SA|src>EtYnAUzRlYAL!EIq z7lx3xXK2BQkAK*B&4pm2fJfFyEHVBeZZ0rH<9`v)M8{|ZKCv4%d~@4ymYe_R-PN;# z=nuV00z``f$Rli5F$h40_f%!whHPL1Equ%d( zA42AC{Fz6d%l9n5@@i=tp3f*0G16v{IW96V{wt0jwSlu4D;-Z>6ep&FZ=Unu;Hg$0 zGcm9{%oO3J5gtd03%Q=#U9wbvbO2{ipDx{nYoU8{1rISslVm7V6=EJ+M6km8VILZH zA39}UzR_g>-wyg+s7NH9{}{?^8a7Q&xeJ6Witj89=%>Ydo0nMKZ@%>H>k+V7j&L(s z2At}9_Kt8Nvvx8xwieHBGs;S5r>Z$n*dRC|4WJM^kx`V5$1N$Y>LZuA5#a5QaERwkU1Cd3idqrM%!7eT)x7VpXcO0L-)I+ChNbvQ9i*x9d$;;ud07JBP2?(!#P;`G;o^1g>CMM zNAuM%h5Tq8flA?U7EKuHKfDVge|b9QO0(s(pfhc`3H9+7pZ2wfRcZEWTFVLV3YkyS zxW=rxXNMQfARNx)2H=*vN)a6xMCENP3$4Wz&}k+@w#W`=m!O+1-0q4iV6zxoBP%bU zdA}FOP98b6nbiaOB6dV1^K1cqE{By$Z0`6sIUaB1X1EmSdO2vet;6FZy-rOiYFVWS z|M^Mm3EJwWOAn!TTz=CRWu3IEjClT)Df%8~zz@BpVFZY00%jXLRnmMPi3!D+dLHQQ zHWlY23oPg~KQrO{s2*kiBXZS~`r&WS-D=dRyvf5=IBF1|J>InlPexINUWYPmaNS z&Tb~9JLxwH@yyy?_J`&S`{Nz9pY@}fY@I*qO9welnI0a24@BU9o;{NlkCRVp93=5W zsOlb_dFt%3oQz|WvKgllc`+8n1YVmXtLecT(@Vb~_jmATertajN`DhWfyK{+-Z@vF z&=#GdxfUsPAEu)RX0g(StFc*dCqgc<#2%yU=kQ6j}TKXt1#Tl6oLwI6= z2D(CHPly^4_$6@xuJZm6CJ_mb;OgKAC+HF`2({tKfyK7kNN{{ji-XhHKzx_&ojIrK>-#}Zl;>rM8Rg*!9y14VA3w?wGDRTNuW}3px!jLgP>a)05=U#;MFY8_R+3` zc%v{_(0q6LjCqB37BP=b7iC+>mF9QX_~>`P@)t@upf-jOl%)A$D;@ToI4Tu9PLHTd z*={x9eS+St*fD{^;yPH^v7>Sq`Zh{>->~GRsEok}(KK7UL@AD-n)xWq<=pb<__K;h zP#Usd1HxXjEYYyF6xjK0_Y&xm?`K+Zp)0IC;P+y4YYnbpb*LpRJHn|kHfXfiQZTJ% z#|RcRqq1!TQe&}Ot@v0>8TefOef*zOkQMq*FGi`sQyS=YxI++!EyT-(!>_eMJnNCW zY)xIvJcNOm@|ci9a2f7m(JF4r!kEShR4Vy)<~D9b{G8#jzAsJp-Icv5mH%`J8i~Ga z*mgQ>moO!mGpYy}70elsHeezj9MI-EO?X>qI-JP1t5|4Y`LTWPBX;(m4onkIK{`~m z6ksI{RD&vY=y3m1IMBj5b}0%S5Rs44Ioi=*k=TdO5=31T=!MI*PneKDgK8qG!dcKk zzLWHNlbMcYtogT7?X!(bML9Z+XMwwoFmCro6b_BD+15yO4$u$weA@y@2hh&Dq=kR} zj@<)gv}>b<@$JHO@XmrLyUa2yJ4|0CtZBfyfnHE(g~Z1B>)^Ut?K;OaFGOxIfH zhKcVm_kZ^ov1Oy*PAU|>X9@#>i(BLq{>SA`ljKe^?r5x%(pf1Q4uF?OFbY!7xAIH4 z4t+HZY?>L&lJRc9!o{-i;&uKMVm3IIC1YT^OSXGd>jXaa#gIjm8rp2~NHPN9{o$KV zV&(m=+C?ZKeagn39r$G>|GAgSk*|^3Pkp@O;`?_-6a}OM5QGvP1D4E>&NaCAqryZv#lG7Do*#^*I*rI$1L z7g_&i6L107^7L0Wc2=~pkTmvxn+ik}_rTH*-S|KM1!G(T7v5lwb( zs4-;tXdx3L(O&@Y5dtA@m`QWEe$lK+kz$K!aYxCeym=^E*H36?;j7_ljTgOXv{!Y_|*OmWlNx@X~<=tT3Ke_zO3FOIhQtGp%8lG*8U>PD>3 z1$zo3t|#KO(W<3LYqOjxMlV{eN8~@HP?PL;p4r541=Q!TD$v%4u;@axTCS%vlFVGO z#${_uzm(rzkH)uB0C!-Sv%NuQ6JgH25>W5P5W>%nLyV(KUe5^I81QnoaeLH-`>4Fw zucIb%O@IKiVE#hbHL)Iipu%OJXIIN_`;84!4cH}__-N@=&QvO)d2raJS)f~IL>e-1 zD4b*#l88lIoLl1sYwy~OqJ z6%?O*9$DnQa{_%icwGCBBD6Nc?)7l7&u;=KJXpo)ZXLbS$Caj+~@fz@Mk&LikS zBe@CDE_dExD)bd3c<=^?E@h);KlgqIDgY^{=IcY<_f!<}Sn+lvqm zs&hgWE}VF~+hom-xmodL-1=+sr=A9ajuuaP%b@t2t2Uv)_*MsxRl6^VKSX-lf&+f0 zq`*V(quBsX)fLKP!mz(1z$Q;bVa-_QO5Y#~h?V?izV@Lp@P$JFhhpH9fA6TR_;Apg$2z%VF>H;^fy_r+uL&soNR1CqEIp$e@d-v!pfIbptt=HRfRB?LVtDJ(0D}9gt`8|0^M4GczX2DR-H4`^VP? z9Soxnf*XiDsb<;rSo2nk9htV?C+}ixzZNKJ{|dA*r?i6gP^XhC@MEtC%(|a({}!c7 z1e=+IqlvnTlBn^YuXovvC=0PKDW4c;3DuL2;DREE0uQ5jmDQkO5_x?$)uEQ?8t>gx ztc~#?Mdh~?-)Q9)JH9X_DeaQp{u;@CiOoJ?FC|61o~^sI)q^gSgt`-bT7rQnOa9j0 z<;+RVK>pz-kzmSVh;q!!%9=?e^gYD-=h;M;ht~QjlbwrHkQ304I?OTH&&pBO1 zarpBpw#DDHIM4bR(On|io^VEsG@ZS(&+guUEk=kD6hW~8jSy_;K!N05YNLfa27#B) zdiNb>SXOsOkB~re#T|P7fj*E$solK9Hj~5v=r8JaMgJ5o1)$_?^2mDx^{XjD0<9`GJKWea4{{MW+thH*z?Vg zpo|J$)I-h_)drx)oZT7xrwc^w_4e2oJ*WcWPs=ce6en+5ru01AS(eX#9X0fe3`DS? zc%w7VgeoNI^;hT=;83%bdM0h~Q?0z<4rknn=$v7DI`LCtvSkq%E=Q5V@T^r814BP- z12Zpx(HP{CMr6@mq--DYKxPXCE0_oXWtMo%?kC4u3c=HJPJVeiA;07=4A=2{qlgFf z58pi!vi)w6azx=-QzC2cR#}3g@cmaWr9Gs!|&`SKbb6*;<|2)3lIJB zEl*WlR)6+_GexL^f@a0?=#8)3e+hnvL7SNPx(7dv0)YRauli#h^>WEJCKhK>rBJP9 zU9+dVP!1>!hh}FzwYb+@LnhQY>hLF4140-};d5J_puzlKdoy|NctgEV#@m7S-`LMH z97^B@HWXQA3K;CxuCD~i5n<~??&T5-KV4B8T$y+6HeAKL5wYI)AH|?Rj{>sb2l$Gp z%8ia(w9rL{DR^hZboVq55c@ZLl}513jnq`vdr_x1leM-3UvUQ|!XBYtYQmjafvgh-wCyN4NeaQY6cn z7j(MKjK#{a3?cu>=qMZ|re5{5ZnTMi%Q*OIr>?hWEwI|q(Nd)uPi|#|G#BhfX4JEb z?t!mj4(mmW;6(_5I745i1a^6LvRlGTdk*|Yyl6Dq3UxW}UGBa(wR68z~|girI?PX&du8$$f&h|AoL@{K(^8`eIk23g3ed z5w56}+8z58v=1cGh4klR#Op`?;EDmPGma5E=9PPtnldsuO7wJ>_8b| z^m5Rj>iX*|M+JQ=))N6W=W<@qg!97iVmIugU96B#ajY{o^Crxh5T4eg(EMyY|FWRm z!4^?+5T%pYm$~F8KYb$!UFiFQSkx@VSiL4U8LWoVB7tPW^WSDmKCkJzEY=6&EMu~u zBCDwtV!zhG#qP8|2Bcmq1WkmFfq_^P_hBj89;Mas&U+{b4g+>*k4eh+aKWmM;o&hm zd!#K_+uUu|m-ZIai^!5IUqoJQz$4+Ian^&z#wVYS=AR=|*C+N@RWSLd);xT@}0^?qmDjeiD`lXdWYd)r41TWQ)230x?VuzG@? zIlA!MsQRy5b)U;UGC`W#Pr;aKf6IPwq~TWBqszF$lJYd95iZR%sU#ol*1 ztyJa;y4oiiqV+uZW8}J^W~8Hc%SN<*o-ygLDT4KZ;e6j1Lkel=?|${r>Q;t5MLsW1 zfV{D7cLftb@AsDDowsXHxaEn#cP^W{`h^CCYe1Rn`s79JkG41usajRsm6&wRT0{*q zXTtdH_9zp4*a7~{@b_JyW0$Bza2L{X-$3_!SAxU)KC|3H3H1Yf!;bpC2u9a6Q(86$ z;TGTV$mhdu@L1bmdbe@#bTl@tX`ASxconEK8@M*X5NZj3HD;kS0Gwqz+==FB93bx< z8~(|$pB7#Egs(D9ya(GsUS1qKo{yA_VE?Z(31lUyHrJ${$#a_Z7#V?H*u_c;ekxu| z)H*CcM)3I6C>_FOWDAlK!;RF>H|C}P_9pppyXlkw*bw4HWMfE0!w)Z{=H4vKvo3(U zNHdacw^)!U${-q#6ocp66G1fVJE9UaGP3QAL!jN z9#z)X~231H@G(Ge@hRybdaU#Mo_xG6Zip@?m~P3EB- z(t}VLdk>sql1i#OD15eY!vcUsL%u=e&5C5QK2plW{fV*3V*Ak0fkyJ{5^d)ry~h~# zJ6e7S795QTHk80%=5qvf^PfGjoKd@FeCrn)4H%;seC*aBs>SK;`5Si}()Utgy7}d! zBhqOM(b)Q9V=blPUOd&@tr!_?=BM2s18qz8qUeYJSrIIYwh;LiFjI2pi4I_MTF+Db zo0Q0vPsEt)>1s%<`^UNzrs8#m>h`@ac?*nhIrjsAeKgreAlZ5W-Yf-D41y~I)=y-Y zs_&eMl!ogFfQZMSvG2&+J@50yf9@Y7%GtnSDHxjQz`4eGt_im6R6^Yt8F6E}Ave$QT(%b{lbc;-N;eC$i?9CODXY16n*DlKWnN}MVX_^1Q?ehg>I zb+b&Y2m}dcf2}{?vmEV3SifT@_>Xn+>WHz;Nm)-(n+k3WR}%;!GH}OtX4k2j*r}(Z zov6k5THws(JB&vKs&!Y;9bRDq6j?yr*<3`Yr^=`aUCSKjX06Z#$2?T}Cnr)n_?-uq#f$EZ~eHX*4~d{*tR->q}L( z&8aJ47uR9SFt{2!2mBb}m?a2LY69VPU{ks4Zqk~;YkeUT0ccJU9`CKXW$s9CgL(+j zXX&@hd|3)rN5x(_1v%)5*xIsX=LR=93sswf`fJo=#mU*@DfSj>j97LqN zd*UYZNQj_1X$Tcg=6kvR2kELoeIIGyx!_|};#=rqgC>nFU`jWHdjpitx0F4tYcpJo zu_SYI13>G-Omi`1QnN&+3V*9$zXyB%QlRp9OWWf~y9sGDA_v@(&x|N%R4ooR^bY+u z%D`0GKSEA#n`0}H11Aw%=D8j9aIPyN!77`hA}Dkqo=nJ6S|6~5d0JkAHDZ|WXW&i} zlxV`)qU+y8?H6q~wqd|9!AYmY0Y0+O7fkf!3lG#((p$ei(eylET7fUa{(%){1$Gz! zC6taI@Ck(0N)pmXeu|e#QUS0GjZi^GaD&rO@H!R@H%x*l&lS)n*8Yv%U+v&OHM2-h z6Mk((z!4OKh#R#b)Lu9zc3wm+m^xpC$UPlX7{m8?g$aD6yh+P{DLO0ZU~OzP7~g&2 z7j)3K`$FjX`Ki0z*Qr>WcU-+DMX>X9uzxC9Aj}4w~xw-t%ywWp;}*@MOrAs8{@xlK5ilN<{!R1)}S9i4(g$T4jD(( zV&OToXG%%4gu9IItDSQF(YGylx7uOpkOaSgq$=t$Sc;4k9uYi(Dt-N>1#zwSfaoJY z+5`#r3Ccwb7|r>*f&0wcZxRCBOM05etXWbtgAj-~6-#=G`5jffjT1!}W&}*NtU?}V zpLQMPwb8)sw`uu*msz~6;LmU;(=&6A#1ctiZtXME4|HMfPealbW0CEV*q)-?9Q&7Az6MWh(^OuZwr z=tFx{f9f6&Q)2M?*4O8u0MRtH#r>jZ3|^$_*)EuYr4(9#QP=-#0e;1fn|$aPIinOJ zA~&INiP#~GVnn;pxs09RTVRVNJB0m%Sh7q1VL%`_6Lo#540Vx31kbVevc3D_Y}Fgv z>F&F~!*+*}?%m5BBv+HL;ybf-=Hp(GOWJpSlXkl73Ay%kIhIvBX2Wf+uRlz_Znn0D z>_vKz&i{A#?~qns;js+3>ag!_b6)cwvPM7tlmkwbv4Ui!+sJYGb=jH_EN5FN1D8Kn zGUQXf5tawkzc%X(uSB|0rrY2Ss0QCM2BY|g^aSLbh1Eci@cA;xe5Fp8Q8o zb_?Ge@tClimZnij&6G~FN2JyyP2%+aqy^_Bm^GF=G~A}G&2kpq+S8XY+qZNro?_vg znB;pF1c5@%iK>QSATRs+HN6enKONb_8twlQiJVqAB|~Qg%NNR@so7EkldMN$>pVT-@eHAIuWAJ zpDSZ`0Sd(FQI&Po=S$^z1jW+*^sR$P%Kmj|$g|L!2Nwma!E_`(l0!XZ*qN-DfR935 zI^Zx{%(0v)yrJ+7R?o+LZZy-7Li)%$q*V;O(U9CHrdxPezkfz`4}_mKg8u6VQxCq* zE@Piqxq{w>-NnLIoHHE&;kJ9UFoLJKPn`xlPDy!w#Ran=g<_SvKxt|{#22pNnzHJ_ zjt>J`TgLU(d)!+6(srFDQ*rDq)cknFq*(mT$Z%>6tp60Rxm}A|sWv|JbLr4JiMm*g zxBj{u1+T7ezbH3=SU5ogWYnfloT0b+P)0FdvS#dlku3R@U^;NE2+hc>XUW4D#ctp_ z4)}F~dJ%|MF(?h0HISk(4RCcXFJh?CFX?lBz>uHR8wy~{!or}EJMCFvrP9-UVS|dr z&=&rsEwqa#WVS#VN;kdTiiTpi_v+H@egp7VfZy~j;L&b=rxzN2?K7o6LR&l-%h#Vb z;t3vY&qpzB4sw5D)yVM%xtOOOo)1MsBo$M|HA~_-+nD?uaeFxJIEOF(9eJvDWuz}7 z4$>kC_DX(3O?5OR9~0>2YHmdG=|?UuS;dvyY(^wG$v%9jSn-M>!^#WhW`XU4A9;Mx}8$_5KM!XjimC z0!M6wEX7anWbpFlp7a35-|XjE(9Zgkw_LlG-V&Xn(REz3B&85~w6~pjh5z9DK}v`h zr#;;Fc{-Fl(q~TUvd$p^mV5~8jp^!kpE0?~pa6iJltxXm>XQxad|h6cP)xJnK{kmW zWDw+CBzScbF*X#Jgs!_cxBF0n@aSOIxN2`+Zdux|(TKB0mDJwbTQ|FX#-*F1uP=3~ zZaE6~YUQII$(KD()C%Dr>6ei@PLBU?0PxB^V z1ZUEl_NKE+LFGlvi%-cv?KA=5C0Z;hxKf>p0>0hpx8vThQ;3_?!x{zeCcRdZ)Wx$V z)$=PFP?OE_o9ZR_7^JVONYJ)ywV^#9XllSE<`2BIMKKzJGtR^g)CXU7<+;skTnbo~JooBnWwYYjrUSe*XMg`6tv z2Gl=Pa^zrSLYmv_j3@dKaK^3f2rqZzC@}DHhRM`6$C+IS8}K1i_oW@7MV;Y$RT73<X}6O z{XIS!oA1&_pv}^;7Rs1fDHZTZ=_7eXf&2&W3AG~~YzIH`;8!nB!5LMe1#d-%pDc7K z!Y4){x1m)`SY{h0dEi>G)ykGDS#n~iS10=79dB3Sz>$_Y^E3Kd=j%w`Xo*ni;E|v@ z>W+D>-xiUh#lxT558n^K+5qv}w_Oj39|iUGIbQumd@m{Zi{W(XVNqcUwFE@AEV=wZ zHk^rRZ7i!C+Ld)!B%~a{VGMo~tO2SQsJUY@heVETejJcK)E|rsLu}8ZhKND}>F=U3 zeMlxj*h${4kT^e`Lyl~?n!cA&8wo9B8^AIxRM+uF_JE*>P}I6h3n_Q-Q>BPowBAkH z-8Z3T#iE5rONLUjE$rZfm2loG*$LLH@aV6!1WKk@1HHl8A_L>?3WBO*)i;`A6hDdU z=qvq#F8VGdNp#MC^U#eu(jDGs-emn4AD4Z=lLxI{dmvzhz{6Z8Wsxd$>ra1!>j8yo z=U$m{8aa&GEjI_TO`3hoqSyHlBkFWoeq?hA=l%O9gNv^sYx<|#rml?pAXf%ci{L!z z4c9Puug(rQo|QGvsy#UUqD8jj+OUGXRH(joX)w$MI$(H9o19b>QT?S(e`Bz*BQUd` z{-rbO*yhj%QZw_FwC*4&Z&XuSFP{`7o7W+?Q3+q^6wa*KAmi9+B?9<@;933P6(0{T z@S#?Z!-N}d=_>pIX#*!xZj(cujL&r-)sSrjpw|pHZ&fM$t0*Q+5$BiDtje(v#9)N^ zS{a4)aWTQ`7YpB6?}Nw@3sv2W#_DS_8>bHR`B5eIS_h276V+;^f z&C$T(E~o_ly_DqBgCAd}Qwjr;LhBVNu$fEYtW_*~5cnvQ1eq5^pxygTID8l20ioi> zGIfMoC;5!Xc=A?P76a;yOZF6u;ZMoF`jze~pC`6tj%oa8Pln%KdPOa)DQ1S16IIm5 zBGhn)g0mx0V3ZAPa239IJzcln=@(bq8-E%r6fO?*+k72;d?LHr^m`O%C{)V zy@k{~eK(Ig&@D0NfV47vpg05j@t3(167Po3&uWFoEg3~Gea#{bO#$CO-u~#3Ap3Ft z)!!N6$OQ>2KOn&I9R-zSA(kZjDy#G&8W3hmGS8L0-M4>NB-SZ<2Az`SFhGG)4&xlW zE0^GX9PBAYYa8r`?#!7+cDHTLjRIC~n>4?m@qvtdG?rXcczgetF$pW7gKA*bf%B79 zNuFG=O)%ObHB9saoOMGf``Nr`H)AppM&L5kdC6;+)X|Rr?Qqu0x{NYb!iPhqFpEE=!@H8-(u-^0E_AIxNwz=HUHwSqBRRfB zmx=YM)JtrJETdPH1uo5Ymxx;d)+n3O*rjjV*)KN970w-tV|MI6UW9B`OcfYPp){x1 zYgQ3aY}IWG9jW*PEvnj9>9tTW*`77KP_pL85nyM2X3-Ttc%h8yIElm5hV8iyjh*Hb zzhXl0UkE;cX0U>szarduflhDqz&j{!HH%y#^xB|}T!SE4!zIC$H zuU1c?u>jpy$VhEEeI)h1*s|tfNBh@wz}mmx<{gUwBLO)ayPI)kyN$u(QN7K5S&!rj z*#q*yMhb%#XA{b9MhXD3yE;}`h6kNhdaDi&&f2~AgsIf!I*cjV?1+@RA?g_LZE9v; z1D})HT-X=%!>+*Cc8@U{V7U#3Vq4|ekNRbCF1-@6cq3UoLGkF#ZB38Y?EdeQbC#1q=3lcD<)FGg$vDA_ zHDP%?l68;yzI?(_?n;}sI6L(zb0tK+@2=bQ-_;g|A(WqQDXWERC+qoGb!b@L4Sfln zjmVGq7b77%T;pGiml4)<^ZghViCrx#_eyT6bRqOh%(Ict@lN z9uf!3BlK)<%>TI7zZqIKZu`x$VH9?oVq^S8HFd_^`6$-#>iwpNbr1D0FZ^Mj_HJeb zQ$s#uYA18wXcRLO**>5VT`DK9lNx&Bmi^6Z8yg^i!60Joigd6wJ$h6>xi7V6BC^wK z$-z6!L$t_T&L_*Cu?ycgxYsXg4)d^i4GQ{s5$0LNljL=CM*zlw?9uAx)ueXcm!<{? zH@x?@|io~XQ>*<+T%255V)nu zdf<4a5s0;IEj~q@1(lF>HOcudKM*%*BzUV+LG%q*Qu(=^Um6BaF{>wFO?`fP?q`xu z%sU32KNKj`6skY_EY{k1tTdo)-ZsL56meq?d+OH1bct;fqd-&jwaYZ%Nj=!J4yhFt zvZQM38i*}f0$`+}v2a^|4p8|djRp}u#s(T{wa4>#8tN#mVwcf+VyAssOkYH}5WwU^ zw%<9Xpd1ON7}mv>B0lPoWOZgHJZ^+Kqwpa6Fhye@@i53R*Jyb~zrmwR>R88<7_G#JU{NMsPjRBwm4@=Ad)|YJ^vv8@p{7^OOrG(IDjN=T~1v_MR4FB%gmSIh5k|F)bXRdwq?!A>l?m5WtrhRmm(Y(h$ zVYuT}MS@Z=?w)nbYbbJ8I&-4rWh7`CpK@_1~aMk zG{fG*qO&UFz#rG*S_Yl9C&sYnJTRVcd{6XTisVdMjFWAJBQ>+Y9yMdr z9J3TQSCx}}a|@M#O_>)QpkZ~1%0Nc>8X$M#A^7PwiC&F+Lzx&B3n8^**s%BG58XU3 zl_p$YJyl_|R_|OnarEd_Mn-RyZe)rML9x)Bbc_PD*toSk_vUTuW&~ZnPnqW^`iRu= zT;Fhv=jvf*X$J&tFNI-}ZFqZzE+c~*@~#9M?q^u;31_|0t$LX8dYG*I*FvS>+SfhF<4vg@AsWZyb~ zx)xg{DAUN`5=OaYfgeR_&9g!r2w2#^6+Kp9HH;5&=b1@5A^89&gG(%ydt1C`5|;b+{44JA!akQ#6li7J zA_m2mv>^?x)hslkR>$+TJTcKW6w}NZf382b0MWmd=CPl>IYo*oo^Q?DZp<@@R;18% zHDC9NUJ`}1w^Ma|EIJ;Vg$nOHQ)aqEkG=)BMb~xbo}LSQLER{BNnw6RCfGF~vSD$e zp`i7zV;7u84Y@|m@?cATWQdWoK(mQyR+hIIAfmV=oELT+{^~bmMidBW9s);(b_T-Yhe&pNF4^4l5rlk~bh=_gKGJPK~ z21&HWJr$5-q63O~zQVo$epWhUdW)HWL1Scn)h=rD)-P1()f8l7pB3oNb;Obt{$k)F zYP1L(|1MYh74m;HT?JQ^-`5>t=24UL8|h|{kS-;Z zdWYYCy=(CSxX+w>V()$S%_0bw_h|JwyQdDzPl*vlA3A8TJ`H+nMtjvH123+T#;qD8A@Dep@^LqcUI0AY{mKXGW=J6SxlB_2lY*IOuhb z8klfl1rl-aL$%iW##{MVgPd_dA3!wR_&Ey3Am27pvn+f@G#q$tar3++VHNo|f1u#P zhN@w6U7Fu(wAkI<%jH%4EGevEWnTEEFE-Mu=AKAiYhtOvgEz+_I0ISi_be?O&msCE zxQ5aHVhcgSCUBxyMLDe6xScu%l3B^pX``NV{_^o8uTk2=Dxm6nXVqX|YqC@4qzJkG zQwMiJc2+$%_x~7N*+OvmE7Mo8j@pFkJE4 zVR-Ia>eOxwQbrwAoWt`Z1^+h^JqOL$e&i+HK3j}3nr_(6RIRT8r*CZUDc4RI@$~&T zo2l;*8X$%(S=|{1jb`XQ6ip(AXC3cgghiA zKOm*vm?m!4933XUn?2c?QSdrQB!)0P$p14h*jHBXL`SchDT|CKl$qYcrW%Cno@+U0 zA@O9qOd^d2o|`AJ{kca^g6Zby@r!i0&2|8^; zGSY&uUsCAD?4fqfiA$}A)8Dex#nBd3%jv*aQxR`7jU>F1M(YMXS$4El$?iu)$mE&2G;( zm@mJ$r8CrDCb?rDk#COs?42viB0MamwMTdezAl}*a2UOh(VEbnldOiuwta1_G>}F2J%dJZ1B?A!hu|MF?VRe^`Q0_nG&sjGavnHY+ zc@ZGkuH9m6VZE-O2yk^MzKdXdzyRVm2;+?aZ64rbai?afTu^k)4##M4)zrdoQOTIG z8T^xojn7+K%+xga2)&Mkh@-)e=FMBx0nLj!%d_iAQFrr^`O152i2+9LnQ4|eNDcP0J@ z9o|Od#jiO2i|?iB`i1jh{DN>AAz?gY3B2YMyXu)i0bhRUR$)DVOrHHO!s;p+e?vXC zwmtjq&YVRo^4JsefH!Nc%knEfJy+a^bgJO19U(|8f@kF&kqkr7H23u#*xH_yhn?yWL$j40#sFiCZa$r;?ZO z2)`aC>H2V@xT7qlYapm$^twf|^{xT?BGFBM#eey{M)-;%0Eua8e`FWRHf4=J`Qi@= zJ1kUwa(8Bq_UL#wnHNA8;5dLl_SeHE4;aP1Kqe=0LisCiVd=sI3VC8E;5GsFV@zD3 zpI&0b7(Kw_)i4&ee4-YPF)yi|?YPoesrK5aAa5J^YA-v+lora~JHrS-x9#?^J<&Js(3Z91Y%>2BFClu)zgc^a zmdnu=vx5G;cU+=XwBFe5v7%T*SgO=cpzOE#VJ##xD-i%1DVrn@b-Fe!`#`Sp#{UX&bu7H}kDW+1sn(o_Pi^O|8b=y^fcAi{2ZB9&9vyA2LCD z(T}fbb{1FH{xhRY0G|DrM)By%)Wl6`|D_UkcL+C=C>WpQaMq?sqP!`aniH*7KcYij zBIt=TtrP(LKuFb8P8L2qrk)YbVHSTnrCUx?Dwrk=9nn3eNk`tG!&R1?zI|W-XX@ze zAoaRvYNe~gpDzZ5-`ZgC6N^iaDS?tnfYk;^S^VDuy#j3Q*s+>a=NXUe)7UYAw_b5; zx66YIrqAlj9BAtl3TB!9r9nm%vnbb zClshWLtKDd=a63sdZt$vdV!c#MNc7F_*(<8alPAom>j+qexK)_( z_JOp>tMX`FA19~Lu8OS#fol_HR*2`t6EYcE0G9z#TLo$x^qlZt^^{)_icV3}fjRIn zUjpr{dK}t_;o^!SQa6~sAb%yvh1WUhS3FZUWBK}ogX%``hJv++q44g|Bi>Jues~ai zQEd|clGnRj) zM4ZRfoQNLhU`#{7?QSxM!sT=@e27V8Md7bBo5`@)(wy+}z_YLo50%JA6qM|_*|7MP z-C>Gqz-2L39JOhTmN#UZ3sGXHy3eW1lu%hA(mS` zjQgvoV5P`J?Qx><<4^QCe;E<0^HRCQHJOX2{@!}hAA3vs49eC@V=C#^PLRCg>M+TE z73@NM1V*&p2=tCbWd;MPV1_ca$f1;4ms)?Ew?CTNT^OWB^GZIzaD`y7 zg*@wgulSvI$sIGv5!h&zLMKy^TNV7qlFt!4a^QN3h1olL(`g! zv+3J;KQ|u_X1nkKZsqr72lSJka_V}0yphs~b5fJ%;Lww0Jtq7krGr@Tc6W*smN@S_ z3$7jlzr!HQ#adrfz3$b;n^Uw&r5x5uG!-<>#HAeTN-bjyVaeBsacTeN_7d%5LgWe( zGe>6ksB(AZVBt_g#tZ}WF9J}J_z=v6+3_pv;dL6AdDPYKGvz`4VdJ>z8RzDcOvQdq z{02`SIJz-YSk;j7CegEn93BY=h*+2gH~n3d%-id+N)5SlelV1ril0|gYQ*A^zKyZ1 zcmoiZo9!KF)^n6N`SYij<^XW{+Su%n`8dvW1!s__img0)X7|o4>A)AFya8I=S+mDo$F-2YqSvMd1~8J>`Np2}{-)27#bxZf$GO~_7XNnD z(CoX{X?jlOlng6Wws2>J!kgA1A{>qP`_X_v?B>#gcX%M56Z3bn7@B;+<^7VzQ}u4{ zt9$hN3ukoMIa@qOaL6bX7CfMaZ}v21DtFN`)@IOYp@1>vDGR2~yKKQP%~!wEoQ3Wj z+lHdGq(MdGnP?izKO&#M$oAdZ1J823E<(Kxvfq7}>CgdCngC!I`xS28s(7mJeJVxcZm767laht_4DwVwA}n0o$Hv5V<|XR-O;!MNuS{-(|~Vi2nI?s+beVMHn1A6Qc6 zd+rH@zD!a1{tENq;CK8Sar87E@Nb1Q zUieZ^?oF=RR^G+6==^TN9iA*w{Pvn0{Dp36;xG3cO@MJt({KEn@Gez*)g>S zVVaEJPGFB(-F~WpTlfzrCA!M>IV)UUR9ma?oVjtB`b$8*)PT}hED5g{6yW7zNabW> zBPJ-WtbMQ47Makm!mIf1cS+BQ@eu#wr~1Dg2XN_6x?FcUS5XrJ6lk$C4e<45xE}3u zk?0b_yPLHx4|c@e9Jbw2=vxiY>L~P00md?9&$&a!lrnB4p1$D0diMByly$!?8cyKsPpyGO`8kvGv*jQwhY}W^foD$hnPVJ=%E7vSHUx(;^cph|EY-O zTa+Zc77>dd_U00?|6^Ivmzd0SYx)A@xHE(6&C#m&UHOt@A#IMcgQcU-xpjf zq6Hy6^!2LXF{YiNM>`!CiVmV_1pZ++G^*p&A#xGM_RO5opgFK8JN|lx&Uv+*mWi%S z8Lb^L3&N)~ej5g38ypz1#(usyO-i+M+$4jlZ}6k|Y?9nvQGZkQ&O7@06mGIG zzr!Lm@GwpvI-D$cmC!gQoVloiu3`W;3;{mIjAv*)#|`wy&sL?9^ZZ`tT4PRy!`Y?> zvG5S$ET_;>6`Q#IK2;Sj24-UgrNk&Bh^?z44lL4CO1jauSfOZskmYrQ*=-7*WLGDC z>M;;-VyOF%O}gVh$cOshtvBxe>yh5QtJTY&!S};K#1miDq|}vrI}&wY`##q~BXaQQ zZ}BWOTNBsRnKu>j(Tn1l0r%`3mgB;2za89nY1Sh%;xqJc?cd#gh6%}mi=s6t+WXcM zU{gO0`j!BQ=*|wiWKr|$j0jH>{NPB%<=wYxrim`m*V6s&X-&iZ&4v=o1kLbyf7$7T z)vaWJEPQsTUrFwsARhNWdEvKwUq#1p;7M@bLl_VziHb{v-+U?-0~h>Ul#u!?JX|FD z(qHks&d3bzWHQFK3dfOdhAaXt6<-Rx{`?2-9W9b;Y`&06fFDIKuJL5h8<(BX ztnj=T^%JJLtGXKZ>f8SC2uK1|N_6B;C-3XW zRu$kB-x7MoN}LgQuK??IU_(N}_AfruEOd!O?_^uVf=m>}-(QcV`}X0b&7h6=(iz7w zFhr%1v0@x>3M=5pfcp)tvOZ3o262y&$)FLEhPlpP7iHWuWq@83Xyoi^24SI1*p5RK zYSb!5x``Wxt(_Z`^8j&NlR%xcH9Ae-*>)Bao#?p!J9VX{0IuidC_n%-V9`bjq`2I_O z01NhN(ouCI>1}^dRhu$ELe|Lf+Eo2M4Y%9!W|HI4E%!T{$8~{IGBS*-uPIbs7O$9U z%u+MT&HxqaO73IK!Gp#=BuAki_A9E4eZg955@R&Jvf-QNHjac*iv&FSV_#f#>DFgh z`{`Zqa`5#9BzSo9&S7`xS?O`{^DnlGTg-t8v6+mAuPE&BfB7#Ir7(2hGq8R}hBe_) z6}an9r=Yv##FWC1C~|+b`9ylBSh?BjA|ZM8e4j`E5Iq6Q(w=AhW{4!1?(WJ))J@&xa8+!`Jk=Ua8kz0q6c_&d!Ss&iuWpqL2=! z+RxZq3?f8ph;~@!aaeo}u_%R$wO{^}O5_LYj7zGcVkT(+i_Cuf+^4zv^v*|8^n`AH z5W`x1+s=H+VO4JyYZAc8T~H5&X$uJaZ=o0uM%~?9dN4{#7Hoa}j)g#4QR9lvx;j}^ z%`%a^NCf&7VGDU)0yZtZvqz>D>fH+SmRhyZ!~gjPM7$4<4Hdl7SyTkh!xgKcAaVk> zIsm^>jp4D7fBGU~X{hj;YrX$0EZKy~MgIO<+waR>2j-7TGRKQa`@>~#9aNbH1&Ob7 zNIEk@dpZR2GLE(vvCLaS*`>PVW|Oq$gVCGyz&&l$7=scp_MfV>Z#?mUELmos{PGRC zo&FtaM^FfXtT6rtk=D^%F5*_rVrTZ2egjQdF&@fK`P8_x+-h&KW%1h{;6-`Od+WQc z`ZL^mBe*q_8MOl3%YLA1&Q%n;>8l)W_+o;T>!XS+Cg0Zg1R>7pMrrdB?!@pqRt?=4 zmHK8{NsGH*4j-d#e07mF|N9W=&B{DQ3vfr`6hW?$p#D@}H;U!KBWB0g(mM^B1WK@H z4p_4PEdbAk{dZWENwNGuYFxOQ@Ea^)fbeL9Em~OhFkHSt`LzV0RDj>x6q`skWS4a0 zfU$OYiU9qR-k_w(0Q!8AXsvbmTFh(j@A0{Rl$-+63b({fdOKDyrT%MBG-YBpW?@{` z*WZ$ffP?rS9b0oL5}wiWxX zZ|xZ&TS}Jfj;l`|KzH*P$fm#EhG>U}Zp%huB1xN25Q~ddN3c18DpojJDnwbQtMMf3vrX&JU9J8PV#HB6^C~icZNG_<~Nd z&vQN%oS2oIy+>)8Ega+jUD?fG64u6V+O!2G3{*DZC@*}?W)vJ-!zEHD)ySK;-xU%- zHx+fuO7?h#RnVTE@BFmF{lrs{QA>MH*aFqAj~f{^ubuL^!Iv*xsWmSr(nxNO^!&m&=Qax_oR%~vF7uvh|6-r9JqK7c@PR!MPrLGJ$oAh`Z{#4oSY$Sjq7dJ^)CnR(0lhk~#uzsfV8kK_d;ixvIOvR6H3yVeNn6e7W>6wwfC{+}a){9QK z2=nbtAQLY)M)UPX;rB*;G}gBXbQ=anRf%Z3y0_7=0(bGBPKFA+qW3M0+lm&(161of z$90r*s`91qyZ*&)Zv0n3?IeR8 z@l$edt3U2B7TbmY!T06*7sa^r`I4A#ZuK_IF56*;>+? zRt;XNL*dcttF2D51z2I;h8*M&UMxJKxH-u zGayHsP}v?;(V~Xg&!%UK#s}%n$e9D~VQrVor75MwZO%Gctxv9FD#F@tE)T!{W`7wLw&(!og_WL|=41Cmv(J{@?hQT$GnpV!O)-?lNpw^o%&s z3JY%X@m%7rlY*6W!XR733l-j6jc}iw4Ck&jnmq;(-eH+UjDHHs7DJd16GY|$dRmyi z->sk0q9TW6_sU(pBdFX)xOj+{u6$nHSXw{{C4NW`K z?eT3&Q~M+%3Wz<=rju)uQqT|4D<~Ld>T3*_2O*$28S(+&z&^=8T0yn87ApT%k6&h;|+&v}t{cfU0!)(H=Vr?>f3I=Vafv z_#oZcMF%uT2Nt@=#)xL5vE1#{k+o|tZAMi;yg|N_Y>ln9@#sjTgH0<7l@7oZ4!KQw zUjn8O5N6<=9QnSvl7jb#&sNbX1Q*ZwH2$Q_h*F`lvGKg)Q?am))<*Bqu>(30=uu%x zn1EkY{_w%#r$CtD*Mo0mz1j@nO?$w8E>sBDkVUHJ*#`;Vxzjf#RY@q^9YsBe=jAd7 z<{TpN^O2r$MlM?8yKC}3R{!MTGr#dF$qu^OTvxDsXrF5yXsp~1Ui2?KB9~Iy7s6Xqz&yO z_~S-!4`8W7cTh#drFPe7cs3Nrt(D5K*NiH}7eGDeYaFDU3Pn7XwGs$E0HskG1&cL& zyHAvGXHO`X&BH1Cf(nh&GY6=o|Dp8nguzVtyFV^apaHc&_lh*b_DMu+o3Nj)bh;fL zITJwLNrMw;LRb0LuDf4{y^A0=rmtnkV*;|`8crLkHQX|(<%OEMLMeTNph z(PNaAG=hDVnI2v9i`mw>w&gd{q0y!L=BM`7hCVhA=$A!#B|{esrv+K@vf%JICbf7d z`yhE;4pF}aTt5-GuX8tn(hWj@9iBdP&N@E{Z8Zsj9T?q07=(K3h#RD2l{wn{3xCU3 zi5SECj5S+!8s2G=&LIhMs1- zVbF7;5_Myhd!2A(KDt6~(psywAIL8Tr?=|e474Y&g5%eFQd{;|S%M1q(&&{!dl>n6 zzyJ*=Mnun%x$+eLnLFdBuWMO1xvQzALD7w{vEF{__mmf5b<(vRF#)&XWGe>e0oXfC z5M|t0qV-zksHK(&^`66|)?ruIcBCylQ= z$e)To5rw`fE&KpqGmPPuDoCc9f;i=MhH-^x4p)!ko%mT6x!t?|rfT0i^;nU#NnJDs z{qUM3|7zG#O(w{Q)8(%np9D!giW{y)R^#86L81ZotRe1)={&^e)qqjy;Slph-t*R>lY??`&lSd z{YdBr#t}R2S^(U1T=Ohe{WZ}px6TZ{vdFP1=0)?3d3kkT10_p!Qi;+@|%j3Q~RNb?7pk#jBe3NF7+xQd#>F zx=;J2<qgp_ToE1EHX-I26zAgD}Z*6nwH{Bx;(`i9pSDX>{SzK+bUeQ_5v%4GCKcbn7e}|e{pVgzJNqW# z%WUFf#~+4Z6=>o4ZwdM7H9)!lQpC4)wMLW_OY!2xRGyz`P>efJh&+U?4kiK#H2GjZ z8Jp@1Gl9U6N?(WLr5og3qzk<(nsLdeWM2H>_z+lDVVqbu?muX(Z-#XVOQ|!MTTj0k zW$Lun-LsvyJ!u3bi=3m^h6QT|WB2C28(Pr$<$?+iH1TKg&gdei+duBN5yB^`NC3Lo zuGsl9i1h*RFsXv&Py8f}H`g?^*!_%07UOSl$BEi!5NjtP;y?_wo01c}OqszlDIKY- zp*Kaq`6dLPM41o3wRH+D23Kb_Q2DREi+FWI=^Q>KtKZ$Q|LS#w!yA|wMm&&^|A>8l z19&WK3vp7xss+yX=b|Ct+MORc{`eJWxvG!go29LSbO9Y}7_!*TL-c@Vow+2%1q_Ze zG@f0c`1Xepn_dM7?{33{svmwnY4EM4}6`Bse!wB%gA%~le#4Qyp3y%dTD)ud66x+cGu!j{DeI`aF@}Icn zyli%DRen?-`cyT?0@IW>)CMt!{f||$V4im3jiyx9O)=E-B}WD8Ddjb&Cyc zJ}kohx2i#f_?POL$6Ey8Q>)}K<0Sw_hWiTb2e7jHq3Q%j1MjC|OGiJe>6XpWg1Fl# zbADb3+!`|2nL&KHQuGbHvASUHOYlYkLI|1MEk`2je52-JGB*^+|rVz=baZ4JS_Ig zQ&s`Bme^OUEJ-y?G&&oGr+@+Eu$Kxr^^*G(x?ow@v-8@`^cn!hJosw8A_i=69t7Xm z*h&kq;lhN`zxAI_YyyAaE8z>?m>)?|BZsQs;cL5|#u!RJIXFAhE1Jmknwq;F>U-OD z{fF}OlVs1(T)7VZ+bFmAW~FO&N$C}aG|O)z8&4%`za4q*Ih*;Y=k8;Em*IDl-^9ZBlyJrr-k>-JI)v?ZyfwgD0m=5%KDB6qKk@F?r) zQ)y)cUoWQU?@GVSnvcSu9XWxZj#DlUa9^8-g8cl}KyG993C-D;lecb**qVU(u&$Yb z(#lOu<_KBRigYf|30V?GL=_yn#~y4o;g9{1u-7)lEW^;arMRU)$4S-_PK3ad(324q zXgL8i`@qazlFiUG4qoK%7#EXGaqWEG{S?K-h&)!kW@o&Ynwo#MxG^{2zj3YsOtJm^ zA#1v|PzVr&cv12^u8jYb4hIANCfB4FSSY+)eU=zsoSbUqTwD3_Gowy2f@rk|qYG^G zGe$_ZNG@$&kv-Gzq-F!8uKlaG_z1OQZ*A~a_Ebdmk&K*wA*}><209@V26hjI;AY9N}(4A(zkuuHu>n%K2KlIn&I@9&7@3Sf#*mYC>CpF(u*XsO4fbUxVMBdP)Q{K{tUI93BuX&#kL7f*3@iHqf!MC z3y;(X`FD=7T5N#n8TnF=^;#Q-hB{hj8|&GX(|DJO)yn{HK+(N6W*blrhkGTASS`WVaF@y zZRNz`hf7SsK`r*Rm+JaN#9gcBGRk(m=ACMF#oRkhv23+qln~IVHa1nbLjUKcARsSy zk2qUo1^6Az`El6Tkp^eh=**}cTQ%^-+B!s z>wy|}fC$9Eg#t`sINidd7?x_OpI5A*jw-TGAQ)Js*Ufq4(O+faW&w$XBPJpG>|@3v zw#*_#rAJhSwO*$;Q|Q$Bt^Vayu?g@}li&K9`EpJq;jmWc+qU0UIIiAyp^+b1+)hm? z`fc_|Jyuhg`H;_T$Q@T9$>3n+;86Z(Gu=ieE^z9Pp1L2h5gUs@K$OQ78+fN)OezOM znkSbtM%&|S?xbXn>npXEm^J%?FXIWQ7|Np@5jHgQ2%)zSt(jBR+aJEzgUO#4UU_Ou zU*ZkN4s7r(vg_9)BAB%xZ%c0v+es}WaMqfVGVSqYFi5|@mk(w+42tDsE0LhKLZhqK z;7)H>@=P&@otU^ArsS9)b^THGByQ~92qY#sI24)*d#fbGQn}AvPH4N|khD}6lwGj) z6iR9N-A41^*R2KY2mgnC{+RJVVOHi%oPneOqZ|CGn;x3dI4IaIDb+Pmss1@#D3jf? zKR9GPm03A^*^h7gE%W%SMi$zIj4_TY`B%~l~2(rlIJKMGGR6!HNGJqr5PKtlFVx~5r{a7L%`RVc8@S7e)Z!yohG$wo^Q zGY^+B>K~)42^l|Qj+Q^=#j;BF$tA8^V-?HTx3KizAkqA38+a-Djy|AZrl&iC)cW$G+WcNME=8R8ngG_Kmm)Lak2ws5iedO_de;_UInG%v*{E@j@Qg1cxC z2ME~1eBRToOAIBXoML3*4=zu$f77sTrb}Xfz)ksrvZXw8YoyF_p<$ChrFBN#guDR* zlwtiq2*!5f6Lb4K$une%2kTS^A=kM~gNJ`@EjRs#jU!&n-%FNsK}wlIJ{^pT@4QdW z_BXg;>EYf;v?>sbqDCLZ;zGC!!CkKo=v}3Kh{^Qx51RrU(D5}Hz5#M|eaZQr;A{>S zNL5z$ma5e=Zgx*MGfK2)a3yn_MNq_P#jF2t92Ohj3`JeRcS`~lRxA6{QfK0UtIx(t zzyGMvc&`@8fUGWyzUQNXS^v7u6%aU=Hxc94`$RX|qHLYTF=;X*;sg8MVBOQA7Y(^V z_8^5(WAGKA99p|&fJ&>w6#mI4O7`!Mo{J_##ZgRHr^CE{g7kb&%J!fl3C#R|^x|5lM%h(-g&6YUfT zKEj1`CA-3pZ<&UZ5~1r8fj$h74t9}lh3)9V!(jck{jlWyIBk8mgD^G>DWGRQKvJ9^ zVctJV`TM@;kl81)z!_Z|zVO92mJ?fI0CHEKju(Ft_6b-^(2Icmdqw0=F$UA!^|f$T z`ILoUYEp?+@4eW}|7!uf!e+GcDvOC{)n(Ab1_@9Yc|bF6Sm;SOVpTsW^d7$>6uC!$ zg^_-eu*3WMRK6uBG^W<@6=|)|=(D;mad#F5;GI#WhbO39MHDM4oK4fjev+yFjS$E_ zYV4pLZbW(hUu6uJ{;QSBK|$T)*A}Av%hYSbC;*INL6E2I{Y7fEtda!0l}`!rmSJW6B);> z;c9wq+?EDYUjJ-X2n*lu#3g!C00|hh)kus-Or}P}t$Aq`hi!TlMTgZ6<`(0EXj6yb z%ENP}+77jcI?o|Hr*L{*CHNHW90}Lj(Ez-*-JK&i*dwWyFO6lZ>#DO#AC2h21St*+W^ikMzoLbnVoulJZM9dAnl8P; z&iJgd9~6US)oAzvOT$xQdowWzz`pA^I;@HLl-?)W0MRBLP;l|RKyEQ0v7 zsLkqYpff`N?$mzHHixNn3Nf{$#bQ#Ci>oI)M{*zFz z+hdqK2na5Xq+mp+^vd820J@?cN*Ust)- zuPwi4a`urE*5J6;u=Be@HDb z6(gWi3A2XJLd{tWeTa>M?L<#qGV+;rKw(YLRh*B3TNcU#x{c;)kj+ zr&pI17C|f%$_nF}qV3F(+OMf5rJ)AaD!QfDxc)|-K1x)O4K|^?f85f#9+fPk=@_ej zYooF!Gf=L_lu#ZcvjGOlE=Ml)WUbP(DcNoVu(K%zJyRp-Lq}fO7 zH8?F4H1~~kst}nxw1YMct@$b^kO_PPZ0v)&Mls#`EZ==ZZ@%+f>%vN_){78Gi3NT! z&=v~WN0b-^(hhlDHnadxx4i@cCQXk5Uva!q2R%nR+h9P!?okF!K- zLbBoy>s0jTgy-{wtwS9|L(H`yH$1uFpnf)(pvAJEoT%HqKbNvPLsFD*6)ElSn*rmQ zUiUQj^mpx!IaKHGh5^=Kcbh%M zZ)NCKaBu3!h7pZu@-Ao-*28$=7rRqUiZ?oJG)lGaaI}Wq?PakU$(b062beeMvJ$Lz zAfIg0{q3B4VZnP4!=cV$(V&5V>0r}DEw}MddJ9Fe=x2Op?vJ7t@zw8=;fHl}-dKAj zA7Pfc4EOk>9xT=#Os8>>xAv5^+$wZ$cJaM7E+ND*7eL2@zYpXT?SIHOI_Bm=+7Px3 zr0)K-kX77~*x0YDKBy+1{%C&I$*qvb&G{P5j+>+EhFd#UiFXON-2Q1!7UNZ(?o3@7 z?v+naKtNz4s+cD`O9{elNAUatSDnPi&M5nv&XoG_cBKP&#;#xHa4PA-Ro?}r@Ie}v zgMq~JU~l-Yv>vCCQP+8i-}vBO;05{NSYBXd?H7eTH5ZH18sg3QJzp}`rC2E-eOKPiezt+vrE2|(Q~0tq*aM( zwmx-#T>kG@t^=N&3LSNBQYyGGGw=daY=2QIA~(Zap!`P4g?^A}AC-An8r<*` zgdIG0#lz|08^a-=Q%it+;OQ8 z;^&f-F=uLqhD+v%U)E(l4U(Z|lFB2>9eRkE)IO!EN~zHIZ`;Nb~Z&wkPO= zAxvj{cUwPo0QjDiCG8vLVF#=c(ASk-u6{n%5VSx{|*UQ>m(i;?#A zJGDN1)A(yEAbfTsLiqmXek4J5zU8 z6B4c5*9tYC`rK3J?2Rx*N|~Nl=#%e{y0*-iHjUVhhjE6Jbbg8S4I-mYZ9`aq;D#2J ze7O4T65n*D@0JEe?;+*7x}PsW<|?V(L@d6CY62SQhbgK`VvbS$3Hq!8xQL$e?AjQv z0*pc;mFf%_LoEYDeuTYrg|dV@!x&Kl7vaIvRKTZ0iXMIR+eKFKaf;Xu^PPAjT$-!q zHY$CcTIs^zSPpO-bC9ARMLMeuO6^aPJ9K!?oXZ5T0fDk9-=hyI&@)V>Gwk+jkmLm> z84ObSAg%>-oO#fr^Fe8sx_w1o-l0}+gZv+Kp4Y_pqT&OIn@9AIy<>Et>@m%~shxtp zd-V)(i6}~w$Jg1|G+R@bELbT{Q2 z!L|=@-2JX`Ps3CgpdOZk%3yEoXSL|&F)|VazJ>J~o4^w%8xq$)F|NR~kPLFx4pQZ_ z!bI9KC0uJ;s9B!s=z(ZMUFRUfOMl)d6_bYzTfJDABmZI~@{ZHey(+Dd$(S=17I ztGK>8yk#aqq~8IfIYKYnNtry6S}mcvJzj7_fnb7dPUAHs(0@)eNdrcDq<>BIx?ixq zENn$#KK!8SS*3J+zhtRyZ%2xJv7)xPr$!}kUVuY1zz#703-NRV2gu<~Cwtbn8`^6N zqYNkxyNXQ2K+;cGIRNxG_0cG6#QM+iG7KY5Mi@tSiiy6uz#}csC1w$>=;k^5`p<_? zbFnzT5@Sx`)?QOEcELo&(}$;Lb%c+LmFj$wxc~t@ga#+hVVS)QD}^t2Euq1MEo{yf z>|2!SL3Qvs1aJ@xDExBQJ056mT$RjN0-m?qGLH&cF5@R>t*^@!jUOkT{n-n38?d*^ zg=4dNKO13pBdp(~Po04NbH{Lx>3g{%Qf)NfEVn1}`m&NfQoYTV<8M!fzo)i*?*OUtRXRpRpXM&$+ofFfNUTC_zsy9%V z8T+XA4xW|Y=l|Kf0jq~MNAv$fOJ`9u)WFmF0s60s#RB;`BVjVrlb>v2wAaIPPHYdO8%0Z=wB zvfNYeFgS@(H%m1IbXDx(xdn^QpvH#~uGwi(aNsO}dF_<(v^^w+IA% zaBa602&^1}lml(uXV0a-9;gcaZB=GbyaF>wOBVMJf=K=3>nWpiD)yKy5!oRMu&5!! zxl!$b`3~#}PIdWP2}53g9ZJ`o?M(aZnHS-FS*x4Ox`CJOKKB=}kYh`^XrN)OmsZ4! zUrG_7A01kxBoI@~z%!GPRtM)wkK0*OdL!Ty^{FPta z*kyb}G@tD2^ZCOnTgaA;09#BmOMXu7hO5ZMQGoJ<`3c+$h&{snBrWJXZ#{^-6Ug=3VwkJ`A)?4X>6N2hfsh zCh`qkT$DS0`IPB%*pX!Wn<&T!L&o-cG32vz~aiq&In>MlOtxP6No z*+bnyK@@{t$x!LJkaF|p5|>p!pf-W)ZcDujOxp3)0)AW$xweZ@F>DO|N%xCrWh1x)x$S?7k3J|XLVqb~} zGHo~1)JfQ39*b=)BonKfFPRh;L_MM(Oed!1Dq2LTiK;Mrj0-y}l-lFBIoCU$BkMSK z|HU|xI|P;fkamXC{?Ia0iY6-0XR9=4wiM@+AJJvY&NL$si2$wwJ`ToQ99(T8J+f_F zZkk=e{szph=9Ama2i?%-(<;gfOEe)yc;_9DjD$NfU+S2LmC^n9xFfz!QyyLD&j_;x z<)7Di%T=1auYxyc+ghLS&*gO7O7RC}`xC$a*+aLoJ}g&9a3(JF-FqO&ZzwpNK3*_7 zQRA0G0`H&TstJ3KYg-ANieR$Zg{1`9Y@WA>5Fo_wa?hO?x{9mb9uC*;3w^hVy6o1^ zkwCJ6KOM9B{F~n|=Y(v1xmPImuqP=#^RTppLitDUO)u`#os2?zyczq(GGgGJqrIb^ zOYhHChRX(=Vs~~d*`z#0K-K3Xp+#9R`Lb!KMgMH4BkZ93oQRA!a zov4t%010ya=6&`Xk4p7*lt=IUs8nugrs%ln6m|}da|6W?YFWB$G zA=5qCD`N>;@~mpZDw60U+pXb86q-Svt1Wz6E{?kOlliv#-yB?QcZc;YUz&%!h&xIx zqQ4O~*q1VamXR6+4~7<$2N3|`rv&0dAP6em8vvEqG|Ii%2I=y=&;|z-YXEf+73mY1 zsA_ztV79;auQ!q9?(ft*#7}w|Hi)Y*CQx9{m8zPNqWWB&ls$BU0Q_HqWL!hh|`Kh4|dGo+M;D>_!;^MDj-)*$K_b6AD z(BK;3b;2`I6T|hqi=GBtwpeVoLAO;%t&lb-cgohFDE(YCTe%_!U+b$12#ozBl2ISR zfisQqa&m+^V-8sqJLfiL{9!tb%gGU3)dJ_;bRLZqH1ID?{_6i|y6UK?y01-1NF&`y zNtem4j@Q3O1FZ5NY^lQcZoDZ&PYgyFd*S~`K|S>HUG{%=k9p+v*Vtl z;>rFSvg|KkY|&>C+>t)MLJnbBIXW{?cUrJ?q*Je7e=sMaX}oJukiTuhd$jQ72j(?D)9kj?iJsBfC_H&BFEX>J2%x*wW>!Rvid7s`EK8wk62X@N_4;T!Tzi)-CUU3?mL} zS$cg-lv0@#2$c$rrYocd_tNM{Bk8p9dyj}zj`-yMhB_Hb{TW(87-Sx+4QRj;bgJ$E zPkKHzxgcOgAb$b+w>~syF=J^d;4n5kcll>1tVk5Gta3+y8TuDp?w(;fGg1npBjMFi zufw!I$g{>Z-z>i2YW`hMXOAsJN2|{q_l$1f_Jlyl^PXOG*ftZTp0^({26Q08T;o4oAZ}}qdJEl!pNHM{(wAR z#aw=e3~8T-jW<@29hs*O|N1hO`*h5l(^ca*+?Z5< zoEmzyq_r&^e)XJXvIRmBMWS%m7pFEK)b_Wt`l@E!cw*V0EN5*(g_%9sR`s}OE7?S7BfV69LF~bwm=-qFy&ij;HBOOgT zdmoMovPry*+Da}$GE4)%hh(QBF?{72#wf}0`x>%Yz)fO?34id>=b&^@2;K~X zyk~OB9|`RVO~5u+=(FfJ>zSKfzR#RVSz8=3KJCH!EN5=ay3|L7nC|C`M}dbY(IXmRq!hOWzas(3v(T%VW;hh^TWIHn%oFxdV}NXWrme;E zwrHr#*Thz}XBO8=-3kq*S0E|(soDGiziR$kGvY0!OtMEtwqGmLMElDx(K09E*rSjo z_?Z=<{vO}U&Z#xz($W%Dzw^CJsbo6!=|Bz#4o;tmW{j`)#oppk%VW8|AOqf<6j_z* zaumJTfUdXPr0{alUOB5lp02nSC7 zJHeZtWs6@nGw?kaql;(I>cPPi^=Dd6aYd7s_Xwf7|0#Fib`9frN55hs)fJAj+81U< z?RCM(8aE>m$VNruE+zsje-@)h-X&m8i7&AElbr*Nnvdh7IoXMk+&~&3Y$f&?a1*2m z!<3rralsNqoV>RA^^u?U%30L=IE~y?FxAP6pAahrsngQ6zdKjQi;U8B-@QbZ84`FM zUIdT9QqZt5>{im>MWtwEO&}dvK`imtkW*^j9@d_ItvtO~&+%9yjR^x+_l*sjhM_@? z+|df5ap-x+b|}Z9(@>cAWTFDwn;Fp|Moz(Sw(^@i$LI;hpJdXSM#9O7d^o0 zNl2%gFDz$%IknJPLbTvrvkh)8*`Y&|-*oHfj${2I7U%vTC{@h+W8J91A}Q@biMTTl zLRVdRSub9Z0qgHQ;mOP6n}01FcV*3`&*-+`v$Mu3YTL%rLsQJ|1w+oQ*$g7J~4Cht)sXs zkxL{e4nApBvwVJ9d|wagHN?d*H3{!WjE8PS2m;T=@>OEq=hHvLJyWqnbn#69M~yu% zG-}*X&1y9YZP>G3f3`CQ1@M`ef4!ya)_?OMS=u?oig(OsiJr=7+W(h3g#5@$o2hggNozwc9 zb!lrNI!B-fNM>M1UyS0WguTXK@Txr*-EZYEGTfe0V;^DZey}j{MF4?a&%dE=uv8Gi zu6r(8zF;jc)0*6vQ7lS$;d|j@jPMrvM~PT7?7o|j4EYOj(Q2*onRXBkT}jQ&Oll55a$S zO_6N9&(I|adclN@xY$g=`vSrU5F;i=^jtcZsG~ZANdV%QMYofEUCOAr;7vqi2LPD3 zcu_cmca_*fj-vAXs$~2e=vC?tLvLW5(^rC>vJT{ zaaOaXhRec+xGgPNXm^CluvXGuk5*5Re#JEJ*+UirxI%4P^pR`yC4vA)yKil>>sWbd zqFb)RBt6Aqo^9nZ5hFV=dpKUWdCoLxFpVhqJV_If+4+_3SrE^d!%k8~v{W$JF>7Ie zSP`HCKo<85VpM{Xh^e`JE^Z?bkiPru%Ai@glp5CO^XVzIcP%MhIcP)Y6ov*1)9-{x zd<+!1E>3t1S&8%&&1MHUx;sP-mvj4J&gS+wydLW`Hq^YE(WFKM*Df=S_vOmOs9ix@ za3TQKoRY+S?W+S7{-1J$*=Xwl*!o=5)UW`FTBfP)vJC6pJ}A96h^1xh1)AveyZjr| zHn9)KzA(Y3sEnEXV6-b6Zr`P8h=J^3LU1O{%sIZJEl z+yHD-J-bSY4RQN=XV^Na*CbFow*XDSh1m`80mLr_JlseK>qYJ$%H}`n-o-SH%Q63B z!09d4XvS&>L>_8zV4q(`{>;S9j*>8uK(O(bCFL`vUO z#YA3(ZX~Qd$lRlc_zs9!+TOF#D?4)1D3gzV~gO^;~I#fdT3*R&y}83R>vPaZrpU)+4F;4&G>AU%zpK zzBQ+L;jO){aL4x<>YDGiYL_z+8^#j2+Bxh;55~tlrW7POE!XcTNI;P~D<3#_1)4v5 zBsK8?jg#kIS@H1d7hMxWIK60|(bhuP5?P>a`k|REMgk)_1X&nQAsC-EdM?!^a_hs& ze_LO|s^vM^R{!yCb#aWfi}-dSym$kWp-m>~`X1JlM~&bjvGVo)*gPgMAuDJ{NIYUj zD=)mknV73Y$Mndq-%-C>_yj-)^X!2ytkH^o7xE<=?@T;Oq>f;pnRg6}4JQVe z8h!N`eU}8xh*?7o?oOmuP`hm{=2Betw7-fSw#zf9Kbqlxv`+Gy%3_(KVM+Y@9gfB- z;Cz?4#z36n5>1eAxUJ9kLA{)8FD5Sr9BFv0*>?}rROt?NbQqc^I{LSLlAMN{rnbvZ zx(Ev(-LLto(^fFcHT3B}_F@b)&oJU>(y)^LIHDc;M9xG?a0!lL7+tv2s@DbU@s3wZ zYNQm;87TO_a32}>$6OI_@VXM@13nELC><67XQcog5tjD1PYs9d>q(+Ib zwk4KV`Q~Fw5MyieGEMlqk?gZ?>OtrBiY2*#v-H2N2d9sA!_9^D9oJ;+7G%CoR_vJb zW}HRy5cWz_6D$gDQmU*fkRK~@6BB~wJMi#Oa=eXoTr1snBbl(BuH~{xEb#Rsx&-MAsQi#z+Ya--_36ZE{_~ z=g$GS(7_L1z_ayx|0&gVlW)FmVDfvt9d|)#Rj{{Y1dDNx^T4u#uY{D8G1@UFB1iV7 zO%AvvBF8D%hbnMLMVn=Q(nu=@Mp?Xj{v(RLks)~MW=Q3UHXt52*^?OeB6qD}l)%Zg zLvu}nxdslH@#&F$T59c>UB|E=Y%8W4aeJM(3m$xx2*V*h(eo*rqj>cd{sD_mVpDrO z=Zv}ejU}L_2=1;*uW{{Fq0Ee8nZnJ65gZk)fq%9?N41Hz6bP^ig%A+fmT)0hsNbsG zlX{b6)rFg(K(q_v?awM#j%aqUZ>V~Ie}NnlwcHQVGLd9>U+e-1I>olut;>%g{-DuSm7DDg$wK*eI$Ji z0Q2-oNj{6RlujQT)u6xD3bXR<%49Sd-VzGYWW;Z7&5qR-;IVq)oMN)_Z$;0dNk8d- zA4VM*9gsCz%JEgkhRElTmvvP-P7wB7e@gofdKdhz`P6XOZcqb|-A9}kHL+JR^>UmO z$biCTHE7KgXPL)MYq+xHVB1xyXz}{ledu7ozr-TYfCvtO1GGSGl6&kEHKn2nV@$di z72xNeomI#F%lcAJ;5+Nr&@Ck|*%S5KpCut!B+#e+ZjdybND-}Y5=jnX#(2Q+@}nZ) zOtD61iBfNTKD%Mx2S1b(JUKEQxTuzQ7FAXseN5%+RljvnpM-2lAv!zpjQ)gheD!gg zzA9cO>kDoG%u7*nV^+{{eAqX)k@12kc-+ZQwe(05aC##7h1M$W)cN9|^(M(-8d0HP zcYpm0!9cPSfX9J$yo5F#i2{HeJtN|e$&8xE zI@4z&OV6XwR=%Z!D{>!E>3Dz9VwtCZAd=hBv+;!~nOGfw zgI$7QU>2TQ8#nYOL64Yc zdaNa0_+IWs6C^xn%#$KX>nj|fVw~hB#0#+9wf#y8G39e9gL3iMBueGmNoi1~jK?m> zJ7~GC#Vyaqzn>6MGtH8C27YC5HGmpS(#j z41{boX%E`hPIHr{;pm7KK?IQ9`hSS%ry+7OoT+}dy2v(SlD<-xoBHAi$Vnau&boBp z+4cNtEmVd~L5X*~E-(xG8Kx_ie@+HZNNQ51iaM=GrA3YDl&!|H_5zs)Ld}?`bBgXH zx)Vdwv?iBj^%u(0ux;2eTo&)voX96;i-;-B$Y#KY`jj49dS>gFwm2M*DxX8hqu@UX ztgJJwuxOxNsU6^X&J_`2*@d2X*A!MLC`auWj7~6ji&479W?8Sp8rP86%1muQtHhMpV+&Qye1(t$QgDzoP zj2Jbc13K@Afgey>Y=*sgwb&YykqBW_^-!+kfj_>yvl?bD0i-0rBR;?|7NyrTJkcg% zXoBKW`l+WnZ_Mw50d8?73~J8z>PFJ(1Y!W!ju(pFH0}<&-LJIXe07H>7IS5g0!r7R z_>%;-nrp$N=6#CFV>&y;k-lYFfSEy~1`Lqv@NE6~E5nXy8eGbf>h%A)5t^unP%{U- z>%Z&YdX1yb(JHAz@0ny)@x7+aMO|@U24b*=f1EKna%Eg3L2g=!BRwSv{G)-rm^dyd zI(<5O{&f+sY@F!Yj-&OxI$J`MztF5=nFZJ|p=8UZ*ClJ=eXLvTv9RK~S4yd{lC^G_ zaiG1!LA51=Z5L?$rBa&mSHPG3dM#<`=WIhL_b&M7sk1o52Is^_Q!O0Lx$C*i9Y4+V z`6^ub>3F4LJ`B-_6$%Mj`wI0R$6xRKFbM~7Qf?=HNh|_tV!^ug>rb!v&ek(04W4&3 zHQ3fm%nLr>WRwQkOu^*LreMR8Js)R?yr;}xz728A@H`I2OHh6P>#-(q-DnRXJ8@9> zM&A78e`w_X(HBLk9T#v>8a-%l;m2tk)Nr!y{Lo?a(FyA+KtvvP_TT(jb@iR!ic9 z3t#SEq4Isl&pbLTQ?fHdb|`Pb2i6XB#aN*;SH=zZp2qe~MsG!hJf&tn9X=Jn7wCmaBbfs4*qfz*>e1cz-AB|MjLpglhc7!uCmU9np%v<$1c$BFc# z>ltIMLh^vK)jZQt!u;_vvd@wwOYIz(<+zC|@FN@n;0{4VXNjS!mOP*Z2&v_Q8NY`* zd!`9CPc(-u#PJKQEMRU9#@3t@UdgPb-%95%4?L8L`350=8;9D@iUV~x2!!e>z&Z=5 zGhbPT#yA7>x4_|*3m>hR7Rc!Vr!OZz?CfskTr$E6hK3yaX(nABu@I^#k{|uiZJHGn zx8~KJL1rpXGE$|CR#>JaV9utp0o5Fxrroe%j^rj?cE=XGdwi+hlqhPbw6Z%Usq3ukj*D@C3 z=8b0Puxe*$lZ{;>&TO&eRWd9y4;|L_&KE7y&U-gDlU$KQwyX8}s%@5<{ybv9yy6E5VLjL)(c`WqLn(hV~AU(Ko<-VkC@_6mWe= zaY5&9dT7h{E1CQ53dAGYKEs75zAtf_Rdsn=hdOSVXq#rx-%Y%wzyzr4kdWjkOdLGu z-rmc3Rv07S_-@&I%#oQ-^HaiZscgj~f#M19K6mkqYF9kkw0$X9_dSYpw~!_6o4^rs z!Vj0GAYy8tV63S@*}50&cAWF*k<$gnDOH?e>Ro=8BCqr_0IqA4-L2GtYLZyQf-E~= zpylf2m~_yo;KSgtc|a*UjLx=VLM>0-UYh0r9yhQ3>`-!J;yrINTynewSYByZ$T2=) zG(1Xw4Pt2q%FIis`s==wJc{G!x)~{1W8x~jmzJ>7V|)-AQG~P?xBIFn4?N6m<7$CS z*y$>3YlXv!M!gw`chg*}ki`>+??!*T+Mc&3o5&w=BPRu;!&nl%1kYJPy>{}kAJ!au z8O3kc8%XwjsODUrcsqE2m3tIv0s#}O{=7|ZC+MlOO@0xtRoS`2Vv&IO{=z}FcIE^- zVf$-^lJDn1TGZxavPLb`CX#6LG+Kh+n{|`UsvPgJuA}tfAFPu+@1TARVMGHEv6E1M z-vnMMu1GL79`*kG^d+J6RkX98+a9rY(5=qY)oy(=t#tKqtXNX(yF8!=m99JGJv^)3 zF}}Xbz$7Z_@>gM3=R?SPL#|TyfhyhIg|2Jn6E8>F8eg=1XHJ$Tz8#FvlZzHqsV+ddjs!bmf ziwi20hRUKf3>{a;-63Wguq8dYZKTz#oI2nHOwR=P=B?X6ecX<)EOnR#DYOq~J@?f9 zn^+U=j(vtxgH{<(2o*&jbYMO`)Y2FpHE9A7htbY08I{HFv>`&4z}m!ItF31No&AOF zDeb=L=pE=KPZE3Wa9Oc0sA-Ci?6}#Q6sJf2CX0EnmhE`XjywVYY3+_y9@-WO$=;^> z;OXa)0o3#3jukV@Tv3=|_()kzl?ttCvn$7;imsJ8;hP_x9*-J4-8(|qdK@~ru@>&L zo)8tb5%7fs5Qj+Y)o&-Bx%xXPsUBmNLKy|~bH$#5GZcDItH5!mSb|2(@=0b>8%`xf z!TO%9hU;*}vvhP^M=yACGo3|sZuk$jO#lyGeoXbNh%5c+2;)*S-AJf^nl;KD z^z)WC!Pz+B>g!iUW)+dui7-KgdWsn?&{?5ieBX=I+{B8(&*q?rbW`_*Wt$1!JH7q0 zYkJ`O7@VPDPO3dR#UVT{ovX4%9H*HL$3k#Mw-wCjUvSyQ-N`FsrP(ftB!9!Ilh(8d zslmGsEohBl*4UmlW4XTu!+GZ}S~HjczK+|=ZB34`x}zzz-!R$wr_>Xz8#iaURs6}9 z?;zO(f1Fe$LF=#KxVV&Hd`2TWuR)+DUxN!vg;5KA5Ko&gn;W!zmB-{X25L?!Gep3E zMjDf573P5n>NoyIvOFE4b9aqV!$CT_!eD6AWps)=?!47a?+|w}ea*l>nIE{+LFPLP zzYDe-0~}c}I1uYX@Yu}dUr*=}@muF_%hRSoDRZ<>71l;gv^_2K(ac-p^0tc!IB0DtTF|lSbFnPvmXzFg+ttFpXv;5_OHDlO#7tqFM836s_e#reamp?A=VTQ8h zG0;Y@w)pEX0n0i|6QbOaeWAE6AnKtE-RFJ+acM)E}fp&^HL1NRx>X$!GE!xMJ2@@Z%*?=G=1q6Q&b0}`A|9?%jC>L84 zt~b?uurN*_?NF2IA*lY3Z)8l1gLE|l(YJ}tkk`ESJNmIrsh56IV40t|7sv~ZP?>_M zI_11rRW<$SRg}lOJ>%iZ)%j`One$1;ses5)LM~GX<74#+7v%m^o%fei{c;pUzo}#~ zDqp{(_mEvK&I=k{pXci}qer6x^P(hAuLVEoh6NdLiCW$w4x!Y2|3 zAdiJ&vJ+#Ib&Z>=VspnF^pEO~1&qI&j!C#J0l-(bXM+eKVCo~%Mvy6wDtDM#x+AKB zM&AkskN@vP<{92&VaRWJ#CbX*<&}eQ7wPeZwU0YqSVG+Et)+Du?|r_OPv?O2W&bv@ zpcr!U6ov3mVM2kc_p!Yxy0Dm_ZOP5jNo@8d_SGotq6R#@Psg(Jzmjm@{DAMDug^Vi ztJd-KZ-e}vCMy)1I#>{hBd4s|Ydj*wN-75GYwI@`R8*sL z8QK&wjioeneCzkFMdDyVlQrk}4)5Sxw{3_vV0Q}c(JvwL8J?yJU4m$rS8h+x)^{c= zB9f>JV&uvLpH>+wto-~^AoIHJQ<6RjKnc4;1@{SYL(U$?q&T^qvdqh=czbT0tzNw& z_LPmgf>L^dgk<90^W1V$Wa(7g80>)z89xB9awdHCAfH(Z4M>-u%U3zbE&Bp)%@G-;5=T8l#d5opg!qEpGmUW$SFw zd)y*eDn>LH)YFWz19~~4$S#ic1m=p**MlD`Cpanh-AwkNebv04Tzm{ho=x7CAy&~O z7(*n2$&8A++;)2b+I-5l`OZ%F|IKE2N%8J~GgYxuJqMG~{b zU6E||OaGwG8V3$;(Agq1iM?|8U|U@vl40>EyAMl2O2dp4M`o4>`n#w3bz|(`u%vlu zWg-QSsOTmUTz*_dk~PIb!Fz)qARUE)U6oQ{t59oUW0A3mOGt%b>2B4?wtNOod^UP4 zgLVk+DS*Ca@^wpiAVvcMm4)YBRS`Mrj=0{1prt;y7K;FP*ITxAAWqSf9C*aq#j~g) zM%>z~8hD-FSROlK7p*!B*;h)7y&}M6md;j^aytV_{WbqzQ@*OVoE&kXl2JOshm#vz z;C(T^;fT=Q}SR$8ov9U|uUcG(cy54?)36j$>vse8ol4<;i9Jo;OL-C*K zzek2W5j51SDMrq*Gd!Q6*QBbT48651q+c{5%NHV zK$q(FS4t3Cdk&tF4vBeHsgZ1ky6@<-rg0O}XbZ$39-8?1xAJiTfVmS7P3YBm9?`(_ zFslM^H{P8}9^xLnl$F6RPVqC2zO6fBt4GF zOPYzZ#NVD}pkKdVKKEy5+7!Y#WmYKHbmX}Oeco3CsAfzrR0-1U9`fafn0pB&VV3dJ zE0ZQ1d|VdhA0!Q(NVfHH_#&~rN?0VOyjy{T`)~cCfO6V$kdNLGVCl&N8V~$=0|vxn zTommCaa1KKrd#sd+liH<5Pd7X6<9cSlNpN`f++fdte% zcC(#D6RuNjotOp7BvCBaOK;{2^b?yM>=Z$@O)Wf2*bYcJsWI3;FU4mlob+UT%@?j` zrf0{E-#GO`ATtz1GL^h$1j2`!!p8Z74C89R+aP9M1U32W>&|p7$~3pt3>LmfLyu(b z(4aHm!$WQEV#n}QE?#X8C_ZLJ+$$x~mJ5CE{9CVfQEqS}?b1BWAXm{%U!2#B`HsH` zqDm1ANlJhYPu&WLQyf>sl$&4Ge+<*1LG@xB_acvFhDh|Byy1Is-tGvN$9_fEe}-SG zv&`h?9fY@gL~<5{W%tkhYsD2H)=K1ngAONLXI0C1#xP4Y(YW1P5*Wr^rKXt^;Sy0x zIIa35L0-760u_w$iv?OGu3%t1eY$EdFWlMVzi$CuiwYeRxn?XY?SuvIG(uKsPOnrL zk{$~sh6vT;^f4UdAZZpNMr8B1x=#V5#$vb0R%RYJDhZdxl;7+ygUpa|S53{}+a0a5 z&psz(qGg7pI2i74x6eB#RVq-*@OIrJH;=s({^NWo+qP1ZYo%JYYQ9|Ddo z=AqKq_rEyuShC?;LDe+2lt(_41^N{(%=*tb`on;dVZixvt4DI>HnK@{>YTL2#ANOFXmViz>ay@Ab)14SQPiclUzzi% z+JuyTe^{?F+W_$cGa9jL`jea*YL$n~iYzM-RUSGuAfk;9+_H{`Lq$mD7n{e%*CZ8H z&1Sp4wX-tPy{>;-qUJybIEXawo)wAd0iCATr!%sICvPyhVy?wi3*WgM!wR7!Dg{6{S&bAjW>9<+=ueAs5L*`%g$BawTIjd zj&ngR)FYK*ZL=RE93>~Ljs4B~1z;$Vfz$8PR##s%E(o`lk{xA~Pu%_RSS!3#f=GDN zd@8l832(XI;=FD1nc9E!(Gv>87UAE+b{FKQg6zd(jO@v$nZc{1U}Dx|@&2N_)jB*a zO@|RpSC?!wRY=b58efsu2*qq#q`emazmNY(MX+Prdc7AA#e zjc(4BaK#7L1E27Rr+eT4M`2hemI||coj-hYMTI|on?&)y zv0A2FuWZq;-Zt10aG4eJh{f-hmJx|D1m52a0HzXarKCR_>Kpa<^q&83!B-AVM{2^; zf*p-cDZLkWK0kI0>T|T}l7m~+%RE=JmitpU0fpT?Wq5FQxYkgDoCqzoZv0nJRrmf- z%u+J*FpHpGAS0`xP+FmKQ*LTOSQvL7)S6)Te zlb%cC z0;V9Nj&wVA^$okGTr-c&F=rdk6YqcjL-2KrjuL*>EjsL?=G$DcPnl*KPBXIizs!Yw zz8W}cHSKoKUHo$UqL(9QoMfi++Vf>bY7Zsg?Ky*g1t7eYjc0j&$C@(#{hXE=ZT4Y`GO10}_- z=iC`L`xuN;G~Q-Ze^=Y?@n7D~(DrFxEN01m1xS&Q19U@i=r|M78Fs00SZ2BM=>M}Zw^_^zDOHtw33l>q(hlN_bTvRT9#s`_*B{2=1yzY$f zM~a|ZC3o)OF2(J|wX_&|QaDB$eR2`Z{#dr?$gvhsocIVE9IkCJL~74LplCf4hUyMu zA82I%ERh`nx^0ZRp{SnPuAA>1cYt<+fLhnS6>CFv8t`vimUXj%+Cf7kGGIv?_xsWk zTdTL@#**Y{`fy8?%Wg7#s`Ee7Z$tMy30D?!0X)FO4(?UiOO7PlBgfh5aHYorre<*` z-&+a#_;J{hcy-1yD%iv%`Pp~PB7ih)u3KbJhTxdfPw10JAC zcC<7%qhZtKJ*nQ*SU|qy%IVE0@n0NDAj);MJMzDcn<;-!*94w4Y;wPYYTaMFOBO5N zOzr0q+!cPCh`@S;R!o)0x(f`gW>yj+J}Z?+`b6 z#u0P%0=Or86?XZFa#-dD#DkK>yLwsNv@JBdQG4p)>2?pTd4y_Sq=ijC46ZX^d5#A6 zN^tPCFdSIK6Tl<{|9(06qbqzOdGWS?S}pjw0rKGq4zJ>xVUE;?0v@ZtgLqUImAl!7 zW#))DCPwx9uZePtu6OPScwdLjfU)v$uJMIRAGTWEjlw)sJ&HPoDWdbYPvGxurfuqh zMM^82u?N|2YB%#m#(2#)8QH~eSKJ17p5!WbQ1A?Qng=pe8Y)A&rhS{a_-A&IYQytg zHZ|h?CSD3NunN)>Y-SQc){$*BUd5c+1mWZNe}4FD)(PO$i^4$}VMWtLc{&CrH?Cn# z4#Tjk$c$$R*gqVSv|st`Y2*3xdpa_99+0=}PMHoK{5$T%_dKNspGtTmvl%6$tKr>$ zsELB7N>Osn&T{7{)%=As;-HBXy5;ylJE$hNNe)Sia^RkdIw(cR!Tmdi?RF2yrQyew z3c5BIJd``MsNtBw%pWs>dUR5-*gNMDy57s9H8qEqx$mW_5QA{H4dd!h-4n-yT`()r zSsa9V{)otAXE3bmwXNp5-|aImX*1C-=1Sz*6c~k#8{q%!U0T`h{Lfg&CEHREq#d(h z$bBWbd@0bvjbQF{flQMg)MBi~Jbzdld=^=GOf~hik%tg(X#=;$yR1>|D4@2-S?UH;%sD?_5 zP?L%ru@wDXp68vz3`=EPsxH-u7i0lK2oAA-JEr*V%#dWmELxh}*P<;!jIvcEV~!MtU- zXX?JCRu@uGcx~0Rjm(E`h1*F7-;BA=) z&nLU)BS>eGs|{a3CB83Pl1x39sTS~g>X*-f?<0*d)w|iTMINRvDE^#d(EZ9^k?cr9 zWs!JoXT20Cj}79`6v1eOpxzy`i+Rd2R;&n(8OBt61$X~+mIToEZ0(nrnDR#HW8~Fu z%UPlfV;oICG87!FXE{iT$_TaWKPzG!G!*W1*s{|RG|IBOmmKLr9r-2fcK9)^slnSj zmg{?3J)q4eqKh0)qE0Q_r*^iZdN#MKyDZIIQVc|1ErC z|K7Jjxy#P9R9jo*?BvDL^g8%Fx)DbkOS=%<8*b>Y>xIi4oZ;RWWOso0t=98c3CjaB zqi{YIYYuX-q^QH3W*BMDk_|i3^cO-_NUi3`O`8>8#CJy}QKngQmf7VRkyjV_3HVyc zZFT78+H`_Fd9rG8Pv~E`vm$-ic$zp?jj&GGmR#nas#tj2^KA2Vjw-UQ8ws3rBquaG zzyp(&?(y=9I1?Bws-9}WRcr<;f{y5@VM z2cM0@uIIpO6p;x$aL=NVAE8L!@81O*1LQCuN4ulziiV<7d{QYhX2dTIxk^l%e71wA z%J3Y+SSf{ApI$YoGa$03$i=4L)D_8qX$hy4g^u+u`d44GpVW-?tx?pE@D=9$FCd~} z6u^rkam=YCO|F6qe&7aFMx*5cmq@$%XfcMFXIEmp$s2^^F*vRp=SFgxWDHaD9_QB% z_)ZmrWkCl|!V6obSlPMFN&hi;c^qMv?OeUBx7ig+(!CeDQo*5rHJ5a@pI1-}26vmS?F2VD<= z63bA6B^olPkJAQ)r|805R|m2r<1Sr(<O1p9lS6f0u%)Fy1S$(?7ZGqY56B@*gzZ z{Za;|s`5|bDo+=h$%t%EdH(PV7`Pb4D-U%hPP-#Yv=shXtP26Xk#)W& zeMqCVfHW?g-d4ALyn!ep9bZ9e=~%Rgh+Z>VW8M|RsF$D9K|=Zk?Un2j*0YhlCPGW> z8B@MpBK#qq#M{)@f2n-FAglE~H(~?$Ihh+@aJF6UehVNoyP(d*`sBs#_p;N!igl%! zyjvoAe!SjN@874zW#b%I#_H)N$K#hy4@MY`m$DRQDiOrFBp}L8#^uCFMrW5u;n{$B-4PjOa=Fc8r5Xzh>L!Gn*nZQ^VovH1u-$d6XWRGEFXnCBwzhVLe+IS_F)YU9n_Z-bHVd0BRc|m}F1G1Jl=4M@C3~Lj{G`V*)cDfWOtrU1S!4IXhqB2S zM#CF*Gh_iAeNt_pbB|U1?4FV?G~w1sfT!~vflT^{mYB_&SgRPkoiI~a*qx|QWLQvNp1e}&m-^Kr0Qnc0yu>{K2*-67WfXWqgL zW`SOYb`}9;abuTuP|&XI)0wuD3@6Wr*WVlKv`l`uzB3Gl=>?3Ko`jDEk z8$M4eS|lO$e2L2HbPd%|5LlzLlev*}|2F<;;oXAQLBrI*&SKPa#+9tIOq@ZWfl;r3 zZw9jTFk%M^tS>l~R|^q3Y0<$1Z#q=BwDa`|q;NLf2iQq=d6x)b%<J+mSseh z^CEn#YUXF&(WBo3{q%Ux0CLu~-tn1Gh{$i@9t)uqgRc$Kyt%rbE_H9$;f$bQ7cmr2 zEF-L7wgIhoNEVrf=L=Ka1bPoK_$|K@^LrM6c$i7NmHx8C&j-E#>;!F8u)_B@`@S>$ zXUhy5~H-Ukp7WCyR10+TY!BqGPLrGh}~apb*-;~Ht2trINW%j#eJ1n0u?Rde0*M=6E! zc}kp0{yA8MlTiG`8Nw7VU%3MMnK;PdJ%#=!XTN5-n0v}s;HeE~;SSYOA zDwH6U(3^4x9(Brp3l^No10h|13IZKGe9*F&%=^N6~7ot4)-L%XBRjE zI!A{!_-mCVjQI2}I-(0ufBlAghJx_HJakhBaHF(02O*YFS)B`^Di2ujG*RE`{dfB8 zvFLYY@Klr2Kt4b@UE$R;#7{3+i(B6@ zD&t`t*on(xNW<``{1$(y3)WLiG;i`M%PpG6yCYv&r!iUtf2;~(x=?c8_Jfx61>c64 z;ttM5=Ypf!r`AJwIbGK5j1O0;1zISc+}%dr*6W6Qn)CPD8gGt?*|DtFPkcv3hMcVN zdM>Wy3`qt|@eB@5>r2P`ZH?VE;)rKu%6kf@n zQUM7h6>h*W{)tTebOC(3s_X!FgOg-q^Hfadno|G_rhYusDlSO>JBuLR~9>&Q_F`4zo25cY>o%Y9;8Lx2C1S{J+xJ^4q~=wThG$EI zwU$r=_vaq(eWXSTq*fcBgqZcN$D`)#BF(9e&HV{f+lS*1cz*g@ukIL3N#wnN6~hD9 zgWriF$Z?&}r|76Ly0#+!bp-dzO;g<|$CR_J=w#~<`CN6bQ$v`u)kXlGxbb4A-pao| zM`*3hqY-t6Cxm>Un!b*yjJi$5dN=Z+K)Fn&$S9|}j!{{xfC~TP0K@32F(s&4w!2P? zV8o#2LS=cUvsFb-@QNLYXg%w}*<&A`gsPx`V#=`G-fS>m0vnkx2>Bb7(N_0=?VbBS z(|a7pF@@$VNqFQ|oaUi%79HX&DXAr9dbl0ba-VYDA;YZUhZv7F`TX>Lyx!0E^JCb*=A0L%ix1DSY=;g& z$e%z};g4voqbqNxt8#t!gI2q^1@WU2&_~a9c!++saf4{}&2L%nRh6$&Yrt*Z0dDgcK>V|STU#(A?(<;w1Mjz7#re<#^(BDZDnx zzDB;MO#J!plg=kACX9po(_@ll=O`I&on-FKt{(Pez>}nGIXGap%JUF$|K(9RT!Ei&AlVug8YTdDkt9lh`KL@!rsg zv!h*K^6qIACsm$l61^|9c$;SrvO)*`Nktechf4ebyG7QWBc{T{Ij+W{T9B#q?!|viPz?kZ$O!$;) zHaqLw_<>Aq>L8yVB~fAC3LmbAj@i><9>=x={0BnxxPzG9ha)dQ$aIQ1W zwIc1Beq5(F7DgB+;Z9(I&Kk1fyZ)GM!5Qr`(vAzaWAh#4Mg<7HG%O$Rnk?5x{uF}^ zdc<@eOOcOW)~_u+oweFhgrui6x2haKfr987c(yr{M?KWC*+e%7;mhtI1mp|}lKl*qke`0J9WHr# z)NDG8ETnHkx_BnCAfb*x*^wqBw1{TAp)+|x;9py>wzh{=?2^!Swy9Z2qJFxgjT-1f z7!EO)Y_3vU<7~czzouf#W6Bdz@RG{pzP)5cY|6uG+9N0f1C2Z;DFJ5H zy(0Tci;~Y>GvGO|Uw7t$jgPj=PDy(a3ukcMw#I^ahLqEPQm~YrBYDbiNnwFmn-~`+ zMZ2jn7p*AUT=-N*v(>;tc@NUNULa^NNG_6ZXDO&YIOZLo3Cxx*j_>Ht3N&_Xb2W8n zMj8DSIg&B)O$yj+@^bgTgNrNfD&pUMQwaW4=@mO$6wujO&JWB&Ha)A13aoOL+ z*?uU(lp)#NvY+zlWEY5qoP!EBKSnE8ttGYSL9O@zI+4d}aF3eG3?!WmM*%UM?uJ4} zRqM^FHKgh#5x~U27uCK`w$;0&KYo`4coyOf);$a=3e;^F2#}fr(dYl=zu%y{L~Z3` W=;XN@R2ZNE9Pe{}UQM16`Tqj#M2L|9 diff --git a/frontend/resources/images/form/sketch.png b/frontend/resources/images/form/sketch.png index b923c607c87dd926d0f701c5708e447999584c13..d917d08b4eb804085727fbf7f043734e7422d539 100644 GIT binary patch literal 26837 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

nl9yi4zQ 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

  • |FH*Kg{v-&U7MHg0g? zT2K|sLZK1Y=7tU6w)?u-wR57oOQ+Ee=p(?Hi%i1z9yU|MsY?+$UbPQk6gHV*!CfA*V2+wW(wE*7ecqiACQ6 ztG(-?>>n(7tZFnV3)%+{BFAVTL$Ai<*S9H1d2K0@PZ;GE0xUyQz&%_|>B~I9%EtF! z7Az}m8G0~GB&;d}duZYiv$4rPoi1l}gWvol`^e3N(u+@OfE7v*A5~G|{^2o3i{h)X zC+pjUq}`LJ(S}&gk>r%%tW|$k!=E92&4&fciW|P!x`m|!F~)2Eg|{s}@w+N{Fim8m z=!y-9KGRPIukO&)aisV3UucM7ioQ{RJ>*`NQv2$r{dWPKCzkxS2b|V-@AwuQxxuO- zS*b%TGTpvk$9$vUmgQEd0~yesFe9oz{|KDNzJPYxR*^cNcD8NI8~Z)YEsu`HVx)a>X&6z!eAjv0dJj=ji;#QqZ=^P19Y z-%vsk(;Md~*iKvN6M`36)>a^;SD@t?hkwZeb(e6RFaBYYYPv)&90I}UQ_UAUCL$Kn zRaBMH?6R+@{blIo;`f8|tH7x%%Jt{`e58pM2rE7-cog)}FnfDFQw(5xtzJyc7pYW= z-qeRDErK7@#@*E}eNO_fBtt=HeV)E7$E~WZ;C5W!N^*IfHmM|*@@PnOB@n=}JYeHy z5FP{X7}rT0=BL2dTVy#&d@hjX2~#OVP+wa`o;QOFowN?a^hfh9R@9d5{PD_S7DSTE zmlnx|{^M;0y8V68ks=A|s6brR*mgj@a{akqJxxK#a-5LdHa)x`o2ta=E?pK!gXZi# zd@;dmFaL+h75L`dv-^MCkw!%tfj&Q9?N{Weew?`4+0y6Htm2PSI)4h?IxooiQQPdW z%#dbI(9H0eKkit(Yr5kN8O&FQt;9-z9^SF91Ep+!s-_PTXqywj=t>wQw`wT_#yPha~7;!HmJ2ZH^x>zd)BOKXg$S7o&40|IV-^r{l6PS57nK!{j9SCnLix>c%Gr;<8vz4? zKc8l7nD?7_q-vWyw&BQXtWTX0hF4E7(%d^q53^ zrAaq_Lss|+Q$2ya(~g4DOQ*Q~j_!#5sOMv0`|n`^O~EYQC#AkJF_n&p$x|46@H8=n z|4)F=vd?U*J$tcHghd*)1ZGJqb9T$xie=ez7)D=K?)Aei!H*i}6aCr`j23jBS&)ZI z9Qh)XiZs5(EaMS_nxa%m2H`8bPnib0G>r6Knkhh)0c91^>CBK-8u$%rP4k#HXRXR* zF!yZEb;>icOFjSBz~beU{%~N6QhyDmP~~F;5}B8KMBr@W9Yi4?r+>dFyM0kIrgmN4ajI;GTfQ2|_V}QWT9_60B z|C;wLSs^cpv2^xVP|TI&g3hW4(Ru#GoSjv~86&{SPXg z8dYR8o7QPK;;=z&T*VQr*Nc}UjBl`Ta)ogRN7U1t>3f|?$j#D^UNFwUCjR8eY~vYH z(DO!D`MCt2QHOyA!@Xg=_y1TU4^{KqXk%g<8%s073)BV$5JCvirVgx5YV2D}i9aGM zwavSH^l7=+5_IRScJ3Nri-qsIZaz*J$cw4IFz;t;-HDKsuycfc(CA;SB8VopCtV=E z{w~;B+|r+1sS1#_lQ|_k7{?O-Sxzqt%Q*_7F97!0z+oY7!IXfZTr?`VO&HcZZK7#I zG0PbO&(&}r#(~Oa@;Xrf&9LuyU0BW-dI4>PE#F?b_3&lEPR%;&<^n4f-BlU94Kt50 z^FRJD@#8wY!;^@}dRDtr4}UJK3hdn3_%VX2z`YJI&l9Mg8%)~=4(wDP$>9;LGpPjLLH z0@TH?SSYx-7f)Ic*m$z^_*NBZkkXH^cY>DG?3sEgI@u=dRy0nv%rT2yd*a;+s-0(| zu1ziVOdYNIhq#~T#6`yeVlvhJ*-1^Znt(agZ*MzkN~QxL)N))dxKg%+SxGMMN@`Sw znVI)>EVA4##HQ2aUfvL3SJUS}Ym_OyJQOp3(FRkYnF+)p6m6)Pn^hIZmVEs#IX<|$ z_(3F}Bdg9q2jb^y6}LF-wT+F+dV*@cz%iG??p7x66FZX1fV5=)3aQS8`=LBd#-su&Tw~ zgQrhUSYp}=79A?S!dzPBmL3Zs5uz(EQHJ|zxYUIy0a9u2?VvRc{(A%EIg`W%DFnL3 z??|+ECbe@I$|Ub%&MA&s|4KL4Cm^a@#os85$xl)laA@kyi?5q#$h{@3Z7%<}iYN2r zNEg{rRC8DR^aEfu+cGjQQq%=l!7>#RURg~B5j^tF@7>k`6rQST5%j=AVTT}| zI_cjGElAG%AUOw|-Jp%cLKeTV#k8@rs+FLt<2>Y#yGb5)a#5vp&^ghGnHzxCe)OcK=wt3M%TQv-njx4=EV)j0Y zY4g?kjujuZ&_&>pw6Yfq=tr(+N?aZynYG46ilN(KO%WgEuaZx*A0^O}w{%hMX6bmj z{A51)n{gf*=NQeQ@^;x@JhV8TB|hL2kaOnzLW%T5zAUOCq1t2ZnYH6#)s!AoOZ<>h zzJFzj-|WHpW)Ni#Givo2w0I1NO8$*~T`VQ4YEmug4?+EYnzpW9;ubQJkkc5bx+1)H-$8lKKh!+K&SEWKMPW z0BHoD@#Z`j!~UK$R3pIpZdh@++6WNel z!G({5ucS0?{Y01x+oWic;BV6tVc^E*alJ!gyMCKS$!(AQyt0|SfR{1i+lO7!RP_rq zs>(3_dP=odsNtdtbhr89MZ6?wum-tF1skSJ(vRU0EHu;8SBK zmn3z~qYqD#Zesx&=911I;xn0IU&q)PclH`698a{BDs|+R)M-lp02GpPnR%7wkK|Il z8qk0I^9suY!wY>`ByO-{OyD!Z=MBua`?TI~etta_Uil~7!p+JxbxvyuGRq7l;B}x) zEv|vD8O}SVhijYo^lGkgTClp#f~fN!4()?{axk57rc~FC3j_#}5rKte>|+KPA&>K$ z+Zo@(x&9MEMQ#DsV`9(EJ^O_8EovvHmT8l+JPC^i*Qt*E)Y2cI7gmi5@ng3sXFQlZ zeGk?;2nY-6ut40?IWTi+t!oOHVdEY&ilJl_#xYnZM100tvLN)EHeQ7~#Be2jEX!{g zeru8Fn$*n6h({Xq=lrY{3ZOVa>MFx03g-w`&*;sT-~QycScpF`PJ`1CXqMuFHo}KbOmu|*Z^BnW(o*vxEb(Nt2Sf!OoO&`-4 zV^hU~1VclZ084MNu=dVD)yDRjqV))62t@Q$gVL+?YU73iiYflr+aoHSgWlfRdyTYo z$S@<*Df@|Vl;kYVK_q#g9mwIz8*GQt7}lsEek!+5jcHX$Zf6Ro1v_WpdA_5H}$RoFE}vxno@ z`+LBKN|BHmEN7e|Rg1I#C}pNAXYvb+9Sx5Nc8;CN>>Dv@NsCAYoAlG4_2H`#lej7}Jb|@INIM77x z#F>;9KH+oXmO0qej9~WMKV&=SKpA9*G(lQ{j~AYUp2Hirs8~$RB&wvkQ}UcE!}|Lp z&;8DOrqs)8F52MweSaoetfL>`bXw6;=~>23Av8tsO5FgJ9BBe|gXe|~Jj)`givc*~ zj^Y|%PL-mp@APU7KA>8i6QroF?u&)_PC5ek$$xIKqK5VTl_7p*d(x=%scN_M_AYH6K~lQU;Ke-{a_g{+@4-h9Z&{ z6tEvAp#PE$Wjw+-l6{?ED7;DYH2pv*nftHmk+raeT~LL0aM!&Mb(;6U#@stdUPhcH zd$NRg@=pB5;`yC01Q}Aq?Xj0O=;pJ0{{BQt+3mYl-%5^qlG7 zJg5IQn|>%b#XG31Y6ReUk20!yTSyG7a+`#Te!-TYI{#pI{o+qQ4Pp}%Li_Tb(fhyN zVXfzTvxP$XqGB+>M(2!t)I;XGOL2lq0%5Z9iya4Jg>31L6KbNje>5_&vPDzAzC|6V zHS;(S=iI`4Krj%pPG}9e@o02^ifZouc${=DnXwlekSUB06gL3K;5Ub5wR{t+4vY>% zWokQ-Xx8$EXL|E@&k4MBGmj+mKLR9(4_*bp|8^_lc9FjOFh&l};`v1UMb@{DeUdv; zjCOvt^8%E~?WBKRy$qf%Uc*iV3V)g=#DIS3ZA9 z=^4~#cu@!TP|5s?wSbi=L{yTq3C*stA{#qg7eY*qK)*8wXMu10B(SLbchRjHOF`%h zIL_pcc|Rhu?|2l^9%tm|n$NJ=qIvzmyR$-BdB@tPi?NxGK4wOL{k6lq2p`#VQ;UX9 z_$2EK^lKXI9FhMtnh3)CLPSOn%ZITsXEVvInS>)K4 z;oXrU7>wIzoSgX=Jh55!); zziHc9km&oeS>&al9c1U^)>zZ8&-n5eRyOF0!}Y>|?lSGAJ92OCk7ssR8jW?+i#lE> zF%nsCza~^yV;@C}uGDo>FoS&YK}~J^Y}`wyJH~9|IY{Y^QFnW=!a6 z_-ShaoMPwC^abnSuvOLWcux?RwRy`d>V<;cvAak-CV~MHY9=erPIh5D zoZsD{hiYYhJs5lr(n^Q+l3qwgu-1*|UZoId$1dzvEln8Plr|_VL_~BFFVI7VuGmpd zG2%1xx!{4u?#!$C$uo)+*^5U8bw0HSHp4rNl~~=9lUA^DMpJ66g%)w8tqlO z>v*G)&@}BaW$0i$ZWED($rDH3xyON0e1p`2o1uNlAr{Me^9x+s8HU(gpPzmaaX1G8LMu@NKda!vIGLCvSQP_Mkt$IHa z4BV1|Vt1Qrzj3`_b}rDB6`inoc_WG3o?fu9OYMDgU4n*2cZ>QT0pLK4(U1~Mb&Q8Q zsTPPPno6E$hX#|nW^W{yS9heu)_uU}t-|LNwT~{)ucB!t6haBdkH&qE@NaI?uE62H>` zwqb#KVE(p1bW=l?^m3;vG&*sv);bt7}Ah`>S z1L}1=c`TlM)H)u-Qv>oQ{CPr)`=aiIQ3_*dmHUImznn?m*Ueaa z-p_T9y#?;++s>mqpMWV6$8z)Mg%8kJ%C#D<1Na}}?AVo3hw#ueASHxye4QQaOH*^>T~F~!*6N={Sc@*~9;ybnt%fuD^rG~3q@u=d zUn2VCKCt527cX+>!-VJR94S4j_EuzvLQ=mg9tKq@0L;vJg^}i9-o|FN{OmA@SK}o! ztZFT{bYUlGbm-`syG4Bbi$2l_pg(~F@Q@ekg?YF;X~9WLIF0yq>{zbt!Zz|%L(tc^ z;f5UZXy=cgpO*#-i95|Te*L)krda+pdI@}BMqFRw)2M^<*hV1ZV0-L#A8kYocK*Qt zNZPkOIs5h2rt6Btua>Pr^kdfEV#jsa4Bf!EV+5t%zuzmW=uL4DN1r0psRGC#fJuH4 zdD%F*`Al2T#6xd-S{dg1z_Q{t9^vbo9XLR*n7LLon=Lh5ov2zoP$CjWv|$-W`VuBd#=U+{e%7B@1?O3o^HXc+r%=1qV| zXxkbdL>O>KMH7+i*SOg#32{-5nbv~UfXOiUR?k>=NR6!d?tKl!TL8Iwp9XafrT^Fh z+NSTuXBmXK=NO1zv5xWk9|h)QBkBq1yu#db%-D{*sR-$IY-}ppEb*_d{fEVcPyDa{&pO;~Exg*t z9(5nbsb@TBJd#1^)$NxC#2cmM2Xl<_Sq+!l*|YNxgPR`qUqssIf=ez#OkO>Fv>j*t zlL{amlG)+4Q?kn(S*8)KS1+lh6omw_*UX6yHb_F*l;K3K-@wQDQIa>uff&sX z^(+5{VC6Z+zc`97YrWRf5>t)|U5RGw6NVaP9=WNPqOMwe5Tz_6j}mfy+1u{!BpT0#96EoI8g_PO844B*$>G{2s4*cK?89A0{mMw`P@0bdCVg{ zOj5>U_y6RKmLS1RdKc8`%Eq$`;J?hB7BvjFY_|MdW;w~n#BBf5AMRp~vUoNnMm6?r z%g?@#Y67nk7R;3xl8XhfFv1>4eQ-hJ5q&pQlYqMF5xSfLQh5nX@7%J!UxrroEvEZ7 zmpk8fturP!H4D!g?=VDZA-BDXC|9MkAa_I)LDNc>2!8%)7^AxqW3GWID-S!_#K{Z| zboLNF>?qAr!`330`;-%Sr@q3mtvHYMlSYk14-t@=rQXjr|odqL{ z!2-+8RHENKEK^nNKDoxJXA}BQPB?c)1*i2LEBSQ0ivt;t_WB^5Pm{sj{lf)Zf>eU& z+<7wFPwYo-Iq1VbxA2P&({^#W8tFkqXb7n1f#RXyrBKROhVDxEA9l$@|0LNHE4{^& zD_Vz&O*&(fn&N;Ic-$JEa`p?9t5R_s{@ok$uAcbZ?+9kTsw25*_v#VLZ<>^*+nkU^ z-Y_$74Ad_7l`@aWk;EkkcF)cqwgD~a7F?5oaY8A_MDg0cpEd<=_2Mm`?x8NFb>jF| z2dQ5At02uW{RIZsh-nVN#F&}e*S8~=CqCc%Bz$0~IA^%DjN9J8z9G2`zM8XcdKRc> zW-YnAIfpN~(G`Ocbn_Av!Qjm9&zQU!juLcyI=2OJWmkaQ1N@y?L0tBKpAIoiC4|90 z(9T6^WlyUKXC)m$@6>v~WrSjiz9N%>llpIjmaB%C({eDHdhzD7pP^3dM5_K(@w+Pc z!o!h&oxukak3-oIL&L0={o-Ic@J>QK6Jlt=7M(eeZ(Xy8_r z!nIUG=2yeb{HB;uW>NQ12P}@@r&)B}(+@H)dg`VaWnQGK3V^qaa~PmD^dGEa1&Fch z8ocVl7?Cu4u2gQzt0}%#=GRriQ>!u2T(+)WhjuFweO_Rrf`b1`IZXf0__0wH|LfqM zwZ8snC6KJ|boUF6=0fMTmyg<>8jZL@B$Fx0hUqiT9r_Zk=AEV89UFs6xc!x$Eb`)I ze4<}3YI`1y?dp4blh~aan_Fqa?|9eaBldK_8=I`vpD^j+yC|gMT2f~e%FYukt}^%w zYEdBR;^5Y5Z7d~Jca&$n;Sf|dS)dBe=!G4tTfk6qpmReACI6~D_s%OcOnzMF%#{3H zqkWyR#%ggh`T{kC{><^e`%w0|!-EohOs+)=(Ntxfeo*NsYJ}^KvN^fBV2nhQckZU4 zmeX!L4wOE^VB3l~wEr6mjv+3CP!Kkm8+#Z$4XDQY|Adr$kh1U$rP%^c-9-kX*(bG0 zjuE6M z?jQP1fCZHmCwk*G&_?pZEtq7xUke}7@0WqL@O#P#rSpkE6=YS-cP<0es_aZ^GZ@Y| zfd-9Ry3zx$Mxm1(WvKT*#!s920pp}ruiZ2F?-UJS?6Lqy(C;2obb*;;LHU7BGNSIm zJL1$mJ0~=Ny}InjDD3Hgu8qwWj%s16g{4#WXx>4Y-y{Xm)DEP%%2J&JH=7dT-zUI~ z+Tjjris{TYx~NQmGfuvw+VECJSe=W4o^#v}51H)x%|=2JwL@Ro?q$rN9|-?lP20>( zsHw$#l2&5s>#&B)r&ZjutLADkfb-&u)b+Jv!b*+#6 zW19jw_3c6V?=gL>*X`jb;fDe#A0yz4@Bk|xwG)BZb)mD?RFhHj7Gblpj(usY1K(>b z)&IM!pp+tNFjYYx_p#f3s^h>a6*0yP&1F{KqJX+(e%(n+M4@IJkq{+;&zZ7vAxPQG zuReP`^hwLqqQ&)tgYvQaR0wc9nvqzP=D??i($Z#2ZFeibo_|7+hBTG%eEFD_OB1bG z(I_%Qb9EkEERS-NuH>^jtZahCWypf);46oDpg3t-zch#a$I>ZUJFD7xh0T9*X0-N4 zd?4R>wxtkRyHz!(s=O+;!{}l0=I$e2Z|~7!LK)k|F&z^q2B&KLo~R#MV7j_ktR#ZlE@&1+Yr)%qK0yjZN_e5Vs2f_wcX1_ zwsGx+DEm5wEFnaeEMo?jxnvl!Z}UCxcb~uF`*`^AJkEKY^Ln1w>pWkt=X=y|iKc?8 zDm0(J<)jD&i5C1&zb2Z^QrN5uz>v+=4;wz%IXJ{F@M>YAk3*=bs9!xmGWzQ8l5LBk zHAk-Nib(Ym6B6f4tT(GHUQl((NC>QTqDOH&dV_D4$-T#p)>SRgj$l*%s9sJ znS_IU=z!x@Fld7)>bLoUmmh`|!_&T+znr(3OiO=Ka$zzL$GH-Uijmhqi@>WUuj*kk zBF0HF0W-S=pA8v>LHrukaX$Z;(u2fm2Jl=SDh*Q=tLk(W$J@{Ds|K5BtLyh^geYf8?%mE~u7CmIefFxfX{y`x(C{_qR zJqE?W*NwCLI#l)1lyaKtHeXK6@y)vBhC_ikRFgBM)8+AK?GkI)#zCI` z@AdE|mi}$F;^$<@YeatBsmC#ttZiUBkz%kq?#mroNZj@jS$y)|wLJI}cEg0d@FH z#6vI2D;7?qSoIe6ZO!ssV&uB)Y+-DJQD}f6PXm1rUeyo*RE}5_#agoi4`evW!Lb6a z^BQteJN}tS(nze7k5xT%&WT-tSIxs=F8ejg{AKN(7@uM>N$UWHEs;O4YbzI50{iXn zY0Sb=5MDN)g_J@Pp|=uCR&ZH&fm)r4@Qe|uGJ61_(8OKY;fET@jes?*CDWcIbWwz! zv2#!Jj~&Xg2bRav8%~?2?;56G_+f(AeTli*=>&R^)gSF{e87~a5Hn9Fyel7A`tl2e z`$8K6M~^M~rRkAW>QAr0v1LO7A-|G|4xA-d$T3uKPX)ZwKV~%C2j67+BNJ zv*+^d)icI68(Fw0{QnlTLK{d#2cj<2;@T>jNn?`MG#OKt=y+D=%*Kjs@S~sEsqb3B zvlqbr&J#dV5e-6Hd(Vh*?qPpr&-34vS;^0DbJDCXwRMCQj*iYtsY;NEW6m>3KUuQC zo(opMwHMD4HA^@kRsx6BIwS-|{vktO{GrXL357b9!&8Mo9JGdHk{r^4hvT zfy2%Ab>R#rjUkVSnOW1K&U~%ZE*T9E?s_MwTen$W3UX1iMOM;r&Qi_RiNcpn4ABjwo+_ zHao%^fpuZdgr$>w$%vhDdnXj;S`n*=Mdu}NZ(;6J;4ArBIL7QI3Xftx_t*2>7nLJ4 zayIJ3&8%E~?8fK9_m6{K!CRJ+6@-=@8+4}_Uj4#n3Sak4|Lo;6A78k~@{yi<1b_4a zB4LMS>q2O^ky;K(K$w)qdirrk;RsXGc0b<167(SJ-Xu7xfx5=jDQp(Bm)!8=O%C4@ zm#YVXN(C%2;^50y=>bCODcrbgkYJz#pbZo?=-q*d0~IWJ#_=otu^n#87vc*Vfrjo? zxs`s~kVo)`>KC9F0AI)sJdM}ktw9T@cXo>j@a@`{27Mu)%5fQY-K7f)f2&&w0v%~M zMBgNY=${g3Ky3NyNS9KmQ)m__0TNlKi0u*?>y4*?bmtKjn|zO4hvOIy?ge)TWjh)r3IeQL!@~(G{CO+u|~4?#DsnQ!o7;BdmiNaMeu?U z3M?;GhNrWQkr##Acq#=P=W?NAij51>1Cp!V>8E`{c>7{S?o-O(*;wb76EwbzE+1qx z>KXg|-aqH$w^>(Rr8RE%Xi-gix`6uTF=m-=X$1q`IP~6=mg*3=IZ*q#&h0P0V!{#j8n3U^E>^IoGo@Q15E89P$&T>E9}6a5>bI zrGx++?IOI5JE}7xqWz~HB7;}s$Jv*|Pq?`!?Ms|=Q?4A2++^o*%v+<{&nQ*OUx)Wx z)P4~5V>69feSX~y^wfU-q|9oDdXoH`>_mMz{4eM!5IP|TrhwihAGldQ3fN?v>V0g! z?&aP#_Si6mJc@b7+~jIBRrp3g-DNi^gIJnA)^0eL7OiR3Rh^gn?&B>==U=8<@m%PR|IJqT_hu>gd1w^)%p}>h zH0U3)x$09S){?6fYDx;@NRKA`-jWe3tFs z*8nG-TP4Ixq~9)aaVo}3JDntt7$L1_JTdO64*oz$PS1%Dk2Op3&ZIzNG2&wMYY7p~ z2u^KU6E-(`FuAU2;UU&Z8!*`i2kRVePpP!CeK246(m+jmdpd7%;; zE|fc88qin`I2FLo#tl=*&_e8_h*)S2wKi&>mfhYw*0O{esIc|;t0%jvsF7t$J?GU@ zs{0;3#fOSOL0jG2)}iO5{*w>^)WxqEB=uYTteT08NKwsvx69W*Xv) z8LYj+AYx>t>`Y@6A$XCBiu6epXf>u|Md0LaP$xB$?ly|SskGu8va}9IEzkzEhJy^7uE*E ze5uJkh3r%#QnUm_uW7aax$bg!1HIFIm!FqI<4*h8p_~0hz4*}^calC$+xxq6^mFgq z+AC?)tRg~YMUP&JMu}(sAqTJDCz-|&BI)yq$&}y8w6AbkqW8pH?X}YEJ}$ncbduV$ z!uy%53Xi1!f!dbGqu%bnYO4cj?c)K zNsb60IKi%dntO>yhFHPL(d%>RccB*sxx9O*v+{CArpbhn2lOK{aG-tqLMsc?3Oamx z*)B|>Us0Xo>y2f%9kaGy6|sbm)m$V`GzqtU_sjmOo`Feg57mOh<`iW*=DOHD%Tl>t zJTxcmS4ouCI$=>ZmGUPPP3EU(iAS{rly&#|uJzv34B7Ufm5U5sJ%||E5Cw&^8w5Vs zz%dVk#nvIbV8{iifIO9LUN_Ql4*GJ$yGLfvOR7f6e2dZvqtSOBqN1bhw~=b3=C#(G zxR{CG{{&TE?<0D9eWBLj5q&8&@Kp#Bm71QRrUin=Q2P_()v>%%kbZ~VzQuhRKbV|4 zHF;6*9rF?o9P*wl;tpH3V!34wdNP0it$DFE&*CM<8KWRU{31h?4(zxgwvBbWZ|P#x_@x6DX0Ksuog%47vrR(8Be^tw`KejVH22bB7@*3O*6TF1a;NJ zZ;OUjWixV&?El;2koi3&Ol>aSgHRDa_Fz(^7cs))%nh=UYo0jP@4RdAP~RTtuEFHO zEgSYV3ro<4dX8oSd}Z3QDrF1gUdsXo*C#HrG-~hDY1oBh97rZvd!=8i+eL}Eh*T%E zKib!L%1`2Xxw8 z6=NjLX~$M;c0T*YBy`ob->VAEnL(aBBM&8{Tgfq~;vZ||GiKJd^%biM?(ulWiOk)& z9)B96_*WbA8)rnnC1vLq?RQ(U2i1|+Z{Z}=5SWE?E2rsQ2Qo`X@J8HN)uR|N`v1@0 dpgf1aK*5sF=fr*__y^)#7$bATlB@Q={U3NQ?BxIe diff --git a/frontend/resources/images/form/uxpin.png b/frontend/resources/images/form/uxpin.png index 02b5d93314546b0a5a744d0deddac8ea77ba0cea..bbd155d6a4450bd3e2eef5a749817790c52b54b6 100644 GIT binary patch literal 13208 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 literal 19741 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

    OUia6>+6W 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

    ``` @@ -59,8 +58,7 @@ Also provide Docker commands or docker-compose file if possible and if proceed.x
    -**Backend Stack Trace (if self-hosted)** - +Backend Stack Trace:
    ``` @@ -69,5 +67,6 @@ Also provide Docker commands or docker-compose file if possible and if proceed.x
    -**Additional context** -Add any other context about the problem here. +**Additional context:** + +Any other context about the problem. From 32078603749879bccf219310083e95dcc6965e16 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 15 Feb 2022 16:01:46 +0100 Subject: [PATCH 114/154] :bug: Fix compatibility issues of some requires and shadow-cljs --- frontend/src/app/util/time.cljs | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/frontend/src/app/util/time.cljs b/frontend/src/app/util/time.cljs index 5fd1ee0c44..8ce40754c5 100644 --- a/frontend/src/app/util/time.cljs +++ b/frontend/src/app/util/time.cljs @@ -6,20 +6,20 @@ (ns app.util.time (:require - ["date-fns/formatDistanceToNowStrict" :default dateFnsFormatDistanceToNowStrict] - ["date-fns/locale/ar-SA" :default dateFnsLocalesAr] - ["date-fns/locale/ca" :default dateFnsLocalesCa] - ["date-fns/locale/de" :default dateFnsLocalesDe] - ["date-fns/locale/el" :default dateFnsLocalesEl] - ["date-fns/locale/en-US" :default dateFnsLocalesEnUs] - ["date-fns/locale/es" :default dateFnsLocalesEs] - ["date-fns/locale/fr" :default dateFnsLocalesFr] - ["date-fns/locale/he" :default dateFnsLocalesHe] - ["date-fns/locale/pt-BR" :default dateFnsLocalesPtBr] - ["date-fns/locale/ro" :default dateFnsLocalesRo] - ["date-fns/locale/ru" :default dateFnsLocalesRu] - ["date-fns/locale/tr" :default dateFnsLocalesTr] - ["date-fns/locale/zh-CN" :default dateFnsLocalesZhCn] + ["date-fns/formatDistanceToNowStrict" :as dateFnsFormatDistanceToNowStrict] + ["date-fns/locale/ar-SA" :as dateFnsLocalesAr] + ["date-fns/locale/ca" :as dateFnsLocalesCa] + ["date-fns/locale/de" :as dateFnsLocalesDe] + ["date-fns/locale/el" :as dateFnsLocalesEl] + ["date-fns/locale/en-US" :as dateFnsLocalesEnUs] + ["date-fns/locale/es" :as dateFnsLocalesEs] + ["date-fns/locale/fr" :as dateFnsLocalesFr] + ["date-fns/locale/he" :as dateFnsLocalesHe] + ["date-fns/locale/pt-BR" :as dateFnsLocalesPtBr] + ["date-fns/locale/ro" :as dateFnsLocalesRo] + ["date-fns/locale/ru" :as dateFnsLocalesRu] + ["date-fns/locale/tr" :as dateFnsLocalesTr] + ["date-fns/locale/zh-CN" :as dateFnsLocalesZhCn] ["luxon" :as lxn] [app.util.object :as obj] [cuerdas.core :as str])) From aa3826c389ad7b91311929805446a55d94cb9fcf Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 16 Feb 2022 11:26:13 +0100 Subject: [PATCH 115/154] :paperclip: Sort translations --- frontend/translations/ca.po | 152 +++++++++++++-------------- frontend/translations/en.po | 129 +++++++++++------------ frontend/translations/es.po | 128 +++++++++++----------- frontend/translations/fr.po | 122 ++++++++++----------- frontend/translations/he.po | 204 ++++++++++++++++++------------------ frontend/translations/tr.po | 200 +++++++++++++++++------------------ 6 files changed, 467 insertions(+), 468 deletions(-) diff --git a/frontend/translations/ca.po b/frontend/translations/ca.po index 2668846045..af65d41fe1 100644 --- a/frontend/translations/ca.po +++ b/frontend/translations/ca.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2022-01-20 20:55+0000\n" "Last-Translator: Rubén \n" -"Language-Team: Catalan \n" +"Language-Team: Catalan " +"\n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -312,9 +312,19 @@ msgstr "Exporta els fitxers" msgid "dashboard.fonts.deleted-placeholder" msgstr "S'ha eliminat el tipus de lletra" +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.dismiss-all" +msgstr "Descarta-ho tot" + msgid "dashboard.fonts.empty-placeholder" msgstr "Encara no teniu cap tipus de lletra personalitzat instal·lat." +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.fonts-added" +msgid_plural "dashboard.fonts.fonts-added" +msgstr[0] "S'ha afegit 1 tipografia" +msgstr[1] "S'han afegit %s tipografies" + #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -333,6 +343,10 @@ msgstr "" "Penpot](https://penpot.app/terms.html). També podeu llegir sobre les " "[llicències dels tipus de lletra](https://www.typography.com/faq)." +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.upload-all" +msgstr "Puja-ho tot" + msgid "dashboard.import" msgstr "Importa fitxers de Penpot" @@ -345,6 +359,9 @@ msgstr "S'ha produït un problema en importar el fitxer i no s'ha importat." msgid "dashboard.import.import-message" msgstr "S'han importat %s fitxers correctament." +msgid "dashboard.import.import-warning" +msgstr "Alguns fitxers contenen objectes no vàlids que s'han eliminat." + msgid "dashboard.import.progress.process-colors" msgstr "S'estan carregant els colors" @@ -580,6 +597,9 @@ msgstr "N'esteu segur?" msgid "ds.updated-at" msgstr "Actualitzat: %s" +msgid "errors.auth.unable-to-login" +msgstr "Sembla que no esteu autenticat o que la sessió ha caducat." + #: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "El vostre navegador no pot fer aquesta operació" @@ -660,6 +680,19 @@ msgstr "" msgid "errors.registration-disabled" msgstr "El registre està desactivat." +msgid "errors.team-leave.insufficient-members" +msgstr "" +"No hi ha suficients membres com per a abandonar l'equip, potser voleu " +"eliminar-lo." + +msgid "errors.team-leave.member-does-not-exists" +msgstr "El membre que intenteu assignar no existeix." + +msgid "errors.team-leave.owner-cant-leave" +msgstr "" +"El propietari no pot abandonar l'equip, heu de reassignar el rol de " +"propietat." + msgid "errors.terms-privacy-agreement-invalid" msgstr "" "Heu d'acceptar les nostres condicions del servei i la política de " @@ -2451,6 +2484,26 @@ msgstr "Acció" msgid "workspace.options.interaction-after-delay" msgstr "Després de" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation" +msgstr "Animació" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-dissolve" +msgstr "Dissol" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-none" +msgstr "Cap" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-push" +msgstr "Empenta" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-slide" +msgstr "Lliscament" + #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Afegeix una superposició de fons" @@ -2475,6 +2528,14 @@ msgstr "Retard" msgid "workspace.options.interaction-destination" msgstr "Destinació" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-duration" +msgstr "Durada" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-linear" +msgstr "Lineal" + #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "El ratolí entra" @@ -2499,6 +2560,10 @@ msgstr "Navega a: %s" msgid "workspace.options.interaction-none" msgstr "(sense definir)" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-offset-effect" +msgstr "Efecte de desplaçament" + #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "En fer clic" @@ -3000,6 +3065,10 @@ msgstr "Envia-ho darrere" msgid "workspace.shape.menu.copy" msgstr "Copia" +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.create-artboard-from-selection" +msgstr "Selecciona a la taula de treball" + #: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Crea un component" @@ -3020,6 +3089,10 @@ msgstr "Elimina l'inici del flux" msgid "workspace.shape.menu.detach-instance" msgstr "Desconnecta la instància" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.detach-instances-in-bulk" +msgstr "Desenganxa les instàncies" + msgid "workspace.shape.menu.difference" msgstr "Diferència" @@ -3313,77 +3386,4 @@ msgid "workspace.updates.update" msgstr "Actualitza" msgid "workspace.viewport.click-to-close-path" -msgstr "Feu clic per a tancar el camí" - -#: src/app/main/ui/dashboard/fonts.cljs -msgid "dashboard.fonts.dismiss-all" -msgstr "Descarta-ho tot" - -#: src/app/main/ui/dashboard/fonts.cljs -msgid "dashboard.fonts.fonts-added" -msgid_plural "dashboard.fonts.fonts-added" -msgstr[0] "S'ha afegit 1 tipografia" -msgstr[1] "S'han afegit %s tipografies" - -#: src/app/main/ui/dashboard/fonts.cljs -msgid "dashboard.fonts.upload-all" -msgstr "Puja-ho tot" - -msgid "errors.team-leave.insufficient-members" -msgstr "" -"No hi ha suficients membres com per a abandonar l'equip, potser voleu " -"eliminar-lo." - -msgid "errors.team-leave.member-does-not-exists" -msgstr "El membre que intenteu assignar no existeix." - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-dissolve" -msgstr "Dissol" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-none" -msgstr "Cap" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-push" -msgstr "Empenta" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-slide" -msgstr "Lliscament" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-duration" -msgstr "Durada" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-linear" -msgstr "Lineal" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.detach-instances-in-bulk" -msgstr "Desenganxa les instàncies" - -msgid "errors.team-leave.owner-cant-leave" -msgstr "" -"El propietari no pot abandonar l'equip, heu de reassignar el rol de " -"propietat." - -msgid "dashboard.import.import-warning" -msgstr "Alguns fitxers contenen objectes no vàlids que s'han eliminat." - -msgid "errors.auth.unable-to-login" -msgstr "Sembla que no esteu autenticat o que la sessió ha caducat." - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-offset-effect" -msgstr "Efecte de desplaçament" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation" -msgstr "Animació" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.create-artboard-from-selection" -msgstr "Selecciona a la taula de treball" +msgstr "Feu clic per a tancar el camí" \ No newline at end of file diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 5d0e1a085c..e6148716c4 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -576,6 +576,10 @@ msgstr "Your name" msgid "dashboard.your-penpot" msgstr "Your Penpot" +#: src/app/main/ui/confirm.cljs +msgid "ds.component-subtitle" +msgstr "Components to update:" + #: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Cancel" @@ -588,10 +592,6 @@ msgstr "Ok" msgid "ds.confirm-title" msgstr "Are you sure?" -#: src/app/main/ui/confirm.cljs -msgid "ds.component-subtitle" -msgstr "Components to update:" - #: src/app/main/ui/dashboard/grid.cljs msgid "ds.updated-at" msgstr "Updated: %s" @@ -607,13 +607,13 @@ msgstr "Your browser cannot do this operation" msgid "errors.email-already-exists" msgstr "Email already used" -msgid "errors.email-as-password" -msgstr "You can't use your email as password" - #: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "Email already validated." +msgid "errors.email-as-password" +msgstr "You can't use your email as password" + #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "The email «%s» has many permanent bounce reports." @@ -1364,6 +1364,10 @@ msgstr "" msgid "modals.add-shared-confirm.message" msgstr "Add “%s” as Shared Library" +#: src/app/main/ui/workspace/nudge.cljs +msgid "modals.big-nudge" +msgstr "Big nudge" + #: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Verify new email" @@ -1545,6 +1549,10 @@ msgstr "Are you sure you want to leave this team?" msgid "modals.leave-confirm.title" msgstr "Leaving team" +#: src/app/main/ui/workspace/nudge.cljs +msgid "modals.nudge-title" +msgstr "Nudge amount" + #: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Promote" @@ -1571,6 +1579,20 @@ msgstr "" msgid "modals.remove-shared-confirm.message" msgstr "Remove “%s” as Shared Library" +#: src/app/main/ui/workspace/nudge.cljs +msgid "modals.small-nudge" +msgstr "Small nudge" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component-in-bulk.hint" +msgstr "" +"You are about to update components in a shared library. This may affect " +"other files that use it." + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component-in-bulk.message" +msgstr "Update components in a shared library" + #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Update" @@ -1585,32 +1607,10 @@ msgstr "" "You are about to update a component in a shared library. This may affect " "other files that use it." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "modals.update-remote-component-in-bulk.hint" -msgstr "" -"You are about to update components in a shared library. This may affect " -"other files that use it." - #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Update a component in a shared library" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "modals.update-remote-component-in-bulk.message" -msgstr "Update components in a shared library" - -#: src/app/main/ui/workspace/nudge.cljs -msgid "modals.nudge-title" -msgstr "Nudge amount" - -#: src/app/main/ui/workspace/nudge.cljs -msgid "modals.small-nudge" -msgstr "Small nudge" - -#: src/app/main/ui/workspace/nudge.cljs -msgid "modals.big-nudge" -msgstr "Big nudge" - #: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Invitation sent successfully" @@ -2054,22 +2054,6 @@ msgstr "Linear gradient" msgid "workspace.gradients.radial" msgstr "Radial gradient" -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.file" -msgstr "File" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.edit" -msgstr "Edit" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.view" -msgstr "View" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.preferences" -msgstr "Preferences" - #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Disable dynamic alignment" @@ -2130,6 +2114,22 @@ msgstr "Hide rules" msgid "workspace.header.menu.hide-textpalette" msgstr "Hide fonts palette" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.option.edit" +msgstr "Edit" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.option.file" +msgstr "File" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.option.preferences" +msgstr "Preferences" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.option.view" +msgstr "View" + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Select all" @@ -2162,7 +2162,6 @@ msgstr "Show rules" msgid "workspace.header.menu.show-textpalette" msgstr "Show fonts palette" - #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Reset" @@ -2833,6 +2832,9 @@ msgstr "All corners" msgid "workspace.options.radius.single-corners" msgstr "Single corners" +msgid "workspace.options.recent-fonts" +msgstr "Recent" + #: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Rotation" @@ -2840,9 +2842,6 @@ msgstr "Rotation" msgid "workspace.options.search-font" msgstr "Search font" -msgid "workspace.options.recent-fonts" -msgstr "Recent" - #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "Select a shape, artboard or group to drag a connection to other artboard." @@ -3172,10 +3171,6 @@ msgstr "Detach instance" msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Detach instances" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.update-components-in-bulk" -msgstr "Update main components" - msgid "workspace.shape.menu.difference" msgstr "Difference" @@ -3205,10 +3200,6 @@ msgstr "Flip vertical" msgid "workspace.shape.menu.flow-start" msgstr "Flow start" -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.select-layer" -msgstr "Select layer" - #: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Bring forward" @@ -3229,6 +3220,9 @@ msgstr "Group" msgid "workspace.shape.menu.hide" msgstr "Hide" +msgid "workspace.shape.menu.hide-ui" +msgstr "Show/Hide UI" + msgid "workspace.shape.menu.intersection" msgstr "Intersection" @@ -3251,6 +3245,10 @@ msgstr "Path" msgid "workspace.shape.menu.reset-overrides" msgstr "Reset overrides" +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.select-layer" +msgstr "Select layer" + #: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Show" @@ -3277,6 +3275,10 @@ msgstr "Unlock" msgid "workspace.shape.menu.unmask" msgstr "Unmask" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.update-components-in-bulk" +msgstr "Update main components" + #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Update main component" @@ -3309,10 +3311,6 @@ msgstr "Assets" msgid "workspace.toolbar.color-palette" msgstr "Color Palette (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.text-palette" -msgstr "Typographies (%s)" - #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Comments (%s)" @@ -3349,6 +3347,10 @@ msgstr "Rectangle (%s)" msgid "workspace.toolbar.text" msgstr "Text (%s)" +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.text-palette" +msgstr "Typographies (%s)" + #: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "There are no history changes so far" @@ -3477,7 +3479,4 @@ msgid "workspace.updates.update" msgstr "Update" msgid "workspace.viewport.click-to-close-path" -msgstr "Click to close the path" - -msgid "workspace.shape.menu.hide-ui" -msgstr "Show/Hide UI" +msgstr "Click to close the path" \ No newline at end of file diff --git a/frontend/translations/es.po b/frontend/translations/es.po index c9df35e38b..4c600d2d31 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -582,6 +582,10 @@ msgstr "Tu nombre" msgid "dashboard.your-penpot" msgstr "Tu Penpot" +#: src/app/main/ui/confirm.cljs +msgid "ds.component-subtitle" +msgstr "Componentes a actualizar:" + #: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Cancelar" @@ -590,10 +594,6 @@ msgstr "Cancelar" msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs -msgid "ds.component-subtitle" -msgstr "Componentes a actualizar:" - #: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "¿Seguro?" @@ -610,13 +610,13 @@ msgstr "Tu navegador no puede realizar esta operación" msgid "errors.email-already-exists" msgstr "Este correo ya está en uso" -msgid "errors.email-as-password" -msgstr "No puedes usar tu email como password" - #: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "Este correo ya está validado." +msgid "errors.email-as-password" +msgstr "No puedes usar tu email como password" + #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "El email «%s» tiene varios reportes de rebote permanente." @@ -1366,6 +1366,10 @@ msgstr "" msgid "modals.add-shared-confirm.message" msgstr "Añadir “%s” como Biblioteca Compartida" +#: src/app/main/ui/workspace/nudge.cljs +msgid "modals.big-nudge" +msgstr "Máximo" + #: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Verificar el nuevo correo" @@ -1547,6 +1551,10 @@ msgstr "¿Seguro que quieres abandonar este equipo?" msgid "modals.leave-confirm.title" msgstr "Abandonando el equipo" +#: src/app/main/ui/workspace/nudge.cljs +msgid "modals.nudge-title" +msgstr "Desplazamiento" + #: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Promocionar" @@ -1573,6 +1581,20 @@ msgstr "" msgid "modals.remove-shared-confirm.message" msgstr "Añadir “%s” como Biblioteca Compartida" +#: src/app/main/ui/workspace/nudge.cljs +msgid "modals.small-nudge" +msgstr "Mínimo" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component-in-bulk.hint" +msgstr "" +"Vas a actualizar componentes en una librería compartida. Esto puede afectar " +"a otros archivos que la usen." + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component-in-bulk.message" +msgstr "Actualizar componentes en librería" + #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Actualizar" @@ -1587,32 +1609,10 @@ msgstr "" "Vas a actualizar un componente en una librería compartida. Esto puede " "afectar a otros archivos que la usen." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "modals.update-remote-component-in-bulk.hint" -msgstr "" -"Vas a actualizar componentes en una librería compartida. Esto puede " -"afectar a otros archivos que la usen." - #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Actualizar un componente en librería" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "modals.update-remote-component-in-bulk.message" -msgstr "Actualizar componentes en librería" - -#: src/app/main/ui/workspace/nudge.cljs -msgid "modals.nudge-title" -msgstr "Desplazamiento" - -#: src/app/main/ui/workspace/nudge.cljs -msgid "modals.small-nudge" -msgstr "Mínimo" - -#: src/app/main/ui/workspace/nudge.cljs -msgid "modals.big-nudge" -msgstr "Máximo" - #: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Invitación enviada con éxito" @@ -2069,22 +2069,6 @@ msgstr "Degradado lineal" msgid "workspace.gradients.radial" msgstr "Degradado radial" -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.file" -msgstr "Archivo" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.edit" -msgstr "Editar" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.view" -msgstr "Ver" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.preferences" -msgstr "Preferencias" - #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Desactivar alineamiento dinámico" @@ -2145,6 +2129,22 @@ msgstr "Ocultar reglas" msgid "workspace.header.menu.hide-textpalette" msgstr "Ocultar paleta de textos" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.option.edit" +msgstr "Editar" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.option.file" +msgstr "Archivo" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.option.preferences" +msgstr "Preferencias" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.option.view" +msgstr "Ver" + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Seleccionar todo" @@ -2843,6 +2843,9 @@ msgstr "Todas las esquinas" msgid "workspace.options.radius.single-corners" msgstr "Esquinas individuales" +msgid "workspace.options.recent-fonts" +msgstr "Recientes" + #: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Rotación" @@ -2850,9 +2853,6 @@ msgstr "Rotación" msgid "workspace.options.search-font" msgstr "Buscar fuente" -msgid "workspace.options.recent-fonts" -msgstr "Recientes" - #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "" @@ -3184,10 +3184,6 @@ msgstr "Desacoplar instancia" msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Desacoplar instancias" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.update-components-in-bulk" -msgstr "Actualizar componentes" - msgid "workspace.shape.menu.difference" msgstr "Diferencia" @@ -3217,10 +3213,6 @@ msgstr "Voltear vertical" msgid "workspace.shape.menu.flow-start" msgstr "Inicio de flujo" -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.select-layer" -msgstr "Seleccionar capa" - #: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Mover hacia delante" @@ -3241,6 +3233,9 @@ msgstr "Agrupar" msgid "workspace.shape.menu.hide" msgstr "Ocultar" +msgid "workspace.shape.menu.hide-ui" +msgstr "Mostrar/Ocultar Interfaz" + msgid "workspace.shape.menu.intersection" msgstr "Intersección" @@ -3263,6 +3258,10 @@ msgstr "Path" msgid "workspace.shape.menu.reset-overrides" msgstr "Deshacer modificaciones" +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.select-layer" +msgstr "Seleccionar capa" + #: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Mostrar" @@ -3289,6 +3288,10 @@ msgstr "Desbloquear" msgid "workspace.shape.menu.unmask" msgstr "Quitar máscara" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.update-components-in-bulk" +msgstr "Actualizar componentes" + #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Actualizar componente principal" @@ -3321,10 +3324,6 @@ msgstr "Recursos" msgid "workspace.toolbar.color-palette" msgstr "Paleta de colores (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.text-palette" -msgstr "Tipografías (%s)" - #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Comentarios (%s)" @@ -3361,6 +3360,10 @@ msgstr "Rectángulo (%s)" msgid "workspace.toolbar.text" msgstr "Texto (%s)" +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.text-palette" +msgstr "Tipografías (%s)" + #: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "Todavía no hay cambios en el histórico" @@ -3489,7 +3492,4 @@ msgid "workspace.updates.update" msgstr "Actualizar" msgid "workspace.viewport.click-to-close-path" -msgstr "Pulsar para cerrar la ruta" - -msgid "workspace.shape.menu.hide-ui" -msgstr "Mostrar/Ocultar Interfaz" +msgstr "Pulsar para cerrar la ruta" \ No newline at end of file diff --git a/frontend/translations/fr.po b/frontend/translations/fr.po index 95d3aec088..69fc424656 100644 --- a/frontend/translations/fr.po +++ b/frontend/translations/fr.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2022-01-20 20:55+0000\n" "Last-Translator: Voxybuns \n" -"Language-Team: French \n" +"Language-Team: French " +"\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -91,6 +91,10 @@ msgstr "Se connecter via OpenID (SSO)" msgid "auth.new-password" msgstr "Saisissez un nouveau mot de passe" +#: src/app/main/ui/auth/register.cljs +msgid "auth.newsletter-subscription" +msgstr "Je souhaite m'abonner à la newsletter de Penpot." + #: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Le code de récupération n’est pas valide." @@ -171,6 +175,47 @@ msgstr "" msgid "auth.verification-email-sent" msgstr "Nous avons envoyé un e-mail de vérification à" +msgid "common.share-link.confirm-deletion-link-description" +msgstr "" +"Êtes-vous certain de vouloir supprimer ce lien ? Si oui, plus personne ne " +"pourra y accéder" + +msgid "common.share-link.get-link" +msgstr "Obtenir le lien" + +msgid "common.share-link.link-copied-success" +msgstr "Lien copié avec succès" + +msgid "common.share-link.link-deleted-success" +msgstr "Lien supprimé avec succès" + +msgid "common.share-link.permissions-can-access" +msgstr "Peut y accéder" + +msgid "common.share-link.permissions-can-view" +msgstr "Peut le visionner" + +msgid "common.share-link.permissions-hint" +msgstr "N'importe qui possédant ce lien peut y accéder" + +msgid "common.share-link.placeholder" +msgstr "Le lien à partager apparaîtra ici" + +msgid "common.share-link.remove-link" +msgstr "Supprimer le lien" + +msgid "common.share-link.title" +msgstr "Partager les prototypes" + +msgid "common.share-link.view-all-pages" +msgstr "Toutes les pages" + +msgid "common.share-link.view-current-page" +msgstr "Seulement cette page" + +msgid "common.share-link.view-selected-pages" +msgstr "Pages sélectionnées" + #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Ajouter une Bibliothèque Partagée" @@ -210,12 +255,25 @@ msgstr "Dupliquer %s fichiers" msgid "dashboard.empty-files" msgstr "Vous n’avez encore aucun fichier ici" +msgid "dashboard.export-frames" +msgstr "Exporter les plans de travail comme PDF..." + msgid "dashboard.export-multi" msgstr "Exporter %s fichiers" msgid "dashboard.export-single" msgstr "Exporter le fichier" +msgid "dashboard.export.detail" +msgstr "" +"* Peut inclure les composants, éléments graphiques, couleurs et/ou polices " +"de caractère." + +msgid "dashboard.export.explain" +msgstr "" +"Un ou plusieurs fichiers que vous souhaitez exporter utilisent des " +"bibliothèques partagées. Que voulez-vous faire avec leurs ressources ?" + msgid "dashboard.fonts.deleted-placeholder" msgstr "Police supprimée" @@ -2721,62 +2779,4 @@ msgid "workspace.updates.update" msgstr "Actualiser" msgid "workspace.viewport.click-to-close-path" -msgstr "Cliquez pour fermer le chemin" - -msgid "common.share-link.placeholder" -msgstr "Le lien à partager apparaîtra ici" - -msgid "common.share-link.title" -msgstr "Partager les prototypes" - -msgid "common.share-link.view-all-pages" -msgstr "Toutes les pages" - -msgid "common.share-link.view-current-page" -msgstr "Seulement cette page" - -msgid "common.share-link.view-selected-pages" -msgstr "Pages sélectionnées" - -msgid "dashboard.export-frames" -msgstr "Exporter les plans de travail comme PDF..." - -msgid "dashboard.export.detail" -msgstr "" -"* Peut inclure les composants, éléments graphiques, couleurs et/ou polices " -"de caractère." - -#: src/app/main/ui/auth/register.cljs -msgid "auth.newsletter-subscription" -msgstr "Je souhaite m'abonner à la newsletter de Penpot." - -msgid "dashboard.export.explain" -msgstr "" -"Un ou plusieurs fichiers que vous souhaitez exporter utilisent des " -"bibliothèques partagées. Que voulez-vous faire avec leurs ressources ?" - -msgid "common.share-link.confirm-deletion-link-description" -msgstr "" -"Êtes-vous certain de vouloir supprimer ce lien ? Si oui, plus personne ne " -"pourra y accéder" - -msgid "common.share-link.get-link" -msgstr "Obtenir le lien" - -msgid "common.share-link.link-copied-success" -msgstr "Lien copié avec succès" - -msgid "common.share-link.link-deleted-success" -msgstr "Lien supprimé avec succès" - -msgid "common.share-link.permissions-can-access" -msgstr "Peut y accéder" - -msgid "common.share-link.permissions-can-view" -msgstr "Peut le visionner" - -msgid "common.share-link.permissions-hint" -msgstr "N'importe qui possédant ce lien peut y accéder" - -msgid "common.share-link.remove-link" -msgstr "Supprimer le lien" +msgstr "Cliquez pour fermer le chemin" \ No newline at end of file diff --git a/frontend/translations/he.po b/frontend/translations/he.po index aab94da397..5d3be3b379 100644 --- a/frontend/translations/he.po +++ b/frontend/translations/he.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2022-01-15 16:53+0000\n" "Last-Translator: Yaron Shahrabani \n" -"Language-Team: Hebrew \n" +"Language-Team: Hebrew " +"\n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -296,9 +296,21 @@ msgstr "ייצוא קבצים" msgid "dashboard.fonts.deleted-placeholder" msgstr "הגופן נמחק" +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.dismiss-all" +msgstr "להתעלם מהכול" + msgid "dashboard.fonts.empty-placeholder" msgstr "עדיין לא מותקנים אצלך גופנים משלך." +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.fonts-added" +msgid_plural "dashboard.fonts.fonts-added" +msgstr[0] "נוסף גופן" +msgstr[1] "נוספו 2 גופנים" +msgstr[2] "נוספו %s גופנים" +msgstr[3] "נוספו %s גופנים" + #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -315,6 +327,10 @@ msgstr "" "Penpot](https://penpot.app/terms.html). אפשר גם לקרוא גם על [רישוי " "גופנים](https://www.typography.com/faq)." +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.upload-all" +msgstr "להעלות הכול" + msgid "dashboard.import" msgstr "ייבוא קובצי Penpot" @@ -327,6 +343,9 @@ msgstr "אירעה תקלה בייבוא הקובץ. הוא לא ייובא." msgid "dashboard.import.import-message" msgstr "%s קבצים עברו ייבוא כרגיל." +msgid "dashboard.import.import-warning" +msgstr "חלק מהקבצים הכילו פריטים שגויים שהוסרו." + msgid "dashboard.import.progress.process-colors" msgstr "עיבוד צבעים" @@ -562,6 +581,9 @@ msgstr "להמשיך?" msgid "ds.updated-at" msgstr "עדכון: %s" +msgid "errors.auth.unable-to-login" +msgstr "נראה שלא עברת אימות או שתוקף ההפעלה פג." + #: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "הדפדפן שלך לא יכול לבצע את הפעולה הזאת" @@ -636,6 +658,15 @@ msgstr "הודעות הדוא״ל לפרופיל שלך מושתקות (דיוו msgid "errors.registration-disabled" msgstr "ההרשמה מושבתת כרגע." +msgid "errors.team-leave.insufficient-members" +msgstr "אין מספיק חברים כדי לעזוב את הצוות, כנראה יהיה עליך למחוק אותו." + +msgid "errors.team-leave.member-does-not-exists" +msgstr "החבר שניסית להקצות לא קיים." + +msgid "errors.team-leave.owner-cant-leave" +msgstr "הבעלים לא יכולים לעזוב את הקבוצה, עליך להעביר את תפקיד הבעלות." + msgid "errors.terms-privacy-agreement-invalid" msgstr "עליך לקבל את תנאי השירות ואת מדיניות הפרטיות." @@ -2401,6 +2432,26 @@ msgstr "פעולה" msgid "workspace.options.interaction-after-delay" msgstr "לאחר השהיה" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation" +msgstr "הנפשה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-dissolve" +msgstr "התמוססות" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-none" +msgstr "ללא" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-push" +msgstr "דחיפה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-slide" +msgstr "גלישה" + #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "הוספת שכבת רקע" @@ -2425,6 +2476,38 @@ msgstr "השהיה" msgid "workspace.options.interaction-destination" msgstr "יעד" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-duration" +msgstr "משך" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing" +msgstr "החלקה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-ease" +msgstr "קלה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-ease-in" +msgstr "החלקה פנימה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-ease-in-out" +msgstr "החלקה פנימה החוצה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-ease-out" +msgstr "החלקה החוצה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-linear" +msgstr "קווי" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-in" +msgstr "פנימה" + #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "כניסת עכבר" @@ -2449,6 +2532,10 @@ msgstr "ניווט אל: %s" msgid "workspace.options.interaction-none" msgstr "(לא הוגדר)" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-offset-effect" +msgstr "אפקט הזחה" + #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "בלחיצה" @@ -2465,6 +2552,10 @@ msgstr "פתיחת שכבת על: %s" msgid "workspace.options.interaction-open-url" msgstr "פתיחת כתובת" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-out" +msgstr "החוצה" + #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "בתחתית במרכז" @@ -2951,6 +3042,10 @@ msgstr "הרחקה לאחור" msgid "workspace.shape.menu.copy" msgstr "העתקה" +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.create-artboard-from-selection" +msgstr "בחירה ללוח אומנות" + #: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "יצירת רכיב" @@ -2971,6 +3066,10 @@ msgstr "מחיקת התחלת זרימה" msgid "workspace.shape.menu.detach-instance" msgstr "ניתוק מופע" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.detach-instances-in-bulk" +msgstr "הפרדת מופעים" + msgid "workspace.shape.menu.difference" msgstr "הבדל" @@ -3264,103 +3363,4 @@ msgid "workspace.updates.update" msgstr "עדכון" msgid "workspace.viewport.click-to-close-path" -msgstr "לחיצה תסגור את הנתיב" - -#: src/app/main/ui/dashboard/fonts.cljs -msgid "dashboard.fonts.upload-all" -msgstr "להעלות הכול" - -msgid "errors.team-leave.member-does-not-exists" -msgstr "החבר שניסית להקצות לא קיים." - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-slide" -msgstr "גלישה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-duration" -msgstr "משך" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-dissolve" -msgstr "התמוססות" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing" -msgstr "החלקה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-linear" -msgstr "קווי" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-offset-effect" -msgstr "אפקט הזחה" - -#: src/app/main/ui/dashboard/fonts.cljs -msgid "dashboard.fonts.dismiss-all" -msgstr "להתעלם מהכול" - -msgid "errors.team-leave.owner-cant-leave" -msgstr "הבעלים לא יכולים לעזוב את הקבוצה, עליך להעביר את תפקיד הבעלות." - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-push" -msgstr "דחיפה" - -#: src/app/main/ui/dashboard/fonts.cljs -msgid "dashboard.fonts.fonts-added" -msgid_plural "dashboard.fonts.fonts-added" -msgstr[0] "נוסף גופן" -msgstr[1] "נוספו 2 גופנים" -msgstr[2] "נוספו %s גופנים" -msgstr[3] "נוספו %s גופנים" - -msgid "errors.auth.unable-to-login" -msgstr "נראה שלא עברת אימות או שתוקף ההפעלה פג." - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation" -msgstr "הנפשה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-none" -msgstr "ללא" - -msgid "dashboard.import.import-warning" -msgstr "חלק מהקבצים הכילו פריטים שגויים שהוסרו." - -msgid "errors.team-leave.insufficient-members" -msgstr "אין מספיק חברים כדי לעזוב את הצוות, כנראה יהיה עליך למחוק אותו." - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-in" -msgstr "פנימה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-out" -msgstr "החוצה" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.create-artboard-from-selection" -msgstr "בחירה ללוח אומנות" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.detach-instances-in-bulk" -msgstr "הפרדת מופעים" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-out" -msgstr "החלקה החוצה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-in-out" -msgstr "החלקה פנימה החוצה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease" -msgstr "קלה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-in" -msgstr "החלקה פנימה" +msgstr "לחיצה תסגור את הנתיב" \ No newline at end of file diff --git a/frontend/translations/tr.po b/frontend/translations/tr.po index 7a65a4fce1..bb1120a81b 100644 --- a/frontend/translations/tr.po +++ b/frontend/translations/tr.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2022-01-15 16:53+0000\n" "Last-Translator: Oğuz Ersen \n" -"Language-Team: Turkish \n" +"Language-Team: Turkish " +"\n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -310,9 +310,19 @@ msgstr "Dosyaları dışarı aktar" msgid "dashboard.fonts.deleted-placeholder" msgstr "Yazı tipi silindi" +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.dismiss-all" +msgstr "Hepsini kapat" + msgid "dashboard.fonts.empty-placeholder" msgstr "Kurulu özel yazı tipiniz bulunmamaktadır." +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.fonts-added" +msgid_plural "dashboard.fonts.fonts-added" +msgstr[0] "1 yazı tipi eklendi" +msgstr[1] "%s yazı tipi eklendi" + #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -332,6 +342,10 @@ msgstr "" "lisanslama](https://www.typography.com/faq) hakkında daha fazla bilgi almak " "isteyebilirsiniz." +#: src/app/main/ui/dashboard/fonts.cljs +msgid "dashboard.fonts.upload-all" +msgstr "Tümünü karşıya yükle" + msgid "dashboard.import" msgstr "Penpot dosyalarını içe aktar" @@ -344,6 +358,9 @@ msgstr "Dosya içeri aktarılırken bir sorun oluştu. Dosya içeri aktarılmad msgid "dashboard.import.import-message" msgstr "%s dosya başarıyla içeri aktarıldı." +msgid "dashboard.import.import-warning" +msgstr "Bazı dosyalar kaldırılmış geçersiz nesneler içeriyordu." + msgid "dashboard.import.progress.process-colors" msgstr "Renkler işleniyor" @@ -579,6 +596,9 @@ msgstr "Emin misin?" msgid "ds.updated-at" msgstr "Güncellendi: %s" +msgid "errors.auth.unable-to-login" +msgstr "Kimliğiniz doğrulanmamış veya oturumun süresi dolmuş gibi görünüyor." + #: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Tarayıcın bu işlemi gerçekleştiremiyor" @@ -657,6 +677,15 @@ msgstr "" msgid "errors.registration-disabled" msgstr "Kayıt olma şu anda devre dışı." +msgid "errors.team-leave.insufficient-members" +msgstr "Takımdan ayrılmak için yeterli üye yok, onu silmek isteyebilirsiniz." + +msgid "errors.team-leave.member-does-not-exists" +msgstr "Atamaya çalıştığınız üye mevcut değil." + +msgid "errors.team-leave.owner-cant-leave" +msgstr "Sahip takımdan ayrılamaz, sahip rolünü yeniden atamanız gerekir." + msgid "errors.terms-privacy-agreement-invalid" msgstr "Hizmet şartlarımızı ve gizlilik politikamızı kabul etmelisin." @@ -2433,6 +2462,26 @@ msgstr "Eylem" msgid "workspace.options.interaction-after-delay" msgstr "Gecikmeden sonra" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation" +msgstr "Canlandırma" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-dissolve" +msgstr "Çöz" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-none" +msgstr "Hiçbiri" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-push" +msgstr "İt" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-animation-slide" +msgstr "Kaydır" + #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Arka plan üst katmanı ekle" @@ -2457,6 +2506,38 @@ msgstr "Gecikme" msgid "workspace.options.interaction-destination" msgstr "Hedef" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-duration" +msgstr "Süre" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing" +msgstr "Yumuşatma" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-ease" +msgstr "Yumuşat" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-ease-in" +msgstr "Yumuşak giriş" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-ease-in-out" +msgstr "Yumuşak giriş çıkış" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-ease-out" +msgstr "Yumuşak çıkış" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-easing-linear" +msgstr "Doğrusal" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-in" +msgstr "Giriş" + #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "Fare girişi" @@ -2481,6 +2562,10 @@ msgstr "Şuraya gidin: %s" msgid "workspace.options.interaction-none" msgstr "(ayarlanmadı)" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-offset-effect" +msgstr "Uzaklık efekti" + #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "Tıklandığında" @@ -2497,6 +2582,10 @@ msgstr "Üst katmanı aç: %s" msgid "workspace.options.interaction-open-url" msgstr "URL'yi aç" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.interaction-out" +msgstr "Çıkış" + #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Alt orta" @@ -2985,6 +3074,10 @@ msgstr "Arkaya gönder" msgid "workspace.shape.menu.copy" msgstr "Kopyala" +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.create-artboard-from-selection" +msgstr "Çalışma yüzeyi için seçim" + #: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Bileşen oluştur" @@ -3005,6 +3098,10 @@ msgstr "Akış başlangıcını sil" msgid "workspace.shape.menu.detach-instance" msgstr "Örneği ayır" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.detach-instances-in-bulk" +msgstr "Örnekleri ayır" + msgid "workspace.shape.menu.difference" msgstr "Fark" @@ -3298,101 +3395,4 @@ msgid "workspace.updates.update" msgstr "Güncelle" msgid "workspace.viewport.click-to-close-path" -msgstr "Yolu kapatmak için tıklayın" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-dissolve" -msgstr "Çöz" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-offset-effect" -msgstr "Uzaklık efekti" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-in" -msgstr "Giriş" - -#: src/app/main/ui/dashboard/fonts.cljs -msgid "dashboard.fonts.fonts-added" -msgid_plural "dashboard.fonts.fonts-added" -msgstr[0] "1 yazı tipi eklendi" -msgstr[1] "%s yazı tipi eklendi" - -msgid "dashboard.import.import-warning" -msgstr "Bazı dosyalar kaldırılmış geçersiz nesneler içeriyordu." - -msgid "errors.team-leave.insufficient-members" -msgstr "Takımdan ayrılmak için yeterli üye yok, onu silmek isteyebilirsiniz." - -#: src/app/main/ui/dashboard/fonts.cljs -msgid "dashboard.fonts.dismiss-all" -msgstr "Hepsini kapat" - -#: src/app/main/ui/dashboard/fonts.cljs -msgid "dashboard.fonts.upload-all" -msgstr "Tümünü karşıya yükle" - -msgid "errors.auth.unable-to-login" -msgstr "Kimliğiniz doğrulanmamış veya oturumun süresi dolmuş gibi görünüyor." - -msgid "errors.team-leave.member-does-not-exists" -msgstr "Atamaya çalıştığınız üye mevcut değil." - -msgid "errors.team-leave.owner-cant-leave" -msgstr "Sahip takımdan ayrılamaz, sahip rolünü yeniden atamanız gerekir." - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation" -msgstr "Canlandırma" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-push" -msgstr "İt" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-slide" -msgstr "Kaydır" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing" -msgstr "Yumuşatma" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-none" -msgstr "Hiçbiri" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-linear" -msgstr "Doğrusal" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-duration" -msgstr "Süre" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.create-artboard-from-selection" -msgstr "Çalışma yüzeyi için seçim" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease" -msgstr "Yumuşat" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-in-out" -msgstr "Yumuşak giriş çıkış" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.detach-instances-in-bulk" -msgstr "Örnekleri ayır" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-in" -msgstr "Yumuşak giriş" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-out" -msgstr "Yumuşak çıkış" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-out" -msgstr "Çıkış" +msgstr "Yolu kapatmak için tıklayın" \ No newline at end of file From 09a4cb30ec07d6b09e96c94a17c892a1b4f6b1d0 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 16 Feb 2022 11:29:30 +0100 Subject: [PATCH 116/154] :bug: Fix unresolved symbol error introduced in prev merge --- frontend/src/app/main/data/workspace/libraries.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index 2408406f9e..05bfb6d572 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -321,7 +321,7 @@ ;; are small posibilities of race conditions with component ;; deletion. (when-let [component (get-in state [:workspace-data :components id])] - (let [[path name] (cp/parse-path-name new-name) + (let [[path name] (cph/parse-path-name new-name) objects (get component :objects) ;; Give the same name to the root shape new-objects (assoc-in objects From f1db0fea036cd0b6ba7cbc118d3dc9cee7acbdac Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 10 Feb 2022 19:50:40 +0100 Subject: [PATCH 117/154] :recycle: Refactor storage transaction management --- backend/src/app/main.clj | 27 +- backend/src/app/media.clj | 10 +- backend/src/app/rpc/mutations/fonts.clj | 83 ++-- backend/src/app/rpc/mutations/media.clj | 81 ++-- backend/src/app/storage.clj | 377 ++++++++---------- backend/test/app/services_files_test.clj | 26 +- backend/test/app/services_management_test.clj | 15 +- backend/test/app/storage_test.clj | 182 +++++---- backend/test/app/test_helpers.clj | 4 +- common/src/app/common/data.cljc | 69 +++- 10 files changed, 467 insertions(+), 407 deletions(-) diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index ab9de80a1e..aaa7d521bd 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -49,10 +49,6 @@ :app.storage/gc-touched-task {:pool (ig/ref :app.db/pool)} - :app.storage/recheck-task - {:pool (ig/ref :app.db/pool) - :storage (ig/ref :app.storage/storage)} - :app.http.session/session {:pool (ig/ref :app.db/pool) :tokens (ig/ref :app.tokens/tokens)} @@ -163,9 +159,6 @@ {:cron #app/cron "0 0 0 * * ?" ;; daily :task :session-gc} - {:cron #app/cron "0 0 * * * ?" ;; hourly - :task :storage-recheck} - {:cron #app/cron "0 0 0 * * ?" ;; daily :task :objects-gc} @@ -198,7 +191,6 @@ :file-xlog-gc (ig/ref :app.tasks.file-xlog-gc/handler) :storage-deleted-gc (ig/ref :app.storage/gc-deleted-task) :storage-touched-gc (ig/ref :app.storage/gc-touched-task) - :storage-recheck (ig/ref :app.storage/recheck-task) :tasks-gc (ig/ref :app.tasks.tasks-gc/handler) :telemetry (ig/ref :app.tasks.telemetry/handler) :session-gc (ig/ref :app.http.session/gc-task) @@ -304,18 +296,17 @@ :app.storage/storage {:pool (ig/ref :app.db/pool) - :executor (ig/ref :app.worker/executor) + :backends + {:assets-s3 (ig/ref [::assets :app.storage.s3/backend]) + :assets-db (ig/ref [::assets :app.storage.db/backend]) + :assets-fs (ig/ref [::assets :app.storage.fs/backend]) - :backends { - :assets-s3 (ig/ref [::assets :app.storage.s3/backend]) - :assets-db (ig/ref [::assets :app.storage.db/backend]) - :assets-fs (ig/ref [::assets :app.storage.fs/backend]) - :tmp (ig/ref [::tmp :app.storage.fs/backend]) - :fdata-s3 (ig/ref [::fdata :app.storage.s3/backend]) + :tmp (ig/ref [::tmp :app.storage.fs/backend]) + :fdata-s3 (ig/ref [::fdata :app.storage.s3/backend]) - ;; keep this for backward compatibility - :s3 (ig/ref [::assets :app.storage.s3/backend]) - :fs (ig/ref [::assets :app.storage.fs/backend])}} + ;; keep this for backward compatibility + :s3 (ig/ref [::assets :app.storage.s3/backend]) + :fs (ig/ref [::assets :app.storage.fs/backend])}} [::fdata :app.storage.s3/backend] {:region (cf/get :storage-fdata-s3-region) diff --git a/backend/src/app/media.clj b/backend/src/app/media.clj index 6948df513d..176b3cc6fa 100644 --- a/backend/src/app/media.clj +++ b/backend/src/app/media.clj @@ -326,8 +326,10 @@ (defn configure-assets-storage "Given storage map, returns a storage configured with the appropriate backend for assets." - [storage conn] - (-> storage - (assoc :conn conn) - (assoc :backend (cf/get :assets-storage-backend :assets-fs)))) + ([storage] + (assoc storage :backend (cf/get :assets-storage-backend :assets-fs))) + ([storage conn] + (-> storage + (assoc :conn conn) + (assoc :backend (cf/get :assets-storage-backend :assets-fs))))) diff --git a/backend/src/app/rpc/mutations/fonts.clj b/backend/src/app/rpc/mutations/fonts.clj index 6416567d0e..f36a00ae8d 100644 --- a/backend/src/app/rpc/mutations/fonts.clj +++ b/backend/src/app/rpc/mutations/fonts.clj @@ -9,12 +9,10 @@ [app.common.exceptions :as ex] [app.common.spec :as us] [app.common.uuid :as uuid] - [app.config :as cf] [app.db :as db] [app.media :as media] [app.rpc.queries.teams :as teams] [app.storage :as sto] - [app.util.rlimit :as rlimit] [app.util.services :as sv] [app.util.time :as dt] [clojure.spec.alpha :as s])) @@ -39,52 +37,57 @@ ::font-id ::font-family ::font-weight ::font-style])) (sv/defmethod ::create-font-variant - {::rlimit/permits (cf/get :rlimit-font)} [{:keys [pool] :as cfg} {:keys [team-id profile-id] :as params}] - (db/with-atomic [conn pool] - (let [cfg (assoc cfg :conn conn)] - (teams/check-edition-permissions! conn profile-id team-id) - (create-font-variant cfg params)))) + (teams/check-edition-permissions! pool profile-id team-id) + (create-font-variant cfg params)) (defn create-font-variant - [{:keys [conn storage] :as cfg} {:keys [data] :as params}] + [{:keys [storage pool] :as cfg} {:keys [data] :as params}] (let [data (media/run {:cmd :generate-fonts :input data}) - storage (media/configure-assets-storage storage conn) + storage (media/configure-assets-storage storage)] - otf (when-let [fdata (get data "font/otf")] - (sto/put-object storage {:content (sto/content fdata) - :content-type "font/otf"})) - - ttf (when-let [fdata (get data "font/ttf")] - (sto/put-object storage {:content (sto/content fdata) - :content-type "font/ttf"})) - - woff1 (when-let [fdata (get data "font/woff")] - (sto/put-object storage {:content (sto/content fdata) - :content-type "font/woff"})) - - woff2 (when-let [fdata (get data "font/woff2")] - (sto/put-object storage {:content (sto/content fdata) - :content-type "font/woff2"}))] - - (when (and (nil? otf) - (nil? ttf) - (nil? woff1) - (nil? woff2)) + (when (and (not (contains? data "font/otf")) + (not (contains? data "font/ttf")) + (not (contains? data "font/woff")) + (not (contains? data "font/woff2"))) (ex/raise :type :validation :code :invalid-font-upload)) - (db/insert! conn :team-font-variant - {:id (uuid/next) - :team-id (:team-id params) - :font-id (:font-id params) - :font-family (:font-family params) - :font-weight (:font-weight params) - :font-style (:font-style params) - :woff1-file-id (:id woff1) - :woff2-file-id (:id woff2) - :otf-file-id (:id otf) - :ttf-file-id (:id ttf)}))) + (let [otf (when-let [fdata (get data "font/otf")] + (sto/put-object storage {:content (sto/content fdata) + :content-type "font/otf" + :reference :team-font-variant + :touched-at (dt/now)})) + + ttf (when-let [fdata (get data "font/ttf")] + (sto/put-object storage {:content (sto/content fdata) + :content-type "font/ttf" + :touched-at (dt/now) + :reference :team-font-variant})) + + woff1 (when-let [fdata (get data "font/woff")] + (sto/put-object storage {:content (sto/content fdata) + :content-type "font/woff" + :touched-at (dt/now) + :reference :team-font-variant})) + + woff2 (when-let [fdata (get data "font/woff2")] + (sto/put-object storage {:content (sto/content fdata) + :content-type "font/woff2" + :touched-at (dt/now) + :reference :team-font-variant}))] + + (db/insert! pool :team-font-variant + {:id (uuid/next) + :team-id (:team-id params) + :font-id (:font-id params) + :font-family (:font-family params) + :font-weight (:font-weight params) + :font-style (:font-style params) + :woff1-file-id (:id woff1) + :woff2-file-id (:id woff2) + :otf-file-id (:id otf) + :ttf-file-id (:id ttf)})))) ;; --- UPDATE FONT FAMILY diff --git a/backend/src/app/rpc/mutations/media.clj b/backend/src/app/rpc/mutations/media.clj index 8f9075cf15..68b5d98eaf 100644 --- a/backend/src/app/rpc/mutations/media.clj +++ b/backend/src/app/rpc/mutations/media.clj @@ -10,13 +10,11 @@ [app.common.media :as cm] [app.common.spec :as us] [app.common.uuid :as uuid] - [app.config :as cf] [app.db :as db] [app.media :as media] [app.rpc.queries.teams :as teams] [app.storage :as sto] [app.util.http :as http] - [app.util.rlimit :as rlimit] [app.util.services :as sv] [app.util.time :as dt] [clojure.spec.alpha :as s] @@ -49,13 +47,10 @@ :opt-un [::id])) (sv/defmethod ::upload-file-media-object - {::rlimit/permits (cf/get :rlimit-image)} [{:keys [pool] :as cfg} {:keys [profile-id file-id] :as params}] - (db/with-atomic [conn pool] - (let [file (select-file conn file-id)] - (teams/check-edition-permissions! conn profile-id (:team-id file)) - (-> (assoc cfg :conn conn) - (create-file-media-object params))))) + (let [file (select-file pool file-id)] + (teams/check-edition-permissions! pool profile-id (:team-id file)) + (create-file-media-object cfg params))) (defn- big-enough-for-thumbnail? "Checks if the provided image info is big enough for @@ -77,6 +72,9 @@ :code :unable-to-access-to-url :cause e)))) +;; TODO: we need to check the size before fetch resource, if not we +;; can start downloading very big object and cause OOM errors. + (defn- download-media [{:keys [storage] :as cfg} url] (let [result (fetch-url url) @@ -90,6 +88,8 @@ (-> (assoc storage :backend :tmp) (sto/put-object {:content (sto/content data) :content-type mtype + :reference :file-media-object + :touched-at (dt/now) :expired-at (dt/in-future {:minutes 30})})))) ;; NOTE: we use the `on conflict do update` instead of `do nothing` @@ -102,13 +102,27 @@ on conflict (id) do update set created_at=file_media_object.created_at returning *") +;; NOTE: the following function executes without a transaction, this +;; means that if something fails in the middle of this function, it +;; will probably leave leaked/unreferenced objects in the database and +;; probably in the storage layer. For handle possible object leakage, +;; we create all media objects marked as touched, this ensures that if +;; something fails, all leaked (already created storage objects) will +;; be eventually marked as deleted by the touched-gc task. +;; +;; The touched-gc task, performs periodic analisis of all touched +;; storage objects and check references of it. This is the reason why +;; `reference` metadata exists: it indicates the name of the table +;; witch holds the reference to storage object (it some kind of +;; inverse, soft referential integrity). + (defn create-file-media-object - [{:keys [conn storage] :as cfg} {:keys [id file-id is-local name content] :as params}] + [{:keys [storage pool] :as cfg} {:keys [id file-id is-local name content] :as params}] (media/validate-media-type (:content-type content)) - (let [storage (media/configure-assets-storage storage conn) - source-path (fs/path (:tempfile content)) + (let [source-path (fs/path (:tempfile content)) source-mtype (:content-type content) source-info (media/run {:cmd :info :input {:path source-path :mtype source-mtype}}) + storage (media/configure-assets-storage storage) thumb (when (and (not (svg-image? source-info)) (big-enough-for-thumbnail? source-info)) @@ -119,16 +133,25 @@ image (if (= (:mtype source-info) "image/svg+xml") (let [data (slurp source-path)] - (sto/put-object storage {:content (sto/content data) - :content-type (:mtype source-info)})) - (sto/put-object storage {:content (sto/content source-path) - :content-type (:mtype source-info)})) + (sto/put-object storage + {:content (sto/content data) + :content-type (:mtype source-info) + :reference :file-media-object + :touched-at (dt/now)})) + (sto/put-object storage + {:content (sto/content source-path) + :content-type (:mtype source-info) + :reference :file-media-object + :touched-at (dt/now)})) thumb (when thumb - (sto/put-object storage {:content (sto/content (:data thumb) (:size thumb)) - :content-type (:mtype thumb)}))] + (sto/put-object storage + {:content (sto/content (:data thumb) (:size thumb)) + :content-type (:mtype thumb) + :reference :file-media-object + :touched-at (dt/now)}))] - (db/exec-one! conn [sql:create-file-media-object + (db/exec-one! pool [sql:create-file-media-object (or id (uuid/next)) file-id is-local name (:id image) @@ -145,19 +168,16 @@ (sv/defmethod ::create-file-media-object-from-url [{:keys [pool storage] :as cfg} {:keys [profile-id file-id url name] :as params}] - (db/with-atomic [conn pool] - (let [file (select-file conn file-id)] - (teams/check-edition-permissions! conn profile-id (:team-id file)) - (let [mobj (download-media cfg url) - content {:filename "tempfile" - :size (:size mobj) - :tempfile (sto/get-object-path storage mobj) - :content-type (:content-type (meta mobj))} - params' (merge params {:content content - :name (or name (:filename content))})] - (-> (assoc cfg :conn conn) - (create-file-media-object params')))))) + (let [file (select-file pool file-id)] + (teams/check-edition-permissions! pool profile-id (:team-id file)) + (let [mobj (download-media cfg url) + content {:filename "tempfile" + :size (:size mobj) + :tempfile (sto/get-object-path storage mobj) + :content-type (:content-type (meta mobj))}] + (->> (merge params {:content content :name (or name (:filename content))}) + (create-file-media-object cfg))))) ;; --- Clone File Media object (Upload and create from url) @@ -189,7 +209,6 @@ :height (:height mobj) :mtype (:mtype mobj)}))) - ;; --- HELPERS (def ^:private diff --git a/backend/src/app/storage.clj b/backend/src/app/storage.clj index eeee57f465..4891e338df 100644 --- a/backend/src/app/storage.clj +++ b/backend/src/app/storage.clj @@ -18,11 +18,9 @@ [app.storage.impl :as impl] [app.storage.s3 :as ss3] [app.util.time :as dt] - [app.worker :as wrk] [clojure.spec.alpha :as s] [datoteka.core :as fs] - [integrant.core :as ig] - [promesa.exec :as px])) + [integrant.core :as ig])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Storage Module State @@ -40,7 +38,7 @@ :db ::sdb/backend)))) (defmethod ig/pre-init-spec ::storage [_] - (s/keys :req-un [::wrk/executor ::db/pool ::backends])) + (s/keys :req-un [::db/pool ::backends])) (defmethod ig/prep-key ::storage [_ {:keys [backends] :as cfg}] @@ -53,78 +51,74 @@ (assoc :backends (d/without-nils backends)))) (s/def ::storage - (s/keys :req-un [::backends ::wrk/executor ::db/pool])) + (s/keys :req-un [::backends ::db/pool])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Database Objects ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defrecord StorageObject [id size created-at expired-at backend]) +(defrecord StorageObject [id size created-at expired-at touched-at backend]) (defn storage-object? [v] (instance? StorageObject v)) -(def ^:private - sql:insert-storage-object - "insert into storage_object (id, size, backend, metadata) - values (?, ?, ?, ?::jsonb) - returning *") +(s/def ::storage-object storage-object?) +(s/def ::storage-content impl/content?) -(def ^:private - sql:insert-storage-object-with-expiration - "insert into storage_object (id, size, backend, metadata, deleted_at) - values (?, ?, ?, ?::jsonb, ?) - returning *") -(defn- insert-object - [conn id size backend mdata expiration] - (if expiration - (db/exec-one! conn [sql:insert-storage-object-with-expiration id size backend mdata expiration]) - (db/exec-one! conn [sql:insert-storage-object id size backend mdata]))) +(defn- clone-database-object + ;; If we in this condition branch, this means we come from the + ;; clone-object, so we just need to clone it with a new backend. + [{:keys [conn backend]} object] + (let [id (uuid/random) + mdata (meta object) + result (db/insert! conn :storage-object + {:id id + :size (:size object) + :backend (name backend) + :metadata (db/tjson mdata) + :deleted-at (:expired-at object) + :touched-at (:touched-at object)})] + (assoc object + :id (:id result) + :backend backend + :created-at (:created-at result) + :touched-at (:touched-at result)))) (defn- create-database-object [{:keys [conn backend]} {:keys [content] :as object}] - (if (instance? StorageObject object) - ;; If we in this condition branch, this means we come from the - ;; clone-object, so we just need to clone it with a new backend. - (let [id (uuid/random) - mdata (meta object) - result (insert-object conn - id - (:size object) - (name backend) - (db/tjson mdata) - (:expired-at object))] - (assoc object - :id (:id result) - :backend backend - :created-at (:created-at result))) - (let [id (uuid/random) - mdata (dissoc object :content :expired-at) - result (insert-object conn - id - (count content) - (name backend) - (db/tjson mdata) - (:expired-at object))] - (StorageObject. (:id result) - (:size result) - (:created-at result) - (:deleted-at result) - backend - mdata - nil)))) + (us/assert ::storage-content content) + (let [id (uuid/random) + mdata (dissoc object :content :expired-at :touched-at) + + result (db/insert! conn :storage-object + {:id id + :size (count content) + :backend (name backend) + :metadata (db/tjson mdata) + :deleted-at (:expired-at object) + :touched-at (:touched-at object)})] + + (StorageObject. (:id result) + (:size result) + (:created-at result) + (:deleted-at result) + (:touched-at result) + backend + mdata + nil))) (def ^:private sql:retrieve-storage-object "select * from storage_object where id = ? and (deleted_at is null or deleted_at > now())") (defn row->storage-object [res] - (let [mdata (some-> (:metadata res) (db/decode-transit-pgobject))] + (let [mdata (or (some-> (:metadata res) (db/decode-transit-pgobject)) {})] (StorageObject. (:id res) (:size res) (:created-at res) (:deleted-at res) + (:touched-at res) (keyword (:backend res)) mdata nil))) @@ -142,10 +136,6 @@ (let [result (db/exec-one! conn [sql:delete-storage-object id])] (pos? (:next.jdbc/update-count result)))) -(defn- register-recheck - [{:keys [pool] :as storage} backend id] - (db/insert! pool :storage-pending {:id id :backend (name backend)})) - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; API ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -170,17 +160,13 @@ (defn put-object "Creates a new object with the provided content." - [{:keys [pool conn backend executor] :as storage} {:keys [content] :as params}] + [{:keys [pool conn backend] :as storage} {:keys [content] :as params}] (us/assert ::storage storage) - (us/assert impl/content? content) + (us/assert ::storage-content content) + (us/assert ::us/keyword backend) (let [storage (assoc storage :conn (or conn pool)) object (create-database-object storage params)] - ;; Schedule to execute in background; in an other transaction and - ;; register the currently created storage object id for a later - ;; recheck. - (px/run! executor #(register-recheck storage backend (:id object))) - ;; Store the data finally on the underlying storage subsystem. (-> (impl/resolve-backend storage backend) (impl/put-object object content)) @@ -190,10 +176,12 @@ (defn clone-object "Creates a clone of the provided object using backend based efficient method. Always clones objects to the configured default." - [{:keys [pool conn] :as storage} object] + [{:keys [pool conn backend] :as storage} object] (us/assert ::storage storage) + (us/assert ::storage-object object) + (us/assert ::us/keyword backend) (let [storage (assoc storage :conn (or conn pool)) - object* (create-database-object storage object)] + object* (clone-database-object storage object)] (if (= (:backend object) (:backend storage)) ;; if the source and destination backends are the same, we ;; proceed to use the fast path with specific copy @@ -269,7 +257,7 @@ ;; A task responsible to permanently delete already marked as deleted ;; storage files. -(declare sql:retrieve-deleted-objects) +(declare sql:retrieve-deleted-objects-chunk) (s/def ::min-age ::dt/duration) @@ -278,44 +266,46 @@ (defmethod ig/init-key ::gc-deleted-task [_ {:keys [pool storage min-age] :as cfg}] - (letfn [(group-by-backend [rows] - (let [conj (fnil conj [])] - [(reduce (fn [acc {:keys [id backend]}] - (update acc (keyword backend) conj id)) - {} - rows) - (count rows)])) + (letfn [(retrieve-deleted-objects-chunk [conn cursor] + (let [min-age (db/interval min-age) + rows (db/exec! conn [sql:retrieve-deleted-objects-chunk min-age cursor])] + [(some-> rows peek :created-at) + (some->> (seq rows) (d/group-by' #(-> % :backend keyword) :id) seq)])) (retrieve-deleted-objects [conn] - (let [min-age (db/interval min-age) - rows (db/exec! conn [sql:retrieve-deleted-objects min-age])] - (some-> (seq rows) (group-by-backend)))) + (->> (d/iteration (fn [cursor] + (retrieve-deleted-objects-chunk conn cursor)) + :initk (dt/now) + :vf second + :kf first) + (sequence cat))) - (delete-in-bulk [conn [backend ids]] + (delete-in-bulk [conn backend ids] (let [backend (impl/resolve-backend storage backend) backend (assoc backend :conn conn)] (impl/del-objects-in-bulk backend ids)))] (fn [_] (db/with-atomic [conn pool] - (loop [n 0] - (if-let [[groups total] (retrieve-deleted-objects conn)] + (loop [total 0 + groups (retrieve-deleted-objects conn)] + (if-let [[backend ids] (first groups)] (do - (run! (partial delete-in-bulk conn) groups) - (recur (+ n ^long total))) + (delete-in-bulk conn backend ids) + (recur (+ total (count ids)) + (rest groups))) (do - (l/info :task "gc-deleted" - :hint "permanently delete items" - :count n) - {:deleted n}))))))) + (l/info :task "gc-deleted" :count total) + {:deleted total}))))))) -(def sql:retrieve-deleted-objects +(def sql:retrieve-deleted-objects-chunk "with items_part as ( select s.id from storage_object as s where s.deleted_at is not null and s.deleted_at < (now() - ?::interval) - order by s.deleted_at + and s.created_at < ? + order by s.created_at desc limit 100 ) delete from storage_object @@ -326,157 +316,102 @@ ;; Garbage Collection: Analyze touched objects ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; This task is part of the garbage collection of storage objects and -;; is responsible on analyzing the touched objects and mark them for deletion -;; if corresponds. +;; This task is part of the garbage collection of storage objects and is responsible on analyzing the touched +;; objects and mark them for deletion if corresponds. ;; -;; When file_media_object is deleted, the depending storage_object are -;; marked as touched. This means that some files that depend on a -;; concrete storage_object are no longer exists and maybe this -;; storage_object is no longer necessary and can be eligible for -;; elimination. This task periodically analyzes touched objects and -;; mark them as freeze (means that has other references and the object -;; is still valid) or deleted (no more references to this object so is -;; ready to be deleted). +;; For example: when file_media_object is deleted, the depending storage_object are marked as touched. This +;; means that some files that depend on a concrete storage_object are no longer exists and maybe this +;; storage_object is no longer necessary and can be eligible for elimination. This task periodically analyzes +;; touched objects and mark them as freeze (means that has other references and the object is still valid) or +;; deleted (no more references to this object so is ready to be deleted). -(declare sql:retrieve-touched-objects) +(declare sql:retrieve-touched-objects-chunk) +(declare sql:retrieve-file-media-object-nrefs) +(declare sql:retrieve-team-font-variant-nrefs) (defmethod ig/pre-init-spec ::gc-touched-task [_] (s/keys :req-un [::db/pool])) (defmethod ig/init-key ::gc-touched-task [_ {:keys [pool] :as cfg}] - (letfn [(group-results [rows] - (let [conj (fnil conj [])] - (reduce (fn [acc {:keys [id nrefs]}] - (if (pos? nrefs) - (update acc :to-freeze conj id) - (update acc :to-delete conj id))) - {} - rows))) + (letfn [(has-team-font-variant-nrefs? [conn id] + (-> (db/exec-one! conn [sql:retrieve-team-font-variant-nrefs id id id id]) :nrefs pos?)) - (retrieve-touched [conn] - (let [rows (db/exec! conn [sql:retrieve-touched-objects])] - (some-> (seq rows) (group-results)))) - - (mark-delete-in-bulk [conn ids] - (db/exec-one! conn ["update storage_object set deleted_at=now(), touched_at=null where id = ANY(?)" - (db/create-array conn "uuid" (into-array java.util.UUID ids))])) + (has-file-media-object-nrefs? [conn id] + (-> (db/exec-one! conn [sql:retrieve-file-media-object-nrefs id id]) :nrefs pos?)) (mark-freeze-in-bulk [conn ids] (db/exec-one! conn ["update storage_object set touched_at=null where id = ANY(?)" - (db/create-array conn "uuid" (into-array java.util.UUID ids))]))] + (db/create-array conn "uuid" ids)])) + + (mark-delete-in-bulk [conn ids] + (db/exec-one! conn ["update storage_object set deleted_at=now(), touched_at=null where id = ANY(?)" + (db/create-array conn "uuid" ids)])) + + (retrieve-touched-chunk [conn cursor] + (let [rows (->> (db/exec! conn [sql:retrieve-touched-objects-chunk cursor]) + (mapv #(d/update-when % :metadata db/decode-transit-pgobject)))] + (when (seq rows) + [(-> rows peek :created-at) + ;; NOTE: we use the :file-media-object as default value for backward compatibility because when we + ;; deploy it we can have old backend instances running in the same time as the new one and we can + ;; still have storage-objects created without reference value. And we know that if it does not + ;; have value, it means :file-media-object. + (d/group-by' #(or (-> % :metadata :reference) :file-media-object) :id rows)]))) + + (retrieve-touched [conn] + (->> (d/iteration (fn [cursor] + (retrieve-touched-chunk conn cursor)) + :initk (dt/now) + :vf second + :kf first) + (sequence cat))) + + (process-objects! [conn pred-fn ids] + (loop [to-freeze #{} + to-delete #{} + ids (seq ids)] + (if-let [id (first ids)] + (if (pred-fn conn id) + (recur (conj to-freeze id) to-delete (rest ids)) + (recur to-freeze (conj to-delete id) (rest ids))) + + (do + (some->> (seq to-freeze) (mark-freeze-in-bulk conn)) + (some->> (seq to-delete) (mark-delete-in-bulk conn)) + [(count to-freeze) (count to-delete)])))) + ] (fn [_] (db/with-atomic [conn pool] - (loop [cntf 0 - cntd 0] - (if-let [{:keys [to-delete to-freeze]} (retrieve-touched conn)] + (loop [to-freeze 0 + to-delete 0 + groups (retrieve-touched conn)] + (if-let [[reference ids] (first groups)] + (let [[f d] (case reference + :file-media-object (process-objects! conn has-file-media-object-nrefs? ids) + :team-font-variant (process-objects! conn has-team-font-variant-nrefs? ids) + (ex/raise :type :internal :code :unexpected-unknown-reference))] + (recur (+ to-freeze f) + (+ to-delete d) + (rest groups))) (do - (when (seq to-delete) (mark-delete-in-bulk conn to-delete)) - (when (seq to-freeze) (mark-freeze-in-bulk conn to-freeze)) - (recur (+ cntf (count to-freeze)) - (+ cntd (count to-delete)))) - (do - (l/info :task "gc-touched" - :hint "mark freeze" - :count cntf) - (l/info :task "gc-touched" - :hint "mark for deletion" - :count cntd) - {:freeze cntf :delete cntd}))))))) + (l/info :task "gc-touched" :to-freeze to-freeze :to-delete to-delete) + {:freeze to-freeze :delete to-delete}))))))) -(def sql:retrieve-touched-objects - "select so.id, - ((select count(*) from file_media_object where media_id = so.id) + - (select count(*) from file_media_object where thumbnail_id = so.id)) as nrefs - from storage_object as so +(def sql:retrieve-touched-objects-chunk + "select so.* from storage_object as so where so.touched_at is not null - order by so.touched_at - limit 100;") + and so.created_at < ? + order by so.created_at desc + limit 500;") -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Recheck Stalled Task -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(def sql:retrieve-file-media-object-nrefs + "select ((select count(*) from file_media_object where media_id = ?) + + (select count(*) from file_media_object where thumbnail_id = ?)) as nrefs") -;; Because the physical storage (filesystem, s3, ... except db) is not -;; transactional, in some situations we can found physical object -;; leakage. That situations happens when the transaction that writes -;; the file aborts, leaving the file written to the underlying storage -;; but the reference on the database is lost with the rollback. -;; -;; For this situations we need to write a "log" of inserted files that -;; are checked in some time in future. If physical file exists but the -;; database refence does not exists means that leaked file is found -;; and is immediately deleted. The responsibility of this task is -;; check that write log for possible leaked files. - -(def recheck-min-age (dt/duration {:hours 1})) - -(declare sql:retrieve-pending-to-recheck) -(declare sql:exists-storage-object) - -(defmethod ig/pre-init-spec ::recheck-task [_] - (s/keys :req-un [::storage ::db/pool])) - -(defmethod ig/init-key ::recheck-task - [_ {:keys [pool storage] :as cfg}] - (letfn [(group-results [rows] - (let [conj (fnil conj [])] - (reduce (fn [acc {:keys [id exist] :as row}] - (cond-> (update acc :all conj id) - (false? exist) - (update :to-delete conj (dissoc row :exist)))) - {} - rows))) - - (group-by-backend [rows] - (let [conj (fnil conj [])] - (reduce (fn [acc {:keys [id backend]}] - (update acc (keyword backend) conj id)) - {} - rows))) - - (retrieve-pending [conn] - (let [rows (db/exec! conn [sql:retrieve-pending-to-recheck (db/interval recheck-min-age)])] - (some-> (seq rows) (group-results)))) - - (delete-group [conn [backend ids]] - (let [backend (impl/resolve-backend storage backend) - backend (assoc backend :conn conn)] - (impl/del-objects-in-bulk backend ids))) - - (delete-all [conn ids] - (let [ids (db/create-array conn "uuid" (into-array java.util.UUID ids))] - (db/exec-one! conn ["delete from storage_pending where id = ANY(?)" ids])))] - - (fn [_] - (db/with-atomic [conn pool] - (loop [n 0 d 0] - (if-let [{:keys [all to-delete]} (retrieve-pending conn)] - (let [groups (group-by-backend to-delete)] - (run! (partial delete-group conn) groups) - (delete-all conn all) - (recur (+ n (count all)) - (+ d (count to-delete)))) - (do - (l/info :task "recheck" - :hint "recheck items" - :processed n - :deleted d) - {:processed n :deleted d}))))))) - -(def sql:retrieve-pending-to-recheck - "select sp.id, - sp.backend, - sp.created_at, - (case when count(so.id) > 0 then true - else false - end) as exist - from storage_pending as sp - left join storage_object as so - on (so.id = sp.id) - where sp.created_at < now() - ?::interval - group by 1,2,3 - order by sp.created_at asc - limit 100") +(def sql:retrieve-team-font-variant-nrefs + "select ((select count(*) from team_font_variant where woff1_file_id = ?) + + (select count(*) from team_font_variant where woff2_file_id = ?) + + (select count(*) from team_font_variant where otf_file_id = ?) + + (select count(*) from team_font_variant where ttf_file_id = ?)) as nrefs") diff --git a/backend/test/app/services_files_test.clj b/backend/test/app/services_files_test.clj index 4c41ee557a..dc96c2cbac 100644 --- a/backend/test/app/services_files_test.clj +++ b/backend/test/app/services_files_test.clj @@ -174,6 +174,14 @@ :type :image :metadata {:id (:id fmo1)}}}]})] + + + ;; If we launch gc-touched-task, we should have 4 items to freeze. + (let [task (:app.storage/gc-touched-task th/*system*) + res (task {})] + (t/is (= 4 (:freeze res))) + (t/is (= 0 (:delete res)))) + ;; run the task immediately (let [task (:app.tasks.file-media-gc/handler th/*system*) res (task {})] @@ -202,16 +210,22 @@ (t/is (some? (sto/get-object storage (:media-id fmo1)))) (t/is (some? (sto/get-object storage (:thumbnail-id fmo1)))) - ;; but if we pass the touched gc task two of them should disappear + ;; now, we have deleted the unused file-media-object, if we + ;; execute the touched-gc task, we should see that two of them + ;; are marked to be deleted. (let [task (:app.storage/gc-touched-task th/*system*) res (task {})] (t/is (= 0 (:freeze res))) - (t/is (= 2 (:delete res))) + (t/is (= 2 (:delete res)))) - (t/is (nil? (sto/get-object storage (:media-id fmo2)))) - (t/is (nil? (sto/get-object storage (:thumbnail-id fmo2)))) - (t/is (some? (sto/get-object storage (:media-id fmo1)))) - (t/is (some? (sto/get-object storage (:thumbnail-id fmo1))))) + + ;; Finally, check that some of the objects that are marked as + ;; deleted we are unable to retrieve them using standard storage + ;; public api. + (t/is (nil? (sto/get-object storage (:media-id fmo2)))) + (t/is (nil? (sto/get-object storage (:thumbnail-id fmo2)))) + (t/is (some? (sto/get-object storage (:media-id fmo1)))) + (t/is (some? (sto/get-object storage (:thumbnail-id fmo1)))) ))) diff --git a/backend/test/app/services_management_test.clj b/backend/test/app/services_management_test.clj index 7d237b5d15..eb9c28f73d 100644 --- a/backend/test/app/services_management_test.clj +++ b/backend/test/app/services_management_test.clj @@ -11,6 +11,7 @@ [app.http :as http] [app.storage :as sto] [app.test-helpers :as th] + [app.storage-test :refer [configure-storage-backend]] [clojure.test :as t] [buddy.core.bytes :as b] [datoteka.core :as fs])) @@ -19,7 +20,9 @@ (t/use-fixtures :each th/database-reset) (t/deftest duplicate-file - (let [storage (:app.storage/storage th/*system*) + (let [storage (-> (:app.storage/storage th/*system*) + (configure-storage-backend)) + sobject (sto/put-object storage {:content (sto/content "content") :content-type "text/plain" :other "data"}) @@ -90,7 +93,8 @@ )))) (t/deftest duplicate-file-with-deleted-rels - (let [storage (:app.storage/storage th/*system*) + (let [storage (-> (:app.storage/storage th/*system*) + (configure-storage-backend)) sobject (sto/put-object storage {:content (sto/content "content") :content-type "text/plain" :other "data"}) @@ -151,7 +155,9 @@ )))) (t/deftest duplicate-project - (let [storage (:app.storage/storage th/*system*) + (let [storage (-> (:app.storage/storage th/*system*) + (configure-storage-backend)) + sobject (sto/put-object storage {:content (sto/content "content") :content-type "text/plain" :other "data"}) @@ -221,7 +227,8 @@ ))))) (t/deftest duplicate-project-with-deleted-files - (let [storage (:app.storage/storage th/*system*) + (let [storage (-> (:app.storage/storage th/*system*) + (configure-storage-backend)) sobject (sto/put-object storage {:content (sto/content "content") :content-type "text/plain" :other "data"}) diff --git a/backend/test/app/storage_test.clj b/backend/test/app/storage_test.clj index 23777215ba..a7353a65d8 100644 --- a/backend/test/app/storage_test.clj +++ b/backend/test/app/storage_test.clj @@ -7,6 +7,7 @@ (ns app.storage-test (:require [app.common.exceptions :as ex] + [app.common.uuid :as uuid] [app.db :as db] [app.storage :as sto] [app.test-helpers :as th] @@ -22,9 +23,19 @@ th/database-reset th/clean-storage)) +(defn configure-storage-backend + "Given storage map, returns a storage configured with the appropriate + backend for assets." + ([storage] + (assoc storage :backend :tmp)) + ([storage conn] + (-> storage + (assoc :conn conn) + (assoc :backend :tmp)))) (t/deftest put-and-retrieve-object - (let [storage (:app.storage/storage th/*system*) + (let [storage (-> (:app.storage/storage th/*system*) + (configure-storage-backend)) content (sto/content "content") object (sto/put-object storage {:content content :content-type "text/plain" @@ -39,9 +50,9 @@ (t/is (= "content" (slurp (sto/get-object-path storage object)))) )) - (t/deftest put-and-retrieve-expired-object - (let [storage (:app.storage/storage th/*system*) + (let [storage (-> (:app.storage/storage th/*system*) + (configure-storage-backend)) content (sto/content "content") object (sto/put-object storage {:content content :content-type "text/plain" @@ -59,7 +70,8 @@ )) (t/deftest put-and-delete-object - (let [storage (:app.storage/storage th/*system*) + (let [storage (-> (:app.storage/storage th/*system*) + (configure-storage-backend)) content (sto/content "content") object (sto/put-object storage {:content content :content-type "text/plain" @@ -79,7 +91,8 @@ )) (t/deftest test-deleted-gc-task - (let [storage (:app.storage/storage th/*system*) + (let [storage (-> (:app.storage/storage th/*system*) + (configure-storage-backend)) content (sto/content "content") object1 (sto/put-object storage {:content content :content-type "text/plain" @@ -96,14 +109,17 @@ (let [res (db/exec-one! th/*pool* ["select count(*) from storage_object;"])] (t/is (= 1 (:count res)))))) -(t/deftest test-touched-gc-task - (let [storage (:app.storage/storage th/*system*) +(t/deftest test-touched-gc-task-1 + (let [storage (-> (:app.storage/storage th/*system*) + (configure-storage-backend)) prof (th/create-profile* 1) proj (th/create-project* 1 {:profile-id (:id prof) :team-id (:default-team-id prof)}) + file (th/create-file* 1 {:profile-id (:id prof) :project-id (:default-project-id prof) :is-shared false}) + mfile {:filename "sample.jpg" :tempfile (th/tempfile "app/test_files/sample.jpg") :content-type "image/jpeg" @@ -140,12 +156,12 @@ ;; now check if the storage objects are touched (let [res (db/exec-one! th/*pool* ["select count(*) from storage_object where touched_at is not null"])] - (t/is (= 2 (:count res)))) + (t/is (= 4 (:count res)))) ;; run the touched gc task (let [task (:app.storage/gc-touched-task th/*system*) res (task {})] - (t/is (= 0 (:freeze res))) + (t/is (= 2 (:freeze res))) (t/is (= 2 (:delete res)))) ;; now check that there are no touched objects @@ -157,8 +173,85 @@ (t/is (= 2 (:count res)))) ))) + +(t/deftest test-touched-gc-task-2 + (let [storage (-> (:app.storage/storage th/*system*) + (configure-storage-backend)) + prof (th/create-profile* 1 {:is-active true}) + team-id (:default-team-id prof) + proj-id (:default-project-id prof) + font-id (uuid/custom 10 1) + + proj (th/create-project* 1 {:profile-id (:id prof) + :team-id team-id}) + + file (th/create-file* 1 {:profile-id (:id prof) + :project-id proj-id + :is-shared false}) + + ttfdata (-> (io/resource "app/test_files/font-1.ttf") + (fs/slurp-bytes)) + + mfile {:filename "sample.jpg" + :tempfile (th/tempfile "app/test_files/sample.jpg") + :content-type "image/jpeg" + :size 312043} + + params1 {::th/type :upload-file-media-object + :profile-id (:id prof) + :file-id (:id file) + :is-local true + :name "testfile" + :content mfile} + + params2 {::th/type :create-font-variant + :profile-id (:id prof) + :team-id team-id + :font-id font-id + :font-family "somefont" + :font-weight 400 + :font-style "normal" + :data {"font/ttf" ttfdata}} + + out1 (th/mutation! params1) + out2 (th/mutation! params2)] + + ;; (th/print-result! out) + + (t/is (nil? (:error out1))) + (t/is (nil? (:error out2))) + + ;; run the touched gc task + (let [task (:app.storage/gc-touched-task th/*system*) + res (task {})] + (t/is (= 6 (:freeze res))) + (t/is (= 0 (:delete res))) + + (let [result-1 (:result out1) + result-2 (:result out2)] + + ;; now we proceed to manually delete one team-font-variant + (db/exec-one! th/*pool* ["delete from team_font_variant where id = ?" (:id result-2)]) + + ;; revert touched state to all storage objects + (db/exec-one! th/*pool* ["update storage_object set touched_at=now()"]) + + ;; Run the task again + (let [res (task {})] + (t/is (= 2 (:freeze res))) + (t/is (= 4 (:delete res)))) + + ;; now check that there are no touched objects + (let [res (db/exec-one! th/*pool* ["select count(*) from storage_object where touched_at is not null"])] + (t/is (= 0 (:count res)))) + + ;; now check that all objects are marked to be deleted + (let [res (db/exec-one! th/*pool* ["select count(*) from storage_object where deleted_at is not null"])] + (t/is (= 4 (:count res)))))))) + (t/deftest test-touched-gc-task-without-delete - (let [storage (:app.storage/storage th/*system*) + (let [storage (-> (:app.storage/storage th/*system*) + (configure-storage-backend)) prof (th/create-profile* 1) proj (th/create-project* 1 {:profile-id (:id prof) :team-id (:default-team-id prof)}) @@ -198,72 +291,3 @@ ;; check that we have all object in the db (let [res (db/exec-one! th/*pool* ["select count(*) from storage_object where deleted_at is null"])] (t/is (= 4 (:count res))))))) - - -;; Recheck is the mechanism for delete leaked resources on -;; transaction failure. - -(t/deftest test-recheck - (let [storage (:app.storage/storage th/*system*) - content (sto/content "content") - object (sto/put-object storage {:content content - :content-type "text/plain"})] - ;; Sleep fo 50ms - (th/sleep 50) - - (let [rows (db/exec! th/*pool* ["select * from storage_pending"])] - (t/is (= 1 (count rows))) - (t/is (= (:id object) (:id (first rows))))) - - ;; Artificially make all storage_pending object 1 hour older. - (db/exec-one! th/*pool* ["update storage_pending set created_at = created_at - '1 hour'::interval"]) - - ;; Sleep fo 50ms - (th/sleep 50) - - ;; Run recheck task - (let [task (:app.storage/recheck-task th/*system*) - res (task {})] - (t/is (= 1 (:processed res))) - (t/is (= 0 (:deleted res)))) - - ;; After recheck task, storage-pending table should be empty - (let [rows (db/exec! th/*pool* ["select * from storage_pending"])] - (t/is (= 0 (count rows)))))) - -(t/deftest test-recheck-with-rollback - (let [storage (:app.storage/storage th/*system*) - content (sto/content "content")] - - ;; check with aborted transaction - (ex/ignoring - (db/with-atomic [conn th/*pool*] - (let [storage (assoc storage :conn conn)] ; make participate storage in the transaction - (sto/put-object storage {:content content - :content-type "text/plain"}) - (throw (ex-info "expected" {}))))) - - ;; let a 200ms window for recheck registration thread - ;; completion before proceed. - (th/sleep 200) - - ;; storage_pending table should have the object - ;; registered independently of the aborted transaction. - (let [rows (db/exec! th/*pool* ["select * from storage_pending"])] - (t/is (= 1 (count rows)))) - - ;; Artificially make all storage_pending object 1 hour older. - (db/exec-one! th/*pool* ["update storage_pending set created_at = created_at - '1 hour'::interval"]) - - ;; Sleep fo 50ms - (th/sleep 50) - - ;; Run recheck task - (let [task (:app.storage/recheck-task th/*system*) - res (task {})] - (t/is (= 1 (:processed res))) - (t/is (= 1 (:deleted res)))) - - ;; After recheck task, storage-pending table should be empty - (let [rows (db/exec! th/*pool* ["select * from storage_pending"])] - (t/is (= 0 (count rows)))))) diff --git a/backend/test/app/test_helpers.clj b/backend/test/app/test_helpers.clj index 9161296d18..2807e6f3b3 100644 --- a/backend/test/app/test_helpers.clj +++ b/backend/test/app/test_helpers.clj @@ -52,7 +52,6 @@ (assoc-in [:app.db/pool :uri] (:database-uri config)) (assoc-in [:app.db/pool :username] (:database-username config)) (assoc-in [:app.db/pool :password] (:database-password config)) - (assoc-in [[:app.main/main :app.storage.fs/backend] :directory] "/tmp/app/storage") (dissoc :app.srepl/server :app.http/server :app.http/router @@ -65,8 +64,7 @@ :app.worker/scheduler :app.worker/worker) (d/deep-merge - {:app.storage/storage {:backend :tmp} - :app.tasks.file-media-gc/handler {:max-age (dt/duration 300)}})) + {:app.tasks.file-media-gc/handler {:max-age (dt/duration 300)}})) _ (ig/load-namespaces config) system (-> (ig/prep config) (ig/init))] diff --git a/common/src/app/common/data.cljc b/common/src/app/common/data.cljc index ad167a3211..dcd0cf368b 100644 --- a/common/src/app/common/data.cljc +++ b/common/src/app/common/data.cljc @@ -6,7 +6,7 @@ (ns app.common.data "Data manipulation and query helper functions." - (:refer-clojure :exclude [read-string hash-map merge name parse-double]) + (:refer-clojure :exclude [read-string hash-map merge name parse-double group-by]) #?(:cljs (:require-macros [app.common.data])) (:require @@ -609,3 +609,70 @@ (if (or (keyword? k) (string? k)) [(keyword (str/kebab (name k))) v] [k v]))))) + + +(defn group-by + ([kf coll] (group-by kf identity coll)) + ([kf vf coll] + (let [conj (fnil conj [])] + (reduce (fn [result item] + (update result (kf item) conj (vf item))) + {} + coll)))) + +(defn group-by' + "A variant of group-by that uses a set for collecting results." + ([kf coll] (group-by kf identity coll)) + ([kf vf coll] + (let [conj (fnil conj #{})] + (reduce (fn [result item] + (update result (kf item) conj (vf item))) + {} + coll)))) + +;; TEMPORAL COPY of clojure-1.11 iteration function, should be +;; replaced with the builtin on when stable version is released. + +#?(:clj + (defn iteration + "Creates a seqable/reducible via repeated calls to step, + a function of some (continuation token) 'k'. The first call to step + will be passed initk, returning 'ret'. Iff (somef ret) is true, + (vf ret) will be included in the iteration, else iteration will + terminate and vf/kf will not be called. If (kf ret) is non-nil it + will be passed to the next step call, else iteration will terminate. + This can be used e.g. to consume APIs that return paginated or batched data. + step - (possibly impure) fn of 'k' -> 'ret' + :somef - fn of 'ret' -> logical true/false, default 'some?' + :vf - fn of 'ret' -> 'v', a value produced by the iteration, default 'identity' + :kf - fn of 'ret' -> 'next-k' or nil (signaling 'do not continue'), default 'identity' + :initk - the first value passed to step, default 'nil' + It is presumed that step with non-initk is unreproducible/non-idempotent. + If step with initk is unreproducible it is on the consumer to not consume twice." + {:added "1.11"} + [step & {:keys [somef vf kf initk] + :or {vf identity + kf identity + somef some? + initk nil}}] + (reify + clojure.lang.Seqable + (seq [_] + ((fn next [ret] + (when (somef ret) + (cons (vf ret) + (when-some [k (kf ret)] + (lazy-seq (next (step k))))))) + (step initk))) + clojure.lang.IReduceInit + (reduce [_ rf init] + (loop [acc init + ret (step initk)] + (if (somef ret) + (let [acc (rf acc (vf ret))] + (if (reduced? acc) + @acc + (if-some [k (kf ret)] + (recur acc (step k)) + acc))) + acc)))))) From 350663b7ce763d77e8b17d5844550d4962f652d0 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Sat, 12 Feb 2022 12:14:55 +0100 Subject: [PATCH 118/154] :tada: Add support for alternative S3 compatible services And also add support for all AWS regions (prevoiosly onlu eu-central-1) was supported. --- CHANGES.md | 1 + backend/scripts/repl | 12 +++++++++++ backend/src/app/config.clj | 4 ++++ backend/src/app/http/assets.clj | 4 ++-- backend/src/app/main.clj | 12 ++++++----- backend/src/app/storage/s3.clj | 34 +++++++++++++++++++++---------- docker/devenv/docker-compose.yaml | 18 ++++++++++++++++ 7 files changed, 67 insertions(+), 18 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 81d16cf7d3..4555cc0712 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -24,6 +24,7 @@ - Redesign of workspace toolbars [Taiga #2319](https://tree.taiga.io/project/penpot/us/2319) - Graphic Tablet usability improvements [Taiga #1913](https://tree.taiga.io/project/penpot/us/1913) - Improved mouse collision detection for groups and text shapes [Taiga #2452](https://tree.taiga.io/project/penpot/us/2452), [Taiga #2453](https://tree.taiga.io/project/penpot/us/2453) +- Add support for alternative S3 storage providers and all aws regions [#1267](https://github.com/penpot/penpot/issues/1267) ### :bug: Bugs fixed diff --git a/backend/scripts/repl b/backend/scripts/repl index 22bebe8c73..ebb3e1554a 100755 --- a/backend/scripts/repl +++ b/backend/scripts/repl @@ -10,6 +10,18 @@ # export PENPOT_DATABASE_PASSWORD="penpot_pre" # export PENPOT_FLAGS="enable-asserts enable-audit-log $PENPOT_FLAGS" +# Initialize MINIO config +# mc alias set penpot-s3/ http://minio:9000 minioadmin minioadmin +# mc admin user add penpot-s3 penpot-devenv penpot-devenv +# mc admin policy set penpot-s3 readwrite user=penpot-devenv +# mc mb penpot-s3/penpot -p +# export AWS_ACCESS_KEY_ID=penpot-devenv +# export AWS_SECRET_ACCESS_KEY=penpot-devenv +# export PENPOT_ASSETS_STORAGE_BACKEND=assets-s3 +# export PENPOT_STORAGE_ASSETS_S3_ENDPOINT=http://minio:9000 +# export PENPOT_STORAGE_ASSETS_S3_REGION=eu-central-1 +# export PENPOT_STORAGE_ASSETS_S3_BUCKET=penpot + export OPTIONS=" -A:dev \ -J-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager \ diff --git a/backend/src/app/config.clj b/backend/src/app/config.clj index b0030a2d19..7083b490eb 100644 --- a/backend/src/app/config.clj +++ b/backend/src/app/config.clj @@ -181,9 +181,11 @@ (s/def ::storage-assets-fs-directory ::us/string) (s/def ::storage-assets-s3-bucket ::us/string) (s/def ::storage-assets-s3-region ::us/keyword) +(s/def ::storage-assets-s3-endpoint ::us/string) (s/def ::storage-fdata-s3-bucket ::us/string) (s/def ::storage-fdata-s3-region ::us/keyword) (s/def ::storage-fdata-s3-prefix ::us/string) +(s/def ::storage-fdata-s3-endpoint ::us/string) (s/def ::telemetry-uri ::us/string) (s/def ::telemetry-with-taiga ::us/boolean) (s/def ::tenant ::us/string) @@ -278,10 +280,12 @@ ::storage-assets-fs-directory ::storage-assets-s3-bucket ::storage-assets-s3-region + ::storage-assets-s3-endpoint ::fdata-storage-backend ::storage-fdata-s3-bucket ::storage-fdata-s3-region ::storage-fdata-s3-prefix + ::storage-fdata-s3-endpoint ::telemetry-enabled ::telemetry-uri ::telemetry-referer diff --git a/backend/src/app/http/assets.clj b/backend/src/app/http/assets.clj index 18c14462e9..550bfcdfbb 100644 --- a/backend/src/app/http/assets.clj +++ b/backend/src/app/http/assets.clj @@ -52,10 +52,10 @@ :body (sto/get-object-bytes storage obj)} :s3 - (let [url (sto/get-object-url storage obj {:max-age signature-max-age})] + (let [{:keys [host port] :as url} (sto/get-object-url storage obj {:max-age signature-max-age})] {:status 307 :headers {"location" (str url) - "x-host" (:host url) + "x-host" (cond-> host port (str ":" port)) "cache-control" (str "max-age=" (inst-ms cache-max-age))} :body ""}) diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index aaa7d521bd..fabf61c4df 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -309,13 +309,15 @@ :fs (ig/ref [::assets :app.storage.fs/backend])}} [::fdata :app.storage.s3/backend] - {:region (cf/get :storage-fdata-s3-region) - :bucket (cf/get :storage-fdata-s3-bucket) - :prefix (cf/get :storage-fdata-s3-prefix)} + {:region (cf/get :storage-fdata-s3-region) + :bucket (cf/get :storage-fdata-s3-bucket) + :endpoint (cf/get :storage-fdata-s3-endpoint) + :prefix (cf/get :storage-fdata-s3-prefix)} [::assets :app.storage.s3/backend] - {:region (cf/get :storage-assets-s3-region) - :bucket (cf/get :storage-assets-s3-bucket)} + {:region (cf/get :storage-assets-s3-region) + :endpoint (cf/get :storage-assets-s3-endpoint) + :bucket (cf/get :storage-assets-s3-bucket)} [::assets :app.storage.fs/backend] {:directory (cf/get :storage-assets-fs-directory)} diff --git a/backend/src/app/storage/s3.clj b/backend/src/app/storage/s3.clj index 10c5710e06..22b3d88bdb 100644 --- a/backend/src/app/storage/s3.clj +++ b/backend/src/app/storage/s3.clj @@ -56,9 +56,10 @@ (s/def ::region #{:eu-central-1}) (s/def ::bucket ::us/string) (s/def ::prefix ::us/string) +(s/def ::endpoint ::us/string) (defmethod ig/pre-init-spec ::backend [_] - (s/keys :opt-un [::region ::bucket ::prefix])) + (s/keys :opt-un [::region ::bucket ::prefix ::endpoint])) (defmethod ig/prep-key ::backend [_ {:keys [prefix] :as cfg}] @@ -119,20 +120,31 @@ (defn- ^Region lookup-region [region] - (case region - :eu-central-1 Region/EU_CENTRAL_1)) + (Region/of (name region))) (defn build-s3-client - [{:keys [region]}] - (.. (S3Client/builder) - (region (lookup-region region)) - (build))) + [{:keys [region endpoint]}] + (if (string? endpoint) + (let [uri (java.net.URI. endpoint)] + (.. (S3Client/builder) + (endpointOverride uri) + (region (lookup-region region)) + (build))) + (.. (S3Client/builder) + (region (lookup-region region)) + (build)))) (defn build-s3-presigner - [{:keys [region]}] - (.. (S3Presigner/builder) - (region (lookup-region region)) - (build))) + [{:keys [region endpoint]}] + (if (string? endpoint) + (let [uri (java.net.URI. endpoint)] + (.. (S3Presigner/builder) + (endpointOverride uri) + (region (lookup-region region)) + (build))) + (.. (S3Presigner/builder) + (region (lookup-region region)) + (build)))) (defn put-object [{:keys [client bucket prefix]} {:keys [id] :as object} content] diff --git a/docker/devenv/docker-compose.yaml b/docker/devenv/docker-compose.yaml index ee6b1d7df8..5b92d0ed4c 100644 --- a/docker/devenv/docker-compose.yaml +++ b/docker/devenv/docker-compose.yaml @@ -10,6 +10,7 @@ networks: volumes: postgres_data: user_data: + minio_data: services: main: @@ -66,6 +67,22 @@ services: - PENPOT_LDAP_ATTRS_FULLNAME=cn - PENPOT_LDAP_ATTRS_PHOTO=jpegPhoto + minio: + profiles: ["full"] + image: "minio/minio:latest" + command: minio server /mnt/data --console-address ":9001" + + volumes: + - "minio_data:/mnt/data" + + environment: + - MINIO_ROOT_USER=minioadmin + - MINIO_ROOT_PASSWORD=minioadmin + + ports: + - 9000:9000 + - 9001:9001 + backend: profiles: ["backend"] privileged: true @@ -91,6 +108,7 @@ services: environment: - EXTERNAL_UID=${CURRENT_USER_ID} - PENPOT_SECRET_KEY=super-secret-devenv-key + # SMTP setup - PENPOT_SMTP_ENABLED=true - PENPOT_SMTP_DEFAULT_FROM=no-reply@example.com From 206778021fbb6fbb734d4acf301ca46f92f2605a Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 16 Feb 2022 14:00:25 +0100 Subject: [PATCH 119/154] :paperclip: Update changes.md file --- CHANGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 4555cc0712..2d90ddd587 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,6 @@ # CHANGELOG -## :rocket: Next +## 1.12.0-beta ### :boom: Breaking changes From 5d17933593787f2d2f80424da2cce74801cfcf81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Wed, 16 Feb 2022 14:58:53 +0100 Subject: [PATCH 120/154] :bug: Fix touched component marker appearing when it's not needed --- CHANGES.md | 1 + common/src/app/common/pages/helpers.cljc | 3 +-- frontend/src/app/main/data/workspace/transforms.cljs | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 2d90ddd587..a4096d32cb 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -34,6 +34,7 @@ - Fixed color palette outside viewport [Taiga #2715](https://tree.taiga.io/project/penpot/issue/2715) - Fixed missing translate string [Taiga #2780](https://tree.taiga.io/project/penpot/issue/2780) - Fixed handoff shadow type text [Taiga #2717](https://tree.taiga.io/project/penpot/issue/2717) +- Fixed components get "dirty" marker when moved [Taiga #2764](https://tree.taiga.io/project/penpot/issue/2764) ### :arrow_up: Deps updates diff --git a/common/src/app/common/pages/helpers.cljc b/common/src/app/common/pages/helpers.cljc index 224a4b716d..8fef5abc85 100644 --- a/common/src/app/common/pages/helpers.cljc +++ b/common/src/app/common/pages/helpers.cljc @@ -243,8 +243,7 @@ shape (some? (:shape-ref shape)) - (recur (get objects (:parent-id shape)) - objects))) + (recur objects (get objects (:parent-id shape))))) (defn make-container [page-or-component type] diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index 93cc1fd8eb..ddc4f5686e 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -163,7 +163,9 @@ (let [objects (wsh/lookup-page-objects state) ids-with-children (into (vec ids) (mapcat #(cph/get-children-ids objects %)) ids) object-modifiers (get state :workspace-modifiers) - ignore-tree (get-ignore-tree object-modifiers objects ids)] + shapes (map (d/getf objects) ids) + ignore-tree (->> (map #(get-ignore-tree object-modifiers objects %) shapes) + (reduce merge {}))] (rx/of (dwu/start-undo-transaction) (dwg/move-frame-guides ids-with-children) @@ -245,7 +247,7 @@ (reduce set-child modif-tree children))) (defn- get-ignore-tree - "Retrieves a map with the flag `ignore-tree` given a tree of modifiers" + "Retrieves a map with the flag `ignore-geometry?` given a tree of modifiers" ([modif-tree objects shape] (get-ignore-tree modif-tree objects shape nil nil {})) @@ -261,7 +263,7 @@ ignore-tree (assoc ignore-tree shape-id ignore-geometry?) set-child - (fn [modif-tree child] + (fn [ignore-tree child] (get-ignore-tree modif-tree objects child root transformed-root ignore-tree))] (reduce set-child ignore-tree children)))) From 4efd8b7d3f3b0a68b47bb6ca282304b21fc758bd Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 16 Feb 2022 16:13:35 +0100 Subject: [PATCH 121/154] :bug: Select All (CTRL+A) fails --- frontend/src/app/main/data/workspace/selection.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/data/workspace/selection.cljs b/frontend/src/app/main/data/workspace/selection.cljs index bb29ac8f15..08ec41784a 100644 --- a/frontend/src/app/main/data/workspace/selection.cljs +++ b/frontend/src/app/main/data/workspace/selection.cljs @@ -184,7 +184,7 @@ (cph/get-immediate-children objects frame-id)) selected (into (d/ordered-set) - (remove :blocked) + (comp (remove :blocked) (map :id)) selected)] (rx/of (select-shapes selected)))))) From 3d8f757712b5586cc1db1e0535711afca1566717 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Wed, 16 Feb 2022 16:04:18 +0100 Subject: [PATCH 122/154] :bug: Fixed cannot align objects inside a group but not inside a frame --- CHANGES.md | 1 + frontend/src/app/main/data/workspace.cljs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index a4096d32cb..6b169a44f7 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -35,6 +35,7 @@ - Fixed missing translate string [Taiga #2780](https://tree.taiga.io/project/penpot/issue/2780) - Fixed handoff shadow type text [Taiga #2717](https://tree.taiga.io/project/penpot/issue/2717) - Fixed components get "dirty" marker when moved [Taiga #2764](https://tree.taiga.io/project/penpot/issue/2764) +- Fixed cannot align objects in a group that is not part of a frame [Taiga #2762](https://tree.taiga.io/project/penpot/issue/2762) ### :arrow_up: Deps updates diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index ce81ba363a..ad4339d286 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -1184,7 +1184,7 @@ (empty? selected) false (> (count selected) 1) true :else - (not= uuid/zero (:frame-id (get objects (first selected)))))) + (not= uuid/zero (:parent-id (get objects (first selected)))))) (defn align-objects [axis] From 75a8f85ebb1a78f197138004d43e6bbfcacbbf70 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Wed, 16 Feb 2022 18:54:52 +0100 Subject: [PATCH 123/154] :sparkles: Do not show the templates modal on onboarding --- .../02-onboarding/onboarding-options.spec.js | 6 +-- frontend/package.json | 2 +- .../app/main/ui/dashboard/placeholder.cljs | 2 +- .../app/main/ui/onboarding/team_choice.cljs | 8 ++- .../src/app/main/ui/onboarding/templates.cljs | 2 +- frontend/translations/en.po | 5 +- frontend/translations/es.po | 5 +- frontend/yarn.lock | 50 +++++++++---------- 8 files changed, 38 insertions(+), 42 deletions(-) diff --git a/frontend/cypress/integration/02-onboarding/onboarding-options.spec.js b/frontend/cypress/integration/02-onboarding/onboarding-options.spec.js index 1db5d14d15..69e7b3d55e 100644 --- a/frontend/cypress/integration/02-onboarding/onboarding-options.spec.js +++ b/frontend/cypress/integration/02-onboarding/onboarding-options.spec.js @@ -19,7 +19,7 @@ it("choose solo option", () => { cy.getBySel("onboarding-welcome-title").should("exist"); cy.getBySel("fly-solo-op").click(); - cy.getBySel("onboarding-templates-title").should("exist"); + cy.getBySel("empty-placeholder").should("exist"); }); it("choose team option and cancel", () => { @@ -49,7 +49,7 @@ cy.get("input[type=submit]").first().click(); cy.get("#email").should("exist"); cy.get(".skip-action").click(); - cy.getBySel("onboarding-templates-title").should("exist"); + cy.getBySel("empty-placeholder").should("exist"); }); it("choose team option, set team name and invite", () => { @@ -61,7 +61,7 @@ cy.get("#email").should("exist"); cy.get("#email").type("test@test.com"); cy.get("input[type=submit]").first().click(); - cy.getBySel("onboarding-templates-title").should("exist"); + cy.getBySel("empty-placeholder").should("exist"); }); diff --git a/frontend/package.json b/frontend/package.json index cb74727d97..6073de874d 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -25,7 +25,7 @@ }, "devDependencies": { "autoprefixer": "^10.4.2", - "cypress": "^9.4.1", + "cypress": "^9.5.0", "cypress-file-upload": "^5.0.8", "gettext-parser": "^4.2.0", "gulp": "4.0.2", diff --git a/frontend/src/app/main/ui/dashboard/placeholder.cljs b/frontend/src/app/main/ui/dashboard/placeholder.cljs index 1df3839bdf..291071d7d3 100644 --- a/frontend/src/app/main/ui/dashboard/placeholder.cljs +++ b/frontend/src/app/main/ui/dashboard/placeholder.cljs @@ -18,7 +18,7 @@ [:div.grid-item]] (true? default?) - [:div.grid-empty-placeholder.drafts + [:div.grid-empty-placeholder.drafts {:data-test "empty-placeholder"} [:div.text [:& i18n/tr-html {:label "dashboard.empty-placeholder-drafts"}]]] diff --git a/frontend/src/app/main/ui/onboarding/team_choice.cljs b/frontend/src/app/main/ui/onboarding/team_choice.cljs index 56f3c5b2d0..23773ba768 100644 --- a/frontend/src/app/main/ui/onboarding/team_choice.cljs +++ b/frontend/src/app/main/ui/onboarding/team_choice.cljs @@ -30,7 +30,7 @@ ;; the onboarding templates modal. on-fly-solo (fn [] - (tm/schedule 400 #(st/emit! (modal/show {:type :onboarding-templates})))) + (tm/schedule 400 #(st/emit! (modal/hide)))) ;; When user choices the option of `team up`, we proceed to show ;; the team creation modal. @@ -121,14 +121,12 @@ on-success (mf/use-callback (fn [_form response] - (let [project-id (:default-project-id response) - team-id (:id response)] + (let [team-id (:id response)] (st/emit! (modal/hide) (rt/nav :dashboard-projects {:team-id team-id})) (tm/schedule 400 #(st/emit! - (modal/show {:type :onboarding-templates - :project-id project-id})))))) + (modal/hide)))))) on-error (mf/use-callback diff --git a/frontend/src/app/main/ui/onboarding/templates.cljs b/frontend/src/app/main/ui/onboarding/templates.cljs index c8ef3e3272..84bfc15582 100644 --- a/frontend/src/app/main/ui/onboarding/templates.cljs +++ b/frontend/src/app/main/ui/onboarding/templates.cljs @@ -74,7 +74,7 @@ :data-test "close-templates-btn"} i/close]] [:div.modal-content - [:h3 {:data-test "onboarding-templates-title"} (tr "onboarding.templates.title")] + [:h3 (tr "onboarding.templates.title")] [:p (tr "onboarding.templates.subtitle")] [:div.templates diff --git a/frontend/translations/en.po b/frontend/translations/en.po index e6148716c4..6db9c3e602 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -257,9 +257,8 @@ msgstr "You still have no files here" #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" -"There are no files here yet. If you want to try some templates you can go " -"to the [Libraries & templates " -"section](https://penpot.app/libraries-templates.html)" +"Oh no! You have no files yet! If you want to try with some templates go " +"to [Libraries & templates](https://penpot.app/libraries-templates.html)" msgid "dashboard.export-frames" msgstr "Export artboards to PDF..." diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 4c600d2d31..b5de29d457 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -261,9 +261,8 @@ msgstr "Todavía no hay ningún archivo aquí" #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" -"Aún no tienes archivos. Si quieres probar alguna plantilla visita nuestra " -"seccion de [Bibliotecas y " -"plantillas](https://penpot.app/libraries-templates.html)" +"¡Oh, no! ¡Aún no tienes archivos! Si quieres probar con alguna plantilla ve a " +"[Bibliotecas y plantillas](https://penpot.app/libraries-templates.html)" msgid "dashboard.export-frames" msgstr "Exportar tableros a PDF..." diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 97c469774b..e1673efbad 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -79,7 +79,7 @@ "@sentry/browser@^6.17.4": version "6.17.4" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.17.4.tgz#c2711a12e89dab4abecd9a04716c07c86712fa5a" + resolved "https://registry.npmjs.org/@sentry/browser/-/browser-6.17.4.tgz" integrity sha512-ezLZ/FP2ZJPPemzGKMiu8RCHvuRYfDYXbkQb9KhUbpylJokL4GSRZHy8EYkcHugnvAiov7p8cdj7QgOZQPDAgw== dependencies: "@sentry/core" "6.17.4" @@ -89,7 +89,7 @@ "@sentry/core@6.17.4": version "6.17.4" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.17.4.tgz#ac23c2a9896b27fe4c532c2013c58c01f39adcdb" + resolved "https://registry.npmjs.org/@sentry/core/-/core-6.17.4.tgz" integrity sha512-7QFgw+I9YK/X1Gie0c7phwT5pHMow66UCXHzDzHR2aK/0X3Lhn8OWlcGjIt5zmiBK/LHwNfQBNMskbktbYHgdA== dependencies: "@sentry/hub" "6.17.4" @@ -100,7 +100,7 @@ "@sentry/hub@6.17.4": version "6.17.4" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.17.4.tgz#af4f5f745340d676be023dc3038690b557111f4d" + resolved "https://registry.npmjs.org/@sentry/hub/-/hub-6.17.4.tgz" integrity sha512-6+EvPcrPCwUmayeieIpm1ZrRNWriqMHWZFyw+MzunFLgG8IH8G45cJU1zNnTY9Jwwg4sFIS9xrHy3AOkctnIGw== dependencies: "@sentry/types" "6.17.4" @@ -109,7 +109,7 @@ "@sentry/minimal@6.17.4": version "6.17.4" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.17.4.tgz#6a35dbdb22a1c532d1eb7b4c0d9223618cb67ccd" + resolved "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.17.4.tgz" integrity sha512-p1A8UTtRt7bhV4ygu7yDNCannFr9E9dmqgeZWC7HrrTfygcnhNRFvTXTj92wEb0bFKuZr67wPSKnoXlkqkGxsw== dependencies: "@sentry/hub" "6.17.4" @@ -118,7 +118,7 @@ "@sentry/tracing@^6.17.4": version "6.17.4" - resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.17.4.tgz#17c2ab50d9e4cdf727b9b25e7f91ae3a9ea19437" + resolved "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.17.4.tgz" integrity sha512-UV6wWH/fqndts0k0cptsNtzD0h8KXqHInJSCGqlWDlygFRO16jwMKv0wfXgqsgc3cBGDlsl8C4l6COSwz9ROdg== dependencies: "@sentry/hub" "6.17.4" @@ -129,12 +129,12 @@ "@sentry/types@6.17.4": version "6.17.4" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.17.4.tgz#36b78d7c4a6de19b2bbc631bb34893bcad30c0ba" + resolved "https://registry.npmjs.org/@sentry/types/-/types-6.17.4.tgz" integrity sha512-RUyiXCKf61k2GIMP7FQX0naoSew4zLxe+UrtbjwVcWU4AFPZfH7tLNtTpVE85zAKbxsaiq3OD2FPtTZarHcwxQ== "@sentry/utils@6.17.4": version "6.17.4" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.17.4.tgz#4f109629d2e7f16c5595b4367445ef47bfe96b61" + resolved "https://registry.npmjs.org/@sentry/utils/-/utils-6.17.4.tgz" integrity sha512-+ENzZbrlVL1JJ+FoK2EOS27nbA/yToeaJPFlyVOnbthUxVyN3TTi9Uzn9F05fIE/2BTkOEk89wPtgcHafgrD6A== dependencies: "@sentry/types" "6.17.4" @@ -498,7 +498,7 @@ atob@^2.1.2: autoprefixer@^10.4.2: version "10.4.2" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.2.tgz#25e1df09a31a9fba5c40b578936b90d35c9d4d3b" + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz" integrity sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ== dependencies: browserslist "^4.19.1" @@ -847,7 +847,7 @@ caniuse-lite@^1.0.30001286: caniuse-lite@^1.0.30001297: version "1.0.30001306" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001306.tgz#582592afe243bad2223081b8abab07bf289cc699" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001306.tgz" integrity sha512-Wd1OuggRzg1rbnM5hv1wXs2VkxJH/AA+LuudlIqvZiCvivF+wJJe2mgBZC8gPMgI7D76PP5CTx8Luvaqc1V6OQ== caseless@~0.12.0: @@ -1414,10 +1414,10 @@ cypress-file-upload@^5.0.8: resolved "https://registry.npmjs.org/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz" integrity sha512-+8VzNabRk3zG6x8f8BWArF/xA/W0VK4IZNx3MV0jFWrJS/qKn8eHfa5nU73P9fOQAgwHFJx7zjg4lwOnljMO8g== -cypress@^9.4.1: - version "9.4.1" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.4.1.tgz#1a4ba706435829c24b7edf350c2b059e05da9084" - integrity sha512-+JgMG9uT+QFx97JU9kOHE3jO3+0UdkQ9H1oCBiC7A74qme7Jkdy2sYDBCPjjGczutnWnGUTMRlwiNMP/Uq6LrQ== +cypress@^9.5.0: + version "9.5.0" + resolved "https://registry.npmjs.org/cypress/-/cypress-9.5.0.tgz" + integrity sha512-rC5QPolKsVjJ8QJZ7IeZ6HlKM4gswBGZc0XvoAJNL8urQCSL8zTX0A/ai/h35WfF47NQ0iSZnwIXBlHX3MOUIQ== dependencies: "@cypress/request" "^2.88.10" "@cypress/xvfb" "^1.2.4" @@ -2581,7 +2581,7 @@ gulp-rename@^2.0.0: gulp-sass@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/gulp-sass/-/gulp-sass-5.1.0.tgz#bb3d9094f39a260f62a8d0a6797b95ab826f9663" + resolved "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.1.0.tgz" integrity sha512-7VT0uaF+VZCmkNBglfe1b34bxn/AfcssquLKVDYnCDJ3xNBaW7cUuI3p3BQmoKcoKFrs9jdzUxyb+u+NGfL4OQ== dependencies: lodash.clonedeep "^4.5.0" @@ -2749,7 +2749,7 @@ he@1.1.1: highlight.js@^11.4.0: version "11.4.0" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.4.0.tgz#34ceadd49e1596ee5aba3d99346cdfd4845ee05a" + resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-11.4.0.tgz" integrity sha512-nawlpCBCSASs7EdvZOYOYVkJpGmAOKMYZgZtUqSRqodZE0GRVcFKwo1RcpeOemqh9hyttTdd5wDBwHkuSyUfnA== hmac-drbg@^1.0.1: @@ -3637,7 +3637,7 @@ lodash._topath@^3.0.0: lodash.clonedeep@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= lodash.isarguments@^3.0.0: @@ -3772,7 +3772,7 @@ lru-queue@^0.1.0: luxon@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-2.3.0.tgz#bf16a7e642513c2a20a6230a6a41b0ab446d0045" + resolved "https://registry.npmjs.org/luxon/-/luxon-2.3.0.tgz" integrity sha512-gv6jZCV+gGIrVKhO90yrsn8qXPKD8HYZJtrUDSfEbow8Tkw84T9OnCyJhWvnJIaIF/tBuiAjZuQHUt1LddX2mg== make-dir@^3.0.0: @@ -3815,7 +3815,7 @@ map-visit@^1.0.0: marked@^4.0.12: version "4.0.12" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.12.tgz#2262a4e6fd1afd2f13557726238b69a48b982f7d" + resolved "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz" integrity sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ== matchdep@^2.0.0: @@ -4042,7 +4042,7 @@ nan@^2.12.1: nanoid@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz" integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA== nanomatch@^1.2.9: @@ -4701,7 +4701,7 @@ postcss@^7.0.16: postcss@^8.4.6: version "8.4.6" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.6.tgz#c5ff3c3c457a23864f32cb45ac9b741498a09ae1" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz" integrity sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA== dependencies: nanoid "^3.2.0" @@ -5223,7 +5223,7 @@ rxjs@^7.4.0: rxjs@~7.5.2: version "7.5.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.2.tgz#11e4a3a1dfad85dbf7fb6e33cbba17668497490b" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz" integrity sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w== dependencies: tslib "^2.1.0" @@ -5252,7 +5252,7 @@ safe-regex@^1.1.0: sass@^1.49.7: version "1.49.7" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.7.tgz#22a86a50552b9b11f71404dfad1b9ff44c6b0c49" + resolved "https://registry.npmjs.org/sass/-/sass-1.49.7.tgz" integrity sha512-13dml55EMIR2rS4d/RDHHP0sXMY3+30e1TKsyXaSz3iLWVoDWEoboY8WzJd5JMnxrRHffKO3wq2mpJ0jxRJiEQ== dependencies: chokidar ">=3.0.0 <4.0.0" @@ -5343,7 +5343,7 @@ shadow-cljs-jar@1.3.2: shadow-cljs@2.17.2: version "2.17.2" - resolved "https://registry.yarnpkg.com/shadow-cljs/-/shadow-cljs-2.17.2.tgz#41df03aaf84b339dbcf036a627b454a0424760bb" + resolved "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.17.2.tgz" integrity sha512-XE9jWWBlT80fosk6+6AADiQZ9q33zgovh+v6vmeBBsOtYGILgVAFYZZvOzoRY7oEXz12IUzMpKxbA7WFjj5I0w== dependencies: node-libs-browser "^2.2.1" @@ -5512,7 +5512,7 @@ snapdragon@^0.8.1: source-map-js@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== source-map-resolve@^0.5.0: @@ -6057,7 +6057,7 @@ tslib@^1.9.3: tslib@^2.1.0: version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== tslib@~2.1.0: From 6486b24c8bb7416bc19599319722f5a064e341b5 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 17 Feb 2022 11:15:19 +0100 Subject: [PATCH 124/154] :arrow_up: Update shadow-cljs version --- common/deps.edn | 2 +- common/package.json | 2 +- common/yarn.lock | 8 +- exporter/deps.edn | 2 +- exporter/package.json | 2 +- exporter/yarn.lock | 8 +- frontend/deps.edn | 2 +- frontend/package.json | 2 +- frontend/yarn.lock | 2851 ++++++++++++++++++----------------------- 9 files changed, 1227 insertions(+), 1652 deletions(-) diff --git a/common/deps.edn b/common/deps.edn index 6f278ecf88..25c6e584a8 100644 --- a/common/deps.edn +++ b/common/deps.edn @@ -42,7 +42,7 @@ {:extra-deps {org.clojure/tools.namespace {:mvn/version "RELEASE"} org.clojure/test.check {:mvn/version "RELEASE"} - thheller/shadow-cljs {:mvn/version "2.17.2"} + thheller/shadow-cljs {:mvn/version "2.17.3"} com.bhauman/rebel-readline {:mvn/version "RELEASE"} criterium/criterium {:mvn/version "RELEASE"} mockery/mockery {:mvn/version "RELEASE"}} diff --git a/common/package.json b/common/package.json index 1bb67abfb9..d1aa28e86d 100644 --- a/common/package.json +++ b/common/package.json @@ -13,7 +13,7 @@ "test": "yarn run compile-test && yarn run run-test" }, "devDependencies": { - "shadow-cljs": "2.17.2", + "shadow-cljs": "2.17.3", "source-map-support": "^0.5.19", "ws": "^7.4.6" } diff --git a/common/yarn.lock b/common/yarn.lock index 54e942b5bb..22f689b46e 100644 --- a/common/yarn.lock +++ b/common/yarn.lock @@ -533,10 +533,10 @@ shadow-cljs-jar@1.3.2: resolved "https://registry.yarnpkg.com/shadow-cljs-jar/-/shadow-cljs-jar-1.3.2.tgz#97273afe1747b6a2311917c1c88d9e243c81957b" integrity sha512-XmeffAZHv8z7451kzeq9oKh8fh278Ak+UIOGGrapyqrFBB773xN8vMQ3O7J7TYLnb9BUwcqadKkmgaq7q6fhZg== -shadow-cljs@2.17.2: - version "2.17.2" - resolved "https://registry.yarnpkg.com/shadow-cljs/-/shadow-cljs-2.17.2.tgz#41df03aaf84b339dbcf036a627b454a0424760bb" - integrity sha512-XE9jWWBlT80fosk6+6AADiQZ9q33zgovh+v6vmeBBsOtYGILgVAFYZZvOzoRY7oEXz12IUzMpKxbA7WFjj5I0w== +shadow-cljs@2.17.3: + version "2.17.3" + resolved "https://registry.yarnpkg.com/shadow-cljs/-/shadow-cljs-2.17.3.tgz#748e31f67cffdc401691c0cd1bf733a1da53ab5d" + integrity sha512-GxyczUuCtACq/uEOvdTc61wT/aDOZFy8G/AGc322uTX/oUiZaeTJrwpClXe+0+e7VKG9E9RCqP/cjuG3cAG0fw== dependencies: node-libs-browser "^2.2.1" readline-sync "^1.4.7" diff --git a/exporter/deps.edn b/exporter/deps.edn index 61fbde82be..6a113eebaf 100644 --- a/exporter/deps.edn +++ b/exporter/deps.edn @@ -14,7 +14,7 @@ :dev {:extra-deps - {thheller/shadow-cljs {:mvn/version "2.17.2"}}} + {thheller/shadow-cljs {:mvn/version "2.17.3"}}} :shadow-cljs {:main-opts ["-m" "shadow.cljs.devtools.cli"]} diff --git a/exporter/package.json b/exporter/package.json index 9a68435535..81ef6612a1 100644 --- a/exporter/package.json +++ b/exporter/package.json @@ -22,7 +22,7 @@ "xregexp": "^5.0.2" }, "devDependencies": { - "shadow-cljs": "^2.17.2", + "shadow-cljs": "^2.17.3", "source-map-support": "^0.5.21" } } diff --git a/exporter/yarn.lock b/exporter/yarn.lock index dfd47abe65..3a0453162a 100644 --- a/exporter/yarn.lock +++ b/exporter/yarn.lock @@ -1010,10 +1010,10 @@ shadow-cljs-jar@1.3.2: resolved "https://registry.yarnpkg.com/shadow-cljs-jar/-/shadow-cljs-jar-1.3.2.tgz#97273afe1747b6a2311917c1c88d9e243c81957b" integrity sha512-XmeffAZHv8z7451kzeq9oKh8fh278Ak+UIOGGrapyqrFBB773xN8vMQ3O7J7TYLnb9BUwcqadKkmgaq7q6fhZg== -shadow-cljs@^2.17.2: - version "2.17.2" - resolved "https://registry.yarnpkg.com/shadow-cljs/-/shadow-cljs-2.17.2.tgz#41df03aaf84b339dbcf036a627b454a0424760bb" - integrity sha512-XE9jWWBlT80fosk6+6AADiQZ9q33zgovh+v6vmeBBsOtYGILgVAFYZZvOzoRY7oEXz12IUzMpKxbA7WFjj5I0w== +shadow-cljs@^2.17.3: + version "2.17.3" + resolved "https://registry.yarnpkg.com/shadow-cljs/-/shadow-cljs-2.17.3.tgz#748e31f67cffdc401691c0cd1bf733a1da53ab5d" + integrity sha512-GxyczUuCtACq/uEOvdTc61wT/aDOZFy8G/AGc322uTX/oUiZaeTJrwpClXe+0+e7VKG9E9RCqP/cjuG3cAG0fw== dependencies: node-libs-browser "^2.2.1" readline-sync "^1.4.7" diff --git a/frontend/deps.edn b/frontend/deps.edn index d6f54cffec..fefc860715 100644 --- a/frontend/deps.edn +++ b/frontend/deps.edn @@ -29,7 +29,7 @@ :dev {:extra-paths ["dev"] :extra-deps - {thheller/shadow-cljs {:mvn/version "2.17.2"} + {thheller/shadow-cljs {:mvn/version "2.17.3"} org.clojure/tools.namespace {:mvn/version "RELEASE"} cider/cider-nrepl {:mvn/version "0.28.2"}}} diff --git a/frontend/package.json b/frontend/package.json index 6073de874d..2f42679ee2 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -47,7 +47,7 @@ "prettier": "^2.5.1", "rimraf": "^3.0.0", "sass": "^1.49.7", - "shadow-cljs": "2.17.2" + "shadow-cljs": "2.17.3" }, "dependencies": { "@sentry/browser": "^6.17.4", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index e1673efbad..bb501d3ea6 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -3,23 +3,28 @@ "@babel/runtime-corejs3@^7.14.9": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz" - integrity sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg== + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz#fdca2cd05fba63388babe85d349b6801b008fd13" + integrity sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg== dependencies: - core-js-pure "^3.16.0" + core-js-pure "^3.20.2" regenerator-runtime "^0.13.4" "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7": - version "7.14.0" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz" - integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" + integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== dependencies: regenerator-runtime "^0.13.4" +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + "@cypress/request@^2.88.10": version "2.88.10" - resolved "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.10.tgz#b66d76b07f860d3a4b8d7a0604d020c662752cce" integrity sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg== dependencies: aws-sign2 "~0.7.0" @@ -43,16 +48,16 @@ "@cypress/xvfb@^1.2.4": version "1.2.4" - resolved "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== dependencies: debug "^3.1.0" lodash.once "^4.1.1" "@dabh/diagnostics@^2.0.2": - version "2.0.2" - resolved "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz" - integrity sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q== + version "2.0.3" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" + integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== dependencies: colorspace "1.1.x" enabled "2.0.x" @@ -60,7 +65,7 @@ "@gulp-sourcemaps/identity-map@^2.0.1": version "2.0.1" - resolved "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz#a6e8b1abec8f790ec6be2b8c500e6e68037c0019" integrity sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q== dependencies: acorn "^6.4.1" @@ -71,132 +76,137 @@ "@gulp-sourcemaps/map-sources@^1.0.0": version "1.0.0" - resolved "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz#890ae7c5d8c877f6d384860215ace9d7ec945bda" integrity sha1-iQrnxdjId/bThIYCFazp1+yUW9o= dependencies: normalize-path "^2.0.1" through2 "^2.0.3" "@sentry/browser@^6.17.4": - version "6.17.4" - resolved "https://registry.npmjs.org/@sentry/browser/-/browser-6.17.4.tgz" - integrity sha512-ezLZ/FP2ZJPPemzGKMiu8RCHvuRYfDYXbkQb9KhUbpylJokL4GSRZHy8EYkcHugnvAiov7p8cdj7QgOZQPDAgw== + version "6.17.9" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.17.9.tgz#62eac0cc3c7c788df6b4677fe9882d3974d84027" + integrity sha512-RsC8GBZmZ3YfBTaIOJ06RlFp5zG7BkUoquNJmf4YhRUZeihT9osrn8qUYGFWSV/UduwKUIlSGJA/rATWWhwPRQ== dependencies: - "@sentry/core" "6.17.4" - "@sentry/types" "6.17.4" - "@sentry/utils" "6.17.4" + "@sentry/core" "6.17.9" + "@sentry/types" "6.17.9" + "@sentry/utils" "6.17.9" tslib "^1.9.3" -"@sentry/core@6.17.4": - version "6.17.4" - resolved "https://registry.npmjs.org/@sentry/core/-/core-6.17.4.tgz" - integrity sha512-7QFgw+I9YK/X1Gie0c7phwT5pHMow66UCXHzDzHR2aK/0X3Lhn8OWlcGjIt5zmiBK/LHwNfQBNMskbktbYHgdA== +"@sentry/core@6.17.9": + version "6.17.9" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.17.9.tgz#1c09f1f101207952566349a1921d46db670c8f62" + integrity sha512-14KalmTholGUtgdh9TklO+jUpyQ/D3OGkhlH1rnGQGoJgFy2eYm+s+MnUEMxFdGIUCz5kOteuNqYZxaDmFagpQ== dependencies: - "@sentry/hub" "6.17.4" - "@sentry/minimal" "6.17.4" - "@sentry/types" "6.17.4" - "@sentry/utils" "6.17.4" + "@sentry/hub" "6.17.9" + "@sentry/minimal" "6.17.9" + "@sentry/types" "6.17.9" + "@sentry/utils" "6.17.9" tslib "^1.9.3" -"@sentry/hub@6.17.4": - version "6.17.4" - resolved "https://registry.npmjs.org/@sentry/hub/-/hub-6.17.4.tgz" - integrity sha512-6+EvPcrPCwUmayeieIpm1ZrRNWriqMHWZFyw+MzunFLgG8IH8G45cJU1zNnTY9Jwwg4sFIS9xrHy3AOkctnIGw== +"@sentry/hub@6.17.9": + version "6.17.9" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.17.9.tgz#f2c355088a49045e49feafb5356ca5d6e1e31d3c" + integrity sha512-34EdrweWDbBV9EzEFIXcO+JeoyQmKzQVJxpTKZoJA6PUwf2NrndaUdjlkDEtBEzjuLUTxhLxtOzEsYs1O6RVcg== dependencies: - "@sentry/types" "6.17.4" - "@sentry/utils" "6.17.4" + "@sentry/types" "6.17.9" + "@sentry/utils" "6.17.9" tslib "^1.9.3" -"@sentry/minimal@6.17.4": - version "6.17.4" - resolved "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.17.4.tgz" - integrity sha512-p1A8UTtRt7bhV4ygu7yDNCannFr9E9dmqgeZWC7HrrTfygcnhNRFvTXTj92wEb0bFKuZr67wPSKnoXlkqkGxsw== +"@sentry/minimal@6.17.9": + version "6.17.9" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.17.9.tgz#0edca978097b3f56463ede028395d40adbf2ae84" + integrity sha512-T3PMCHcKk6lkZq6zKgANrYJJxXBXKOe+ousV1Fas1rVBMv7dtKfsa4itqQHszcW9shusPDiaQKIJ4zRLE5LKmg== dependencies: - "@sentry/hub" "6.17.4" - "@sentry/types" "6.17.4" + "@sentry/hub" "6.17.9" + "@sentry/types" "6.17.9" tslib "^1.9.3" "@sentry/tracing@^6.17.4": - version "6.17.4" - resolved "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.17.4.tgz" - integrity sha512-UV6wWH/fqndts0k0cptsNtzD0h8KXqHInJSCGqlWDlygFRO16jwMKv0wfXgqsgc3cBGDlsl8C4l6COSwz9ROdg== + version "6.17.9" + resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.17.9.tgz#d4a6d96d88f10c9cd496e5b32f44d6e67d4c5dc7" + integrity sha512-5Rb/OS4ryNJLvz2nv6wyjwhifjy6veqaF9ffLrwFYij/WDy7m62ASBblxgeiI3fbPLX0aBRFWIJAq1vko26+AQ== dependencies: - "@sentry/hub" "6.17.4" - "@sentry/minimal" "6.17.4" - "@sentry/types" "6.17.4" - "@sentry/utils" "6.17.4" + "@sentry/hub" "6.17.9" + "@sentry/minimal" "6.17.9" + "@sentry/types" "6.17.9" + "@sentry/utils" "6.17.9" tslib "^1.9.3" -"@sentry/types@6.17.4": - version "6.17.4" - resolved "https://registry.npmjs.org/@sentry/types/-/types-6.17.4.tgz" - integrity sha512-RUyiXCKf61k2GIMP7FQX0naoSew4zLxe+UrtbjwVcWU4AFPZfH7tLNtTpVE85zAKbxsaiq3OD2FPtTZarHcwxQ== +"@sentry/types@6.17.9": + version "6.17.9" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.17.9.tgz#d579c33cde0301adaf8ff4762479ad017bf0dffa" + integrity sha512-xuulX6qUCL14ayEOh/h6FUIvZtsi1Bx34dSOaWDrjXUOJHJAM7214uiqW1GZxPJ13YuaUIubjTSfDmSQ9CBzTw== -"@sentry/utils@6.17.4": - version "6.17.4" - resolved "https://registry.npmjs.org/@sentry/utils/-/utils-6.17.4.tgz" - integrity sha512-+ENzZbrlVL1JJ+FoK2EOS27nbA/yToeaJPFlyVOnbthUxVyN3TTi9Uzn9F05fIE/2BTkOEk89wPtgcHafgrD6A== +"@sentry/utils@6.17.9": + version "6.17.9" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.17.9.tgz#425fe9af4e2d6114c2e9aaede75ccb6ddf91fbda" + integrity sha512-4eo9Z3JlJCGlGrQRbtZWL+L9NnlUXgTbfK3Lk7oO8D1ev8R5b5+iE6tZHTvU5rQRcq6zu+POT+tK5u9oxc/rnQ== dependencies: - "@sentry/types" "6.17.4" + "@sentry/types" "6.17.9" tslib "^1.9.3" "@sindresorhus/is@^0.14.0": version "0.14.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== "@szmarczak/http-timer@^1.1.2": version "1.1.2" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== dependencies: defer-to-connect "^1.0.1" "@types/node@*": - version "16.11.11" - resolved "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz" - integrity sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw== + version "17.0.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.18.tgz#3b4fed5cfb58010e3a2be4b6e74615e4847f1074" + integrity sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA== "@types/node@^14.14.31": - version "14.17.34" - resolved "https://registry.npmjs.org/@types/node/-/node-14.17.34.tgz" - integrity sha512-USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg== + version "14.18.12" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.12.tgz#0d4557fd3b94497d793efd4e7d92df2f83b4ef24" + integrity sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A== "@types/q@^1.5.1": - version "1.5.4" - resolved "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz" - integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== + version "1.5.5" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" + integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== "@types/sinonjs__fake-timers@8.1.1": version "8.1.1" - resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz" + resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3" integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== "@types/sizzle@^2.3.2": version "2.3.3" - resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz" + resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== "@types/yauzl@^2.9.1": version "2.9.2" - resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA== dependencies: "@types/node" "*" +"@xmldom/xmldom@^0.7.5": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.7.5.tgz#09fa51e356d07d0be200642b0e4f91d8e6dd408d" + integrity sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A== + abbrev@1: version "1.1.1" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== acorn@^6.4.1: version "6.4.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" @@ -204,7 +214,7 @@ aggregate-error@^3.0.0: ajv@^6.12.3: version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -214,84 +224,74 @@ ajv@^6.12.3: ansi-align@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== dependencies: string-width "^4.1.0" ansi-colors@^1.0.1: version "1.1.0" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA== dependencies: ansi-wrap "^0.1.0" ansi-colors@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== ansi-escapes@^4.3.0: version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" ansi-gray@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE= dependencies: ansi-wrap "0.1.0" ansi-regex@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ansi-wrap@0.1.0, ansi-wrap@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= any-promise@^1.1.0: version "1.3.0" - resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= anymatch@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== dependencies: micromatch "^3.1.4" @@ -299,7 +299,7 @@ anymatch@^2.0.0: anymatch@~3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: normalize-path "^3.0.0" @@ -307,65 +307,65 @@ anymatch@~3.1.2: append-buffer@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" integrity sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE= dependencies: buffer-equal "^1.0.0" arch@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== archy@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= argparse@^1.0.7: version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" arr-diff@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= arr-filter@^1.1.1: version "1.1.2" - resolved "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee" integrity sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4= dependencies: make-iterator "^1.0.0" arr-flatten@^1.0.1, arr-flatten@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== arr-map@^2.0.0, arr-map@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4" integrity sha1-Onc0X/wc814qkYJWAfnljy4kysQ= dependencies: make-iterator "^1.0.0" arr-union@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= array-each@^1.0.0, array-each@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= array-initial@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795" integrity sha1-L6dLJnOTccOUe9enrcc74zSz15U= dependencies: array-slice "^1.0.0" @@ -373,19 +373,19 @@ array-initial@^1.0.0: array-last@^1.1.1: version "1.3.0" - resolved "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336" integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg== dependencies: is-number "^4.0.0" array-slice@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== array-sort@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a" integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg== dependencies: default-compare "^1.0.0" @@ -394,17 +394,17 @@ array-sort@^1.0.0: array-unique@^0.3.2: version "0.3.2" - resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= asap@~2.0.3: version "2.0.6" - resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= asn1.js@^5.2.0: version "5.4.1" - resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== dependencies: bn.js "^4.0.0" @@ -413,20 +413,20 @@ asn1.js@^5.2.0: safer-buffer "^2.1.0" asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= assert@^1.1.1: version "1.5.0" - resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== dependencies: object-assign "^4.1.1" @@ -434,17 +434,17 @@ assert@^1.1.1: assign-symbols@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= astral-regex@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async-done@^1.2.0, async-done@^1.2.2: version "1.3.2" - resolved "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.3.2.tgz#5e15aa729962a4b07414f528a88cdf18e0b290a2" integrity sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw== dependencies: end-of-stream "^1.1.0" @@ -454,51 +454,39 @@ async-done@^1.2.0, async-done@^1.2.2: async-each@^1.0.1: version "1.0.3" - resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== async-settle@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b" integrity sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs= dependencies: async-done "^1.2.2" -async@^2.6.1: - version "2.6.3" - resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -async@^3.1.0: - version "3.2.0" - resolved "https://registry.npmjs.org/async/-/async-3.2.0.tgz" - integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== - -async@^3.2.0: - version "3.2.2" - resolved "https://registry.npmjs.org/async/-/async-3.2.2.tgz" - integrity sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g== +async@^3.2.0, async@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" + integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= at-least-node@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== atob@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== autoprefixer@^10.4.2: version "10.4.2" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.2.tgz#25e1df09a31a9fba5c40b578936b90d35c9d4d3b" integrity sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ== dependencies: browserslist "^4.19.1" @@ -510,17 +498,17 @@ autoprefixer@^10.4.2: aws-sign2@~0.7.0: version "0.7.0" - resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: version "1.11.0" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== bach@^1.0.0: version "1.2.0" - resolved "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880" integrity sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA= dependencies: arr-filter "^1.1.1" @@ -535,17 +523,17 @@ bach@^1.0.0: balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base64-js@^1.0.2, base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base@^0.11.1: version "0.11.2" - resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== dependencies: cache-base "^1.0.1" @@ -558,19 +546,19 @@ base@^0.11.1: bcrypt-pbkdf@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= dependencies: tweetnacl "^0.14.3" binary-extensions@^1.0.0: version "1.13.1" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== bindings@^1.5.0: @@ -582,37 +570,37 @@ bindings@^1.5.0: bintrees@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.1.tgz#0e655c9b9c2435eaab68bf4027226d2b55a34524" integrity sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ= blob-util@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== bluebird@^3.7.2: version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: version "4.12.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== bn.js@^5.0.0, bn.js@^5.1.1: version "5.2.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= boxen@^5.0.0: version "5.1.2" - resolved "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== dependencies: ansi-align "^3.0.0" @@ -626,7 +614,7 @@ boxen@^5.0.0: brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -634,7 +622,7 @@ brace-expansion@^1.1.7: braces@^2.3.1, braces@^2.3.2: version "2.3.2" - resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== dependencies: arr-flatten "^1.1.0" @@ -650,24 +638,19 @@ braces@^2.3.1, braces@^2.3.2: braces@~3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" - resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" @@ -679,7 +662,7 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4: browserify-cipher@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== dependencies: browserify-aes "^1.0.4" @@ -688,7 +671,7 @@ browserify-cipher@^1.0.0: browserify-des@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== dependencies: cipher-base "^1.0.1" @@ -698,7 +681,7 @@ browserify-des@^1.0.0: browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: version "4.1.0" - resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== dependencies: bn.js "^5.0.0" @@ -706,7 +689,7 @@ browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: browserify-sign@^4.0.0: version "4.2.1" - resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== dependencies: bn.js "^5.1.1" @@ -721,14 +704,14 @@ browserify-sign@^4.0.0: browserify-zlib@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== dependencies: pako "~1.0.5" browserslist@^4.19.1: version "4.19.1" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== dependencies: caniuse-lite "^1.0.30001286" @@ -739,27 +722,27 @@ browserslist@^4.19.1: buffer-crc32@~0.2.3: version "0.2.13" - resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= buffer-equal@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer-xor@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= buffer@^4.3.0: version "4.9.2" - resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== dependencies: base64-js "^1.0.2" @@ -768,7 +751,7 @@ buffer@^4.3.0: buffer@^5.6.0: version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: base64-js "^1.3.1" @@ -776,17 +759,17 @@ buffer@^5.6.0: builtin-status-codes@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= bytes@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== cache-base@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== dependencies: collection-visit "^1.0.0" @@ -801,7 +784,7 @@ cache-base@^1.0.1: cacheable-request@^6.0.0: version "6.1.0" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== dependencies: clone-response "^1.0.2" @@ -814,12 +797,12 @@ cacheable-request@^6.0.0: cachedir@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" @@ -827,37 +810,32 @@ call-bind@^1.0.0, call-bind@^1.0.2: camelcase@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= camelcase@^5.0.0: version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001286: - version "1.0.30001294" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001294.tgz" - integrity sha512-LiMlrs1nSKZ8qkNhpUf5KD0Al1KCBE3zaT7OLOwEkagXMEDij98SiOovn9wxVGQpklk9vVC/pUSqgYmkmKOS8g== - -caniuse-lite@^1.0.30001297: - version "1.0.30001306" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001306.tgz" - integrity sha512-Wd1OuggRzg1rbnM5hv1wXs2VkxJH/AA+LuudlIqvZiCvivF+wJJe2mgBZC8gPMgI7D76PP5CTx8Luvaqc1V6OQ== +caniuse-lite@^1.0.30001286, caniuse-lite@^1.0.30001297: + version "1.0.30001312" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz#e11eba4b87e24d22697dae05455d5aea28550d5f" + integrity sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ== caseless@~0.12.0: version "0.12.0" - resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.4.1: version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -866,7 +844,7 @@ chalk@^2.4.1, chalk@^2.4.2: chalk@^4.1.0: version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -874,13 +852,13 @@ chalk@^4.1.0: check-more-types@^2.24.0: version "2.24.0" - resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz" + resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= "chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.2: - version "3.5.2" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -894,7 +872,7 @@ check-more-types@^2.24.0: chokidar@^2.0.0: version "2.1.8" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== dependencies: anymatch "^2.0.0" @@ -913,17 +891,17 @@ chokidar@^2.0.0: ci-info@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== ci-info@^3.2.0: version "3.3.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" @@ -931,7 +909,7 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: class-utils@^0.3.5: version "0.3.6" - resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== dependencies: arr-union "^3.1.0" @@ -940,32 +918,32 @@ class-utils@^0.3.5: static-extend "^0.1.1" clean-css@^4.x: - version "4.2.3" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz" - integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== + version "4.2.4" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" + integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== dependencies: source-map "~0.6.0" clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-boxes@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== cli-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" cli-table3@~0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.1.tgz#36ce9b7af4847f288d3cdd081fbd09bf7bd237b8" integrity sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA== dependencies: string-width "^4.2.0" @@ -974,7 +952,7 @@ cli-table3@~0.6.1: cli-truncate@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== dependencies: slice-ansi "^3.0.0" @@ -982,47 +960,47 @@ cli-truncate@^2.1.0: cliui@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" wrap-ansi "^2.0.0" -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" clone-buffer@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= clone-response@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= dependencies: mimic-response "^1.0.0" clone-stats@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= clone@^2.1.1: version "2.1.2" - resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= cloneable-readable@^1.0.0: version "1.1.3" - resolved "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== dependencies: inherits "^2.0.1" @@ -1031,12 +1009,12 @@ cloneable-readable@^1.0.0: clsx@^1.0.4: version "1.1.1" - resolved "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== coa@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== dependencies: "@types/q" "^1.5.1" @@ -1045,12 +1023,12 @@ coa@^2.0.2: code-point-at@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= collection-map@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c" integrity sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw= dependencies: arr-map "^2.0.2" @@ -1059,115 +1037,110 @@ collection-map@^1.0.0: collection-visit@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= dependencies: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.9.0, color-convert@^1.9.1: +color-convert@^1.9.0, color-convert@^1.9.3: version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.5.2: - version "1.5.5" - resolved "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz" - integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg== +color-string@^1.6.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa" + integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" color-support@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -color@3.0.x: - version "3.0.0" - resolved "https://registry.npmjs.org/color/-/color-3.0.0.tgz" - integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w== +color@^3.1.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== dependencies: - color-convert "^1.9.1" - color-string "^1.5.2" + color-convert "^1.9.3" + color-string "^1.6.0" colorette@^2.0.16: version "2.0.16" - resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== -colors@1.4.0, colors@^1.2.1: +colors@1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== colorspace@1.1.x: - version "1.1.2" - resolved "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz" - integrity sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ== + version "1.1.4" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" + integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== dependencies: - color "3.0.x" + color "^3.1.3" text-hex "1.0.x" combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" -commander@2.15.1: - version "2.15.1" - resolved "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz" - integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== - commander@^2.19.0: version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== commander@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== common-tags@^1.8.0: version "1.8.2" - resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== component-emitter@^1.2.1: version "1.3.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= concat-stream@^1.6.0, concat-stream@^1.6.2: version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" @@ -1177,22 +1150,22 @@ concat-stream@^1.6.0, concat-stream@^1.6.2: concat-with-sourcemaps@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== dependencies: source-map "^0.6.1" config-chain@^1.1.12: - version "1.1.12" - resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== dependencies: ini "^1.3.4" proto-list "~1.2.1" configstore@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== dependencies: dot-prop "^5.2.0" @@ -1204,62 +1177,62 @@ configstore@^5.0.1: console-browserify@^1.1.0: version "1.2.0" - resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== constants-browserify@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= content-type@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== convert-source-map@^1.0.0, convert-source-map@^1.5.0: - version "1.7.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== dependencies: safe-buffer "~5.1.1" copy-descriptor@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= copy-props@^2.0.1: version "2.0.5" - resolved "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.5.tgz#03cf9ae328d4ebb36f8f1d804448a6af9ee3f2d2" integrity sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw== dependencies: each-props "^1.3.2" is-plain-object "^5.0.0" -core-js-pure@^3.16.0: - version "3.17.3" - resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz" - integrity sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ== +core-js-pure@^3.20.2: + version "3.21.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.21.1.tgz#8c4d1e78839f5f46208de7230cebfb72bc3bdb51" + integrity sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ== core-js@^3.6.4: - version "3.13.0" - resolved "https://registry.npmjs.org/core-js/-/core-js-3.13.0.tgz" - integrity sha512-iWDbiyha1M5vFwPFmQnvRv+tJzGbFAm6XimJUT0NgHYW3xZEs1SkCAcasWSVFxpI2Xb/V1DDJckq3v90+bQnog== + version "3.21.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.21.1.tgz#f2e0ddc1fc43da6f904706e8e955bc19d06a0d94" + integrity sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig== core-util-is@1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= core-util-is@~1.0.0: version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== create-ecdh@^4.0.0: version "4.0.4" - resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== dependencies: bn.js "^4.1.0" @@ -1267,7 +1240,7 @@ create-ecdh@^4.0.0: create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" @@ -1278,7 +1251,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" - resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" @@ -1289,15 +1262,15 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: sha.js "^2.4.8" cross-fetch@^3.0.4: - version "3.1.4" - resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz" - integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ== + version "3.1.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== dependencies: - node-fetch "2.6.1" + node-fetch "2.6.7" -cross-spawn@^6.0.0, cross-spawn@^6.0.5: +cross-spawn@^6.0.5: version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: nice-try "^1.0.4" @@ -1308,7 +1281,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: cross-spawn@^7.0.0: version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -1317,7 +1290,7 @@ cross-spawn@^7.0.0: crypto-browserify@^3.11.0: version "3.12.0" - resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== dependencies: browserify-cipher "^1.0.0" @@ -1334,17 +1307,17 @@ crypto-browserify@^3.11.0: crypto-random-string@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== css-select-base-adapter@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== css-select@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== dependencies: boolbase "^1.0.0" @@ -1352,14 +1325,14 @@ css-select@^2.0.0: domutils "^1.7.0" nth-check "^1.0.2" -css-selector-parser@^1.3.0: +css-selector-parser@^1.4.1: version "1.4.1" - resolved "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/css-selector-parser/-/css-selector-parser-1.4.1.tgz#03f9cb8a81c3e5ab2c51684557d5aaf6d2569759" integrity sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g== css-tree@1.0.0-alpha.37: version "1.0.0-alpha.37" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== dependencies: mdn-data "2.0.4" @@ -1367,7 +1340,7 @@ css-tree@1.0.0-alpha.37: css-tree@^1.1.2: version "1.1.3" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== dependencies: mdn-data "2.0.14" @@ -1375,12 +1348,12 @@ css-tree@^1.1.2: css-what@^3.2.1: version "3.4.2" - resolved "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== css@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/css/-/css-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== dependencies: inherits "^2.0.4" @@ -1389,34 +1362,34 @@ css@^3.0.0: cssmin@^0.4.3: version "0.4.3" - resolved "https://registry.npmjs.org/cssmin/-/cssmin-0.4.3.tgz" + resolved "https://registry.yarnpkg.com/cssmin/-/cssmin-0.4.3.tgz#c9194077e0ebdacd691d5f59015b9d819f38d015" integrity sha1-yRlAd+Dr2s1pHV9ZAVudgZ840BU= csso@^4.0.2: version "4.2.0" - resolved "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== dependencies: css-tree "^1.1.2" -cssom@^0.3.4: - version "0.3.8" - resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== +cssom@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" + integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== csstype@^3.0.2: - version "3.0.8" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz" - integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== + version "3.0.10" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5" + integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA== cypress-file-upload@^5.0.8: version "5.0.8" - resolved "https://registry.npmjs.org/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz" + resolved "https://registry.yarnpkg.com/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz#d8824cbeaab798e44be8009769f9a6c9daa1b4a1" integrity sha512-+8VzNabRk3zG6x8f8BWArF/xA/W0VK4IZNx3MV0jFWrJS/qKn8eHfa5nU73P9fOQAgwHFJx7zjg4lwOnljMO8g== cypress@^9.5.0: version "9.5.0" - resolved "https://registry.npmjs.org/cypress/-/cypress-9.5.0.tgz" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.5.0.tgz#704a79f0d3d4e775f433334eb8f5ae065e3bea31" integrity sha512-rC5QPolKsVjJ8QJZ7IeZ6HlKM4gswBGZc0XvoAJNL8urQCSL8zTX0A/ai/h35WfF47NQ0iSZnwIXBlHX3MOUIQ== dependencies: "@cypress/request" "^2.88.10" @@ -1464,7 +1437,7 @@ cypress@^9.5.0: d@1, d@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== dependencies: es5-ext "^0.10.50" @@ -1472,126 +1445,114 @@ d@1, d@^1.0.1: dashdash@^1.12.0: version "1.14.1" - resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" date-fns@^2.28.0: version "2.28.0" - resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.28.0.tgz#9570d656f5fc13143e50c975a3b6bbeb46cd08b2" integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw== -dateformat@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz" - integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== - dayjs@^1.10.4: version "1.10.7" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468" integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig== debug-fabulous@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/debug-fabulous/-/debug-fabulous-1.1.0.tgz#af8a08632465224ef4174a9f06308c3c2a1ebc8e" integrity sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg== dependencies: debug "3.X" memoizee "0.4.X" object-assign "4.X" -debug@3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - debug@3.X, debug@^3.1.0, debug@^3.2.7: version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" debug@^4.1.1, debug@^4.3.2: version "4.3.3" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== dependencies: ms "2.1.2" decamelize@^1.1.1, decamelize@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= decode-uri-component@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= decompress-response@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= dependencies: mimic-response "^1.0.0" deep-extend@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== default-compare@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f" integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ== dependencies: kind-of "^5.0.2" default-resolution@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" integrity sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ= defer-to-connect@^1.0.1: version "1.1.3" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== define-properties@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: object-keys "^1.0.12" define-property@^0.2.5: version "0.2.5" - resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= dependencies: is-descriptor "^1.0.0" define-property@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== dependencies: is-descriptor "^1.0.2" @@ -1599,12 +1560,12 @@ define-property@^2.0.2: delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= des.js@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== dependencies: inherits "^2.0.1" @@ -1612,22 +1573,17 @@ des.js@^1.0.0: detect-file@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= detect-newline@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= -diff@3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - diffie-hellman@^5.0.0: version "5.0.3" - resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== dependencies: bn.js "^4.1.0" @@ -1636,7 +1592,7 @@ diffie-hellman@^5.0.0: dom-helpers@^5.1.3: version "5.2.1" - resolved "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== dependencies: "@babel/runtime" "^7.8.7" @@ -1644,7 +1600,7 @@ dom-helpers@^5.1.3: dom-serializer@0: version "0.2.2" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== dependencies: domelementtype "^2.0.1" @@ -1652,22 +1608,22 @@ dom-serializer@0: domain-browser@^1.1.1: version "1.2.0" - resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== domelementtype@1: version "1.3.1" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== domelementtype@^2.0.1: version "2.2.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== domutils@^1.7.0: version "1.7.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== dependencies: dom-serializer "0" @@ -1675,14 +1631,14 @@ domutils@^1.7.0: dot-prop@^5.2.0: version "5.3.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== dependencies: is-obj "^2.0.0" draft-js@^0.11.7: version "0.11.7" - resolved "https://registry.npmjs.org/draft-js/-/draft-js-0.11.7.tgz" + resolved "https://registry.yarnpkg.com/draft-js/-/draft-js-0.11.7.tgz#be293aaa255c46d8a6647f3860aa4c178484a206" integrity sha512-ne7yFfN4sEL82QPQEn80xnADR8/Q6ALVworbC5UOSzOvjffmYfFsr3xSZtxbIirti14R7Y33EZC5rivpLgIbsg== dependencies: fbjs "^2.0.0" @@ -1691,12 +1647,12 @@ draft-js@^0.11.7: duplexer3@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= duplexify@^3.6.0: version "3.7.1" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== dependencies: end-of-stream "^1.0.0" @@ -1706,7 +1662,7 @@ duplexify@^3.6.0: each-props@^1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333" integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA== dependencies: is-plain-object "^2.0.1" @@ -1714,7 +1670,7 @@ each-props@^1.3.2: ecc-jsbn@~0.1.1: version "0.1.2" - resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" @@ -1722,7 +1678,7 @@ ecc-jsbn@~0.1.1: editorconfig@^0.15.3: version "0.15.3" - resolved "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== dependencies: commander "^2.19.0" @@ -1731,13 +1687,13 @@ editorconfig@^0.15.3: sigmund "^1.0.1" electron-to-chromium@^1.4.17: - version "1.4.30" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.30.tgz" - integrity sha512-609z9sIMxDHg+TcR/VB3MXwH+uwtrYyeAwWc/orhnr90ixs6WVGSrt85CDLGUdNnLqCA7liv426V20EecjvflQ== + version "1.4.71" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz#17056914465da0890ce00351a3b946fd4cd51ff6" + integrity sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw== elliptic@^6.5.3: version "6.5.4" - resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: bn.js "^4.11.9" @@ -1750,72 +1706,50 @@ elliptic@^6.5.3: emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== enabled@2.0.x: version "2.0.0" - resolved "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== encoding@^0.1.13: version "0.1.13" - resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== dependencies: iconv-lite "^0.6.2" end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" enquirer@^2.3.6: version "2.3.6" - resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== dependencies: ansi-colors "^4.1.1" entities@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.2, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: - version "1.18.3" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz" - integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.2" - is-callable "^1.2.3" - is-negative-zero "^2.0.1" - is-regex "^1.1.3" - is-string "^1.0.6" - object-inspect "^1.10.3" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-abstract@^1.19.1: +es-abstract@^1.17.2, es-abstract@^1.19.1: version "1.19.1" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== dependencies: call-bind "^1.0.2" @@ -1841,7 +1775,7 @@ es-abstract@^1.19.1: es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" @@ -1850,7 +1784,7 @@ es-to-primitive@^1.2.1: es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: version "0.10.53" - resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== dependencies: es6-iterator "~2.0.3" @@ -1859,7 +1793,7 @@ es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@ es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= dependencies: d "1" @@ -1868,12 +1802,12 @@ es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.3: es6-promise@^4.0.3: version "4.2.8" - resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== es6-symbol@^3.1.1, es6-symbol@~3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== dependencies: d "^1.0.1" @@ -1881,7 +1815,7 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.3: es6-weak-map@^2.0.1, es6-weak-map@^2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== dependencies: d "1" @@ -1891,32 +1825,32 @@ es6-weak-map@^2.0.1, es6-weak-map@^2.0.3: escalade@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-goat@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escape-string-regexp@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== esprima@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== event-emitter@^0.3.5: version "0.3.5" - resolved "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= dependencies: d "1" @@ -1924,17 +1858,17 @@ event-emitter@^0.3.5: eventemitter2@^6.4.3: version "6.4.5" - resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.5.tgz" + resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.5.tgz#97380f758ae24ac15df8353e0cc27f8b95644655" integrity sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw== events@^3.0.0: version "3.3.0" - resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" @@ -1942,7 +1876,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: execa@4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== dependencies: cross-spawn "^7.0.0" @@ -1955,29 +1889,16 @@ execa@4.1.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - executable@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== dependencies: pify "^2.2.0" expand-brackets@^2.1.4: version "2.1.4" - resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= dependencies: debug "^2.3.3" @@ -1990,28 +1911,28 @@ expand-brackets@^2.1.4: expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= dependencies: homedir-polyfill "^1.0.1" ext@^1.1.2: - version "1.4.0" - resolved "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz" - integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + version "1.6.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" + integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== dependencies: - type "^2.0.0" + type "^2.5.0" extend-shallow@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= dependencies: assign-symbols "^1.0.0" @@ -2019,12 +1940,12 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: extend@^3.0.0, extend@~3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== extglob@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== dependencies: array-unique "^0.3.2" @@ -2038,7 +1959,7 @@ extglob@^2.0.4: extract-zip@2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== dependencies: debug "^4.1.1" @@ -2049,7 +1970,7 @@ extract-zip@2.0.1: extract-zip@^1.6.5: version "1.7.0" - resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== dependencies: concat-stream "^1.6.2" @@ -2059,17 +1980,17 @@ extract-zip@^1.6.5: extsprintf@1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== fancy-log@^1.3.2, fancy-log@^1.3.3: version "1.3.3" - resolved "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== dependencies: ansi-gray "^0.1.1" @@ -2079,32 +2000,27 @@ fancy-log@^1.3.2, fancy-log@^1.3.3: fast-deep-equal@^3.1.1: version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^1.0.0: version "1.1.4" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz#e6a754cc8f15e58987aa9cbd27af66fd6f4e5af9" integrity sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk= -fast-safe-stringify@^2.0.4: - version "2.0.7" - resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz" - integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== - fbjs-css-vars@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== fbjs@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/fbjs/-/fbjs-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-2.0.0.tgz#01fb812138d7e31831ed3e374afe27b9169ef442" integrity sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ== dependencies: core-js "^3.6.4" @@ -2118,19 +2034,19 @@ fbjs@^2.0.0: fd-slicer@~1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= dependencies: pend "~1.2.0" fecha@^4.2.0: version "4.2.1" - resolved "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce" integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q== figures@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" @@ -2142,7 +2058,7 @@ file-uri-to-path@1.0.0: fill-range@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= dependencies: extend-shallow "^2.0.1" @@ -2152,29 +2068,30 @@ fill-range@^4.0.0: fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" find-up@^1.0.0: version "1.1.2" - resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= dependencies: path-exists "^2.0.0" pinkie-promise "^2.0.0" -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: - locate-path "^3.0.0" + locate-path "^5.0.0" + path-exists "^4.0.0" findup-sync@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= dependencies: detect-file "^1.0.0" @@ -2184,7 +2101,7 @@ findup-sync@^2.0.0: findup-sync@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== dependencies: detect-file "^1.0.0" @@ -2194,7 +2111,7 @@ findup-sync@^3.0.0: fined@^1.0.1: version "1.2.0" - resolved "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== dependencies: expand-tilde "^2.0.2" @@ -2205,12 +2122,12 @@ fined@^1.0.1: flagged-respawn@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== flush-write-stream@^1.0.2: version "1.1.1" - resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== dependencies: inherits "^2.0.3" @@ -2218,29 +2135,29 @@ flush-write-stream@^1.0.2: fn.name@1.x.x: version "1.1.0" - resolved "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= for-own@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= dependencies: for-in "^1.0.1" forever-agent@~0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@~2.3.2: version "2.3.3" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" @@ -2248,20 +2165,20 @@ form-data@~2.3.2: mime-types "^2.1.12" fraction.js@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz" - integrity sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA== + version "4.1.3" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.3.tgz#be65b0f20762ef27e1e793860bc2dfb716e99e65" + integrity sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg== fragment-cache@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= dependencies: map-cache "^0.2.2" fs-extra@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" integrity sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA= dependencies: graceful-fs "^4.1.2" @@ -2270,7 +2187,7 @@ fs-extra@^1.0.0: fs-extra@^9.1.0: version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: at-least-node "^1.0.0" @@ -2280,7 +2197,7 @@ fs-extra@^9.1.0: fs-mkdirp-stream@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" integrity sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes= dependencies: graceful-fs "^4.1.11" @@ -2288,7 +2205,7 @@ fs-mkdirp-stream@^1.0.0: fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: @@ -2306,40 +2223,45 @@ fsevents@~2.3.2: function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== get-caller-file@^1.0.1: version "1.0.3" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== dependencies: function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.1" -get-stream@^4.0.0, get-stream@^4.1.0: +get-stream@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" get-symbol-description@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== dependencies: call-bind "^1.0.2" @@ -2347,26 +2269,26 @@ get-symbol-description@^1.0.0: get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= getos@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== dependencies: async "^3.2.0" getpass@^0.1.1: version "0.1.7" - resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" gettext-parser@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/gettext-parser/-/gettext-parser-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/gettext-parser/-/gettext-parser-4.2.0.tgz#9327140f76b122d44f0e8cb9338fd855667d9434" integrity sha512-aMgPyjC9W5Mz9tbFU8DcQ7GYMXoFWq633kaWGt4imlcpBWzDIWk7HY7nCSZTCJxyjRaLq9L/NEjMKkZ9gR630Q== dependencies: content-type "^1.0.4" @@ -2376,7 +2298,7 @@ gettext-parser@^4.2.0: glob-parent@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= dependencies: is-glob "^3.1.0" @@ -2384,14 +2306,14 @@ glob-parent@^3.1.0: glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-stream@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= dependencies: extend "^3.0.0" @@ -2407,7 +2329,7 @@ glob-stream@^6.1.0: glob-watcher@^5.0.3: version "5.0.5" - resolved "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.5.tgz#aa6bce648332924d9a8489be41e3e5c52d4186dc" integrity sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw== dependencies: anymatch "^2.0.0" @@ -2418,22 +2340,10 @@ glob-watcher@^5.0.3: normalize-path "^3.0.0" object.defaults "^1.1.0" -glob@7.1.2: - version "7.1.2" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz" - integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.1, glob@^7.1.3: - version "7.1.7" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== +glob@^7.1.1, glob@^7.1.3, glob@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -2444,14 +2354,14 @@ glob@^7.1.1, glob@^7.1.3: global-dirs@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== dependencies: ini "2.0.0" global-modules@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== dependencies: global-prefix "^1.0.1" @@ -2460,7 +2370,7 @@ global-modules@^1.0.0: global-prefix@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= dependencies: expand-tilde "^2.0.2" @@ -2471,14 +2381,14 @@ global-prefix@^1.0.1: glogg@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.2.tgz#2d7dd702beda22eb3bffadf880696da6d846313f" integrity sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA== dependencies: sparkles "^1.0.0" got@^9.6.0: version "9.6.0" - resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== dependencies: "@sindresorhus/is" "^0.14.0" @@ -2493,24 +2403,14 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.2.6" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== - -graceful-fs@^4.2.0: - version "4.2.8" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== - -growl@1.10.5: - version "1.10.5" - resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== +graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: + version "4.2.9" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" + integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== gulp-cli@^2.2.0: version "2.3.0" - resolved "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.3.0.tgz#ec0d380e29e52aa45e47977f0d32e18fd161122f" integrity sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A== dependencies: ansi-colors "^1.0.1" @@ -2534,7 +2434,7 @@ gulp-cli@^2.2.0: gulp-concat@^2.6.1: version "2.6.1" - resolved "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz" + resolved "https://registry.yarnpkg.com/gulp-concat/-/gulp-concat-2.6.1.tgz#633d16c95d88504628ad02665663cee5a4793353" integrity sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M= dependencies: concat-with-sourcemaps "^1.0.0" @@ -2543,7 +2443,7 @@ gulp-concat@^2.6.1: gulp-gzip@^1.4.2: version "1.4.2" - resolved "https://registry.npmjs.org/gulp-gzip/-/gulp-gzip-1.4.2.tgz" + resolved "https://registry.yarnpkg.com/gulp-gzip/-/gulp-gzip-1.4.2.tgz#0422a94014248655b5b1a9eea1c2abee1d4f4337" integrity sha512-ZIxfkUwk2XmZPTT9pPHrHUQlZMyp9nPhg2sfoeN27mBGpi7OaHnOD+WCN41NXjfJQ69lV1nQ9LLm1hYxx4h3UQ== dependencies: ansi-colors "^1.0.1" @@ -2555,7 +2455,7 @@ gulp-gzip@^1.4.2: gulp-mustache@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/gulp-mustache/-/gulp-mustache-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/gulp-mustache/-/gulp-mustache-5.0.0.tgz#5ebc8bbb36a0e657391b341f11325579d4502b07" integrity sha512-8tk0R1Fd+l6+e/t954e3UheFo25dKkTapPLD1sWoSroPXfIPxyHVgbhfH5VJGqeXl3te5GOwPtfcxxZJ+PYoFg== dependencies: escape-string-regexp "^2.0.0" @@ -2566,7 +2466,7 @@ gulp-mustache@^5.0.0: gulp-postcss@^9.0.0: version "9.0.1" - resolved "https://registry.npmjs.org/gulp-postcss/-/gulp-postcss-9.0.1.tgz" + resolved "https://registry.yarnpkg.com/gulp-postcss/-/gulp-postcss-9.0.1.tgz#d43caa2f2ce1018f889f7c1296faf82e9928b66f" integrity sha512-9QUHam5JyXwGUxaaMvoFQVT44tohpEFpM8xBdPfdwTYGM0AItS1iTQz0MpsF8Jroh7GF5Jt2GVPaYgvy8qD2Fw== dependencies: fancy-log "^1.3.3" @@ -2576,12 +2476,12 @@ gulp-postcss@^9.0.0: gulp-rename@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-2.0.0.tgz#9bbc3962b0c0f52fc67cd5eaff6c223ec5b9cf6c" integrity sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ== gulp-sass@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/gulp-sass/-/gulp-sass-5.1.0.tgz#bb3d9094f39a260f62a8d0a6797b95ab826f9663" integrity sha512-7VT0uaF+VZCmkNBglfe1b34bxn/AfcssquLKVDYnCDJ3xNBaW7cUuI3p3BQmoKcoKFrs9jdzUxyb+u+NGfL4OQ== dependencies: lodash.clonedeep "^4.5.0" @@ -2593,7 +2493,7 @@ gulp-sass@^5.1.0: gulp-sourcemaps@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz#2e154e1a2efed033c0e48013969e6f30337b2743" integrity sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ== dependencies: "@gulp-sourcemaps/identity-map" "^2.0.1" @@ -2610,7 +2510,7 @@ gulp-sourcemaps@^3.0.0: gulp-svg-sprite@^1.5.0: version "1.5.0" - resolved "https://registry.npmjs.org/gulp-svg-sprite/-/gulp-svg-sprite-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/gulp-svg-sprite/-/gulp-svg-sprite-1.5.0.tgz#292694c6af8570093f62cba09092ec8e5241d322" integrity sha512-xLepqh1DjCSNm+secZsxmoWKNTXAXCC6Tglop0e2oOoiIqwBWOvep5Y+qvqRP9L3dn8qBxKkqGot8aTheNGYoQ== dependencies: plugin-error "^1.0.1" @@ -2619,7 +2519,7 @@ gulp-svg-sprite@^1.5.0: gulp@4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.2.tgz#543651070fd0f6ab0a0650c6a3e6ff5a7cb09caa" integrity sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA== dependencies: glob-watcher "^5.0.3" @@ -2629,19 +2529,19 @@ gulp@4.0.2: gulplog@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" integrity sha1-4oxNRdBey77YGDY86PnFkmIp/+U= dependencies: glogg "^1.0.0" har-schema@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.3: version "5.1.5" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: ajv "^6.12.3" @@ -2649,34 +2549,34 @@ har-validator@~5.1.3: has-bigints@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== has-tostringtag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== dependencies: has-symbols "^1.0.2" has-value@^0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= dependencies: get-value "^2.0.3" @@ -2685,7 +2585,7 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= dependencies: get-value "^2.0.6" @@ -2694,12 +2594,12 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= has-values@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= dependencies: is-number "^3.0.0" @@ -2707,19 +2607,19 @@ has-values@^1.0.0: has-yarn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== has@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hash-base@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: inherits "^2.0.4" @@ -2728,7 +2628,7 @@ hash-base@^3.0.0: hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" @@ -2736,25 +2636,20 @@ hash.js@^1.0.0, hash.js@^1.0.3: hasha@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" integrity sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE= dependencies: is-stream "^1.0.1" pinkie-promise "^2.0.0" -he@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/he/-/he-1.1.1.tgz" - integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= - highlight.js@^11.4.0: version "11.4.0" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-11.4.0.tgz" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.4.0.tgz#34ceadd49e1596ee5aba3d99346cdfd4845ee05a" integrity sha512-nawlpCBCSASs7EdvZOYOYVkJpGmAOKMYZgZtUqSRqodZE0GRVcFKwo1RcpeOemqh9hyttTdd5wDBwHkuSyUfnA== hmac-drbg@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= dependencies: hash.js "^1.0.3" @@ -2763,24 +2658,24 @@ hmac-drbg@^1.0.1: homedir-polyfill@^1.0.1: version "1.0.3" - resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== dependencies: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: version "2.8.9" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== http-cache-semantics@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== http-signature@~1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" @@ -2789,7 +2684,7 @@ http-signature@~1.2.0: http-signature@~1.3.6: version "1.3.6" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9" integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw== dependencies: assert-plus "^1.0.0" @@ -2798,78 +2693,64 @@ http-signature@~1.3.6: https-browserify@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= human-signals@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== iconv-lite@^0.6.2: version "0.6.3" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" ieee754@^1.1.13, ieee754@^1.1.4: version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore-by-default@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= immediate@~3.0.5: version "3.0.6" - resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= immutable@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== immutable@~3.7.4: version "3.7.6" - resolved "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" integrity sha1-E7TTyxK++hVIKib+Gy665kAHHks= -import-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz" - integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== - dependencies: - import-from "^3.0.0" - -import-from@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz" - integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== - dependencies: - resolve-from "^5.0.0" - import-lazy@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" @@ -2877,32 +2758,32 @@ inflight@^1.0.4: inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= inherits@2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== ini@^1.3.4, ini@~1.3.0: version "1.3.8" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== dependencies: get-intrinsic "^1.1.0" @@ -2911,22 +2792,17 @@ internal-slot@^1.0.3: interpret@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== invert-kv@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - is-absolute@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== dependencies: is-relative "^1.0.0" @@ -2934,112 +2810,112 @@ is-absolute@^1.0.0: is-accessor-descriptor@^0.1.6: version "0.1.6" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= dependencies: kind-of "^3.0.2" is-accessor-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== dependencies: kind-of "^6.0.0" is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-arrayish@^0.3.1: version "0.3.2" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== is-bigint@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz" - integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" is-binary-path@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= dependencies: binary-extensions "^1.0.0" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz" - integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-buffer@^1.1.5: version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-callable@^1.1.4, is-callable@^1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== - -is-callable@^1.2.4: +is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== is-ci@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== dependencies: ci-info "^2.0.0" is-ci@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== dependencies: ci-info "^3.2.0" -is-core-module@^2.2.0: - version "2.5.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz" - integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg== +is-core-module@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== dependencies: has "^1.0.3" is-data-descriptor@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= dependencies: kind-of "^3.0.2" is-data-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== dependencies: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz" - integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" is-descriptor@^0.1.0: version "0.1.6" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== dependencies: is-accessor-descriptor "^0.1.6" @@ -3048,7 +2924,7 @@ is-descriptor@^0.1.0: is-descriptor@^1.0.0, is-descriptor@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== dependencies: is-accessor-descriptor "^1.0.0" @@ -3057,55 +2933,50 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= is-extendable@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== dependencies: is-plain-object "^2.0.4" is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-fullwidth-code-point@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= dependencies: number-is-nan "^1.0.0" -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= dependencies: is-extglob "^2.1.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-installed-globally@^0.4.0, is-installed-globally@~0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== dependencies: global-dirs "^3.0.0" @@ -3113,79 +2984,73 @@ is-installed-globally@^0.4.0, is-installed-globally@~0.4.0: is-negated-glob@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-npm@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== is-number-object@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz" - integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" + integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + dependencies: + has-tostringtag "^1.0.0" is-number@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= dependencies: kind-of "^3.0.2" is-number@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-obj@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== is-path-inside@^3.0.2: version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" is-plain-object@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== is-promise@^2.2.2: version "2.2.2" - resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== -is-regex@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz" - integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== - dependencies: - call-bind "^1.0.2" - has-symbols "^1.0.2" - is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" @@ -3193,119 +3058,114 @@ is-regex@^1.1.4: is-relative@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== dependencies: is-unc-path "^1.0.0" is-shared-array-buffer@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== -is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.0.1: version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= is-stream@^2.0.0: - 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== + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-string@^1.0.5, is-string@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz" - integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== - -is-string@^1.0.7: +is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: has-symbols "^1.0.2" is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= is-unc-path@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== dependencies: unc-path-regex "^0.1.2" is-unicode-supported@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== is-utf8@^0.2.0, is-utf8@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= is-valid-glob@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= is-weakref@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz" - integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ== + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-yarn-global@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isobject@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= isstream@~0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= js-beautify@^1.14.0: version "1.14.0" - resolved "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.0.tgz" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.0.tgz#2ce790c555d53ce1e3d7363227acf5dc69024c2d" integrity sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ== dependencies: config-chain "^1.1.12" @@ -3315,12 +3175,12 @@ js-beautify@^1.14.0: "js-tokens@^3.0.0 || ^4.0.0": version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.12.0, js-yaml@^3.13.1: +js-yaml@^3.13.1, js-yaml@^3.14.1: version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" @@ -3328,54 +3188,49 @@ js-yaml@^3.12.0, js-yaml@^3.13.1: jsbn@~0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= json-buffer@3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= json-parse-better-errors@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - json-schema@0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= json-stringify-safe@~5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= jsonfile@^2.1.0: version "2.4.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= optionalDependencies: graceful-fs "^4.1.6" jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -3383,18 +3238,18 @@ jsonfile@^6.0.1: graceful-fs "^4.1.6" jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== dependencies: assert-plus "1.0.0" extsprintf "1.3.0" - json-schema "0.2.3" + json-schema "0.4.0" verror "1.10.0" jsprim@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d" integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ== dependencies: assert-plus "1.0.0" @@ -3404,7 +3259,7 @@ jsprim@^2.0.2: jszip@^3.6.0: version "3.7.1" - resolved "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.7.1.tgz#bd63401221c15625a1228c556ca8a68da6fda3d9" integrity sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg== dependencies: lie "~3.3.0" @@ -3414,60 +3269,60 @@ jszip@^3.6.0: just-debounce@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.1.0.tgz#2f81a3ad4121a76bc7cb45dbf704c0d76a8e5ddf" integrity sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ== kew@^0.7.0: version "0.7.0" - resolved "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz" + resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" integrity sha1-edk9LTM2PW/dKXCzNdkUGtWR15s= keyv@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== dependencies: json-buffer "3.0.0" kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= dependencies: is-buffer "^1.1.5" kind-of@^5.0.0, kind-of@^5.0.2: version "5.1.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== klaw@^1.0.0: version "1.3.1" - resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= optionalDependencies: graceful-fs "^4.1.9" kuler@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== last-run@^1.1.0: version "1.1.1" - resolved "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b" integrity sha1-RblpQsF7HHnHchmCWbqUO+v4yls= dependencies: default-resolution "^2.0.0" @@ -3475,54 +3330,47 @@ last-run@^1.1.0: latest-version@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== dependencies: package-json "^6.3.0" lazy-ass@^1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz" + resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= lazystream@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz" - integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= + version "1.0.1" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" + integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== dependencies: readable-stream "^2.0.5" lcid@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= dependencies: invert-kv "^1.0.0" -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - lead@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" integrity sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI= dependencies: flush-write-stream "^1.0.2" lie@~3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== dependencies: immediate "~3.0.5" liftoff@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3" integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog== dependencies: extend "^3.0.0" @@ -3534,28 +3382,28 @@ liftoff@^3.1.0: rechoir "^0.6.2" resolve "^1.1.7" -lilconfig@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz" - integrity sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg== +lilconfig@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" + integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== listr2@^3.8.3: - version "3.13.5" - resolved "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz" - integrity sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA== + version "3.14.0" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e" + integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g== dependencies: cli-truncate "^2.1.0" colorette "^2.0.16" log-update "^4.0.0" p-map "^4.0.0" rfdc "^1.3.0" - rxjs "^7.4.0" + rxjs "^7.5.1" through "^2.3.8" wrap-ansi "^7.0.0" load-json-file@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= dependencies: graceful-fs "^4.1.2" @@ -3566,7 +3414,7 @@ load-json-file@^1.0.0: load-json-file@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= dependencies: graceful-fs "^4.1.2" @@ -3574,137 +3422,31 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -lodash._arraymap@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz" - integrity sha1-Go/Q9MDfS2HeoHbXF83Jfwo8PmY= - -lodash._basecallback@^3.0.0: - version "3.3.1" - resolved "https://registry.npmjs.org/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz" - integrity sha1-t7K7Q9whYEJKIczybFfkQ3cqjic= - dependencies: - lodash._baseisequal "^3.0.0" - lodash._bindcallback "^3.0.0" - lodash.isarray "^3.0.0" - lodash.pairs "^3.0.0" - -lodash._baseeach@^3.0.0: - version "3.0.4" - resolved "https://registry.npmjs.org/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz" - integrity sha1-z4cGVyyhROjZ11InyZDamC+TKvM= - dependencies: - lodash.keys "^3.0.0" - -lodash._baseget@^3.0.0: - version "3.7.2" - resolved "https://registry.npmjs.org/lodash._baseget/-/lodash._baseget-3.7.2.tgz" - integrity sha1-G2rh1frPPCVTI1ChPBGXy4u2dPQ= - -lodash._baseisequal@^3.0.0: - version "3.0.7" - resolved "https://registry.npmjs.org/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz" - integrity sha1-2AJfdjOdKTQnZ9zIh85cuVpbUfE= - dependencies: - lodash.isarray "^3.0.0" - lodash.istypedarray "^3.0.0" - lodash.keys "^3.0.0" - -lodash._bindcallback@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz" - integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4= - -lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz" - integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= - -lodash._topath@^3.0.0: - version "3.8.1" - resolved "https://registry.npmjs.org/lodash._topath/-/lodash._topath-3.8.1.tgz" - integrity sha1-PsXiYGAU9MuX91X+aRTt2L/ADqw= - dependencies: - lodash.isarray "^3.0.0" + p-locate "^4.1.0" lodash.clonedeep@^4.5.0: version "4.5.0" - resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= -lodash.isarguments@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz" - integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= - -lodash.isarray@^3.0.0: - version "3.0.4" - resolved "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" - integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= - -lodash.istypedarray@^3.0.0: - version "3.0.6" - resolved "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz" - integrity sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I= - -lodash.keys@^3.0.0: - version "3.1.2" - resolved "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz" - integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo= - dependencies: - lodash._getnative "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" - -lodash.map@^3.0.0: - version "3.1.4" - resolved "https://registry.npmjs.org/lodash.map/-/lodash.map-3.1.4.tgz" - integrity sha1-tIOs0beGxce0ksSV97UmYim8AMI= - dependencies: - lodash._arraymap "^3.0.0" - lodash._basecallback "^3.0.0" - lodash._baseeach "^3.0.0" - lodash.isarray "^3.0.0" - lodash.keys "^3.0.0" - lodash.once@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= -lodash.pairs@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz" - integrity sha1-u+CNV4bu6qCaFckevw3LfSvjJqk= - dependencies: - lodash.keys "^3.0.0" - -lodash.pluck@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/lodash.pluck/-/lodash.pluck-3.1.2.tgz" - integrity sha1-s0fwN0wBafDusE1nLYnOyGMsIjE= - dependencies: - lodash._baseget "^3.0.0" - lodash._topath "^3.0.0" - lodash.isarray "^3.0.0" - lodash.map "^3.0.0" - -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.21: +lodash@^4.17.21: version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: chalk "^4.1.0" @@ -3712,7 +3454,7 @@ log-symbols@^4.0.0: log-update@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== dependencies: ansi-escapes "^4.3.0" @@ -3720,37 +3462,37 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -logform@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz" - integrity sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg== +logform@^2.3.2, logform@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.4.0.tgz#131651715a17d50f09c2a2c1a524ff1a4164bcfe" + integrity sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw== dependencies: - colors "^1.2.1" - fast-safe-stringify "^2.0.4" + "@colors/colors" "1.5.0" fecha "^4.2.0" ms "^2.1.1" + safe-stable-stringify "^2.3.1" triple-beam "^1.3.0" loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== lowercase-keys@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== lru-cache@^4.1.5: version "4.1.5" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== dependencies: pseudomap "^1.0.2" @@ -3758,69 +3500,62 @@ lru-cache@^4.1.5: lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" lru-queue@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= dependencies: es5-ext "~0.10.2" luxon@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/luxon/-/luxon-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-2.3.0.tgz#bf16a7e642513c2a20a6230a6a41b0ab446d0045" integrity sha512-gv6jZCV+gGIrVKhO90yrsn8qXPKD8HYZJtrUDSfEbow8Tkw84T9OnCyJhWvnJIaIF/tBuiAjZuQHUt1LddX2mg== make-dir@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" make-iterator@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== dependencies: kind-of "^6.0.2" -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" - resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= map-stream@0.0.7: version "0.0.7" - resolved "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.0.7.tgz#8a1f07896d82b10926bd3744a2420009f88974a8" integrity sha1-ih8HiW2CsQkmvTdEokIACfiJdKg= map-visit@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= dependencies: object-visit "^1.0.0" marked@^4.0.12: version "4.0.12" - resolved "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.12.tgz#2262a4e6fd1afd2f13557726238b69a48b982f7d" integrity sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ== matchdep@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" integrity sha1-xvNINKDY28OzfCfui7yyfHd1WC4= dependencies: findup-sync "^2.0.0" @@ -3830,7 +3565,7 @@ matchdep@^2.0.0: md5.js@^1.3.4: version "1.3.5" - resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" @@ -3839,26 +3574,17 @@ md5.js@^1.3.4: mdn-data@2.0.14: version "2.0.14" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== mdn-data@2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - memoizee@0.4.X: version "0.4.15" - resolved "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== dependencies: d "^1.0.1" @@ -3872,17 +3598,17 @@ memoizee@0.4.X: memorystream@^0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== dependencies: arr-diff "^4.0.0" @@ -3901,138 +3627,104 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: miller-rabin@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.48.0: - version "1.48.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz" - integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== +mime-db@1.51.0: + version "1.51.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" + integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.31" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz" - integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== + version "2.1.34" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" + integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== dependencies: - mime-db "1.48.0" + mime-db "1.51.0" -mimic-fn@^2.0.0, mimic-fn@^2.1.0: +mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@3.0.4, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== +minimatch@^3.0.4: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== mixin-deep@^1.2.0: version "1.3.2" - resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== dependencies: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - -mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@~0.5.1: +mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.5" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mocha@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz" - integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ== - dependencies: - browser-stdout "1.3.1" - commander "2.15.1" - debug "3.1.0" - diff "3.5.0" - escape-string-regexp "1.0.5" - glob "7.1.2" - growl "1.10.5" - he "1.1.1" - minimatch "3.0.4" - mkdirp "0.5.1" - supports-color "5.4.0" - mousetrap@^1.6.5: version "1.6.5" - resolved "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz" + resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.5.tgz#8a766d8c272b08393d5f56074e0b5ec183485bf9" integrity sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA== ms@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== ms@^2.1.1: version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -mustache@^3.0.0: - version "3.2.1" - resolved "https://registry.npmjs.org/mustache/-/mustache-3.2.1.tgz" - integrity sha512-RERvMFdLpaFfSRIEe632yDm5nsd0SDKn8hGmcUwswnyiE5mtdZLDybtHAz6hjJhawokF0hXvGLtx9mrQfm6FkA== - -mustache@^4.0.1: +mustache@^4.0.1, mustache@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== mute-stdout@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331" integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg== nan@^2.12.1: @@ -4041,13 +3733,13 @@ nan@^2.12.1: integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== nanoid@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz" - integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA== + version "3.3.1" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" + integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== nanomatch@^1.2.9: version "1.2.13" - resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== dependencies: arr-diff "^4.0.0" @@ -4064,27 +3756,29 @@ nanomatch@^1.2.9: next-tick@1, next-tick@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== next-tick@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= nice-try@^1.0.4: version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -node-fetch@2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== +node-fetch@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" node-libs-browser@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== dependencies: assert "^1.1.1" @@ -4112,13 +3806,13 @@ node-libs-browser@^2.2.1: vm-browserify "^1.0.1" node-releases@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" + integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== nodemon@^2.0.15: version "2.0.15" - resolved "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.15.tgz#504516ce3b43d9dc9a955ccd9ec57550a31a8d4e" integrity sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA== dependencies: chokidar "^3.5.2" @@ -4134,21 +3828,21 @@ nodemon@^2.0.15: nopt@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== dependencies: abbrev "1" nopt@~1.0.10: version "1.0.10" - resolved "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= dependencies: abbrev "1" normalize-package-data@^2.3.2: version "2.5.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: hosted-git-info "^2.1.4" @@ -4158,36 +3852,36 @@ normalize-package-data@^2.3.2: normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= dependencies: remove-trailing-separator "^1.0.1" normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-range@^0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= normalize-url@^4.1.0: version "4.5.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== now-and-later@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.1.tgz#8e579c8685764a7cc02cb680380e94f43ccb1f7c" integrity sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ== dependencies: once "^1.3.2" npm-run-all@^4.1.5: version "4.1.5" - resolved "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz" + resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== dependencies: ansi-styles "^3.2.1" @@ -4200,76 +3894,64 @@ npm-run-all@^4.1.5: shell-quote "^1.6.1" string.prototype.padend "^3.0.0" -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - npm-run-path@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" nth-check@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== dependencies: boolbase "~1.0.0" number-is-nan@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= oauth-sign@~0.9.0: version "0.9.0" - resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-assign@4.X, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= object-copy@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz" - integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== - object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.11.0" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz" - integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== + version "1.12.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" + integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object-visit@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= dependencies: isobject "^3.0.0" object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.2: version "4.1.2" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: call-bind "^1.0.0" @@ -4279,7 +3961,7 @@ object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.2: object.defaults@^1.0.0, object.defaults@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= dependencies: array-each "^1.0.1" @@ -4288,17 +3970,17 @@ object.defaults@^1.0.0, object.defaults@^1.1.0: isobject "^3.0.0" object.getownpropertydescriptors@^2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz" - integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== + version "2.1.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e" + integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" + es-abstract "^1.19.1" object.map@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= dependencies: for-own "^1.0.0" @@ -4306,52 +3988,52 @@ object.map@^1.0.0: object.pick@^1.2.0, object.pick@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= dependencies: isobject "^3.0.1" object.reduce@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad" integrity sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60= dependencies: for-own "^1.0.0" make-iterator "^1.0.0" object.values@^1.1.0: - version "1.1.4" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz" - integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== + version "1.1.5" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" + integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.2" + es-abstract "^1.19.1" once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" one-time@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== dependencies: fn.name "1.x.x" onetime@^5.1.0: version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" opentype.js@^1.3.4: version "1.3.4" - resolved "https://registry.npmjs.org/opentype.js/-/opentype.js-1.3.4.tgz" + resolved "https://registry.yarnpkg.com/opentype.js/-/opentype.js-1.3.4.tgz#1c0e72e46288473cc4a4c6a2dc60fd7fe6020d77" integrity sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw== dependencies: string.prototype.codepointat "^0.2.1" @@ -4359,86 +4041,62 @@ opentype.js@^1.3.4: ordered-read-streams@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= dependencies: readable-stream "^2.0.1" os-browserify@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= os-locale@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= dependencies: lcid "^1.0.0" -os-locale@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - ospath@^1.2.2: version "1.2.2" - resolved "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz" + resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= p-cancelable@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - -p-limit@^2.0.0: +p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: - p-limit "^2.0.0" + p-limit "^2.2.0" p-map@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" p-try@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== package-json@^6.3.0: version "6.5.0" - resolved "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== dependencies: got "^9.6.0" @@ -4448,12 +4106,12 @@ package-json@^6.3.0: pako@~1.0.2, pako@~1.0.5: version "1.0.11" - resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== parse-asn1@^5.0.0, parse-asn1@^5.1.5: version "5.1.6" - resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== dependencies: asn1.js "^5.2.0" @@ -4464,7 +4122,7 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: parse-filepath@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= dependencies: is-absolute "^1.0.0" @@ -4473,14 +4131,14 @@ parse-filepath@^1.0.1: parse-json@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= dependencies: error-ex "^1.2.0" parse-json@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= dependencies: error-ex "^1.3.1" @@ -4488,76 +4146,76 @@ parse-json@^4.0.0: parse-node-version@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== parse-passwd@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= pascalcase@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= path-browserify@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== path-dirname@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= path-exists@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= dependencies: pinkie-promise "^2.0.0" -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^2.0.0, path-key@^2.0.1: +path-key@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6: +path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-root-regex@^0.1.0: version "0.1.2" - resolved "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= path-root@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= dependencies: path-root-regex "^0.1.0" path-type@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= dependencies: graceful-fs "^4.1.2" @@ -4566,14 +4224,14 @@ path-type@^1.0.0: path-type@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== dependencies: pify "^3.0.0" pbkdf2@^3.0.3: version "3.1.2" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== dependencies: create-hash "^1.1.2" @@ -4584,17 +4242,17 @@ pbkdf2@^3.0.3: pend@~1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= performance-now@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= phantomjs-prebuilt@^2.1.16: version "2.1.16" - resolved "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz" + resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz#efd212a4a3966d3647684ea8ba788549be2aefef" integrity sha1-79ISpKOWbTZHaE6ouniFSb4q7+8= dependencies: es6-promise "^4.0.3" @@ -4607,46 +4265,51 @@ phantomjs-prebuilt@^2.1.16: request-progress "^2.0.1" which "^1.2.10" +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + picocolors@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== picomatch@^2.0.4, picomatch@^2.2.1: - version "2.3.0" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pidtree@^0.3.0: version "0.3.1" - resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== pify@^2.0.0, pify@^2.2.0: version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= pify@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= plugin-error@^1.0.0, plugin-error@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" integrity sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA== dependencies: ansi-colors "^1.0.1" @@ -4656,34 +4319,33 @@ plugin-error@^1.0.0, plugin-error@^1.0.1: posix-character-classes@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= postcss-clean@^1.2.2: version "1.2.2" - resolved "https://registry.npmjs.org/postcss-clean/-/postcss-clean-1.2.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-clean/-/postcss-clean-1.2.2.tgz#7b44303dcecbc2b29a70ed18d22af427203fa256" integrity sha512-DpuMWW19Dd2K9KY4wknMz3khq9q2yZYa2U37bnhzdtBdBv0ggIfUj5T2XD3ir6gKVlDkb5OtOqw1iQJWq6qvpw== dependencies: clean-css "^4.x" postcss "^6.x" postcss-load-config@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz" - integrity sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g== + version "3.1.3" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.3.tgz#21935b2c43b9a86e6581a576ca7ee1bde2bd1d23" + integrity sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw== dependencies: - import-cwd "^3.0.0" - lilconfig "^2.0.3" + lilconfig "^2.0.4" yaml "^1.10.2" postcss-value-parser@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^6.x: version "6.0.23" - resolved "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== dependencies: chalk "^2.4.1" @@ -4691,17 +4353,16 @@ postcss@^6.x: supports-color "^5.4.0" postcss@^7.0.16: - version "7.0.35" - resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz" - integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== + version "7.0.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== dependencies: - chalk "^2.4.2" + picocolors "^0.2.1" source-map "^0.6.1" - supports-color "^6.1.0" postcss@^8.4.6: version "8.4.6" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.6.tgz#c5ff3c3c457a23864f32cb45ac9b741498a09ae1" integrity sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA== dependencies: nanoid "^3.2.0" @@ -4710,88 +4371,88 @@ postcss@^8.4.6: prepend-http@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= prettier@^2.5.1: version "2.5.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== pretty-bytes@^5.6.0: version "5.6.0" - resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== pretty-hrtime@^1.0.0: version "1.0.3" - resolved "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= -prettysize@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/prettysize/-/prettysize-1.1.0.tgz" - integrity sha512-U5Noa+FYV1dGkICyLJz8IWlDUehPF4Bk9tZRO8YqPhLA9EoiHuFqtnpWY2mvMjHh5eOLo82HipeLn4RIiSsGqQ== +prettysize@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prettysize/-/prettysize-2.0.0.tgz#902c02480d865d9cc0813011c9feb4fa02ce6996" + integrity sha512-VVtxR7sOh0VsG8o06Ttq5TrI1aiZKmC+ClSn4eBPaNf4SHr5lzbYW+kYGX3HocBL/MfpVrRfFZ9V3vCbLaiplg== process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@^0.11.10: version "0.11.10" - resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= progress@^1.1.8: version "1.1.8" - resolved "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74= promise@^7.1.1: version "7.3.1" - resolved "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== dependencies: asap "~2.0.3" prop-types@^15.7.2: - version "15.7.2" - resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== dependencies: loose-envify "^1.4.0" object-assign "^4.1.1" - react-is "^16.8.1" + react-is "^16.13.1" proto-list@~1.2.1: version "1.2.4" - resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= proxy-from-env@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= pseudomap@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= psl@^1.1.28: version "1.8.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== pstree.remy@^1.1.8: version "1.1.8" - resolved "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== public-encrypt@^4.0.0: version "4.0.3" - resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== dependencies: bn.js "^4.1.0" @@ -4803,7 +4464,7 @@ public-encrypt@^4.0.0: pump@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== dependencies: end-of-stream "^1.1.0" @@ -4811,7 +4472,7 @@ pump@^2.0.0: pump@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" @@ -4819,7 +4480,7 @@ pump@^3.0.0: pumpify@^1.3.5: version "1.5.1" - resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== dependencies: duplexify "^3.6.0" @@ -4828,61 +4489,61 @@ pumpify@^1.3.5: punycode@1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= punycode@^1.2.4: version "1.4.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== pupa@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== dependencies: escape-goat "^2.0.0" q@^1.1.2: version "1.5.1" - resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= qs@~6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== querystring-es3@^0.2.0: version "0.2.1" - resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= querystring@0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" randomcolor@^0.6.2: version "0.6.2" - resolved "https://registry.npmjs.org/randomcolor/-/randomcolor-0.6.2.tgz" + resolved "https://registry.yarnpkg.com/randomcolor/-/randomcolor-0.6.2.tgz#7a57362ae1a1278439aeed2c15e5deb8ea33f56d" integrity sha512-Mn6TbyYpFgwFuQ8KJKqf3bqqY9O1y37/0jgSK/61PUxV4QfIMv0+K2ioq8DfOjkBslcjwSzRfIDEXfzA9aCx7A== randomfill@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== dependencies: randombytes "^2.0.5" @@ -4890,7 +4551,7 @@ randomfill@^1.0.3: rc@^1.2.8: version "1.2.8" - resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" @@ -4900,26 +4561,26 @@ rc@^1.2.8: react-dom@~17.0.2: version "17.0.2" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" scheduler "^0.20.2" -react-is@^16.8.1: +react-is@^16.13.1: version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== react-lifecycles-compat@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== react-virtualized@^9.22.3: version "9.22.3" - resolved "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.22.3.tgz" + resolved "https://registry.yarnpkg.com/react-virtualized/-/react-virtualized-9.22.3.tgz#f430f16beb0a42db420dbd4d340403c0de334421" integrity sha512-MKovKMxWTcwPSxE1kK1HcheQTWfuCxAuBoSTf2gwyMM21NdX/PXUhnoP8Uc5dRKd+nKm8v41R36OellhdCpkrw== dependencies: "@babel/runtime" "^7.7.2" @@ -4931,7 +4592,7 @@ react-virtualized@^9.22.3: react@~17.0.2: version "17.0.2" - resolved "https://registry.npmjs.org/react/-/react-17.0.2.tgz" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== dependencies: loose-envify "^1.1.0" @@ -4939,7 +4600,7 @@ react@~17.0.2: read-pkg-up@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= dependencies: find-up "^1.0.0" @@ -4947,7 +4608,7 @@ read-pkg-up@^1.0.1: read-pkg@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= dependencies: load-json-file "^1.0.0" @@ -4956,7 +4617,7 @@ read-pkg@^1.0.0: read-pkg@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= dependencies: load-json-file "^4.0.0" @@ -4965,16 +4626,16 @@ read-pkg@^3.0.0: "readable-stream@2 || 3", readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@^2.3.7, readable-stream@~2.3.6: +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" @@ -4987,7 +4648,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable readdirp@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== dependencies: graceful-fs "^4.1.11" @@ -4996,31 +4657,31 @@ readdirp@^2.2.1: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" readline-sync@^1.4.7: version "1.4.10" - resolved "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz" + resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b" integrity sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw== rechoir@^0.6.2: version "0.6.2" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= dependencies: resolve "^1.1.6" regenerator-runtime@^0.13.4: version "0.13.9" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== dependencies: extend-shallow "^3.0.2" @@ -5028,21 +4689,21 @@ regex-not@^1.0.0, regex-not@^1.0.2: registry-auth-token@^4.0.0: version "4.2.1" - resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== dependencies: rc "^1.2.8" registry-url@^5.0.0: version "5.1.0" - resolved "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== dependencies: rc "^1.2.8" remove-bom-buffer@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ== dependencies: is-buffer "^1.1.5" @@ -5050,7 +4711,7 @@ remove-bom-buffer@^3.0.0: remove-bom-stream@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" integrity sha1-BfGlk/FuQuH7kOv1nejlaVJflSM= dependencies: remove-bom-buffer "^3.0.0" @@ -5059,32 +4720,32 @@ remove-bom-stream@^1.2.0: remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= repeat-element@^1.1.2: version "1.1.4" - resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== repeat-string@^1.6.1: version "1.6.1" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= replace-ext@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== replace-ext@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-2.0.0.tgz#9471c213d22e1bcc26717cd6e50881d88f812b06" integrity sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug== replace-homedir@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-1.0.0.tgz#e87f6d513b928dde808260c12be7fec6ff6e798c" integrity sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw= dependencies: homedir-polyfill "^1.0.1" @@ -5093,21 +4754,21 @@ replace-homedir@^1.0.0: request-progress@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08" integrity sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg= dependencies: throttleit "^1.0.0" request-progress@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= dependencies: throttleit "^1.0.0" request@^2.81.0: version "2.88.2" - resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" @@ -5133,57 +4794,58 @@ request@^2.81.0: require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-main-filename@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= dependencies: expand-tilde "^2.0.0" global-modules "^1.0.0" -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - resolve-options@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" integrity sha1-MrueOcBtZzONyTeMDW1gdFZq0TE= dependencies: value-or-function "^3.0.0" resolve-url@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.4.0: - version "1.20.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" + is-core-module "^2.8.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" responselike@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= dependencies: lowercase-keys "^1.0.0" restore-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: onetime "^5.1.0" @@ -5191,68 +4853,66 @@ restore-cursor@^3.1.0: ret@~0.1.10: version "0.1.15" - resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== rfdc@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== rimraf@^3.0.0: version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" inherits "^2.0.1" -rxjs@^7.4.0: - version "7.4.0" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz" - integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== - dependencies: - tslib "~2.1.0" - -rxjs@~7.5.2: - version "7.5.2" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz" - integrity sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w== +rxjs@^7.5.1, rxjs@~7.5.2: + version "7.5.4" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.4.tgz#3d6bd407e6b7ce9a123e76b1e770dc5761aa368d" + integrity sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ== dependencies: tslib "^2.1.0" safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-regex@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= dependencies: ret "~0.1.10" +safe-stable-stringify@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73" + integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg== + "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sass@^1.49.7: version "1.49.7" - resolved "https://registry.npmjs.org/sass/-/sass-1.49.7.tgz" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.7.tgz#22a86a50552b9b11f71404dfad1b9ff44c6b0c49" integrity sha512-13dml55EMIR2rS4d/RDHHP0sXMY3+30e1TKsyXaSz3iLWVoDWEoboY8WzJd5JMnxrRHffKO3wq2mpJ0jxRJiEQ== dependencies: chokidar ">=3.0.0 <4.0.0" @@ -5261,12 +4921,12 @@ sass@^1.49.7: sax@^1.2.4, sax@~1.2.4: version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== scheduler@^0.20.2: version "0.20.2" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== dependencies: loose-envify "^1.1.0" @@ -5274,48 +4934,48 @@ scheduler@^0.20.2: semver-diff@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== dependencies: semver "^6.3.0" semver-greatest-satisfied-range@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" integrity sha1-E+jCZYq5aRywzXEJMkAoDTb3els= dependencies: sver-compat "^1.5.0" "semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== semver@^7.3.2, semver@^7.3.4: version "7.3.5" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" set-blocking@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= set-immediate-shim@~1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== dependencies: extend-shallow "^2.0.1" @@ -5325,12 +4985,12 @@ set-value@^2.0.0, set-value@^2.0.1: setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" @@ -5338,13 +4998,13 @@ sha.js@^2.4.0, sha.js@^2.4.8: shadow-cljs-jar@1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/shadow-cljs-jar/-/shadow-cljs-jar-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/shadow-cljs-jar/-/shadow-cljs-jar-1.3.2.tgz#97273afe1747b6a2311917c1c88d9e243c81957b" integrity sha512-XmeffAZHv8z7451kzeq9oKh8fh278Ak+UIOGGrapyqrFBB773xN8vMQ3O7J7TYLnb9BUwcqadKkmgaq7q6fhZg== -shadow-cljs@2.17.2: - version "2.17.2" - resolved "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.17.2.tgz" - integrity sha512-XE9jWWBlT80fosk6+6AADiQZ9q33zgovh+v6vmeBBsOtYGILgVAFYZZvOzoRY7oEXz12IUzMpKxbA7WFjj5I0w== +shadow-cljs@2.17.3: + version "2.17.3" + resolved "https://registry.yarnpkg.com/shadow-cljs/-/shadow-cljs-2.17.3.tgz#748e31f67cffdc401691c0cd1bf733a1da53ab5d" + integrity sha512-GxyczUuCtACq/uEOvdTc61wT/aDOZFy8G/AGc322uTX/oUiZaeTJrwpClXe+0+e7VKG9E9RCqP/cjuG3cAG0fw== dependencies: node-libs-browser "^2.2.1" readline-sync "^1.4.7" @@ -5355,80 +5015,36 @@ shadow-cljs@2.17.2: shebang-command@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= dependencies: shebang-regex "^1.0.0" shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shell-quote@^1.6.1: - version "1.7.2" - resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz" - integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== - -should-equal@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz" - integrity sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA== - dependencies: - should-type "^1.4.0" - -should-format@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz" - integrity sha1-m/yPdPo5IFxT04w01xcwPidxJPE= - dependencies: - should-type "^1.3.0" - should-type-adaptors "^1.0.1" - -should-type-adaptors@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz" - integrity sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA== - dependencies: - should-type "^1.3.0" - should-util "^1.0.0" - -should-type@^1.3.0, should-type@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz" - integrity sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM= - -should-util@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz" - integrity sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g== - -should@^13.2.3: - version "13.2.3" - resolved "https://registry.npmjs.org/should/-/should-13.2.3.tgz" - integrity sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ== - dependencies: - should-equal "^2.0.0" - should-format "^3.0.3" - should-type "^1.4.0" - should-type-adaptors "^1.0.1" - should-util "^1.0.0" + version "1.7.3" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" + integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== side-channel@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: call-bind "^1.0.0" @@ -5437,29 +5053,24 @@ side-channel@^1.0.4: sigmund@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= -signal-exit@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - signal-exit@^3.0.2: - version "3.0.5" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz" - integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== simple-swizzle@^0.2.2: version "0.2.2" - resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= dependencies: is-arrayish "^0.3.1" slice-ansi@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== dependencies: ansi-styles "^4.0.0" @@ -5468,7 +5079,7 @@ slice-ansi@^3.0.0: slice-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: ansi-styles "^4.0.0" @@ -5477,7 +5088,7 @@ slice-ansi@^4.0.0: snapdragon-node@^2.0.1: version "2.1.1" - resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== dependencies: define-property "^1.0.0" @@ -5486,14 +5097,14 @@ snapdragon-node@^2.0.1: snapdragon-util@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== dependencies: kind-of "^3.2.0" snapdragon@^0.8.1: version "0.8.2" - resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== dependencies: base "^0.11.1" @@ -5505,19 +5116,14 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -"source-map-js@>=0.6.2 <2.0.0": - version "1.0.1" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz" - integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== - -source-map-js@^1.0.2: +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== source-map-resolve@^0.5.0: version "0.5.3" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: atob "^2.1.2" @@ -5528,7 +5134,7 @@ source-map-resolve@^0.5.0: source-map-resolve@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== dependencies: atob "^2.1.2" @@ -5536,14 +5142,14 @@ source-map-resolve@^0.6.0: source-map-support@^0.4.15: version "0.4.18" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== dependencies: source-map "^0.5.6" source-map-support@^0.5.21: version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" @@ -5551,27 +5157,27 @@ source-map-support@^0.5.21: source-map-url@^0.4.0: version "0.4.1" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== source-map@^0.5.1, source-map@^0.5.6: version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== sparkles@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c" integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw== spdx-correct@^3.0.0: version "3.1.1" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== dependencies: spdx-expression-parse "^3.0.0" @@ -5579,38 +5185,38 @@ spdx-correct@^3.0.0: spdx-exceptions@^2.1.0: version "2.3.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.9" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz" - integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== + version "3.0.11" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" + integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== dependencies: extend-shallow "^3.0.0" sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sshpk@^1.14.1, sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -5624,17 +5230,17 @@ sshpk@^1.14.1, sshpk@^1.7.0: stable@^0.1.8: version "0.1.8" - resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== stack-trace@0.0.10, stack-trace@0.0.x: version "0.0.10" - resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= static-extend@^0.1.1: version "0.1.2" - resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= dependencies: define-property "^0.2.5" @@ -5642,7 +5248,7 @@ static-extend@^0.1.1: stream-browserify@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== dependencies: inherits "~2.0.1" @@ -5650,12 +5256,12 @@ stream-browserify@^2.0.1: stream-exhaust@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d" integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw== stream-http@^2.7.2: version "2.8.3" - resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== dependencies: builtin-status-codes "^3.0.0" @@ -5666,36 +5272,28 @@ stream-http@^2.7.2: stream-shift@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== stream-to-array@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/stream-to-array/-/stream-to-array-2.3.0.tgz#bbf6b39f5f43ec30bc71babcb37557acecf34353" integrity sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M= dependencies: any-promise "^1.1.0" string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2: version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -5704,12 +5302,12 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2 string.prototype.codepointat@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz#004ad44c8afc727527b108cd462b4d971cd469bc" integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg== string.prototype.padend@^3.0.0: version "3.1.3" - resolved "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz#997a6de12c92c7cb34dc8a201a6c53d9bd88a5f1" integrity sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg== dependencies: call-bind "^1.0.2" @@ -5718,7 +5316,7 @@ string.prototype.padend@^3.0.0: string.prototype.trimend@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== dependencies: call-bind "^1.0.2" @@ -5726,7 +5324,7 @@ string.prototype.trimend@^1.0.4: string.prototype.trimstart@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== dependencies: call-bind "^1.0.2" @@ -5734,151 +5332,119 @@ string.prototype.trimstart@^1.0.4: string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-ansi@^6.0.1: +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-bom-string@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= strip-bom@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= dependencies: is-utf8 "^0.2.0" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-json-comments@~2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -supports-color@5.4.0: - version "5.4.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz" - integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w== - dependencies: - has-flag "^3.0.0" - supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-color@^8.1.1: version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + sver-compat@^1.5.0: version "1.5.0" - resolved "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" integrity sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg= dependencies: es6-iterator "^2.0.1" es6-symbol "^3.1.1" svg-sprite@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/svg-sprite/-/svg-sprite-1.5.0.tgz" - integrity sha512-0mE5BLY3K8wg3+HrYfzpiKbIM44IGcg8uINED8ri22EdQbLvGecOHjRtkrNAlphbiU5kyGyqoBlIaukL45fs2Q== + version "1.5.4" + resolved "https://registry.yarnpkg.com/svg-sprite/-/svg-sprite-1.5.4.tgz#974fd4734ea00d9951ce335a453ab2b66551e2d1" + integrity sha512-3jeqAmQS4c4rAMzsQNBXo3+J/x65JIxaFl15wTyvrJdT/G0DzXd67oTMBxz5+lCb8ETsWjM6ZAyr/+R+BwXzag== dependencies: - async "^2.6.1" - css-selector-parser "^1.3.0" + "@xmldom/xmldom" "^0.7.5" + async "^3.2.3" + css-selector-parser "^1.4.1" cssmin "^0.4.3" - cssom "^0.3.4" - dateformat "^3.0.3" - glob "^7.1.3" - js-yaml "^3.12.0" - lodash "^4.17.11" - lodash.pluck "^3.1.2" - mkdirp "^0.5.1" - mocha "^5.2.0" - mustache "^3.0.0" + cssom "^0.5.0" + glob "^7.2.0" + js-yaml "^3.14.1" + lodash "^4.17.21" + mkdirp "^0.5.5" + mustache "^4.2.0" phantomjs-prebuilt "^2.1.16" - prettysize "^1.1.0" - should "^13.2.3" - svgo "^1.1.1" - vinyl "^2.2.0" - winston "^3.1.0" - xmldom "0.1.27" - xpath "^0.0.27" - yargs "^12.0.2" + prettysize "^2.0.0" + svgo "^1.3.2" + vinyl "^2.2.1" + winston "^3.5.1" + xpath "^0.0.32" + yargs "^15.4.1" -svgo@^1.1.1: +svgo@^1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== dependencies: chalk "^2.4.1" @@ -5897,24 +5463,24 @@ svgo@^1.1.1: tdigest@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.1.tgz#2e3cb2c39ea449e55d1e6cd91117accca4588021" integrity sha1-Ljyyw56kSeVdHmzZEReszKRYgCE= dependencies: bintrees "1.0.1" text-hex@1.0.x: version "1.0.0" - resolved "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== throttleit@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= through2-filter@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== dependencies: through2 "~2.0.0" @@ -5922,7 +5488,7 @@ through2-filter@^3.0.0: through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: version "2.0.5" - resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== dependencies: readable-stream "~2.3.6" @@ -5930,7 +5496,7 @@ through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: through2@^3.0.1: version "3.0.2" - resolved "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4" integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ== dependencies: inherits "^2.0.4" @@ -5938,24 +5504,24 @@ through2@^3.0.1: through@^2.3.8: version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= time-stamp@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= timers-browserify@^2.0.4: version "2.0.12" - resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== dependencies: setimmediate "^1.0.4" timers-ext@^0.1.7: version "0.1.7" - resolved "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== dependencies: es5-ext "~0.10.46" @@ -5963,19 +5529,19 @@ timers-ext@^0.1.7: tiny-inflate@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4" integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== tmp@~0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== dependencies: rimraf "^3.0.0" to-absolute-glob@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= dependencies: is-absolute "^1.0.0" @@ -5983,24 +5549,24 @@ to-absolute-glob@^2.0.0: to-arraybuffer@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= to-object-path@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= dependencies: kind-of "^3.0.2" to-readable-stream@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== to-regex-range@^2.1.0: version "2.1.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= dependencies: is-number "^3.0.0" @@ -6008,14 +5574,14 @@ to-regex-range@^2.1.0: to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== dependencies: define-property "^2.0.2" @@ -6025,108 +5591,108 @@ to-regex@^3.0.1, to-regex@^3.0.2: to-through@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" integrity sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY= dependencies: through2 "^2.0.3" touch@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== dependencies: nopt "~1.0.10" tough-cookie@~2.5.0: version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: psl "^1.1.28" punycode "^2.1.1" -triple-beam@^1.2.0, triple-beam@^1.3.0: +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + +triple-beam@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== tslib@^1.9.3: version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.1.0: version "2.3.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== -tslib@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== - tty-browserify@0.0.0: version "0.0.0" - resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== type@^1.0.1: version "1.2.0" - resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== -type@^2.0.0: - version "2.5.0" - resolved "https://registry.npmjs.org/type/-/type-2.5.0.tgz" - integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== +type@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.6.0.tgz#3ca6099af5981d36ca86b78442973694278a219f" + integrity sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ== typedarray-to-buffer@^3.1.5: version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= ua-parser-js@^0.7.18: - version "0.7.28" - resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz" - integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== + version "0.7.31" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6" + integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ== ua-parser-js@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.2.tgz#e2976c34dbfb30b15d2c300b2a53eac87c57a775" integrity sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg== unbox-primitive@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== dependencies: function-bind "^1.1.1" @@ -6136,22 +5702,22 @@ unbox-primitive@^1.0.1: unc-path-regex@^0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= undefsafe@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== undertaker-registry@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50" integrity sha1-XkvaMI5KiirlhPm5pDWaSZglzFA= undertaker@^1.2.1: version "1.3.0" - resolved "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.3.0.tgz#363a6e541f27954d5791d6fa3c1d321666f86d18" integrity sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg== dependencies: arr-flatten "^1.0.1" @@ -6167,7 +5733,7 @@ undertaker@^1.2.1: union-value@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== dependencies: arr-union "^3.1.0" @@ -6177,7 +5743,7 @@ union-value@^1.0.0: unique-stream@^2.0.2: version "2.3.1" - resolved "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A== dependencies: json-stable-stringify-without-jsonify "^1.0.1" @@ -6185,24 +5751,24 @@ unique-stream@^2.0.2: unique-string@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== dependencies: crypto-random-string "^2.0.0" universalify@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== unquote@~1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= unset-value@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= dependencies: has-value "^0.3.1" @@ -6210,17 +5776,17 @@ unset-value@^1.0.0: untildify@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== upath@^1.1.1: version "1.2.0" - resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== update-notifier@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== dependencies: boxen "^5.0.0" @@ -6240,26 +5806,26 @@ update-notifier@^5.1.0: uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" urix@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= url-parse-lax@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= dependencies: prepend-http "^2.0.0" url@^0.11.0: version "0.11.0" - resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= dependencies: punycode "1.3.2" @@ -6267,17 +5833,17 @@ url@^0.11.0: use@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util.promisify@~1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== dependencies: define-properties "^1.1.3" @@ -6287,38 +5853,38 @@ util.promisify@~1.0.0: util@0.10.3: version "0.10.3" - resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= dependencies: inherits "2.0.1" util@^0.11.0: version "0.11.1" - resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== dependencies: inherits "2.0.3" uuid@^3.3.2: version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== uuid@^8.3.2: version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== v8flags@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656" integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== dependencies: homedir-polyfill "^1.0.1" validate-npm-package-license@^3.0.1: version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" @@ -6326,12 +5892,12 @@ validate-npm-package-license@^3.0.1: value-or-function@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= verror@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= dependencies: assert-plus "^1.0.0" @@ -6340,7 +5906,7 @@ verror@1.10.0: vinyl-fs@^3.0.0: version "3.0.3" - resolved "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== dependencies: fs-mkdirp-stream "^1.0.0" @@ -6363,7 +5929,7 @@ vinyl-fs@^3.0.0: vinyl-sourcemap@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" integrity sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY= dependencies: append-buffer "^1.0.2" @@ -6376,14 +5942,14 @@ vinyl-sourcemap@^1.1.0: vinyl-sourcemaps-apply@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" integrity sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU= dependencies: source-map "^0.5.1" -vinyl@^2.0.0, vinyl@^2.2.0: +vinyl@^2.0.0, vinyl@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== dependencies: clone "^2.1.1" @@ -6395,12 +5961,25 @@ vinyl@^2.0.0, vinyl@^2.2.0: vm-browserify@^1.0.1: version "1.1.2" - resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + which-boxed-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -6411,61 +5990,63 @@ which-boxed-primitive@^1.0.2: which-module@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= which-module@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= which@^1.2.10, which@^1.2.14, which@^1.2.9, which@^1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" which@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" widest-line@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== dependencies: string-width "^4.0.0" -winston-transport@^4.4.0: - version "4.4.0" - resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz" - integrity sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw== +winston-transport@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" + integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== dependencies: - readable-stream "^2.3.7" - triple-beam "^1.2.0" + logform "^2.3.2" + readable-stream "^3.6.0" + triple-beam "^1.3.0" -winston@^3.1.0: - version "3.3.3" - resolved "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz" - integrity sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw== +winston@^3.5.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.6.0.tgz#be32587a099a292b88c49fac6fa529d478d93fb6" + integrity sha512-9j8T75p+bcN6D00sF/zjFVmPp+t8KMPB1MzbbzYjeN9VWxdsYnTB40TkbNUEXAmILEfChMvAMgidlX64OG3p6w== dependencies: "@dabh/diagnostics" "^2.0.2" - async "^3.1.0" + async "^3.2.3" is-stream "^2.0.0" - logform "^2.2.0" + logform "^2.4.0" one-time "^1.0.0" readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" stack-trace "0.0.x" triple-beam "^1.3.0" - winston-transport "^4.4.0" + winston-transport "^4.5.0" wrap-ansi@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= dependencies: string-width "^1.0.1" @@ -6473,7 +6054,7 @@ wrap-ansi@^2.0.0: wrap-ansi@^6.2.0: version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: ansi-styles "^4.0.0" @@ -6482,7 +6063,7 @@ wrap-ansi@^6.2.0: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -6491,12 +6072,12 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@^3.0.0: version "3.0.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== dependencies: imurmurhash "^0.1.4" @@ -6505,99 +6086,93 @@ write-file-atomic@^3.0.0: typedarray-to-buffer "^3.1.5" ws@^7.4.6: - version "7.5.0" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz" - integrity sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw== + version "7.5.7" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" + integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== xdg-basedir@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== -xmldom@0.1.27: - version "0.1.27" - resolved "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz" - integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk= - -xpath@^0.0.27: - version "0.0.27" - resolved "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz" - integrity sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ== +xpath@^0.0.32: + version "0.0.32" + resolved "https://registry.yarnpkg.com/xpath/-/xpath-0.0.32.tgz#1b73d3351af736e17ec078d6da4b8175405c48af" + integrity sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw== xregexp@^5.0.1: version "5.1.0" - resolved "https://registry.npmjs.org/xregexp/-/xregexp-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-5.1.0.tgz#c87e7ae5ffa5fdc520f898a467dcba02b0d391e9" integrity sha512-PynwUWtXnSZr8tpQlDPMZfPTyv78EYuA4oI959ukxcQ0a9O/lvndLVKy5wpImzzA26eMxpZmnAXJYiQA13AtWA== dependencies: "@babel/runtime-corejs3" "^7.14.9" xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^3.2.1: version "3.2.2" - resolved "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== -"y18n@^3.2.1 || ^4.0.0": +y18n@^4.0.0: version "4.0.3" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== yallist@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= yallist@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^1.10.2: version "1.10.2" - resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz" - integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" yargs-parser@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.1.tgz#7ede329c1d8cdbbe209bd25cdb990e9b1ebbb394" integrity sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA== dependencies: camelcase "^3.0.0" object.assign "^4.1.0" -yargs@^12.0.2: - version "12.0.5" - resolved "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz" - integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== +yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== dependencies: - cliui "^4.0.0" + cliui "^6.0.0" decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" require-directory "^2.1.1" - require-main-filename "^1.0.1" + require-main-filename "^2.0.0" set-blocking "^2.0.0" - string-width "^2.0.0" + string-width "^4.2.0" which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^11.1.1" + y18n "^4.0.0" + yargs-parser "^18.1.2" yargs@^7.1.0: version "7.1.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.2.tgz#63a0a5d42143879fdbb30370741374e0641d55db" integrity sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA== dependencies: camelcase "^3.0.0" @@ -6616,7 +6191,7 @@ yargs@^7.1.0: yauzl@^2.10.0: version "2.10.0" - resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= dependencies: buffer-crc32 "~0.2.3" From 96facc510064acb821a2ff2ac380b4fcaef6859f Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 15 Feb 2022 15:33:59 +0100 Subject: [PATCH 125/154] :recycle: Refactor invitation flow Enfoces security and make the flow more deterministic. --- backend/src/app/loggers/audit.clj | 101 +++++++++--------- backend/src/app/rpc.clj | 1 - backend/src/app/rpc/mutations/profile.clj | 75 ++++++------- backend/src/app/rpc/mutations/teams.clj | 13 ++- .../src/app/rpc/mutations/verify_token.clj | 68 +++--------- backend/src/app/tokens.clj | 3 +- .../src/app/main/ui/auth/verify_token.cljs | 12 ++- 7 files changed, 117 insertions(+), 156 deletions(-) diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj index 7432aa9f73..1c113bb14b 100644 --- a/backend/src/app/loggers/audit.clj +++ b/backend/src/app/loggers/audit.clj @@ -41,33 +41,26 @@ (defn clean-props [{:keys [profile-id] :as event}] - (letfn [(clean-common [props] - (-> props - (dissoc :session-id) - (dissoc :password) - (dissoc :old-password) - (dissoc :token))) + (let [invalid-keys #{:session-id + :password + :old-password + :token} + xform (comp + (remove (fn [kv] + (qualified-keyword? (first kv)))) + (remove (fn [kv] + (contains? invalid-keys (first kv)))) + (remove (fn [[k v]] + (and (= k :profile-id) + (= v profile-id)))) + (filter (fn [[_ v]] + (or (string? v) + (keyword? v) + (uuid? v) + (boolean? v) + (number? v)))))] - (clean-profile-id [props] - (cond-> props - (= profile-id (:profile-id props)) - (dissoc :profile-id))) - - (clean-complex-data [props] - (reduce-kv (fn [props k v] - (cond-> props - (or (string? v) - (uuid? v) - (boolean? v) - (number? v)) - (assoc k v) - - (keyword? v) - (assoc k (name v)))) - {} - props))] - - (update event :props #(-> % clean-common clean-profile-id clean-complex-data)))) + (update event :props #(into {} xform %)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; HTTP Handler @@ -82,11 +75,11 @@ (s/def ::timestamp dt/instant?) (s/def ::context (s/map-of ::us/keyword any?)) -(s/def ::event +(s/def ::frontend-event (s/keys :req-un [::type ::name ::props ::timestamp ::profile-id] :opt-un [::context])) -(s/def ::events (s/every ::event)) +(s/def ::frontend-events (s/every ::event)) (defmethod ig/init-key ::http-handler [_ {:keys [executor pool] :as cfg}] @@ -98,7 +91,7 @@ (when (contains? cf/flags :audit-log) (let [events (->> (:events params) (remove #(not= profile-id (:profile-id %))) - (us/conform ::events)) + (us/conform ::frontend-events)) ip-addr (parse-client-ip request) cfg (-> cfg (assoc :source "frontend") @@ -147,9 +140,14 @@ (defmethod ig/pre-init-spec ::collector [_] (s/keys :req-un [::db/pool ::wrk/executor])) -(def event-xform +(s/def ::ip-addr string?) +(s/def ::backend-event + (s/keys :req-un [::type ::name ::profile-id] + :opt-un [::ip-addr ::props])) + +(def ^:private backend-event-xform (comp - (filter :profile-id) + (filter #(us/valid? ::backend-event %)) (map clean-props))) (defmethod ig/init-key ::collector @@ -166,42 +164,41 @@ (constantly nil)) :else - (let [input (a/chan 512 event-xform) + (let [input (a/chan 512 backend-event-xform) buffer (aa/batch input {:max-batch-size 100 :max-batch-age (* 10 1000) ; 10s :init []})] - (l/info :hint "audit log collector initialized") (a/go-loop [] (when-let [[_type events] (a/ params - (dissoc :cmd) - (assoc :tracked-at (dt/now)))] - (case cmd - :stop (a/close! input) - :submit (when-not (a/offer! input params) - (l/warn :msg "activity channel is full")))))))) + (case cmd + :stop + (a/close! input) + :submit + (let [params (-> params + (dissoc :cmd) + (assoc :tracked-at (dt/now)))] + (when-not (a/offer! input params) + (l/warn :hint "activity channel is full")))))))) (defn- persist-events [{:keys [pool executor] :as cfg} events] (letfn [(event->row [event] - (when (:profile-id event) - [(uuid/next) - (:name event) - (:type event) - (:profile-id event) - (:tracked-at event) - (some-> (:ip-addr event) db/inet) - (db/tjson (:props event)) - "backend"]))] + [(uuid/next) + (:name event) + (:type event) + (:profile-id event) + (:tracked-at event) + (some-> (:ip-addr event) db/inet) + (db/tjson (:props event)) + "backend"])] (aa/with-thread executor (when (seq events) (db/with-atomic [conn pool] diff --git a/backend/src/app/rpc.clj b/backend/src/app/rpc.clj index 0f390bbcb9..ff346aece4 100644 --- a/backend/src/app/rpc.clj +++ b/backend/src/app/rpc.clj @@ -113,7 +113,6 @@ :profile-id profile-id :ip-addr (audit/parse-client-ip request) :props props))) - result)) mdata))) diff --git a/backend/src/app/rpc/mutations/profile.clj b/backend/src/app/rpc/mutations/profile.clj index d100f0ff8d..94732858f2 100644 --- a/backend/src/app/rpc/mutations/profile.clj +++ b/backend/src/app/rpc/mutations/profile.clj @@ -157,23 +157,22 @@ (check-profile-existence! conn params) - (let [is-active (or (:is-active params) - (contains? cf/flags :insecure-register)) - profile (->> (assoc params :is-active is-active) - (create-profile conn) - (create-profile-relations conn) - (decode-profile-row))] + (let [is-active (or (:is-active params) + (contains? cf/flags :insecure-register)) + profile (->> (assoc params :is-active is-active) + (create-profile conn) + (create-profile-relations conn) + (decode-profile-row)) + + invitation (when-let [token (:invitation-token params)] + (tokens :verify {:token token :iss :team-invitation}))] + (cond - ;; If invitation token comes in params, this is because the - ;; user comes from team-invitation process; in this case, - ;; regenerate token and send back to the user a new invitation - ;; token (and mark current session as logged). - (some? (:invitation-token params)) - (let [token (:invitation-token params) - claims (tokens :verify {:token token :iss :team-invitation}) - claims (assoc claims - :member-id (:id profile) - :member-email (:email profile)) + ;; If invitation token comes in params, this is because the user comes from team-invitation process; + ;; in this case, regenerate token and send back to the user a new invitation token (and mark current + ;; session as logged). This happens only if the invitation email matches with the register email. + (and (some? invitation) (= (:email profile) (:member-email invitation))) + (let [claims (assoc invitation :member-id (:id profile)) token (tokens :generate claims) resp {:invitation-token token}] (with-meta resp @@ -311,32 +310,26 @@ profile)] (db/with-atomic [conn pool] - (let [profile (->> (profile/retrieve-profile-data-by-email conn email) - (validate-profile) - (profile/strip-private-attrs) - (profile/populate-additional-data conn) - (decode-profile-row))] - (if-let [token (:invitation-token params)] - ;; If the request comes with an invitation token, this means - ;; that user wants to accept it with different user. A very - ;; strange case but still can happen. In this case, we - ;; proceed in the same way as in register: regenerate the - ;; invitation token and return it to the user for proper - ;; invitation acceptation. - (let [claims (tokens :verify {:token token :iss :team-invitation}) - claims (assoc claims - :member-id (:id profile) - :member-email (:email profile)) - token (tokens :generate claims)] - (with-meta {:invitation-token token} - {:transform-response ((:create session) (:id profile)) - ::audit/props (audit/profile->props profile) - ::audit/profile-id (:id profile)})) + (let [profile (->> (profile/retrieve-profile-data-by-email conn email) + (validate-profile) + (profile/strip-private-attrs) + (profile/populate-additional-data conn) + (decode-profile-row)) - (with-meta profile - {:transform-response ((:create session) (:id profile)) - ::audit/props (audit/profile->props profile) - ::audit/profile-id (:id profile)})))))) + invitation (when-let [token (:invitation-token params)] + (tokens :verify {:token token :iss :team-invitation})) + + ;; If invitation member-id does not matches the profile-id, we just proceed to ignore the + ;; invitation because invitations matches exactly; and user can't loging with other email and + ;; accept invitation with other email + response (if (and (some? invitation) (= (:id profile) (:member-id invitation))) + {:invitation-token (:invitation-token params)} + profile)] + + (with-meta response + {:transform-response ((:create session) (:id profile)) + ::audit/props (audit/profile->props profile) + ::audit/profile-id (:id profile)}))))) ;; --- MUTATION: Logout diff --git a/backend/src/app/rpc/mutations/teams.clj b/backend/src/app/rpc/mutations/teams.clj index e6cc7288b3..c54ae7e616 100644 --- a/backend/src/app/rpc/mutations/teams.clj +++ b/backend/src/app/rpc/mutations/teams.clj @@ -379,8 +379,7 @@ :code :member-is-muted :hint "looks like the profile has reported repeatedly as spam or has permanent bounces")) - ;; Secondly check if the invited member email is part of the - ;; global spam/bounce report. + ;; Secondly check if the invited member email is part of the global spam/bounce report. (when (eml/has-bounce-reports? conn email) (ex/raise :type :validation :code :email-has-permanent-bounces @@ -403,13 +402,21 @@ (s/and ::create-team (s/keys :req-un [::emails ::role]))) (sv/defmethod ::create-team-and-invite-members - [{:keys [pool] :as cfg} {:keys [profile-id emails role] :as params}] + [{:keys [pool audit] :as cfg} {:keys [profile-id emails role] :as params}] (db/with-atomic [conn pool] (let [team (create-team conn params) profile (db/get-by-id conn :profile profile-id)] ;; Create invitations for all provided emails. (doseq [email emails] + (audit :cmd :submit + :type "mutation" + :name "create-team-invitation" + :profile-id profile-id + :props {:email email + :role role + :profile-id profile-id}) + (create-team-invitation (assoc cfg :conn conn diff --git a/backend/src/app/rpc/mutations/verify_token.clj b/backend/src/app/rpc/mutations/verify_token.clj index 1065803165..0b1eb87d6c 100644 --- a/backend/src/app/rpc/mutations/verify_token.clj +++ b/backend/src/app/rpc/mutations/verify_token.clj @@ -118,77 +118,39 @@ (assoc member :is-active true))) (defmethod process-token :team-invitation - [{:keys [session] :as cfg} {:keys [profile-id token]} {:keys [member-id] :as claims}] + [cfg {:keys [profile-id token]} {:keys [member-id] :as claims}] (us/assert ::team-invitation-claims claims) (cond ;; This happens when token is filled with member-id and current - ;; user is already logged in with some account. - (and (uuid? profile-id) - (uuid? member-id)) + ;; user is already logged in with exactly invited account. + (and (uuid? profile-id) (uuid? member-id) (= member-id profile-id)) (let [profile (accept-invitation cfg claims)] - (if (= member-id profile-id) - ;; If the current session is already matches the invited - ;; member, then just return the token and leave the frontend - ;; app redirect to correct team. - (assoc claims :state :created) - - ;; If the session does not matches the invited member, replace - ;; the session with a new one matching the invited member. - ;; This technique should be considered secure because the - ;; user clicking the link he already has access to the email - ;; account. - (with-meta - (assoc claims :state :created) - {:transform-response ((:create session) member-id) - ::audit/name "accept-team-invitation" - ::audit/props (merge - (audit/profile->props profile) - {:team-id (:team-id claims) - :role (:role claims)}) - ::audit/profile-id profile-id}))) - - ;; This happens when member-id is not filled in the invitation but - ;; the user already has an account (probably with other mail) and - ;; is already logged-in. - (and (uuid? profile-id) - (nil? member-id)) - (let [profile (accept-invitation cfg (assoc claims :member-id profile-id))] (with-meta (assoc claims :state :created) {::audit/name "accept-team-invitation" - ::audit/props (merge - (audit/profile->props profile) - {:team-id (:team-id claims) - :role (:role claims)}) - ::audit/profile-id profile-id})) - - ;; This happens when member-id is filled but the accessing user is - ;; not logged-in. In this case we proceed to accept invitation and - ;; leave the user logged-in. - (and (nil? profile-id) - (uuid? member-id)) - (let [profile (accept-invitation cfg claims)] - (with-meta - (assoc claims :state :created) - {:transform-response ((:create session) member-id) - ::audit/name "accept-team-invitation" ::audit/props (merge (audit/profile->props profile) {:team-id (:team-id claims) :role (:role claims)}) ::audit/profile-id member-id})) - ;; In this case, we wait until frontend app redirect user to - ;; registration page, the user is correctly registered and the - ;; register mutation call us again with the same token to finally - ;; create the corresponding team-profile relation from the first - ;; condition of this if. + ;; This case means that invitation token does not match with + ;; registred user, so we need to indicate to frontend to redirect + ;; it to register page. + (nil? member-id) + {:invitation-token token + :iss :team-invitation + :redirect-to :auth-register + :state :pending} + + ;; In all other cases, just tell to fontend to redirect the user + ;; to the login page. :else {:invitation-token token :iss :team-invitation + :redirect-to :auth-login :state :pending})) - ;; --- Default (defmethod process-token :default diff --git a/backend/src/app/tokens.clj b/backend/src/app/tokens.clj index efff646d1e..532055c90e 100644 --- a/backend/src/app/tokens.clj +++ b/backend/src/app/tokens.clj @@ -7,6 +7,7 @@ (ns app.tokens "Tokens generation service." (:require + [app.common.data :as d] [app.common.exceptions :as ex] [app.common.spec :as us] [app.common.transit :as t] @@ -17,7 +18,7 @@ (defn- generate [cfg claims] - (let [payload (t/encode claims)] + (let [payload (-> claims d/without-nils t/encode)] (jwe/encrypt payload (::secret cfg) {:alg :a256kw :enc :a256gcm}))) (defn- verify diff --git a/frontend/src/app/main/ui/auth/verify_token.cljs b/frontend/src/app/main/ui/auth/verify_token.cljs index 119a4cd404..1f6a7c9aa2 100644 --- a/frontend/src/app/main/ui/auth/verify_token.cljs +++ b/frontend/src/app/main/ui/auth/verify_token.cljs @@ -41,13 +41,15 @@ [tdata] (case (:state tdata) :created - (st/emit! (dm/success (tr "auth.notifications.team-invitation-accepted")) - (du/fetch-profile) - (rt/nav :dashboard-projects {:team-id (:team-id tdata)})) + (st/emit! + (dm/success (tr "auth.notifications.team-invitation-accepted")) + (du/fetch-profile) + (rt/nav :dashboard-projects {:team-id (:team-id tdata)})) :pending - (let [token (:invitation-token tdata)] - (st/emit! (rt/nav :auth-register {} {:invitation-token token}))))) + (let [token (:invitation-token tdata) + route-id (:redirect-to tdata :auth-register)] + (st/emit! (rt/nav route-id {} {:invitation-token token}))))) (defmethod handle-token :default [_tdata] From aed6a8a5ff243cd0ef668d5b7438ba54e0241490 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 21 Feb 2022 16:56:41 +0100 Subject: [PATCH 126/154] :bug: Fix problem with double click --- CHANGES.md | 1 + .../main/ui/workspace/viewport/actions.cljs | 26 +++++++++++-------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 6b169a44f7..c9791e493e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -36,6 +36,7 @@ - Fixed handoff shadow type text [Taiga #2717](https://tree.taiga.io/project/penpot/issue/2717) - Fixed components get "dirty" marker when moved [Taiga #2764](https://tree.taiga.io/project/penpot/issue/2764) - Fixed cannot align objects in a group that is not part of a frame [Taiga #2762](https://tree.taiga.io/project/penpot/issue/2762) +- Fix problem with double click on exit path editing [Taiga #2906](https://tree.taiga.io/project/penpot/issue/2906) ### :arrow_up: Deps updates diff --git a/frontend/src/app/main/ui/workspace/viewport/actions.cljs b/frontend/src/app/main/ui/workspace/viewport/actions.cljs index c454d36981..0d6ca0ba8e 100644 --- a/frontend/src/app/main/ui/workspace/viewport/actions.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/actions.cljs @@ -186,19 +186,23 @@ (st/emit! (ms/->MouseEvent :double-click ctrl? shift? alt?)) - (when (and (not drawing-path?) shape) - (cond frame? - (st/emit! (dw/select-shape id shift?)) + ;; Emit asynchronously so the double click to exit shapes won't break + (timers/schedule + #(when (and (not drawing-path?) shape) + (cond + frame? + (st/emit! (dw/select-shape id shift?)) - (and group? (> (count @hover-ids) 1)) - (let [selected (get objects (second @hover-ids))] - (reset! hover selected) - (reset! hover-ids (into [] (rest @hover-ids))) - (st/emit! (dw/select-shape (:id selected)))) + (and group? (> (count @hover-ids) 1)) + (let [selected (get objects (second @hover-ids))] + (reset! hover selected) + (reset! hover-ids (into [] (rest @hover-ids))) - (not= id edition) - (st/emit! (dw/select-shape id) - (dw/start-editing-selected)))))))) + (st/emit! (dw/select-shape (:id selected)))) + + (not= id edition) + (st/emit! (dw/select-shape id) + (dw/start-editing-selected))))))))) (defn on-context-menu [hover hover-ids] From d24f16563fb99b515ba2d9f5101706e12af00913 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 21 Feb 2022 17:24:45 +0100 Subject: [PATCH 127/154] :sparkles: Use remove to delete guides --- frontend/src/app/main/data/workspace.cljs | 16 ++++++++--- .../src/app/main/data/workspace/guides.cljs | 27 +++++++++++++++++++ .../app/main/data/workspace/shortcuts.cljs | 5 ++-- .../app/main/ui/workspace/context_menu.cljs | 5 ++-- .../main/ui/workspace/viewport/guides.cljs | 4 ++- 5 files changed, 48 insertions(+), 9 deletions(-) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index ad4339d286..ebbb1c6927 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -747,14 +747,21 @@ ;; --- Delete Selected -(def delete-selected +(defn delete-selected "Deselect all and remove all selected shapes." + [] (ptk/reify ::delete-selected ptk/WatchEvent (watch [_ state _] - (let [selected (wsh/lookup-selected state)] - (rx/of (dwc/delete-shapes selected) - (dws/deselect-all)))))) + (let [selected (wsh/lookup-selected state) + hover-guides (get-in state [:workspace-guides :hover])] + (cond + (d/not-empty? selected) + (rx/of (dwc/delete-shapes selected) + (dws/deselect-all)) + + (d/not-empty? hover-guides) + (rx/of (dwgu/remove-guides hover-guides))))))) ;; --- Shape Vertical Ordering @@ -2068,4 +2075,5 @@ ;; Guides (d/export dwgu/update-guides) (d/export dwgu/remove-guide) +(d/export dwgu/set-hover-guide) diff --git a/frontend/src/app/main/data/workspace/guides.cljs b/frontend/src/app/main/data/workspace/guides.cljs index 473d03df0d..3fce84bf23 100644 --- a/frontend/src/app/main/data/workspace/guides.cljs +++ b/frontend/src/app/main/data/workspace/guides.cljs @@ -41,6 +41,12 @@ (defn remove-guide [guide] (us/verify ::csp/guide guide) (ptk/reify ::remove-guide + ptk/UpdateEvent + (update [_ state] + (let [sdisj (fnil disj #{})] + (-> state + (update-in [:workspace-guides :hover] sdisj (:id guide))))) + ptk/WatchEvent (watch [it state _] (let [page (wsh/lookup-page state) @@ -53,6 +59,16 @@ (pcb/set-page-option :guides new-guides))] (rx/of (dwc/commit-changes changes)))))) +(defn remove-guides + [ids] + (ptk/reify ::remove-guides + ptk/WatchEvent + (watch [_ state _] + (let [page (wsh/lookup-page state) + guides (get-in page [:options :guides] {}) + guides (-> (select-keys guides ids) (vals))] + (rx/from (->> guides (mapv #(remove-guide %)))))))) + (defn move-frame-guides "Move guides that are inside a frame when that frame is moved" [ids] @@ -86,3 +102,14 @@ (filter (comp frame-ids? :frame-id)) (map build-move-event) (rx/from)))))) + +(defn set-hover-guide + [id hover?] + (ptk/reify ::set-hover-guide + ptk/UpdateEvent + (update [_ state] + (let [sconj (fnil conj #{}) + sdisj (fnil disj #{})] + (if hover? + (update-in state [:workspace-guides :hover] sconj id) + (update-in state [:workspace-guides :hover] sdisj id)))))) diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs index ec42b727ae..64fcba6299 100644 --- a/frontend/src/app/main/data/workspace/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/shortcuts.cljs @@ -190,7 +190,8 @@ :cut {:tooltip (ds/meta "X") :command (ds/c-mod "x") - :fn #(st/emit! (dw/copy-selected) dw/delete-selected)} + :fn #(st/emit! (dw/copy-selected) + (dw/delete-selected))} :paste {:tooltip (ds/meta "V") :disabled true @@ -199,7 +200,7 @@ :delete {:tooltip (ds/supr) :command ["del" "backspace"] - :fn #(st/emit! dw/delete-selected)} + :fn #(st/emit! (dw/delete-selected))} :bring-forward {:tooltip (ds/meta ds/up-arrow) :command (ds/c-mod "up") diff --git a/frontend/src/app/main/ui/workspace/context_menu.cljs b/frontend/src/app/main/ui/workspace/context_menu.cljs index 5f07b7dc95..f020dc1e4a 100644 --- a/frontend/src/app/main/ui/workspace/context_menu.cljs +++ b/frontend/src/app/main/ui/workspace/context_menu.cljs @@ -103,7 +103,8 @@ (mf/defc context-menu-edit [] (let [do-copy (st/emitf (dw/copy-selected)) - do-cut (st/emitf (dw/copy-selected) dw/delete-selected) + do-cut (st/emitf (dw/copy-selected) + (dw/delete-selected)) do-paste (st/emitf dw/paste) do-duplicate (st/emitf (dw/duplicate-selected false))] [:* @@ -406,7 +407,7 @@ (mf/defc context-menu-delete [] - (let [do-delete (st/emitf dw/delete-selected)] + (let [do-delete (st/emitf (dw/delete-selected))] [:& menu-entry {:title (tr "workspace.shape.menu.delete") :shortcut (sc/get-tooltip :delete) :on-click do-delete}])) diff --git a/frontend/src/app/main/ui/workspace/viewport/guides.cljs b/frontend/src/app/main/ui/workspace/viewport/guides.cljs index 2a179628c7..6aebf468a6 100644 --- a/frontend/src/app/main/ui/workspace/viewport/guides.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/guides.cljs @@ -36,7 +36,7 @@ (defn use-guide "Hooks to support drag/drop for existing guides and new guides" - [on-guide-change get-hover-frame zoom {:keys [position axis frame-id]}] + [on-guide-change get-hover-frame zoom {:keys [id position axis frame-id]}] (let [dragging-ref (mf/use-ref false) start-ref (mf/use-ref nil) start-pos-ref (mf/use-ref nil) @@ -52,11 +52,13 @@ on-pointer-enter (mf/use-callback (fn [] + (st/emit! (dw/set-hover-guide id true)) (swap! state assoc :hover true))) on-pointer-leave (mf/use-callback (fn [] + (st/emit! (dw/set-hover-guide id false)) (swap! state assoc :hover false))) on-pointer-down From 7cf27ac86dd84d0ec3b244fd18a99a7c564c1be1 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 18 Feb 2022 18:01:21 +0100 Subject: [PATCH 128/154] :recycle: Refactor general resource and concurrency model on backend --- backend/src/app/config.clj | 20 +- backend/src/app/db.clj | 80 ++--- backend/src/app/http.clj | 58 ++-- backend/src/app/http/assets.clj | 62 ++-- backend/src/app/http/debug.clj | 31 +- backend/src/app/http/doc.clj | 11 +- backend/src/app/http/middleware.clj | 215 ++++++------- backend/src/app/http/oauth.clj | 68 ++-- backend/src/app/http/session.clj | 21 +- backend/src/app/http/websocket.clj | 47 ++- backend/src/app/main.clj | 84 +++-- backend/src/app/metrics.clj | 296 +++++++----------- backend/src/app/msgbus.clj | 26 +- backend/src/app/rpc.clj | 219 ++++++++----- backend/src/app/rpc/mutations/comments.clj | 5 +- backend/src/app/rpc/mutations/files.clj | 11 +- backend/src/app/rpc/mutations/ldap.clj | 2 +- backend/src/app/rpc/mutations/media.clj | 7 + backend/src/app/rpc/mutations/profile.clj | 32 +- backend/src/app/rpc/mutations/teams.clj | 2 +- .../src/app/rpc/mutations/verify_token.clj | 12 +- backend/src/app/rpc/queries/profile.clj | 3 +- backend/src/app/rpc/retry.clj | 52 +++ backend/src/app/rpc/rlimit.clj | 67 ++++ backend/src/app/util/async.clj | 8 +- backend/src/app/util/retry.clj | 43 --- backend/src/app/util/rlimit.clj | 36 --- backend/src/app/util/websocket.clj | 17 +- backend/src/app/worker.clj | 148 ++++----- backend/test/app/test_helpers.clj | 2 +- common/deps.edn | 2 +- common/src/app/common/data.cljc | 27 +- 32 files changed, 917 insertions(+), 797 deletions(-) create mode 100644 backend/src/app/rpc/retry.clj create mode 100644 backend/src/app/rpc/rlimit.clj delete mode 100644 backend/src/app/util/retry.clj delete mode 100644 backend/src/app/util/rlimit.clj diff --git a/backend/src/app/config.clj b/backend/src/app/config.clj index 7083b490eb..c0aa7ddc9d 100644 --- a/backend/src/app/config.clj +++ b/backend/src/app/config.clj @@ -41,9 +41,7 @@ data)) (def defaults - {:http-server-port 6060 - :http-server-host "0.0.0.0" - :host "devenv" + {:host "devenv" :tenant "dev" :database-uri "postgresql://postgres/penpot" :database-username "penpot" @@ -106,6 +104,10 @@ (s/def ::file-change-snapshot-every ::us/integer) (s/def ::file-change-snapshot-timeout ::dt/duration) +(s/def ::default-executor-parallelism ::us/integer) +(s/def ::blocking-executor-parallelism ::us/integer) +(s/def ::worker-executor-parallelism ::us/integer) + (s/def ::secret-key ::us/string) (s/def ::allow-demo-users ::us/boolean) (s/def ::assets-path ::us/string) @@ -114,6 +116,9 @@ (s/def ::database-uri ::us/string) (s/def ::database-username (s/nilable ::us/string)) (s/def ::database-readonly ::us/boolean) +(s/def ::database-min-pool-size ::us/integer) +(s/def ::database-max-pool-size ::us/integer) + (s/def ::default-blob-version ::us/integer) (s/def ::error-report-webhook ::us/string) (s/def ::user-feedback-destination ::us/string) @@ -136,6 +141,8 @@ (s/def ::host ::us/string) (s/def ::http-server-port ::us/integer) (s/def ::http-server-host ::us/string) +(s/def ::http-server-min-threads ::us/integer) +(s/def ::http-server-max-threads ::us/integer) (s/def ::http-session-idle-max-age ::dt/duration) (s/def ::http-session-updater-batch-max-age ::dt/duration) (s/def ::http-session-updater-batch-max-size ::us/integer) @@ -207,8 +214,13 @@ ::database-uri ::database-username ::database-readonly + ::database-min-pool-size + ::database-max-pool-size ::default-blob-version ::error-report-webhook + ::default-executor-parallelism + ::blocking-executor-parallelism + ::worker-executor-parallelism ::file-change-snapshot-every ::file-change-snapshot-timeout ::user-feedback-destination @@ -231,6 +243,8 @@ ::host ::http-server-host ::http-server-port + ::http-server-max-threads + ::http-server-min-threads ::http-session-idle-max-age ::http-session-updater-batch-max-age ::http-session-updater-batch-max-size diff --git a/backend/src/app/db.clj b/backend/src/app/db.clj index 479a8fdbc3..a45fcd90f4 100644 --- a/backend/src/app/db.clj +++ b/backend/src/app/db.clj @@ -47,13 +47,12 @@ ;; Initialization ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(declare instrument-jdbc!) (declare apply-migrations!) (s/def ::connection-timeout ::us/integer) -(s/def ::max-pool-size ::us/integer) +(s/def ::max-size ::us/integer) +(s/def ::min-size ::us/integer) (s/def ::migrations map?) -(s/def ::min-pool-size ::us/integer) (s/def ::name keyword?) (s/def ::password ::us/string) (s/def ::read-only ::us/boolean) @@ -62,19 +61,39 @@ (s/def ::validation-timeout ::us/integer) (defmethod ig/pre-init-spec ::pool [_] - (s/keys :req-un [::uri ::name ::username ::password] - :opt-un [::min-pool-size - ::max-pool-size + (s/keys :req-un [::uri ::name + ::min-size + ::max-size ::connection-timeout - ::validation-timeout - ::migrations + ::validation-timeout] + :opt-un [::migrations + ::username + ::password ::mtx/metrics ::read-only])) +(defmethod ig/prep-key ::pool + [_ cfg] + (merge {:name :main + :min-size 0 + :max-size 30 + :connection-timeout 10000 + :validation-timeout 10000 + :idle-timeout 120000 ; 2min + :max-lifetime 1800000 ; 30m + :read-only false} + (d/without-nils cfg))) + (defmethod ig/init-key ::pool - [_ {:keys [migrations metrics name read-only] :as cfg}] - (l/info :action "initialize connection pool" :name (d/name name) :uri (:uri cfg)) - (some-> metrics :registry instrument-jdbc!) + [_ {:keys [migrations name read-only] :as cfg}] + (l/info :hint "initialize connection pool" + :name (d/name name) + :uri (:uri cfg) + :read-only read-only + :with-credentials (and (contains? cfg :username) + (contains? cfg :password)) + :min-size (:min-size cfg) + :max-size (:max-size cfg)) (let [pool (create-pool cfg)] (when-not read-only @@ -85,16 +104,6 @@ [_ pool] (.close ^HikariDataSource pool)) -(defn- instrument-jdbc! - [registry] - (mtx/instrument-vars! - [#'next.jdbc/execute-one! - #'next.jdbc/execute!] - {:registry registry - :type :counter - :name "database_query_total" - :help "An absolute counter of database queries."})) - (defn- apply-migrations! [pool migrations] (with-open [conn ^AutoCloseable (open pool)] @@ -111,22 +120,19 @@ "SET idle_in_transaction_session_timeout = 300000;")) (defn- create-datasource-config - [{:keys [metrics read-only] :or {read-only false} :as cfg}] - (let [dburi (:uri cfg) - username (:username cfg) - password (:password cfg) - config (HikariConfig.)] + [{:keys [metrics uri] :as cfg}] + (let [config (HikariConfig.)] (doto config - (.setJdbcUrl (str "jdbc:" dburi)) - (.setPoolName (d/name (:name cfg))) + (.setJdbcUrl (str "jdbc:" uri)) + (.setPoolName (d/name (:name cfg))) (.setAutoCommit true) - (.setReadOnly read-only) - (.setConnectionTimeout (:connection-timeout cfg 10000)) ;; 10seg - (.setValidationTimeout (:validation-timeout cfg 10000)) ;; 10seg - (.setIdleTimeout 120000) ;; 2min - (.setMaxLifetime 1800000) ;; 30min - (.setMinimumIdle (:min-pool-size cfg 0)) - (.setMaximumPoolSize (:max-pool-size cfg 50)) + (.setReadOnly (:read-only cfg)) + (.setConnectionTimeout (:connection-timeout cfg)) + (.setValidationTimeout (:validation-timeout cfg)) + (.setIdleTimeout (:idle-timeout cfg)) + (.setMaxLifetime (:max-lifetime cfg)) + (.setMinimumIdle (:min-size cfg)) + (.setMaximumPoolSize (:max-size cfg)) (.setConnectionInitSql initsql) (.setInitializationFailTimeout -1)) @@ -136,8 +142,8 @@ (PrometheusMetricsTrackerFactory.) (.setMetricsTrackerFactory config))) - (when username (.setUsername config username)) - (when password (.setPassword config password)) + (some->> ^String (:username cfg) (.setUsername config)) + (some->> ^String (:password cfg) (.setPassword config)) config)) diff --git a/backend/src/app/http.clj b/backend/src/app/http.clj index 594916a06f..b49d8bf150 100644 --- a/backend/src/app/http.clj +++ b/backend/src/app/http.clj @@ -10,6 +10,7 @@ [app.common.exceptions :as ex] [app.common.logging :as l] [app.common.spec :as us] + [app.config :as cf] [app.http.doc :as doc] [app.http.errors :as errors] [app.http.middleware :as middleware] @@ -24,19 +25,30 @@ (declare wrap-router) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; HTTP SERVER +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + (s/def ::handler fn?) (s/def ::router some?) (s/def ::port ::us/integer) (s/def ::host ::us/string) (s/def ::name ::us/string) - -(defmethod ig/pre-init-spec ::server [_] - (s/keys :req-un [::port] - :opt-un [::name ::mtx/metrics ::router ::handler ::host])) +(s/def ::max-threads ::cf/http-server-max-threads) +(s/def ::min-threads ::cf/http-server-min-threads) (defmethod ig/prep-key ::server [_ cfg] - (merge {:name "http"} (d/without-nils cfg))) + (merge {:name "http" + :min-threads 4 + :max-threads 60 + :port 6060 + :host "0.0.0.0"} + (d/without-nils cfg))) + +(defmethod ig/pre-init-spec ::server [_] + (s/keys :req-un [::port ::host ::name ::min-threads ::max-threads] + :opt-un [::mtx/metrics ::router ::handler])) (defn- instrument-metrics [^Server server metrics] @@ -48,15 +60,22 @@ (defmethod ig/init-key ::server [_ {:keys [handler router port name metrics host] :as opts}] - (l/info :msg "starting http server" :port port :host host :name name) - (let [options {:http/port port :http/host host} + (l/info :hint "starting http server" + :port port :host host :name name + :min-threads (:min-threads opts) + :max-threads (:max-threads opts)) + (let [options {:http/port port + :http/host host + :thread-pool/max-threads (:max-threads opts) + :thread-pool/min-threads (:min-threads opts) + :ring/async true} handler (cond (fn? handler) handler (some? router) (wrap-router router) :else (ex/raise :type :internal :code :invalid-argument :hint "Missing `handler` or `router` option.")) - server (-> (yt/server handler options) + server (-> (yt/server handler (d/without-nils options)) (cond-> metrics (instrument-metrics metrics)))] (assoc opts :server (yt/start! server)))) @@ -70,20 +89,20 @@ (let [default (rr/routes (rr/create-resource-handler {:path "/"}) (rr/create-default-handler)) - options {:middleware [middleware/server-timing]} + options {:middleware [middleware/wrap-server-timing] + :inject-match? false + :inject-router? false} handler (rr/ring-handler router default options)] - (fn [request] - (try - (handler request) - (catch Throwable e - (l/error :hint "unexpected error processing request" - ::l/context (errors/get-error-context request e) - :query-string (:query-string request) - :cause e) - {:status 500 :body "internal server error"}))))) + (fn [request respond _] + (handler request respond (fn [cause] + (l/error :hint "unexpected error processing request" + ::l/context (errors/get-error-context request cause) + :query-string (:query-string request) + :cause cause) + (respond {:status 500 :body "internal server error"})))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Http Router +;; HTTP ROUTER ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (s/def ::rpc map?) @@ -145,7 +164,6 @@ [middleware/multipart-params] [middleware/keyword-params] [middleware/format-response-body] - [middleware/etag] [middleware/parse-request-body] [middleware/errors errors/handle] [middleware/cookies]]} diff --git a/backend/src/app/http/assets.clj b/backend/src/app/http/assets.clj index 550bfcdfbb..439b9f32e6 100644 --- a/backend/src/app/http/assets.clj +++ b/backend/src/app/http/assets.clj @@ -13,9 +13,12 @@ [app.db :as db] [app.metrics :as mtx] [app.storage :as sto] + [app.util.async :as async] [app.util.time :as dt] + [app.worker :as wrk] [clojure.spec.alpha :as s] - [integrant.core :as ig])) + [integrant.core :as ig] + [promesa.core :as p])) (def ^:private cache-max-age (dt/duration {:hours 24})) @@ -69,29 +72,38 @@ :body ""})))) (defn- generic-handler - [{:keys [storage] :as cfg} _request id] - (let [obj (sto/get-object storage id)] - (if obj - (serve-object cfg obj) - {:status 404 :body ""}))) + [{:keys [storage executor] :as cfg} request kf] + (async/with-dispatch executor + (let [id (get-in request [:path-params :id]) + mobj (get-file-media-object storage id) + obj (sto/get-object storage (kf mobj))] + (if obj + (serve-object cfg obj) + {:status 404 :body ""})))) (defn objects-handler - [cfg request] - (let [id (get-in request [:path-params :id])] - (generic-handler cfg request (coerce-id id)))) + [{:keys [storage executor] :as cfg} request respond raise] + (-> (async/with-dispatch executor + (let [id (get-in request [:path-params :id]) + id (coerce-id id) + obj (sto/get-object storage id)] + (if obj + (serve-object cfg obj) + {:status 404 :body ""}))) + (p/then respond) + (p/catch raise))) (defn file-objects-handler - [{:keys [storage] :as cfg} request] - (let [id (get-in request [:path-params :id]) - mobj (get-file-media-object storage id)] - (generic-handler cfg request (:media-id mobj)))) + [cfg request respond raise] + (-> (generic-handler cfg request :media-id) + (p/then respond) + (p/catch raise))) (defn file-thumbnails-handler - [{:keys [storage] :as cfg} request] - (let [id (get-in request [:path-params :id]) - mobj (get-file-media-object storage id)] - (generic-handler cfg request (or (:thumbnail-id mobj) (:media-id mobj))))) - + [cfg request respond raise] + (-> (generic-handler cfg request #(or (:thumbnail-id %) (:media-id %))) + (p/then respond) + (p/catch raise))) ;; --- Initialization @@ -101,10 +113,16 @@ (s/def ::signature-max-age ::dt/duration) (defmethod ig/pre-init-spec ::handlers [_] - (s/keys :req-un [::storage ::mtx/metrics ::assets-path ::cache-max-age ::signature-max-age])) + (s/keys :req-un [::storage + ::wrk/executor + ::mtx/metrics + ::assets-path + ::cache-max-age + ::signature-max-age])) (defmethod ig/init-key ::handlers [_ cfg] - {:objects-handler #(objects-handler cfg %) - :file-objects-handler #(file-objects-handler cfg %) - :file-thumbnails-handler #(file-thumbnails-handler cfg %)}) + {:objects-handler (partial objects-handler cfg) + :file-objects-handler (partial file-objects-handler cfg) + :file-thumbnails-handler (partial file-thumbnails-handler cfg)}) + diff --git a/backend/src/app/http/debug.clj b/backend/src/app/http/debug.clj index e310406188..16190e7061 100644 --- a/backend/src/app/http/debug.clj +++ b/backend/src/app/http/debug.clj @@ -14,14 +14,18 @@ [app.db :as db] [app.rpc.mutations.files :as m.files] [app.rpc.queries.profile :as profile] + [app.util.async :as async] [app.util.blob :as blob] [app.util.template :as tmpl] [app.util.time :as dt] + [app.worker :as wrk] [clojure.java.io :as io] + [clojure.spec.alpha :as s] [cuerdas.core :as str] [datoteka.core :as fs] [fipp.edn :as fpp] - [integrant.core :as ig])) + [integrant.core :as ig] + [promesa.core :as p])) ;; (selmer.parser/cache-off!) @@ -201,12 +205,23 @@ (db/exec-one! conn ["select count(*) as count from server_prop;"]) {:status 200 :body "Ok"})) +(defn- wrap-async + [{:keys [executor] :as cfg} f] + (fn [request respond raise] + (-> (async/with-dispatch executor + (f cfg request)) + (p/then respond) + (p/catch raise)))) + +(defmethod ig/pre-init-spec ::handlers [_] + (s/keys :req-un [::db/pool ::wrk/executor])) + (defmethod ig/init-key ::handlers [_ cfg] - {:index (partial index cfg) - :health-check (partial health-check cfg) - :retrieve-file-data (partial retrieve-file-data cfg) - :retrieve-file-changes (partial retrieve-file-changes cfg) - :retrieve-error (partial retrieve-error cfg) - :retrieve-error-list (partial retrieve-error-list cfg) - :upload-file-data (partial upload-file-data cfg)}) + {:index (wrap-async cfg index) + :health-check (wrap-async cfg health-check) + :retrieve-file-data (wrap-async cfg retrieve-file-data) + :retrieve-file-changes (wrap-async cfg retrieve-file-changes) + :retrieve-error (wrap-async cfg retrieve-error) + :retrieve-error-list (wrap-async cfg retrieve-error-list) + :upload-file-data (wrap-async cfg upload-file-data)}) diff --git a/backend/src/app/http/doc.clj b/backend/src/app/http/doc.clj index 29796a1170..07f63bb044 100644 --- a/backend/src/app/http/doc.clj +++ b/backend/src/app/http/doc.clj @@ -46,8 +46,9 @@ [rpc] (let [context (prepare-context rpc)] (if (contains? cf/flags :backend-api-doc) - (fn [_] - {:status 200 - :body (-> (io/resource "api-doc.tmpl") - (tmpl/render context))}) - (constantly {:status 404 :body ""})))) + (fn [_ respond _] + (respond {:status 200 + :body (-> (io/resource "api-doc.tmpl") + (tmpl/render context))})) + (fn [_ respond _] + (respond {:status 404 :body ""}))))) diff --git a/backend/src/app/http/middleware.clj b/backend/src/app/http/middleware.clj index 153ddc7277..c84413e301 100644 --- a/backend/src/app/http/middleware.clj +++ b/backend/src/app/http/middleware.clj @@ -10,8 +10,6 @@ [app.common.transit :as t] [app.config :as cf] [app.util.json :as json] - [buddy.core.codecs :as bc] - [buddy.core.hash :as bh] [ring.core.protocols :as rp] [ring.middleware.cookies :refer [wrap-cookies]] [ring.middleware.keyword-params :refer [wrap-keyword-params]] @@ -21,13 +19,15 @@ (defn wrap-server-timing [handler] - (let [seconds-from #(float (/ (- (System/nanoTime) %) 1000000000))] - (fn [request] - (let [start (System/nanoTime) - response (handler request)] - (update response :headers - (fn [headers] - (assoc headers "Server-Timing" (str "total;dur=" (seconds-from start))))))))) + (letfn [(get-age [start] + (float (/ (- (System/nanoTime) start) 1000000000))) + + (update-headers [headers start] + (assoc headers "Server-Timing" (str "total;dur=" (get-age start))))] + + (fn [request respond raise] + (let [start (System/nanoTime)] + (handler request #(respond (update % :headers update-headers start)) raise))))) (defn wrap-parse-request-body [handler] @@ -36,32 +36,40 @@ (t/read! reader))) (parse-json [body] - (json/read body))] - (fn [{:keys [headers body] :as request}] + (json/read body)) + + (handle-request [{:keys [headers body] :as request}] + (let [ctype (get headers "content-type")] + (case ctype + "application/transit+json" + (let [params (parse-transit body)] + (-> request + (assoc :body-params params) + (update :params merge params))) + + "application/json" + (let [params (parse-json body)] + (-> request + (assoc :body-params params) + (update :params merge params))) + + request))) + + (handle-exception [cause] + (let [data {:type :validation + :code :unable-to-parse-request-body + :hint "malformed params"}] + (l/error :hint (ex-message cause) :cause cause) + {:status 400 + :headers {"content-type" "application/transit+json"} + :body (t/encode-str data {:type :json-verbose})}))] + + (fn [request respond raise] (try - (let [ctype (get headers "content-type")] - (handler (case ctype - "application/transit+json" - (let [params (parse-transit body)] - (-> request - (assoc :body-params params) - (update :params merge params))) - - "application/json" - (let [params (parse-json body)] - (-> request - (assoc :body-params params) - (update :params merge params))) - - request))) - (catch Exception e - (let [data {:type :validation - :code :unable-to-parse-request-body - :hint "malformed params"}] - (l/error :hint (ex-message e) :cause e) - {:status 400 - :headers {"content-type" "application/transit+json"} - :body (t/encode-str data {:type :json-verbose})})))))) + (let [request (handle-request request)] + (handler request respond raise)) + (catch Exception cause + (respond (handle-exception cause))))))) (def parse-request-body {:name ::parse-request-body @@ -81,48 +89,50 @@ (def ^:const buffer-size (:http/output-buffer-size yt/base-defaults)) -(defn- transit-streamable-body - [data opts] - (reify rp/StreamableResponseBody - (write-body-to-stream [_ _ output-stream] - ;; Use the same buffer as jetty output buffer size - (try - (with-open [bos (buffered-output-stream output-stream buffer-size)] - (let [tw (t/writer bos opts)] - (t/write! tw data))) - (catch org.eclipse.jetty.io.EofException _cause - ;; Do nothing, EOF means client closes connection abruptly - nil) - (catch Throwable cause - (l/warn :hint "unexpected error on encoding response" - :cause cause)))))) - -(defn- impl-format-response-body - [response {:keys [query-params] :as request}] - (let [body (:body response) - opts {:type (if (contains? query-params "transit_verbose") :json-verbose :json)}] - - (cond - (:ws response) - response - - (coll? body) - (-> response - (update :headers assoc "content-type" "application/transit+json") - (assoc :body (transit-streamable-body body opts))) - - (nil? body) - (assoc response :status 204 :body "") - - :else - response))) - -(defn- wrap-format-response-body +(defn wrap-format-response-body [handler] - (fn [request] - (let [response (handler request)] - (cond-> response - (map? response) (impl-format-response-body request))))) + (letfn [(transit-streamable-body [data opts] + (reify rp/StreamableResponseBody + (write-body-to-stream [_ _ output-stream] + ;; Use the same buffer as jetty output buffer size + (try + (with-open [bos (buffered-output-stream output-stream buffer-size)] + (let [tw (t/writer bos opts)] + (t/write! tw data))) + (catch org.eclipse.jetty.io.EofException _cause + ;; Do nothing, EOF means client closes connection abruptly + nil) + (catch Throwable cause + (l/warn :hint "unexpected error on encoding response" + :cause cause)))))) + + (impl-format-response-body [response {:keys [query-params] :as request}] + (let [body (:body response) + opts {:type (if (contains? query-params "transit_verbose") :json-verbose :json)}] + (cond + (:ws response) + response + + (coll? body) + (-> response + (update :headers assoc "content-type" "application/transit+json") + (assoc :body (transit-streamable-body body opts))) + + (nil? body) + (assoc response :status 204 :body "") + + :else + response))) + + (handle-response [response request] + (cond-> response + (map? response) (impl-format-response-body request)))] + + (fn [request respond raise] + (handler request + (fn [response] + (respond (handle-response response request))) + raise)))) (def format-response-body {:name ::format-response-body @@ -130,11 +140,9 @@ (defn wrap-errors [handler on-error] - (fn [request] - (try - (handler request) - (catch Throwable e - (on-error e request))))) + (fn [request respond _] + (handler request respond (fn [cause] + (-> cause (on-error request) respond))))) (def errors {:name ::errors @@ -160,41 +168,7 @@ {:name ::server-timing :compile (constantly wrap-server-timing)}) -(defn wrap-etag - [handler] - (letfn [(encode [data] - (when (string? data) - (str "W/\"" (-> data bh/blake2b-128 bc/bytes->hex) "\"")))] - (fn [{method :request-method headers :headers :as request}] - (cond-> (handler request) - (= :get method) - (as-> $ (if-let [etag (-> $ :body meta :etag encode)] - (cond-> (update $ :headers assoc "etag" etag) - (= etag (get headers "if-none-match")) - (-> (assoc :body "") - (assoc :status 304))) - $)))))) - -(def etag - {:name ::etag - :compile (constantly wrap-etag)}) - -(defn activity-logger - [handler] - (let [logger "penpot.profile-activity"] - (fn [{:keys [headers] :as request}] - (let [ip-addr (get headers "x-forwarded-for") - profile-id (:profile-id request) - qstring (:query-string request)] - (l/info ::l/async true - ::l/logger logger - :ip-addr ip-addr - :profile-id profile-id - :uri (str (:uri request) (when qstring (str "?" qstring))) - :method (name (:request-method request))) - (handler request))))) - -(defn- wrap-cors +(defn wrap-cors [handler] (if-not (contains? cf/flags :cors) handler @@ -209,12 +183,15 @@ (assoc "access-control-allow-credentials" "true") (assoc "access-control-expose-headers" "x-requested-with, content-type, cookie") (assoc "access-control-allow-headers" "x-frontend-version, content-type, accept, x-requested-width"))))))] - (fn [request] + (fn [request respond raise] (if (= (:request-method request) :options) (-> {:status 200 :body ""} - (add-cors-headers request)) - (let [response (handler request)] - (add-cors-headers response request))))))) + (add-cors-headers request) + (respond)) + (handler request + (fn [response] + (respond (add-cors-headers response request))) + raise)))))) (def cors {:name ::cors diff --git a/backend/src/app/http/oauth.clj b/backend/src/app/http/oauth.clj index c116836a60..21347f6881 100644 --- a/backend/src/app/http/oauth.clj +++ b/backend/src/app/http/oauth.clj @@ -21,7 +21,8 @@ [clojure.set :as set] [clojure.spec.alpha :as s] [cuerdas.core :as str] - [integrant.core :as ig])) + [integrant.core :as ig] + [promesa.exec :as px])) (defn- build-redirect-uri [{:keys [provider] :as cfg}] @@ -213,28 +214,35 @@ (redirect-response uri)))) (defn- auth-handler - [{:keys [tokens] :as cfg} {:keys [params] :as request}] - (let [invitation (:invitation-token params) - props (extract-utm-props params) - state (tokens :generate - {:iss :oauth - :invitation-token invitation - :props props - :exp (dt/in-future "15m")}) - uri (build-auth-uri cfg state)] - {:status 200 - :body {:redirect-uri uri}})) + [{:keys [tokens executors] :as cfg} {:keys [params] :as request} respond _] + (px/run! + (:default executors) + (fn [] + (let [invitation (:invitation-token params) + props (extract-utm-props params) + state (tokens :generate + {:iss :oauth + :invitation-token invitation + :props props + :exp (dt/in-future "15m")}) + uri (build-auth-uri cfg state)] + + (respond + {:status 200 + :body {:redirect-uri uri}}))))) (defn- callback-handler - [cfg request] - (try - (let [info (retrieve-info cfg request) - profile (retrieve-profile cfg info)] - (generate-redirect cfg request info profile)) - (catch Exception e - (l/warn :hint "error on oauth process" - :cause e) - (generate-error-redirect cfg e)))) + [{:keys [executors] :as cfg} request respond _] + (px/run! + (:default executors) + (fn [] + (try + (let [info (retrieve-info cfg request) + profile (retrieve-profile cfg info)] + (respond (generate-redirect cfg request info profile))) + (catch Exception cause + (l/warn :hint "error on oauth process" :cause cause) + (respond (generate-error-redirect cfg cause))))))) ;; --- INIT @@ -250,15 +258,19 @@ (defn wrap-handler [cfg handler] - (fn [request] + (fn [request respond raise] (let [provider (get-in request [:path-params :provider]) provider (get-in @cfg [:providers provider])] - (when-not provider - (ex/raise :type :not-found - :context {:provider provider} - :hint "provider not configured")) - (-> (assoc @cfg :provider provider) - (handler request))))) + (if provider + (handler (assoc @cfg :provider provider) + request + respond + raise) + (raise + (ex/error + :type :not-found + :provider provider + :hint "provider not configured")))))) (defmethod ig/init-key ::handler [_ cfg] diff --git a/backend/src/app/http/session.clj b/backend/src/app/http/session.clj index 002b1ab368..7a98abff1c 100644 --- a/backend/src/app/http/session.clj +++ b/backend/src/app/http/session.clj @@ -134,13 +134,13 @@ (defn- middleware [events-ch store handler] - (fn [request] + (fn [request respond raise] (if-let [{:keys [id profile-id] :as session} (retrieve-from-request store request)] (do (a/>!! events-ch id) (l/set-context! {:profile-id profile-id}) - (handler (assoc request :profile-id profile-id :session-id id))) - (handler request)))) + (handler (assoc request :profile-id profile-id :session-id id) respond raise)) + (handler request respond raise)))) ;; --- STATE INIT: SESSION @@ -150,7 +150,8 @@ (defmethod ig/prep-key ::session [_ cfg] - (d/merge {:buffer-size 128} (d/without-nils cfg))) + (d/merge {:buffer-size 128} + (d/without-nils cfg))) (defmethod ig/init-key ::session [_ {:keys [pool tokens] :as cfg}] @@ -164,7 +165,7 @@ (-> cfg (assoc ::events-ch events-ch) - (assoc :middleware #(middleware events-ch store %)) + (assoc :middleware (partial middleware events-ch store)) (assoc :create (fn [profile-id] (fn [request response] (let [token (create-session store request profile-id)] @@ -207,16 +208,11 @@ :max-batch-size (str (:max-batch-size cfg))) (let [input (aa/batch (::events-ch session) {:max-batch-size (:max-batch-size cfg) - :max-batch-age (inst-ms (:max-batch-age cfg))}) - mcnt (mtx/create - {:name "http_session_update_total" - :help "A counter of session update batch events." - :registry (:registry metrics) - :type :counter})] + :max-batch-age (inst-ms (:max-batch-age cfg))})] (a/go-loop [] (when-let [[reason batch] (a/ (merge cfg params) - (assoc :profile-id profile-id) - (assoc :team-id (:team-id file)) - (assoc ::ws/metrics metrics))] + [_ {:keys [pool] :as cfg}] + (fn [{:keys [profile-id params] :as req} respond raise] + (let [params (us/conform ::handler-params params) + file (retrieve-file pool (:file-id params)) + cfg (-> (merge cfg params) + (assoc :profile-id profile-id) + (assoc :team-id (:team-id file)))] - (when-not profile-id - (ex/raise :type :authentication - :hint "Authentication required.")) + (cond + (not profile-id) + (raise (ex/error :type :authentication + :hint "Authentication required.")) - (when-not file - (ex/raise :type :not-found - :code :object-not-found)) + (not file) + (raise (ex/error :type :not-found + :code :object-not-found)) - (when-not (yws/upgrade-request? req) - (ex/raise :type :validation - :code :websocket-request-expected - :hint "this endpoint only accepts websocket connections")) + (not (yws/upgrade-request? req)) + (raise (ex/error :type :validation + :code :websocket-request-expected + :hint "this endpoint only accepts websocket connections")) + + :else (->> (ws/handler handle-message cfg) - (yws/upgrade req)))))) + (yws/upgrade req) + (respond)))))) (def ^:private sql:retrieve-file diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index fabf61c4df..9eb424b6c0 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -21,8 +21,32 @@ :metrics (ig/ref :app.metrics/metrics) :migrations (ig/ref :app.migrations/all) :name :main - :min-pool-size 0 - :max-pool-size 60} + :min-size (cf/get :database-min-pool-size 0) + :max-size (cf/get :database-max-pool-size 30)} + + ;; Default thread pool for IO operations + [::default :app.worker/executor] + {:parallelism (cf/get :default-executor-parallelism 120) + :prefix :default} + + ;; Constrained thread pool. Should only be used from high demand + ;; RPC methods. + [::blocking :app.worker/executor] + {:parallelism (cf/get :blocking-executor-parallelism 20) + :prefix :blocking} + + ;; Dedicated thread pool for backround tasks execution. + [::worker :app.worker/executor] + {:parallelism (cf/get :worker-executor-parallelism 10) + :prefix :worker} + + :app.worker/executors-monitor + {:executors + {:default (ig/ref [::default :app.worker/executor]) + :blocking (ig/ref [::blocking :app.worker/executor]) + :worker (ig/ref [::worker :app.worker/executor])} + + :metrics (ig/ref :app.metrics/metrics)} :app.migrations/migrations {} @@ -50,8 +74,8 @@ {:pool (ig/ref :app.db/pool)} :app.http.session/session - {:pool (ig/ref :app.db/pool) - :tokens (ig/ref :app.tokens/tokens)} + {:pool (ig/ref :app.db/pool) + :tokens (ig/ref :app.tokens/tokens)} :app.http.session/gc-task {:pool (ig/ref :app.db/pool) @@ -60,7 +84,7 @@ :app.http.session/updater {:pool (ig/ref :app.db/pool) :metrics (ig/ref :app.metrics/metrics) - :executor (ig/ref :app.worker/executor) + :executor (ig/ref [::worker :app.worker/executor]) :session (ig/ref :app.http.session/session) :max-batch-age (cf/get :http-session-updater-batch-max-age) :max-batch-size (cf/get :http-session-updater-batch-max-size)} @@ -70,10 +94,13 @@ :pool (ig/ref :app.db/pool)} :app.http/server - {:port (cf/get :http-server-port) - :host (cf/get :http-server-host) - :router (ig/ref :app.http/router) - :metrics (ig/ref :app.metrics/metrics)} + {:port (cf/get :http-server-port) + :host (cf/get :http-server-host) + :router (ig/ref :app.http/router) + :metrics (ig/ref :app.metrics/metrics) + + :max-threads (cf/get :http-server-max-threads) + :min-threads (cf/get :http-server-min-threads)} :app.http/router {:assets (ig/ref :app.http.assets/handlers) @@ -91,11 +118,11 @@ :rpc (ig/ref :app.rpc/rpc)} :app.http.debug/handlers - {:pool (ig/ref :app.db/pool)} + {:pool (ig/ref :app.db/pool) + :executor (ig/ref [::default :app.worker/executor])} :app.http.websocket/handler {:pool (ig/ref :app.db/pool) - :executor (ig/ref :app.worker/executor) :metrics (ig/ref :app.metrics/metrics) :msgbus (ig/ref :app.msgbus/msgbus)} @@ -103,6 +130,7 @@ {:metrics (ig/ref :app.metrics/metrics) :assets-path (cf/get :assets-path) :storage (ig/ref :app.storage/storage) + :executor (ig/ref [::default :app.worker/executor]) :cache-max-age (dt/duration {:hours 24}) :signature-max-age (dt/duration {:hours 24 :minutes 5})} @@ -125,22 +153,19 @@ :storage (ig/ref :app.storage/storage) :msgbus (ig/ref :app.msgbus/msgbus) :public-uri (cf/get :public-uri) - :audit (ig/ref :app.loggers.audit/collector)} - - :app.worker/executor - {:min-threads 0 - :max-threads 256 - :idle-timeout 60000 - :name :worker} + :audit (ig/ref :app.loggers.audit/collector) + :executors + {:default (ig/ref [::default :app.worker/executor]) + :blocking (ig/ref [::blocking :app.worker/executor])}} :app.worker/worker - {:executor (ig/ref :app.worker/executor) + {:executor (ig/ref [::worker :app.worker/executor]) :tasks (ig/ref :app.worker/registry) :metrics (ig/ref :app.metrics/metrics) :pool (ig/ref :app.db/pool)} :app.worker/scheduler - {:executor (ig/ref :app.worker/executor) + {:executor (ig/ref [::worker :app.worker/executor]) :tasks (ig/ref :app.worker/registry) :pool (ig/ref :app.db/pool) :schedule @@ -254,11 +279,11 @@ :app.loggers.audit/http-handler {:pool (ig/ref :app.db/pool) - :executor (ig/ref :app.worker/executor)} + :executor (ig/ref [::default :app.worker/executor])} :app.loggers.audit/collector {:pool (ig/ref :app.db/pool) - :executor (ig/ref :app.worker/executor)} + :executor (ig/ref [::worker :app.worker/executor])} :app.loggers.audit/archive-task {:uri (cf/get :audit-log-archive-uri) @@ -272,27 +297,18 @@ :app.loggers.loki/reporter {:uri (cf/get :loggers-loki-uri) :receiver (ig/ref :app.loggers.zmq/receiver) - :executor (ig/ref :app.worker/executor)} + :executor (ig/ref [::worker :app.worker/executor])} :app.loggers.mattermost/reporter {:uri (cf/get :error-report-webhook) :receiver (ig/ref :app.loggers.zmq/receiver) :pool (ig/ref :app.db/pool) - :executor (ig/ref :app.worker/executor)} + :executor (ig/ref [::worker :app.worker/executor])} :app.loggers.database/reporter {:receiver (ig/ref :app.loggers.zmq/receiver) :pool (ig/ref :app.db/pool) - :executor (ig/ref :app.worker/executor)} - - :app.loggers.sentry/reporter - {:dsn (cf/get :sentry-dsn) - :trace-sample-rate (cf/get :sentry-trace-sample-rate 1.0) - :attach-stack-trace (cf/get :sentry-attach-stack-trace false) - :debug (cf/get :sentry-debug false) - :receiver (ig/ref :app.loggers.zmq/receiver) - :pool (ig/ref :app.db/pool) - :executor (ig/ref :app.worker/executor)} + :executor (ig/ref [::worker :app.worker/executor])} :app.storage/storage {:pool (ig/ref :app.db/pool) diff --git a/backend/src/app/metrics.clj b/backend/src/app/metrics.clj index 57e1ba531e..7dd65079fb 100644 --- a/backend/src/app/metrics.clj +++ b/backend/src/app/metrics.clj @@ -5,46 +5,40 @@ ;; Copyright (c) UXBOX Labs SL (ns app.metrics + (:refer-clojure :exclude [run!]) (:require - [app.common.exceptions :as ex] [app.common.logging :as l] [clojure.spec.alpha :as s] [integrant.core :as ig]) (:import io.prometheus.client.CollectorRegistry io.prometheus.client.Counter + io.prometheus.client.Counter$Child io.prometheus.client.Gauge + io.prometheus.client.Gauge$Child io.prometheus.client.Summary + io.prometheus.client.Summary$Child + io.prometheus.client.Summary$Builder io.prometheus.client.Histogram + io.prometheus.client.Histogram$Child io.prometheus.client.exporter.common.TextFormat io.prometheus.client.hotspot.DefaultExports io.prometheus.client.jetty.JettyStatisticsCollector org.eclipse.jetty.server.handler.StatisticsHandler java.io.StringWriter)) -(declare instrument-vars!) -(declare instrument) +(set! *warn-on-reflection* true) + (declare create-registry) (declare create) (declare handler) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Defaults +;; METRICS SERVICE PROVIDER ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - (def default-metrics - {:profile-register - {:name "actions_profile_register_count" - :help "A global counter of user registrations." - :type :counter} - - :profile-activation - {:name "actions_profile_activation_count" - :help "A global counter of profile activations" - :type :counter} - - :update-file-changes + {:update-file-changes {:name "rpc_update_file_changes_total" :help "A total number of changes submitted to update-file." :type :counter} @@ -54,6 +48,18 @@ :help "A total number of bytes processed by update-file." :type :counter} + :rpc-mutation-timing + {:name "rpc_mutation_timing" + :help "RPC mutation method call timming." + :labels ["name"] + :type :histogram} + + :rpc-query-timing + {:name "rpc_query_timing" + :help "RPC query method call timing." + :labels ["name"] + :type :histogram} + :websocket-active-connections {:name "websocket_active_connections" :help "Active websocket connections gauge" @@ -68,12 +74,54 @@ :websocket-session-timing {:name "websocket_session_timing" :help "Websocket session timing (seconds)." - :quantiles [] - :type :summary}}) + :type :summary} -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Entry Point -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + :session-update-total + {:name "http_session_update_total" + :help "A counter of session update batch events." + :type :counter} + + :tasks-timing + {:name "penpot_tasks_timing" + :help "Background tasks timing (milliseconds)." + :labels ["name"] + :type :summary} + + :rlimit-queued-submissions + {:name "penpot_rlimit_queued_submissions" + :help "Current number of queued submissions on RLIMIT." + :labels ["name"] + :type :gauge} + + :rlimit-used-permits + {:name "penpot_rlimit_used_permits" + :help "Current number of used permits on RLIMIT." + :labels ["name"] + :type :gauge} + + :rlimit-acquires-total + {:name "penpot_rlimit_acquires_total" + :help "Total number of acquire operations on RLIMIT." + :labels ["name"] + :type :counter} + + :executors-active-threads + {:name "penpot_executors_active_threads" + :help "Current number of threads available in the executor service." + :labels ["name"] + :type :gauge} + + :executors-running-threads + {:name "penpot_executors_running_threads" + :help "Current number of threads with state RUNNING." + :labels ["name"] + :type :gauge} + + :executors-queued-submissions + {:name "penpot_executors_queued_submissions" + :help "Current number of queued submissions." + :labels ["name"] + :type :gauge}}) (defmethod ig/init-key ::metrics [_ _] @@ -95,31 +143,44 @@ (s/keys :req-un [::registry ::handler])) (defn- handler - [registry _request] + [registry _ respond _] (let [samples (.metricFamilySamples ^CollectorRegistry registry) writer (StringWriter.)] (TextFormat/write004 writer samples) - {:headers {"content-type" TextFormat/CONTENT_TYPE_004} - :body (.toString writer)})) + (respond {:headers {"content-type" TextFormat/CONTENT_TYPE_004} + :body (.toString writer)}))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Implementation ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(def default-empty-labels (into-array String [])) + +(def default-quantiles + [[0.5 0.01] + [0.90 0.01] + [0.99 0.001]]) + +(def default-histogram-buckets + [1 5 10 25 50 75 100 250 500 750 1000 2500 5000 7500]) + +(defn run! + [{:keys [definitions]} {:keys [id] :as params}] + (when-let [mobj (get definitions id)] + ((::fn mobj) params) + true)) + (defn create-registry [] (let [registry (CollectorRegistry.)] (DefaultExports/register registry) registry)) -(defmacro with-measure - [& {:keys [expr cb]}] - `(let [start# (System/nanoTime) - tdown# ~cb] - (try - ~expr - (finally - (tdown# (/ (- (System/nanoTime) start#) 1000000)))))) +(defn- is-array? + [o] + (let [oc (class o)] + (and (.isArray ^Class oc) + (= (.getComponentType oc) String)))) (defn make-counter [{:keys [name help registry reg labels] :as props}] @@ -132,12 +193,9 @@ instance (.register instance registry)] {::instance instance - ::fn (fn [{:keys [by labels] :or {by 1}}] - (if labels - (.. ^Counter instance - (labels (into-array String labels)) - (inc by)) - (.inc ^Counter instance by)))})) + ::fn (fn [{:keys [inc labels] :or {inc 1 labels default-empty-labels}}] + (let [instance (.labels instance (if (is-array? labels) labels (into-array String labels)))] + (.inc ^Counter$Child instance (double inc))))})) (defn make-gauge [{:keys [name help registry reg labels] :as props}] @@ -148,48 +206,33 @@ _ (when (seq labels) (.labelNames instance (into-array String labels))) instance (.register instance registry)] - {::instance instance - ::fn (fn [{:keys [cmd by labels] :or {by 1}}] - (if labels - (let [labels (into-array String [labels])] - (case cmd - :inc (.. ^Gauge instance (labels labels) (inc by)) - :dec (.. ^Gauge instance (labels labels) (dec by)))) - (case cmd - :inc (.inc ^Gauge instance by) - :dec (.dec ^Gauge instance by))))})) - -(def default-quantiles - [[0.75 0.02] - [0.99 0.001]]) + ::fn (fn [{:keys [inc dec labels val] :or {labels default-empty-labels}}] + (let [instance (.labels ^Gauge instance (if (is-array? labels) labels (into-array String labels)))] + (cond (number? inc) (.inc ^Gauge$Child instance (double inc)) + (number? dec) (.dec ^Gauge$Child instance (double dec)) + (number? val) (.set ^Gauge$Child instance (double val)))))})) (defn make-summary [{:keys [name help registry reg labels max-age quantiles buckets] - :or {max-age 3600 buckets 6 quantiles default-quantiles} :as props}] + :or {max-age 3600 buckets 12 quantiles default-quantiles} :as props}] (let [registry (or registry reg) - instance (doto (Summary/build) + builder (doto (Summary/build) (.name name) (.help help)) _ (when (seq quantiles) - (.maxAgeSeconds ^Summary instance max-age) - (.ageBuckets ^Summary instance buckets)) + (.maxAgeSeconds ^Summary$Builder builder ^long max-age) + (.ageBuckets ^Summary$Builder builder buckets)) _ (doseq [[q e] quantiles] - (.quantile ^Summary instance q e)) + (.quantile ^Summary$Builder builder q e)) _ (when (seq labels) - (.labelNames instance (into-array String labels))) - instance (.register instance registry)] + (.labelNames ^Summary$Builder builder (into-array String labels))) + instance (.register ^Summary$Builder builder registry)] {::instance instance - ::fn (fn [{:keys [val labels]}] - (if labels - (.. ^Summary instance - (labels (into-array String labels)) - (observe val)) - (.observe ^Summary instance val)))})) - -(def default-histogram-buckets - [1 5 10 25 50 75 100 250 500 750 1000 2500 5000 7500]) + ::fn (fn [{:keys [val labels] :or {labels default-empty-labels}}] + (let [instance (.labels ^Summary instance (if (is-array? labels) labels (into-array String labels)))] + (.observe ^Summary$Child instance val)))})) (defn make-histogram [{:keys [name help registry reg labels buckets] @@ -204,12 +247,9 @@ instance (.register instance registry)] {::instance instance - ::fn (fn [{:keys [val labels]}] - (if labels - (.. ^Histogram instance - (labels (into-array String labels)) - (observe val)) - (.observe ^Histogram instance val)))})) + ::fn (fn [{:keys [val labels] :or {labels default-empty-labels}}] + (let [instance (.labels ^Histogram instance (if (is-array? labels) labels (into-array String labels)))] + (.observe ^Histogram$Child instance val)))})) (defn create [{:keys [type] :as props}] @@ -219,114 +259,6 @@ :summary (make-summary props) :histogram (make-histogram props))) -(defn wrap-counter - ([rootf mobj] - (let [mdata (meta rootf) - origf (::original mdata rootf)] - (with-meta - (fn - ([a] - ((::fn mobj) nil) - (origf a)) - ([a b] - ((::fn mobj) nil) - (origf a b)) - ([a b c] - ((::fn mobj) nil) - (origf a b c)) - ([a b c d] - ((::fn mobj) nil) - (origf a b c d)) - ([a b c d & more] - ((::fn mobj) nil) - (apply origf a b c d more))) - (assoc mdata ::original origf)))) - ([rootf mobj labels] - (let [mdata (meta rootf) - origf (::original mdata rootf)] - (with-meta - (fn - ([a] - ((::fn mobj) {:labels labels}) - (origf a)) - ([a b] - ((::fn mobj) {:labels labels}) - (origf a b)) - ([a b & more] - ((::fn mobj) {:labels labels}) - (apply origf a b more))) - (assoc mdata ::original origf))))) - -(defn wrap-summary - ([rootf mobj] - (let [mdata (meta rootf) - origf (::original mdata rootf)] - (with-meta - (fn - ([a] - (with-measure - :expr (origf a) - :cb #((::fn mobj) {:val %}))) - ([a b] - (with-measure - :expr (origf a b) - :cb #((::fn mobj) {:val %}))) - ([a b & more] - (with-measure - :expr (apply origf a b more) - :cb #((::fn mobj) {:val %})))) - (assoc mdata ::original origf)))) - - ([rootf mobj labels] - (let [mdata (meta rootf) - origf (::original mdata rootf)] - (with-meta - (fn - ([a] - (with-measure - :expr (origf a) - :cb #((::fn mobj) {:val % :labels labels}))) - ([a b] - (with-measure - :expr (origf a b) - :cb #((::fn mobj) {:val % :labels labels}))) - ([a b & more] - (with-measure - :expr (apply origf a b more) - :cb #((::fn mobj) {:val % :labels labels})))) - (assoc mdata ::original origf))))) - -(defn instrument-vars! - [vars {:keys [wrap] :as props}] - (let [obj (create props)] - (cond - (instance? Counter (::instance obj)) - (doseq [var vars] - (alter-var-root var (or wrap wrap-counter) obj)) - - (instance? Summary (::instance obj)) - (doseq [var vars] - (alter-var-root var (or wrap wrap-summary) obj)) - - :else - (ex/raise :type :not-implemented)))) - -(defn instrument - [f {:keys [wrap] :as props}] - (let [obj (create props)] - (cond - (instance? Counter (::instance obj)) - ((or wrap wrap-counter) f obj) - - (instance? Summary (::instance obj)) - ((or wrap wrap-summary) f obj) - - (instance? Histogram (::instance obj)) - ((or wrap wrap-summary) f obj) - - :else - (ex/raise :type :not-implemented)))) - (defn instrument-jetty! [^CollectorRegistry registry ^StatisticsHandler handler] (doto (JettyStatisticsCollector. handler) diff --git a/backend/src/app/msgbus.clj b/backend/src/app/msgbus.clj index 285f185c74..7d621a3527 100644 --- a/backend/src/app/msgbus.clj +++ b/backend/src/app/msgbus.clj @@ -18,7 +18,6 @@ [integrant.core :as ig] [promesa.core :as p]) (:import - java.time.Duration io.lettuce.core.RedisClient io.lettuce.core.RedisURI io.lettuce.core.api.StatefulConnection @@ -29,7 +28,10 @@ io.lettuce.core.codec.StringCodec io.lettuce.core.pubsub.RedisPubSubListener io.lettuce.core.pubsub.StatefulRedisPubSubConnection - io.lettuce.core.pubsub.api.async.RedisPubSubAsyncCommands)) + io.lettuce.core.pubsub.api.async.RedisPubSubAsyncCommands + io.lettuce.core.resource.ClientResources + io.lettuce.core.resource.DefaultClientResources + java.time.Duration)) (def ^:private prefix (cfg/get :tenant)) @@ -136,27 +138,35 @@ (declare impl-redis-sub) (declare impl-redis-unsub) + (defmethod init-backend :redis [{:keys [redis-uri] :as cfg}] (let [codec (RedisCodec/of StringCodec/UTF8 ByteArrayCodec/INSTANCE) - uri (RedisURI/create redis-uri) - rclient (RedisClient/create ^RedisURI uri) + resources (.. (DefaultClientResources/builder) + (ioThreadPoolSize 4) + (computationThreadPoolSize 4) + (build)) - pub-conn (.connect ^RedisClient rclient ^RedisCodec codec) - sub-conn (.connectPubSub ^RedisClient rclient ^RedisCodec codec)] + uri (RedisURI/create redis-uri) + rclient (RedisClient/create ^ClientResources resources ^RedisURI uri) + + pub-conn (.connect ^RedisClient rclient ^RedisCodec codec) + sub-conn (.connectPubSub ^RedisClient rclient ^RedisCodec codec)] (.setTimeout ^StatefulRedisConnection pub-conn ^Duration (dt/duration {:seconds 10})) (.setTimeout ^StatefulRedisPubSubConnection sub-conn ^Duration (dt/duration {:seconds 10})) (-> cfg + (assoc ::resources resources) (assoc ::pub-conn pub-conn) (assoc ::sub-conn sub-conn)))) (defmethod stop-backend :redis - [{:keys [::pub-conn ::sub-conn] :as cfg}] + [{:keys [::pub-conn ::sub-conn ::resources] :as cfg}] (.close ^StatefulRedisConnection pub-conn) - (.close ^StatefulRedisPubSubConnection sub-conn)) + (.close ^StatefulRedisPubSubConnection sub-conn) + (.shutdown ^ClientResources resources)) (defmethod init-pub-loop :redis [{:keys [::pub-conn ::pub-ch]}] diff --git a/backend/src/app/rpc.clj b/backend/src/app/rpc.clj index ff346aece4..312fa657a4 100644 --- a/backend/src/app/rpc.clj +++ b/backend/src/app/rpc.clj @@ -13,79 +13,164 @@ [app.db :as db] [app.loggers.audit :as audit] [app.metrics :as mtx] - [app.util.retry :as retry] - [app.util.rlimit :as rlimit] + [app.rpc.retry :as retry] + [app.rpc.rlimit :as rlimit] + [app.util.async :as async] [app.util.services :as sv] + [app.worker :as wrk] [clojure.spec.alpha :as s] - [integrant.core :as ig])) + [integrant.core :as ig] + [promesa.core :as p] + [promesa.exec :as px])) (defn- default-handler [_] - (ex/raise :type :not-found)) + (p/rejected (ex/error :type :not-found))) -(defn- run-hook - [hook-fn response] - (ex/ignoring (hook-fn)) +(defn- handle-response-transformation + [response request mdata] + (if-let [transform-fn (:transform-response mdata)] + (transform-fn request response) + response)) + +(defn- handle-before-comple-hook + [response mdata] + (when-let [hook-fn (:before-complete mdata)] + (ex/ignoring (hook-fn))) response) (defn- rpc-query-handler - [methods {:keys [profile-id session-id] :as request}] - (let [type (keyword (get-in request [:path-params :type])) + "Ring handler that dispatches query requests and convert between + internal async flow into ring async flow." + [methods {:keys [profile-id session-id] :as request} respond raise] + (letfn [(handle-response [result] + (let [mdata (meta result)] + (-> {:status 200 :body result} + (handle-response-transformation request mdata))))] - data (merge (:params request) - (:body-params request) - (:uploads request) - {::request request}) + (let [type (keyword (get-in request [:path-params :type])) + data (merge (:params request) + (:body-params request) + (:uploads request) + {::request request}) - data (if profile-id - (assoc data :profile-id profile-id ::session-id session-id) - (dissoc data :profile-id)) + data (if profile-id + (assoc data :profile-id profile-id ::session-id session-id) + (dissoc data :profile-id)) - result ((get methods type default-handler) data) - mdata (meta result)] + ;; Get the method from methods registry and if method does + ;; not exists asigns it to the default handler. + method (get methods type default-handler)] - (cond->> {:status 200 :body result} - (fn? (:transform-response mdata)) - ((:transform-response mdata) request)))) + (-> (method data) + (p/then #(respond (handle-response %))) + (p/catch raise))))) (defn- rpc-mutation-handler - [methods {:keys [profile-id session-id] :as request}] - (let [type (keyword (get-in request [:path-params :type])) - data (merge (:params request) - (:body-params request) - (:uploads request) - {::request request}) + "Ring handler that dispatches mutation requests and convert between + internal async flow into ring async flow." + [methods {:keys [profile-id session-id] :as request} respond raise] + (letfn [(handle-response [result] + (let [mdata (meta result)] + (-> {:status 200 :body result} + (handle-response-transformation request mdata) + (handle-before-comple-hook mdata))))] - data (if profile-id - (assoc data :profile-id profile-id ::session-id session-id) - (dissoc data :profile-id)) + (let [type (keyword (get-in request [:path-params :type])) + data (merge (:params request) + (:body-params request) + (:uploads request) + {::request request}) - result ((get methods type default-handler) data) - mdata (meta result)] - (cond->> {:status 200 :body result} - (fn? (:transform-response mdata)) - ((:transform-response mdata) request) + data (if profile-id + (assoc data :profile-id profile-id ::session-id session-id) + (dissoc data :profile-id)) - (fn? (:before-complete mdata)) - (run-hook (:before-complete mdata))))) + method (get methods type default-handler)] -(defn- wrap-with-metrics - [cfg f mdata] - (mtx/wrap-summary f (::mobj cfg) [(::sv/name mdata)])) + (-> (method data) + (p/then #(respond (handle-response %))) + (p/catch raise))))) -(defn- wrap-impl +(defn- wrap-metrics + "Wrap service method with metrics measurement." + [{:keys [metrics ::metrics-id]} f mdata] + (let [labels (into-array String [(::sv/name mdata)])] + (fn [cfg params] + (let [start (System/nanoTime)] + (p/finally + (f cfg params) + (fn [_ _] + (mtx/run! metrics + {:id metrics-id + :val (/ (- (System/nanoTime) start) 1000000) + :labels labels}))))))) + +(defn- wrap-dispatch + "Wraps service method into async flow, with the ability to dispatching + it to a preconfigured executor service." + [{:keys [executors] :as cfg} f mdata] + (let [dname (::async/dispatch mdata :none)] + (if (= :none dname) + (with-meta + (fn [cfg params] + (try + (p/wrap (f cfg params)) + (catch Throwable cause + (p/rejected cause)))) + mdata) + + (let [executor (get executors dname)] + (when-not executor + (ex/raise :type :internal + :code :executor-not-configured + :hint (format "executor %s not configured" dname))) + (with-meta + (fn [cfg params] + (-> (px/submit! executor #(f cfg params)) + (p/bind p/wrap))) + mdata))))) + +(defn- wrap-audit [{:keys [audit] :as cfg} f mdata] + (if audit + (with-meta + (fn [cfg {:keys [::request] :as params}] + (p/finally (f cfg params) + (fn [result _] + (when result + (let [resultm (meta result) + profile-id (or (:profile-id params) + (:profile-id result) + (::audit/profile-id resultm)) + props (d/merge params (::audit/props resultm))] + (audit :cmd :submit + :type (or (::audit/type resultm) + (::type cfg)) + :name (or (::audit/name resultm) + (::sv/name mdata)) + :profile-id profile-id + :ip-addr (audit/parse-client-ip request) + :props (dissoc props ::request))))))) + mdata) + f)) + +(defn- wrap + [cfg f mdata] (let [f (as-> f $ + (wrap-dispatch cfg $ mdata) (rlimit/wrap-rlimit cfg $ mdata) (retry/wrap-retry cfg $ mdata) - (wrap-with-metrics cfg $ mdata)) + (wrap-audit cfg $ mdata) + (wrap-metrics cfg $ mdata) + ) spec (or (::sv/spec mdata) (s/spec any?)) auth? (:auth mdata true)] (l/trace :action "register" :name (::sv/name mdata)) (with-meta - (fn [params] + (fn [{:keys [::request] :as params}] ;; Raise authentication error when rpc method requires auth but ;; no profile-id is found in the request. (when (and auth? (not (uuid? (:profile-id params)))) @@ -93,44 +178,19 @@ :code :authentication-required :hint "authentication required for this endpoint")) - (let [params' (dissoc params ::request) - params' (us/conform spec params') - result (f cfg params')] - - ;; When audit log is enabled (default false). - (when (fn? audit) - (let [resultm (meta result) - request (::request params) - profile-id (or (:profile-id params') - (:profile-id result) - (::audit/profile-id resultm)) - props (d/merge params' (::audit/props resultm))] - (audit :cmd :submit - :type (or (::audit/type resultm) - (::type cfg)) - :name (or (::audit/name resultm) - (::sv/name mdata)) - :profile-id profile-id - :ip-addr (audit/parse-client-ip request) - :props props))) - result)) + (let [params (us/conform spec (dissoc params ::request))] + (f cfg (assoc params ::request request)))) mdata))) (defn- process-method [cfg vfn] (let [mdata (meta vfn)] [(keyword (::sv/name mdata)) - (wrap-impl cfg (deref vfn) mdata)])) + (wrap cfg (deref vfn) mdata)])) (defn- resolve-query-methods [cfg] - (let [mobj (mtx/create - {:name "rpc_query_timing" - :labels ["name"] - :registry (get-in cfg [:metrics :registry]) - :type :histogram - :help "Timing of query services."}) - cfg (assoc cfg ::mobj mobj ::type "query")] + (let [cfg (assoc cfg ::type "query" ::metrics-id :rpc-query-timing)] (->> (sv/scan-ns 'app.rpc.queries.projects 'app.rpc.queries.files 'app.rpc.queries.teams @@ -143,13 +203,7 @@ (defn- resolve-mutation-methods [cfg] - (let [mobj (mtx/create - {:name "rpc_mutation_timing" - :labels ["name"] - :registry (get-in cfg [:metrics :registry]) - :type :histogram - :help "Timing of mutation services."}) - cfg (assoc cfg ::mobj mobj ::type "mutation")] + (let [cfg (assoc cfg ::type "mutation" ::metrics-id :rpc-mutation-timing)] (->> (sv/scan-ns 'app.rpc.mutations.demo 'app.rpc.mutations.media 'app.rpc.mutations.profile @@ -169,15 +223,16 @@ (s/def ::session map?) (s/def ::tokens fn?) (s/def ::audit (s/nilable fn?)) +(s/def ::executors (s/map-of keyword? ::wrk/executor)) (defmethod ig/pre-init-spec ::rpc [_] (s/keys :req-un [::storage ::session ::tokens ::audit - ::mtx/metrics ::db/pool])) + ::executors ::mtx/metrics ::db/pool])) (defmethod ig/init-key ::rpc [_ cfg] (let [mq (resolve-query-methods cfg) mm (resolve-mutation-methods cfg)] {:methods {:query mq :mutation mm} - :query-handler #(rpc-query-handler mq %) - :mutation-handler #(rpc-mutation-handler mm %)})) + :query-handler (partial rpc-query-handler mq) + :mutation-handler (partial rpc-mutation-handler mm)})) diff --git a/backend/src/app/rpc/mutations/comments.clj b/backend/src/app/rpc/mutations/comments.clj index 4c4a6eccc9..438cfdebd9 100644 --- a/backend/src/app/rpc/mutations/comments.clj +++ b/backend/src/app/rpc/mutations/comments.clj @@ -12,8 +12,8 @@ [app.db :as db] [app.rpc.queries.comments :as comments] [app.rpc.queries.files :as files] + [app.rpc.retry :as retry] [app.util.blob :as blob] - [app.util.retry :as retry] [app.util.services :as sv] [app.util.time :as dt] [clojure.spec.alpha :as s])) @@ -34,8 +34,7 @@ (s/keys :req-un [::profile-id ::file-id ::position ::content ::page-id])) (sv/defmethod ::create-comment-thread - {::retry/enabled true - ::retry/max-retries 3 + {::retry/max-retries 3 ::retry/matches retry/conflict-db-insert?} [{:keys [pool] :as cfg} {:keys [profile-id file-id] :as params}] (db/with-atomic [conn pool] diff --git a/backend/src/app/rpc/mutations/files.clj b/backend/src/app/rpc/mutations/files.clj index ce8d98ef9c..a27ef5512b 100644 --- a/backend/src/app/rpc/mutations/files.clj +++ b/backend/src/app/rpc/mutations/files.clj @@ -18,6 +18,7 @@ [app.rpc.queries.files :as files] [app.rpc.queries.projects :as proj] [app.storage.impl :as simpl] + [app.util.async :as async] [app.util.blob :as blob] [app.util.services :as sv] [app.util.time :as dt] @@ -272,6 +273,7 @@ (contains? o :changes-with-metadata))))) (sv/defmethod ::update-file + {::async/dispatch :blocking} [{:keys [pool] :as cfg} {:keys [id profile-id] :as params}] (db/with-atomic [conn pool] (db/xact-lock! conn id) @@ -307,24 +309,21 @@ :context {:incoming-revn (:revn params) :stored-revn (:revn file)})) - (let [mtx1 (get-in metrics [:definitions :update-file-changes]) - mtx2 (get-in metrics [:definitions :update-file-bytes-processed]) - - changes (if changes-with-metadata + (let [changes (if changes-with-metadata (mapcat :changes changes-with-metadata) changes) changes (vec changes) ;; Trace the number of changes processed - _ ((::mtx/fn mtx1) {:by (count changes)}) + _ (mtx/run! metrics {:id :update-file-changes :inc (count changes)}) ts (dt/now) file (-> (files/retrieve-data cfg file) (update :revn inc) (update :data (fn [data] ;; Trace the length of bytes of processed data - ((::mtx/fn mtx2) {:by (alength data)}) + (mtx/run! metrics {:id :update-file-bytes-processed :inc (alength data)}) (-> data (blob/decode) (assoc :id (:id file)) diff --git a/backend/src/app/rpc/mutations/ldap.clj b/backend/src/app/rpc/mutations/ldap.clj index 0f6675f241..b4cc37afb6 100644 --- a/backend/src/app/rpc/mutations/ldap.clj +++ b/backend/src/app/rpc/mutations/ldap.clj @@ -56,7 +56,7 @@ (s/keys :req-un [::email ::password] :opt-un [::invitation-token])) -(sv/defmethod ::login-with-ldap {:auth false :rlimit :password} +(sv/defmethod ::login-with-ldap {:auth false} [{:keys [pool session tokens] :as cfg} params] (db/with-atomic [conn pool] (let [info (authenticate params) diff --git a/backend/src/app/rpc/mutations/media.clj b/backend/src/app/rpc/mutations/media.clj index 68b5d98eaf..8cb0bda1d7 100644 --- a/backend/src/app/rpc/mutations/media.clj +++ b/backend/src/app/rpc/mutations/media.clj @@ -10,10 +10,13 @@ [app.common.media :as cm] [app.common.spec :as us] [app.common.uuid :as uuid] + [app.config :as cf] [app.db :as db] [app.media :as media] [app.rpc.queries.teams :as teams] + [app.rpc.rlimit :as rlimit] [app.storage :as sto] + [app.util.async :as async] [app.util.http :as http] [app.util.services :as sv] [app.util.time :as dt] @@ -47,6 +50,8 @@ :opt-un [::id])) (sv/defmethod ::upload-file-media-object + {::rlimit/permits (cf/get :rlimit-image) + ::async/dispatch :default} [{:keys [pool] :as cfg} {:keys [profile-id file-id] :as params}] (let [file (select-file pool file-id)] (teams/check-edition-permissions! pool profile-id (:team-id file)) @@ -167,6 +172,8 @@ :opt-un [::id ::name])) (sv/defmethod ::create-file-media-object-from-url + {::rlimit/permits (cf/get :rlimit-image) + ::async/dispatch :default} [{:keys [pool storage] :as cfg} {:keys [profile-id file-id url name] :as params}] (let [file (select-file pool file-id)] (teams/check-edition-permissions! pool profile-id (:team-id file)) diff --git a/backend/src/app/rpc/mutations/profile.clj b/backend/src/app/rpc/mutations/profile.clj index 94732858f2..944df2fde3 100644 --- a/backend/src/app/rpc/mutations/profile.clj +++ b/backend/src/app/rpc/mutations/profile.clj @@ -15,11 +15,11 @@ [app.http.oauth :refer [extract-utm-props]] [app.loggers.audit :as audit] [app.media :as media] - [app.metrics :as mtx] [app.rpc.mutations.teams :as teams] [app.rpc.queries.profile :as profile] + [app.rpc.rlimit :as rlimit] [app.storage :as sto] - [app.util.rlimit :as rlimit] + [app.util.async :as async] [app.util.services :as sv] [app.util.time :as dt] [buddy.hashers :as hashers] @@ -38,7 +38,6 @@ (s/def ::theme ::us/string) (s/def ::invitation-token ::us/not-empty-string) -(declare annotate-profile-register) (declare check-profile-existence!) (declare create-profile) (declare create-profile-relations) @@ -102,6 +101,7 @@ (when-not (contains? cf/flags :registration) (ex/raise :type :restriction :code :registration-disabled)) + (when-let [domains (cf/get :registration-domain-whitelist)] (when-not (email-domain-in-whitelist? domains (:email params)) (ex/raise :type :validation @@ -122,10 +122,11 @@ :code :email-as-password :hint "you can't use your email as password")) - (let [params (assoc params - :backend "penpot" - :iss :prepared-register - :exp (dt/in-future "48h")) + (let [params {:email (:email params) + :invitation-token (:invitation-token params) + :backend "penpot" + :iss :prepared-register + :exp (dt/in-future "48h")} token (tokens :generate params)] {:token token})) @@ -142,16 +143,8 @@ (-> (assoc cfg :conn conn) (register-profile params)))) -(defn- annotate-profile-register - "A helper for properly increase the profile-register metric once the - transaction is completed." - [metrics] - (fn [] - (let [mobj (get-in metrics [:definitions :profile-register])] - ((::mtx/fn mobj) {:by 1})))) - (defn register-profile - [{:keys [conn tokens session metrics] :as cfg} {:keys [token] :as params}] + [{:keys [conn tokens session] :as cfg} {:keys [token] :as params}] (let [claims (tokens :verify {:token token :iss :prepared-register}) params (merge params claims)] @@ -177,7 +170,6 @@ resp {:invitation-token token}] (with-meta resp {:transform-response ((:create session) (:id profile)) - :before-complete (annotate-profile-register metrics) ::audit/props (audit/profile->props profile) ::audit/profile-id (:id profile)})) @@ -187,7 +179,6 @@ (not= "penpot" (:auth-backend profile)) (with-meta (profile/strip-private-attrs profile) {:transform-response ((:create session) (:id profile)) - :before-complete (annotate-profile-register metrics) ::audit/props (audit/profile->props profile) ::audit/profile-id (:id profile)}) @@ -196,7 +187,6 @@ (true? is-active) (with-meta (profile/strip-private-attrs profile) {:transform-response ((:create session) (:id profile)) - :before-complete (annotate-profile-register metrics) ::audit/props (audit/profile->props profile) ::audit/profile-id (:id profile)}) @@ -219,8 +209,7 @@ :extra-data ptoken}) (with-meta profile - {:before-complete (annotate-profile-register metrics) - ::audit/props (audit/profile->props profile) + {::audit/props (audit/profile->props profile) ::audit/profile-id (:id profile)})))))) (defn create-profile @@ -359,6 +348,7 @@ :opt-un [::lang ::theme])) (sv/defmethod ::update-profile + {::async/dispatch :default} [{:keys [pool] :as cfg} params] (db/with-atomic [conn pool] (let [profile (update-profile conn params)] diff --git a/backend/src/app/rpc/mutations/teams.clj b/backend/src/app/rpc/mutations/teams.clj index c54ae7e616..a104f3604e 100644 --- a/backend/src/app/rpc/mutations/teams.clj +++ b/backend/src/app/rpc/mutations/teams.clj @@ -18,8 +18,8 @@ [app.rpc.permissions :as perms] [app.rpc.queries.profile :as profile] [app.rpc.queries.teams :as teams] + [app.rpc.rlimit :as rlimit] [app.storage :as sto] - [app.util.rlimit :as rlimit] [app.util.services :as sv] [app.util.time :as dt] [clojure.spec.alpha :as s] diff --git a/backend/src/app/rpc/mutations/verify_token.clj b/backend/src/app/rpc/mutations/verify_token.clj index 0b1eb87d6c..1b79b74f15 100644 --- a/backend/src/app/rpc/mutations/verify_token.clj +++ b/backend/src/app/rpc/mutations/verify_token.clj @@ -10,7 +10,6 @@ [app.common.spec :as us] [app.db :as db] [app.loggers.audit :as audit] - [app.metrics :as mtx] [app.rpc.mutations.teams :as teams] [app.rpc.queries.profile :as profile] [app.util.services :as sv] @@ -44,16 +43,8 @@ ::audit/props {:email email} ::audit/profile-id profile-id})) -(defn- annotate-profile-activation - "A helper for properly increase the profile-activation metric once the - transaction is completed." - [metrics] - (fn [] - (let [mobj (get-in metrics [:definitions :profile-activation])] - ((::mtx/fn mobj) {:by 1})))) - (defmethod process-token :verify-email - [{:keys [conn session metrics] :as cfg} _ {:keys [profile-id] :as claims}] + [{:keys [conn session] :as cfg} _ {:keys [profile-id] :as claims}] (let [profile (profile/retrieve-profile conn profile-id) claims (assoc claims :profile profile)] @@ -69,7 +60,6 @@ (with-meta claims {:transform-response ((:create session) profile-id) - :before-complete (annotate-profile-activation metrics) ::audit/name "verify-profile-email" ::audit/props (audit/profile->props profile) ::audit/profile-id (:id profile)}))) diff --git a/backend/src/app/rpc/queries/profile.clj b/backend/src/app/rpc/queries/profile.clj index 5c4c338767..c1ed702444 100644 --- a/backend/src/app/rpc/queries/profile.clj +++ b/backend/src/app/rpc/queries/profile.clj @@ -35,7 +35,8 @@ (s/def ::profile (s/keys :opt-un [::profile-id])) -(sv/defmethod ::profile {:auth false} +(sv/defmethod ::profile + {:auth false} [{:keys [pool] :as cfg} {:keys [profile-id] :as params}] ;; We need to return the anonymous profile object in two cases, when ;; no profile-id is in session, and when db call raises not found. In all other diff --git a/backend/src/app/rpc/retry.clj b/backend/src/app/rpc/retry.clj new file mode 100644 index 0000000000..f63cb90d96 --- /dev/null +++ b/backend/src/app/rpc/retry.clj @@ -0,0 +1,52 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.rpc.retry + "A fault tolerance helpers. Allow retry some operations that we know + we can retry." + (:require + [app.common.logging :as l] + [app.util.services :as sv] + [promesa.core :as p])) + +(defn conflict-db-insert? + "Check if exception matches a insertion conflict on postgresql." + [e] + (and (instance? org.postgresql.util.PSQLException e) + (= "23505" (.getSQLState e)))) + +(defn wrap-retry + [_ f {:keys [::matches ::sv/name] + :or {matches (constantly false)} + :as mdata}] + + (when (::enabled mdata) + (l/debug :hint "wrapping retry" :name name)) + + (if-let [max-retries (::max-retries mdata)] + (fn [cfg params] + (letfn [(run [retry] + (prn "wrap-retry" "run" retry) + (try + (-> (f cfg params) + (p/catch (partial handle-error retry))) + (catch Throwable cause + (prn cause) + (throw cause)))) + + + (handle-error [retry cause] + (prn "FOOFOFOF" retry (matches cause)) + (if (matches cause) + (let [current-retry (inc retry)] + (l/trace :hint "running retry algorithm" :retry current-retry) + (if (<= current-retry max-retries) + (run current-retry) + (throw cause))) + (throw cause)))] + (run 0))) + f)) + diff --git a/backend/src/app/rpc/rlimit.clj b/backend/src/app/rpc/rlimit.clj new file mode 100644 index 0000000000..1b70b2da62 --- /dev/null +++ b/backend/src/app/rpc/rlimit.clj @@ -0,0 +1,67 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) UXBOX Labs SL + +(ns app.rpc.rlimit + "Resource usage limits (in other words: semaphores)." + (:require + [app.common.data :as d] + [app.common.logging :as l] + [app.metrics :as mtx] + [app.util.services :as sv] + [promesa.core :as p])) + +(defprotocol IAsyncSemaphore + (acquire! [_]) + (release! [_])) + +(defn semaphore + [{:keys [permits metrics name]}] + (let [name (d/name name) + used (volatile! 0) + queue (volatile! (d/queue)) + labels (into-array String [name])] + (reify IAsyncSemaphore + (acquire! [this] + (let [d (p/deferred)] + (locking this + (if (< @used permits) + (do + (vswap! used inc) + (p/resolve! d)) + (vswap! queue conj d))) + + (mtx/run! metrics {:id :rlimit-used-permits :val @used :labels labels }) + (mtx/run! metrics {:id :rlimit-queued-submissions :val (count @queue) :labels labels}) + (mtx/run! metrics {:id :rlimit-acquires-total :inc 1 :labels labels}) + d)) + + (release! [this] + (locking this + (if-let [item (peek @queue)] + (do + (vswap! queue pop) + (p/resolve! item)) + (when (pos? @used) + (vswap! used dec)))) + + (mtx/run! metrics {:id :rlimit-used-permits :val @used :labels labels}) + (mtx/run! metrics {:id :rlimit-queued-submissions :val (count @queue) :labels labels}) + )))) + +(defn wrap-rlimit + [{:keys [metrics] :as cfg} f mdata] + (if-let [permits (::permits mdata)] + (let [sem (semaphore {:permits permits + :metrics metrics + :name (::sv/name mdata)})] + (l/debug :hint "wrapping rlimit" :handler (::sv/name mdata) :permits permits) + (fn [cfg params] + (-> (acquire! sem) + (p/then (fn [_] (f cfg params))) + (p/finally (fn [_ _] (release! sem)))))) + f)) + + diff --git a/backend/src/app/util/async.clj b/backend/src/app/util/async.clj index 6193fbe2fd..c04fa891f7 100644 --- a/backend/src/app/util/async.clj +++ b/backend/src/app/util/async.clj @@ -7,7 +7,8 @@ (ns app.util.async (:require [clojure.core.async :as a] - [clojure.spec.alpha :as s]) + [clojure.spec.alpha :as s] + [promesa.exec :as px]) (:import java.util.concurrent.Executor)) @@ -54,13 +55,16 @@ (a/close! c) c)))) - (defmacro with-thread [executor & body] (if (= executor ::default) `(a/thread-call (^:once fn* [] (try ~@body (catch Exception e# e#)))) `(thread-call ~executor (^:once fn* [] ~@body)))) +(defmacro with-dispatch + [executor & body] + `(px/submit! ~executor (^:once fn* [] ~@body))) + (defn batch [in {:keys [max-batch-size max-batch-age diff --git a/backend/src/app/util/retry.clj b/backend/src/app/util/retry.clj deleted file mode 100644 index d0bed166db..0000000000 --- a/backend/src/app/util/retry.clj +++ /dev/null @@ -1,43 +0,0 @@ -;; This Source Code Form is subject to the terms of the Mozilla Public -;; License, v. 2.0. If a copy of the MPL was not distributed with this -;; file, You can obtain one at http://mozilla.org/MPL/2.0/. -;; -;; Copyright (c) UXBOX Labs SL - -(ns app.util.retry - "A fault tolerance helpers. Allow retry some operations that we know - we can retry." - (:require - [app.common.exceptions :as ex] - [app.common.logging :as l] - [app.util.async :as aa] - [app.util.services :as sv])) - -(defn conflict-db-insert? - "Check if exception matches a insertion conflict on postgresql." - [e] - (and (instance? org.postgresql.util.PSQLException e) - (= "23505" (.getSQLState e)))) - -(defn wrap-retry - [_ f {:keys [::max-retries ::matches ::sv/name] - :or {max-retries 3 - matches (constantly false)} - :as mdata}] - (when (::enabled mdata) - (l/debug :hint "wrapping retry" :name name)) - (if (::enabled mdata) - (fn [cfg params] - (loop [retry 1] - (when (> retry 1) - (l/debug :hint "retrying controlled function" :retry retry :name name)) - (let [res (ex/try (f cfg params))] - (if (ex/exception? res) - (if (and (matches res) (< retry max-retries)) - (do - (aa/thread-sleep (* 100 retry)) - (recur (inc retry))) - (throw res)) - res)))) - f)) - diff --git a/backend/src/app/util/rlimit.clj b/backend/src/app/util/rlimit.clj deleted file mode 100644 index 8398237c19..0000000000 --- a/backend/src/app/util/rlimit.clj +++ /dev/null @@ -1,36 +0,0 @@ -;; This Source Code Form is subject to the terms of the Mozilla Public -;; License, v. 2.0. If a copy of the MPL was not distributed with this -;; file, You can obtain one at http://mozilla.org/MPL/2.0/. -;; -;; Copyright (c) UXBOX Labs SL - -(ns app.util.rlimit - "Resource usage limits (in other words: semaphores)." - (:require - [app.common.logging :as l] - [app.util.services :as sv]) - (:import - java.util.concurrent.Semaphore)) - -(defn acquire! - [sem] - (.acquire ^Semaphore sem)) - -(defn release! - [sem] - (.release ^Semaphore sem)) - -(defn wrap-rlimit - [_cfg f mdata] - (if-let [permits (::permits mdata)] - (let [sem (Semaphore. permits)] - (l/debug :hint "wrapping rlimit" :handler (::sv/name mdata) :permits permits) - (fn [cfg params] - (try - (acquire! sem) - (f cfg params) - (finally - (release! sem))))) - f)) - - diff --git a/backend/src/app/util/websocket.clj b/backend/src/app/util/websocket.clj index b82783e3cf..6acbd9e363 100644 --- a/backend/src/app/util/websocket.clj +++ b/backend/src/app/util/websocket.clj @@ -27,11 +27,6 @@ (declare ws-ping!) (declare ws-send!) -(defmacro call-mtx - [definitions name & args] - `(when-let [mtx-fn# (some-> ~definitions ~name ::mtx/fn)] - (mtx-fn# ~@args))) - (def noop (constantly nil)) (defn handler @@ -49,7 +44,7 @@ ([handle-message {:keys [::input-buff-size ::output-buff-size ::idle-timeout - ::metrics] + metrics] :or {input-buff-size 64 output-buff-size 64 idle-timeout 30000} @@ -71,8 +66,8 @@ on-terminate (fn [& _args] (when (compare-and-set! terminated false true) - (call-mtx metrics :connections {:cmd :dec :by 1}) - (call-mtx metrics :sessions {:val (/ (inst-ms (dt/diff created-at (dt/now))) 1000.0)}) + (mtx/run! metrics {:id :websocket-active-connections :dec 1}) + (mtx/run! metrics {:id :websocket-session-timing :val (/ (inst-ms (dt/diff created-at (dt/now))) 1000.0)}) (a/close! close-ch) (a/close! pong-ch) @@ -88,7 +83,7 @@ on-connect (fn [conn] - (call-mtx metrics :connections {:cmd :inc :by 1}) + (mtx/run! metrics {:id :websocket-active-connections :inc 1}) (let [wsp (atom (assoc options ::conn conn))] ;; Handle heartbeat @@ -102,7 +97,7 @@ ;; connection (a/go-loop [] (when-let [val (a/string - [error] - (with-out-str - (.printStackTrace ^Throwable error (java.io.PrintWriter. *out*)))) - (defn- execute-scheduled-task [{:keys [executor pool] :as cfg} {:keys [id] :as task}] (letfn [(run-task [conn] @@ -460,59 +500,27 @@ ;; --- INSTRUMENTATION -(defn instrument! - [registry] - (mtx/instrument-vars! - [#'submit!] - {:registry registry - :type :counter - :labels ["name"] - :name "tasks_submit_total" - :help "A counter of task submissions." - :wrap (fn [rootf mobj] - (let [mdata (meta rootf) - origf (::original mdata rootf)] - (with-meta - (fn [conn params] - (let [tname (:name params)] - (mobj :inc [tname]) - (origf conn params))) - {::original origf})))}) - - (mtx/instrument-vars! - [#'app.worker/run-task] - {:registry registry - :type :summary - :quantiles [] - :name "tasks_checkout_timing" - :help "Latency measured between scheduled_at and execution time." - :wrap (fn [rootf mobj] - (let [mdata (meta rootf) - origf (::original mdata rootf)] - (with-meta - (fn [tasks item] - (let [now (inst-ms (dt/now)) - sat (inst-ms (:scheduled-at item))] - (mobj :observe (- now sat)) - (origf tasks item))) - {::original origf})))})) - +(defn- wrap-task-handler + [metrics tname f] + (let [labels (into-array String [tname])] + (fn [params] + (let [start (System/nanoTime)] + (try + (f params) + (finally + (mtx/run! metrics + {:id :tasks-timing + :val (/ (- (System/nanoTime) start) 1000000) + :labels labels}))))))) (defmethod ig/pre-init-spec ::registry [_] (s/keys :req-un [::mtx/metrics ::tasks])) (defmethod ig/init-key ::registry [_ {:keys [metrics tasks]}] - (let [mobj (mtx/create - {:registry (:registry metrics) - :type :summary - :labels ["name"] - :quantiles [] - :name "tasks_timing" - :help "Background task execution timing."})] - (reduce-kv (fn [res k v] - (let [tname (name k)] - (l/debug :action "register task" :name tname) - (assoc res k (mtx/wrap-summary v mobj [tname])))) - {} - tasks))) + (reduce-kv (fn [res k v] + (let [tname (name k)] + (l/debug :hint "register task" :name tname) + (assoc res k (wrap-task-handler metrics tname v)))) + {} + tasks)) diff --git a/backend/test/app/test_helpers.clj b/backend/test/app/test_helpers.clj index 2807e6f3b3..9f380551a4 100644 --- a/backend/test/app/test_helpers.clj +++ b/backend/test/app/test_helpers.clj @@ -248,7 +248,7 @@ [expr] `(try {:error nil - :result ~expr} + :result (deref ~expr)} (catch Exception e# {:error (handle-error e#) :result nil}))) diff --git a/common/deps.edn b/common/deps.edn index 25c6e584a8..082926005b 100644 --- a/common/deps.edn +++ b/common/deps.edn @@ -21,7 +21,7 @@ com.cognitect/transit-cljs {:mvn/version "0.8.269"} java-http-clj/java-http-clj {:mvn/version "0.4.3"} - funcool/promesa {:mvn/version "6.1.431"} + funcool/promesa {:mvn/version "7.0.444"} funcool/cuerdas {:mvn/version "2022.01.14-391"} lambdaisland/uri {:mvn/version "1.13.95" diff --git a/common/src/app/common/data.cljc b/common/src/app/common/data.cljc index dcd0cf368b..9dfba00ad2 100644 --- a/common/src/app/common/data.cljc +++ b/common/src/app/common/data.cljc @@ -37,6 +37,22 @@ #?(:cljs (instance? lks/LinkedSet o) :clj (instance? LinkedSet o))) +#?(:clj + (defmethod print-method clojure.lang.PersistentQueue [q, w] + ;; Overload the printer for queues so they look like fish + (print-method '<- w) + (print-method (seq q) w) + (print-method '-< w))) + +(defn queue + ([] #?(:clj clojure.lang.PersistentQueue/EMPTY :cljs #queue [])) + ([a] (into (queue) [a])) + ([a & more] (into (queue) (cons a more)))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Data Structures Manipulation +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + (defn deep-merge ([a b] (if (map? a) @@ -45,10 +61,6 @@ ([a b & rest] (reduce deep-merge a (cons b rest)))) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Data Structures Manipulation -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - (defn dissoc-in [m [k & ks]] (if ks @@ -151,7 +163,11 @@ "Given a map, return a map removing key-value pairs when value is `nil`." [data] - (into {} (remove (comp nil? second) data))) + (into {} (remove (comp nil? second)) data)) + +(defn without-qualified + [data] + (into {} (remove (comp qualified-keyword? first)) data)) (defn without-keys "Return a map without the keys provided @@ -676,3 +692,4 @@ (recur acc (step k)) acc))) acc)))))) + From 46bfb2aacda44b9c2ccc91b41d948ef04cd532a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Mon, 21 Feb 2022 13:17:46 +0100 Subject: [PATCH 129/154] :bug: Fixed alignment of layers with children --- CHANGES.md | 3 +-- common/src/app/common/geom/align.cljc | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index c9791e493e..762a10f5d1 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -37,8 +37,7 @@ - Fixed components get "dirty" marker when moved [Taiga #2764](https://tree.taiga.io/project/penpot/issue/2764) - Fixed cannot align objects in a group that is not part of a frame [Taiga #2762](https://tree.taiga.io/project/penpot/issue/2762) - Fix problem with double click on exit path editing [Taiga #2906](https://tree.taiga.io/project/penpot/issue/2906) - -### :arrow_up: Deps updates +- Fixed alignment of layers with children [Taiga #2862](https://tree.taiga.io/project/penpot/issue/2862) ### :heart: Community contributions by (Thank you!) diff --git a/common/src/app/common/geom/align.cljc b/common/src/app/common/geom/align.cljc index 11c8422c6c..19d91e7b27 100644 --- a/common/src/app/common/geom/align.cljc +++ b/common/src/app/common/geom/align.cljc @@ -6,7 +6,6 @@ (ns app.common.geom.align (:require - [app.common.data :as d] [app.common.geom.shapes :as gsh] [app.common.pages.helpers :refer [get-children]] [clojure.spec.alpha :as s])) @@ -20,8 +19,7 @@ (defn- recursive-move "Move the shape and all its recursive children." [shape dpoint objects] - (->> (get-children (:id shape) objects) - (map (d/getf objects)) + (->> (get-children objects (:id shape)) (cons shape) (map #(gsh/move % dpoint)))) From 70def21153dcced0b6786a6417dd5f19f366c42a Mon Sep 17 00:00:00 2001 From: Eva Date: Tue, 22 Feb 2022 11:02:04 +0100 Subject: [PATCH 130/154] :recycle: Improve file menu usage --- CHANGES.md | 2 ++ .../main/partials/workspace-header.scss | 24 +++++++++++++++++-- .../src/app/main/ui/workspace/header.cljs | 22 +++++++++++++---- 3 files changed, 41 insertions(+), 7 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 762a10f5d1..dbc43f80aa 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -5,6 +5,8 @@ ### :boom: Breaking changes ### :sparkles: New features + +- Improve usage of file menu [Taiga #2853](https://tree.taiga.io/project/penpot/us/2853) - Rotation to snap to 15º intervals with shift [Taiga #2437](https://tree.taiga.io/project/penpot/issue/2437) - Support border radius and stroke properties for images [Taiga #497](https://tree.taiga.io/project/penpot/us/497) - Disallow using same password as user email [Taiga #2454](https://tree.taiga.io/project/penpot/us/2454) diff --git a/frontend/resources/styles/main/partials/workspace-header.scss b/frontend/resources/styles/main/partials/workspace-header.scss index f2e20d65d6..3a5f1af69d 100644 --- a/frontend/resources/styles/main/partials/workspace-header.scss +++ b/frontend/resources/styles/main/partials/workspace-header.scss @@ -154,12 +154,22 @@ left: 40px; width: 183px; z-index: 12; - @include animation(0, 0.2s, fadeInDown); background-color: $color-white; border-radius: $br-small; box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.25); + :first-child { + &:hover { + border-radius: $br-small $br-small 0px 0px; + } + } + :last-child { + &:hover { + border-radius: 0px 0px $br-small $br-small; + } + } + li { cursor: pointer; font-size: $fs14; @@ -193,11 +203,21 @@ left: 230px; width: 270px; z-index: 12; - @include animation(0, 0.2s, fadeInDown); background-color: $color-white; border-radius: $br-small; box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.25); + :first-child { + &:hover { + border-radius: $br-small $br-small 0px 0px; + } + } + :last-child { + &:hover { + border-radius: 0px 0px $br-small $br-small; + } + } + &.file { top: 40px; } diff --git a/frontend/src/app/main/ui/workspace/header.cljs b/frontend/src/app/main/ui/workspace/header.cljs index 81d8a80f33..3d5169fb22 100644 --- a/frontend/src/app/main/ui/workspace/header.cljs +++ b/frontend/src/app/main/ui/workspace/header.cljs @@ -194,6 +194,13 @@ (st/emit! (dm/error (tr "errors.unexpected-error")))) (st/emitf dm/hide))))))) + on-item-hover + (mf/use-callback + (fn [item] + (fn [event] + (dom/stop-propagation event) + (reset! show-sub-menu? item)))) + on-item-click (mf/use-callback (fn [item] @@ -230,18 +237,23 @@ [:& dropdown {:show @show-menu? :on-close #(reset! show-menu? false)} [:ul.menu - [:li {:on-click (on-item-click :file)} + [:li {:on-click (on-item-click :file) + :on-pointer-enter (on-item-hover :file)} [:span (tr "workspace.header.menu.option.file")] [:span i/arrow-slide]] - [:li {:on-click (on-item-click :edit)} + [:li {:on-click (on-item-click :edit) + :on-pointer-enter (on-item-hover :edit)} [:span (tr "workspace.header.menu.option.edit")] [:span i/arrow-slide]] - [:li {:on-click (on-item-click :view)} + [:li {:on-click (on-item-click :view) + :on-pointer-enter (on-item-hover :view)} [:span (tr "workspace.header.menu.option.view")] [:span i/arrow-slide]] - [:li {:on-click (on-item-click :preferences)} + [:li {:on-click (on-item-click :preferences) + :on-pointer-enter (on-item-hover :preferences)} [:span (tr "workspace.header.menu.option.preferences")] [:span i/arrow-slide]] (when (contains? @cf/flags :user-feedback) [:* - [:li.feedback {:on-click (st/emitf (rt/nav :settings-feedback))} + [:li.feedback {:on-click (st/emitf (rt/nav :settings-feedback)) + :on-pointer-enter (st/emitf (rt/nav :settings-feedback))} [:span (tr "labels.give-feedback")]]])]] [:& dropdown {:show (= @show-sub-menu? :file) From 88706534c26483eb74f1dbed0408bb49b8f4e8bb Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 23 Feb 2022 08:33:03 +0100 Subject: [PATCH 131/154] :bug: Fixing fil typo --- frontend/translations/en.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 6db9c3e602..6ea9663f6c 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -2195,7 +2195,7 @@ msgstr "Fit - Scale down to fit" #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" -msgstr "Zoom to fil all" +msgstr "Zoom to fit all" #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" From 974084a9ca863a963f58b39138f3b973ba4cab22 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 23 Feb 2022 09:11:38 +0100 Subject: [PATCH 132/154] :bug: Add missing executor dependency to auth handlers --- backend/src/app/http/oauth.clj | 10 ++++++---- backend/src/app/main.clj | 1 + 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/backend/src/app/http/oauth.clj b/backend/src/app/http/oauth.clj index 21347f6881..17b3720686 100644 --- a/backend/src/app/http/oauth.clj +++ b/backend/src/app/http/oauth.clj @@ -24,6 +24,8 @@ [integrant.core :as ig] [promesa.exec :as px])) +;; TODO: make it fully async (?) + (defn- build-redirect-uri [{:keys [provider] :as cfg}] (let [public (u/uri (:public-uri cfg))] @@ -214,9 +216,9 @@ (redirect-response uri)))) (defn- auth-handler - [{:keys [tokens executors] :as cfg} {:keys [params] :as request} respond _] + [{:keys [tokens executor] :as cfg} {:keys [params] :as request} respond _] (px/run! - (:default executors) + executor (fn [] (let [invitation (:invitation-token params) props (extract-utm-props params) @@ -232,9 +234,9 @@ :body {:redirect-uri uri}}))))) (defn- callback-handler - [{:keys [executors] :as cfg} request respond _] + [{:keys [executor] :as cfg} request respond _] (px/run! - (:default executors) + executor (fn [] (try (let [info (retrieve-info cfg request) diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index 9eb424b6c0..6430a8e4ec 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -143,6 +143,7 @@ :pool (ig/ref :app.db/pool) :tokens (ig/ref :app.tokens/tokens) :audit (ig/ref :app.loggers.audit/collector) + :executor (ig/ref [::default :app.worker/executor]) :public-uri (cf/get :public-uri)} :app.rpc/rpc From aeed535f1b70506cbfed0461c0f76754c19bf4a3 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 23 Feb 2022 09:13:08 +0100 Subject: [PATCH 133/154] :sparkles: Minor improvement on reference handling on touched-gc task --- backend/src/app/storage.clj | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/backend/src/app/storage.clj b/backend/src/app/storage.clj index 4891e338df..e084c46332 100644 --- a/backend/src/app/storage.clj +++ b/backend/src/app/storage.clj @@ -350,14 +350,15 @@ (retrieve-touched-chunk [conn cursor] (let [rows (->> (db/exec! conn [sql:retrieve-touched-objects-chunk cursor]) - (mapv #(d/update-when % :metadata db/decode-transit-pgobject)))] + (mapv #(d/update-when % :metadata db/decode-transit-pgobject))) + kw (fn [o] (if (keyword? o) o (keyword o)))] (when (seq rows) [(-> rows peek :created-at) ;; NOTE: we use the :file-media-object as default value for backward compatibility because when we ;; deploy it we can have old backend instances running in the same time as the new one and we can ;; still have storage-objects created without reference value. And we know that if it does not ;; have value, it means :file-media-object. - (d/group-by' #(or (-> % :metadata :reference) :file-media-object) :id rows)]))) + (d/group-by' #(or (some-> % :metadata :reference kw) :file-media-object) :id rows)]))) (retrieve-touched [conn] (->> (d/iteration (fn [cursor] @@ -391,7 +392,9 @@ (let [[f d] (case reference :file-media-object (process-objects! conn has-file-media-object-nrefs? ids) :team-font-variant (process-objects! conn has-team-font-variant-nrefs? ids) - (ex/raise :type :internal :code :unexpected-unknown-reference))] + (ex/raise :type :internal + :code :unexpected-unknown-reference + :hint (format "unknown reference %s" (pr-str reference))))] (recur (+ to-freeze f) (+ to-delete d) (rest groups))) From 0ade0405f560c277f8213c150538dbaefb9e1e94 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 23 Feb 2022 11:49:25 +0100 Subject: [PATCH 134/154] :bug: Fix feedback and audit-log http handlers --- backend/src/app/http/feedback.clj | 58 ++++++++++++--------- backend/src/app/loggers/audit.clj | 84 +++++++++++++++++-------------- backend/src/app/main.clj | 5 +- 3 files changed, 82 insertions(+), 65 deletions(-) diff --git a/backend/src/app/http/feedback.clj b/backend/src/app/http/feedback.clj index 8b0938bbe3..a402b4bd1d 100644 --- a/backend/src/app/http/feedback.clj +++ b/backend/src/app/http/feedback.clj @@ -14,48 +14,56 @@ [app.db :as db] [app.emails :as eml] [app.rpc.queries.profile :as profile] + [app.worker :as wrk] [clojure.spec.alpha :as s] - [integrant.core :as ig])) + [integrant.core :as ig] + [promesa.core :as p] + [promesa.exec :as px])) -(declare send-feedback) +(declare ^:private send-feedback) +(declare ^:private handler) (defmethod ig/pre-init-spec ::handler [_] - (s/keys :req-un [::db/pool])) + (s/keys :req-un [::db/pool ::wrk/executor])) (defmethod ig/init-key ::handler - [_ {:keys [pool] :as scfg}] + [_ {:keys [executor] :as cfg}] (let [ftoken (cf/get :feedback-token ::no-token) - enabled (contains? cf/flags :user-feedback)] - (fn [{:keys [profile-id] :as request}] - (let [token (get-in request [:headers "x-feedback-token"]) - params (d/merge (:params request) - (:body-params request))] + enabled? (contains? cf/flags :user-feedback)] + (if enabled? + (fn [request respond raise] + (-> (px/submit! executor #(handler cfg request)) + (p/then' respond) + (p/catch raise))) + (fn [_ _ raise] + (raise (ex/error :type :validation + :code :feedback-disabled + :hint "feedback module is disabled")))))) - (when-not enabled - (ex/raise :type :validation - :code :feedback-disabled - :hint "feedback module is disabled")) +(defn- handler + [{:keys [pool] :as cfg} {:keys [profile-id] :as request}] + (let [ftoken (cf/get :feedback-token ::no-token) + token (get-in request [:headers "x-feedback-token"]) + params (d/merge (:params request) + (:body-params request))] + (cond + (uuid? profile-id) + (let [profile (profile/retrieve-profile-data pool profile-id) + params (assoc params :from (:email profile))] + (send-feedback pool profile params)) - (cond - (uuid? profile-id) - (let [profile (profile/retrieve-profile-data pool profile-id) - params (assoc params :from (:email profile))] - (when-not (:is-muted profile) - (send-feedback pool profile params))) + (= token ftoken) + (send-feedback cfg nil params)) - (= token ftoken) - (send-feedback scfg nil params)) - - {:status 204 :body ""})))) + {:status 204 :body ""})) (s/def ::content ::us/string) (s/def ::from ::us/email) (s/def ::subject ::us/string) - (s/def ::feedback (s/keys :req-un [::from ::subject ::content])) -(defn send-feedback +(defn- send-feedback [pool profile params] (let [params (us/conform ::feedback params) destination (cf/get :feedback-destination)] diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj index 1c113bb14b..a7154c03cf 100644 --- a/backend/src/app/loggers/audit.clj +++ b/backend/src/app/loggers/audit.clj @@ -22,6 +22,8 @@ [clojure.core.async :as a] [clojure.spec.alpha :as s] [cuerdas.core :as str] + [promesa.core :as p] + [promesa.exec :as px] [integrant.core :as ig] [lambdaisland.uri :as u] [promesa.exec :as px])) @@ -83,49 +85,55 @@ (defmethod ig/init-key ::http-handler [_ {:keys [executor pool] :as cfg}] - (if (db/read-only? pool) + (if (or (db/read-only? pool) (not (contains? cf/flags :audit-log))) (do - (l/warn :hint "audit log http handler disabled, db is read-only") - (constantly {:status 204 :body ""})) - (fn [{:keys [params profile-id] :as request}] - (when (contains? cf/flags :audit-log) - (let [events (->> (:events params) - (remove #(not= profile-id (:profile-id %))) - (us/conform ::frontend-events)) - ip-addr (parse-client-ip request) - cfg (-> cfg - (assoc :source "frontend") - (assoc :events events) - (assoc :ip-addr ip-addr))] + (l/warn :hint "audit log http handler disabled or db is read-only") + (fn [_ respond _] + (respond {:status 204 :body ""}))) - (px/run! executor #(persist-http-events cfg)))) - {:status 204 :body ""}))) + + (letfn [(handler [{:keys [params profile-id] :as request}] + (let [events (->> (:events params) + (remove #(not= profile-id (:profile-id %))) + (us/conform ::frontend-events)) + + ip-addr (parse-client-ip request) + cfg (-> cfg + (assoc :source "frontend") + (assoc :events events) + (assoc :ip-addr ip-addr))] + (persist-http-events cfg))) + + (handle-error [cause] + (let [xdata (ex-data cause)] + (if (= :spec-validation (:code xdata)) + (l/error ::l/raw (str "spec validation on persist-events:\n" (us/pretty-explain xdata))) + (l/error :hint "error on persist-events" :cause cause))))] + + (fn [request respond raise] + ;; Fire and forget, log error in case of errro + (-> (px/submit! executor #(handler request)) + (p/catch handle-error)) + + (respond {:status 204 :body ""}))))) (defn- persist-http-events [{:keys [pool events ip-addr source] :as cfg}] - (try - (let [columns [:id :name :source :type :tracked-at :profile-id :ip-addr :props :context] - prepare-xf (map (fn [event] - [(uuid/next) - (:name event) - source - (:type event) - (:timestamp event) - (:profile-id event) - (db/inet ip-addr) - (db/tjson (:props event)) - (db/tjson (d/without-nils (:context event)))])) - events (us/conform ::events events)] - (when (seq events) - (->> (into [] prepare-xf events) - (db/insert-multi! pool :audit-log columns)))) - (catch Throwable e - (let [xdata (ex-data e)] - (if (= :spec-validation (:code xdata)) - (l/error ::l/raw (str "spec validation on persist-events:\n" - (:explain xdata))) - (l/error :hint "error on persist-events" - :cause e)))))) + (let [columns [:id :name :source :type :tracked-at :profile-id :ip-addr :props :context] + prepare-xf (map (fn [event] + [(uuid/next) + (:name event) + source + (:type event) + (:timestamp event) + (:profile-id event) + (db/inet ip-addr) + (db/tjson (:props event)) + (db/tjson (d/without-nils (:context event)))])) + events (us/conform ::events events)] + (when (seq events) + (->> (into [] prepare-xf events) + (db/insert-multi! pool :audit-log columns))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Collector diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index 6430a8e4ec..b8464c39f1 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -135,7 +135,8 @@ :signature-max-age (dt/duration {:hours 24 :minutes 5})} :app.http.feedback/handler - {:pool (ig/ref :app.db/pool)} + {:pool (ig/ref :app.db/pool) + :executor (ig/ref [::default :app.worker/executor])} :app.http.oauth/handler {:rpc (ig/ref :app.rpc/rpc) @@ -280,7 +281,7 @@ :app.loggers.audit/http-handler {:pool (ig/ref :app.db/pool) - :executor (ig/ref [::default :app.worker/executor])} + :executor (ig/ref [::worker :app.worker/executor])} :app.loggers.audit/collector {:pool (ig/ref :app.db/pool) From 0b0ae756a383c5c023a31910970877f241d5bd00 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 23 Feb 2022 11:49:25 +0100 Subject: [PATCH 135/154] :bug: Minor fix on audit http handler --- backend/src/app/loggers/audit.clj | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj index a7154c03cf..60ef42abd8 100644 --- a/backend/src/app/loggers/audit.clj +++ b/backend/src/app/loggers/audit.clj @@ -81,7 +81,7 @@ (s/keys :req-un [::type ::name ::props ::timestamp ::profile-id] :opt-un [::context])) -(s/def ::frontend-events (s/every ::event)) +(s/def ::frontend-events (s/every ::frontend-event)) (defmethod ig/init-key ::http-handler [_ {:keys [executor pool] :as cfg}] @@ -129,8 +129,7 @@ (:profile-id event) (db/inet ip-addr) (db/tjson (:props event)) - (db/tjson (d/without-nils (:context event)))])) - events (us/conform ::events events)] + (db/tjson (d/without-nils (:context event)))]))] (when (seq events) (->> (into [] prepare-xf events) (db/insert-multi! pool :audit-log columns))))) From 496ba433e9d089360888908bae9d6974edd9eaf1 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 23 Feb 2022 12:16:51 +0100 Subject: [PATCH 136/154] :paperclip: Fix linter issues --- backend/src/app/http/feedback.clj | 3 +-- backend/src/app/loggers/audit.clj | 5 ++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/backend/src/app/http/feedback.clj b/backend/src/app/http/feedback.clj index a402b4bd1d..1f7e92a039 100644 --- a/backend/src/app/http/feedback.clj +++ b/backend/src/app/http/feedback.clj @@ -28,8 +28,7 @@ (defmethod ig/init-key ::handler [_ {:keys [executor] :as cfg}] - (let [ftoken (cf/get :feedback-token ::no-token) - enabled? (contains? cf/flags :user-feedback)] + (let [enabled? (contains? cf/flags :user-feedback)] (if enabled? (fn [request respond raise] (-> (px/submit! executor #(handler cfg request)) diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj index 60ef42abd8..661b824b06 100644 --- a/backend/src/app/loggers/audit.clj +++ b/backend/src/app/loggers/audit.clj @@ -22,10 +22,9 @@ [clojure.core.async :as a] [clojure.spec.alpha :as s] [cuerdas.core :as str] - [promesa.core :as p] - [promesa.exec :as px] [integrant.core :as ig] [lambdaisland.uri :as u] + [promesa.core :as p] [promesa.exec :as px])) (defn parse-client-ip @@ -110,7 +109,7 @@ (l/error ::l/raw (str "spec validation on persist-events:\n" (us/pretty-explain xdata))) (l/error :hint "error on persist-events" :cause cause))))] - (fn [request respond raise] + (fn [request respond _] ;; Fire and forget, log error in case of errro (-> (px/submit! executor #(handler request)) (p/catch handle-error)) From e15f5bb4329592ed22d87cc188a5c4f8c3c7d544 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 23 Feb 2022 12:34:08 +0100 Subject: [PATCH 137/154] :bug: Fix issues with not authenticated requests Related to concurrency model refactor. --- backend/src/app/rpc.clj | 18 ++++++++---------- backend/src/app/rpc/retry.clj | 11 ++--------- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/backend/src/app/rpc.clj b/backend/src/app/rpc.clj index 312fa657a4..e9ef65a257 100644 --- a/backend/src/app/rpc.clj +++ b/backend/src/app/rpc.clj @@ -114,10 +114,7 @@ (if (= :none dname) (with-meta (fn [cfg params] - (try - (p/wrap (f cfg params)) - (catch Throwable cause - (p/rejected cause)))) + (p/do! (f cfg params))) mdata) (let [executor (get executors dname)] @@ -173,13 +170,14 @@ (fn [{:keys [::request] :as params}] ;; Raise authentication error when rpc method requires auth but ;; no profile-id is found in the request. - (when (and auth? (not (uuid? (:profile-id params)))) - (ex/raise :type :authentication - :code :authentication-required - :hint "authentication required for this endpoint")) + (p/do! + (if (and auth? (not (uuid? (:profile-id params)))) + (ex/raise :type :authentication + :code :authentication-required + :hint "authentication required for this endpoint") + (let [params (us/conform spec (dissoc params ::request))] + (f cfg (assoc params ::request request)))))) - (let [params (us/conform spec (dissoc params ::request))] - (f cfg (assoc params ::request request)))) mdata))) (defn- process-method diff --git a/backend/src/app/rpc/retry.clj b/backend/src/app/rpc/retry.clj index f63cb90d96..471bc526dc 100644 --- a/backend/src/app/rpc/retry.clj +++ b/backend/src/app/rpc/retry.clj @@ -29,17 +29,10 @@ (if-let [max-retries (::max-retries mdata)] (fn [cfg params] (letfn [(run [retry] - (prn "wrap-retry" "run" retry) - (try - (-> (f cfg params) - (p/catch (partial handle-error retry))) - (catch Throwable cause - (prn cause) - (throw cause)))) - + (-> (f cfg params) + (p/catch (partial handle-error retry)))) (handle-error [retry cause] - (prn "FOOFOFOF" retry (matches cause)) (if (matches cause) (let [current-retry (inc retry)] (l/trace :hint "running retry algorithm" :retry current-retry) From 87c1bc4bdbeb65da071ddd1a5d6fe479ff1cfbe0 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 23 Feb 2022 12:40:28 +0100 Subject: [PATCH 138/154] :bug: Fix incorrect error id reporting on mattermost webhook --- common/src/app/common/logging.cljc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/common/src/app/common/logging.cljc b/common/src/app/common/logging.cljc index b9331834c0..f96c6cb041 100644 --- a/common/src/app/common/logging.cljc +++ b/common/src/app/common/logging.cljc @@ -7,6 +7,7 @@ (ns app.common.logging (:require [app.common.exceptions :as ex] + [app.common.uuid :as uuid] [clojure.pprint :refer [pprint]] [cuerdas.core :as str] [fipp.edn :as fpp] @@ -175,7 +176,7 @@ `(->> (ThreadContext/getImmutableContext) (send-off logging-agent (fn [_# cdata#] - (with-context (-> {} (into cdata#) (into ~context)) + (with-context (-> {:id (uuid/next)} (into cdata#) (into ~context)) (->> (or ~raw (build-map-message ~props)) (write-log! ~logger-sym ~level-sym ~cause)))))) From 24a0b4445eb838b6c8e04b0e124f91efe460477b Mon Sep 17 00:00:00 2001 From: Eva Date: Wed, 23 Feb 2022 09:31:23 +0100 Subject: [PATCH 139/154] :sparkles: Open feedback page in a new tab --- CHANGES.md | 1 + frontend/src/app/main/ui/workspace/header.cljs | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index dbc43f80aa..05fa25ce0e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,7 @@ ### :sparkles: New features +- Open feedback in a new window [Taiga #2901](https://tree.taiga.io/project/penpot/us/2901) - Improve usage of file menu [Taiga #2853](https://tree.taiga.io/project/penpot/us/2853) - Rotation to snap to 15º intervals with shift [Taiga #2437](https://tree.taiga.io/project/penpot/issue/2437) - Support border radius and stroke properties for images [Taiga #497](https://tree.taiga.io/project/penpot/us/497) diff --git a/frontend/src/app/main/ui/workspace/header.cljs b/frontend/src/app/main/ui/workspace/header.cljs index 3d5169fb22..91dbaae85a 100644 --- a/frontend/src/app/main/ui/workspace/header.cljs +++ b/frontend/src/app/main/ui/workspace/header.cljs @@ -252,8 +252,7 @@ [:span (tr "workspace.header.menu.option.preferences")] [:span i/arrow-slide]] (when (contains? @cf/flags :user-feedback) [:* - [:li.feedback {:on-click (st/emitf (rt/nav :settings-feedback)) - :on-pointer-enter (st/emitf (rt/nav :settings-feedback))} + [:li.feedback {:on-click (st/emitf (rt/nav-new-window* {:rname :settings-feedback}))} [:span (tr "labels.give-feedback")]]])]] [:& dropdown {:show (= @show-sub-menu? :file) From 37a35b18272b509c51479198026a2737c79d751d Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 24 Feb 2022 09:09:46 +0100 Subject: [PATCH 140/154] :sparkles: Minor improvements on telemetry task --- backend/src/app/tasks/telemetry.clj | 36 ++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/backend/src/app/tasks/telemetry.clj b/backend/src/app/tasks/telemetry.clj index 812e36f975..7b208cb00f 100644 --- a/backend/src/app/tasks/telemetry.clj +++ b/backend/src/app/tasks/telemetry.clj @@ -38,14 +38,17 @@ (defmethod ig/init-key ::handler [_ {:keys [pool sprops version] :as cfg}] - (fn [_] + (fn [{:keys [send?] :or {send? true}}] ;; Sleep randomly between 0 to 10s - (thread-sleep (rand-int 10000)) + (when send? + (thread-sleep (rand-int 10000))) - (let [instance-id (:instance-id sprops)] - (-> (get-stats pool version) - (assoc :instance-id instance-id) - (send! cfg))))) + (let [instance-id (:instance-id sprops) + stats (-> (get-stats pool version) + (assoc :instance-id instance-id))] + (when send? + (send! stats cfg)) + stats))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; IMPL @@ -137,12 +140,28 @@ (->> [sql:team-averages] (db/exec-one! conn))) +(defn- retrieve-enabled-auth-providers + [conn] + (let [sql (str "select auth_backend as backend, count(*) as total " + " from profile group by 1") + rows (db/exec! conn [sql])] + (->> rows + (map (fn [{:keys [backend total]}] + (let [backend (or backend "penpot")] + [(keyword (str "auth-backend-" backend)) + total]))) + (into {})))) + (defn- retrieve-jvm-stats [] (let [^Runtime runtime (Runtime/getRuntime)] {:jvm-heap-current (.totalMemory runtime) :jvm-heap-max (.maxMemory runtime) - :jvm-cpus (.availableProcessors runtime)})) + :jvm-cpus (.availableProcessors runtime) + :os-arch (System/getProperty "os.arch") + :os-name (System/getProperty "os.name") + :os-version (System/getProperty "os.version") + :user-tz (System/getProperty "user.timezone")})) (defn get-stats [conn version] @@ -161,6 +180,7 @@ :total-touched-files (retrieve-num-touched-files conn)} (d/merge (retrieve-team-averages conn) - (retrieve-jvm-stats)) + (retrieve-jvm-stats) + (retrieve-enabled-auth-providers conn)) (d/without-nils)))) From b4c87ad0b9642527d9cacbf26abb69c2bd0f1e40 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 24 Feb 2022 11:45:56 +0100 Subject: [PATCH 141/154] :bug: Fix font for guides and rulese --- frontend/src/app/main/ui/workspace/viewport/guides.cljs | 8 ++++---- frontend/src/app/main/ui/workspace/viewport/rules.cljs | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/viewport/guides.cljs b/frontend/src/app/main/ui/workspace/viewport/guides.cljs index 6aebf468a6..7bfde052ab 100644 --- a/frontend/src/app/main/ui/workspace/viewport/guides.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/guides.cljs @@ -196,13 +196,13 @@ (if (= axis :x) {:rect-x (- pos (/ guide-pill-width 2)) - :rect-y (+ (:y vbox) rules-pos (- (/ guide-pill-width 2)) (/ 2 zoom)) + :rect-y (+ (:y vbox) rules-pos (- (/ guide-pill-width 2)) (/ 3 zoom)) :rect-width guide-pill-width :rect-height guide-pill-height :text-x pos :text-y (+ (:y vbox) rules-pos (- (/ 3 zoom)))} - {:rect-x (+ (:x vbox) rules-pos (- (/ guide-pill-height 2)) (- (/ 5 zoom))) + {:rect-x (+ (:x vbox) rules-pos (- (/ guide-pill-height 2)) (- (/ 4 zoom))) :rect-y (- pos (/ guide-pill-width 2)) :rect-width guide-pill-height :rect-height guide-pill-width @@ -363,8 +363,8 @@ :text-anchor "middle" :dominant-baseline "middle" :transform (when (= axis :y) (str "rotate(-90 " text-x "," text-y ")")) - :style {:font-size (/ 13 zoom) - :font-family "sourcesanspro" + :style {:font-size (/ rules/font-size zoom) + :font-family rules/font-family :fill colors/black}} (str (mth/round pos))]]))]))) diff --git a/frontend/src/app/main/ui/workspace/viewport/rules.cljs b/frontend/src/app/main/ui/workspace/viewport/rules.cljs index eac0324035..57a27c1063 100644 --- a/frontend/src/app/main/ui/workspace/viewport/rules.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/rules.cljs @@ -25,8 +25,8 @@ (def over-number-size 50) (def over-number-opacity 0.7) -(def font-size 13) -(def font-family "sourcesanspro") +(def font-size 12) +(def font-family "worksans") ;; ---------------- ;; RULES From d2590c7651edbcfd457a2ed482a59b3041e51056 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Fri, 25 Feb 2022 11:40:25 +0100 Subject: [PATCH 142/154] :bug: [Prototype] Prototype mode should not allow edits --- frontend/src/app/main/data/workspace.cljs | 8 ++++++-- frontend/src/app/main/data/workspace/interactions.cljs | 9 +++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index ebbb1c6927..3c896d322f 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -754,9 +754,13 @@ ptk/WatchEvent (watch [_ state _] (let [selected (wsh/lookup-selected state) - hover-guides (get-in state [:workspace-guides :hover])] + hover-guides (get-in state [:workspace-guides :hover]) + options-mode (get-in state [:workspace-global :options-mode])] (cond - (d/not-empty? selected) + (and (= options-mode :prototype) (d/not-empty? selected)) + (rx/of (dwi/remove-interactions selected)) + + (and (= options-mode :design) (d/not-empty? selected)) (rx/of (dwc/delete-shapes selected) (dws/deselect-all)) diff --git a/frontend/src/app/main/data/workspace/interactions.cljs b/frontend/src/app/main/data/workspace/interactions.cljs index cf71f907b2..93331bd300 100644 --- a/frontend/src/app/main/data/workspace/interactions.cljs +++ b/frontend/src/app/main/data/workspace/interactions.cljs @@ -171,6 +171,15 @@ (update shape :interactions csi/remove-interaction index))))))) +(defn remove-interactions + [ids] + (ptk/reify ::remove-interactions + ptk/WatchEvent + (watch [_ _ _] + (rx/of (dch/update-shapes ids + (fn [shape] + (assoc shape :interactions []))))))) + (defn update-interaction [shape index update-fn] (ptk/reify ::update-interaction From 2fc4c30bedc25245a139aceaeb0d923757018086 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Fri, 25 Feb 2022 12:41:19 +0100 Subject: [PATCH 143/154] :bug: [Prototype] Prototype mode should not allow edits --- frontend/src/app/main/data/workspace.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 3c896d322f..15c46bfdbc 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -755,7 +755,7 @@ (watch [_ state _] (let [selected (wsh/lookup-selected state) hover-guides (get-in state [:workspace-guides :hover]) - options-mode (get-in state [:workspace-global :options-mode])] + options-mode (get-in state [:workspace-local :options-mode])] (cond (and (= options-mode :prototype) (d/not-empty? selected)) (rx/of (dwi/remove-interactions selected)) From 05c77d0248743ca00064076e2ac0169099c186f6 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 25 Feb 2022 12:33:19 +0100 Subject: [PATCH 144/154] :bug: Fix problem with collapsing pages --- frontend/src/app/main/ui/workspace.cljs | 2 +- .../app/main/ui/workspace/sidebar/sitemap.cljs | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index e9d06b920b..bf9f519c7a 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -52,7 +52,7 @@ (mf/use-callback (mf/deps (:vport local)) (fn [resize-type size] - (when (:vport local) + (when (and (:vport local) (not= size (:vport local))) (st/emit! (dw/update-viewport-size resize-type size))))) node-ref (use-resize-observer on-resize)] diff --git a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs index 56ed2bf760..942c75ea51 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs @@ -209,6 +209,7 @@ {:keys [on-pointer-down on-lost-pointer-capture on-mouse-move parent-ref size]} (use-resize-hook :sitemap 200 38 400 :y false nil) + size (if @show-pages? size 38) toggle-pages (mf/use-callback #(reset! show-pages? not))] @@ -217,12 +218,13 @@ [:div.tool-window-bar [:span (tr "workspace.sidebar.sitemap")] [:div.add-page {:on-click create} i/close] - [:div.collapse-pages {:on-click toggle-pages} i/arrow-slide]] + [:div.collapse-pages {:on-click toggle-pages + :style {:transform (when (not @show-pages?) "rotate(-90deg)")}} i/arrow-slide]] + + [:div.tool-window-content + [:& pages-list {:file file :key (:id file)}]] (when @show-pages? - [:div.tool-window-content - [:& pages-list {:file file :key (:id file)}]]) - - [:div.resize-area {:on-pointer-down on-pointer-down - :on-lost-pointer-capture on-lost-pointer-capture - :on-mouse-move on-mouse-move}]])) + [:div.resize-area {:on-pointer-down on-pointer-down + :on-lost-pointer-capture on-lost-pointer-capture + :on-mouse-move on-mouse-move}])])) From 0416082d4d67f109bab8d049fbfb73370b45a9f4 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 28 Feb 2022 12:06:47 +0100 Subject: [PATCH 145/154] :bug: Fix awsns handler, convert it ot async --- backend/src/app/http/awsns.clj | 39 +++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/backend/src/app/http/awsns.clj b/backend/src/app/http/awsns.clj index 11cfe28a88..fdf217db78 100644 --- a/backend/src/app/http/awsns.clj +++ b/backend/src/app/http/awsns.clj @@ -26,25 +26,30 @@ (defmethod ig/init-key ::handler [_ cfg] - (fn [request] - (let [body (parse-json (slurp (:body request))) - mtype (get body "Type")] - (cond - (= mtype "SubscriptionConfirmation") - (let [surl (get body "SubscribeURL") - stopic (get body "TopicArn")] - (l/info :action "subscription received" :topic stopic :url surl) - (http/send! {:uri surl :method :post :timeout 10000})) + (fn [request respond raise] + (try + (let [body (parse-json (slurp (:body request))) + mtype (get body "Type")] + (cond + (= mtype "SubscriptionConfirmation") + (let [surl (get body "SubscribeURL") + stopic (get body "TopicArn")] + (l/info :action "subscription received" :topic stopic :url surl) + (http/send! {:uri surl :method :post :timeout 10000})) - (= mtype "Notification") - (when-let [message (parse-json (get body "Message"))] - (let [notification (parse-notification cfg message)] - (process-report cfg notification))) + (= mtype "Notification") + (when-let [message (parse-json (get body "Message"))] + (let [notification (parse-notification cfg message)] + (process-report cfg notification))) - :else - (l/warn :hint "unexpected data received" - :report (pr-str body))) - {:status 200 :body ""}))) + :else + (l/warn :hint "unexpected data received" + :report (pr-str body)))) + (catch Throwable cause + (l/error :hint "unexpected exception on awsns handler" + :cause cause))) + + (respond {:status 200 :body ""}))) (defn- parse-bounce [data] From dead3138b359274c4b8efd708df4ec60a2d931a5 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 28 Feb 2022 12:07:21 +0100 Subject: [PATCH 146/154] :sparkles: Reduce the size of the default thread pool --- backend/src/app/main.clj | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index b8464c39f1..cd3a547f39 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -26,7 +26,7 @@ ;; Default thread pool for IO operations [::default :app.worker/executor] - {:parallelism (cf/get :default-executor-parallelism 120) + {:parallelism (cf/get :default-executor-parallelism 60) :prefix :default} ;; Constrained thread pool. Should only be used from high demand @@ -57,7 +57,6 @@ :app.migrations/all {:main (ig/ref :app.migrations/migrations)} - :app.msgbus/msgbus {:backend (cf/get :msgbus-backend :redis) :redis-uri (cf/get :redis-uri)} From ecd491cd09ee0080918de69cc71ffd7d2437bffe Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 28 Feb 2022 12:07:44 +0100 Subject: [PATCH 147/154] :bug: Don't mark as touched temporal file --- backend/src/app/rpc/mutations/media.clj | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/src/app/rpc/mutations/media.clj b/backend/src/app/rpc/mutations/media.clj index 8cb0bda1d7..ed9e8acea8 100644 --- a/backend/src/app/rpc/mutations/media.clj +++ b/backend/src/app/rpc/mutations/media.clj @@ -94,7 +94,6 @@ (sto/put-object {:content (sto/content data) :content-type mtype :reference :file-media-object - :touched-at (dt/now) :expired-at (dt/in-future {:minutes 30})})))) ;; NOTE: we use the `on conflict do update` instead of `do nothing` From eb57c2f980a900bf44befddd50d1843f1826a704 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 28 Feb 2022 12:08:05 +0100 Subject: [PATCH 148/154] :lipstick: Cosmetic changes on mutation profile ns --- backend/src/app/rpc/mutations/profile.clj | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/src/app/rpc/mutations/profile.clj b/backend/src/app/rpc/mutations/profile.clj index 944df2fde3..4e2d207c8a 100644 --- a/backend/src/app/rpc/mutations/profile.clj +++ b/backend/src/app/rpc/mutations/profile.clj @@ -278,7 +278,9 @@ :opt-un [::scope ::invitation-token])) (sv/defmethod ::login - {:auth false ::rlimit/permits (cf/get :rlimit-password)} + {:auth false + ::async/dispatch :default + ::rlimit/permits (cf/get :rlimit-password)} [{:keys [pool session tokens] :as cfg} {:keys [email password] :as params}] (letfn [(check-password [profile password] (when (= (:password profile) "!") From f64b1d3651f206ace2dda62940d68e2f1cf16c6c Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 28 Feb 2022 12:08:31 +0100 Subject: [PATCH 149/154] :bug: Properly handle invitations on login --- frontend/src/app/main/data/users.cljs | 56 ++++++++++--------- frontend/src/app/main/ui/auth/login.cljs | 30 +++++++--- frontend/src/app/main/ui/auth/register.cljs | 2 +- .../src/app/main/ui/components/forms.cljs | 1 - 4 files changed, 52 insertions(+), 37 deletions(-) diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index b4eae4da6c..f66c0af21a 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -170,13 +170,15 @@ (get-redirect-event)) (rx/observe-on :async))))))) +(s/def ::invitation-token ::us/not-empty-string) (s/def ::login-params - (s/keys :req-un [::email ::password])) + (s/keys :req-un [::email ::password] + :opt-un [::invitation-token])) (declare login-from-register) (defn login - [{:keys [email password] :as data}] + [{:keys [email password invitation-token] :as data}] (us/verify ::login-params data) (ptk/reify ::login ptk/WatchEvent @@ -184,9 +186,10 @@ (let [{:keys [on-error on-success] :or {on-error rx/throw on-success identity}} (meta data) + params {:email email :password password - :scope "webapp"}] + :invitation-token invitation-token}] ;; NOTE: We can't take the profile value from login because ;; there are cases when login is successfull but the cookie is @@ -197,31 +200,32 @@ ;; the returned profile is an NOT authenticated profile, we ;; proceed to logout and show an error message. - (rx/merge - (->> (rp/mutation :login params) - (rx/map fetch-profile) - (rx/catch on-error)) + (->> (rp/mutation :login (d/without-nils params)) + (rx/merge-map (fn [data] + (rx/merge + (rx/of (fetch-profile)) + (->> stream + (rx/filter profile-fetched?) + (rx/take 1) + (rx/map deref) + (rx/filter (complement is-authenticated?)) + (rx/tap on-error) + (rx/map #(ex/raise :type :authentication)) + (rx/observe-on :async)) - (->> stream - (rx/filter profile-fetched?) - (rx/take 1) - (rx/map deref) - (rx/filter (complement is-authenticated?)) - (rx/tap on-error) - (rx/map #(ex/raise :type :authentication)) - (rx/observe-on :async)) + (->> stream + (rx/filter profile-fetched?) + (rx/take 1) + (rx/map deref) + (rx/filter is-authenticated?) + (rx/map (fn [profile] + (with-meta (merge data profile) + {::ev/source "login"}))) + (rx/tap on-success) + (rx/map logged-in) + (rx/observe-on :async))))) + (rx/catch on-error)))))) - (->> stream - (rx/filter profile-fetched?) - (rx/take 1) - (rx/map deref) - (rx/filter is-authenticated?) - (rx/map (fn [profile] - (with-meta profile - {::ev/source "login"}))) - (rx/tap on-success) - (rx/map logged-in) - (rx/observe-on :async))))))) (defn login-from-token [{:keys [profile] :as tdata}] diff --git a/frontend/src/app/main/ui/auth/login.cljs b/frontend/src/app/main/ui/auth/login.cljs index 58d4f97ecf..936d5ebb0d 100644 --- a/frontend/src/app/main/ui/auth/login.cljs +++ b/frontend/src/app/main/ui/auth/login.cljs @@ -30,9 +30,11 @@ (s/def ::email ::us/email) (s/def ::password ::us/not-empty-string) +(s/def ::invitation-token ::us/not-empty-string) (s/def ::login-form - (s/keys :req-un [::email ::password])) + (s/keys :req-un [::email ::password] + :opt-un [::invitation-token])) (defn- login-with-oauth [event provider params] @@ -62,29 +64,39 @@ (mf/defc login-form [{:keys [params] :as props}] - (let [error (mf/use-state false) - form (fm/use-form :spec ::login-form - :inital {}) + (let [initial (mf/use-memo (mf/deps params) (constantly params)) + + error (mf/use-state false) + form (fm/use-form :spec ::login-form :initial initial) on-error (fn [_] (reset! error (tr "errors.wrong-credentials"))) + on-succes + (fn [data] + (prn "SUCCESS" data) + (when-let [token (:invitation-token data)] + (st/emit! (rt/nav :auth-verify-token {} {:token token})))) + on-submit (mf/use-callback - (mf/deps form) - (fn [_] + (fn [form _event] (reset! error nil) (let [params (with-meta (:clean-data @form) - {:on-error on-error})] + {:on-error on-error + :on-success on-succes})] (st/emit! (du/login params))))) on-submit-ldap (mf/use-callback (mf/deps form) (fn [event] - (let [params (merge (:clean-data @form) params)] - (login-with-ldap event (with-meta params {:on-error on-error})))))] + (reset! error nil) + (let [params (:clean-data @form)] + (login-with-ldap event (with-meta params + {:on-error on-error + :on-success on-succes})))))] [:* (when-let [message @error] diff --git a/frontend/src/app/main/ui/auth/register.cljs b/frontend/src/app/main/ui/auth/register.cljs index c9a2d89a81..84ed3de243 100644 --- a/frontend/src/app/main/ui/auth/register.cljs +++ b/frontend/src/app/main/ui/auth/register.cljs @@ -60,7 +60,7 @@ :email-already-exists (swap! form assoc-in [:errors :email] {:message "errors.email-already-exists"}) - + :email-as-password (swap! form assoc-in [:errors :password] {:message "errors.email-as-password"}) diff --git a/frontend/src/app/main/ui/components/forms.cljs b/frontend/src/app/main/ui/components/forms.cljs index 8d744090be..54022b3faa 100644 --- a/frontend/src/app/main/ui/components/forms.cljs +++ b/frontend/src/app/main/ui/components/forms.cljs @@ -174,7 +174,6 @@ [{:keys [options label form default data-test] :as props :or {default ""}}] (let [input-name (get props :name) - form (or form (mf/use-ctx form-ctx)) value (or (get-in @form [:data input-name]) default) cvalue (d/seek #(= value (:value %)) options) From 1bad233e2f79104a0d1f3e50c11b2c8e26701465 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 28 Feb 2022 12:09:59 +0100 Subject: [PATCH 150/154] :paperclip: Fix linter issues on staging branch --- backend/src/app/http/awsns.clj | 2 +- common/src/app/common/data.cljc | 2 +- common/src/app/common/math.cljc | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/backend/src/app/http/awsns.clj b/backend/src/app/http/awsns.clj index fdf217db78..d4c9eaca4d 100644 --- a/backend/src/app/http/awsns.clj +++ b/backend/src/app/http/awsns.clj @@ -26,7 +26,7 @@ (defmethod ig/init-key ::handler [_ cfg] - (fn [request respond raise] + (fn [request respond _] (try (let [body (parse-json (slurp (:body request))) mtype (get body "Type")] diff --git a/common/src/app/common/data.cljc b/common/src/app/common/data.cljc index 9dfba00ad2..69e30c6a56 100644 --- a/common/src/app/common/data.cljc +++ b/common/src/app/common/data.cljc @@ -6,7 +6,7 @@ (ns app.common.data "Data manipulation and query helper functions." - (:refer-clojure :exclude [read-string hash-map merge name parse-double group-by]) + (:refer-clojure :exclude [read-string hash-map merge name parse-double group-by iteration]) #?(:cljs (:require-macros [app.common.data])) (:require diff --git a/common/src/app/common/math.cljc b/common/src/app/common/math.cljc index 67a327da8c..6b61b3d731 100644 --- a/common/src/app/common/math.cljc +++ b/common/src/app/common/math.cljc @@ -6,6 +6,7 @@ (ns app.common.math "A collection of math utils." + (:refer-clojure :exclude [abs]) #?(:cljs (:require [goog.math :as math]))) From 5d2715dd3267294ae875fbe7e2221ec90b354c51 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 28 Feb 2022 15:25:17 +0100 Subject: [PATCH 151/154] :sparkles: Improve monitors monitor --- backend/src/app/main.clj | 17 +++++++------- backend/src/app/metrics.clj | 6 +++++ backend/src/app/worker.clj | 46 ++++++++++++++++++++++--------------- 3 files changed, 42 insertions(+), 27 deletions(-) diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index cd3a547f39..0248a249c8 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -40,13 +40,14 @@ {:parallelism (cf/get :worker-executor-parallelism 10) :prefix :worker} - :app.worker/executors-monitor - {:executors - {:default (ig/ref [::default :app.worker/executor]) - :blocking (ig/ref [::blocking :app.worker/executor]) - :worker (ig/ref [::worker :app.worker/executor])} + :app.worker/executors + {:default (ig/ref [::default :app.worker/executor]) + :worker (ig/ref [::worker :app.worker/executor]) + :blocking (ig/ref [::blocking :app.worker/executor])} - :metrics (ig/ref :app.metrics/metrics)} + :app.worker/executors-monitor + {:metrics (ig/ref :app.metrics/metrics) + :executors (ig/ref :app.worker/executors)} :app.migrations/migrations {} @@ -155,9 +156,7 @@ :msgbus (ig/ref :app.msgbus/msgbus) :public-uri (cf/get :public-uri) :audit (ig/ref :app.loggers.audit/collector) - :executors - {:default (ig/ref [::default :app.worker/executor]) - :blocking (ig/ref [::blocking :app.worker/executor])}} + :executors (ig/ref :app.worker/executors)} :app.worker/worker {:executor (ig/ref [::worker :app.worker/executor]) diff --git a/backend/src/app/metrics.clj b/backend/src/app/metrics.clj index 7dd65079fb..f21d588895 100644 --- a/backend/src/app/metrics.clj +++ b/backend/src/app/metrics.clj @@ -111,6 +111,12 @@ :labels ["name"] :type :gauge} + :executors-completed-tasks + {:name "penpot_executors_completed_tasks_total" + :help "Aproximate number of completed tasks by the executor." + :labels ["name"] + :type :counter} + :executors-running-threads {:name "penpot_executors_running_threads" :help "Current number of threads with state RUNNING." diff --git a/backend/src/app/worker.clj b/backend/src/app/worker.clj index 684d2da300..96430d2e56 100644 --- a/backend/src/app/worker.clj +++ b/backend/src/app/worker.clj @@ -75,30 +75,40 @@ (s/keys :req-un [::executors ::mtx/metrics])) (defmethod ig/init-key ::executors-monitor - [_ {:keys [executors metrics interval] :or {interval 2500}}] - (letfn [(log-stats [scheduler] + [_ {:keys [executors metrics interval] :or {interval 3000}}] + (letfn [(log-stats [scheduler state] (doseq [[key ^ForkJoinPool executor] executors] - (let [labels (into-array String [(name key)])] - (mtx/run! metrics {:id :executors-active-threads - :labels labels - :val (.getPoolSize executor)}) - (mtx/run! metrics {:id :executors-running-threads - :labels labels - :val (.getRunningThreadCount executor)}) - (mtx/run! metrics {:id :executors-queued-submissions - :labels labels - :val (.getQueuedSubmissionCount executor)}))) + (let [labels (into-array String [(name key)]) + active (.getActiveThreadCount executor) + running (.getRunningThreadCount executor) + queued (.getQueuedSubmissionCount executor) + steals (.getStealCount executor) + steals-increment (- steals (or (get-in @state [key :steals]) 9)) + steals-increment (if (neg? steals-increment) 0 steals-increment)] + + (mtx/run! metrics {:id :executors-active-threads :labels labels :val active}) + (mtx/run! metrics {:id :executors-running-threads :labels labels :val running}) + (mtx/run! metrics {:id :executors-queued-submissions :labels labels :val queued}) + (mtx/run! metrics {:id :executors-completed-tasks :labels labels :inc steals-increment}) + + (swap! state update key assoc + :running running + :active active + :queued queued + :steals steals))) (when-not (.isShutdown scheduler) - (px/schedule! scheduler interval (partial log-stats scheduler))))] + (px/schedule! scheduler interval (partial log-stats scheduler state))))] - (let [scheduler (px/scheduled-pool 1)] - (px/schedule! scheduler interval (partial log-stats scheduler)) - scheduler))) + (let [scheduler (px/scheduled-pool 1) + state (atom {})] + (px/schedule! scheduler interval (partial log-stats scheduler state)) + {::scheduler scheduler + ::state state}))) (defmethod ig/halt-key! ::executors-monitor - [_ instance] - (.shutdown ^ExecutorService instance)) + [_ {:keys [::scheduler]}] + (.shutdown ^ExecutorService scheduler)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Worker From a644599b169bd5ec92de0a2e062e08528bd90d19 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 28 Feb 2022 16:07:43 +0100 Subject: [PATCH 152/154] :bug: Fix problem when disabling grid snap --- frontend/src/app/util/snap_data.cljs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/util/snap_data.cljs b/frontend/src/app/util/snap_data.cljs index 95e0675db5..8c279836d7 100644 --- a/frontend/src/app/util/snap_data.cljs +++ b/frontend/src/app/util/snap_data.cljs @@ -63,14 +63,14 @@ :pt %))) grid-x-data (->> (gg/grid-snap-points frame :x) - (mapv #(array-map :type :grid-x + (mapv #(array-map :type :layout :id frame-id :pt %))) grid-y-data (->> (gg/grid-snap-points frame :y) - (mapv #(array-map :type :grid-y - :id frame-id - :pt %)))] + (mapv #(array-map :type :layout + :id frame-id + :pt %)))] (-> page-data ;; Update root frame information From e60b8a7aeff8de5738331fb037b1ac5690301d38 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 28 Feb 2022 17:21:36 +0100 Subject: [PATCH 153/154] :bug: Minor fix on worker executors monitor --- backend/src/app/worker.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/app/worker.clj b/backend/src/app/worker.clj index 96430d2e56..44b72f63a5 100644 --- a/backend/src/app/worker.clj +++ b/backend/src/app/worker.clj @@ -83,7 +83,7 @@ running (.getRunningThreadCount executor) queued (.getQueuedSubmissionCount executor) steals (.getStealCount executor) - steals-increment (- steals (or (get-in @state [key :steals]) 9)) + steals-increment (- steals (or (get-in @state [key :steals]) 0)) steals-increment (if (neg? steals-increment) 0 steals-increment)] (mtx/run! metrics {:id :executors-active-threads :labels labels :val active}) From 6563cd9c8b405661a17760ac93fdfb1fa4290ee0 Mon Sep 17 00:00:00 2001 From: elhombretecla Date: Fri, 25 Feb 2022 08:22:45 +0100 Subject: [PATCH 154/154] :tada: Add new release info dialog --- .../resources/images/features/1.12-guides.gif | Bin 0 -> 414589 bytes .../resources/images/features/1.12-nudge.gif | Bin 0 -> 83078 bytes .../images/features/1.12-scrollbars.gif | Bin 0 -> 1085843 bytes .../resources/images/features/1.12-ui.gif | Bin 0 -> 350829 bytes frontend/src/app/main/ui/releases.cljs | 5 +- frontend/src/app/main/ui/releases/v1_12.cljs | 107 ++++++++++++++++++ 6 files changed, 110 insertions(+), 2 deletions(-) create mode 100644 frontend/resources/images/features/1.12-guides.gif create mode 100644 frontend/resources/images/features/1.12-nudge.gif create mode 100644 frontend/resources/images/features/1.12-scrollbars.gif create mode 100644 frontend/resources/images/features/1.12-ui.gif create mode 100644 frontend/src/app/main/ui/releases/v1_12.cljs diff --git a/frontend/resources/images/features/1.12-guides.gif b/frontend/resources/images/features/1.12-guides.gif new file mode 100644 index 0000000000000000000000000000000000000000..ea6a0264e9e8fef49f5ff1bdb61e53c2df87c149 GIT binary patch literal 414589 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�?sDU`RUUiapXP&n+4tvj zQnvk}vHW3%wL+c$p?;`!bYDV#>Y<8hiGMjm>F1!*UkqjahsvWR^@|K8E(~ryB^8+r zm8qJkuhzK;N1j#;e_={93QBy4wW^2VD=HRhJ|9)nXg4b`)}7KPtl`#&OV&DRG>Db{ z?Z&MRE^Y8-Y)C!I(m49PQQVx{*ATqWQt?(=ugWkp%BYoHQm4Vt9xU1FsnbCN-^_2* zX?)mtI$!nKR_)oQoZ(m+)wYM8 zj%kP>XrO>eb>F6CieaRlsi(hewE8HijbW_5WN2z(aMxC@@p$Ze=|AkgVe}J)UYlZq za@oX7?<~hZaX>9F(_I5IQ%nK}b^BUSS(d9DA%u5x4 z3l(-tiRFnI<;%fv6BMZ}<0s2YWveL6Yr)Jbi76|$<-P4$!Ymo^Ec@8M_II_n6D#mCE3$IR4rzLK z+A9uRPm5Q}kGolR)=m$rPqX7rkE|S`J(-8_1Rgj zLs`n%#>iY7|us7OW`RUUlprHH;xfMR#oFW?gX3zTPooqSW}13o|_%hG#p`T&M%D}&P&cw zMjW$$IijVV*W^@fA3CDI{%t^hJ4bhRobWuyxT-3gs=8h}M-%u_+3kod_I$k*YG2?q%m4lQf$x0r*YgKz3tN-U#b?HgH7SRyRJMHrAn6?& zsWSq$Ac$BVgmwPFWNDsR~GL(+T`q4NuyMtH(~GduguM^+~=9ho}q7 zk)2`-iN?Z-!l9ZLQcY(7qWN zJ611&od9-P4t6)GkEY%4p+8(Q06jYd-Z_BFpoYsCfrc*Nr=C9rSvOEQ6kZdSFNuTC zA(&GhLebeRsl~yDDNddCR`dQ7hdeAzW4B}x3~j5k;K&u9jg-)y0)9O3U2f-mH}0RD zxh86awm1m)YdFYUU>UE)Y^3;2V3^{&J{1KpxLb%kU75>6ge9gX`HgOoL^zDzt(g~wQ$Ps)ynH~$|ZFv6xPaG z^h@@@=-ywe@Kh?=1b;Q*)Wva;5ctU#QY&QAt?n!)p;>qFol8BYR?7KWKnYe^IN9w0d89dDG+S{ zg=H-TT>w{20K6O6;jP}mK?=bXjAPo3OC<_N27sCP1h38jxz>e*>D{mnqZ57#(M>i*$IFHv;DsFwUvTZkA33A@Y1aIaz=2g?0XW7 z@%hbTK?lID{pZ`z;O7twfV=k=!0?Yi@|_0zLhb^@kt})};L+Uu-gPm}30$p4`1L#U zZMT3cw-DS$bHF{R?L7cf)F*~F*rwnAgL^n(jc=^GIUE@Br!l~wF|en>+u0q~%RP(` z=qcV9E&Yb%tp*Azy$gTijWP)aSl&Oub^ao(^y+9ZUvLll$QN--$dCn^pB@Uhlkr8UnWO$q0(bgp?m4kX{j_qP|agep=VO* zL%~*aLI+E}aF~Ht z!`@r-Z`$Uvr^n_qz9NW6V~1Bgp+M8#Q~tbHIfqwH#8aGRbCbn=eNs#NnShC5Q_EXR zgGq1_ZEJ@cf9IF}ztRs?9V{6=4V_v1T}kfg&iri#t;Uv*tu3C}UxItKp8B1ihZ*~` zv+g^Oo&u#?x|dr^2)ze8_?muu5A}GNE1^Aj3>KP=Jg zQ!wwdWFt_i+1gC%GhHdP3}Knp^y)Z!$<%FIU2mJGlxlH)Ir;oLG~(5aDAZH)+~&;i zG-J>{diMl%sMz-Nneh|e=Xo{a1pLB%SyyY@P!p_o_BF2c-mx$d{eSZL()WBm1o(gR zd1b>;O!)uJC&6QUrUJp__C?@*Q5_xp`+xHJjWAf+|Bp{ng@YrI3@1u)%KI;$^xu45 zWx6v9E>2!+a(|K*eP zD&P4e{ULwY7=AVPOLe)%Dx+*JY${d&Fktn+d{SdWwONXxPmxMb!FU2J1S5jPj`KW; zK$0^a)8DxIolh$Mo~a-}t;J$C49D`dx#28ZjkWbBQOmoYglWUr5GfWI&u-xQ@mXQ@ zE`dNnK~#B?py}?cFDc?}fDr~IifihlhJnaqcToRo*GQIwTkA_XjiRGRfUm6hEuiF^ zI9gN~Caw<>4c@E|>J(fT5mzj5$q%UEuC5x1RS13Olj6TY$m(a(36!cfNP|8Xe2s@g zNH#PKVeQ{n4&|)aHm1?k`|-~2-qNWD!)9a$L`n?b8%2=^Ck){j$PfOBQNERcAV`RU zB;vFP!lL{j?cF$lmq z!A5zHjwNU?J9mfml|xI}u72DH$`$gTFoD2*Y-MosY1p9}@Telfz7-B9Zc8cbojhp9 zVgd!XSc5u~{ps=ou^W)YKbJO)Og_?tOX;hye6rTs=*2gMQ-QibCa@n{3e6sRmE>qaQ3pO|6c0E_~4o z<|4|eRmQ~wd;!9u0{W_hkx~8q#SfWo^#nQgX|uOdxvtwSp0Tu)INsF3K+~!pXNm!4 zOKL7ogYSD*k>He75J;tq(lvsYfAHLHY9t8Rl)u6cr!DQwsSE_+jkZ~>NL=J;0Xd;; zc1B;6wZ+hx;fC%HDVdKO&7k&=`PvKkWL@}4gj|NeFW$g&?TAl?z0jbK{o=!Vt3U?Y2axKV5t5=X{={$JMjVk+@>$ z#e8|eZxU|%{#V-fMS0OAoFEkpL_H_7=4Vfz>D{aSFhNF7EN7q;FwnkP9Q1DS_+vF= zBFt`_L53C$>`D-8X^G(lz$T*bB&>iktWKnuOBvu!P(_)LC=BJ3n95uTV)v(h0CLq3 z@U0ayn7LOJflQvlOqrs4@>vgWQP$ovdKveP{o1N0`eS6zRCpbV?^tP=_CK3t^-m_(hFma;tYz)5^tg*!@G;Z6-=~e#sZc7hp?dU zHXUO+@Yj2zwV!+=evi4006!!~4GJ9^;VqLqERA8oRa!8&oq0E}cLH##FUrb4(lt z$z`nTMBonj7i3D-5AoUL#DaK|jKdNUzYv`ou+;~+Z-Q1>RUL9r>6@hVX8#HXP}6~mur%H4hY>Lo z_D%7|rZ7)~t+P-X=;J^2XFrMKAJ2U>#`>J~94-n6XP#^MDq%Vr(~Y6bFwoSDzYXc~(L@yfE~Sq- zM#iHw)A6VL&f=wAw+t_<)1hqszMpkWO8BxvaXTw+o~0QR@xQ-wo<%e?r46yG@XItq4%Of2|HRjG zf#C{>RnPe6(ocWN+M5b}L`f6srCIo^RA!46M)t8<_ofD@UL&tWm^q|z8)}_RsO*r& zFHi3e*ZOjzrm0K)pdya-sCMK`iXe^&kSktpD|f4bgE3F$snWG|n4$}UHQ)fHJ&ZB? z^*q6;vv%hTQ#J*>(Xiq*0t)a+Y(jbnVR}&F`-(rN_bpJ_620N34JZLV(^r9b90{5n zrgU0@3I&ZA9njI!6ID{~r0BmbgW>GItAsET!58SjP)t16OFR+r^2?5W$aHeaRrA{6 zCWo;GKf2Ubnaw=ad-n81SyzREk-k9#h?p#z#%H=t935I#)`i^~w){`sI=n2dh27fs z+R%L~TUKs--PpGS5u*M!Excb=Gtl>bz$$W^_6zGUNB+Ax-@4mI<1ud0ewBUKy372< zQ-)t^K0>oeRHwUlj_~+~)XC>~h~;UiXYKZ%$%`n?+M_Kf=&tjv?HmKs8;9t{{891s z)WP+6TcCrhZ|?=zS?w)VD!LJ_BvgH2%6j7U_5{V~c)K4^dc910$Dx$o-mYL=-JQ3Oq2?g5NnV>W9XFTSWgyTz^X# zze`*Qdm}_}0U~@45ycA>;|-M13Y2mW{F)pn+ZZUn5U6+`sEik+x{ryW1-78@%K?AD z;|-dw_va3!z6b%M@cQX31TniqI-w|^8-vV{YzRYXdnS;>4E^~Rf(v$oc<4e%2ZLSr zEjizHJT1RQOq8aHkYM-!DW8wm3QKekOHK~6yAF25^SdexNWBM9-3MuJ`g!ApPxgda zI)Rb3LW+=t-0A#r8iTX%!>inbu^0SF@dE0T!yC22X+i@k79t|ABJ%G8dcH;)UxhsF z1@LJ_4C6&j@kY&PMa{WKEhI-RHAby0M6KONLGhxKw1V=qsI-cLCg`Hsup{yZ!%d2! zwQ|GrlY?uKVk9YI42weOEn_6QqaS!f_6K9wFGF^;r~tg7L3FVwO|htpvFH!6nD}wn zd~rD1ai2Zn@KWOb`o|dVhYc0Q#j%CIxB=dhqRHs-iL9cH@8f8#a9=HBYux>57Jso= zMIsbOkiGH#=9Iyur>E?}jC^YRP1odiY5{Hre*n_QlOOoP7ys(Y4w9wE_he1*tYZFe zFP`ull<@6=LGu7n2Ol56nrJGMXn6^EFY|5Abzm_Qf2t%phS9*BBg!?fz(5mSfJx?I zH0bAu)Csla_su)<=)s97f$*oKo`M(c`CU8>iYJr%mBwk7-jCgr$b1WGpphu)i5+ z= znG7wl%mu6L&wsOsr!riJvVq~*D=F!A^f{Ot*+kWu@ZmWaIXQ&bS#Jk9AIP)2WwO&` za?yafC{tO#JaQOxa&cs-E>d#Y82w<{KY^$ZRzLMf*hP>XxjVus3E&x{+{+&g~!ME;8HrOGhtLLec2Pk6<+4%MIGs%3_v2idBFgZvJH%1;6X zA0z(a+f)fQSHh>g8>W9NJpN)5R(D%h=rk7|pky6AR+6Mv#Q`g6BdXco#42%?|Dw12 zkrl80-1|TjkVzo-v|IOn1IxlCK&%FL}*jya#IpY zF)B34w2DPNwJAdvGsmkqo3R-tr`Zi3P+HoYRhnEO(1HkVX&`K=eQJUyZ)yL~QajR8 z{?yVTfZ5&BGFaNuAJH;M*xD!1+9uG}vfMJ-(hT>vwf?F3pIqC}n?UP?TGW1M9r~%nNY$)Q(jphUEx2is)d>>$qKRzdLG&ZS8nH z>Hw5=9=CLs%yhm!b)J9ddLit>i|j1v?Ia}XgthG=dhUQ(>7wxNLiYxcMRrk?bJ6$#sJN8%2g%Bf;>iDHPIH1suIh!k;4wut_Sj4^sKOJ!D@>d0w~nQ?a737r zH1y-gaP=N=kEFhI1iaVE1ucjh6KFVm7&qUD+`R{{vIkDzFwy6rNj6}_rEIjzssW|& zL63Cm4N>&yQN%e>v{NYhH|rrcZ<@%~p^WFD9H!y0bZRIodXgiu;?Lo1y`d8M;W@nj;jf|ik+^s#-S(Ur21In;6ZlYa-c!*iV&3uU8A#}h8vV>6Bb z{MA1rkwe=nV;QJZFWy64W#gBlLz83}C$Uq1BL6+UF-^>zqYp7n5$aP#rXw}>3=O1D z^YBk;!JyBBkt(YG?T${|5sj`wlh}IxeJr06M4MO@oDd`aBcV^Vn>|kRGD$8pBcMRF zt31W_2W_2bPDf~tU3EA#d*(y=B-+?C#@M)ad9JPkl~DOV6rXvj)OkCf8My((>*IM6 zlm)iUx!%ZGcDsQ*z4=I?S&p`;=t#sl$4Tp`d0S%2vFBMj=EZ1*sU4zuexZ5Kli6mX zMfvya|7DmYYB~ySRM2N6NqG!Jyga%x*t0U6>b;c#*U$5T6u>LHtd}(8BNib@n zrF`{>c-6&jct~hv+IA}0XU(&GC=@!G)wY_$yt?zee&MrfH#UX&GR0=M&Z&UFjkb*1 zJ|(P=D5@|4P+Va*p81M49~_kvibm;=I-7{Lme0KAX*WA#w*f!CY8tiFA`hh=Uo*9v zi%p+<^ntnzZSZ6+#Okjyl0a(|)>?@-1eq7Epd(mp-lSB0TOA8m}Ou zty_+7;`^?25%1`;Z22gz|9jcO8($oKW1iqv-1Zb&RT$q#%v}B2J||nTyC$@a`??@z zzZRRhpm74VAlX-2n>#Jv%6Q!l%v|(qTO{*c(Wp2K89OAtMBk1?8uOWULC9U)Imi`b!|MDGygZpcI(^hXaVy&#UAY@jxRHN^4M$ZMUorJ6%^4Xspzb>Q^9mb#TSVtfKu2@V!-;`2ZcxXR-QrwLi z-M+3kyNy2796QO)+%3;sot(hfVcFedIptJDGbBDm!A7sk+#D9p8jU9FeqPOMJNM39 zSS8!@RJ>gCg*Gx>60c{HDv^@Eot;q{oCQShBkP|7{LW!SpjcHb*G-gm?tONo z{*l)zCN+FNzR09*d!2QxygXq!?|xnV`F4$}w7Ug9^E$gxUO)VJI>j1wfh=}X;CpMA zak7lQ?`?32baokvajD>UVWV_GQE@6_um@T{hV8hYAD=|VcnDa(laD#m@3=DXyWW+( z`r?quCPEs{eEUb~mdN0Nef=6^{h|5wfz03{`QLq5+eJO;UHr>zY2~#b#vZM~^7;F+ zlaJ#s7)TKEL(q?7w=4-8pTQ?k_}(&6uHT`^`^eE~6Z)oSN3wu_ zYrhs^=7m0glDCw=>_sY#e($!Er2&sEPon=gzw@h@VpAY~30OYe=BK11+y!G*>6SA>&NQt%bNvKN002Ze9Hqsg0%|*M-(Y2@p+3fbpF`OlDH9tJ8nKM3oFPvl@Da&$GMT7bgXLZ$-SI26E~9D%l%**T74}KDT6X;yC8|UY+vr%7v7=SBjHz^3QS3{X z#K%gSEf|aR-`u8Q!<>70=yFqorjY{tcab&?eN~gi4w-ILQmW%rhptE<$L#S-a?KU0n~hV&tLvz1 z=u0+VGh&4>FbwF2e2UUII>%AhGENFA(ySa6i)idm&ex!@Xqg&mvMSxF&#`HeMHL%w zrq;}HXlRa9KY3+nScM%=D5;%R)g4=P-S`>Ky}S*X{jPms$G}Snxo*$_r##-w2DAvd z7k{mrb~b`U5myQdj>{<-Tf3!FMlfaLnV?EnG<|3+;Y?TEit;~j{}3xlv&gy&UizY$ z5C#te$Z(r`Ae&3Bkj&1LPgd@F^=r6H^TPe!HJJ5Q*`osg|?$%{s3pPkXZT zZ{oM3ITG_p$*P(}Puqya@cUz}zVS;YGCS8N^~STA+tFsmHr*Nf?0BdBHj$I%ZDwlX zmDBE+y2FEBp;^zPMJ?vK^?@$E^dD5q?dg-F1Aq9GZK_o3ulQg?1?@|bxHFVET<*yN zQACl*k)>rxCkT!)9om#RoRC1bP`iOP&?;9H>(JU=xMD>bpWlf%2yRsmH8rf3C2^TfZXa}0!8sYpvz>0R-OtEj#>zFs*1E_-sI4ns3bxo zo0MaoTv~vblt4F9j1>PG5prjru;+e6C%LrwE-#q<^HeNJ>ok6>WA%n&xngdC_d~gyZim8_g`h$mPOyHUUwfOiJX6+vmkhkpz~796w(4-%p*e8WfKCi@2I4S&YTZzPC9*^nI7$j9lLnR?0}ed$i>B}o@WYZZ z3hQv9;$B_?FobKnGl_eSlmClk@@M>m=`5H8FEt_tl{k~}!Tq>G&TrNZk)G<`Xt+vR zQ>;~mJx5AqZwdwiun9evzAcz0_{@Q)D70ngCRlHTOeuQgbB5;T8b1X&_KCvo%4$v| z*U|E!4a1XEX|{XzR|@{H{wg;C?ykQn-TE8+21nV8N@`jA_t)Peqw8E2o+2O+qs`WA ziiQu0N|~YOC=Q2ixHv&lKw25ZZ2PIGrBCmD60ZfY(UrpsH^OALUM)A>9QgeZ#nosO zFr4h#{I#1zldny31E|<7Rmz{#5b`L`GZPys2bgb$;GZfq=O9WF+_hK-oEmOUMzK(d z70e2K(eJkT?dS*$jE_8X{(F>S4+i}TfV1=6Nn7iRY$(~nam+%BB-hNFZAGRT@wO3D zI;{Y~ECxCT;u2Bhar5-($FVAee^|%xqVDDRaY&HbIEU@L)61Tc#i6}oT-?e_BeG~E zIe!2kAY^FD^EZ;L%ZVa+(xOFCrwj~!^9Iw=b>&F9hDRA;%jRJ5F`j{);(5|@EeAp9 zts_oqd4iv^M^9{wG=`I%)Q7*3rM6QyYi|Hu9MMc^1_C#Aav| zxsw>9_@PY0t=1u?Wd2Y1P%43A&N7oIl``q!?19d1Uz(6U&OG|6fX&$I7g@waZYJ`3 zve2=8fHv#=da$cis=SZyrO{nj8y=1CS9I8LxGSOnaBsN03!+OY)U$txPh|r<)m6Kbe>Rof)s(n@R zmZ`rNVI&KpNo#dI#%@9q?1-I1D(<;1u3L+ z`TiN4I){4W@C?^`fE`J`M4kyAeA?qRJ&yY9J^y@wK>jHHd~#jtWpkitbko>eab2`$ zF|kbWG#0gq^+&4>ghiUMoOOz2$k~nMSp^|}b_`={({LGUiR4?Sz!{Gr(_uu@8o1MPc&oi@82 z!l}pS*0m%O^R`Jn4mg;Fx8SB~1Edp-k6-|&VT>~TD@fMwBjPi6;t6+Q#H5pIjnPdD#NNCzSMYfX+NYinSA?}kY z3x-4N6oFnrsA5I_Id*W-1x|KVZ|k;r#3IJ1fHSP30A#>3VAI&gCIs(JrqIq}AR4f! zQ{(K^6oPUDa&EB73}_WkrnwuyQ$-wx$mP@lny7vLT{KI1o7jqM5FL z*hUHY)C=>V7+a^`%LQ?!V}2>3K9FsX z7>?w85dj%$pF*#=biBVmNKD~6R3yDqX9iO+G}r`+c;l6%@r(+O2}Z0cAW(*V|58OX z=ntFS+eF!q(TmO<-exJ-XZ4HT$K*EjrRMyNJ5SW1YFQa zk%EP)2i`bb2IqL&FIuF3ruPj1z<9j=*^{XF0)y$X8t=7t)XNtsUOH`09 zn?oe4nvSbwJ8VoT22#(F4;)BO1|3+}{A3#r{xck;JS-`|5$Pf;9Y`(~FIVLvmb!sU zKQo*^(F1caT*lP0@loPOm#h`hXqP)(sbR1#(@4>RR7P_`r^IMeWF%%0DDOyo#5>ZX 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

    {2b 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

    HJkVz8WMS(g=+yg?bAuE_Vk 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

    p;HbWBqjJeT>;`g5F32LK3&d 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

    SAf@I5y#6R>9CPHYWX8de0T+v_xZ!H9?>nE)7 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

    h|P*WOhE6X0y#HbXnxw4K+zs-cq# za>0x2l8XJIF5a2;Mtiu2)qQ3KzQ*L3y<+mWBSnMcnT+V$3Z2t~QM9%ZO39+;ixj#WkPM14wN0{;BqCkpB9L0yLgsr|F0c=p~egSR5> zi`%9CccoIHvSVw5(#a3)H`d^eb0iuE^E|#jcnrZsXS6jva`LCq1fK=Vi&x=Kz8O&p zU-wILN{(M{o?E86?ss5)roIWiy0yI-IorQ;=jBum>VY$cz%SSRIdW$kr!Ob=v`Q8JQj*3X5U^wuv{4Z5Q--2$7|dwmKvRV+ z=Y?(NQA)&``Rh%DuTdQ%VkakJHyKe%d=Hk*msiUtX``f7mm;y+B=P+oOz}O8p6XM6 z%yl%uO_DxCMDCJf>c?{u>Mp8?RI0Gtd}cC9`r=LcbE==W+oU8?s zA|aC3l|vNrTEY^AeiSCS4Ac@o5rnkEgxq#bWeYIX3uyEUq{hMzTZxWbjb%bcB-N#) zx^_)0sEM4Yoq_fJVCAaIYe%qQXY@S32`q7vq;%Y5m>hioZS`| zEFwFnF1jn+eJfORlN2p4V68LOARE?5-xbZ@)eONK)BXFaU!fz#@j$GP&3?o7Sqh80!*I$1A5mNyQB5D&R2tbuA2n1O1)`5$ER9~LkJ&GcIj4`kFO7YtkBK-8gSHGVKftAi zoYsT)<8jNvu`NT9%e;Jhad%t$G|M@jNWVe+5iB`n>zWB^gU z*bcqeioNMgM;UFOGR8h-f-EyxptASNvd=%|?0>@6>?M>9_+TQIgIAtM#*j~2p3lNi zz*Sx#$WSOzUMSB1IZ-XrXDBu+FScVSaVszJWhlM3#MSI|#SR8*?pnuIfLoIwo?Xwjoq8KzuPc3al9SdVUS4F)bV}nFR zgFIuSdPSo?W0P4$lO1ETTSc=kV@pUyOAKQxZ3UJ9lsgfy6`2tk2*pm)6T}q(g9!Eq z2>5rdGj{D)bZuM1dHW;x0D9mnd(fGB`}~m{pvsZ~uoTw4T$TNTOal^?1M*CR>Xn1~ zOhaas5P8e6Tjj7X(@03=NDR|xa^+|?(-?Xsl2ichbPo!m*ciGE28sU{o_-DvtxQ;d z&^go8edW}3CCZ3Dodfg?Ueyd4^Q_ZPsvZ&2`CcdrXeJWitUU9AdewqH^P*YRq8;;+ zTh)>;^KwYlat!lIa@9&U^Pl3XKh?~uO;xL8%(RAmP$RwMBT%#*wlhu8bR_-^)2Ea9 zk*Gni>^Lw~6hEoxp(R!Of%JA#kXSKKwQ|=95Ve|P(?$eXJwCz2sA(sH13urvhN&>y z*B-ED#}s3i4gBH}gZc_&hamjZ(0rLtq$B_)v8uzmK@QCRb~9+I5n;|kmVF|5j9Vb1 zL$z=a3;FFC)JWCUI*W>|=*eurCzGF4Qq{-kVmIgn7*$RKO8EOpxg?yO=|@ zmokJQorYqfw+9r6vnSfUX(dqmzM>|uWla^%8HV#6{g)*MV!N|97E zjGRF^1j2{1$w~#DUsnTBSx^nwPL5e69cs_W0Epw4s;ISJr0i)Q!PQ@+0-v5IFYzv< zfVG$^gB+^;n`V7;R4kYJwLmEtjBjGJnvQQ0>}pb?=h!fJRDI>@cE~jh$3J0F9+%p`WT8HAf3`6ox>qh(jZgA@vXVxTQ`U7aD(g=hul(w+y;mIL4*7Shr&aH0vM80 zYgEMGRO-J40szt|un0gPENl-nH7B%m50rpEK+{FP^cV>1uV&AwaS^KS-pKpOA3zVK zDU_(0(kPAuP%q%rX>Qa}$p!#~u{s)g(EwU=kl%n0n|It*uEDUd0Lmv=IAj0cGWGuz^_@ujzffO+6qf%3^;NG_FaGZ&a%=uq2d?V1c8?o~ zLz(*m68m^TCi@TS`^^rH?XnUy5ceu@;tFY3F}U_4Z5 z{158OrL~l93vnnzP~R-=Z{Rn%e^K9$Ahhg`e^B2azwlZ(+wLH!uSPaHLDT)kKd7(Y z_}kUv4FvV|)6RZ*et@99p)2bzuP+ePH%HU28-n^iFB$m5;#uT+z>t+fP+y`H!$3?4 z`aCNPc?$^YE20i@D7zgR=@R?WLr`Bg-0$J^#ijX5bk&F3k!)l0-=jDdEj~&@?a~8d zcqM+zz~RyZfB&4$S~YbuZ9t%bO*`Xg7W)d%8&EmN0^#Pc8IJ`l}0|& zwNUs&1KaY^zJ$+HhK>Uf&hnrHE`^a`VGu9l<8WINq-lu}JMl3%rEKrCsW<{qSTH## zAOmVmf;5swifvOsixh_rw1nO(8*0#z1HzzU2_ub48(yhbC~2Lk2V^L z&5OA~--zPQ&c+r)mgfN&M+NY}ES>IntnhX0|BL!QAJ!oCKupILJuujH6Fbi*wZjn9 zw_!;zmb2~jw#=(`GzSF$ZXyr;4Znx<`7)H3*YFsuzSM@r<=_rUlOm^#4AAm9x{=OrekhR| zWYGQ{&Y-&Sad`>Nx}l%sx*+F`$55068j?hY1!ByN41tl@1H^H*u*gdX82?q%z|c>J!AgIp;2s@iIRE`C z7qy5U66y_Txb$I%%|U^!3xRRi1aK!7GCfGf4ZjY4T{uEFc0wWuT%HwZfi0F#h4%j# zzXeDV0Fp3UM8lj4Q>2p=ag=CvDJb8hFHg{3)zM?#r@VD(F(4;za-`^z;-Lz(t*l%5EWo5-}ZoU7v>% zU?GA-q!e;Imk)<)ae7aW6>c?9KnV3oLd***L3^MOSNM~-Dj!y|TLaY=A_5TWk3s}d zQ2vc3jqr7IYry!4&o#d>a$99>TO=v!L$b;wgRsqT z>X>B`v$QRe0^~5Qnk?6eh}v4KuY9p7f56Q}xI*ABLvs1-T{TSr)!tB?dWY8_(HdK* z0YW=g=U7s$M&1AvfKhXRkE@7y&Dwzc8*aPueI06WmJ&NLZj;k}J#zS|k?;%7RKk6O zj?bEz(hr>Ry8FiY_)}dYYn(aoEM8+pr>&xHh0g4LQ?uX}vjgwT>el%{Q^Tk*5=R^W zhT6Xsw9o^W&%XvM(A>IYdk&ZSqI*u1+eYkv?p(pBcc9PRw)n>4&bg^~8S&7$@YUY! zgJRGpT__k%4`{N-p8t*d*7_q%APCfMA#3#X`y%}h)c3KE0K^tZZWN)tTk6#EW8fpl zf1|z{6We$g1Q;6hqJ+A-nHWTW zR1qF_xCPaqg{x*f+Rnl6$NKJmV`u-@Q(H&@_+`kwbq>wW_91;8pyA%K#C9Hlp!@fU z%e@Wh{6b$Sa|_G-vHO$nr5&U0=FPfCFTdSYtf==UBKW{#fB=p-dq0U1kd#~9* zJ=c;CK1Z@CZF2=6mm1c!Ls9akg;9N%deP2PF@yHsgJkZN{clIcIqi#8?|0S1UoVU{ z+E>rk@4Hp9&NUET7DJhL+}hi(@Rqo@V!JLKG_tNWQh)Au8`_$)uHJN>b05-O*v!Q0 zA9dhC5k+9aE;hg4Rl56}8Yui&nX|vI5A8g6wSW1uk^Rs;>~rZe^-M?60xvm|@$;l7 zG@Co;Y2u)t=#lvCf3f#gVNo`G-!9!Tga|`}K??{{L#TA4pfrf62uLW>-3;AB4c*-^ z4Bg$`(w!nb>+*h{XT9$i8{gVn8{ZxW8*I!09M_!l|DER!>iTMM>*zdN?QV1U@_MxN z0`*`<9p}YL`t>5p{;ZhP?Vy42cEnopPi3k5JKc(3z^o`jd)6xu!`az6a>K75y6&+ELz>b%5fymxW|nX=CVc~4q1 zx0iVCuV=i3dVCqTU7NaaUw!eT+4hwZ_8WNb_r3>52hT@O-dD57)ri_(1Lk|Z<@Y(z zf9Q+x^pw>nV`HGDJme6-Qs;3JfGhM4^OHKJ=eBc;oMhD>mxeDcZCfra@h)uvfl$

    $Xg)cNi9u0d1E7<`Z7lifLk+9o_u*8w5q6J#s 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 literal 0 HcmV?d00001 diff --git a/frontend/resources/images/features/1.12-nudge.gif b/frontend/resources/images/features/1.12-nudge.gif new file mode 100644 index 0000000000000000000000000000000000000000..b4d226f7c438210b0dd68fdbdc0e250bcf0f5830 GIT binary patch literal 83078 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

    G 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

    4L)I$=fd`79O*OZw1MdOsNZ4ub75 z#CAim9VqN8BKBnq_W2a{893uHB%{tS;~_Mo3YBr6m{Hb}Q9PAF0^{yMa0EkKHWY_P z;jlzpY6~uD3KtK?$3XBHLp%zKN1*U`iTJPZ`=dOVe@FP*1u$8OXB%ZB842@pt6=B(k%Xs z90s&0?*@|31`&{nof?4M^TI%f!l2N?V0>X{Ltz*|4sR5~1d1HZhz^UP>DRC zJ^p~s@d3l_2TYk1Z>+Z=U!!PyCxF{>>Br=81pv#Q&pt;*}pm+ac)2?5R^88!v`-d|Mmw z%Xi&(QigUf)4`l2V2(yGJ9n5Z8fHa;oo$6#kYT2Da3cx0z7br<9j=XrYmwmUt#B1G zT#*hTFM&8}gphJaK+p&=65?XMo0oQSsEo_}!QBTa)qYv4J`WfdJAV>TP{U=P1i-|6 zxFp{7M30^%;q@dD{$w%DWbv7#YcPhSq+}T!2e~KtPYqWj1<-KSyi(eC6H_!z547~8 z037bA^%Q`^HL#~}xW?^_X7#BS(oAR8QvnY5D2~G6LPFB)aA^+pX--3F&g*Fu4p$+K z!r>B9&r1Ko;Vz`#V8r^{V*^950XS?>F*dj!8$N`EwPO)pSc-;gnSsG&MAv7;4rRpK zXY6aZZuYozQ;zvW+-@Qc&~US7SPA@iiiWF$-}J+iiYXdySuuXS2M=htRnnP1EHn2t zT&oZqpy4L0XEyO?HEU+Qw9je{$)aeuO_>x8_flqUeR`K>cAtHAe@ONqE_=8>`{PhH zU=ve1YA)lF0S=dJ%0C^F^97gltv+XNC}&|k=R1Gyk|tmi=dOk1Zs2ma>T`F7azPup z)B*%rEdrebfgzN@geNe|WRvYr(L0E-XyqMn$m0slX*8SzL5hYz3F@ARbSF>$!$1x&+Md&_Aq!+QyifPrAHcDa{JmE<4?Ov8R4 zd2BAOZPWstp6YM#%IdsQpBiB_5q&@>r^9og(^Jh{1XT}0&B*6iXjVGIleW))>RO+L zc7;K137^*b>d}LKo(|NxOndd^J9g$|KU$nX;Mm@M>dq{kji|R>6+YuMaTW1A=BUe= zMUC%00Lzpc-?RRsudn**qj2romHC(Tw{{a)pKV=RoVc0ka#r9@=-9W3>p{ED&$iba z4@)$@8S&qN-#HB#g`MI^Oby+JO!r^)Vgc%0=$i{ik#5;)7i`4~67$f~e$%3n3YJo0 zj=8Euht!XdFauCtv7+&qoFVsoq(c8-zrCuUPEOp3PbRPn$5*5#?PwY_CX+5OdWt7o zXc2khP8-eiIa^WcT~(qqbuNH`K&f+?`JB7g z>51g=-s|+7&X1+kxllSifjSpTr{~^eCD7>!)VWYPJ=1|HpuG`~vRYt}1L*XWq0oLn zr)M3xgwp9r8S$WWdj3NDQ93<)jDR|qzViU>2SB2;K%L9i*+-*5olD(hI#A~_P5OoQ zn}4#@4|IC2k%2mwt(C7poeRC}0#N7TL!teEPETfapw5NeSauQU^z>P5;qxe4Y!$q< zNBhYFot{{q??9&~ARov+`u4q3;T6#7sWRXLbb3-uuM?~P`^toc`s~s>OJlj^zW>9@ z#Go72cV)=4u>8-J3BOlzs~`VdnJ8cV6t=oMyE+1+mtPx2@?KjT!$?-FjmN6btxY5v z%dbzSUbwansD2gez@gc@*C3y*lQazMTHd`U&|{q2>Hx8}E3M$}@)pYQMPY^}}%^VrM;5WPtgwZH<5!Gb`|+tx&>HCR!?p(~0zLae1gLs7;|R^*q(i;FbbAR&+> zFlv(p`q!w zn)5-eV4DBT zbiqH~760)MBfubf%73stpo8Mst3aMGh!v((ASa8qQS5?(V1HsKR>843%hbA{3$GDS z_cp7g%hadOFvPh5u%WZJh0W@9nmL(t$Yp#%OK6pt7Nu zi*HI)aY5yd27OnkKZY|HQ)OzJb{|^M4-aud|$S^s%3VP6Rjo(^=prY z{B!%2!))W9709)-f3{!U@{I){{=EYE757F2r2-jfzhcAAJ>GA>qD?4Q5CI+kUnZBZ ATmS$7 literal 0 HcmV?d00001 diff --git a/frontend/resources/images/features/1.12-scrollbars.gif b/frontend/resources/images/features/1.12-scrollbars.gif new file mode 100644 index 0000000000000000000000000000000000000000..09a8b1444e02a1b7e1fa6fe4672a3480f0ebe1ea GIT binary patch literal 1085843 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�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 z

    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�C>>Hkr9HBlN=-k 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%0DF8hQR*D{K-La4gYEoI1?tAAU;z)%Yi> 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

    `N6E0FwwExwW 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

    M8GXI5Khe_htZC&FI1xwn_T+IuFkjj`I> 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%0Dm47 z5jnuzjBl(eILZ@$`#YNcfz!lfV0CfeCm@Zp1WrJsJ3OKNX92QEPSgi^a>XtGT`^7v z&Im(F+@TJgY>N%5oh>i0ti; zSLlr9%ED$K^buafTfhw#M#D+@jGnj*_-#v?h^Lo{N;5LV$qB%Mt{=oaQix}!k##Ue z*E*!*5#x?0MiCL=y=<joYJT#0DnD$Rqhz5a69xgl9}T^ma01Fhpq>Qz& z%W5FXJ%0WEViGYSWlJz*8>UehSs*fGeM@yi)LP7U6QegLOUa}+!h<(gTd@&e&j>C@VMac*$hJznCS zMW<#E5i@Q_`)n1S2P0EQU~@1KY2hYGbUTA-r-oHz%NOK8=_{z5HW4<(lkwBAzWho< z91_DVJKnlFGv2k58qeSe~Kfn z&r6(rBpdPrVaxz|CujkNL-_zl4yrcaIRa}5BZl;QP8EMDhWO+ePAIyYDmLX}t}Z$l z>mnu;Kgp&FaCMRJWRd7;kr--;1apa$a*2#{iCl7tLUW1IY>CQki8^eFCUuFpxA_p3 zlNUW9VoFV{xYeS0NmrkgC0ET*wT{t^H6n`vPrnIdeYk}EpvHNU%tfd!th-DpRz*+Q zz=ovG2nFPAZD48;F6gHr@e!ef$I98Op-RX|oXIY>xeUO zQaRL`$|{4bUb8o=l7m`R=3D<$Rj4ql^#h68c2?cZY~@>N?beUA8E1M4xmDq(^#Dw2 zJ!@^{-BnM;47*b8)u~3u*xH|d3rSgQ?(mdBlq}Aao4SH@8P^QM@S9-=8fm?-4AvVmO{)>JI;l{)mU>kB zO`BrB*E2EKzpbvG-0J4d>dJ-H#o5)RH0hZm>G^$ZluIt>32xOq=@psjHQ254o2gS~ z>)A(c`F^a$q;8dlQ4}&(H!4QesBJV!(xqeS7q=Go)>2aiueY8QM!o7rjc)Zl>FY5v z^yul9^;Rdw>IWw2Yx-$7A?>*48Vr?gwCx%=L+#8{>W}&9kCSc92^wa)>2zqWI1kp7*yD4ZX&VFw(j~!Zbna0wI6DOy6rYsYq!aKbVo-uho^Qo8OaA`4Nj3XaM+C& z3`-m+$<?BJ;j!So{BU`_Wm-`+E?K9y zt1g4Sk!3ENdG9Ds{p$WGD?#mfdD` {E1s=WO&-1{x3nfsa{BE{^L9k+^=c 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 z%0A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

    VQb-8Da0=t{%Kk{0^Xq<^F0z-kX_JQVv|}G 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

    ;JX(iM_{*$QfFO;0=`#)Z~?e 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 z zWVC3E7ikJrws_XMaZ2250(YT|KdsvcE`2F8LQTMd>10NHHiWa5xul)!ws z*MS}6dprJ|9(VmH@`gm*8L^PL3&o^sb%~p@NPB5Y8!8{RS};P|ygYk($oYsHf$SDM z&OTL|+(*b#1%9!vT-sFGdqhK?U&|{R6pxc1OAJ3Li~09N-A1C%cosKT$9* zRK}=y;`yYk#P*S^H6!|#+*QH^6LvLZwCs`A>W1!Eq7K_t;Qy;Zf$3D0dp;~z&sJao zbGeC~k;L6|ZS@dULk@D6%gEDh;ak7~fx;(53bqJFrMGaUq&nyenJujsbf;w~C4i>t zG{);p^HL&xQ3;w;GbxdFDc*!{$Ar>`Aq4i?CG2+OaoD^xB! z%weE`7Qvam4<{b=&FbG8!STu}xbpFx`~!ie=4mE592x=pMM#DE(UNDp=SG2=^QkD( zRgjBajd5)T@&OJ%r#apj+#t9M8@F$&)LFKoVvO8RRxLhlSUYVrmRPj%6q2`EX6DZ; zDL0aQ%IgLtE-z6CvtQ_}&*|#o_H2v_{N!7>H({TXkHz0=&1KE!E;Af1X0b(i=8hxC z-I)Fq{LWETIg!8e6ZTwslzyx$a&|}vCE24pQcL`uL_sG%uoZlR-lrt&Y*wZ_X#eTS zf&bPi4K-~2Ly6~%ftj;YQ^*nRR}W~sZ*K09?y2K z;$geaDh#500U_uQWv?{0`uj@n%?rvD{`z5k>CC;dBlGSsx%Gc;T_z~!DlnJDYhSk@ zOyS==j9$O+K2~&(Z(hASYL3Rvr5IK4y-sykTb(DfwraQJb{YD9tW)&Vsj)0X9gTe| z-u;5F-?}cl(_tpb!>!BOT_bT}F_g#WtkHeC_H_6@K4|#q) zO^5p47Jc?P)%f+iJnVbl*zI%a{_Euz(vQc%&%QS=r8YvF0kO^R&TpE394@G5;3J&) zJ_}UXO!g265V_T>-{xAdn{+?hd}b18fNRJaJ;gOYX3aZ(3n-&wJ0Y??zY*p=D7Imf z#w~dwJ@LHMAD-A_=)<8aaP-FL9pRkm$3!UP5LDCNUh)XsK@ao z=`)#vr$nT3Ur=@X0vx{F!THg5KvJQ7Fo0ND^h{sxOxQy{TW&nETY;YvTm&+-pWU|m z(|My@;1`5-kqBrX88VsTbE=43KdH7T5ZqLv)Eh8E@!1q2LK4Q2R3kwGV%SG!U_>&; z8B{8y`YZYcD3uj^n$CM0k>f}gXiN--e>?m)@cBE$JG|FB58@5X{t^|oJu0F^%<3c% zriuW~N&j5vM;0hWqR_?_)mN!qDT0P30Tx4o+NQ2n-!9ml~GFKT`6gh1TxvcDm$j}H64-^L(MP}2eMKArX297 z{49qHk|zm+oQwJ6BF}`k9FsG{f&e1{J;XsS^zLF|8>5xcs#4D;Beb|;UvWVS-y@>r zz=Zu$`6IbO6_ontHN{1Qdym9Og{9_?-PDgIs*3su zq6Y8u>v0T+r->JT4@;5>LyjzLN*eBXDodQr$ejygc`RFqA8$Rc7C!$VVFUVskZ)Po z2!@lpE*P>Vk(soT<5`=a5|FG=ldCSq&-U-n%1a*=%eelaj%VJp=lCzS&&@a~;{EleeY z4lcLUJ((ypm#5D#lXk4iKQ44#ZVdcBXNw`JZgxVX3CL-~RjhO59r8@K5uMpiQb;8E z`p%3TB^U!d7wI-v&|=vb)JhofRN$(cMm9f%F4X182_?SECgy^Y^(#dyPM2&)-PhDX zPyE-SawFpjv65%YaTUPS zG57xiRu;|kH_i(T&I>Ni3mwc0-_3tUToA!qfY2;_;aU(CUl3DU5I0+pa9xlLUXV&& zkSOQ<|LlF7KmdjuezPq*hT5@^rXl0M ztmwQfdZHnltl@ZoJZ-4qOOucpm>i%6cAeCS9H~OE(mah^sZfc4{b)=)A=eD15sY4J zjlx^uuXwAF(To&|4^I|OOpYU@YM(Y?-UVwldaoq>MNMdoi`!f-5?!$o*E(L;8flNp z8PpiMK|N{H(iG76aVMC;xXMt zYhE-P?Nse!Ol$3#Iv9?tIcl98&zb-#p=>?fOBJ0bkBuzejWBwQi(}o`dM)BSt-!sF zcAxc`WL*U&)beqiNfW-Y&W+28#4;b9Qe{26e$CoUy;;3A*pLr)(j@xAxL$rR3babM zCOKgXUD)F>#5yd*vNYtIUuebRW?NC)Zn9pDiRPhe(=5$q_U0xOUH>+o%^f-FkJ;w(#a6-0*53BkU&N$ImbSSfjej)1CI`2Ea~Z%6wEzBH zEz=YF&s~fAg@S>oRukge^6QstZ3Yc*OLC{ffdQzv9iD6lk#=pKrsSWGAy&>t-vM^| z!6pH#uoKh}wc1cEYzp&mvw9K(oFas1Zgh*T>-`rK?%is1fe~R$aif|M?q#QCj}b{s z2)h0%1{q)Rdt(^hE=|`OCF^pD&vFqSE;;@N%b^g=*Y6iYwV_sx@e80M_y8T7)&%k0 z@(4OMj)ZYw=PvuG)+E>7Z)ZgAYC{eilvh_hz9AOhKYHVT_c$<24@mXt&2>8wO=bRd zzNg(s_1$Y3G!~ySNVnTmx?dN%Pmtu^y&1%66EzvA5|O7hRXaAF8QiZK+~4Cmm}5M^ zyx(v9yQ$8agdb$aopP|%qTgC%LizPj=z16K>yA!Wvqi{Z6UiY1tGO<|$%h|j?~;qO~>9!=YxIqGr; zM@bM{XTUEFQ<^ zEX3iTNYR`m_%0+$SjAl)Cr?>Eae)HePLg5_f;5lQ&8>pdEJMf#m4cF$2U^(B)nmy( z`K)0RBq({b(dJN*;}sd+_bLT)X)L^okh{0ORzPJ}aRzcr_5Ep$lJ&+@TFuwULC@2e zgi}|B3}h*r>2e~v1C`1pYkzuaPU^EJw(5*ln+iXfJUK?*g*khMjD@_kdvc@|hCb!0 zGx?1(fwyrDJb*m_9W0YxV%{8JnmlP~Yce+F6n5SelN&Lwh`oB=BPjm>B5N?3p0h^= zI|Ww_yhlW^Jw7I8^odoDB7{?8D$Ejx&2W#0mz~~UrTvK-9`ub>e{9U1AzLB~mlKQ2WBYgj4UrstpuM{A?UC#wxF z@27392}n1{yIzP)-uSEthS^w>8byC9@3>jtYy)TdOu% zj(7^m4;yvq&=pUE)&fqtVJ3A>^{Zs|8h@Z8_w`|@ewYtNA0GB9?);(YE}^R$C7A`I zY3?v`j+2LnruY6=cVXEKPq#TyPqlOY;ka`5XIgdV=1c+GO53Ys<YI^vYP$xS+K zF zAt9?OY`VSkRDlBl1QEd0rHCRG0sn!O$5(j(a{%D>%Ho=`7lPO*a(;Ym(vJ*y_hfUd zKppH3_dhD9wG_K_n3p{7WeDIUQaWVs0M2SAxH#-`E9^DP0*vR5p zI}Tmuy`~ovpOcLq7uAAH)Bajh_tX@lV}Rz4rh$ZddlQTGf%jernV3DfpLvqSP4eYm zfyb-eUMf~Xt%AOx9V+)K+u3W6P-jx@%JB4t+hYW0es^syVV8d+w0_PyuLQqbu>EOQ zE#Ivc{&KhHs#pI(rNy}!yd6$MV2PkUsNoKZ;H3_+&cnrxe z$nn7{%JA?*iab*{$Z^>ac4N8Po@lcieS?hEwXb^Mvk4p*A|l6XkJQwtdp#2X7f*XA zh`hATikU%Nj5w*p>a?kV1F_RXMHXwWRE>YHg-PidED)v|4yyrLNb`tonrSkDcmsw1_yWU5HD>M(r8XKO@x^ zo!6sq_fzp1e_aUFsFlgc6X(rnC#`R8dtvPevbx6Xyj!#Rjh|6xonic*#X4Vn?JFlR zcSJk$LvughOQp9H;|N{*@=cIxd%BXeAxCnyjFKN}W>aZ3`mn&KQ5qz5im|J3cX|kn zg-9;n8mE<#$p=}$nxl}6>a{N1z11mC)3SDuH6Y0MOuq##ZoRhDD|n)QR7qBdOO#%t z^rp2c3F&SOSYS~#j0dCPF5qpJY4X_LM|7EiVxvRXC=wIT$}N$G%!kcYI(dFwZM{5n z0zyXaT60cp-L=BHS$4a=8Sn4zdFi}1RAaeM>XpLoJNb^XQ86fX(B_xpcQqLF+tf;A zS#|ei>Z<-6)bLC_pXaRm3S2fc6FsjM|GZ2+tw9a(xWMY#dfuhMH+bEjIQl1eJBw4) zx>E{||2ox$`s3lZA=8i7vr#%}zTcB7tU_;KrNQC-0nbmL`!aXT<=2#01MGd+&azb3 z%XmV!FaZ9T@AP28%cpm1^--gB3vbX9Z6ZAr_qZokNZt>>1G+%lQoSNw^M5$I%cVHl zwgJ~baGOB`gajL$;O_439^7?s2n2U`2=4Cg?rsSZ+}#~!@x1G+wE=4b`cKzg)m>Nj zbsoQZP7I=5;e}ybO9L=qx86j9dvWS!^zOq`c|gKH!7UrF)$sfL*1Ya`8g z$q434hS=(AqwIc?5$;e8bIsL8yLOO$yZMN&U)RR`7hV5EJtBlz7aPnABE>2l5o4~4 zi~b1$kx`FIDc8j(cYr8ZN=N0ubun$4&?xG@pA_T4iMgnS)ZOruVAMW&cdJ1^?ywQa zlx9#eA`BtD(^IDIk_<^p1xBa%{W#`PpA}A@a@1IFBC=8rZ5?j`Zi#ZD#fmcTBva8M zd>$c=RwZ%U5nySE>REpi*4zkkh2gy~OXn zEsC)Y4>rsw7X5wM2)@C5dCZZ#Ty$>>k$hqWtT+)G6?|AvaDHQvqM-E6Eg3CBvSP4< zQ-KeR9G7z0TvAs^uDAh!G!cA|Rg(~%3511Rae07tNr!X0-d z#s|^2RNmG~g`6NGi!F!}JuFR*pJpW1f2aWcIX)EIcrlL(zNm<6L{rFUDl-^TTnvVx z60m2@3i1>!I}?o+Q(KNz@lY#w-7RA!>YKC=N+Q*uE_a?Gz*?3Js@!z6&e$Z-DDVua z`WknP%UGs0yi~-sawTbUeWVfFr9y>{PZu`esp$t=s1#il2tzGSD;_SKM1h@wyHLJ(ITA$MG< zA7x=}%7qkEa?-M3q<+LYoD7Ad60rWXych5K9YNSOOm!9bR}i*#QSL;bKB8#g}7Sh$ZKba<7F?X!6_-juJ<*cHGCTircYd^85F4%{V#jUOVgsldJa<&z5A$ACAZgFYQ=PyNh*xYVS z0a3GbXrv^SHPLy{ImYmx+nbZo8*+m3iEVM8>L-;XRdQ(04w!N`;RQJRu%-gletgN= zeMe^@rMn7~>7X`6zimdrvdaUy^R~NkR!$LKfF(_ckMUjIagk$^>O1ymADFsWvhd~1 zQ^@y-lXT-cQvIqgO8G;Mr_;E<+4YGRTq!GMPbSzq*guhdeR#C@(4&ou2;8mUYwf@& zn1cP`c~lg4Bd^E~y}6ry;3`^~Kt!Kuzz!PARd1U>sJ}|({kL-=d%Iw-a~F>Sb#k-L z)EE4efDLw>BGym?(Nt0nY`?>dT^O#B~9D z*NNjV)XYw)&~HHh3`KZ30DadZ_x7LPg=#$A>FZj5V zZrx-h-<}=#Z+~N=9}09o--UXtq{AF8Bh+2#`tY6;Bi@iRJwNL{j!#W(-j{r&4f z{<_i*JZs)5K5>p%m+z%?j#YO*(ESz~Nu;E@uJxubQLtfL@#Fg_PT0W4_3Xxr-|*X& z{>38vvY5_CHVo1m_rNs}LJ|r!1PhIx4lN7|Ll6vu8}yPC`oRWE6T(T1z-caIhdC_3 zu6=-&1|QRrKhOwpvc9+teeI=^kG7k5Pa7fyUlEfbIblge1{p+>83u+0#7Y$gpVrkS zBC|qav#|K#Y0nIP*<@qX#rd0r^t^5Kh~_*p<%&cSA1eg{|6j0Dn#6Ddj%D|MVCA`? zNeM}K?S`-giNC{EsEz)DUod?17J+T>Db9)+cCLZVZxVHl&CV1_94jp&&FnKY6zCdav> zkulvH5#!{$!{vXNWGw9YEc|4w;`yxdWFI?=Z2DyEX8G)PWE`&f96n^6!TFrgWL(Ml zTv=q?Mfu!SWIRpzJY8hGL;1W@WPD4Ie7Vn-z%Lfh1fDBz!=U!3C1hAgSa6sVtCmQGs+7 zNT#VkrVAuHR3JMAl3OZ}TL;PS7s#K36z&TY-a(4+g^K9pO1One-^i6I3YF=}RoDwv z_{mkp3svRG)zk~s^vTuD3f1k%HCzin##Wlag__ZOXMu`1TZ-sWXxe?iw~D>ioIQ*y zg;^?~WI8!cCAkg-x_%cq1{10-{OnUAP|v48PaZ?xP673-@Tz6c=zUL@6ywKOp(H_U zK?czH+4Ki`90r@28S*|l8wAZHzVPi3w7v;2Z8EiFjIyX2wUnpWC!97eqG)TN5Sc4F z-zArF4LRA|M-vOTN-prZEHeBXYX(n&U`t{4k=XGmGM|&xMh95En%U`(InBksp8}A- z7Nd&oLpbGK`6C|O6lHyh~`4#!|q)%w(;f`UWL`Bo$R}1Sc|Q=n zz<&Mklbk{<`;4m5 z2_t0zzAf=OxA2gs7KBHPK%aF^70cMC`e|hm8aw4OnaWmj;Z%K(+{X9G~@j3W)(q~f2_1`>FsZ4yf zwhePacOk?^Ci9rK3+#ilG!pa5zf;1_{>Wp$W>)?VldK+0TI7e%8(3V@2eCB3MBetu zsm=bS(EN)$ygsD1{9L)xRk>DrHs={KgE?vg6i%$wkKoJO1TR=MXeQbUMPR_}+L;7O zZHL`Lpx{YEb7yl8qpN@f##({&M@4po>GWDTRmVkk<(=mz(USOiA>q#OSy2d6%jcp6 z!4q_+9Fvu@xa;C0YUkl0gE$O|q5~H+bO(ChBRI!O-d%tl%?+cC7y?lMCqh%l1&^PkSuEGt*m5oQG*@`${k?CVqt5b z05!1#2rNKG7)l4IgFFMqPXH=L7?w-7S9n;gnh$wGQ4{_Xw`6k7g=*OF^ZA&oY8Zki zsMJ(8I76brE)>dr@GqCO&w#rBmc7>NcLBKbMdj74tWfj>2}swxH?)`@A%lB|%F{Q< z03sIR%T*7Y$gWIeCd%`vn}wA0-uMBs+2$;x*56C+tr|;*TJ6)znLEZHrci|PYM>Y6 z7J;})g|6L{#TeA1In2%Ll2#6ds^983!A9eMWRsyL} zIn3${$_-4aOHKYNZq^Y5*ttgOP%vCD#0;`A)eGCvKP!s{hKZ6T3|@&1v}8hpa6=tm zdt|y?ODfh_O283M+G6*8V{Dc1t<>YR8kV`0)TxVFtLbn)5x`Wjw!l6pNY2SH){Qk7@5 z2^&orN=(qUaiOU43vFPoDT91 z8qs!36LsKCoA}*@50) zlX^2t61%857HcVgRQO1>Fhe+Q^N|?u<#ebu2FKt;iz{d&+1fnJm<5&LO4&)<(p_5G z{UDw$U_dP6!QxfUDPEPp>mD3}YD9-bd2%D>iuWb`kyS>*`aSAAI z{B3Z<83QsYZuTGg9J;c9EF{7v0ZAqzqU`WROYxk$Z##Fj3Qf7O8QbrI;0qe>vLlvh zw@AQg@y=`mz`7ydq^Nu^iGe0WfQKvir3n6@31VLVLX`!86c)%IwES^`y)!NiuC7%8 zwLy;M)_J-vygZwDx(~{H04E*4>G~);`WSfoIXe0Ucn2gp1{8P)H97`=@D7=G4B7Jz zyLAlz;vEU;7>VH>wLVoyLS!a2md)xwP)<{zeiF4C5;cb}zEQEw-sRC_D(RF`4V5|7 zW0D&C8Mg4s{jWo6|K}I!mQYT{v0JDKj)Iv4N!m2lMVX9>VrS_`vN?`{sr;YXqIgSS z?3oag1qFXvugq1WYpN!ej(M97LCsqQyFMn~HAgu~WTau+{2fro19jDSr^VyQW z-G`6xEH;Ht{1o%aupAxL+jOx#%$2+qJTwnmxgj|&4%(cj=jBonI=$7#dxt{T7kXR? zCGLvK;P?Mq7bXWMovw4xi{wDp<`x<_>!qPx^N4vr?EUDi9lGSc5co*@uLbn$$mwl0 zfKdiy$if=nD6qRW&}~SVc=`waepqJP6z8fHM$m?2Au1?*d)!FL*CeLKJ0F z-DG64>kJg;{fQtR`*Sp@DqXHx|NnuNj>f}YnfyVLhmOK!>a^Vj$T|7z0YAKKiX2j} zy1|ol;%b`i<72}*ji@wUL$NJIsNVg^efFQSUF~mq% zh9mS<8If^lEJ3yxPL4*t6@esDu`dNr_mX#4*GsW|nufJha1b$VBIg$GnUWsLQ@f%O zPEAI!?giIrEGL}G0Z4ju56QO?OmpW6tBr<7QXU}*ql+Iwij!3yMM5AM7^TdOjE}{R z8CPsYlbSP%_}+RNFN1(pKT=%*v=WPW=9QuA{gz&eUKXNmb(4)_sESHDVU>@T*J$z6 zrn%cwM|nmF>HC7>PK7M`IOq?nHEk8@3KHoz_IymH$8Z@rUs!XMQuzUpcUefl469|+ zAj~NfBhsWv6~b3Ql-iP3g4IQ@Xnnb~;v=@~Y##e>X)LB*CjC#gA(Vn zqg*49o-xRII)7<#4oRNbZjz~dv4YS47D0GU73vv_bk1fGA%Wx=1cSVwUcq<@yGclL z2fWs0nic7;8t5G4`N_O+w--kerS+h5zYJ$R=o&>)qi2p9rEcdKQQ-aBzSWxl@6mqL zQtdQtQm>S+85&~n{&-Y6Jk|k1a65fyE5BHO>E_rG>ShjWynDHs1&rorMeuXiKg@lA zm95%B3I5;cIiz}?o-Tg)-qrr$fuP0unlQ~l2bu6!iitDZgzG_*95z3jq6@DX{(xn| z>wdw|fkJ__BuR38{mu`%H0ZvZnM2X_L0S}cUg z%9P^nWAooGsl+AHmA@u05G6fQN~#ge6Vx>n5~-EQI<^U?H{BKjCyx|dw4o($`-#LV zsih%)=?jQ;3&dhBMf4spD$(#X*5jJeq@;Wi`Q_7Dk`H zXo1+4YC?mcU_rl^5tWu|acZE<*uJcsA|{oPQ6C!;S;Nd$-7{tIjaV`q^Dj-g(wXob zi8=mWjUWIuHr$=*wrC?E9VWN5;|SUaUFz&H7na37T43j(=zU0;ZHwL?QfBNwRJxRQ zNyB3)HpWn;K%}2kT+}xTAZ#6^JeEv=7^Sz#5TtLVV zXoaALP4WS6jEo;|&jH=Z7)fs<+{fFSda1ql7EyDH654da4&=fyMVRNj&C9VR&?r; zku&cmPEBdT{vyWu(N|{-6OU%uIEkp2{&wEqD$-i^KgD)GGMNN$xwi#~atMi|x**}i9 zxeq08!zM*@-&3ZYe@y!Z)I)PStHW8o#+U7DJ5s!Xob8%PQIOuiI(cad&%N z8LYY<-C5f$kZA4Uh{kYc50iu-o?BoTy1{20GUa{1&V5E*j@DsuWdd?GS;`)S6DD{lSMgyfrqU$B^HGDz=U zg3G;71lI&friQd&*nBJ>F(!|~jz%*_k&*oqOCm_9jFAfu5#=+;kv|s2`~U?<1QkDz zbWG9eTvTy^QP{NxABqVG=Lkenl9yFPH#Mj1nV~v$Ai133oQehf+Ji@e!yrc_#jT|x zaO8J&5a;}a`QRY+tf118HbXH zyq^%77%R*OZ+QrhmJIWsQWG=Tw?d%sp`*&FBX`vfDHAi9TuA$~67gLK65kvt;v8`Z z42fYJ>M{mPJjOT2k6Gv(J~bvO)HQ5<9HH$TT~FM{$2~&(xi43{gh8`7aDrczuJKkK z$%$Y|gRaS^F$fYw+;W&{T+DlXFf9BrR0HFwaFluBXThX>I305qJz$`eGIb&tHOiPY z^V%LZo+jViwW`jwj+sPYR$jQyFLH;D1)k#1947>-SY%C^O?%5SPZZZUm@#{oVjIjL zTZeaYZE$`~Jp&BXW+o*P{Z1SI{f3FLyy(LU`}WTPG<${fb)FG_R;o=@pJJG_ZCA=n znduh%?TPtg;fd}8thB#j^DZajQ$Y|>fx=Dj*}n!g&oSX)QYVqIr_~V~V?sG6z+%** z;p_&U&l26har$A>&d1TqCA7vedC`b)F*vcCUfauG{RdXg*0+~koBKP_5jcH~QYP^gNVwMv|`Bl#6z0X%o${ztH>Av}zP{*7C=JmTKjR^pHf`tWC8emzC z5LIait~iP68!;D1J{)^E0~P}cE($O_gaO-#Igy&Z)(M=?nYJfF2`daBMTpxGHDwed z3PukAqZ%eM;mye!^#?n!!n@q+xU2G9)QCi}U~k3!C}5V(ulo_5FKKuw*-0+7Hz$$C zD!zIpBs?e}lgLzY3r7^fO(L#!DK1B4K!LF3PtZ?2!_50Oua%`jA5}z0?Wpk7pzwC9 z0L`Wd=c0(zsEBr_h{2|WM^r1SRO;EC-=g6Pcpv_3@b z^}SJlK8nO7$`A>62e@QdZ*MTp0KJH2w4rcL%x*+GeMgLDNCr3)oVt{}H{xqrxUE{O zJ2zge-T);VRZbYGupi>Dd{b(5)CPy&=jOqd8ax-Rrm~ z8`H8|NPK?@XJ1IfwMuKUY~QmqO}5axzuj+Ks=~FXRkvdw)bdu+qnnpG`k0+IEQHb7;e=2Y^Rs)=8+<*m-(>IzXU00 zHu(MEIh}OT#^Ke=@pI7a=VK=ep&ql{d4H47~#9*P9e)Ny%Bl~Y~&=)}Ym&-d3r2a_7x*Y_)7p$d8rP~tx zM8*Wh3-xHB3g)D=$_w>!_p@vfk6;WAY6)}f3(kLJBSCP9cMq%H4w;Pea^3&HV1kpj zLyI53Gl+#_841+}4oPqM3^fXLheED<6)bMl@#_wwcbKE6l<_+oL1NxmIf^d5Kj4Ol9<*S6QC6x@|6B{ zJL*T@@8RuGlx3kTE|Q6--?OdhXrT0EE~>R<^35lj=tsBnfDD}Ntew_0H^-`~&Pqrjr>xf=v59A-qlcp_elQC`F}{C(rAKiZ-ggRdzJy^?WYUr| z%@C%Qd~c)l&)UUlZKZCtNDuhRB?QzB+<7tS1x}u&?F5wXt>i-lAtEazb_A6PE3O26 z@qeDlAuFDs^%bfy?Sg5~B5#=Ln>KP?O)`uxWJ>wbqbpokFSQV8wi<3qFkT(jDh^D0 z&5vUF@BX!0>GdqD(L!EzI_ac2I}J*!1Xw$AD(#J#`NFk*jix$3S=*azUz!|wnq9n_ zJ=&YSUz+`RT7tYiTZ1%7Z*xKER6Aso_-SF~O$m-tMG!IGKn~AVrghp9} z5ROE-4#ns~lPC;+B^xkQAMuvyHC#JqUUG+ay)}vU%6A=3*d9qC{A4LVA%{D!PdHwP zJgcbdUjAw-v~=9@>Ru@4NDeT;x4)WL>&=ZG`=gt;&@oBLIKg&yLEt*`W8C`J)I??Y z{3Y6~*iVO9-HLbKIRV}2?u?`7*BR85xps7T%FNk>pZ_))=8LOJuj!__GO2H)2X$k| zggSd)bpIN??WJnWd}myQ{%&rIJBN@7CB-+@nxRPd72@;S40;$a$Nejl{3n=i2I9!q zoBg&C+6>OMe}ZRRwD>vA)VWOQFyGm^RH}C$8gpEyx0uiCilV#5tmi(Q`KOR!Eyenu zSo4Hj^WR_9GqYc33_Isq^j7mT`=0cc88SC_J9CiN!JofcRunx%_Mhq9*}Sc^ zuWdnpTaVJ)$mH9mY|^J(AARe*1nKUqx|%e?8BI)W^SD7kqz*bDCj=V)Co*V-=JTPA8!!q!RW!U?dH&h!4p5g3T65K}RgA>?wGy zr_9v>Mv){l0Crb@qa+;~mYp%V`EDd@=tP5I#7iYetBX)#xWP9t$U3mkLg9=5P9j?I ztV|)uCtN@~WQ^iWBri1oJ>3sxx1TJuTZW~dEMp+{jm%9FuS-4<=G8G!+Cpehf=oJ_ ziu4nQNPsE@6vr16IuIF0!4;6N1E2G?B(?z0wiJ zQaqK(>-Ag_S|iaKIzfd9V!bU^hUTSU%;+(umiq?4vN8;bIGn|NOOxm6ZLk8%kC#%|DmI=j^EQ0^sQAJz0(L~hCDcY21e9T= z)~>H;HT4Ur{;muzgJV8T{%Vbq5*ph&a)kHQ&XQa6`$9Bd3lIH!b;x`%?>0=R6@S<3 z)9uM>cFFTj&hk5dn`h>iU-d4c(E=p4?CDk$Kktb2`B+sT@;@rD7wL!Q(mBX?s1bHJ1f-hkbVGSTM3O2X*fjCg8$_Ig>Y|#K?9VHMw0oN-`!-ut{ z7R#hT5&`a#lw4;~jd~5w=i~O>yrt@&MX<3!f`E2-L^=@?xYy%K^uqEg%e_Q%t5!_7 zkOlLoaLO6U<&}rjSm%AJ*jh31;dmh|?0x(3k6`?~Wx@N7GytwvjJ_iex@FV9j|qM+ z$Xa+U$woj~F=x;NBN1%;B?4i)cR1S8T#2kv3g4` zFCx)OY81x}6J*R}W>c?83t0ji;uAmm6#~#6#U>_7YexNuq92Q+S2~*(9P81bA|?r! z+>?lr?>Y6QvQ=w+-8;X`Eyny_LI!w5oIng|rA~Bzgz>VMA1r!p9p@qg=Cfd{X8@o$TT0p=mkDUia}wAA&PKj0!cyQ=Uxk*Q-i&|9zb?g zt~eoX*KWdN2mU9Xe>S+F6yhd0;bS8-K)N4$09rM5F!T7Krg7|d)+tuGuncopFw@aL zAXF1m)M^c<$dt1vEx8T>zAa~Z83fhLi>BUCt%fq2sV$Fi95b}SHFTJFKg>oIe?)A* zm>zmYjwCW5rIS@HgD?DqD5wF4Oh9rNthz5H9%&+ij2+J<&TN<$RzP_q={ISStC}5Y zg2%NZC7Kz?hUh7)EqpM_1E!QjT8{f>A2yyBhZabAY6@}9@90Vj=6L&Uw9HymFf#G6 zi|D6dqiLQMiv;UR)hC+-0u$yZ9+)&>>(O^3$!Fr#I}Wl^_~cmjIDV_oATXTE`wNzr zACn*pyrhUrH>A>PH9}$Ho>TmWKjn+;OmVDxa5$kw;7nhb(-fb`y~8yVD(#%7XKZnW zKGq#LcJmz<$Be5OQ7Js!8Bzd>!WH>cI3r!C8n?5HE}7jr8$ae;#7aIVg|QzWQ;VI8 zs8cL&jl7V9jFSc!w3P9&>d4D$C={_RQ^`(OEvlj^rX8f>(xXu;v2rQbEgY3A_FO0v zPb!v~w9uFiUuv*oE$5-N&>DSSiYRlba{hX(fwjAo)yGz~U0(hJ!ad({d{gihYpQ4ePq zGyJ5-v})X!1NYI*H70y7x+EfF&skB*L%H5$!rJx73a#L-D6pP8d z(K5@6Se?f8-5%!&5E%fu$UvHW8*_Rw4w`N-GbubsQ z7|>_TW9}}W1>#?NWbB+aJ|=NBk<0b=jm+AV&zSJ<>fdH_>GEeSdG*nN*@z=5>*q=B zW&eP!p)>`jm9)&|E5pAbDHz6x%=-S`F?UZqU-jIkj75OC= z`#^HXDdGW6%Hf&r#jg&LfDW23=B)l4C6}1dZo9k!8xurE=h+pXdvVPlrV*5#N;SDj z?osuovmx@uLNgY}tk2tpe4V6a_PGdsvuy>n_&3dr{U@w2E_0(Db$)3Co%gSt3mfvq zxvLz9Fh6de>Aw-s=>6u&PUcW&hkNKDlRCdDY@ax@``i&AenD^`FEtb4kQAhQnJ9o? zf@Xi%-eU5v#<0VCdfobdj0a?0)p67+;(l+`MSCF3dxH(ZpC0~v+ZxTFUEuV*wn}+N zO(b{1L3BU(n~#6jto=MjfM`9z@lN^4TZU7CV7Wf!J|j)(r)}8lX}|c>1TJ%l;RXIt ze#-MA!@D46>Dz6B8IaH7e_-XemT&&Nq1|t*7iX6nkaxJ=3jWRRLgkVa^bR!NY~NRZxP&=165L#kk7$zW59;15~SvLx7gB-r*a*d8&& zkt)PVGQ`Cq#4R+$qa?&@B*gnL*iSV?HaNNChyXbfUl9939? zWLT0#SW0MET1nXNk+96eux!NeT&nPV$?!sp@Z!+$(vtABarmWiQ-77d zmJ*cp0CR!JFvRiX_{e2FM1V`EFI?K+j^cP#`7NktB*7X^EvN?fEA%wI-4-Czf3$Dvm<5=tmQzJ(Adt zI57=BRWK*(wrc7xD@j?#vy3K&iY0@Cl6_5+O^s5xpOn3K05(X;c9uY`QbjOV$}V|o zz_PBnW$I&4YM4~2_h9N?V`_{?Die8Hl4V*-SXx?X+V9b{%%ikyr1V_s^n9uGLd*2x zv=FP(^!m6&mZNlL>g4FKbhgIy#?}-=t$1Ilw0bS&rq=YI_{nXh@g4Z8U8U(g9!Y(z zNdwEjhmMj)S`)`cGa8OE=#et{sWa#CH5Z@aTf&m4TQgRql-8Cr*V8h$rIdG{lJ=3Z z4wo~IM-~4(C7c~)k-=r-l4slFCvItF!?N0B=2#MUJ`ky^^mpfTCK!%O(K#89+pk7kQhDGbS0iko%JhIiDCgcP1}; z28psY_v%XAmWGR%2dpw131g_F%~&LELSz{ zf)CLY5(_x|pSXHU3|JRLzXPJ(5d&n7(Y6!;+r((EIVBH*fS~Y_2V(ROi}k}?^;3)w zhboH#BE%^o1v4VY_Mkn@06r|&`yL1stmnrAoAY@S^(hum<2)rSn@#(PHmz+3j&rDE8cc2gdp|Q<_Z^ zUrK=Ze~_zh+5bVVmt|PQ<$G-+2kBKO$Hi|ofG+8hO9Qmy*m4qS^x2x~w`a7&9KZx4 zV2&8@*pvG)SUsL8T?((v<3@HMu8o31NXjV#OQUZ?m47{{i+G^-WIR%kbyXvx-q zN5&!tCO}3$ zy)i&DZ0lTG?Nmw3nK}75@LdPxob5<{k~je;<6XeE988Sv7eTfA2#p6rb%P*?!0kB4 zvT~}iX%Ay)chr2>)(K$88u%80@k@lLE=&!rQB}mhR}?1=sRBFLr5jC_9YC17y9(HE zcdEun3u^3X6UKn5kYR|_`1-R4LfgL$k|pl&|LC1Qw`b$d0!oEJ`Ubue_VG;g6DAG#9rQOD^}Wa_UONw{qo!y!4rp{J%Ifx;g(;)mbXWV!GVTox zu+Wke`e?0D=@1Su<|gt*xO)036F4XQH6Gl_^e@xzYg+A z48s@=U(jMjPDq8FVkv@C(qFMWP6x9(M)O{WEp0}?vSWHbX;WWieR(0=G&rMV9HXyF zqY@KiH8!d~pHxgE06}Fd53D~24m{S z73ioJbO#OSzUQ7!4*nebCfnbGisjilw)<*3P4}fSV+PG2KfySs6Ky5jizfG)06z*%Ueb_B!G#tZ6GYeStdtlU&oBcZNwN#l2!CMVEIn zV+zju_o>J5p6;wl#;n)Eq(1%(miLgQ%@CP420`R_+rcbR)Ne{cb@Itc!pM1u|6D)e zl)y(>;NRdFp*q5v24SZa%j6WsM7G+3qXUDAYq=~fm z%=VWoT$}~zJw-FyZ<=om>Y0j`|3-Aq)J#qnjZx>@Z9EOo=8|Rq*qAP8zzzOHn+ibv z^P;X?yIhk~ZqH`GoZTLt6P%pRIXuH}Rwc1*_+WuhymNj>yt$Few-x;h%|64AL zTITj%iOpOqitHJ+nI!l+Y>g9K@^5@(a(+DOU-(2HU8k~Jsbuw}lC$2wiOGMfmHjJc z1J|;1MtjSDDrXP9N3Q<`EXn;HlUv@8!n*j%glD^vcijikgG`xFZBBNsAIq)S{p&mJ z+@N_2eg3z3o4JVjZHrxO>!x$__20TrW>-4g;#c%-68dd2`E7E$ZOZ6v>Z)y8`2Z3i z3^5c8U6$7G50ds0iHUwE#q>Y*whsuyRkg!=z9VR-#k0O6AitYvx+{{k8wt0gfW9LW zy~`GjW;nC!qXw&0wI@cr_W>)R_#&yVQ$GM1N{8?td^;?v09MiaF^&87K7eOm42Q1$ zc_G9z1Rue_NN0*@OEU-FcAq59_de`f!z}7MMR*+FPo_Y0=534z5)@2D=mhzr1iO9y zS$YvLpiB_3-wT_h4=p?MHAf$9J?OLQ7Q2Sy5z}7?k|Pj5&JfyvYA=X>-xU)*d_9ko z5xUThDD+z37UQUm__V(Y1*hhiH|~fE46uZP;+#2}zd8zZXu1>J|IBo@%XrkWZjW?@ zvCHV3@HsHs0Ih=I`%3h3=UD&5nHiar z5#z!4lSh{UQt!`9zYDC~3!G}KQ9Gg?Mff*|&l6Ay1--C~4uJM|%m+clysAqrcp`G> zE66;yj-o}j5;whq@3&u+oCb*4LWraSM5@9NMDf{+tJ-VK+3VM-TN$Q-ha8W!xEmPX zOB4kReuiTo|9e7?+n6keO=07=VrQTe{aLS{{4WrWB8mtdl&r5C3E+!41BT`g;a&uS zMh6O=X`r6KSH@pNMgqU0lpI1V=>j4I4-wVXZ{r%x1EPQ(d{|wV3o)6)rCcQ51e)T^<=*Vd+<3YG0 zg2MvBT@pdAVm|OzyuI}o9B3ep732gRlpUu2Ajs_a!x40xXlMOL9ssHJbyUog~j>~ z8rVHl39aOXIjnVzRfOJ!-?Lei_DxPww7fn<>{07g=R}6-r(QbKX>r_}D%ANyFDKwg zCA+zrVjqO;^CS-K`Z=$L3h-?K`%p!YjgWIJ5jtbOX4DHG1)XNK)uwfvLai<_XXMtB zlSw4I!_uR1l+~1w0hK!rKRU0P)=ZzqmxSaW7Uk{ZpZsIln(EQyyKuR)m8RZ8g<}1G z&w30?4LapToiDJQ>$NV`@Q~`uJ^3YUmT!1U8zsz~R(u`jIxG^?S#4dVK@B{(&Ke(TkCX7B~n8Fl3ohp z>NsDC9fj5e!^rj#Lk~p|^j{Uf2wq=F5Iv!k4|;~PUQ3!Ja)YIw)n&*8sPYFY`PZ2% zVnhH!qIM(Wl616*VXAA6vdrVGH+iIH6&QgmBy(}H>r zYA`seI8Y9Fsxy@Hsg-R78Etj_0Fm7}Muu_!fu_Ti1!ooci|tJnMIpI_p%1)}UKNqp zz+MS&ht)|Qw>-{89ilCfW`M2jbXKYGB^|$vJ?vacWcJgq`BQGXG_6@u43Y9gF4>eb zXKkx;HfmKH2|X2VRkh5LEYyCqW*CYAoD^>G#AGZIc(E~_+YQ0+kDhS4&1?_uFv&fo z0U3crlTl>{a2egjs%e~RGJHup_=~G1l#R$@ld7GNToNhxcHyu5aoMt_u|)BUrmpMq@mo?A1_b+gVepwaKrWujDVaasR0p|MxGMI z!-46trB@%e9HdBi-%*2KWL{f&j~iSFg4Q;BaU20Sw}-ki))uL@#ue#UCY}#5U3`7` zR(~-KDT)p&#KYwMi?o8}8>?r#R7cT;DIf#&>s87+1ED7T)ot@&YAJ$|ahmX`jr_Wp zbXtcGH*d`l`|HD6`Hy$*IUP1{?gejaWR|anL~-LMNhyfF4eh#X&+3mxMX#GXDI4_7 zLNx;CJ1#G*PoWjnT{-)mBbG~Eafh!D0;i_P61N7y0qMOx&pGlgGxZ~K@T6TcjGv$g z^49MV5ivBNdT4X6hF@O)@MDSF`_P)?YOdkd9-YQG&F~nU!)P`he4P=4uQ2qk`$L+O z0|TX?ECzwK7NRHUQy|4JA0#$1{|vtMh0!d{MXuk*z*Mgdq!u+m>3kea=m6?4tr3bf zQ2F{%DftdRZy*3zJN+N0Ly+nIWup&N#g5jJ;(M)|a$d)Qw3VRt4toRW^M}I^fsqj= zCPD*$;w7*6z)fX`GSxQge&UsHI(xa-G%h^89%ONEc?(LZJg-EN? zZnNg|+x|a<-BWjEVb><$*w`^EcCusJwpA6|c2cozR>ih$+eyW?SxG9p^Y;54^g)mA zAF#$)>+G3pKKFf5tG#Oxm;Ruxa8{|1DMe7PYJf`uAY#SbuFqFeVV0X5S!yF6s5Z_N zR}g%!P)z5|ZKh(a)+w&M6~s!ciDEDBin-8vk<}!8dP;cgD%10*kQhREt~1M`SI6Aw z9a+(6$nz!@zxPld3tFyokF!&96WGI({w79Bbm(D z#iLffSgKqon=8vfxlkcfYm7CKa=KD$I2iR!E{$TbL9n@?c-?LPzZxLoBg0m{LV$N{ z8&2(3=TAsPB6-hp-CQrT=V~u*3zNZUM7ccq_6D=~05od%S8j8Q-b4)l9{G-@v&A4b zJ|cyL=IQB5BXZZ+j+U#9w)_fnhIf*y)qH`*?cC0`yMr;W7nm!}$NSt~4Rm7Mf2JFU zYmGKLe_A?UjP1J>APUx6A1ij6&UBYfsbeZnM3;pwv6)G93R| zWEvuu>LacNHxS3^ZZM4>&XNH_i+aAl!gm_Fk!fh>*2!@td zqe$`r%dM#T@zecS?qj&5Si}M?oY+0^@`D6%?7wL7_q&cyYbZ12=n$~B<8RivdB{}ZrXQjWx{-Xh=S)Z4el~kNp zRJEL+SJsXEZw+w8`l7n+xZ-qemw(mb0;1IUWW&IdcSZ=f!2?oFx5K(~_pm zRr8kyc-6A$esR^h8%BTKc9>>!-F{k9dEIf@a&g`HUkz}@=BE4gxbmjw66y6ScSiRHp(`PV-5jewf@M)qF;gCP z*E9_N8LU`%(1{>vO8!jgYt@Azp6d= z!pKqnDo!C8tDFe_`~IY)u2knGrlZ9C6{Kz2=046L>UlZhO@#CmpSHY;QgYPWQai%T zsR3;9_bFCi`o6G7tmFxad!W|dPsQ4u_*#=}^7f460D4ve0LE43A9qCWBeYq-a_9CL#Hk26I%9|n zem=a1wkYD8co0lEi8@F>zZv*p>IZdZs3ZvYlVG1&amq3bvs8MRPBk&Y$HnM1BYg;4 zFw`1sEeL!0q_=L~F_P1_pkyMjw*X89Ow<H?`1r7*ckds&ACP;!d>%5)68z zE%{9#J|T{tjEvSo;3D%Te$lv)B$up*bD};%v78X>15U;g+Brc9&EPW!LXzbZ#kNeI zk|#qXaJO7FHJ3k)f|evz#F3R&`!WCCb8M1*#98~7evx}0_e5TkF+{a|32XZJlqv5# zrO%}aLO^+mQcaCWJ5ml)xlGxh%5LTdX$f=kptz&6i(--wfMr^<)rHg6b~tB)bE};B zy*u`&?(b5;mvPXn|J%baFyt~}SlPKC{KwyL3T2`=6LYwUWqcT9bCLR@RLWLI1>qH{ zd9U!LKoM9~2pLShvBOe1x5pv^Xn-_qlxjSJMe%kynhXc@e3Um2 zVxbyARv_vrNwd*=6%Ok;KRmQTf~<3G!uhE>z8b@V=OCw-PLkipEJ*}zXt9D!qt3<8 zM*3cLeja2!)rem$Z7D*(5zSB{4|8u72q~=&BQw$nxiY81dc2uqlEI2(V`I93 zqt^USk{yRJPAd^k&3G)(mSsc#wr~qYNXBlgzV~2{a=G8fHO82w zgz|s}HSF0^D{c4oJlDDCvsknaV>T(pxQ2Z59z1WnPx2#M<~&Q-N~q*?D8sp@f1y%USR>%}1E z*?V4MtG4xK!%}TAdHw5q!>nR2<)JzIr%1Une_e67mUc2-jBq;gVO@G5@~v9Ppmh_- z-UbnT?7}Iv4dBe&hVgyu0pi<+s1@&`^gi}+XWK@&X71vAJ`PAw+sC97?~}4W4rxG2 z?Gsuv_i3FUN6hiw-LY|llyE&$ruOzS-)M`|EyO0K1)y6|@ zq?f~7f}b?>oJ1G2bo$9scDKm)`yaKPthO^=O!uu4IrNCF-G~@B20LUu?XJAuoYlNX zA~U$(*8DBLBI?}X+xg)uh5u08&3`Ts;9VHu`2_7Vvq@TL(LCGK&Ir@}Yv1~H0ricR z@Z7IaBIgyd-~TbS)ag{K>fG}I_o@W=aydI=H(>MQ6)pMSotlHg*C^RCA0GpHH4@65 zb|pSf`qfiGDf?D#+_#CwAP!;m%rZo?_AHI_j`$d0<{TCBO%1AZ!lHB zaI^2_voE@tPdQh>)v7Ow=TG!DA8g#f2x_)i5r>8JKqV@Y7pb2~rCK?oei(3``62;? z?p}x)L3yx0*$UOTo`Po0wSK4jA8T0&7Wgf`;N5sw-xnK_jG4e&dU$F1SceCka9JRg zX<aENVNTwhYLnMP_r5}98NXYr?#g!{%Kj}7Fg=pNkyPA<_&%t zYSbDCJW$n>4tJ#q7qtu^kI;0&&@R&;&Yx%EIX)%!E8W z!nh-(w8H||FvQj({uS6Glm%v;xPGPwHW`I}QbqWAM5b^B2rYO=M*RH26(-y7*;X3l zEES^d5!`F;rSBPGl);KxM%K+8ZLUq;Vo8-x6CC^!cD)+fFA-$g8l2#1ZA*nk=IMs> z97%8*xd>;jeHyaEZF{(4P-;muSVrM(5%YVD;Pr$cYb>Z^G?KF{7N#)7GcjfbF5cQQ zUX{x=dMrwdEFSV9x>Y)UzbzupgZOKqR(OI5!eyR1^@oAi8hZ7*;ZAhY#@cEl=Uq)C z`kP3CmqdmqTFVYda!Hb@mt`A5TExVtbWLK8Ov)cff)z=IF-n#Lxh4VIl?;nGyoSVs znxLnd73oCa1nM|k*#UtR(vgE0ha|k+OR_zUv`1`wklDIH=dH2shki=42_ z$=MVD;dTy8M+NqJPKuNii29VTzVK&EjMODLqxR%bGVa(R_JSb^xie{u6by+b=oJ%1 zka(KVx?CVUMjS!3I)Zk423-?J2s0c@X67hn`j2sHLm2@>9=Jeuo(46PNj7kZ zdj1ZIj51m<6O#;%J>CYM>?WCP^56_}tMt|-bVEEY6cv=%qBNig*A9jJp)g!V2(4}* zxB4KYj+h(-3ujFo|8pS+zmvfHy10-^x_i5r{a==;KFEF0IOMbow{MXcG@wuK=OA9y>hEr*j*cz8R zFK6{QM2K_cbSXzSgc3mt%&Gp1?rkCqK$FIyqunRZ(`Dm{Yl6mqL`_|U?0!Hu<>6gB z%K~H0)hp!H69*5eE9C!ED0p7Df|1W4hO$YU1_bBIr3G_k`$d`0fsBu42>&Z7DD@95 zSQdqJWn-owJjN}%@G)DVIxqOIc8PBY#YXCEo3uq#;AwX$0wnA?)VgRYZ|KiFIBp&2 zQ^IgH$|$vqNZxO}l})8Aq`8`J#c;gbvTxGtPFdI>@HA`QqHer&MwU{{`l7EoLQIiz zDertlgjA97B1Wqe%XLUmJb`dAjOw~VUs*tnFx<2--}GF?Z&~yZYd&nK5+61}L$6Z$ z{xX|I$Ugk40p60o`86yTh4Vknj8=&prT@cHEoES%3`MP2OR4vGd$tZo2|>%BXb1BbJ0R_$NtC-dzWx7R&U7S&(oEfouNCDOKO~D zP}62wmgh4C=I9nyGh4|yS#iMWl`xPB>h?i;53);@SL3Ur1U5nI?g}u~*R*<T=Urq8!b`8&6&=M(Ka)l8UQdBlLDBc(1azWz zBe>5KQ*;1pvQ5nSTv3huGv#H5X9y;XzXLIwJ54GfepXH=aCnKAx$+dUUo|O&$VOtAJ3qYj0NKVww1`zmI#2~`ez9C5I+D=2tXPKGhRL;Q?ou^^l=r>uz{)gj& zx1%yT>%p6|f*!0+j;$d&UpJu^K?DU7L{Uv4(ur!+N$1p}-;^IViEgXgPDRl*$S11j z$P)~fA-fJ4$DZQL*Bn6K5P2>pMcYHUSJ~y-z0SvWJTAr3iGCc->+q*DMz7P-r<3xr zQ_}=qgO+(Y>u`qbR$ctae#pzu8R)&0xLN{C#hKItQIUlrHujjwzrji-5UKiM3ZzN_J_(=}{*Dt&ELD%VDQ`tAi??)a%h@8^v=< zG4lZ!J`N;9D5;tX#H)!4wYYgq+$NGP)YZ@j5LU2Wi3i zbvK7oc?3^h)5uf44dY@=T6M|r$v_1DT53o82MH!0gJz>YU|*Fh`;NZ(_qUxFn<;!D z{6)7ctsrJyqWwnpbR*>u;wVTWnkZ^yWb)VXMAKh(xCREW(aYLI`Q}-hqF+FdH`)KCJ%xFKZWB5Z=*;9@T10ar2kz4Cyuw>j9h-(buD zehNSk#jHE43O4to-b2kPD6{dCL=aL11&~`3AScRug{@ycP4G|Wd#N2fKR9VM`XNas z=Eb;=c-|CP&}Sb~Qs(%{Uv>m-8^Bf^Qwc^(5p)+po^*9ubsr=oyN^wBL$ZmSRxU1M z*K%=H3_nI9zC@Il`%hgzU(uk%#MgkDG9UR9wr|yLi6^oDXhOp6a8IRIp+~F*;Z|=) z*9NJVA=4rSw2ULS-1}N19i`S^hZCR%*K@n00<>dmN#ioF2vNp;eE<2JznbwZTIM3J zQ)&k`SF4u+!|+uScepk@fwARNthgM1*4ngE+LpVE{e2WRE~ulcxz|p);y<`qH=j2# z{;owy`wx_Cstj)$g0Qg`w_+A@cz3~%Ar3PnvdnN9ZdK2>c&%l`9jNdxi z$ZpiXm;$)1r&8~)znmYcyUyRD0|j>Q75&P$%$hy-WvSPbbKS8%8L1c#f?yKxYE=Ji z{k--IV#+U4k}`oMTQynS^W^ex`Ze#1a94BV2{bo)3hcR!YT?sIDwx_!Oji))nL;vhQO z9`)M(ZWCX6at9ha>ApIttDXsDJPo!_WZF7{w%Rs>-JaW2cO_cQU_4`*4j+}=$AicI z&1hDTXH|re|ycB*#(rJW>eTl- z1Ch7Mk~T$nzMsOhMgp8`w`RohY(YCv;+_agJExzVT(H=>7?V!=$sT=64zQ9pLw47) zPM0OHSJr&SE0wt<;4~pDQtbQ}%TQfXrJtRT{+c0paF;-GOb|VBgMWo_ngy-Uy?hoL zgyxz&5(%;{;@K;OP0ZPSzd!fx%I3$?K17f{#0(E^{&&r4;tfbGyro1d|C4op_K8mG zkp9_ILeUFg@h#Uv>?%e~10`cPE>>_=JPaUlH*P*jI%R23=Bw?n_~Zc8UAme3@2OJK zIMANDo1V!npTv>sNzc@WnVt zq8@9yFig9|c2Y3hXXR3e(X|2q7)lsHg?WyJ+_to0KTt*ctTGLjL~ANi2#GOu#00!$ zM_p%GZ?gcMQyASbY57cVTyN}@6zS@`A4Epw$RZr?Ziyv@@IQc`eo+7xj- zwPX1#4!iB4OtllmJOP}f%2x-YQJ|oeJvg%wnMAm5%mg9)@6DxhI(pSy1az>eQryf$ zap@YV_>gZvcZs!_g2fO6@FoO;CkEXx6jGwg(*y{)4%TW25(;)B)J{JYPI_5K+R!3> zWT7xZoqN-Xl)x}`?gfpbU}Rdr$AvQONsvlro+NVGy>tUyVMFW~F6Z~wFAY204UVhk zG&+&MSWr5yeo&+c?N|aqyXbrW2qGu2?5Wu0e7V|SG;h(?A(+HVS&Fyc@JAG8R5E9- z?mx{hXA+-6{?1*b@#t+OFZPz}CBpgd%fGAc-L#5Rp@}Lo`q~GCD5bu0M!A?ec*4mV zQADPp1a^2F%%3@BG(}U5!3!=Cu#lwWPTh;b?6&2{aAfghpNtzZHSjbOr;=b@x^fL* z0r)6jDD=_w+^O6#6`44(CdXvIqnsm$kxIWbKzc5^Q7o)%&LYv!;TAI3A zG4QYahwPUIh{=bViLU^rwf~UBi-v5B+!RGvB(KPsxo^7^k%oXo8vptz!`+SP96hrO zR*Y3m?BP-t{)3p@p$9Fq(|)nNV5;d$1EjoSEpCdi7IDt7Dqa{H3qk#PbGrCkKdEUp zu{OpCIY0P;>2j(sa5E*h8Z?5uG%A9O5X-bsMRq8OP0(C}_nra_SG7cy@`$rhXPWFTTz4t@1+KBt)lsdw5vt<$NF~ zP~9lk+*HzpCEJo9S+Mj$}^3JAN4eE zEA5Orns9~}aMuYeEI#I)S1o+HFO}XBSefcz$2H28Iq+l_W*t5WytjQ0uEW;+;n}nK zz#m1cw>AC}x(4SXFf1~o$TkgP)4CNj`mI8+TN9CCn8Mc=R1h7fbu2^eUG<8Ko~*9W zIQ+GiZl;sKt+%d?cH;R*!o$chMttsbqHk>!!D1FYUUL8bMuq>eEBx+=>Cr@RgV<}o zN)n|DQ(Ihy5v0qn^%0rIl5zj1TPz{uX^VVuw>H5!GErcoI6A|vCji9sI4Y4v+ANJ+ z=dE^uuq4~a%cdhswmrBVf_a()hS29Z>NF-qrJb39W(pGOw=!5&ByWF1uEjH#OOr!b z$pAIag)RqX>A=hv?Qbds!xHYOIj<$vDOAa-F6w!W1q#oISCa}DN`AGFh!1Sd@$wGL zWhuJx%($NUsPm^=Ej)@cy0fsVs4W+vG>CyGBvP9m_CtM@>Jn7j%LZN~#D$0hxHToM z4~*6DrpNGxCD3fO8jLURM@5;i7ZTvrNqG9i1A#*mB&M4tiV-wFMdbUEFdR+7sA$pl zu}qT;a!5#Nm}OPtRKbd>=Ba^&p+sYdeDP$YsT2@`D^{eQ;X`JO9LADA?3LqBFJvg# zie&}JLNZ*}55PxH<-T(+X3mC~qh+qk87?Gda)bJfI76*+q}?B~{PN8?%JCGO(-w11 zhDtb>y(HbNG5ChQ8eGtH6qMdrGw;PM1fSZKEL#?HFCQ(Qw(*ogZ5L@?il{~ZwkwBm zE+v2u=PMz3QyOVv{(|i;<2ciqjpbb`B!;G)9r-KmW1d2V@h_hr_(!El9y5;$*-GAw zR}C>XrI5m`oWiJLJm<3^4nH(TBtB9#3wyat3i?RW?rqXb5b+m8_nApZhiZ}La)lQ3 z343$aTy9=d>B`WYY=F0XjQ>-C_^`F^a);)J}sWWr@P~TKIV_0mp zUPi@HO1Erlq0#xroH4b$czN6+!1~+#eo7OV8Lc(er0(|fb7)QIp*;@S#vj#^w%Xzg zr}zuKW6svlKH!-hm#F^U1V_yzuu{h2LjT%*HFPeN9;uif??R)cgLkV&QtjgVbIWSE z{jilUt>=%ySG6v1HwXWx4bJnLmj;IqYP;2T0|*>kqkqLW3LiG3edg2!Fky}%ETOx1 zpIQSrBaUGlT}CJ#YlFlvP7xCP#^~v5L)4N^Q5s#w*sW{Bpm!-AI1#u7jZ{(QglY#ZADjD3jL+NwaPEHCic*RmCNU47J4OoI zCn*$DSg~l^KR!dajlbM=%z=R}W}2pw`npQQ!)g|-Rb!pEQ7Hcr-Cr z4z7UT{K!Zy$CBPg<7{eA%wyHC_#}z_o$@PV!Z$GDn&h*89=BzwG+k3sE3#z~Ui62% zpLNsBdNVx|)1C?g%~b1W!wo1T#z(gKZ<5$gB^gSZ)0H$ zqAacjlVk*MZSg-o_tHp&j+dUPVtp_dqL$Wy8-QAGd3l4_`zxu3ay_ORru6|RfAip+dmS6S(E{dl3SN_ zDH)KZw_-*dU`(rrkfPG}cohZc+$C`Bs5LxbvY+NL7;!V={WxoaW% z>eA0Il_|e6j>(pWPz?%yY8v0IAERuV=Ay^{1@dLjbAE}4*k<-FML7uHe_2=~64sG| zzanM3O(ywt?QclBnf33-thU%5o&^Yn#QC;O4$u_E`=S=1qOK*ff zj&2ch!L+Gt*O19Qy-Nf$W#9j@tMwuv8JHU#W2Wy?eA>;%2^k?A;5AF&kCy31SrCrVU(l-J0yfWU`VvdBR@{5It;;Ki`79oDP#QdQVR!~C~`WTEVYgE&TW9ApX zkQP7G6VDMIL{t&G#Dxzch-?ldIq8JwS>lzi5>sH{=D$QVqW|`HEsqi*slwqUyX z{xH4O@T`wSw&f5z;Q->_C?Fv~pCKZ0j;P8-)WEl0nF3Bx9MPyU7AglFom66wCfwZd zYum=l>?=thIntIbnH4eIMc$8em%sapTHZLcjv>`lH<*DT*>PIvT7@pZnCRX`1eogg z78fTb>;U_+5c1+3zf;so_UL!KxP-JkIfS_>{(-0v1;rDKGV`b5J z(9*>D?nLy`Xzmao>U6w*2~p0c%Y%Yr)dkPlacVSVYRq-Yk_A8cHhBU!zra;)aIC#k zeWZ&aX9{CFV63laD53YGpQlI=sUAG83-dZqmd~Zg#h4t}Hn6eOkSIJ^s*PHb64ON^ z01E!ePfsiKq%5(RgS7NG5nEP7R}M=+GbL{nCQHY+Gek*GhI66M^)#pGWTj|HJF~>C zco>6p1eNQpoKf!CRq;XWY#H_vGW!~$^t{v&osWzU*3*`Z74xCci z5`7LrVh-x508(QP#%=D{Xbv`Y4t^^Wu6Pb{cuu~44(VtPML;21UI7(r9&I=dnQ|UO zLS>A39@A_d`zjL4Z5}suKJ({1Uh_P`_Xzyq`EOe)-;U;qQ&ote7f2OUNGTV{u~f(< z7AS|6Da{tB{gkOg7icAvX^R)=DV6Al7l6$&z@r5w0dXeiMHZkS3*{nPC>NW=B8bC} zg~M!-OM``LxY1^wRqA)!eb~ zKN_G}-?cC4i~f{K1N&PQ{8?E&!(!r{{t`;Fs-US{iL{J$(GsFcs;RpAc?5zma&)m_ zzcNr&AU87ZG?1RZfW8Y&bWR9#5jDxTOs7NYkV)FppSF{MI5QWuwbbZUq=EizdGbvM|60-IEEAVk?8QAF+a)t7(!6hu)zXJhqYtSP2OP#MTi{oN9!? z6_|yh8S`mjUx|dAPUsbDx*KVgJFZR~!vB69kvGB}b;6xsj;1t11|}weL_=2mr zK4bVEpDria$Sw-$rO{+zMtF5#{u z3+IXeHtH!i8aVVSIS{CZkfjLVn_}UAxviRf@6yK4t^B4Eu%-(>rnh3u zK3%9@5c2wjoqlqkzGZtNM*ng{^ZG1%Oy(5QoWPn6aEnr4D~UlHw0sq{;)Y!|jJQfurv?aAX;JBV-BUgB@vvJ5hyi;<1v(zTRla4tQid@ERgirnDf|#(Oi~@U!f&suL<1(<=8Uq*sA2%y5-nr;t0CHILy@j~T|r!cCL;eZSmOkY=r-lwPj3 zZh+A{4%nS_@qdnMN1*d=i$&1cF8=b@8Y2rLv5yp&fHh3;9%y zAp#nnTX^La!Bi#$pa365&JNM36Y{8Idoa^`R5Lkiknzv5u4$ljtu8vOzzKfkQq_Kg zIFC6#J;^_#6*vzcsVWjIpAfbD<0BdS!`_m$ZAE8ch1s%o`y~z|6HL|a5~gr znfrRNv z(S`F4bJf0%+N=GGtc>%4W170W$T67eJSyu%#fwoCn~av~ginSr&C6lIi^vt*Y$Cgq zi1Tq6yC*u!DgU#@FuIwzNWu!>A3=C18;c1THPDElZHs1Y;Dq&BoZYJb)e@D>uD#`E zUd=8(#VVD%(b0 z2eRq2*JHcPGV*+XhX+-fUs(=sEe;R<4rB$VM?DVn_qL04S1U921TEIDWS6t%*At3N zV7(5VNmp&Tu_hk09*z`>;CnIS$|BkH()0on>D-cg^JS%RmS8mGJ9Z^snkpu41 z6&+DQHUN-4)sI_f2geWW>l4kJW^;>0`@4QBt2T6}Do*Fcv@5agyVi53Qtay~gs+Y; zC#v`hTBf_?A6K-$oO1l`fn2vi73W=9x1i%0XU3cRl$qO#9}m}gHk`;Vew;v-Rc8{M zD+pL80obcg#rqx<=5j%o3o0jGVi(NO^I%Ro@qh~~shSZ^d&!#%%bsiQT06m=2N4G% z1*MzaC?}?0mrSMfR?l|ypa;VWXLPku4faeXH%_bGmB?)k7tYUXUp_wtI}ud)@Pg1XWP|hyOU@8muCmq z7e|~IC+Zhxt``@n7gwzpH;Wf{j~9>d7tiz;uhJLq))$}A7hf&qXDSQL+Gkfmx8)K> z@hyy!1!K8>UDh`>5K7 zj1f;Y15bk1+Yk@;fK>;E6OX(whB$|(Ex}uIt+T5cFO?H3lGaxTbGN+ovaJgHac8fB z8J8g#hXmAD%vqXzp=UZFZxqyvB6QC(;>G35a_5=OmbzbKB7=?XH-m#+%IPDbm>BhOlh4t^A{WsY2LFM4E zv*SC8{P$V#bLRM|px3`n$%Vt=vsKA&JKlM4_O7zp|Ki3YHo&#L;!QCAeV(qQIova) z;QfmFE>-G&K>!rR^u7iI7XSf^j!CmiG7t#&Uky+!6hJMTV|lkf9E8u}{G|c@9*8AH z_GidcA)knafXlKSuOk^tfidc+vU;GJ$>H_5zdTzk>`fI7M*n90NG+8ql1NtEUPrbV zLLny_i=a}XkwdOyKW(j2zL25TEt?9rLc88%z1m=R@ocA-BDLFWAFl3%7aq&Ot9&3zXUY^m>1?7?0R{`SNmIn|6}9^XSj_FZ`FO9_{Lm z@#I#imMh%K3rPstOxibp6iE(4Cmkai>|pSf=6uhSZ>RaX(}87+*60;&WYH-St9hZM zS+4srEbc2tv7A5Fh-3FTO8*!E5qKyP@q6INBZUIj4y34zpR$t!B%TSAw|UBSv?Z+D zDbqQS+YG}&DnVAo879x_$BF)#+BzwWn(LG~P8DT^ai#^ChYB7&cx$=PHMG>f0}*&> z@;9G!%F+VJI%o=GdEaP?5@mU5i&J&IX-hJ#J7`ODz29id@}qd^%8RqS=_<-AI_N5^ zJKpH3>L+;VzcfH^`kMCh^A(})x3`PhP6R%N`r)Ky1h8?s&dY|wCCM46nTZi3F#i8s z*IH0aziQr^2xn;AqpGyCI;4;j;aSwYn8QBvzR*Mk`_1RfxggSd#B3>H{PrxU)R5MRCQNDC?-BLlR&vKC_=7=wB9>k5|c0p#@={8TCpGx z&eo(5JGUePDe2ONJ6amL%HMhJ;v3AY|2WRvdvu2l0T%1lFip7B^yg=y7#yj9vT#3k z&4-vCTaE3V0}rIyZB-Yd!gmkTr6?a)H|0(;&MH$SDaB*%e|-#J>A9qFh9LTf3?qwqt;BhC$U3{X&%+7wuUbHm$YR2 zKG%(JH^afqH&MfwU5q+xOOSOE^wn+Cm)K)IM+k>CV9bGH(U2>$sFWv+*H;TNpFT&R zor|hVs0t>`dp&y?Fc41+0AQ8%H(`JStP9C#f^~OmCbh5Zu;%-8Mjr{3A!_R!+r8K73o)*HiqPs>l6Q1g`UR@XR# zTA3>P`-PKz5!n5oq!e+?AxIZt*tJMxcj5N+8JN(*y)Equ#=f?QBp^;^b0h{GU-lmj zxanAbG^z>dE4RcYv89_+>SO8oDXx>2hdElJVE6ba>C|*;xz3q&EXZM}i%!KrU;qWy z>euwHiev5!N|vAF#%6e4U@b1oPS(jLh);*^fGo7>2r!!UGu@12Q#9wyOy3_}O}p4i zE%jM8MkCJ*1(K>Ave~#!xbz$7qr4r{9`3gK&yr`%4!kvK8&G{L>E#S}KxMtd1YA8B zPFYhdMt$IWI{G3jzq061!c}7GF z7M^G0N)R$BN`T+$e2Bq__GHTT`nJ+6-dqL?zDiR%QBiS^TB$pY00!b}&RSq))h8zt zQ=|f>|EadxxF~8kltejyY6dFM?}+G@GFYSrd-JGMtHfqitqvq+^MxXdjAZQUr++ROx*_X-m^h$0xGb%NKgr^f5Bm+v7orMvqkyu?G{jcLIML4J(fZ zaXFEU%cNs<(5tE2YC4>up z`d+|JQG_BbRuDf9&Bd_M*rsP_JhZ&JjNBeddPRkTTv>z^l2J$sWO5p<(H)iW?nFW% z7KAvd-7mR1Gdt2r&uXo|#(GU}>)hG0UyYJys^7`fQc3yO2$CA#(#or`z%+`ddQrxa z!Z=@n{aMJX;;;;K!8(Z)g3_GSE+(RRFM$o?1(EAH6?{Szg2=9n&W%E^1o*hZvJKCDn}M1;2Q|I=r~c3(dz2B0VmQ3``+> z_&6Jq|51MB%%XZLd_Crc!nj~UIcEHQk_CpAG2A;p8O&Qn<%Zc9M1m{pr^ zte9&9oLpTOa7|u|o!bu4Ts;rfH+~PDJD;CieUOZ|ff!x?)c|X5L)p6aPy)Dz$Qkb< z)w=evd$~v0YVKlPx(ZB<0rJoCmm`lCC<%*yh~bo zRt^VAvvKY~cc>6oaJ#j4Ic%(`%DBfxpCJ&L&bJ17`dceJe)xT`aPEk_$3iAQ%%QkF zYIL$X->smRwNg*AC+#boJz&+2sEqk-&r1)e`^HN0M>G{T%x41@*MM0BH{W zZyx4IW(l+|4yGvnT-^WECJOTwf`LZj^DP|$Vf-}_Pb|a0wCIOd&!MA+b~LT{B(E$*Hk#hw@gX=9y%I(OpvZeEvid?(Z&td3piq-Z4P zz4z(mK6WxZOjXoVHvW2$I53*(6N>RDxj}n!%y2`$ zJdcKPml&p?06Oh>XtII>ie5LA-a2kHWWy9Ne|DKq@dm}CjSfKH1AIoa^%ylIfIWXt z)!^9ErHSqwLRs|9KJZjytpG`1WfsgxBiSjCL+2Yig=XPx&v04;kW?k{u{Y4#Lm642 zn26F2{T7wJi8GT8ot2>&FOy3N2mOx*Xm2V6m7)~7FM}NP9}N&jWuXgOh*g3E0TqO0 z!m~NW&@e2b8#3y8K#^y{3n9!TNI|W#cp8E&N)vs>O(ywc2*@ah*B0u!zD+BelFW0+ zbUY;I47GhqQFBDhxRnTnA@Qf%z*L6XtHabyamdY>+D?$nWBa&6 z*=Bbp6szjOq^SyTVEQ&Y%>3mPhzdOowDQCaZECB3@-`YWJ#@!AnXBS zX^%pqCoRSy4H;EY)^Ixz)ngfjU#7>6cAQ8MA{*gTLf|_?Vr)I_+VT~d9`b)1%1%5K zzl_!V0~!*ED{F?cOxh3O(;agBfp5KinkH@8p>p~Tbw+1S<7QvxHd3PD8I!1*9oaD# zAWIeLf0DT%kz!nyF1iAZy`QXWrFUp~cX@i?RPIMqmUM3=hGeCbP%eWcpW8B&1Ywz+ zcACF3ByR^^Bw0~3K%|Va+HU*J0BxXmsVKLigvKbug_BNd?l;tkm6E=hag>!hfUahb z%y84RmLJMfQu6Sxl@jhM0=Q}EiX@(yVf=XBH8`DES$uUz$U6sQ165@M<3$4kol*iV zfuv3CR8pD$kOGla_JBn7J?=@lM)NhD>ZW$4`5D+%`R5aHN6Ez*CVc@T z!_0Bj%r(R8bJgr8!yHWY913tAyLz4oxIk6CzzAIAtX|9_G!BW%+l7xJlnv6hi!`jx zHib`fyqc7}DwPK=TMsY&s9s@}T7Qc)0UQ4_!m#EYwU!0U8nerstIm**ELa0-k6muK z%Wigztm8-KonEDaNoJSHY#|hgX&Q$NQ!g$A22WT^zUyd)ffI>2n zfL8j98+2hhj`k<2p=Wg0CK1=(!V+hUHL3g1mk8IFe{5~)YTVndk5?FdCKzw%WU^xH zH;%7&A?%~HNA}XBEvjk)Nk+B1>^%+bSv7}G$m~s0B=6Df_Y1C`_w8PKU;_ctPom-1 zjKh8(_Np*U`xQ)gpVIHD_ACAlM-xncsYdUkA|6<4|Gw2cJ~O`KJDmRsfA4YFf^bYA zao8Ji@IJkPIJt@4z4_;V_3&8>p>{j%47{#kI=g0sd~qN?x0lx+h4QJJ%!B@nbNJ^D z4HXUd7G@yv2n+@rgAA@YCWApJt#gTSM2sdwa;ZJJc1*^s`;rqfDC%w(K(+AT?f#b92_?EjJ_WNx(gA*2_BQk~*n8((|j3e4F#|PcpOnoQl zPL>yU7H|xflmsbA2Rmb2*r~L7g`f5K)Ka)75rm^GAJ{DD1gzhDZoWm|em+Z*%n}j% zM4l?LVz$t*8~1vT=|vI(p<3hb~6 zo-_*HunE013W3;!VVi_e*+p=gM2Oi%shdQZ*u}V-#Dv(zrJBT**d?@@Bn;RkEt(`9 z*rj?W=wO|wAge8X+1C+(G9Dp^`YE!-nu?gH%@{HC3+H`PH84ks0zI!PdvNa zDpLRj2bR>0^2VKZ@)MT#gC-Xv?#&h2Y8azM^Loh>Ppg!M9*1JM8-A;so3b?LY^Yjm ztwtq>boP@*^u6b;8zyxN1DiWdz*97syWB|~GXZPN<`WJ9sKwaDU2yS<9n{Qa@XT!x zW>x9Jhy!DG((vQNO>(fA-k^~KwPlNJ9L)#DYShUl{6Vqtp0t!xO{xZc(Ea<4J-yZg zVz9f}0jD11wY^C_H`kNH13QEVvlAZ|FKjEW+_+n|6!kl+(E*2pRI958$DMI4$_~3b zfrkq*o5vz&T$Lko{I!cmlfh1_-7Twcx;qihlMbrKDIM3<3YWK-JLb+v0IVeIU^DS# zwUu6rh1yWEYpYgttGa|kyE=iV&IWTR)63EE^Pw(x5Ov#vk*DtgmmR~? zE!hih>&wq*hriZs-|6dZ3fq(yJ=xeAq{ZDrcW(USL2T+c?b?uVF$bPT*`Cm)9LY?% zKTBN<#cI7V?#&HgBIut!{l~sHF$RV^vedTRiSjVKzkb-eIm5b5=l^A|d`@F3jS6;k zlj0ef;fx+-44-86Zf#7ce9Uub%S|?y-f7A9c=&x1v4H*dk<{)d#9JiQQKZCMtkqF$ zz*}O`QR2W`>d{de;Qi_cS?19M8}U|V;|lHhleDY2o>H%jB*t*$t?hYeW4Pl71cPE< zNA<>5Rqs*Fj(7B4?DlCff_Z3kf1cs<+pLB#w54#pPYByQWtq6o;e4T%vd`LC1q4sk zbG5`UqXsF=QY+hJW4KN0LVUwJVI!AMyNNhG9B95BPNmGSvsK4ObM9T$>RoBKQ@r_I zF@}#Tw9|J1wP!-Ed*54eZkc&xzkP|m^m((R@x75M&$VfQM4v&*bG68xe^iNX;uDI; zwQJ1fWAGqkB%Xg_QC+y$cOw0x8a?JzIJS{Ht~a==!EsecICjAI{E~$ag}Jj4W1`Qu zYfe>(gmlhprAvuIjX#WvCXBdoP=pe!d!ce{Y3+SpFdvLWU^*NJ*sr{J>FYrIW9fZx zNseF9Qe=l+yee&En;U6FjHay!W0kzn;NEcUmqiEc_w{UnWihK(Ch>jkuyz1MGs#Cc z@vnX2UwszPYz%^jQazI!LkCiy`$|0;>Y$z@V&db@5RfBs`;yUiYNnU zt@iiBEa9URXy+j$cOGfJQld#oNEi;lonR>Pr2*b&)Fl{+g(HrWrf?^c4QQgWn45B! z8B4`OFnaZ1Ltx>5}k6)z>4vG`1HK4a!25TzD1}ed#?CT`kt~7wb4O5B-ii)>- z+#N4>raSC(^3fuZtqvZm27XmoKiVV^LW5y^9lYp-X{EEl<``GHGF>cYAzI!4A!zKcLrB z*Q!->jyXQN&7>$;KJ4-v=l)DgxXS6ROt;ULCrAISmvlUp3|@3K$?bJ+;BT&EY+~*E zyUVTF0;wkguZPomEDl^7UeV*e(m>c-2()(BD&nx@yPr%szTQuN6t21GL~0Ze5bdeL zHaq;}-yuG$Y6P9&tWkQP(dCuN&MV20I~@u)uGomV*y~`^ntlfsO^;a*r=p4?sSKe_ z?!}0-E6b}4V_w}=4WgS6HhkL{i=3B4(*s}HmNCMaS_DlpEzWYxFhODP?!iz*WWTPc z&5ctRnbnKd)!svh6+oQssj~H*%@GIg#GRx8A266A6!U-xk*R#UrTMMm?1enKx(DfKMkHICmQswPsvZjq zyHdQ)bVv>WqM1JG z>*g;}>Z-EBVzGpGR&1^f|9+WX(;kCdqe>_JwkM|yJga|dadX<9Z%rD0$alHgpQke0 zpdu))ZAEFsH4tW8ts1pvr>dvbRD&O^fS%Tak9v~r1|E7p6)2?kBWY{f_Wf@`+6S@r zn`>rK1&!`Jn|BHr2gxd5)9GcZ0LH%&szV^4sD-CxAXH%KmMyZAofx)K0#P<(5}yWZ z4i!Tcb*-bIa#i!w1QRlj$(8V(&#D@J#hsc6^7CEPHU8-64>W8sK8~D{U13Kw*cTPV z*NfDMHmBDyxN0Q_#dC1Pq#~IKZunOKS0cMp{_Q zr8TH^+~rBx5@0eAOw`U*=MIkd(^>CjgNqv_&l6zWE=fDz=JKb;*kKQ!t@OyvmM5M* z($o9kI_-?#9S^A6ocQ;48~^SmF-|)Q1|Pwu{`-gz__wKQ`&C=y3sXV>p=>_XV0b<( z9U33>p%E`xgb3JxB^dI-I7QQf2won-pR$YOkm5=7e;T04JDCPNyfHNbXG{<_X`(n0 z0t6J^O#y22li2?>K+~XNia~fQW3(c)0Kk{Ic)xEdq^f|vt4H^5|I+|XHE}7#FMnP| z|34aFh_Y0qSzsale>FhIhywHj?bH8hfRURBC>Ez9LjTnODN?S(N5%iA0Tx?cQh#0p z|3?EXR+e@Cp9Y8tN569_^Z!8u#1Q)T`@b4sw}-@kH9!MZ!SDak05Qk3)X@EFK_`&xWQb2X{uoMM@br^zqqe`yr_%W$H8W1Zz&Ta|~DN+QCz-?5QmhG@SrAjbGg z7`~BAhwf{Ls+_5sTANbxeMv4{1b<=H_<NlBmBI_FOdR zktQrAT&&gZTL=P^GT*6Ris^rVDp&Ip%$%oBjqRBRdS<%DSWg@!z8Sg{q2~Nz=J`$jOfqVreq z3m?6AZ8Q}KDa^U)XtI;f9WC3*T>+x4TEygrm!InnXd2E)0k|K~0DJr3_+hQ5f!) zn)#rT{oLk@^Wm}z#Je~nrbts+%=;40n}qK{XN>2O4-Vg|C)tIKvn@|fmM9pYsaZB7 z=NkZ84AA|_x$}DSin(0M_Vz3t(tahv@PvA-{`{HIy{LQ}K>GC~Ym*_=wYrhbR+oCn z{)p>yySHN5d#F37^@!53=WE*wM=&4(7!$tfvX->|>MDpklr;PiFeopfF|JLdZr1vc!!fBXW8^?mg^t*!lcRwMMSd2b3WOXGOhpmWUssifReVp_e1$ z<5JHQ4cI1xUhLAv3v&LU?B%RSIwFugZLl1OGi%`#;q~H<3j1B^q>Mc+Oyy1jsDBt? z6PiPDb5mJLw0~VcQ+i8JvH%iFzRKogbE#aVV=dsD+ zPF61Gb6o{`vwX}Y1LWAaggF%MRE$@z)LyvRZ4}u`s&AQ-7W&WBMO!!QJR79<~z$hLt zGD*zW&tc+EELPp2Ma3=;W-`Dw4kCRX5d#u-meGhiOlC`Smut{dcmJdb!^9Z<_=mM z&jy_B{Y)QL+)x#|07u-|Tiireyi`ZLj0U`%Tf72R{1Qiea76=t%`JWdD?zj4e>A}E zTY`R8!eK|k@dm=_Tf%u(qGd;-^#-EtTcSNy;v+}mvj*a;TjE<*lE025FAXFgwHsnKIFSy3Zb$CuYA~umY>Y*A z^sXv&D#r{a^Nj9_Ozj|sG7P31dB(*g#!V+iaQ6a}xdIbpBl8ES;O4IVfsOtJgW>GX z2t^I!OCu|MBOQq|E4d=uTL~MqGh?bX3m$;|et}(dl38Mrja$u{;~wWChE7fmNvn~w z9fix*(amFq!xfbyjgoWliqjKN&ZqV%19Bq*7^}*-oS9g4MyNsoypH#D>CU_tY!ljz zyuf7caCVLwH9p-D9{vMfN(tVYWZt5CUXpme3MjslJ3cctzQAOb^+kc;dsJ6;p>cq~ zZllmPfOk?&@D@sN)0w+*kzxLxDcV`c9zg#~P2fyTcrjU6sZn%tksCTigu1B~;X&BI znb{RX9BWAAFN+ATI!%|eomG*efQum5H=dX4pl#Xh67si8n1pwt+*MU`ZMkQ{+iazCv9(d5L04UGV@U*KjY? zoXjr@C2x+J8BZ z)&*QPC2lqqEjBfeHVrK_%mbJ2p|HjdtX~KBJbr)qD~8wxjha_Ig^3Nl8#C{Z-;9s(~lkJ;^h$)bB+s@(YW9 z#@Z~+h@zK>>71NdJyR4OH+MPDF@uukV=YxXk9n5|bDy??MH@59GaFOf?ppc=hg^_n zx}=+Vv`QKk!&5J|4#c%K^PPtmus$C3lKrQ4RQuDikapIGY*ZSPDG<=*~D;| zGx@JC>(f^4QD9r{MEECpH#|F;^+ZaKbXt$dSUmb{kGNIbIA>hG9o!HH@rpUToFA&r z)Nnz?MLCFL7R0>FWI8dOFLXUReCh4MdF$Yg(s;lG)djBkF&^`|XS@M-275aDqfR(y z1{+0!lYd(Td!dgaPoe{NR$i->n{2#_C+i)aH*`iGC!ZPY>vx1#ru-+!s~2~y*T|1n zNNcgu@s|S5$6{7V$L1F};SFYpRxFQv*v$1%0S`0BS0fj%BAusP&$1-*guwib9PZ1| zSp1@3s){SEUzDEy;I@34_3Y^CVpeRb%Jt7Y1WYgPCaHX3_A8ezvLO^t&G3dxSx`km z5a_hZ4EzckX-i-Efgk+5fr(60f7Vft{8o?7-+<-afY;eT^wt362T^*1XgfiSZy;9w zM$RlE@l*rq!p7}oEq?Dt6WFG~Wqu_BVHti$d4A#HW~DvXW~>w8@nur0&BkfYCR@Fh zW{p-yZ-X3{R%gyO|EyL<*ET`1w&A2U@i+CCM!i@9yC#ed@+Ri!=5|Z0HgZ5`QKw3& zcV}8wrydlS_hJX?08?sbr#QRfr~>PBCwT}vPn}+O!?9fFLbot``@vhcJwex*xAkRb z_f?b9o;TmHo_4FA;Nn~FC}&smX8(&`r}f{y295rTtbVi96(*m4|NE}lq(Q)YKdZnX z*f(nc&@6U~F~qplD@ADaV{=H@RHR*Pm{Na8Pr%$zzvtqC)p~1C=Y2$pYV@U3{*7Sd zulKMP;h3ZTpm$Tpy>}aA<7l+Nc&fly2BB<;Ko=3mWI^^s)fQ`(I&&k(fLT{tbk~UQ z`y}f~52b*_bQfvJ`*_*b$a1#Mesvsp!N zUgK?!sHAxpOGZskl;}f+l&FO=XP&lufwy~6@MBR_a7n^ zAh=QDyHU}-QS-6UAh_A=yV>5o+5NHEFSs@AyEWduHT|(QFSwlrp9}5?Ag$m2c-`J3 zs+=_d%!g{wtosz0>i?G5E$Lp`XZ$@~LxT-Xg(3U<%TDF+mm@Tx9lxR7A_GPq9WtMR z!Wt+lDq^4y)IKXrwL&2+&%brb9ZI^M--109Tsw#C|Hj02)}?wVWpgz&iTg2o?38jz zx4u%^5N{dfve6j7`wTUj8cO}xAy+j#KC`VQZ#&BBKFKnD&lEd_Cq5G{l!(hcrPi9< zzo|&i{d^AAKMJZFB#I{EyPN9!QsN8Y0qTjP^B1TC1E|Ak-$VE(ni-fYFk=th?;i4q z!Yg-T=EojGKgsJ!-$U4bl<0khg(rg+5yVo;tKFVcYoV)czr9AovxfGIwC%IO=Zc>W zr{w{dlNIqI~{vNsek`KNdfe#@Iu>u11U~mN@67T{< z;RyJA;8^!X86h%7DY$P)z6BytdcDK36^|uS$YlydvXxAvGW=f}pr@1aa4;0?>pO4# zvS_I8Pp)FChJwCA3@kSe8?>|G7y=xz?kLWxl^Xp{uMY&S>a_-BSE?gc$UbZ>yG_tG zlra>l6I6sn>UqMtRGGWG&=8!+fq2|^L;|50o`(I;-}6gaX+ju7)K;Pt+v3pgB>8Z@ zxx#7Jix0%hWeLUdHJ>k6n@Cb=F}0kA9U7;xr@x$AB;~mJmkLJA*@YDA5eUZ#wBH>~ z8A)HZiuPc!s`w@5dQld;IK$c?nfw5c7p$okO(Z<*~h^Ir`x(lXcU zdfYP4?;pHXeh`YRRY4eWlvQEa%V4>9%xmLXQJichZV9qZrBx{pr`K6g0`akRajqZ! zN_jDYFh;o7h`q)uuUCRs26xW_9$u=@ulsr|CAnoV?mv$M)24b)yF> zv`Rx}DY!M8)e${S80iRd>~y~ByYJ;FPOi;(?^1YdC{u4e|Mu1T;2Db}_(9oIyKmqm zPw77MydPXf)p68sN(^>565vL8mSc=JxIZkf`~GmL{%eM9FI?(6sSo1?<$kmSmg#L* z4aeVYy>e5C;=29foxjaToJ8faUvH!1cJKuG`f)aI<~@1Fw)f{68}t<4DIFeR=M$H~ zrQ;(9km>WquY~INtWfH6``qMzEtC%P^G8DGX7wR8Ao}dmd~F|R82hw$4yfp_b-w$d z3njASdF_WIA6fel+LvLa7-;Zf{B#-K6;lx(Bn>i#mRjh4j<5^Zh&H~9lN67$P6!pi zLyx8*oy2UBvpGm!EuT}HulA&KwdJMG((jIt9bqzb8! zR!3$+eS$TGk0XzUbxl@#L-kkVl=+<-{G?XL0y)>AIgWLOoT*_F<(Po^!w+kDMlR|^Fs_-U{SdwP@}6?Yx(1iXcvdpUzKU+mb__lo;$E1wgDRcZkv zx5?ZaOzK`-=~=eB#ypz9bnYkKxt~cesSwCkxSX*4-d-$u_YYYJFSJY%2=WCe24vq< z+7xhAQ@}dFW<4=pn+5dT`XbZ!Q>k6<1=~~(3Tg>jg*{7-EKo`~(=_(KJ4!X@QkQ%@ zqB05hiQ&vUg>?4e4VmZ(^#ZcgG9_0_{(EZC!ook5OIhdGpUb6Z1E%UfA#_^t=Nc@; zP33(qM>-BXv!$h2k+xs7^(tuP+bY#+ov%y`{B;E@u+{UtI13ctWHpMu{;3W1r8Sg^ z&~C<9sr@}g^_@{~evHZ$6c7q$BzN~&9;)7Ggmfh_e6G2)!qQm$L1#IBu03zqk_==2 z|EdAjI_Dv7pOS&_T0P-haqi1QS7s)jZ_hgXk9#;5--PfH-~r_gRjp5n)V& zVfo-iIpf&E4naeD5`-Hv?{vlvR!^Ugk|)QVg+h~dW!*=J?bBJ5t_6u+7U5X%WRQMo zY0^&dNr2avp2DL;)n_}jNVhUsJ^3QyYA=AUh$u4HmCLD_G-ZoJ07D-7=$be_XiMi% zvc{L&RPD}~7TlJ$D%3NP8eDiavGipM_G?rzP7FH2PoC)+3nbJDXT$m!ydg=yhoo@d zyuh|XJg-s&&Fe*k9Hb5*o0t1+_E}OGvg?6jyzW~KmZ0XF6L`#H62e(F z0~#`8oYgQ`%-?O}3OPT+l_~b4RM-qy7VN8G^!E;W95c<4Pt>$@_c&%{eK`e;O6#=- z5hOiyn-Xja5`xJD6IzB2z>~o*k0Jw7%zQd)HI~-?o68H!k&FBa86z~`n5-jTG+96< zTQqoQ;wq0?JjAvkeIKll!ed(`&Ob+CsE44ez5>PU&*!yE7$9)lOua-PMgDZ$n9akl zD*5KrS?P1SYANhM&t^Ad@i4akcz5`H_gvNXL9YK*F7OM>OC7!BSdIl8yO`3i2b4FG z>QMpbcSOVB?`<>Dj>Esvld$pgy0=Nt;VvESPB;)r&r2O0`@nXYp=QN|0`(nNvG-TR zYiUq1D$=O`obnD@p_bGq5XXpj%^Ysb5Dga{g4=~X z0t2_fAeRb#DvTg8957XnZG!z1;DP&D8X3|T9Da)$Lh6mYhY*rr8Wm{$)h$>{+wg29 zFqaxPE-fU+5>4tW)`-@RoHDd$PG21$kf|-u8q(5&8~Y>GH5Lf`S!yU;W*O#=ixq)} z6A`%FfXn`9M+|ARF%r(AV%@{-i2;nLO)!@DJlba0nt9Vqe4F`sS6@jPrd`R3I3x2o;qXpnL_pZ z5<8OAY1yZ(7~VXgUrM@2vI4^`fDK|?0*Rr>C?fz>$A$&rvGN`O9!a9#V|eDr5l{gh=5B_}W!SbWCbq{3N~P!)dkN-L z3G@vX>{K>r=?VK1#7MM`SIZ9dpASL*sbQ5w?U`iB19;=Yppg!sDztoYCkEgcQI6vB z75IjhB_&atfBzK@dbElWMFEb7k?YX-kGR397Y19X%uygYi^OE6`872 zk*YTiPBl17HG=%-ZKH5r9-SI#Gj>ORba%@W}wJqM0?VheI+|w z!FpWFc&2gAsqi;0_?{A$=_m>5Q;EewRstkwqGo&Bk}irb^5n#&I*4&(3+t)-o|V z(Zm|i$x(62!Ar`aY{;Ql&(XilA;rj5X0=$L^*Hv-RZ7am0_9T7=VCNu?^I+R_Gbx+ zf^%i};$JHApf~c!Z}S#ka`n*jNZ9fuZ!;gq0q~Xi3ZOj9JFoGze6-vAB*;Q2Q8-fk z!eG{X=fJ`_ULY);nRUaLvep9Cg@WRFQ7jSZBPt6Ni2$6ne|aRK2_jy>MY?>z zd|d!{CAKk+DUy4oR8lEbT4-7n@b_mp;iOU)zRHEJN<_4Z!=%b)&l^|@;BT+uS*Rvq zE2oFde0r|TrUT?|WK8k_mMblRrD)H*HT+J7y^+|^UNv+LKhG<}&uv_tysXa=tla2w zq47;2y=rBXYE~w)h2SGcbpxKGuzFsrhKq8S%GN29dQ5(XA>|s#MrtH)19uUyzwrWR+f0ey8hG#O`w;S=I>RV8LvSatY`x;Z2`03! zAZm=pD!P1fxjF+!5Ghox@~!j6Yojzq6DCFj3v0uwRRdLYBVLs`RuZ^L;euR=AE@$% z0hO3per9Co*hB(qmaS@xw`kPAAXnsSseo@`VhwVXvo6&IxZ1WlY8KF~*gl4}{vgnS zIt2yUwuMKxMOL*%PqxKgw8bN~C(^ek%eAN4wx>n6XH>OkO}6J;wC5pq6wr4R$#s<2 zc9cbTR8)0TO?K2=bkresHqduA%5^r|cD6=$wpVp_PIh)*boL^4_0x9^%5@Ffc8x}N zjaPL|PIgUSbj>1m&(n7=%5^W>cCSWvuUB<%PIhl!bnhbe?9ump76csGel~3PoK^LF z+J9FUJ)g~4xAeXDa=m|Td!M3vU#fcFCVM|FdclZ&kPLm$^5DKNc73oheel(Nh*N#Y zmwl*6{pbw+0Qr6_yMCOQe!S{_f~kI@%l_PDrsM$@VrW$~00K1w1a-^+%qMtx(=V*5 zmQjpQV2nmnJwQ{9P`WU{yhYB+FbHch$W4gAD?rCIH7IaLCzQ>|o;@IHH~39oPb!;C z=90PiyG*6>pqS5~@;i+r!!WPdaFMw-&ft)4*D&AvFkj&i=^-t<&!9r~u>KT{VfF|Y zXyoHygl=odvYMX@P0UrE#35MIY?-T^Y~UZ%5OTvnH5s}egG#^@1xJ@MFU)u<=5Xp1 zWlGGrQQ>$N17q6dxK7Ymf&4^?-9%Z;L`C&P)zn1IC3vC^X|jP~vQd6A%V(52b=1OV zz{y9uS)aC5K)Jnova4&bXNstgaH?Z!G*|UA(M&Wpr8HnSG9*7b(?vLEr?gN#yks{$ z8#8@YJT3O=&`lBUBF#)x4;;wPOqk3RV9rc#4KH`ijLgrl#msb858esPR;$cv`OJ!E z&%R|7e%Oir$)15^oEsIL^LU><&z^hln!`4md)6O%eV;2spU2pqgY%u&OP*h1n};x% zCqkYl5o82j%~8b8Q~53s2rkem@G->F(@f8^*yFPaE;3C|VcRbj1})lGFWzn~(tj+* zi!CyLj>^=RB#D-srxs@EMJFZ}GtmH6=1W}5)32JZNkAeZhVOv_ZAIm>JmRi28>PQH98?0LU zDtOpqSP-qo`m)4-NC#}MI0%k^6s~zruia7%9I~&LaHwbajuHIT$*0^<`L_O)y+G#5 zlhU~UytLl@uzq-`UWCNE)TlC!DOC|WQ)RE3%*K}ACE8H4Im$L>>AYq3cY`!$6G?4D zsfc@)QKGA6s)tA$8hT6Ag?C_j^=NSeB*-_is4>*NHMhOR<-BoVu$JYz9B99B608y3 zEOI|Bi~4PB<74v7Ug)-F=apz=+F&fq04%id@ohaKYP{k4tlz}f zDh5|OX;(a4J#v+!eReN0vbAL(dl{{9ftyWY(hKJW`YNEKYeA?7i)KR)}W!&LkG z$1tl*t$aNvyTgo_G0Lp5;D$r9OE=0P(55qG*WUoOJg=Ox$rq z?rDR@mdwG?@SPwlF<+^|+0UYV#Srirrou99>aN@MVifvWeeFrB;91^3zN&wFjG3~G_4!;GRUkvU2e7Iae z9#~~kJN(wKD*{P^;^3|*)ANsST*>Q#diJ!^SbZ) z&-WgB{hB{V#D|$g8*~&`f3Gfkb~a&zuOEdt;2f?Oa&I6}7484=Am&L!*PW>-axMS3 zC2!Q#ao+z^qYX)UH-D|Z^5YJcgchTA^<(EY|5};3ZrPyXlz(~oX%69`XF1Y&`CS*9xPCLc)Ayj@a4)C8k2)4GGbVznru3H_6F~oK`)|Mf-!%~= zP(DH>DdJE7vYyeSv)^OI^73oI(`!AW1qs^!d4my%WSh$8i=>n33?`b+#GSLl2q)5JE0(LY8*R2HnyXgpxC&%T5L&9&8?6>A z4JKQz#2VD9I&$P%YqvW+?$0UV(k^#;|LZBW{T%6WLZ&yIYHK(c)kPQokEe7rna(IX zGu7UBGMoSO14ZFKo>F;yoZ@sx^TldCZEc)F=clJsV0o}J-P!8U*Wr&yqS*Dk@_Qti z-e|^$>h5^1NG^}*miO<)TBCStZFlF>pVszZFo{x+fYt5sVwF)ZuHf6#&B3B8b8pYb z+i20q@P9m|>W2^N-vKZnOyj`##G?ElD8^4u39WR5G^mG2de5{5A|D7*3zx7LMj8fZ zipu_BwjW7TTD~7C^?6PG1>eRI_<6yqy%vt|7Eu%-03~874|t%Vh@Zmbj0nR-6O&F9 zWi1*`Rz@);*X2~CU5n#G89#_;`2ybuV;n|%ocU8BnlV zrXTxA8(t;V>uXq{2>sUyvIK}j-o#A%{o-S6Fkvb%_o(g8JehPLqBzBuZOF28?TdB! zw+IARiZn?NuJR>-`A?7kV9VTPfsb@K0JgC5xtI;w+aY^60|AD2H4FbH2_Df z0hJb1DO3=rn*4J$uPvb^;kr@Mm2#g4!brTjEQ5ms2%Qtq>^1LnXzh&s=jKUAH!S^$ zvn}}a+3EXB2wy13#|IT`daBTPZ6E2;dYP*J{>g$w-AbxOZN;Ew2hc?PNmP_&fEZ?= ztpb+ThtV`d6NF_agTywAO^OgJ@LZc%Mq{uC^jvD}SB=9Nxz>KW>7331tQa789h1aG zQITwc9P{*eALav4HL`&daKYeH4n^f?eTHQOq8IL39a}-dnW>vDw@m`nyPM=19{oRZ z6DW7LnIZ4Vr9sR=cF*#<33eT4(z$*e6O85_oMH@lTMqkC;8NS8`s13;@WZCUm!Y&y zOpiaVwHY^+wn6+I@-|-?$SxQddzHi3W`yibn^7eddAHQ2Kc0Svqkghr#P~jPfxS`h znKc*`g7UNkDMF&RogtN%h(s@5HBFYg%TqH1=r1!CJ>Qm*A?nz*P~o@}p1OYi9kOUbA0=oejvEd1SQ`NjfLoe6iy3+Ld@zqQaPp&Gx)nms&suI9S0nOhFF~} zB!i(5rtz?}=I~c*IIlKPIFA7O5T%G2fiN$bG2sIp+`6ME`)v|zBn-gZRWVwJ0S*YY zj-jqVYASVZ66O^!CSx7}8>_!Bqy4Km*d;O07ixmb4G4`#*blGW7li7Q5USQjPV6+K zNUz^Nq1giR;B_it2oLR%!#ecE=Es-6wv?2>o{VuU+-acjOhP5PGp@HGPWss#?=8QN z%BBrPPHci8`P~FgN;-&3IYaht4H?48M&h33msl|}#&_1eqYYh)O4qLdh-GmsR_gX1 z=U^M+(Nb$iZrsqzCAa*WtJbOIY8A)d8NUs7zPg` zaizJ`9Qx5?gk8QMc;dVdb1}c#oO^P88e0sMk6dFVCAYDV`PfvhP-CMtxiPK@*;o@> zV`nM1xdGnz1%f8+W3!vw+(`eq=cp4NR6Tjz5kxBJ@Tj%-_B=l3+Z z`|tIs_aYS<4>a$sQccNNyndJKPCd8v{YxS8}(h1LC*mQ4thSLb&`P8Nth# zv?3@eZR(JU|7Bb`4wO{?|a~X*F%4NZ{hH|epBvZj3S2I#c;PC8IZk9D+yiY z!G0V8^W3K_4TVgUy3eN-U+1H9|JL{moGH{L)#vqyRL*u^tqXZ?gy&v3Jo(DH`Flg2 z{d=y1ecKNOd;fmRd7%ON-F^hWAE26F<@U-v@+!H0ZVt{D^Sr^A7ltl>CJirFl>}A# zNc{Bejb0XnC*Ed-|2^9F{M*Ru-AkVJe%~b7eAV)LU-gF`!&ol!221@oF7uIZ2q1C{ zfJ+Y;!w!fS4Wxz)Y;W~Pp$R-T35;zB3_?dxx6HmB{cDS2I zxJP=pS6jHxTDaeHcmQrh5Klyic0`y*L_~T-R9i&MT0|W9IU)f!GKnWLMLY7BMEdTes)r^=wTil5^=a*8UWF9j2b7Pzb%T} zM0zy>?f0|#=Az)DRg3~f?2!`_#yk=)2IfQr;F*ISO_cfBIj%<~c2AqN3KYBlEZT|- z*p8rLSzt#IWp)USuUCmZf5wmrW=7eIW01hSEmr}7;vdTshE-yDZxjCUpuyoKaG22U zJga~4jD^bpD68}0zhDL3B^BID;WyLqxu9WWBzS^T$jNkAabDsfe#Uc(#xRa!$u~<8 zs3t2d#|yQK$ciSxyihu)Ch-DO#4E5QtWy{l6FIEWxW_S**b<4>lSwOpBD~DN!f1_k z%&9pfJ3Or)>#`@`AoS> zWTD{97}vq>i^Lzs!&leIG3e*=9?TZn&qxM0u2ijpt_E zCFUklQD_L>W#qlK=e@7z{d>uSz|V)`%ZJg;|LTIkMf$2hF^feSAeNo zfbCU)n^}P0Q9$TrcIh6}?C$nY%AfO@*xJ32N7|1(GxRr3;LEBTDtL%jI-vfiC-+1 zS&Y>BIi4)~QeMP=;%RC_sHW@2HQ`-Ljj4waOnp*fR9V7t?nO&i=9-D7zd>N>L|xbEXkfA z{3%-zhwm96TNcJw>b~J#k?AZVTb^}ZhTHFx*Wv8eP`Uf$(}qxm2kFvKS_-7A{=!-rRaP~GfKHZKVV4;QQ&80z<=Y-rUCUR&LtR4pj+F}@fnk>w0-s5jS75|tz)#TW*)0PmqibaDt@P{ z*x0CLv#Hy#sf53%`OR0)=26L>R{PHeeIc_N^P<`fwkGquN^i9cr?VDyvIgm*1^`({ z23yZz)sQrSMzDz%tX08#UJng!C3PA>H_(iNf`C;b7p`KqwGz>l@7%TP zx*(*N-paa_*6LQ+ z7IXS~72D>2nav)ujqVrCw0i!Z!%tvz>CdbhzReoT^G5rs1}}mpR{m7a%m!l|&ve_iC%(3A1b-9)kL0Q#?29%+#CF8!R;~F~zscGa{En2#_Lq*9+|Jfw z#E^lq>Il77XMVy2gz{*)O0~_#Q2Lhg*OoT##yZ_j)vBfomGau?wtD)m9Pf^q&)MW= z-H}(fbac&z9D(;l$2Rz>YmA`F|E)gJyFLS_?J&x}w+d~2wWss8o9d#(jB1k8KB7?pz9i7*cxDZA7CLIWD^+V&>!UT8RW?xtO6X`rSff{6Sy@#`SUqfh*<(#ut!h_hcGBtK)4C})aG*CFfm3nEJsMNlf9*Be zgg=Ugkzyc3)^Z+eQzdlPd_#IK9;>T-t``kw&An5RZJ^8-KyWShBO+XKkbbK z%FOoJyd2)Xoc>KPJtf~7Qa1Jg+eP9tZqhmPM;_$pJ~N5muPikM-kKUEY#rY!{=q-@ zQZ)d3Blx7#K2d+`OVG_PyU%S!nt>!g@o3HzRnq^ zvIXMqE_|@y;v!+6G5-9_Wk=j6Yw4<`& zX|axQi7R@kudL-r2Ics=ljFr>lc(dQMJZfq=nFgK>nYW|C2N z!T7zVxccX70x}2M0N@0IL%;Pj}XU{6x@$`9m4sPe^%*jXLMNoXmQ&ro1) z4MNJxJn1^mOvH%oV2p%&u2ptcU(QzS;L^eS!cynr?8MmNjVr={OZOFerxZ$`{R9ln zKpNQBem;M*g9w=*5eOyn%hz*98bfX0v&6L-sHg0b)=uR?7VkoaCPoI~K%V@&dSt(A zmb`j&8iE`uAcmF#ZDoygcoDkrc?+OU3%=R5*_uEaMfGLe$z?=5LRLIwgm@_2A;-vW zc4sEV*fr(eZBYl1h@lBUG4zxdJ~GU>O*g7H%RiiQ=(w+v7N)l`>5zA`9T)ru`R?XZ+rTmbNK{vO!S016n*36wAZ0;_%1(?307Y zB>RV+*3OOY=R;u5Fp=GwlD*DE#K0vbC?N*PQ^rtBDu};dWMt|*fsw_APX9gWyb^^f zKc3?fU;MIjX2765Ddu3g1$yrL z&yq1)4AOXZxuvb2J6w%_SW*-apZW6`U#|J?`(IYhZ{$oSJgafMoG9GNEB!8zu z?~if)LLmgYfx1z!hEC)_KiO=h!P!0WtGOlc7Xyl2(-%-7a+FaR9cX-aw{f~BPNb>a z-bRGHCF)0FR!2cvLSh~gA#xRG-8;Kjg8s*HF4zksB2(f-KS|y~`$qB;w{BCqSB%I= zjZx(<0R1nsD6>BJx8^Ro?oS?YK82t$AB)D_d<8{WYi#h*;}Wlt&I@A$9YjGWECj?M%mZng zITQrK(HQz=f%zwzgvDt1A5Td#Mi-(D$SLWA%%=+re7Vo|y(J`+Q=5;{=EnlAa1wSNC7jxtRGJ6^>`Atgkc^_qPTVNPG{%S!jHrdzBc1-pBMk71ZC+4GrR%dL&7}I;aW|||B@U74WkzOma&plYi$f0$T zBk#ObscGHhI%h ztPX)eFIL`4Ws9FYg~80{te~bOv0Tn|=6&DH)GQd9q|yA_NfuNCPi4%? z884ubG&NypMx`B{QUf=KK&Gz_lNnLh+PU^rAPY)sn%7KfbbNnUNlK8ayNIo$xkqQvA;=?Au8PYEyRh&3 zab-2<-=Y%d?0SWYVwX;f|HIlnMQ0MV?V?W7v5oH7wv9Ko-LcWJla6iMwr$&1$F}{h zeBW4WkALhv_SrhGI;c9RF>B8Ixvwrb=81YH(LXPtF^h(9r{BvikMkmdP1nno8uQ0r zuft(C)BXh@?~#S_)4Ilg@^eGZ%X*?b%b@DD7_Kna^D|oz2WBwTk-@fJ`0rvIXls~& z*zg|Ri;AY;bj&K7{%}q~52LR~b=AzZ)ZH|JIdyz--oK;Hn5YvmzXPhr!4w z69C^U0!L&KtWL{MbaKojTn2uEFuk;|g^VfO3}B@0kSfOBJQwvR&O{xZIe=?he)cp6{j^yBi9@jPj0Cs!?$mn(EYxv?V-riXKh@f zd!C`^A%wwC^Oy1VUGx-yJUzFJ+>E&)Z4l^H$kf3si?7PUF*{gn{kwT$YJt3i986Kw#RQ|d#DT*M}d_H8dfgEoiZ0<7)J>!E-u2Br7{-$IhQm} znGTk9D5=V_5PRoT=uUg8#{QO{Qa@aRLshP0cs7&na#Z?kO|6)fwit5eR3d$8q4F1Y zvD7%w`2&|)s>yP$wD_S+r;l1@ntHKOST%jOkXobaY`&n{x#C-35$iTv^owT8ap5zS z;e*vEZcHi)HmT6tDp&k7tXkxVU=0+bDqromVnS!g+Y$dIt(nvxQi4iWsf1h+HyiHK zSde6;$5pXb`x_%aLD$B_s#GLm7PIOQP-SIAqg;vK*eEeZr{day-T|3XGhAgUsM(>k zI<6M|Ra*s;zkxp5JyKWQ1kDpvu~zVb*;;}}Z?)1m<8N5lHXUX3{VY1y_#B;5mnHlS z5t~=t>L8bFQudb-vH>pWEf1pC1`*{=J@0g|-VD6xpL-8|aAY-MR$~f<+1LXyxHrM#);j|}8hu1AbqZ1+3cE*~ zbyZDdoRa7JSS0ZS|1z1PEP&LS!~>1pgu`_Kc^?O_?MKPyobaT%)@_e>Q%L1 z*BL!i$M+zl($dmZX$oE@B#JFFI^ai1)E}!%sw}c(J&*PwMW+~Lk23mb&A+dmaKt3d zn8+~ATmBSQu~*EOn4 z3>ov#bM$K#c1n!y2sjmuW*V2l$N(pbXdm+)MQo$(58W#8^Nzh(6I@-+Ve^(!Y=1MD4@L`p8e33;5X5WB0X9tS$K?%6@q^kFwR_IgVC;6~ zJNYm5sYYl2xXi?u)vPk)IPCeW80OfanP?M(UK!5A-q8{$0`{xU?|L65l4bflkO6mF zsb1?rMhSra;;d~|Bd6~?4o6Caq_ci@dH@0)xHCT; zNz7aysCn!L5%5E_;))ZZKOVQ$>??k04eU7N7=I|H`o)#OTMi)bX4iLcM-}oWE91%z zB2)65IwN}tAxPMrYA>K?0Z&wKCOp=2OoVPfAz!ORwf{Gsyj5WPOn|NZRJrG)Ln=Z@ zqvb0gvM>&2X`i>vyoIPkS2zHR z?G@FM3UZa&0}I|KL5wmj!v7)xLp%@jp`9{?hOqT3>Qkt{`h`nwjsNV1Z&af<>IHVo zy%+i*4HyB^k760KtPSV;+WRs~u#xLaA=F1vSlF^3>NkpigTfDL-W~saJ`u^E$vIe+ zo0InggpCyXVgnWuXCS;cCT^n--+CZIqfdM>rbZ$f#Zveagf~Kg_icYbUa2ceq5rv5 zSY9$uXc1warc2Zs_D3f)@)-vBWH%KPoR1^Vnj^yPgy553OaKcq;$SHEBGLdfys3<+ zqHrkL!Qfu)P_+V|A!u*1K5tvDXlKW85oNR{i;xLZq#!Mvfmax{J@3kW!d^$Gl64H( zZgk>JhGHO+Ssl#l1`I`{m?(9K>C4YtX*gmT#5l(o^-gFZ(0;qda2wh#+f7)3N->o2 zP~hk7Na0KO!G37FeMg4IFVJ;Br1>bPOz0USs-d6Q^9$-V4>ZBYh*Uap`gxS_B0DZo zd&F#PxLZWKT?~47_YKWJTB1;~a$b)gI;(MCOkilFmqaS5M0(oDuS6axdnv;Htk&L< z)I`bd9Z)}gXdak+Av=j`1&Ih`bPihSiq+it3IHK9AG1UHUTF&T?&ykVXETT-`)2EM zMc+CIkN#w6l68!71m8ZPOm$$Pm^CI@q6A$0(8X+z=3rROEtXeWBHu$qu|-5wDsFUv zRF*X^0@zrE*LWN{p2`OgEG?ANMW#<=48v|0wV&)zWnoP!Ta2&B7Ux8`gfxz3Jg}n^ zddP}B-fujr7imE!oC!q^)LaljDmqpN!7x(%#wsSwIy6c`X6vNuLPuz-QC38_TT`3= zWmIe~Q|5?=2$Lv8*L|{He=;={_fThgmNYCsavVQ*rWmvMHsoG_~P~pif$U)LjKrF4DEBSs7;QC3(j#+SYV70nr!Z}b6WV75J>MmFQ&u? z1Ct+wJdZsTRW6Cq63T(=jFh7hhmkh(sV|NLD#+&@2kkshqRSy{qbz>bTI?A|MBLxk zs>HgRhrlxB{%8Mm|3$4Vr1!#nq?ts+MpLU-c#WFhp4oQ0&DaC9Sylc&IJFPpsR zkH0$gEQqR-MlAX%{~K>f4?>OAeMX;b*^q77NOaj)b=kyZ+0=R2ENIz0Y1yJkZLzJ< za%kE5k(p>=+4ganH@)%?hPs4*m6T&aczS2CWt+XpiZHc0VL`QD0+UlvQ=Naa%g_p? z$BGphr@JgYP-{i>2kYOd6@R`gpdo!oeN(V<+s_TI`+7!?d6s~0PXS6;BeaW>%Shw- zr-uJf6TXN>Ox0?fYFflrHMMemWLtIAXG zZo`sF$Ii>5o!7x0Hlvf+NHRkF0&B)ir!v|4z%PPd`iVYAWo$lC6$Rg!C zt|cX1(U+v%t*X-wrd9B{(JPu%^pm>&v1~?ab7*K&+i`QmrgdORTf$27*M?TQ)W*!z z=0X&0k8H^Volb=EIwDWyyy(_imS!E>R`OK+4e>@!Q_WV<7Vw`gdwEu89UT2XZ>q5_ zogLNRN@yFY(!V!Nwl}`X?7OYQrr)TZRTnlCV1|VER*Z#P&5)q5{NGl78I z%5oHupb^8iJRa6A^T94f{A;U|!vP)7nEi(zDYL?;a`~Wlf(u@246VSn z+r6d3tGc_f#1W~l4}$zd!4V;u5QbA{fwFHe@HCl4Y#+!%p1OXbkY-MxER;w>4<}m$ zN7W4bpxqSFnvR^k2fDqfLA^9jW%T^Le|og%!^zibUM%K4G2I(Z?tj4ahH)5bkZfV} znz<;y2*Y&+8zY0rZ;GHtE0%L=BwauWaA&9P4yD8V0a!-hGGVi$P7C9b0zc>Fsg}P^ znwOatkJT}hI|^@4!_l#YZ8whYq%~1CrRd1@?Y0XN>ed#qHCd0qy)%r&L`_bYu1m{M z9d(1&?S}TdUF?Eikl~AZ(3CDpRcbR@GR{_a5$-W9MK(9p1JyTC=T}5yOYOMn@Ri&! z>RzgUIm$&g!^c4*qC5T!&BGrug(y;VWydgvj{s8b9j?ThdSQ+yvP2$zWExltq#+y5 zf}2H9p8VXJxS)h~^yw>mn2*4Y0z2bR2smL4GmB8b#%?=))`0%l$hq{)KK(dJg+BFY zJHV?lhqD<^tJTBq3p2gSW1@rGw2lM7pQJVSHWFfby2nKXBlSH*HlE}{gGT2z^Usi+ z#TCaF6dz^)66XBQs&geGUc{KoEGwp?(vRXYT?9}&chzprdu)R!U~tnF&WmE9rK``w zXwRH!FAOplSa(4`hWc``d({&S>eHxp=6JgXvAso3j+1N(f0=rhs0 zakDgOhjVK~49iA0uWLM}C5#2OCoezzOMoJ&If21nZLEpKiGQ1+=b2wDE`j z5pZ>EVt}awenup4PCOIUZV>Ad9RqxDmt)Jj?B=njz8=DjK~XEVAXMdW`8AwKAAWXX z+GB2;rhl{K8_KNiAT9@2yVl93c`sn?$e}Js1NDbi4{f;gj18fm1SM7ICP!xFL3YJS z*!*ba#8C#{k%lUP_4S~ZGeW4RgYWOurs+dL?>SD~y&B#35H7NzDeSik`IKk3~)sNlXk;&F!A396i~p<#-UNjh z{4wIHdi2|0de~5NGX3+E3xca-hJf^PZEp~a!`!YCRX{{MadzZ-mJH9%o($cR`(=yi zFlxkR7Aj$yUu6AUk6iHkIuhta=$G8B92CYuSzdrbj_3C;d~Vn6C>c7mWb(x5IT&e= zO%jTMJjK^KSXJcdvM*wyb25b@+^22Q;TSekfG_R%HJJT12kI>s>n)GsEuZ79K>V#x z{jJFCt=RRgB;>6$<*lsbt-R%}V&tuI<*n-Yt@`=xJDE_6^@)s68xO^asK)Ojm?P zVlscdd=6qAaqYK}0}bpYw{D{(BwLn>*RMPQ&7uhZl(haZH(n1>!)}Tq1;zgo z{4BnSjePCiGYTFR`Eub>kz4Fwb@H(Z`r3*6y7Ig^)0@`sQ4V$EMmYUyGrvFj#okGJ zc$>3)cinkkgR=+;4f^dV(VE{7a^a&PGFzYA5DkVxx`UkD$`ccTpp8miVAo-QfMCHO zf(iP?R^b1n09)O=C7VoTHk#@FfyBAvdAZr^ z`8QmZ@!oq1Pf-JvOGfK311%zEijTqf_3`$6f1UHw80i3-QeRRVo|4cQ3U+yc@Hh`j z%kvHf90P&`At+M|QOJDO|I7V_D3mCilh}&x(gauNZG&2v|k3|Scy79&R_gAE)t0^spVmI^co zr;3Z4C6X+P_uCpdAk@Vy95N}4!Y~s$Kz5+Wj)FmtPZAPcK~~mm=OE7u`sqO#W&(R- z7Vj(DN}hleXM~*<&Gcv}J|N459)t+7K8ra<^j}XY{HO0^X*spS_n9QMa&@Oxe1?H+ zJBr2V=_yK8b8sM)P*S?dTG`M~PuhB6cMkl9{UuA9q5_;HGXRca%6=|9n{tk^0{J^# z>uxv=B?Mop)s@C!c7>AYdHDlvW5!-lzW4y>PI7VYl{#9LSRC!nyT@Z7B>~zrP%2w3Sj}@3#8m#G`QAgo6BtKRRQEe<9G7Od+q z6ByLX&P)l=Aq-}L%exRuO1V#%l#}B?wdY1f`xke7I;sE(I6izt}06K?MR)4sYuM0jK+kG+C2!>YL3&C9Lhv-EJPD0rSqg3mU*+~e=Qrd^$P#b{%K?p5E*^d%m8%WMe z1gl)yk5OM6MDIleZ$vqOGym-=brK;umJZk@4!n z#ARer*I#vu#Ji> zP2NTpdKL)XoTSoiLxj0ilB^E4iqQ|>Mpy!nurA&3_)r0{1@=ZnhYk{c=1kUc=m^*h zYhwJiA#vfXQ55PV5)8{^;fACIa7^gx?J)B{!W{4Ei z0~3aYQ0We6$5c-zQpSBH85;71f1z4&S(?m(i5;-iS1U43=ZdynN%rB$_ix#Pam&^9Pj>PyoWmaTT$;hWEDiNy^ z{~=zfm7jWRdB<w@#w`z^V6{`s8gWWsiW{Zr# zy$yi5*iGbC8)9CrGo{%yd=Ud5VRomrkb-9=`jgUM_*moRS2<49(K;%#Z5eFkU6|UsJjLmaRESOw8gwfqewR{!)UN){xP&xWIegHskZflKX@1 zLQvUTeIfgcwN!-eOfjK-v6!E& zT)FB@wV{2f+J~*ui0)i-p?$fzo2}Zh>Rk6;E6(dOKgE;I`ZIX3P#fRHsH@`W`0jD? zJ?OH&Zc>I6%6$gAo3TDfYnq*)aBX}Dc&D5cxrTH7vVlqO68N5RiHo(ox&GwR=-zH< zt?s!#B4?-3R<*F)?zsi}<-YY(cVXH-x&jUOkSb-&lS_Q_p|CkOU!FZT+U5A z)#G|sxNdECs-^Xx?s~X1@BW92TT4x(8OpDebtcHC8oe*Ol<$cTDP8w53TchVebqzW z7KaY?iGR@}xc?B4Ueh-s)^m<=CkcjMht_!SyTCq6WsWHq)3P+v8ZwVYoXccuww-Dz z;t#In+60ESAH8|pPZ%_5vO^0!i*Qm#cNuM}_w=40(*Ja>%V z9oqKzuAM}=mh+?^2a&MrW6gMufah6m6&1Qyjs!OQk_gw+E1%bj>Ky(B>3D(d%=ZKW z+{Z9JZ!;@w<0bgsZ3r=Mh!s9NHUB(K=D1a{dwyR9n!Uut)OgJeY@DQAzg>m>Sua)J zINw|3a+v6JUnlw9$)3`+|L$YgV%74DM)7p-7yY@bp7R)M!g;BV>tpxbBIQHzePj~j z^YNTHvc};_id&CPcUzDr6plmUbKHzY@A> zL(1TX18hKS046kk1K$w%NhJKwyth6gq~AI0T`=O5dB+$inZ9}3k{ab0@)L;$1mzf9 zrGTIvqMfp^4C}r=ubmV7T@q6RC7cAJ@o`# z0MSJBb}B}ey~^76$-_h`FS8BNpkGouKnmvPDm z#TZ3{M(2gC4b5+QQSgEUHS!zy^67#TX*BZx;wd6Q`?5MfLfGwFyck;J?xT$ZnD~QU zdxM6d2N$g)O_!#`I)VB4!GSbhh>TKuPfLbVk1CSj5*(N)YRCul*Wi8=Dc-3pBa zgRXP;&0B>f^e0P%NG+kEMFvUkH3FSLd}%Z!wr3BfG?3gBKr&+?SyD;NNDBqC#jIvw zh7!euqeDd0LR=4~%T5a|(D#-fNR@kKG#CSDGK*+b#*d(VYn_aB(f20c`?FY~sIvi* z!J;g+(xR)OU0zT`*d_|B0ea8w z207LjF%O41Hd83F8e5Ob#Ha+C?oA6aPACqNI9!2KI}~*V4qqxjv3SXOqXx-b$#P*E z9@Zl2Tpaxk9^8_EyCOU(zV%(;L=Xk1?55lo9Gwd6Ci!hWaFB)#8RA4=Hg+CP34@>7P)!89Y3Iu2x10=91)8E1sw4fy-i`{T1H=s`*0pKdw z!CC#H#tx^hc8AI7GWLyu8MZ&u)JU3AEp#X;v^WoZ*Mls;dc)4jvacXgmDFXFZ zkzne64Ro(S?L^Pp__dwHu#314by?qbVG`+iw?}cOouzi5W!8xaOZb__h2>W7R5N#Q z)*z(WjfJ)KzUun94(>$)zJ;-hRcF1GEhZo|ez-GwWIGhHTg@zDc)dQIMyS?$M}eC6 zt4tUCAVdzK!@NXW=TI_}jEIqV#?+)XIc7PxNZ&^sNyS{Dmed4fv@9i8EH5e7_x~9 zky8)1SA4OwKD>i!TLURw93E^#Jm^quoIy(VlnB`>EI-0;?psLDdv+|}4i!FpF$l1% zGO^sQtZcxv>KKn&?S}}E8{LvA(+S+$>WA{Cg+IQTG%uVMtvzT896!spSYxfyOBWN1 zq_6b;GlR=;mmN5vbtoNOx)d$zSSoe~E`2tBaLgPg6>DMiv)JOGrZlfcNT2RZ2}HCw zxL=I=0YCO>IZUz^ehijU^y0Ep2?V5s1R&$vVSUp!NozSgY)KnY;e_m9S0VIp2yqWC znp@-g!T|XWUbtPY3J-QuEY`+r0~HtWx?Os)Qwahm$X|Q|$1_-gUWZZv90x z>8wnQ;Fx5qJV14(#!s>j;5Ngx7V11b0Hn%!DM&Bv^w4`@KIv zm}yuYNYs15dxgk8>L9Vf$j$@lFF+|n>M3I!D1TL(v;L512SempCm0YCQ0WIhxaDwS zmOB9}w7k^qEfXfb$ZujsF>!!!>!tOS2=OTuVHN4?9#XSoWMR2Sx*sHDy>CMXXMtmq zYYa0t6lZm;Wm~zUgR0kdDxCn>=D*%CjMOu}hsf|314d12x9i<#fiKqS#ag>M!0g$rN3z%Dxm<)lCoN3Y_fcn&4j^B|_&RL|-x&fBD#SSv0weZ1;C-0EaG z%aTHFFB|$O8v^)g4QJ%)DC1^^=Lw~NzYfrw`~G@@3-*fs1tKb`2k)&z_?8x|>%jcx z0H08i_?Qn;MRHMMY_{rYwwejkA!OGaF>?d38Vm*pu}VrB9oX7|@5^0#sy@+lIYVgp zn(8@i8?y>6I>#kGiATEJ3APBmJa&V)C{(gr>W7Mtx@fF88LAK3c%HiQj)-M|cYufq zi{0d)a0uzRFlO|c);yNeKiUYl%tOQ4&VcKQ3|hnhEKADu|FlR(?qWZkS_in=`~X2~ zg{LSP1Y;KqoZ7~HZps4VjFfn zb^ry}oD=#1O6-}^h0|>4giTS#U7nvMkf2bTcqI5AgsT9!vh`~ujayX3NmK=wtlP1~ ziCa8ph3hIu?h+U6CFu8i{AQHASORHA`^!qW%WK-d_YBLQ2d*9vOI&FrRxBk-t3W_J zE&^XHb*7oyotn7W}!flm!Rt$WM^3+1rdrUzq<9WserBAKs+ zIVbhcCf>AgLT;4#njI*9?WGCaBY}gU@V%hCUV|c?gX+9)z8%aV-<>Ofkn!M=kdf{D zcc%(Z0JvKlcU4k?i~7fqf2u{n0z?l%V9)VeeaN@UN*}02-UAIXfm@MB;8+f?n?|dy9mmAKkcnSBIvB@c5(M0?#AgF?D-sdj}O9)P?()u4y35iH7aTQ*0NDXmJwp1c7 z6A(in1ZxhFJ0jwMDt-suhMJEVPm7@y$fcZ@j6Y@mbYdTGIulB-3p1+`jRTTI&tQ3Q zns7Q04#F*lYtdLXBlN34ZK*v8Xr*4G*B6XHgB&f;VCoE`A{}d^-GVO@da2cDsE~lp zPM>scZ#3&XZ01bbE0FxcdOlD_&GsF-#R3Tu zA{Qx9>q>V%FE^ff8z7ziLArrKXgu4M@oXDdEu_Q>&qSiOL#+2z^ybDmwd;pAV;uSF zHZ>}or-bQ?{+%Y0ZwbT_;P;9N&()Ow*E*!y;4lT9W~P?qX^X6Z4a60?8;MW5JeKez$Yw$s|W|G zX+0h_pv!cEx-SVnYoQW(UF1|!ktZ|-d zD6U*t)$+Pkh4&+)L;C6R#-Bcf6>Y;dL$OWAxuzH#>orx{b=Tb}_3bq3RDCeB<0 z>DLYt6y-DzlQeDD4pR)GHILFPs@IM(?58!4v)r%Nj&uAFwNCQF=+{pQ;^eeWi_&b@ zPfPNmwa&`Qs@Kmd>ZY~MtJ<#C&ujV+wJ++%=r=AJ=H#?5o7QYME?ah^zdfbX>Wyzt zX-B2mx(5_V=cW&aVe@7H<#{z{5a&;)Sp#m2&RyD+5?Sr4Aq&p^6xX#*)3gxO z=l!hY3~$rCqF!hBB9Uv9^Ag23!>TI0HgO-XhvfaR$@MSGbHG z&Xz*+Whwypm)~Qz1lYxWu0DY8zD$iY^gf}j?&$WO4fXYKH-d!l`M{ z_>bTHx~HVo=ba>3;QrIQB=#0G_V2MW{@24uHyHEe-vJW+_n)QT6{I(eTLXGuz4?Nm zo!9(F1-boa&jJYLG2TCLccJ=Rd*Omb18{Y+pm~qcxo-kv*7CqT zLxqo~uKZ~}!oesw2N2qCJVqw6-z`gdKzCD$CWItX;s%7Tm!!8cUqR56=gqdT)&1t0cU|CGX8RqZOc*=Kt)un=g(?N6g z`pr48niOvp8COZIv%Dr(RMU}K8&#}M&o>jbOkLXkZDZbZKx#@bxwNBu7uyHJXdBZF zGZ2|mY2f5&X%7muvrpL?g=A};!%IRaNuBM5tnb*4I<~H9HdtOa~tXawn7Cq zcOE@n`)#c&fzs9#!bn>Cq2TToYAN?)Br^ulW$u2NDh=Q@GlcNr8ukY(4w605gvn;^ zCAr8C(aBL?>fjpT%%l#pHQz?rXBy#Mr;hMF-NyLg8WSOYBlQE=?$-3Mn zRNe z4rWMS;{Erf>d+2fbf2-CdCW+l=|m_({;P@mr1n#D&M%lMH%R9M^K@<6SCzr}SJbq) zGIxMlFsp3N_^Iqu?X;NKABiS7UVu1ehtaS_aT{}=Qp|cp!&7*r0G@?5&1FN}R#lea?Q+W&%gzI(uM(qD`OO%xdY4w9#=do9jlHQBmU=(2D)ojS)A3qY?Jm=n=R*G zOFPd`J5BCWX0GBG+rKUw;$eJl@{8~1VOPxG?yBV9gfhF$(49uT>nX11B9TXFUy z#A2&)o8zmSn{2u}`pTOQwfKp~A)@PS|E2#!iJ>3!zMQBj@7S5QZcU~6x+sC-JBqmA zN`b37%ln&htgL&!G(>Gt*uZtB1mzJMF>O*2F%ukP-M&1M{jg283Ea;x^<4M%a?z{7 zlSS=mowN6`G$>)7@_24*yWPH)koz1%JGQmo{c<&5=eq*TaBtyAD?b0sK2I%qb?3@4 z>Wkr7l78;YqRMfM0miN;2(-bqY-=nv@MPqT*dN|&dhoj7o~d4)qb{*~=%?V#)cx}` zy?;@*d(XI4VDA=vm3xex+?=RN1%ar|@vc4heCIP5erzD{xs4I{xblE!8O`x|ytZWc zrw)9ds7Y7r&G|yt2k!8wBg)(4L0yNeo;)z{zsY}2&Wu$X0@zEJzz;yYg8)V|_d^}9zu7{d)H zjol9lWH6f>DltaJK$9OrwO!E0fQuq^N`2_RjI90&fM7e4;G3`Xi#L}W(bPVe1ra#< zL)aQ*3Z($t+FH0V5p7l@h%P($CPr2*1NaeS_=SBc%3h2w1GvgS`g{eJ#R7zXwZy3Y z^xtjsTE^Vm0Z3T=ydb`iEhLCc$eiGD$S`C`=U~Wl2h^0l$auHlo;w7U0o(_(Y{dnr z3~?x@;4_uAARwA%;;LCS9NsDj22-%I3u( zbcry+={_~LAs8o$0BP*c4q-^LSTKz zv<$G*tYtiU)w%<~Xy?ejV)>WjupDcNcNAF;=A^Ic6fYFn8uh_`2hqRGA%p58A{h}t z{6K2BMMD$D>O%l&+@T(iL#}!fP{Bvt}eY^ryfYB0Q`C4T`7H@dvXr z>@Q59L$Hj~xIe7mu5Ppw8<+ z4wFYD>Ok{sNKLuJ1cySXtiph=v1i++eguHG?)ICEn2Cq&T3;I~7e&s+K z^Fv*Wg&GP~1ROl|os6r3j5e)bHMD{AG(bE1 zUT3GCm~`%YG>-X}NtAa^_XwP0tdcdq5DK;dk_nBRHJ?~Sgu^0;agqgUsezOOnW^Fj z1qZVRi%f7KpkXeMid4%2SF=kEjJJ$??}uN1=jT+P`~WC z=?%I4g~gc;s8|yv*cDKxZbSmmg*j?P{>($Eim=K%h#K7Uzc54afsboEaAMbroA`_W zMHgP&mw4`1t#^xBbRZ3#fk{-rPbdt$%p+d4MF~yx`AF)is^=wyoDH+oz=rcw_=~~qnYSxiQjaE$kvsOF@*@c1(!xxlHt}oL&ga- z*HL@$P5+rOKMwgOpLxi|osZ0;h{Iz5L$2pQW>iSyVBWF81uR~jws=pXC&`HfgL)J5 zx8}a~@eK=jwfN{Wzm5S(_cJ3an9U5hC}oP)7(fgBfogt^ts6sKWR|~rYvzkdJ%)yIaDk0UX_t?kO3BMb*~pz09>w)Dd-qLI}fK*Z|LD&xuk??%nW zAp={Fk(_GgcSl9q%5SV8+nt014WU@>Ca+2&1^YlHIQs{pPFcOcM-eX{8;!E2j(xF&Xe#n_=(0m5Bky4_F%$`K%1$ zm>LzKVMDVA{eDkCSm$BiXqBVk9^sNG=?+~`3A(GnhNvkB=I%Vz;sqDXT5rgSAsnYk zqRY}IsHhI0P1C3vAXTr4jkI9i&4L3TI(+j1;EO-KDamL~C-& zmcR0Y;fOB|(BwV2!l;YVBf8 zq?x?0@qfLFrYBMOK9E}DXhXD0IlP8o>_uu9{9U^NR|dEZ zVQS)J&mE|DI02O3_*w{ma@9(E7Zx-uXaCrDEmB85Hll78^td(5Xo=0m%U9=ZL-IT< z2%F^P1QQqj84>nVoHBt3I*`(XGc(7(vZz3T(k{h4jSX0;q%|!9B0-{a*v7Wl;sIll z-XqNI=}i5FHIx6dw1>Egjf|!WOjNHVrI9l$4)3pK%QI@86Z6 zBDSbsnjpS76$451p)Z`0MsS6kKYQ4kO^Ry1hgka4$6YinbiwO6S^%dDNzQMzo~=aC zMWg^MPAX=Z;v3aHCjlN0{=J8Kfqs==`SmO!9c)aRDFyu7KZ%R|D;lgJZ2GzNm|KIi zbg4B3qCDB6Nh?{5lgU&-BEdW2iW`rcSuxQCB#aPymKq}9|L6f){Q}~6n(8kbdmcP# zujjiOtp+l>iaZ>#-VI1%p?=3hAgyRHbczCzb+!*w^*Rn)2?9!(9IVANMWuL^ z$ruZ?Ndz5JNokeeXrD!0aFMqjMphO@J-%C;I!B{EM&rH#C9kox&ateIu{_@KBCqkX z&he^`@jBj#Ca;OM&WWy%i9X)RA+O1?&dI5d$vNJsC9kQq&Z(`Bsa@XbL$B%6&gsjK z>092JN3WUJ&Y91T8Bo4i2=7^#u33c7SrooG4DUIdt~tEVIU>G!GVl3sMv3loo{4XP z&3obhf~SNxm-A;HHKq_aUfEPwwH8;^{^hl1ga}D+xpt1Qp*Qx_Y?BGLwH_yb+-u!* zCAZ$wHSwmi*%YzafVU1cy(GF(TmRM$wggL*_gNWiAMadtzY=t9KUZ5r1vDpcA&mfl}~#~*GGxh z`)mw57(Q>^QU}^KO=8)5`;&Wz=jG!Fg&JSa+&&v-J{vIjua^9CiofruqmCiAj~T}I zQ+~G@X0O?VAMnIH+diGThHd`kZ;IVcoR2)giaxQgF{%5V+t_{D#(!wRaI%8GyU=}1 z^K`QNbyH}5Re*mE)TH0;=3nZ^zmtnGJ@mQSAFIFMKaic?3%uT5{c3sJJ{rk3`O$MR z5PfsIeM9!|>Iwf2GiPbjXNClLC|Z3*qqjx>Z;d%;kK^xQ`1UPRx2b^MfjHvBwQh=( z-hFWPwYqiH9c_`U58oxAFn3Q6?mUh{LkBXCw+RaMey?@JT7$`{L2DzyGzo|5rII$s2P)q0cl zM!Pp0NA+f#)A@Q=1V_zwm)HB-Cmd((PG8{v@RWSux#|zb5^1!%Be@!mrZT^2dU)=} zlexnG$5Ybo@Il~dzF2Ft+USnrX}Q|!^nCw9;BCFx9gO%to>B(SUqrt4httIh?Vf19 zj;H^6N{IZOFSiF183Hli1F!S{hS4E_K2l=fD}!4EEqAc%mJqSKg%gp069JaR=t z;OMQ)m=JR84XSZ`od5Nd)%&c+#~l@JUKZYsbDUM#oW5J(?niAU*LcU+2kuAC zjZqH9q-^nB+WXV24h% z=)AKP`qTBaPQySnZTKs-CeaeMwnz>_=B9fSQ~e&B$)oe|{3_VFq!L~GM__)JL@kwutg zL26EnAnIXuQU~ttH*tv$bF6}6C-X3L$9KAeAt?0FxKZ6ySj15JB!*uVu0ITI0gR2n)fSpuRy%Kocm#t zfQkE23LN8erSlKFmSu&@PsVA1b6TL=jHz~0^GY-j;#D^b?%n-_8IFy4(>)vkW0n3s z^7c${;M1cg8y2~7ejIK}^=^Vj*SS=kApP-@o3Gq6yG-nm=UN@%%5g9lO^^3tyX<2rKigYE=mM|Ftfg}PPyQ8r9w#Ivw_r3dGI!+A_TB=p;Auy=vAen4B>N; zmQDq@m!;wYu=BCuPQXG^x-v=m@cG1Yry^RLGHE^7h17AUV%DlM*+1b6ncpM#yq9J2 zaN&u$@r9Ja|BJ4B>dvGK12i1lww;d6j%~YR+qP}nww+GW(Hq;goph3ZC*PViI+!0& zM^&|I?Y--{FNSKBXu73>zpz!(m~g5gGD{Ui;#FM97ixLd>Pcc8H8e%mahb-c1!oYo z1f(_!0B_V*?`LuAFezP|2aSjkH!2tXNgXRS&FIMIS|53vUk(o|0}^759{Q+So8DT# z7bqHplz-?$@+~EBw>MJD*ebyouh$ueQpfti8vpdso@|b!(IJFUYr@m%p)+k}Ij>dJ zqTfJG;-ttFk2c?)#8|xvZR`!RvlV6EtVepO7MQRxb(=z)D|c_3`l^d!-CT<%@t|~z z`{Ck1uRZ>ErHcp{Z0|1Lv%PJ9)UeXWX#HHhed4Uyz7N^pP0Y8`m%iFNDu3%-(PMzH zk3B#;QD>$)^(%!2yYF3n-hWeeyCBiDe|Yr9W>I$!gYd17mDI+nC8=X#g-|&Jom8wXtPCb|%PDn6n@m{*bEX(= z5xp`7>rLMioMD~`8^O8U^WJs78tq<}`j!G9!kG}f_gpArYY}qXnHatIe5`$I2{Gci zl&tqcYJDrPj4AG1&c=H&_olVtC*p-tjQ3J0V_TJC+=W_=_j0X$Tg@-TORXvImDc*U zI)}JRy-V-a-kY|D0K_Xpc%QWq#`dO!xGPh7pLKwJdrJZ0wWVy2Z&WQOQ<|}z4HxC+ za(=t>IFtg2Wf9Ff!fPf`W{PtT{`L+LQV)&cfajFY&eO|6XIQel=c>={BT~7-!}M(+ z`qb{V`|B=0S-H917E$!`iZABt`BP^zHaCPyT&`($>M~kf$_f z{B69;(IG8z7Z^ILb22`^3gAqbi|r41Sc&gG-5AW2SH2UxIr9lCa{NS%J6A|6#wB4}96E#%DutKQ!U(;h%#1@IMb?VZhyju*4 z-(^3G7r~eqirXXYwc{^7;iDt>I!XQ;G}X=pNX6H!O#UEu?{^^`FiqW z4Z5jc-uPGIRgU2MRzTb<)9=@VpZ~V@d%E7a6g{8G13s=3rauUg{H-H=V}re5odVc{ zfc_9g0gqz=U#I?rV?Q9+V3e@~Yq$crLQ$Y$eBM2L5zYcTgM5ClquhJ=T|)cSuLiOv z1*)$Gsiy=Jcj8H6d+F}Maae|Mz_{~tkW+a2JFUtg6$R0a2j#T}Fw=Mkm9os3QaX zEdo`f!b7Q@oh!pjhr(-LLn+Uk+}F^|v?8oLBZ`L@wT&YqA|s=?DSg&LqR%3u-h_k4 z(bk_L(=sWOxFi2r*h6MI=g>sa7kTVGMP*4vmsv(vL`GLtM%Ro-*PTT-z{E7s0ApID zV%jWYIwE7bDr0)aWBSfw24G@`Xkv$@Vn;1w|MQe8W2eSrr_W+%VdCa#;ufXiFpBl{ zi!_{|v@Ayrm$i&M|5zAvm}=~s4@1T?v&0`t#UC%ng_WseyJKFgVO(j&pLANlQt91k zVPb0}d}!(XmBRd_N$_}9(*{kHgj6RsM+c5;FDxfGn46HeC#t;s!mNq|dx=NVHU(c- zg-^%O-8WKk(gBF;IUbwSnJ2tP##2`%(N-n@T2TjEkLPjMyEjW=t5RJFO95R^B=gdt z|DL9vNK#TxK<2?@^@^VeL&M@puq)P-SrM5*^l zBm_jEV^L*VnxjVHYQUkQx^(Fz;bN&z*sx4wGV_>-!Ro43nW|W2qP%DMcx7do>#j)| zleLDDh;dVw#nU6!vtypK^~|%I*K;V3_1m-3^?7n> z&og{swVLj8c*>2oICAKv)6w7KIM-27yS|G?c}wrPR8|?g(s|#L=YaE+wJM$DiJUWO zvu!Igx|4hvtNd)*)O#<}-?aI3W(5yCTF#Uizod=EU{i>)lE9*YX&Tx&o49&6VYw4s znFnWuq-A<#wArB6h2Xr}*mMOp+VLx0`I?ZaFxn}5#|DqmDJN^Dkg(ZPxJ4IHx|kQq z`CU1CR=T9sg)O6nMAhk?(k66x>Qz|O?fxUC-73msA`}$%ttpWoq3ZH zdCM%_wK4F_)+W_A=u&BPDz-Q3EOG1GtO}Ok>P~sNSe#tcquaz{PSq#yHVk_= zqWUxuY{u5Z)voh2(R?(aeKcrHHqT{MrCT>}(WL}k)PdPlA7#~KShu8GH3M*3E~9FC zyz2yNT0D4Lm9<;ry;~)8TV!l%Qh8e{FIs;3)H-wnTNyTMDRNqsa@utG+7ve15Wf!= zgSg375ROq=VeXObR8br*F#(N=PVgO`yfFN8a2IMAfJT}WNfc8yc~v87i3g8>sSbtx z4sdpq<8pFt)t^2#-p?tWGNTB(iIkyA9rcZnYQ^%&$rRx}LRK|_CeA-IVlJ{SZ@*z0^SX@fW7I5F-fis#>xWB-L5glcq>R{md17qe8*ikvg=oidde@8xA%pc~);xqN5Qic7d z21A+^rS}8FBZ3+ZTZE9jKc!R1V1YVxkK??DvT#_aZ&;``!J@QTIQpm(&Ua`W6Kd@ZNg6hf1s36`5ki@RX56SSMi{MpF-cpe0`xGh7AB#b1~rub zm^lF~l14kIsEU1t40CyFAA|vN=r1Oy7)suXP3&NIENr&iGtPk5D;hpDy1xWAMyef# zTr)cJ2s)ZS?g-Fn*m_`w7!eTBy>uB)$mTSKSyB%=OoZo6i#vLt>~)pwc_?TVQ~luy zF?EDMi9ZPK$mlr0e|>m()nSsr}W7XuxLUSc@9Qkk|tyDSCz(?_j6HbT9}N%B3OqILgx_V z4&7qpF@Y$f$aR>heeF=Fqi;_?l0Q7_4c8@X*?ur!ULE{d)$NW5Udv}2xzh7b(+ew- zN8c@-VF`(H(H%AR!`vNNQa`064xLsDS{DA)71qKGzlQtF2^#rgWwb-J@#S7VLV^E6 z77$uu3zB7L8&461iH&tiMaPURUGc9S%SPW>7qAbh?QQfMjHcKE&0L;&o?LtFd#>vf zGIrmSU4UvDRZ2xKwPowp2QImj?=clozw``&2aU>~4O1NcCN!DiPNFt&=|3oTJR{$f zPm=GXr^fxKTeQZa6Ne5mGmdo6c^}6NY2Ziq4^48o4~&^o;&31sKqCphD&@kCp4i(E zb0|K1kZ8)j?n?1*bA(R?>A?K34}Qh>X_WxV>lN(y{$QU~7>Oeim4kaV>Rvbro7N`R zp>%tXJC@3@o{M*@m;7wtowMUR5oDQ7As`UkLx6Q>vqD=pTn?Dvy`n*nZSlJ~4L~{z zVmu2`I195si-5IEZ6(cRIu zm`ktiCa=8@u8BZz)@HU=O8HLw(XCysTPv=dH*UNhZU|9tnYnJaMXr@lCD(GVyX*OY zGpL|IuLT7@NZ^QP^6hxXjqS#*=kGh5{ky+N_ws7Df9k1wLxc>PA>HcBaeoS{dN3U2 zv!3r9$D~AvIDUlkblB~N&oK2St1n$#`Tiljx z_yJ`Aq>i~5Ahi(iT4eV7#`)~>UdQSb?BL6Bde=`yDs+sxXJMeP;_==rL?R5Lh0Q%BR z{&J7N;h6m9)&E8S-l5Vi$eDS{xNYC`RBIk#L4Wna=WsdaZVw z{qe@KjY0*Ik1-@&D%pH3{4l3lb{YY41qKMlv(D;`ey`W_&GDuO)mj^WOFAJhmz`m_ z-FCS8)#|;;coL;zxt=!3-nSVJc09lSXfcb9V4{xS$+F@c>b}snwef7T)?_wI6v3q4tVt41u=k5M@w&K_BKfllS=iAfWU0?tRIEJGT7(Dx(5CpoKqc9Y{>zyzR zd8(rb9DVDZ2m;%ZqbL&J)14@aD29_5nk@Uh7>25vlQ@>H>%BORNve|so=xk$1cA$v zlO&PP)4e1~2!^v1Sq%Gw6h(@fvouwX>w`2+Nvg99T}|tQ%#W5OXIaLcrw3W)VGI{J z)+zQ!Irc?07kSQ2*GGBo!&Daq-pkfU1^&k+7e&F3r$8}m3`j4*3~W9-PW~L-MlvS z4jbJzjb?v&ZJTxRdTd*jdHL+xC3Sl2I_bUn?7NY(d+d85yZLUrUr+e#MXX}lrWGsw8ROeHw zxpX20T-+U_@PTYHk`6Z9_kRj&E*D!9Z2Kh60wHkE+%SRP!djdP2=5X}SE*7QlC`&^ z$Wo0|j`Fs*D!fL?QKlcHkY&wkjX>r@C$A9NYKPE|2lFCsi%|RqNp4pD>nK~qh6)x7(j>ZG7nwlR7yOxqa z@VN3Yo*xcnPdP@vQ`|`mOPWGel+;t*Ibod}BLoZpRwPJCY&3(a^5LJDcwNOXr~ zaWYdM>Um$3%2}cy`o|2lks?cXXSv_o`RZYw=gIp@f{^% zOG00APFu>ZX*pw0`o*G9`fnH&2(|NZ8vSu7oi&eP(sR|ynGd-RI{z>B8Q)nZ!Wfl!KWmzX~pKY525aOQmC$Qr7HRa4n9!QxNHNX zI89<|u@w%p%uaQSZizH&-YpWv>$CZovvA{;j;$dGasXNUXY* zTTgkR1nQN&63kTXodUu~>UAkTF9yprhOLf5osMX>tLPfDr;QZrT@x|jfrJ-tO; zTMYwxXzni{8iwvDxP{tXQ7!ARsCl{_C;Mz1=MnQ9UyW2I)|9&5)9CMcV7q$T4Af0+ zw>)?prfL-B^2$mqSH8)rfo_|ch{>Yfi_lT*gq&8EgTdUo8fMw3HkX2h;AFDr zS}Bkr{AGnfPZY0{pnn6XW|MZOF2UHz{yr2vp6JfEfzuu zCo*ADyhfdnIT0=9H#S5@Wm|j-oe%rh{=C%02qEdBO2a2iyryF`PPr01`Cw5V&_KR@ z@WNJWi9`)wbChhCz0>bGoNLm1IvEOG$?+hrqj9EaCUR3u(sc1qS4+S2%RGujj0V(~ zqZloUY0aAq^hQisKK6^CCdR-&9N7=4NLD2=N+IGrjIr@Jw8cv8t04&zvyfdYnlmEJhY^}P4jc>?E(WIbo-?6EL!}AhtWty_*fe0)IVKK)~#oWV^+`+w; z+3B_ADNw=FcDzri+n)r0Kr#W%-`CElsPOMNo+Ar&ElIrR+F@Ah-6rOck)o;aj)7Sy zW=N1Jpn9l_2!HuPXCfrvF{MO_Cspy?8S>$T5Bxs&g{Ru?D#dtXF5H_1%(Y}4XXqk+ zu0?g1og|hCTSZB^wx~pOs?ji0p2_X1t1eTxs`FqDD)>xle7+A$NP3N{eBKME7>`!- z6j6$N4rz7=vj;nwjPvgXk4M-RL64TgIeH64{^5OTN<21E_)P~whnZTNI|9owzfs-p zy;7%Rm}AMJ%FbvvN}TvDtf|Ln<}zE#HGT_gRdmdn!10%Mlk7CT71l^0FGZ4zB}?O+ z2gwvDHR>}`~Lb`X*Xw-WN_pVDcdwD4KulTwxX9^`+LG|)z(3orzW=<>e%!iHiC=bpV zxUOX~?rf|^2ZET@(`X=SIoJ#EqUys++oXEMQuM`~vhcos)wa1CwX9a?jyN;SJjPc) zP?5_p+5K_iSw118--L#QkXYsE2vEtUM#p=yn3KDjw}Tut$KyAlxeLFAH51bb#35%T zI)K>@O;@j^!S`xH?u0cbi$c-8(NhurgubH-NGrc`ld;R6!7*kAfF63xdIg*c@^wvE z-!SH!Ul{UqXiss&K6ySHTXd3a%=yQ+mQLiFi(hKfteZI&;mcX%kF3uq?o5@iY+HrI zdM{KexN*|kovZkC_hwVI7V;1psRVcfTFhH(_W3VVYyPedBE3km%G-*%y|xz&5s zUFq*0EsbNfw^qns|D3`Dpw4jC=Y82~L1(YX*>iT-fL%Ljer%ojFW2b`SSE;lP>30{ zwhilFdSM@JQ__0$Eq)7Ymr=`C>5W~F{CB1vyfY9(Tr!D(yI>~YT_3m30cr)OZjh~o z>+;4Cd9o7~dV=XOB(F-JhqLeG>gEY>Zv+J*F~L{p^XR<4vlyD;Mt0!uF=0TL!V2Kg zEJAaNGlC~aRWMYv)%Q@OfIUA={x&;jYa4NlXF-_J#UUa0h^N4N;nB{v7=Qa%akqQT zDQHC z9p4(z|4mSH`_3)BV-%e6ZVW%?K61Bx1%DQ$yXNy!^R%~=c;I}TOK0_{uVozc`f=h` z|EV><@qnqpWi2P`sp@t!2vVre9GeGvvuHcw^R`6-0qZx5>=JSLP_&%4=|5Ty) zb)gIVyEfbZlE;|1z9{%^ZtxHIGN$1Ng|0@O3iOAb;Nh{P#9H z@b7gN`0pd&1Z>Z5Trxn|JOJqNpQ;Ae8Hmssc&q7p|LO<99fYA3bYbp$mx26X5k#;S zL^MuZW46-=EeA9{obxDTFV52-U!hLu1XErR4+3-0L9kLC*G zUsD}zV;U8wVQ@C7Neit$Hg-`)(kaI97Q-I>9V+Zez5N{0pc(eY7FueeDTyQJ?uPk3 ziiw9w%6N~jm>KlrE!-wFM3NO>%8bJ#61{Thm;V|QNMnTjJVFhq zq~0-hT@#kIC$m~IhA!|<(X|p~Ei5eQEJ$O>2)+p`mlep7;RI}K3gU)zC6st}>YG*aN-jWX&HD=jK>GFx7 zgZyVtlNJw7v_KG^>@({KO)L~@?8>;Ro>u75eVFil^!*6IjwsUC5epeB%AYk1)n>|V zHkk2d$gW@m3_}vvp|}`J1)OG-nWVVY%%D%2P$}V1qqDeqOTMXlR_kFr#eF!%eYKP1 zc;S0VR5Zc3aXQHm2LGlIX%+f45qi9L8T>Mo^ydWdpg4*w`AzObp%&Z<7X0wv-}PAm zq^S6yPC5T3$WY)thr~P?TRUO5ur{Vkf`L)wx@9tTl*|zc9sR!IpXOx2U`Zz2w8ka^ zUa6FvH#CEwq#9*n9T6CRG#rdT1~FU=<6vEzqL9wxa4t{+6KMuS*Hj6w)ZEu-eiW?N zA=wt?3~N!T0#XzdFX^Ww9#Aw=(u2?i7EJN^bp9b~Dzg}-q)bF3Rtnq;qgOu&Bf?%$8)GwclEa;*{}GXoIL>f+d+%Qdw!*qM;b-E#G-Fa}&eJsLzxv zLrMj1OUy0`>iR15HcJ#E_1ycSSok8!Vce)j+?X%NGT7uwpp#N&J}2dLq~d>C#?fn-xY*FJ&u zIVRYjkPno=6Gu2L5^#q`gegPh7sq^S_MGWvTsHHZ;E+;An-0xFgQldL?`Dhv!E zO7Rdeav92S<6`pc1d$?2Hy#zT$Ak|@t;9l_IjH&gFrSlFSf+i7+Y5u%?NH+8{`q zcQJz9ZfDKxplG>ZNqO8fgakTha+BheI^s%y(+kfEc$}g+(B%2NNQu{j-${_TvLPdw z5f_1th?|Mb z(<;mn#U+prU|S65Zj=toGYk62DPpQ4zr^h9Z15z!>**G1!Fn~-6d2@>4hk` z2fnw5^yi}XPfGrnTK&)nMKKZWar$unHMd+hN1iw{`@B1jCRm!JTCZ|=dr&VFIRq3NuWvW#r5CrB9N;RiV zxu;EMvrX@#%>cihCkI0E&JA`R`DPGS(h=@MsgSvb6%_?ulDR{Hxx?M3!!xJDyQjl< zv%~+RBM`qcn6EQbw=>+QGcu<$x~D^s8Nyw+BL=@KnXfBVw=3PJBmM*C&Kl(w1kNT0 z+5V&btr)CH38vhqyE3P{x~IE#v%CJIyAi*qnXji+x2N5wr!%LgyQimjv#0-~XAr;l zcTSJ95R_zL7hWdH$zGQ&es{4A6P+RQ(qQG1Zr_Se-&#)JMo-_?X5Y?7-yRUZ|A4Rm zNVosQr~fRc|Dvb=YP0|5qyMA_A&MDdIJ*}H6e)cVqT&vD=A-xD#{j=ur6>s039}jO z5R6tL%q++t!q(tsD)Iw!$0`VttQ)d(AY?f+;_JmA!PXE*D||pAM8X}?G%t#sEMf}t zAkxLqx3D%2j?~BuA?=7r`2*!c2ss7icS7TD#&2P*m-SN#E?^H__6{oc4kk7cQqU1X zWw7Mu=ZKOm)21VWAPKlj45R{cgM%a7EpwCd=cplo95NgEvJt*j39g-a=xc7kXzP!C zFR`8Ope0??=ina)-!aeJG4I|n->otK&#^#)@nHV(P`&YR-|@)Y@n~T0cq$S*kZ#?mJnTJ6YX3S-Uk^|2g?>s5SFX zwdzf^`%ZP{PIdQA^=?h|e@+b&0DkiWM)UxGd;#ORfXQ9}U<)ww378|8Uf`cz(wkoK zonFhG-sqj)+M3?^oZcgtIpCi;(wjN)ojJ>$x#*p_+M2ofoVg>Iec+#c(wlwpoqfxl z{o6bHxi$Oma~6bf4oqMULVpg*Zw@AJ4z6zwVS5hgYYv5Q9!+2#Lw_F2ZyqOa9hZvl2?0hwa~4*0Ubtgp|GXv$hA&*`^V zkhaLtw@A~u0Lv2a4izdmy&$q}rxf8WCgAbbzC-}MBptV?V&{nOv8-jcgp6&cqrdzm zvD|**XpHEg@U`>@Y6V?u#hc6Vm%P1$-%?+Cm^I;wtGwIcpA~kGmFn^3yYf}HYYl*f z_YBtRw)^U^xqEotS|H)tpF`hXY^O*&^qA>2Xs&go)wOs({pqpQ*YNdJ#0@-XU&}uC z?7nqf@b&z@pf9J5pQj$(^NW=Ni^X>98z-w=nj2x7>(0}gEq#Xl+nZ7h)rQ3rPL;scg}&$w;?~MFcQfJchs%}~`|j=Z&YOPLXC24u*DiC-rXA!iME)LJ{~p55 z9@4+PO*tvxh4y$60XovYb5~{eANXRL=Ms=EVb%A#eljSn+tWhNQ#4=r}(Wa?8U|i|3Da zd6g}-G>}nAMCy+$uyC}ARAh_}aV8FVhYq~wu_bpR?9KIVPJZp67|r0DDqx%M=vWD2p8~5>ee!?W31T}aSdhTSr*IL&-dc#DrT`@pDm?+hFg$v1c``iCY{e9Ewkk9TY!B=N8!e!~|) zy#n^QPVp#2^(5L5W>NIGS^6YP9Lm)4K$efeMf^-KevkYtpp)=y0DLwielh;}V*2aF zJmAH$;Kh32#di0_9{A!&{ObJk)%Dk_d%&w_!K?SctMBfsKkzk>_$~P7Tj;O1@PN0- zg16{_x7gjcZ|pab_&xdOd+M+E^nmxwg7@r!_uSq0eBgT_@!u>2m=|+C?CyC@au)hwXBS~yn96#8GnntYyMShd>O zT)KFP!DzPnrAEDepZ_**+J$VR*>wIlL36FsE;}0EwxMyO*X?$_Gm4*HCY(20Z7%H5&)XJUlpE$yw;kIgJzm@z&{|?8#TbhSt2be<<@;YkVK3i%9il3Io@p36__G$K*ck2$?Z+3=(OXl~s*aib=(O&(s%^kMKEF{M2eO>Mk zhU*l8_4>Xxr(jdEq4|AOZo&PlCYnDD+RQJW%LcH=wg375BVHU!IOhz95Tos#@xM&q znhiB!Zp*>yy%m0=l4}&H{Rcir0YSKNSBeC^G%IpvJ)GDNBRz>If<{Q-^!rRK)QKKj z`^UK`iq#Uc7?NA;yy%TN0`n*)BEU)F)muzO;w5_I{tuPpfzuduO7B(sO=PVKJ7$yE z{YZFmDJ!77+XPL3S-koF56EdY+9cvG|Kjul_olM~Q;hG80?R9VGyv~ej%NDDCIW_1 z0-5hTutIE;+*Ju{pMB{k`Zd6zjT_jyD0Pc>+_ISWnd(9&ER5Htq`(6=KdMMu`?M4< zL-3#?&GuZcj=4L9A*C&Fyxghs_;d~%a2D1dyZOsc?LUniO!cWsEPDmW)AS$4&b4r@w3w1kY$&FJWl+8BHD5b#;aNwSG zys+ZS^OYg}Rd3t%OUD87y*ti?@!hoG{P@)*ikygdyU+(}W8dzVyNVT$syOpuxPzc4 z@T9nBo9D13;ABHC?eXdDGFolNyPX^pjc;FK%xs0-sDz`#v_^oFcja#KhWD1~UPITe zdu%7$VZdf5-Xbe1edhcJykO@2z;wB;V;}YE#6j!VO^!2dfa;5L1MaQYjVbtmj>{tE zkB!G!a+SP&W5fcyr!?_^_vaPG+ib_$h<-w{NS_Q3`%0dStyl9RH(%FH%(1?AyO@AT zuaSi9&-;Qf?6t`S&B1DIScb1UKbvl=-EQfF~=E;B`%0f-W@Ckbs=z z9!G*fFNrDv0t64pjpF=Nm|&C}NNFY#FBY5xX8B}Fr;aNDXL}#)4iQM-J|{s!)eK#K zWNptCY-|TJV5s zOs|$bl3JY_?O6)KE-f;i$Vd^M#cnCLfg{ZntX%jse1bJOAIo{eoK#N}K|lDGz;tm> zJX#tk2h#*u4W|xrksEjQ~WhKPLn^Q)gzHIAfIh&7bui=Wgt=tj|Z*rSvS{l^U%w6 zG|n!}loI%r2C73YM04&Wle7Trc#sG-wc@!t_NJ{_aHFS>(~o+IuxdQ_@pqXKx$5JT z>jOq{QaqqMi!H>Cab;tZt(zB8>`EyRn$DGpPFbRjw#hiBfi&||?r%Mz*Ni-nccYgx zM(*g*jGZi*Z@A0RETu2PKZN@Z`s7TmN|AYRhq5iP8-L3K6UzyA}MDp zgp+z9nkn3jXC`OIL#Gv>@Q*n)PTClm9;-Ig&Zv}<@ci{5eaZ;0%5r#Xm&FFJ(Ib>i zcoNi=DjM*~QFv;t1B(*W^#eS}@kvbmBr$=cDCl)?{_2?Jh< zf2OgS!m=k+IY~1x=T4Qg%wibxIV zJv{dGCTRpZgPwmlkWRwKba%{aIo-MVlf8c)?I1DT^^e(1B}Ir;-RVURLNliH`+FV- z1L$eGbnQ_JKK=xlvJWvJDT!j29uhUo^-4QCe+ILx5z~4NX2m)1Z)lN@n>`cgDxhS| z>QU954FwPI8dejf)aYt4boJ$&MRM^rlwrNh*Ad=7uOH){C)~I{Gw2HfY}un z5hH(TBwapc*@6{$`>m->RWIZr++MvO%v^#iC-}56jkxd&93=7_t6S2F&wF9~iM;CrCMZoag@#nQgWEqQMOQvqf>^9!E#o8Hiw zde)K3F(m9&i#l-3I367&HKB4u=SOQXU+QE3Zck-Y3Tv25Q?kxa_#uihU0&u5`Up>E z1zASb?w>)PU0_GVb}6NF&0W7IX+Rt)nN|4oKLj&%J7#2_z9l3%?nT zzE{^Gcyfs_u~C!R!k|4R_;UQXre)adgg~teP?DO~ExgXj2MRcf4x-Fzu@Vpwl2Acj zDqAqtS@2;Dv|$zsW@2_x4R79*vr?$7;gcNVUuX^Yzx#p=!-Z;vQU@t^l6e5+r2?*f z!U&|(<2~6@v_ZV1k=i9^DpeY;qu{~FdzLL4iAY|_w7R*l7s>P&!R4HrLdvcrPwxou z!31Ynn91j`#y=z$P>4f8C60t7wA3UHjqqWu3XM_=MTH9mStQb}{#ca8XvzJNOv1~G zlKATSHy%CRr~^VJlkob~6-3a#=!&AT?&SxwR^X>6Q3 z#UCK)6e?-DE*TIdc~gXX5GC~;PXyX*;gq2iM)OOxM56oV7P>5b2WC(?hA<(EN#dWf zfw1u|+G8fAh4FG(32GCG7=Mynr7TPfvbS<*ilh<&V}V}MP|he}M?_=$(phTBoS-r} z7*g&O(wPd$nOpT(X)|=*8+e*m`k9BBgmqtyU;>rXZ$@J)rqbmdYgbDfqvUO{+ z&0+vx5g@ga8bVWDK!OzKG2ve=074 zPVa0bIV;aWEstN}&Yz3ndFWx~`C@n2PQhF&!TZUflqrA>pJS*b}C}pw(uC}CT z{TArt0aR&IX!^>)e|kBL+e&2Hifx|@j`K;RadWXhR0r>*xi~Ok>k2rI6;tFE4xZ+C z+%TZhW_c%61>zRo?-tXaWRc7kA~59DOO*)oR7At1`Sh2>`WD(j7k*9`$YM%=(Gr}O z%F2z(DO{_m9II}rEyoxw&l4;MQ7k5gE@{@~Yf#22*5&CErmDs*Q5-AlBa*OjXc(w# z2!gJd{U2d%#ky_9h7j4An{Pa1B%iwma+uMNH=4G(+L>WhycgCyu(tpQ!tomJ%LGpI zOv82*PCcfo%#sQnp*SfU#8aH2>0vNGupD4W zEg-Z_jrn+q68ne{fV^olifN%v+J+S2GivZ5%2#!u{H;{O8%|_WEaDhWh`*f3WZ0^u z$2V^zOR5vYrY!rbgIp}q7>GIBsCrqJg6l}8-<%49F zaZ&36k$H45_h|-kG`j(;W%p%Kdd_trp44!6tBdj!k|msf`=VLlx>#k_S@gEgj(-gh zMjoS!k&>@xN|mh2VCMW zWPhz(8IB&lZNci&?87ps{GE6D)ijP(#cqQbPyLX6lK;0IsXa_zP~X@ zArm202M1N8=+$Z-h!{KH?gGa)2VN^I{Q>`b9DV30y7dAV7FsOw`g# ze&-bRgXyDTS(+v93&r=y!BuU18AMB1a0ly#=SS@lhBo_IOGrc+Om-a)UsnEs#Rw;L z=`Lbm+bbBP@SI+)nSp6u{xK*Rm5)VpXJ=EPY8$h+@5^DCLQ=Zu&FC9n;pR`_^4; znc658o+FC*p5a3v6RMyQ^q7H*- zM{vBjdJXz3?Lirhd-FqaG_~tB=0WZ`f@Wb*D8r5@qXh5|Jvi}9vh7?hxQ>E2ibEvbC{`WdFkvO&$JJy`=y@y&$#FOCxD>`9KYn4QG?o6sUzd>d{ryE;?Gi(cL`Gvd-ALUIX3CW^QQzql$)n3N6i>nMeb*66s-PZeTi4`8aB z(R3P#nJRC=>kUSsvHVJ?>kQ*I5uv)f*RN%pj%A>Ch2#T)XKbsCErk0s#)7%NXP9QD zxr5>tf{L8HXLN(-MbnZ;hq@28mmhSForOmT^{d6$%f0JkO2w4B$6LBXA^!CnlY?jQ zuGf0$d*0P!&X^Z7=3jHg>6ZKV0i(ABVsD(FRBrvOQffe1f%mObLB*~|VAT5+yQjmd z1RY1Zcg9Qc*km2@@`>xy_r8eR?Q0~lPqQM))Rt%MPl7sRg$v&g#&>V$ET1lD54Vw7 zn|Zv%0Ee~){80xlM7xi0Sl=IrK3x{R6=FVGZrOl@`zcKYd%$!uao)r#jy*B%tfs

    P)Ftzx?)2lzk{-R(){r3O6i9O(aixI&efeiAf(J0u?$Rm;5u`lu_SZ&4z z_hL*79;jSVfL0o^Xt%ilXfCnWR>YC6uwLVfu`Mj>VM6$x(r+UzFkB42sVqVh0QnMv zslLI)v@=K2W)yDD9)v8^&_i|lGe`6wbMi7KeS(q#AMJ~{s(%p!u;1K%9eHDge3jVXpMfS0VFCW}QQ>AC z8VJsi#kI^&EkK)XTooCU)F=J60MRC&08F>9>IQ1X!jEk#c~!++#xo(5Sw{P2(r8BP zwSWy8IOx0a7P=sp7Z%`XhM$!Rr-&^JcZ+OABPXq?0}RboOi>O@uc>@S3M&8@oi4XY z1@i9J#9X#FQ*@h|w=tV_b*1#m#X8sP{7lVT_Sp+Bh`;duM$B2LzS6qk#=PS}bfsa_ zw(Y9F!jE0R@C@doN?!(NDiGgaN}H z^Tb4+EX%!Ew~HZ=5o%Q;a=45;G&?EaG4=d|U3A;ju3khM`4n(OFT>bHgoC>Ms0BFZ zGF{Kqmq85Z*tNbc;?67lh_X{a$t&I-benNbZmTyyKRt(P1Fg(S~5Hkvc-jax#75oXc?)P&LH}0oN&tF zCx=k)V!)Zu3uOiv16oEw4!q22Mi?71lIDt*ab2D2=R`g3(I5y5-Ur{eFPMmr9Nyzi zZDi9V0l83B*&+W<DW zfl$KKa2moa7p4$F(O=}C>^5|4OrqMRd$MK=l@3iLoNFg-|2Q7R#eY zG^a&1s!IQukyNEFm8nVfCR0uWQ=7)dALO{G0H*pj)fX1!}&W4cw#D9@61{=v;V++uliQ& zsdYd1b)5%k!>@5FW6Z|o0XfvhprtB*80hs}*VKwwR3uCCEUiM7WqxN-TBB9Z2GdS%Vy%P%*B1al9Pv0NBC75{kwJ@6()2Fl%F*Hwptmm(sN4B zxirg=c^g-nw$EwIHb16oZT}<2kX)^8Mqu1B8ragPA&Y%7RKz*pe(mUR(`mtFj@IqC z{NM|avJjr(7_-=J%FyM}7Dx6N7HeUV)S@vF`@rmn%x@^-)Y)47`#!%j^{8#xy~hX; z&zw)7WvSfKK1YjtpX)_qtBYgOGlF03u^M)%vF6>>_CsCAQ+#fawA~@9xudX_~XO?N$0%uuuKdnek8)-9@3~#}cH6d4ZSGKuy}bUL zBk@SrHjiav^Tn6771ZbUooxNz2V9#kxShf9B~}|`8b|xx)fHA0&;D_Z+c3ZH9gg|t z*xPUBKkO6c69e3<{yn!7l9!i#p_|)OFYT#c>nD25nkVopl>?HtyY>s-dzEAzy?%I4 zX?7WBPQIRVv~(^N_$@owy)|>qc&?tgn-{9+cT2wDj3p%3YRPRh8> z8W)>q@sq7*yC3N1xkx$ylp9IWQA^B(@U0-s-!SU^Oav~-a7|bG4Y&V&SWZt>@Qa)1*Hz#z z;eDM36X1{icQBE6jyQ-ABXGu9qWPafOaydLpni6|@ogY6S zB(YW?$ng-=6$tc~G0Qv%7tjyQh4^$U&e)|u=z05<2k(0-#0)j2K>&h8Kd8FM0CqMb zp8N;&0)gaMfu?Ad80gScqe9WB4xay(7%LDaU>^aQ2vJh_SG5rT<V4#^KQdrODA+;paX}I=b(ofQ2*^RGhy$nqU{JJ-0jJGB{L4bY zjt;Q&iUdq^=n;GRYcua zho!&wT{`aWR~Z6Cib7Pv1a(Z=xg0Rq=LoP6IrJn|s|s;*gss2-Ab{2rB01vG278I*$Chyr_%0vd#JNfbjEA}+SR=otwMpgjOwnwY$g$S^Lzs8D*p zI`HObB4&X^Ig3P6V9XfHAYDO9;fEBM9uSy#&XjIQe3;01nn-Y|M5!Gb^7>2ODv+Q7 zi~&?R`S$`DloKVXI0uRo|7R&9I0GCq2xdOH_&7LTrx4XRAraZW1>XWOFc3*E!nZ^t z{kM?*YcUfM7->#9Yp*2!H86KGGk3cacXtx^#sO*Xo%mlTvb%Xk+XiCyM)oCQXhI2& zhz0xY6AsurV)MS=RzUnu%=`~dzeN&5{)G5~4JhsYraK+rVys1nMiTTcW}jweS2f~Y zb4o*SV%SCEYaQmuujdQ8!2@ohms2JfG7)Ao&qG+e0Sq{N6EU%+8$yFI1sEW*t26L& z3JI+(Fohimc`)&@CR3>2z41H>4hsp+i?ZT?D5r|E%d1>^B2u|3;-K%-1kTa;?KAQZ zh~=NKZ!vSYu?U|y2^Tut4=tKu8On^PpeEi6XT;NOM&MA?3Z=1ZDJ2JkEiz>y5GIR= zMGZ))k7rgHAvB1Qs?CVc-0^lcar7oDL=})A7jV)#iyp9iXQ~jwFUnauOBLQKxh=?N z7)410N~5q+I6HH6v#9nhGGQzUhB&9VDn9=uRf4yd!!+Sx7E#7cmdYJfg9nk07*HM& z!c#O>@nBI5B2J7y)VKmuj{p&8E5aQAITr>a07enj4(yarjRdV#C8v}%%>(6^l9Uq$ z)I~v5j6vy`AMl$3nRy>nz>TZ_#%YHIzM>4Pma|?yf|8w~q-=_5PcSNb3BUle833oM zhY9Hj2kHbpp&%2X5>B@}g6c&SpsEZL*aY96tF}=X>yTEcZOjrEff%U@K_AQ!`R!Ai z9GfVznJT+lk3W$#?V1|0ndzfxJiwM%+?bJ$HI5d1wG=Xc2VBvqwN+Rl*i}_%<==ok zkYE=kI2O@6k*LfdF(802Cc{}e4ahp6py>9~x`5bBJ=)CuT&^t> zYZ2ORq1l!m+0HC)aDiBC)HJrKS<}=it+zIKM9tZyI(npMep6T^W;YNMMwX~ z1A7eOern|AOWWqlyBdJ~8eo3n1L$|#5?XQbsdSuhJ8n?x;=GEwlGpg>jSwWF?Ulh1;nJ zxzM(}FXa~G)Vf7wiqF5!89pSd`r2$-JA)aLs9c3}^WeHs6DW2sS9pyRi z<@sC{#hw-A9TnB@74=+|&7PI*9hKehmHk{*!=6=R9aU5BRdZa`OPv3d&CX`sk7h&e7E`Yl%gz?t zj}`~+Ru`{UkIq(~kJbS0wh*tjh|ac{kG2Hv_7t!7jL!C)kM?}-j$*Hl^3IOxkB)lo z&StO9_Rh}kkIsJXu3@jPvCgikkFGiH?j^78wa)IXkM2G0o+GcGv(BEYkDfd3-Y2i# zx6adApE8X0M^SRxur~o2TvV|Qt9*UHibfq=T)zXOkWw4{M^>eJH^PGpU1n-qaX%u zw#@a@R_&7_^wUhwnDCT+Jgc+yKEmUxfjS={B z0KRL4ICT<}XVNe5r>)i}*)_1S*|*e1aY|3yK^c(go$?xlFfd9a;+)o$C9Uz$D14~j zWlRjxz?cnA3eYjE#wNS(YBVl&I%J%~G@d_FF8&^vMAYWq*5RP=2N5&2MeQU-JD$Dk zQu|uu#>!cM|Cj&|1b<9nKMv&Xdtyr@T}djQ2pI@*{#x&|L}fA<+_I zQrMaYpdPTMZ_OZ&F2Q0i-#AVKlF3(?AP5iM5^+gVb<`7eC3zZ6v?=Sq3s+;wZCe#fgl&2yTw{MI!NyxHI{*hDqm3<}(}&1RqX(Q~?2oj%*5 z=H33-XB7!sy5J45>#pw&xVMa7Pb+GJBMZE_opFRPt3z{!^*KGkT@ z%h~$ELbAHd{sLq#aJ4ba$Wbbo&{uQFTOk`>5@0t?-|ly#F(UE1z1jQB92RgO4m=Rh zD5QZ{e7t`M3^tcH1Y?0n1PCOZ2t?nKa6mPg=O+YH(P#pRbS6&(Q}K8TjW(SOz`fpB z*s&(F9fvdAKn(a0!u7Hp`BXkf%Pw)TfVq6W7_1dzc#NfDu|S^xI5{#!XekM~&Iq?@ zsclRxeIH=>2dFjln-3to)jEgr4)axd%M}W2vOHf(LNnV-BfFF zxX@dT1OXasjKb!R^>(pXEYi>YcgoiOc(z!nZSS6PaeJ}Z>2=cM?R<9<(3`~{$9I({ zI2j3FkhgRg3~8WF{I{yz`D8kaG55t@$KA7COwZ~JH{2kQkZ@T>d1|!?U|_8)DH>o? z@pOc$HnbE%sC?xSmZ0)9MMeNLg=m3jH77c16b0^@UJ&K-CTtw@4Y9k#&oBQo>>+WoehH)lSS@@D6IlnLXcpSYBRZWl`180!HfA+;MDKQ@CDS zS?d10eq7r})t;FEq5^plZMK|wSvAe)W!5+=Cw(PrP2_c9wn9V+ux;MDeHt4eVd!+4~-3mG@>pGdR?YqClvgm|?d(EmG29L82`^C>UE*zke zuo!xZwPqpU-xict`OHORlAwbNWggkZOhumb~eWb=rYdhSu@iW z2PC;9o*E_0lgu}LRI#2{Qu2R0Z?&J#xUR;NL^zIN24Q(uoF}fGZdBBDyA(TxalA|O z=(E0-7U1FE?~f~oYK8YY!F)GgQ~5iddfez&p35tz&&308eBOi?bK(0Et7hEwf)a>+8@5R;sVKvmyikzahS3Q=SbBKG(j!-gjIMvoK%~0C_6imwOplGN#hMucE3TV zHaeUJHdv~-kDQXH?TA6KOu7a3P-F&7oza+6TJQW&WO8;OxJ*+PZX2AECvS4nle0jO z=RRQ?#yq&@E#A0Bf|bxJG^DOD$+cs_`!HQW>G-Txub?B`}F_q=-_S_EgaXt5gsu&tHxd49Gw) z3_+5y!Xf=pJ~X}%T;@zr=4IgLRnwSARfdHy)p}-w#S$T#?u@eds=RtxGpkHypQ`#o zO1qjkrF3^V1-ujj6oL^nS414pxRPqpIar>TQo01~6eDHcOlPDTor-Lv zsyXuNHI8x)*qA(XaA6Xy`x4!VjI1p`3nAwjSm9q;8X)(J_?o`wT6YI(W$urR4mhIx zLR&kXz6#{t9pT+LVz?QO4pL^ADO#Kl(`QABKab-Jux2vGKvK zMvg8WtPP<`sz-~_AlF>2&VY2lQD_-o_a=y!d!&Y%o@v<#3CtgM!*w~63X#q_A4 zgR|f?gbPX1KZO-2>?6hW!b_3>A0zAh28xUpuron&WynbtSEL3}G$cW~D9v&_afNCN zmvU&>i*OvQX3cIm!95`qM->x>l)0vmaYM^Rpk3MHEoWV^E|d|xH)agMpPzZb{yq*< zZhc7(+V@1JrhM!2@*R{0TC|DYi$&IC-)w7PR=OV6&m6x?xyOdnBwkxGf!sEX0$69f z%5^h`Vv2L~hL{?Z$Oh}Wt89UFriLzc7yS{0Vxi95@%WGL=v*>u_RfQhHON+A>hP?q zRIVPTGb~woSHnl&apRXJyR}Lu+kfR`A3`s($5Puq`J#mOXF!ekJDAq>WgjXxYqU!a zuhO#pCr2(r!7uwSJO~@`bHhKuLYN^4^H+CaF(R1ah>E{di7F#I?P4U?aJgRYH(u&3 zmv#-$9XUyW)r}hb0Kp4pdETmV#!%BIWsNUHrKaszPaH4Rly}S^spF)l+m;>s5wMLH z(0E<08{6dVTZB`URFi!O4t&FjSRjvz@>b}>)ar-sm>>jw`ZI(fKerUFHHJ zH*d&9#@FaKPf3`)jd|3i`i-7hQ(ElRndS0cCxS4K#x+4#yX?^iEx8wWq9_pMR|{j= z!{!a&3#+_#11RMOqc8TaI{EJgQ}b#W4@e-MznhEvA}vlbe(eYgA6R&jH>YX&UvtWC z9|;&sVN@A=oB(nFv*95vM6iF$08{Xy7{-q&bV}#z%&7RlEg9@z2@-HQNQo>Fa9|Yh z`$437fnn1L7ohC7I}iY+!O6Q2KnOt=jVu^o68L9PTp&4U)XCo}nT;`=5B@ZeOGQMO zBFG;ku&*(20GU&aLM(d0?_DXF>ot%OG?)r3NX|Xjw;<$wB?NIbSnV~0VosPqB&b+f zR9zxeNFt=8FjQMYjJPZS&fVW#M8GUKOj1ICVJ=9hs#2+H8S|v2{L5zhWjPEtb zm_sxBhs2AA}O38TbB?Mni-I)_doqqv#1I)v zk1l}_HiC%mw}_ceV(o4VVm*k~8|7-Ch#@i*-g*sAD2st~j$H{C+B=O}I*mYTi{7>f zeb5jub>cW2jb2QT)h>!9YKt>ciCzp~om~|e0*U(N5fnkecf2avv>JE37mxQESGy2T zS{P=B!SNcNkRcI|Sk8avm;lWgg8UW_J|CfI5_DAwl*Eb> zvAPOK7D-MnXHHb+q{Ul{Rg$E(ct|#iNEn?9A}mj}JBZcFV70eoBbP{Pm`^dcOm)j3 z@Gc70A4~hwo+h7=7JwP*`j!@AnNFsR8`++Y${A1jmYyV;kz$#V7Lk!ro{{zco94Qs z%zco|eX`7biO78`&;1z7{W{A9K<52`T%b~UzpMax;E{Qd6?xDoFsz{KkNLZ>!)T&7Q|E0NpDyGU(#i~}t>XF5o6~)@)#k%Lk`cNf? zR3*kzC8ky-=8+|q6(!c=CAQ}!_E4n`RHaT*r7l*bZjq%P6{SBFQ=juvKd7>RpYo_w zS%_6xSY%m5MOoB%SuN6RRzSl>{}R~ zs|!X0D&mn@h4!8#uK+-E%+Qb*$oH!s6g{-Ey`r+y(@@^61XR#bHxMCm#Il|Xp;`+S zInaJoQGS$Afw{%FH`CBO5K%`RwLwK=BvN%#4R^{DXS^A&kgVpQ;@5>?O+VL9%anY? zq}qE#4I#g}D!*!Fuez`T>D-g-vIBh;3-RY4K~}Jq3)t_O3+WY#>^&0w^IaoX#bNXv zq!dNhY*{h5)1sef&QZ5 zJ2d|_lCs*Ykv*!B-OGVrCDvc(IKnRv@=gb zy7`9PMdhPeP#Q~EyD5Cw)&g6}>cg{fu7#$vroFx})?%!QG*wlDZ@AqCVk6+oZF)ili+$t-ZPxE4#Ak zU%u4Eb3XP3Dei=&4|ThrHo6vpGxKl!`gg<5&Xz3bW;<&f-6&KFsm9L$9AFI0PCKSXCj;PkpW9en?YRyiR0dO-tMEn75^xX;Vf70mNixM%c z_>y-La?$|wGwrq}l^*ytKUt5!Y1z8GrM8t$%Z^qx;`%(`Kz;Z&U8RX@CQ zU(QAeVl*nUHzmJO{~L7YhjhD`b$e1;(^X~9HRC|%MG4D=&-P0{_oolF4Ej5DCo%Tm zNmTo^S09?o;MD|{%mk?JKMAytK5VEi-N0VK%>iMZ_9n0PcZbfgxfa%_0eiAu=4VqZ ztzjLOsq>AwrwMtxARZfDw-qq-XiYG@PY)0aEstxwX zYM}w+zr)6Yyjo9NVyLoG47vV+GXV#cqmA6tH>aS$g$I;W2 z5~*qH(~%T3U&=FG8gYq`8KRJ-Z!i%z-aHPN!L&oE4>Sp)Nz-x>yu?_^m=(oY3Hu01kq&Y zFuLckbOXOXOBj460>W8IaCt$yXYnHzxU1)-M(5Sv67gkc=Lr|*gJ$GuV_~=EC4B%( zc9s!}Te)mo0xvi*D!Nfp&P!ksi&`=9Snc_IQ%kB_(MGsjsIV)@0g+O+%ZU-or)A4n zmz-*V?(-QW4U8fyJPd%pZ6HY*3-wf z*Z-U5g0~uXsToNzJn@*GqRu~YL-W9Ij5{}DY4;z zPWJmOq32Xp@GPZA0?gqo8V`x{t_3LoAt?4tMg|FD?o2EIB_9ufh>&*vcN)Ef52>)n zq=62pOz)y9R<;)I0txt>T<{{v?t(DjVt}u%tmC4)2C3H<@xG-ZVFaz{8>JHNveLV2 zkPgF&^ryFc3EzJiNaixqEZuL1zDS1@r+9f3dj*o)_*w6g^p$+?Wo=qBX6Isu?w>={b*SG{!!|no%xk;vy+6HvBK!qyE}^mE zldk>6aBGEk+^HP=GcW!7-|5T0$*K&}YI!7B>2dFP)sQ7H0xuWtDDJ~V>LLy`uoAdl0Cit%+{CJ>)nx)-FJ@9>+|WuAg#R5;n~+`mc0N7 zG)o=p2A-5c?c=qveb?jofqgG1bO|)bsfiJ|g#%tPhJ$GgIr%Nn+H> z(A9Dj_AJTrBFL(bwHR9{akE3y#0y=LAzevw9Oz5V%5wVma01l?N23!`{VYx6a>}YM zOH3EcN%L66(WuG*C{fcVH63;91yOA87DY*Fo|Yw9uJ4v* zg{hua6_qXTR#lD5p4K&;&+pcCgJ@nh4HIl1Hcbm^UbZb8t{=8-2dQ3m9TzPhc3lt4 zUiLj7&mZ=HK2UV;KLgP0pMQps)x915VY_`gj1s4LJC0MgemYJvuXsC6bH98#%?hLY zIL}M7e>pEItNXYtYrB29tQx2JxUO5bez|Tst@yZYd%b+Q?FOOyy6;D^f4d(hsrz~y zXSscQoEE0}dY)JEf8;viQJv&A*ZGZpG>^Xh^}2wy6NNS#3X8)K9A*5M)6( z0`~BN;+RbA1#<=rL;>UviK7sVMgql2F&p$CYk&Y{`D4A!2>?ac(F6ktP^U8npiqef z{d5EYFf&4MpTl*&kmZE$?g%1{1PLJWBw%k~1ig4NKtS-5xXgA9As=gp;ml)1C}~Jy zARu{|0E%6@!n_(qDKK!9T0>JJ4rkzv#{ny`7s3g}T~A=(iDp{BZJ= zzE}C4coSlgM~#Ij-bMt@i>P?=fL;#Sg-ALAy#$&fudN{bUsw@hqilv%=9$7FNrG|g zc#P$ZGU6HbMPh091nIpp27?g>h(K0}-(*fFq{xahUg&Y^-5ug%wU^m$1%lZ;AC%S&NBRS@T#1axG<9DzQR)m4n7AXl) z_E3h^g>gF)lBiJ(udO7eLo9&*+RP2`8&)I>&N}!pXHbxW&-Iv*%!WcPmMi+6_PjD8 z#!B-<$tY^@n=RU>GS{DIMsg%MLHWn2FYbe-Yo+4zA*S3-mZ0@kaK9-gg&x~Pp))@ZN$rqi5B@o(ij5OP24L=H=t`)i*K$Y&^j*D+)q@9F07#dyv>3^ zu56^!2ddz)@bG`ep?eLjuxSJ;X5x@^a$ZA1>$XW@~C zgOQ2^0;__K4!J4iY&44~3GcrtouX zTXk(9GtibHe|PTTc^B4b{Ox|5XDM1NriS1Qv6|$M$Qy&EGEA161hd5dnkbIT{Ff<*-BADjnvN(=u z2#FBcv*KZvvlCsmg{I7F#xm74PU}!in|1e`ayK~0PNyun+7u}T%^xj4gdnRvmw|TV^u63RGJU%IY zpR((~BxZ!uHf#C#i})ehr}Lp~Q~YeA808|$UZ|J#cWaKT)}S%|drm6^XA+2m@%${6 z=%$ChO)5xt0UoF8j^k5V9`?Ra#{ZBv{C=hfhc`OS#JE)e_%=@~`K)n7D(&2(T<;`% zZN-g$2`kOqmeS{6c;T}@fJ+x%;&XcT{WgmKrK<2tli;_F1YZI~+CvtSTYa*PCjVzR zq=QHA`vl6uF8@=T08Fp|;2{Z|C*pHM0P<2`cn%z8G0bhR`*orZ&N9+sPvFZ5^2&)1 zBRdIGC-U>7_c2O9L$G%(A`PtxMWel2o-obY5)MuzN*oduyQ}}SO@OSbpYRfAkGa1v zz3=jZ|Fcr4rwmpMQm~XD@w!cjMhBPK2AURU5dThyVh(|^tAB-Ah?8^h!wZSHD3t@H zUm*gfw+#N_RhS$shEpYyu4!=CpHIX)mfm47S|L^xATz+5JS0gY!mT+-34~cudX8? z@;3ZcDQbv=D_<0+mfUYhBFMw}Z}T9&^^cfIuvjxhk`WB9rH;TmC=y-Qzn_6pv4o+I zx?!ZTf70H_ibcXao48KNDFP(0&_#W^MTq8`{mw;$UMwP1HsZV_|8{^;RgyQ(^wHrbtucRS^Rw;hT%HwtG`qw^Q*za$yM5&Dk>R z!4Y*`Q(yi0*hF5Q$w1Ti0Far$akdcTvfTKoJcgMY8M65y$gYdLEQB(L zgJ~7TsX&OXECl(oLm7j?2+Db>v>?dmO_@*1$YGLTWg~8N26A-@La0A-pOZ*S+2juA zGr2(1pij~y19E8`vs1w{>ozl_<5T3qlTcg9(4^FVZ{-`nX5ofwKztw(b7YX3r}NUA z4@C;_H0HD|75{k6!KNtwy`9B^RRkN3!0~}R9_l;X`B%z#z`&$e0XK{3+}~L;eJxVh zDW%UjDS>K84&52f>IjA-(iWP01wdg7?^bfACkI%Ll2?*6if7yS`)qDHkJRuSSI(qD z(zJwXN*NEQv~C2rYDZ4wf*kH#9YHzjIr*CmaU=DT2&ZcPe}95d?MS8gmZL>yQT;07 zAi4ZwXh~;FMo$(}-?pBF7RoS1%4mrsKfM`UTFvwbSr<0aOffzFqijGEYNsZzH`~Hg zUuk_nYq!wCxkE}}BqXQ6jCB=@&uS_OPz@(vAi{_V-_{48)8X2bNIp*81q=h>AWzOOAhax8=kS3~&Cs5*u6EygJpvWZ5*q6rbhQRkuN(-$LjV-QwHZ z^gkT#8y+HR(pfXrp=}b|a6wwK9gVFL-sasN&C!)G5nRR9>l)S_@fn>#9hj}wb1~dL z@6v&6IL?&;KKL&yk3Ny?Cq!N;jSWDm?Q zJ+VeoNhmZ!@atXDH-i~i!{kMMBs6{GV?>ngoy{e^{wM8ipFO+?!+To8)JX#h8A%+u zY*09(Rfzu~HKTzl{6}gwhe&4x1&_sIg@HowpC#xI0mT%`mZ&cnj>2HJ+8nJf9El?k zj>M5{C>l$mP_ED!Yd8|ZW-zAP%qtKG2m>)1cOGjjoyiplf(qdn#On2XsQCH-zrpUc zc=^7|GPl)d^;~+C93(f`nf*UfGu2nQZs)9C75~3?57fG4{Pj-vhjZ14LCkJ%Nx+r$ zIz3j8_t&oJg!vU-yZ!R*)rNZO|B#yTWILM97Rr<>^`<(SFD9X<9IzZI^m{^5U(SD| zW_CE|O(1IA%cd+2@2`qxV{du==ISJU>0G()j;D*&M(dsFt^b_a7Xa0poj+2up~E6G z7yQOt$@jHt6xq}UpKlB@``}5O;|l=jH^r_$7@Ebd-_D#Fww+7uV zSuu@hCQ(VY>-kw}ij@^sSy8IhdAWY175d+@mhY}=>z=c9I2rkpS zrtdfPWt~B}=w;vBrt8I3>uxCZb=zU8^>zDc zN#%9NWy{5N=j}i0o36)Y>znS^@<|w> z(IFIdnQ&?gNt?TWhuN&7Xar$2_oGB69|Y8Lp~PTv4h z`-M@^IbP>W4j^rbzvw423q4u0JO(UHn{si*&-~~fQ#|X&rq>Bi5yE`TW5RxNYL{p! z*G}+gkk#+%RcU^%>p&#>b64#%ZQM6xNpK#V*vGZK8bi#o{o6o`*vvzLJV(HJn2u36 zfY9H(QNeN+C<5z;aPGWNW^o{RXWN>6>WFv1{@$pJxf=8615Z=aM7L4;(Z}K}zt(G= zfG`L&-oXcpW&QoHnDaI>$-44*=sl~vbanw`W$iI0(+PbV>@@k8j<0;1qub*Ed%X$F@K^9R~jHvLG*$xMN!7# zaobpiLVkJSa1zZemx+&>A^^Q^%xZKkgQf)7dY^OeC`ed{B0DA!QGOOgxvDb*^VEdx zMHy-=vLWTp-BG(XNpPyQOSK=(g~4<|OlU|#>>}0&suuc#m|KjJ6E#?r;zX|Wm~~Le z9Y$6{9}5Myh`t!kM`cDMkdre_${CSZEgJ97N=Ztp=qVBVn;6ru6S43Il4kEV?H+rM zC0s|;X9;8GEQ0}!{hVbf;um(5tl9y?c&88e7;Pdf?2tg#Py!Y}@w==mBho;Blrsb= z4OR~+g`EeGfM6FTIPKREFGFCH`7QSe&q`Rr-|Ji{s?AAnFq20lZKIT|Hw20`XOX^X zh*xor*hGz_aI6G@s$Vn5XrPjLtrk=LR7w$P%fxcH>T|+%BqWEKCd*M9F*T;FeuRgG zx;zI*6;%$z4JC z-_jZbaH{1YLloj{nTzUlO;)l;N6KkZO72jio*|@Fn=%q*Wp6RLylho`%iLy0Sq>#vGazP6C)`Gp3=;%a`P z`AEbi+kJYlZ4$gE!2CfwLUL?5w*-FzmO#d@r8;*Li!s6eLg)!*>W^AJ zjR=J9tBlM;{g!s|(*8rEpnvKN&IURg_AG_~uc z=~u_*?-{f`n~al;#taHD{r@DpRp-^sBZ+TG+io^y_7F)R2VfayAET7iyUWcYWyr&TgF!%#;ORExD*>6!+xX9DNr>734I}S`)TPnFG=BE7wCN?!0M@n2{1kO+eG%19 znM-@QB^15J$tT0=n|PYydz^oynm?T~wL-vjT?oN4ZR4-$S}~p!&Izx*BS+@^f?Vq# z4;NdeB-8daI#qbREfaDiAzB{2hQ=5&ePV-8^dDmvv!NRs~o1h(y9}dQjCfxbTGOSEP zd>0-63UrCQFR>ZW+nGFh@Mc}~15MD7`bjV+mNgz4l*LyL+Kk6XJemgH=i;yn?vVEh zxmljGPTHTi&dr1C$y)cR%eh}0LKL%y9ceKL4v!yT$GAWx7r!sqb0voEVILC=aDArP zqz^~t3*HFjPT3E$BSNOnYk7Q+X#(q1BWkW2Bxr4&+YQfPYi<5Dj-I2weaf5kBCemL z;UMnR0BM}*u^oTEbfZg+I>@)G^2NM9%WY5@;-hRlXvFJ62> zIQ+8}0|izvDOTNafde5<5s_c5vD*9%)h#m!v2nslKHQw>ERe!W$!5rdDhGU7PJOGG z{At|-M8o|H1bro5y{R-@!X1OQ(|(@I-Y?5Rq<2A@1wPWRf#hW&B!bkc;6YLn0WcDw zMjWBcr+2;d!HBIUJF>tD(8(kk#!orRumyw`yK(O z#EqkVSLV@{s}YMDk=+=9Wvij~W&VL0h~sV1l&?{fuhBGZk*nzeNo_Io>A@H7G5Ls5 zyAsiNr%|IAeg_hibY+uVI|-+T!nBZxVZSTg)rJ(4&8 z8A)92Njz&wd~Zntn8`w%$s(G`Vjjs78Oc)Z$ueuna&O5Bm?=tcY;s|$&Y&(DXS}I_ zy2@)Q9{nDyzfu`YWRis7AVjtGGE&WfQ!$8BbA(fc_LQK_S!~_Vn!z|jl+%p+VKP|% zSVbh;WY|H2r_na^IJu>Vt$DcZ8S$ZcTkNHhu?vSFvr0B;`@JPA7N+3Ub9-{4@%pEB z?K#jOt0ZuuObM{u6!FG-WQb;D5cg+z5V8cnrAUYxnFc6OgCiaixWp&@se(+dp+u@{ z=R^iYR0#I;+H;V0$Sj6L(J@sr%aHHIWH37u!&T0CWV7c6N9o5z8swB31Y@ZJ{Niyw zFj*4I5?jdTBV_X&OUGx=c}GgOvt(<0L$1kCuTysA=}RMP%nbxZ+$k3~#}ov)HEJGG zwSVG{A5;=a%|zLCGpgsdAyd5s%l#zEb<)h`+spj+5H1>I;y>V+Brpc5NEcL8ZTCZ zl`hqUP;;9>mx-?PR49z7(wvIu7g8uZmam@VVW7qF0jX9!%P0wjQa+gF-tKjXoHN19 z2-z$_zrsSll0l28q9&D(FkZ}amO06g2`$LG_)uyu#%n&VLnfj=k!0cqSmRqHW(j>p zMLD)XUPp=_N7NWE1?*>e%;gaL7kT&GoJrXIi$2N3wsFU{GqG(^HFc1zi0{UtQh3dadurv7CQihkjj{S{f@2w*abGK?kGg{UIY| z0+mu!zPGf3@2r9dw32ULXK6$%#j(%H!urcq+BWnJyOZ)sxAJog6hn#2jKlwE>-M zxUf}H!EEVDh~uq{t%mTW@eus}U_x_HaUh7hOjrk=SkB`PGq@EOm2S}|wStb8zg1+C z)EbacRAtX$TU6`nCwP#xac*gf9utu^4InLce~2)FQSE|D7{D#fA$`WzTmR+`0*V-N z{N&1>KphkXEvYQDD$BAuuNT;3y(U$zOlioct`!pEccr}KVx%05iTNkG(9a9hH1S`TqM*Sg&5avBoDSN0E$FICv~wv$%vyimpEKyq zL;V6knSR)&^ka*FKtg)8Cbma7X|hel+m~p^5ukOdbmfoHCXj*F(TjRs0G~}BGh@3Y z5%Vf?Pa2V){v&|Gjm%-BCLlcnAS4{%cLf_~ykZbjn@pv9Hf18QxC)UQAbRoqsVagp z!X1#8I*(D2<{ZEc=GynmC`WIh?Bd~Gecfo{theUOT#Jz_kvxlU+hh#U0 zwOLzcn`4whD2_m;gsV&_Yw1V!OIjoq;Npf z`Wl_0!JKtQUA#x#vPV6-M?E)3y+22N@yGmm#{zZ6g1yH=v&X`L-D8oPW6_^uvH0Wh zyyJ;FZf%6+Q~IPo^xJ*TVT zyB@LFYyJzT9k*=*hmA;=yWq<82pj%5DIbs$^>9nK$=E=-aDZGw^H?O0&mttw0)9`T zwe`XQ3y$3`c<$UnS_0DkF1Y+HJhRMVPhvc;?IP~9_w(4I1%8YG!jdA@l1R;eNLkI> z_W3;|^-1VoyWr6d*l!;RI5~^8qapO!;RRSh%+N6|!UHe&h^xCl_?ch^=a5VW5GMc- z^0$!5w1l=Xea_Rd$sVCy<-T*Pkw_k)b~UR{g_!HeaI#lmLdf83fFCRdkfjdTF>*=l z^vgGpczC}Pe{IE+#w_FhX0)20i3Wizq+b_`hZt0BH33^Dsae+;Ti?~N{DHFxfxS`V zv%YSG^Vx^=(ua5nKnk1>k{w6l*@X07qyc_zb)l?XC6Xo)|KXZimgJ_TYTUlu z+P?m`eM`;G=6c$nTyz}|)0-bMV{ zMfTl=xnBOX_z~4ZzY^mM>$``qM~TDWOF+0^X0$ayzfa*yO}4%D9hydPx=#1CpG30B z#D73OKD7rDl)Z6VKig@9qDQnuGOD zLw!%ffw})9HOCX4CGwvo>z$?go~7rWW%izBZ=dCUo#hjr7xJGM>z$YSo|osISN5J) z{~x60uZupy%YpwTHRoPV^j=PFU(S48&JkWM@Lw(IU9I?D{rzT|d#^UPueQIgb_uWX z$NC~0Ij7_M_hV^=#F~@#dxkQvNrkR`P;;~QuL1BkcmZzrGn9iv*D*#nufC{w6o%=- zH>qH^p!TTyro0dWY`<|a{j{V%dQtbq*fKM2iSK@b`(aJpHWAL>oz@n!hhU|--Qo6U zqt&6d1l>`gaKfbA(-&~;0WE0P(;rIf7QqtG5PPuK%z{bUoI6&vyFRreS* z{)oQ!OeXN^f`k&9SMWRFWiRAu!VN|E>FC{w<%PsSY^3>sy+H%gcwh)}_%U?9ZgKeTwoJ>k&*NX@4T`=Wlx|GU&Imn)i~d^C}auG;v;5e+W{evSeD@~He&xWt#R8kly-@Zjt~SQ@$6rBMk6@= z(nnNif^r?sx=uD5PxStT8H?{9SXz%33ngOqrmfBP#w#_t-%|6&lc>iIuu?2a{R*#p zB7rg;!{M#TJZh-LE*EFBU43uZt4N(*``zVyxki8WR6(CZ6T#GU5i6CHHOnf`*>?NE zdu3W=x~QdFr{J@yBBgdDS0Cv6^{?i>NjxP?wV^aGabW{iDD<>T8V)2;TT_qO{*%dzV7D#qi|ERd6JWfvg;8a;xNY*6FI@>&k z5xs;TF$vR8r`*7lfREO|Gyh+ydB}2x@y2FK?lE0xqcrp0-zRxt{GMlJ zWxbvkb))=VS8XS`>`t(-%mrp6_Q(0dU({uvp(9B24Ugktd7lyU_NRIG);eR}gWIDD z@6)@|;XcVMp!CV+3_-g>%B_9KPGliqTG09$V@he=@bOSIM%b(rAZg#i2oNL~I?p5? zHMxU~i5e~3;PLAvA4EMKY`RZhU9?;fk|6{vIGk7=T1g12^wt2ZxX(nmd2k#65eD|x z00p$Kv=(3rr}ftWnEU;L0nNl1yeo}re+v6VAB=zCJdBwbC|2X)02dst|2cp?)JR7c z!1gYI3^gy<`!ZXhRqL!8a~*A8*cx29$)RDO!UyE**>C z;XOPY>xW082}w{{lcnI^2f!XW&mNj8i_dI^RDj208JQ4XLkn$YPo zQIkKD51A^I(_r8S3Xr~~X41}nUFBGOQC`EK_yd=+rjvWn`1A z&>T*oMFNg<(L-ZsK{O#?CK)B14Q~mYMzz^{)zV;6ohWgL=pb85;ffc|3D5nd6-Yuf zYGZ4#MDi&CHQ1u61z-~vPRCR~)ecc1;&Ju$LJ9z9XGbGODpgd=q+%_RKFyveZR%oh zkJ$h)O4b0lnG{;I!vM?{!R1g3McS#pN~DGf_+c~l1S4AjP_BOhCqO!h);t9UiLFa> z#%+bdQtd+dGZXdxRgv@n|4RCBLIqQ6SV#h0keewI3zmtQ-g+7iq7}K{Ed8FwL<&|~ zj%rAl#FPnFO~vF-<}{M$Q!)skK)wrh#tasuISucc1f@kQZYhN(QU`zx6Cln6_99d| z90_GF*~?B+QjqCl@0kO=iJXC4KvjHz*@`@rEgw=fQBy%nu{cnm1<|xrbL~o>w&igh z(M51q>z4$k11p*qfL;vZ8Fa3PP}W@X)3)kY9$Y^tC0XPw9hp-Xjpi}Oppa0)u}p!J z`igq8<0Q3tfVK(4(bQ4@1Sp&cN%wNequ_|kUcLGy&?_N|0b)pP4Pf}Gghkjr%m?EV z5){3U#8ZjghZZjhP)W)L_kE;fyJk>?p-iDeL8T1_OH;jzsEUBkpfY6NPe8k$wX}LH z$2q$KX=oG@#utrs4=~K1yu;*+Y?$2%sn(c8HR~PnsGdo=k^f^JAIK%zA7IQHu_;Rl z4#7?P49Ze_39nN6h*e1(Q-#86H2lioDg*{NV2gsX!iZ4p!GT7vSvl!xP2d2`M_(P+9Ee}$snMh?4sLqj2CA_tqva6M{6wSUT_{AYJz&9fP zWwt}xY!&cxVS3v+VzhdZ>0=dCO@Rj87V;z=SnqP54H;Ng!Qtps+%oOieR#2WJ~q{!qtomp+!JL|SGcg9G@vMFtNND6w~_8Rrmn1A*as{>efB z99mNLDFq`u)Slj&TW=WLR}A+qC9JHqY(Ga+7>N(V-w6AttgzI~8Fxsk)@ zqwBA5SJwu4Ngsc6dIXFYE1;MaNIZofXiQ#16;`!K4{225;}kL(CESrexV~5;{6mn| zCSvqgf*CgqOu?VntbPG_(V+{_Egs$ohmgL%fz{4k5;i4e1{Las2@|^kKAto@hW+T? z?IS{1YGX9M$2b=!oWIBYKbg20G|gE+WcaD8??)VNt^Z0ZEh466IsV7E59l zo8oUGqoU|2`rXVnpB;wY5^lkxL>;5%vf`M{648Jm_NnOOzoTfX5|%cjFTYaUK1V&f z`F`_`c-sv7n!tH3jRri90L$xz-E{^-e<9fpB?rom2I)v>Hgo%Si$~g^CCjo$WJ`q0 zjyokI#B4H4t|dl2O2msw518g0Z+bG(evotn^@lB#i$s{5R1 zXUi_y{4Oa@D&L7UL}RrS4_jVN#B+@jZj3lKk9P1%)#Fc^2S_>Eh=g=ZpxelBcu$U0 z6Lxh^DmP6L!4HH`OPdYJ29ilo;EbKZOiz6#FCI=cS*K@;_IDpjru(!0-6U9diTw+o z9D<(F=PmACJb4W|1KdTQ*(00TXPY??ojFvUIWn0!c9}T|o;gjPIV+wyZ=Sgrnz>w> zxjK~ZAci6rO};^&y~9^f#wokbhFdGFr?0PB0TgcWL`NBw(EAq*GcoEK#i+MeKxM;z zj4}NyC+Fjh)`IOG(0w6oHK5Dmt9=4Jne{J~lPhE3Vwmo{bg3vwx3l z2iya~+-MsH^JhcaXV2GR*WOF*K(5! zQUDDZ?%XUm;DcuYdJQ|tQE&0CLJA;?SgkvwXyLaJ^ap_SIY?OmjvVS;W#m?YZl4vD zzG!@mKa@u0&l**@2OQgQ;miB2$26`*iWMqnVX8@56 z{0ATkc-S-ooyYrL-8i?@^ZWZ0wLjiV^*>-_|CMUd!(f{NaQNtOjiALQ$dK?8~C;Lx?2x zmGmM|U@?-%75eeLj5IjX!w0&UiOY0a17nNziDo$#VyzRo*hm>3cA(HUCL8j6wQcwB zK{~uMAGN413>r>Z!I#QsD9|D z+TuXEP{>%3gy*k;0@9Fy#ts9vtk;VB3s`-2vI4QH+Ci<~TTKX!i*h~6VSnM(Vkqdf z)FVhW8I_g)-ZN7sveyk#4mlL!_A|8}Wfj?m^Dbzn7&I?)X%8d7v>Xvn5XAKkulMUh zyI;)~e}_W&KzpT-mHmS*Cs2pF*Eo2G0xkNBy}bF@y%0EDJ3dz71i~-{5z(j{PI?3i zTqJ;*tWmWG^T);&Ci(3CtcYp32&scK)*O7DN!A9W zhh#hMmnOQ_b#+FqJHd%v>CW^~O}tJgq;oldZO1`xytJ2x0J{L9eUHcJ%9Jc}7xOhtGuTC+_P0C4ddx=h#M% z$V2T5Iqgk&B1?;put7!qh1W?|xhC_G|3DR1e5z5tD;U9E=PtJ1sT>#` znCJd4b?@!LqARuJT|opFwO*m2q>#GSl%c_Xq-1qCc&afU!8{LtBr2kg2DwHS*C>5x zmi$D4cA_e|JTz^r61|P+mJN#WLSS8Z8R}+az1*K0FI726&DZ=@Q=5b4aM7-$;+`H+ zEnSqv#-r$~GTyI+-d}LNHd)&Abo8omRa}P`54(w*%;M((hbiGsewJk2}A@R&@{q4rtjz{ zy^zbbVB$Lhf=M_h;j!v7Usw8J-k|VS(;nj^jB?@0KzWoNn#K(|+^%92+vT41H4SNUhEd3r5rAgf2BPY!JzlIG+zz|#emTIGB!QBFUzhF8?Nls_Ry?R z{pk2l^;LaFe_v-l7xT@CT4VwA*aDd?mOA;;$XRP2Yw65kYp*?_wS7wI=_{hS4z0rv zpm@gIeq(P9818WRw=O+p8-*RCIdt{(H4%)CveV4&t6Y)@)y_YL9%9JSrW;lyJNU;!>K>_V^H4?20KxmIMXp+aPQpTGq@~|+=*%6?F+i_>^L)U z!i-GalXjRb@FFq)k$P%k4-=Qr$CIRVRib>@beUFEa9%ETY0AD^U2^#2{ZujK z_>(g(<l)hEUtkQ^VPl8PN4FvfIh^qoMh| zE|x3T9}H|iH~LjKy`4vuw2QXtl&%#FB878kV8Xy(SyrSMK-^3Fotr76Xi~IP27auS zAG%uJOX;WE4!nm&*_~nAOC0{IxSzWoZ%Xiv)5_}$utUnp4&2R|*8@f3h2q8i%)!I# zPi{D48a7f&q{M6@=UbA*Te8Mmiuqfr`&(MrTYB1CM%i0t+gsM?TlVVjf7nW4o-r`5 zkT=unFTH{q{rx+F@5Ku5;I;_(m(|miJ0SzxTOt5By8QtuA{V(xFY#z5swfA^sQp&z zS9lC@ulFW%{T0Ez;&9J$Wc}(fgHpi9tdjD)6+#`9KTA9St+Qgfm**w(T_gi!+PHDg z8eVOJytQq4Le*sJh(wxYPy0HIspM`cNSG&^zoasfTp$J`0sz1zJp&CHzwhmqc3pZ7K=jN3jm=#OxiLvUm|i(9}zFf58yM*S_ZkQs=MP_+dL zF*isM18jO<(6`i#Ne%`wC*q%)_(QA_T+<0IE)gWXrTVwSfM__g!usXe1La)4a2P7R z)g$FN%#>v6&vjPWaaMUoGw?ZC!zOxcW2>BrIm5~5;BKR(v3b(9+#?fT(F&FtnGEu} z0eZOnGm!}N^ZTod7slN_b}8k2YJZ71pkE+{Foc76!|wNkji`Ek#bBhz8*c@DgY#e{ z$^uKE+N#k&8iZB~E7>}wQ9rRBO^?Qw4ef`4?CQCx`pMN7-{&hmj0l$C42Si86X+jZ zt}#wevt@DunOsfEe6gat=N-#?n0h^_BLWLGf8@&5+#npQ_5wSp1A9&$3}Z>w0X5@5pcW4|h0>&wfwn9}zwyyu3Y8 zA#RTmGJkXnob_dWC+8|G6UuHh?C%aajU~17nEew!g*>M(jqo1Hrmp#BXLxh zu~03ntP3Ac>e@W!lX3wfl!1J!D$Ea>_C2d#l$A3pxXZ#BxIa}ox^gFETSleQG1CCQ zGcYZhg%4+oy<7Gp>%iDZRV=P%)-{^XsnzLQ;GtGTq#*ts(}(VBdEYfoEr(rp#LD4W z>LVLh*?CTztmoCwRC+UN0)KE@k@|svOC?T0JK7LL(xf)uHl07ansWzNON0-CH$*Zo zNc|AM78(az`Gs@F|DL8-!f(CfjPUV56!j>d-`GS)YdbFkj-aDlFZc7Gh9}FNY}Ks5 ziBAZ~Tt{7!5S=Z@&G73-Lv(7(GSe@9n#p%->Jw2&+xgy-rXYMU=2ri=K+>((zR zxgI~;yf_U)PHIX|e=EpypI0oNWyNWw>0vD?W7!f4JqWv?B6%!s(95(|)hbHyWh3~f zX7nOzcuJSNxNSOJHxR${V!ni^L%eFpk?-e8=tm5h8|p5ODFveOBcH4%bQk2ZheR5LbQ=z;ukr-Zca zSI)Rce(&CoQ%63RMy83rb`t^pyc=d8M%((zPUIc@ys;xr&VO8A5+pvO58&9udv+PF zhb9d1YTGXW`5`>DXl%)m5UdvnHu>!|H6n94onn92y_fK++S}c2}da=gZLm(x^8C_!X($; zzd$GX3Bk<%HZ1H1PNs={IKpX#$gquvM8VoIB6l5w9MW(A_XZY+0pjlvPd16j*$(lf z=#N~_ZK?=O-383U84q%DG@V*u<^RPKf}d-n`-pg)2GV&fbiPN%vIZ@^(kJ59C@VvA z=R#x_KNvL|ZAwKyAd@fYOuhYi%sJV@=HQ7Y(9Ue`Ee$0P8vl@WDoepTxZJ%p#mY3V zs>wwDE6Mf?Jax6%gab=Nd@C7IWBS0H7p=3v^EkAifYd|?xHjvLm{=InT`I~RuBeLG zTrg5~h>Ah8z|H;0LHbPk}K<+r(P?ilpo?u zx~x+DO%?c5pfPNvE@H7Fn8@xd(IcthV>H*1tLAlveyF`l^Q)}6rQ&x8g)Gu!Vhkh) z8Ix<3{?@_LALZtTpq^@Fj4Gwc0ku?b0@y=54HJCa~V?0x$RDdk){fNFy!K8G1Fe>c>n7vG)tkru6&h3MQUrga5bo(et z?L$Bce&$G(>V1r+_F)EJ=4fNO1DwV75sqHwSm){kf`|4|{x9bEAi6_hw2m?HV>wnG zA!sy+%Q1Ohr?`xM`VNmFcg0?o)V(*PcluC#jA3b})YpB8+k1(j(N3b~!3mD#zvQ`V?c#!1c zbE((2PM-cG8r8~++(n3y!EP2=CMHWbl_gTCI61pl`1Ks@Lb@onaCTMk3I2Ay) z?8-!JwleV*mHzR=Qv8dc_U~NSN{((EZ`&Y~4M5-VbN$tF9kUSKj*fAw#$UE9;G+R@ z4bzTIJL*lyhx@kw!bXqOl5GJt_0IjCmT-Fi589$GMlS9LA$3t4FzIe(TTte8R1lCp2YMnDwLmNP9vjExL{~U;%Su`6!|VCtmbF3`U#6N zs1K12G05tFcvhNfp9+EGta%F^!s?dJMdjUYTII8I8nO9BO+J;ur5!L4EYNquX9CWU z@(9*YAW{nCUAY&{HnxA?iX@gk{PK!M~M`eP75;=}&%}mvsT5$OfmD z8*x5RTK7a47aGg>_BB}|562&!C+$JS9tL1CLxk@ee1|a3r@Bv_^JEu9Hjm0A__lH$ zDMPw_e$~gxH!vMp(?r_ccKUr${6?q%ZX*1R1M5+W_pqRU)M4W4k7L{8WSlK2*$xw64xy4)JoL9E4@?=6 z#BvxDu%HJ5U-r2rs)WvcN@Ne%{dF|n-#*sa2lt-8Sd>2nmI^qp4r9hxWFAkZ)6EyW z94X*hdaNPP6pY54no%BGUV+bpc{bQl^v~x4N4|#!ffhu9hJ_1Efx8CgjcyHNNiClH zj7I{r%hBa>*8~{;|mg>xo#!LO0YhoHq%a9F3z#?r`Ch|;dGAyJx zF4S-!$@L&9p4)lST@ok>J~`6JW!m3XQelrVa$pKO*)sw)jIqz&vI3wKD1zt;7BSe7 zDmA074GzVr4qT#McO2Q`lbk#?=!!RFbo4pIJXZ}^Yi&Jla$gi zm@5k$iA7l-`y8=VE>ffkoRY8OMby1DQCgL2#7Oz&i@g9SpUu#pCS)IEyE35j5Q#=| zC6g?rSiB5FEHkKLrNzwaYQmlv7N7}yG#FHBMjm`a1eQh8$A=Cr#TsX;aw8`8)2SQ- zCbpm@@`NS7GYV~c$OxZ}l@Z91{+XzdkgK_+DeoU5RTx|DnW&nfsjHK#=^ZIAEUU7Z zx~C|;7ir%;P1^`Aa=V4!s7 zD0AkgbP+Fek*9Q3FLTwSbTcb+v!ir(D|7dy^aw5Uh^73UTJ}4a(zCS8vzF4UwalxR z(tD)Ldxp|yrOaoW()YN`_nOl0xy`ZX{*QmY9W$Bu0j%=CuB%iAh)B#vd)Z->FPJuN#BtE6J{Y7sCymt-Bwd%8_c9 zqpYUDlY|U?BbzA?A8S0bvSK^X1u2$C*{q+zMe-%~metI7vI?~bs1i4Cv>F3UA?>cw zG_OSOUs`2VC*I_!(7FJ_7IJdD=j247Mb&~U?My<2pf9}UWIar(4C-MZ_RTs*B)W`- zni?VVDTe%}CM&e6G)~W;h|lfFNcx9}obxNa(j#mgXzk(WJ)tPBQ%m;eEqrPdx z%P$t11E*R8xefJo8bL3Oz(*H6 z;~T7?v(k&4Yw7IsGslg@|1ekS2#yLsBjl%K8N^=#;zep2!+eTImKY%0Z2FbwbUnw6 zkq&J@Sia-%HYkNIDuYwKW2QX!?F{?!f zy3wSN^%RRGwv2$e*4_ETka?@M`vQ`|BBD`;<PMu4I%9*CyT z>wnDq{kX$B*R?tzwz&nkUDiq7D+4JeL2Eb?|(?YJ>)xA~-~c~Xb_-gwgS;O#gwk&@8U*}72k+ESuq zI)Bd>Iur3aW3ZR&^{Ycp!D9R5nV>apk<)gXQS^T>G8dDL&I-e#`&of3R{CJaI5~lH zgVYyGt8BFf8rD0cWhl7rI%Lep<3&m1=-2u5847u4;1G??ZcnVS{n+BFhAIKDH`tRA zGYeBWy0I|ljtw2`N&znDI{B|7vBi-dDVBSJm)YRutMPvFNn!yj9?x?;bs#EzSoFPd z7Tkh8t3^Hivkm(0ve)$MPH*^ryNX+M-2fd3QR_{ z#lRI52hA)=c3J@pKo-KR{TU^j{qw}z`5$i2~SjA5?NXN#>DHKs1!00#hQh^vln&p z`K+h8e_xz@ITR7z!qV(>zg>;@OU&ZWg*0zM#Gzo7y0EmQc#oY84h}qV z>Yrcg0KV#5EFloS1j*Dkq7+}|WwJGuNLe&~v7+a~82oWIo*a^Ech;t4|3UxMgbbYM zT4q;OxCuhGGHFY`JC3Ltk0f|fL;K0BwF6to=JL*6jX*II*&Pj1o#+tlW=^$9K{-T; z>Bd-AZKqPA1J{?zJVgF6tn23jiO^;oGJ-H`s{!Wz6`p3*Hehm!hqxTF$d*v}0@$k+V@drgs=?q})~u{xHYmXtk*RZs~5_HFM&vYVCz1 zeK`@?XWhrespj%hiwzD9K^ge34ZuSXqQPYc9fN|HZweG`R*hHSbhj>wx1xD9d*_4# z!-~)jc0hhAsvg#v5|^%f4U<6=Dt>XZHuc&$z{^yPwRrMK3YGBBk1$uz!~y0%+q@cy zsn{UpgAmUv^T~+6!fyU`uZ)H-^**$xF%c`~Qf3h$@!>9`yY(q}){|;a(8k(!;I=I3 z;N3}b+*({O?_i}La_myn#5l>)NXR{Y^%nEI}Y^{e;~a`{2Y^$>!V zy=Q@a$4fp}W!Zbg&*|zso(j0v8X#BEfw(oSm*-KtbT5xoFLxc@M>gX}-NAc#Tc;gE zXS2X@zQ9j%f?o+gUfoDOT29`4(Y!E(JaQj2f=@bIIX&y~4q~FZJoSNPZC+j-`lao7 zohF)X^%7kf<{b51UR_12UE1c|7v%8t6yC*iy+1wss-FM+pv*k*Nc}G$bA@w1;4YxJaGv3E zvS(&0jjXn<+jAvt=;zn~R7UZSfAg$fKCpb_Xg*`ce_c*ArfB(mSb78JL1J9D`6HiyFskgk?}BA&{bma7CbZg~Dmd z#5_%I?5471EqYZP_+f&DaBh2VUifb%ga}U{g@Bg;Ixz=-8u)31JzB4R;D~ zR4oXu#YiWdg+#25fZd6g)}>ms&3;c@*ZP*+KOMsyOmZ;Vey0OELyFABk;cE)@4r&B zqwy$A)_bz_6LWtxM+XVyhT|nTs3|RyEZ+LQu<)T`nR*XTqt3AF4bRlZ!Ij|%t}Pru zqI@*fX{y=AvUGzQq^dZ9QlmHfZFvkNAD0e3pXPp28^PL)sC41(9$3+2?Ze)!_ScsWkvt@U7p%{FrfAPFqWZ7W&0^O;Fjy67061(1bduy z$ybN(Vo_ZWep(PlNEt0z1G{I{IF0~3SLDb9r@0*c6KSkeNI2mb5*Xgf#lVkdOt(12 zI!{N{$3U$eo2?#C7LFfIHK)*tasrE5FjiX~jocEca-ndi$Qr}Gl5GSzL1n0g{?Bq_#TK}4@~;g5KEt+Ns&hbqIm^P07qNSJr-W|;aJE$eD>RKRi6 zESSu3IaH*ku(gpAD(r)D@w8g0<;OHa$zDYN1IhpC?d19X(%eMN!Ir-LX0 z=R^gx-*w!k%jKUW!h)sq){O*RU3yIepP3DWY>Yq64*6rpekT62*7n~4-zC1r)rQPJ z7!qAD0E4v|{r9|ClDkAJ$5*65+qju&fIO=xt@Cz-M3^JEPX_F2W10SE8QRkjBM1N3 zC6<=!Qr4}V#l5`a=2O;TDq*)@Oa8LOopUBO&x9U;nfLZ_=Xa-v2jPiWIYv7OPxvY$ ze`%QgRV~f~3teooUx4-db1$Rq_mwwFvMv}w6aQjM9rM+iaLnn|qK9SZaOOip<9MZLG6p4*M#X)! zv|sSKS26Y=l4~e0WXK@3@lm=uu>zjz1nh6qPM;ZD2#)ELgyHs4ID7p#C-;Kqzv{gm zv%(=_(z&P9Dgn7w@WphaJsh41@gdzAXTIUXjqFFPs;t0brS3B9GLtH=NbiDBNz&2# zc6uh=1ntZFzv=Y%4OSmn+u68M;eKOu$wA(Sw1$@Gc;m>ytbqr{CZ~mx(x{qHj;1pU zSh#Wv%uMLr2fv*n(v) z4RGhn#}JGv(jebTO6|Dih?H4F%L~%@qSB}S&@D=pX_rymyfM*!S?BwRQgWeW&iyo; zq*-{#1=2X@D-$j;hc%vB&A6pXsn;ZG(HSt6y>yCN&9E{L9T8$2&jx}$niEIIi;82X z*wG}HLbET|w7&?KnZ)T+F)t_t;HnldFd5>iVk-c95;+z-hV#H(Wq5(Yparn5C7!ao zfci|e8Y49jZ80l+P|4XC1TgvZEK9k0Pvvu^8@fY_&^Z&cc+LUox~bjB;4>ZzE|%(NGirp#HIQ^IOgsmqt<>~KVL zv6xNk_fh)tYdfZLBx^cd=)(h;Aq_s4wq-bL*{yEbQ}edC)LzNEBqr?|375Ww z9G!<891T-GHOn?x$!o%C4Ku@6uBIOw4fGT)Oz)Rp@Y zjAUhAI+rt8sfaOlPMvSt`KK=(1JTxgsd&H+kg(>SYu!4RgGu#whW7Y`OL{}ipDJJ5 zCIe{V6AW)?yP(?bR1l@t0VvsmH+<>+FptPgkTv6cE|9m@{BFE(*J`&EBlsC{HEahkOj zxyS4n5@oF~n=v(I_1Nf(Y%EP=w6^pU*g3{!Z60yFbj;`2xz=TEUAet;XRdl!Q9wI3zdA%rn|55fI)keJXhLLqw}qwQM)%60s% zTpbX+yp9SHIwizqAChyvjVt9krPO5~(YwD*8WK8Z%w`|6x4lg}<~rxxWS{W8yv+s> zx)dPgoQiS2&nM)%lrZL;$+^ET77)5tDCC^0wY@Jl=C+m%;o^EUE4mk?sDCGZgOsXUOsj}i9Gs|a{nteqvUxEGyX?v z{yZQi`aQ0Yd!O=s^i5per{>4G=Fs;HjP=#0o)qwXb?2+fgXrsS6;u6pz3(7bl+x@?Q~# z>bP7!HB1T<%+)A&>Mcx4JxtnwT7ErjmK1Et{*Rh^*oHY{G9xf5BRX{>S(>8EzIb&G zDt?#SXEt(ZMg>xFMR)}hCmIn_Sra;CNNryvf$v#d*0{*Scz9Y^G4SW+*r1Vn-Zl+hyOjk9aA1VEyBD4_!l>O3t5xSZqhDbtF zcpwgB0EXH;1`rI>v;p1nj*3v6f#eR9NCc7DG=E9)#tsS$t_TjtfmBO8^IjU%Ie|)R zu3X)L0a)k=HeB@GH3U6tgdBfpxL=H=ulN%e1?l7#Rpkh61Cb>9(El(5tlEf}B$N&R z7ALF_chwwsb%4{$?alB6m<;wXra}P(F|ui7|ngHS&su*$uo9Dm>DKLkYlddB6VMD;@*}Ag7{i zAZuJ89~UE$yuUa%h4!PMZ4cpycVy5CfNGTRA3(LrjcIF@V~0XWY?x^pQ4Q$Z;IAFtdIi$*6-Y><_F$ zNyeCitRiS^F_LTi1A3B8Z0xKX;YM`wb25h$M4pGiPBo-XU`w7R#pP0@+l?2kRXQGh z1W65*Jo_^EXbeeBB&|@BR3J<$F?yfJ0+@mR*JnSDf;k`tIFy=Jw}*IIR6smbI05^d ze-Kfg$h}JU(bER-`~n#d_xUtS@zYqluvO|9%DA{uLC#gEA5j=`A2?!c=#1l8QVKKB zr-}Z~|G6|3I*Oz}kVn-Jmpf)<2Cw90BlluLXRE9bNZaR+nLt7*sx_JuN!S+v?gUB_ z{$T!aWLAXW*;|-UBo($*=4L=or!pdsCl?8b5O|BjpCFd}PKk(cktBF@k7ScdQI)KL zkW6!tibH44ew0cB4$@6 zXIFAxpinncMtk}bJgt`ws^T6x1Ao!|_pxPjrm;^{7O9FG`YEb-k(dHRv8!CE1)a)> zf}WIKjn!rf|LF|(R!-A(2HS-P#VExMgA~4*n@UAJN^Rp@3^wj*fXzk$sEejvRI4#< zqdMRG_gAD?R`4&PA7VMhvN0sMDQc=&u12|PvutW=6|&mHGffOps^;wM%ocj~V0x@o z$`N4tQWs6tANvvhkO$fCOgwHD@6)~G?SN!S>B5nq7HjUQ{CMv0Yyfy}C zY+6bjqv-V47BUGet)uYOf9BvdY&jH4su?D&O>mmcf6J_bUs?=*chkUGC&adnOq!`Y zSz=7P7`vEFiuQA)I3xr) zULm@iS)-MV~|F#>iI7s|)7X)br7m2j8yZ^_L3NVX2um_82@?tY`Y~DX|8RE?%#{XhxTsfbuQ-|5 z*2K1Ln-eD!+qP}nwvCBxb21Z5*2(v6)UG;p_76C3^)GmQX8^rdixMtd~-3Wu&fryJ%Hey8#ZLGhY!Tv@;vPnjYrW7NtMUq@1flV8@TIZ@1 zE=b9$k1W zupx^YrV+%Mhzx|5t09dCMewtRX+?y`CX=T2JEv|{VRk^}nxkapAEt8HsG5k81svHO zZ;(nhlOc8TeuLnCUEt7wBqip~P4|p+n~%fAt4746;o(qrE5oHtVK3{HX;VUI*&t&# z4?HB}Y&s^&DrBOwK`n~3?cy^3P!!8kA?Kzn{nG0{!31SGxn6&U1d0b=#Y_CYEa(L< z$UG|Qo~rP8rLB6+PGvDyTIIwa_R4`&A;%T+M@v2rQNwE{c=p+$U{j+UtIvgxyTSQ%?9;d&o6!81`j)Do= zYPB242`rs*yvVZNwGeyQuus(~I|e16?bs;>LFQS+sJt#+hsp`sfH>xG6@-qNq4H+n zAWV=XmJiJsZ#WO8Bf6UaN=oR>2I=Ht2shWVCRNEWF@84siKiQ>_D$Vrq+?O zEJqCf92=-FU%@T~)iZ@h*RJ_%&}4@Zfff9X%8M|#g=3Q#m2GO;K6L&fg7!UD zpGrb$tx1q`JmlAmhNk`RG=tyPI~22(Ucsnh%+cOE^QLkD4_%MK-cI+6pRYUHsW0C0 zSSwzdG=EzSg>xw+yo`0W-A$nbCv*1#cXq5fhyLjwX8PJCw(pVkZ97#QZMg(vow}Oo zE{sV8?E9h$`CV&Wu#;@*z;|pVYPkBQSyxBfvGuhV{;+1~D=Kq!i~6^o%g_Yx;lwC# zQ@7?#aR%T(}9TB)4t}5x!3t^?Vw}7fywB@z}TDWxjP!fdn(;~s_(8`SS}RRUellU zg?&>EdG{EaH@$Ip;RdJXHD;~ercVO8-Z73edp3f*HxQp2zi+SAuQi!oJbwCFar)mF zx?fV{UBqf^sQWv1em<4gJy>h(srJA8_OrFD*)LqZ+|hWv`JP_Jd4)-2=|J?DS$ENi z{kzruwHfoTvA%n(;7$SPl1T8qUEx_6)M&Z)C*M#fk?0R-_qBKTy*T$7(EhyYf4>28 z{parDmiKwqzk=8Pc|-IMOeA0+5E228FM_#n=zmGgBauKl9lLX;qtRFtwzs4IQ)(89 zr`PTJ097;1I=xXG z)xT=>y1o9vf3I0@G@H)ikN#e}*=o1d<%_`iKc(hq&idV6pZB+a2wV;OgCPj`0x?{T zUs5wZuOA|J)A3{qoo-(Yck}6N4zKqoB2UZtVu@_FKrBz|f2C$WB;K~`jTYOjzF6M& z+npZo_fI6gj{Ad=|47YzosTCo*}VS9{9XT*n)~DUyI*d;q-GGZK+oTYF`_i~^y*eM!ymj1xw|$O5n+;}CQODdSKq zg9zg=Jo^db@Na&wCK04@QYMjLx9+?fc*?bDZa-zpf~|k(PO0x09CnexGnw1wqI%R)t~TqO6Ld7^kd?;{@QXOOh01 ztV`1jqO8lZ?5C{D^Zej#DvIJ{Y%0t0qHLZWX}>-ykrYntX{Y-`(gqipNCZl`SP z`#$0A8itT%?Hb3vMcXw^F;3ex&j}#>XjxK_{n7f%Ao@q!roAr6f)0Z@I1MZKTnriI zn0O_sQ`nki5VBTi^|oEg^UG&`+0|u2>3#$ZbXc%J005xl6?i}h@yK1LkUZ)=mLeE| zBb(F%zT+sCVT{x0$@x@$zqv3UvjP;6kJ6AZ3u3^qf-qvhh-Bh&6kQ#vh|BEvJ-g-^ zlB3NBZ72k}hCx_}f_p{k>TTdOqsx`*yv4tsW_dCc{T4+@LA{41xu;`SZ6z3aXB424 zP}3v=Cp{`#FzTUM)_gQ+7_)4gjk^LE&r_$W1@Vx zD+MDKi618^DtMmg^vISk*Y3}7&na)Mc%HMjGX(5%%I|=F4)|jzJWu||7a0Nn!Sek= zlI9!pQ3On?(_PLeP=XoiLO4Y$k$+J0rk>S% zyHXay7bnL=?DXMCGzC2PFG9iJTS$UW4(X#?kiz+4DufQpvNeYhEm7o#~gzU z>J!aU4B;9m3Rv*&CX@L%E~hF_6tys;C&S&b7-I(|)kU&+k^(fwnVgjye`;LAVTC@T zqrQn+GX=sa_O15`HrD^lV3T<#UvHleWDIclh{W;&NH-oR5j#ciuaj;B|A78JwK(a4+s2x}xERgtKDar@HdzGS>PhBgm6Dz#IKGp-wdVp=oux?u_!SB-ymO(SCQ5r*oMxG`AGPM#Sb*nrbuf^;E_EM66 zlQN1t$%aX$<$O1lioR7T8R)iU+^ICm#wx1$+bc!l|KO(Szb8bAbC_nCS*wOWDhn9j zR`{`B$}Lj{kdv~PA79%j{-p^heL1$o&ZY%yd$DZ2j--o>(n|hrQEiSIB|2V+kbLh- z%6U|;XZM6-YnEXIdNF0iq?(vyf~|L%Jl8S(wv}+QSr~X*tX>S`}UlzI~;dEckm6K zf2CEsk=|+^>!SZQNbg>Av$ttQ*!zTLZ~4?u_U#QaOgjHF(E8&}S!v3slrn>=t(M7s znAJFu{_oJ_YP}~6x-ne1hbGyaOqi(1Hahm7-dMD|dNrR^j9~Ing1N{TewjTm><&%l zwy9W7kt4#jyg0B^lW98}nh^Nfa zo-<~Q&6)Etr|i|9vv&5)*?Wj*T+^O&u6511cQI#tSDy1ex6Sz=#B(78uZ0lCmM`k> zT#U|ZF~+{7mhZPSc}|w z>0a;NKt~=@2TTSa=uZ8Sl8^R9! ztwoPhEioc4?+~X~NQ^lWJH~kZI|astmXzId$ebQAMY!t}+Cgvzw>X4FOZ$}h-hDcg z0nmX_dG_A@*yo6!n9Bqito{Y_JrwDOow{h}2?oktK>2&lA*jS9@cSOgQ$_G`7$g*E z?py-wppI+)a0PYb?qWo|FHL^Bm8ix?Q%J&1Qxv_lYC@j$AmRu=&JJ`Rbzj3-kL{23 z{f&P2x%9>E5mge1V7O*B*RUHU!*2_9rWT;|U-KLuQTRPUCU$u)(|bbZ{CkPxkyv+) zcT;-aBbdwY&f3Ly!i5R&YkBuieLvqKjgn-E;=q0}sCRk-%sJv;4spV`?}~nf+aY#7 z36`MElj_hzj7I`R_g;`})!m1{SbaY|+{X(Ut4t9kCe;HKAqgM)Qht6u)x*!oA)#0F zzGuJtGvALhG(k}iEJ(@Em))Op(Vv0D&6hj?!V0Tyfw}w)I8^Qi>_D4wlnEKI=Nr_R zEC=FE1dxPpfWwh0*?b%wdJ`#(CuNL}0mjbO%&eMns&pN8Dyd ztm=8xxD`h2dR)%mxYUmLE4TQ6R`H_H32W;=ASDuxtP+f@%$_ei{6k*V61 zsk)P(RQ-!oL%1|!nl#fdvdB8kGBVA&GR<}}?Z-u$16;ZjO}dM8x|?SrYN^N??>Vst6aokSh*I2$pXFK295BHb4|glS5aDrA|p% zP?!Zni6aA-`O*Y9laQ&M;!qR`oNa(g$rPwtfGG2%ni*i^D}aI@M$B7d6xRZtn7F28 zqA#eSJ`6+LBngaM2sx-B*D3vkDCDZ!&jRc##j$}M2InZRLL5Bh^k=f32=RWy$ekTv z9J0m$ux0Piphi7q0hj|FMPPBroUq9>gcJEXCYevI(cxD_zmH_%tGWg+ykSKh&n)P%bVaYqClwYs z5(RrK<8n{t%U}ZoDhW6}I@F;Ggd}9@8WkJEWQq+kLKNodsfy$2@Im9DCl52ZtExbt zac^>SyR&nfk)cio7p`>XK~Ztvbvh-Pem??oPhhKe&~WoV*x%x+mq0MXCkOScQBIOE zO<9&UnmHoDXJM*}VBs*=Y;c-e@z*K2-k4$BEFnI0@?Xxp;{^j}#WggQgfbWj%}~e~f=C<+e8iyQ;!TLh zmMR7-j1v?7yi2CKgiN3tP$xiC2f#=H^!X6^E-{7SzX?%7=1_}T!;4di7%Z9xm-}m& zd0~?>iYx#MqEZ};d3v0=?G3}eDtnx!X6md`1guIG9@AbE69Lah_JIqj;(J9GWl>dy z+#nMy9yeg2mZy+wU8i<+1LKMo^Hv7)9*_R~LJ2XrMi9;W6$6-Xj4A;GOr-%7RF#rF zGu}>R$OSeEH8*yW3W*Oh@!vPNn=$7n=az<4ASg3a$)E=tF}{gq-m}8mYq}~4H&3b} zbK=wA{esB35TxMp9^Gi-1FM0IMx{e&eCKJBG**PZ0#f{zQ04_DB!koh{)E~LG1p~g z(j+(WfN4*XaaLpJ?2n=CGi=u%PJ^wy6yu~E&`KSANC?xZUVv0u|<{DpxF)_Kv~9Xx>8 zn~jd!n5~Y{mHtj)znL%#)k{#wMN-TKkD)r*%x`fiCia8|Wy-1IQD}YA%ok%wg6c4WEa`j(b0IJ2^8S}o%zqM6n8Y)pLdaxFiKLFVV2tD+lQY zR?g8silFjVIe)keSr^q_au)Dkiz2K2{I1q=&BeF&io$!`h1%F%AOrTK8$(Z03BCw1 z$t$iTUh)8qVT>Qbr(C9_j;e&|z%QK7yjbvU@T)wwlci7=){+z5w3NGsl9R&WX1Sfh zxb@c&tD;`#i0b%Bha`|9lxYw#;A0RGjg9pwAJ-|zj6K`ejgiMo!oNgb?LG?wcedvUOlVl6&_OcXup26#nPC*>X0LexXSuxyy`OL1T&SFhY5n9Av@S%tD zX~;k?R0hp{_Lx8>&Lfb-LH~=gZber@GrXx$x#3$VZ&HD~iL)@D-<*j?L>jt;UECs= z*ZFI*^4oaid=YnN5t9J}pDcP@$g-Vy~vi6}d zC!zkk-qd60is&h>Xm3x$`HE)HB17-2?9KRY3}{I!S05I4g+3PD=J&ER|FQwYs%q^L zSmvtLzg4lE&hgR&r60f02bWhhA0gOCfyWSE({!_aGPjNPZUv4gNHCm!oj^ zhGFmNX7`R^_c?a&_m91c+`VVt-FJTUKMNrEfBbtOqlu@DmM}0(?IP{H%{hJ#k zWIy!h07Qg1#Al%cDln9hg}spkWYx=Ivb?c-QDpMn;SxRcFRvM5Gx0e9X@nS|ssO%8 z2ywmOV6|DO#SSfkO3*h3-L{IaJssl-82*qn*;@hWbgemOMBzF=&%p~N8 zE@HqZ7KiapTWFY9U|4OZXuzkefcBggyxpatHgdw*C^l@_-6e6_XL^becpBC-Kss^i z#v@jXeb)K?tXK66-RX=u`;52nq;L83d!bOOCbNH>ZD1Zt@He#3I#ipwGt`!IjzL*% z@}DJmc1dw8DadGPd8iq2=ia;Q*s37sc!5*3k>aokS6Z`(_^t?`n7H822>mz~Z82mn z+9_H;+ag9mEd=y3MsL*P3+*}wEEiWA;nPpjN}S@pajf%Z+*8^PkBj8<%l8xCJoHEf z@%cD(7X`M8n4WE~V4%=tDc1S+$|$DkH9_EY$^|OKQ$gX~z?PbEQ#@k@wXpoo;2=DRF-)I@wzLpHlM& zR-JL1(uqWD^-p{KRyC6D+RKjn|47Xar`y^O$0I_*yk#FAEfaOc_}>3RYHkGO<-OrP z+HAF)e5&=Tzc}pwM{3?}{JFjapIi<->%)3`xLB%KZqR$@)G%FW=^%jRV19Kl8c${D z{z>stzv&w-p1)gV{Pb`#UryB9`xJHQ;{WHf=hGhm0d#D5C*NWq`6qT&*WU&0dM^x1 zrnVq>jJ!R^504uoCxXoTd_Nok-$N&g=)iWxkNO{}8Af~?WfWeT{E8XNw&h{$!R)wB z7|HlpmW&`6=sfWY92`LM3JC=d00+2x}?=~NExVpxARm&@h0r)q#;))&P^DAQ80SS*!Ht3TCJshafNQzrMVrE0ZW ztJ!8}s1^vi6xYsld%aMX8^ zFtOM6Z$77Bs0CikV_HT^m%j^+;`o)mz+!O64B~hmXh-RgcEXN44{+vX84vYDQS!u- zg|n1UJ~^?tgew-&lmrctmeOdzjAV*0sYOVcvR+UGQL^|eOo`ab?E0`6)-Eg%fU*B- zngB4PS%gX>w$=^)(<&L~>(8@#>R-nfYA$~HWAKa^zY5zz?DJLYG!sw~xtK*(w>DE* zQC3yu<=D1vCFTYX@+cScgdZ)>7jmYy5(~l8!7utFP75g3?J)VGxbUWn;`tjD*Q({Fv=s58G<=V=o=b=HpiV zC=!~dc^<-5HUHH=w7n&Fd#7dQz|6$ZPzW~<@%FRYy0vdx*M@u2i9VgR0CL-!Qd(7` z9y*C2zO{QYrs|~7RRakr>H_x}YjR@5D z%q+=I|IASw{)Qs3R_z7PArL;3HdR2XJ7`t7WQb)94p4GL;!d0B4*^gaD3GN1j%=l0 z8J+w7mEP$`Zs8s6Te46(Mffq{;s-#A1u}Hphw64B=Ox*?77*));=jQw*+aIVKvj{mUehp>&MIMJjIKNDo2Emy|VZYMY+iHgasOLvw4o?s@6;3aGo+IfcXr~e^4GhA|vH;HqrpU#+Zwo zGDR-%sL-5;CNR+gOX;IPpT*RWNPx6Pv03^~^;-FZB&RMhSYWCZn?-|sli6xcN`7qL#b`2tL<qV)~=At~fA{yp>W2p5?Q zirT0NSkBadka1&7wo~n|IkQ2hub3~kSR5fpObX3lGU#=KB!nP_TE~nL&U#9(YHXwi z=OQqGn*gtJ#+*Ld*~!a+9_J78iHHQ_4QX{$!7|>)82oLdVs&MSfRi)`p|}?%a+RP& zWAk;cZ*(z$SmkuDj%vi}y*V6A>V#HTo7rv0Ijfrw3&OmzJK?2HiB#UY^dxiI-Ixd^ zU?r+VTiLqv#&yZ4I*G)Tynm_6b;+;jQl2+!$?-+Hg_Hr{iq*v?$~awl5o4W@(X|F_ zWL0uyKr=?kUc=VDuQzS7122AC*Uyt`HV(22K`q-j-5;qHHnlO~)m@yaYm+GZhwdyn zvW<@QvvF15-n|}wdto=C(fV-LqL_C_4Oh0U{a>b`x9;YxLVG;~<4*U$l> z9S0o&1&ZeP!3X^<7e$|g*Sx8|*Vro?(AFX1&&gq7fwQg}_hU-XE7yQ1<5wJfW0O%( zdW7&R_siC`C|ubw#;vR!=P+jj~5bcuD+(WS@;5jRc?wWMAeS$97l~AbQQmOdw z^l2_iaOU7Cj!ln>&Y!0vn(?{tZu61`cgDyd?lDDmhw%s1j)X#7a7*AzOSFm%p(KB-gP=~oUXG9WLWQtZ~nnz?tMr2k; zWX^hI-rvXqoTwtMs1mKHGLNW=jHs%PsG9XC{9-63@^8mN$}O;>ndW#PCFF9TS>1Yc z@1kPjlA=8;ozMX}j(f~RgmK9)o4l0{u1>_F^jZt$&$q2 zX#mGnC{!t9PbbjG(W8Y`qOU!oSy(uJV#U`UlWj?f(y3$0G?5+P085gI>KbCsa1!hj zC5RV^f8$_)i%4iV5r<-^;y-HY-b)1&b1+jTU}a)MzM?^Q0+9~Qqy`gU4-z_COtOoV z_FNOGxzV^r&1P1UzN>Q(HKXBk1H1mxNVv0Vf*=#voQV02=xL!0S)CZPQ@`V8CQ0C; zt-!_+KqYSj$%Vn$yN^>~S&|_|DMN&iWyOSR7rr5}g2_L}zJaAM8ioe zg_I^!9i+*sWeOjrCYNNYRwhKG60@5q2_F(gvPb`MVknJdWTO;i!%Aj!A|8)Sc^}DI zn#8o96l&|F23r!y8cXe&lsIVAzHCg_1;L54vl7w%&S6?)lIF0WF(x_hl&xdSeYD0D z-$2WO!ys`Hk604obGT!a?* z)#0ndU|fhmMn*%MKxf0u0FNP1g@*Gcy(dxNJ3wm*GX9+;YRgM+|E|Mq+n6?^0Bo1F>K9rO3 zoBaa|0A)HXt#1|^`p5|`aThlfYRZe$R_Xrq5F3UE|K94`k?PB4<*dHr7>!8%3GlF4pVDX;@qGA7tvFI z^1hGqQGhfhRPB&}5cgKC`7>6QUfQLL71ers6|?rSO&$37}8C= zN~YZ3O=pr8untvCS^8fWNC;`A0p;ov<%PMTWeWC5rXDtmXs{zqzq54Tki!TIG72~{sQAi0S(QL&T^ zXEedGDEvkHF4TcGOKZ7KT89T2jj>9u1|hnb#DQ^=h-2wz1e14*Bm2&bqCgC_)qwO) z?De@{VebgpErg^bi~hwd1$DtfFn2&Sz&0)#rEy1y1!&|60WerFPIXNqoTns;YL zc4t;~=UM|SJ~IH?s3V)Vt3A5Srap_ukcj-`&L9U5W5thsg-V*rpxU z2{8!(UB2JyD~ra~fV}D0vtfiVNrya+fb^>Y;Va6wgx|Zu+dJ;vyPn;<+1-L>`_nl|=U1s;L?Zb+pf?eVFKl1iJ>-N9!_Kgc6h&sY{MYjk(pnRE8 zk_iYyygle>VCi4788bLy3^-%M05xC`jc*XBH;7m>fP*-Q+cSu_JxK5|_>EwQm~V(w zZ;0Gyh*ED5EoO*5XNcirh>>8JnQxfVXOP`zm^EjZt7n*JdzkNIm~m#{%he*d>WBR= zfmNP>;$}PW4edWf*Z-!tv~osu{x`)%FlNFxW~Mi0;WK8HGiK8>X16_NZ#PEf2r0Hb z@)SBEGc%$f7d%+y_i*Yvmez_yg&km7V}TO}ZRHjqNB96LKolK-?b2<35=Zh6fP%~! zk0=bcrk-&1aL=-9CzxpVz_E|$nOsNvk2j{h(BDG`_>VWHG?`|H<8_YlE3Bnf@<--& zL8T- z`vyQc8zF)(G;$}RY%oI_0gz`uW{zRp?YU+_XS0wVp(*L1?K!jb_!I5FP+kTmjEvwr z?~(5cy7wE9w7&p1;(Gb(xs{&rIjVV89ItE5#cG&EtG|;x8Fs5NgfIKZU&x!*KJ;1v z(qjQq8!?=yBV?HoqWJX!%8z;u*oK>REy{6z~Bgs{rWK&wMGv%RwdaQVAC!fq$DWvAnl2C??;EfU>Wg8%U?_sY$mgM!r zjikbQe*J)*nB5EaiIiF%{b|d+i1Keg!rFHdk8pM3Y;tTZz^OOFPTrlMZPvSXwv%8n zRBpnPdN#Co9k+H~SKiVWi6_}Nl#sAQi@!29cNL~=?Z^3Ka_@#>hjCENMj3y8F49KC z#Ip3kdga5fM##;q-1Qv#jW-*s>K&Z)8@i?+TOG5gMq1lrzS|SI+f%*UGdtUJ|F#zh zca~ws&@RLH~C4|Lq`4Y()~{9Qf{@=k8wi{+Hsqu|L+|z2o0| z*57;iqPYI;9?5U~+S!{X*_OE81J6?cAg@FC?Sqv}L&fbQej^F!*hl(yumiS=Zg8+C ze1MgAuno3_w|jv9x%KVaA*sM2xxp93bx56eNZWTvzkA5|dC2_jh*jW--QeiE-w{{d z5l`O{-|msX=l{Pbt|$eiT9#-&k;aKzx=h;aY~^OYw`;jUMB!+><5$Bf;hSsg8_C3k zxo>!`7}QH~xVy-=T7%RZet27cw`qyDmwuRethWWqw^MV8Ryt@p_m#9H6uc@`PkxwC zkR>vM5S7;Xa1Ov@?q=yi@*lQnt!8%+AROTls{1;0nI<#bKx(vnX1C-A+5^&eWHd%_ zIm~%nC@~TuX|kbcY6=JT7tq1I)B!0G3R>&)4Gj@4Hj%jG0X%z9$*MC2Nj;D}9*yd5 zhIbE#j_Hw_gd9N-joAF$}@_zB%Gal@<}*#Asn95adYf^+mF@xYZ${#(=m^W--6 zrs!L6=Cc&Zoqat|iXe-o@r(5yQ1tXo3+-K&WNXCVG`${E zWaxde-6DS;{e>)^7BpJBz4zOCYiqIJ9c#^x^OuKq9pNMR6e|(P_=?{||}_NBK}J3iJO(agk(#0Tzby`;!>-osYqU zgxJ!U=;}rymMugxA+m2E@zl2aa@g*b42Ee zMLwRXG?~xliDzrvY_{t6lHS;`)G0HVK+ULMrjhQ}8{afR5op~T4TU1%uV$~@Y<-R1?Tz-FOLLFC~=~NabJ_aDk;EJd$n~!`;Cf(*N=reXKSND(o zZZG~AWmm_8MssZ_c)lC~i}T)Wu3-2#{tBmpnLAphxL#`KtJP3h7$SoYkF)66{PMmh z@4@G&R+#eb-7?R|-#2^X^H~2re|x4*hhOpkZM(GZ`g{~+7KXwGMhe2P8$?kAhm`oMLeuFT>Oi$<{;Xu;MJsSiC(q z#=K_MJR33Q+9;PaC&nVrwKKvtzj*mvCrNYSqb$!4L&44tgY8+_PlmhQ&kk_SWW9tYgPZExZFDAO-oxfbVXyIHT1u7 z@Uwc}P~WwTe}1@WeNkNB2g~L^F+XnZ|OSc9_NsLUWrXN>X;3B`ZpBo2P18beg9dhH+bDT9$QMWIK#; zTju^e?X=AIhvu;=45#d}Dvp=nu`W%w=&~-)596_^EHCQ<*;Ln$@z~b3pLW^S_e1mA zHI7qu+cnQi@cw9Bv*`ZOz8A)8-+5NnZQp%2#_Q1g=d|0Q9|X%hR zZQ0{AP881PJV{mF<2=nY&gU}AdDi1HF9^f$x+qE2>$_ib{3-+bN_z*L4BF_${u*4wdYZ9dzQryS{h{#!d8Q2{zG@8!`Ey80tNKeNk zWq4xBx(Wp9QmY9#Sn@=3;X?{H8eu5BIlt-TlgBoI7E}3nWm>6$!MIfee^)P*4tvLX?4IkV1}g zUnwT~Z6$ZA&8txb|S49{$srJ!kCW@$+%qwr(_tc8V4dt z;Zu|fb~wvItT=xq00(ETkY2rRf7sUGH@tu*C5KB0DzVZJ542#F{ZewUXm*+;^+5wi zRNS6o5Ef9ke>`rnrp~O)rfMQsV>=o*Tb5h#vnD&(K#&a8@Y*ATf(oxbr$+T{>!(Vb5R4*<96dj5;L|}^yMzMqDm+L zl05FYhqtVJueQc_BqBA>%d*f^QV56 zfQO^EZG%*1m3m-TLPaT$4d684kaTt!YLsfDa0c?kS0-ZkoE^1-byjRR6EnhC++(B? ztfwh4TU$e~!z-c2Da+Clg(D$#NG$hGvRC69s4c;pZ1;j9QuxFotCRv^%n9#Z3Lyf} zZNXXwWvT7_L5^B;pSsSu**=!(DeJ*#Bry069y9%XBP&0j3#D-par-Bf0cg4Qm4tTs z9iJt$;2Dnk{nfIPDBN?wy7PgjALnJ{RO>ZU^WTvI!dZ0XbrU&u*H|)2wG&>#Z#}kkJgg!@ib+bJOfy`bn!Gh|KaT zVQKnYEmo6kp)hciaF1q^qEO7}ki-LbShEtOhj7a+3OZwG?gDV<#I<7@0;DymL;XQd zLE!qT09>b`iKg>4M?Jy=dlM6TwE$7me)L9}O;M$zf5n^DCyuPl)F8V5wi4yA`6LPz zEkHN>br30+Q}|lm3}Kpplp8yz-}6%k@NslzzgWJYF6WAkBFoDATs%Q^J|6IPl;esm z#46om3#|wcp|U=xH^j%4#`;VQzx^}!$A!PX3#*KkL~JT~SR%gt*q<-u!|jyO(db`& zI*9E|jKWk2%yBFmWxKuYHSaADH8WKVtey`;5F3Vri5|y)@`TPHf!PlvPE6%KAsvwW zsx=wHHfu`)W#cRwftyId|4>hNJ!iE3!IQ1;gRuY=guY#Wd22~-D}0L67g`nam)PV^ z>#W1?r5de)wQ!QAvM&h!K8zE#4V^-r*m&Xp&JqR;}kgyae$^rj0yC8U~Ad{<5# zfa3Nk4#3t3wZz%X+b`Xizm7q?)gh!ANv!#nZ=+jA%Tr<{3s=6(Td*Fa!Cb9j)t-4C z6^DQ@_s%7l2y3I9lbS#i7M19Q&Ir#}C#;l$?*ossRSFs$jDy9-&p}hX7>HwTZDbxK zJS@>zD4ZgL+Y*HXQz}5D<dYs4A4 z9)_zM`X;~Jk}o3?=h0^Sl_UX1u(?KFC=&%)gXU#FmXCQxKzs&2zJs`4qNq$;n#jq1k9^Cc^<5GW1C zqZ*IqB)}^mCP)Q}YcEFYvZLzu#0i)1i|Ao8ACDN&6X^G#7?_PEpo-a6k0tFR3tV8B zk05CBAzN;XIeds)&A_U%OXlK_@uQ8pZX?JB#=4P9n52w*uyaoX#!XX3z4as%pNH+( zVSgeLSht|qJWCp;jCr+4P6m(T&`4-3jysc&JM&Gb9!rAkUE5|!Cf=AQ9Lc3Z%}^)@ zrBsB)53D8-(ZD$tk zdb#dm)1D~^4SeJ2+ZhFYc@TqT-D zMq6V>D+p#9OlLyvWCsvuvLoaqNxFtxrhL_AIyz=TXXK__Wr|#95XfiSN2C)7Qj$uh z{e0wjkL5B-q*M@R*FNxP#lD{1%jcCKZ>wScBH#uk1LdbjWP7h?4pyc%Tjcv6W(Q*8 zb6us1M6rM@WA?!5UwrcYGjmJian;utMmY+auCw#U^7Gg6r*b6Et_ouT3Y&7HHqvcf z+X{#5^GiyK*TeH4EA#)3=Rcq4L68do%mpxt1#pf92=N6-^#v&N1!%Vgn9v1S{X|(i zsBu#SMRs~FyZ?J6ewkslg3h`FnIB3Cp_ihb)^BV#c@x;{_{W}Mf7@6zzzib z;}*#uX$0+V@?W}9s7cC&u!T5F%>(;^I6N^0O*s%#i^f?@o?s%vvQbW54N5?Kcv}in{>G;Lr{wY^jVXA@Bp9VXU*9hNW;=tGainNN2)H+SV=)Y2CjhuM_ zeLpC^y5WdLl!}FTf7QXWyUY$n+>mSU@HTps35pm0saEbvSjEO%Z3!Sl;(>L1Th%J2 zrmIt%9 z5zJx?qu7b2ZcJC%4&~Z16W;-O{U(+?))j0Tk|B%e;71TVior_O9sR0@G+FYt*(q}? zgsaj^$k4g>(vMft30VgCG(ylV;%sv_mboe&edlV_pyNH?Dw*<_ z0RhW3Pkm{B!kFr(tlGDowTo3E8k>>F?4{t`t@R%n_lLcUzGCE$E1>{&CU^wf)z&>I zVjS~5iEZ$;pgr7L;-7dX6NSsxwVGTy?HBw8{D;IKUpVPlsss)LcLYsJ+ek=-Y7_m4 zGZ~%42&3KK2=Je1VN0K-D@7>RQ4#Jt3ZJlQ^D_* z@jE8py$VJ%@<)u;3+@N;D1YJVMqn-(H=dBrP_+DtEoQjyCkrDc%VH%j+8a+?mH$1L zD|H-5yup_{AH&R1qlLKDwG%&~g5a7UuZ|SjMO>U@{*o!&6+u*gztv!6kPchuEmPeg zJ{Kp&Og2R!Nv7Cxk+1lTyz`p-QrwuQYd!{5AHf+xCasWvOqF^=m8j?d{7}0pz^oK! zKo?yCCAJ)a z5X>{eF6`Ul|A(}D?5?Y8zy-WxHg;oMJGO1BVPo62ZQHhOH%6Prw$**|KI8m>GtL<6 z`}{Vs<~{EVo>@N%1V*oJPliB#W=3yaY^`C68&&W;saKn7?p#E1K}I z%Z4m2#*{s!P%$~BOY78QIrKj5x$LJ7?ia5rqMgxn#tO)$j9$TmB~e3&IjV~FJ4;N1 zZTB;AVv`*)Qt90F;{xVYN+6!s!(eAs1v9N}|$T6jc6Dd`o?vxIO zOgH+_zoV-d8>kP;8}M@b_c4i}zZLM8b2oLcP6b?}R*EGZmVaL^o6}|xn7)I-In;;9 z=0eVQ%AwUmI-+~d4GG*L*-JgiNhGo4?IaBn=5*oAO1ll=(Bwq7HS2@-vC^xb5fI`L_%7 zsEKwCAROd-8uy{}v|HMFrxH15dhJODgY4g9PK==A6*JpVI%hl(@?A^Zvx9TnvLjFU zop#Bs(2OiIQ8v$_bIQzpv6m|ACd>DKXA@JaL-0f3h85Ph6>> zaxg0!uYkPvAn$*xK;NAf=7|49seC!< zh^S-lXnp>u-GB3Ra<*piWI6w+n?FV8{sc+n()H^6!@yC04SBcBRp!*;UCi>^j;*++ zy<_}%?}tkhoV&Z?gVX$(vHi?x+Jkp_0^ao#S-6`zq=#*Mwsp9>hN6tm&b7&oyD#Vt z6oP#p@O-b7?iwABAL4!+IG+^e?!lh!!Qb~pndzPYa*HN+?f$}84PN5>AJ7b5VJ)Lm z`lpiw9}?=FN&L~G?45$k730%iEuKB|@x87t@U#4#bJ}G}VP=t!uQQq6x)Blc1PQYJ z;~L45E7BKgkKgK^-|AuB8?fISsotA7-XCZ2z75dG;nl);`gp{Z?`9s zY&w`W1M()NVjd0xiK-fZ_GkwHKuRkrx|eKj?;UFLk1?ysbyvxlz0uGP94r&*ls|sl zR304selfF83U!z`t-9b8G4Cv@mDAvgx$mk!#Q^h=k2t~r)dmE46uG`#kNY3c`kGGx ztS?nrm59*=d|k9qkWB>dQaWHfF&&HuY4NCE0Q%zh>Q38t1^xWZa!ET3kM%*z(_Rv=Rg zPFP&GdHbjvXNOr;a`VppaPq6To?j-F{iK6}7acmlml(MLDtoO@o~7LgAm*(bc2#Ba zXICM**)~7z%rexy{QmkHTgjmrXwD!m6?l-qChP;Dj7g&1whJ9#XLh@q zV87@J1F)5urNYz2XcBAbe1Ro#p22yQ)T) zl_(Y%>+`8q=!ss~p6wOk2}>l*h$T&=OYp-JD;nxHl_CQ~U|KeP}R@M7zgMx|#Z^}cOY3)MqbTMIvA?^?IhUjsES+YYmMY04HY zX?5i1;C>#~)G~+R8_lJ$U*;VowUUT#__?XpMzJ(Q4MJh(7@9|!z1VW=ziw2Q9Lw-I z`j1pu*JKyUR~V?*FqkqWV@uFu_18&Muj{P&J&|O9U?tl&G^x7WwuOCS zcQqF_Qa#iZR!a?MO9>9)=lpH-Zk?uP<;qq8a9zq>6%0h4O`A5OlbDmWK_#sd)^`5n zI;e2MsND%GK5Q0oE{7=+a%~?P-qCV)YpLQiU{^cz+xemK2b}yLn{cIW-0I&Ds*+b- z=WB`pIwP_JkAp#k{KV15@;s~!gZI2u6^w~1Zpj!;Sitsb)NF!ab#m%+dQLgRyRO<} z>WlQWdmOKhtADh>$Z$8vPmJ&THRqj^ZC2+iDD3iW{^DNM)m00Y4DgSC-d=WhtM8v` z>KfFgcOfr=DJ2!p^~0bO840NIc5gIGAq9px>T0-s=V{gR{OJKPWZkaOWV zZM%KO$cD>cLy-bu+IH^x$?%}*Zer-!=UVtDMVB%N5;PL3e$>_45ULUVe@^b$@Y^#K z$#i>K101k~4vo?JA4S-$3-I(&X3DOUDiFtOV$EU;YF_t+8vzz+)JTaD3c+P{)?@g{bN z;V^F(Wf35oim4|>BoPZMQtQM}rQ|M#pM^S@UB=Ldj8we&_{SYn^l$}AO(hgut>Q=tBtNsp#bod!lsT-- z7JUvZw2Ebh3;LB<>5oSYShu7j2wj@;|FKPJoUwwzqqG!2ejY$3+g>oey3v8RjDe}L2^v%6B9Q+>&+P(Gm-24KyeiY=%)Fw&fJd7)txz224dR4?Ufqpn<~yNdP-cqUh(^lLMb>&K+wSB2@+>t0w#=&GO#06{T#()*x6h*;oAE}9Ge#fX9J?P& z<2KHkPiGs>bAq$w9*~#8hi#9PW$>W%9!~UL0%OH-rN;qRc571=cj*p2Md+ zoE+6BR#pNp9ja*V1_M7}Fj36UoF|WXb3&lq`G*cr9(T@9qTc_e$Ba$Y=4tibe)}G2ccP-`pW2+ElI8#pUS}yxaC#lw+sW*46)cLX3 zm@u4cFLkZ9^|`8kZ&OrG9mD)J%-#^pa1k1ltZg8@-;hjjKETqwG3V#jY_5Z(*-?ah z_|j@#B@u{Qcq0CL3k2Sl%5bGFIlDg7RR%+VPDx0-#cXgU%#C-@kP*}UrhMhMMe>sFiskxU`(TtPg&kP}67n4Ya;#)Qu#*OP= z@@2$MKmvVKR#pfGWjSt;VYOnD!ssRs^d+WEOqr?1cue>S zb!_&wBV1>j@RuH+R+d|Rb)r!Y(%9_6uia&X|InpkjgNHFNxTOw|0T6poPya$gYaD`_71d)PbjtVrKDXf3Bkb~(qs2M z9s>2nq`!`m`8LuXn)8dXa??9J{K^kdPvw`(T*T38#N^Od|TG z2;Kx>0Z^q=jIhRxxEPWLAH)on3)OIDWc7$uAY~qVM=@DZMJh&!iXay%jMO`0@fk_w zQ4MaTmCRpu?fD7}Gc>@mpp3T1@GJwH*-#A(iO9l8xgG~<{=(7xny^IykHshw|41P( zlAtFkLP~^5F_glvElB&O@H>)}X=om6;hQoF`0s5A?wM~x%8)(Oe`*lHfvm+81Y|lF z;gPQB&qjNLhfDGY3347I-=2y%-!__*_Q^P=?b#$*j&Rm5jIL0iprq!ZIz!H3H#z6_ zgIGXY0O9W~%47Su>4+?%GAzT&T#8pVVK`HJ-5&U$g<=tfP2CkpqF*@djC1ZE!NUPa zg|CV69@`qrvw~WQYcm@nVdUEEKRsG9))9k>Q9|X`B_w?yr8G9ASwl%jVU;7KU-e3) zj()nxVLaZH0HiP;*>K}8MFBSU)U_=`d#GAyeE;DSkvHqyM4MKcYaN+Sfz- zPPd1lbbZSef=nmGroPhU&**hJ{GEn?&mWWUf4QBPc2x@KhVy za!)67cb?-U3M#RPa*srFi@b6l9y7;3iQZ-FHfE5jzmF|M4!!570-Usc->^;GsN4pz z{NXk2D$N5pPAttRrOK#+hYpN9%ROk)LOH%DE=pZA>hNF3&O$3%N7~MmCt+46!Cn=S zb>-4Us}V`mi3~@Pa}}|rRAy7!nYiiMi`4OWnX!bMQ9~!uzt(OaDiT*K0-Zow)?iY8 zg#W)3SKd)&-W5&$Q)T`?ngZym0wmhPCOv8l+9E7XYI>_8jw*eIvqGM#5+2MF*0U0Q zD=u}b5@Xu(v&1qTtMV|~51+HLsH#e6ME<6)vC6cv+B*N zIvx1BuprtC+6E1o`hQjpSk{?Bv?MX$l~p3ic-75eP$gCX68iHHf$CNT$P$f!7Fz34 zR_j)Mx(*JpHmma%H|wx4x-Qm{jwHJFx3h#Yx*nC0t|Sm$$-lGiF}gmUk&e9qh=%HV zzhwwMp+2MCeD-tplRx{)kFpUH`Gi5XTucnK!YG_DU zSj`6NgnnLNU~H;p9=vu5Yh)HFWP-F7@Ib#Lz_1EGGCLQ`xE(h47QDiGIb+7KP-XM` zBuMDQW?i3Q;~)KmhQb;l10?Lguc*uQHilW58l=}?M(P?U#E{>A82;qd{5ewDCai@+ zWL(8!M0vD@DkSE?*&)Tlej~GX;7|&R-*O#v@ONqMoCToWXAN=W_Ln+{V-81^(DwcxQzs+yDiQ;@ zA|a%zJ=D!PgeEhDt_rku!;*1*i>H zq18Hb7msn;Uxyzt_-ybq*c|w#%&-A7a8SV@YnU+jiWn)EZSmZQv9t`s_?rQPzN{Dg z+i4FyOx@~hI1=QgI5m7d3$8ef>B)4I#s+Z|k`Wco)zFs#NGx7!>~IuhpGNKN(0b2N zbo1|$DB`%oawRrv`X3Hh?W2P0D)?)AYrO>cUZ?mV7-@P*iKHoWNEi~pK|BgM5E4GD z;oSYQwcSX1iCDcrtG4QZcvUeEniqeo17Lw>tnGvV^5Lhaz zJ9To?XSuki!6=nKV?QqTzd4JA5Iec_+>#zor0eC9nG*-F4bRFsF@}dmAvWdKG?{yl zt9B5QvD5TyXClw)Ro^)7dy0LVd=F~YS^k){4gkgz@@ePl} z*p{KJk0x_^S!A{EqO(#s3USU_z;f#F;TCv8NoZikpKiqatQx4V zUlPlHir5c|b;xTs!hmKB%` z@0J8co7Uf3g9@<-AND4fc|JHHa_kYE2~!7g5tW4}b^JCVwwN6J1LN@KC7VD)wsBQ4x1SH} z2e?tgfB-{$X`O8-JOn_$XW_CGY;MRrRnfMB_w%WP`)#hP#5!6pMTm9%=^P8$e5<=Z zh)q)<#*WHGR>yr&%)`N&Luvw6X?s+Yep(Z)B#10@xQ87aEAo60Qq!X8yK1`#+q|sB zv+pvnnLg@yS$x%ZG%Etc8M+VuVVmzs2Icj&<{-}{!7MmJeltoD4O!qMdWKS(@i<3B zqJS_~7vs#R2}kGU(jnp!fn@7u=E_)b@hAFWBgd7Ulze$2pHduRJDej)4PyZr&S22t z7Y!Sc(DAq^tv@53rZgb!0t40ZqCVjQF(pBVkcTr(7zg1_yVDTgJgVnTPx0O=xM)Wqw$>|jnRE8xnc;fNQ0T^bWch9A-9{DB3S%iUlC+zl=#XD6 zdf-)vQ)o`#-R9jj?q~vqI?D7fEZzC59nf2xt6ML_Gd=08LyTY@z^5aI^0e_buwy;W zD~>-Khh;-P$n>FW2UeUySSb5Su<2uIBR;2@tf95Y6f~PdOg#Qwf1w`<`)$8>I@Fzr zKOm|{#bGZ#g)a=ICm?=taQ-6{2)iy9ir3gP_rm5z%{M*}*XTSdE7fbB(T3}PD1`X= z^}^mWjb`io?@E4;nosL%MsL=H-inx1jNAK9Cw}<}zUV>ror^iijYQENn@cQ!4*{Hm6!&}^q3{m#!}aO5~lx5<@>FZ7+h_sa5g&h#Go z`k}>r|9G)n6Z!RR?P?a&B%h9j^LfSxAzPDYmD%St*75w3{}0=eZ2u#QoRV-4xU+rV z#>o~U&pV}9Eb|+!4-)-3Vz*)wBFy$AumwqPVFX>7uWoRK5JP_8@SwUz==R@IgCLSQ z$frhZr0x4+KSm&;id2yenIlih$0n-Ks>4N$(AACv3VfAmhEDpX>f1P( zrm;gSm85aP+#b{sT4bQJG@Gwp@-+7;;xAc(X2hk|`zZ+YG3>$;`KhvPM8%Q4gBsOE zanzoB1)NLKlulCY8T4PV4Ry8yP+1 ztNSeYo`Wx9OD4R8U?6zzPSAPv%R-u!Y+vafY2c9`$EpJ)3a%X$l z)z4!oTvgMYY+AubP;T9JtwRTVJ*2wJ4j(&?^0^t@Wjw#>Jnzf?I(};?*~9DmWm*kz zqUVHI8OHx`TQ4rix|^L)#t(plHp)E}?qmGC-8}^Nd)^|t%LZR1fhh?0F95~sznzx5 zLj}zBCS?bibzJ{>@9J*vv+7|dps$Su9xUo%#M$;x6Dzn- z>cm4(CU>xmu}0Cn#GPlgCeSj4Tj4qqqGh-Z;V`9!@idqzxE^wlR8Ke=VE={}Z~aBt z!bW>yXr!0-k^1K%$qqLa>I={^5rIY(Y(fP9MMA;> z>);}r8SR{Tl6D~lJ5;Bfl3z_MBpyARgllNr@YE&#N!3~FG3KLUb1KvZKTEMj*M-<< ze64g>=5fKMoi;LtxQL6qg?CjMF-89?KIHUm zk_ut_1-!XG6zSp?H&jr{K)l^zN8f|jWNWrq_aWm40wV}vStF%ObWm?kQ_NXILSQ5D zX{S|Mf4QOqW?v*JK-2*UdFVNq@{?e2g&k0|6CNPz37&G1!Ds+-L>9?77T>01U+!}8 zXySK164I$|L>Ce$%mLw3Ct*OurNi+B*=yH^N;DEC`PjP-BPiCS=QD7bhE(22=-7#; zwlXE0+Qkx|fpke(B^L6fIaj!nJKau2$i_E>28fQvoq>jF2=EB}_6JY1V@|!!sZBrD;)Pz%y=aPUL%BZv=U*c0+4;nu3*ew1_-DU>O52b3}jDYe=rfjh(gJ|L(8;z zTx0zmrrGrq*boOO3ja=66$2zuZO4-ngw1&%(2$uV^ zR`sFVtP46xtX)dZoYyqQy67?A+w7fpc+MIp-0JnJRZy_m2uBZyT5?5yTCa%Ken2Ou z$noPyDJ%h-rsf-**SW~wdIru+M;9g^C}IP!g>=U9QXQT5cdXo~*aVGflNIVJL)>`u zblApH^Oz%)(MZnL)Ne=RO!WP;IIg|;4-O>4^u}mp79DH9tHn0bHJoe~t&sCr80bV4 zzVmXiW;qs!ksdE3DZNl*h$Ra%+oZ40Y49@(-Ve1ED zAXUI*Z?(bL7+i}fDXx{Q)XL?3c;#;QrN+lrV;T>VB8E)w8CaJGT%k})#s42h1MICEz?9d1y>@*{@d~3Azk5 z%qke=r8|%gmX@#kW6BR?4Mholp&idjILhi(hRKeze4hx>mkWdl$u7!AxVHtlLUll8RG}xN*fRY}+eGxQ?)^m$GUg&Nd zQNWIwc(73P@fJP|_nzoOSV8#Yynlm0c0n|N2DUCamWFOaLojrKgh7U3#!aF>J4J-S3v;#1g+%*Nv{M*n0Oe`p?_D37kW2TaSaFt4brTo zf@%$8>1G8ZH%p5b!Y<&w5L?}@1p@^2uNa+;cdX-={8oq5XJRRLY z3^VOqD1nktZU++hG7_K>ltBy3XiQ{aybY*Oj>ZKL$gxV?Q{<@4H@DO*u)>bg4+(G# zH)~=G06{Wzb7>*2MO2dzBpL@)`CCX9RH{7)Oi32R@?qo^6r3N*CPL&`?{!GlsMxZL z2&s;^FgK{4EZEKUA0V$pq;EfQx-GO~5^ro0p;B3JDNsMgz%kPuJ{@kr8*d$bOuri` zV3eYwb~mC+FXEOfL$gD1)rtL>Q-)hwG*d!B+Cs%$sfQe7!PvR|ZrO;h?f^U5Kr}uk z7s7($e?uH?N=mapN|pf2EslxXh(~Z|*b_<$x`AOz`U)q4!Gw|tI#CFlk@B-@$+7Yp zH<3XkQrO;6Iu*=GL=)`#1#CUnf zc+1N4=*0Be#02`hV*&#*Lpd|UH8X#^XGR6GU^=tlHnR}ivycE;DV$kpnpqj{|3`7L zI|I3!f&5<-7m!WdnN7NxP5z!u8OW~g%&y(c{^OqA2*_dT%whQj9Nlv`0y$lsIX#;> zeeXE~fn1@^T#?OOvG-hwK<-p$?#yQH+^--)QFleb2uO6gYGiIBgcVycf6y3O+guzBUVf-V1`U2|>9C z!LGt>=k1(89Q7m*p&%qH-4Yt`L4Nl}@*m4zHJ~Jd&Qr zkZ*12Szx;gg6n>Yw1OSPgsp)&n8Z|Drfaf9fRxIEwL!RZQKVDNLX+c4i&r`a_Z6yC z{?1;G&#rO`qe9WDLer{3<_biUb(%YJu%N79HBoIncR(r1?pfw#I#E*u_Mi=^2FED? zgVj-k)C|~9`Ov*Ee$EESu`@}%=wYf|k~*Kz9? zK#v8cPEGFBbt9v7BUgXgssp+tOevCW&#oqU_Qhw_fUt$>4II|3ZRujG zGzwPMgB&*AmAa8Z_$@*FiHAdJKMiuFaC%WP{r>$T3f zwGW@FeZh&1FZ}`%6U91}d3g}7j+s|wyI1YAd8CL}t-E(;yD6ETFUqQNzk&C7+hCI`>u92Ga zwTOrBlX0TkW`^*ckcNSL6(%{C({tPSg(fphkOGv*9V@Kg-*)Pl@OBV6t=aOJjl5Q< z>Wc%o$Ag>8($D1pgO^aZ6mZfzbZukF$u%lDE(X38q9EFErhNyT%=LM-8M zrB&T&kOQSUMOCazRTy#|<{Y-K_+4?ENAwN{b<0b1eR_oOoX=#2*YJxP^j^Fkl0#NU zw5!LK4!A>sLfoknF=QL=%?laQL=-q|Xqk;Sxy-Xl#}8yJQL{U8%Mk$Fog5)I=5MVC zRMNOyEz&J6){FI++dB&7ArFB?lDxG&6P_3Or%^(@Vva30B!XK3 zYSEABjWIs25sVB5A#`HXML0|q3i-}NT|5Gy3R&`^`bRvnyAll54N&NBCKoH65(PQL*ua*5A!o*VXkSVY%)i~K|aeX zfNV4sW=SxKr>ZxL4bBmN3m4TExpp**>HDwm(uwj|NhzQoc&Yb1n9-XR_50s;@ahn5 zc==SB@w)U1yb{%4Q@+2~KkAg(vo!3Jl{qV&rmf$u>U`cT!WA<&895LUWG7O*D+Xoh z6m?Z`msYCtH1n3ia`V;{lU4gV)(3XgOY^qi-nEzxL#w~5W^9%)p;xJPmzid_%_|WR zWw)D%ciwijkTG|l#d%b>mlN^I&>6w7$0wDt2)ucZlMWeByQHqmsSq z^osL#(Qudox66CCgl6>@;+B1NTde2| zP^k_+j}F{tclvJjzh@I!FAUCS5AUc9Jwo;GYz={!@JD7d2VNVxRq=<=TSk9;j2iKc znfi=b_KewnjFrcxa|Ywy)s6e=6%#bOB`Z#(Ytt;3PY|JdOwCOiwpej5c|57rMg*fk zQV%>Vv!(U`!_=gu(WeMRrlwDGv0)|%fYaQ=LA#8z-PXZ_>EIZc480%4tQo*3Z8Q3H zQ&wxXSs#P3C<~A6@mr+HaMn30n>l&f0ll{R2H6ETRqt1t<2%#*-#*iPC$p6iDF5o< z;d;l@R?VPnGmM{shwWA;Pkig!6OCbx@NSv(1awtL+3u7s+ZXoi9c+4^0MeR_CY?RKr3riI=sL{4oo`=qSN;(H!y44k`@vH$rXq{JBNJR z@or7)&eP_eKpX+#m~l*uaL=Z?v6G+-Z_C0M&JnLk%n=Dk*cXNhZ6~~;U3vYy{@kX& zpA0wd{H?^UQlF-8+E>h)Bp3?2SQ)2?SO%Vwo*cnqoUSLR#$wsKA;v55U6p>M<@gFz zzt@7+20u>{!Nqp)uW45QNM=L?roj9dPI_ey`&i@=uMb78LxZpF+g6f?vMl7R(2d0~VYVDe<6BOv zt<;p)(+tv?56Ikf6+`v|503) z?9HG&VSh~bzX~vSqcKe0x$uCP;z_pj*Oy&IEv@+BJNT{-d}gTCf0j z((8W}R^d30Oz5+q*7W(Gl=g&bZ~h(#)jbG-L4~j_i6U#WzaaY>=y0w_8!0c$q=LV- zr2!6cI2H`m!3quw{zq{+@}aep#hXTnQ^$c@ENO2SzDd(5I_PVAwWz{N6-q>-*#cmC;qN zzz`d+#>v`s2EB@2w2TL3(HlW?oZGa@Qnr=4YzSEAv>~4I)_1*6O`rLTDGQ|lW^1hM zhTyxS>HwoW)Wk!tZ(9_7i268{y$dQmDE*$9SymI3UB|i(km0T3+?tFtPSfdgug5`h ze=Pv1i4k9qM znsfT!$6WgXx;ZYhgwYHvD^~ThPcr;uoNP5Z?jQKu=J~V04e*(74+|dc-#q>@j#qQ~ z;TZH%?>bIHxwV8}KX$An++W`BxOv)mDn-#TdK~BZx4iCsn&rM6nLfLLsv9$(AD*_t z6vG*Mw18LbC-R|$*T-GgS14DO>GE&=IsI{7t*(l3jpxPJwO-Y2<)N?lJ&KCHkBrjs zAL(_1ezs?GoPzI{g3ddxm%H{cy^m-0JI~h~-HI0HNyneP7fW?>Z(n7)n4hmF@AG|t zHpGAdRi(Fo>D^O>^44&A#JzYCJuSQT#*i2VP?PL~Yf$yZeI|dv%#(x;Z|5DK&4z4q+VKLHFZ{vG+L?(N}hl@C9E zGRD}~6mMr~36T6*2;u({i{@QfFja2jL&%E>chXx$Xq_A^^-9RDEhZ#oeyQ{goBZqH znv~0G)K6P3p>kgzBptg=F2N^(LDrs9<6&_LyeOeHfScBua!PBdDP^#aoYp&YO7FQS zW%7rcF@$%{7@;p?iI1H5N$Z?BV^apqhnuyKan4$V$WaR+ zv@V5+wiTj8@QV>LE=3r%72-@$i!oL%#rT&Ml7jHR5~5r{CFBg1(uz^PQmR}^>1``z z4d9nDrd-O{YAfaKqn2{cT>hiD{Na}i;9V=k7^;-xqn1l(T`T2mt5oyhS1M#&tJG?% z)a#>GYOGwV^)9P4`{7p`qFif!GE{5NN3FJ0xz^g)R_pG-uXRkh*16PH|G17?>p63+ z_qnV#0Ku;hz`HesFw__!N3W02x;4hw)|e0>Y)r_wHKo+nm@-9g%via71xRbm1ratE zqTE_a7-}sQqc@kU+*)gFYpo3sw$`WI+FELBZSAACw$I$!doFA3{SmhR!n=2jFw{B5 zM{gg{x_8ceB~0@XexJy=cP-b}xzpmz1?Op;Jfsc+BY)Su7Tyt#|b_7SW3tiOxZPRXJz9_~J1MB+2ZNex&tajM4f6TW% zWgPVoYif3rp7;Vi76`uI0`N)B%-mJCzX3excxGc1*m^M`ZCP2QcG3v1vtd|@Vyt}- zppoIZVH~{qU#t?=u`)s;rcsUc=+*`hjIeNEev9i^7x(l6KrlsPK7x{5kV%K4t zbqryKQ1g%|l$94>kDP?ybkXgBMlvGyvnQ78IvnRdjdQ}i7e>>X3w`Ts`Vjf(BUV$U zDe|tXrun$F+#6S$StA4{eXpDpxeZ!`o_mse&O;^O*Y|zX+u}bL0~5PiQqi6LbR}=h zJiSfyXN=mGy8h}vdk^{BJ!iEHohk@wBZnbT%<=Z_d$91$tb7%oI(t5rl-Kmf;(H!2 z_Zgn-dRO%Oy*2>1Sp@w%T;&8Emtpu8b_qio+-J|M@BhAdiag9+I^E@ynIBdPye}Ve z)x5rlPRJti#rGlqyNL$9XA0V1KqTA16u!waN$MH>bD>^GDa>6rrd0#UVPPAofBR+2@zH>(xZ6Yf-_x@HPk7gm{f`Ri^ z7MPLbV?0bj#R5xq;#Z-Dud2*VixZ@L>=$+rbjbnBZV}8G5zKwUR(l}xLrpr^MO%<7 znB_K@7&SO&IhZYx5YpU}$<2etf>R_TBnXP^iX;RzgqNGt*o%cw8H^@ah<2QXJfcWw zYTUDGBP~_okJ`#KO#i*1uc_0 ziiRY#IwL9pEm9N`6j25%QnIcctmRKYE!eV-S~U@kzZg~L5uW)Hp@9)yY!RIk8r?Y| z)*TTwtQ9tNf;#vTBOn#ig%i~ei(d1fJ-zOmTfs6u5#@Ul8C?-O1RniM3LTj|ZuT&? z7*dkYCC>05@{l?pE+Y2PLvlkacJVRpG9qR!gI~BL;#n$zuOc26SM0MRZV)H@emw>; zGV(wx;UqZTTr3gZGXZuaGP5);o-5&$I#J9c7AG@d^hBR1GL|GW92zbG%rogVBMF5@ z1|m|FtTUFvQc_4tpEfd)gN98qB4PU_jEm-n0B)iX4WEc*lID6O&@zQfG?}wg!k#OI zAkr5o&8{2?Lc1DHjo?ZhK1qRo4f=ngxPqlKLM=1GBfrG)jOfXX*wc)7xXeVF%w*}z zRLjit$jr>j%FJ$gIlBtm?_E+S9Chxa>xn>}KigR?F=6 z$n4I_?C#0z-qY-UxST=#de z6zY6#VN_jWF9?|eQArT&a3QumNdeTb8J@$A?xK3)8Cbp1X*qu@Ek+h}sd85)XrL3XQ_6NItM|^VSfh(W)!3z>}nS8nwvs zwirnmZ%m??eG{Ei#>R9F#k7!|?yQ*M4V7uC2v?^B#j!*x3SCCWTW$)au7QYes!)Ws z6fKdJ7_~&7r9=|k0x7XnM+TjfhnyFc932d6WAzIM##Az$6t{g93$U^^hMwBX3z2{X+Fjz{qTUA}-ZSdAvb=a+a zuz? zqVTIE6Ah@f&cW!1u92b#w%&QG2|}A2Nt?-5tEqMCcV%WfN$-zvyJt$ulk|M&?lvM} zIu3K^;-Yq)o2JW+_Q2|P>T1s*S^ThSs1WaVRW%;dhj5VxG0zqWGxW3_IDuqYPIcM% z0V$EJ=uRFo;nefo^lD%xUFQr$SFCpzCvI1sb)jBJidtu4vv+F&TW76z`%;8tV|1&9 z7)wugO2K<)XE$mCU02q6&}Va(F0f~$yVK6OCs$T{z`AQlw`*=%#AaD&S+`qgqIY7t zYc{&KsXO6qzw02oQy;fCWx8+wy+`|{*JQZ!IJ$M$yZ1^qbqOJ2dMovOtE(fr|J7QI zVFSc3iqn5d*9V5!w=dN{$eZ|0uNS#y;Bk831A*t?G}_K|?lSD)WOQo5auoWEq=~jT zIpUB5_0Z}2AO&BzOUDom;xG&SFi>uo-Da3GW|+HXn0IEF|6*7WaYUGYL{x4>+-5{F zW<mXoRCi|d$Hk}t;+PTrn2Fq&sm+*q%$Q}( znDxw|d938*I=5BFrlBtPpelnwPs{0cj#Cpqogdh`27PMLim)A3` z{acgpDNK2jMNeT=Dk)U|ue7aKu%spp*`N!3(=?MZ#)C2$g5%f6D)AmD7HGWdh^gF2 zd1iwxt{fEyz01v0{S~ zm)RGOOxV_v#0c4~fK;Qr7;RCv5eh?N9%GDz$`SLehN^@E48v`fRoDoo3PpDj0zHh% z;SvXfW0@Td)T?srDgq%Lp>+C-OS%A}TZg^k1< zt15}!Kwn%9VP*uZD)}PHHe3T#*AgOn87aNNNTH-9u>odh#F3ob5F;v@Bwrk}F4`>DsW_nf#HvIR( zOYfh_!vDkDJ$7dTc5Q;bW819Qsfumewkvijwr$(CZQHi(R8qm+dEU3Xr`N3cG9PCC z#I@G7_qoqwPq$zuyZ)j@#C4bwU5xuHpf4Cl_6MvQM=Pb9Qzdk4_tHiqA!w=JWcoc8FEG_h)ztbX} z$aad$kZv=CAjH2r=pp7010M*^c&TQi4w9>LA^VR~n=z6`D7_n281>9{6fyC!P$2eU zS=Wx!JJ9wW2%L822~*qBnV|7(sgLSb0uL+JpR`+G=F@^;3#-j~* zrBGhz2aNnr1WVU}3aI$Rm^6vAJg#V_g6GSB(5}0%ga^PFQ-~!UfvbesWCc^?<=GeF zB&Z+zL=4|K-h-vsW{gr^ha@p;@|Iby`b)<789zZ3$iF|(lrU3gP)ig^$Ez@4)XA!C zv1E8bylj_a6fL`L{a0=<{1La#r#H*8r_lS)|JGx;exX7LLc?x2$V_9-+@Lfv(aP~* zYYTw9^mx&dlD^E02SeR~@!yVI!-Cn}I@AQc+#IPpE`!|@csAw(kZxGNm&%YeY01Q3 zEi5vp_cH7kyo{(@-Dfz2`8}zaYax5KW5_bfR}A$wIE>h7**0oS*x-dW`#R`8r-acY zts61~B8H79^2mfs3x5JpJRK>M3i_Rsv2n9)`G1_~p`fCY0I3WUtzu9fR$hfY3Y+os zDJvbkW0f%cE3h&#sn8APK4V@|#U?F#y?45Bru=^5#9J_Gpc8HO%hh5x?*H}44H(Vr zU|kYdee^N7XNVVCxTA{HbJ_t2{3XPX)y%Q4UocV{NQ_2`WKcp5*N&C#RSOyuaUP79 zKWb|(V-X$|6Z%V)Ui_QkwGr%ncM#jweULqV}Rivk4*S5|LnNrq1#Ow-~F&r{bYK5 zUX_nI$)$T|q8f;eAqWgQyNvIp1%ASPJ~8*+A|Zo<0};tI{wKvnb~gJ%I1Ghc4t+1~ zKr{-6)%Iv@{!l!QSTu%AbD>Bw6cew4=bZ6)B9xxIK}SNlL@1Kcc;_SSF<&+Z&sz;% zYw1j}NHY1S>4wUgv_G{gmnc;;kxGe%6{x6XGVOAZQf~k+)gL;|CX3}7)6JD@fkw4m z%V6o&%k@e(_Xuz8W!v2dM-Zr-f3A0iL*W?8(N<}UyA8jdV^}8Z9F<4CDI2G|)T~a2 z^F?DRvQaM0iX9yE5Gy=bkE)8rvmkCV#e3u<~BSfDSK9d`){R!K+ z_>&*%Ev*J8DdR$^2SWagt@*bbgfOI81VqB?bygI^b9qvfAWe2wlA>*XQj%d_c2<_-etuF`5XNv( zQIck59ae)@bWv5)CNC;igLH6F1FB9MM&M{!n2u08rdgb*8w6sktSCpaVoDMM6#i(M zWkUGjmo(Y`*)Y{LtiZ4=UmhqoX>@5xHy*@L@3-wX#oQ<^G7Z81v+0tmYhA4itL>D& z-BNA>WnrrC^S-UFWj~7HwzoY|{de6QMUQI73Q6xpuOuNGupLx~kY*6YtT(miK`kex z6^mlzrWcwV>{f0|4c$%@$@=H*xQBzy)wEE+%-p2-%;nXjcp|&a2=Ft+-MpZkUemDH zS`QoG?!=dIS_H4Ad6XB~^3Sr!!=t zc0v$sZK=Ee`!F|kSMb`%g$l=a90N%+h?_J{&CZ{KIak-RWbZA1od0~m+MKhy_%vUP zbkuePMA)Tg!2pPka@Pw}_57y7F(jV10uQn`O78#gmF-LaC#14*R6+9bcwv7Q zPfo0$gnqYhNws*l=*05Nx)r7L-nhRn@`{q){BpBzc_F`3x;2LWU?S=DpPSWuv4Z)^ zD(3&HwzCI1sR8Vi_*Mlg{obW>KxNITp=ij0vHbU*8$|mPHR?36uX67=*65HXz=Hq^ z>(J%mAZOVMVR1^LKq_?92n;1Mry2t>v~>T@e-=o9YI`Fz@-aGG%R91tCk;gH2I19m zIs1yn9pveVr=1T zEkTlkj*^qQKT-X9i(r5y!;;`~c~B!FW}MGOQ>JXpB+>pSbj9OLfV&0pl`6yFA(GjE z*9Kvh`3$;J;0ipTZzc#DHCmpoabIL)k^9y2X2^{y?#Ob_c&7!51G06 zwR5Z*U1J<{bCi(h`3x*)QwDf=8EhQ*Xv;!Y?-(pia!Ob0X3qTxyZo{2t-FQt?%hsUx2B_A>>jN? zU@^R>M)ul%K5_T@21}O2&`uBZV~>NHqh*ozr>h3-{%Xt00P@LQ2HBP#q?7C51dX`3tpWP%>@6bh!kn0b zn2w32!bgREA>#qO^$CJ3rj)V{4jg7 zCs`lDwRK34Rng}-ZRc`Ksdq1&I^lj)pADpVqJ{G|UjPUHKiNdEZ#I$pzt}_wXncvf zy#7FFG#Z_;y8OXVWP}7`vHF5xHEdE#XY+be=BR462$ffqqVYtk@o1g#hGJW2L zak&!7LDd2L04pjYDQ(Kt^w3J#3E zl*zPTf6FRd@AN0rnU(vr+N@*e%0$5=q+gl!YLDR;uLa9mY=jDL&AN3xoqpEJl zww6!ge1oxm5E7jo{fAAY)ZwfZFyk?ocl}IOxH?mICj&NBsNVdphdej>>~Vb_Y^dT@ z&KBtH`FvMdM=HTvFj(*8#b;TzQv_k~_X7|?`ME*r8jL$5i&5L;8ycjGV|X}evf)DD3qkC9-ZW!w3BQe}>OEQsB4QbYxjRMafUlc%DN_pS5^IMl+S{hKxI>G)g-g&LzJzq@Lt&yc;U z%^ftOq{u@_0sqE_cLm$upiKmYVnj{ixW8P;1SQ$Z&kCYYUy4+D%9bX~YfZ${|gnU)H3VgkidF`3qnDFeWTmZ?pHf4V6YL_^YE z)d_1#K+8@^oTrAxB`?#crp-~a%un&~ z-j*`2k-z4eQxW_6M^yiMQdujE$wiLLStu(&smZM;mE82e_k1q2F4TD~q@2yAHVD7U zVbqSkr5U5TB(^+3)O8QJ7~6)pe&5wi$c0?@-g4E@^NA`FlXRRUY45uM>UTE|t4#~g zv4s)1SNhF_&e&$RLe)3CVdiCP?Rp=T*6F9kejm$YQthG%E0_1Y>fcTGverMMGl!{C zEQP#!e9<-EME0*@O|u?B_jC}Jz`J<^x*aH4(=W%4eyOiS%R1&A2Bz_limu@I3Vs1Q zG z+LvAS&^4$wa`_OjrHa*+PFef$@Y6;QnOKGRmvcX-G)up@7FlMMiM=n3z!5*#^vaVL zsf(E`LwS;^tmZ{C9sOw9mF0ES}FQGvY6dx|Q@m46y$1sv{@B8Xk zLIWibU7jn^5&wXM9GRX4(E&sv4;dILkp#hK$1>WXxd~gqd&L+C>W-_q|NSh2^xe=l z(C#YEBvv69LXm1=gEOnWR(A(q>Q9yJV&0C%eT>^jNR$)zn>V0EmEBVf3hUGcfDL(~ z+{gMYg`uRI<9_8X(^Et=@?%d6a-7SS5w4Cpu

    CSz^` zE_|UFpr7}Z8T@3~%p|djpLY9KqA>)4OUw8lgMOu1ahwRF>-p2eGW1kr@~q);oga0{ zO?dW(<~-VERQ~fBpT?!t+UbkwW#(@cDgqvu3>VCw`&t4nD|0WYw5Po+CM>_5MOgHG ze{ms`a4GQZ(pGxyw(e4L;}6C3yim_@bIqyu(~&FxE1*s=>p z)HT7=zt;JErm|PU>gbniTH1f&A8*iqt(0VMgGkSPE&e#?H${=!zY@56_w5?;?#`?1 zkE`rCul8T{&wsV9kN zw)ph+gTO;X{hh(Lhh|jkO#U4y>i(AQ>0RdZ!{ED*HX^0`@MI4O{lvT?Z>vy zk4f)vGKnuy8_45tHw``iU`LPt+Z$5Y>r2c8_m9MzO@BEY?A%X8PwWDq4yI7&gZ->lp8%?t_IXPdIFI-xW`zkZM;J*{uUZ__6 zJXF2rxw+JgGU$9xIPe7sq=B0vZTD8x@){Zc^pQH@^UglsI32g@(jHqwLL8 z6{Gy-vG4QGV?4-5<0qhVu^f$EFV*>Kk1kY&n*e$m`;3me95m!qD!~9uF~AHKJy}YD zG{(q#6ofW9OedW7aBV)=z)-wiJTge?f}UhP^dQ%}uW_izwZ*MGH-zyJ3qZ}RjO-+d#bE)aTHq~b{r;W&lIBs4cOyv~M?<9-?=w#SOXrO-GlK;n=u$ti@A5sCDby!mu!XY*Jqr^|52`*IIpR&!_uO zHF?+m&c*aCl4qX|>Ks1T-oMHzXdo6aJ+GqsEVb4}S#NGMurn3VGfsG#gPweRemF-y zJ7sh()8l0Ng4Fw)MgTz~xc_-Q_PkLh{^x4r#uS!lYy&v!^< zu5Wv(?E3Am!f%0>H5SX3zNNMK%=a6euk-xcJfEW6o9ELJzc1YCnI3P*%L6@bjyYxh zZqJRr-4{>ptv{-@_h8I@4!rElS=&nQIeM;RkA3tFlM;ql7lH!q6Z9M9gUVO(HyY1?{8yWjPvL>ByD)y~k%p(ZAHE2Y}rS+QYjT94H z$Bxl?n>fx`81NzPI7+J|AOFUoUQpY z_I0k&*VnqXU(NFXe=}6n^N6Bp_}HJ5;;U)V&q?~3f8Zjg8#T~sN=+59rB)psGl4gy zHBdb#dnZ0dSEiX5|ACz+xN^+wf+9};;W;_3iH5~Xy)*=$?F)v=3FVWf%o)^#_RD6N zhVu`;wD+;BbhYA>E{5}&+fw;rnW|GlK|<-%Qe^^?+)dhE^MR)dc7R2PX*hmz)|ZE0 zQqnm69$$p>tf?x71aA?bf60)4e4L>3OdSZhem+jzGof4G$wwLg_}6P5aQep7`wzsn7CEer)D3>vnQ%Qy@i1v~HZQa?3RkVx|w zXm>0LAw-MlQ+fBGJcjuvDb>$Qojm1Dm#QQ@OYDf9I|Ut$oBv(q+AkiW-cUMmcaBlj zhdpOCyr%K*+bWw|e_AF>X0N{#YVS6v{g}Y3kF4{8*Hyk? zs#iDv5aca79{$NDc-`VSX#o*+b>hWD`0e`3U&K@xpVy@Q)_mA%6ipn4I>`tft9_L2F@ z$G2^?B-K&eSk~HVD}z*84S}9r-x;Tuhc%d7qX}!QsGh;PWna7ubwly&Os`}V=6ZgD za+;g7HD`>*v7V=Bn%n-8p&4pCXp9)lG2;G~F(%3Eo>D(SOZttvkoV+EW`5VopC@fo zlW~_>?`%NQ#Y3Zf;a~Flb3U+F`_33fT;^W!EN@ZVOqv_EY|_VD&}2&lD!fm8Dp&sWy%2jIx${wasL91U$2?$0b?`Q6%ZJZh0@N0nTEwrVjZk7pV-oN@WjXw z?NkQr@OgLiGM^ARENuK@_7uA7YdV=#ze0h1RqhUvC_u04qL)BRY#St#* zb_Tb>-2w!cgdoA)og}y?5ZnU^&ftRuhr!+5ZGgeu-Q7Kb1Pym~-E-^gTh(v<*7ZMh zSFdj^ujxuZx4Pa;BIX|t1M9fo;*tF>sb6_dnTto41+5>1`+HO91w?$gdAbS=6W-RQ z2aSqkUDA=YvI}z(){;B? z>F^SO1d9#lV9Y_n0Q(;jbNfHE4{7k3y`W-ngHbub|6b7H0Ae_h5st(MhYJz|Gy$(A zgE?BjKym=kx*0_a%w!EmX9RnzzyW6Pw;pgHEAdjUB;#EW8(b13nh2oleya$6PJr93 z!f~JAWPG$(4U$A_T@nG^G6Z0%jBZR-DT-i8O5$#r4*){GZXg{PUo{hj7{DkhMYl$T zn*qU_>!#$BenlwQLko$g!EYNn+jTa$Nllb00j)v4%rZy5ae)MrU7 zuaY6_Um*XrL0+G8(08qG58RQ&M*$ zh%-_&T1$A{H=K2&gP_Y2$0M1n;abzI?0pi9L01t!O!)!woQ66D8f==ZijCxc^ z$O~`t`Xf;fje|U<&0YZjH_m;Et~mpCTzO~p)|!*RSO%35P7e?hm{plv*bVbr(O3eP zW0{elhDLUZ??c0Hw%@tq=^U6%#2AtxlDy_q7VBk=9E+8_(-yguOv<7Oa-|0S5uuf< z6;7*`nKqVZDjCc)LSIG%7yzh-cf-gl&D>I`xTF;)=+kr~IqbGS`KW7Ihp@^?^L>r9 zdG>#Ly|Fq7!)FDP#dsBXG?C~T5nwfCkH4WrwI;2c=q`$JsqjWJL z%Bs0#-yIO)v7*HP--j@a;56+2i__3FgW#k8FQr9xnVe?dq{UK35K?mjyQ>dyI?P|MCVEMM$#Uf$q?gal@1Ef{|s^)^Qv`p0? z)GCUaNMw#E&}@BcF_&&^24eUOq3h5)U43C1!G1DP*i{dahtX#}rE8m-kA_H%@}c0F zbvIc9T{8r`K`2WH#MSorfc9#JL@*?T+?F+v*xkcJ4kGaL4i)X~)Kwplzm7HA^WS}F z52alRR1c&o0zNK-Fh z1&W{2B-zTNwFmn|IuNBT0xb$>AlkXo?J+=w?}MTNv#&B(L8B-MkSQ;l_eHC6MhOn6 z{Uvp(Z_rj^>9{MOUZ3BO0DvHUHiLXT;tNsam zABKU9V=&ZAe=Ts~PabewZcK+12?R1oYAQDH7u@&M`Me+9eRWR4*WZ9LwN=?Qu>P=< z$GskQVH~S&$H3t81$_8}{?&CU3T+kZ)UaFG(|Im|km{>G)+=F`FP3r?>)EId)Oj;0>tc#&+&+4p*qL4kmE;Gd{VEZBba&0Il@V@N0nRrll_>-+)qQ z^lkyH>0I&dJM3i~s&+n1H`O9)Aw?*tdh~;2y{Q)c#EC@sK(xOkHQi{YnrNn4kx3mq zA&^d0NBL8b;(}7I`kQVdcNo>}fhQS05bv*V8;~NGK-T$$y&V+S8<7XN##EPZ6m3Bb zA5K)~k5!WdsyNdR_S7BUpi=NztHAFGP~suFv-w%fpcvv!=aunls#fXw`VainoMPwxF49E6HAUv_`CQy@uxTRGscO#s zI5hE_yh_4YLFi}3@3xG?TSri4fx2?Q?E^Bcx>2C%ON0bb=5482d$y2rA7MkU`60{8yBN??l%>fterA>_yG9V+tu^%W`@RC6mJ^ zS9O=uN~ktbU5g?B*KMm8C`~jeaR%oK~3=V5DsEKpfQbFnn^ zf?Aa=2}xS9RnY-N6ey>H;uF6=kGmMi>09J9R5fBvViK7~yD{>hy~*hL$M?(xx4blc)Ad4L#^-twBL)XAp1)MU7L^`GkxS6qh^98Ns2Rsc z#V6F1_ptSGbPeZF6Rtlk#K`%!CWC9dQ5bFg+cB6r2_J~{K7X6+tFrbuCA;vjtl244 zTcfK15(zTPlM7uUz96Yq_2gb(&|s*VfRTl+qBxROyhrw^Z419Iwb88v=-q4mwP*#?X$OjX^PTEQ|C~Dw3SB^DVj@ss_k5ylYz# zr6oB0OH`%|K5=m8zSo$1wLzXAX$NZV-oBFpf?BpvYG~*x%uA7J`8f7tRa1G=e0h?a zag=5;W$PzDmlC|cN;o$t;OEdE{#?;>P_Bpaf}~SBtG%OYB`DITYH1K2HqMzC^>2`V z4b&j(@eOczTSOoB^F!|A&JL!?N(U?JW$@~kK;&0KjNznpvOHX|Ds~UEIk=4_3Th|I zlE{?3h(?M|W#mWQgSlR?JU1?Wlur8tcd>~(t8@Ui+8X6z*>_Y1{OMEEO{T@x*xpxs zpY6W?b{0;0Bt4ije|&b)(u|stGLZAgK8J9>5pqi>dkG7;}_q_SQgv1 z+*y6j9mC)TWWBKh9jEK~T6nLC{O^z(@5f_}kY$#ynLWBX&LbokrHLMO1f`y6oJ?vfC?Fh4p8h52Ozx@$H3pZ0dVI~jy29lkNyMt!86WXUU>r)x$i4qI<7Nc z00MrW?`KVkZX!3I4$UY2!c7xiZddtsbWH`fCdGdxZT|Zu;{R-F z?fbAU@$VtU^zlB-cRkF1@z9^}htC3;|HTi#y)c)$F#m@^pFb>qJ=0)xMc>tCe0EHOcg{oqJUGE^~OQGMFf?^?%^rP@d3`jBr zlF1s#qX#Jy^ed=64eqB4|PoR2>z)UQH>Fnb{AO&iHy(-$sv#W zwnQG20+4GI8)m>`hz<#2D-HHW^#q`^;iGs0Fl=IR z^ioj7_q*!YI1JJ>SB;pmQ;^!QFGl3BOXa#Kb+nN%wb zUTo<_TPf|sP65NIA*JcLN*M{B*xvfdh^h3!R$8DE)WQsU08VQ>PHs7VQ=gh~yO7*z zle+#=nz~Ivm7SWptb{u-jJBJaS&*8P;+Z)klnf7tR;8v~EoZ@OaGPyXL%o1Q67%c&`tX~4G3uV%@=FrgU2(4Q0;ORd>kW}tEXoQ-2gvt!)-`y4=8ma}KZ zAGX|TwydJ5G*;ovgD;t6Wf?0J=?q?Zd-v%RY#B5wj;{=G1xIpA_4807Qva5w>>}sB z^U84?&gerfV2r>xy@npOW_zZl<0$80MHHZ&Zg=K?8l*vs3CxtTXWf2B>-yTX*DNEUvi;k6Y zogzw4(XuGpie8VT)14qj)n)Y&IVD&{tOkYf;k?q;;`!y`-%9x(Ptx{N^WD61F1GTi zyvmD5O5l_^@+TQpZP|e~g_94(PMC#uHRU30Wo#=2b7cjXWh@2;RUHp$$X=C<>_w{v z#gY%4CMhzxY%91ai`Fn}1iXqi4N8%)C{eMi zy3(rrmD4KO%aKHKuPDlB(;cHq^PV4yw`wvcM#^8cr@Ew;0afY}hH-*HU}W}`b+x~^S=g zW%Ge@2|iUZN_!KRcMV>8F}6x3Xf==Bu!Qxo`rfw27iHZissiTG zMy~Wa43X9?gI4frBj00TsCR>4d8K)IYaCX#Sb2s_WQ|mNS+k0$996wwrTD+EEo}P$$Dr$Rp~gOYbo-sU-0faicA?!ugM%OzHRF$&(ZpNY=DNdpAo0q^Qns(JHyqdzQ(rO*r(Jzqrc;&wEHo=5#eyPUIWpq z4%`{`40-izruP}OwST}F7Cr0fpeo>n^+xzq{ZJX%4uuJe!k;2WR?)JgVBIGxT|Q$2 z%a1U;iaZay8rHMnLe9=i1hyfXsuk7Wi=ZPo$EvAI4LM;skyY)mS}&^d5hDi&p@9L| z*bmMQyQeOLQ@A@NJOX6BNmKAk2ItVKvO&>puN=dMvx)aS8@*W1I4gY2X)FjI}wc^vq;M2{qGTp4xgnvFs`*L2cNjY|IG?Hl3DI_+f8#Ntw z);U4lRQ%LGw>G;HH7@BecosEdOP#axG*C@B$bD|h^jH)9RHb&F6{9-)?!250k!Be$ z`?J>ipgLo{I;rS8RS-GP?mLAU(Wh-}t1DLe*RvWy7VC2~T360|Qx<61Y7#R8qhYpM#>haQ#ZQOzglDcyqGdSPqo zJXd>Fl5vrML-Kaca{d6cwsonF%QmfS!G^t5n!2Siq9p!#{z{p>BXjA;O3U8a!0<|6 zx7flePJ>g&)G5|P;$!19*EG1SDQdm3W~6`eWo@LWV>z;7HDz_i*r(vF?_z7~dinag z%zDu=XKDt{r1jX!3deXVc;oE6E!zQl;k=r=03&%=!ZaGoJ)b@C-s0ez<9iyDiymfq zF32Gmxv<$<6k9e}UAbVJ0N~n=KdKGUGzrqw65wtgEUy(ukM;Yu44zMYTA$kG+_@Q_ zdnwyOk6z||v+~(td5LC-p>1>9aOkn3kKb#%XMKTVbeG(36ot0)5BA>KD#&BKBl5JD z=AX^h{o?zdlY!AYJ0RFM+a;~6HTr+>pT7HP2N=&+YZGmVrF`S>$fX1iz#`qS_dTll zn?M%lB$wrpS~37_D8@bds&$nO0C0r=LU+{kd`KwkonySB{Lik01%NY!v74~F^ZpoT z3q1$8`jIOzapD+GvpQbvHKm)Jy%90>16VW#x-|1yQAAF>!u{NABtMvQ7M$x*MBCRqEE;ia7L2DLpU6P;U6eLpA&_W=PX{YP{b`Nc z(H?!N*r4)tCi1x>g zx;cg*khsa&VSAZS`J(cpo9)2WqBQgG_;%mM28S@e7>T;%@=BcXUxeJ^U1Ot@9XEu; z5n}I;Wbmbn_hin6uxoqps-E9dPh~jfNij+^AfdQ0C-J4>wh{-ikG2rK@~N%bcU>9o zrd<9tTC$nALNIV?^2pjm7sjC3K5i{qmq$KnSUKDyFA9=mF7%0l|1s*TV_ae2ty6g$ zrfOds+b3Gu8^A8hTR6&-UaQ99RPj+k$l=#0-`p9DmtnDpl66d+{?}#G1KRDkm*$N` z3!>>tV*ZISRvNXTs!YCuIr?KtzWrWRijfNe4T;7v?yC~v1TD?C=2uKNT3jT>TvSXX zGFX*CjWdjDXT*y}*o{1k$VR-*<4SByW!mD}Nmn|=aku5IIG+i1bbA5$6S{hhu6HDZ?PM`+RgI}x&TQDY9tSt z?rL5bE59!po95ll)@_NBnd)yo=McX3rN(q@}Dg)<%NeEmJXo$~P=_sz`k3y;&h72}h2dT&xUtB8GOaz`gq zG(%bc#?bo}{ZF(vDkhKWD994 z0d{uV$*J8X^XYlQp#jUxwY%R+V2Nqkr;T&wca9U6IL-Z++u4Viu5B*+F%r^3MXx+9 z#o;0w)6t0UVgEtR!57NV&|v5`z?@u$oKg^tSCCuR(#%YHz!}UfIQ4=<+>lcP;O+rX z=LEmD*Tbr3lyrt%kWc4?BHa#1lkvzwf9LbOf%)L$r>Aq3+~66B3<&=1H1Wz7Sum4a4_C&S<3O8OuKghGv?CjVX~nv zvi`Eh7r{TcZ{~{}k{WiI))y7|^vkSo@@9eung-r#GR2Pnp58(Xu+D6lC=OZ0 zja}c8Yt5<(N|p}VEe|C1a(?al_q$&|G|r)}f_klUO2y#2nnTG;MRcx-&|t&uv<>60 zFZ~N>{mI*KNbO2&|b^$VS~(-g(=ZS?{@a0}p38_B6kD5)*+iE6#r=F^-B8_O+a*Uz7L1_)^P;5Vy;CP+qTW2cs zc^R8{<_cH(N4}Fdqi?MhXqcr_eT%%KY#-f}wKGNe?N|#_G!5Pm|IkR>B)u+e-DFM5 zYpS;vLoQ3b<-g3)lgl=oOc4o-NH8KeKmPcbs#|xFl#sS({bF#hPZz7aP~6&3@kPyx zJ8_`Fl;fO{dD(V2m9nYe{rH*jH(LXxx^LOysJ7g{|H$UqCi-jzLyb}%#>zo^$f0d*uRTJ()i^&hx;H*B`-;b< zY$O(#7pJsmH(58(lAL|FyJ1v3NzQ|GIJ#dyXyhC7C7L0u_u@gLyOG(|l=DF>ee&UKG zq3+!F6LcGBbhwFE*(UaFY;E+u0M|a6@jr|=G8l8jNWIJ%dj;zDIpyd3Vu~saAo1n< zg4RuAu$M{v|5|m{7AA^Cn$n;CsC_c7@&ZO_Y=)%tE^*aFwXVKJ=~^C3PtpxMMEi>i%>M&vD~6psk-Mj?D_ZUwmMDVx}{T*PnC6<8^0A>x$H#^2ohD%wu zu)1oX_kyhY9sHW>idNxt!AQs5dYyWlHM@QHk?H%@d)IyY--9{B1MWkZkM^NKYAej9 zu5y*W@1p`aYut+*C^{W310vIRg^KxuhOrDf>e~1JczSko3^sv!@A_rT-Tce-z8L*J zKfdbLfV%uUbTwYL#*h$Rw!t|``!>04sykU4&E#Ue`ff;8LTF&t(e~5;cBJ&vGr`|7 zI^P1edx4)3kl)-ANmzHvR%O*^B`zN{d4G`9^`r6APkH+npFJ6pww>9h`~J;|HRxL} z{nr^L#c!{x-C3CDK`}Rd&Aw%c)FPX54YvyEFM2k`X?&8W>5s-K#wVs5H)r$zY?dBx z&WHBd*Bvg$bRNYn%LYYe1RQ+}c&}ZYU*Xkn3g7iycHBV($o{6pEX?oDTpRrnzWE?_ zzn%Z@inCmJd1BS?k2`IhBzi~g>&~zFyfeH!v!mjTvm*bHYjwO^=)F6R>)XdP#n;Ql zq}w|Tf|y{Quq{J@+Ioo>8u zy+tvrB}VzQ&UCP!CGg+nVz(+%e~`N_a#90M;MAwhWDRW(ys4wSZ~a$bQ^&1?E3AOI z+9_TMq&XVoF)0*AsT7swOpc}n^JiPsI?*cDRT#BV@2G#k6kL*XgtFy4{K zo^ZPo@*o*uqn7s;QYG6mt_h;bpBj0Bg`-+T6j0iEpLz%j8tGAFE`y5UcJJeWJpviM zgtA>jR1#N`Lz) ziY9_x-m}8SDWl5FJ}1EelY6-smUc{}1V$>@au%7KDgHo__hKBx|J1hnMVJM< zfuB#r%TwNzQNf0DfVhClnsKoGKF)rwR|ln9?@3^gj*`!lq8Sm}C8lbikw|=la>rR8pM?tf8FTm= zm$$HL3GwT8RcKm;a!jAnvTaY*8o_IBB*v`(-j+a)5+IHq5{WRF%mWBo3PN~auv-8m z4}q(&aW+K=!U40;H_mn!_<}4L$Tp?6U=+xNfh5!t__hQ{D~Yra3_ju;=a>Q@n~ftQ zz#@F0+)&Jkh1!4IFPbP9oXDbr$f}CDwk2pbP&9*_5ZWC?J`~Nyn*7!cVS@?zQW7*L zi2P77Y3q#U4MtT5Yuw*xeExt?s-UTBqTY!jI|@!2)oMK1Yl?0K@#>*DLPKp+r@mNE z32z~DT%m#XH35ZFNSTw!5Y3ONn%bHnJh8~KM;f=B(~oY`!mL5UvB((D8dTb-qJU|1 z_fT4~4?++PNAelULe2Lj$Z`k~jot@sn`yN1>3^ykMD8ENYc!FcHNN170nh1$mZpj2 zrfliZ+`yw$e$qD%aM?vBWA|#j#r4L1>3;hDnV6F_}Etw0o3DIysRfPvr^J|c)<>C&3 zarD5F@DCVtVA~I1JsNrdqA!CH%)yGRn>im!L62?*kZ4gu_RuCl0s}k%NPq<%ZZMEF zmzXja-2=eS8uS)lXTfIyU2);7gN_L**c?^ImPW_we8D#Lp*s-D-ruD|wDJkxTVww@=devGl+S1!GP zkfo^cB)cTtM3SYDdEGBGda372=`^}2jrw}6IzNq11el|$c)~_kltI}SHOMZG|58#zHJ^K|uGfSz1g|Ok!_L@PTpR@g* z)juX$k0Z`%qhsUja6%c(j{OUU_Q!_p=>pl_2ojEKFuzetp1$3pR+je{EoSrVeox;`o;~SK`3vAd*ss)Kf>-eXb}js+nC#B1s-UtK zOM*fn*Fm21?cYO*Lf0 zqL)UaSg$3ab%RsqtN|y^1tuNQYpjd~2I)Sc1r*&Re9&(@b}^9=*GExvXN}{XB157W z+E%A^ZI~6u``-US04eF6rUW{*;=Fq8tzv9Aq~h}~a2wj2AEU^uwGFhmasdlzF|id& zUVfDxko=@p`c;SoOMeI`Xe+eu{Uuol|GQ-o8$N|h8QZ~Ybcc`ho;ib(KD}He{9;aJVWFzkZx!-?&GNof z7xr1{WN9iky`+KNAunRvuAM&~#38#QKrigK_L=|;LRc(>#NH@Z3#4I`(+!k`Y0~48 z8kBTn>oDG~5s(qn1$Zzxe?X(^dN-G)anGi;;kg!flL&rmP1ggVgEUS{;zQj&tHduE2?U`!!+}($P`+4#uS-hSK>4YheVIRnU!|)% zEg7@@E2XSa?GWtWz*iK`07#KArbh+%Qxw}EML7+)8;V9Z!)2pz<{28ZN9bi5iBjrK z3;ULOBZq`Ga}{Q<@ys$sOh^ju8?0oCl%+w^d4E7?%1v!pC9Z$-rRH;Eu@zBB!P>Rt z0IeAuSkZ`9m!W>vU8}^;`Y7ET@$aYx1N|x@z3(}o&;e{0tPA)!@%_mZB%uQSO;2>GMZ)Zq|QMzk9d&`ExWt$>6Q#B(S1+oo%45Yg~8~< zfX`cvT#h!}@u(k)!i94s5VVZxoLQ3>vJGIWUsON_)sssWDV;BJmL&B3Gvxt}l)zht6K9W#oe+t9<%rbnx3v(xxy1vl~Whvb*5`V2zn zZCU1Wbd8k;RD5!0sq`-VA&PK5L`aPgfiz&2w{y~r9eljl8I$r}R>ueo$O18%N@4V1 zCu){rBwvht35D2qjS-eF z(-Z?3bXD``oEl!jGIaJw@6OMISx|kX^ltQN^EKri{1H^{v0SHjaKF1Tqyv(3-o_SVS^?L;pgnW_|d(O3^<>>j! zSd;&n6Hjt&R~PKTT}0Nv`CWl?4)Z)Yi}*Q=Z^CnoneH*h|Ks5!b2bCMdMBNlA2s%0VdmC%F5Q7~9Eo#93-Udp zbw5#{Uq?`8U^=w{cp|G`JK^t{!SpnzeyG zF44VTam?F5v@*@Gc^{yLsjD=oitR;&v1mWo-Ee=O;jqtnU?l5+PZDLSRQ+R9Lh?$P zHc3rm8YMIV@NiaiHiN-`2PjWUq*u?L_=Q9Z+d@KYZBVk{!fJkz0JWMxk|zws%(K!0 zc@JPY;S`DAm*3f8A9FdrnunlZFscfy!!LRE8?#B^m_FcxSMDD?EhFk(_Y+KY4{80y znzU+C`OKg`6_dLRFcw5J%W}58 zaN8Mx6h%?x_p}pi`Z21rZaq9@Y=0xVgr0i?)p^eYj(kwYBce+mh(BGv1+%F|N%G}Z zg&_PcbPQ&g>Ti2=b_?5Ra=gfd0wljMAiee}=-F6PQr3w#B{|ZqzN-zu$k_^}8J5#_ zhs)3`;qM`D1ysqALSj>l_Ffa+51|tLN(d6&6P^oDkXyok-fK!E(hT91NXK>`h+0od zOdXq}fTWUqvE(aeda)-|5s$Yd>o zfU-|wshZgaWGz#{%tmTX}c`r+#q}k!p_|R|@`~J3+ zC@x%ji)sr$^?m(|B&PlA4Ej}hS!R5ft1y|hg~HAswOs#?_G%qcQ2!O5ZZx0wLfYJ{ z^u|HIOL*bskKlkyrCpf+(_$g%``YMn*N?jGJ9H`UYs!7kp+Be(*G%q*3@cspv!9MN zW7_75)o;rTpHKAODt5TIIHiwfY#ROjJM&K6IS5haDm3xv&2+qmXiy(XWw#D|i@R-G zeZKIRY~T1h@wanRc3JJM=cqBrPXF)ILMv(ekPGeEXR`Ejycm!A$&K$ic$v#`m#yU* zAiI%oKJ%dxl2tMiu42@1ya37P+1oAjxmkLAW_0kG0wX$ysFXfqiWop%3w@Q$41h%5 zdZBQGzDYy}=*jLtvCS?9(3$S_lBHh;WIwIH-TZ^*?00J;@w_Etdf(CY{Bqsw|9l`J zu{Uk?@3JGt?~3Z>iB3b}PveX4X_)`>-ir*0qsH^YHwg_Sfd4Bp-@l9g=T^QCEPhBw zF2Ah&_H@B#Wd0+%K07JiBZEE?^Gc9f z;sZ$+!OQ4Dc!L2?WC6&60grzJS&qPr7yCd`t#RM%p*i&DL`T<#PleL3nQ2j3f3P2lRU zD8xX~M;aQIAn5c75@b6R90Gy(L&M)Fh7=t^3RofU6d|J4kYs2Clsp2)5?bH^Nx=wr zZV4(;jNG>ZINU)h^n!#1BcdUJ-b<0b5OBIR#EUg*L=Ykii82?AQap-?VvQ_3iaa5U zu51YzD2Z;dj<9Tr+#ZUa(+jO{iAsZnO)Q1~`V)T75^hW$*{Sz)uqFD89I~MpwRIQK zY#sBs6rHo=GC>9))CAarHQ_v0*tV_clLer4I#*XAJU2G<@5AUTIUp~#6gPcz|L~L`p_J~e zlpm=nUzMP?LKa{)XiO>8y@mvQ40XXw4PAzY52r+WLeuVDy!D~+6o_#F6dDdq!c5Cd zO)aHJ%UVt=@=Qr=O-*i1%RhE0)K94oPtO^K)+nXN*`(KcrgkZ%Ww52yvSn0YW;6<= z4wj}5BG{?pjP_-h4x6t7N*O~!8B@pUTQ8*<5#gDGo@vcWSyf7z8#bBSHd!0tS+l7b zu-1&5(#%-Q?Cs&qnd8i}*6fSYEMJP8TbtBh$Ju{}T~?KH?)0;8%5pM1a~|)rk=U~) z^>ZKebDzS~Fod&EPtx#gT{=>8Ur}aK3+H08=lwa(1yN?uKRBr%H@AZQ(nnKW-kDc<%<5j@&P^gAg5MooLZ%|}N>13Q%q@tX!Zks=TTx5jczx0b; zu$*+UibT@#18ob?gbV!)N-Wrm{9hg%4a!Qayh=>cO6(|$q_9ezluMF?ORCuN6TR}2 zSBj!f9Anx_Lsv>6Ud5X>WszQ`6_llKgv-v~7yFi#eIF_E@XGXJFZL16hPD+)J(R=B zN^?d^nGMQY+R6}}tvvP$Fjn!zNlC{_ZgpB|Ra-^nL&3Ci*=$`EQ1;Vb!9a>^Q3yV^OgItuSf&liNcN4}g)rJmZZzAd8uxTu~NyB3Y3c8ao2o}(0Hv|2LK z@y|#-1H#0UUVr#dDl5_`<=vo}-oVyguiM_JwOUL0P^)U#@cFbJu-b6Q+_3S`C}7v5 zU*5pJT8FoqWoze1R9^kdph@qv0Ry|qg`*LC+U$DT_#L|$vC#8sZ{YB5-v86!wAyTE z*hnYRk|0tSXV>bX(&|&*8uQqk+TQYQw8D0{u3)qv>(Rk;w8ne21>)Um{aE+2ye;Fj zExx@K`dD8b*={V-5a!*U&C#Ty+|-obwv5)=h7D^lZ0W?#srQB%aI}SkMIv;eWf~`b&tJFIKA?maK*9S zt8(}+1nu?IFY?sKde&>R)6w8+fA9>FiyVZkrzjzNH(sT>>-=4xS|Yg)NU{c?5Kv1+-;29_yl8fYHT#qGhee zhR#N>Jp$Zo(0ryq6Vy(}f0Jg7#;+E@KRHAEmd4zN(C2c-FBiaDqM_q+APpI6B=zt|PA9A_bYJ}8ULQw*8GicOFqeZP z-~}Iv9)F~%A`lAzu!av;WcZK(?5IYj&x*X&;HY-ovwR=`))b0*?8ssXps#ptKiQAv zd2AtNE?;#7pb50qM3ta%B>|wBIfEc)F6PDy;%f8D@(3wTt!$+uZO1?_cE6?1Jd;ZQ zKdgC6(dkbav$&%R!afUsSI7OM7vGgHa*ZP1C>GDzM<||cjMlmg*KNq`2fsuO`d9RM z8!cxX^tn4M#ekOFIF=+;mvHSD!_Jq}-!Ds#t)zWlPD<}~rSAD0HSn!s`ju~gnb->C zxhq1gElOV{Ja#rf$8pVZDFog=@Jn zy{8ql!Fjg6dv3F83|m)Qj*H&dJ|8%ASaz}BXnI}?cv`>cSama8^Hf_Y9$j-&T?`RJ z5Mdj?j5p4r5oVdrX5Y>0=VfNjbr+hJvefmY@9W;6t>N>vdf&mu%t6q`G8*pogKyhY z=F&f!E=u(cq^y-Zhc!0G0gkLqu8GyR8=GCv-QD9Iy`Wtd+_iWA7I{0jN*s1kE>=l# z&B;5LWYl+X95)%Nw$x4b9@kg7vv&DlyI5seHnCi_RcIoYQAGUcJeNrRQnY#fBH1w-@}BY`d>%1BnYC)%n=wR}OlS!Wlzt z3PKGxuY)|PJvd$@w@y$Ty)-B z;#1M;7Y9Et7`CT=nSmC#ai;MR7w&;3{x9cKcC*WWReQhj&jD~UOKvo4$!k*6YjXc< zN+&cUZZvdBR3m2qkrSFFH$F)hD$@43GTp^7KVI|}hAX|d{0l}*T?*=R?7`b=1AhPC zX?~|%HTqar0Nfg^-?0b3W3RAZT{pj>j95d*$^l?sVRvoe4pi;km|U_uBQ1h238vHi zuP{Ey72{Q-OKAYh@h@t9ZwabzjqnHxJ+X1fv=63=%{S+XYp@?RZ&!Rz-AXp5u*!4req~;5{ygpI%=$rbiS#*nsuQc-WayVKNEshB*8l9M_#dmy zJ}1l+hZlUOmk!RCrBd8IldOF+++E+SBPQCeYNwOh&CUAFqsGleou9j@xMsE!yX}`( z->Wt}{vF+l9Zyv*6K)(sCyoYQoiP7KvB)~V^yNaps^<}biIjjc*E_mi6Ke6>|zD2PTp znEby%7LzW%x-L-4%M^x zuxV9WVh=U*n0yzGA@v9=4@u0%(~{PSR;ai`Q$d>h@rN9&M!)mY4_{|W%*K0sB5uzN z;&pNlET|S4bYrCVH!?jEIgMbxR7Kh+y3X3Q-BoC`XDNzIuHD`_8jDW%f4cjYC^acU!4k^~UMLnf0>ei^iv_O!xZrH7$wV3$CQ^&YK~4 z$Sj@i?z$VpNlvm6%bwHQv)RRbPYc4c>#Nl^%rH{%*>$>k%0E)&Ssb|6T zAibSzY&}!z7(pv7Js+VQQ&Gl_cn^UL1da){Th}5{%EG~z6 zvl&&#*_B{3syxTRAN&99-OP-?6A)I{e7~)V|1!l2>gUxI|D8ejfh8p)L7j24uWCx+ zZ-bkPybR23N>ys^;|$O1+i&CY=fuCKK4_yReUkgs!KJl!_Etf0MQz(=L*ov?9g^TKL4&)8;Eh9Ycc*c8cMb0D?(XjH?h=M~>icKjs;Td2 zj`u-Vuj;+`>UH1Gb*bp!V5xjpy#MB)uB41%w?GckQWiCKE-%EOIj&~4 z1Uwt2Fc&OuCt7N!+?poMn}E-1q_I{=EUZY*{~h7dzFu>=fnE zs?wI>&HCe_zV)p9w&7*Y@9=`aHUP`|#k>qT33MC7<-Ka(EQq6Vmn(U>dN(i*!>e1R z&X93E`m0mZF<*Uf<$jfD5%s3;`yh`~`|H3@%k|O&EvwC0Ic=LxJ@2*i1hSePP-?y-_D08m)|z3lla_f3bWRpDtLmty`H}oc0QeKmT!L0JXXCU zS9;&tW!>Hkc0xK`g88Mhr!sN)&!>aj^KOa%O^FNMt4Du$zK3q@QxtU~3>^BFj_RKO zkmx~4z4C)a)LRi7>cVI^^lz2keul&807NpH?SqIHH5+>G?rl8zEp*VRIYdUWroH*t zR=z~J@MB@b_=(+-Vh9$AyfVjt*<~h?Q<8cg%cBG7>$VXsv4xMvr@+X4TR_zTQ3$tc zQyY;SLSu1psuf#nUAidT00}YZ)awW^W)x|XgakapRkR6G9zOKoz;pAok4s+;u}`qX zW%hZf;+Q@r`p_Wt3%YCiS|oYvkOVsSO>9wJB+coN6kZEUWHMnMMI7Adu}f@#nnMn@ zp2Ubk>WzJyLnPg+#ORL|mZ&Dee1^v0vAw68@U9P;Jf=m7FYPT^<;rTx(hsQ14Zlj`+^1ls>N&Zv6Njy7?;0%+T@JeM(I@0{h-3ULm z)^wZjB$Lngbx|$6j z1d_G@6tCJgJiLGpw8aQ~4UG_r-4>8wDLYu?suHkbyolyZ|S8)oM z{b~KyVb@#PLsVvkZVsB{c4`<5sBlafT|6vE#GOI5vOsKIUuRfo?9=_6?F0p~t6{gL ziS}9EN>S?1CE+f~(oBw~LAUS>qQYuZ)sT7fa3FQ>_020FOFcbq(F91*qT|qQT zIRH3;t~kspJ!pWyr=b8$*rox7fCB(1#cV^B+w`#;m--pysx=jm^wIf!`XIM{hYD)K zR^pQaI47<{OnG-8pt=fJ6T3))KadQ$$x;SCkI!TLkica8-Gho&HPLZxdtc3;hdC}- z5`@b^b1e%K_Dyo&o+rF`_HudRM+$3D{8u73`k7*Oz#y=7s0>)e= zY~<_{```WumZnU)Io%~)o|*g*UY_C?s!Kp@H0D(rHZA<)t7$nG6D5c%|*Ab6h|Esp__rRluGS z6+x~fudz5`#a>NPZehuqHsj+}o4BiKCO3+|QknT9#K!X6ioks?Rn9qh;rv(_xH5AI zhyI_8R@esyn!;n~ij>Lqoyu$u z_j;v10t$HqxKOz%5=})m!Lt=ZGUDe6IGVO+*&py*)Tj%_h}!9PWrY};GhqELmjTEX zi8-vv75pg#aaXK~4f+mk`-9G=2V zeP|TY!e$`o7uoYU*v2-B?RA3!LpfGGX$Dcj39?i=exY<-m)z7+e)s|d6y)+OnW18`NG75`hH^`77Thmi?epkR@iET%C zu=b>srt>`F*|waXz*e6kyHB)lEuSnPn^7_{k^a9a_W!zc|LcW`&)nPozjE(S8_j>^ z-pJ(P61H0*U#LX3rn>yL;zLP=LzP_e4Uv)H*(|^|fc~K{Tz0c;vZ?`}sIT@X9%?sm zFi1EUWfspjwle^zL@d35yH5#C5~FlZXu!(tPy(%?39cUX zCoQF1Dwwq8=1-Yc>mPH%W>T_KQA`nS!&Jq`itWPhg$nI9^XJ0lXmh-J_Dw9yUqj1@ zO-}7{7QQf|m8;v&)|kfpiLznR&1DrXrxJ>zwr_Fj{|Y-&5l9LVaOztXK}s&X(qJ1@ z95uy63h5iViLJ*Ib9>+97}(@~BQZtD-90&5s`EjjQ$-nwEKFqPxKq#Mdh^HB#`yT> zOaIlyW)z3DuCUHvW_Mqv%hv>lS#+JbsVpdH5z-zE?=cExeO$t;9te^6Ek6N9DC}hP zKbp*X>fuqL5xpZy@;%c7;}U+6312O zN`V?v2SA`ARUN2*<$NjBaV?S`tA;vohK!UnN{XSl5OS1=PNrt=__f$M&fHx~ch`M?${z!bs zLUk5H+evKNUzk%Az{*}A>A!Fkgdk{(9>THKclx5X!O)lG9oDfx>tm2`50wh#@#jdO zIEPx0s997UoNlJpEpB&j2VaqU4?joMr!N}Po$)E1VUi4a2MM6L6Drt5FOn+`4h{e6 z)3Jw*F1_hx=UcIDRP9Q$NxI@Be8In6RSu)%jT!1bil4-M&Y^p1OCRg>#MnCn7 zfz&K5^X1|Y!P#@58 zYpwu5`utwJxySOEzlWX&iWxm0D8Upv=-F~)G9V=xMF0%%7UC_!mbQ%qkWcT7!j8NP z$$aSx{#G>5N1^X1aOwLU9cnO;JM95ZC_zv3((*U!=j-+})w`1owfhFZsSrpj+M|c- zx&_H+GF2nb=`jT9lc-EliLk&_Fetdso}C0VBBSZ5$RB+&Q<_SOT%m$qXrM^IMzJP> z0w{JaWO(#TOn52gekKIu^O`}Dvcxu#4hr7|>x}$mt^}k1#si?xe1e(nrh>v8aNp*R z;xlCgBcV-%(7f;jn$ff45QdSU$N{{HYNEd*H6vUn4TKe@Hzz2dA5;gH_5n}LAu9najsHggA zmUUC0Z1OxIVl-ggGCq729p^SNq@hn>PNo+z9wK$i|0lr46iC-4Crb6xm|_c>WDW;e z%wUXI>_l4H^Dnpc?ie-FC_*83FMgTZT*XFR)KgljlCMGl%^6cD1#Jc#+Q?8n!nn2~ z7l2IC5oQOIP0IPFQGAEM5T%k2H(BaBO^Tml!Vh`=S1vpa#8Jg56{7$nk1=Cecfx9| z=(@7@i7AHwF}06@2euzYUS(8kvdMY)L%@Bn{B-5ZkP6NnjAfFed3?&0v#0lC~3c7*rS=mrWT57Hg5#Hq9D62qmS zDj4|;#e9sTRRN6c?9dx^_W(2s-SAMcf5fg`HE~QOjj`*Eg}e)UWM>gs1QS~nYQYnjU# zs;5xVI_+J<$MycaS%kVzwKw+{D&QKbBF;}$fx;*~8|<~n_NTgPAe_3)1~sww6D0%C z>el~)UkKa5HKvA=96}0AtdoAZ!ecB$a1IvRkbI{nHfqec4(POIs#;H!-({dp(Ri)%vA^LFa z26kMV>7;Go9zG2HmbH)mZ_3I0F@mde+o9H7=qAr*k(X<)0m@bS7s5lrsOG9tt9w;p z%|(r%|Dv3@a@|2)p(1cCTf?@x@{UNlu?4j5XU{q2kZswuvAWHi844nNF3E6EcADL}mn zW?R*BUDXW%4WNGIrRxZ|QMKL2fq88798~q5P4dPv@g6PodL0D3tAbINY$|cUz$PCQ zI55JK*Riwj0*(jL6!eNQcrVEv8`ldG%@_930~qZ|K;?Jl?0Es}i^b{wGuRLE(W8jN zlaJGTkv1>BwFFSO(f0S68B#ISf!uq^w3x307C#l+^`CX5Rs#xI4Tb*s?cL>AE&3V zl%X)SrC<%Uh&bG!S(gy~;BfL_u$h`afHPA0OZbLMMB-3T$WrLGM95Z9#PL)3+)#K8 zoTpDwsBUn`Lvr|9QN*K(m%3WG5?aX1Q_zrj`0J6+U2e_}BreSW8o@4rezY8gxmL*Gr){q^&!w zDg-K1@^-J^2gZLWEa;?YSPE!i&wwy>h?wJKSU?IaX-WcDO2&d}x;ibzv~BvbsvQ&A zk8ayMW_&{d7-=6~LQ3(9VW6NQ84)F9-7tmh6*T`fKO~J8B6LJ*(&Lm3MdO(2o_*im(POCoG$XYE()G; z`c^h_N)?Pt7i@tp@-|w=G1q@+{_B9u9lWe{fh^p@%(LUnD?H?tPoRrJ*5fjAmjcY| zFw&>r1@OC6C=LkH{?R$u;*nB%hW$=L|3Z z2X{W~VD7VPP627I5{->$=-;1GxtuNeiYNK}2!F-6|LUgZ!;j?aXypES$u$Yh)_=)V zmnsl3E6_G8R4&O^MJRL|`RgK8Xp3LqIg;l+Vy$&j2nsFo_!!C8NG*_0&9gQu3e&Jw zamy7#DE>oJ{F#I&t`xay6rU#+;c^$5aTk)E6zAa=#g`O2w-gxAl$?o`h|`pwIu+-f zl(>%+SC^E65lS6iimc4?Ev1T*%}QcgGBeCdPXbFFG|J3M%GzlP12hW9QmyI`%40%H zQn<_1Ld()ZOJv>3kHkvW&C1kh$~bAtCqIEH2qmE>rQsu`z9$up2$kh0<=0Z>k!F?S zBPF{um01X7e@`lx5URFbN_I-h(?%+wr7I2(%8C)H4-(5^Kow7J71P|s^)ywbQdJP8 zm8hrHmk2c{E!BN))#z!}@U5jNtJQC*rR1g6s~Y8$A8BQTqg4o?BDU2k!quA2mMR+1 z=g4_2&uS$m$O=2HZjYi`?6iiTr%o!YlB~5N?xjx9yjF3w4p3U#I#MpcQ^`os0Hm#x z;juc9Y9OJl;5emZF5!-;Ojm5j1MOHf~ci`XXA@aW_69 z)VR_%sD?FtnAHT7T1rdTgdjG=@K^@9H;++ND~Hw0hE{Z!G!Oh}W^S!iX)TL?Z8A!0 zft9ZO3TpW>+Jbx9k^!n6q-kkSY_{QPatUj#Pi*K|HA`P@sC=mj12yoTHkE@KTg^WK z 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