diff --git a/cypress.config.ts b/cypress.config.ts index 6eb19726c..13cca953f 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -90,10 +90,10 @@ module.exports = defineConfig({ }, e2e: { baseUrl: "http://localhost:3000", - specPattern: "cypress/tests/**/*.spec.{js,jsx,ts,tsx}", + specPattern: "cypress/tests/**/*.cy.{js,jsx,ts,tsx}", supportFile: "cypress/support/e2e.ts", - viewportHeight: 1000, - viewportWidth: 1280, + viewportHeight: 500, + viewportWidth: 500, experimentalRunAllSpecs: true, experimentalStudio: true, setupNodeEvents(on, config) { diff --git a/cypress/fixtures/public-transactions.json b/cypress/fixtures/public-transactions.json index 4f43bd302..f63750787 100644 --- a/cypress/fixtures/public-transactions.json +++ b/cypress/fixtures/public-transactions.json @@ -21,8 +21,8 @@ "source": "GYDJUNEaOK7", "status": "complete", "uuid": "41754166-ea5b-448a-9a8a-374ce387c714", - "receiverName": "Kevin", - "senderName": "Amir", + "receiverName": "Leila", + "senderName": "Mateo", "likes": [], "comments": [] }, @@ -41,8 +41,8 @@ "source": "GYDJUNEaOK7", "status": "complete", "uuid": "5cdc1625-c937-4ac5-a6ac-eb5c55e93576", - "receiverName": "Kevin", - "senderName": "Amir", + "receiverName": "Leila", + "senderName": "Mateo", "likes": [], "comments": [] }, @@ -61,8 +61,8 @@ "source": "GYDJUNEaOK7", "status": "pending", "uuid": "da9bcbd6-df80-4499-87ba-9a29927ea0c7", - "receiverName": "Kevin", - "senderName": "Amir", + "receiverName": "Leila", + "senderName": "Mateo", "likes": [], "comments": [] } diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts index c206e87f8..bd8e1d6b8 100644 --- a/cypress/support/commands.ts +++ b/cypress/support/commands.ts @@ -41,16 +41,16 @@ Cypress.Commands.add("getBySelLike", (selector, ...args) => { Cypress.Commands.add("login", (username, password, { rememberUser = false } = {}) => { const signinPath = "/signin"; - const log = Cypress.log({ - name: "login", - displayName: "LOGIN", - message: [`🔐 Authenticating | ${username}`], - // @ts-ignore - autoEnd: false, - }); + // const log = Cypress.log({ + // name: "login", + // displayName: "LOGIN", + // message: [`🔐 Authenticating | ${username}`], + // // @ts-ignore + // autoEnd: false, + // }); - cy.intercept("POST", "/login").as("loginUser"); - cy.intercept("GET", "checkAuth").as("getUserProfile"); + // cy.intercept("POST", "/login").as("loginUser"); + // cy.intercept("GET", "checkAuth").as("getUserProfile"); cy.location("pathname", { log: false }).then((currentPath) => { if (currentPath !== signinPath) { @@ -58,7 +58,7 @@ Cypress.Commands.add("login", (username, password, { rememberUser = false } = {} } }); - log.snapshot("before"); + // log.snapshot("before"); cy.getBySel("signin-username").type(username); cy.getBySel("signin-password").type(password); @@ -68,21 +68,21 @@ Cypress.Commands.add("login", (username, password, { rememberUser = false } = {} } cy.getBySel("signin-submit").click(); - cy.wait("@loginUser").then((loginUser: any) => { - log.set({ - consoleProps() { - return { - username, - password, - rememberUser, - userId: loginUser.response.statusCode !== 401 && loginUser.response.body.user.id, - }; - }, - }); - - log.snapshot("after"); - log.end(); - }); + // cy.wait("@loginUser").then((loginUser: any) => { + // // log.set({ + // // consoleProps() { + // // return { + // // username, + // // password, + // // rememberUser, + // // userId: loginUser.response.statusCode !== 401 && loginUser.response.body.user.id, + // // }; + // // }, + // // }); + + // // log.snapshot("after"); + // // log.end(); + // }); }); Cypress.Commands.add("loginByApi", (username, password = Cypress.env("defaultPassword")) => { @@ -128,41 +128,41 @@ Cypress.Commands.add("setTransactionAmountRange", (min, max) => { }); Cypress.Commands.add("loginByXstate", (username, password = Cypress.env("defaultPassword")) => { - const log = Cypress.log({ - name: "loginbyxstate", - displayName: "LOGIN BY XSTATE", - message: [`🔐 Authenticating | ${username}`], - autoEnd: false, - }); + // const log = Cypress.log({ + // name: "loginbyxstate", + // displayName: "LOGIN BY XSTATE", + // message: [`🔐 Authenticating | ${username}`], + // autoEnd: false, + // }); cy.intercept("POST", "/login").as("loginUser"); cy.intercept("GET", "/checkAuth").as("getUserProfile"); cy.visit("/signin", { log: false }).then(() => { - log.snapshot("before"); + // log.snapshot("before"); }); cy.window({ log: false }).then((win) => win.authService.send("LOGIN", { username, password })); - cy.wait("@loginUser").then((loginUser) => { - log.set({ - consoleProps() { - return { - username, - password, - // @ts-ignore - userId: loginUser.response.body.user.id, - }; - }, - }); - }); - - return cy - .getBySel("list-skeleton") - .should("not.exist") - .then(() => { - log.snapshot("after"); - log.end(); - }); + // cy.wait("@loginUser").then((loginUser) => { + // // log.set({ + // // consoleProps() { + // // return { + // // username, + // // password, + // // // @ts-ignore + // // userId: loginUser.response.body.user.id, + // // }; + // // }, + // // }); + // }); + + // return cy + // .getBySel("list-skeleton") + // .should("not.exist") + // .then(() => { + // // log.snapshot("after"); + // // log.end(); + // }); }); Cypress.Commands.add("logoutByXstate", () => { @@ -307,20 +307,20 @@ Cypress.Commands.add("database", (operation, entity, query, logTask = false) => query, }; - const log = Cypress.log({ - name: "database", - displayName: "DATABASE", - message: [`🔎 ${operation}ing within ${entity} data`], - // @ts-ignore - autoEnd: false, - consoleProps() { - return params; - }, - }); + // const log = Cypress.log({ + // name: "database", + // displayName: "DATABASE", + // message: [`🔎 ${operation}ing within ${entity} data`], + // // @ts-ignore + // autoEnd: false, + // consoleProps() { + // return params; + // }, + // }); return cy.task(`${operation}:database`, params, { log: logTask }).then((data) => { - log.snapshot(); - log.end(); + // log.snapshot(); + // log.end(); return data; }); }); diff --git a/cypress/tests/api/api-bankaccounts.spec.ts b/cypress/tests/api/api-bankaccounts.spec.ts index 5ef19ff53..ad072676a 100644 --- a/cypress/tests/api/api-bankaccounts.spec.ts +++ b/cypress/tests/api/api-bankaccounts.spec.ts @@ -22,7 +22,7 @@ describe("Bank Accounts API", function () { }); beforeEach(function () { - cy.task("db:seed"); + cy.task("db:seed", {log: false}); cy.database("filter", "users").then((users: User[]) => { ctx.authenticatedUser = users[0]; diff --git a/cypress/tests/ui/notifications.cy.ts b/cypress/tests/ui/notifications.cy.ts new file mode 100644 index 000000000..33c847840 --- /dev/null +++ b/cypress/tests/ui/notifications.cy.ts @@ -0,0 +1,423 @@ +import Dinero from "dinero.js"; +import { + User, + Transaction, + TransactionRequestStatus, + TransactionResponseItem, + Contact, + TransactionStatus, +} from "../../../src/models"; +import { addDays, isWithinInterval, startOfDay } from "date-fns"; +import { startOfDayUTC, endOfDayUTC } from "../../../src/utils/transactionUtils"; + +const { _ } = Cypress; + +type TransactionFeedsCtx = { + allUsers?: User[]; + user?: User; + contactIds?: string[]; +}; + +describe("Notifications Feed", function () { + const ctx: TransactionFeedsCtx = {}; + + const feedViews = { + public: { + tab: "public-tab", + tabLabel: "everyone", + routeAlias: "publicTransactions", + service: "publicTransactionService", + }, + contacts: { + tab: "contacts-tab", + tabLabel: "friends", + routeAlias: "contactsTransactions", + service: "contactTransactionService", + }, + personal: { + tab: "personal-tab", + tabLabel: "mine", + routeAlias: "personalTransactions", + service: "personalTransactionService", + }, + }; + + beforeEach(function () { + cy.task("db:seed"); + + // cy.intercept("GET", "/notifications").as("notifications"); + // cy.intercept("GET", "/transactions*").as(feedViews.personal.routeAlias); + // cy.intercept("GET", "/transactions/public*").as(feedViews.public.routeAlias); + // cy.intercept("GET", "/transactions/contacts*").as(feedViews.contacts.routeAlias); + cy.intercept("GET", "/transactions/public*", { + headers: { + "X-Powered-By": "Express", + Date: new Date().toString(), + }, + fixture: "public-transactions.json", + }).as("mocked"); + + cy.database("filter", "users").then((users: User[]) => { + ctx.user = users[0]; + ctx.allUsers = users; + + cy.loginByXstate(ctx.user.username); + }); + }); + describe("list", function () { + it.only("updates the notification count", function () { +cy.get('[data-test="sidenav-toggle"]').click(); +cy.get('[data-test="sidenav-user-settings"]').click(); +cy.get('[data-test="firstName"]').click(); +cy.get('[data-test="firstName"]').clear(); +cy.get('#firstName-helper-text').should('have.text', 'Enter a first name'); + }); + + it('Displays transactions list', function() {}); + + it('Displays notifications', function() { + +cy.get('[data-test="drawer-icon"]').click(); +cy.get('[data-test="sidenav-notifications"]').click(); +cy.get('.css-mpyo7s-MuiTypography-root').should('have.text', 'Notifications'); + }); + }); + + describe("renders transactions item variations in feed", function () { + it("renders transactions item variations in feed", function () { + cy.get('[data-test="transaction-item-si_aNEMbyCA"]') + cy.get('[data-test="transaction-like-count"]').should('contain', '0') + cy.get('[data-test="transaction-comment-count"]').should('contain', '0') + cy.get('[data-test="transaction-sender-si_aNEMbyCA"]').should('contain', 'Mateo') + cy.get('[data-test="transaction-receiver-si_aNEMbyCA"]').should('contain', 'Leila') + cy.get('[data-test="transaction-amount-si_aNEMbyCA"]').should('contain', '-$86.47') + cy.get('[data-test="transaction-amount-si_aNEMbyCA"]').should('have.css', 'color', 'rgb(255, 0, 0)') + }); + }); + + describe("renders and paginates all transaction feeds", function () { + it("renders transactions item variations in feed", function () { + + + // Visit page again to trigger call to /transactions/public + cy.visit("/"); + + cy.wait("@notifications"); + cy.wait("@mockedPublicTransactions") + .its("response.body.results") + .then((transactions) => { + const getTransactionFromEl = ($el: JQuery): TransactionResponseItem => { + const transactionId = $el.data("test").split("transaction-item-")[1]; + return _.find(transactions, (transaction) => { + return transaction.id === transactionId; + })!; + }; + + cy.log("🚩Testing a paid payment transaction item"); + cy.contains("[data-test*='transaction-item']", "paid").within(($el) => { + const transaction = getTransactionFromEl($el); + const formattedAmount = Dinero({ + amount: transaction.amount, + }).toFormat(); + + expect([TransactionStatus.pending, TransactionStatus.complete]).to.include( + transaction.status + ); + + expect(transaction.requestStatus).to.be.empty; + + cy.getBySelLike("like-count").should("have.text", `${transaction.likes.length}`); + cy.getBySelLike("comment-count").should("have.text", `${transaction.comments.length}`); + + cy.getBySelLike("sender").should("contain", transaction.senderName); + cy.getBySelLike("receiver").should("contain", transaction.receiverName); + + cy.getBySelLike("amount") + .should("contain", `-${formattedAmount}`) + .should("have.css", "color", "rgb(255, 0, 0)"); + }); + + cy.log("🚩Testing a charged payment transaction item"); + cy.contains("[data-test*='transaction-item']", "charged").within(($el) => { + const transaction = getTransactionFromEl($el); + const formattedAmount = Dinero({ + amount: transaction.amount, + }).toFormat(); + + expect(TransactionStatus.complete).to.equal(transaction.status); + + expect(transaction.requestStatus).to.equal(TransactionRequestStatus.accepted); + + cy.getBySelLike("amount") + .should("contain", `+${formattedAmount}`) + .should("have.css", "color", "rgb(76, 175, 80)"); + }); + + cy.log("🚩Testing a requested payment transaction item"); + cy.contains("[data-test*='transaction-item']", "requested").within(($el) => { + const transaction = getTransactionFromEl($el); + const formattedAmount = Dinero({ + amount: transaction.amount, + }).toFormat(); + + expect([TransactionStatus.pending, TransactionStatus.complete]).to.include( + transaction.status + ); + expect([ + TransactionRequestStatus.pending, + TransactionRequestStatus.rejected, + ]).to.include(transaction.requestStatus); + + cy.getBySelLike("amount") + .should("contain", `+${formattedAmount}`) + .should("have.css", "color", "rgb(76, 175, 80)"); + }); + cy.visualSnapshot("Transaction Item"); + }); + }); + + _.each(feedViews, (feed, feedName) => { + it(`paginates ${feedName} transaction feed`, function () { + cy.getBySelLike(feed.tab).click(); + cy.getBySelLike(feed.tab) + .should("have.class", "Mui-selected") + .contains(feed.tabLabel, { matchCase: false }) + .should("have.css", { "text-transform": "uppercase" }); + cy.getBySel("list-skeleton").should("not.exist"); + cy.visualSnapshot(`Paginate ${feedName}`); + + cy.wait(`@${feed.routeAlias}`) + .its("response.body.results") + .should("have.length", Cypress.env("paginationPageSize")); + + cy.log("📃 Scroll to next page"); + cy.getBySel("transaction-list").children().scrollTo("bottom"); + + cy.wait(`@${feed.routeAlias}`) + .its("response.body") + .then(({ results, pageData }) => { + expect(results).have.length(Cypress.env("paginationPageSize")); + expect(pageData.page).to.equal(2); + cy.visualSnapshot(`Paginate ${feedName} Next Page`); + cy.nextTransactionFeedPage(feed.service, pageData.totalPages); + }); + + cy.wait(`@${feed.routeAlias}`) + .its("response.body") + .then(({ results, pageData }) => { + expect(results).to.have.length.least(1); + expect(pageData.page).to.equal(pageData.totalPages); + expect(pageData.hasNextPages).to.equal(false); + cy.visualSnapshot(`Paginate ${feedName} Last Page`); + }); + }); + }); + }); + + describe("filters transaction feeds by date range", function () { + _.each(feedViews, (feed, feedName) => { + it(`filters ${feedName} transaction feed by date range`, function () { + cy.database("find", "transactions").then((transaction: Transaction) => { + const dateRangeStart = startOfDay(new Date(transaction.createdAt)); + const dateRangeEnd = endOfDayUTC(addDays(dateRangeStart, 1)); + + cy.getBySelLike(feed.tab).click(); + cy.getBySelLike(feed.tab).should("have.class", "Mui-selected"); + + cy.wait(`@${feed.routeAlias}`).its("response.body.results").as("unfilteredResults"); + + cy.pickDateRange(dateRangeStart, dateRangeEnd); + + cy.wait(`@${feed.routeAlias}`) + .its("response.body.results") + .then((transactions: Transaction[]) => { + cy.getBySelLike("transaction-item").should("have.length", transactions.length); + + transactions.forEach(({ createdAt }) => { + const createdAtDate = startOfDayUTC(new Date(createdAt)); + + expect( + isWithinInterval(createdAtDate, { + start: startOfDayUTC(dateRangeStart), + end: dateRangeEnd, + }), + `transaction created date (${createdAtDate.toISOString()}) + is within ${dateRangeStart.toISOString()} + and ${dateRangeEnd.toISOString()}` + ).to.equal(true); + }); + + cy.visualSnapshot("Date Range Filtered Transactions"); + }); + + cy.log("Clearing date range filter. Data set should revert"); + cy.getBySelLike("filter-date-clear-button").click({ + force: true, + }); + cy.getBySelLike("filter-date-range-button").should("contain", "ALL"); + + cy.get("@unfilteredResults").then((unfilteredResults) => { + cy.wait(`@${feed.routeAlias}`) + .its("response.body.results") + .should("deep.equal", unfilteredResults); + cy.visualSnapshot("Unfiltered Transactions"); + }); + }); + }); + + it(`does not show ${feedName} transactions for out of range date limits`, function () { + const dateRangeStart = startOfDay(new Date(2014, 1, 1)); + const dateRangeEnd = endOfDayUTC(addDays(dateRangeStart, 1)); + + cy.getBySelLike(feed.tab).click(); + cy.wait(`@${feed.routeAlias}`); + + cy.pickDateRange(dateRangeStart, dateRangeEnd); + cy.wait(`@${feed.routeAlias}`); + + cy.getBySelLike("transaction-item").should("have.length", 0); + cy.getBySel("empty-list-header").should("contain", "No Transactions"); + cy.getBySelLike("empty-create-transaction-button") + .should("have.attr", "href", "/transaction/new") + .contains("create a transaction", { matchCase: false }) + .should("have.css", { "text-transform": "uppercase" }); + cy.visualSnapshot("No Transactions"); + }); + }); + }); + + describe("filters transaction feeds by amount range", function () { + const dollarAmountRange = { + min: 200, + max: 800, + }; + + _.each(feedViews, (feed, feedName) => { + it(`filters ${feedName} transaction feed by amount range`, function () { + cy.getBySelLike(feed.tab).click({ force: true }); + cy.getBySelLike(feed.tab).should("have.class", "Mui-selected"); + + cy.wait(`@${feed.routeAlias}`).its("response.body.results").as("unfilteredResults"); + + cy.setTransactionAmountRange(dollarAmountRange.min, dollarAmountRange.max); + + cy.getBySelLike("filter-amount-range-text").should( + "contain", + `$${dollarAmountRange.min} - $${dollarAmountRange.max}` + ); + + // @ts-ignore + cy.wait(`@${feed.routeAlias}`).then(({ response: { body, url } }) => { + const transactions = body.results as TransactionResponseItem[]; + const urlParams = new URLSearchParams(_.last(url.split("?"))); + + const rawAmountMin = dollarAmountRange.min * 100; + const rawAmountMax = dollarAmountRange.max * 100; + + expect(urlParams.get("amountMin")).to.equal(`${rawAmountMin}`); + expect(urlParams.get("amountMax")).to.equal(`${rawAmountMax}`); + + cy.visualSnapshot("Amount Range Filtered Transactions"); + transactions.forEach(({ amount }) => { + expect(amount).to.be.within(rawAmountMin, rawAmountMax); + }); + }); + + cy.getBySelLike("amount-clear-button").click(); + + cy.getBySel("transaction-list-filter-amount-clear-button").click(); + cy.getBySel("main").scrollTo("top"); + cy.getBySel("transaction-list-filter-date-range-button").click({ force: true }); + cy.getBySel("transaction-list-filter-amount-range").should("not.be.visible"); + + cy.get("@unfilteredResults").then((unfilteredResults) => { + cy.wait(`@${feed.routeAlias}`) + .its("response.body.results") + .should("deep.equal", unfilteredResults); + cy.visualSnapshot("Unfiltered Transactions"); + }); + }); + + it(`does not show ${feedName} transactions for out of range amount limits`, function () { + cy.getBySelLike(feed.tab).click(); + cy.wait(`@${feed.routeAlias}`); + + cy.setTransactionAmountRange(550, 1000); + cy.getBySelLike("filter-amount-range-text").should("contain", "$550 - $1,000"); + cy.wait(`@${feed.routeAlias}`); + + cy.getBySelLike("transaction-item").should("have.length", 0); + cy.getBySel("empty-list-header").should("contain", "No Transactions"); + cy.getBySelLike("empty-create-transaction-button") + .should("have.attr", "href", "/transaction/new") + .contains("create a transaction", { matchCase: false }) + .should("have.css", { "text-transform": "uppercase" }); + cy.visualSnapshot("No Transactions"); + }); + }); + }); + + describe("Feed Item Visibility", () => { + it("mine feed only shows personal transactions", function () { + cy.database("filter", "contacts", { userId: ctx.user!.id }).then((contacts: Contact[]) => { + ctx.contactIds = contacts.map((contact) => contact.contactUserId); + }); + + cy.getBySelLike(feedViews.personal.tab).click(); + + cy.wait("@personalTransactions") + .its("response.body.results") + .each((transaction: Transaction) => { + const transactionParticipants = [transaction.senderId, transaction.receiverId]; + expect(transactionParticipants).to.include(ctx.user!.id); + }); + cy.getBySel("list-skeleton").should("not.exist"); + cy.visualSnapshot("Personal Transactions"); + cy.get('[data-test="sidenav-home"] .MuiTypography-root').click(); + cy.get('[data-test="sidenav-user-settings"] .MuiTypography-root').click(); + cy.get('[data-test="sidenav-bankaccounts"] .MuiTypography-root').click(); + cy.get('[d="M4 10h3v7H4zm6.5 0h3v7h-3zM2 19h20v3H2zm15-9h3v7h-3zm-5-9L2 6v2h20V6z"]').click(); + cy.get('[data-test="sidenav-bankaccounts"]').click(); + }); + + it("first five items belong to contacts in public feed", function () { + cy.database("filter", "contacts", { userId: ctx.user!.id }).then((contacts: Contact[]) => { + ctx.contactIds = contacts.map((contact) => contact.contactUserId); + }); + + cy.wait("@publicTransactions") + .its("response.body.results") + .invoke("slice", 0, 5) + .each((transaction: Transaction) => { + const transactionParticipants = [transaction.senderId, transaction.receiverId]; + + const contactsInTransaction = _.intersection(transactionParticipants, ctx.contactIds!); + const message = `"${contactsInTransaction}" are contacts of ${ctx.user!.id}`; + expect(contactsInTransaction, message).to.not.be.empty; + }); + cy.getBySel("list-skeleton").should("not.exist"); + cy.visualSnapshot("First 5 Transaction Items belong to contacts"); + }); + + it("friends feed only shows contact transactions", function () { + cy.database("filter", "contacts", { userId: ctx.user!.id }).then((contacts: Contact[]) => { + ctx.contactIds = contacts.map((contact) => contact.contactUserId); + }); + + cy.getBySelLike(feedViews.contacts.tab).click(); + + cy.wait("@contactsTransactions") + .its("response.body.results") + .each((transaction: Transaction) => { + const transactionParticipants = [transaction.senderId, transaction.receiverId]; + + const contactsInTransaction = _.intersection(ctx.contactIds!, transactionParticipants); + + const message = `"${contactsInTransaction}" are contacts of ${ctx.user!.id}`; + expect(contactsInTransaction, message).to.not.be.empty; + }); + cy.getBySel("list-skeleton").should("not.exist"); + cy.visualSnapshot("Friends Feed only shows contacts transactions"); + }); + }); +}); diff --git a/cypress/tests/ui/transaction-feeds.spec.ts b/cypress/tests/ui/transaction-feeds-2.cy.ts similarity index 97% rename from cypress/tests/ui/transaction-feeds.spec.ts rename to cypress/tests/ui/transaction-feeds-2.cy.ts index 37a8bb856..a876defcc 100644 --- a/cypress/tests/ui/transaction-feeds.spec.ts +++ b/cypress/tests/ui/transaction-feeds-2.cy.ts @@ -57,11 +57,11 @@ describe("Transaction Feed", function () { cy.loginByXstate(ctx.user.username); }); + cy.wait("@notifications"); + cy.wait("@publicTransactions"); }); describe("app layout and responsiveness", function () { it("toggles the navigation drawer", function () { - cy.wait("@notifications"); - cy.wait("@publicTransactions"); if (isMobile()) { cy.getBySel("sidenav-home").should("not.exist"); cy.visualSnapshot("Mobile Initial Side Navigation Not Visible"); @@ -94,13 +94,13 @@ describe("Transaction Feed", function () { Date: new Date().toString(), }, fixture: "public-transactions.json", - }).as("mockedPublicTransactions"); + }).as("mocked"); // Visit page again to trigger call to /transactions/public cy.visit("/"); cy.wait("@notifications"); - cy.wait("@mockedPublicTransactions") + cy.wait("@mocked") .its("response.body.results") .then((transactions) => { const getTransactionFromEl = ($el: JQuery): TransactionResponseItem => { @@ -386,6 +386,11 @@ describe("Transaction Feed", function () { }); cy.getBySel("list-skeleton").should("not.exist"); cy.visualSnapshot("Personal Transactions"); + cy.get('[data-test="sidenav-home"] .MuiTypography-root').click(); + cy.get('[data-test="sidenav-user-settings"] .MuiTypography-root').click(); + cy.get('[data-test="sidenav-bankaccounts"] .MuiTypography-root').click(); + cy.get('[d="M4 10h3v7H4zm6.5 0h3v7h-3zM2 19h20v3H2zm15-9h3v7h-3zm-5-9L2 6v2h20V6z"]').click(); + cy.get('[data-test="sidenav-bankaccounts"]').click(); }); it("first five items belong to contacts in public feed", function () { diff --git a/cypress/tests/ui/transaction-feeds.cy.ts b/cypress/tests/ui/transaction-feeds.cy.ts new file mode 100644 index 000000000..37d6009a5 --- /dev/null +++ b/cypress/tests/ui/transaction-feeds.cy.ts @@ -0,0 +1,407 @@ +import Dinero from "dinero.js"; +import { + User, + Transaction, + TransactionRequestStatus, + TransactionResponseItem, + Contact, + TransactionStatus, +} from "../../../src/models"; +import { addDays, isWithinInterval, startOfDay } from "date-fns"; +import { startOfDayUTC, endOfDayUTC } from "../../../src/utils/transactionUtils"; + +const { _ } = Cypress; + +type TransactionFeedsCtx = { + allUsers?: User[]; + user?: User; + contactIds?: string[]; +}; + +describe("Transaction Feed", function () { + const ctx: TransactionFeedsCtx = {}; + + const feedViews = { + public: { + tab: "public-tab", + tabLabel: "everyone", + routeAlias: "publicTransactions", + service: "publicTransactionService", + }, + contacts: { + tab: "contacts-tab", + tabLabel: "friends", + routeAlias: "contactsTransactions", + service: "contactTransactionService", + }, + personal: { + tab: "personal-tab", + tabLabel: "mine", + routeAlias: "personalTransactions", + service: "personalTransactionService", + }, + }; + + beforeEach(function () { + cy.task("db:seed"); + + cy.intercept("GET", "/notifications").as("notifications"); + cy.intercept("GET", "/transactions*").as(feedViews.personal.routeAlias); + cy.intercept("GET", "/transactions/public*").as(feedViews.public.routeAlias); + cy.intercept("GET", "/transactions/contacts*").as(feedViews.contacts.routeAlias); + cy.intercept("GET", "/transactions/public*", { + headers: { + "X-Powered-By": "Express", + Date: new Date().toString(), + }, + fixture: "public-transactions.json", + }).as("mockedPublicTransactions"); + + cy.database("filter", "users").then((users: User[]) => { + ctx.user = users[0]; + ctx.allUsers = users; + + cy.loginByXstate(ctx.user.username); + }); + }); + describe("app layout and responsiveness", function () { + it.only("toggles the navigation drawer", function () { + cy.wait("@notifications"); + cy.getBySel("sidenav-home").should("be.visible"); + cy.getBySel("sidenav-toggle").click(); + cy.get('[data-test="transaction-item-si_aNEMbyCA"]') + cy.get('[data-test="transaction-like-count"]').should('contain', '0') + cy.get('[data-test="transaction-comment-count"]').should('contain', '0') + cy.get('[data-test="transaction-sender-si_aNEMbyCA"]').should('contain', 'Mateo') + cy.get('[data-test="transaction-receiver-si_aNEMbyCA"]').should('contain', 'Leila') + cy.get('[data-test="transaction-amount-si_aNEMbyCA"]').should('contain', '-$86.47') + cy.get('[data-test="transaction-amount-si_aNEMbyCA"]').should('have.css', 'color', 'rgb(255, 0, 0)') + }); + }); + + describe("renders and paginates all transaction feeds", function () { + it("renders transactions item variations in feed", function () { + + + // Visit page again to trigger call to /transactions/public + cy.visit("/"); + + cy.wait("@notifications"); + cy.wait("@mockedPublicTransactions") + .its("response.body.results") + .then((transactions) => { + const getTransactionFromEl = ($el: JQuery): TransactionResponseItem => { + const transactionId = $el.data("test").split("transaction-item-")[1]; + return _.find(transactions, (transaction) => { + return transaction.id === transactionId; + })!; + }; + + cy.log("🚩Testing a paid payment transaction item"); + cy.contains("[data-test*='transaction-item']", "paid").within(($el) => { + const transaction = getTransactionFromEl($el); + const formattedAmount = Dinero({ + amount: transaction.amount, + }).toFormat(); + + expect([TransactionStatus.pending, TransactionStatus.complete]).to.include( + transaction.status + ); + + expect(transaction.requestStatus).to.be.empty; + + cy.getBySelLike("like-count").should("have.text", `${transaction.likes.length}`); + cy.getBySelLike("comment-count").should("have.text", `${transaction.comments.length}`); + + cy.getBySelLike("sender").should("contain", transaction.senderName); + cy.getBySelLike("receiver").should("contain", transaction.receiverName); + + cy.getBySelLike("amount") + .should("contain", `-${formattedAmount}`) + .should("have.css", "color", "rgb(255, 0, 0)"); + }); + + cy.log("🚩Testing a charged payment transaction item"); + cy.contains("[data-test*='transaction-item']", "charged").within(($el) => { + const transaction = getTransactionFromEl($el); + const formattedAmount = Dinero({ + amount: transaction.amount, + }).toFormat(); + + expect(TransactionStatus.complete).to.equal(transaction.status); + + expect(transaction.requestStatus).to.equal(TransactionRequestStatus.accepted); + + cy.getBySelLike("amount") + .should("contain", `+${formattedAmount}`) + .should("have.css", "color", "rgb(76, 175, 80)"); + }); + + cy.log("🚩Testing a requested payment transaction item"); + cy.contains("[data-test*='transaction-item']", "requested").within(($el) => { + const transaction = getTransactionFromEl($el); + const formattedAmount = Dinero({ + amount: transaction.amount, + }).toFormat(); + + expect([TransactionStatus.pending, TransactionStatus.complete]).to.include( + transaction.status + ); + expect([ + TransactionRequestStatus.pending, + TransactionRequestStatus.rejected, + ]).to.include(transaction.requestStatus); + + cy.getBySelLike("amount") + .should("contain", `+${formattedAmount}`) + .should("have.css", "color", "rgb(76, 175, 80)"); + }); + cy.visualSnapshot("Transaction Item"); + }); + }); + + _.each(feedViews, (feed, feedName) => { + it(`paginates ${feedName} transaction feed`, function () { + cy.getBySelLike(feed.tab).click(); + cy.getBySelLike(feed.tab) + .should("have.class", "Mui-selected") + .contains(feed.tabLabel, { matchCase: false }) + .should("have.css", { "text-transform": "uppercase" }); + cy.getBySel("list-skeleton").should("not.exist"); + cy.visualSnapshot(`Paginate ${feedName}`); + + cy.wait(`@${feed.routeAlias}`) + .its("response.body.results") + .should("have.length", Cypress.env("paginationPageSize")); + + cy.log("📃 Scroll to next page"); + cy.getBySel("transaction-list").children().scrollTo("bottom"); + + cy.wait(`@${feed.routeAlias}`) + .its("response.body") + .then(({ results, pageData }) => { + expect(results).have.length(Cypress.env("paginationPageSize")); + expect(pageData.page).to.equal(2); + cy.visualSnapshot(`Paginate ${feedName} Next Page`); + cy.nextTransactionFeedPage(feed.service, pageData.totalPages); + }); + + cy.wait(`@${feed.routeAlias}`) + .its("response.body") + .then(({ results, pageData }) => { + expect(results).to.have.length.least(1); + expect(pageData.page).to.equal(pageData.totalPages); + expect(pageData.hasNextPages).to.equal(false); + cy.visualSnapshot(`Paginate ${feedName} Last Page`); + }); + }); + }); + }); + + describe("filters transaction feeds by date range", function () { + _.each(feedViews, (feed, feedName) => { + it(`filters ${feedName} transaction feed by date range`, function () { + cy.database("find", "transactions").then((transaction: Transaction) => { + const dateRangeStart = startOfDay(new Date(transaction.createdAt)); + const dateRangeEnd = endOfDayUTC(addDays(dateRangeStart, 1)); + + cy.getBySelLike(feed.tab).click(); + cy.getBySelLike(feed.tab).should("have.class", "Mui-selected"); + + cy.wait(`@${feed.routeAlias}`).its("response.body.results").as("unfilteredResults"); + + cy.pickDateRange(dateRangeStart, dateRangeEnd); + + cy.wait(`@${feed.routeAlias}`) + .its("response.body.results") + .then((transactions: Transaction[]) => { + cy.getBySelLike("transaction-item").should("have.length", transactions.length); + + transactions.forEach(({ createdAt }) => { + const createdAtDate = startOfDayUTC(new Date(createdAt)); + + expect( + isWithinInterval(createdAtDate, { + start: startOfDayUTC(dateRangeStart), + end: dateRangeEnd, + }), + `transaction created date (${createdAtDate.toISOString()}) + is within ${dateRangeStart.toISOString()} + and ${dateRangeEnd.toISOString()}` + ).to.equal(true); + }); + + cy.visualSnapshot("Date Range Filtered Transactions"); + }); + + cy.log("Clearing date range filter. Data set should revert"); + cy.getBySelLike("filter-date-clear-button").click({ + force: true, + }); + cy.getBySelLike("filter-date-range-button").should("contain", "ALL"); + + cy.get("@unfilteredResults").then((unfilteredResults) => { + cy.wait(`@${feed.routeAlias}`) + .its("response.body.results") + .should("deep.equal", unfilteredResults); + cy.visualSnapshot("Unfiltered Transactions"); + }); + }); + }); + + it(`does not show ${feedName} transactions for out of range date limits`, function () { + const dateRangeStart = startOfDay(new Date(2014, 1, 1)); + const dateRangeEnd = endOfDayUTC(addDays(dateRangeStart, 1)); + + cy.getBySelLike(feed.tab).click(); + cy.wait(`@${feed.routeAlias}`); + + cy.pickDateRange(dateRangeStart, dateRangeEnd); + cy.wait(`@${feed.routeAlias}`); + + cy.getBySelLike("transaction-item").should("have.length", 0); + cy.getBySel("empty-list-header").should("contain", "No Transactions"); + cy.getBySelLike("empty-create-transaction-button") + .should("have.attr", "href", "/transaction/new") + .contains("create a transaction", { matchCase: false }) + .should("have.css", { "text-transform": "uppercase" }); + cy.visualSnapshot("No Transactions"); + }); + }); + }); + + describe("filters transaction feeds by amount range", function () { + const dollarAmountRange = { + min: 200, + max: 800, + }; + + _.each(feedViews, (feed, feedName) => { + it(`filters ${feedName} transaction feed by amount range`, function () { + cy.getBySelLike(feed.tab).click({ force: true }); + cy.getBySelLike(feed.tab).should("have.class", "Mui-selected"); + + cy.wait(`@${feed.routeAlias}`).its("response.body.results").as("unfilteredResults"); + + cy.setTransactionAmountRange(dollarAmountRange.min, dollarAmountRange.max); + + cy.getBySelLike("filter-amount-range-text").should( + "contain", + `$${dollarAmountRange.min} - $${dollarAmountRange.max}` + ); + + // @ts-ignore + cy.wait(`@${feed.routeAlias}`).then(({ response: { body, url } }) => { + const transactions = body.results as TransactionResponseItem[]; + const urlParams = new URLSearchParams(_.last(url.split("?"))); + + const rawAmountMin = dollarAmountRange.min * 100; + const rawAmountMax = dollarAmountRange.max * 100; + + expect(urlParams.get("amountMin")).to.equal(`${rawAmountMin}`); + expect(urlParams.get("amountMax")).to.equal(`${rawAmountMax}`); + + cy.visualSnapshot("Amount Range Filtered Transactions"); + transactions.forEach(({ amount }) => { + expect(amount).to.be.within(rawAmountMin, rawAmountMax); + }); + }); + + cy.getBySelLike("amount-clear-button").click(); + + cy.getBySel("transaction-list-filter-amount-clear-button").click(); + cy.getBySel("main").scrollTo("top"); + cy.getBySel("transaction-list-filter-date-range-button").click({ force: true }); + cy.getBySel("transaction-list-filter-amount-range").should("not.be.visible"); + + cy.get("@unfilteredResults").then((unfilteredResults) => { + cy.wait(`@${feed.routeAlias}`) + .its("response.body.results") + .should("deep.equal", unfilteredResults); + cy.visualSnapshot("Unfiltered Transactions"); + }); + }); + + it(`does not show ${feedName} transactions for out of range amount limits`, function () { + cy.getBySelLike(feed.tab).click(); + cy.wait(`@${feed.routeAlias}`); + + cy.setTransactionAmountRange(550, 1000); + cy.getBySelLike("filter-amount-range-text").should("contain", "$550 - $1,000"); + cy.wait(`@${feed.routeAlias}`); + + cy.getBySelLike("transaction-item").should("have.length", 0); + cy.getBySel("empty-list-header").should("contain", "No Transactions"); + cy.getBySelLike("empty-create-transaction-button") + .should("have.attr", "href", "/transaction/new") + .contains("create a transaction", { matchCase: false }) + .should("have.css", { "text-transform": "uppercase" }); + cy.visualSnapshot("No Transactions"); + }); + }); + }); + + describe("Feed Item Visibility", () => { + it("mine feed only shows personal transactions", function () { + cy.database("filter", "contacts", { userId: ctx.user!.id }).then((contacts: Contact[]) => { + ctx.contactIds = contacts.map((contact) => contact.contactUserId); + }); + + cy.getBySelLike(feedViews.personal.tab).click(); + + cy.wait("@personalTransactions") + .its("response.body.results") + .each((transaction: Transaction) => { + const transactionParticipants = [transaction.senderId, transaction.receiverId]; + expect(transactionParticipants).to.include(ctx.user!.id); + }); + cy.getBySel("list-skeleton").should("not.exist"); + cy.visualSnapshot("Personal Transactions"); + cy.get('[data-test="sidenav-home"] .MuiTypography-root').click(); + cy.get('[data-test="sidenav-user-settings"] .MuiTypography-root').click(); + cy.get('[data-test="sidenav-bankaccounts"] .MuiTypography-root').click(); + cy.get('[d="M4 10h3v7H4zm6.5 0h3v7h-3zM2 19h20v3H2zm15-9h3v7h-3zm-5-9L2 6v2h20V6z"]').click(); + cy.get('[data-test="sidenav-bankaccounts"]').click(); + }); + + it("first five items belong to contacts in public feed", function () { + cy.database("filter", "contacts", { userId: ctx.user!.id }).then((contacts: Contact[]) => { + ctx.contactIds = contacts.map((contact) => contact.contactUserId); + }); + + cy.wait("@publicTransactions") + .its("response.body.results") + .invoke("slice", 0, 5) + .each((transaction: Transaction) => { + const transactionParticipants = [transaction.senderId, transaction.receiverId]; + + const contactsInTransaction = _.intersection(transactionParticipants, ctx.contactIds!); + const message = `"${contactsInTransaction}" are contacts of ${ctx.user!.id}`; + expect(contactsInTransaction, message).to.not.be.empty; + }); + cy.getBySel("list-skeleton").should("not.exist"); + cy.visualSnapshot("First 5 Transaction Items belong to contacts"); + }); + + it("friends feed only shows contact transactions", function () { + cy.database("filter", "contacts", { userId: ctx.user!.id }).then((contacts: Contact[]) => { + ctx.contactIds = contacts.map((contact) => contact.contactUserId); + }); + + cy.getBySelLike(feedViews.contacts.tab).click(); + + cy.wait("@contactsTransactions") + .its("response.body.results") + .each((transaction: Transaction) => { + const transactionParticipants = [transaction.senderId, transaction.receiverId]; + + const contactsInTransaction = _.intersection(ctx.contactIds!, transactionParticipants); + + const message = `"${contactsInTransaction}" are contacts of ${ctx.user!.id}`; + expect(contactsInTransaction, message).to.not.be.empty; + }); + cy.getBySel("list-skeleton").should("not.exist"); + cy.visualSnapshot("Friends Feed only shows contacts transactions"); + }); + }); +}); diff --git a/package.json b/package.json index 77e32b99f..374e9b0af 100644 --- a/package.json +++ b/package.json @@ -136,7 +136,7 @@ "vite": "^4.4.2", "vite-plugin-eslint": "^1.8.1", "vite-plugin-istanbul": "^4.1.0", - "vitest": "^3.2.4", + "vitest": "^0.33.0", "wait-on": "^8.0.3" }, "scripts": { diff --git a/src/components/NotificationListItem.tsx b/src/components/NotificationListItem.tsx index 9d3da626c..2eccae2da 100644 --- a/src/components/NotificationListItem.tsx +++ b/src/components/NotificationListItem.tsx @@ -90,7 +90,7 @@ const NotificationListItem: React.FC = ({ } return ( - + {listItemIcon!} {xsBreakpoint && ( @@ -98,10 +98,12 @@ const NotificationListItem: React.FC = ({ aria-label="mark as read" color="primary" onClick={() => updateNotification({ id: notification.id, isRead: true })} - data-test={`notification-mark-read-${notification.id}`} + data-test={`mark-read`} size="large" > - + )} {!xsBreakpoint && ( @@ -109,7 +111,7 @@ const NotificationListItem: React.FC = ({ color="primary" size="small" onClick={() => updateNotification({ id: notification.id, isRead: true })} - data-test={`notification-mark-read-${notification.id}`} + data-test={`mark-read`} > Dismiss diff --git a/src/components/TransactionInfiniteList.tsx b/src/components/TransactionInfiniteList.tsx index 326670c6c..094fb14cf 100644 --- a/src/components/TransactionInfiniteList.tsx +++ b/src/components/TransactionInfiniteList.tsx @@ -80,9 +80,16 @@ const TransactionInfiniteList: React.FC = ({ ref={registerChild} onRowsRendered={onRowsRendered} height={isXsBreakpoint ? removePx(theme.spacing(74)) : removePx(theme.spacing(88))} - width={isXsBreakpoint ? removePx(theme.spacing(38)) : removePx(theme.spacing(90))} + width={isXsBreakpoint ? removePx(theme.spacing(44)) : removePx(theme.spacing(90))} rowHeight={isXsBreakpoint ? removePx(theme.spacing(28)) : removePx(theme.spacing(16))} rowRenderer={rowRenderer} + style={{ + width: "100%", + minHeight: "80vh", + display: "flex", + overflow: "auto", + flexDirection: "column", + }} /> )} diff --git a/src/components/TransactionTitle.tsx b/src/components/TransactionTitle.tsx index e95ee1530..9b0bf8b75 100644 --- a/src/components/TransactionTitle.tsx +++ b/src/components/TransactionTitle.tsx @@ -42,7 +42,7 @@ const TransactionTitle: React.FC<{ return ( = ({ userProfile, updateUser > {({ isValid, isSubmitting }) => ( -
{({ field, meta: { error, value, initialValue, touched } }: FieldProps) => ( = ({ userProfile, updateUser margin="dense" fullWidth required - id={"user-settings-firstName-input"} + id={"firstName"} type="text" placeholder="First Name" - inputProps={{ "data-test": "user-settings-firstName-input" }} error={(touched || value !== initialValue) && Boolean(error)} helperText={touched || value !== initialValue ? error : ""} {...field} + style={{ + width: "100%", + }} + inputProps={{ + "data-test": "firstName", + style: { padding: "12px 16px" } + }} /> )} @@ -92,13 +97,19 @@ const UserSettingsForm: React.FC = ({ userProfile, updateUser margin="dense" fullWidth required - id={"user-settings-lastName-input"} + id={"lastName"} type="text" placeholder="Last Name" - inputProps={{ "data-test": "user-settings-lastName-input" }} + inputProps={{ + "data-test": "lastName", + style: { padding: "12px 16px" } + }} error={(touched || value !== initialValue) && Boolean(error)} helperText={touched || value !== initialValue ? error : ""} {...field} + style={{ + width: "100%", + }} /> )} @@ -109,13 +120,19 @@ const UserSettingsForm: React.FC = ({ userProfile, updateUser margin="dense" fullWidth required - id={"user-settings-email-input"} + id={"email"} type="text" placeholder="Email" - inputProps={{ "data-test": "user-settings-email-input" }} + inputProps={{ + "data-test": "user-settings-email", + style: { padding: "12px 16px" } + }} error={(touched || value !== initialValue) && Boolean(error)} helperText={touched || value !== initialValue ? error : ""} {...field} + style={{ + width: "100%", + }} /> )} @@ -126,24 +143,23 @@ const UserSettingsForm: React.FC = ({ userProfile, updateUser margin="dense" fullWidth required - id={"user-settings-phoneNumber-input"} + id={"phoneNumber"} type="text" placeholder="Phone Number" - inputProps={{ "data-test": "user-settings-phoneNumber-input" }} + inputProps={{ + "data-test": "phoneNumber", + style: { padding: "12px 16px" } + }} error={(touched || value !== initialValue) && Boolean(error)} helperText={touched || value !== initialValue ? error : ""} {...field} + style={{ + width: "100%", + }} /> )} - - + - - - +
)} diff --git a/src/containers/UserSettingsContainer.tsx b/src/containers/UserSettingsContainer.tsx index 3aeb01fa1..364917d1b 100644 --- a/src/containers/UserSettingsContainer.tsx +++ b/src/containers/UserSettingsContainer.tsx @@ -47,7 +47,7 @@ const UserSettingsContainer: React.FC = ({ authService }) => { - + {currentUser && } diff --git a/yarn.lock b/yarn.lock index e32d17803..d7d7c4e33 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1070,12 +1070,12 @@ "@babel/types" "^7.26.0" "@babel/helpers@^7.27.6": - version "7.27.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.6.tgz#6456fed15b2cb669d2d1fabe84b66b34991d812c" - integrity sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug== + version "7.28.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.2.tgz#80f0918fecbfebea9af856c419763230040ee850" + integrity sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw== dependencies: "@babel/template" "^7.27.2" - "@babel/types" "^7.27.6" + "@babel/types" "^7.28.2" "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.3": version "7.26.3" @@ -1761,10 +1761,10 @@ "@babel/helper-string-parser" "^7.25.9" "@babel/helper-validator-identifier" "^7.25.9" -"@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.27.6", "@babel/types@^7.28.0", "@babel/types@^7.4.4": - version "7.28.1" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.1.tgz#2aaf3c10b31ba03a77ac84f52b3912a0edef4cf9" - integrity sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ== +"@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.0", "@babel/types@^7.28.2", "@babel/types@^7.4.4": + version "7.28.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.2.tgz#da9db0856a9a88e0a13b019881d7513588cf712b" + integrity sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ== dependencies: "@babel/helper-string-parser" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1" @@ -1805,10 +1805,10 @@ debug "4.2.0" find-yarn-workspace-root "^2.0.0" -"@cypress/request@^3.0.8": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.8.tgz#992f1f42ba03ebb14fa5d97290abe9d015ed0815" - integrity sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ== +"@cypress/request@^3.0.9": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.9.tgz#8ed6e08fea0c62998b5552301023af7268f11625" + integrity sha512-I3l7FdGRXluAS44/0NguwWlO83J18p0vlr2FYHrJkWdNYhgVoiYo61IXPqaOsL+vNxU1ZqMACzItGK3/KKDsdw== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -1816,7 +1816,7 @@ combined-stream "~1.0.6" extend "~3.0.2" forever-agent "~0.6.1" - form-data "~4.0.0" + form-data "~4.0.4" http-signature "~1.4.0" is-typedarray "~1.0.0" isstream "~0.1.2" @@ -1954,246 +1954,116 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz#5e13fac887f08c44f76b0ccaf3370eb00fec9bb6" integrity sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg== -"@esbuild/aix-ppc64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz#a1414903bb38027382f85f03dda6065056757727" - integrity sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA== - "@esbuild/android-arm64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== -"@esbuild/android-arm64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz#c859994089e9767224269884061f89dae6fb51c6" - integrity sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w== - "@esbuild/android-arm@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== -"@esbuild/android-arm@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.8.tgz#96a8f2ca91c6cd29ea90b1af79d83761c8ba0059" - integrity sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw== - "@esbuild/android-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== -"@esbuild/android-x64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.8.tgz#a3a626c4fec4a024a9fa8c7679c39996e92916f0" - integrity sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA== - "@esbuild/darwin-arm64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== -"@esbuild/darwin-arm64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz#a5e1252ca2983d566af1c0ea39aded65736fc66d" - integrity sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw== - "@esbuild/darwin-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== -"@esbuild/darwin-x64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz#5271b0df2bb12ce8df886704bfdd1c7cc01385d2" - integrity sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg== - "@esbuild/freebsd-arm64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== -"@esbuild/freebsd-arm64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz#d0a0e7fdf19733b8bb1566b81df1aa0bb7e46ada" - integrity sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA== - "@esbuild/freebsd-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== -"@esbuild/freebsd-x64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz#2de8b2e0899d08f1cb1ef3128e159616e7e85343" - integrity sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw== - "@esbuild/linux-arm64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== -"@esbuild/linux-arm64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz#a4209efadc0c2975716458484a4e90c237c48ae9" - integrity sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w== - "@esbuild/linux-arm@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== -"@esbuild/linux-arm@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz#ccd9e291c24cd8d9142d819d463e2e7200d25b19" - integrity sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg== - "@esbuild/linux-ia32@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== -"@esbuild/linux-ia32@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz#006ad1536d0c2b28fb3a1cf0b53bcb85aaf92c4d" - integrity sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg== - "@esbuild/linux-loong64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== -"@esbuild/linux-loong64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz#127b3fbfb2c2e08b1397e985932f718f09a8f5c4" - integrity sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ== - "@esbuild/linux-mips64el@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== -"@esbuild/linux-mips64el@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz#837d1449517791e3fa7d82675a2d06d9f56cb340" - integrity sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw== - "@esbuild/linux-ppc64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== -"@esbuild/linux-ppc64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz#aa2e3bd93ab8df084212f1895ca4b03c42d9e0fe" - integrity sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ== - "@esbuild/linux-riscv64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== -"@esbuild/linux-riscv64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz#a340620e31093fef72767dd28ab04214b3442083" - integrity sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg== - "@esbuild/linux-s390x@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== -"@esbuild/linux-s390x@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz#ddfed266c8c13f5efb3105a0cd47f6dcd0e79e71" - integrity sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg== - "@esbuild/linux-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== -"@esbuild/linux-x64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz#9a4f78c75c051e8c060183ebb39a269ba936a2ac" - integrity sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ== - -"@esbuild/netbsd-arm64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz#902c80e1d678047926387230bc037e63e00697d0" - integrity sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw== - "@esbuild/netbsd-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== -"@esbuild/netbsd-x64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz#2d9eb4692add2681ff05a14ce99de54fbed7079c" - integrity sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg== - -"@esbuild/openbsd-arm64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz#89c3b998c6de739db38ab7fb71a8a76b3fa84a45" - integrity sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ== - "@esbuild/openbsd-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== -"@esbuild/openbsd-x64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz#2f01615cf472b0e48c077045cfd96b5c149365cc" - integrity sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ== - -"@esbuild/openharmony-arm64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz#a201f720cd2c3ebf9a6033fcc3feb069a54b509a" - integrity sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg== - "@esbuild/sunos-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== -"@esbuild/sunos-x64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz#07046c977985a3334667f19e6ab3a01a80862afb" - integrity sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w== - "@esbuild/win32-arm64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== -"@esbuild/win32-arm64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz#4a5470caf0d16127c05d4833d4934213c69392d1" - integrity sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ== - "@esbuild/win32-ia32@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== -"@esbuild/win32-ia32@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz#3de3e8470b7b328d99dbc3e9ec1eace207e5bbc4" - integrity sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg== - "@esbuild/win32-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== -"@esbuild/win32-x64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz#610d7ea539d2fcdbe39237b5cc175eb2c4451f9c" - integrity sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw== - "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.7.0": version "4.7.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz#607084630c6c033992a082de6e6fbc1a8b52175a" @@ -2490,9 +2360,9 @@ chalk "^4.0.0" "@jridgewell/gen-mapping@^0.3.12": - version "0.3.12" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz#2234ce26c62889f03db3d7fea43c1932ab3e927b" - integrity sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg== + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" "@jridgewell/trace-mapping" "^0.3.24" @@ -2551,9 +2421,9 @@ "@jridgewell/sourcemap-codec" "^1.4.14" "@jridgewell/trace-mapping@^0.3.28": - version "0.3.29" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz#a58d31eaadaf92c6695680b2e1d464a9b8fbf7fc" - integrity sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ== + version "0.3.30" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz#4a76c4daeee5df09f5d3940e087442fb36ce2b99" + integrity sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -3109,106 +2979,6 @@ estree-walker "^2.0.1" picomatch "^2.2.2" -"@rollup/rollup-android-arm-eabi@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz#292e25953d4988d3bd1af0f5ebbd5ee4d65c90b4" - integrity sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA== - -"@rollup/rollup-android-arm64@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz#053b3def3451e6fc1a9078188f22799e868d7c59" - integrity sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ== - -"@rollup/rollup-darwin-arm64@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz#98d90445282dec54fd05440305a5e8df79a91ece" - integrity sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ== - -"@rollup/rollup-darwin-x64@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz#fe05f95a736423af5f9c3a59a70f41ece52a1f20" - integrity sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA== - -"@rollup/rollup-freebsd-arm64@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz#41e1fbdc1f8c3dc9afb6bc1d6e3fb3104bd81eee" - integrity sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg== - -"@rollup/rollup-freebsd-x64@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz#69131e69cb149d547abb65ef3b38fc746c940e24" - integrity sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw== - -"@rollup/rollup-linux-arm-gnueabihf@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz#977ded91c7cf6fc0d9443bb9c0a064e45a805267" - integrity sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA== - -"@rollup/rollup-linux-arm-musleabihf@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz#dc034fc3c0f0eb5c75b6bc3eca3b0b97fd35f49a" - integrity sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ== - -"@rollup/rollup-linux-arm64-gnu@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz#5e92613768d3de3ffcabc965627dd0a59b3e7dfc" - integrity sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng== - -"@rollup/rollup-linux-arm64-musl@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz#2a44f88e83d28b646591df6e50aa0a5a931833d8" - integrity sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg== - -"@rollup/rollup-linux-loongarch64-gnu@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz#bd5897e92db7fbf7dc456f61d90fff96c4651f2e" - integrity sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA== - -"@rollup/rollup-linux-ppc64-gnu@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz#a7065025411c14ad9ec34cc1cd1414900ec2a303" - integrity sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw== - -"@rollup/rollup-linux-riscv64-gnu@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz#17f9c0c675e13ef4567cfaa3730752417257ccc3" - integrity sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ== - -"@rollup/rollup-linux-riscv64-musl@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz#bc6ed3db2cedc1ba9c0a2183620fe2f792c3bf3f" - integrity sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw== - -"@rollup/rollup-linux-s390x-gnu@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz#440c4f6753274e2928e06d2a25613e5a1cf97b41" - integrity sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA== - -"@rollup/rollup-linux-x64-gnu@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz#1e936446f90b2574ea4a83b4842a762cc0a0aed3" - integrity sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA== - -"@rollup/rollup-linux-x64-musl@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz#c6f304dfba1d5faf2be5d8b153ccbd8b5d6f1166" - integrity sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA== - -"@rollup/rollup-win32-arm64-msvc@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz#b4ad4a79219892aac112ed1c9d1356cad0566ef5" - integrity sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g== - -"@rollup/rollup-win32-ia32-msvc@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz#b1b22eb2a9568048961e4a6f540438b4a762aa62" - integrity sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ== - -"@rollup/rollup-win32-x64-msvc@4.46.2": - version "4.46.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz#87079f137b5fdb75da11508419aa998cc8cc3d8b" - integrity sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg== - "@sideway/address@^4.1.5": version "4.1.5" resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.5.tgz#4bc149a0076623ced99ca8208ba780d65a99b9d5" @@ -3886,12 +3656,15 @@ "@types/connect" "*" "@types/node" "*" -"@types/chai@^5.2.2": - version "5.2.2" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.2.tgz#6f14cea18180ffc4416bc0fd12be05fdd73bdd6b" - integrity sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg== - dependencies: - "@types/deep-eql" "*" +"@types/chai-subset@^1.3.3": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.6.tgz#fc50f637ebd038ed58700f826d7bab2caa8a8d7e" + integrity sha512-m8lERkkQj+uek18hXOZuec3W/fCRTrU4hrnXjH3qhHy96ytuPaPiWGgu7sJb7tZxZonO75vYAjCvpe/e4VUwRw== + +"@types/chai@^4.3.5": + version "4.3.20" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.20.tgz#cb291577ed342ca92600430841a00329ba05cecc" + integrity sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ== "@types/connect-flash@0.0.37": version "0.0.37" @@ -3920,11 +3693,6 @@ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== -"@types/deep-eql@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" - integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== - "@types/detect-port@^1.3.2": version "1.3.5" resolved "https://registry.yarnpkg.com/@types/detect-port/-/detect-port-1.3.5.tgz#deecde143245989dee0e82115f3caba5ee0ea747" @@ -3964,7 +3732,7 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== -"@types/estree@1.0.8", "@types/estree@^1.0.0", "@types/estree@^1.0.6": +"@types/estree@^1.0.6": version "1.0.8" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== @@ -4497,66 +4265,48 @@ "@types/babel__core" "^7.20.5" react-refresh "^0.14.2" -"@vitest/expect@3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-3.2.4.tgz#8362124cd811a5ee11c5768207b9df53d34f2433" - integrity sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig== - dependencies: - "@types/chai" "^5.2.2" - "@vitest/spy" "3.2.4" - "@vitest/utils" "3.2.4" - chai "^5.2.0" - tinyrainbow "^2.0.0" - -"@vitest/mocker@3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-3.2.4.tgz#4471c4efbd62db0d4fa203e65cc6b058a85cabd3" - integrity sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ== +"@vitest/expect@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.33.0.tgz#f48652591f3573ad6c2db828ad358d5c078845d3" + integrity sha512-sVNf+Gla3mhTCxNJx+wJLDPp/WcstOe0Ksqz4Vec51MmgMth/ia0MGFEkIZmVGeTL5HtjYR4Wl/ZxBxBXZJTzQ== dependencies: - "@vitest/spy" "3.2.4" - estree-walker "^3.0.3" - magic-string "^0.30.17" + "@vitest/spy" "0.33.0" + "@vitest/utils" "0.33.0" + chai "^4.3.7" -"@vitest/pretty-format@3.2.4", "@vitest/pretty-format@^3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-3.2.4.tgz#3c102f79e82b204a26c7a5921bf47d534919d3b4" - integrity sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA== +"@vitest/runner@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.33.0.tgz#0b1a4d04ff8bc5cdad73920eac019d99550edf9d" + integrity sha512-UPfACnmCB6HKRHTlcgCoBh6ppl6fDn+J/xR8dTufWiKt/74Y9bHci5CKB8tESSV82zKYtkBJo9whU3mNvfaisg== dependencies: - tinyrainbow "^2.0.0" + "@vitest/utils" "0.33.0" + p-limit "^4.0.0" + pathe "^1.1.1" -"@vitest/runner@3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-3.2.4.tgz#5ce0274f24a971f6500f6fc166d53d8382430766" - integrity sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ== +"@vitest/snapshot@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-0.33.0.tgz#4400a90c48907808122b573053a2112a832b3698" + integrity sha512-tJjrl//qAHbyHajpFvr8Wsk8DIOODEebTu7pgBrP07iOepR5jYkLFiqLq2Ltxv+r0uptUb4izv1J8XBOwKkVYA== dependencies: - "@vitest/utils" "3.2.4" - pathe "^2.0.3" - strip-literal "^3.0.0" + magic-string "^0.30.1" + pathe "^1.1.1" + pretty-format "^29.5.0" -"@vitest/snapshot@3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-3.2.4.tgz#40a8bc0346ac0aee923c0eefc2dc005d90bc987c" - integrity sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ== - dependencies: - "@vitest/pretty-format" "3.2.4" - magic-string "^0.30.17" - pathe "^2.0.3" - -"@vitest/spy@3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-3.2.4.tgz#cc18f26f40f3f028da6620046881f4e4518c2599" - integrity sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw== +"@vitest/spy@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.33.0.tgz#366074d3cf9cf1ed8aeaa76e50e78c799fb242eb" + integrity sha512-Kv+yZ4hnH1WdiAkPUQTpRxW8kGtH8VRTnus7ZTGovFYM1ZezJpvGtb9nPIjPnptHbsyIAxYZsEpVPYgtpjGnrg== dependencies: - tinyspy "^4.0.3" + tinyspy "^2.1.1" -"@vitest/utils@3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-3.2.4.tgz#c0813bc42d99527fb8c5b138c7a88516bca46fea" - integrity sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA== +"@vitest/utils@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.33.0.tgz#6b9820cb8f128d649da6f78ecaa9b73d6222b277" + integrity sha512-pF1w22ic965sv+EN6uoePkAOTkAPWM03Ri/jXNyMIKBb/XHLDPfhLvf/Fa9g0YECevAIz56oVYXhodLvLQ/awA== dependencies: - "@vitest/pretty-format" "3.2.4" - loupe "^3.1.4" - tinyrainbow "^2.0.0" + diff-sequences "^29.4.3" + loupe "^2.3.6" + pretty-format "^29.5.0" "@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": version "1.14.1" @@ -4763,23 +4513,23 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^8.1.1: +acorn-walk@^8.1.1, acorn-walk@^8.2.0: version "8.3.4" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== dependencies: acorn "^8.11.0" +acorn@^8.10.0, acorn@^8.15.0, acorn@^8.9.0: + version "8.15.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== + acorn@^8.11.0, acorn@^8.14.0, acorn@^8.4.1, acorn@^8.8.2: version "8.14.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== -acorn@^8.15.0: - version "8.15.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== - address@^1.0.1: version "1.2.2" resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" @@ -5021,10 +4771,10 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== -assertion-error@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" - integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== assign-symbols@^1.0.0: version "1.0.0" @@ -5317,12 +5067,12 @@ browserslist@^4.24.0: update-browserslist-db "^1.1.1" browserslist@^4.25.1: - version "4.25.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.25.1.tgz#ba9e8e6f298a1d86f829c9b975e07948967bb111" - integrity sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw== + version "4.25.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.25.2.tgz#90c1507143742d743544ae6e92bca3348adff667" + integrity sha512-0si2SJK3ooGzIawRu61ZdPCO1IncZwS8IzuX73sPZsXW6EQ/w/DAfPyKI8l1ETTCr2MnvqWitmlCUxgdul45jA== dependencies: - caniuse-lite "^1.0.30001726" - electron-to-chromium "^1.5.173" + caniuse-lite "^1.0.30001733" + electron-to-chromium "^1.5.199" node-releases "^2.0.19" update-browserslist-db "^1.1.3" @@ -5502,26 +5252,28 @@ caniuse-lite@^1.0.30001688: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001689.tgz#67ca960dd5f443903e19949aeacc9d28f6e10910" integrity sha512-CmeR2VBycfa+5/jOfnp/NpWPGd06nf1XYiefUvhXFfZE4GkRc9jv+eGPS4nT558WS/8lYCzV8SlANCIPvbWP1g== -caniuse-lite@^1.0.30001726: - version "1.0.30001727" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz#22e9706422ad37aa50556af8c10e40e2d93a8b85" - integrity sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q== +caniuse-lite@^1.0.30001733: + version "1.0.30001734" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001734.tgz#f97e08599e2d75664543ae4b6ef25dc2183c5cc6" + integrity sha512-uhE1Ye5vgqju6OI71HTQqcBCZrvHugk0MjLak7Q+HfoBgoq5Bi+5YnwjP4fjDgrtYr/l8MVRBvzz9dPD4KyK0A== caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -chai@^5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/chai/-/chai-5.2.1.tgz#a9502462bdc79cf90b4a0953537a9908aa638b47" - integrity sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A== +chai@^4.3.7: + version "4.5.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.5.0.tgz#707e49923afdd9b13a8b0b47d33d732d13812fd8" + integrity sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw== dependencies: - assertion-error "^2.0.1" - check-error "^2.1.1" - deep-eql "^5.0.1" - loupe "^3.1.0" - pathval "^2.0.0" + assertion-error "^1.1.0" + check-error "^1.0.3" + deep-eql "^4.1.3" + get-func-name "^2.0.2" + loupe "^2.3.6" + pathval "^1.1.1" + type-detect "^4.1.0" chain-function@^1.0.0: version "1.0.1" @@ -5554,10 +5306,12 @@ change-emitter@^0.1.2: resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515" integrity sha512-YXzt1cQ4a2jqazhcuSWEOc1K2q8g9H6eWNsyZgi640LDzRWVQ2eDe+Y/kVdftH+vYdPF2rgDb3dLdpxE1jvAxw== -check-error@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" - integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== +check-error@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== + dependencies: + get-func-name "^2.0.2" check-more-types@2.24.0, check-more-types@^2.24.0: version "2.24.0" @@ -5818,6 +5572,11 @@ concurrently@9.1.2: tree-kill "^1.2.2" yargs "^17.7.2" +confbox@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06" + integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== + connect-history-api-fallback@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" @@ -5982,11 +5741,11 @@ csstype@^3.0.2, csstype@^3.1.3: integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== cypress@^14.3.2: - version "14.3.3" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-14.3.3.tgz#cbf7fbc79fd139ba55ea51a6d1ee3d9018a59ce2" - integrity sha512-1Rz7zc9iqLww6BysaESqUhtIuaFHS7nL3wREovAKYsNhLTfX3TbcBWHWgEz70YimH2NkSOsm4oIcJJ9HYHOlew== + version "14.5.4" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-14.5.4.tgz#d821fbb6220c3328e7413acc7724b75319c9e64d" + integrity sha512-0Dhm4qc9VatOcI1GiFGVt8osgpPdqJLHzRwcAB5MSD/CAAts3oybvPUPawHyvJZUd8osADqZe/xzMsZ8sDTjXw== dependencies: - "@cypress/request" "^3.0.8" + "@cypress/request" "^3.0.9" "@cypress/xvfb" "^1.2.4" "@types/sinonjs__fake-timers" "8.1.1" "@types/sizzle" "^2.3.2" @@ -6012,6 +5771,7 @@ cypress@^14.3.2: figures "^3.2.0" fs-extra "^9.1.0" getos "^3.2.1" + hasha "5.2.2" is-installed-globally "~0.4.0" lazy-ass "^1.6.0" listr2 "^3.8.3" @@ -6118,10 +5878,12 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== -deep-eql@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" - integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== +deep-eql@^4.1.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" + integrity sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg== + dependencies: + type-detect "^4.0.0" deep-equal@^2.0.5: version "2.2.3" @@ -6239,7 +6001,7 @@ detect-port@^1.5.1: address "^1.0.1" debug "4" -diff-sequences@^29.6.3: +diff-sequences@^29.4.3, diff-sequences@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== @@ -6337,10 +6099,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.5.173: - version "1.5.187" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.187.tgz#8c58854e065962351dc87e95614dd78d50425966" - integrity sha512-cl5Jc9I0KGUoOoSbxvTywTa40uspGJt/BDBoDLoxJRSBpWh4FFXBsjNRHfQrONsV/OoEjDfHUmZQa2d6Ze4YgA== +electron-to-chromium@^1.5.199: + version "1.5.200" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.200.tgz#adffa5db97390ce9d48987f528117a608ed0d7c9" + integrity sha512-rFCxROw7aOe4uPTfIAx+rXv9cEcGx+buAF4npnhtTqCJk5KDFRnh3+KYj7rdVh6lsFt5/aPs+Irj9rZ33WMA7w== electron-to-chromium@^1.5.73: version "1.5.74" @@ -6449,11 +6211,6 @@ es-module-lexer@^1.2.1: resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78" integrity sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw== -es-module-lexer@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" - integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== - es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" @@ -6504,38 +6261,6 @@ esbuild@^0.18.10: "@esbuild/win32-ia32" "0.18.20" "@esbuild/win32-x64" "0.18.20" -esbuild@^0.25.0: - version "0.25.8" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.8.tgz#482d42198b427c9c2f3a81b63d7663aecb1dda07" - integrity sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q== - optionalDependencies: - "@esbuild/aix-ppc64" "0.25.8" - "@esbuild/android-arm" "0.25.8" - "@esbuild/android-arm64" "0.25.8" - "@esbuild/android-x64" "0.25.8" - "@esbuild/darwin-arm64" "0.25.8" - "@esbuild/darwin-x64" "0.25.8" - "@esbuild/freebsd-arm64" "0.25.8" - "@esbuild/freebsd-x64" "0.25.8" - "@esbuild/linux-arm" "0.25.8" - "@esbuild/linux-arm64" "0.25.8" - "@esbuild/linux-ia32" "0.25.8" - "@esbuild/linux-loong64" "0.25.8" - "@esbuild/linux-mips64el" "0.25.8" - "@esbuild/linux-ppc64" "0.25.8" - "@esbuild/linux-riscv64" "0.25.8" - "@esbuild/linux-s390x" "0.25.8" - "@esbuild/linux-x64" "0.25.8" - "@esbuild/netbsd-arm64" "0.25.8" - "@esbuild/netbsd-x64" "0.25.8" - "@esbuild/openbsd-arm64" "0.25.8" - "@esbuild/openbsd-x64" "0.25.8" - "@esbuild/openharmony-arm64" "0.25.8" - "@esbuild/sunos-x64" "0.25.8" - "@esbuild/win32-arm64" "0.25.8" - "@esbuild/win32-ia32" "0.25.8" - "@esbuild/win32-x64" "0.25.8" - escalade@^3.1.1, escalade@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" @@ -6678,13 +6403,6 @@ estree-walker@^2.0.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== -estree-walker@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" - integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== - dependencies: - "@types/estree" "^1.0.0" - esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -6773,11 +6491,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect-type@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.2.2.tgz#c030a329fb61184126c8447585bc75a7ec6fbff3" - integrity sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA== - expect@^29.0.0: version "29.7.0" resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" @@ -7031,11 +6744,6 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" -fdir@^6.4.4, fdir@^6.4.6: - version "6.4.6" - resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.6.tgz#2b268c0232697063111bbf3f64810a2a741ba281" - integrity sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w== - figures@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -7177,14 +6885,15 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -form-data@~4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.2.tgz#35cabbdd30c3ce73deb2c42d3c8d3ed9ca51794c" - integrity sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w== +form-data@~4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4" + integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" es-set-tostringtag "^2.1.0" + hasown "^2.0.2" mime-types "^2.1.12" formik@2.4.6: @@ -7257,7 +6966,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.2, fsevents@~2.3.3: +fsevents@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -7315,6 +7024,11 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-func-name@^2.0.1, get-func-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== + get-intrinsic@^1.1.3, get-intrinsic@^1.2.2, get-intrinsic@^1.2.4: version "1.2.6" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.6.tgz#43dd3dd0e7b49b82b2dfcad10dc824bf7fc265d5" @@ -7610,7 +7324,7 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -hasha@^5.0.0: +hasha@5.2.2, hasha@^5.0.0: version "5.2.2" resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== @@ -8406,11 +8120,6 @@ js-cookie@^3.0.1, js-cookie@^3.0.5: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-tokens@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-9.0.1.tgz#2ec43964658435296f6761b34e10671c2d9527f4" - integrity sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ== - js-yaml@4.1.0, js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -8808,6 +8517,11 @@ loader-runner@^4.2.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== +local-pkg@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" + integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== + locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -8927,10 +8641,12 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3 dependencies: js-tokens "^3.0.0 || ^4.0.0" -loupe@^3.1.0, loupe@^3.1.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.2.0.tgz#174073ba8e0a1d0d5e43cc08626ed8a19403c344" - integrity sha512-2NCfZcT5VGVNX9mSZIxLRkEAegDGBpuQZBy13desuHeVORmBDyAET4TkJr4SjqQy3A8JDofMN6LpkK8Xcm/dlw== +loupe@^2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== + dependencies: + get-func-name "^2.0.1" lowdb@1.0.0: version "1.0.0" @@ -8980,7 +8696,7 @@ lz-string@^1.5.0: resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== -magic-string@^0.30.17: +magic-string@^0.30.1: version "0.30.17" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== @@ -9272,6 +8988,16 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mlly@^1.4.0, mlly@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.4.tgz#3d7295ea2358ec7a271eaa5d000a0f84febe100f" + integrity sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw== + dependencies: + acorn "^8.14.0" + pathe "^2.0.1" + pkg-types "^1.3.0" + ufo "^1.5.4" + morgan@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" @@ -9313,7 +9039,7 @@ nanoid@^2.1.0: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== -nanoid@^3.3.11, nanoid@^3.3.8: +nanoid@^3.3.8: version "3.3.11" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== @@ -9846,6 +9572,13 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -10071,15 +9804,20 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathe@^2.0.3: +pathe@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== + +pathe@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== -pathval@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.1.tgz#8855c5a2899af072d6ac05d11e46045ad0dc605d" - integrity sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ== +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== pause-stream@0.0.11: version "0.0.11" @@ -10113,11 +9851,6 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatc resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -picomatch@^4.0.2, picomatch@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" - integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== - pify@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -10135,6 +9868,15 @@ pkg-dir@^4.1.0: dependencies: find-up "^4.0.0" +pkg-types@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.3.1.tgz#bd7cc70881192777eef5326c19deb46e890917df" + integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== + dependencies: + confbox "^0.1.8" + mlly "^1.7.4" + pathe "^2.0.1" + posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -10162,15 +9904,6 @@ postcss@^8.4.27: picocolors "^1.1.1" source-map-js "^1.2.1" -postcss@^8.5.6: - version "8.5.6" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c" - integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== - dependencies: - nanoid "^3.3.11" - picocolors "^1.1.1" - source-map-js "^1.2.1" - postinstall-postinstall@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz#4f7f77441ef539d1512c40bd04c71b06a4704ca3" @@ -10200,7 +9933,7 @@ pretty-format@^27.0.2: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^29.0.0, pretty-format@^29.7.0: +pretty-format@^29.0.0, pretty-format@^29.5.0, pretty-format@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== @@ -10827,35 +10560,6 @@ rollup@^3.27.1: optionalDependencies: fsevents "~2.3.2" -rollup@^4.40.0: - version "4.46.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.46.2.tgz#09b1a45d811e26d09bed63dc3ecfb6831c16ce32" - integrity sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg== - dependencies: - "@types/estree" "1.0.8" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.46.2" - "@rollup/rollup-android-arm64" "4.46.2" - "@rollup/rollup-darwin-arm64" "4.46.2" - "@rollup/rollup-darwin-x64" "4.46.2" - "@rollup/rollup-freebsd-arm64" "4.46.2" - "@rollup/rollup-freebsd-x64" "4.46.2" - "@rollup/rollup-linux-arm-gnueabihf" "4.46.2" - "@rollup/rollup-linux-arm-musleabihf" "4.46.2" - "@rollup/rollup-linux-arm64-gnu" "4.46.2" - "@rollup/rollup-linux-arm64-musl" "4.46.2" - "@rollup/rollup-linux-loongarch64-gnu" "4.46.2" - "@rollup/rollup-linux-ppc64-gnu" "4.46.2" - "@rollup/rollup-linux-riscv64-gnu" "4.46.2" - "@rollup/rollup-linux-riscv64-musl" "4.46.2" - "@rollup/rollup-linux-s390x-gnu" "4.46.2" - "@rollup/rollup-linux-x64-gnu" "4.46.2" - "@rollup/rollup-linux-x64-musl" "4.46.2" - "@rollup/rollup-win32-arm64-msvc" "4.46.2" - "@rollup/rollup-win32-ia32-msvc" "4.46.2" - "@rollup/rollup-win32-x64-msvc" "4.46.2" - fsevents "~2.3.2" - rrweb-cssom@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz#ed298055b97cbddcdeb278f904857629dec5e0e1" @@ -11423,7 +11127,7 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -std-env@^3.9.0: +std-env@^3.3.3: version "3.9.0" resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.9.0.tgz#1a6f7243b339dca4c9fd55e1c7504c77ef23e8f1" integrity sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw== @@ -11527,12 +11231,12 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-literal@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-3.0.0.tgz#ce9c452a91a0af2876ed1ae4e583539a353df3fc" - integrity sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA== +strip-literal@^1.0.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.3.0.tgz#db3942c2ec1699e6836ad230090b84bb458e3a07" + integrity sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg== dependencies: - js-tokens "^9.0.1" + acorn "^8.10.0" strnum@^1.0.5: version "1.0.5" @@ -11672,38 +11376,20 @@ tiny-warning@^1.0.0, tiny-warning@^1.0.2: resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== -tinybench@^2.9.0: +tinybench@^2.5.0: version "2.9.0" resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b" integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== -tinyexec@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" - integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== - -tinyglobby@^0.2.14: - version "0.2.14" - resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.14.tgz#5280b0cf3f972b050e74ae88406c0a6a58f4079d" - integrity sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ== - dependencies: - fdir "^6.4.4" - picomatch "^4.0.2" - -tinypool@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.1.1.tgz#059f2d042bd37567fbc017d3d426bdd2a2612591" - integrity sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg== - -tinyrainbow@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-2.0.0.tgz#9509b2162436315e80e3eee0fcce4474d2444294" - integrity sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw== +tinypool@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.6.0.tgz#c3640b851940abe2168497bb6e43b49fafb3ba7b" + integrity sha512-FdswUUo5SxRizcBc6b1GSuLpLjisa8N8qMyYoP3rl+bym+QauhtJP5bvZY1ytt8krKGmMLYIRl36HBZfeAoqhQ== -tinyspy@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-4.0.3.tgz#d1d0f0602f4c15f1aae083a34d6d0df3363b1b52" - integrity sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A== +tinyspy@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-2.2.1.tgz#117b2342f1f38a0dbdcc73a50a454883adf861d1" + integrity sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A== tldts-core@^6.1.86: version "6.1.86" @@ -11884,6 +11570,11 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +type-detect@^4.0.0, type-detect@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.1.0.tgz#deb2453e8f08dcae7ae98c626b13dddb0155906c" + integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== + type-fest@^0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" @@ -11928,6 +11619,11 @@ ua-parser-js@^0.7.30: resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.39.tgz#c71efb46ebeabc461c4612d22d54f88880fabe7e" integrity sha512-IZ6acm6RhQHNibSt7+c09hhvsKy9WUr4DVbeq9U8o71qxyYtJpQeDxQnMrVqnIFMLcQjHO0I9wgfO2vIahht4w== +ufo@^1.5.4: + version "1.6.1" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.6.1.tgz#ac2db1d54614d1b22c1d603e3aef44a85d8f146b" + integrity sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA== + uid-safe@~2.1.5: version "2.1.5" resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.5.tgz#2b3d5c7240e8fc2e58f8aa269e5ee49c0857bd3a" @@ -12179,16 +11875,17 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vite-node@3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-3.2.4.tgz#f3676d94c4af1e76898c162c92728bca65f7bb07" - integrity sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg== +vite-node@0.33.0: + version "0.33.0" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.33.0.tgz#c6a3a527e0b8090da7436241bc875760ae0eef28" + integrity sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw== dependencies: cac "^6.7.14" - debug "^4.4.1" - es-module-lexer "^1.7.0" - pathe "^2.0.3" - vite "^5.0.0 || ^6.0.0 || ^7.0.0-0" + debug "^4.3.4" + mlly "^1.4.0" + pathe "^1.1.1" + picocolors "^1.0.0" + vite "^3.0.0 || ^4.0.0" vite-plugin-eslint@^1.8.1: version "1.8.1" @@ -12209,7 +11906,7 @@ vite-plugin-istanbul@^4.1.0: picocolors "^1.0.0" test-exclude "^6.0.0" -vite@^4.4.2: +"vite@^3.0.0 || ^4.0.0", vite@^4.4.2: version "4.5.14" resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.14.tgz#2e652bc1d898265d987d6543ce866ecd65fa4086" integrity sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g== @@ -12220,48 +11917,35 @@ vite@^4.4.2: optionalDependencies: fsevents "~2.3.2" -"vite@^5.0.0 || ^6.0.0 || ^7.0.0-0": - version "7.0.6" - resolved "https://registry.yarnpkg.com/vite/-/vite-7.0.6.tgz#7866ccb176db4bbeec0adfb3f907f077881591d0" - integrity sha512-MHFiOENNBd+Bd9uvc8GEsIzdkn1JxMmEeYX35tI3fv0sJBUTfW5tQsoaOwuY4KhBI09A3dUJ/DXf2yxPVPUceg== - dependencies: - esbuild "^0.25.0" - fdir "^6.4.6" - picomatch "^4.0.3" - postcss "^8.5.6" - rollup "^4.40.0" - tinyglobby "^0.2.14" - optionalDependencies: - fsevents "~2.3.3" - -vitest@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-3.2.4.tgz#0637b903ad79d1539a25bc34c0ed54b5c67702ea" - integrity sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A== - dependencies: - "@types/chai" "^5.2.2" - "@vitest/expect" "3.2.4" - "@vitest/mocker" "3.2.4" - "@vitest/pretty-format" "^3.2.4" - "@vitest/runner" "3.2.4" - "@vitest/snapshot" "3.2.4" - "@vitest/spy" "3.2.4" - "@vitest/utils" "3.2.4" - chai "^5.2.0" - debug "^4.4.1" - expect-type "^1.2.1" - magic-string "^0.30.17" - pathe "^2.0.3" - picomatch "^4.0.2" - std-env "^3.9.0" - tinybench "^2.9.0" - tinyexec "^0.3.2" - tinyglobby "^0.2.14" - tinypool "^1.1.1" - tinyrainbow "^2.0.0" - vite "^5.0.0 || ^6.0.0 || ^7.0.0-0" - vite-node "3.2.4" - why-is-node-running "^2.3.0" +vitest@^0.33.0: + version "0.33.0" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.33.0.tgz#e2be6153aec1d30e3460ac6d64265bf72da2551c" + integrity sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ== + dependencies: + "@types/chai" "^4.3.5" + "@types/chai-subset" "^1.3.3" + "@types/node" "*" + "@vitest/expect" "0.33.0" + "@vitest/runner" "0.33.0" + "@vitest/snapshot" "0.33.0" + "@vitest/spy" "0.33.0" + "@vitest/utils" "0.33.0" + acorn "^8.9.0" + acorn-walk "^8.2.0" + cac "^6.7.14" + chai "^4.3.7" + debug "^4.3.4" + local-pkg "^0.4.3" + magic-string "^0.30.1" + pathe "^1.1.1" + picocolors "^1.0.0" + std-env "^3.3.3" + strip-literal "^1.0.1" + tinybench "^2.5.0" + tinypool "^0.6.0" + vite "^3.0.0 || ^4.0.0" + vite-node "0.33.0" + why-is-node-running "^2.2.2" w3c-xmlserializer@^4.0.0: version "4.0.0" @@ -12463,7 +12147,7 @@ which@^3.0.0, which@^3.0.1: dependencies: isexe "^2.0.0" -why-is-node-running@^2.3.0: +why-is-node-running@^2.2.2: version "2.3.0" resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz#a3f69a97107f494b3cdc3bdddd883a7d65cebf04" integrity sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== @@ -12666,6 +12350,11 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +yocto-queue@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.2.1.tgz#36d7c4739f775b3cbc28e6136e21aa057adec418" + integrity sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg== + yup@0.32.11: version "0.32.11" resolved "https://registry.yarnpkg.com/yup/-/yup-0.32.11.tgz#d67fb83eefa4698607982e63f7ca4c5ed3cf18c5"