From ec8b17dee22ca777cc9898eb9a30cf5ac1177fb8 Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Tue, 25 Mar 2025 16:44:32 +0900 Subject: [PATCH 01/22] chore: use github bug report form instead of formbricks form (#5055) --- .../components/TopControlBar.tsx | 2 -- .../components/TopControlButtons.tsx | 28 ++++++++----------- packages/lib/messages/de-DE.json | 1 + packages/lib/messages/en-US.json | 1 + packages/lib/messages/fr-FR.json | 1 + packages/lib/messages/pt-BR.json | 1 + packages/lib/messages/pt-PT.json | 1 + packages/lib/messages/zh-Hant-TW.json | 1 + 8 files changed, 17 insertions(+), 19 deletions(-) diff --git a/apps/web/app/(app)/environments/[environmentId]/components/TopControlBar.tsx b/apps/web/app/(app)/environments/[environmentId]/components/TopControlBar.tsx index eea9218900..205de99e2d 100644 --- a/apps/web/app/(app)/environments/[environmentId]/components/TopControlBar.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/components/TopControlBar.tsx @@ -1,6 +1,5 @@ import { TopControlButtons } from "@/app/(app)/environments/[environmentId]/components/TopControlButtons"; import { TTeamPermission } from "@/modules/ee/teams/project-teams/types/team"; -import { IS_FORMBRICKS_CLOUD } from "@formbricks/lib/constants"; import { TEnvironment } from "@formbricks/types/environment"; import { TOrganizationRole } from "@formbricks/types/memberships"; @@ -24,7 +23,6 @@ export const TopControlBar = ({ diff --git a/apps/web/app/(app)/environments/[environmentId]/components/TopControlButtons.tsx b/apps/web/app/(app)/environments/[environmentId]/components/TopControlButtons.tsx index 2646546db3..0c0f3fde40 100644 --- a/apps/web/app/(app)/environments/[environmentId]/components/TopControlButtons.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/components/TopControlButtons.tsx @@ -6,9 +6,9 @@ import { getTeamPermissionFlags } from "@/modules/ee/teams/utils/teams"; import { Button } from "@/modules/ui/components/button"; import { TooltipRenderer } from "@/modules/ui/components/tooltip"; import { useTranslate } from "@tolgee/react"; -import { CircleUserIcon, MessageCircleQuestionIcon, PlusIcon } from "lucide-react"; +import { BugIcon, CircleUserIcon, PlusIcon } from "lucide-react"; +import Link from "next/link"; import { useRouter } from "next/navigation"; -import formbricks from "@formbricks/js"; import { getAccessFlags } from "@formbricks/lib/membership/utils"; import { TEnvironment } from "@formbricks/types/environment"; import { TOrganizationRole } from "@formbricks/types/memberships"; @@ -16,7 +16,6 @@ import { TOrganizationRole } from "@formbricks/types/memberships"; interface TopControlButtonsProps { environment: TEnvironment; environments: TEnvironment[]; - isFormbricksCloud: boolean; membershipRole?: TOrganizationRole; projectPermission: TTeamPermission | null; } @@ -24,7 +23,6 @@ interface TopControlButtonsProps { export const TopControlButtons = ({ environment, environments, - isFormbricksCloud, membershipRole, projectPermission, }: TopControlButtonsProps) => { @@ -38,19 +36,15 @@ export const TopControlButtons = ({ return (
{!isBilling && } - {isFormbricksCloud && ( - - - - )} + + + + + + ), +})); + +// Mock InsightSheet to display its open/closed state and the insight title. +vi.mock("@/modules/ee/insights/components/insight-sheet", () => ({ + InsightSheet: ({ isOpen, insight }) => ( +
+ {isOpen ? "InsightSheet Open" : "InsightSheet Closed"} + {insight && ` - ${insight.title}`} +
+ ), +})); + +// Create an array of 15 dummy insights. +// Even-indexed insights will have the category "complaint" +// and odd-indexed insights will have "praise". +const dummyInsights = Array.from({ length: 15 }, (_, i) => ({ + id: `insight-${i}`, + _count: { documentInsights: i }, + title: `Insight Title ${i}`, + description: `Insight Description ${i}`, + category: i % 2 === 0 ? "complaint" : "praise", + updatedAt: new Date(), + createdAt: new Date(), + environmentId: "environment-1", +})) as TSurveyQuestionSummaryOpenText["insights"]; + +// Helper function to render the component with default props. +const renderComponent = (props = {}) => { + const defaultProps = { + insights: dummyInsights, + questionId: "question-1", + surveyId: "survey-1", + documentsFilter: {}, + isFetching: false, + documentsPerPage: 5, + locale: "en" as TUserLocale, + }; + + return render(); +}; + +// --- Tests --- +describe("InsightView Component", () => { + test("renders table headers", () => { + renderComponent(); + expect(screen.getByText("#")).toBeInTheDocument(); + expect(screen.getByText("common.title")).toBeInTheDocument(); + expect(screen.getByText("common.description")).toBeInTheDocument(); + expect(screen.getByText("environments.experience.category")).toBeInTheDocument(); + }); + + test('shows "no insights found" when insights array is empty', () => { + renderComponent({ insights: [] }); + expect(screen.getByText("environments.experience.no_insights_found")).toBeInTheDocument(); + }); + + test("does not render insights when isFetching is true", () => { + renderComponent({ isFetching: true, insights: [] }); + expect(screen.getByText("environments.experience.no_insights_found")).toBeInTheDocument(); + }); + + test("filters insights based on selected tab", async () => { + renderComponent(); + + // Click on the "complaint" tab. + const complaintTab = screen.getAllByText("environments.experience.complaint")[0]; + fireEvent.click(complaintTab); + + // Grab all table rows from the table body. + const rows = await screen.findAllByRole("row"); + + // Check that none of the rows include text from a "praise" insight. + rows.forEach((row) => { + expect(row.textContent).not.toEqual(/Insight Title 1/); + }); + }); + + test("load more button increases visible insights count", () => { + renderComponent(); + // Initially, "Insight Title 10" should not be visible because only 10 items are shown. + expect(screen.queryByText("Insight Title 10")).not.toBeInTheDocument(); + + // Get all buttons with the text "common.load_more" and filter for those that are visible. + const loadMoreButtons = screen.getAllByRole("button", { name: /common\.load_more/i }); + expect(loadMoreButtons.length).toBeGreaterThan(0); + + // Click the first visible "load more" button. + fireEvent.click(loadMoreButtons[0]); + + // Now, "Insight Title 10" should be visible. + expect(screen.getByText("Insight Title 10")).toBeInTheDocument(); + }); + + test("opens insight sheet when a row is clicked", () => { + renderComponent(); + // Get all elements that display "Insight Title 0" and use the first one to find its table row + const cells = screen.getAllByText("Insight Title 0"); + expect(cells.length).toBeGreaterThan(0); + const rowElement = cells[0].closest("tr"); + expect(rowElement).not.toBeNull(); + // Simulate a click on the table row + fireEvent.click(rowElement!); + + // Get all instances of the InsightSheet component + const sheets = screen.getAllByTestId("insight-sheet"); + // Filter for the one that contains the expected text + const matchingSheet = sheets.find((sheet) => + sheet.textContent?.includes("InsightSheet Open - Insight Title 0") + ); + + expect(matchingSheet).toBeDefined(); + expect(matchingSheet).toHaveTextContent("InsightSheet Open - Insight Title 0"); + }); + + test("category badge calls onCategoryChange and updates the badge (even if value remains the same)", () => { + renderComponent(); + // Get the first category badge. For index 0, the category is "complaint". + const categoryBadge = screen.getAllByTestId("category-badge")[0]; + + // It should display "complaint" initially. + expect(categoryBadge).toHaveTextContent("CategoryBadge: complaint"); + + // Click the category badge to trigger onCategoryChange. + fireEvent.click(categoryBadge); + + // After clicking, the badge should still display "complaint" (since our mock simply passes the current value). + expect(categoryBadge).toHaveTextContent("CategoryBadge: complaint"); + }); +}); diff --git a/apps/web/modules/ee/insights/experience/components/insight-view.test.tsx b/apps/web/modules/ee/insights/experience/components/insight-view.test.tsx new file mode 100644 index 0000000000..0232660c80 --- /dev/null +++ b/apps/web/modules/ee/insights/experience/components/insight-view.test.tsx @@ -0,0 +1,215 @@ +import { TInsightWithDocumentCount } from "@/modules/ee/insights/experience/types/insights"; +import { fireEvent, render, screen, waitFor } from "@testing-library/react"; +import { beforeEach, describe, expect, test, vi } from "vitest"; +import { TUserLocale } from "@formbricks/types/user"; +import { InsightView } from "./insight-view"; + +// Mock the translation hook to simply return the key. +vi.mock("@tolgee/react", () => ({ + useTranslate: () => ({ + t: (key: string) => key, + }), +})); + +// Mock the action that fetches insights. +const mockGetEnvironmentInsightsAction = vi.fn(); +vi.mock("../actions", () => ({ + getEnvironmentInsightsAction: (...args: any[]) => mockGetEnvironmentInsightsAction(...args), +})); + +// Mock InsightSheet so we can assert on its open state. +vi.mock("@/modules/ee/insights/components/insight-sheet", () => ({ + InsightSheet: ({ + isOpen, + insight, + }: { + isOpen: boolean; + insight: any; + setIsOpen: any; + handleFeedback: any; + documentsFilter: any; + documentsPerPage: number; + locale: string; + }) => ( +
+ {isOpen ? `InsightSheet Open${insight ? ` - ${insight.title}` : ""}` : "InsightSheet Closed"} +
+ ), +})); + +// Mock InsightLoading. +vi.mock("./insight-loading", () => ({ + InsightLoading: () =>
Loading...
, +})); + +// For simplicity, we won’t mock CategoryBadge so it renders normally. +// If needed, you can also mock it similar to InsightSheet. + +// --- Dummy Data --- +const dummyInsight1 = { + id: "1", + title: "Insight 1", + description: "Description 1", + category: "featureRequest", + _count: { documentInsights: 5 }, +}; +const dummyInsight2 = { + id: "2", + title: "Insight 2", + description: "Description 2", + category: "featureRequest", + _count: { documentInsights: 3 }, +}; +const dummyInsightComplaint = { + id: "3", + title: "Complaint Insight", + description: "Complaint Description", + category: "complaint", + _count: { documentInsights: 10 }, +}; +const dummyInsightPraise = { + id: "4", + title: "Praise Insight", + description: "Praise Description", + category: "praise", + _count: { documentInsights: 8 }, +}; + +// A helper to render the component with required props. +const renderComponent = (props = {}) => { + const defaultProps = { + statsFrom: new Date("2023-01-01"), + environmentId: "env-1", + insightsPerPage: 2, + documentsPerPage: 5, + locale: "en-US" as TUserLocale, + }; + + return render(); +}; + +// --- Tests --- +describe("InsightView Component", () => { + beforeEach(() => { + vi.clearAllMocks(); + }); + + test('renders "no insights found" message when insights array is empty', async () => { + // Set up the mock to return an empty array. + mockGetEnvironmentInsightsAction.mockResolvedValueOnce({ data: [] }); + renderComponent(); + // Wait for the useEffect to complete. + await waitFor(() => { + expect(screen.getByText("environments.experience.no_insights_found")).toBeInTheDocument(); + }); + }); + + test("renders table rows when insights are fetched", async () => { + // Return two insights for the initial fetch. + mockGetEnvironmentInsightsAction.mockResolvedValueOnce({ data: [dummyInsight1, dummyInsight2] }); + renderComponent(); + // Wait until the insights are rendered. + await waitFor(() => { + expect(screen.getByText("Insight 1")).toBeInTheDocument(); + expect(screen.getByText("Insight 2")).toBeInTheDocument(); + }); + }); + + test("opens insight sheet when a table row is clicked", async () => { + mockGetEnvironmentInsightsAction.mockResolvedValueOnce({ data: [dummyInsight1] }); + renderComponent(); + // Wait for the insight to appear. + await waitFor(() => { + expect(screen.getAllByText("Insight 1").length).toBeGreaterThan(0); + }); + + // Instead of grabbing the first "Insight 1" cell, + // get all table rows (they usually have role="row") and then find the row that contains "Insight 1". + const rows = screen.getAllByRole("row"); + const targetRow = rows.find((row) => row.textContent?.includes("Insight 1")); + + console.log(targetRow?.textContent); + + expect(targetRow).toBeTruthy(); + + // Click the entire row. + fireEvent.click(targetRow!); + + // Wait for the InsightSheet to update. + await waitFor(() => { + const sheet = screen.getAllByTestId("insight-sheet"); + + const matchingSheet = sheet.find((s) => s.textContent?.includes("InsightSheet Open - Insight 1")); + expect(matchingSheet).toBeInTheDocument(); + }); + }); + + test("clicking load more fetches next page of insights", async () => { + // First fetch returns two insights. + mockGetEnvironmentInsightsAction.mockResolvedValueOnce({ data: [dummyInsight1, dummyInsight2] }); + // Second fetch returns one additional insight. + mockGetEnvironmentInsightsAction.mockResolvedValueOnce({ data: [dummyInsightPraise] }); + renderComponent(); + + // Wait for the initial insights to be rendered. + await waitFor(() => { + expect(screen.getAllByText("Insight 1").length).toBeGreaterThan(0); + expect(screen.getAllByText("Insight 2").length).toBeGreaterThan(0); + }); + + // The load more button should be visible because hasMore is true. + const loadMoreButton = screen.getAllByText("common.load_more")[0]; + fireEvent.click(loadMoreButton); + + // Wait for the new insight to be appended. + await waitFor(() => { + expect(screen.getAllByText("Praise Insight").length).toBeGreaterThan(0); + }); + }); + + test("changes filter tab and re-fetches insights", async () => { + // For initial active tab "featureRequest", return a featureRequest insight. + mockGetEnvironmentInsightsAction.mockResolvedValueOnce({ data: [dummyInsight1] }); + renderComponent(); + await waitFor(() => { + expect(screen.getAllByText("Insight 1")[0]).toBeInTheDocument(); + }); + + mockGetEnvironmentInsightsAction.mockResolvedValueOnce({ + data: [dummyInsightComplaint as TInsightWithDocumentCount], + }); + + renderComponent(); + + // Find the complaint tab and click it. + const complaintTab = screen.getAllByText("environments.experience.complaint")[0]; + fireEvent.click(complaintTab); + + // Wait until the new complaint insight is rendered. + await waitFor(() => { + expect(screen.getAllByText("Complaint Insight")[0]).toBeInTheDocument(); + }); + }); + + test("shows loading indicator when fetching insights", async () => { + // Make the mock return a promise that doesn't resolve immediately. + let resolveFetch: any; + const fetchPromise = new Promise((resolve) => { + resolveFetch = resolve; + }); + mockGetEnvironmentInsightsAction.mockReturnValueOnce(fetchPromise); + renderComponent(); + + // While fetching, the loading indicator should be visible. + expect(screen.getByTestId("insight-loading")).toBeInTheDocument(); + + // Resolve the fetch. + resolveFetch({ data: [dummyInsight1] }); + await waitFor(() => { + // After fetching, the loading indicator should disappear. + expect(screen.queryByTestId("insight-loading")).not.toBeInTheDocument(); + // Instead of getByText, use getAllByText to assert at least one instance of "Insight 1" exists. + expect(screen.getAllByText("Insight 1").length).toBeGreaterThan(0); + }); + }); +}); diff --git a/apps/web/modules/projects/settings/(setup)/components/setup-instructions.test.tsx b/apps/web/modules/projects/settings/(setup)/components/setup-instructions.test.tsx new file mode 100644 index 0000000000..58aead244e --- /dev/null +++ b/apps/web/modules/projects/settings/(setup)/components/setup-instructions.test.tsx @@ -0,0 +1,93 @@ +import { fireEvent, render, screen, waitFor } from "@testing-library/react"; +import React from "react"; +import { beforeEach, describe, expect, test, vi } from "vitest"; +import { SetupInstructions } from "./setup-instructions"; + +// Mock the translation hook to simply return the key. +vi.mock("@tolgee/react", () => ({ + useTranslate: () => ({ + t: (key: string) => key, + }), +})); + +// Mock the TabBar component. +vi.mock("@/modules/ui/components/tab-bar", () => ({ + TabBar: ({ tabs, setActiveId }: any) => ( +
+ {tabs.map((tab: any) => ( + + ))} +
+ ), +})); + +// Mock the CodeBlock component. +vi.mock("@/modules/ui/components/code-block", () => ({ + CodeBlock: ({ children }: { children: React.ReactNode; language?: string }) => ( +
{children}
+ ), +})); + +// Mock Next.js Link to simply render an anchor. +vi.mock("next/link", () => { + return { + default: ({ children, href }: { children: React.ReactNode; href: string }) => ( + {children} + ), + }; +}); + +describe("SetupInstructions Component", () => { + const environmentId = "env123"; + const webAppUrl = "https://example.com"; + + beforeEach(() => { + // Optionally reset mocks if needed + vi.clearAllMocks(); + }); + + test("renders npm instructions by default", () => { + render(); + + // Verify that the npm tab is active by default by checking for a code block with npm install instructions. + expect(screen.getByText("pnpm install @formbricks/js")).toBeInTheDocument(); + + // Verify that the TabBar renders both "NPM" and "HTML" buttons. + expect(screen.getByRole("button", { name: /NPM/i })).toBeInTheDocument(); + expect(screen.getByRole("button", { name: /HTML/i })).toBeInTheDocument(); + }); + + test("switches to html tab and displays html instructions", async () => { + render(); + + // Instead of getByRole (which finds multiple buttons), use getAllByRole and select the first HTML tab. + const htmlTabButtons = screen.getAllByRole("button", { name: /HTML/i }); + expect(htmlTabButtons.length).toBeGreaterThan(0); + const htmlTabButton = htmlTabButtons[0]; + + fireEvent.click(htmlTabButton); + + // Wait for the HTML instructions to appear. + await waitFor(() => { + expect(screen.getByText(//i)).toBeInTheDocument(); + }); + }); + + test("npm instructions code block contains environmentId and webAppUrl", async () => { + render(); + + // The NPM tab is the default view. + // Find all code block elements. + const codeBlocks = screen.getAllByTestId("code-block"); + // The setup code block (language "js") should include the environmentId and webAppUrl. + // We filter for the one containing 'formbricks.setup' and our environment values. + const setupCodeBlock = codeBlocks.find( + (block) => block.textContent?.includes("formbricks.setup") && block.textContent?.includes(environmentId) + ); + expect(setupCodeBlock).toBeDefined(); + expect(setupCodeBlock?.textContent).toContain(environmentId); + expect(setupCodeBlock?.textContent).toContain(webAppUrl); + }); +}); diff --git a/apps/web/modules/survey/link/components/link-survey.test.tsx b/apps/web/modules/survey/link/components/link-survey.test.tsx new file mode 100644 index 0000000000..5651be4964 --- /dev/null +++ b/apps/web/modules/survey/link/components/link-survey.test.tsx @@ -0,0 +1,217 @@ +import * as utils from "@/modules/survey/link/lib/utils"; +import { render, screen, waitFor } from "@testing-library/react"; +import * as navigation from "next/navigation"; +import React from "react"; +import { beforeEach, describe, expect, test, vi } from "vitest"; +import type { TResponseData } from "@formbricks/types/responses"; +import { TSurvey } from "@formbricks/types/surveys/types"; +import { LinkSurvey } from "./link-survey"; + +// Allow tests to control search params via a module-level variable. +let searchParamsValue = new URLSearchParams(); +vi.mock("next/navigation", () => ({ + useSearchParams: () => searchParamsValue, +})); + +// Stub getPrefillValue to return a dummy prefill value. +vi.mock("@/modules/survey/link/lib/utils", () => ({ + getPrefillValue: vi.fn(() => ({ prefilled: "dummy" })), +})); + +// Mock LinkSurveyWrapper as a simple wrapper that renders its children. +vi.mock("@/modules/survey/link/components/link-survey-wrapper", () => ({ + LinkSurveyWrapper: ({ children }: { children: React.ReactNode }) => ( +
{children}
+ ), +})); + +// Mock SurveyLinkUsed to render a div with a test id. +vi.mock("@/modules/survey/link/components/survey-link-used", () => ({ + SurveyLinkUsed: ({ singleUseMessage }: { singleUseMessage: string }) => ( +
SurveyLinkUsed: {singleUseMessage}
+ ), +})); + +// Mock VerifyEmail to render a div that indicates if it's an error or not. +vi.mock("@/modules/survey/link/components/verify-email", () => ({ + VerifyEmail: (props: any) => ( +
VerifyEmail {props.isErrorComponent ? "Error" : ""}
+ ), +})); + +// Mock SurveyInline to display key props so we can inspect them. +vi.mock("@/modules/ui/components/survey", () => ({ + SurveyInline: (props: any) => ( +
+ SurveyInline {props.startAtQuestionId ? `StartAt:${props.startAtQuestionId}` : ""} + {props.autoFocus ? " AutoFocus" : ""} + {props.hiddenFieldsRecord ? ` HiddenFields:${JSON.stringify(props.hiddenFieldsRecord)}` : ""} + {props.prefillResponseData ? ` Prefill:${JSON.stringify(props.prefillResponseData)}` : ""} +
+ ), +})); + +// --- Dummy Data --- + +const dummySurvey = { + id: "survey1", + type: "link", + environmentId: "env1", + welcomeCard: { enabled: true }, + questions: [{ id: "q1" }, { id: "q2" }], + isVerifyEmailEnabled: false, + hiddenFields: { fieldIds: ["hidden1"] }, + singleUse: "Single Use Message", + styling: { overwriteThemeStyling: false }, +} as unknown as TSurvey; + +const dummyProject = { + styling: { allowStyleOverwrite: false }, + logo: "logo.png", + linkSurveyBranding: true, +}; + +const dummySingleUseResponse = { + id: "r1", + finished: true, +}; + +// --- Helper to render the component with default props --- +const renderComponent = (props: Partial> = {}) => { + // Reset search params to an empty state for each test. + searchParamsValue = new URLSearchParams(""); + const defaultProps = { + survey: dummySurvey, + project: dummyProject, + emailVerificationStatus: "verified", + singleUseId: "single-use-123", + webAppUrl: "https://example.com", + responseCount: 0, + languageCode: "en", + isEmbed: false, + IMPRINT_URL: "https://example.com/imprint", + PRIVACY_URL: "https://example.com/privacy", + IS_FORMBRICKS_CLOUD: false, + locale: "en", + isPreview: false, + }; + return render(); +}; + +// --- Test Suite --- +describe("LinkSurvey Component", () => { + beforeEach(() => { + vi.clearAllMocks(); + }); + + test("renders SurveyLinkUsed when singleUseResponse is finished", () => { + renderComponent({ singleUseResponse: dummySingleUseResponse }); + expect(screen.getByTestId("survey-link-used")).toBeInTheDocument(); + expect(screen.getByText(/SurveyLinkUsed:/)).toHaveTextContent("Single Use Message"); + }); + + test("renders VerifyEmail error component when emailVerificationStatus is fishy", () => { + // Set up survey with email verification enabled. + const survey = { ...dummySurvey, isVerifyEmailEnabled: true }; + renderComponent({ survey, emailVerificationStatus: "fishy" }); + const verifyEmail = screen.getByTestId("verify-email"); + expect(verifyEmail).toBeInTheDocument(); + expect(verifyEmail).toHaveTextContent("Error"); + }); + + test("renders VerifyEmail component when emailVerificationStatus is not-verified", () => { + const survey = { ...dummySurvey, isVerifyEmailEnabled: true }; + renderComponent({ survey, emailVerificationStatus: "not-verified" }); + // Get all rendered VerifyEmail components. + const verifyEmailElements = screen.getAllByTestId("verify-email"); + // Filter out the ones that have "Error" in their text. + const nonErrorVerifyEmail = verifyEmailElements.filter((el) => !el.textContent?.includes("Error")); + expect(nonErrorVerifyEmail.length).toBeGreaterThan(0); + }); + + test("renders LinkSurveyWrapper and SurveyInline when conditions are met", async () => { + // Use a survey that does not require email verification and is not single-use finished. + // Also provide a startAt query param and a hidden field. + + const mockUseSearchParams = vi.spyOn(navigation, "useSearchParams"); + const mockGetPrefillValue = vi.spyOn(utils, "getPrefillValue"); + + mockUseSearchParams.mockReturnValue( + new URLSearchParams("startAt=q1&hidden1=value1") as unknown as navigation.ReadonlyURLSearchParams + ); + + mockGetPrefillValue.mockReturnValue({ prefilled: "dummy" }); + + renderComponent(); + // Check that the LinkSurveyWrapper is rendered. + expect(screen.getByTestId("link-survey-wrapper")).toBeInTheDocument(); + // Check that SurveyInline is rendered. + const surveyInline = screen.getByTestId("survey-inline"); + expect(surveyInline).toBeInTheDocument(); + + // Verify that startAtQuestionId is passed when valid. + expect(surveyInline).toHaveTextContent("StartAt:q1"); + // Verify that prefillResponseData is passed (from getPrefillValue mock). + expect(surveyInline).toHaveTextContent('Prefill:{"prefilled":"dummy"}'); + // Verify that hiddenFieldsRecord includes the hidden field value. + expect(surveyInline).toHaveTextContent('HiddenFields:{"hidden1":"value1"}'); + }); + + test("sets autoFocus to true when not in an iframe", async () => { + // In the test environment, window.self === window.top. + renderComponent(); + const surveyInlineElements = screen.getAllByTestId("survey-inline"); + + await waitFor(() => { + surveyInlineElements.forEach((el) => { + expect(el).toHaveTextContent("AutoFocus"); + }); + }); + }); + + test("includes verifiedEmail in hiddenFieldsRecord when survey verifies email", () => { + const survey = { ...dummySurvey, isVerifyEmailEnabled: true }; + renderComponent({ survey, emailVerificationStatus: "verified", verifiedEmail: "test@example.com" }); + const surveyInlineElements = screen.getAllByTestId("survey-inline"); + + // Find the instance that includes the verifiedEmail in its hiddenFieldsRecord + const withVerifiedEmail = surveyInlineElements.find((el) => + el.textContent?.includes('"verifiedEmail":"test@example.com"') + ); + + expect(withVerifiedEmail).toBeDefined(); + }); + + test("handleResetSurvey sets questionId and resets response data", () => { + // We will capture the functions that LinkSurvey passes via getSetQuestionId and getSetResponseData. + let capturedSetQuestionId: (value: string) => void = () => {}; + let capturedSetResponseData: (value: TResponseData) => void = () => {}; + // Override our SurveyInline mock to capture the props. + vi.doMock("@/modules/ui/components/survey", () => ({ + SurveyInline: (props: any) => { + capturedSetQuestionId = props.getSetQuestionId; + capturedSetResponseData = props.getSetResponseData; + return ( +
+ SurveyInline {props.startAtQuestionId ? `StartAt:${props.startAtQuestionId}` : ""} +
+ ); + }, + })); + // Re-import LinkSurvey to pick up the new mock (if necessary). + // For this example, assume our mock is used. + + renderComponent(); + // Simulate calling the captured functions by invoking the handleResetSurvey function indirectly. + // In the component, handleResetSurvey is passed to LinkSurveyWrapper. + // We can obtain it by accessing the LinkSurveyWrapper's props. + // For simplicity, call the captured functions directly: + capturedSetQuestionId("start"); + capturedSetResponseData({}); + + // Now, verify that the captured functions work as expected. + // (In a real app, these functions would update state in LinkSurvey; here, we can only ensure they are callable.) + expect(typeof capturedSetQuestionId).toBe("function"); + expect(typeof capturedSetResponseData).toBe("function"); + }); +}); diff --git a/turbo.json b/turbo.json index 3e20580399..a3339cfc5e 100644 --- a/turbo.json +++ b/turbo.json @@ -92,10 +92,10 @@ "persistent": true }, "@formbricks/web#test": { - "dependsOn": ["@formbricks/logger#build"] + "dependsOn": ["@formbricks/js#build", "@formbricks/logger#build"] }, "@formbricks/web#test:coverage": { - "dependsOn": ["@formbricks/logger#build"] + "dependsOn": ["@formbricks/js#build", "@formbricks/logger#build"] }, "build": { "dependsOn": ["^build"], From ebefe775bbdcb9997f9ddcbaabb9a868d7e42c59 Mon Sep 17 00:00:00 2001 From: victorvhs017 <115753265+victorvhs017@users.noreply.github.com> Date: Tue, 25 Mar 2025 22:53:59 -0300 Subject: [PATCH 07/22] fix: updated ttl property on cache-handler (#5065) --- apps/web/cache-handler.mjs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/web/cache-handler.mjs b/apps/web/cache-handler.mjs index 5292d88e97..1065fa3b83 100644 --- a/apps/web/cache-handler.mjs +++ b/apps/web/cache-handler.mjs @@ -57,8 +57,6 @@ CacheHandler.onCreation(async () => { timeoutMs: 1000, }; - redisHandlerOptions.ttl = Number(process.env.REDIS_DEFAULT_TTL) || 86400; // 1 day - // Create the `redis-stack` Handler if the client is available and connected. handler = await createRedisHandler(redisHandlerOptions); } else { @@ -70,6 +68,11 @@ CacheHandler.onCreation(async () => { return { handlers: [handler], + ttl: { + // We set the stale and the expire age to the same value, because the stale age is determined by the unstable_cache revalidation. + defaultStaleAge: (process.env.REDIS_URL && Number(process.env.REDIS_DEFAULT_TTL)) || 86400, + estimateExpireAge: (staleAge) => staleAge, + }, }; }); From d352d0307121357bb1301122cfd81b98b174e65e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Mar 2025 03:09:46 +0100 Subject: [PATCH 08/22] chore(deps-dev): bump the npm_and_yarn group across 2 directories with 1 update (#5062) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Matthias Nannt --- apps/storybook/package.json | 2 +- apps/web/package.json | 2 +- packages/api/package.json | 2 +- packages/js-core/package.json | 2 +- packages/js/package.json | 2 +- packages/logger/package.json | 2 +- packages/react-native/package.json | 2 +- packages/surveys/package.json | 2 +- packages/vite-plugins/package.json | 2 +- pnpm-lock.yaml | 618 +++++++++++++++++++++-------- 10 files changed, 468 insertions(+), 168 deletions(-) diff --git a/apps/storybook/package.json b/apps/storybook/package.json index 5ffdc138d3..2399cd16d9 100644 --- a/apps/storybook/package.json +++ b/apps/storybook/package.json @@ -35,6 +35,6 @@ "prop-types": "15.8.1", "storybook": "8.4.7", "tsup": "8.3.5", - "vite": "6.0.9" + "vite": "6.0.12" } } diff --git a/apps/web/package.json b/apps/web/package.json index ed460a07de..d7fc3b61f8 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -155,7 +155,7 @@ "@types/qrcode": "1.5.5", "@types/testing-library__react": "10.2.0", "@vitest/coverage-v8": "2.1.8", - "vite": "6.2.0", + "vite": "6.2.3", "vite-tsconfig-paths": "5.1.4", "vitest": "3.0.7", "vitest-mock-extended": "2.0.2" diff --git a/packages/api/package.json b/packages/api/package.json index d46c836cec..844d2323c4 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -40,7 +40,7 @@ "@rollup/plugin-inject": "5.0.5", "buffer": "6.0.3", "terser": "5.37.0", - "vite": "6.0.9", + "vite": "6.0.12", "vite-plugin-dts": "4.3.0", "vite-plugin-node-polyfills": "0.22.0" } diff --git a/packages/js-core/package.json b/packages/js-core/package.json index 9567464d8c..d929e164a8 100644 --- a/packages/js-core/package.json +++ b/packages/js-core/package.json @@ -48,7 +48,7 @@ "@formbricks/eslint-config": "workspace:*", "@vitest/coverage-v8": "3.0.7", "terser": "5.37.0", - "vite": "6.0.9", + "vite": "6.0.12", "vite-plugin-dts": "4.3.0", "vitest": "3.0.6" } diff --git a/packages/js/package.json b/packages/js/package.json index ed4d8808f2..7f1f4038b1 100644 --- a/packages/js/package.json +++ b/packages/js/package.json @@ -44,7 +44,7 @@ "@formbricks/config-typescript": "workspace:*", "@formbricks/eslint-config": "workspace:*", "terser": "5.37.0", - "vite": "6.0.9", + "vite": "6.0.12", "vite-plugin-dts": "4.3.0" } } diff --git a/packages/logger/package.json b/packages/logger/package.json index b11bf305fb..18ebaaa0b6 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -40,7 +40,7 @@ "pino-pretty": "^10.0.0" }, "devDependencies": { - "vite": "^6.2.0", + "vite": "^6.0.12", "@formbricks/config-typescript": "workspace:*", "vitest": "3.0.7", "@formbricks/eslint-config": "workspace:*", diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 95468ba426..0e9d3b4fc9 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -49,7 +49,7 @@ "@vitest/coverage-v8": "3.0.4", "react-native": "0.74.5", "terser": "5.37.0", - "vite": "6.0.9", + "vite": "6.0.12", "vite-plugin-dts": "4.3.0", "vitest": "3.0.5", "react": "18.3.1", diff --git a/packages/surveys/package.json b/packages/surveys/package.json index 7e509aa4c7..53cbae38b2 100644 --- a/packages/surveys/package.json +++ b/packages/surveys/package.json @@ -52,7 +52,7 @@ "serve": "14.2.4", "tailwindcss": "3.4.16", "terser": "5.37.0", - "vite": "6.0.9", + "vite": "6.0.12", "vite-plugin-dts": "4.3.0", "vite-tsconfig-paths": "5.1.4" }, diff --git a/packages/vite-plugins/package.json b/packages/vite-plugins/package.json index a92372ce22..78387bc4c7 100644 --- a/packages/vite-plugins/package.json +++ b/packages/vite-plugins/package.json @@ -17,6 +17,6 @@ "devDependencies": { "@formbricks/config-typescript": "workspace:*", "@formbricks/eslint-config": "workspace:*", - "vite": "6.0.9" + "vite": "6.0.12" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 12f45034fc..39db326959 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -146,7 +146,7 @@ importers: version: 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.4.7(prettier@3.4.2))(typescript@5.8.2) '@storybook/react-vite': specifier: 8.4.7 - version: 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.36.0)(storybook@8.4.7(prettier@3.4.2))(typescript@5.8.2)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.37.0)(storybook@8.4.7(prettier@3.4.2))(typescript@5.8.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) '@storybook/test': specifier: 8.4.7 version: 8.4.7(storybook@8.4.7(prettier@3.4.2)) @@ -158,7 +158,7 @@ importers: version: 8.18.0(eslint@8.57.0)(typescript@5.8.2) '@vitejs/plugin-react': specifier: 4.3.4 - version: 4.3.4(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 4.3.4(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) esbuild: specifier: 0.25.1 version: 0.25.1 @@ -175,8 +175,8 @@ importers: specifier: 8.3.5 version: 8.3.5(@microsoft/api-extractor@7.52.1(@types/node@22.10.2))(jiti@2.4.1)(postcss@8.5.3)(tsx@4.19.2)(typescript@5.8.2)(yaml@2.7.0) vite: - specifier: 6.0.9 - version: 6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + specifier: 6.0.12 + version: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) apps/web: dependencies: @@ -590,11 +590,11 @@ importers: specifier: 2.1.8 version: 2.1.8(vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) vite: - specifier: 6.2.0 - version: 6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + specifier: 6.2.3 + version: 6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) vitest: specifier: 3.0.7 version: 3.0.7(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) @@ -615,7 +615,7 @@ importers: version: link:../types '@rollup/plugin-inject': specifier: 5.0.5 - version: 5.0.5(rollup@4.36.0) + version: 5.0.5(rollup@4.37.0) buffer: specifier: 6.0.3 version: 6.0.3 @@ -623,14 +623,14 @@ importers: specifier: 5.37.0 version: 5.37.0 vite: - specifier: 6.0.9 - version: 6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + specifier: 6.0.12 + version: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) vite-plugin-dts: specifier: 4.3.0 - version: 4.3.0(@types/node@22.10.2)(rollup@4.36.0)(typescript@5.8.2)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 4.3.0(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) vite-plugin-node-polyfills: specifier: 0.22.0 - version: 0.22.0(rollup@4.36.0)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 0.22.0(rollup@4.37.0)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) packages/config-eslint: devDependencies: @@ -756,11 +756,11 @@ importers: specifier: 5.37.0 version: 5.37.0 vite: - specifier: 6.0.9 - version: 6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + specifier: 6.0.12 + version: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) vite-plugin-dts: specifier: 4.3.0 - version: 4.3.0(@types/node@22.10.2)(rollup@4.36.0)(typescript@5.8.2)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 4.3.0(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) packages/js-core: devDependencies: @@ -780,11 +780,11 @@ importers: specifier: 5.37.0 version: 5.37.0 vite: - specifier: 6.0.9 - version: 6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + specifier: 6.0.12 + version: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) vite-plugin-dts: specifier: 4.3.0 - version: 4.3.0(@types/node@22.10.2)(rollup@4.36.0)(typescript@5.8.2)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 4.3.0(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) vitest: specifier: 3.0.6 version: 3.0.6(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) @@ -908,11 +908,11 @@ importers: specifier: workspace:* version: link:../config-eslint vite: - specifier: ^6.2.0 - version: 6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + specifier: ^6.0.12 + version: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) vite-plugin-dts: specifier: 4.3.0 - version: 4.3.0(@types/node@22.10.2)(rollup@4.36.0)(typescript@5.8.2)(vite@6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 4.3.0(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) vitest: specifier: 3.0.7 version: 3.0.7(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) @@ -951,11 +951,11 @@ importers: specifier: 5.37.0 version: 5.37.0 vite: - specifier: 6.0.9 - version: 6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + specifier: 6.0.12 + version: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) vite-plugin-dts: specifier: 4.3.0 - version: 4.3.0(@types/node@22.10.2)(rollup@4.36.0)(typescript@5.8.2)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 4.3.0(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) vitest: specifier: 3.0.5 version: 3.0.5(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) @@ -986,7 +986,7 @@ importers: version: link:../types '@preact/preset-vite': specifier: 2.9.3 - version: 2.9.3(@babel/core@7.26.0)(preact@10.25.2)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 2.9.3(@babel/core@7.26.0)(preact@10.25.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) '@types/react': specifier: 19.0.1 version: 19.0.1 @@ -1018,14 +1018,14 @@ importers: specifier: 5.37.0 version: 5.37.0 vite: - specifier: 6.0.9 - version: 6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + specifier: 6.0.12 + version: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) vite-plugin-dts: specifier: 4.3.0 - version: 4.3.0(@types/node@22.10.2)(rollup@4.36.0)(typescript@5.8.2)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 4.3.0(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) packages/types: dependencies: @@ -1052,8 +1052,8 @@ importers: specifier: workspace:* version: link:../config-eslint vite: - specifier: 6.0.9 - version: 6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + specifier: 6.0.12 + version: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) packages: @@ -1429,6 +1429,10 @@ packages: resolution: {integrity: sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==} engines: {node: '>=6.9.0'} + '@babel/generator@7.27.0': + resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.25.9': resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} @@ -1437,18 +1441,34 @@ packages: resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.27.0': + resolution: {integrity: sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==} + engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@7.26.9': resolution: {integrity: sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-create-class-features-plugin@7.27.0': + resolution: {integrity: sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-create-regexp-features-plugin@7.26.3': resolution: {integrity: sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-create-regexp-features-plugin@7.27.0': + resolution: {integrity: sha512-fO8l08T76v48BhpNRW/nQ0MxfnSdoSKUJBMjubOAYffsVuGG5qOfMq7N6Es7UJvi7Y8goXXo07EfcHZXDPuELQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-define-polyfill-provider@0.6.3': resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} peerDependencies: @@ -1530,6 +1550,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.27.0': + resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} engines: {node: '>=6.9.0'} @@ -1790,6 +1815,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-block-scoping@7.27.0': + resolution: {integrity: sha512-u1jGphZ8uDI2Pj/HJj6YQ6XQLZCNjOlprjxB5SVz6rq2T6SwAR+CdrWK0CP7F+9rDVMXdB0+r6Am5G5aobOjAQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-class-properties@7.25.9': resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} engines: {node: '>=6.9.0'} @@ -2036,6 +2067,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-regenerator@7.27.0': + resolution: {integrity: sha512-LX/vCajUJQDqE7Aum/ELUMZAY19+cDpghxrnyt5I1tV6X5PyC86AOoWXWFYFeIvauyeSA6/ktn4tQVn/3ZifsA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-regexp-modifiers@7.26.0': resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} engines: {node: '>=6.9.0'} @@ -2078,8 +2115,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typeof-symbol@7.26.7': - resolution: {integrity: sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==} + '@babel/plugin-transform-typeof-symbol@7.27.0': + resolution: {integrity: sha512-+LLkxA9rKJpNoGsbLnAgOCdESl73vwYn+V6b+5wHbrE7OGKVDPHIQvbFSzqE6rwqaCw2RE+zdJrlLkcf8YOA0w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2157,14 +2194,26 @@ packages: resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} engines: {node: '>=6.9.0'} + '@babel/template@7.27.0': + resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.26.10': resolution: {integrity: sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.27.0': + resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==} + engines: {node: '>=6.9.0'} + '@babel/types@7.26.10': resolution: {integrity: sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==} engines: {node: '>=6.9.0'} + '@babel/types@7.27.0': + resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -4852,96 +4901,196 @@ packages: cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.37.0': + resolution: {integrity: sha512-l7StVw6WAa8l3vA1ov80jyetOAEo1FtHvZDbzXDO/02Sq/QVvqlHkYoFwDJPIMj0GKiistsBudfx5tGFnwYWDQ==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.36.0': resolution: {integrity: sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg==} cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.37.0': + resolution: {integrity: sha512-6U3SlVyMxezt8Y+/iEBcbp945uZjJwjZimu76xoG7tO1av9VO691z8PkhzQ85ith2I8R2RddEPeSfcbyPfD4hA==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.36.0': resolution: {integrity: sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==} cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.37.0': + resolution: {integrity: sha512-+iTQ5YHuGmPt10NTzEyMPbayiNTcOZDWsbxZYR1ZnmLnZxG17ivrPSWFO9j6GalY0+gV3Jtwrrs12DBscxnlYA==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.36.0': resolution: {integrity: sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA==} cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.37.0': + resolution: {integrity: sha512-m8W2UbxLDcmRKVjgl5J/k4B8d7qX2EcJve3Sut7YGrQoPtCIQGPH5AMzuFvYRWZi0FVS0zEY4c8uttPfX6bwYQ==} + cpu: [x64] + os: [darwin] + '@rollup/rollup-freebsd-arm64@4.36.0': resolution: {integrity: sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg==} cpu: [arm64] os: [freebsd] + '@rollup/rollup-freebsd-arm64@4.37.0': + resolution: {integrity: sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA==} + cpu: [arm64] + os: [freebsd] + '@rollup/rollup-freebsd-x64@4.36.0': resolution: {integrity: sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ==} cpu: [x64] os: [freebsd] + '@rollup/rollup-freebsd-x64@4.37.0': + resolution: {integrity: sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.36.0': resolution: {integrity: sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-gnueabihf@4.37.0': + resolution: {integrity: sha512-hhAALKJPidCwZcj+g+iN+38SIOkhK2a9bqtJR+EtyxrKKSt1ynCBeqrQy31z0oWU6thRZzdx53hVgEbRkuI19w==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.36.0': resolution: {integrity: sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.37.0': + resolution: {integrity: sha512-jUb/kmn/Gd8epbHKEqkRAxq5c2EwRt0DqhSGWjPFxLeFvldFdHQs/n8lQ9x85oAeVb6bHcS8irhTJX2FCOd8Ag==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.36.0': resolution: {integrity: sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.37.0': + resolution: {integrity: sha512-oNrJxcQT9IcbcmKlkF+Yz2tmOxZgG9D9GRq+1OE6XCQwCVwxixYAa38Z8qqPzQvzt1FCfmrHX03E0pWoXm1DqA==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-musl@4.36.0': resolution: {integrity: sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-musl@4.37.0': + resolution: {integrity: sha512-pfxLBMls+28Ey2enpX3JvjEjaJMBX5XlPCZNGxj4kdJyHduPBXtxYeb8alo0a7bqOoWZW2uKynhHxF/MWoHaGQ==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-loongarch64-gnu@4.36.0': resolution: {integrity: sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg==} cpu: [loong64] os: [linux] + '@rollup/rollup-linux-loongarch64-gnu@4.37.0': + resolution: {integrity: sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA==} + cpu: [loong64] + os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.36.0': resolution: {integrity: sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg==} cpu: [ppc64] os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.37.0': + resolution: {integrity: sha512-NxcICptHk06E2Lh3a4Pu+2PEdZ6ahNHuK7o6Np9zcWkrBMuv21j10SQDJW3C9Yf/A/P7cutWoC/DptNLVsZ0VQ==} + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.36.0': resolution: {integrity: sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA==} cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.37.0': + resolution: {integrity: sha512-PpWwHMPCVpFZLTfLq7EWJWvrmEuLdGn1GMYcm5MV7PaRgwCEYJAwiN94uBuZev0/J/hFIIJCsYw4nLmXA9J7Pw==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.37.0': + resolution: {integrity: sha512-DTNwl6a3CfhGTAOYZ4KtYbdS8b+275LSLqJVJIrPa5/JuIufWWZ/QFvkxp52gpmguN95eujrM68ZG+zVxa8zHA==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.36.0': resolution: {integrity: sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag==} cpu: [s390x] os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.37.0': + resolution: {integrity: sha512-hZDDU5fgWvDdHFuExN1gBOhCuzo/8TMpidfOR+1cPZJflcEzXdCy1LjnklQdW8/Et9sryOPJAKAQRw8Jq7Tg+A==} + cpu: [s390x] + os: [linux] + '@rollup/rollup-linux-x64-gnu@4.36.0': resolution: {integrity: sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-gnu@4.37.0': + resolution: {integrity: sha512-pKivGpgJM5g8dwj0ywBwe/HeVAUSuVVJhUTa/URXjxvoyTT/AxsLTAbkHkDHG7qQxLoW2s3apEIl26uUe08LVQ==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-musl@4.36.0': resolution: {integrity: sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-musl@4.37.0': + resolution: {integrity: sha512-E2lPrLKE8sQbY/2bEkVTGDEk4/49UYRVWgj90MY8yPjpnGBQ+Xi1Qnr7b7UIWw1NOggdFQFOLZ8+5CzCiz143w==} + cpu: [x64] + os: [linux] + '@rollup/rollup-win32-arm64-msvc@4.36.0': resolution: {integrity: sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.37.0': + resolution: {integrity: sha512-Jm7biMazjNzTU4PrQtr7VS8ibeys9Pn29/1bm4ph7CP2kf21950LgN+BaE2mJ1QujnvOc6p54eWWiVvn05SOBg==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.36.0': resolution: {integrity: sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.37.0': + resolution: {integrity: sha512-e3/1SFm1OjefWICB2Ucstg2dxYDkDTZGDYgwufcbsxTHyqQps1UQf33dFEChBNmeSsTOyrjw2JJq0zbG5GF6RA==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.36.0': resolution: {integrity: sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw==} cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-msvc@4.37.0': + resolution: {integrity: sha512-LWbXUBwn/bcLx2sSsqy7pK5o+Nr+VCoRoAohfJ5C/aBio9nfJmGQqHAhU6pwxV/RmyTk5AqdySma7uwWGlmeuA==} + cpu: [x64] + os: [win32] + '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} @@ -5711,6 +5860,9 @@ packages: '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/estree@1.0.7': + resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -9753,8 +9905,8 @@ packages: lexical@0.21.0: resolution: {integrity: sha512-Dxc5SCG4kB+wF+Rh55ism3SuecOKeOtCtGHFGKd6pj2QKVojtjkxGTQPMt7//2z5rMSue4R+hmRM0pCEZflupA==} - lib0@0.2.99: - resolution: {integrity: sha512-vwztYuUf1uf/1zQxfzRfO5yzfNKhTtgOByCruuiQQxWQXnPb8Itaube5ylofcV0oM0aKal9Mv+S1s1Ky0UYP1w==} + lib0@0.2.101: + resolution: {integrity: sha512-LljA6+Ehf0Z7YnxhgSAvspzWALjW4wlWdN/W4iGiqYc1KvXQgOVXWI0xwlwqozIL5WRdKeUW2gq0DLhFsY+Xlw==} engines: {node: '>=16'} hasBin: true @@ -12148,6 +12300,11 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rollup@4.37.0: + resolution: {integrity: sha512-iAtQy/L4QFU+rTJ1YUjXqJOJzuwEghqWzCEYD2FEghT7Gsy1VdABntrO4CLopA5IkflTyqNiLNwPcOJ3S7UKLg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + rrweb-cssom@0.7.1: resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} @@ -13522,8 +13679,8 @@ packages: vite: optional: true - vite@5.4.14: - resolution: {integrity: sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==} + vite@5.4.15: + resolution: {integrity: sha512-6ANcZRivqL/4WtwPGTKNaosuNJr5tWiftOC7liM7G9+rMb8+oeJeyzymDu4rTN93seySBmbjSfsS3Vzr19KNtA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -13553,8 +13710,8 @@ packages: terser: optional: true - vite@6.0.9: - resolution: {integrity: sha512-MSgUxHcaXLtnBPktkbUSoQUANApKYuxZ6DrbVENlIorbhL2dZydTLaZ01tjUoE3szeFzlFk9ANOKk0xurh4MKA==} + vite@6.0.12: + resolution: {integrity: sha512-gzLogvGSgX2xyAt0J5qhJ7SmdO5aLdShABkU8Ev7dIl8AcrlFSLcj9GHReSq9pGJF/q5C4CZKdtDlkC6DyvQ3w==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -13593,8 +13750,8 @@ packages: yaml: optional: true - vite@6.2.0: - resolution: {integrity: sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==} + vite@6.2.3: + resolution: {integrity: sha512-IzwM54g4y9JA/xAeBPNaDXiBF8Jsgl3VBQ2YQ/wOY6fyW3xMdSoltIV3Bo59DErdqdE6RxUfv8W69DvUorE4Eg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -15020,6 +15177,14 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 + '@babel/generator@7.27.0': + dependencies: + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.25.9': dependencies: '@babel/types': 7.26.10 @@ -15032,6 +15197,14 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-compilation-targets@7.27.0': + dependencies: + '@babel/compat-data': 7.26.8 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.4 + lru-cache: 5.1.1 + semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.26.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -15045,6 +15218,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-create-class-features-plugin@7.27.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/traverse': 7.27.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -15052,6 +15238,13 @@ snapshots: regexpu-core: 6.2.0 semver: 6.3.1 + '@babel/helper-create-regexp-features-plugin@7.27.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + regexpu-core: 6.2.0 + semver: 6.3.1 + '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -15066,7 +15259,7 @@ snapshots: '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-compilation-targets': 7.27.0 '@babel/helper-plugin-utils': 7.26.5 debug: 4.4.0 lodash.debounce: 4.0.8 @@ -15076,12 +15269,12 @@ snapshots: '@babel/helper-environment-visitor@7.24.7': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 '@babel/helper-member-expression-to-functions@7.25.9': dependencies: '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 transitivePeerDependencies: - supports-color @@ -15103,7 +15296,7 @@ snapshots: '@babel/helper-optimise-call-expression@7.25.9': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 '@babel/helper-plugin-utils@7.26.5': {} @@ -15128,7 +15321,7 @@ snapshots: '@babel/helper-skip-transparent-expression-wrappers@7.25.9': dependencies: '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 transitivePeerDependencies: - supports-color @@ -15140,9 +15333,9 @@ snapshots: '@babel/helper-wrap-function@7.25.9': dependencies: - '@babel/template': 7.26.9 + '@babel/template': 7.27.0 '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 transitivePeerDependencies: - supports-color @@ -15162,11 +15355,15 @@ snapshots: dependencies: '@babel/types': 7.26.10 + '@babel/parser@7.27.0': + dependencies: + '@babel/types': 7.27.0 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.26.10 + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color @@ -15193,7 +15390,7 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.26.10 + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color @@ -15388,7 +15585,7 @@ snapshots: '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)': @@ -15424,6 +15621,11 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-block-scoping@7.27.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -15435,7 +15637,7 @@ snapshots: '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.0) + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color @@ -15456,7 +15658,7 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/template': 7.26.9 + '@babel/template': 7.27.0 '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)': dependencies: @@ -15466,7 +15668,7 @@ snapshots: '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.0)': @@ -15477,7 +15679,7 @@ snapshots: '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.0)': @@ -15560,7 +15762,7 @@ snapshots: '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.10 + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color @@ -15693,10 +15895,16 @@ snapshots: '@babel/helper-plugin-utils': 7.26.5 regenerator-transform: 0.15.2 + '@babel/plugin-transform-regenerator@7.27.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 + regenerator-transform: 0.15.2 + '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.0)': @@ -15739,7 +15947,7 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-typeof-symbol@7.26.7(@babel/core@7.26.0)': + '@babel/plugin-transform-typeof-symbol@7.27.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 @@ -15763,7 +15971,7 @@ snapshots: '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)': @@ -15775,14 +15983,14 @@ snapshots: '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 '@babel/preset-env@7.26.9(@babel/core@7.26.0)': dependencies: '@babel/compat-data': 7.26.8 '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-compilation-targets': 7.27.0 '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-validator-option': 7.25.9 '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.0) @@ -15798,7 +16006,7 @@ snapshots: '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.0) '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoping': 7.27.0(@babel/core@7.26.0) '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0) '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) @@ -15832,14 +16040,14 @@ snapshots: '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-regenerator': 7.27.0(@babel/core@7.26.0) '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.0) '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-template-literals': 7.26.8(@babel/core@7.26.0) - '@babel/plugin-transform-typeof-symbol': 7.26.7(@babel/core@7.26.0) + '@babel/plugin-transform-typeof-symbol': 7.27.0(@babel/core@7.26.0) '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) @@ -15864,7 +16072,7 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 esutils: 2.0.3 '@babel/preset-react@7.26.3(@babel/core@7.26.0)': @@ -15909,6 +16117,12 @@ snapshots: '@babel/parser': 7.26.10 '@babel/types': 7.26.10 + '@babel/template@7.27.0': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 + '@babel/traverse@7.26.10': dependencies: '@babel/code-frame': 7.26.2 @@ -15921,11 +16135,28 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.27.0': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.27.0 + '@babel/parser': 7.27.0 + '@babel/template': 7.27.0 + '@babel/types': 7.27.0 + debug: 4.4.0 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + '@babel/types@7.26.10': dependencies: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@babel/types@7.27.0': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@bcoe/v8-coverage@0.2.3': {} '@bcoe/v8-coverage@1.0.2': {} @@ -17095,11 +17326,11 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.4.2(typescript@5.8.2)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.4.2(typescript@5.8.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': dependencies: magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.8.2) - vite: 6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) optionalDependencies: typescript: 5.8.2 @@ -17939,13 +18170,13 @@ snapshots: dependencies: playwright: 1.49.1 - '@preact/preset-vite@2.9.3(@babel/core@7.26.0)(preact@10.25.2)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': + '@preact/preset-vite@2.9.3(@babel/core@7.26.0)(preact@10.25.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.26.0) - '@prefresh/vite': 2.4.7(preact@10.25.2)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + '@prefresh/vite': 2.4.7(preact@10.25.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.26.0) debug: 4.4.0 @@ -17954,7 +18185,7 @@ snapshots: node-html-parser: 6.1.13 source-map: 0.7.4 stack-trace: 1.0.0-pre2 - vite: 6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - preact - supports-color @@ -17967,7 +18198,7 @@ snapshots: '@prefresh/utils@1.2.0': {} - '@prefresh/vite@2.4.7(preact@10.25.2)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': + '@prefresh/vite@2.4.7(preact@10.25.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.0 '@prefresh/babel-plugin': 0.5.1 @@ -17975,7 +18206,7 @@ snapshots: '@prefresh/utils': 1.2.0 '@rollup/pluginutils': 4.2.1 preact: 10.25.2 - vite: 6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -19058,7 +19289,7 @@ snapshots: '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-typescript': 7.26.8(@babel/core@7.26.0) '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) - '@babel/template': 7.26.9 + '@babel/template': 7.27.0 '@react-native/babel-plugin-codegen': 0.76.6(@babel/preset-env@7.26.9(@babel/core@7.26.0)) babel-plugin-syntax-hermes-parser: 0.25.1 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.26.0) @@ -19147,7 +19378,7 @@ snapshots: '@react-native/codegen@0.76.7(@babel/preset-env@7.26.9(@babel/core@7.26.0))': dependencies: - '@babel/parser': 7.26.10 + '@babel/parser': 7.27.0 '@babel/preset-env': 7.26.9(@babel/core@7.26.0) glob: 7.2.3 hermes-parser: 0.23.1 @@ -19350,13 +19581,13 @@ snapshots: optionalDependencies: rollup: 3.29.5 - '@rollup/plugin-inject@5.0.5(rollup@4.36.0)': + '@rollup/plugin-inject@5.0.5(rollup@4.37.0)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.36.0) + '@rollup/pluginutils': 5.1.4(rollup@4.37.0) estree-walker: 2.0.2 magic-string: 0.30.17 optionalDependencies: - rollup: 4.36.0 + rollup: 4.37.0 '@rollup/pluginutils@4.2.1': dependencies: @@ -19371,71 +19602,131 @@ snapshots: optionalDependencies: rollup: 3.29.5 - '@rollup/pluginutils@5.1.4(rollup@4.36.0)': + '@rollup/pluginutils@5.1.4(rollup@4.37.0)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.36.0 + rollup: 4.37.0 '@rollup/rollup-android-arm-eabi@4.36.0': optional: true + '@rollup/rollup-android-arm-eabi@4.37.0': + optional: true + '@rollup/rollup-android-arm64@4.36.0': optional: true + '@rollup/rollup-android-arm64@4.37.0': + optional: true + '@rollup/rollup-darwin-arm64@4.36.0': optional: true + '@rollup/rollup-darwin-arm64@4.37.0': + optional: true + '@rollup/rollup-darwin-x64@4.36.0': optional: true + '@rollup/rollup-darwin-x64@4.37.0': + optional: true + '@rollup/rollup-freebsd-arm64@4.36.0': optional: true + '@rollup/rollup-freebsd-arm64@4.37.0': + optional: true + '@rollup/rollup-freebsd-x64@4.36.0': optional: true + '@rollup/rollup-freebsd-x64@4.37.0': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.36.0': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.37.0': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.36.0': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.37.0': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.36.0': optional: true + '@rollup/rollup-linux-arm64-gnu@4.37.0': + optional: true + '@rollup/rollup-linux-arm64-musl@4.36.0': optional: true + '@rollup/rollup-linux-arm64-musl@4.37.0': + optional: true + '@rollup/rollup-linux-loongarch64-gnu@4.36.0': optional: true + '@rollup/rollup-linux-loongarch64-gnu@4.37.0': + optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.36.0': optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.37.0': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.36.0': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.37.0': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.37.0': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.36.0': optional: true + '@rollup/rollup-linux-s390x-gnu@4.37.0': + optional: true + '@rollup/rollup-linux-x64-gnu@4.36.0': optional: true + '@rollup/rollup-linux-x64-gnu@4.37.0': + optional: true + '@rollup/rollup-linux-x64-musl@4.36.0': optional: true + '@rollup/rollup-linux-x64-musl@4.37.0': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.36.0': optional: true + '@rollup/rollup-win32-arm64-msvc@4.37.0': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.36.0': optional: true + '@rollup/rollup-win32-ia32-msvc@4.37.0': + optional: true + '@rollup/rollup-win32-x64-msvc@4.36.0': optional: true + '@rollup/rollup-win32-x64-msvc@4.37.0': + optional: true + '@rtsao/scc@1.1.0': {} '@rushstack/eslint-patch@1.11.0': {} @@ -20150,13 +20441,13 @@ snapshots: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@storybook/builder-vite@8.4.7(storybook@8.4.7(prettier@3.4.2))(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': + '@storybook/builder-vite@8.4.7(storybook@8.4.7(prettier@3.4.2))(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': dependencies: '@storybook/csf-plugin': 8.4.7(storybook@8.4.7(prettier@3.4.2)) browser-assert: 1.2.1 storybook: 8.4.7(prettier@3.4.2) ts-dedent: 2.2.0 - vite: 6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) '@storybook/components@8.4.7(storybook@8.4.7(prettier@3.4.2))': dependencies: @@ -20229,11 +20520,11 @@ snapshots: react-dom: 19.0.0(react@19.0.0) storybook: 8.4.7(prettier@3.4.2) - '@storybook/react-vite@8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.36.0)(storybook@8.4.7(prettier@3.4.2))(typescript@5.8.2)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': + '@storybook/react-vite@8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.37.0)(storybook@8.4.7(prettier@3.4.2))(typescript@5.8.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.4.2(typescript@5.8.2)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) - '@rollup/pluginutils': 5.1.4(rollup@4.36.0) - '@storybook/builder-vite': 8.4.7(storybook@8.4.7(prettier@3.4.2))(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.4.2(typescript@5.8.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + '@rollup/pluginutils': 5.1.4(rollup@4.37.0) + '@storybook/builder-vite': 8.4.7(storybook@8.4.7(prettier@3.4.2))(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) '@storybook/react': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.4.7(prettier@3.4.2))(typescript@5.8.2) find-up: 5.0.0 magic-string: 0.30.17 @@ -20243,7 +20534,7 @@ snapshots: resolve: 1.22.10 storybook: 8.4.7(prettier@3.4.2) tsconfig-paths: 4.2.0 - vite: 6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - '@storybook/test' - rollup @@ -20483,15 +20774,17 @@ snapshots: '@types/eslint@9.6.1': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@types/json-schema': 7.0.15 '@types/estree-jsx@1.0.5': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@types/estree@1.0.6': {} + '@types/estree@1.0.7': {} + '@types/graceful-fs@4.1.9': dependencies: '@types/node': 22.10.2 @@ -21032,14 +21325,14 @@ snapshots: - supports-color - vitest - '@vitejs/plugin-react@4.3.4(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': + '@vitejs/plugin-react@4.3.4(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -21132,37 +21425,37 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@2.1.9(vite@5.4.14(@types/node@22.10.2)(lightningcss@1.27.0)(terser@5.37.0))': + '@vitest/mocker@2.1.9(vite@5.4.15(@types/node@22.10.2)(lightningcss@1.27.0)(terser@5.37.0))': dependencies: '@vitest/spy': 2.1.9 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.14(@types/node@22.10.2)(lightningcss@1.27.0)(terser@5.37.0) + vite: 5.4.15(@types/node@22.10.2)(lightningcss@1.27.0)(terser@5.37.0) - '@vitest/mocker@3.0.5(vite@6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': + '@vitest/mocker@3.0.5(vite@6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.0.5 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) - '@vitest/mocker@3.0.6(vite@6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': + '@vitest/mocker@3.0.6(vite@6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.0.6 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) - '@vitest/mocker@3.0.7(vite@6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': + '@vitest/mocker@3.0.7(vite@6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.0.7 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) '@vitest/pretty-format@2.0.5': dependencies: @@ -21842,8 +22135,8 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.26.9 - '@babel/types': 7.26.10 + '@babel/template': 7.27.0 + '@babel/types': 7.27.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 @@ -23687,7 +23980,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 esutils@2.0.3: {} @@ -24842,7 +25135,7 @@ snapshots: is-reference@1.2.1: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 is-regex@1.2.1: dependencies: @@ -24942,7 +25235,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.26.0 - '@babel/parser': 7.26.10 + '@babel/parser': 7.27.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -25322,7 +25615,7 @@ snapshots: lexical@0.21.0: {} - lib0@0.2.99: + lib0@0.2.101: dependencies: isomorphic.js: 0.2.5 @@ -25923,7 +26216,7 @@ snapshots: metro-source-map@0.81.3: dependencies: '@babel/traverse': 7.26.10 - '@babel/traverse--for-generate-function-map': '@babel/traverse@7.26.10' + '@babel/traverse--for-generate-function-map': '@babel/traverse@7.27.0' '@babel/types': 7.26.10 flow-enums-runtime: 0.0.6 invariant: 2.2.4 @@ -25972,8 +26265,8 @@ snapshots: metro-transform-plugins@0.81.3: dependencies: '@babel/core': 7.26.0 - '@babel/generator': 7.26.10 - '@babel/template': 7.26.9 + '@babel/generator': 7.27.0 + '@babel/template': 7.27.0 '@babel/traverse': 7.26.10 flow-enums-runtime: 0.0.6 nullthrows: 1.1.1 @@ -26003,9 +26296,9 @@ snapshots: metro-transform-worker@0.81.3: dependencies: '@babel/core': 7.26.0 - '@babel/generator': 7.26.10 - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 + '@babel/generator': 7.27.0 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 flow-enums-runtime: 0.0.6 metro: 0.81.3 metro-babel-transformer: 0.81.3 @@ -27320,7 +27613,7 @@ snapshots: postcss@8.5.3: dependencies: - nanoid: 3.3.10 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -28224,6 +28517,32 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.36.0 fsevents: 2.3.3 + rollup@4.37.0: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.37.0 + '@rollup/rollup-android-arm64': 4.37.0 + '@rollup/rollup-darwin-arm64': 4.37.0 + '@rollup/rollup-darwin-x64': 4.37.0 + '@rollup/rollup-freebsd-arm64': 4.37.0 + '@rollup/rollup-freebsd-x64': 4.37.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.37.0 + '@rollup/rollup-linux-arm-musleabihf': 4.37.0 + '@rollup/rollup-linux-arm64-gnu': 4.37.0 + '@rollup/rollup-linux-arm64-musl': 4.37.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.37.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.37.0 + '@rollup/rollup-linux-riscv64-gnu': 4.37.0 + '@rollup/rollup-linux-riscv64-musl': 4.37.0 + '@rollup/rollup-linux-s390x-gnu': 4.37.0 + '@rollup/rollup-linux-x64-gnu': 4.37.0 + '@rollup/rollup-linux-x64-musl': 4.37.0 + '@rollup/rollup-win32-arm64-msvc': 4.37.0 + '@rollup/rollup-win32-ia32-msvc': 4.37.0 + '@rollup/rollup-win32-x64-msvc': 4.37.0 + fsevents: 2.3.3 + rrweb-cssom@0.7.1: {} rrweb-cssom@0.8.0: {} @@ -29653,7 +29972,7 @@ snapshots: debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 1.1.2 - vite: 5.4.14(@types/node@22.10.2)(lightningcss@1.27.0)(terser@5.37.0) + vite: 5.4.15(@types/node@22.10.2)(lightningcss@1.27.0)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -29671,7 +29990,7 @@ snapshots: debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -29692,7 +30011,7 @@ snapshots: debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -29713,7 +30032,7 @@ snapshots: debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -29728,10 +30047,10 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.3.0(@types/node@22.10.2)(rollup@4.36.0)(typescript@5.8.2)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): + vite-plugin-dts@4.3.0(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): dependencies: '@microsoft/api-extractor': 7.52.1(@types/node@22.10.2) - '@rollup/pluginutils': 5.1.4(rollup@4.36.0) + '@rollup/pluginutils': 5.1.4(rollup@4.37.0) '@volar/typescript': 2.4.12 '@vue/language-core': 2.1.6(typescript@5.8.2) compare-versions: 6.1.1 @@ -29741,77 +30060,58 @@ snapshots: magic-string: 0.30.17 typescript: 5.8.2 optionalDependencies: - vite: 6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@4.3.0(@types/node@22.10.2)(rollup@4.36.0)(typescript@5.8.2)(vite@6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): + vite-plugin-node-polyfills@0.22.0(rollup@4.37.0)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): dependencies: - '@microsoft/api-extractor': 7.52.1(@types/node@22.10.2) - '@rollup/pluginutils': 5.1.4(rollup@4.36.0) - '@volar/typescript': 2.4.12 - '@vue/language-core': 2.1.6(typescript@5.8.2) - compare-versions: 6.1.1 - debug: 4.4.0 - kolorist: 1.8.0 - local-pkg: 0.5.1 - magic-string: 0.30.17 - typescript: 5.8.2 - optionalDependencies: - vite: 6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - - vite-plugin-node-polyfills@0.22.0(rollup@4.36.0)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): - dependencies: - '@rollup/plugin-inject': 5.0.5(rollup@4.36.0) + '@rollup/plugin-inject': 5.0.5(rollup@4.37.0) node-stdlib-browser: 1.3.1 - vite: 6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - rollup - vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.2) optionalDependencies: - vite: 6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.2) optionalDependencies: - vite: 6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.14(@types/node@22.10.2)(lightningcss@1.27.0)(terser@5.37.0): + vite@5.4.15(@types/node@22.10.2)(lightningcss@1.27.0)(terser@5.37.0): dependencies: esbuild: 0.21.5 postcss: 8.4.49 - rollup: 4.36.0 + rollup: 4.37.0 optionalDependencies: '@types/node': 22.10.2 fsevents: 2.3.3 lightningcss: 1.27.0 terser: 5.37.0 - vite@6.0.9(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0): + vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0): dependencies: esbuild: 0.24.2 postcss: 8.4.49 - rollup: 4.36.0 + rollup: 4.37.0 optionalDependencies: '@types/node': 22.10.2 fsevents: 2.3.3 @@ -29821,11 +30121,11 @@ snapshots: tsx: 4.19.2 yaml: 2.7.0 - vite@6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0): + vite@6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0): dependencies: esbuild: 0.25.1 postcss: 8.5.3 - rollup: 4.36.0 + rollup: 4.37.0 optionalDependencies: '@types/node': 22.10.2 fsevents: 2.3.3 @@ -29850,7 +30150,7 @@ snapshots: vitest@2.1.9(@types/node@22.10.2)(jsdom@25.0.1)(lightningcss@1.27.0)(terser@5.37.0): dependencies: '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(vite@5.4.14(@types/node@22.10.2)(lightningcss@1.27.0)(terser@5.37.0)) + '@vitest/mocker': 2.1.9(vite@5.4.15(@types/node@22.10.2)(lightningcss@1.27.0)(terser@5.37.0)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 @@ -29866,7 +30166,7 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.14(@types/node@22.10.2)(lightningcss@1.27.0)(terser@5.37.0) + vite: 5.4.15(@types/node@22.10.2)(lightningcss@1.27.0)(terser@5.37.0) vite-node: 2.1.9(@types/node@22.10.2)(lightningcss@1.27.0)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: @@ -29886,7 +30186,7 @@ snapshots: vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0): dependencies: '@vitest/expect': 3.0.5 - '@vitest/mocker': 3.0.5(vite@6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + '@vitest/mocker': 3.0.5(vite@6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) '@vitest/pretty-format': 3.0.9 '@vitest/runner': 3.0.5 '@vitest/snapshot': 3.0.5 @@ -29902,7 +30202,7 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) vite-node: 3.0.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: @@ -29926,7 +30226,7 @@ snapshots: vitest@3.0.6(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0): dependencies: '@vitest/expect': 3.0.6 - '@vitest/mocker': 3.0.6(vite@6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + '@vitest/mocker': 3.0.6(vite@6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) '@vitest/pretty-format': 3.0.9 '@vitest/runner': 3.0.6 '@vitest/snapshot': 3.0.6 @@ -29942,7 +30242,7 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) vite-node: 3.0.6(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: @@ -29966,7 +30266,7 @@ snapshots: vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0): dependencies: '@vitest/expect': 3.0.7 - '@vitest/mocker': 3.0.7(vite@6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + '@vitest/mocker': 3.0.7(vite@6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) '@vitest/pretty-format': 3.0.9 '@vitest/runner': 3.0.7 '@vitest/snapshot': 3.0.7 @@ -29982,7 +30282,7 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.0(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) vite-node: 3.0.7(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: @@ -30345,7 +30645,7 @@ snapshots: yjs@13.6.24: dependencies: - lib0: 0.2.99 + lib0: 0.2.101 yn@3.1.1: {} From e9dbaa3c280a99129f7a427136dfa5a73d272e97 Mon Sep 17 00:00:00 2001 From: Jakob Schott <154420406+jakobsitory@users.noreply.github.com> Date: Wed, 26 Mar 2025 03:24:58 +0100 Subject: [PATCH 09/22] fix: survey id in summary (#5056) --- .../[environmentId]/settings/(organization)/general/page.tsx | 2 +- .../surveys/[surveyId]/(analysis)/summary/page.tsx | 3 +++ packages/lib/messages/de-DE.json | 2 ++ packages/lib/messages/en-US.json | 2 ++ packages/lib/messages/fr-FR.json | 2 ++ packages/lib/messages/pt-BR.json | 2 ++ packages/lib/messages/pt-PT.json | 2 ++ packages/lib/messages/zh-Hant-TW.json | 2 ++ 8 files changed, 16 insertions(+), 1 deletion(-) diff --git a/apps/web/app/(app)/environments/[environmentId]/settings/(organization)/general/page.tsx b/apps/web/app/(app)/environments/[environmentId]/settings/(organization)/general/page.tsx index d50c058260..dfb66fd1f6 100644 --- a/apps/web/app/(app)/environments/[environmentId]/settings/(organization)/general/page.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/settings/(organization)/general/page.tsx @@ -88,7 +88,7 @@ const Page = async (props: { params: Promise<{ environmentId: string }> }) => { )} - + ); }; diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/page.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/page.tsx index 018953705f..a76105d877 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/page.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/page.tsx @@ -7,6 +7,7 @@ import { getIsAIEnabled } from "@/modules/ee/license-check/lib/utils"; import { getEnvironmentAuth } from "@/modules/environments/lib/utils"; import { PageContentWrapper } from "@/modules/ui/components/page-content-wrapper"; import { PageHeader } from "@/modules/ui/components/page-header"; +import { SettingsId } from "@/modules/ui/components/settings-id"; import { getTranslate } from "@/tolgee/server"; import { notFound } from "next/navigation"; import { @@ -93,6 +94,8 @@ const SurveyPage = async (props: { params: Promise<{ environmentId: string; surv isReadOnly={isReadOnly} locale={user.locale ?? DEFAULT_LOCALE} /> + + ); }; diff --git a/packages/lib/messages/de-DE.json b/packages/lib/messages/de-DE.json index 5fa10a866a..d0d44a15a0 100644 --- a/packages/lib/messages/de-DE.json +++ b/packages/lib/messages/de-DE.json @@ -270,6 +270,7 @@ "only_owners_managers_and_manage_access_members_can_perform_this_action": "Nur Eigentümer, Manager und Mitglieder mit Zugriff auf das Management können diese Aktion ausführen.", "or": "oder", "organization": "Organisation", + "organization_id": "Organisations-ID", "organization_not_found": "Organisation nicht gefunden", "organization_teams_not_found": "Organisations-Teams nicht gefunden", "other": "Andere", @@ -354,6 +355,7 @@ "summary": "Zusammenfassung", "survey": "Umfrage", "survey_completed": "Umfrage abgeschlossen.", + "survey_id": "Umfrage-ID", "survey_languages": "Umfragesprachen", "survey_live": "Umfrage live", "survey_not_found": "Umfrage nicht gefunden", diff --git a/packages/lib/messages/en-US.json b/packages/lib/messages/en-US.json index 77184b3b51..a5af8745e2 100644 --- a/packages/lib/messages/en-US.json +++ b/packages/lib/messages/en-US.json @@ -270,6 +270,7 @@ "only_owners_managers_and_manage_access_members_can_perform_this_action": "Only owners and managers can perform this action.", "or": "or", "organization": "Organization", + "organization_id": "Organization ID", "organization_not_found": "Organization not found", "organization_teams_not_found": "Organization teams not found", "other": "Other", @@ -354,6 +355,7 @@ "summary": "Summary", "survey": "Survey", "survey_completed": "Survey completed.", + "survey_id": "Survey ID", "survey_languages": "Survey Languages", "survey_live": "Survey live", "survey_not_found": "Survey not found", diff --git a/packages/lib/messages/fr-FR.json b/packages/lib/messages/fr-FR.json index a385275125..60318da172 100644 --- a/packages/lib/messages/fr-FR.json +++ b/packages/lib/messages/fr-FR.json @@ -270,6 +270,7 @@ "only_owners_managers_and_manage_access_members_can_perform_this_action": "Seules les propriétaires, les gestionnaires et les membres ayant accès à la gestion peuvent effectuer cette action.", "or": "ou", "organization": "Organisation", + "organization_id": "ID de l'organisation", "organization_not_found": "Organisation non trouvée", "organization_teams_not_found": "Équipes d'organisation non trouvées", "other": "Autre", @@ -354,6 +355,7 @@ "summary": "Résumé", "survey": "Enquête", "survey_completed": "Enquête terminée.", + "survey_id": "ID de l'enquête", "survey_languages": "Langues de l'enquête", "survey_live": "Sondage en direct", "survey_not_found": "Sondage non trouvé", diff --git a/packages/lib/messages/pt-BR.json b/packages/lib/messages/pt-BR.json index e54328a00d..6d44aeda41 100644 --- a/packages/lib/messages/pt-BR.json +++ b/packages/lib/messages/pt-BR.json @@ -270,6 +270,7 @@ "only_owners_managers_and_manage_access_members_can_perform_this_action": "Apenas proprietários, gerentes e membros com acesso de gerenciamento podem realizar essa ação.", "or": "ou", "organization": "organização", + "organization_id": "ID da Organização", "organization_not_found": "Organização não encontrada", "organization_teams_not_found": "Equipes da organização não encontradas", "other": "outro", @@ -354,6 +355,7 @@ "summary": "Resumo", "survey": "Pesquisa", "survey_completed": "Pesquisa concluída.", + "survey_id": "ID da Pesquisa", "survey_languages": "Idiomas da Pesquisa", "survey_live": "Pesquisa ao vivo", "survey_not_found": "Pesquisa não encontrada", diff --git a/packages/lib/messages/pt-PT.json b/packages/lib/messages/pt-PT.json index b221b59b8b..c6cae13ce3 100644 --- a/packages/lib/messages/pt-PT.json +++ b/packages/lib/messages/pt-PT.json @@ -270,6 +270,7 @@ "only_owners_managers_and_manage_access_members_can_perform_this_action": "Apenas proprietários e gestores podem realizar esta ação.", "or": "ou", "organization": "Organização", + "organization_id": "ID da Organização", "organization_not_found": "Organização não encontrada", "organization_teams_not_found": "Equipas da organização não encontradas", "other": "Outro", @@ -354,6 +355,7 @@ "summary": "Resumo", "survey": "Inquérito", "survey_completed": "Inquérito concluído.", + "survey_id": "ID do Inquérito", "survey_languages": "Idiomas da Pesquisa", "survey_live": "Inquérito ao vivo", "survey_not_found": "Inquérito não encontrado", diff --git a/packages/lib/messages/zh-Hant-TW.json b/packages/lib/messages/zh-Hant-TW.json index 96806e7b08..019008000d 100644 --- a/packages/lib/messages/zh-Hant-TW.json +++ b/packages/lib/messages/zh-Hant-TW.json @@ -270,6 +270,7 @@ "only_owners_managers_and_manage_access_members_can_perform_this_action": "只有擁有者、管理員和管理存取權限的成員才能執行此操作。", "or": "或", "organization": "組織", + "organization_id": "組織 ID", "organization_not_found": "找不到組織", "organization_teams_not_found": "找不到組織團隊", "other": "其他", @@ -354,6 +355,7 @@ "summary": "摘要", "survey": "問卷", "survey_completed": "問卷已完成。", + "survey_id": "問卷 ID", "survey_languages": "問卷語言", "survey_live": "問卷已上線", "survey_not_found": "找不到問卷", From 896d5bad12118ecd69f81e90782a1edad4d2d122 Mon Sep 17 00:00:00 2001 From: Anshuman Pandey <54475686+pandeymangg@users.noreply.github.com> Date: Wed, 26 Mar 2025 10:21:42 +0530 Subject: [PATCH 10/22] fix: adds network checks for the react-native sdk (#5034) Co-authored-by: Dhruwang Co-authored-by: Matthias Nannt --- packages/react-native/package.json | 13 +- .../react-native/src/lib/survey/action.ts | 54 +- .../src/lib/survey/tests/action.test.ts | 15 +- pnpm-lock.yaml | 2045 +++++++---------- 4 files changed, 936 insertions(+), 1191 deletions(-) diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 0e9d3b4fc9..9775359acf 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "@formbricks/react-native", - "version": "2.1.0", + "version": "2.1.1", "license": "MIT", "description": "Formbricks React Native SDK allows you to connect your app to Formbricks, display surveys and trigger events.", "homepage": "https://formbricks.com", @@ -41,24 +41,25 @@ "coverage": "vitest run --coverage" }, "dependencies": { + "@react-native-community/netinfo": "11.4.1", "zod": "3.24.1" }, "devDependencies": { "@formbricks/api": "workspace:*", "@formbricks/config-typescript": "workspace:*", + "@types/react": "18.3.1", "@vitest/coverage-v8": "3.0.4", + "react": "18.3.1", "react-native": "0.74.5", "terser": "5.37.0", "vite": "6.0.12", "vite-plugin-dts": "4.3.0", - "vitest": "3.0.5", - "react": "18.3.1", - "@types/react": "18.3.1" + "vitest": "3.0.5" }, "peerDependencies": { + "@react-native-async-storage/async-storage": ">=2.1.0", "react": ">=16.8.0", "react-native": ">=0.60.0", - "react-native-webview": ">=13.0.0", - "@react-native-async-storage/async-storage": ">=2.1.0" + "react-native-webview": ">=13.0.0" } } diff --git a/packages/react-native/src/lib/survey/action.ts b/packages/react-native/src/lib/survey/action.ts index e175e88e23..1e3c6b3578 100644 --- a/packages/react-native/src/lib/survey/action.ts +++ b/packages/react-native/src/lib/survey/action.ts @@ -1,3 +1,4 @@ +import { fetch } from "@react-native-community/netinfo"; import { RNConfig } from "@/lib/common/config"; import { Logger } from "@/lib/common/logger"; import { shouldDisplayBasedOnPercentage } from "@/lib/common/utils"; @@ -62,24 +63,49 @@ export const trackAction = (name: string, alias?: string): Result | Result => { - const appConfig = RNConfig.getInstance(); +export const track = async ( + code: string +): Promise< + | Result + | Result + | Result +> => { + try { + const appConfig = RNConfig.getInstance(); - const { - environment: { - data: { actionClasses = [] }, - }, - } = appConfig.get(); + const netInfo = await fetch(); - const codeActionClasses = actionClasses.filter((action) => action.type === "code"); - const actionClass = codeActionClasses.find((action) => action.key === code); + if (!netInfo.isConnected) { + return err({ + code: "network_error", + status: 500, + message: "No internet connection. Please check your connection and try again.", + responseMessage: "No internet connection. Please check your connection and try again.", + url: new URL(`${appConfig.get().appUrl}/js/surveys.umd.cjs`), + }); + } - if (!actionClass) { + const { + environment: { + data: { actionClasses = [] }, + }, + } = appConfig.get(); + + const codeActionClasses = actionClasses.filter((action) => action.type === "code"); + const actionClass = codeActionClasses.find((action) => action.key === code); + + if (!actionClass) { + return err({ + code: "invalid_code", + message: `${code} action unknown. Please add this action in Formbricks first in order to use it in your code.`, + }); + } + + return trackAction(actionClass.name, code); + } catch (error) { return err({ - code: "invalid_code", - message: `${code} action unknown. Please add this action in Formbricks first in order to use it in your code.`, + code: "error", + message: "Error tracking action", }); } - - return trackAction(actionClass.name, code); }; diff --git a/packages/react-native/src/lib/survey/tests/action.test.ts b/packages/react-native/src/lib/survey/tests/action.test.ts index 76e93a36d8..9419fc6c37 100644 --- a/packages/react-native/src/lib/survey/tests/action.test.ts +++ b/packages/react-native/src/lib/survey/tests/action.test.ts @@ -36,6 +36,12 @@ vi.mock("@/lib/common/utils", () => ({ shouldDisplayBasedOnPercentage: vi.fn(), })); +vi.mock("@react-native-community/netinfo", () => ({ + fetch: vi.fn(() => ({ + isConnected: true, + })), +})); + describe("survey/action.ts", () => { const mockSurvey = { id: "survey_001", @@ -153,15 +159,14 @@ describe("survey/action.ts", () => { }); }); - test("tracks a valid action by code", () => { - const result = track("testCode"); + test("tracks a valid action by code", async () => { + const result = await track("testCode"); expect(result.ok).toBe(true); - // expect(mockLogger.debug).toHaveBeenCalledWith('Formbricks: Action "testAction" tracked'); }); - test("returns error for invalid action code", () => { - const result = track("invalidCode"); + test("returns error for invalid action code", async () => { + const result = await track("invalidCode"); expect(result.ok).toBe(false); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 39db326959..b22e2cda35 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -173,7 +173,7 @@ importers: version: 8.4.7(prettier@3.4.2) tsup: specifier: 8.3.5 - version: 8.3.5(@microsoft/api-extractor@7.52.1(@types/node@22.10.2))(jiti@2.4.1)(postcss@8.5.3)(tsx@4.19.2)(typescript@5.8.2)(yaml@2.7.0) + version: 8.3.5(@microsoft/api-extractor@7.52.2(@types/node@22.10.2))(jiti@2.4.1)(postcss@8.5.3)(tsx@4.19.2)(typescript@5.8.2)(yaml@2.7.0) vite: specifier: 6.0.12 version: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) @@ -909,10 +909,10 @@ importers: version: link:../config-eslint vite: specifier: ^6.0.12 - version: 6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + version: 6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) vite-plugin-dts: specifier: 4.3.0 - version: 4.3.0(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 4.3.0(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) vitest: specifier: 3.0.7 version: 3.0.7(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) @@ -922,6 +922,9 @@ importers: '@react-native-async-storage/async-storage': specifier: '>=2.1.0' version: 2.1.0(react-native@0.74.5(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@types/react@18.3.1)(encoding@0.1.13)(react@18.3.1)) + '@react-native-community/netinfo': + specifier: 11.4.1 + version: 11.4.1(react-native@0.74.5(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@types/react@18.3.1)(encoding@0.1.13)(react@18.3.1)) react-native-webview: specifier: '>=13.0.0' version: 13.12.5(react-native@0.74.5(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@types/react@18.3.1)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) @@ -1387,20 +1390,20 @@ packages: peerDependencies: '@playwright/test': ^1.43.1 - '@azure/msal-browser@4.7.0': - resolution: {integrity: sha512-H4AIPhIQVe1qW4+BJaitqod6UGQiXE3juj7q2ZBsOPjuZicQaqcbnBp2gCroF/icS0+TJ9rGuyCBJbjlAqVOGA==} + '@azure/msal-browser@4.9.0': + resolution: {integrity: sha512-7ozXQXts71Yjjy4AmCZK0/lkUhRt0pglcdXkl9T8FtMt7uLrzsaHhkbHTw3L5GfxsgkUgNh1hGIGchKrHBb9/Q==} engines: {node: '>=0.8.0'} - '@azure/msal-common@15.2.1': - resolution: {integrity: sha512-eZHtYE5OHDN0o2NahCENkczQ6ffGc0MoUSAI3hpwGpZBHJXaEQMMZPWtIx86da2L9w7uT+Tr/xgJbGwIkvTZTQ==} + '@azure/msal-common@15.4.0': + resolution: {integrity: sha512-reeIUDXt6Xc+FpCBDEbUFQWvJ6SjE0JwsGYIfa3ZCR6Tpzjc9J1v+/InQgfCeJzfTRd7PDJVxI6TSzOmOd7+Ag==} engines: {node: '>=0.8.0'} - '@azure/msal-node@3.3.0': - resolution: {integrity: sha512-ulsT3EHF1RQ29X55cxBLgKsIKWni9JdbUqG7sipGVP4uhWcBpmm/vhKOMH340+27Acm9+kHGnN/5XmQ5LrIDgA==} + '@azure/msal-node@3.4.1': + resolution: {integrity: sha512-VlW6ygnKBIqUKIHnA/ubQ+F3rZ8aW3K6VA1bpZ90Ln0vlE4XaA6yGB/FibPJxet7gWinAG1oSpQqPN/PL9AqIw==} engines: {node: '>=16'} - '@azure/storage-blob@12.26.0': - resolution: {integrity: sha512-SriLPKezypIsiZ+TtlFfE46uuBIap2HeaQVS78e1P7rz5OSbq0rsd52WE1mC5f7vAeLiXqv7I7oRhL3WFZEw3Q==} + '@azure/storage-blob@12.27.0': + resolution: {integrity: sha512-IQjj9RIzAKatmNca3D6bT0qJ+Pkox1WZGOg2esJF2YLHb45pQKOwGPIAV+w3rfgkj7zV3RMxpn/c6iftzSOZJQ==} engines: {node: '>=18.0.0'} '@babel/code-frame@7.10.4': @@ -1418,17 +1421,13 @@ packages: resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} engines: {node: '>=6.9.0'} - '@babel/eslint-parser@7.26.10': - resolution: {integrity: sha512-QsfQZr4AiLpKqn7fz+j7SN+f43z2DZCgGyYbNJ2vJOqKfG4E6MZer1+jqGZqKJaxq/gdO2DC/nUu45+pOL5p2Q==} + '@babel/eslint-parser@7.27.0': + resolution: {integrity: sha512-dtnzmSjXfgL/HDgMcmsLSzyGbEosi4DrGWoCNfuI+W4IkVJw6izpTe7LtOdwAXnkDqw5yweboYCTkM2rQizCng==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - '@babel/generator@7.26.10': - resolution: {integrity: sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==} - engines: {node: '>=6.9.0'} - '@babel/generator@7.27.0': resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} engines: {node: '>=6.9.0'} @@ -1437,43 +1436,22 @@ packages: resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.26.5': - resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} - engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.27.0': resolution: {integrity: sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.26.9': - resolution: {integrity: sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-create-class-features-plugin@7.27.0': resolution: {integrity: sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.26.3': - resolution: {integrity: sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.27.0': resolution: {integrity: sha512-fO8l08T76v48BhpNRW/nQ0MxfnSdoSKUJBMjubOAYffsVuGG5qOfMq7N6Es7UJvi7Y8goXXo07EfcHZXDPuELQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-define-polyfill-provider@0.6.3': - resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-define-polyfill-provider@0.6.4': resolution: {integrity: sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==} peerDependencies: @@ -1537,19 +1515,14 @@ packages: resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.26.10': - resolution: {integrity: sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==} + '@babel/helpers@7.27.0': + resolution: {integrity: sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==} engines: {node: '>=6.9.0'} '@babel/highlight@7.25.9': resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.26.10': - resolution: {integrity: sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.27.0': resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} engines: {node: '>=6.0.0'} @@ -1809,12 +1782,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.25.9': - resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.27.0': resolution: {integrity: sha512-u1jGphZ8uDI2Pj/HJj6YQ6XQLZCNjOlprjxB5SVz6rq2T6SwAR+CdrWK0CP7F+9rDVMXdB0+r6Am5G5aobOjAQ==} engines: {node: '>=6.9.0'} @@ -2061,12 +2028,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.25.9': - resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.27.0': resolution: {integrity: sha512-LX/vCajUJQDqE7Aum/ELUMZAY19+cDpghxrnyt5I1tV6X5PyC86AOoWXWFYFeIvauyeSA6/ktn4tQVn/3ZifsA==} engines: {node: '>=6.9.0'} @@ -2121,8 +2082,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.26.8': - resolution: {integrity: sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw==} + '@babel/plugin-transform-typescript@7.27.0': + resolution: {integrity: sha512-fRGGjO2UEGPjvEcyAZXRXAS8AfdaQoq7HnxAbJoAoW10B9xOKesmmndJv+Sym2a+9FHWZ9KbyyLCe9s0Sn5jtg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2174,8 +2135,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/preset-typescript@7.26.0': - resolution: {integrity: sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==} + '@babel/preset-typescript@7.27.0': + resolution: {integrity: sha512-vxaPFfJtHhgeOVXRKuHpHPAOgymmy8V8I65T1q53R7GCZlefKeCaTyDs3zOPHTTbmquvNlQYC5klEvWsBAtrBQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2186,30 +2147,18 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.26.10': - resolution: {integrity: sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.26.9': - resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} + '@babel/runtime@7.27.0': + resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} engines: {node: '>=6.9.0'} '@babel/template@7.27.0': resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.26.10': - resolution: {integrity: sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==} - engines: {node: '>=6.9.0'} - '@babel/traverse@7.27.0': resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==} engines: {node: '>=6.9.0'} - '@babel/types@7.26.10': - resolution: {integrity: sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==} - engines: {node: '>=6.9.0'} - '@babel/types@7.27.0': resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} engines: {node: '>=6.9.0'} @@ -3058,20 +3007,20 @@ packages: '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} - '@formatjs/ecma402-abstract@2.3.3': - resolution: {integrity: sha512-pJT1OkhplSmvvr6i3CWTPvC/FGC06MbN5TNBfRO6Ox62AEz90eMq+dVvtX9Bl3jxCEkS0tATzDarRZuOLw7oFg==} + '@formatjs/ecma402-abstract@2.3.4': + resolution: {integrity: sha512-qrycXDeaORzIqNhBOx0btnhpD1c+/qFIHAN9znofuMJX6QBwtbrmlpWfD4oiUUD2vJUOIYFA/gYtg2KAMGG7sA==} - '@formatjs/fast-memoize@2.2.6': - resolution: {integrity: sha512-luIXeE2LJbQnnzotY1f2U2m7xuQNj2DA8Vq4ce1BY9ebRZaoPB1+8eZ6nXpLzsxuW5spQxr7LdCg+CApZwkqkw==} + '@formatjs/fast-memoize@2.2.7': + resolution: {integrity: sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==} - '@formatjs/icu-messageformat-parser@2.11.1': - resolution: {integrity: sha512-o0AhSNaOfKoic0Sn1GkFCK4MxdRsw7mPJ5/rBpIqdvcC7MIuyUSW8WChUEvrK78HhNpYOgqCQbINxCTumJLzZA==} + '@formatjs/icu-messageformat-parser@2.11.2': + resolution: {integrity: sha512-AfiMi5NOSo2TQImsYAg8UYddsNJ/vUEv/HaNqiFjnI3ZFfWihUtD5QtuX6kHl8+H+d3qvnE/3HZrfzgdWpsLNA==} - '@formatjs/icu-skeleton-parser@1.8.13': - resolution: {integrity: sha512-N/LIdTvVc1TpJmMt2jVg0Fr1F7Q1qJPdZSCs19unMskCmVQ/sa0H9L8PWt13vq+gLdLg1+pPsvBLydL1Apahjg==} + '@formatjs/icu-skeleton-parser@1.8.14': + resolution: {integrity: sha512-i4q4V4qslThK4Ig8SxyD76cp3+QJ3sAqr7f6q9VVfeGtxG9OhiAk3y9XF6Q41OymsKzsGQ6OQQoJNY4/lI8TcQ==} - '@formatjs/intl-localematcher@0.6.0': - resolution: {integrity: sha512-4rB4g+3hESy1bHSBG3tDFaMY2CH67iT7yne1e+0CLTsGLDcmoEWWpJjjpWVaYgYfYuohIRuo0E+N536gd2ZHZA==} + '@formatjs/intl-localematcher@0.6.1': + resolution: {integrity: sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==} '@formkit/auto-animate@0.8.2': resolution: {integrity: sha512-SwPWfeRa5veb1hOIBMdzI+73te5puUBHmqqaF1Bu7FjvxlYSz/kJcZKSa9Cg60zL0uRNeJL2SbRxV6Jp6Q1nFQ==} @@ -3414,11 +3363,11 @@ packages: '@types/react': '>=16' react: '>=16' - '@microsoft/api-extractor-model@7.30.4': - resolution: {integrity: sha512-RobC0gyVYsd2Fao9MTKOfTdBm41P/bCMUmzS5mQ7/MoAKEqy0FOBph3JOYdq4X4BsEnMEiSHc+0NUNmdzxCpjA==} + '@microsoft/api-extractor-model@7.30.5': + resolution: {integrity: sha512-0ic4rcbcDZHz833RaTZWTGu+NpNgrxVNjVaor0ZDUymfDFzjA/Uuk8hYziIUIOEOSTfmIQqyzVwlzxZxPe7tOA==} - '@microsoft/api-extractor@7.52.1': - resolution: {integrity: sha512-m3I5uAwE05orsu3D1AGyisX5KxsgVXB+U4bWOOaX/Z7Ftp/2Cy41qsNhO6LPvSxHBaapyser5dVorF1t5M6tig==} + '@microsoft/api-extractor@7.52.2': + resolution: {integrity: sha512-RX37V5uhBBPUvrrcmIxuQ8TPsohvr6zxo7SsLPOzBYcH9nbjbvtdXrts4cxHCXGOin9JR5ar37qfxtCOuEBTHA==} hasBin: true '@microsoft/tsdoc-config@0.16.2': @@ -3895,8 +3844,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pkgr/core@0.1.1': - resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + '@pkgr/core@0.1.2': + resolution: {integrity: sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} '@playwright/test@1.49.1': @@ -4684,6 +4633,11 @@ packages: engines: {node: '>=18'} hasBin: true + '@react-native-community/netinfo@11.4.1': + resolution: {integrity: sha512-B0BYAkghz3Q2V09BF88RA601XursIEA111tnc2JOaN7axJWmNefmfjZqw/KdSxKZp7CZUuPpjBmz/WCR9uaHYg==} + peerDependencies: + react-native: '>=0.59' + '@react-native/assets-registry@0.74.87': resolution: {integrity: sha512-1XmRhqQchN+pXPKEKYdpJlwESxVomJOxtEnIkbo7GAlaN2sym84fHEGDXAjLilih5GVPpcpSmFzTy8jx3LtaFg==} engines: {node: '>=18'} @@ -4896,131 +4850,66 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.36.0': - resolution: {integrity: sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w==} - cpu: [arm] - os: [android] - '@rollup/rollup-android-arm-eabi@4.37.0': resolution: {integrity: sha512-l7StVw6WAa8l3vA1ov80jyetOAEo1FtHvZDbzXDO/02Sq/QVvqlHkYoFwDJPIMj0GKiistsBudfx5tGFnwYWDQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.36.0': - resolution: {integrity: sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg==} - cpu: [arm64] - os: [android] - '@rollup/rollup-android-arm64@4.37.0': resolution: {integrity: sha512-6U3SlVyMxezt8Y+/iEBcbp945uZjJwjZimu76xoG7tO1av9VO691z8PkhzQ85ith2I8R2RddEPeSfcbyPfD4hA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.36.0': - resolution: {integrity: sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==} - cpu: [arm64] - os: [darwin] - '@rollup/rollup-darwin-arm64@4.37.0': resolution: {integrity: sha512-+iTQ5YHuGmPt10NTzEyMPbayiNTcOZDWsbxZYR1ZnmLnZxG17ivrPSWFO9j6GalY0+gV3Jtwrrs12DBscxnlYA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.36.0': - resolution: {integrity: sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA==} - cpu: [x64] - os: [darwin] - '@rollup/rollup-darwin-x64@4.37.0': resolution: {integrity: sha512-m8W2UbxLDcmRKVjgl5J/k4B8d7qX2EcJve3Sut7YGrQoPtCIQGPH5AMzuFvYRWZi0FVS0zEY4c8uttPfX6bwYQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.36.0': - resolution: {integrity: sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg==} - cpu: [arm64] - os: [freebsd] - '@rollup/rollup-freebsd-arm64@4.37.0': resolution: {integrity: sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.36.0': - resolution: {integrity: sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ==} - cpu: [x64] - os: [freebsd] - '@rollup/rollup-freebsd-x64@4.37.0': resolution: {integrity: sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.36.0': - resolution: {integrity: sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.37.0': resolution: {integrity: sha512-hhAALKJPidCwZcj+g+iN+38SIOkhK2a9bqtJR+EtyxrKKSt1ynCBeqrQy31z0oWU6thRZzdx53hVgEbRkuI19w==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.36.0': - resolution: {integrity: sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.37.0': resolution: {integrity: sha512-jUb/kmn/Gd8epbHKEqkRAxq5c2EwRt0DqhSGWjPFxLeFvldFdHQs/n8lQ9x85oAeVb6bHcS8irhTJX2FCOd8Ag==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.36.0': - resolution: {integrity: sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.37.0': resolution: {integrity: sha512-oNrJxcQT9IcbcmKlkF+Yz2tmOxZgG9D9GRq+1OE6XCQwCVwxixYAa38Z8qqPzQvzt1FCfmrHX03E0pWoXm1DqA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.36.0': - resolution: {integrity: sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-musl@4.37.0': resolution: {integrity: sha512-pfxLBMls+28Ey2enpX3JvjEjaJMBX5XlPCZNGxj4kdJyHduPBXtxYeb8alo0a7bqOoWZW2uKynhHxF/MWoHaGQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.36.0': - resolution: {integrity: sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg==} - cpu: [loong64] - os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.37.0': resolution: {integrity: sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.36.0': - resolution: {integrity: sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg==} - cpu: [ppc64] - os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.37.0': resolution: {integrity: sha512-NxcICptHk06E2Lh3a4Pu+2PEdZ6ahNHuK7o6Np9zcWkrBMuv21j10SQDJW3C9Yf/A/P7cutWoC/DptNLVsZ0VQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.36.0': - resolution: {integrity: sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA==} - cpu: [riscv64] - os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.37.0': resolution: {integrity: sha512-PpWwHMPCVpFZLTfLq7EWJWvrmEuLdGn1GMYcm5MV7PaRgwCEYJAwiN94uBuZev0/J/hFIIJCsYw4nLmXA9J7Pw==} cpu: [riscv64] @@ -5031,61 +4920,31 @@ packages: cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.36.0': - resolution: {integrity: sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag==} - cpu: [s390x] - os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.37.0': resolution: {integrity: sha512-hZDDU5fgWvDdHFuExN1gBOhCuzo/8TMpidfOR+1cPZJflcEzXdCy1LjnklQdW8/Et9sryOPJAKAQRw8Jq7Tg+A==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.36.0': - resolution: {integrity: sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-gnu@4.37.0': resolution: {integrity: sha512-pKivGpgJM5g8dwj0ywBwe/HeVAUSuVVJhUTa/URXjxvoyTT/AxsLTAbkHkDHG7qQxLoW2s3apEIl26uUe08LVQ==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.36.0': - resolution: {integrity: sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-musl@4.37.0': resolution: {integrity: sha512-E2lPrLKE8sQbY/2bEkVTGDEk4/49UYRVWgj90MY8yPjpnGBQ+Xi1Qnr7b7UIWw1NOggdFQFOLZ8+5CzCiz143w==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.36.0': - resolution: {integrity: sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A==} - cpu: [arm64] - os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.37.0': resolution: {integrity: sha512-Jm7biMazjNzTU4PrQtr7VS8ibeys9Pn29/1bm4ph7CP2kf21950LgN+BaE2mJ1QujnvOc6p54eWWiVvn05SOBg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.36.0': - resolution: {integrity: sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ==} - cpu: [ia32] - os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.37.0': resolution: {integrity: sha512-e3/1SFm1OjefWICB2Ucstg2dxYDkDTZGDYgwufcbsxTHyqQps1UQf33dFEChBNmeSsTOyrjw2JJq0zbG5GF6RA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.36.0': - resolution: {integrity: sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw==} - cpu: [x64] - os: [win32] - '@rollup/rollup-win32-x64-msvc@4.37.0': resolution: {integrity: sha512-LWbXUBwn/bcLx2sSsqy7pK5o+Nr+VCoRoAohfJ5C/aBio9nfJmGQqHAhU6pwxV/RmyTk5AqdySma7uwWGlmeuA==} cpu: [x64] @@ -5097,8 +4956,8 @@ packages: '@rushstack/eslint-patch@1.11.0': resolution: {integrity: sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==} - '@rushstack/node-core-library@5.12.0': - resolution: {integrity: sha512-QSwwzgzWoil1SCQse+yCHwlhRxNv2dX9siPnAb9zR/UmMhac4mjMrlMZpk64BlCeOFi1kJKgXRkihSwRMbboAQ==} + '@rushstack/node-core-library@5.13.0': + resolution: {integrity: sha512-IGVhy+JgUacAdCGXKUrRhwHMTzqhWwZUI+qEPcdzsb80heOw0QPbhhoVsoiMF7Klp8eYsp7hzpScMXmOa3Uhfg==} peerDependencies: '@types/node': '*' peerDependenciesMeta: @@ -5108,16 +4967,16 @@ packages: '@rushstack/rig-package@0.5.3': resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} - '@rushstack/terminal@0.15.1': - resolution: {integrity: sha512-3vgJYwumcjoDOXU3IxZfd616lqOdmr8Ezj4OWgJZfhmiBK4Nh7eWcv8sU8N/HdzXcuHDXCRGn/6O2Q75QvaZMA==} + '@rushstack/terminal@0.15.2': + resolution: {integrity: sha512-7Hmc0ysK5077R/IkLS9hYu0QuNafm+TbZbtYVzCMbeOdMjaRboLKrhryjwZSRJGJzu+TV1ON7qZHeqf58XfLpA==} peerDependencies: '@types/node': '*' peerDependenciesMeta: '@types/node': optional: true - '@rushstack/ts-command-line@4.23.6': - resolution: {integrity: sha512-7WepygaF3YPEoToh4MAL/mmHkiIImQq3/uAkQX46kVoKTNOOlCtFGyNnze6OYuWw2o9rxsyrHVfIBKxq/am2RA==} + '@rushstack/ts-command-line@4.23.7': + resolution: {integrity: sha512-Gr9cB7DGe6uz5vq2wdr89WbVDKz0UeuFEn5H2CfWDe7JvjFFaiV15gi6mqDBTbHhHCWS7w8mF1h3BnIfUndqdA==} '@segment/loosely-validate-event@2.0.0': resolution: {integrity: sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==} @@ -5262,8 +5121,8 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - '@smithy/abort-controller@4.0.1': - resolution: {integrity: sha512-fiUIYgIgRjMWznk6iLJz35K2YxSLHzLBA/RC6lBrKfQ8fHbPfvk7Pk9UvpKoHgJjI18MnbPuEju53zcVy6KF1g==} + '@smithy/abort-controller@4.0.2': + resolution: {integrity: sha512-Sl/78VDtgqKxN2+1qduaVE140XF+Xg+TafkncspwM4jFP/LHr76ZHmIY/y3V1M0mMLNk+Je6IGbzxy23RSToMw==} engines: {node: '>=18.0.0'} '@smithy/chunked-blob-reader-native@4.0.0': @@ -5274,56 +5133,56 @@ packages: resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==} engines: {node: '>=18.0.0'} - '@smithy/config-resolver@4.0.1': - resolution: {integrity: sha512-Igfg8lKu3dRVkTSEm98QpZUvKEOa71jDX4vKRcvJVyRc3UgN3j7vFMf0s7xLQhYmKa8kyJGQgUJDOV5V3neVlQ==} + '@smithy/config-resolver@4.1.0': + resolution: {integrity: sha512-8smPlwhga22pwl23fM5ew4T9vfLUCeFXlcqNOCD5M5h8VmNPNUE9j6bQSuRXpDSV11L/E/SwEBQuW8hr6+nS1A==} engines: {node: '>=18.0.0'} - '@smithy/core@3.1.5': - resolution: {integrity: sha512-HLclGWPkCsekQgsyzxLhCQLa8THWXtB5PxyYN+2O6nkyLt550KQKTlbV2D1/j5dNIQapAZM1+qFnpBFxZQkgCA==} + '@smithy/core@3.2.0': + resolution: {integrity: sha512-k17bgQhVZ7YmUvA8at4af1TDpl0NDMBuBKJl8Yg0nrefwmValU+CnA5l/AriVdQNthU/33H3nK71HrLgqOPr1Q==} engines: {node: '>=18.0.0'} - '@smithy/credential-provider-imds@4.0.1': - resolution: {integrity: sha512-l/qdInaDq1Zpznpmev/+52QomsJNZ3JkTl5yrTl02V6NBgJOQ4LY0SFw/8zsMwj3tLe8vqiIuwF6nxaEwgf6mg==} + '@smithy/credential-provider-imds@4.0.2': + resolution: {integrity: sha512-32lVig6jCaWBHnY+OEQ6e6Vnt5vDHaLiydGrwYMW9tPqO688hPGTYRamYJ1EptxEC2rAwJrHWmPoKRBl4iTa8w==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-codec@4.0.1': - resolution: {integrity: sha512-Q2bCAAR6zXNVtJgifsU16ZjKGqdw/DyecKNgIgi7dlqw04fqDu0mnq+JmGphqheypVc64CYq3azSuCpAdFk2+A==} + '@smithy/eventstream-codec@4.0.2': + resolution: {integrity: sha512-p+f2kLSK7ZrXVfskU/f5dzksKTewZk8pJLPvER3aFHPt76C2MxD9vNatSfLzzQSQB4FNO96RK4PSXfhD1TTeMQ==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-browser@4.0.1': - resolution: {integrity: sha512-HbIybmz5rhNg+zxKiyVAnvdM3vkzjE6ccrJ620iPL8IXcJEntd3hnBl+ktMwIy12Te/kyrSbUb8UCdnUT4QEdA==} + '@smithy/eventstream-serde-browser@4.0.2': + resolution: {integrity: sha512-CepZCDs2xgVUtH7ZZ7oDdZFH8e6Y2zOv8iiX6RhndH69nlojCALSKK+OXwZUgOtUZEUaZ5e1hULVCHYbCn7pug==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-config-resolver@4.0.1': - resolution: {integrity: sha512-lSipaiq3rmHguHa3QFF4YcCM3VJOrY9oq2sow3qlhFY+nBSTF/nrO82MUQRPrxHQXA58J5G1UnU2WuJfi465BA==} + '@smithy/eventstream-serde-config-resolver@4.1.0': + resolution: {integrity: sha512-1PI+WPZ5TWXrfj3CIoKyUycYynYJgZjuQo8U+sphneOtjsgrttYybdqESFReQrdWJ+LKt6NEdbYzmmfDBmjX2A==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-node@4.0.1': - resolution: {integrity: sha512-o4CoOI6oYGYJ4zXo34U8X9szDe3oGjmHgsMGiZM0j4vtNoT+h80TLnkUcrLZR3+E6HIxqW+G+9WHAVfl0GXK0Q==} + '@smithy/eventstream-serde-node@4.0.2': + resolution: {integrity: sha512-C5bJ/C6x9ENPMx2cFOirspnF9ZsBVnBMtP6BdPl/qYSuUawdGQ34Lq0dMcf42QTjUZgWGbUIZnz6+zLxJlb9aw==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-universal@4.0.1': - resolution: {integrity: sha512-Z94uZp0tGJuxds3iEAZBqGU2QiaBHP4YytLUjwZWx+oUeohCsLyUm33yp4MMBmhkuPqSbQCXq5hDet6JGUgHWA==} + '@smithy/eventstream-serde-universal@4.0.2': + resolution: {integrity: sha512-St8h9JqzvnbB52FtckiHPN4U/cnXcarMniXRXTKn0r4b4XesZOGiAyUdj1aXbqqn1icSqBlzzUsCl6nPB018ng==} engines: {node: '>=18.0.0'} - '@smithy/fetch-http-handler@5.0.1': - resolution: {integrity: sha512-3aS+fP28urrMW2KTjb6z9iFow6jO8n3MFfineGbndvzGZit3taZhKWtTorf+Gp5RpFDDafeHlhfsGlDCXvUnJA==} + '@smithy/fetch-http-handler@5.0.2': + resolution: {integrity: sha512-+9Dz8sakS9pe7f2cBocpJXdeVjMopUDLgZs1yWeu7h++WqSbjUYv/JAJwKwXw1HV6gq1jyWjxuyn24E2GhoEcQ==} engines: {node: '>=18.0.0'} - '@smithy/hash-blob-browser@4.0.1': - resolution: {integrity: sha512-rkFIrQOKZGS6i1D3gKJ8skJ0RlXqDvb1IyAphksaFOMzkn3v3I1eJ8m7OkLj0jf1McP63rcCEoLlkAn/HjcTRw==} + '@smithy/hash-blob-browser@4.0.2': + resolution: {integrity: sha512-3g188Z3DyhtzfBRxpZjU8R9PpOQuYsbNnyStc/ZVS+9nVX1f6XeNOa9IrAh35HwwIZg+XWk8bFVtNINVscBP+g==} engines: {node: '>=18.0.0'} - '@smithy/hash-node@4.0.1': - resolution: {integrity: sha512-TJ6oZS+3r2Xu4emVse1YPB3Dq3d8RkZDKcPr71Nj/lJsdAP1c7oFzYqEn1IBc915TsgLl2xIJNuxCz+gLbLE0w==} + '@smithy/hash-node@4.0.2': + resolution: {integrity: sha512-VnTpYPnRUE7yVhWozFdlxcYknv9UN7CeOqSrMH+V877v4oqtVYuoqhIhtSjmGPvYrYnAkaM61sLMKHvxL138yg==} engines: {node: '>=18.0.0'} - '@smithy/hash-stream-node@4.0.1': - resolution: {integrity: sha512-U1rAE1fxmReCIr6D2o/4ROqAQX+GffZpyMt3d7njtGDr2pUNmAKRWa49gsNVhCh2vVAuf3wXzWwNr2YN8PAXIw==} + '@smithy/hash-stream-node@4.0.2': + resolution: {integrity: sha512-POWDuTznzbIwlEXEvvXoPMS10y0WKXK790soe57tFRfvf4zBHyzE529HpZMqmDdwG9MfFflnyzndUQ8j78ZdSg==} engines: {node: '>=18.0.0'} - '@smithy/invalid-dependency@4.0.1': - resolution: {integrity: sha512-gdudFPf4QRQ5pzj7HEnu6FhKRi61BfH/Gk5Yf6O0KiSbr1LlVhgjThcvjdu658VE6Nve8vaIWB8/fodmS1rBPQ==} + '@smithy/invalid-dependency@4.0.2': + resolution: {integrity: sha512-GatB4+2DTpgWPday+mnUkoumP54u/MDM/5u44KF9hIu8jF0uafZtQLcdfIKkIcUNuF/fBojpLEHZS/56JqPeXQ==} engines: {node: '>=18.0.0'} '@smithy/is-array-buffer@2.2.0': @@ -5334,76 +5193,76 @@ packages: resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} engines: {node: '>=18.0.0'} - '@smithy/md5-js@4.0.1': - resolution: {integrity: sha512-HLZ647L27APi6zXkZlzSFZIjpo8po45YiyjMGJZM3gyDY8n7dPGdmxIIljLm4gPt/7rRvutLTTkYJpZVfG5r+A==} + '@smithy/md5-js@4.0.2': + resolution: {integrity: sha512-Hc0R8EiuVunUewCse2syVgA2AfSRco3LyAv07B/zCOMa+jpXI9ll+Q21Nc6FAlYPcpNcAXqBzMhNs1CD/pP2bA==} engines: {node: '>=18.0.0'} - '@smithy/middleware-content-length@4.0.1': - resolution: {integrity: sha512-OGXo7w5EkB5pPiac7KNzVtfCW2vKBTZNuCctn++TTSOMpe6RZO/n6WEC1AxJINn3+vWLKW49uad3lo/u0WJ9oQ==} + '@smithy/middleware-content-length@4.0.2': + resolution: {integrity: sha512-hAfEXm1zU+ELvucxqQ7I8SszwQ4znWMbNv6PLMndN83JJN41EPuS93AIyh2N+gJ6x8QFhzSO6b7q2e6oClDI8A==} engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@4.0.6': - resolution: {integrity: sha512-ftpmkTHIFqgaFugcjzLZv3kzPEFsBFSnq1JsIkr2mwFzCraZVhQk2gqN51OOeRxqhbPTkRFj39Qd2V91E/mQxg==} + '@smithy/middleware-endpoint@4.1.0': + resolution: {integrity: sha512-xhLimgNCbCzsUppRTGXWkZywksuTThxaIB0HwbpsVLY5sceac4e1TZ/WKYqufQLaUy+gUSJGNdwD2jo3cXL0iA==} engines: {node: '>=18.0.0'} - '@smithy/middleware-retry@4.0.7': - resolution: {integrity: sha512-58j9XbUPLkqAcV1kHzVX/kAR16GT+j7DUZJqwzsxh1jtz7G82caZiGyyFgUvogVfNTg3TeAOIJepGc8TXF4AVQ==} + '@smithy/middleware-retry@4.1.0': + resolution: {integrity: sha512-2zAagd1s6hAaI/ap6SXi5T3dDwBOczOMCSkkYzktqN1+tzbk1GAsHNAdo/1uzxz3Ky02jvZQwbi/vmDA6z4Oyg==} engines: {node: '>=18.0.0'} - '@smithy/middleware-serde@4.0.2': - resolution: {integrity: sha512-Sdr5lOagCn5tt+zKsaW+U2/iwr6bI9p08wOkCp6/eL6iMbgdtc2R5Ety66rf87PeohR0ExI84Txz9GYv5ou3iQ==} + '@smithy/middleware-serde@4.0.3': + resolution: {integrity: sha512-rfgDVrgLEVMmMn0BI8O+8OVr6vXzjV7HZj57l0QxslhzbvVfikZbVfBVthjLHqib4BW44QhcIgJpvebHlRaC9A==} engines: {node: '>=18.0.0'} - '@smithy/middleware-stack@4.0.1': - resolution: {integrity: sha512-dHwDmrtR/ln8UTHpaIavRSzeIk5+YZTBtLnKwDW3G2t6nAupCiQUvNzNoHBpik63fwUaJPtlnMzXbQrNFWssIA==} + '@smithy/middleware-stack@4.0.2': + resolution: {integrity: sha512-eSPVcuJJGVYrFYu2hEq8g8WWdJav3sdrI4o2c6z/rjnYDd3xH9j9E7deZQCzFn4QvGPouLngH3dQ+QVTxv5bOQ==} engines: {node: '>=18.0.0'} - '@smithy/node-config-provider@4.0.1': - resolution: {integrity: sha512-8mRTjvCtVET8+rxvmzRNRR0hH2JjV0DFOmwXPrISmTIJEfnCBugpYYGAsCj8t41qd+RB5gbheSQ/6aKZCQvFLQ==} + '@smithy/node-config-provider@4.0.2': + resolution: {integrity: sha512-WgCkILRZfJwJ4Da92a6t3ozN/zcvYyJGUTmfGbgS/FkCcoCjl7G4FJaCDN1ySdvLvemnQeo25FdkyMSTSwulsw==} engines: {node: '>=18.0.0'} - '@smithy/node-http-handler@4.0.3': - resolution: {integrity: sha512-dYCLeINNbYdvmMLtW0VdhW1biXt+PPCGazzT5ZjKw46mOtdgToQEwjqZSS9/EN8+tNs/RO0cEWG044+YZs97aA==} + '@smithy/node-http-handler@4.0.4': + resolution: {integrity: sha512-/mdqabuAT3o/ihBGjL94PUbTSPSRJ0eeVTdgADzow0wRJ0rN4A27EOrtlK56MYiO1fDvlO3jVTCxQtQmK9dZ1g==} engines: {node: '>=18.0.0'} - '@smithy/property-provider@4.0.1': - resolution: {integrity: sha512-o+VRiwC2cgmk/WFV0jaETGOtX16VNPp2bSQEzu0whbReqE1BMqsP2ami2Vi3cbGVdKu1kq9gQkDAGKbt0WOHAQ==} + '@smithy/property-provider@4.0.2': + resolution: {integrity: sha512-wNRoQC1uISOuNc2s4hkOYwYllmiyrvVXWMtq+TysNRVQaHm4yoafYQyjN/goYZS+QbYlPIbb/QRjaUZMuzwQ7A==} engines: {node: '>=18.0.0'} - '@smithy/protocol-http@5.0.1': - resolution: {integrity: sha512-TE4cpj49jJNB/oHyh/cRVEgNZaoPaxd4vteJNB0yGidOCVR0jCw/hjPVsT8Q8FRmj8Bd3bFZt8Dh7xGCT+xMBQ==} + '@smithy/protocol-http@5.1.0': + resolution: {integrity: sha512-KxAOL1nUNw2JTYrtviRRjEnykIDhxc84qMBzxvu1MUfQfHTuBlCG7PA6EdVwqpJjH7glw7FqQoFxUJSyBQgu7g==} engines: {node: '>=18.0.0'} - '@smithy/querystring-builder@4.0.1': - resolution: {integrity: sha512-wU87iWZoCbcqrwszsOewEIuq+SU2mSoBE2CcsLwE0I19m0B2gOJr1MVjxWcDQYOzHbR1xCk7AcOBbGFUYOKvdg==} + '@smithy/querystring-builder@4.0.2': + resolution: {integrity: sha512-NTOs0FwHw1vimmQM4ebh+wFQvOwkEf/kQL6bSM1Lock+Bv4I89B3hGYoUEPkmvYPkDKyp5UdXJYu+PoTQ3T31Q==} engines: {node: '>=18.0.0'} - '@smithy/querystring-parser@4.0.1': - resolution: {integrity: sha512-Ma2XC7VS9aV77+clSFylVUnPZRindhB7BbmYiNOdr+CHt/kZNJoPP0cd3QxCnCFyPXC4eybmyE98phEHkqZ5Jw==} + '@smithy/querystring-parser@4.0.2': + resolution: {integrity: sha512-v6w8wnmZcVXjfVLjxw8qF7OwESD9wnpjp0Dqry/Pod0/5vcEA3qxCr+BhbOHlxS8O+29eLpT3aagxXGwIoEk7Q==} engines: {node: '>=18.0.0'} - '@smithy/service-error-classification@4.0.1': - resolution: {integrity: sha512-3JNjBfOWpj/mYfjXJHB4Txc/7E4LVq32bwzE7m28GN79+M1f76XHflUaSUkhOriprPDzev9cX/M+dEB80DNDKA==} + '@smithy/service-error-classification@4.0.2': + resolution: {integrity: sha512-LA86xeFpTKn270Hbkixqs5n73S+LVM0/VZco8dqd+JT75Dyx3Lcw/MraL7ybjmz786+160K8rPOmhsq0SocoJQ==} engines: {node: '>=18.0.0'} - '@smithy/shared-ini-file-loader@4.0.1': - resolution: {integrity: sha512-hC8F6qTBbuHRI/uqDgqqi6J0R4GtEZcgrZPhFQnMhfJs3MnUTGSnR1NSJCJs5VWlMydu0kJz15M640fJlRsIOw==} + '@smithy/shared-ini-file-loader@4.0.2': + resolution: {integrity: sha512-J9/gTWBGVuFZ01oVA6vdb4DAjf1XbDhK6sLsu3OS9qmLrS6KB5ygpeHiM3miIbj1qgSJ96GYszXFWv6ErJ8QEw==} engines: {node: '>=18.0.0'} - '@smithy/signature-v4@5.0.1': - resolution: {integrity: sha512-nCe6fQ+ppm1bQuw5iKoeJ0MJfz2os7Ic3GBjOkLOPtavbD1ONoyE3ygjBfz2ythFWm4YnRm6OxW+8p/m9uCoIA==} + '@smithy/signature-v4@5.0.2': + resolution: {integrity: sha512-Mz+mc7okA73Lyz8zQKJNyr7lIcHLiPYp0+oiqiMNc/t7/Kf2BENs5d63pEj7oPqdjaum6g0Fc8wC78dY1TgtXw==} engines: {node: '>=18.0.0'} - '@smithy/smithy-client@4.1.6': - resolution: {integrity: sha512-UYDolNg6h2O0L+cJjtgSyKKvEKCOa/8FHYJnBobyeoeWDmNpXjwOAtw16ezyeu1ETuuLEOZbrynK0ZY1Lx9Jbw==} + '@smithy/smithy-client@4.2.0': + resolution: {integrity: sha512-Qs65/w30pWV7LSFAez9DKy0Koaoh3iHhpcpCCJ4waj/iqwsuSzJna2+vYwq46yBaqO5ZbP9TjUsATUNxrKeBdw==} engines: {node: '>=18.0.0'} - '@smithy/types@4.1.0': - resolution: {integrity: sha512-enhjdwp4D7CXmwLtD6zbcDMbo6/T6WtuuKCY49Xxc6OMOmUWlBEBDREsxxgV2LIdeQPW756+f97GzcgAwp3iLw==} + '@smithy/types@4.2.0': + resolution: {integrity: sha512-7eMk09zQKCO+E/ivsjQv+fDlOupcFUCSC/L2YUPgwhvowVGWbPQHjEFcmjt7QQ4ra5lyowS92SV53Zc6XD4+fg==} engines: {node: '>=18.0.0'} - '@smithy/url-parser@4.0.1': - resolution: {integrity: sha512-gPXcIEUtw7VlK8f/QcruNXm7q+T5hhvGu9tl63LsJPZ27exB6dtNwvh2HIi0v7JcXJ5emBxB+CJxwaLEdJfA+g==} + '@smithy/url-parser@4.0.2': + resolution: {integrity: sha512-Bm8n3j2ScqnT+kJaClSVCMeiSenK6jVAzZCNewsYWuZtnBehEz4r2qP0riZySZVfzB+03XZHJeqfmJDkeeSLiQ==} engines: {node: '>=18.0.0'} '@smithy/util-base64@4.0.0': @@ -5430,32 +5289,32 @@ packages: resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-browser@4.0.7': - resolution: {integrity: sha512-CZgDDrYHLv0RUElOsmZtAnp1pIjwDVCSuZWOPhIOBvG36RDfX1Q9+6lS61xBf+qqvHoqRjHxgINeQz47cYFC2Q==} + '@smithy/util-defaults-mode-browser@4.0.8': + resolution: {integrity: sha512-ZTypzBra+lI/LfTYZeop9UjoJhhGRTg3pxrNpfSTQLd3AJ37r2z4AXTKpq1rFXiiUIJsYyFgNJdjWRGP/cbBaQ==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-node@4.0.7': - resolution: {integrity: sha512-79fQW3hnfCdrfIi1soPbK3zmooRFnLpSx3Vxi6nUlqaaQeC5dm8plt4OTNDNqEEEDkvKghZSaoti684dQFVrGQ==} + '@smithy/util-defaults-mode-node@4.0.8': + resolution: {integrity: sha512-Rgk0Jc/UDfRTzVthye/k2dDsz5Xxs9LZaKCNPgJTRyoyBoeiNCnHsYGOyu1PKN+sDyPnJzMOz22JbwxzBp9NNA==} engines: {node: '>=18.0.0'} - '@smithy/util-endpoints@3.0.1': - resolution: {integrity: sha512-zVdUENQpdtn9jbpD9SCFK4+aSiavRb9BxEtw9ZGUR1TYo6bBHbIoi7VkrFQ0/RwZlzx0wRBaRmPclj8iAoJCLA==} + '@smithy/util-endpoints@3.0.2': + resolution: {integrity: sha512-6QSutU5ZyrpNbnd51zRTL7goojlcnuOB55+F9VBD+j8JpRY50IGamsjlycrmpn8PQkmJucFW8A0LSfXj7jjtLQ==} engines: {node: '>=18.0.0'} '@smithy/util-hex-encoding@4.0.0': resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} engines: {node: '>=18.0.0'} - '@smithy/util-middleware@4.0.1': - resolution: {integrity: sha512-HiLAvlcqhbzhuiOa0Lyct5IIlyIz0PQO5dnMlmQ/ubYM46dPInB+3yQGkfxsk6Q24Y0n3/JmcA1v5iEhmOF5mA==} + '@smithy/util-middleware@4.0.2': + resolution: {integrity: sha512-6GDamTGLuBQVAEuQ4yDQ+ti/YINf/MEmIegrEeg7DdB/sld8BX1lqt9RRuIcABOhAGTA50bRbPzErez7SlDtDQ==} engines: {node: '>=18.0.0'} - '@smithy/util-retry@4.0.1': - resolution: {integrity: sha512-WmRHqNVwn3kI3rKk1LsKcVgPBG6iLTBGC1iYOV3GQegwJ3E8yjzHytPt26VNzOWr1qu0xE03nK0Ug8S7T7oufw==} + '@smithy/util-retry@4.0.2': + resolution: {integrity: sha512-Qryc+QG+7BCpvjloFLQrmlSd0RsVRHejRXd78jNO3+oREueCjwG1CCEH1vduw/ZkM1U9TztwIKVIi3+8MJScGg==} engines: {node: '>=18.0.0'} - '@smithy/util-stream@4.1.2': - resolution: {integrity: sha512-44PKEqQ303d3rlQuiDpcCcu//hV8sn+u2JBo84dWCE0rvgeiVl0IlLMagbU++o0jCWhYCsHaAt9wZuZqNe05Hw==} + '@smithy/util-stream@4.2.0': + resolution: {integrity: sha512-Vj1TtwWnuWqdgQI6YTUF5hQ/0jmFiOYsc51CSMgj7QfyO+RF4EnT2HNjoviNlOOmgzgvf3f5yno+EiC4vrnaWQ==} engines: {node: '>=18.0.0'} '@smithy/util-uri-escape@4.0.0': @@ -5470,8 +5329,8 @@ packages: resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} engines: {node: '>=18.0.0'} - '@smithy/util-waiter@4.0.2': - resolution: {integrity: sha512-piUTHyp2Axx3p/kc2CIJkYSv0BAaheBQmbACZgQSSfWUumWNW+R1lL+H9PDBxKJkvOeEX+hKYEFiwO8xagL8AQ==} + '@smithy/util-waiter@4.0.3': + resolution: {integrity: sha512-JtaY3FxmD+te+KSI2FJuEcfNC9T/DGGVf551babM7fAaXhjJUt7oSYurH1Devxd2+BOSUACCgt3buinx4UnmEA==} engines: {node: '>=18.0.0'} '@sqltools/formatter@1.2.5': @@ -5929,8 +5788,8 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@18.19.80': - resolution: {integrity: sha512-kEWeMwMeIvxYkeg1gTc01awpwLbfMRZXdIhwRcakd/KlK53jmRC26LqcbIt7fnAQTu5GzlnWmzA3H6+l1u6xxQ==} + '@types/node@18.19.83': + resolution: {integrity: sha512-D69JeR5SfFS5H6FLbUaS0vE4r1dGhmMBbG4Ed6BNS4wkDK8GZjsdCShT5LCN59vOHEUHnFCY9J4aclXlIphMkA==} '@types/node@22.10.2': resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} @@ -6076,8 +5935,8 @@ packages: resolution: {integrity: sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.26.1': - resolution: {integrity: sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==} + '@typescript-eslint/scope-manager@8.28.0': + resolution: {integrity: sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/type-utils@7.18.0': @@ -6109,8 +5968,8 @@ packages: resolution: {integrity: sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.26.1': - resolution: {integrity: sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==} + '@typescript-eslint/types@8.28.0': + resolution: {integrity: sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@5.62.0': @@ -6137,8 +5996,8 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/typescript-estree@8.26.1': - resolution: {integrity: sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==} + '@typescript-eslint/typescript-estree@8.28.0': + resolution: {integrity: sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' @@ -6162,8 +6021,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.26.1': - resolution: {integrity: sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==} + '@typescript-eslint/utils@8.28.0': + resolution: {integrity: sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -6181,8 +6040,8 @@ packages: resolution: {integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.26.1': - resolution: {integrity: sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==} + '@typescript-eslint/visitor-keys@8.28.0': + resolution: {integrity: sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -6200,58 +6059,78 @@ packages: '@unkey/rbac@0.3.1': resolution: {integrity: sha512-Hj+52XRIlBBl3/qOUq9K71Fwy3PWExBQOpOClVYHdrcmbgqNL6L4EdW/BzliLhqPCdwZTPVSJTnZ3Hw4ZYixsQ==} - '@unrs/rspack-resolver-binding-darwin-arm64@1.2.1': - resolution: {integrity: sha512-xgSjy64typsn/lhQk/uKaS363H7ZeIBlWSh25FJFWXSCeLMHpEZ0umDo5Vzqi5iS26OZ5R1SpQkwiS78GhQRjw==} + '@unrs/rspack-resolver-binding-darwin-arm64@1.3.0': + resolution: {integrity: sha512-EcjI0Hh2HiNOM0B9UuYH1PfLWgE6/SBQ4dKoHXWNloERfveha/n6aUZSBThtPGnJenmdfaJYXXZtqyNbWtJAFw==} cpu: [arm64] os: [darwin] - '@unrs/rspack-resolver-binding-darwin-x64@1.2.1': - resolution: {integrity: sha512-3maDtW0vehzciEbuLxc2g+0FmDw5LGfCt+yMN1ZDn0lW0ikEBEFp6ul3h2fRphtfuCc7IvBJE9WWTt1UHkS7Nw==} + '@unrs/rspack-resolver-binding-darwin-x64@1.3.0': + resolution: {integrity: sha512-3CgG+mhfudDfnaDqwEl0W1mcGTto5f5mqPyJSXcWDxrnNc7pr/p01khIgWOoOD1eCwVejmgpYvRKGBwJPwgHOQ==} cpu: [x64] os: [darwin] - '@unrs/rspack-resolver-binding-freebsd-x64@1.2.1': - resolution: {integrity: sha512-aN6ifws9rNLjK2+6sIU9wvHyjXEf3S5+EZTHRarzd4jfa8i5pA7Mwt28un2DZVrBtIxhWDQvUPVKGI7zSBfVCA==} + '@unrs/rspack-resolver-binding-freebsd-x64@1.3.0': + resolution: {integrity: sha512-ww8BwryDrpXlSajwSIEUXEv8oKDkw04L2ke3hxjaxWohuBV8pAQie9XBS4yQTyREuL2ypcqbARfoCXJJzVp7ig==} cpu: [x64] os: [freebsd] - '@unrs/rspack-resolver-binding-linux-arm-gnueabihf@1.2.1': - resolution: {integrity: sha512-tKqu9VQyCO1yEUX6n6jgOHi7SJA9e6lvHczK60gur4VBITxnPmVYiCj2aekrOOIavvvjjuWAL2rqPQuc4g7RHQ==} + '@unrs/rspack-resolver-binding-linux-arm-gnueabihf@1.3.0': + resolution: {integrity: sha512-WyhonI1mkuAlnG2iaMjk7uy4aWX+FWi2Au8qCCwj57wVHbAEfrN6xN2YhzbrsCC+ciumKhj5c01MqwsnYDNzWQ==} cpu: [arm] os: [linux] - '@unrs/rspack-resolver-binding-linux-arm64-gnu@1.2.1': - resolution: {integrity: sha512-+xDI0kvwPiCR7334O83TPfaUXSe0UMVi5srQpQxP4+SDVYuONWsbwAC1IXe+yfOwRVGZsUdW9wE0ZiWs4Z+egw==} + '@unrs/rspack-resolver-binding-linux-arm-musleabihf@1.3.0': + resolution: {integrity: sha512-+uCP6hIAMVWHKQnLZHESJ1U1TFVGLR3FTeaS2A4zB0k8w+IbZlWwl9FiBUOwOiqhcCCyKiUEifgnYFNGpxi3pw==} + cpu: [arm] + os: [linux] + + '@unrs/rspack-resolver-binding-linux-arm64-gnu@1.3.0': + resolution: {integrity: sha512-p+s/Wp8rf75Qqs2EPw4HC0xVLLW+/60MlVAsB7TYLoeg1e1CU/QCis36FxpziLS0ZY2+wXdTnPUxr+5kkThzwQ==} cpu: [arm64] os: [linux] - '@unrs/rspack-resolver-binding-linux-arm64-musl@1.2.1': - resolution: {integrity: sha512-fcrVHlw+6UgQliMbI0znFD4ASWKuyY17FdH67ZmyNH62b0hRhhxQuJE0D6N3410m8lKVu4QW4EzFiHxYFUC0cg==} + '@unrs/rspack-resolver-binding-linux-arm64-musl@1.3.0': + resolution: {integrity: sha512-cZEL9jmZ2kAN53MEk+fFCRJM8pRwOEboDn7sTLjZW+hL6a0/8JNfHP20n8+MBDrhyD34BSF4A6wPCj/LNhtOIQ==} cpu: [arm64] os: [linux] - '@unrs/rspack-resolver-binding-linux-x64-gnu@1.2.1': - resolution: {integrity: sha512-xISTyUJ2PiAT4x9nlh8FdciDcdKbsatgK9qO7EEsILt9VB7Y1mHYGaszj3ouxfZnaKQ13WwW+dFLGxkZLP/WVg==} + '@unrs/rspack-resolver-binding-linux-ppc64-gnu@1.3.0': + resolution: {integrity: sha512-IOeRhcMXTNlk2oApsOozYVcOHu4t1EKYKnTz4huzdPyKNPX0Y9C7X8/6rk4aR3Inb5s4oVMT9IVKdgNXLcpGAQ==} + cpu: [ppc64] + os: [linux] + + '@unrs/rspack-resolver-binding-linux-s390x-gnu@1.3.0': + resolution: {integrity: sha512-op54XrlEbhgVRCxzF1pHFcLamdOmHDapwrqJ9xYRB7ZjwP/zQCKzz/uAsSaAlyQmbSi/PXV7lwfca4xkv860/Q==} + cpu: [s390x] + os: [linux] + + '@unrs/rspack-resolver-binding-linux-x64-gnu@1.3.0': + resolution: {integrity: sha512-orbQF7sN02N/b9QF8Xp1RBO5YkfI+AYo9VZw0H2Gh4JYWSuiDHjOPEeFPDIRyWmXbQJuiVNSB+e1pZOjPPKIyg==} cpu: [x64] os: [linux] - '@unrs/rspack-resolver-binding-linux-x64-musl@1.2.1': - resolution: {integrity: sha512-LE8EjE/iPlvSsFbZ6P9c0Jh5/pifAi03UYeXYwOnQqt1molKAPMB0R4kGWOM7dnDYaNgkk1MN9MOTCLsqe97Fw==} + '@unrs/rspack-resolver-binding-linux-x64-musl@1.3.0': + resolution: {integrity: sha512-kpjqjIAC9MfsjmlgmgeC8U9gZi6g/HTuCqpI7SBMjsa7/9MvBaQ6TJ7dtnsV/+DXvfJ2+L5teBBXG+XxfpvIFA==} cpu: [x64] os: [linux] - '@unrs/rspack-resolver-binding-wasm32-wasi@1.2.1': - resolution: {integrity: sha512-XERT3B88+G55RgG96May8QvAdgGzHr8qtQ70cIdbuWTpIcA0I76cnxSZ8Qwx33y73jE5N/myX2YKDlFksn4z6w==} + '@unrs/rspack-resolver-binding-wasm32-wasi@1.3.0': + resolution: {integrity: sha512-JAg0hY3kGsCPk7Jgh16yMTBZ6VEnoNR1DFZxiozjKwH+zSCfuDuM5S15gr50ofbwVw9drobIP2TTHdKZ15MJZQ==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@unrs/rspack-resolver-binding-win32-arm64-msvc@1.2.1': - resolution: {integrity: sha512-I8OLI6JbmNx2E/SG8MOEuo/d6rNx8dwgL09rcItSMcP82v1oZ8AY8HNA+axxuxEH95nkb6MPJU09p63isDvzrA==} + '@unrs/rspack-resolver-binding-win32-arm64-msvc@1.3.0': + resolution: {integrity: sha512-h5N83i407ntS3ndDkhT/3vC3Dj8oP0BIwMtekETNJcxk7IuWccSXifzCEhdxxu/FOX4OICGIHdHrxf5fJuAjfw==} cpu: [arm64] os: [win32] - '@unrs/rspack-resolver-binding-win32-x64-msvc@1.2.1': - resolution: {integrity: sha512-s5WvCljhFqiE3McvaD3lDIsQpmk7gEJRUHy1PRwLPzEB7snq9P2xQeqgzdjGhJQq62jBFz7NDy7NbMkocWr2pw==} + '@unrs/rspack-resolver-binding-win32-ia32-msvc@1.3.0': + resolution: {integrity: sha512-9QH7Gq3dRL8Q/D6PGS3Dwtjx9yw6kbCEu6iBkAUhFTDAuVUk2L0H/5NekRVA13AQaSc3OsEUKt60EOn/kq5Dug==} + cpu: [ia32] + os: [win32] + + '@unrs/rspack-resolver-binding-win32-x64-msvc@1.3.0': + resolution: {integrity: sha512-IYuXJCuwBOVV0H73l6auaZwtAPHjCPBJkxd4Co0yO6dSjDM5Na5OceaxhUmJLZ3z8kuEGhTYWIHH7PchGztnlg==} cpu: [x64] os: [win32] @@ -6937,8 +6816,8 @@ packages: axios@1.7.9: resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} - axios@1.8.3: - resolution: {integrity: sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==} + axios@1.8.4: + resolution: {integrity: sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -6963,11 +6842,6 @@ packages: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - babel-plugin-polyfill-corejs2@0.4.12: - resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-corejs2@0.4.13: resolution: {integrity: sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==} peerDependencies: @@ -6978,11 +6852,6 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.6.3: - resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.6.4: resolution: {integrity: sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==} peerDependencies: @@ -7276,8 +7145,8 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001706: - resolution: {integrity: sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==} + caniuse-lite@1.0.30001707: + resolution: {integrity: sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -8051,8 +7920,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.120: - resolution: {integrity: sha512-oTUp3gfX1gZI+xfD2djr2rzQdHCwHzPQrrK0CD7WpTdF0nPdQ/INcRVjWgLdCT4a9W3jFObR9DAfsuyFQnI8CQ==} + electron-to-chromium@1.5.123: + resolution: {integrity: sha512-refir3NlutEZqlKaBLK0tzlVLe5P2wDKS7UQt/3SpibizgsRAPOsqQC3ffw1nlv3ze5gjRQZYHoPymgVZkplFA==} elliptic@6.6.1: resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} @@ -8493,8 +8362,8 @@ packages: resolution: {integrity: sha512-80F22aiJ3GLyVnS/B3HzgR6RelZVumzj9jkL0Rhz4h0xYbNW9PjlQz5h3J/SShErbXBc295vseR4/MIbVmUbeA==} engines: {node: '>=12.0.0'} - expo-asset@11.0.4: - resolution: {integrity: sha512-CdIywU0HrR3wsW5c3n0cT3jW9hccZdnqGsRqY+EY/RWzJbDXtDfAQVEiFHO3mDK7oveUwrP2jK/6ZRNek41/sg==} + expo-asset@11.0.5: + resolution: {integrity: sha512-TL60LmMBGVzs3NQcO8ylWqBumMh4sx0lmeJsn7+9C88fylGDhyyVnKZ1PyTXo9CVDBkndutZx2JUEQWM9BaiXw==} peerDependencies: expo: '*' react: '*' @@ -8506,8 +8375,8 @@ packages: expo: '*' react-native: '*' - expo-file-system@18.0.11: - resolution: {integrity: sha512-yDwYfEzWgPXsBZHJW2RJ8Q66ceiFN9Wa5D20pp3fjXVkzPBDwxnYwiPWk4pVmCa5g4X5KYMoMne1pUrsL4OEpg==} + expo-file-system@18.0.12: + resolution: {integrity: sha512-HAkrd/mb8r+G3lJ9MzmGeuW2B+BxQR1joKfeCyY4deLl1zoZ48FrAWjgZjHK9aHUVhJ0ehzInu/NQtikKytaeg==} peerDependencies: expo: '*' react-native: '*' @@ -10299,80 +10168,80 @@ packages: resolution: {integrity: sha512-YZziRs0MgA3pzCkkvOoQRXjIoVjvrpi/yRlJnObyIvMP6lFdtyG4nUGIwGY9VXnBvxmXD6mPY2e+NSw6JAyiRg==} engines: {node: '>=18'} - metro-babel-transformer@0.81.3: - resolution: {integrity: sha512-ENqtnPy2mQZFOuKrbqHRcAwZuaYe43X+30xIF0xlkLuMyCvc0CsFzrrSK9EqrQwexhVlqaRALb0GQbBMcE/y8g==} + metro-babel-transformer@0.81.4: + resolution: {integrity: sha512-WW0yswWrW+eTVK9sYD+b1HwWOiUlZlUoomiw9TIOk0C+dh2V90Wttn/8g62kYi0Y4i+cJfISerB2LbV4nuRGTA==} engines: {node: '>=18.18'} metro-cache-key@0.80.12: resolution: {integrity: sha512-o4BspKnugg/pE45ei0LGHVuBJXwRgruW7oSFAeSZvBKA/sGr0UhOGY3uycOgWInnS3v5yTTfiBA9lHlNRhsvGA==} engines: {node: '>=18'} - metro-cache-key@0.81.3: - resolution: {integrity: sha512-KPsPSRUd6uRva7k7k/DqiiD8td7URQWx0RkX/Cj5+bed5zSXEg/XoQA+b+DmMxS5C7TqP61Fh3XvHx6TQRW82A==} + metro-cache-key@0.81.4: + resolution: {integrity: sha512-3SaWQybvf1ivasjBegIxzVKLJzOpcz+KsnGwXFOYADQq0VN4cnM7tT+u2jkOhk6yJiiO1WIjl68hqyMOQJRRLg==} engines: {node: '>=18.18'} metro-cache@0.80.12: resolution: {integrity: sha512-p5kNHh2KJ0pbQI/H7ZBPCEwkyNcSz7OUkslzsiIWBMPQGFJ/xArMwkV7I+GJcWh+b4m6zbLxE5fk6fqbVK1xGA==} engines: {node: '>=18'} - metro-cache@0.81.3: - resolution: {integrity: sha512-6UelMQYjlto/79tTXu0vsTxAX4e+Bkf0tgtDL1BNx3wd68pBg8qKIYpJPaUlOIaNUzFXTBDjYwUverkEW0KAtA==} + metro-cache@0.81.4: + resolution: {integrity: sha512-sxCPH3gowDxazSaZZrwdNPEpnxR8UeXDnvPjBF9+5btDBNN2DpWvDAXPvrohkYkFImhc0LajS2V7eOXvu9PnvQ==} engines: {node: '>=18.18'} metro-config@0.80.12: resolution: {integrity: sha512-4rwOWwrhm62LjB12ytiuR5NgK1ZBNr24/He8mqCsC+HXZ+ATbrewLNztzbAZHtFsrxP4D4GLTGgh96pCpYLSAQ==} engines: {node: '>=18'} - metro-config@0.81.3: - resolution: {integrity: sha512-WpTaT0iQr5juVY50Y/cyacG2ggZqF38VshEQepT+ovPK8E/xUVxlbO5yxLSXUxxUXX3Hka9r6g64+y2WC6c/xQ==} + metro-config@0.81.4: + resolution: {integrity: sha512-QnhMy3bRiuimCTy7oi5Ug60javrSa3lPh0gpMAspQZHY9h6y86jwHtZPLtlj8hdWQESIlrbeL8inMSF6qI/i9Q==} engines: {node: '>=18.18'} metro-core@0.80.12: resolution: {integrity: sha512-QqdJ/yAK+IpPs2HU/h5v2pKEdANBagSsc6DRSjnwSyJsCoHlmyJKCaCJ7KhWGx+N4OHxh37hoA8fc2CuZbx0Fw==} engines: {node: '>=18'} - metro-core@0.81.3: - resolution: {integrity: sha512-WZ+qohnpvvSWdPj1VJPUrZz+2ik29M+UUpMU6YrmzQUfDyZ6JYHhzlw5WVBtwpt/+2xTsIyrZ2C1fByT/DsLQA==} + metro-core@0.81.4: + resolution: {integrity: sha512-GdL4IgmgJhrMA/rTy2lRqXKeXfC77Rg+uvhUEkbhyfj/oz7PrdSgvIFzziapjdHwk1XYq0KyFh/CcVm8ZawG6A==} engines: {node: '>=18.18'} metro-file-map@0.80.12: resolution: {integrity: sha512-sYdemWSlk66bWzW2wp79kcPMzwuG32x1ZF3otI0QZTmrnTaaTiGyhE66P1z6KR4n2Eu5QXiABa6EWbAQv0r8bw==} engines: {node: '>=18'} - metro-file-map@0.81.3: - resolution: {integrity: sha512-F+t4lnVRoauJxtr9xmI4pWIOE77/vl0IrHDGeJSI9cW6LmuqxkpOlZHTKpbs/hMAo6+KhG2JMJACQDvXDLd/GA==} + metro-file-map@0.81.4: + resolution: {integrity: sha512-qUIBzkiqOi3qEuscu4cJ83OYQ4hVzjON19FAySWqYys9GKCmxlKa7LkmwqdpBso6lQl+JXZ7nCacX90w5wQvPA==} engines: {node: '>=18.18'} metro-minify-terser@0.80.12: resolution: {integrity: sha512-muWzUw3y5k+9083ZoX9VaJLWEV2Jcgi+Oan0Mmb/fBNMPqP9xVDuy4pOMn/HOiGndgfh/MK7s4bsjkyLJKMnXQ==} engines: {node: '>=18'} - metro-minify-terser@0.81.3: - resolution: {integrity: sha512-912AYv3OmwcbUwzCdWbdQRk+RV6kXXluHKlhBdYFD3kr4Ece691rzlofU/Mlt9qZrhHtctD5Q8cFqOEf9Z69bQ==} + metro-minify-terser@0.81.4: + resolution: {integrity: sha512-oVvq/AGvqmbhuijJDZZ9npeWzaVyeBwQKtdlnjcQ9fH7nR15RiBr5y2zTdgTEdynqOIb1Kc16l8CQIUSzOWVFA==} engines: {node: '>=18.18'} metro-resolver@0.80.12: resolution: {integrity: sha512-PR24gYRZnYHM3xT9pg6BdbrGbM/Cu1TcyIFBVlAk7qDAuHkUNQ1nMzWumWs+kwSvtd9eZGzHoucGJpTUEeLZAw==} engines: {node: '>=18'} - metro-resolver@0.81.3: - resolution: {integrity: sha512-XnjENY1c6jcsEfFVIjN/8McUIInCVgGxv5eva+9ZWeCTyiAE/L5HPj2ai/Myb349+6QuSMR0dscTkKCnOwWXdw==} + metro-resolver@0.81.4: + resolution: {integrity: sha512-Ng7G2mXjSExMeRzj6GC19G6IJ0mfIbOLgjArsMWJgtt9ViZiluCwgWsMW9juBC5NSwjJxUMK2x6pC5NIMFLiHA==} engines: {node: '>=18.18'} metro-runtime@0.80.12: resolution: {integrity: sha512-LIx7+92p5rpI0i6iB4S4GBvvLxStNt6fF0oPMaUd1Weku7jZdfkCZzmrtDD9CSQ6EPb0T9NUZoyXIxlBa3wOCw==} engines: {node: '>=18'} - metro-runtime@0.81.3: - resolution: {integrity: sha512-neuGRMC2pgGKIFPbmbrxW41/SmvL7OX4i1LN+saUY2t1cZfxf9haQHUMCGhO3498uEL2N+ulKRSlQrHt6XwGaw==} + metro-runtime@0.81.4: + resolution: {integrity: sha512-fBoRgqkF69CwyPtBNxlDi5ha26Zc8f85n2THXYoh13Jn/Bkg8KIDCdKPp/A1BbSeNnkH/++H2EIIfnmaff4uRg==} engines: {node: '>=18.18'} metro-source-map@0.80.12: resolution: {integrity: sha512-o+AXmE7hpvM8r8MKsx7TI21/eerYYy2DCDkWfoBkv+jNkl61khvDHlQn0cXZa6lrcNZiZkl9oHSMcwLLIrFmpw==} engines: {node: '>=18'} - metro-source-map@0.81.3: - resolution: {integrity: sha512-BHJJurmDQRn3hCbBawh/UHzPz3duMpwpE3ofImO2DoWHYzn6nSg/D4wfCN4y14d9fFLE4e0I+BAOX1HWNP4jsw==} + metro-source-map@0.81.4: + resolution: {integrity: sha512-IOwVQ7mLqoqvsL70RZtl1EyE3f9jp43kVsAsb/B/zoWmu0/k4mwEhGLTxmjdXRkLJqPqPrh7WmFChAEf9trW4Q==} engines: {node: '>=18.18'} metro-symbolicate@0.80.12: @@ -10380,8 +10249,8 @@ packages: engines: {node: '>=18'} hasBin: true - metro-symbolicate@0.81.3: - resolution: {integrity: sha512-LQLT6WopQmIz2SDSVh3Lw7nLzF58HpsrPYqRB7RpRXBYhYmPFIjiGaP8qqtKHXczM/5YAOJzpgt8t/OGZgh6Eg==} + metro-symbolicate@0.81.4: + resolution: {integrity: sha512-rWxTmYVN6/BOSaMDUHT8HgCuRf6acd0AjHkenYlHpmgxg7dqdnAG1hLq999q2XpW5rX+cMamZD5W5Ez2LqGaag==} engines: {node: '>=18.18'} hasBin: true @@ -10389,16 +10258,16 @@ packages: resolution: {integrity: sha512-WQWp00AcZvXuQdbjQbx1LzFR31IInlkCDYJNRs6gtEtAyhwpMMlL2KcHmdY+wjDO9RPcliZ+Xl1riOuBecVlPA==} engines: {node: '>=18'} - metro-transform-plugins@0.81.3: - resolution: {integrity: sha512-4JMUXhBB5y4h3dyA272k7T7+U3+J4fSBcct0Y8Yur9ziZB/dK8fieEQg5ZPfEGsgOGI+54zTzOUqga6AgmZSNg==} + metro-transform-plugins@0.81.4: + resolution: {integrity: sha512-nlP069nDXm4v28vbll4QLApAlvVtlB66rP6h+ml8Q/CCQCPBXu2JLaoxUmkIOJQjLhMRUcgTyQHq+TXWJhydOQ==} engines: {node: '>=18.18'} metro-transform-worker@0.80.12: resolution: {integrity: sha512-KAPFN1y3eVqEbKLx1I8WOarHPqDMUa8WelWxaJCNKO/yHCP26zELeqTJvhsQup+8uwB6EYi/sp0b6TGoh6lOEA==} engines: {node: '>=18'} - metro-transform-worker@0.81.3: - resolution: {integrity: sha512-KZqm9sVyBKRygUxRm+yP4DguE9R1EEv28KJhIxghNp5dcdVXBYUPe1xHoc3QVdzD9c3tf8JFzA2FBlKTlwMwNg==} + metro-transform-worker@0.81.4: + resolution: {integrity: sha512-lKAeRZ8EUMtx2cA/Y4KvICr9bIr5SE03iK3lm+l9wyn2lkjLUuPjYVep159inLeDqC6AtSubsA8MZLziP7c03g==} engines: {node: '>=18.18'} metro@0.80.12: @@ -10406,8 +10275,8 @@ packages: engines: {node: '>=18'} hasBin: true - metro@0.81.3: - resolution: {integrity: sha512-upilFs7z1uLKvdzFYHiVKrGT/uC7h7d53R0g/FaJoQvLfA8jQG2V69jeOcGi4wCsFYvl1zBSZvKxpQb0nA3giQ==} + metro@0.81.4: + resolution: {integrity: sha512-78f0aBNPuwXW7GFnSc+Y0vZhbuQorXxdgqQfvSRqcSizqwg9cwF27I05h47tL8AzQcizS1JZncvq4xf5u/Qykw==} engines: {node: '>=18.18'} hasBin: true @@ -10740,11 +10609,6 @@ packages: react: '*' react-dom: '*' - nanoid@3.3.10: - resolution: {integrity: sha512-vSJJTG+t/dIKAUhUDw/dLdZ9s//5OxcHqLaDWWrW4Cdq7o6tdLIczUkMXt2MBNmk6sJRZBZRXVixs7URY1CmIg==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -10996,8 +10860,8 @@ packages: resolution: {integrity: sha512-VMArClVT6LkhUGpnuEoBuyjG9rzUyEzg4PDkav6wK1cLhOK02gPCYFxoiB4mqVnrMhDpIzJcrGNAMVi9P+hXrw==} engines: {node: '>=18'} - ob1@0.81.3: - resolution: {integrity: sha512-wd8zdH0DWsn2iDVn2zT/QURihcqoc73K8FhNCmQ16qkJaoYJLNb/N+huOwdCgsbNP8Lk/s1+dPnDETx+RzsrWA==} + ob1@0.81.4: + resolution: {integrity: sha512-EZLYM8hfPraC2SYOR5EWLFAPV5e6g+p83m2Jth9bzCpFxP1NDQJYXdmXRB2bfbaWQSmm6NkIQlbzk7uU5lLfgg==} engines: {node: '>=18.18'} object-assign@4.1.1: @@ -11797,8 +11661,8 @@ packages: resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} engines: {node: '>=0.6'} - quansync@0.2.8: - resolution: {integrity: sha512-4+saucphJMazjt7iOM27mbFCk+D9dd/zmgMDCzRZ8MEoBfYp7lAvoN38et/phRQF6wOPMy/OROBGgoWeSKyluA==} + quansync@0.2.10: + resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} querystring-es3@0.2.1: resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} @@ -12295,11 +12159,6 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true - rollup@4.36.0: - resolution: {integrity: sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - rollup@4.37.0: resolution: {integrity: sha512-iAtQy/L4QFU+rTJ1YUjXqJOJzuwEghqWzCEYD2FEghT7Gsy1VdABntrO4CLopA5IkflTyqNiLNwPcOJ3S7UKLg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -12311,8 +12170,8 @@ packages: rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} - rspack-resolver@1.2.1: - resolution: {integrity: sha512-yTaWGUvHOjcoyFMdVTdYt2nq2Hu8sw6ia3X9szloXFJlWLQZnQ9g/4TPhL3Bb3qN58Mkye8mFG7MCaKhya7fOw==} + rspack-resolver@1.3.0: + resolution: {integrity: sha512-az/PLDwa1xijNv4bAFBS8mtqqJC1Y3lVyFag4cuyIUOHq/ft5kSZlHbqYaLZLpsQtPWv4ZGDo5ycySKJzUvU/A==} rtl-css-js@1.16.1: resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} @@ -13103,11 +12962,11 @@ packages: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} - tldts-core@6.1.84: - resolution: {integrity: sha512-NaQa1W76W2aCGjXybvnMYzGSM4x8fvG2AN/pla7qxcg0ZHbooOPhA8kctmOZUDfZyhDL27OGNbwAeig8P4p1vg==} + tldts-core@6.1.85: + resolution: {integrity: sha512-DTjUVvxckL1fIoPSb3KE7ISNtkWSawZdpfxGxwiIrZoO6EbHVDXXUIlIuWympPaeS+BLGyggozX/HTMsRAdsoA==} - tldts@6.1.84: - resolution: {integrity: sha512-aRGIbCIF3teodtUFAYSdQONVmDRy21REM3o6JnqWn5ZkQBJJ4gHxhw6OfwQ+WkSAi3ASamrS4N4nyazWx6uTYg==} + tldts@6.1.85: + resolution: {integrity: sha512-gBdZ1RjCSevRPFix/hpaUWeak2/RNUZB4/8frF1r5uYMHjFptkiT0JXIebWvgI/0ZHXvxaUDDJshiA0j6GdL3w==} hasBin: true tmp@0.0.33: @@ -13162,8 +13021,8 @@ packages: peerDependencies: typescript: '>=4.2.0' - ts-api-utils@2.0.1: - resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -14250,8 +14109,8 @@ packages: peerDependencies: zod: ^3.21.4 - zod-to-json-schema@3.24.4: - resolution: {integrity: sha512-0uNlcvgabyrni9Ag8Vghj21drk7+7tp7VTwwR7KxxXXc/3pbXz2PHlDgj3cICahgF1kHm4dExBFj7BXrZJXzig==} + zod-to-json-schema@3.24.5: + resolution: {integrity: sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==} peerDependencies: zod: ^3.24.1 @@ -14284,7 +14143,7 @@ snapshots: dependencies: '@ai-sdk/provider': 1.0.7 eventsource-parser: 3.0.0 - nanoid: 3.3.10 + nanoid: 3.3.11 secure-json-parse: 2.7.0 optionalDependencies: zod: 3.24.1 @@ -14307,7 +14166,7 @@ snapshots: dependencies: '@ai-sdk/provider': 1.0.7 '@ai-sdk/provider-utils': 2.1.6(zod@3.24.1) - zod-to-json-schema: 3.24.4(zod@3.24.1) + zod-to-json-schema: 3.24.5(zod@3.24.1) optionalDependencies: zod: 3.24.1 @@ -14390,30 +14249,30 @@ snapshots: '@aws-sdk/util-endpoints': 3.734.0 '@aws-sdk/util-user-agent-browser': 3.734.0 '@aws-sdk/util-user-agent-node': 3.734.0(aws-crt@1.25.3) - '@smithy/config-resolver': 4.0.1 - '@smithy/core': 3.1.5 - '@smithy/fetch-http-handler': 5.0.1 - '@smithy/hash-node': 4.0.1 - '@smithy/invalid-dependency': 4.0.1 - '@smithy/middleware-content-length': 4.0.1 - '@smithy/middleware-endpoint': 4.0.6 - '@smithy/middleware-retry': 4.0.7 - '@smithy/middleware-serde': 4.0.2 - '@smithy/middleware-stack': 4.0.1 - '@smithy/node-config-provider': 4.0.1 - '@smithy/node-http-handler': 4.0.3 - '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.6 - '@smithy/types': 4.1.0 - '@smithy/url-parser': 4.0.1 + '@smithy/config-resolver': 4.1.0 + '@smithy/core': 3.2.0 + '@smithy/fetch-http-handler': 5.0.2 + '@smithy/hash-node': 4.0.2 + '@smithy/invalid-dependency': 4.0.2 + '@smithy/middleware-content-length': 4.0.2 + '@smithy/middleware-endpoint': 4.1.0 + '@smithy/middleware-retry': 4.1.0 + '@smithy/middleware-serde': 4.0.3 + '@smithy/middleware-stack': 4.0.2 + '@smithy/node-config-provider': 4.0.2 + '@smithy/node-http-handler': 4.0.4 + '@smithy/protocol-http': 5.1.0 + '@smithy/smithy-client': 4.2.0 + '@smithy/types': 4.2.0 + '@smithy/url-parser': 4.0.2 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.7 - '@smithy/util-defaults-mode-node': 4.0.7 - '@smithy/util-endpoints': 3.0.1 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-retry': 4.0.1 + '@smithy/util-defaults-mode-browser': 4.0.8 + '@smithy/util-defaults-mode-node': 4.0.8 + '@smithy/util-endpoints': 3.0.2 + '@smithy/util-middleware': 4.0.2 + '@smithy/util-retry': 4.0.2 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 transitivePeerDependencies: @@ -14435,32 +14294,32 @@ snapshots: '@aws-sdk/util-endpoints': 3.734.0 '@aws-sdk/util-user-agent-browser': 3.734.0 '@aws-sdk/util-user-agent-node': 3.734.0(aws-crt@1.25.3) - '@smithy/config-resolver': 4.0.1 - '@smithy/core': 3.1.5 - '@smithy/fetch-http-handler': 5.0.1 - '@smithy/hash-node': 4.0.1 - '@smithy/invalid-dependency': 4.0.1 - '@smithy/middleware-content-length': 4.0.1 - '@smithy/middleware-endpoint': 4.0.6 - '@smithy/middleware-retry': 4.0.7 - '@smithy/middleware-serde': 4.0.2 - '@smithy/middleware-stack': 4.0.1 - '@smithy/node-config-provider': 4.0.1 - '@smithy/node-http-handler': 4.0.3 - '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.6 - '@smithy/types': 4.1.0 - '@smithy/url-parser': 4.0.1 + '@smithy/config-resolver': 4.1.0 + '@smithy/core': 3.2.0 + '@smithy/fetch-http-handler': 5.0.2 + '@smithy/hash-node': 4.0.2 + '@smithy/invalid-dependency': 4.0.2 + '@smithy/middleware-content-length': 4.0.2 + '@smithy/middleware-endpoint': 4.1.0 + '@smithy/middleware-retry': 4.1.0 + '@smithy/middleware-serde': 4.0.3 + '@smithy/middleware-stack': 4.0.2 + '@smithy/node-config-provider': 4.0.2 + '@smithy/node-http-handler': 4.0.4 + '@smithy/protocol-http': 5.1.0 + '@smithy/smithy-client': 4.2.0 + '@smithy/types': 4.2.0 + '@smithy/url-parser': 4.0.2 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.7 - '@smithy/util-defaults-mode-node': 4.0.7 - '@smithy/util-endpoints': 3.0.1 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-retry': 4.0.1 + '@smithy/util-defaults-mode-browser': 4.0.8 + '@smithy/util-defaults-mode-node': 4.0.8 + '@smithy/util-endpoints': 3.0.2 + '@smithy/util-middleware': 4.0.2 + '@smithy/util-retry': 4.0.2 '@smithy/util-utf8': 4.0.0 - '@smithy/util-waiter': 4.0.2 + '@smithy/util-waiter': 4.0.3 '@types/uuid': 9.0.8 tslib: 2.8.1 uuid: 9.0.1 @@ -14491,39 +14350,39 @@ snapshots: '@aws-sdk/util-user-agent-browser': 3.734.0 '@aws-sdk/util-user-agent-node': 3.734.0(aws-crt@1.25.3) '@aws-sdk/xml-builder': 3.734.0 - '@smithy/config-resolver': 4.0.1 - '@smithy/core': 3.1.5 - '@smithy/eventstream-serde-browser': 4.0.1 - '@smithy/eventstream-serde-config-resolver': 4.0.1 - '@smithy/eventstream-serde-node': 4.0.1 - '@smithy/fetch-http-handler': 5.0.1 - '@smithy/hash-blob-browser': 4.0.1 - '@smithy/hash-node': 4.0.1 - '@smithy/hash-stream-node': 4.0.1 - '@smithy/invalid-dependency': 4.0.1 - '@smithy/md5-js': 4.0.1 - '@smithy/middleware-content-length': 4.0.1 - '@smithy/middleware-endpoint': 4.0.6 - '@smithy/middleware-retry': 4.0.7 - '@smithy/middleware-serde': 4.0.2 - '@smithy/middleware-stack': 4.0.1 - '@smithy/node-config-provider': 4.0.1 - '@smithy/node-http-handler': 4.0.3 - '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.6 - '@smithy/types': 4.1.0 - '@smithy/url-parser': 4.0.1 + '@smithy/config-resolver': 4.1.0 + '@smithy/core': 3.2.0 + '@smithy/eventstream-serde-browser': 4.0.2 + '@smithy/eventstream-serde-config-resolver': 4.1.0 + '@smithy/eventstream-serde-node': 4.0.2 + '@smithy/fetch-http-handler': 5.0.2 + '@smithy/hash-blob-browser': 4.0.2 + '@smithy/hash-node': 4.0.2 + '@smithy/hash-stream-node': 4.0.2 + '@smithy/invalid-dependency': 4.0.2 + '@smithy/md5-js': 4.0.2 + '@smithy/middleware-content-length': 4.0.2 + '@smithy/middleware-endpoint': 4.1.0 + '@smithy/middleware-retry': 4.1.0 + '@smithy/middleware-serde': 4.0.3 + '@smithy/middleware-stack': 4.0.2 + '@smithy/node-config-provider': 4.0.2 + '@smithy/node-http-handler': 4.0.4 + '@smithy/protocol-http': 5.1.0 + '@smithy/smithy-client': 4.2.0 + '@smithy/types': 4.2.0 + '@smithy/url-parser': 4.0.2 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.7 - '@smithy/util-defaults-mode-node': 4.0.7 - '@smithy/util-endpoints': 3.0.1 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-retry': 4.0.1 - '@smithy/util-stream': 4.1.2 + '@smithy/util-defaults-mode-browser': 4.0.8 + '@smithy/util-defaults-mode-node': 4.0.8 + '@smithy/util-endpoints': 3.0.2 + '@smithy/util-middleware': 4.0.2 + '@smithy/util-retry': 4.0.2 + '@smithy/util-stream': 4.2.0 '@smithy/util-utf8': 4.0.0 - '@smithy/util-waiter': 4.0.2 + '@smithy/util-waiter': 4.0.3 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -14542,30 +14401,30 @@ snapshots: '@aws-sdk/util-endpoints': 3.734.0 '@aws-sdk/util-user-agent-browser': 3.734.0 '@aws-sdk/util-user-agent-node': 3.734.0(aws-crt@1.25.3) - '@smithy/config-resolver': 4.0.1 - '@smithy/core': 3.1.5 - '@smithy/fetch-http-handler': 5.0.1 - '@smithy/hash-node': 4.0.1 - '@smithy/invalid-dependency': 4.0.1 - '@smithy/middleware-content-length': 4.0.1 - '@smithy/middleware-endpoint': 4.0.6 - '@smithy/middleware-retry': 4.0.7 - '@smithy/middleware-serde': 4.0.2 - '@smithy/middleware-stack': 4.0.1 - '@smithy/node-config-provider': 4.0.1 - '@smithy/node-http-handler': 4.0.3 - '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.6 - '@smithy/types': 4.1.0 - '@smithy/url-parser': 4.0.1 + '@smithy/config-resolver': 4.1.0 + '@smithy/core': 3.2.0 + '@smithy/fetch-http-handler': 5.0.2 + '@smithy/hash-node': 4.0.2 + '@smithy/invalid-dependency': 4.0.2 + '@smithy/middleware-content-length': 4.0.2 + '@smithy/middleware-endpoint': 4.1.0 + '@smithy/middleware-retry': 4.1.0 + '@smithy/middleware-serde': 4.0.3 + '@smithy/middleware-stack': 4.0.2 + '@smithy/node-config-provider': 4.0.2 + '@smithy/node-http-handler': 4.0.4 + '@smithy/protocol-http': 5.1.0 + '@smithy/smithy-client': 4.2.0 + '@smithy/types': 4.2.0 + '@smithy/url-parser': 4.0.2 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.7 - '@smithy/util-defaults-mode-node': 4.0.7 - '@smithy/util-endpoints': 3.0.1 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-retry': 4.0.1 + '@smithy/util-defaults-mode-browser': 4.0.8 + '@smithy/util-defaults-mode-node': 4.0.8 + '@smithy/util-endpoints': 3.0.2 + '@smithy/util-middleware': 4.0.2 + '@smithy/util-retry': 4.0.2 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 transitivePeerDependencies: @@ -14574,14 +14433,14 @@ snapshots: '@aws-sdk/core@3.734.0': dependencies: '@aws-sdk/types': 3.734.0 - '@smithy/core': 3.1.5 - '@smithy/node-config-provider': 4.0.1 - '@smithy/property-provider': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/signature-v4': 5.0.1 - '@smithy/smithy-client': 4.1.6 - '@smithy/types': 4.1.0 - '@smithy/util-middleware': 4.0.1 + '@smithy/core': 3.2.0 + '@smithy/node-config-provider': 4.0.2 + '@smithy/property-provider': 4.0.2 + '@smithy/protocol-http': 5.1.0 + '@smithy/signature-v4': 5.0.2 + '@smithy/smithy-client': 4.2.0 + '@smithy/types': 4.2.0 + '@smithy/util-middleware': 4.0.2 fast-xml-parser: 4.4.1 tslib: 2.8.1 @@ -14589,8 +14448,8 @@ snapshots: dependencies: '@aws-sdk/client-cognito-identity': 3.741.0(aws-crt@1.25.3) '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/property-provider': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -14599,21 +14458,21 @@ snapshots: dependencies: '@aws-sdk/core': 3.734.0 '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/property-provider': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@aws-sdk/credential-provider-http@3.734.0': dependencies: '@aws-sdk/core': 3.734.0 '@aws-sdk/types': 3.734.0 - '@smithy/fetch-http-handler': 5.0.1 - '@smithy/node-http-handler': 4.0.3 - '@smithy/property-provider': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.6 - '@smithy/types': 4.1.0 - '@smithy/util-stream': 4.1.2 + '@smithy/fetch-http-handler': 5.0.2 + '@smithy/node-http-handler': 4.0.4 + '@smithy/property-provider': 4.0.2 + '@smithy/protocol-http': 5.1.0 + '@smithy/smithy-client': 4.2.0 + '@smithy/types': 4.2.0 + '@smithy/util-stream': 4.2.0 tslib: 2.8.1 '@aws-sdk/credential-provider-ini@3.741.0(aws-crt@1.25.3)': @@ -14626,10 +14485,10 @@ snapshots: '@aws-sdk/credential-provider-web-identity': 3.734.0(aws-crt@1.25.3) '@aws-sdk/nested-clients': 3.734.0(aws-crt@1.25.3) '@aws-sdk/types': 3.734.0 - '@smithy/credential-provider-imds': 4.0.1 - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/credential-provider-imds': 4.0.2 + '@smithy/property-provider': 4.0.2 + '@smithy/shared-ini-file-loader': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -14643,10 +14502,10 @@ snapshots: '@aws-sdk/credential-provider-sso': 3.734.0(aws-crt@1.25.3) '@aws-sdk/credential-provider-web-identity': 3.734.0(aws-crt@1.25.3) '@aws-sdk/types': 3.734.0 - '@smithy/credential-provider-imds': 4.0.1 - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/credential-provider-imds': 4.0.2 + '@smithy/property-provider': 4.0.2 + '@smithy/shared-ini-file-loader': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -14655,9 +14514,9 @@ snapshots: dependencies: '@aws-sdk/core': 3.734.0 '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/property-provider': 4.0.2 + '@smithy/shared-ini-file-loader': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@aws-sdk/credential-provider-sso@3.734.0(aws-crt@1.25.3)': @@ -14666,9 +14525,9 @@ snapshots: '@aws-sdk/core': 3.734.0 '@aws-sdk/token-providers': 3.734.0(aws-crt@1.25.3) '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/property-provider': 4.0.2 + '@smithy/shared-ini-file-loader': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -14678,8 +14537,8 @@ snapshots: '@aws-sdk/core': 3.734.0 '@aws-sdk/nested-clients': 3.734.0(aws-crt@1.25.3) '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/property-provider': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -14698,10 +14557,10 @@ snapshots: '@aws-sdk/credential-provider-web-identity': 3.734.0(aws-crt@1.25.3) '@aws-sdk/nested-clients': 3.734.0(aws-crt@1.25.3) '@aws-sdk/types': 3.734.0 - '@smithy/core': 3.1.5 - '@smithy/credential-provider-imds': 4.0.1 - '@smithy/property-provider': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/core': 3.2.0 + '@smithy/credential-provider-imds': 4.0.2 + '@smithy/property-provider': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -14715,9 +14574,9 @@ snapshots: dependencies: '@aws-sdk/types': 3.734.0 '@aws-sdk/util-arn-parser': 3.723.0 - '@smithy/node-config-provider': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 + '@smithy/node-config-provider': 4.0.2 + '@smithy/protocol-http': 5.1.0 + '@smithy/types': 4.2.0 '@smithy/util-config-provider': 4.0.0 tslib: 2.8.1 @@ -14725,16 +14584,16 @@ snapshots: dependencies: '@aws-sdk/endpoint-cache': 3.723.0 '@aws-sdk/types': 3.734.0 - '@smithy/node-config-provider': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 + '@smithy/node-config-provider': 4.0.2 + '@smithy/protocol-http': 5.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@aws-sdk/middleware-expect-continue@3.734.0': dependencies: '@aws-sdk/types': 3.734.0 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 + '@smithy/protocol-http': 5.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@aws-sdk/middleware-flexible-checksums@3.735.0': @@ -14745,38 +14604,38 @@ snapshots: '@aws-sdk/core': 3.734.0 '@aws-sdk/types': 3.734.0 '@smithy/is-array-buffer': 4.0.0 - '@smithy/node-config-provider': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-stream': 4.1.2 + '@smithy/node-config-provider': 4.0.2 + '@smithy/protocol-http': 5.1.0 + '@smithy/types': 4.2.0 + '@smithy/util-middleware': 4.0.2 + '@smithy/util-stream': 4.2.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 '@aws-sdk/middleware-host-header@3.734.0': dependencies: '@aws-sdk/types': 3.734.0 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 + '@smithy/protocol-http': 5.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@aws-sdk/middleware-location-constraint@3.734.0': dependencies: '@aws-sdk/types': 3.734.0 - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@aws-sdk/middleware-logger@3.734.0': dependencies: '@aws-sdk/types': 3.734.0 - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@aws-sdk/middleware-recursion-detection@3.734.0': dependencies: '@aws-sdk/types': 3.734.0 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 + '@smithy/protocol-http': 5.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@aws-sdk/middleware-sdk-s3@3.740.0': @@ -14784,22 +14643,22 @@ snapshots: '@aws-sdk/core': 3.734.0 '@aws-sdk/types': 3.734.0 '@aws-sdk/util-arn-parser': 3.723.0 - '@smithy/core': 3.1.5 - '@smithy/node-config-provider': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/signature-v4': 5.0.1 - '@smithy/smithy-client': 4.1.6 - '@smithy/types': 4.1.0 + '@smithy/core': 3.2.0 + '@smithy/node-config-provider': 4.0.2 + '@smithy/protocol-http': 5.1.0 + '@smithy/signature-v4': 5.0.2 + '@smithy/smithy-client': 4.2.0 + '@smithy/types': 4.2.0 '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-stream': 4.1.2 + '@smithy/util-middleware': 4.0.2 + '@smithy/util-stream': 4.2.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 '@aws-sdk/middleware-ssec@3.734.0': dependencies: '@aws-sdk/types': 3.734.0 - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@aws-sdk/middleware-user-agent@3.734.0': @@ -14807,9 +14666,9 @@ snapshots: '@aws-sdk/core': 3.734.0 '@aws-sdk/types': 3.734.0 '@aws-sdk/util-endpoints': 3.734.0 - '@smithy/core': 3.1.5 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 + '@smithy/core': 3.2.0 + '@smithy/protocol-http': 5.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@aws-sdk/nested-clients@3.734.0(aws-crt@1.25.3)': @@ -14826,30 +14685,30 @@ snapshots: '@aws-sdk/util-endpoints': 3.734.0 '@aws-sdk/util-user-agent-browser': 3.734.0 '@aws-sdk/util-user-agent-node': 3.734.0(aws-crt@1.25.3) - '@smithy/config-resolver': 4.0.1 - '@smithy/core': 3.1.5 - '@smithy/fetch-http-handler': 5.0.1 - '@smithy/hash-node': 4.0.1 - '@smithy/invalid-dependency': 4.0.1 - '@smithy/middleware-content-length': 4.0.1 - '@smithy/middleware-endpoint': 4.0.6 - '@smithy/middleware-retry': 4.0.7 - '@smithy/middleware-serde': 4.0.2 - '@smithy/middleware-stack': 4.0.1 - '@smithy/node-config-provider': 4.0.1 - '@smithy/node-http-handler': 4.0.3 - '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.6 - '@smithy/types': 4.1.0 - '@smithy/url-parser': 4.0.1 + '@smithy/config-resolver': 4.1.0 + '@smithy/core': 3.2.0 + '@smithy/fetch-http-handler': 5.0.2 + '@smithy/hash-node': 4.0.2 + '@smithy/invalid-dependency': 4.0.2 + '@smithy/middleware-content-length': 4.0.2 + '@smithy/middleware-endpoint': 4.1.0 + '@smithy/middleware-retry': 4.1.0 + '@smithy/middleware-serde': 4.0.3 + '@smithy/middleware-stack': 4.0.2 + '@smithy/node-config-provider': 4.0.2 + '@smithy/node-http-handler': 4.0.4 + '@smithy/protocol-http': 5.1.0 + '@smithy/smithy-client': 4.2.0 + '@smithy/types': 4.2.0 + '@smithy/url-parser': 4.0.2 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.7 - '@smithy/util-defaults-mode-node': 4.0.7 - '@smithy/util-endpoints': 3.0.1 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-retry': 4.0.1 + '@smithy/util-defaults-mode-browser': 4.0.8 + '@smithy/util-defaults-mode-node': 4.0.8 + '@smithy/util-endpoints': 3.0.2 + '@smithy/util-middleware': 4.0.2 + '@smithy/util-retry': 4.0.2 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 transitivePeerDependencies: @@ -14858,10 +14717,10 @@ snapshots: '@aws-sdk/region-config-resolver@3.734.0': dependencies: '@aws-sdk/types': 3.734.0 - '@smithy/node-config-provider': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/node-config-provider': 4.0.2 + '@smithy/types': 4.2.0 '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.1 + '@smithy/util-middleware': 4.0.2 tslib: 2.8.1 '@aws-sdk/s3-presigned-post@3.741.0(aws-crt@1.25.3)': @@ -14869,9 +14728,9 @@ snapshots: '@aws-sdk/client-s3': 3.741.0(aws-crt@1.25.3) '@aws-sdk/types': 3.734.0 '@aws-sdk/util-format-url': 3.734.0 - '@smithy/middleware-endpoint': 4.0.6 - '@smithy/signature-v4': 5.0.1 - '@smithy/types': 4.1.0 + '@smithy/middleware-endpoint': 4.1.0 + '@smithy/signature-v4': 5.0.2 + '@smithy/types': 4.2.0 '@smithy/util-hex-encoding': 4.0.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 @@ -14883,35 +14742,35 @@ snapshots: '@aws-sdk/signature-v4-multi-region': 3.740.0 '@aws-sdk/types': 3.734.0 '@aws-sdk/util-format-url': 3.734.0 - '@smithy/middleware-endpoint': 4.0.6 - '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.6 - '@smithy/types': 4.1.0 + '@smithy/middleware-endpoint': 4.1.0 + '@smithy/protocol-http': 5.1.0 + '@smithy/smithy-client': 4.2.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@aws-sdk/signature-v4-multi-region@3.740.0': dependencies: '@aws-sdk/middleware-sdk-s3': 3.740.0 '@aws-sdk/types': 3.734.0 - '@smithy/protocol-http': 5.0.1 - '@smithy/signature-v4': 5.0.1 - '@smithy/types': 4.1.0 + '@smithy/protocol-http': 5.1.0 + '@smithy/signature-v4': 5.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@aws-sdk/token-providers@3.734.0(aws-crt@1.25.3)': dependencies: '@aws-sdk/nested-clients': 3.734.0(aws-crt@1.25.3) '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/property-provider': 4.0.2 + '@smithy/shared-ini-file-loader': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt '@aws-sdk/types@3.734.0': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@aws-sdk/util-arn-parser@3.723.0': @@ -14926,15 +14785,15 @@ snapshots: '@aws-sdk/util-endpoints@3.734.0': dependencies: '@aws-sdk/types': 3.734.0 - '@smithy/types': 4.1.0 - '@smithy/util-endpoints': 3.0.1 + '@smithy/types': 4.2.0 + '@smithy/util-endpoints': 3.0.2 tslib: 2.8.1 '@aws-sdk/util-format-url@3.734.0': dependencies: '@aws-sdk/types': 3.734.0 - '@smithy/querystring-builder': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/querystring-builder': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@aws-sdk/util-locate-window@3.723.0': @@ -14944,7 +14803,7 @@ snapshots: '@aws-sdk/util-user-agent-browser@3.734.0': dependencies: '@aws-sdk/types': 3.734.0 - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 bowser: 2.11.0 tslib: 2.8.1 @@ -14952,8 +14811,8 @@ snapshots: dependencies: '@aws-sdk/middleware-user-agent': 3.734.0 '@aws-sdk/types': 3.734.0 - '@smithy/node-config-provider': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/node-config-provider': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 optionalDependencies: aws-crt: 1.25.3 @@ -14964,7 +14823,7 @@ snapshots: '@aws-sdk/xml-builder@3.734.0': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@azure/abort-controller@2.1.2': @@ -15044,8 +14903,8 @@ snapshots: '@azure/core-tracing': 1.2.0 '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 - '@azure/msal-browser': 4.7.0 - '@azure/msal-node': 3.3.0 + '@azure/msal-browser': 4.9.0 + '@azure/msal-node': 3.4.1 events: 3.3.0 jws: 4.0.0 open: 10.1.0 @@ -15093,25 +14952,25 @@ snapshots: '@azure/core-rest-pipeline': 1.19.1 '@azure/identity': 4.8.0 '@azure/logger': 1.1.4 - '@azure/storage-blob': 12.26.0 + '@azure/storage-blob': 12.27.0 '@playwright/test': 1.49.1 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@azure/msal-browser@4.7.0': + '@azure/msal-browser@4.9.0': dependencies: - '@azure/msal-common': 15.2.1 + '@azure/msal-common': 15.4.0 - '@azure/msal-common@15.2.1': {} + '@azure/msal-common@15.4.0': {} - '@azure/msal-node@3.3.0': + '@azure/msal-node@3.4.1': dependencies: - '@azure/msal-common': 15.2.1 + '@azure/msal-common': 15.4.0 jsonwebtoken: 9.0.2 uuid: 8.3.2 - '@azure/storage-blob@12.26.0': + '@azure/storage-blob@12.27.0': dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.9.0 @@ -15145,14 +15004,14 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.10 - '@babel/helper-compilation-targets': 7.26.5 + '@babel/generator': 7.27.0 + '@babel/helper-compilation-targets': 7.27.0 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helpers': 7.26.10 - '@babel/parser': 7.26.10 - '@babel/template': 7.26.9 - '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/helpers': 7.27.0 + '@babel/parser': 7.27.0 + '@babel/template': 7.27.0 + '@babel/traverse': 7.27.0 + '@babel/types': 7.27.0 convert-source-map: 2.0.0 debug: 4.4.0 gensync: 1.0.0-beta.2 @@ -15161,7 +15020,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.26.10(@babel/core@7.26.0)(eslint@8.57.0)': + '@babel/eslint-parser@7.27.0(@babel/core@7.26.0)(eslint@8.57.0)': dependencies: '@babel/core': 7.26.0 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 @@ -15169,14 +15028,6 @@ snapshots: eslint-visitor-keys: 2.1.0 semver: 6.3.1 - '@babel/generator@7.26.10': - dependencies: - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.1.0 - '@babel/generator@7.27.0': dependencies: '@babel/parser': 7.27.0 @@ -15187,15 +15038,7 @@ snapshots: '@babel/helper-annotate-as-pure@7.25.9': dependencies: - '@babel/types': 7.26.10 - - '@babel/helper-compilation-targets@7.26.5': - dependencies: - '@babel/compat-data': 7.26.8 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.4 - lru-cache: 5.1.1 - semver: 6.3.1 + '@babel/types': 7.27.0 '@babel/helper-compilation-targets@7.27.0': dependencies: @@ -15205,19 +15048,6 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.26.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.26.10 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-create-class-features-plugin@7.27.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -15231,13 +15061,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - regexpu-core: 6.2.0 - semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.27.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -15245,17 +15068,6 @@ snapshots: regexpu-core: 6.2.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 - debug: 4.4.0 - lodash.debounce: 4.0.8 - resolve: 1.22.10 - transitivePeerDependencies: - - supports-color - '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -15273,15 +15085,15 @@ snapshots: '@babel/helper-member-expression-to-functions@7.25.9': dependencies: - '@babel/traverse': 7.26.10 + '@babel/traverse': 7.27.0 '@babel/types': 7.27.0 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/traverse': 7.27.0 + '@babel/types': 7.27.0 transitivePeerDependencies: - supports-color @@ -15290,7 +15102,7 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-module-imports': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.10 + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color @@ -15305,7 +15117,7 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.26.10 + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color @@ -15314,13 +15126,13 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-member-expression-to-functions': 7.25.9 '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.26.10 + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.25.9': dependencies: - '@babel/traverse': 7.26.10 + '@babel/traverse': 7.27.0 '@babel/types': 7.27.0 transitivePeerDependencies: - supports-color @@ -15334,15 +15146,15 @@ snapshots: '@babel/helper-wrap-function@7.25.9': dependencies: '@babel/template': 7.27.0 - '@babel/traverse': 7.26.10 + '@babel/traverse': 7.27.0 '@babel/types': 7.27.0 transitivePeerDependencies: - supports-color - '@babel/helpers@7.26.10': + '@babel/helpers@7.27.0': dependencies: - '@babel/template': 7.26.9 - '@babel/types': 7.26.10 + '@babel/template': 7.27.0 + '@babel/types': 7.27.0 '@babel/highlight@7.25.9': dependencies: @@ -15351,10 +15163,6 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/parser@7.26.10': - dependencies: - '@babel/types': 7.26.10 - '@babel/parser@7.27.0': dependencies: '@babel/types': 7.27.0 @@ -15407,7 +15215,7 @@ snapshots: '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.0) + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color @@ -15415,7 +15223,7 @@ snapshots: '@babel/plugin-proposal-decorators@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.0) + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: @@ -15448,7 +15256,7 @@ snapshots: dependencies: '@babel/compat-data': 7.26.8 '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-compilation-targets': 7.27.0 '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0) '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) @@ -15598,7 +15406,7 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.26.10 + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color @@ -15616,11 +15424,6 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-block-scoping@7.27.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -15629,7 +15432,7 @@ snapshots: '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.0) + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color @@ -15646,10 +15449,10 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-compilation-targets': 7.27.0 '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.0) - '@babel/traverse': 7.26.10 + '@babel/traverse': 7.27.0 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -15714,9 +15517,9 @@ snapshots: '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-compilation-targets': 7.27.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.26.10 + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color @@ -15777,7 +15580,7 @@ snapshots: '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.0)': @@ -15798,7 +15601,7 @@ snapshots: '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-compilation-targets': 7.27.0 '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) @@ -15831,7 +15634,7 @@ snapshots: '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.0) + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color @@ -15840,7 +15643,7 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.0) + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color @@ -15879,7 +15682,7 @@ snapshots: '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 transitivePeerDependencies: - supports-color @@ -15889,12 +15692,6 @@ snapshots: '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.26.5 - regenerator-transform: 0.15.2 - '@babel/plugin-transform-regenerator@7.27.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -15917,9 +15714,9 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.26.5 - babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) + babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.26.0) babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.26.0) - babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) + babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.26.0) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -15952,11 +15749,11 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-typescript@7.26.8(@babel/core@7.26.0)': + '@babel/plugin-transform-typescript@7.27.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.0) + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) @@ -15977,7 +15774,7 @@ snapshots: '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.0)': @@ -16087,14 +15884,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.26.0(@babel/core@7.26.0)': + '@babel/preset-typescript@7.27.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-validator-option': 7.25.9 '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) - '@babel/plugin-transform-typescript': 7.26.8(@babel/core@7.26.0) + '@babel/plugin-transform-typescript': 7.27.0(@babel/core@7.26.0) transitivePeerDependencies: - supports-color @@ -16107,34 +15904,16 @@ snapshots: pirates: 4.0.6 source-map-support: 0.5.21 - '@babel/runtime@7.26.10': + '@babel/runtime@7.27.0': dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.26.9': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 - '@babel/template@7.27.0': dependencies: '@babel/code-frame': 7.26.2 '@babel/parser': 7.27.0 '@babel/types': 7.27.0 - '@babel/traverse@7.26.10': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.10 - '@babel/parser': 7.26.10 - '@babel/template': 7.26.9 - '@babel/types': 7.26.10 - debug: 4.4.0 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - '@babel/traverse@7.27.0': dependencies: '@babel/code-frame': 7.26.2 @@ -16147,11 +15926,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/types@7.26.10': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/types@7.27.0': dependencies: '@babel/helper-string-parser': 7.25.9 @@ -16788,7 +16562,7 @@ snapshots: '@expo/cli@0.22.11(encoding@0.1.13)': dependencies: '@0no-co/graphql.web': 1.1.2 - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.27.0 '@expo/code-signing-certificates': 0.0.5 '@expo/config': 10.0.11 '@expo/config-plugins': 9.0.17 @@ -16973,9 +16747,9 @@ snapshots: '@expo/metro-config@0.19.9': dependencies: '@babel/core': 7.26.0 - '@babel/generator': 7.26.10 - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 + '@babel/generator': 7.27.0 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 '@expo/config': 10.0.11 '@expo/env': 0.4.2 '@expo/json-file': 9.0.2 @@ -17081,29 +16855,29 @@ snapshots: '@floating-ui/utils@0.2.9': {} - '@formatjs/ecma402-abstract@2.3.3': + '@formatjs/ecma402-abstract@2.3.4': dependencies: - '@formatjs/fast-memoize': 2.2.6 - '@formatjs/intl-localematcher': 0.6.0 + '@formatjs/fast-memoize': 2.2.7 + '@formatjs/intl-localematcher': 0.6.1 decimal.js: 10.5.0 tslib: 2.8.1 - '@formatjs/fast-memoize@2.2.6': + '@formatjs/fast-memoize@2.2.7': dependencies: tslib: 2.8.1 - '@formatjs/icu-messageformat-parser@2.11.1': + '@formatjs/icu-messageformat-parser@2.11.2': dependencies: - '@formatjs/ecma402-abstract': 2.3.3 - '@formatjs/icu-skeleton-parser': 1.8.13 + '@formatjs/ecma402-abstract': 2.3.4 + '@formatjs/icu-skeleton-parser': 1.8.14 tslib: 2.8.1 - '@formatjs/icu-skeleton-parser@1.8.13': + '@formatjs/icu-skeleton-parser@1.8.14': dependencies: - '@formatjs/ecma402-abstract': 2.3.3 + '@formatjs/ecma402-abstract': 2.3.4 tslib: 2.8.1 - '@formatjs/intl-localematcher@0.6.0': + '@formatjs/intl-localematcher@0.6.1': dependencies: tslib: 2.8.1 @@ -17558,14 +17332,14 @@ snapshots: '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.27.0 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.27.0 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -17578,23 +17352,23 @@ snapshots: '@types/react': 19.0.1 react: 18.3.1 - '@microsoft/api-extractor-model@7.30.4(@types/node@22.10.2)': + '@microsoft/api-extractor-model@7.30.5(@types/node@22.10.2)': dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.12.0(@types/node@22.10.2) + '@rushstack/node-core-library': 5.13.0(@types/node@22.10.2) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.52.1(@types/node@22.10.2)': + '@microsoft/api-extractor@7.52.2(@types/node@22.10.2)': dependencies: - '@microsoft/api-extractor-model': 7.30.4(@types/node@22.10.2) + '@microsoft/api-extractor-model': 7.30.5(@types/node@22.10.2) '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.12.0(@types/node@22.10.2) + '@rushstack/node-core-library': 5.13.0(@types/node@22.10.2) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.15.1(@types/node@22.10.2) - '@rushstack/ts-command-line': 4.23.6(@types/node@22.10.2) + '@rushstack/terminal': 0.15.2(@types/node@22.10.2) + '@rushstack/ts-command-line': 4.23.7(@types/node@22.10.2) lodash: 4.17.21 minimatch: 3.0.8 resolve: 1.22.10 @@ -18164,7 +17938,7 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@pkgr/core@0.1.1': {} + '@pkgr/core@0.1.2': {} '@playwright/test@1.49.1': dependencies: @@ -19173,6 +18947,10 @@ snapshots: - supports-color - utf-8-validate + '@react-native-community/netinfo@11.4.1(react-native@0.74.5(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@types/react@18.3.1)(encoding@0.1.13)(react@18.3.1))': + dependencies: + react-native: 0.74.5(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@types/react@18.3.1)(encoding@0.1.13)(react@18.3.1) + '@react-native/assets-registry@0.74.87': {} '@react-native/assets-registry@0.76.6': {} @@ -19217,7 +18995,7 @@ snapshots: '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0) '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoping': 7.27.0(@babel/core@7.26.0) '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.0) @@ -19237,9 +19015,9 @@ snapshots: '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-typescript': 7.26.8(@babel/core@7.26.0) + '@babel/plugin-transform-typescript': 7.27.0(@babel/core@7.26.0) '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) - '@babel/template': 7.26.9 + '@babel/template': 7.27.0 '@react-native/babel-plugin-codegen': 0.74.87(@babel/preset-env@7.26.9(@babel/core@7.26.0)) babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.26.0) react-refresh: 0.14.2 @@ -19258,7 +19036,7 @@ snapshots: '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.0) '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoping': 7.27.0(@babel/core@7.26.0) '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0) @@ -19282,12 +19060,12 @@ snapshots: '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-regenerator': 7.27.0(@babel/core@7.26.0) '@babel/plugin-transform-runtime': 7.26.10(@babel/core@7.26.0) '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-typescript': 7.26.8(@babel/core@7.26.0) + '@babel/plugin-transform-typescript': 7.27.0(@babel/core@7.26.0) '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) '@babel/template': 7.27.0 '@react-native/babel-plugin-codegen': 0.76.6(@babel/preset-env@7.26.9(@babel/core@7.26.0)) @@ -19309,7 +19087,7 @@ snapshots: '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.0) '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoping': 7.27.0(@babel/core@7.26.0) '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0) @@ -19333,14 +19111,14 @@ snapshots: '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-regenerator': 7.27.0(@babel/core@7.26.0) '@babel/plugin-transform-runtime': 7.26.10(@babel/core@7.26.0) '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-typescript': 7.26.8(@babel/core@7.26.0) + '@babel/plugin-transform-typescript': 7.27.0(@babel/core@7.26.0) '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) - '@babel/template': 7.26.9 + '@babel/template': 7.27.0 '@react-native/babel-plugin-codegen': 0.76.7(@babel/preset-env@7.26.9(@babel/core@7.26.0)) babel-plugin-syntax-hermes-parser: 0.25.1 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.26.0) @@ -19351,7 +19129,7 @@ snapshots: '@react-native/codegen@0.74.87(@babel/preset-env@7.26.9(@babel/core@7.26.0))': dependencies: - '@babel/parser': 7.26.10 + '@babel/parser': 7.27.0 '@babel/preset-env': 7.26.9(@babel/core@7.26.0) glob: 7.2.3 hermes-parser: 0.19.1 @@ -19364,7 +19142,7 @@ snapshots: '@react-native/codegen@0.76.6(@babel/preset-env@7.26.9(@babel/core@7.26.0))': dependencies: - '@babel/parser': 7.26.10 + '@babel/parser': 7.27.0 '@babel/preset-env': 7.26.9(@babel/core@7.26.0) glob: 7.2.3 hermes-parser: 0.23.1 @@ -19419,9 +19197,9 @@ snapshots: chalk: 4.1.2 execa: 5.1.1 invariant: 2.2.4 - metro: 0.81.3 - metro-config: 0.81.3 - metro-core: 0.81.3 + metro: 0.81.4 + metro-config: 0.81.4 + metro-core: 0.81.4 node-fetch: 2.7.0(encoding@0.1.13) readline: 1.3.0 semver: 7.7.1 @@ -19560,7 +19338,7 @@ snapshots: '@rnx-kit/chromium-edge-launcher@1.0.0': dependencies: - '@types/node': 18.19.80 + '@types/node': 18.19.83 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -19596,7 +19374,7 @@ snapshots: '@rollup/pluginutils@5.1.4(rollup@3.29.5)': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: @@ -19604,126 +19382,69 @@ snapshots: '@rollup/pluginutils@5.1.4(rollup@4.37.0)': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: rollup: 4.37.0 - '@rollup/rollup-android-arm-eabi@4.36.0': - optional: true - '@rollup/rollup-android-arm-eabi@4.37.0': optional: true - '@rollup/rollup-android-arm64@4.36.0': - optional: true - '@rollup/rollup-android-arm64@4.37.0': optional: true - '@rollup/rollup-darwin-arm64@4.36.0': - optional: true - '@rollup/rollup-darwin-arm64@4.37.0': optional: true - '@rollup/rollup-darwin-x64@4.36.0': - optional: true - '@rollup/rollup-darwin-x64@4.37.0': optional: true - '@rollup/rollup-freebsd-arm64@4.36.0': - optional: true - '@rollup/rollup-freebsd-arm64@4.37.0': optional: true - '@rollup/rollup-freebsd-x64@4.36.0': - optional: true - '@rollup/rollup-freebsd-x64@4.37.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.36.0': - optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.37.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.36.0': - optional: true - '@rollup/rollup-linux-arm-musleabihf@4.37.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.36.0': - optional: true - '@rollup/rollup-linux-arm64-gnu@4.37.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.36.0': - optional: true - '@rollup/rollup-linux-arm64-musl@4.37.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.36.0': - optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.37.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.36.0': - optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.37.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.36.0': - optional: true - '@rollup/rollup-linux-riscv64-gnu@4.37.0': optional: true '@rollup/rollup-linux-riscv64-musl@4.37.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.36.0': - optional: true - '@rollup/rollup-linux-s390x-gnu@4.37.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.36.0': - optional: true - '@rollup/rollup-linux-x64-gnu@4.37.0': optional: true - '@rollup/rollup-linux-x64-musl@4.36.0': - optional: true - '@rollup/rollup-linux-x64-musl@4.37.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.36.0': - optional: true - '@rollup/rollup-win32-arm64-msvc@4.37.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.36.0': - optional: true - '@rollup/rollup-win32-ia32-msvc@4.37.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.36.0': - optional: true - '@rollup/rollup-win32-x64-msvc@4.37.0': optional: true @@ -19731,7 +19452,7 @@ snapshots: '@rushstack/eslint-patch@1.11.0': {} - '@rushstack/node-core-library@5.12.0(@types/node@22.10.2)': + '@rushstack/node-core-library@5.13.0(@types/node@22.10.2)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -19749,16 +19470,16 @@ snapshots: resolve: 1.22.10 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.15.1(@types/node@22.10.2)': + '@rushstack/terminal@0.15.2(@types/node@22.10.2)': dependencies: - '@rushstack/node-core-library': 5.12.0(@types/node@22.10.2) + '@rushstack/node-core-library': 5.13.0(@types/node@22.10.2) supports-color: 8.1.1 optionalDependencies: '@types/node': 22.10.2 - '@rushstack/ts-command-line@4.23.6(@types/node@22.10.2)': + '@rushstack/ts-command-line@4.23.7(@types/node@22.10.2)': dependencies: - '@rushstack/terminal': 0.15.1(@types/node@22.10.2) + '@rushstack/terminal': 0.15.2(@types/node@22.10.2) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -19979,9 +19700,9 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@smithy/abort-controller@4.0.1': + '@smithy/abort-controller@4.0.2': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@smithy/chunked-blob-reader-native@4.0.0': @@ -19993,94 +19714,94 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/config-resolver@4.0.1': + '@smithy/config-resolver@4.1.0': dependencies: - '@smithy/node-config-provider': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/node-config-provider': 4.0.2 + '@smithy/types': 4.2.0 '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.1 + '@smithy/util-middleware': 4.0.2 tslib: 2.8.1 - '@smithy/core@3.1.5': + '@smithy/core@3.2.0': dependencies: - '@smithy/middleware-serde': 4.0.2 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 + '@smithy/middleware-serde': 4.0.3 + '@smithy/protocol-http': 5.1.0 + '@smithy/types': 4.2.0 '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-stream': 4.1.2 + '@smithy/util-middleware': 4.0.2 + '@smithy/util-stream': 4.2.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@smithy/credential-provider-imds@4.0.1': + '@smithy/credential-provider-imds@4.0.2': dependencies: - '@smithy/node-config-provider': 4.0.1 - '@smithy/property-provider': 4.0.1 - '@smithy/types': 4.1.0 - '@smithy/url-parser': 4.0.1 + '@smithy/node-config-provider': 4.0.2 + '@smithy/property-provider': 4.0.2 + '@smithy/types': 4.2.0 + '@smithy/url-parser': 4.0.2 tslib: 2.8.1 - '@smithy/eventstream-codec@4.0.1': + '@smithy/eventstream-codec@4.0.2': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 '@smithy/util-hex-encoding': 4.0.0 tslib: 2.8.1 - '@smithy/eventstream-serde-browser@4.0.1': + '@smithy/eventstream-serde-browser@4.0.2': dependencies: - '@smithy/eventstream-serde-universal': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/eventstream-serde-universal': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 - '@smithy/eventstream-serde-config-resolver@4.0.1': + '@smithy/eventstream-serde-config-resolver@4.1.0': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 - '@smithy/eventstream-serde-node@4.0.1': + '@smithy/eventstream-serde-node@4.0.2': dependencies: - '@smithy/eventstream-serde-universal': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/eventstream-serde-universal': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 - '@smithy/eventstream-serde-universal@4.0.1': + '@smithy/eventstream-serde-universal@4.0.2': dependencies: - '@smithy/eventstream-codec': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/eventstream-codec': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 - '@smithy/fetch-http-handler@5.0.1': + '@smithy/fetch-http-handler@5.0.2': dependencies: - '@smithy/protocol-http': 5.0.1 - '@smithy/querystring-builder': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/protocol-http': 5.1.0 + '@smithy/querystring-builder': 4.0.2 + '@smithy/types': 4.2.0 '@smithy/util-base64': 4.0.0 tslib: 2.8.1 - '@smithy/hash-blob-browser@4.0.1': + '@smithy/hash-blob-browser@4.0.2': dependencies: '@smithy/chunked-blob-reader': 5.0.0 '@smithy/chunked-blob-reader-native': 4.0.0 - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 - '@smithy/hash-node@4.0.1': + '@smithy/hash-node@4.0.2': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 '@smithy/util-buffer-from': 4.0.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@smithy/hash-stream-node@4.0.1': + '@smithy/hash-stream-node@4.0.2': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@smithy/invalid-dependency@4.0.1': + '@smithy/invalid-dependency@4.0.2': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@smithy/is-array-buffer@2.2.0': @@ -20091,125 +19812,125 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/md5-js@4.0.1': + '@smithy/md5-js@4.0.2': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@smithy/middleware-content-length@4.0.1': + '@smithy/middleware-content-length@4.0.2': dependencies: - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 + '@smithy/protocol-http': 5.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 - '@smithy/middleware-endpoint@4.0.6': + '@smithy/middleware-endpoint@4.1.0': dependencies: - '@smithy/core': 3.1.5 - '@smithy/middleware-serde': 4.0.2 - '@smithy/node-config-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 - '@smithy/url-parser': 4.0.1 - '@smithy/util-middleware': 4.0.1 + '@smithy/core': 3.2.0 + '@smithy/middleware-serde': 4.0.3 + '@smithy/node-config-provider': 4.0.2 + '@smithy/shared-ini-file-loader': 4.0.2 + '@smithy/types': 4.2.0 + '@smithy/url-parser': 4.0.2 + '@smithy/util-middleware': 4.0.2 tslib: 2.8.1 - '@smithy/middleware-retry@4.0.7': + '@smithy/middleware-retry@4.1.0': dependencies: - '@smithy/node-config-provider': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/service-error-classification': 4.0.1 - '@smithy/smithy-client': 4.1.6 - '@smithy/types': 4.1.0 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-retry': 4.0.1 + '@smithy/node-config-provider': 4.0.2 + '@smithy/protocol-http': 5.1.0 + '@smithy/service-error-classification': 4.0.2 + '@smithy/smithy-client': 4.2.0 + '@smithy/types': 4.2.0 + '@smithy/util-middleware': 4.0.2 + '@smithy/util-retry': 4.0.2 tslib: 2.8.1 uuid: 9.0.1 - '@smithy/middleware-serde@4.0.2': + '@smithy/middleware-serde@4.0.3': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 - '@smithy/middleware-stack@4.0.1': + '@smithy/middleware-stack@4.0.2': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 - '@smithy/node-config-provider@4.0.1': + '@smithy/node-config-provider@4.0.2': dependencies: - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/property-provider': 4.0.2 + '@smithy/shared-ini-file-loader': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 - '@smithy/node-http-handler@4.0.3': + '@smithy/node-http-handler@4.0.4': dependencies: - '@smithy/abort-controller': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/querystring-builder': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/abort-controller': 4.0.2 + '@smithy/protocol-http': 5.1.0 + '@smithy/querystring-builder': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 - '@smithy/property-provider@4.0.1': + '@smithy/property-provider@4.0.2': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 - '@smithy/protocol-http@5.0.1': + '@smithy/protocol-http@5.1.0': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 - '@smithy/querystring-builder@4.0.1': + '@smithy/querystring-builder@4.0.2': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 '@smithy/util-uri-escape': 4.0.0 tslib: 2.8.1 - '@smithy/querystring-parser@4.0.1': + '@smithy/querystring-parser@4.0.2': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 - '@smithy/service-error-classification@4.0.1': + '@smithy/service-error-classification@4.0.2': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 - '@smithy/shared-ini-file-loader@4.0.1': + '@smithy/shared-ini-file-loader@4.0.2': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 - '@smithy/signature-v4@5.0.1': + '@smithy/signature-v4@5.0.2': dependencies: '@smithy/is-array-buffer': 4.0.0 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 + '@smithy/protocol-http': 5.1.0 + '@smithy/types': 4.2.0 '@smithy/util-hex-encoding': 4.0.0 - '@smithy/util-middleware': 4.0.1 + '@smithy/util-middleware': 4.0.2 '@smithy/util-uri-escape': 4.0.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@smithy/smithy-client@4.1.6': + '@smithy/smithy-client@4.2.0': dependencies: - '@smithy/core': 3.1.5 - '@smithy/middleware-endpoint': 4.0.6 - '@smithy/middleware-stack': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 - '@smithy/util-stream': 4.1.2 + '@smithy/core': 3.2.0 + '@smithy/middleware-endpoint': 4.1.0 + '@smithy/middleware-stack': 4.0.2 + '@smithy/protocol-http': 5.1.0 + '@smithy/types': 4.2.0 + '@smithy/util-stream': 4.2.0 tslib: 2.8.1 - '@smithy/types@4.1.0': + '@smithy/types@4.2.0': dependencies: tslib: 2.8.1 - '@smithy/url-parser@4.0.1': + '@smithy/url-parser@4.0.2': dependencies: - '@smithy/querystring-parser': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/querystring-parser': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@smithy/util-base64@4.0.0': @@ -20240,50 +19961,50 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@4.0.7': + '@smithy/util-defaults-mode-browser@4.0.8': dependencies: - '@smithy/property-provider': 4.0.1 - '@smithy/smithy-client': 4.1.6 - '@smithy/types': 4.1.0 + '@smithy/property-provider': 4.0.2 + '@smithy/smithy-client': 4.2.0 + '@smithy/types': 4.2.0 bowser: 2.11.0 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@4.0.7': + '@smithy/util-defaults-mode-node@4.0.8': dependencies: - '@smithy/config-resolver': 4.0.1 - '@smithy/credential-provider-imds': 4.0.1 - '@smithy/node-config-provider': 4.0.1 - '@smithy/property-provider': 4.0.1 - '@smithy/smithy-client': 4.1.6 - '@smithy/types': 4.1.0 + '@smithy/config-resolver': 4.1.0 + '@smithy/credential-provider-imds': 4.0.2 + '@smithy/node-config-provider': 4.0.2 + '@smithy/property-provider': 4.0.2 + '@smithy/smithy-client': 4.2.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 - '@smithy/util-endpoints@3.0.1': + '@smithy/util-endpoints@3.0.2': dependencies: - '@smithy/node-config-provider': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/node-config-provider': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@smithy/util-hex-encoding@4.0.0': dependencies: tslib: 2.8.1 - '@smithy/util-middleware@4.0.1': + '@smithy/util-middleware@4.0.2': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 4.2.0 tslib: 2.8.1 - '@smithy/util-retry@4.0.1': + '@smithy/util-retry@4.0.2': dependencies: - '@smithy/service-error-classification': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/service-error-classification': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 - '@smithy/util-stream@4.1.2': + '@smithy/util-stream@4.2.0': dependencies: - '@smithy/fetch-http-handler': 5.0.1 - '@smithy/node-http-handler': 4.0.3 - '@smithy/types': 4.1.0 + '@smithy/fetch-http-handler': 5.0.2 + '@smithy/node-http-handler': 4.0.4 + '@smithy/types': 4.2.0 '@smithy/util-base64': 4.0.0 '@smithy/util-buffer-from': 4.0.0 '@smithy/util-hex-encoding': 4.0.0 @@ -20304,10 +20025,10 @@ snapshots: '@smithy/util-buffer-from': 4.0.0 tslib: 2.8.1 - '@smithy/util-waiter@4.0.2': + '@smithy/util-waiter@4.0.3': dependencies: - '@smithy/abort-controller': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/abort-controller': 4.0.2 + '@smithy/types': 4.2.0 tslib: 2.8.1 '@sqltools/formatter@1.2.5': {} @@ -20618,7 +20339,7 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.26.2 - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.27.0 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -20648,7 +20369,7 @@ snapshots: '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.27.0 '@testing-library/dom': 10.4.0 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -20697,10 +20418,10 @@ snapshots: '@trivago/prettier-plugin-sort-imports@5.2.0(prettier@3.4.2)': dependencies: - '@babel/generator': 7.26.10 - '@babel/parser': 7.26.10 - '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/generator': 7.27.0 + '@babel/parser': 7.27.0 + '@babel/traverse': 7.27.0 + '@babel/types': 7.27.0 javascript-natural-sort: 0.7.1 lodash: 4.17.21 prettier: 3.4.2 @@ -20726,24 +20447,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 '@types/bcryptjs@2.4.6': {} @@ -20770,7 +20491,7 @@ snapshots: '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@types/eslint@9.6.1': dependencies: @@ -20852,7 +20573,7 @@ snapshots: '@types/node@12.20.55': {} - '@types/node@18.19.80': + '@types/node@18.19.83': dependencies: undici-types: 5.26.5 @@ -21039,10 +20760,10 @@ snapshots: '@typescript-eslint/types': 8.18.0 '@typescript-eslint/visitor-keys': 8.18.0 - '@typescript-eslint/scope-manager@8.26.1': + '@typescript-eslint/scope-manager@8.28.0': dependencies: - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/visitor-keys': 8.26.1 + '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/visitor-keys': 8.28.0 '@typescript-eslint/type-utils@7.18.0(eslint@8.57.0)(typescript@5.8.2)': dependencies: @@ -21073,7 +20794,7 @@ snapshots: '@typescript-eslint/types@8.18.0': {} - '@typescript-eslint/types@8.26.1': {} + '@typescript-eslint/types@8.28.0': {} '@typescript-eslint/typescript-estree@5.62.0(typescript@5.8.2)': dependencies: @@ -21118,16 +20839,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.26.1(typescript@5.8.2)': + '@typescript-eslint/typescript-estree@8.28.0(typescript@5.8.2)': dependencies: - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/visitor-keys': 8.26.1 + '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/visitor-keys': 8.28.0 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.8.2) + ts-api-utils: 2.1.0(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -21169,12 +20890,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.26.1(eslint@8.57.0)(typescript@5.8.2)': + '@typescript-eslint/utils@8.28.0(eslint@8.57.0)(typescript@5.8.2)': dependencies: '@eslint-community/eslint-utils': 4.5.1(eslint@8.57.0) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.28.0 + '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) eslint: 8.57.0 typescript: 5.8.2 transitivePeerDependencies: @@ -21195,9 +20916,9 @@ snapshots: '@typescript-eslint/types': 8.18.0 eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.26.1': + '@typescript-eslint/visitor-keys@8.28.0': dependencies: - '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/types': 8.28.0 eslint-visitor-keys: 4.2.0 '@ungap/structured-clone@1.3.0': {} @@ -21219,39 +20940,51 @@ snapshots: '@unkey/error': 0.2.0 zod: 3.24.1 - '@unrs/rspack-resolver-binding-darwin-arm64@1.2.1': + '@unrs/rspack-resolver-binding-darwin-arm64@1.3.0': optional: true - '@unrs/rspack-resolver-binding-darwin-x64@1.2.1': + '@unrs/rspack-resolver-binding-darwin-x64@1.3.0': optional: true - '@unrs/rspack-resolver-binding-freebsd-x64@1.2.1': + '@unrs/rspack-resolver-binding-freebsd-x64@1.3.0': optional: true - '@unrs/rspack-resolver-binding-linux-arm-gnueabihf@1.2.1': + '@unrs/rspack-resolver-binding-linux-arm-gnueabihf@1.3.0': optional: true - '@unrs/rspack-resolver-binding-linux-arm64-gnu@1.2.1': + '@unrs/rspack-resolver-binding-linux-arm-musleabihf@1.3.0': optional: true - '@unrs/rspack-resolver-binding-linux-arm64-musl@1.2.1': + '@unrs/rspack-resolver-binding-linux-arm64-gnu@1.3.0': optional: true - '@unrs/rspack-resolver-binding-linux-x64-gnu@1.2.1': + '@unrs/rspack-resolver-binding-linux-arm64-musl@1.3.0': optional: true - '@unrs/rspack-resolver-binding-linux-x64-musl@1.2.1': + '@unrs/rspack-resolver-binding-linux-ppc64-gnu@1.3.0': optional: true - '@unrs/rspack-resolver-binding-wasm32-wasi@1.2.1': + '@unrs/rspack-resolver-binding-linux-s390x-gnu@1.3.0': + optional: true + + '@unrs/rspack-resolver-binding-linux-x64-gnu@1.3.0': + optional: true + + '@unrs/rspack-resolver-binding-linux-x64-musl@1.3.0': + optional: true + + '@unrs/rspack-resolver-binding-wasm32-wasi@1.3.0': dependencies: '@napi-rs/wasm-runtime': 0.2.7 optional: true - '@unrs/rspack-resolver-binding-win32-arm64-msvc@1.2.1': + '@unrs/rspack-resolver-binding-win32-arm64-msvc@1.3.0': optional: true - '@unrs/rspack-resolver-binding-win32-x64-msvc@1.2.1': + '@unrs/rspack-resolver-binding-win32-ia32-msvc@1.3.0': + optional: true + + '@unrs/rspack-resolver-binding-win32-x64-msvc@1.3.0': optional: true '@urql/core@5.1.1': @@ -21294,7 +21027,7 @@ snapshots: '@vercel/style-guide@6.0.0(@next/eslint-plugin-next@15.1.0)(eslint@8.57.0)(prettier@3.4.2)(typescript@5.8.2)(vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.0 - '@babel/eslint-parser': 7.26.10(@babel/core@7.26.0)(eslint@8.57.0) + '@babel/eslint-parser': 7.27.0(@babel/core@7.26.0)(eslint@8.57.0) '@rushstack/eslint-patch': 1.11.0 '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.8.2) @@ -21590,7 +21323,7 @@ snapshots: '@vue/compiler-core@3.5.13': dependencies: - '@babel/parser': 7.26.10 + '@babel/parser': 7.27.0 '@vue/shared': 3.5.13 entities: 4.5.0 estree-walker: 2.0.2 @@ -22058,7 +21791,7 @@ snapshots: autoprefixer@10.4.20(postcss@8.4.49): dependencies: browserslist: 4.24.4 - caniuse-lite: 1.0.30001706 + caniuse-lite: 1.0.30001707 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -22073,7 +21806,7 @@ snapshots: dependencies: '@aws-sdk/util-utf8-browser': 3.259.0 '@httptoolkit/websocket-stream': 6.0.1 - axios: 1.8.3 + axios: 1.8.4 buffer: 6.0.3 crypto-js: 4.2.0 mqtt: 4.3.8 @@ -22096,7 +21829,7 @@ snapshots: transitivePeerDependencies: - debug - axios@1.8.3: + axios@1.8.4: dependencies: follow-redirects: 1.15.9 form-data: 4.0.2 @@ -22140,15 +21873,6 @@ snapshots: '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 - babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0): - dependencies: - '@babel/compat-data': 7.26.8 - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.26.0): dependencies: '@babel/compat-data': 7.26.8 @@ -22161,18 +21885,11 @@ snapshots: babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.26.0): dependencies: '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.26.0) core-js-compat: 3.41.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.0): - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.26.0): dependencies: '@babel/core': 7.26.0 @@ -22226,7 +21943,7 @@ snapshots: '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) '@babel/preset-react': 7.26.3(@babel/core@7.26.0) - '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) + '@babel/preset-typescript': 7.27.0(@babel/core@7.26.0) '@react-native/babel-preset': 0.76.7(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0)) babel-plugin-react-native-web: 0.19.13 react-refresh: 0.14.2 @@ -22391,8 +22108,8 @@ snapshots: browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001706 - electron-to-chromium: 1.5.120 + caniuse-lite: 1.0.30001707 + electron-to-chromium: 1.5.123 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.4) @@ -22530,7 +22247,7 @@ snapshots: camelize@1.0.1: {} - caniuse-lite@1.0.30001706: {} + caniuse-lite@1.0.30001707: {} ccount@2.0.1: {} @@ -23310,7 +23027,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.120: {} + electron-to-chromium@1.5.123: {} elliptic@6.6.1: dependencies: @@ -23654,7 +23371,7 @@ snapshots: eslint: 8.57.0 get-tsconfig: 4.10.0 is-bun-module: 1.3.0 - rspack-resolver: 1.2.1 + rspack-resolver: 1.3.0 stable-hash: 0.0.5 tinyglobby: 0.2.12 optionalDependencies: @@ -23692,7 +23409,7 @@ snapshots: eslint-plugin-i18n-json@4.0.0(eslint@8.57.0): dependencies: - '@formatjs/icu-messageformat-parser': 2.11.1 + '@formatjs/icu-messageformat-parser': 2.11.2 chalk: 2.4.2 eslint: 8.57.0 indent-string: 3.2.0 @@ -23837,7 +23554,7 @@ snapshots: eslint-plugin-storybook@0.11.1(eslint@8.57.0)(typescript@5.8.2): dependencies: '@storybook/csf': 0.1.13 - '@typescript-eslint/utils': 8.26.1(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.28.0(eslint@8.57.0)(typescript@5.8.2) eslint: 8.57.0 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -24039,7 +23756,7 @@ snapshots: expect-type@1.2.0: {} - expo-asset@11.0.4(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1): + expo-asset@11.0.5(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1): dependencies: '@expo/image-utils': 0.6.5 expo: 52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) @@ -24060,7 +23777,7 @@ snapshots: transitivePeerDependencies: - supports-color - expo-file-system@18.0.11(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1)): + expo-file-system@18.0.12(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1)): dependencies: expo: 52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) react-native: 0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1) @@ -24099,7 +23816,7 @@ snapshots: expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.27.0 '@expo/cli': 0.22.11(encoding@0.1.13) '@expo/config': 10.0.11 '@expo/config-plugins': 9.0.17 @@ -24107,9 +23824,9 @@ snapshots: '@expo/metro-config': 0.19.9 '@expo/vector-icons': 14.0.4 babel-preset-expo: 12.0.9(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0)) - expo-asset: 11.0.4(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) + expo-asset: 11.0.5(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) expo-constants: 17.0.8(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1)) - expo-file-system: 18.0.11(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1)) + expo-file-system: 18.0.12(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1)) expo-font: 13.0.4(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react@18.3.1) expo-keep-awake: 14.0.3(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react@18.3.1) expo-modules-autolinking: 2.0.7 @@ -24708,7 +24425,7 @@ snapshots: hast-util-to-jsx-runtime@2.3.6: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@types/hast': 3.0.4 '@types/unist': 3.0.3 comma-separated-tokens: 2.0.3 @@ -25424,14 +25141,14 @@ snapshots: jscodeshift@0.14.0(@babel/preset-env@7.26.9(@babel/core@7.26.0)): dependencies: '@babel/core': 7.26.0 - '@babel/parser': 7.26.10 + '@babel/parser': 7.27.0 '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.26.0) '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.26.0) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.26.0) '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) '@babel/preset-env': 7.26.9(@babel/core@7.26.0) '@babel/preset-flow': 7.25.9(@babel/core@7.26.0) - '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) + '@babel/preset-typescript': 7.27.0(@babel/core@7.26.0) '@babel/register': 7.25.9(@babel/core@7.26.0) babel-core: 7.0.0-bridge.0(@babel/core@7.26.0) chalk: 4.1.2 @@ -25855,8 +25572,8 @@ snapshots: magicast@0.3.5: dependencies: - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 source-map-js: 1.2.1 make-dir@2.1.0: @@ -26068,7 +25785,7 @@ snapshots: transitivePeerDependencies: - supports-color - metro-babel-transformer@0.81.3: + metro-babel-transformer@0.81.4: dependencies: '@babel/core': 7.26.0 flow-enums-runtime: 0.0.6 @@ -26081,7 +25798,7 @@ snapshots: dependencies: flow-enums-runtime: 0.0.6 - metro-cache-key@0.81.3: + metro-cache-key@0.81.4: dependencies: flow-enums-runtime: 0.0.6 @@ -26091,11 +25808,11 @@ snapshots: flow-enums-runtime: 0.0.6 metro-core: 0.80.12 - metro-cache@0.81.3: + metro-cache@0.81.4: dependencies: exponential-backoff: 3.1.2 flow-enums-runtime: 0.0.6 - metro-core: 0.81.3 + metro-core: 0.81.4 metro-config@0.80.12: dependencies: @@ -26112,16 +25829,16 @@ snapshots: - supports-color - utf-8-validate - metro-config@0.81.3: + metro-config@0.81.4: dependencies: connect: 3.7.0 cosmiconfig: 5.2.1 flow-enums-runtime: 0.0.6 jest-validate: 29.7.0 - metro: 0.81.3 - metro-cache: 0.81.3 - metro-core: 0.81.3 - metro-runtime: 0.81.3 + metro: 0.81.4 + metro-cache: 0.81.4 + metro-core: 0.81.4 + metro-runtime: 0.81.4 transitivePeerDependencies: - bufferutil - supports-color @@ -26133,11 +25850,11 @@ snapshots: lodash.throttle: 4.1.1 metro-resolver: 0.80.12 - metro-core@0.81.3: + metro-core@0.81.4: dependencies: flow-enums-runtime: 0.0.6 lodash.throttle: 4.1.1 - metro-resolver: 0.81.3 + metro-resolver: 0.81.4 metro-file-map@0.80.12: dependencies: @@ -26157,7 +25874,7 @@ snapshots: transitivePeerDependencies: - supports-color - metro-file-map@0.81.3: + metro-file-map@0.81.4: dependencies: debug: 2.6.9 fb-watchman: 2.0.2 @@ -26176,7 +25893,7 @@ snapshots: flow-enums-runtime: 0.0.6 terser: 5.37.0 - metro-minify-terser@0.81.3: + metro-minify-terser@0.81.4: dependencies: flow-enums-runtime: 0.0.6 terser: 5.37.0 @@ -26185,24 +25902,24 @@ snapshots: dependencies: flow-enums-runtime: 0.0.6 - metro-resolver@0.81.3: + metro-resolver@0.81.4: dependencies: flow-enums-runtime: 0.0.6 metro-runtime@0.80.12: dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.27.0 flow-enums-runtime: 0.0.6 - metro-runtime@0.81.3: + metro-runtime@0.81.4: dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.27.0 flow-enums-runtime: 0.0.6 metro-source-map@0.80.12: dependencies: - '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/traverse': 7.27.0 + '@babel/types': 7.27.0 flow-enums-runtime: 0.0.6 invariant: 2.2.4 metro-symbolicate: 0.80.12 @@ -26213,16 +25930,16 @@ snapshots: transitivePeerDependencies: - supports-color - metro-source-map@0.81.3: + metro-source-map@0.81.4: dependencies: - '@babel/traverse': 7.26.10 + '@babel/traverse': 7.27.0 '@babel/traverse--for-generate-function-map': '@babel/traverse@7.27.0' - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 flow-enums-runtime: 0.0.6 invariant: 2.2.4 - metro-symbolicate: 0.81.3 + metro-symbolicate: 0.81.4 nullthrows: 1.1.1 - ob1: 0.81.3 + ob1: 0.81.4 source-map: 0.5.7 vlq: 1.0.1 transitivePeerDependencies: @@ -26240,11 +25957,11 @@ snapshots: transitivePeerDependencies: - supports-color - metro-symbolicate@0.81.3: + metro-symbolicate@0.81.4: dependencies: flow-enums-runtime: 0.0.6 invariant: 2.2.4 - metro-source-map: 0.81.3 + metro-source-map: 0.81.4 nullthrows: 1.1.1 source-map: 0.5.7 vlq: 1.0.1 @@ -26254,20 +25971,20 @@ snapshots: metro-transform-plugins@0.80.12: dependencies: '@babel/core': 7.26.0 - '@babel/generator': 7.26.10 - '@babel/template': 7.26.9 - '@babel/traverse': 7.26.10 + '@babel/generator': 7.27.0 + '@babel/template': 7.27.0 + '@babel/traverse': 7.27.0 flow-enums-runtime: 0.0.6 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color - metro-transform-plugins@0.81.3: + metro-transform-plugins@0.81.4: dependencies: '@babel/core': 7.26.0 '@babel/generator': 7.27.0 '@babel/template': 7.27.0 - '@babel/traverse': 7.26.10 + '@babel/traverse': 7.27.0 flow-enums-runtime: 0.0.6 nullthrows: 1.1.1 transitivePeerDependencies: @@ -26276,9 +25993,9 @@ snapshots: metro-transform-worker@0.80.12: dependencies: '@babel/core': 7.26.0 - '@babel/generator': 7.26.10 - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 + '@babel/generator': 7.27.0 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 flow-enums-runtime: 0.0.6 metro: 0.80.12 metro-babel-transformer: 0.80.12 @@ -26293,20 +26010,20 @@ snapshots: - supports-color - utf-8-validate - metro-transform-worker@0.81.3: + metro-transform-worker@0.81.4: dependencies: '@babel/core': 7.26.0 '@babel/generator': 7.27.0 '@babel/parser': 7.27.0 '@babel/types': 7.27.0 flow-enums-runtime: 0.0.6 - metro: 0.81.3 - metro-babel-transformer: 0.81.3 - metro-cache: 0.81.3 - metro-cache-key: 0.81.3 - metro-minify-terser: 0.81.3 - metro-source-map: 0.81.3 - metro-transform-plugins: 0.81.3 + metro: 0.81.4 + metro-babel-transformer: 0.81.4 + metro-cache: 0.81.4 + metro-cache-key: 0.81.4 + metro-minify-terser: 0.81.4 + metro-source-map: 0.81.4 + metro-transform-plugins: 0.81.4 nullthrows: 1.1.1 transitivePeerDependencies: - bufferutil @@ -26317,11 +26034,11 @@ snapshots: dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.26.0 - '@babel/generator': 7.26.10 - '@babel/parser': 7.26.10 - '@babel/template': 7.26.9 - '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/generator': 7.27.0 + '@babel/parser': 7.27.0 + '@babel/template': 7.27.0 + '@babel/traverse': 7.27.0 + '@babel/types': 7.27.0 accepts: 1.3.8 chalk: 4.1.2 ci-info: 2.0.0 @@ -26362,15 +26079,15 @@ snapshots: - supports-color - utf-8-validate - metro@0.81.3: + metro@0.81.4: dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.26.0 - '@babel/generator': 7.26.10 - '@babel/parser': 7.26.10 - '@babel/template': 7.26.9 - '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/generator': 7.27.0 + '@babel/parser': 7.27.0 + '@babel/template': 7.27.0 + '@babel/traverse': 7.27.0 + '@babel/types': 7.27.0 accepts: 1.3.8 chalk: 4.1.2 ci-info: 2.0.0 @@ -26385,18 +26102,18 @@ snapshots: jest-worker: 29.7.0 jsc-safe-url: 0.2.4 lodash.throttle: 4.1.1 - metro-babel-transformer: 0.81.3 - metro-cache: 0.81.3 - metro-cache-key: 0.81.3 - metro-config: 0.81.3 - metro-core: 0.81.3 - metro-file-map: 0.81.3 - metro-resolver: 0.81.3 - metro-runtime: 0.81.3 - metro-source-map: 0.81.3 - metro-symbolicate: 0.81.3 - metro-transform-plugins: 0.81.3 - metro-transform-worker: 0.81.3 + metro-babel-transformer: 0.81.4 + metro-cache: 0.81.4 + metro-cache-key: 0.81.4 + metro-config: 0.81.4 + metro-core: 0.81.4 + metro-file-map: 0.81.4 + metro-resolver: 0.81.4 + metro-runtime: 0.81.4 + metro-source-map: 0.81.4 + metro-symbolicate: 0.81.4 + metro-transform-plugins: 0.81.4 + metro-transform-worker: 0.81.4 mime-types: 2.1.35 nullthrows: 1.1.1 serialize-error: 2.1.0 @@ -26803,8 +26520,6 @@ snapshots: stacktrace-js: 2.0.2 stylis: 4.3.6 - nanoid@3.3.10: {} - nanoid@3.3.11: {} nanoid@5.0.9: {} @@ -26827,7 +26542,7 @@ snapshots: next-auth@4.24.11(next@15.2.3(@opentelemetry/api@1.9.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nodemailer@6.9.16)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.27.0 '@panva/hkdf': 1.2.1 cookie: 0.7.2 jose: 4.15.9 @@ -26856,7 +26571,7 @@ snapshots: '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001706 + caniuse-lite: 1.0.30001707 postcss: 8.4.31 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -27060,7 +26775,7 @@ snapshots: dependencies: flow-enums-runtime: 0.0.6 - ob1@0.81.3: + ob1@0.81.4: dependencies: flow-enums-runtime: 0.0.6 @@ -27288,7 +27003,7 @@ snapshots: package-manager-detector@0.2.11: dependencies: - quansync: 0.2.8 + quansync: 0.2.10 pako@0.2.9: {} @@ -27549,7 +27264,7 @@ snapshots: polished@4.3.1: dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.27.0 possible-typed-array-names@1.1.0: {} @@ -27607,7 +27322,7 @@ snapshots: postcss@8.4.49: dependencies: - nanoid: 3.3.10 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -27636,7 +27351,7 @@ snapshots: posthog-node@4.4.1: dependencies: - axios: 1.8.3 + axios: 1.8.4 transitivePeerDependencies: - debug @@ -27835,7 +27550,7 @@ snapshots: dependencies: side-channel: 1.1.0 - quansync@0.2.8: {} + quansync@0.2.10: {} querystring-es3@0.2.1: {} @@ -27927,8 +27642,8 @@ snapshots: react-docgen@7.1.1: dependencies: '@babel/core': 7.26.0 - '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/traverse': 7.27.0 + '@babel/types': 7.27.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 '@types/doctrine': 0.0.9 @@ -27952,7 +27667,7 @@ snapshots: react-error-boundary@3.1.4(react@19.0.0): dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.27.0 react: 19.0.0 react-fit@2.0.1(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): @@ -28092,8 +27807,8 @@ snapshots: jest-environment-node: 29.7.0 jsc-android: 250231.0.0 memoize-one: 5.2.1 - metro-runtime: 0.81.3 - metro-source-map: 0.81.3 + metro-runtime: 0.81.4 + metro-source-map: 0.81.4 mkdirp: 0.5.6 nullthrows: 1.1.1 pretty-format: 29.7.0 @@ -28315,7 +28030,7 @@ snapshots: regenerator-transform@0.15.2: dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.27.0 regexp-tree@0.1.27: {} @@ -28492,31 +28207,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.36.0: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.36.0 - '@rollup/rollup-android-arm64': 4.36.0 - '@rollup/rollup-darwin-arm64': 4.36.0 - '@rollup/rollup-darwin-x64': 4.36.0 - '@rollup/rollup-freebsd-arm64': 4.36.0 - '@rollup/rollup-freebsd-x64': 4.36.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.36.0 - '@rollup/rollup-linux-arm-musleabihf': 4.36.0 - '@rollup/rollup-linux-arm64-gnu': 4.36.0 - '@rollup/rollup-linux-arm64-musl': 4.36.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.36.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.36.0 - '@rollup/rollup-linux-riscv64-gnu': 4.36.0 - '@rollup/rollup-linux-s390x-gnu': 4.36.0 - '@rollup/rollup-linux-x64-gnu': 4.36.0 - '@rollup/rollup-linux-x64-musl': 4.36.0 - '@rollup/rollup-win32-arm64-msvc': 4.36.0 - '@rollup/rollup-win32-ia32-msvc': 4.36.0 - '@rollup/rollup-win32-x64-msvc': 4.36.0 - fsevents: 2.3.3 - rollup@4.37.0: dependencies: '@types/estree': 1.0.6 @@ -28547,23 +28237,27 @@ snapshots: rrweb-cssom@0.8.0: {} - rspack-resolver@1.2.1: + rspack-resolver@1.3.0: optionalDependencies: - '@unrs/rspack-resolver-binding-darwin-arm64': 1.2.1 - '@unrs/rspack-resolver-binding-darwin-x64': 1.2.1 - '@unrs/rspack-resolver-binding-freebsd-x64': 1.2.1 - '@unrs/rspack-resolver-binding-linux-arm-gnueabihf': 1.2.1 - '@unrs/rspack-resolver-binding-linux-arm64-gnu': 1.2.1 - '@unrs/rspack-resolver-binding-linux-arm64-musl': 1.2.1 - '@unrs/rspack-resolver-binding-linux-x64-gnu': 1.2.1 - '@unrs/rspack-resolver-binding-linux-x64-musl': 1.2.1 - '@unrs/rspack-resolver-binding-wasm32-wasi': 1.2.1 - '@unrs/rspack-resolver-binding-win32-arm64-msvc': 1.2.1 - '@unrs/rspack-resolver-binding-win32-x64-msvc': 1.2.1 + '@unrs/rspack-resolver-binding-darwin-arm64': 1.3.0 + '@unrs/rspack-resolver-binding-darwin-x64': 1.3.0 + '@unrs/rspack-resolver-binding-freebsd-x64': 1.3.0 + '@unrs/rspack-resolver-binding-linux-arm-gnueabihf': 1.3.0 + '@unrs/rspack-resolver-binding-linux-arm-musleabihf': 1.3.0 + '@unrs/rspack-resolver-binding-linux-arm64-gnu': 1.3.0 + '@unrs/rspack-resolver-binding-linux-arm64-musl': 1.3.0 + '@unrs/rspack-resolver-binding-linux-ppc64-gnu': 1.3.0 + '@unrs/rspack-resolver-binding-linux-s390x-gnu': 1.3.0 + '@unrs/rspack-resolver-binding-linux-x64-gnu': 1.3.0 + '@unrs/rspack-resolver-binding-linux-x64-musl': 1.3.0 + '@unrs/rspack-resolver-binding-wasm32-wasi': 1.3.0 + '@unrs/rspack-resolver-binding-win32-arm64-msvc': 1.3.0 + '@unrs/rspack-resolver-binding-win32-ia32-msvc': 1.3.0 + '@unrs/rspack-resolver-binding-win32-x64-msvc': 1.3.0 rtl-css-js@1.16.1: dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.27.0 run-applescript@7.0.0: {} @@ -29291,7 +28985,7 @@ snapshots: synckit@0.9.2: dependencies: - '@pkgr/core': 0.1.1 + '@pkgr/core': 0.1.2 tslib: 2.8.1 systeminformation@5.23.8: {} @@ -29491,11 +29185,11 @@ snapshots: tinyspy@3.0.2: {} - tldts-core@6.1.84: {} + tldts-core@6.1.85: {} - tldts@6.1.84: + tldts@6.1.85: dependencies: - tldts-core: 6.1.84 + tldts-core: 6.1.85 tmp@0.0.33: dependencies: @@ -29517,7 +29211,7 @@ snapshots: tough-cookie@5.1.2: dependencies: - tldts: 6.1.84 + tldts: 6.1.85 tr46@0.0.3: {} @@ -29539,7 +29233,7 @@ snapshots: dependencies: typescript: 5.8.2 - ts-api-utils@2.0.1(typescript@5.8.2): + ts-api-utils@2.1.0(typescript@5.8.2): dependencies: typescript: 5.8.2 @@ -29594,7 +29288,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.3.5(@microsoft/api-extractor@7.52.1(@types/node@22.10.2))(jiti@2.4.1)(postcss@8.5.3)(tsx@4.19.2)(typescript@5.8.2)(yaml@2.7.0): + tsup@8.3.5(@microsoft/api-extractor@7.52.2(@types/node@22.10.2))(jiti@2.4.1)(postcss@8.5.3)(tsx@4.19.2)(typescript@5.8.2)(yaml@2.7.0): dependencies: bundle-require: 5.1.0(esbuild@0.24.2) cac: 6.7.14 @@ -29606,14 +29300,14 @@ snapshots: picocolors: 1.1.1 postcss-load-config: 6.0.1(jiti@2.4.1)(postcss@8.5.3)(tsx@4.19.2)(yaml@2.7.0) resolve-from: 5.0.0 - rollup: 4.36.0 + rollup: 4.37.0 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 tinyglobby: 0.2.12 tree-kill: 1.2.2 optionalDependencies: - '@microsoft/api-extractor': 7.52.1(@types/node@22.10.2) + '@microsoft/api-extractor': 7.52.2(@types/node@22.10.2) postcss: 8.5.3 typescript: 5.8.2 transitivePeerDependencies: @@ -30049,7 +29743,7 @@ snapshots: vite-plugin-dts@4.3.0(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): dependencies: - '@microsoft/api-extractor': 7.52.1(@types/node@22.10.2) + '@microsoft/api-extractor': 7.52.2(@types/node@22.10.2) '@rollup/pluginutils': 5.1.4(rollup@4.37.0) '@volar/typescript': 2.4.12 '@vue/language-core': 2.1.6(typescript@5.8.2) @@ -30066,6 +29760,25 @@ snapshots: - rollup - supports-color + vite-plugin-dts@4.3.0(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): + dependencies: + '@microsoft/api-extractor': 7.52.2(@types/node@22.10.2) + '@rollup/pluginutils': 5.1.4(rollup@4.37.0) + '@volar/typescript': 2.4.12 + '@vue/language-core': 2.1.6(typescript@5.8.2) + compare-versions: 6.1.1 + debug: 4.4.0 + kolorist: 1.8.0 + local-pkg: 0.5.1 + magic-string: 0.30.17 + typescript: 5.8.2 + optionalDependencies: + vite: 6.2.3(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + vite-plugin-node-polyfills@0.22.0(rollup@4.37.0)(vite@6.0.12(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.27.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): dependencies: '@rollup/plugin-inject': 5.0.5(rollup@4.37.0) @@ -30355,7 +30068,7 @@ snapshots: webpack@5.97.1: dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 @@ -30663,7 +30376,7 @@ snapshots: dependencies: zod: 3.24.1 - zod-to-json-schema@3.24.4(zod@3.24.1): + zod-to-json-schema@3.24.5(zod@3.24.1): dependencies: zod: 3.24.1 From 5ff025543e64aa91b96c7ec5368e25347274bb03 Mon Sep 17 00:00:00 2001 From: Dhruwang Jariwala <67850763+Dhruwang@users.noreply.github.com> Date: Wed, 26 Mar 2025 11:12:30 +0530 Subject: [PATCH 11/22] fix: static ttf in link survey preview (#5054) --- apps/web/app/api/v1/og/route.tsx | 1 - apps/web/modules/survey/link/lib/survey.ts | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/web/app/api/v1/og/route.tsx b/apps/web/app/api/v1/og/route.tsx index 4b79654d98..bc8b17d5b7 100644 --- a/apps/web/app/api/v1/og/route.tsx +++ b/apps/web/app/api/v1/og/route.tsx @@ -29,7 +29,6 @@ export const GET = async (req: NextRequest) => {

