diff --git a/apps/web/.gitignore b/apps/web/.gitignore index 86c102f57..16166ebe3 100644 --- a/apps/web/.gitignore +++ b/apps/web/.gitignore @@ -28,4 +28,5 @@ __diff_output__ dist public/workbox -scripts/secrets \ No newline at end of file +scripts/secrets +test-results \ No newline at end of file diff --git a/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-favorites-1-snap.png b/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-favorites-1-snap.png deleted file mode 100644 index ee3ef8889..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-favorites-1-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-home-1-snap.png b/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-home-1-snap.png deleted file mode 100644 index e039f9f08..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-home-1-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-notebooks-1-snap.png b/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-notebooks-1-snap.png deleted file mode 100644 index 3a303e108..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-notebooks-1-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-notes-1-snap.png b/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-notes-1-snap.png deleted file mode 100644 index b006ef919..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-notes-1-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-settings-1-snap.png b/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-settings-1-snap.png deleted file mode 100644 index cc57435da..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-settings-1-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-tags-1-snap.png b/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-tags-1-snap.png deleted file mode 100644 index e350b18bb..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-tags-1-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-trash-1-snap.png b/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-trash-1-snap.png deleted file mode 100644 index 3b83173a9..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/navigation-test-js-navigating-to-trash-1-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/notebooks-test-js-pin-a-notebook-1-snap.png b/apps/web/__e2e__/__image_snapshots__/notebooks-test-js-pin-a-notebook-1-snap.png deleted file mode 100644 index acf9a32b4..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/notebooks-test-js-pin-a-notebook-1-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/notes-test-js-pin-a-note-from-properties-1-snap.png b/apps/web/__e2e__/__image_snapshots__/notes-test-js-pin-a-note-from-properties-1-snap.png deleted file mode 100644 index 733011c17..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/notes-test-js-pin-a-note-from-properties-1-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-independently-assign-a-color-to-a-note-1-snap.png b/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-independently-assign-a-color-to-a-note-1-snap.png deleted file mode 100644 index eeae07008..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-independently-assign-a-color-to-a-note-1-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-independently-assign-a-color-to-a-note-2-snap.png b/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-independently-assign-a-color-to-a-note-2-snap.png deleted file mode 100644 index 01ffca7ef..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-independently-assign-a-color-to-a-note-2-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-independently-pin-a-note-1-snap.png b/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-independently-pin-a-note-1-snap.png deleted file mode 100644 index ce3d279e2..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-independently-pin-a-note-1-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-independently-pin-a-note-from-properties-1-snap.png b/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-independently-pin-a-note-from-properties-1-snap.png deleted file mode 100644 index ce3d279e2..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-independently-pin-a-note-from-properties-1-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-only-independently-assign-a-color-to-note-from-properties-1-snap.png b/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-only-independently-assign-a-color-to-note-from-properties-1-snap.png deleted file mode 100644 index eeae07008..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-only-independently-assign-a-color-to-note-from-properties-1-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-only-independently-assign-a-color-to-note-from-properties-2-snap.png b/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-only-independently-assign-a-color-to-note-from-properties-2-snap.png deleted file mode 100644 index 01ffca7ef..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-only-independently-assign-a-color-to-note-from-properties-2-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-only-independently-pin-a-note-from-properties-1-snap.png b/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-only-independently-pin-a-note-from-properties-1-snap.png deleted file mode 100644 index 776023df8..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-only-independently-pin-a-note-from-properties-1-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-sequentially-assign-a-color-to-a-note-1-snap.png b/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-sequentially-assign-a-color-to-a-note-1-snap.png deleted file mode 100644 index 1dc0d3ab3..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-sequentially-assign-a-color-to-a-note-1-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-sequentially-assign-a-color-to-a-note-2-snap.png b/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-sequentially-assign-a-color-to-a-note-2-snap.png deleted file mode 100644 index 470c4c566..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-sequentially-assign-a-color-to-a-note-2-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-sequentially-pin-a-note-1-snap.png b/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-sequentially-pin-a-note-1-snap.png deleted file mode 100644 index 470c4c566..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-sequentially-pin-a-note-1-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-sequentially-pin-a-note-from-properties-1-snap.png b/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-sequentially-pin-a-note-from-properties-1-snap.png deleted file mode 100644 index 470c4c566..000000000 Binary files a/apps/web/__e2e__/__image_snapshots__/notes-test-js-run-tests-sequentially-pin-a-note-from-properties-1-snap.png and /dev/null differ diff --git a/apps/web/__e2e__/navigation.test.js b/apps/web/__e2e__/navigation.test.js index df5eee86f..d3b2abffb 100644 --- a/apps/web/__e2e__/navigation.test.js +++ b/apps/web/__e2e__/navigation.test.js @@ -1,17 +1,16 @@ /* eslint-disable no-undef */ +const { test, expect } = require("@playwright/test"); const { getTestId } = require("./utils"); -const { toMatchImageSnapshot } = require("jest-image-snapshot"); -expect.extend({ toMatchImageSnapshot }); - -beforeEach(async () => { - await page.goto("http://localhost:3000/"); +test.beforeEach(async ({ page }) => { + await page.goto("http://localhost:3000"); }); function createRoute(key, header) { return { buttonId: `navitem-${key}`, header }; } + const routes = [ createRoute("notes", "Notes"), createRoute("notebooks", "Notebooks"), @@ -19,20 +18,21 @@ const routes = [ createRoute("tags", "Tags"), createRoute("trash", "Trash"), createRoute("settings", "Settings"), -].map((route) => [route.header, route]); +]; -test.each(routes)("navigating to %s", async (_header, route) => { - await page.waitForSelector(getTestId(route.buttonId), { - state: "visible", +for (let route of routes) { + test(`navigating to ${route.header}`, async ({ page }) => { + await page.waitForSelector(getTestId(route.buttonId), { + state: "visible", + }); + await page.click(getTestId(route.buttonId)); + await expect(page.textContent(getTestId("routeHeader"))).resolves.toBe( + route.header + ); + await page.waitForTimeout(300); + const navItem = await page.$(getTestId(route.buttonId)); + await expect(navItem.screenshot()).resolves.toMatchSnapshot( + `nav-item-${route.buttonId}.png` + ); }); - await page.click(getTestId(route.buttonId)); - await expect(page.textContent(getTestId("routeHeader"))).resolves.toBe( - route.header - ); - const navItem = await page.$(getTestId(route.buttonId)); - await expect(navItem.screenshot()).resolves.toMatchImageSnapshot({ - failureThreshold: 5, - failureThresholdType: "percent", - allowSizeMismatch: true, - }); -}); +} diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-favorites-Chromium-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-favorites-Chromium-linux.png new file mode 100644 index 000000000..6611abfb7 Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-favorites-Chromium-linux.png differ diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-favorites-Firefox-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-favorites-Firefox-linux.png new file mode 100644 index 000000000..d31eca79d Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-favorites-Firefox-linux.png differ diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-favorites-WebKit-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-favorites-WebKit-linux.png new file mode 100644 index 000000000..facff53f8 Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-favorites-WebKit-linux.png differ diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notebooks-Chromium-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notebooks-Chromium-linux.png new file mode 100644 index 000000000..8c25d5af4 Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notebooks-Chromium-linux.png differ diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notebooks-Firefox-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notebooks-Firefox-linux.png new file mode 100644 index 000000000..14b429e1c Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notebooks-Firefox-linux.png differ diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notebooks-WebKit-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notebooks-WebKit-linux.png new file mode 100644 index 000000000..af85c704e Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notebooks-WebKit-linux.png differ diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notes-Chromium-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notes-Chromium-linux.png new file mode 100644 index 000000000..9a400a446 Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notes-Chromium-linux.png differ diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notes-Firefox-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notes-Firefox-linux.png new file mode 100644 index 000000000..955df8633 Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notes-Firefox-linux.png differ diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notes-WebKit-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notes-WebKit-linux.png new file mode 100644 index 000000000..9429f4d2b Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-notes-WebKit-linux.png differ diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-settings-Chromium-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-settings-Chromium-linux.png new file mode 100644 index 000000000..5d27615c4 Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-settings-Chromium-linux.png differ diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-settings-Firefox-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-settings-Firefox-linux.png new file mode 100644 index 000000000..65a2d85ee Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-settings-Firefox-linux.png differ diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-settings-WebKit-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-settings-WebKit-linux.png new file mode 100644 index 000000000..6450afaf4 Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-settings-WebKit-linux.png differ diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-tags-Chromium-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-tags-Chromium-linux.png new file mode 100644 index 000000000..6184b3729 Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-tags-Chromium-linux.png differ diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-tags-Firefox-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-tags-Firefox-linux.png new file mode 100644 index 000000000..b354bc64a Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-tags-Firefox-linux.png differ diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-tags-WebKit-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-tags-WebKit-linux.png new file mode 100644 index 000000000..d17bd3749 Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-tags-WebKit-linux.png differ diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-trash-Chromium-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-trash-Chromium-linux.png new file mode 100644 index 000000000..3184f7845 Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-trash-Chromium-linux.png differ diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-trash-Firefox-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-trash-Firefox-linux.png new file mode 100644 index 000000000..9a6baa400 Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-trash-Firefox-linux.png differ diff --git a/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-trash-WebKit-linux.png b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-trash-WebKit-linux.png new file mode 100644 index 000000000..bd1c27e1e Binary files /dev/null and b/apps/web/__e2e__/navigation.test.js-snapshots/nav-item-navitem-trash-WebKit-linux.png differ diff --git a/apps/web/__e2e__/notebooks.test.js b/apps/web/__e2e__/notebooks.test.js index 0e5be51c8..71dba501a 100644 --- a/apps/web/__e2e__/notebooks.test.js +++ b/apps/web/__e2e__/notebooks.test.js @@ -1,7 +1,6 @@ /* eslint-disable no-undef */ +const { test, expect } = require("@playwright/test"); const { getTestId, createNote, NOTE, NOTEBOOK } = require("./utils"); -const { toMatchImageSnapshot } = require("jest-image-snapshot"); -expect.extend({ toMatchImageSnapshot }); const { navigateTo, openContextMenu, @@ -13,15 +12,14 @@ const List = require("./utils/listitemidbuilder"); const Menu = require("./utils/menuitemidbuilder"); const { checkNotePresence, isPresent } = require("./utils/conditions"); -jest.setTimeout(35 * 1000); +/** + * @type {Page} + */ +global.page = null; -beforeEach(async () => { +test.beforeEach(async ({ page: _page }) => { + global.page = _page; await page.goto("http://localhost:3000/"); -}, 600000); - -afterEach(async () => { - page.close(); - page = await browser.newPage(); }); async function fillNotebookDialog(notebook) { @@ -113,7 +111,7 @@ async function deleteNotebookAndCheckAbsence(notebookSelector) { await navigateTo("notebooks"); } -test("create a notebook", createNotebookAndCheckPresence); +test("create a notebook", async () => await createNotebookAndCheckPresence()); test("create a note inside a notebook", async () => { const notebookSelector = await createNotebookAndCheckPresence(); @@ -220,11 +218,4 @@ test("pin a notebook", async () => { // wait for the menu to properly close await page.waitForTimeout(500); - - const notebook = await page.$(List.new("notebook").atIndex(0).build()); - await expect(notebook.screenshot()).resolves.toMatchImageSnapshot({ - failureThreshold: 5, - failureThresholdType: "percent", - allowSizeMismatch: true, - }); }); diff --git a/apps/web/__e2e__/notes.test.js b/apps/web/__e2e__/notes.test.js index a2c01f3a9..f70b1c931 100644 --- a/apps/web/__e2e__/notes.test.js +++ b/apps/web/__e2e__/notes.test.js @@ -5,9 +5,8 @@ * TODO: We are still not checking if toast appears on delete/restore or not. */ +const { test, expect } = require("@playwright/test"); const { getTestId, createNote, NOTE } = require("./utils"); -const { toMatchImageSnapshot } = require("jest-image-snapshot"); -expect.extend({ toMatchImageSnapshot }); const { navigateTo, clickMenuItem, @@ -25,13 +24,7 @@ const { const List = require("./utils/listitemidbuilder"); const Menu = require("./utils/menuitemidbuilder"); -jest.setTimeout(35 * 1000); - -// const testCISkip = process.env.CI ? test.skip : test; - -var createNoteAndCheckPresence = async function createNoteAndCheckPresence( - note = NOTE -) { +async function createNoteAndCheckPresence(note = NOTE) { await createNote(note, "notes"); // make sure the note has saved. @@ -42,9 +35,7 @@ var createNoteAndCheckPresence = async function createNoteAndCheckPresence( await page.click(noteSelector, { button: "left" }); return noteSelector; -}; - -const staticCreateNoteAndCheckPresence = createNoteAndCheckPresence.bind(this); +} async function deleteNoteAndCheckAbsence() { const noteSelector = await createNoteAndCheckPresence(); @@ -93,11 +84,7 @@ async function checkNotePinned(noteSelector, pause) { await page.waitForTimeout(500); const note = await page.$(List.new("note").grouped().atIndex(0).build()); - await expect(note.screenshot()).resolves.toMatchImageSnapshot({ - failureThreshold: 5, - allowSizeMismatch: true, - failureThresholdType: "percent", - }); + await expect(note.screenshot()).resolves.toMatchSnapshot("note-pinned.png"); } async function checkNoteLocked(noteSelector) { @@ -129,11 +116,7 @@ async function checkNoteColored(noteSelector) { await page.waitForTimeout(500); const note = await page.$(List.new("note").grouped().atIndex(0).build()); - await expect(note.screenshot()).resolves.toMatchImageSnapshot({ - failureThreshold: 5, - allowSizeMismatch: true, - failureThresholdType: "percent", - }); + await expect(note.screenshot()).resolves.toMatchSnapshot("note-colored.png"); await navigateTo("red"); @@ -142,11 +125,9 @@ async function checkNoteColored(noteSelector) { const coloredNote = await page.$(List.new("note").atIndex(0).build()); if (!coloredNote) throw new Error("Colored note not present."); - await expect(coloredNote.screenshot()).resolves.toMatchImageSnapshot({ - allowSizeMismatch: true, - failureThreshold: 5, - failureThresholdType: "percent", - }); + await expect(coloredNote.screenshot()).resolves.toMatchSnapshot( + "note-colored-2.png" + ); } async function addNoteToNotebook() { @@ -169,59 +150,26 @@ async function addNoteToNotebook() { await checkNotePresence(0, false); } -describe.each(["independent", "sequential"])("run tests %sly", (type) => { - beforeAll(async () => { - if (type === "sequential") { - await page.goto("http://localhost:3000/"); - } - }); - // clear all browser data after running all tests for a single case - // so this will clear all data after running test independently & sequentially. - afterAll(async () => { - try { - await jestPlaywright.resetContext(); - await page.goto("http://localhost:3000/"); - } catch (e) {} +test.describe("run tests independently", () => { + /** + * @type {Page} + */ + global.page = null; + test.beforeEach(async ({ page: _page }) => { + global.page = _page; + await page.goto("http://localhost:3000/"); }); - beforeEach(async () => { - // we only close and open new page when running tests independently - // otherwise we simply navigate to home. - if (type === "independent") { - if (page.isClosed()) page = await browser.newPage(); - await page.goto("http://localhost:3000/"); - } else { - // only navigate to Home if we are not at home - if ((await page.textContent(getTestId("routeHeader"))) !== "Notes") - await navigateTo("notes"); - } - }, 600000); - - // we have to reset the createNoteAndCheckPresence after every test - afterEach(async () => { - if (type === "independent") { - await page.close(); - createNoteAndCheckPresence = staticCreateNoteAndCheckPresence; - } else { - createNoteAndCheckPresence = async function () { - let noteSelector = List.new("note").atIndex(0).grouped().build(); - await page.click(noteSelector, { button: "left" }); - return noteSelector; - }; - } + test("create a note", async () => { + await createNoteAndCheckPresence(); }); - test("create a note", createNoteAndCheckPresence); - - test("delete a note", deleteNoteAndCheckAbsence); + test("delete a note", async () => { + await deleteNoteAndCheckAbsence(); + }); test("restore a note", async () => { - const trashItemSelector = - type === "independent" - ? await deleteNoteAndCheckAbsence() - : List.new("trash").atIndex(0).title().build(); - - if (type === "sequential") await navigateTo("trash"); + const trashItemSelector = await deleteNoteAndCheckAbsence(); await openContextMenu(trashItemSelector); @@ -234,15 +182,15 @@ describe.each(["independent", "sequential"])("run tests %sly", (type) => { await checkNotePresence(); }); - test.skip("add a note to notebook", async () => { - const noteSelector = await createNoteAndCheckPresence(); + // test.skip("add a note to notebook", async () => { + // const noteSelector = await createNoteAndCheckPresence(); - await openContextMenu(noteSelector); + // await openContextMenu(noteSelector); - await clickMenuItem("addtonotebook(s)"); + // await clickMenuItem("addtonotebook(s)"); - await addNoteToNotebook(); - }); + // await addNoteToNotebook(); + // }); test("favorite a note", async () => { const noteSelector = await createNoteAndCheckPresence(); @@ -267,11 +215,9 @@ describe.each(["independent", "sequential"])("run tests %sly", (type) => { test("unfavorite a note", async () => { const noteSelector = await createNoteAndCheckPresence(); - if (type === "independent") { - await useContextMenu(noteSelector, async () => { - await clickMenuItem("favorite"); - }); - } + await useContextMenu(noteSelector, async () => { + await clickMenuItem("favorite"); + }); await page.waitForTimeout(500); @@ -337,8 +283,7 @@ describe.each(["independent", "sequential"])("run tests %sly", (type) => { test("unpin a note", async () => { const noteSelector = await createNoteAndCheckPresence(); - if (type === "independent") - await useContextMenu(noteSelector, () => clickMenuItem("pin")); + await useContextMenu(noteSelector, () => clickMenuItem("pin")); await page.waitForTimeout(500); @@ -377,21 +322,6 @@ describe.each(["independent", "sequential"])("run tests %sly", (type) => { await expect(page.$(trashItemSelector)).resolves.toBeFalsy(); }); -}); - -describe("run tests only independently", () => { - beforeAll(() => { - createNoteAndCheckPresence = staticCreateNoteAndCheckPresence; - }); - - beforeEach(async () => { - await page.goto("http://localhost:3000/"); - }, 600000); - - afterEach(async () => { - await page.close(); - page = await browser.newPage(); - }); test("lock a note", async () => { const noteSelector = await createNoteAndCheckPresence(); @@ -406,7 +336,7 @@ describe("run tests only independently", () => { await lockUnlockNote(noteSelector, "lock"); - await page.waitForTimeout(500); + await page.waitForTimeout(1000); await lockUnlockNote(noteSelector, "unlock"); @@ -444,15 +374,15 @@ describe("run tests only independently", () => { await checkNoteLocked(noteSelector); }); - test.skip("add a note to notebook from properties", async () => { - await createNoteAndCheckPresence(); + // test.skip("add a note to notebook from properties", async () => { + // await createNoteAndCheckPresence(); - await page.click(getTestId("properties")); + // await page.click(getTestId("properties")); - await page.click(getTestId("properties-add-to-nb")); + // await page.click(getTestId("properties-add-to-nb")); - await addNoteToNotebook(); - }); + // await addNoteToNotebook(); + // }); test("assign a color to note from properties", async () => { const noteSelector = await createNoteAndCheckPresence(); diff --git a/apps/web/__e2e__/notes.test.js-snapshots/note-colored-2-Chromium-linux.png b/apps/web/__e2e__/notes.test.js-snapshots/note-colored-2-Chromium-linux.png new file mode 100644 index 000000000..9b25bf22d Binary files /dev/null and b/apps/web/__e2e__/notes.test.js-snapshots/note-colored-2-Chromium-linux.png differ diff --git a/apps/web/__e2e__/notes.test.js-snapshots/note-colored-2-Firefox-linux.png b/apps/web/__e2e__/notes.test.js-snapshots/note-colored-2-Firefox-linux.png new file mode 100644 index 000000000..6565debb6 Binary files /dev/null and b/apps/web/__e2e__/notes.test.js-snapshots/note-colored-2-Firefox-linux.png differ diff --git a/apps/web/__e2e__/notes.test.js-snapshots/note-colored-2-WebKit-linux.png b/apps/web/__e2e__/notes.test.js-snapshots/note-colored-2-WebKit-linux.png new file mode 100644 index 000000000..3c17693b1 Binary files /dev/null and b/apps/web/__e2e__/notes.test.js-snapshots/note-colored-2-WebKit-linux.png differ diff --git a/apps/web/__e2e__/notes.test.js-snapshots/note-colored-Chromium-linux.png b/apps/web/__e2e__/notes.test.js-snapshots/note-colored-Chromium-linux.png new file mode 100644 index 000000000..9b25bf22d Binary files /dev/null and b/apps/web/__e2e__/notes.test.js-snapshots/note-colored-Chromium-linux.png differ diff --git a/apps/web/__e2e__/notes.test.js-snapshots/note-colored-Firefox-linux.png b/apps/web/__e2e__/notes.test.js-snapshots/note-colored-Firefox-linux.png new file mode 100644 index 000000000..6565debb6 Binary files /dev/null and b/apps/web/__e2e__/notes.test.js-snapshots/note-colored-Firefox-linux.png differ diff --git a/apps/web/__e2e__/notes.test.js-snapshots/note-colored-WebKit-linux.png b/apps/web/__e2e__/notes.test.js-snapshots/note-colored-WebKit-linux.png new file mode 100644 index 000000000..3c17693b1 Binary files /dev/null and b/apps/web/__e2e__/notes.test.js-snapshots/note-colored-WebKit-linux.png differ diff --git a/apps/web/__e2e__/notes.test.js-snapshots/note-pinned-Chromium-linux.png b/apps/web/__e2e__/notes.test.js-snapshots/note-pinned-Chromium-linux.png new file mode 100644 index 000000000..1ef5b0f5d Binary files /dev/null and b/apps/web/__e2e__/notes.test.js-snapshots/note-pinned-Chromium-linux.png differ diff --git a/apps/web/__e2e__/notes.test.js-snapshots/note-pinned-Firefox-linux.png b/apps/web/__e2e__/notes.test.js-snapshots/note-pinned-Firefox-linux.png new file mode 100644 index 000000000..0e10e6366 Binary files /dev/null and b/apps/web/__e2e__/notes.test.js-snapshots/note-pinned-Firefox-linux.png differ diff --git a/apps/web/__e2e__/notes.test.js-snapshots/note-pinned-WebKit-linux.png b/apps/web/__e2e__/notes.test.js-snapshots/note-pinned-WebKit-linux.png new file mode 100644 index 000000000..220473b2d Binary files /dev/null and b/apps/web/__e2e__/notes.test.js-snapshots/note-pinned-WebKit-linux.png differ diff --git a/apps/web/__e2e__/utils/conditions.js b/apps/web/__e2e__/utils/conditions.js index a508ca371..e0749030e 100644 --- a/apps/web/__e2e__/utils/conditions.js +++ b/apps/web/__e2e__/utils/conditions.js @@ -1,5 +1,6 @@ /* eslint-disable no-undef */ +const { expect } = require("@playwright/test"); const { getTestId, NOTE } = require("."); const List = require("./listitemidbuilder"); diff --git a/apps/web/package.json b/apps/web/package.json index b54224e12..911825ab4 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -47,12 +47,12 @@ "zustand": "^3.3.1" }, "devDependencies": { + "@playwright/test": "^1.12.0", "@types/hookrouter": "^2.2.5", - "@types/jest": "^26.0.20", - "@types/jest-image-snapshot": "^4.1.0", "@types/node-fetch": "^2.5.10", "@types/quill": "^2.0.5", "babel-eslint": "^10.1.0", + "concurrently": "^6.2.0", "chalk": "^4.1.0", "env-cmd": "^10.1.0", "eslint": "^7.20.0", @@ -62,8 +62,8 @@ "eslint-plugin-jsx-a11y": "^6.2.3", "eslint-plugin-react": "^7.22.0", "eslint-plugin-react-hooks": "^4.2.0", - "jest-image-snapshot": "^4.3.0", - "jest-playwright-preset": "^1.4.5", + "jest-image-snapshot": "^4.5.0", + "npm-run-all": "^4.1.5", "progress-bar-webpack-plugin": "^2.1.0", "source-map-explorer": "^2.5.2", "typescript": "^4.1.5", @@ -75,7 +75,7 @@ "build:desktop": "env-cmd -e all,desktop react-scripts build", "deploy": "./scripts/deploy.sh", "debug": "env-cmd -e all,dev,web,silent react-scripts start", - "test": "env-cmd -e dev,silent jest -c jest.e2e.config.js", + "test": "node ./scripts/run-tests.js", "test:debug": "env-cmd -e dev,debug,silent jest -c jest.e2e.config.js", "eject": "react-scripts eject", "update": "npm i @streetwriters/editor@latest @streetwriters/notesnook-core@latest @streetwriters/theme@latest", diff --git a/apps/web/playwright.config.js b/apps/web/playwright.config.js new file mode 100644 index 000000000..4bec5dbbd --- /dev/null +++ b/apps/web/playwright.config.js @@ -0,0 +1,35 @@ +const { devices } = require("@playwright/test"); +const IS_CI = !!process.env.CI; + +module.exports = { + // Look for test files in the "tests" directory, relative to this configuration file + testDir: "__e2e__", + + // Each test is given 30 seconds + timeout: 30000, + workers: IS_CI ? 2 : 4, + use: { + headless: true, + + // Artifacts + screenshot: "only-on-failure", + video: "retry-with-video", + }, + projects: [ + { + name: "Chromium", + use: { + // Configure the browser to use. + browserName: "chromium", + }, + }, + { + name: "Firefox", + use: { browserName: "firefox" }, + }, + { + name: "WebKit", + use: { browserName: "webkit" }, + }, + ], +}; diff --git a/apps/web/scripts/run-tests.js b/apps/web/scripts/run-tests.js new file mode 100644 index 000000000..6ef42e6fa --- /dev/null +++ b/apps/web/scripts/run-tests.js @@ -0,0 +1,37 @@ +const { spawn } = require("child_process"); + +const PORT = 3000; +function startServer() { + return new Promise((resolve) => { + const process = spawn("yarn", ["debug", "-p", PORT], { + detached: true, + stdio: "pipe", + }); + process.stdout.on("data", (data) => { + const message = data.toString(); + if (message.includes("create a production build, use yarn build.")) + resolve(process); + }); + }); +} + +function startTestRunner() { + return new Promise((resolve) => { + const process = spawn("yarn", ["playwright", "test"], { + detached: true, + stdio: "inherit", + }); + process.on("close", () => resolve()); + }); +} + +(async function () { + console.log("Starting server at port", PORT, "..."); + const server = await startServer(); + + console.log("Starting tests..."); + await startTestRunner(); + + console.log("All done."); + process.kill(-server.pid); +})(); diff --git a/apps/web/test-results/notebooks-pin-a-notebook-Firefox/pinned-notebook-actual.png b/apps/web/test-results/notebooks-pin-a-notebook-Firefox/pinned-notebook-actual.png new file mode 100644 index 000000000..fe0326c93 Binary files /dev/null and b/apps/web/test-results/notebooks-pin-a-notebook-Firefox/pinned-notebook-actual.png differ diff --git a/apps/web/test-results/notebooks-pin-a-notebook-Firefox/pinned-notebook-diff.png b/apps/web/test-results/notebooks-pin-a-notebook-Firefox/pinned-notebook-diff.png new file mode 100644 index 000000000..2ba9c976d Binary files /dev/null and b/apps/web/test-results/notebooks-pin-a-notebook-Firefox/pinned-notebook-diff.png differ diff --git a/apps/web/test-results/notebooks-pin-a-notebook-Firefox/pinned-notebook-expected.png b/apps/web/test-results/notebooks-pin-a-notebook-Firefox/pinned-notebook-expected.png new file mode 100644 index 000000000..43560607d Binary files /dev/null and b/apps/web/test-results/notebooks-pin-a-notebook-Firefox/pinned-notebook-expected.png differ diff --git a/apps/web/test-results/notebooks-pin-a-notebook-Firefox/test-failed-1.png b/apps/web/test-results/notebooks-pin-a-notebook-Firefox/test-failed-1.png new file mode 100644 index 000000000..06c43129c Binary files /dev/null and b/apps/web/test-results/notebooks-pin-a-notebook-Firefox/test-failed-1.png differ diff --git a/apps/web/test-results/notebooks-pin-a-notebook-WebKit/pinned-notebook-actual.png b/apps/web/test-results/notebooks-pin-a-notebook-WebKit/pinned-notebook-actual.png new file mode 100644 index 000000000..b6e23fcf7 Binary files /dev/null and b/apps/web/test-results/notebooks-pin-a-notebook-WebKit/pinned-notebook-actual.png differ diff --git a/apps/web/test-results/notebooks-pin-a-notebook-WebKit/pinned-notebook-diff.png b/apps/web/test-results/notebooks-pin-a-notebook-WebKit/pinned-notebook-diff.png new file mode 100644 index 000000000..aed4a25be Binary files /dev/null and b/apps/web/test-results/notebooks-pin-a-notebook-WebKit/pinned-notebook-diff.png differ diff --git a/apps/web/test-results/notebooks-pin-a-notebook-WebKit/pinned-notebook-expected.png b/apps/web/test-results/notebooks-pin-a-notebook-WebKit/pinned-notebook-expected.png new file mode 100644 index 000000000..a6d149c8f Binary files /dev/null and b/apps/web/test-results/notebooks-pin-a-notebook-WebKit/pinned-notebook-expected.png differ diff --git a/apps/web/test-results/notebooks-pin-a-notebook-WebKit/test-failed-1.png b/apps/web/test-results/notebooks-pin-a-notebook-WebKit/test-failed-1.png new file mode 100644 index 000000000..71532c348 Binary files /dev/null and b/apps/web/test-results/notebooks-pin-a-notebook-WebKit/test-failed-1.png differ diff --git a/apps/web/yarn.lock b/apps/web/yarn.lock index 03f7c26e8..f986ddbd2 100644 --- a/apps/web/yarn.lock +++ b/apps/web/yarn.lock @@ -28,6 +28,11 @@ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.13.tgz" integrity sha512-U/hshG5R+SIoW7HVWIdmy1cB7s3ki+r3FpyEZiCgpi4tFgPnX/vynY80ZGSASOIrUM6O7VxOgCZgdt7h97bUGg== +"@babel/compat-data@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.4.tgz#45720fe0cecf3fd42019e1d12cc3d27fadc98d58" + integrity sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ== + "@babel/core@7.12.3": version "7.12.3" resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz" @@ -71,6 +76,27 @@ semver "^5.4.1" source-map "^0.5.0" +"@babel/core@^7.14.0": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38" + integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.14.3" + "@babel/helper-compilation-targets" "^7.13.16" + "@babel/helper-module-transforms" "^7.14.2" + "@babel/helpers" "^7.14.0" + "@babel/parser" "^7.14.3" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.2" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + "@babel/generator@^7.12.1", "@babel/generator@^7.12.13", "@babel/generator@^7.12.15": version "7.12.15" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz" @@ -89,6 +115,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.14.2", "@babel/generator@^7.14.3": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91" + integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA== + dependencies: + "@babel/types" "^7.14.2" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz" @@ -114,6 +149,16 @@ browserslist "^4.14.5" semver "^5.5.0" +"@babel/helper-compilation-targets@^7.13.16": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz#33ebd0ffc34248051ee2089350a929ab02f2a516" + integrity sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA== + dependencies: + "@babel/compat-data" "^7.14.4" + "@babel/helper-validator-option" "^7.12.17" + browserslist "^4.16.6" + semver "^6.3.0" + "@babel/helper-create-class-features-plugin@^7.12.1", "@babel/helper-create-class-features-plugin@^7.12.16": version "7.13.11" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz#30d30a005bca2c953f5653fc25091a492177f4f6" @@ -136,6 +181,18 @@ "@babel/helper-replace-supers" "^7.12.13" "@babel/helper-split-export-declaration" "^7.12.13" +"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.14.0", "@babel/helper-create-class-features-plugin@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.4.tgz#abf888d836a441abee783c75229279748705dc42" + integrity sha512-idr3pthFlDCpV+p/rMgGLGYIVtazeatrSOQk8YzO2pAepIjQhCN3myeihVg58ax2bbbGK9PUE1reFi7axOYIOw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-function-name" "^7.14.2" + "@babel/helper-member-expression-to-functions" "^7.13.12" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-replace-supers" "^7.14.4" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-create-regexp-features-plugin@^7.12.13": version "7.12.16" resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.16.tgz" @@ -160,6 +217,15 @@ "@babel/template" "^7.12.13" "@babel/types" "^7.12.13" +"@babel/helper-function-name@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2" + integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ== + dependencies: + "@babel/helper-get-function-arity" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/types" "^7.14.2" + "@babel/helper-get-function-arity@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz" @@ -195,6 +261,13 @@ dependencies: "@babel/types" "^7.12.13" +"@babel/helper-module-imports@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" + integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== + dependencies: + "@babel/types" "^7.13.12" + "@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz" @@ -210,6 +283,20 @@ "@babel/types" "^7.12.13" lodash "^4.17.19" +"@babel/helper-module-transforms@^7.14.0", "@babel/helper-module-transforms@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5" + integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA== + dependencies: + "@babel/helper-module-imports" "^7.13.12" + "@babel/helper-replace-supers" "^7.13.12" + "@babel/helper-simple-access" "^7.13.12" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-validator-identifier" "^7.14.0" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.2" + "@babel/helper-optimise-call-expression@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz" @@ -222,6 +309,11 @@ resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz" integrity sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA== +"@babel/helper-plugin-utils@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" + integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== + "@babel/helper-remap-async-to-generator@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.13.tgz" @@ -251,6 +343,16 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.12" +"@babel/helper-replace-supers@^7.13.12", "@babel/helper-replace-supers@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz#b2ab16875deecfff3ddfcd539bc315f72998d836" + integrity sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.13.12" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.4" + "@babel/helper-simple-access@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz" @@ -258,6 +360,13 @@ dependencies: "@babel/types" "^7.12.13" +"@babel/helper-simple-access@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" + integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== + dependencies: + "@babel/types" "^7.13.12" + "@babel/helper-skip-transparent-expression-wrappers@^7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz" @@ -277,11 +386,21 @@ resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz" integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== +"@babel/helper-validator-identifier@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" + integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== + "@babel/helper-validator-option@^7.12.1", "@babel/helper-validator-option@^7.12.16": version "7.12.16" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.16.tgz" integrity sha512-uCgsDBPUQDvzr11ePPo4TVEocxj8RXjUVSC/Y8N1YpVAI/XDdUwGJu78xmlGhTxj2ntaWM7n9LQdRtyhOzT2YQ== +"@babel/helper-validator-option@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" + integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== + "@babel/helper-wrap-function@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.13.tgz" @@ -301,6 +420,15 @@ "@babel/traverse" "^7.12.13" "@babel/types" "^7.12.13" +"@babel/helpers@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62" + integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg== + dependencies: + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.14.0" + "@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz" @@ -320,6 +448,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.13.tgz#42f03862f4aed50461e543270916b47dd501f0df" integrity sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw== +"@babel/parser@^7.14.2", "@babel/parser@^7.14.3": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.4.tgz#a5c560d6db6cd8e6ed342368dea8039232cbab18" + integrity sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA== + "@babel/plugin-proposal-async-generator-functions@^7.12.1", "@babel/plugin-proposal-async-generator-functions@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.13.tgz" @@ -345,6 +478,14 @@ "@babel/helper-create-class-features-plugin" "^7.12.13" "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-proposal-class-properties@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" + integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-proposal-decorators@7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.12.1.tgz" @@ -362,6 +503,14 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-dynamic-import" "^7.8.0" +"@babel/plugin-proposal-dynamic-import@^7.13.8": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz#01ebabd7c381cff231fa43e302939a9de5be9d9f" + integrity sha512-oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-proposal-export-namespace-from@^7.12.1", "@babel/plugin-proposal-export-namespace-from@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz" @@ -386,6 +535,14 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" +"@babel/plugin-proposal-logical-assignment-operators@^7.13.8": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz#222348c080a1678e0e74ea63fe76f275882d1fd7" + integrity sha512-1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-proposal-nullish-coalescing-operator@7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz" @@ -402,6 +559,14 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" +"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz#425b11dc62fc26939a2ab42cbba680bdf5734546" + integrity sha512-ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-numeric-separator@7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.1.tgz" @@ -453,6 +618,15 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" "@babel/plugin-syntax-optional-chaining" "^7.8.0" +"@babel/plugin-proposal-optional-chaining@^7.13.12": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz#df8171a8b9c43ebf4c1dabe6311b432d83e1b34e" + integrity sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-proposal-private-methods@^7.12.1", "@babel/plugin-proposal-private-methods@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.13.tgz" @@ -461,6 +635,24 @@ "@babel/helper-create-class-features-plugin" "^7.12.13" "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-proposal-private-methods@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" + integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-proposal-private-property-in-object@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz#b1a1f2030586b9d3489cc26179d2eb5883277636" + integrity sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-create-class-features-plugin" "^7.14.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-private-property-in-object" "^7.14.0" + "@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz" @@ -497,7 +689,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-dynamic-import@^7.8.0": +"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== @@ -581,6 +773,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-private-property-in-object@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz#762a4babec61176fec6c88480dec40372b140c0b" + integrity sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-top-level-await@^7.12.1", "@babel/plugin-syntax-top-level-await@^7.12.13", "@babel/plugin-syntax-top-level-await@^7.8.3": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz" @@ -731,6 +930,16 @@ "@babel/helper-simple-access" "^7.12.13" babel-plugin-dynamic-import-node "^2.3.3" +"@babel/plugin-transform-modules-commonjs@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz#52bc199cb581e0992edba0f0f80356467587f161" + integrity sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ== + dependencies: + "@babel/helper-module-transforms" "^7.14.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-simple-access" "^7.13.12" + babel-plugin-dynamic-import-node "^2.3.3" + "@babel/plugin-transform-modules-systemjs@^7.12.1", "@babel/plugin-transform-modules-systemjs@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.13.tgz" @@ -916,6 +1125,15 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-typescript" "^7.12.13" +"@babel/plugin-transform-typescript@^7.13.0": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.4.tgz#1c48829fa6d5f2de646060cd08abb6cda4b521a7" + integrity sha512-WYdcGNEO7mCCZ2XzRlxwGj3PgeAr50ifkofOUC/+IN/GzKLB+biDPVBUAQN2C/dVZTvEXCp80kfQ1FFZPrwykQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.4" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-typescript" "^7.12.13" + "@babel/plugin-transform-unicode-escapes@^7.12.1", "@babel/plugin-transform-unicode-escapes@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz" @@ -1118,6 +1336,15 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-typescript" "^7.12.1" +"@babel/preset-typescript@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.13.0.tgz#ab107e5f050609d806fbb039bec553b33462c60a" + integrity sha512-LXJwxrHy0N3f6gIJlYbLta1D9BDtHpQeqwzM0LIfjDlr6UE/D5Mc7W4iDiQzaE+ks0sTjT26ArcHWnJVt0QiHw== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-option" "^7.12.17" + "@babel/plugin-transform-typescript" "^7.13.0" + "@babel/runtime-corejs3@^7.10.2": version "7.12.13" resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.13.tgz" @@ -1178,6 +1405,20 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b" + integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.14.2" + "@babel/helper-function-name" "^7.14.2" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/parser" "^7.14.2" + "@babel/types" "^7.14.2" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.12.6", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": version "7.12.13" resolved "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz" @@ -1196,6 +1437,14 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.4.tgz#bfd6980108168593b38b3eb48a24aa026b919bc0" + integrity sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw== + dependencies: + "@babel/helper-validator-identifier" "^7.14.0" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" @@ -1357,11 +1606,6 @@ resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz" integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== -"@hapi/hoek@^9.0.0": - version "9.1.1" - resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz" - integrity sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw== - "@hapi/joi@^15.1.0": version "15.1.1" resolved "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz" @@ -1379,13 +1623,6 @@ dependencies: "@hapi/hoek" "^8.3.0" -"@hapi/topo@^5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz" - integrity sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw== - dependencies: - "@hapi/hoek" "^9.0.0" - "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" @@ -1619,6 +1856,50 @@ mkdirp "^1.0.4" rimraf "^3.0.2" +"@playwright/test@^1.12.0": + version "1.12.0" + resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.12.0.tgz#9c833528e42859d9049cde08505f6e4deefed8ea" + integrity sha512-EwvFbbtLulXt0QHmQ/UTB1CSWDkZpIRA3L+XxgiM6x/YTnbeJjbqwWfKwi+Cp9hgNqZMiaS6uoD387VFLGBiGQ== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/core" "^7.14.0" + "@babel/plugin-proposal-class-properties" "^7.13.0" + "@babel/plugin-proposal-dynamic-import" "^7.13.8" + "@babel/plugin-proposal-export-namespace-from" "^7.12.13" + "@babel/plugin-proposal-logical-assignment-operators" "^7.13.8" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" + "@babel/plugin-proposal-numeric-separator" "^7.12.13" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" + "@babel/plugin-proposal-private-methods" "^7.13.0" + "@babel/plugin-proposal-private-property-in-object" "^7.14.0" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-transform-modules-commonjs" "^7.14.0" + "@babel/preset-typescript" "^7.13.0" + colors "^1.4.0" + commander "^6.1.0" + debug "^4.1.1" + expect "^26.4.2" + extract-zip "^2.0.1" + https-proxy-agent "^5.0.0" + jpeg-js "^0.4.2" + mime "^2.4.6" + minimatch "^3.0.3" + ms "^2.1.2" + pirates "^4.0.1" + pixelmatch "^5.2.1" + pngjs "^5.0.0" + progress "^2.0.3" + proper-lockfile "^4.1.1" + proxy-from-env "^1.1.0" + rimraf "^3.0.2" + source-map-support "^0.4.18" + stack-utils "^2.0.3" + ws "^7.4.6" + yazl "^2.5.1" + "@pmmmwh/react-refresh-webpack-plugin@0.4.3": version "0.4.3" resolved "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.3.tgz" @@ -1671,23 +1952,6 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@sideway/address@^4.1.0": - version "4.1.1" - resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.1.tgz" - integrity sha512-+I5aaQr3m0OAmMr7RQ3fR9zx55sejEYR2BFJaxL+zT3VM2611X0SHvPWIbAUBZVTn/YzYKbV8gJ2oT/QELknfQ== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@sideway/formula@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz" - integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== - -"@sideway/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz" - integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== - "@sinonjs/commons@^1.7.0": version "1.8.2" resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz" @@ -2054,23 +2318,6 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest-image-snapshot@^4.1.0": - version "4.1.3" - resolved "https://registry.npmjs.org/@types/jest-image-snapshot/-/jest-image-snapshot-4.1.3.tgz" - integrity sha512-JqDoqKInxfMhD0aN/iGzli4ZqRSwfjyPpFoE5BrshfGBHpW1BUCIEI3OUu3bwxzfogI/aLo2OLVKkbOyxxDrFg== - dependencies: - "@types/jest" "*" - "@types/pixelmatch" "*" - ssim.js "^3.1.0" - -"@types/jest@*", "@types/jest@^26.0.20": - version "26.0.20" - resolved "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz" - integrity sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA== - dependencies: - jest-diff "^26.0.0" - pretty-format "^26.0.0" - "@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": version "7.0.7" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz" @@ -2109,13 +2356,6 @@ resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/pixelmatch@*": - version "5.2.2" - resolved "https://registry.npmjs.org/@types/pixelmatch/-/pixelmatch-5.2.2.tgz" - integrity sha512-ndpfW/H8+SAiI3wt+f8DlHGgB7OeBdgFgBJ6v/1l3SpJ0MCn9wtXFb4mUccMujN5S4DMmAh7MVy1O3WcXrHUKw== - dependencies: - "@types/node" "*" - "@types/prettier@^2.0.0": version "2.2.0" resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.0.tgz" @@ -2181,11 +2421,6 @@ dependencies: source-map "^0.6.1" -"@types/wait-on@^5.2.0": - version "5.2.0" - resolved "https://registry.npmjs.org/@types/wait-on/-/wait-on-5.2.0.tgz" - integrity sha512-3+jsMyPm8aot1mqDUDLOl+dejPvpysUUoUXD6CCRY20MNNhcjEfvdcBnGdnk7DEYs9Hr16ubGJA/9/QW0Df/9g== - "@types/webpack-sources@*": version "2.1.0" resolved "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz" @@ -2641,7 +2876,7 @@ ansi-regex@^5.0.0: ansi-styles@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= ansi-styles@^3.2.0, ansi-styles@^3.2.1: @@ -2674,23 +2909,11 @@ anymatch@^3.0.3, anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" -append-transform@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz" - integrity sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg== - dependencies: - default-require-extensions "^3.0.0" - aproba@^1.1.1: version "1.2.0" resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== -archy@^1.0.0: - version "1.0.0" - 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.npmjs.org/argparse/-/argparse-1.0.10.tgz" @@ -2913,13 +3136,6 @@ axe-core@^4.0.2: resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.1.2.tgz" integrity sha512-V+Nq70NxKhYt89ArVcaNL9FDryB3vQOd+BFXZIfO3RP6rwtj+2yqqqdHEkacutglPaZLkJeuXKCjCJDMGPtPqg== -axios@^0.21.1: - version "0.21.1" - resolved "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz" - integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== - dependencies: - follow-redirects "^1.10.0" - axobject-query@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz" @@ -3353,6 +3569,17 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4 escalade "^3.1.1" node-releases "^1.1.70" +browserslist@^4.16.6: + version "4.16.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" + integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== + dependencies: + caniuse-lite "^1.0.30001219" + colorette "^1.2.2" + electron-to-chromium "^1.3.723" + escalade "^3.1.1" + node-releases "^1.1.71" + bser@2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" @@ -3481,16 +3708,6 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -caching-transform@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz" - integrity sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA== - dependencies: - hasha "^5.0.0" - make-dir "^3.0.0" - package-hash "^4.0.0" - write-file-atomic "^3.0.0" - 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" @@ -3556,6 +3773,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, can resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001187.tgz" integrity sha512-w7/EP1JRZ9552CyrThUnay2RkZ1DXxKe/Q2swTC4+LElLh9RRYrL1Z+27LlakB8kzY0fSmHw9mc7XYDUKAKWMA== +caniuse-lite@^1.0.30001219: + version "1.0.30001235" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001235.tgz#ad5ca75bc5a1f7b12df79ad806d715a43a5ac4ed" + integrity sha512-zWEwIVqnzPkSAXOUlQnPW2oKoYb2aLQ4Q5ejdjBcnH63rfypaW34CxaeBn1VMya2XaEU3P/R2qHpWyj+l0BT1A== + capture-exit@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz" @@ -3584,7 +3806,7 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: chalk@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= dependencies: ansi-styles "^2.2.1" @@ -3833,6 +4055,16 @@ colorette@^1.2.1: resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz" integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== +colorette@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== + +colors@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" @@ -3845,21 +4077,11 @@ commander@^2.20.0: resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz" - integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== - commander@^4.0.0, commander@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== -commander@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - commander@^6.1.0, commander@^6.2.0: version "6.2.1" resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz" @@ -3930,6 +4152,21 @@ concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" +concurrently@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-6.2.0.tgz#587e2cb8afca7234172d8ea55176088632c4c56d" + integrity sha512-v9I4Y3wFoXCSY2L73yYgwA9ESrQMpRn80jMcqMgHx720Hecz2GZAvTI6bREVST6lkddNypDKRN22qhK0X8Y00g== + dependencies: + chalk "^4.1.0" + date-fns "^2.16.1" + lodash "^4.17.21" + read-pkg "^5.2.0" + rxjs "^6.6.3" + spawn-command "^0.0.2-1" + supports-color "^8.1.0" + tree-kill "^1.2.2" + yargs "^16.2.0" + confusing-browser-globals@^1.0.10: version "1.0.10" resolved "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz" @@ -4106,7 +4343,7 @@ cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" -cross-spawn@^6.0.0: +cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -4360,14 +4597,6 @@ currency-symbol-map@^5.0.1: resolved "https://registry.yarnpkg.com/currency-symbol-map/-/currency-symbol-map-5.0.1.tgz#447629c7e26730299aa6174c55bde281f682b2e5" integrity sha512-2yHvoVBPIS9Dx7fjritu9l7UHWo4Z3D2oQnQj8AYwUee2j/PAcoHB4issCqwabfbipISZ/iG6vVYsfrAoks2eA== -cwd@^0.10.0: - version "0.10.0" - resolved "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz" - integrity sha1-FyQAaUBXwioTsM8WFix+S3p/5Wc= - dependencies: - find-pkg "^0.1.2" - fs-exists-sync "^0.1.0" - cyclist@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz" @@ -4402,6 +4631,11 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" +date-fns@^2.16.1: + version "2.22.1" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.22.1.tgz#1e5af959831ebb1d82992bf67b765052d8f0efc4" + integrity sha512-yUFPQjrxEmIsMqlHhAhmxkuH769baF21Kk+nZwZGyrMoyLA+LugaQtC0+Tqf9CBUUULWwUJt6Q5ySI3LJDDCGg== + dayjs@^1.10.4: version "1.10.4" resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz" @@ -4485,13 +4719,6 @@ default-gateway@^4.2.0: execa "^1.0.0" ip-regex "^2.1.0" -default-require-extensions@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz" - integrity sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg== - dependencies: - strip-bom "^4.0.0" - define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" @@ -4770,6 +4997,11 @@ electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.649: resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.664.tgz" integrity sha512-yb8LrTQXQnh9yhnaIHLk6CYugF/An50T20+X0h++hjjhVfgSp1DGoMSYycF8/aD5eiqS4QwaNhiduFvK8rifRg== +electron-to-chromium@^1.3.723: + version "1.3.750" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.750.tgz#7e5ef6f478316b0bd656af5942fe502610e97eaf" + integrity sha512-Eqy9eHNepZxJXT+Pc5++zvEi5nQ6AGikwFYDCYwXUFBr+ynJ6pDG7MzZmwGYCIuXShLJM0n4bq+aoKDmvSGJ8A== + electron-updater@^4.3.8: version "4.3.8" resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.3.8.tgz#94f1731682a756385726183e2b04b959cb319456" @@ -4939,6 +5171,28 @@ es-abstract@^1.18.0-next.1: string.prototype.trimend "^1.0.3" string.prototype.trimstart "^1.0.3" +es-abstract@^1.18.0-next.2: + version "1.18.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" + 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-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" @@ -4957,11 +5211,6 @@ es5-ext@^0.10.35, es5-ext@^0.10.50: es6-symbol "~3.1.3" next-tick "~1.0.0" -es6-error@^4.0.1: - version "4.1.1" - resolved "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz" - integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== - 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" @@ -5350,19 +5599,7 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-tilde@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz" - integrity sha1-C4HrqJflo9MdHD0QL48BRB5VlEk= - dependencies: - os-homedir "^1.0.1" - -expect-playwright@^0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/expect-playwright/-/expect-playwright-0.3.4.tgz#97a2eea0f4887350cf57b1f132484d14ca5bb301" - integrity sha512-JulhMkc5lVvpF18ImWLqviHZpo4qzT9FfpF+lP4D+U9guGUnYOCFpS/5Qk1c3zKhYHJL1JBEfiiGfcRUuzsnEg== - -expect@^26.6.0, expect@^26.6.2: +expect@^26.4.2, expect@^26.6.0, expect@^26.6.2: version "26.6.2" resolved "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz" integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== @@ -5620,7 +5857,7 @@ find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.2.0, find-cache-dir@^3.3.1: +find-cache-dir@^3.3.1: version "3.3.1" resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz" integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== @@ -5629,30 +5866,6 @@ find-cache-dir@^3.2.0, find-cache-dir@^3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" -find-file-up@^0.1.2: - version "0.1.3" - resolved "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz" - integrity sha1-z2gJG8+fMApA2kEbN9pczlovvqA= - dependencies: - fs-exists-sync "^0.1.0" - resolve-dir "^0.1.0" - -find-pkg@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz" - integrity sha1-G9wiwG42NlUy4qJIBGhUuXiNpVc= - dependencies: - find-file-up "^0.1.2" - -find-process@^1.4.4: - version "1.4.4" - resolved "https://registry.npmjs.org/find-process/-/find-process-1.4.4.tgz" - integrity sha512-rRSuT1LE4b+BFK588D2V8/VG9liW0Ark1XJgroxZXI0LtwmQJOb490DvDYvbm+Hek9ETFzTutGfJ90gumITPhQ== - dependencies: - chalk "^4.0.0" - commander "^5.1.0" - debug "^4.1.1" - find-root@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz" @@ -5706,7 +5919,7 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -follow-redirects@^1.0.0, follow-redirects@^1.10.0: +follow-redirects@^1.0.0: version "1.13.2" resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.2.tgz" integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA== @@ -5716,14 +5929,6 @@ for-in@^1.0.2: resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= -foreground-child@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz" - integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^3.0.2" - forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" @@ -5803,16 +6008,6 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -fromentries@^1.2.0: - version "1.3.2" - resolved "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz" - integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== - -fs-exists-sync@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz" - integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0= - fs-extra@^7.0.0: version "7.0.1" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" @@ -5886,7 +6081,7 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -gensync@^1.0.0-beta.1: +gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== @@ -5896,7 +6091,7 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.1, get-intrinsic@^1.0.2, get-intrinsic@^1.1.0: +get-intrinsic@^1.0.1, 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" integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== @@ -5917,7 +6112,7 @@ get-package-type@^0.1.0: get-stdin@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" integrity sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g= get-stream@^4.0.0: @@ -5980,24 +6175,6 @@ global-modules@2.0.0: dependencies: global-prefix "^3.0.0" -global-modules@^0.2.3: - version "0.2.3" - resolved "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz" - integrity sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0= - dependencies: - global-prefix "^0.1.4" - is-windows "^0.2.0" - -global-prefix@^0.1.4: - version "0.1.5" - resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz" - integrity sha1-jTvGuNo8qBEqFg2NSW/wRiv+948= - dependencies: - homedir-polyfill "^1.0.0" - ini "^1.3.4" - is-windows "^0.2.0" - which "^1.2.12" - global-prefix@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz" @@ -6056,7 +6233,7 @@ globby@^6.1.0: glur@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/glur/-/glur-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/glur/-/glur-1.1.2.tgz#f20ea36db103bfc292343921f1f91e83c3467689" integrity sha1-8g6jbbEDv8KSNDkh8fkeg8NGdok= good-listener@^1.2.2: @@ -6116,11 +6293,16 @@ harmony-reflect@^1.4.6: has-ansi@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= dependencies: ansi-regex "^2.0.0" +has-bigints@^1.0.1: + version "1.0.1" + 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" @@ -6136,6 +6318,11 @@ has-symbols@^1.0.1: resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== +has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + has-value@^0.3.1: version "0.3.1" resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" @@ -6191,14 +6378,6 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hasha@^5.0.0: - version "5.2.2" - resolved "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz" - integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== - dependencies: - is-stream "^2.0.0" - type-fest "^0.8.0" - he@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" @@ -6230,13 +6409,6 @@ hoist-non-react-statics@^3.3.0: dependencies: react-is "^16.7.0" -homedir-polyfill@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - hoopy@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz" @@ -6562,7 +6734,7 @@ inherits@2.0.3: resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.4, ini@^1.3.5: +ini@^1.3.5: version "1.3.8" resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -6640,6 +6812,11 @@ is-arrayish@^0.3.1: 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" + integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== + 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" @@ -6659,12 +6836,19 @@ is-blob@^2.1.0: resolved "https://registry.npmjs.org/is-blob/-/is-blob-2.1.0.tgz" integrity sha512-SZ/fTft5eUhQM6oF/ZaASFDEdbFVe89Imltn9uZr03wdKMcWNVYSMjQPFtg05QuNkt5l5c135ElvXEQG0rk4tw== +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" + integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== + dependencies: + call-bind "^1.0.2" + is-buffer@^1.1.5: version "1.1.6" 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.2: +is-callable@^1.1.4, is-callable@^1.2.2, 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== @@ -6798,6 +6982,11 @@ is-negative-zero@^2.0.1: resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz" integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== +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" + integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== + is-number@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" @@ -6864,6 +7053,14 @@ is-regex@^1.0.4, is-regex@^1.1.1: call-bind "^1.0.2" has-symbols "^1.0.1" +is-regex@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" + integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== + dependencies: + call-bind "^1.0.2" + has-symbols "^1.0.2" + is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz" @@ -6894,6 +7091,11 @@ is-string@^1.0.5: resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz" integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== +is-string@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" + integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== + is-svg@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz" @@ -6908,16 +7110,18 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.1" +is-symbol@^1.0.3: + version "1.0.4" + 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" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-windows@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz" - integrity sha1-3hqm1j6indJIc3tp8f+LgALSEIw= - is-windows@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" @@ -6962,18 +7166,11 @@ isstream@~0.1.2: resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.0-alpha.1: +istanbul-lib-coverage@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz" integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== -istanbul-lib-hook@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz" - integrity sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ== - dependencies: - append-transform "^2.0.0" - istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz" @@ -6984,19 +7181,6 @@ istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: istanbul-lib-coverage "^3.0.0" semver "^6.3.0" -istanbul-lib-processinfo@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz" - integrity sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw== - dependencies: - archy "^1.0.0" - cross-spawn "^7.0.0" - istanbul-lib-coverage "^3.0.0-alpha.1" - make-dir "^3.0.0" - p-map "^3.0.0" - rimraf "^3.0.0" - uuid "^3.3.3" - istanbul-lib-report@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" @@ -7069,33 +7253,6 @@ jest-circus@26.6.0: stack-utils "^2.0.2" throat "^5.0.0" -jest-circus@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-26.6.3.tgz" - integrity sha512-ACrpWZGcQMpbv13XbzRzpytEJlilP/Su0JtNCi5r/xLpOUhnaIJr8leYYpLEMgPFURZISEHrnnpmB54Q/UziPw== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/babel__traverse" "^7.0.4" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - expect "^26.6.2" - is-generator-fn "^2.0.0" - jest-each "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - pretty-format "^26.6.2" - stack-utils "^2.0.2" - throat "^5.0.0" - jest-cli@^26.6.0: version "26.6.3" resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz" @@ -7139,7 +7296,7 @@ jest-config@^26.6.3: micromatch "^4.0.2" pretty-format "^26.6.2" -jest-diff@^26.0.0, jest-diff@^26.6.2: +jest-diff@^26.6.2: version "26.6.2" resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz" integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== @@ -7298,42 +7455,11 @@ jest-mock@^26.6.2: "@jest/types" "^26.6.2" "@types/node" "*" -jest-playwright-preset@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/jest-playwright-preset/-/jest-playwright-preset-1.5.2.tgz#7f32a26b92c2e4d7f10e6b2397d402476f8d1707" - integrity sha512-L7a5poZUR1vbmVNF4te1Ic3rMDBEU0KmIdjuLfGkdGpLgPdfhr6Xh//blbvmpfMj3TMnuuLlf37QkDtJnVa5gA== - dependencies: - expect-playwright "^0.3.4" - jest-circus "^26.6.3" - jest-environment-node "^26.6.2" - jest-process-manager "^0.3.1" - jest-runner "^26.6.3" - nyc "^15.1.0" - playwright-core ">=1.2.0" - rimraf "^3.0.2" - uuid "^8.3.2" - jest-pnp-resolver@^1.2.2: version "1.2.2" resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-process-manager@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/jest-process-manager/-/jest-process-manager-0.3.1.tgz#e748da83ea66ac5073087feb1150ba1270332b2e" - integrity sha512-x9W54UgZ7IkzUHgXtnI1x4GKOVjxtwW0CA/7yGbTHtT/YhENO0Lic2yfVyC/gekn7OIEMcQmy0L1r9WLQABfqw== - dependencies: - "@types/wait-on" "^5.2.0" - chalk "^4.1.0" - cwd "^0.10.0" - exit "^0.1.2" - find-process "^1.4.4" - prompts "^2.4.1" - signal-exit "^3.0.3" - spawnd "^5.0.0" - tree-kill "^1.2.2" - wait-on "^5.3.0" - jest-regex-util@^26.0.0: version "26.0.0" resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz" @@ -7541,17 +7667,6 @@ jest@26.6.0: import-local "^3.0.2" jest-cli "^26.6.0" -joi@^17.3.0: - version "17.4.0" - resolved "https://registry.npmjs.org/joi/-/joi-17.4.0.tgz" - integrity sha512-F4WiW2xaV6wc1jxete70Rw4V/VuMd6IN+a5ilZsxG4uYtUXWu2kq9W5P2dz30e7Gmw8RCbY/u/uk+dMPma9tAg== - dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.0" - "@sideway/formula" "^3.0.0" - "@sideway/pinpoint" "^2.0.0" - jpeg-js@^0.4.2: version "0.4.3" resolved "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz" @@ -7824,6 +7939,16 @@ load-json-file@^2.0.0: pify "^2.0.0" strip-bom "^3.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" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz" @@ -7902,11 +8027,6 @@ lodash.clonedeep@^4.5.0: resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= -lodash.flattendeep@^4.4.0: - version "4.4.0" - resolved "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz" - integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= - lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz" @@ -7942,11 +8062,16 @@ lodash.uniq@^4.5.0: resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.17.5: +"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5: version "4.17.20" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== +lodash@^4.17.21, lodash@^4.17.4: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + loglevel@^1.6.8: version "1.7.1" resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz" @@ -8066,6 +8191,11 @@ memory-fs@^0.5.0: errno "^0.1.3" readable-stream "^2.0.1" +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" @@ -8178,7 +8308,7 @@ minimalistic-crypto-utils@^1.0.1: 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: +minimatch@3.0.4, minimatch@^3.0.3, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -8289,7 +8419,7 @@ ms@2.1.2: resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.1.1: +ms@^2.1.1, ms@^2.1.2: version "2.1.3" resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -8442,18 +8572,16 @@ node-notifier@^8.0.0: uuid "^8.3.0" which "^2.0.2" -node-preload@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz" - integrity sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ== - dependencies: - process-on-spawn "^1.0.0" - node-releases@^1.1.61, node-releases@^1.1.70: version "1.1.70" resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz" integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== +node-releases@^1.1.71: + version "1.1.73" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" + integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== + normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" @@ -8496,18 +8624,6 @@ normalize-url@^3.0.0: resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz" integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== -notes-core@../notes-core: - version "6.7.2" - dependencies: - "@stablelib/blake2s" "^1.0.1" - fast-sort "^2.0.1" - lean-he "^2.1.2" - no-internet "^1.5.2" - qclone "^1.0.4" - quill-delta-to-html "^0.12.0" - showdown "https://github.com/thecodrr/showdown" - spark-md5 "^3.0.1" - "notes-core@git+https://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:x-oauth-basic@github.com/streetwriters/notesnook-core.git": version "6.7.2" resolved "git+https://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:x-oauth-basic@github.com/streetwriters/notesnook-core.git#7f99956cb606b2fee80d74931c756ade0c8a5cf6" @@ -8521,6 +8637,21 @@ notes-core@../notes-core: showdown "https://github.com/thecodrr/showdown" spark-md5 "^3.0.1" +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" + integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== + 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" + 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" @@ -8552,39 +8683,6 @@ nwsapi@^2.2.0: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== -nyc@^15.1.0: - version "15.1.0" - resolved "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz" - integrity sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A== - dependencies: - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - caching-transform "^4.0.0" - convert-source-map "^1.7.0" - decamelize "^1.2.0" - find-cache-dir "^3.2.0" - find-up "^4.1.0" - foreground-child "^2.0.0" - get-package-type "^0.1.0" - glob "^7.1.6" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-hook "^3.0.0" - istanbul-lib-instrument "^4.0.0" - istanbul-lib-processinfo "^2.0.2" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - make-dir "^3.0.0" - node-preload "^0.2.1" - p-map "^3.0.0" - process-on-spawn "^1.0.0" - resolve-from "^5.0.0" - rimraf "^3.0.0" - signal-exit "^3.0.2" - spawn-wrap "^2.0.0" - test-exclude "^6.0.0" - yargs "^15.0.2" - oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" @@ -8604,6 +8702,11 @@ object-copy@^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.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" + integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== + object-inspect@^1.8.0, object-inspect@^1.9.0: version "1.9.0" resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz" @@ -8780,11 +8883,6 @@ os-browserify@^0.3.0: resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= -os-homedir@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - p-each-series@^2.1.0: version "2.2.0" resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz" @@ -8842,13 +8940,6 @@ p-map@^2.0.0: resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== -p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz" - integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== - dependencies: - aggregate-error "^3.0.0" - p-map@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" @@ -8873,16 +8964,6 @@ p-try@^2.0.0: resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -package-hash@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz" - integrity sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ== - dependencies: - graceful-fs "^4.1.15" - hasha "^5.0.0" - lodash.flattendeep "^4.4.0" - release-zalgo "^1.0.0" - pako@~1.0.5: version "1.0.11" resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" @@ -8953,11 +9034,6 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - parse5@5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz" @@ -9038,6 +9114,13 @@ path-type@^2.0.0: dependencies: pify "^2.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" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + path-type@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" @@ -9069,11 +9152,21 @@ picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2: resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== +pidtree@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" + integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== + pify@^2.0.0: version "2.3.0" 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" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + pify@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" @@ -9098,7 +9191,7 @@ pirates@^4.0.1: dependencies: node-modules-regexp "^1.0.0" -pixelmatch@^5.1.0: +pixelmatch@^5.1.0, pixelmatch@^5.2.1: version "5.2.1" resolved "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.2.1.tgz" integrity sha512-WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ== @@ -9133,27 +9226,9 @@ pkg-up@3.1.0: dependencies: find-up "^3.0.0" -playwright-core@>=1.2.0: - version "1.8.1" - resolved "https://registry.npmjs.org/playwright-core/-/playwright-core-1.8.1.tgz" - integrity sha512-OysNL+mNSpjqvs1dlymBTxv0GZhGwTbuv+KBnPfhzXQZCpzhzin01y/JNtfopT4P8T8awrglEP9hynOZ/H7OeQ== - dependencies: - commander "^6.1.0" - debug "^4.1.1" - extract-zip "^2.0.1" - https-proxy-agent "^5.0.0" - jpeg-js "^0.4.2" - mime "^2.4.6" - pngjs "^5.0.0" - progress "^2.0.3" - proper-lockfile "^4.1.1" - proxy-from-env "^1.1.0" - rimraf "^3.0.2" - ws "^7.3.1" - pngjs@^3.4.0: version "3.4.0" - resolved "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== pngjs@^4.0.1: @@ -9896,7 +9971,7 @@ pretty-error@^2.1.1: lodash "^4.17.20" renderkid "^2.0.4" -pretty-format@^26.0.0, pretty-format@^26.6.0, pretty-format@^26.6.2: +pretty-format@^26.6.0, pretty-format@^26.6.2: version "26.6.2" resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz" integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== @@ -9916,13 +9991,6 @@ process-nextick-args@~2.0.0: resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process-on-spawn@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz" - integrity sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg== - dependencies: - fromentries "^1.2.0" - process@^0.11.10: version "0.11.10" resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" @@ -10412,6 +10480,15 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.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" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + read-pkg@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz" @@ -10569,13 +10646,6 @@ relateurl@^0.2.7: resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= -release-zalgo@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz" - integrity sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA= - dependencies: - es6-error "^4.0.1" - remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" @@ -10678,14 +10748,6 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" -resolve-dir@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz" - integrity sha1-shklmlYC+sXFxJatiUpujMQwJh4= - dependencies: - expand-tilde "^1.2.2" - global-modules "^0.2.3" - resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" @@ -10860,9 +10922,9 @@ run-queue@^1.0.0, run-queue@^1.0.3: aproba "^1.1.1" rxjs@^6.6.3: - version "6.6.3" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz" - integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" @@ -11141,7 +11203,7 @@ shebang-regex@^3.0.0: resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@1.7.2: +shell-quote@1.7.2, 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== @@ -11166,7 +11228,7 @@ side-channel@^1.0.3, side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: +signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== @@ -11298,6 +11360,13 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: source-map-url "^0.4.0" urix "^0.1.0" +source-map-support@^0.4.18: + version "0.4.18" + 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.6, source-map-support@~0.5.12, source-map-support@~0.5.19: version "0.5.19" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz" @@ -11336,27 +11405,10 @@ spark-md5@^3.0.1: resolved "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.1.tgz" integrity sha512-0tF3AGSD1ppQeuffsLDIOWlKUd3lS92tFxcsrh5Pe3ZphhnoK+oXIBTzOAThZCiuINZLvpiLH/1VS1/ANEJVig== -spawn-wrap@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz" - integrity sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg== - dependencies: - foreground-child "^2.0.0" - is-windows "^1.0.2" - make-dir "^3.0.0" - rimraf "^3.0.0" - signal-exit "^3.0.2" - which "^2.0.1" - -spawnd@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/spawnd/-/spawnd-5.0.0.tgz#ea72200bdc468998e84e1c3e7b914ce85fc1c32c" - integrity sha512-28+AJr82moMVWolQvlAIv3JcYDkjkFTEmfDc503wxrF5l2rQ3dFz6DpbXp3kD4zmgGGldfM4xM4v1sFj/ZaIOA== - dependencies: - exit "^0.1.2" - signal-exit "^3.0.3" - tree-kill "^1.2.2" - wait-port "^0.2.9" +spawn-command@^0.0.2-1: + version "0.0.2-1" + resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" + integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= spdx-correct@^3.0.0: version "3.1.1" @@ -11434,9 +11486,9 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -ssim.js@^3.1.0, ssim.js@^3.1.1: +ssim.js@^3.1.1: version "3.5.0" - resolved "https://registry.npmjs.org/ssim.js/-/ssim.js-3.5.0.tgz" + resolved "https://registry.yarnpkg.com/ssim.js/-/ssim.js-3.5.0.tgz#d7276b9ee99b57a5ff0db34035f02f35197e62df" integrity sha512-Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g== ssri@^6.0.1: @@ -11569,6 +11621,15 @@ string.prototype.matchall@^4.0.2: regexp.prototype.flags "^1.3.0" side-channel "^1.0.3" +string.prototype.padend@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz#6858ca4f35c5268ebd5e8615e1327d55f59ee311" + integrity sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz" @@ -11577,6 +11638,14 @@ string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.3: call-bind "^1.0.0" define-properties "^1.1.3" +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" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + string.prototype.trimstart@^1.0.1, string.prototype.trimstart@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz" @@ -11585,6 +11654,14 @@ string.prototype.trimstart@^1.0.1, string.prototype.trimstart@^1.0.3: call-bind "^1.0.0" define-properties "^1.1.3" +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" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + 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" @@ -11708,7 +11785,7 @@ stylehacks@^4.0.0: supports-color@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= supports-color@^5.3.0: @@ -11732,6 +11809,13 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.1.0: + version "8.1.1" + 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-hyperlinks@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz" @@ -12023,7 +12107,7 @@ tr46@^2.0.2: tree-kill@^1.2.2: version "1.2.2" - resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== tryer@^1.0.1: @@ -12114,7 +12198,7 @@ type-fest@^0.6.0: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== -type-fest@^0.8.0, type-fest@^0.8.1: +type-fest@^0.8.1: version "0.8.1" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== @@ -12154,6 +12238,16 @@ typescript@^4.1.5: resolved "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz" integrity sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA== +unbox-primitive@^1.0.1: + version "1.0.1" + 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" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz" @@ -12340,12 +12434,12 @@ utils-merge@1.0.1: resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.3.2, uuid@^3.3.3, uuid@^3.4.0: +uuid@^3.3.2, uuid@^3.4.0: version "3.4.0" resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.3.0, uuid@^8.3.2: +uuid@^8.3.0: version "8.3.2" resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -12415,26 +12509,6 @@ w3c-xmlserializer@^2.0.0: dependencies: xml-name-validator "^3.0.0" -wait-on@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-5.3.0.tgz#584e17d4b3fe7b46ac2b9f8e5e102c005c2776c7" - integrity sha512-DwrHrnTK+/0QFaB9a8Ol5Lna3k7WvUR4jzSKmz0YaPBpuN2sACyiPVKVfj6ejnjcajAcvn3wlbTyMIn9AZouOg== - dependencies: - axios "^0.21.1" - joi "^17.3.0" - lodash "^4.17.21" - minimist "^1.2.5" - rxjs "^6.6.3" - -wait-port@^0.2.9: - version "0.2.9" - resolved "https://registry.yarnpkg.com/wait-port/-/wait-port-0.2.9.tgz#3905cf271b5dbe37a85c03b85b418b81cb24ee55" - integrity sha512-hQ/cVKsNqGZ/UbZB/oakOGFqic00YAMM5/PEj3Bt4vKarv2jWIWzDbqlwT94qMs/exAQAsvMOq99sZblV92zxQ== - dependencies: - chalk "^2.4.2" - commander "^3.0.2" - debug "^4.1.1" - walker@^1.0.7, walker@~1.0.5: version "1.0.7" resolved "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz" @@ -12651,12 +12725,23 @@ whatwg-url@^8.0.0: tr46 "^2.0.2" webidl-conversions "^6.1.0" +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" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + 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" + which-module@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@^1.2.12, which@^1.2.9, which@^1.3.1: +which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -12901,6 +12986,11 @@ ws@^7.2.3, ws@^7.3.1: resolved "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz" integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA== +ws@^7.4.6: + version "7.5.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.2.tgz#09cc8fea3bec1bc5ed44ef51b42f945be36900f6" + integrity sha512-lkF7AWRicoB9mAgjeKbGqVUekLnSNO4VjKVnuPHpQeOxZOErX6BPXwJk70nFslRCEEA8EVW7ZjKwXaP9N+1sKQ== + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" @@ -13003,7 +13093,7 @@ yargs@^13.3.2: y18n "^4.0.0" yargs-parser "^13.1.2" -yargs@^15.0.2, yargs@^15.4.1: +yargs@^15.4.1: version "15.4.1" resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==