{name}

- Complete in ~ 4 minutes
diff --git a/apps/web/modules/survey/link/lib/survey.ts b/apps/web/modules/survey/link/lib/survey.ts index 7a54acd089..1185de0151 100644 --- a/apps/web/modules/survey/link/lib/survey.ts +++ b/apps/web/modules/survey/link/lib/survey.ts @@ -32,7 +32,7 @@ export const getSurveyMetadata = reactCache(async (surveyId: string) => return survey; } catch (error) { if (error instanceof Prisma.PrismaClientKnownRequestError) { - logger.error(error, "Error getting survey metadata"); + logger.error(error); throw new DatabaseError(error.message); } throw error; From 3ba70122d569d49dc53b4304b1c83c5a3868c817 Mon Sep 17 00:00:00 2001 From: Johannes <72809645+jobenjada@users.noreply.github.com> Date: Wed, 26 Mar 2025 01:45:31 -0700 Subject: [PATCH 12/22] docs: update hidden field docs (#5067) --- .../general-features/hidden-fields.mdx | 20 +++---------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/docs/xm-and-surveys/surveys/general-features/hidden-fields.mdx b/docs/xm-and-surveys/surveys/general-features/hidden-fields.mdx index 061dfd5a5f..8f5832ef4d 100644 --- a/docs/xm-and-surveys/surveys/general-features/hidden-fields.mdx +++ b/docs/xm-and-surveys/surveys/general-features/hidden-fields.mdx @@ -20,9 +20,7 @@ icon: "eye-slash" ![Filled Hidden Fields](/images/xm-and-surveys/surveys/general-features/hidden-fields/filled-hidden-fields.webp) -## Set Hidden Field in Responses - -### Link Surveys +### Set Hidden Field in Link Surveys Single Hidden Field: @@ -36,20 +34,8 @@ Multiple Hidden Fields: sh https://formbricks.com/clin3dxja02k8l80hpwmx4bjy?screen=landing_page&job=Founder ``` -### App & Website Surveys - -For in-product surveys, you can set hidden fields in the response by adding them to the `formbricks.track` call: - - - ```JS action.js - formbricks.track("my event", { - hiddenFields: { - screen: "landing_page", - job: "Founder" - }, - }); - ``` - +### Website & App Surveys +We're reworking our approach to setting hidden fields in Website & App Surveys. ## View Hidden Fields in Responses From 709917eb8f288d094a6f1eb483c212f305f12ef2 Mon Sep 17 00:00:00 2001 From: Piyush Jain <122745947+d3vb0ox@users.noreply.github.com> Date: Wed, 26 Mar 2025 15:07:56 +0530 Subject: [PATCH 13/22] chore: fix OneLeet compliance and update self-hosting docs (#5045) Co-authored-by: Matthias Nannt --- docs/self-hosting/setup/kubernetes.mdx | 25 +-- helm-chart/templates/deployment.yaml | 2 +- helm-chart/templates/servicemonitor.yaml | 28 +++ helm-chart/values.yaml | 2 +- .../formbricks-cloud-helm/values.yaml.gotmpl | 10 +- infra/terraform/cloudwatch.tf | 89 ++++++-- infra/terraform/elasticache.tf | 72 +++++- infra/terraform/main.tf | 212 +++++------------- infra/terraform/rds.tf | 16 +- infra/terraform/secrets.tf | 17 +- 10 files changed, 261 insertions(+), 212 deletions(-) create mode 100644 helm-chart/templates/servicemonitor.yaml diff --git a/docs/self-hosting/setup/kubernetes.mdx b/docs/self-hosting/setup/kubernetes.mdx index 1b3d337b3f..97a862cd1b 100644 --- a/docs/self-hosting/setup/kubernetes.mdx +++ b/docs/self-hosting/setup/kubernetes.mdx @@ -19,17 +19,12 @@ Ensure you have the following before proceeding: ## 1. Installation Steps - -```sh -git clone https://github.com/formbricks/formbricks -cd helm-chart -``` - - ```sh -helm install formbricks ./ -n formbricks --create-namespace +helm install formbricks oci://ghcr.io/formbricks/helm-charts/formbricks -n formbricks --create-namespace ``` +> **Note:** To specify specific version use `--version` flag. E.g., `--version 1.0.0`. Starting from 3.5.0, the chart is available on the GitHub Container Registry (GHCR). + By default: - PostgreSQL and Redis are deployed within the cluster. - Secrets are dynamically generated and stored as Kubernetes Secrets. @@ -37,7 +32,7 @@ By default: ```sh -helm install formbricks ./ -n formbricks --create-namespace --set enterprise.licenseKey="YOUR_LICENSE_KEY" +helm install formbricks oci://ghcr.io/formbricks/helm-charts/formbricks -n formbricks --create-namespace --set enterprise.licenseKey="YOUR_LICENSE_KEY" ``` @@ -107,7 +102,7 @@ externalSecret: Install with: ```sh -helm install formbricks ./ -n formbricks --create-namespace -f values.yaml +helm install formbricks oci://ghcr.io/formbricks/helm-charts/formbricks -n formbricks --create-namespace -f values.yaml ``` --- @@ -129,7 +124,7 @@ redis: ``` Install with: ```sh -helm install formbricks ./ -n formbricks --create-namespace -f values.yaml +helm install formbricks oci://ghcr.io/formbricks/helm-charts/formbricks -n formbricks --create-namespace -f values.yaml ``` --- @@ -147,7 +142,7 @@ redis: ``` Apply with: ```sh -helm install formbricks ./ -n formbricks --create-namespace -f values.yaml +helm install formbricks oci://ghcr.io/formbricks/helm-charts/formbricks -n formbricks --create-namespace -f values.yaml ``` --- @@ -155,17 +150,17 @@ helm install formbricks ./ -n formbricks --create-namespace -f values.yaml ## 4. Upgrading the Deployment To apply changes: ```sh -helm upgrade formbricks ./ -n formbricks +helm upgrade formbricks oci://ghcr.io/formbricks/helm-charts/formbricks -n formbricks ``` ### Scaling Resources ```sh -helm upgrade formbricks ./ -n formbricks --set deployment.resources.limits.cpu=2 --set deployment.resources.limits.memory=4Gi +helm upgrade formbricks oci://ghcr.io/formbricks/helm-charts/formbricks -n formbricks --set deployment.resources.limits.cpu=2 --set deployment.resources.limits.memory=4Gi ``` ### Enabling Autoscaling ```sh -helm upgrade formbricks ./ -n formbricks --set autoscaling.enabled=true --set autoscaling.minReplicas=3 --set autoscaling.maxReplicas=10 +helm upgrade formbricks oci://ghcr.io/formbricks/helm-charts/formbricks -n formbricks --set autoscaling.enabled=true --set autoscaling.minReplicas=3 --set autoscaling.maxReplicas=10 ``` --- diff --git a/helm-chart/templates/deployment.yaml b/helm-chart/templates/deployment.yaml index 4ae6473200..d82d71025c 100644 --- a/helm-chart/templates/deployment.yaml +++ b/helm-chart/templates/deployment.yaml @@ -79,7 +79,7 @@ spec: terminationGracePeriodSeconds: {{ .Values.deployment.terminationGracePeriodSeconds | default 30 }} containers: - name: {{ template "formbricks.name" . }} - image: "{{ .Values.deployment.image.repository }}:{{ .Values.deployment.image.tag | default .Chart.AppVersion }}" + image: {{ .Values.deployment.image.repository }}:{{ .Values.deployment.image.tag | default .Chart.AppVersion | default "latest" }} imagePullPolicy: {{ .Values.deployment.image.pullPolicy }} {{- if .Values.deployment.command }} command: diff --git a/helm-chart/templates/servicemonitor.yaml b/helm-chart/templates/servicemonitor.yaml new file mode 100644 index 0000000000..3424c43dc2 --- /dev/null +++ b/helm-chart/templates/servicemonitor.yaml @@ -0,0 +1,28 @@ +{{- if and (.Values.serviceMonitor).enabled (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") }} +--- +apiVersion: "monitoring.coreos.com/v1" +kind: ServiceMonitor +metadata: + name: {{ template "formbricks.name" . }}-svc-monitor + namespace: {{ include "formbricks.namespace" . }} + labels: + {{- include "formbricks.labels" $ | nindent 4 }} +{{- if .Values.serviceMonitor.additionalLabels }} +{{ toYaml .Values.serviceMonitor.additionalLabels | indent 4 }} +{{- end }} +{{- if .Values.serviceMonitor.annotations }} + annotations: +{{- end }} +{{- if or .Values.serviceMonitor.annotations }} +{{ toYaml .Values.serviceMonitor.annotations | indent 4 }} +{{- end }} +spec: + selector: + matchLabels: +{{ include "formbricks.labels" $ | indent 6 }} + namespaceSelector: + matchNames: + - {{ include "formbricks.namespace" . }} + endpoints: +{{ toYaml .Values.serviceMonitor.endpoints | indent 4 }} +{{- end }} diff --git a/helm-chart/values.yaml b/helm-chart/values.yaml index c33e1469f6..def45c5aa5 100644 --- a/helm-chart/values.yaml +++ b/helm-chart/values.yaml @@ -296,4 +296,4 @@ postgresql: containerSecurityContext: enabled: true runAsUser: 1001 - readOnlyRootFilesystem: false \ No newline at end of file + readOnlyRootFilesystem: false diff --git a/infra/formbricks-cloud-helm/values.yaml.gotmpl b/infra/formbricks-cloud-helm/values.yaml.gotmpl index ec5e571ddf..eb57fcec7b 100644 --- a/infra/formbricks-cloud-helm/values.yaml.gotmpl +++ b/infra/formbricks-cloud-helm/values.yaml.gotmpl @@ -73,13 +73,17 @@ cronJob: ## Deployment & Autoscaling deployment: + resources: + limits: + memory: 2Gi + requests: + cpu: 500m + memory: 512Mi env: DOCKER_CRON_ENABLED: value: "0" RATE_LIMITING_DISABLED: value: "1" - S3_BUCKET_NAME: - value: {{ requiredEnv "FORMBRICKS_S3_BUCKET" }} envFrom: app-env: nameSuffix: app-env @@ -89,7 +93,7 @@ deployment: reloadOnChange: true autoscaling: enabled: true - maxReplicas: 10 + maxReplicas: 95 minReplicas: 3 metrics: - resource: diff --git a/infra/terraform/cloudwatch.tf b/infra/terraform/cloudwatch.tf index ecfe681245..10f591b8ae 100644 --- a/infra/terraform/cloudwatch.tf +++ b/infra/terraform/cloudwatch.tf @@ -27,50 +27,63 @@ module "cloudwatch_cis-alarms" { } locals { + alb_id = "app/k8s-formbricks-21ab9ecd60/342ed65d128ce4cb" alarms = { ALB_HTTPCode_Target_5XX_Count = { alarm_description = "Average API 5XX target group error code count is too high" comparison_operator = "GreaterThanThreshold" evaluation_periods = 5 - threshold = 1 - period = 60 + threshold = 5 + period = 600 unit = "Count" namespace = "AWS/ApplicationELB" metric_name = "HTTPCode_Target_5XX_Count" statistic = "Sum" + dimensions = { + LoadBalancer = local.alb_id + } } ALB_HTTPCode_ELB_5XX_Count = { alarm_description = "Average API 5XX load balancer error code count is too high" comparison_operator = "GreaterThanThreshold" evaluation_periods = 5 - threshold = 1 - period = 60 + threshold = 5 + period = 600 unit = "Count" namespace = "AWS/ApplicationELB" metric_name = "HTTPCode_ELB_5XX_Count" statistic = "Sum" + dimensions = { + LoadBalancer = local.alb_id + } } ALB_TargetResponseTime = { - alarm_description = format("Average API response time is greater than %s", 0.05) + alarm_description = format("Average API response time is greater than %s", 5) comparison_operator = "GreaterThanThreshold" evaluation_periods = 5 - threshold = 0.05 + threshold = 5 period = 60 unit = "Seconds" namespace = "AWS/ApplicationELB" metric_name = "TargetResponseTime" statistic = "Average" + dimensions = { + LoadBalancer = local.alb_id + } } ALB_UnHealthyHostCount = { - alarm_description = format("Unhealthy host count is greater than %s", 1) + alarm_description = format("Unhealthy host count is greater than %s", 2) comparison_operator = "GreaterThanThreshold" evaluation_periods = 5 - threshold = 1 + threshold = 2 period = 60 unit = "Count" namespace = "AWS/ApplicationELB" metric_name = "UnHealthyHostCount" statistic = "Minimum" + dimensions = { + LoadBalancer = local.alb_id + } } RDS_CPUUtilization = { alarm_description = format("Average RDS CPU utilization is greater than %s", 80) @@ -82,6 +95,9 @@ locals { namespace = "AWS/RDS" metric_name = "CPUUtilization" statistic = "Average" + dimensions = { + DBInstanceIdentifier = module.rds-aurora.cluster_instances["one"].id + } } RDS_FreeStorageSpace = { alarm_description = format("Average RDS free storage space is less than %s", 5) @@ -93,6 +109,9 @@ locals { namespace = "AWS/RDS" metric_name = "FreeStorageSpace" statistic = "Average" + dimensions = { + DBInstanceIdentifier = module.rds-aurora.cluster_instances["one"].id + } } RDS_FreeableMemory = { alarm_description = format("Average RDS freeable memory is less than %s", 100) @@ -104,6 +123,9 @@ locals { namespace = "AWS/RDS" metric_name = "FreeableMemory" statistic = "Average" + dimensions = { + DBInstanceIdentifier = module.rds-aurora.cluster_instances["one"].id + } } RDS_DiskQueueDepth = { alarm_description = format("Average RDS disk queue depth is greater than %s", 1) @@ -115,6 +137,9 @@ locals { namespace = "AWS/RDS" metric_name = "DiskQueueDepth" statistic = "Average" + dimensions = { + DBInstanceIdentifier = module.rds-aurora.cluster_instances["one"].id + } } RDS_ReadIOPS = { alarm_description = format("Average RDS read IOPS is greater than %s", 1000) @@ -126,6 +151,9 @@ locals { namespace = "AWS/RDS" metric_name = "ReadIOPS" statistic = "Average" + dimensions = { + DBInstanceIdentifier = module.rds-aurora.cluster_instances["one"].id + } } RDS_WriteIOPS = { alarm_description = format("Average RDS write IOPS is greater than %s", 1000) @@ -137,6 +165,9 @@ locals { namespace = "AWS/RDS" metric_name = "WriteIOPS" statistic = "Average" + dimensions = { + DBInstanceIdentifier = module.rds-aurora.cluster_instances["one"].id + } } SQS_ApproximateAgeOfOldestMessage = { alarm_description = format("Average SQS approximate age of oldest message is greater than %s", 300) @@ -148,6 +179,9 @@ locals { namespace = "AWS/SQS" metric_name = "ApproximateAgeOfOldestMessage" statistic = "Maximum" + dimensions = { + QueueName = module.karpenter.queue_name + } } DynamoDB_ConsumedReadCapacityUnits = { alarm_description = format("Average DynamoDB consumed read capacity units is greater than %s", 90) @@ -159,6 +193,23 @@ locals { namespace = "AWS/DynamoDB" metric_name = "ConsumedReadCapacityUnits" statistic = "Average" + dimensions = { + TableName = "terraform-lock" + } + } + DynamoDB_ConsumedWriteCapacityUnits = { + alarm_description = format("Average DynamoDB consumed write capacity units is greater than %s", 90) + comparison_operator = "GreaterThanThreshold" + evaluation_periods = 5 + threshold = 90 + period = 60 + unit = "Count" + namespace = "AWS/DynamoDB" + metric_name = "ConsumedWriteCapacityUnits" + statistic = "Average" + dimensions = { + TableName = "terraform-lock" + } } Lambda_Errors = { alarm_description = format("Average Lambda errors is greater than %s", 1) @@ -170,6 +221,9 @@ locals { namespace = "AWS/Lambda" metric_name = "Errors" statistic = "Sum" + dimensions = { + FunctionName = module.notify-slack.notify_slack_lambda_function_name + } } } } @@ -178,18 +232,21 @@ module "metric_alarm" { source = "terraform-aws-modules/cloudwatch/aws//modules/metric-alarm" version = "5.7.1" - for_each = local.alarms - alarm_name = each.key - alarm_description = each.value.alarm_description - comparison_operator = each.value.comparison_operator - evaluation_periods = each.value.evaluation_periods - threshold = each.value.threshold - period = each.value.period - unit = each.value.unit + for_each = local.alarms + alarm_name = each.key + alarm_description = each.value.alarm_description + comparison_operator = each.value.comparison_operator + evaluation_periods = each.value.evaluation_periods + threshold = each.value.threshold + period = each.value.period + unit = each.value.unit + insufficient_data_actions = [] namespace = each.value.namespace metric_name = each.value.metric_name statistic = each.value.statistic + dimensions = each.value.dimensions + alarm_actions = [module.notify-slack.slack_topic_arn] } diff --git a/infra/terraform/elasticache.tf b/infra/terraform/elasticache.tf index 4243d475cb..7426c02ca5 100644 --- a/infra/terraform/elasticache.tf +++ b/infra/terraform/elasticache.tf @@ -1,6 +1,10 @@ ################################################################################ # ElastiCache Module ################################################################################ +locals { + valkey_major_version = 8 +} + resource "random_password" "valkey" { length = 20 special = false @@ -46,21 +50,67 @@ module "elasticache_user_group" { }) } +module "valkey" { + source = "terraform-aws-modules/elasticache/aws" + version = "1.4.1" + + replication_group_id = "${local.name}-valkey" + + engine = "valkey" + engine_version = "8.0" + node_type = "cache.m7g.large" + + transit_encryption_enabled = true + auth_token = random_password.valkey.result + maintenance_window = "sun:05:00-sun:09:00" + apply_immediately = true + + # Security Group + vpc_id = module.vpc.vpc_id + security_group_rules = { + ingress_vpc = { + # Default type is `ingress` + # Default port is based on the default engine port + description = "VPC traffic" + cidr_ipv4 = module.vpc.vpc_cidr_block + } + } + + log_delivery_configuration = { + slow-log = { + destination_type = "cloudwatch-logs" + log_format = "json" + cloudwatch_log_group_retention_in_days = 365 + } + } + + # Subnet Group + subnet_group_name = "${local.name}-valkey" + subnet_group_description = "${title(local.name)} subnet group" + subnet_ids = module.vpc.database_subnets + + # Parameter Group + create_parameter_group = true + parameter_group_name = "${local.name}-valkey-${local.valkey_major_version}" + parameter_group_family = "valkey8" + parameter_group_description = "${title(local.name)} parameter group" + parameters = [ + { + name = "latency-tracking" + value = "yes" + } + ] + + tags = local.tags +} + module "valkey_serverless" { source = "terraform-aws-modules/elasticache/aws//modules/serverless-cache" version = "1.4.1" - engine = "valkey" - cache_name = "${local.name}-valkey-serverless" - cache_usage_limits = { - data_storage = { - maximum = 2 - } - ecpu_per_second = { - maximum = 1000 - } - } - major_engine_version = 7 + engine = "valkey" + cache_name = "${local.name}-valkey-serverless" + major_engine_version = 8 subnet_ids = module.vpc.database_subnets security_group_ids = [ diff --git a/infra/terraform/main.tf b/infra/terraform/main.tf index f0a4ade31a..05bf6bcd1a 100644 --- a/infra/terraform/main.tf +++ b/infra/terraform/main.tf @@ -120,6 +120,7 @@ module "eks" { enable_cluster_creator_admin_permissions = false cluster_endpoint_public_access = true + cloudwatch_log_group_retention_in_days = 365 cluster_addons = { coredns = { @@ -352,7 +353,7 @@ resource "kubernetes_manifest" "node_pool" { } } limits = { - cpu = 100 + cpu = 1000 } disruption = { consolidationPolicy = "WhenEmpty" @@ -412,19 +413,65 @@ module "eks_blueprints_addons" { } ### Formbricks App -module "s3-bucket" { +data "aws_iam_policy_document" "replication_bucket_policy" { + statement { + sid = "Set-permissions-for-objects" + effect = "Allow" + + principals { + type = "AWS" + identifiers = [ + "arn:aws:iam::050559574035:role/service-role/s3crr_role_for_formbricks-cloud-uploads" + ] + } + + actions = [ + "s3:ReplicateObject", + "s3:ReplicateDelete" + ] + + resources = [ + "arn:aws:s3:::formbricks-cloud-eks/*" + ] + } + + statement { + sid = "Set permissions on bucket" + effect = "Allow" + + principals { + type = "AWS" + identifiers = [ + "arn:aws:iam::050559574035:role/service-role/s3crr_role_for_formbricks-cloud-uploads" + ] + } + + actions = [ + "s3:GetBucketVersioning", + "s3:PutBucketVersioning" + ] + + resources = [ + "arn:aws:s3:::formbricks-cloud-eks" + ] + } +} + +module "formbricks_s3_bucket" { source = "terraform-aws-modules/s3-bucket/aws" version = "4.6.0" - bucket_prefix = "formbricks-" + bucket = "formbricks-cloud-eks" force_destroy = true control_object_ownership = true object_ownership = "BucketOwnerPreferred" - + versioning = { + enabled = true + } + policy = data.aws_iam_policy_document.replication_bucket_policy.json } - -module "iam_policy" { +module "formbricks_app_iam_policy" { source = "terraform-aws-modules/iam/aws//modules/iam-policy" version = "5.53.0" @@ -441,8 +488,8 @@ module "iam_policy" { "s3:*", ] Resource = [ - module.s3-bucket.s3_bucket_arn, - "${module.s3-bucket.s3_bucket_arn}/*", + module.formbricks_s3_bucket.s3_bucket_arn, + "${module.formbricks_s3_bucket.s3_bucket_arn}/*", "arn:aws:s3:::formbricks-cloud-uploads", "arn:aws:s3:::formbricks-cloud-uploads/*" ] @@ -451,14 +498,14 @@ module "iam_policy" { }) } -module "formkey-aws-access" { +module "formbricks_app_iam_role" { source = "terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks" version = "5.53.0" role_name_prefix = "formbricks-" role_policy_arns = { - "formbricks" = module.iam_policy.arn + "formbricks" = module.formbricks_app_iam_policy.arn } assume_role_condition_test = "StringLike" @@ -469,148 +516,3 @@ module "formkey-aws-access" { } } } - - -resource "helm_release" "formbricks" { - name = "formbricks" - namespace = "formbricks" - repository = "oci://ghcr.io/formbricks/helm-charts" - chart = "formbricks" - version = "3.5.1" - max_history = 5 - - values = [ - <<-EOT - postgresql: - enabled: false - redis: - enabled: false - ingress: - enabled: true - ingressClassName: alb - hosts: - - host: "app.${local.domain}" - paths: - - path: / - pathType: "Prefix" - serviceName: "formbricks" - annotations: - alb.ingress.kubernetes.io/scheme: internet-facing - alb.ingress.kubernetes.io/target-type: ip - alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}]' - alb.ingress.kubernetes.io/ssl-redirect: "443" - alb.ingress.kubernetes.io/certificate-arn: ${data.aws_acm_certificate.formbricks.arn} - alb.ingress.kubernetes.io/healthcheck-path: "/health" - alb.ingress.kubernetes.io/group.name: formbricks - alb.ingress.kubernetes.io/ssl-policy: "ELBSecurityPolicy-TLS13-1-2-2021-06" - secret: - enabled: false - rbac: - enabled: true - serviceAccount: - enabled: true - name: formbricks - annotations: - eks.amazonaws.com/role-arn: ${module.formkey-aws-access.iam_role_arn} - serviceMonitor: - enabled: true - deployment: - reloadOnChange: true - nodeSelector: - karpenter.sh/capacity-type: "on-demand" - env: - S3_BUCKET_NAME: - value: "formbricks-cloud-uploads" - RATE_LIMITING_DISABLED: - value: "1" - envFrom: - app-env: - type: secret - nameSuffix: app-env - externalSecret: - enabled: true # Enable/disable ExternalSecrets - secretStore: - name: aws-secrets-manager - kind: ClusterSecretStore - refreshInterval: "1m" - files: - app-env: - dataFrom: - key: "prod/formbricks/environment" - app-secrets: - dataFrom: - key: "prod/formbricks/secrets" - cronJob: - enabled: true - jobs: - survey-status: - schedule: "0 0 * * *" - successfulJobsHistoryLimit: 0 - env: - CRON_SECRET: - valueFrom: - secretKeyRef: - name: "formbricks-app-env" - key: "CRON_SECRET" - WEBAPP_URL: - valueFrom: - secretKeyRef: - name: "formbricks-app-env" - key: "WEBAPP_URL" - image: - repository: curlimages/curl - tag: latest - imagePullPolicy: IfNotPresent - args: - - "/bin/sh" - - "-c" - - 'curl -X POST -H "content-type: application/json" -H "x-api-key: $CRON_SECRET" "$WEBAPP_URL/api/cron/survey-status"' - weekely-summary: - schedule: "0 8 * * 1" - successfulJobsHistoryLimit: 0 - env: - CRON_SECRET: - valueFrom: - secretKeyRef: - name: "formbricks-app-env" - key: "CRON_SECRET" - WEBAPP_URL: - valueFrom: - secretKeyRef: - name: "formbricks-app-env" - key: "WEBAPP_URL" - image: - repository: curlimages/curl - tag: latest - imagePullPolicy: IfNotPresent - args: - - "/bin/sh" - - "-c" - - 'curl -X POST -H "content-type: application/json" -H "x-api-key: $CRON_SECRET" "$WEBAPP_URL/api/cron/weekly-summary"' - ping: - schedule: "0 9 * * *" - successfulJobsHistoryLimit: 0 - env: - CRON_SECRET: - valueFrom: - secretKeyRef: - name: "formbricks-app-env" - key: "CRON_SECRET" - WEBAPP_URL: - valueFrom: - secretKeyRef: - name: "formbricks-app-env" - key: "WEBAPP_URL" - image: - repository: curlimages/curl - tag: latest - imagePullPolicy: IfNotPresent - args: - - "/bin/sh" - - "-c" - - 'curl -X POST -H "content-type: application/json" -H "x-api-key: $CRON_SECRET" "$WEBAPP_URL/api/cron/ping"' - EOT - ] -} - -# secrets password/keys diff --git a/infra/terraform/rds.tf b/infra/terraform/rds.tf index 2455b737b0..39c46d27b0 100644 --- a/infra/terraform/rds.tf +++ b/infra/terraform/rds.tf @@ -15,14 +15,14 @@ module "rds-aurora" { source = "terraform-aws-modules/rds-aurora/aws" version = "9.12.0" - name = "${local.name}-postgres" - engine = data.aws_rds_engine_version.postgresql.engine - engine_mode = "provisioned" - engine_version = data.aws_rds_engine_version.postgresql.version - storage_encrypted = true - master_username = "formbricks" - master_password = random_password.postgres.result - manage_master_user_password = false + name = "${local.name}-postgres" + engine = data.aws_rds_engine_version.postgresql.engine + engine_mode = "provisioned" + engine_version = data.aws_rds_engine_version.postgresql.version + storage_encrypted = true + master_username = "formbricks" + master_password = random_password.postgres.result + manage_master_user_password = false create_db_cluster_parameter_group = true db_cluster_parameter_group_family = data.aws_rds_engine_version.postgresql.parameter_group_family db_cluster_parameter_group_parameters = [ diff --git a/infra/terraform/secrets.tf b/infra/terraform/secrets.tf index 540c98aa00..6f49794d2d 100644 --- a/infra/terraform/secrets.tf +++ b/infra/terraform/secrets.tf @@ -3,10 +3,23 @@ resource "aws_secretsmanager_secret" "formbricks_app_secrets" { name = "prod/formbricks/secrets" } +resource "aws_secretsmanager_secret" "formbricks_app_secrets_temp" { + name = "prod/formbricks/secrets_temp" +} + resource "aws_secretsmanager_secret_version" "formbricks_app_secrets" { secret_id = aws_secretsmanager_secret.formbricks_app_secrets.id secret_string = jsonencode({ -# DATABASE_URL = "postgres://formbricks:${random_password.postgres.result}@${module.rds-aurora.cluster_endpoint}/formbricks" - REDIS_URL = "rediss://formbricks:${random_password.valkey.result}@${module.valkey_serverless.serverless_cache_endpoint[0].address}:6379" + # DATABASE_URL = "postgres://formbricks:${random_password.postgres.result}@${module.rds-aurora.cluster_endpoint}/formbricks" + REDIS_URL = "rediss://:${random_password.valkey.result}@${module.valkey.replication_group_primary_endpoint_address}:6379" + # REDIS_URL = "rediss://formbricks:${random_password.valkey.result}@${module.valkey_serverless.serverless_cache_endpoint[0].address}:6379" + }) +} + +resource "aws_secretsmanager_secret_version" "formbricks_app_secrets_temp" { + secret_id = aws_secretsmanager_secret.formbricks_app_secrets_temp.id + secret_string = jsonencode({ + DATABASE_URL = "postgres://formbricks:${random_password.postgres.result}@${module.rds-aurora.cluster_endpoint}/formbricks" + # REDIS_URL = "rediss://formbricks:${random_password.valkey.result}@${module.valkey_serverless.serverless_cache_endpoint[0].address}:6379" }) } From cd1739c901ef74a332ba1eff94004467c0731208 Mon Sep 17 00:00:00 2001 From: Piyush Jain <122745947+d3vb0ox@users.noreply.github.com> Date: Thu, 27 Mar 2025 07:10:24 +0530 Subject: [PATCH 14/22] chore: updates enable PR comments for terraform plan (#5073) --- .../workflows/terrafrom-plan-and-apply.yml | 30 +++++++++---------- infra/terraform/main.tf | 8 +++++ 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/.github/workflows/terrafrom-plan-and-apply.yml b/.github/workflows/terrafrom-plan-and-apply.yml index 49f2b99081..04897411fc 100644 --- a/.github/workflows/terrafrom-plan-and-apply.yml +++ b/.github/workflows/terrafrom-plan-and-apply.yml @@ -3,16 +3,17 @@ name: 'Terraform' on: workflow_dispatch: # TODO: enable it back when migration is completed. -# push: -# branches: -# - main -# pull_request: -# branches: -# - main + push: + branches: + - main + pull_request: + branches: + - main permissions: id-token: write contents: write + pull-requests: write jobs: terraform: @@ -58,18 +59,17 @@ jobs: run: terraform plan -out .planfile working-directory: infra/terraform -# - name: Post PR comment -# uses: borchero/terraform-plan-comment@3399d8dbae8b05185e815e02361ede2949cd99c4 # v2.4.0 -# if: always() && github.ref != 'refs/heads/main' && (steps.validate.outcome == 'success' || steps.validate.outcome == 'failure') -# with: -# token: ${{ github.token }} -# planfile: .planfile -# working-directory: "infra/terraform" -# skip-comment: true + - name: Post PR comment + uses: borchero/terraform-plan-comment@3399d8dbae8b05185e815e02361ede2949cd99c4 # v2.4.0 + if: always() && github.ref != 'refs/heads/main' && (steps.plan.outcome == 'success' || steps.plan.outcome == 'failure') + with: + token: ${{ github.token }} + planfile: .planfile + working-directory: "infra/terraform" - name: Terraform Apply id: apply -# if: github.ref == 'refs/heads/main' && github.event_name == 'push' + if: github.ref == 'refs/heads/main' && github.event_name == 'push' run: terraform apply .planfile working-directory: "infra/terraform" diff --git a/infra/terraform/main.tf b/infra/terraform/main.tf index 05bf6bcd1a..774cd66aa9 100644 --- a/infra/terraform/main.tf +++ b/infra/terraform/main.tf @@ -469,6 +469,14 @@ module "formbricks_s3_bucket" { enabled = true } policy = data.aws_iam_policy_document.replication_bucket_policy.json + cors_rule = [ + { + allowed_methods = ["POST"] + allowed_origins = ["https://*"] + allowed_headers = ["*"] + expose_headers = [] + } + ] } module "formbricks_app_iam_policy" { From 417005c6e9245f53fc6291eb58284a4d560af7d2 Mon Sep 17 00:00:00 2001 From: Dhruwang Jariwala <67850763+Dhruwang@users.noreply.github.com> Date: Thu, 27 Mar 2025 08:02:03 +0530 Subject: [PATCH 15/22] fix: docker image not building (#5069) Co-authored-by: Matthias Nannt --- .github/actions/cache-build-web/action.yml | 1 + .../release-docker-github-experimental.yml | 4 ++- .github/workflows/release-docker-github.yml | 3 ++ apps/web/Dockerfile | 28 ++++++++++++++++--- packages/lib/env.ts | 4 +-- 5 files changed, 33 insertions(+), 7 deletions(-) diff --git a/.github/actions/cache-build-web/action.yml b/.github/actions/cache-build-web/action.yml index 4d68fc506b..25d18f4245 100644 --- a/.github/actions/cache-build-web/action.yml +++ b/.github/actions/cache-build-web/action.yml @@ -56,6 +56,7 @@ runs: - name: Fill ENCRYPTION_KEY, ENTERPRISE_LICENSE_KEY and E2E_TESTING in .env run: | RANDOM_KEY=$(openssl rand -hex 32) + sed -i "s/ENCRYPTION_KEY=.*/ENCRYPTION_KEY=${RANDOM_KEY}/" .env echo "E2E_TESTING=${{ inputs.e2e_testing_mode }}" >> .env shell: bash diff --git a/.github/workflows/release-docker-github-experimental.yml b/.github/workflows/release-docker-github-experimental.yml index c009debdcd..25b8e5e61e 100644 --- a/.github/workflows/release-docker-github-experimental.yml +++ b/.github/workflows/release-docker-github-experimental.yml @@ -15,7 +15,6 @@ env: IMAGE_NAME: ${{ github.repository }}-experimental TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: ${{ secrets.TURBO_TEAM }} - DATABASE_URL: "postgresql://postgres:postgres@localhost:5432/formbricks?schema=public" permissions: contents: read @@ -80,6 +79,9 @@ jobs: push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + secrets: | + database_url=${{ secrets.DUMMY_DATABASE_URL }} + encryption_key=${{ secrets.DUMMY_ENCRYPTION_KEY }} cache-from: type=gha cache-to: type=gha,mode=max diff --git a/.github/workflows/release-docker-github.yml b/.github/workflows/release-docker-github.yml index c09d66d553..0748805c31 100644 --- a/.github/workflows/release-docker-github.yml +++ b/.github/workflows/release-docker-github.yml @@ -100,6 +100,9 @@ jobs: push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + secrets: | + database_url=${{ secrets.DUMMY_DATABASE_URL }} + encryption_key=${{ secrets.DUMMY_ENCRYPTION_KEY }} cache-from: type=gha cache-to: type=gha,mode=max diff --git a/apps/web/Dockerfile b/apps/web/Dockerfile index 4724f7bf18..94db1a39eb 100644 --- a/apps/web/Dockerfile +++ b/apps/web/Dockerfile @@ -24,11 +24,28 @@ RUN corepack enable # Install necessary build tools and compilers RUN apk update && apk add --no-cache g++ cmake make gcc python3 openssl-dev jq +# BuildKit secret handling without hardcoded fallback values +# This approach relies entirely on secrets passed from GitHub Actions +RUN echo '#!/bin/sh' > /tmp/read-secrets.sh && \ + echo 'if [ -f "/run/secrets/database_url" ]; then' >> /tmp/read-secrets.sh && \ + echo ' export DATABASE_URL=$(cat /run/secrets/database_url)' >> /tmp/read-secrets.sh && \ + echo 'else' >> /tmp/read-secrets.sh && \ + echo ' echo "DATABASE_URL secret not found. Build may fail if this is required."' >> /tmp/read-secrets.sh && \ + echo 'fi' >> /tmp/read-secrets.sh && \ + echo 'if [ -f "/run/secrets/encryption_key" ]; then' >> /tmp/read-secrets.sh && \ + echo ' export ENCRYPTION_KEY=$(cat /run/secrets/encryption_key)' >> /tmp/read-secrets.sh && \ + echo 'else' >> /tmp/read-secrets.sh && \ + echo ' echo "ENCRYPTION_KEY secret not found. Build may fail if this is required."' >> /tmp/read-secrets.sh && \ + echo 'fi' >> /tmp/read-secrets.sh && \ + echo 'exec "$@"' >> /tmp/read-secrets.sh && \ + chmod +x /tmp/read-secrets.sh + ARG NEXT_PUBLIC_SENTRY_DSN ARG SENTRY_AUTH_TOKEN -# Increase Node.js memory limit -# ENV NODE_OPTIONS="--max_old_space_size=4096" +# Increase Node.js memory limit as a regular build argument +ARG NODE_OPTIONS="--max_old_space_size=4096" +ENV NODE_OPTIONS=${NODE_OPTIONS} # Set the working directory WORKDIR /app @@ -47,8 +64,11 @@ RUN touch apps/web/.env # Install the dependencies RUN pnpm install -# Build the project -RUN NODE_OPTIONS="--max_old_space_size=4096" pnpm build --filter=@formbricks/web... +# Build the project using our secret reader script +# This mounts the secrets only during this build step without storing them in layers +RUN --mount=type=secret,id=database_url \ + --mount=type=secret,id=encryption_key \ + /tmp/read-secrets.sh pnpm build --filter=@formbricks/web... # Extract Prisma version RUN jq -r '.devDependencies.prisma' packages/database/package.json > /prisma_version.txt diff --git a/packages/lib/env.ts b/packages/lib/env.ts index 769fcb53c0..069e77eb0a 100644 --- a/packages/lib/env.ts +++ b/packages/lib/env.ts @@ -20,7 +20,7 @@ export const env = createEnv({ CRON_SECRET: z.string().optional(), BREVO_API_KEY: z.string().optional(), BREVO_LIST_ID: z.string().optional(), - DATABASE_URL: z.string().url().optional(), + DATABASE_URL: z.string().url(), DEBUG: z.enum(["1", "0"]).optional(), DOCKER_CRON_ENABLED: z.enum(["1", "0"]).optional(), DEFAULT_ORGANIZATION_ID: z.string().optional(), @@ -28,7 +28,7 @@ export const env = createEnv({ E2E_TESTING: z.enum(["1", "0"]).optional(), EMAIL_AUTH_DISABLED: z.enum(["1", "0"]).optional(), EMAIL_VERIFICATION_DISABLED: z.enum(["1", "0"]).optional(), - ENCRYPTION_KEY: z.string().optional(), + ENCRYPTION_KEY: z.string(), ENTERPRISE_LICENSE_KEY: z.string().optional(), FORMBRICKS_ENCRYPTION_KEY: z.string().optional(), GITHUB_ID: z.string().optional(), From 63a9a6135b63d77460f6a3a6154d933721b76662 Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Thu, 27 Mar 2025 12:42:57 +0900 Subject: [PATCH 16/22] fix: github issues url required login (#5077) --- .github/workflows/release-docker-github.yml | 1 - .../[environmentId]/components/TopControlButtons.tsx | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/release-docker-github.yml b/.github/workflows/release-docker-github.yml index 0748805c31..457940fb7e 100644 --- a/.github/workflows/release-docker-github.yml +++ b/.github/workflows/release-docker-github.yml @@ -19,7 +19,6 @@ env: IMAGE_NAME: ${{ github.repository }} TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: ${{ secrets.TURBO_TEAM }} - DATABASE_URL: "postgresql://postgres:postgres@localhost:5432/formbricks?schema=public" permissions: contents: read diff --git a/apps/web/app/(app)/environments/[environmentId]/components/TopControlButtons.tsx b/apps/web/app/(app)/environments/[environmentId]/components/TopControlButtons.tsx index 0c0f3fde40..22ef9d8218 100644 --- a/apps/web/app/(app)/environments/[environmentId]/components/TopControlButtons.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/components/TopControlButtons.tsx @@ -39,7 +39,7 @@ export const TopControlButtons = ({ From 2500c739ae8631b9317c62ca6a1e7f2a46bcf3b9 Mon Sep 17 00:00:00 2001 From: Piyush Gupta <56182734+gupta-piyush19@users.noreply.github.com> Date: Thu, 27 Mar 2025 15:24:35 +0530 Subject: [PATCH 17/22] fix: next-auth inactive session timeout changed 30days -> 1hr (#5066) --- apps/web/modules/auth/lib/authOptions.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/web/modules/auth/lib/authOptions.ts b/apps/web/modules/auth/lib/authOptions.ts index b9f89c2122..eb9fdd9cfe 100644 --- a/apps/web/modules/auth/lib/authOptions.ts +++ b/apps/web/modules/auth/lib/authOptions.ts @@ -173,6 +173,9 @@ export const authOptions: NextAuthOptions = { // Conditionally add enterprise SSO providers ...(ENTERPRISE_LICENSE_KEY ? getSSOProviders() : []), ], + session: { + maxAge: 3600, + }, callbacks: { async jwt({ token }) { const existingUser = await getUserByEmail(token?.email!); From 2f64b202c1ff7beaa59d46f74fceec0ff72ddd78 Mon Sep 17 00:00:00 2001 From: Jakob Schott <154420406+jakobsitory@users.noreply.github.com> Date: Thu, 27 Mar 2025 11:50:24 +0100 Subject: [PATCH 18/22] fix: billing modal translation (#5079) --- apps/web/modules/ee/billing/components/pricing-card.tsx | 4 ++++ packages/lib/messages/de-DE.json | 4 +++- packages/lib/messages/en-US.json | 4 +++- packages/lib/messages/fr-FR.json | 4 +++- packages/lib/messages/pt-BR.json | 4 +++- packages/lib/messages/pt-PT.json | 4 +++- packages/lib/messages/zh-Hant-TW.json | 4 +++- 7 files changed, 22 insertions(+), 6 deletions(-) diff --git a/apps/web/modules/ee/billing/components/pricing-card.tsx b/apps/web/modules/ee/billing/components/pricing-card.tsx index 09fab34367..5edcc3d297 100644 --- a/apps/web/modules/ee/billing/components/pricing-card.tsx +++ b/apps/web/modules/ee/billing/components/pricing-card.tsx @@ -215,6 +215,10 @@ export const PricingCard = ({ text={t("environments.settings.billing.switch_plan_confirmation_text", { plan: t(plan.name), price: planPeriod === "monthly" ? plan.price.monthly : plan.price.yearly, + period: + planPeriod === "monthly" + ? t("environments.settings.billing.per_month") + : t("environments.settings.billing.per_year"), })} buttonVariant="default" buttonLoading={loading} diff --git a/packages/lib/messages/de-DE.json b/packages/lib/messages/de-DE.json index d0d44a15a0..b89826998a 100644 --- a/packages/lib/messages/de-DE.json +++ b/packages/lib/messages/de-DE.json @@ -1029,6 +1029,8 @@ "monthly": "Monatlich", "monthly_identified_users": "Monatlich identifizierte Nutzer", "multi_language_surveys": "Mehrsprachige Umfragen", + "per_month": "pro Monat", + "per_year": "pro Jahr", "plan_upgraded_successfully": "Plan erfolgreich aktualisiert", "premium_support_with_slas": "Premium-Support mit SLAs", "priority_support": "Priorisierter Support", @@ -1039,7 +1041,7 @@ "startup": "Start-up", "startup_description": "Alles in 'Free' mit zusätzlichen Funktionen.", "switch_plan": "Plan wechseln", - "switch_plan_confirmation_text": "Bist du sicher, dass du zum {plan}-Plan wechseln möchtest? Dir werden {price} pro Monat berechnet.", + "switch_plan_confirmation_text": "Bist du sicher, dass du zum {plan}-Plan wechseln möchtest? Dir werden {price} {period} berechnet.", "team_access_roles": "Rollen für Teammitglieder", "technical_onboarding": "Technische Einführung", "unable_to_upgrade_plan": "Plan kann nicht aktualisiert werden", diff --git a/packages/lib/messages/en-US.json b/packages/lib/messages/en-US.json index a5af8745e2..0ebab246cb 100644 --- a/packages/lib/messages/en-US.json +++ b/packages/lib/messages/en-US.json @@ -1029,6 +1029,8 @@ "monthly": "Monthly", "monthly_identified_users": "Monthly Identified Users", "multi_language_surveys": "Multi-Language Surveys", + "per_month": "per month", + "per_year": "per year", "plan_upgraded_successfully": "Plan upgraded successfully", "premium_support_with_slas": "Premium support with SLAs", "priority_support": "Priority Support", @@ -1039,7 +1041,7 @@ "startup": "Startup", "startup_description": "Everything in Free with additional features.", "switch_plan": "Switch Plan", - "switch_plan_confirmation_text": "Are you sure you want to switch to the {plan} plan? You will be charged {price} per month.", + "switch_plan_confirmation_text": "Are you sure you want to switch to the {plan} plan? You will be charged {price} {period}.", "team_access_roles": "Team Access Roles", "technical_onboarding": "Technical Onboarding", "unable_to_upgrade_plan": "Unable to upgrade plan", diff --git a/packages/lib/messages/fr-FR.json b/packages/lib/messages/fr-FR.json index 60318da172..88750c2443 100644 --- a/packages/lib/messages/fr-FR.json +++ b/packages/lib/messages/fr-FR.json @@ -1029,6 +1029,8 @@ "monthly": "Mensuel", "monthly_identified_users": "Utilisateurs Identifiés Mensuels", "multi_language_surveys": "Sondages multilingues", + "per_month": "par mois", + "per_year": "par an", "plan_upgraded_successfully": "Plan mis à jour avec succès", "premium_support_with_slas": "Soutien premium avec SLA", "priority_support": "Soutien Prioritaire", @@ -1039,7 +1041,7 @@ "startup": "Startup", "startup_description": "Tout est gratuit avec des fonctionnalités supplémentaires.", "switch_plan": "Changer de plan", - "switch_plan_confirmation_text": "Êtes-vous sûr de vouloir passer au plan {plan} ? Vous serez facturé {price} par mois.", + "switch_plan_confirmation_text": "Êtes-vous sûr de vouloir passer au plan {plan} ? Vous serez facturé {price} {period}.", "team_access_roles": "Rôles d'accès d'équipe", "technical_onboarding": "Intégration technique", "unable_to_upgrade_plan": "Impossible de mettre à niveau le plan", diff --git a/packages/lib/messages/pt-BR.json b/packages/lib/messages/pt-BR.json index 6d44aeda41..e9aa823ab2 100644 --- a/packages/lib/messages/pt-BR.json +++ b/packages/lib/messages/pt-BR.json @@ -1029,6 +1029,8 @@ "monthly": "mensal", "monthly_identified_users": "Usuários Identificados Mensalmente", "multi_language_surveys": "Pesquisas Multilíngues", + "per_month": "por mês", + "per_year": "por ano", "plan_upgraded_successfully": "Plano atualizado com sucesso", "premium_support_with_slas": "Suporte premium com SLAs", "priority_support": "Suporte Prioritário", @@ -1039,7 +1041,7 @@ "startup": "startup", "startup_description": "Tudo no Grátis com recursos adicionais.", "switch_plan": "Mudar Plano", - "switch_plan_confirmation_text": "Tem certeza de que deseja mudar para o plano {plan}? Você será cobrado {price} por mês.", + "switch_plan_confirmation_text": "Tem certeza de que deseja mudar para o plano {plan}? Você será cobrado {price} {period}.", "team_access_roles": "Funções de Acesso da Equipe", "technical_onboarding": "Integração Técnica", "unable_to_upgrade_plan": "Não foi possível atualizar o plano", diff --git a/packages/lib/messages/pt-PT.json b/packages/lib/messages/pt-PT.json index c6cae13ce3..98860b6f64 100644 --- a/packages/lib/messages/pt-PT.json +++ b/packages/lib/messages/pt-PT.json @@ -1029,6 +1029,8 @@ "monthly": "Mensal", "monthly_identified_users": "Utilizadores Identificados Mensalmente", "multi_language_surveys": "Inquéritos Multilingues", + "per_month": "por mês", + "per_year": "por ano", "plan_upgraded_successfully": "Plano atualizado com sucesso", "premium_support_with_slas": "Suporte premium com SLAs", "priority_support": "Suporte Prioritário", @@ -1039,7 +1041,7 @@ "startup": "Inicialização", "startup_description": "Tudo no plano Gratuito com funcionalidades adicionais.", "switch_plan": "Mudar Plano", - "switch_plan_confirmation_text": "Tem a certeza de que deseja mudar para o plano {plan}? Ser-lhe-á cobrado {price} por mês.", + "switch_plan_confirmation_text": "Tem a certeza de que deseja mudar para o plano {plan}? Ser-lhe-á cobrado {price} {period}.", "team_access_roles": "Funções de Acesso da Equipa", "technical_onboarding": "Integração Técnica", "unable_to_upgrade_plan": "Não é possível atualizar o plano", diff --git a/packages/lib/messages/zh-Hant-TW.json b/packages/lib/messages/zh-Hant-TW.json index 019008000d..7a155c79a2 100644 --- a/packages/lib/messages/zh-Hant-TW.json +++ b/packages/lib/messages/zh-Hant-TW.json @@ -1029,6 +1029,8 @@ "monthly": "每月", "monthly_identified_users": "每月識別使用者", "multi_language_surveys": "多語言問卷", + "per_month": "每月", + "per_year": "每年", "plan_upgraded_successfully": "方案已成功升級", "premium_support_with_slas": "具有 SLA 的頂級支援", "priority_support": "優先支援", @@ -1039,7 +1041,7 @@ "startup": "啟動版", "startup_description": "免費方案中的所有功能以及其他功能。", "switch_plan": "切換方案", - "switch_plan_confirmation_text": "您確定要切換至 '{'plan'}' 方案嗎?您將每月被收取 '{'price'}'。", + "switch_plan_confirmation_text": "您確定要切換到 {plan} 計劃嗎?您將被收取 {price} {period}。", "team_access_roles": "團隊存取角色", "technical_onboarding": "技術新手上路", "unable_to_upgrade_plan": "無法升級方案", From ef41f352099b468b66b0638ee5fa7fbd5c5bdbee Mon Sep 17 00:00:00 2001 From: Piyush Jain <122745947+d3vb0ox@users.noreply.github.com> Date: Thu, 27 Mar 2025 17:00:49 +0530 Subject: [PATCH 19/22] fix: rds (#5078) --- .github/workflows/terrafrom-plan-and-apply.yml | 4 ++++ infra/terraform/rds.tf | 9 ++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/terrafrom-plan-and-apply.yml b/.github/workflows/terrafrom-plan-and-apply.yml index 04897411fc..78d0c72e6c 100644 --- a/.github/workflows/terrafrom-plan-and-apply.yml +++ b/.github/workflows/terrafrom-plan-and-apply.yml @@ -6,9 +6,13 @@ on: push: branches: - main + paths: + - "infra/terraform/**" pull_request: branches: - main + paths: + - "infra/terraform/**" permissions: id-token: write diff --git a/infra/terraform/rds.tf b/infra/terraform/rds.tf index 39c46d27b0..daaab8b76d 100644 --- a/infra/terraform/rds.tf +++ b/infra/terraform/rds.tf @@ -42,14 +42,17 @@ module "rds-aurora" { } performance_insights_enabled = true - apply_immediately = true - skip_final_snapshot = true + backup_retention_period = 7 + apply_immediately = true + skip_final_snapshot = false + + deletion_protection = true enable_http_endpoint = true serverlessv2_scaling_configuration = { min_capacity = 0 - max_capacity = 10 + max_capacity = 50 seconds_until_auto_pause = 3600 } From e1a5291123b4de15afca133541cb5cad343c7cbe Mon Sep 17 00:00:00 2001 From: Jakob Schott <154420406+jakobsitory@users.noreply.github.com> Date: Thu, 27 Mar 2025 13:46:56 +0100 Subject: [PATCH 20/22] fix: unify alert component (#5002) Co-authored-by: Dhruwang --- .../ui/components/alert/index.test.tsx | 74 +++++ .../web/modules/ui/components/alert/index.tsx | 166 ++++++++--- .../ui/components/alert/stories.test.tsx | 62 ++++ .../modules/ui/components/alert/stories.tsx | 273 +++++++++++++++--- apps/web/tailwind.config.js | 32 +- apps/web/vite.config.mts | 1 + 6 files changed, 535 insertions(+), 73 deletions(-) create mode 100644 apps/web/modules/ui/components/alert/index.test.tsx create mode 100644 apps/web/modules/ui/components/alert/stories.test.tsx diff --git a/apps/web/modules/ui/components/alert/index.test.tsx b/apps/web/modules/ui/components/alert/index.test.tsx new file mode 100644 index 0000000000..08c218f24b --- /dev/null +++ b/apps/web/modules/ui/components/alert/index.test.tsx @@ -0,0 +1,74 @@ +import { fireEvent, render, screen } from "@testing-library/react"; +import { describe, expect, it, vi } from "vitest"; +import { Alert, AlertButton, AlertDescription, AlertTitle } from "./index"; + +describe("Alert", () => { + it("renders with default variant", () => { + render( + + Test Title + Test Description + + ); + + expect(screen.getByRole("alert")).toBeInTheDocument(); + expect(screen.getByText("Test Title")).toBeInTheDocument(); + expect(screen.getByText("Test Description")).toBeInTheDocument(); + }); + + it("renders with different variants", () => { + const variants = ["default", "error", "warning", "info", "success"] as const; + + variants.forEach((variant) => { + const { container } = render( + + Test Title + + ); + + expect(container.firstChild).toHaveClass( + variant === "default" ? "text-foreground" : `text-${variant}-foreground` + ); + }); + }); + + it("renders with different sizes", () => { + const sizes = ["default", "small"] as const; + + sizes.forEach((size) => { + const { container } = render( + + Test Title + + ); + + expect(container.firstChild).toHaveClass(size === "default" ? "py-3" : "py-2"); + }); + }); + + it("renders with button and handles click", () => { + const handleClick = vi.fn(); + + render( + + Test Title + Click me + + ); + + const button = screen.getByText("Click me"); + expect(button).toBeInTheDocument(); + fireEvent.click(button); + expect(handleClick).toHaveBeenCalledTimes(1); + }); + + it("applies custom className", () => { + const { container } = render( + + Test Title + + ); + + expect(container.firstChild).toHaveClass("custom-class"); + }); +}); diff --git a/apps/web/modules/ui/components/alert/index.tsx b/apps/web/modules/ui/components/alert/index.tsx index d9e3c89c6e..c17f7f4b4e 100644 --- a/apps/web/modules/ui/components/alert/index.tsx +++ b/apps/web/modules/ui/components/alert/index.tsx @@ -1,49 +1,141 @@ -import { VariantProps, cva } from "class-variance-authority"; -import * as React from "react"; -import { cn } from "@formbricks/lib/cn"; +"use client"; -const alertVariants = cva( - "relative w-full rounded-xl border p-3 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-3 [&>svg]:top-3 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-9", - { - variants: { - variant: { - default: "bg-background text-foreground", - destructive: - "text-destructive border-destructive/50 dark:border-destructive [&>svg]:text-destructive text-destructive", - info: "text-slate-800 bg-brand/5", - warning: "text-yellow-700 bg-yellow-50", - error: "border-error/50 dark:border-error [&>svg]:text-error text-error", - }, +import { VariantProps, cva } from "class-variance-authority"; +import { AlertCircle, AlertTriangle, CheckCircle2Icon, Info } from "lucide-react"; +import * as React from "react"; +import { createContext, useContext } from "react"; +import { cn } from "@formbricks/lib/cn"; +import { Button, ButtonProps } from "../button"; + +// Create a context to share variant and size with child components +interface AlertContextValue { + variant?: "default" | "error" | "warning" | "info" | "success" | null; + size?: "default" | "small" | null; +} + +const AlertContext = createContext({ + variant: "default", + size: "default", +}); + +const useAlertContext = () => useContext(AlertContext); + +// Define alert styles with variants +const alertVariants = cva("relative w-full rounded-lg border [&>svg]:size-4 [&>svg]:text-foreground", { + variants: { + variant: { + default: "text-foreground border-border", + error: + "text-error-foreground border-error/50 [&_button]:bg-error-background [&_button]:text-error-foreground [&_button:hover]:bg-error-background-muted", + warning: + "text-warning-foreground border-warning/50 [&_button]:bg-warning-background [&_button]:text-warning-foreground [&_button:hover]:bg-warning-background-muted", + info: "text-info-foreground border-info/50 [&_button]:bg-info-background [&_button]:text-info-foreground [&_button:hover]:bg-info-background-muted", + success: + "text-success-foreground border-success/50 [&_button]:bg-success-background [&_button]:text-success-foreground [&_button:hover]:bg-success-background-muted", }, - defaultVariants: { - variant: "default", + size: { + default: + "py-3 px-4 text-sm grid grid-cols-[1fr_auto] grid-rows-[auto_auto] gap-x-3 [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg~*]:pl-7", + small: + "px-3 py-2 text-xs flex items-center justify-between gap-2 [&>svg]:flex-shrink-0 [&_button]:text-xs [&_button]:bg-transparent [&_button:hover]:bg-transparent [&>svg~*]:pl-0", }, - } -); + }, + defaultVariants: { + variant: "default", + size: "default", + }, +}); + +const alertVariantIcons: Record<"default" | "error" | "warning" | "info" | "success", React.ReactNode> = { + default: null, + error: , + warning: , + info: , + success: , +}; const Alert = React.forwardRef< HTMLDivElement, - React.HTMLAttributes & - VariantProps & { dangerouslySetInnerHTML?: { __html: string } } ->(({ className, variant, ...props }, ref) => ( -
-)); + React.HTMLAttributes & VariantProps +>(({ className, variant, size, ...props }, ref) => { + const variantIcon = variant ? (variant !== "default" ? alertVariantIcons[variant] : null) : null; + + return ( + +
+ {variantIcon} + {props.children} +
+
+ ); +}); Alert.displayName = "Alert"; -const AlertTitle = React.forwardRef< - HTMLParagraphElement, - React.HTMLAttributes & { dangerouslySetInnerHTML?: { __html: string } } ->(({ className, ...props }, ref) => ( -
-)); +const AlertTitle = React.forwardRef>( + ({ className, ...props }, ref) => { + const { size } = useAlertContext(); + return ( +
+ ); + } +); + AlertTitle.displayName = "AlertTitle"; -const AlertDescription = React.forwardRef< - HTMLParagraphElement, - React.HTMLAttributes & { dangerouslySetInnerHTML?: { __html: string } } ->(({ className, ...props }, ref) => ( -
-)); +const AlertDescription = React.forwardRef>( + ({ className, ...props }, ref) => { + const { size } = useAlertContext(); + + return ( +