diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 3f82d01118..c9c6563e88 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -83,7 +83,7 @@ jobs: - uses: ./.github/actions/yarn-install - uses: ./.github/actions/cache-db - name: Run Tests - run: yarn test -- --integrationTestsOnly + run: VITEST_MODE=integration yarn test # TODO: Generate test results so we can upload them # - name: Upload Test Results # if: ${{ always() }} diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 4d78faf507..34fd4c1d08 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -16,4 +16,4 @@ jobs: - uses: ./.github/actions/yarn-install - run: yarn test -- --no-isolate # We could add different timezones here that we need to run our tests in - - run: TZ=America/Los_Angeles yarn test -- --timeZoneDependentTestsOnly --no-isolate + - run: TZ=America/Los_Angeles VITEST_MODE=timezone yarn test -- --no-isolate diff --git a/apps/api/v1/lib/helpers/verifyApiKey.test.ts b/apps/api/v1/lib/helpers/verifyApiKey.test.ts index 8dbe3504bc..1ec41081b8 100644 --- a/apps/api/v1/lib/helpers/verifyApiKey.test.ts +++ b/apps/api/v1/lib/helpers/verifyApiKey.test.ts @@ -73,8 +73,8 @@ describe("Verify API key - Unit Tests", () => { verifyKeyByHashedKey: vi.fn(), } as unknown as ApiKeyService; - vi.mocked(ApiKeyService).mockImplementation(() => mockApiKeyService); - vi.mocked(PrismaApiKeyRepository).mockImplementation(() => ({} as unknown as PrismaApiKeyRepository)); + vi.mocked(ApiKeyService).mockImplementation(function() { return mockApiKeyService; }); + vi.mocked(PrismaApiKeyRepository).mockImplementation(function() { return {} as unknown as PrismaApiKeyRepository; }); vi.mocked(isAdminGuard).mockReset(); vi.mocked(isLockedOrBlocked).mockReset(); diff --git a/apps/api/v1/test/lib/bookings/_post.test.ts b/apps/api/v1/test/lib/bookings/_post.test.ts index de13aeb627..c415a6cd2c 100644 --- a/apps/api/v1/test/lib/bookings/_post.test.ts +++ b/apps/api/v1/test/lib/bookings/_post.test.ts @@ -67,9 +67,9 @@ vi.mock("@calcom/features/webhooks/lib/sendOrSchedulePayload", () => ({ const mockFindOriginalRescheduledBooking = vi.fn(); vi.mock("@calcom/features/bookings/repositories/BookingRepository", () => ({ - BookingRepository: vi.fn().mockImplementation(() => ({ + BookingRepository: vi.fn().mockImplementation(function() { return { findOriginalRescheduledBooking: mockFindOriginalRescheduledBooking, - })), + }; }), })); vi.mock("@calcom/features/watchlist/operations/check-if-users-are-blocked.controller", () => ({ @@ -87,23 +87,25 @@ vi.mock("@calcom/features/di/containers/QualifiedHosts", () => ({ })); vi.mock("@calcom/features/bookings/lib/EventManager", () => ({ - default: vi.fn().mockImplementation(() => ({ - reschedule: vi.fn().mockResolvedValue({ - results: [], - referencesToCreate: [], - }), - create: vi.fn().mockResolvedValue({ - results: [], - referencesToCreate: [], - }), - update: vi.fn().mockResolvedValue({ - results: [], - referencesToCreate: [], - }), - createAllCalendarEvents: vi.fn().mockResolvedValue([]), - updateAllCalendarEvents: vi.fn().mockResolvedValue([]), - deleteEventsAndMeetings: vi.fn().mockResolvedValue([]), - })), + default: vi.fn().mockImplementation(function() { + return { + reschedule: vi.fn().mockResolvedValue({ + results: [], + referencesToCreate: [], + }), + create: vi.fn().mockResolvedValue({ + results: [], + referencesToCreate: [], + }), + update: vi.fn().mockResolvedValue({ + results: [], + referencesToCreate: [], + }), + createAllCalendarEvents: vi.fn().mockResolvedValue([]), + updateAllCalendarEvents: vi.fn().mockResolvedValue([]), + deleteEventsAndMeetings: vi.fn().mockResolvedValue([]), + }; + }), placeholderCreatedEvent: { results: [], referencesToCreate: [], @@ -146,10 +148,10 @@ vi.mock("@calcom/features/profile/repositories/ProfileRepository", () => ({ }, })); vi.mock("@calcom/features/flags/features.repository", () => ({ - FeaturesRepository: vi.fn().mockImplementation(() => ({ + FeaturesRepository: vi.fn().mockImplementation(function() { return { checkIfFeatureIsEnabledGlobally: vi.fn().mockResolvedValue(false), checkIfTeamHasFeature: vi.fn().mockResolvedValue(false), - })), + }; }), })); vi.mock("@calcom/features/webhooks/lib/getWebhooks", () => ({ diff --git a/apps/api/v1/test/lib/users/_post.test.ts b/apps/api/v1/test/lib/users/_post.test.ts index 09a9c34a1b..42f84bf329 100644 --- a/apps/api/v1/test/lib/users/_post.test.ts +++ b/apps/api/v1/test/lib/users/_post.test.ts @@ -35,9 +35,9 @@ vi.mock("@calcom/features/watchlist/operations/check-if-email-in-watchlist.contr const mockCreate = vi.fn(); vi.mock("@calcom/features/users/repositories/UserRepository", () => ({ - UserRepository: vi.fn().mockImplementation(() => ({ + UserRepository: vi.fn().mockImplementation(function() { return { create: mockCreate, - })), + }; }), })); vi.mock("@calcom/lib/auth/hashPassword", () => ({ diff --git a/apps/web/app/api/cron/selected-calendars/__tests__/cron.test.ts b/apps/web/app/api/cron/selected-calendars/__tests__/cron.test.ts index 0157e420d1..37037d4b1e 100644 --- a/apps/web/app/api/cron/selected-calendars/__tests__/cron.test.ts +++ b/apps/web/app/api/cron/selected-calendars/__tests__/cron.test.ts @@ -11,9 +11,9 @@ import { handleCreateSelectedCalendars, isSameEmail } from "../route"; const getPrimaryCalendarMock = vi.fn(); vi.mock("@calcom/app-store/googlecalendar/lib/CalendarService", () => { return { - default: vi.fn().mockImplementation(() => ({ + default: vi.fn().mockImplementation(function() { return { getPrimaryCalendar: getPrimaryCalendarMock, - })), + }; }), }; }); diff --git a/apps/web/app/api/routing-forms/queued-response/__tests__/queued-response.test.ts b/apps/web/app/api/routing-forms/queued-response/__tests__/queued-response.test.ts index 5eafdbe761..ec51b25d24 100644 --- a/apps/web/app/api/routing-forms/queued-response/__tests__/queued-response.test.ts +++ b/apps/web/app/api/routing-forms/queued-response/__tests__/queued-response.test.ts @@ -50,9 +50,9 @@ const mockQueuedFormResponse = { describe("queuedResponseHandler", () => { beforeEach(() => { - vi.mocked(RoutingFormResponseRepository).mockImplementation( - () => mockRoutingFormResponseRepository as any - ); + vi.mocked(RoutingFormResponseRepository).mockImplementation(function () { + return mockRoutingFormResponseRepository as any; + }); }); it("should process a queued form response", async () => { diff --git a/apps/web/app/api/social/og/image/__tests__/route.test.ts b/apps/web/app/api/social/og/image/__tests__/route.test.ts index 34512010ac..a7ec4c7681 100644 --- a/apps/web/app/api/social/og/image/__tests__/route.test.ts +++ b/apps/web/app/api/social/og/image/__tests__/route.test.ts @@ -6,14 +6,14 @@ import { getOGImageVersion } from "@calcom/lib/OgImages"; import { GET } from "../route"; vi.mock("next/og", () => ({ - ImageResponse: vi.fn().mockImplementation(() => ({ + ImageResponse: vi.fn().mockImplementation(function() { return { body: new ReadableStream({ start(controller) { controller.enqueue(new Uint8Array([1, 2, 3, 4])); controller.close(); }, }), - })), + }; }), })); vi.mock("@calcom/lib/OgImages", async (importOriginal) => { @@ -102,8 +102,11 @@ describe("GET /api/social/og/image", () => { }); describe("Server errors (500 Internal Server Error)", () => { - test("returns 500 when font loading fails", async () => { - vi.mocked(global.fetch).mockRejectedValue(new Error("Font loading failed")); + test("returns 500 when ImageResponse throws", async () => { + const { ImageResponse } = await import("next/og"); + vi.mocked(ImageResponse).mockImplementation(function () { + throw new Error("ImageResponse failed"); + }); const request = createNextRequest( "http://example.com/api/social/og/image?type=meeting&title=Test&meetingProfileName=John" diff --git a/apps/web/app/api/webhooks/retell-ai/__tests__/route.test.ts b/apps/web/app/api/webhooks/retell-ai/__tests__/route.test.ts index 785ae113ed..52331372c8 100644 --- a/apps/web/app/api/webhooks/retell-ai/__tests__/route.test.ts +++ b/apps/web/app/api/webhooks/retell-ai/__tests__/route.test.ts @@ -76,10 +76,10 @@ const mockSendCreditBalanceLimitReachedEmails = vi.fn(); const mockSendCreditBalanceLowWarningEmails = vi.fn(); vi.mock("@calcom/features/ee/billing/credit-service", () => ({ - CreditService: vi.fn().mockImplementation(() => ({ + CreditService: vi.fn().mockImplementation(function() { return { hasAvailableCredits: mockHasAvailableCredits, chargeCredits: mockChargeCredits, - })), + }; }), })); vi.mock("@calcom/emails/email-manager", () => ({ @@ -92,15 +92,15 @@ const mockFindByPhoneNumber = vi.fn(); const mockFindByProviderAgentId = vi.fn(); vi.mock("@calcom/features/calAIPhone/repositories/PrismaPhoneNumberRepository", () => ({ - PrismaPhoneNumberRepository: vi.fn().mockImplementation(() => ({ + PrismaPhoneNumberRepository: vi.fn().mockImplementation(function() { return { findByPhoneNumber: mockFindByPhoneNumber, - })), + }; }), })); vi.mock("@calcom/features/calAIPhone/repositories/PrismaAgentRepository", () => ({ - PrismaAgentRepository: vi.fn().mockImplementation(() => ({ + PrismaAgentRepository: vi.fn().mockImplementation(function() { return { findByProviderAgentId: mockFindByProviderAgentId, - })), + }; }), })); vi.mock("next/server", () => ({ diff --git a/apps/web/components/apps/routing-forms/TestFormDialog.test.tsx b/apps/web/components/apps/routing-forms/TestFormDialog.test.tsx index 9c4b7e6918..5f2b366b83 100644 --- a/apps/web/components/apps/routing-forms/TestFormDialog.test.tsx +++ b/apps/web/components/apps/routing-forms/TestFormDialog.test.tsx @@ -89,6 +89,10 @@ vi.mock("@calcom/lib/hooks/useLocale", () => ({ useLocale: vi.fn(() => ({ t: (key: string) => key })), })); +vi.mock("@calcom/features/ee/organizations/context/provider", () => ({ + useOrgBranding: vi.fn(() => null), +})); + let findTeamMembersMatchingAttributeLogicResponse: { result: { users: { email: string }[] } | null; checkedFallback: boolean; diff --git a/apps/web/components/dialog/__tests__/RerouteDialog.test.tsx b/apps/web/components/dialog/__tests__/RerouteDialog.test.tsx index 4848a8027e..b1143b244d 100644 --- a/apps/web/components/dialog/__tests__/RerouteDialog.test.tsx +++ b/apps/web/components/dialog/__tests__/RerouteDialog.test.tsx @@ -85,6 +85,10 @@ vi.mock("@calcom/lib/hooks/useLocale", () => ({ useLocale: vi.fn(() => ({ t: (key: string) => key })), })); +vi.mock("@calcom/features/ee/organizations/context/provider", () => ({ + useOrgBranding: vi.fn(() => null), +})); + vi.mock("@calcom/web/lib/hooks/useRouterQuery", () => ({ default: vi.fn(() => { return { diff --git a/apps/web/modules/users/views/users-public-view.test.tsx b/apps/web/modules/users/views/users-public-view.test.tsx index 407f2a6293..ef78043476 100644 --- a/apps/web/modules/users/views/users-public-view.test.tsx +++ b/apps/web/modules/users/views/users-public-view.test.tsx @@ -10,6 +10,14 @@ vi.mock("@calcom/lib/constants", async () => { return await vi.importActual("@calcom/lib/constants"); }); +vi.mock("@calcom/ee/organizations/lib/orgDomains", () => ({ + getOrgFullOrigin: vi.fn(), +})); + +vi.mock("@calcom/lib/hooks/useRouterQuery", () => ({ + useRouterQuery: vi.fn(), +})); + function mockedUserPageComponentProps(props: Partial>) { return { themeBasis: "dark", diff --git a/apps/web/test/lib/checkBookingLimits.test.ts b/apps/web/test/lib/checkBookingLimits.test.ts index 563fa66d89..c0bd694716 100644 --- a/apps/web/test/lib/checkBookingLimits.test.ts +++ b/apps/web/test/lib/checkBookingLimits.test.ts @@ -7,9 +7,9 @@ import { validateIntervalLimitOrder } from "@calcom/lib/intervalLimits/validateI const mockCountBookingsByEventTypeAndDateRange = vi.fn(); vi.mock("@calcom/features/bookings/repositories/BookingRepository", () => ({ - BookingRepository: vi.fn().mockImplementation(() => ({ + BookingRepository: vi.fn().mockImplementation(function() { return { countBookingsByEventTypeAndDateRange: mockCountBookingsByEventTypeAndDateRange, - })), + }; }), })); type Mockdata = { diff --git a/apps/web/test/lib/checkDurationLimits.test.ts b/apps/web/test/lib/checkDurationLimits.test.ts index 2d2c435558..ff3ca6cd6d 100644 --- a/apps/web/test/lib/checkDurationLimits.test.ts +++ b/apps/web/test/lib/checkDurationLimits.test.ts @@ -6,9 +6,9 @@ import { validateIntervalLimitOrder } from "@calcom/lib/intervalLimits/validateI const mockGetTotalBookingDuration = vi.fn(); vi.mock("@calcom/features/bookings/repositories/BookingRepository", () => ({ - BookingRepository: vi.fn().mockImplementation(() => ({ + BookingRepository: vi.fn().mockImplementation(function() { return { getTotalBookingDuration: mockGetTotalBookingDuration, - })), + }; }), })); type MockData = { diff --git a/apps/web/test/lib/getSchedule/restrictionSchedule.test.ts b/apps/web/test/lib/getSchedule/restrictionSchedule.test.ts index 257fc32f66..975c588449 100644 --- a/apps/web/test/lib/getSchedule/restrictionSchedule.test.ts +++ b/apps/web/test/lib/getSchedule/restrictionSchedule.test.ts @@ -18,13 +18,15 @@ import { setupAndTeardown } from "./setupAndTeardown"; // Mock the FeaturesRepository to enable restriction-schedule feature vi.mock("@calcom/features/flags/features.repository", () => ({ - FeaturesRepository: vi.fn().mockImplementation(() => ({ - checkIfTeamHasFeature: vi.fn().mockResolvedValue(true), - checkIfFeatureIsEnabledGlobally: vi.fn().mockResolvedValue(true), - getAllFeatures: vi.fn().mockResolvedValue([]), - getFeatureFlagMap: vi.fn().mockResolvedValue({}), - checkIfUserHasFeature: vi.fn().mockResolvedValue(true), - })), + FeaturesRepository: vi.fn().mockImplementation(function() { + return { + checkIfTeamHasFeature: vi.fn().mockResolvedValue(true), + checkIfFeatureIsEnabledGlobally: vi.fn().mockResolvedValue(true), + getAllFeatures: vi.fn().mockResolvedValue([]), + getFeatureFlagMap: vi.fn().mockResolvedValue({}), + checkIfUserHasFeature: vi.fn().mockResolvedValue(true), + }; + }), })); type ScheduleScenario = { diff --git a/apps/web/test/utils/bookingScenario/test.ts b/apps/web/test/utils/bookingScenario/test.ts index f91c3f9caf..890ce3461a 100644 --- a/apps/web/test/utils/bookingScenario/test.ts +++ b/apps/web/test/utils/bookingScenario/test.ts @@ -1,39 +1,39 @@ import { createOrganization } from "@calcom/web/test/utils/bookingScenario/bookingScenario"; -import type { TestFunction } from "vitest"; - import { WEBSITE_URL } from "@calcom/lib/constants"; import { test } from "@calcom/web/test/fixtures/fixtures"; import type { Fixtures } from "@calcom/web/test/fixtures/fixtures"; +type OrgContext = { + org: { + organization: { id: number | null }; + urlOrigin?: string; + } | null; +}; + const WEBSITE_PROTOCOL = new URL(WEBSITE_URL).protocol; const _testWithAndWithoutOrg = ( - description: Parameters[0], - fn: Parameters[1], - timeout: Parameters[2], + description: string, + fn: (context: Fixtures & OrgContext) => Promise | void, + timeout: number | undefined, mode: "only" | "skip" | "run" = "run" -) => { +): void => { const t = mode === "only" ? test.only : mode === "skip" ? test.skip : test; t( `${description} - With org`, - async ({ emails, sms, task, onTestFailed, expect, skip, onTestFinished }) => { + async ({ emails, sms }) => { const org = await createOrganization({ name: "Test Org", slug: "testorg", }); await fn({ - task, - onTestFailed, - expect, emails, sms, - skip, org: { organization: org, urlOrigin: `${WEBSITE_PROTOCOL}//${org.slug}.cal.local:3000`, }, - onTestFinished, }); }, timeout @@ -41,41 +41,31 @@ const _testWithAndWithoutOrg = ( t( `${description}`, - async ({ emails, sms, task, onTestFailed, expect, skip, onTestFinished }) => { + async ({ emails, sms }) => { await fn({ emails, sms, - task, - onTestFailed, - expect, - skip, org: null, - onTestFinished, }); }, timeout ); }; +type TestFunctionWithOrg = (context: Fixtures & OrgContext) => Promise | void; + export const testWithAndWithoutOrg = ( description: string, - fn: TestFunction< - Fixtures & { - org: { - organization: { id: number | null }; - urlOrigin?: string; - } | null; - } - >, + fn: TestFunctionWithOrg, timeout?: number -) => { +): void => { _testWithAndWithoutOrg(description, fn, timeout, "run"); }; -testWithAndWithoutOrg.only = ((description, fn, timeout) => { +testWithAndWithoutOrg.only = ((description: string, fn: TestFunctionWithOrg, timeout?: number): void => { _testWithAndWithoutOrg(description, fn, timeout, "only"); -}) as typeof _testWithAndWithoutOrg; +}) as typeof testWithAndWithoutOrg; -testWithAndWithoutOrg.skip = ((description, fn, timeout) => { +testWithAndWithoutOrg.skip = ((description: string, fn: TestFunctionWithOrg, timeout?: number): void => { _testWithAndWithoutOrg(description, fn, timeout, "skip"); -}) as typeof _testWithAndWithoutOrg; +}) as typeof testWithAndWithoutOrg; diff --git a/biome.json b/biome.json index 96783919f2..afc4318e1f 100644 --- a/biome.json +++ b/biome.json @@ -69,6 +69,16 @@ } }, "overrides": [ + { + "includes": ["**/*.test.ts", "**/*.test.tsx"], + "linter": { + "rules": { + "complexity": { + "useArrowFunction": "off" + } + } + } + }, { "includes": ["**/*.tsx"], "javascript": { @@ -76,11 +86,7 @@ } }, { - "includes": [ - "apps/web/app/**/page.tsx", - "apps/web/app/**/layout.tsx", - "apps/web/app/pages/**/*.tsx" - ], + "includes": ["apps/web/app/**/page.tsx", "apps/web/app/**/layout.tsx", "apps/web/app/pages/**/*.tsx"], "linter": { "rules": { "style": { diff --git a/package.json b/package.json index a2d6dcd4fa..6943c937dc 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "@snaplet/copycat": "4.1.0", "@testing-library/jest-dom": "5.17.0", "@testing-library/react": "16.0.1", - "@vitest/ui": "2.1.9", + "@vitest/ui": "4.0.16", "c8": "7.13.0", "checkly": "latest", "dotenv-checker": "1.1.5", @@ -113,9 +113,9 @@ "tsc-absolute": "1.0.0", "turbo": "2.7.1", "typescript": "5.9.3", - "vitest": "2.1.9", - "vitest-fetch-mock": "0.3.0", - "vitest-mock-extended": "2.0.2" + "vitest": "4.0.16", + "vitest-fetch-mock": "0.4.5", + "vitest-mock-extended": "3.1.0" }, "resolutions": { "types-ramda": "0.29.4", diff --git a/packages/app-store/_utils/testUtils.ts b/packages/app-store/_utils/testUtils.ts index 1bb2c1d1ea..d89bdcf6f4 100644 --- a/packages/app-store/_utils/testUtils.ts +++ b/packages/app-store/_utils/testUtils.ts @@ -32,7 +32,9 @@ export function generateTextResponse({ status?: number; statusText?: string; }) { - return new Response(text, { + // Status 204 (No Content) doesn't allow a body, so pass null for body + const body = status === 204 ? null : text; + return new Response(body, { status: status, statusText: statusText, }); diff --git a/packages/app-store/googlecalendar/lib/__mocks__/googleapis.ts b/packages/app-store/googlecalendar/lib/__mocks__/googleapis.ts index 6a736464a1..35164df022 100644 --- a/packages/app-store/googlecalendar/lib/__mocks__/googleapis.ts +++ b/packages/app-store/googlecalendar/lib/__mocks__/googleapis.ts @@ -32,7 +32,7 @@ const calendarMockImplementation = { const calendarMock = { calendar_v3: { - Calendar: vi.fn().mockImplementation(() => calendarMockImplementation), + Calendar: vi.fn().mockImplementation(function() { return calendarMockImplementation; }), }, }; const adminMock = { @@ -88,7 +88,7 @@ vi.mock("googleapis-common", async () => { const actual = await vi.importActual("googleapis-common"); return { ...actual, - OAuth2Client: vi.fn().mockImplementation((...args: [string, string, string]) => { + OAuth2Client: vi.fn().mockImplementation(function(...args: [string, string, string]) { lastCreatedOAuth2Client = { type: "oauth2", args, @@ -104,7 +104,7 @@ vi.mock("googleapis-common", async () => { }; return lastCreatedOAuth2Client; }), - JWT: vi.fn().mockImplementation((config: MockJWT["config"]) => { + JWT: vi.fn().mockImplementation(function(config: MockJWT["config"]) { lastCreatedJWT = { type: "jwt", config, diff --git a/packages/app-store/googlecalendar/lib/__tests__/utils.ts b/packages/app-store/googlecalendar/lib/__tests__/utils.ts index bb3570108a..5e85dafb13 100644 --- a/packages/app-store/googlecalendar/lib/__tests__/utils.ts +++ b/packages/app-store/googlecalendar/lib/__tests__/utils.ts @@ -177,7 +177,7 @@ export const createMockJWTInstance = ({ createGToken: vi.fn(), }; - vi.mocked(JWT).mockImplementation(() => { + vi.mocked(JWT).mockImplementation(function() { setLastCreatedJWT(mockJWTInstance); return mockJWTInstance as unknown as JWT; }); diff --git a/packages/app-store/office365video/lib/VideoApiAdapter.test.ts b/packages/app-store/office365video/lib/VideoApiAdapter.test.ts index d8939105a5..2b969b9113 100644 --- a/packages/app-store/office365video/lib/VideoApiAdapter.test.ts +++ b/packages/app-store/office365video/lib/VideoApiAdapter.test.ts @@ -34,7 +34,7 @@ vi.mock("../../_utils/getParsedAppKeysFromSlug", () => ({ const mockRequestRaw = vi.fn(); vi.mock("../../_utils/oauth/OAuthManager", () => ({ - OAuthManager: vi.fn().mockImplementation(() => { + OAuthManager: vi.fn().mockImplementation(function() { return { requestRaw: mockRequestRaw }; }), })); diff --git a/packages/app-store/routing-forms/lib/formSubmissionUtils.test.ts b/packages/app-store/routing-forms/lib/formSubmissionUtils.test.ts index fa07e65dd9..475ed63dc4 100644 --- a/packages/app-store/routing-forms/lib/formSubmissionUtils.test.ts +++ b/packages/app-store/routing-forms/lib/formSubmissionUtils.test.ts @@ -1,3 +1,6 @@ +/** + * @vitest-environment node + */ import "@calcom/lib/__mocks__/logger"; import { prisma } from "@calcom/prisma/__mocks__/prisma"; diff --git a/packages/app-store/salesforce/lib/__tests__/CrmService.integration.test.ts b/packages/app-store/salesforce/lib/__tests__/CrmService.integration.test.ts index 30e0960d2c..a5000ce060 100644 --- a/packages/app-store/salesforce/lib/__tests__/CrmService.integration.test.ts +++ b/packages/app-store/salesforce/lib/__tests__/CrmService.integration.test.ts @@ -39,7 +39,7 @@ vi.mock("@calcom/lib/constants", () => { vi.mock("@jsforce/jsforce-node", () => { return { default: { - Connection: vi.fn().mockImplementation(() => ({})), + Connection: vi.fn().mockImplementation(function() { return {}; }), }, }; }); @@ -116,13 +116,15 @@ describe("SalesforceCRMService", () => { // Override jsforce mock with our custom mock // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - Not full implementation of jsforce.Connection - vi.mocked(jsforce.Connection).mockImplementation(() => ({ - ...salesforceMock.mockConnection, - version: "1.0", - loginUrl: "https://test.salesforce.com", - instanceUrl: "https://test.salesforce.com", - accessToken: "123", - })); + vi.mocked(jsforce.Connection).mockImplementation(function() { + return { + ...salesforceMock.mockConnection, + version: "1.0", + loginUrl: "https://test.salesforce.com", + instanceUrl: "https://test.salesforce.com", + accessToken: "123", + }; + }); }); describe("createOnLeadAndSearchOnAccount", () => { diff --git a/packages/app-store/stripepayment/api/__tests__/paymentCallback.test.ts b/packages/app-store/stripepayment/api/__tests__/paymentCallback.test.ts index b88e2053db..27094f5331 100644 --- a/packages/app-store/stripepayment/api/__tests__/paymentCallback.test.ts +++ b/packages/app-store/stripepayment/api/__tests__/paymentCallback.test.ts @@ -20,11 +20,15 @@ vi.mock("@calcom/prisma", () => ({ vi.mock("../../lib/getCustomerAndCheckoutSession"); vi.mock("@calcom/features/auth/lib/sendVerificationRequest"); -vi.mock("@calcom/lib/server/service/VerificationTokenService"); +vi.mock("@calcom/lib/server/service/VerificationTokenService", () => ({ + VerificationTokenService: { + create: vi.fn(), + }, +})); const mockGetCustomerAndCheckoutSession = vi.mocked(getCustomerAndCheckoutSession); const mockSendVerificationRequest = vi.mocked(sendVerificationRequest); -const mockVerificationTokenService = vi.mocked(VerificationTokenService); +const mockVerificationTokenServiceCreate = vi.mocked(VerificationTokenService.create); // Type the mocked prisma properly const mockPrisma = prisma as unknown as { @@ -84,7 +88,7 @@ describe("paymentCallback", () => { username: "premium-user", } as any); // eslint-disable-line @typescript-eslint/no-explicit-any - mockVerificationTokenService.create.mockResolvedValue("test-token-123"); + mockVerificationTokenServiceCreate.mockResolvedValue("test-token-123"); mockSendVerificationRequest.mockResolvedValue(undefined); }); @@ -94,12 +98,12 @@ describe("paymentCallback", () => { await handler(mockReq as NextApiRequest, mockRes as NextApiResponse); - expect(mockVerificationTokenService.create).toHaveBeenCalledWith({ + expect(mockVerificationTokenServiceCreate).toHaveBeenCalledWith({ identifier: "test@example.com", expires: expect.any(Date), }); - const callArgs = mockVerificationTokenService.create.mock.calls[0][0]; + const callArgs = mockVerificationTokenServiceCreate.mock.calls[0][0]; const expiresDate = callArgs.expires; const now = Date.now(); const oneDayInMs = 86400 * 1000; @@ -124,7 +128,7 @@ describe("paymentCallback", () => { const { default: handler } = await import("../paymentCallback"); const callOrder: string[] = []; - mockVerificationTokenService.create.mockImplementation(async () => { + mockVerificationTokenServiceCreate.mockImplementation(async function () { callOrder.push("create-token"); return "test-token"; }); @@ -154,7 +158,7 @@ describe("paymentCallback", () => { await handler(mockReq as NextApiRequest, mockRes as NextApiResponse); - expect(mockVerificationTokenService.create).not.toHaveBeenCalled(); + expect(mockVerificationTokenServiceCreate).not.toHaveBeenCalled(); expect(mockSendVerificationRequest).not.toHaveBeenCalled(); }); @@ -173,7 +177,7 @@ describe("paymentCallback", () => { await handler(mockReq as NextApiRequest, mockRes as NextApiResponse); - expect(mockVerificationTokenService.create).toHaveBeenCalledWith({ + expect(mockVerificationTokenServiceCreate).toHaveBeenCalledWith({ identifier: "different@example.com", // Should use user.email from found user expires: expect.any(Date), }); @@ -188,7 +192,7 @@ describe("paymentCallback", () => { return {} as any; // eslint-disable-line @typescript-eslint/no-explicit-any }); - mockVerificationTokenService.create.mockImplementation(async () => { + mockVerificationTokenServiceCreate.mockImplementation(async function () { callOrder.push("create-token"); return "token"; }); @@ -225,7 +229,7 @@ describe("paymentCallback", () => { expect((error as HttpError).statusCode).toBe(404); } - expect(mockVerificationTokenService.create).not.toHaveBeenCalled(); + expect(mockVerificationTokenServiceCreate).not.toHaveBeenCalled(); }); it("should not create verification token when user is not found", async () => { @@ -240,7 +244,7 @@ describe("paymentCallback", () => { expect((error as HttpError).statusCode).toBe(404); } - expect(mockVerificationTokenService.create).not.toHaveBeenCalled(); + expect(mockVerificationTokenServiceCreate).not.toHaveBeenCalled(); }); it("should use user email if stripe customer email is missing", async () => { @@ -257,7 +261,7 @@ describe("paymentCallback", () => { await handler(mockReq as NextApiRequest, mockRes as NextApiResponse); - expect(mockVerificationTokenService.create).toHaveBeenCalledWith({ + expect(mockVerificationTokenServiceCreate).toHaveBeenCalledWith({ identifier: "test@example.com", // Should use user.email expires: expect.any(Date), }); diff --git a/packages/app-store/stripepayment/api/__tests__/portal.test.ts b/packages/app-store/stripepayment/api/__tests__/portal.test.ts index 4a3a29253e..f20033f744 100644 --- a/packages/app-store/stripepayment/api/__tests__/portal.test.ts +++ b/packages/app-store/stripepayment/api/__tests__/portal.test.ts @@ -124,7 +124,9 @@ describe("Portal API - Service-Based Architecture", () => { mockTeamRepo = { findById: vi.fn(), }; - mockTeamRepository.mockImplementation(() => mockTeamRepo as unknown as TeamRepository); + mockTeamRepository.mockImplementation(function () { + return mockTeamRepo as unknown as TeamRepository; + }); }); it("should create OrganizationBillingPortalService for organizations", async () => { @@ -167,14 +169,16 @@ describe("Portal API - Service-Based Architecture", () => { checkPermission: vi.fn().mockResolvedValue(true), }; - vi.mocked(PermissionCheckService).mockImplementation( - () => mockPermissionServiceInstance as unknown as PermissionCheckService - ); + vi.mocked(PermissionCheckService).mockImplementation(function () { + return mockPermissionServiceInstance as unknown as PermissionCheckService; + }); const mockTeamRepo: MockTeamRepository = { findById: vi.fn(), }; - mockTeamRepository.mockImplementation(() => mockTeamRepo as unknown as TeamRepository); + mockTeamRepository.mockImplementation(function () { + return mockTeamRepo as unknown as TeamRepository; + }); service = new TeamBillingPortalService(); }); @@ -201,9 +205,9 @@ describe("Portal API - Service-Based Architecture", () => { checkPermission: vi.fn().mockResolvedValue(true), }; - vi.mocked(PermissionCheckService).mockImplementation( - () => mockPermissionServiceInstance as unknown as PermissionCheckService - ); + vi.mocked(PermissionCheckService).mockImplementation(function () { + return mockPermissionServiceInstance as unknown as PermissionCheckService; + }); service = new OrganizationBillingPortalService(); }); diff --git a/packages/app-store/tests/__mocks__/OAuthManager.ts b/packages/app-store/tests/__mocks__/OAuthManager.ts index b7c536324f..7855360971 100644 --- a/packages/app-store/tests/__mocks__/OAuthManager.ts +++ b/packages/app-store/tests/__mocks__/OAuthManager.ts @@ -28,16 +28,16 @@ export default oAuthManagerMock; const setFullMockOAuthManagerRequest = () => { useFullMockOAuthManagerRequest = true; }; -const defaultMockOAuthManager = vi.fn().mockImplementation(() => { +const defaultMockOAuthManager = vi.fn().mockImplementation(function() { return { - getTokenObjectOrFetch: vi.fn().mockImplementation(() => { + getTokenObjectOrFetch: vi.fn().mockImplementation(function() { return { token: { access_token: "FAKE_ACCESS_TOKEN", }, }; }), - request: vi.fn().mockImplementation((fn) => { + request: vi.fn().mockImplementation(function(fn) { if (useFullMockOAuthManagerRequest) { console.log("OAuthManager.request full mock being used"); return oAuthManagerRequestFullMock(fn); diff --git a/packages/emails/email-manager.test.ts b/packages/emails/email-manager.test.ts index 6a592c3b99..5cb96c8f8b 100644 --- a/packages/emails/email-manager.test.ts +++ b/packages/emails/email-manager.test.ts @@ -7,9 +7,9 @@ import { shouldSkipAttendeeEmailWithSettings, fetchOrganizationEmailSettings } f const mockGetEmailSettings = vi.fn(); vi.mock("@calcom/features/organizations/repositories/OrganizationSettingsRepository", () => ({ - OrganizationSettingsRepository: vi.fn().mockImplementation(() => ({ + OrganizationSettingsRepository: vi.fn().mockImplementation(function() { return { getEmailSettings: mockGetEmailSettings, - })), + }; }), })); vi.mock("@calcom/prisma", () => ({ diff --git a/packages/embeds/embed-core/package.json b/packages/embeds/embed-core/package.json index a4f282a588..3441d4292f 100644 --- a/packages/embeds/embed-core/package.json +++ b/packages/embeds/embed-core/package.json @@ -45,13 +45,13 @@ "@playwright/test": "1.57.0", "@tailwindcss/cli": "4.1.16", "@tailwindcss/postcss": "4.1.15", - "@vitejs/plugin-basic-ssl": "1.1.0", + "@vitejs/plugin-basic-ssl": "2.1.0", "autoprefixer": "10.4.19", "npm-run-all": "4.1.5", "postcss": "8.5.6", "tailwindcss": "4.1.17", "typescript": "5.9.3", - "vite": "4.5.14", + "vite": "6.4.1", "vite-plugin-environment": "1.1.3" } } diff --git a/packages/embeds/embed-core/src/ModalBox/ModalBox.ts b/packages/embeds/embed-core/src/ModalBox/ModalBox.ts index 5a41e8b1f2..83f0377202 100644 --- a/packages/embeds/embed-core/src/ModalBox/ModalBox.ts +++ b/packages/embeds/embed-core/src/ModalBox/ModalBox.ts @@ -1,6 +1,6 @@ import { EmbedElement } from "../EmbedElement"; import { getErrorString } from "../lib/utils"; -import loaderCss from "../loader.css"; +import loaderCss from "../loader.css?inline"; import modalBoxHtml, { getSkeletonData } from "./ModalBoxHtml"; export class ModalBox extends EmbedElement { diff --git a/packages/embeds/embed-core/src/embed.test.ts b/packages/embeds/embed-core/src/embed.test.ts index fd2a78484e..7418026b5d 100644 --- a/packages/embeds/embed-core/src/embed.test.ts +++ b/packages/embeds/embed-core/src/embed.test.ts @@ -735,6 +735,9 @@ describe("Cal", () => { }; // Reset document.querySelector mock before each test vi.restoreAllMocks(); + // Mock document.querySelector to return null by default (no existing modal) + // This prevents isInFailedState from being true + vi.spyOn(document, "querySelector").mockReturnValue(null); }); it("should return fullReload when cal link is different", () => { diff --git a/packages/embeds/embed-core/src/embed.ts b/packages/embeds/embed-core/src/embed.ts index 8e45e6ec39..1c6effb92d 100644 --- a/packages/embeds/embed-core/src/embed.ts +++ b/packages/embeds/embed-core/src/embed.ts @@ -8,7 +8,7 @@ import { EMBED_MODAL_PRERENDER_PREVENT_THRESHOLD_MS, } from "./constants"; import type { InterfaceWithParent, interfaceWithParent } from "./embed-iframe"; -import css from "./embed.css"; +import css from "./embed.css?inline"; import { getScrollableAncestor } from "./lib/domUtils"; import { getScrollByDistanceHandler } from "./lib/eventHandlers/scrollByDistanceEventHandler"; import { diff --git a/packages/embeds/embed-react/package.json b/packages/embeds/embed-react/package.json index 03bf6c7ce0..ff4a262dc4 100644 --- a/packages/embeds/embed-react/package.json +++ b/packages/embeds/embed-react/package.json @@ -19,7 +19,7 @@ "embed-tests": "yarn playwright test --config=./playwright/config/playwright.config.ts", "embed-tests-quick": "QUICK=true yarn embed-tests", "embed-tests-update-snapshots:ci": "yarn embed-tests-quick --update-snapshots", - "packaged:tests": "cd test/packaged && yarn tsc --noEmit && yarn run -T test -- --packaged-embed-tests-only", + "packaged:tests": "cd test/packaged && yarn tsc --noEmit && VITEST_MODE=packaged-embed yarn run -T test", "withEmbedPublishEnv": "NEXT_PUBLIC_EMBED_LIB_URL='https://app.cal.com/embed/embed.js' NEXT_PUBLIC_WEBAPP_URL='https://app.cal.com' yarn", "prepack": "yarn ../../../ lint --filter='@calcom/embed-react' && yarn withEmbedPublishEnv build && yarn packaged:tests", "embed-web-start": "yarn workspace @calcom/web start", @@ -47,10 +47,10 @@ "@playwright/test": "1.57.0", "@types/react": "18.0.26", "@types/react-dom": "18.2.6", - "@vitejs/plugin-react": "2.2.0", + "@vitejs/plugin-react": "5.1.2", "npm-run-all": "4.1.5", "typescript": "5.9.3", - "vite": "4.5.14" + "vite": "6.4.1" }, "dependencies": { "@calcom/embed-core": "workspace:*", diff --git a/packages/embeds/embed-snippet/package.json b/packages/embeds/embed-snippet/package.json index 24dd1bebdf..0520b083b4 100644 --- a/packages/embeds/embed-snippet/package.json +++ b/packages/embeds/embed-snippet/package.json @@ -26,7 +26,7 @@ "types": "./dist/index.d.ts", "devDependencies": { "typescript": "5.9.3", - "vite": "4.5.14" + "vite": "6.4.1" }, "dependencies": { "@calcom/embed-core": "workspace:*" diff --git a/packages/features/auth/lib/next-auth-options.test.ts b/packages/features/auth/lib/next-auth-options.test.ts index bc2d3b2cc9..17fd6c86c3 100644 --- a/packages/features/auth/lib/next-auth-options.test.ts +++ b/packages/features/auth/lib/next-auth-options.test.ts @@ -23,9 +23,9 @@ const mockFindByEmailAndIncludeProfilesAndPassword = vi.fn(); vi.mock("@calcom/features/users/repositories/UserRepository", () => { return { - UserRepository: vi.fn().mockImplementation(() => ({ + UserRepository: vi.fn().mockImplementation(function() { return { findByEmailAndIncludeProfilesAndPassword: mockFindByEmailAndIncludeProfilesAndPassword, - })), + }; }), }; }); diff --git a/packages/features/booking-audit/lib/service/__tests__/BookingAuditAccessService.test.ts b/packages/features/booking-audit/lib/service/__tests__/BookingAuditAccessService.test.ts index ca04e18e7d..d3c61a502c 100644 --- a/packages/features/booking-audit/lib/service/__tests__/BookingAuditAccessService.test.ts +++ b/packages/features/booking-audit/lib/service/__tests__/BookingAuditAccessService.test.ts @@ -130,9 +130,9 @@ describe("BookingAuditAccessService - Permission Checks", () => { checkPermission: vi.fn(), }; - vi.mocked(BookingRepository).mockImplementation(() => mockBookingRepository as unknown as BookingRepository); - vi.mocked(MembershipRepository).mockImplementation(() => mockMembershipRepository as unknown as MembershipRepository); - vi.mocked(PermissionCheckService).mockImplementation(() => mockPermissionCheckService as unknown as PermissionCheckService); + vi.mocked(BookingRepository).mockImplementation(function() { return mockBookingRepository as unknown as BookingRepository; }); + vi.mocked(MembershipRepository).mockImplementation(function() { return mockMembershipRepository as unknown as MembershipRepository; }); + vi.mocked(PermissionCheckService).mockImplementation(function() { return mockPermissionCheckService as unknown as PermissionCheckService; }); service = new BookingAuditAccessService({ bookingRepository: mockBookingRepository as unknown as BookingRepository, diff --git a/packages/features/booking-audit/lib/service/__tests__/BookingAuditViewerService.test.ts b/packages/features/booking-audit/lib/service/__tests__/BookingAuditViewerService.test.ts index 61449dcbff..50d6be6cca 100644 --- a/packages/features/booking-audit/lib/service/__tests__/BookingAuditViewerService.test.ts +++ b/packages/features/booking-audit/lib/service/__tests__/BookingAuditViewerService.test.ts @@ -144,10 +144,10 @@ describe("BookingAuditViewerService - Integration Tests", () => { error: vi.fn(), }; - vi.mocked(BookingRepository).mockImplementation(() => mockBookingRepository as unknown as BookingRepository); - vi.mocked(UserRepository).mockImplementation(() => mockUserRepository as unknown as UserRepository); - vi.mocked(MembershipRepository).mockImplementation(() => mockMembershipRepository as unknown as MembershipRepository); - vi.mocked(PermissionCheckService).mockImplementation(() => mockPermissionCheckService as unknown as PermissionCheckService); + vi.mocked(BookingRepository).mockImplementation(function() { return mockBookingRepository as unknown as BookingRepository; }); + vi.mocked(UserRepository).mockImplementation(function() { return mockUserRepository as unknown as UserRepository; }); + vi.mocked(MembershipRepository).mockImplementation(function() { return mockMembershipRepository as unknown as MembershipRepository; }); + vi.mocked(PermissionCheckService).mockImplementation(function() { return mockPermissionCheckService as unknown as PermissionCheckService; }); service = new BookingAuditViewerService({ bookingAuditRepository: mockBookingAuditRepository as unknown as IBookingAuditRepository, diff --git a/packages/features/bookings/lib/getAllCredentialsForUsersOnEvent/getAllCredentials.test.ts b/packages/features/bookings/lib/getAllCredentialsForUsersOnEvent/getAllCredentials.test.ts index 25daaf47a1..0b8b9f155a 100644 --- a/packages/features/bookings/lib/getAllCredentialsForUsersOnEvent/getAllCredentials.test.ts +++ b/packages/features/bookings/lib/getAllCredentialsForUsersOnEvent/getAllCredentials.test.ts @@ -11,9 +11,9 @@ import { UserRepository } from "@calcom/features/users/repositories/UserReposito vi.mock("@calcom/features/users/repositories/UserRepository", () => { return { - UserRepository: vi.fn().mockImplementation(() => ({ + UserRepository: vi.fn().mockImplementation(function() { return { enrichUserWithItsProfile: vi.fn(), - })), + }; }), }; }); @@ -25,12 +25,11 @@ describe("getAllCredentialsIncludeServiceAccountKey", () => { const mockUserRepository = vi.mocked(UserRepository); if (mockUserRepository && typeof mockUserRepository.mockImplementation === "function") { - mockUserRepository.mockImplementation( - () => - ({ - enrichUserWithItsProfile: mockEnrichUserWithItsProfile, - } as any) - ); + mockUserRepository.mockImplementation(function () { + return { + enrichUserWithItsProfile: mockEnrichUserWithItsProfile, + } as InstanceType; + }); } const getAllCredentialsIncludeServiceAccountKey = (await import("./getAllCredentials")) @@ -80,12 +79,11 @@ describe("getAllCredentialsIncludeServiceAccountKey", () => { const mockUserRepository = vi.mocked(UserRepository); if (mockUserRepository && typeof mockUserRepository.mockImplementation === "function") { - mockUserRepository.mockImplementation( - () => - ({ - enrichUserWithItsProfile: mockEnrichUserWithItsProfile, - } as any) - ); + mockUserRepository.mockImplementation(function () { + return { + enrichUserWithItsProfile: mockEnrichUserWithItsProfile, + } as InstanceType; + }); } const getAllCredentialsIncludeServiceAccountKey = (await import("./getAllCredentials")) @@ -164,12 +162,11 @@ describe("getAllCredentialsIncludeServiceAccountKey", () => { const mockUserRepository = vi.mocked(UserRepository); if (mockUserRepository && typeof mockUserRepository.mockImplementation === "function") { - mockUserRepository.mockImplementation( - () => - ({ - enrichUserWithItsProfile: mockEnrichUserWithItsProfile, - } as any) - ); + mockUserRepository.mockImplementation(function () { + return { + enrichUserWithItsProfile: mockEnrichUserWithItsProfile, + } as InstanceType; + }); } const getAllCredentialsIncludeServiceAccountKey = (await import("./getAllCredentials")) @@ -241,12 +238,11 @@ describe("getAllCredentialsIncludeServiceAccountKey", () => { const mockUserRepository = vi.mocked(UserRepository); if (mockUserRepository && typeof mockUserRepository.mockImplementation === "function") { - mockUserRepository.mockImplementation( - () => - ({ - enrichUserWithItsProfile: mockEnrichUserWithItsProfile, - } as any) - ); + mockUserRepository.mockImplementation(function () { + return { + enrichUserWithItsProfile: mockEnrichUserWithItsProfile, + } as InstanceType; + }); } const getAllCredentialsIncludeServiceAccountKey = (await import("./getAllCredentials")) @@ -346,12 +342,11 @@ describe("getAllCredentialsIncludeServiceAccountKey", () => { const mockUserRepository = vi.mocked(UserRepository); if (mockUserRepository && typeof mockUserRepository.mockImplementation === "function") { - mockUserRepository.mockImplementation( - () => - ({ - enrichUserWithItsProfile: mockEnrichUserWithItsProfile, - } as any) - ); + mockUserRepository.mockImplementation(function () { + return { + enrichUserWithItsProfile: mockEnrichUserWithItsProfile, + } as InstanceType; + }); } const crmCredential = { @@ -669,12 +664,11 @@ describe("getAllCredentialsIncludeServiceAccountKey", () => { const mockUserRepository = vi.mocked(UserRepository); if (mockUserRepository && typeof mockUserRepository.mockImplementation === "function") { - mockUserRepository.mockImplementation( - () => - ({ - enrichUserWithItsProfile: mockEnrichUserWithItsProfile, - } as any) - ); + mockUserRepository.mockImplementation(function () { + return { + enrichUserWithItsProfile: mockEnrichUserWithItsProfile, + } as InstanceType; + }); } const crmCredential = { diff --git a/packages/features/bookings/lib/handleNewBooking/test/booking-validations.test.ts b/packages/features/bookings/lib/handleNewBooking/test/booking-validations.test.ts index 79e9ea06cf..507ec19fdb 100644 --- a/packages/features/bookings/lib/handleNewBooking/test/booking-validations.test.ts +++ b/packages/features/bookings/lib/handleNewBooking/test/booking-validations.test.ts @@ -39,7 +39,7 @@ vi.mock("@calcom/features/users/repositories/UserRepository", async (importOrigi return { ...actual, - UserRepository: vi.fn().mockImplementation((prisma) => { + UserRepository: vi.fn(function (prisma) { const realInstance = new OriginalUserRepository(prisma); realInstance.findManyByEmailsWithEmailVerificationSettings = mockFindManyByEmailsWithEmailVerificationSettings; diff --git a/packages/features/bookings/lib/handleNewBooking/test/buildEventForTeamEventType.test.ts b/packages/features/bookings/lib/handleNewBooking/test/buildEventForTeamEventType.test.ts index de7175f224..d61f58c267 100644 --- a/packages/features/bookings/lib/handleNewBooking/test/buildEventForTeamEventType.test.ts +++ b/packages/features/bookings/lib/handleNewBooking/test/buildEventForTeamEventType.test.ts @@ -25,10 +25,12 @@ vi.mock("@calcom/features/CalendarEventBuilder", () => { fromEvent: vi.fn().mockImplementation((_evt) => ({ withDestinationCalendar: withDestinationCalendarSpy, withTeam: withTeamSpy, - build: vi.fn().mockImplementation(() => ({ - destinationCalendar: [], - team: {}, // <- you won't use this result anyway - })), + build: vi.fn().mockImplementation(function() { + return { + destinationCalendar: [], + team: {}, // <- you won't use this result anyway + }; + }), })), }, }; diff --git a/packages/features/bookings/lib/handleSeats/test/handleSeats.test.ts b/packages/features/bookings/lib/handleSeats/test/handleSeats.test.ts index 6198cd3d5d..e10ab3c451 100644 --- a/packages/features/bookings/lib/handleSeats/test/handleSeats.test.ts +++ b/packages/features/bookings/lib/handleSeats/test/handleSeats.test.ts @@ -33,9 +33,11 @@ describe("handleSeats", () => { describe("Correct parameters being passed into handleSeats from handleNewBooking", () => { vi.mock("./handleSeats"); + test("On new booking handleSeats is not called", async () => { const handleNewBooking = getNewBookingHandler(); const spy = vi.spyOn(handleSeatsModule, "default"); + spy.mockClear(); const booker = getBooker({ email: "booker@example.com", @@ -97,6 +99,7 @@ describe("handleSeats", () => { test("handleSeats is called when a new attendee is added", async () => { const spy = vi.spyOn(handleSeatsModule, "default"); + spy.mockClear(); const handleNewBooking = getNewBookingHandler(); const booker = getBooker({ @@ -242,6 +245,7 @@ describe("handleSeats", () => { test("handleSeats is called on rescheduling a seated event", async () => { const spy = vi.spyOn(handleSeatsModule, "default"); + spy.mockClear(); const handleNewBooking = getNewBookingHandler(); const booker = getBooker({ diff --git a/packages/features/bookings/lib/payment/handleNoShowFee.test.ts b/packages/features/bookings/lib/payment/handleNoShowFee.test.ts index b33e56dbe3..a9bb6d6cd7 100644 --- a/packages/features/bookings/lib/payment/handleNoShowFee.test.ts +++ b/packages/features/bookings/lib/payment/handleNoShowFee.test.ts @@ -14,9 +14,9 @@ import { handleNoShowFee } from "./handleNoShowFee"; vi.mock("@calcom/app-store/payment.services.generated", () => ({ PaymentServiceMap: { stripepayment: Promise.resolve({ - PaymentService: vi.fn().mockImplementation(() => ({ + PaymentService: vi.fn().mockImplementation(function() { return { chargeCard: vi.fn(), - })), + }; }), }), }, })); @@ -43,9 +43,9 @@ vi.mock("@calcom/features/membership/repositories/MembershipRepository", () => ( })); vi.mock("@calcom/features/ee/teams/repositories/TeamRepository", () => ({ - TeamRepository: vi.fn().mockImplementation(() => ({ + TeamRepository: vi.fn().mockImplementation(function() { return { findParentOrganizationByTeamId: vi.fn(), - })), + }; }), })); vi.mock("@calcom/prisma", () => ({ @@ -62,7 +62,7 @@ describe("handleNoShowFee", () => { }; const paymentServiceModule = await PaymentServiceMap.stripepayment; - vi.mocked(paymentServiceModule.PaymentService).mockImplementation(() => mockPaymentService); + vi.mocked(paymentServiceModule.PaymentService).mockImplementation(function() { return mockPaymentService; }); }); const mockBooking = { @@ -211,7 +211,7 @@ describe("handleNoShowFee", () => { const mockTeamRepository = { findParentOrganizationByTeamId: vi.fn().mockResolvedValue({ id: 2 }), }; - vi.mocked(TeamRepository).mockImplementation(() => mockTeamRepository); + vi.mocked(TeamRepository).mockImplementation(function() { return mockTeamRepository; }); const result = await handleNoShowFee({ booking: teamBooking, diff --git a/packages/features/bookings/services/BookingAccessService.test.ts b/packages/features/bookings/services/BookingAccessService.test.ts index 0b52ffedd3..2365de50cf 100644 --- a/packages/features/bookings/services/BookingAccessService.test.ts +++ b/packages/features/bookings/services/BookingAccessService.test.ts @@ -40,8 +40,8 @@ describe("BookingAccessService", () => { checkPermission: vi.fn(), }; - vi.mocked(BookingRepository).mockImplementation(() => mockBookingRepo as any); - vi.mocked(UserRepository).mockImplementation(() => mockUserRepo as any); + vi.mocked(BookingRepository).mockImplementation(function() { return mockBookingRepo as any; }); + vi.mocked(UserRepository).mockImplementation(function() { return mockUserRepo as any; }); service = new BookingAccessService(mockPrismaClient); diff --git a/packages/features/calAIPhone/AIPhoneServiceRegistry.test.ts b/packages/features/calAIPhone/AIPhoneServiceRegistry.test.ts index d94fd47374..eb4e0b2c1b 100644 --- a/packages/features/calAIPhone/AIPhoneServiceRegistry.test.ts +++ b/packages/features/calAIPhone/AIPhoneServiceRegistry.test.ts @@ -16,13 +16,15 @@ import { AIPhoneServiceProviderType } from "./interfaces/AIPhoneService.interfac vi.stubEnv("RETELL_AI_KEY", "test-api-key"); vi.mock("./providers/retellAI", () => ({ - RetellAIPhoneServiceProviderFactory: vi.fn().mockImplementation(() => ({ - create: vi.fn().mockReturnValue({ - setupConfiguration: vi.fn(), - createPhoneCall: vi.fn(), - createPhoneNumber: vi.fn(), - }), - })), + RetellAIPhoneServiceProviderFactory: vi.fn().mockImplementation(function() { + return { + create: vi.fn().mockReturnValue({ + setupConfiguration: vi.fn(), + createPhoneCall: vi.fn(), + createPhoneNumber: vi.fn(), + }), + }; + }), })); describe("AIPhoneServiceRegistry", () => { diff --git a/packages/features/calAIPhone/providers/retellAI/RetellAIPhoneServiceProviderFactory.test.ts b/packages/features/calAIPhone/providers/retellAI/RetellAIPhoneServiceProviderFactory.test.ts index 5eebe7081e..e391195894 100644 --- a/packages/features/calAIPhone/providers/retellAI/RetellAIPhoneServiceProviderFactory.test.ts +++ b/packages/features/calAIPhone/providers/retellAI/RetellAIPhoneServiceProviderFactory.test.ts @@ -19,50 +19,54 @@ vi.mock("@calcom/lib/logger", () => ({ })); vi.mock("./RetellSDKClient", () => ({ - RetellSDKClient: vi.fn().mockImplementation((logger) => ({ - logger, - createLLM: vi.fn(), - getLLM: vi.fn(), - updateLLM: vi.fn(), - deleteLLM: vi.fn(), - createOutboundAgent: vi.fn(), - getAgent: vi.fn(), - updateAgent: vi.fn(), - deleteAgent: vi.fn(), - createPhoneNumber: vi.fn(), - importPhoneNumber: vi.fn(), - deletePhoneNumber: vi.fn(), - getPhoneNumber: vi.fn(), - updatePhoneNumber: vi.fn(), - createPhoneCall: vi.fn(), - })), + RetellSDKClient: vi.fn().mockImplementation(function (logger) { + return { + logger, + createLLM: vi.fn(), + getLLM: vi.fn(), + updateLLM: vi.fn(), + deleteLLM: vi.fn(), + createOutboundAgent: vi.fn(), + getAgent: vi.fn(), + updateAgent: vi.fn(), + deleteAgent: vi.fn(), + createPhoneNumber: vi.fn(), + importPhoneNumber: vi.fn(), + deletePhoneNumber: vi.fn(), + getPhoneNumber: vi.fn(), + updatePhoneNumber: vi.fn(), + createPhoneCall: vi.fn(), + }; + }), })); vi.mock("./RetellAIPhoneServiceProvider", () => ({ RetellAIPhoneServiceProvider: vi .fn() - .mockImplementation((repository, agentRepository, phoneNumberRepository, transactionManager) => ({ - repository, - agentRepository, - phoneNumberRepository, - transactionManager, - setupConfiguration: vi.fn(), - deleteConfiguration: vi.fn(), - updateLLMConfiguration: vi.fn(), - getLLMDetails: vi.fn(), - getAgent: vi.fn(), - updateAgent: vi.fn(), - createPhoneCall: vi.fn(), - createPhoneNumber: vi.fn(), - deletePhoneNumber: vi.fn(), - getPhoneNumber: vi.fn(), - updatePhoneNumber: vi.fn(), - importPhoneNumber: vi.fn(), - })), + .mockImplementation(function (repository, agentRepository, phoneNumberRepository, transactionManager) { + return { + repository, + agentRepository, + phoneNumberRepository, + transactionManager, + setupConfiguration: vi.fn(), + deleteConfiguration: vi.fn(), + updateLLMConfiguration: vi.fn(), + getLLMDetails: vi.fn(), + getAgent: vi.fn(), + updateAgent: vi.fn(), + createPhoneCall: vi.fn(), + createPhoneNumber: vi.fn(), + deletePhoneNumber: vi.fn(), + getPhoneNumber: vi.fn(), + updatePhoneNumber: vi.fn(), + importPhoneNumber: vi.fn(), + }; + }), })); vi.mock("../adapters/PrismaAgentRepositoryAdapter", () => ({ - PrismaAgentRepositoryAdapter: vi.fn().mockImplementation(() => ({ + PrismaAgentRepositoryAdapter: vi.fn().mockImplementation(function() { return { canManageTeamResources: vi.fn(), findByIdWithUserAccess: vi.fn(), findByProviderAgentIdWithUserAccess: vi.fn(), @@ -73,11 +77,11 @@ vi.mock("../adapters/PrismaAgentRepositoryAdapter", () => ({ findByIdWithCallAccess: vi.fn(), delete: vi.fn(), linkOutboundAgentToWorkflow: vi.fn(), - })), + }; }), })); vi.mock("../adapters/PrismaPhoneNumberRepositoryAdapter", () => ({ - PrismaPhoneNumberRepositoryAdapter: vi.fn().mockImplementation(() => ({ + PrismaPhoneNumberRepositoryAdapter: vi.fn().mockImplementation(function() { return { findByPhoneNumberAndUserId: vi.fn(), findByPhoneNumberAndTeamId: vi.fn(), findByIdAndUserId: vi.fn(), @@ -86,13 +90,13 @@ vi.mock("../adapters/PrismaPhoneNumberRepositoryAdapter", () => ({ deletePhoneNumber: vi.fn(), updateSubscriptionStatus: vi.fn(), updateAgents: vi.fn(), - })), + }; }), })); vi.mock("../adapters/PrismaTransactionAdapter", () => ({ - PrismaTransactionAdapter: vi.fn().mockImplementation(() => ({ + PrismaTransactionAdapter: vi.fn().mockImplementation(function() { return { executeInTransaction: vi.fn(), - })), + }; }), })); describe("RetellAIPhoneServiceProviderFactory", () => { diff --git a/packages/features/calAIPhone/providers/retellAI/RetellAIService.test.ts b/packages/features/calAIPhone/providers/retellAI/RetellAIService.test.ts index 5a8e4e29f8..50fcc09fb8 100644 --- a/packages/features/calAIPhone/providers/retellAI/RetellAIService.test.ts +++ b/packages/features/calAIPhone/providers/retellAI/RetellAIService.test.ts @@ -34,10 +34,12 @@ vi.mock("@calcom/features/ee/payments/server/stripe", () => ({ const mockGetAllCredits = vi.fn(); const mockHasAvailableCredits = vi.fn(); -const mockCreditService = vi.fn().mockImplementation(() => ({ - getAllCredits: mockGetAllCredits, - hasAvailableCredits: mockHasAvailableCredits, -})); +const mockCreditService = vi.fn().mockImplementation(function() { + return { + getAllCredits: mockGetAllCredits, + hasAvailableCredits: mockHasAvailableCredits, + }; +}); vi.mock("@calcom/features/ee/billing/credit-service", () => ({ CreditService: mockCreditService, @@ -849,9 +851,11 @@ describe("RetellAIService", () => { const { CreditService } = await import("@calcom/features/ee/billing/credit-service"); const mockHasAvailableCredits = vi.fn().mockResolvedValue(true); - (CreditService as any).mockImplementation(() => ({ - hasAvailableCredits: mockHasAvailableCredits, - })); + (CreditService as any).mockImplementation(function() { + return { + hasAvailableCredits: mockHasAvailableCredits, + }; + }); // Mock rate limiting like the working example vi.mocked(checkRateLimitAndThrowError).mockResolvedValueOnce(undefined as any); @@ -931,9 +935,11 @@ describe("RetellAIService", () => { // Mock credit service to return false (no credits) const mockHasAvailableCredits = vi.fn().mockResolvedValue(false); - (CreditService as any).mockImplementation(() => ({ - hasAvailableCredits: mockHasAvailableCredits, - })); + (CreditService as any).mockImplementation(function() { + return { + hasAvailableCredits: mockHasAvailableCredits, + }; + }); await expect( service.createTestCall({ @@ -952,9 +958,11 @@ describe("RetellAIService", () => { // Mock sufficient credits to get past credit check const mockHasAvailableCredits = vi.fn().mockResolvedValue(true); - (CreditService as any).mockImplementation(() => ({ - hasAvailableCredits: mockHasAvailableCredits, - })); + (CreditService as any).mockImplementation(function() { + return { + hasAvailableCredits: mockHasAvailableCredits, + }; + }); (checkRateLimitAndThrowError as any).mockResolvedValue(undefined); @@ -974,9 +982,11 @@ describe("RetellAIService", () => { // Mock sufficient credits const mockHasAvailableCredits = vi.fn().mockResolvedValue(true); - (CreditService as any).mockImplementation(() => ({ - hasAvailableCredits: mockHasAvailableCredits, - })); + (CreditService as any).mockImplementation(function() { + return { + hasAvailableCredits: mockHasAvailableCredits, + }; + }); (checkRateLimitAndThrowError as any).mockResolvedValue(undefined); mockAgentRepository.findByIdWithCallAccess.mockResolvedValue(null); @@ -998,9 +1008,11 @@ describe("RetellAIService", () => { // Mock sufficient credits const mockHasAvailableCredits = vi.fn().mockResolvedValue(true); - (CreditService as any).mockImplementation(() => ({ - hasAvailableCredits: mockHasAvailableCredits, - })); + (CreditService as any).mockImplementation(function() { + return { + hasAvailableCredits: mockHasAvailableCredits, + }; + }); (checkRateLimitAndThrowError as any).mockResolvedValue(undefined); mockAgentRepository.findByIdWithCallAccess.mockResolvedValue({ diff --git a/packages/features/calAIPhone/providers/retellAI/RetellSDKClient.test.ts b/packages/features/calAIPhone/providers/retellAI/RetellSDKClient.test.ts index 191cae01e5..48a925bcd4 100644 --- a/packages/features/calAIPhone/providers/retellAI/RetellSDKClient.test.ts +++ b/packages/features/calAIPhone/providers/retellAI/RetellSDKClient.test.ts @@ -16,30 +16,32 @@ import type { let RetellSDKClient: typeof import("./RetellSDKClient").RetellSDKClient; vi.mock("retell-sdk", () => ({ - Retell: vi.fn().mockImplementation(() => ({ - llm: { - create: vi.fn(), - retrieve: vi.fn(), - update: vi.fn(), - delete: vi.fn(), - }, - agent: { - create: vi.fn(), - retrieve: vi.fn(), - update: vi.fn(), - delete: vi.fn(), - }, - phoneNumber: { - create: vi.fn(), - import: vi.fn(), - delete: vi.fn(), - retrieve: vi.fn(), - update: vi.fn(), - }, - call: { - createPhoneCall: vi.fn(), - }, - })), + Retell: vi.fn().mockImplementation(function() { + return { + llm: { + create: vi.fn(), + retrieve: vi.fn(), + update: vi.fn(), + delete: vi.fn(), + }, + agent: { + create: vi.fn(), + retrieve: vi.fn(), + update: vi.fn(), + delete: vi.fn(), + }, + phoneNumber: { + create: vi.fn(), + import: vi.fn(), + delete: vi.fn(), + retrieve: vi.fn(), + update: vi.fn(), + }, + call: { + createPhoneCall: vi.fn(), + }, + }; + }), })); vi.mock("@calcom/lib/logger", () => ({ @@ -107,7 +109,7 @@ describe("RetellSDKClient", () => { }, }; - (Retell as any).mockImplementation(() => mockRetellInstance); + (Retell as any).mockImplementation(function() { return mockRetellInstance; }); }); describe("constructor", () => { diff --git a/packages/features/calAIPhone/providers/retellAI/services/__tests__/CallService.test.ts b/packages/features/calAIPhone/providers/retellAI/services/__tests__/CallService.test.ts index 70f6173512..da4776ad6e 100644 --- a/packages/features/calAIPhone/providers/retellAI/services/__tests__/CallService.test.ts +++ b/packages/features/calAIPhone/providers/retellAI/services/__tests__/CallService.test.ts @@ -26,9 +26,11 @@ describe("CallService", () => { const { CreditService } = await import("@calcom/features/ee/billing/credit-service"); const { checkRateLimitAndThrowError } = await import("@calcom/lib/checkRateLimitAndThrowError"); - vi.mocked(CreditService).mockImplementation(() => ({ - hasAvailableCredits: vi.fn().mockResolvedValue(true), - })); + vi.mocked(CreditService).mockImplementation(function () { + return { + hasAvailableCredits: vi.fn().mockResolvedValue(true), + }; + }); vi.mocked(checkRateLimitAndThrowError).mockResolvedValue(undefined); @@ -233,9 +235,11 @@ describe("CallService", () => { mocks.mockRetellRepository.createPhoneCall.mockResolvedValue(createMockCall()); const { CreditService } = await import("@calcom/features/ee/billing/credit-service"); - vi.mocked(CreditService).mockImplementation(() => ({ - getAllCredits: vi.fn().mockRejectedValue(new TestError("Credit service unavailable")), - })); + vi.mocked(CreditService).mockImplementation(function () { + return { + getAllCredits: vi.fn().mockRejectedValue(new TestError("Credit service unavailable")), + }; + }); await expect(service.createTestCall(validTestCallData)).rejects.toThrow( "Unable to validate credits. Please try again." @@ -247,9 +251,11 @@ describe("CallService", () => { mocks.mockRetellRepository.createPhoneCall.mockResolvedValue(createMockCall()); const { CreditService } = await import("@calcom/features/ee/billing/credit-service"); - vi.mocked(CreditService).mockImplementation(() => ({ - hasAvailableCredits: vi.fn().mockResolvedValue(false), - })); + vi.mocked(CreditService).mockImplementation(function () { + return { + hasAvailableCredits: vi.fn().mockResolvedValue(false), + }; + }); await expect(service.createTestCall(validTestCallData)).rejects.toThrow( "Insufficient credits to make test call. Please purchase more credits." @@ -261,9 +267,11 @@ describe("CallService", () => { mocks.mockRetellRepository.createPhoneCall.mockResolvedValue(createMockCall()); const { CreditService } = await import("@calcom/features/ee/billing/credit-service"); - vi.mocked(CreditService).mockImplementation(() => ({ - hasAvailableCredits: vi.fn().mockResolvedValue(false), - })); + vi.mocked(CreditService).mockImplementation(function () { + return { + hasAvailableCredits: vi.fn().mockResolvedValue(false), + }; + }); await expect(service.createTestCall(validTestCallData)).rejects.toThrow( "Insufficient credits to make test call. Please purchase more credits." diff --git a/packages/features/calendar-subscription/adapters/__tests__/GoogleCalendarSubscriptionAdapter.test.ts b/packages/features/calendar-subscription/adapters/__tests__/GoogleCalendarSubscriptionAdapter.test.ts index 15e2f1434b..99c9b4912a 100644 --- a/packages/features/calendar-subscription/adapters/__tests__/GoogleCalendarSubscriptionAdapter.test.ts +++ b/packages/features/calendar-subscription/adapters/__tests__/GoogleCalendarSubscriptionAdapter.test.ts @@ -94,9 +94,11 @@ describe("GoogleCalendarSubscriptionAdapter", () => { }; const { CalendarAuth } = await import("../__mocks__/CalendarAuth"); - vi.mocked(CalendarAuth).mockImplementation(() => ({ - getClient: vi.fn().mockResolvedValue(mockClient), - })); + vi.mocked(CalendarAuth).mockImplementation(function() { + return { + getClient: vi.fn().mockResolvedValue(mockClient), + }; + }); adapter = new GoogleCalendarSubscriptionAdapter(); vi.clearAllMocks(); diff --git a/packages/features/credentials/services/CredentialAccessService.test.ts b/packages/features/credentials/services/CredentialAccessService.test.ts index 69852b0d4e..14875ee704 100644 --- a/packages/features/credentials/services/CredentialAccessService.test.ts +++ b/packages/features/credentials/services/CredentialAccessService.test.ts @@ -27,9 +27,9 @@ vi.mock("@calcom/features/credentials/repositories/CredentialRepository", () => vi.mock("@calcom/features/users/repositories/UserRepository", () => { return { - UserRepository: vi.fn().mockImplementation(() => ({ + UserRepository: vi.fn().mockImplementation(function() { return { getUserOrganizationAndTeams: vi.fn(), - })), + }; }), }; }); @@ -123,7 +123,7 @@ describe("CredentialAccessService", () => { }), }; - vi.mocked(UserRepository).mockImplementation(() => mockUserRepo as any); + vi.mocked(UserRepository).mockImplementation(function() { return mockUserRepo as any; }); const service = new CredentialAccessService(); await expect( @@ -168,7 +168,7 @@ describe("CredentialAccessService", () => { }), }; - vi.mocked(UserRepository).mockImplementation(() => mockUserRepo as any); + vi.mocked(UserRepository).mockImplementation(function() { return mockUserRepo as any; }); const service = new CredentialAccessService(); await expect( @@ -207,7 +207,7 @@ describe("CredentialAccessService", () => { }), }; - vi.mocked(UserRepository).mockImplementation(() => mockUserRepo as any); + vi.mocked(UserRepository).mockImplementation(function() { return mockUserRepo as any; }); const service = new CredentialAccessService(); await expect( @@ -273,7 +273,7 @@ describe("CredentialAccessService", () => { }), }; - vi.mocked(UserRepository).mockImplementation(() => mockUserRepo as any); + vi.mocked(UserRepository).mockImplementation(function() { return mockUserRepo as any; }); const service = new CredentialAccessService(); const error = await service diff --git a/packages/features/ee/api-keys/lib/autoLock.test.ts b/packages/features/ee/api-keys/lib/autoLock.test.ts index 97ec4c9b9b..65f0bbff51 100644 --- a/packages/features/ee/api-keys/lib/autoLock.test.ts +++ b/packages/features/ee/api-keys/lib/autoLock.test.ts @@ -34,7 +34,7 @@ describe("autoLock", () => { beforeEach(() => { // Reset all mocks before each test vi.clearAllMocks(); - vi.mocked(RedisService).mockImplementation(() => mockRedis as any); + vi.mocked(RedisService).mockImplementation(function() { return mockRedis as any; }); // Mock environment variables process.env.UPSTASH_REDIS_REST_TOKEN = "test-token"; diff --git a/packages/features/ee/billing/credit-service.test.ts b/packages/features/ee/billing/credit-service.test.ts index d2f8667c9c..14a8565c76 100644 --- a/packages/features/ee/billing/credit-service.test.ts +++ b/packages/features/ee/billing/credit-service.test.ts @@ -130,7 +130,7 @@ describe("CreditService", () => { let creditService: CreditService; beforeEach(async () => { - vi.restoreAllMocks(); + vi.resetAllMocks(); mockStripe.prices.retrieve.mockResolvedValue({ id: "price_123", unit_amount: 1000 }); mockStripe.customers.create.mockResolvedValue({ id: "cus_123" }); @@ -469,7 +469,7 @@ describe("CreditService", () => { members: [{ accepted: true }], }), }; - vi.mocked(TeamRepository).mockImplementation(() => mockTeamRepo as unknown as TeamRepository); + vi.mocked(TeamRepository).mockImplementation(function() { return mockTeamRepo as unknown as TeamRepository; }); const mockTeamBillingService = { getSubscriptionStatus: vi.fn().mockResolvedValue(SubscriptionStatus.TRIALING), @@ -493,7 +493,7 @@ describe("CreditService", () => { members: [{ accepted: true }, { accepted: true }, { accepted: true }], }), }; - vi.mocked(TeamRepository).mockImplementation(() => mockTeamRepo as unknown as TeamRepository); + vi.mocked(TeamRepository).mockImplementation(function() { return mockTeamRepo as unknown as TeamRepository; }); const mockTeamBillingService = { getSubscriptionStatus: vi.fn().mockResolvedValue(SubscriptionStatus.ACTIVE), @@ -524,7 +524,7 @@ describe("CreditService", () => { members: [{ accepted: true }, { accepted: true }], }), }; - vi.mocked(TeamRepository).mockImplementation(() => mockTeamRepo as unknown as TeamRepository); + vi.mocked(TeamRepository).mockImplementation(function() { return mockTeamRepo as unknown as TeamRepository; }); const mockTeamBillingService = { getSubscriptionStatus: vi.fn().mockResolvedValue(SubscriptionStatus.ACTIVE), @@ -549,7 +549,7 @@ describe("CreditService", () => { members: [{ accepted: true }, { accepted: true }, { accepted: true }], }), }; - vi.mocked(TeamRepository).mockImplementation(() => mockTeamRepo as unknown as TeamRepository); + vi.mocked(TeamRepository).mockImplementation(function() { return mockTeamRepo as unknown as TeamRepository; }); const mockTeamBillingService = { getSubscriptionStatus: vi.fn().mockResolvedValue(SubscriptionStatus.ACTIVE), @@ -841,9 +841,14 @@ describe("CreditService", () => { { teamId: 2 }, ]); - vi.spyOn(TeamRepository.prototype, "findTeamsForCreditCheck").mockResolvedValue([ - { id: 2, isOrganization: false, parentId: null, parent: null }, - ]); + const mockTeamRepoInstance = { + findTeamsForCreditCheck: vi.fn().mockResolvedValue([ + { id: 2, isOrganization: false, parentId: null, parent: null }, + ]), + }; + vi.mocked(TeamRepository).mockImplementation(function () { + return mockTeamRepoInstance as unknown as TeamRepository; + }); vi.mocked(CreditsRepository.findCreditBalance).mockResolvedValue({ id: "2", @@ -876,10 +881,15 @@ describe("CreditService", () => { { teamId: 2 }, ]); - vi.spyOn(TeamRepository.prototype, "findTeamsForCreditCheck").mockResolvedValue([ - { id: 1, isOrganization: true, parentId: null, parent: null }, - { id: 2, isOrganization: false, parentId: null, parent: null }, - ]); + const mockTeamRepoInstance = { + findTeamsForCreditCheck: vi.fn().mockResolvedValue([ + { id: 1, isOrganization: true, parentId: null, parent: null }, + { id: 2, isOrganization: false, parentId: null, parent: null }, + ]), + }; + vi.mocked(TeamRepository).mockImplementation(function () { + return mockTeamRepoInstance as unknown as TeamRepository; + }); vi.mocked(CreditsRepository.findCreditBalance).mockResolvedValue({ id: "1", @@ -910,10 +920,15 @@ describe("CreditService", () => { { teamId: 2 }, ]); - vi.spyOn(TeamRepository.prototype, "findTeamsForCreditCheck").mockResolvedValue([ - { id: 1, isOrganization: true, parentId: null, parent: null }, - { id: 2, isOrganization: false, parentId: null, parent: null }, - ]); + const mockTeamRepoInstance = { + findTeamsForCreditCheck: vi.fn().mockResolvedValue([ + { id: 1, isOrganization: true, parentId: null, parent: null }, + { id: 2, isOrganization: false, parentId: null, parent: null }, + ]), + }; + vi.mocked(TeamRepository).mockImplementation(function () { + return mockTeamRepoInstance as unknown as TeamRepository; + }); vi.mocked(CreditsRepository.findCreditBalance).mockResolvedValue({ id: "1", @@ -944,9 +959,14 @@ describe("CreditService", () => { { teamId: 2 }, ]); - vi.spyOn(TeamRepository.prototype, "findTeamsForCreditCheck").mockResolvedValue([ - { id: 2, isOrganization: false, parentId: null, parent: null }, - ]); + const mockTeamRepoInstance = { + findTeamsForCreditCheck: vi.fn().mockResolvedValue([ + { id: 2, isOrganization: false, parentId: null, parent: null }, + ]), + }; + vi.mocked(TeamRepository).mockImplementation(function () { + return mockTeamRepoInstance as unknown as TeamRepository; + }); vi.mocked(CreditsRepository.findCreditBalance).mockResolvedValue({ id: "2", diff --git a/packages/features/ee/dsync/lib/handleUserEvents.test.ts b/packages/features/ee/dsync/lib/handleUserEvents.test.ts index fd4cf4eae5..944d8a1b06 100644 --- a/packages/features/ee/dsync/lib/handleUserEvents.test.ts +++ b/packages/features/ee/dsync/lib/handleUserEvents.test.ts @@ -48,9 +48,9 @@ vi.mock("./removeUserFromOrg", () => ({ })); vi.mock("@calcom/features/users/repositories/UserRepository", () => ({ - UserRepository: vi.fn().mockImplementation(() => ({ + UserRepository: vi.fn().mockImplementation(function() { return { isAMemberOfOrganization: vi.fn().mockResolvedValue(false), - })), + }; }), })); async function createMockOrganization({ id, name, slug }: { id: number; name: string; slug: string }) { @@ -191,12 +191,11 @@ describe("handleUserEvents", () => { }; const { UserRepository } = await import("@calcom/features/users/repositories/UserRepository"); - vi.mocked(UserRepository).mockImplementation( - () => - ({ - isAMemberOfOrganization: vi.fn().mockResolvedValue(true), - } as unknown as InstanceType) - ); + vi.mocked(UserRepository).mockImplementation(function () { + return { + isAMemberOfOrganization: vi.fn().mockResolvedValue(true), + } as unknown as InstanceType; + }); await expect(handleUserEvents(event, organizationId)).resolves.not.toThrow(); }); @@ -292,12 +291,11 @@ describe("handleUserEvents", () => { }; const { UserRepository } = await import("@calcom/features/users/repositories/UserRepository"); - vi.mocked(UserRepository).mockImplementation( - () => - ({ - isAMemberOfOrganization: vi.fn().mockResolvedValue(false), - } as unknown as InstanceType) - ); + vi.mocked(UserRepository).mockImplementation(function () { + return { + isAMemberOfOrganization: vi.fn().mockResolvedValue(false), + } as unknown as InstanceType; + }); const inviteExistingUserToOrg = (await import("./users/inviteExistingUserToOrg")).default; const sendExistingUserTeamInviteEmails = ( @@ -377,12 +375,11 @@ describe("handleUserEvents", () => { }; const { UserRepository } = await import("@calcom/features/users/repositories/UserRepository"); - vi.mocked(UserRepository).mockImplementation( - () => - ({ - isAMemberOfOrganization: vi.fn().mockResolvedValue(true), - } as unknown as InstanceType) - ); + vi.mocked(UserRepository).mockImplementation(function () { + return { + isAMemberOfOrganization: vi.fn().mockResolvedValue(true), + } as unknown as InstanceType; + }); const { assignValueToUserInOrgBulk } = await import("./assignValueToUser"); diff --git a/packages/features/ee/round-robin/roundRobinManualReassignment.test.ts b/packages/features/ee/round-robin/roundRobinManualReassignment.test.ts index 7603e346ef..02d5ff60b9 100644 --- a/packages/features/ee/round-robin/roundRobinManualReassignment.test.ts +++ b/packages/features/ee/round-robin/roundRobinManualReassignment.test.ts @@ -179,7 +179,10 @@ type ConferenceResult = { const mockEventManagerReschedule = async (config?: MockEventManagerConfig) => { const EventManager = (await import("@calcom/features/bookings/lib/EventManager")).default; // eslint-disable-next-line @typescript-eslint/no-explicit-any - const spy = vi.spyOn(EventManager.prototype as any, "reschedule"); + const existingSpy = vi.spyOn(EventManager.prototype as any, "reschedule"); + // Clear any existing mock calls from previous tests + existingSpy.mockClear(); + const spy = existingSpy; // eslint-disable-next-line @typescript-eslint/no-explicit-any spy.mockImplementation(async (event: any) => { diff --git a/packages/features/ee/round-robin/roundRobinReassignment.test.ts b/packages/features/ee/round-robin/roundRobinReassignment.test.ts index 04165a8177..49dc590fb0 100644 --- a/packages/features/ee/round-robin/roundRobinReassignment.test.ts +++ b/packages/features/ee/round-robin/roundRobinReassignment.test.ts @@ -64,6 +64,8 @@ describe("roundRobinReassignment test", () => { const EventManager = (await import("@calcom/features/bookings/lib/EventManager")).default; const eventManagerSpy = vi.spyOn(EventManager.prototype as any, "reschedule"); + // Clear any existing mock calls from previous tests + eventManagerSpy.mockClear(); eventManagerSpy.mockResolvedValue({ referencesToCreate: [] }); const users = testUsers; @@ -197,6 +199,8 @@ describe("roundRobinReassignment test", () => { const EventManager = (await import("@calcom/features/bookings/lib/EventManager")).default; const eventManagerSpy = vi.spyOn(EventManager.prototype as any, "reschedule"); + // Clear any existing mock calls from previous tests + eventManagerSpy.mockClear(); const users = testUsers; diff --git a/packages/features/ee/teams/services/teamService.alternative.test.ts b/packages/features/ee/teams/services/teamService.alternative.test.ts index 559749cd6e..ad619ffbcd 100644 --- a/packages/features/ee/teams/services/teamService.alternative.test.ts +++ b/packages/features/ee/teams/services/teamService.alternative.test.ts @@ -50,7 +50,7 @@ const mockTeamRepo = { throw new Error(`Team with id ${id} not found`); }), }; -vi.mocked(TeamRepository).mockImplementation(() => mockTeamRepo); +vi.mocked(TeamRepository).mockImplementation(function() { return mockTeamRepo; }); vi.mocked(deleteDomain).mockImplementation(async (slug) => { database.domains.delete(slug); diff --git a/packages/features/ee/teams/services/teamService.test.ts b/packages/features/ee/teams/services/teamService.test.ts index 7ca83eac6b..cfa1c7c6df 100644 --- a/packages/features/ee/teams/services/teamService.test.ts +++ b/packages/features/ee/teams/services/teamService.test.ts @@ -61,7 +61,7 @@ describe("TeamService", () => { const mockTeamRepo = { deleteById: vi.fn().mockResolvedValue(mockDeletedTeam), } as Pick; - vi.mocked(TeamRepository).mockImplementation(() => mockTeamRepo); + vi.mocked(TeamRepository).mockImplementation(function() { return mockTeamRepo; }); const result = await TeamService.delete({ id: 1 }); diff --git a/packages/features/ee/workflows/lib/service/WorkflowService.test.ts b/packages/features/ee/workflows/lib/service/WorkflowService.test.ts index e09a2e57b2..8227470e07 100644 --- a/packages/features/ee/workflows/lib/service/WorkflowService.test.ts +++ b/packages/features/ee/workflows/lib/service/WorkflowService.test.ts @@ -19,9 +19,9 @@ vi.mock("@calcom/features/profile/lib/hideBranding", () => ({ const mockWorkflowReminderCreate = vi.fn(); vi.mock("@calcom/features/ee/workflows/repositories/WorkflowReminderRepository", () => ({ - WorkflowReminderRepository: vi.fn().mockImplementation(() => ({ + WorkflowReminderRepository: vi.fn().mockImplementation(function() { return { create: mockWorkflowReminderCreate, - })), + }; }), })); vi.mock("@calcom/prisma", () => ({ diff --git a/packages/features/ee/workflows/lib/test/twilioWebhook.test.ts b/packages/features/ee/workflows/lib/test/twilioWebhook.test.ts index 2b2520b65c..129add17b5 100644 --- a/packages/features/ee/workflows/lib/test/twilioWebhook.test.ts +++ b/packages/features/ee/workflows/lib/test/twilioWebhook.test.ts @@ -18,10 +18,10 @@ vi.mock("../reminders/providers/twilioProvider", () => ({ const mockChargeCredits = vi.fn().mockResolvedValue({ teamId: 1 }); vi.mock("@calcom/features/ee/billing/credit-service", () => ({ - CreditService: vi.fn().mockImplementation(() => ({ + CreditService: vi.fn().mockImplementation(function() { return { chargeCredits: mockChargeCredits, calculateCreditsFromPrice: vi.fn().mockReturnValue(1), - })), + }; }), })); const mockFindFirst = vi.fn(); diff --git a/packages/features/host/repositories/HostRepository.test.ts b/packages/features/host/repositories/HostRepository.test.ts index f6fb2d27dc..c25581238b 100644 --- a/packages/features/host/repositories/HostRepository.test.ts +++ b/packages/features/host/repositories/HostRepository.test.ts @@ -14,7 +14,7 @@ vi.mock("@calcom/prisma", () => { return { __esModule: true, default: mockPrisma, - PrismaClient: vi.fn(() => mockPrisma), + PrismaClient: vi.fn().mockImplementation(function() { return mockPrisma; }), }; }); diff --git a/packages/features/pbac/lib/__tests__/event-type-permissions.test.ts b/packages/features/pbac/lib/__tests__/event-type-permissions.test.ts index 8f9494a9c5..b9f276854d 100644 --- a/packages/features/pbac/lib/__tests__/event-type-permissions.test.ts +++ b/packages/features/pbac/lib/__tests__/event-type-permissions.test.ts @@ -35,8 +35,8 @@ describe("getEventTypePermissions", () => { getResourcePermissions: vi.fn(), }; - vi.mocked(FeaturesRepository).mockImplementation(() => mockFeaturesRepository as any); - vi.mocked(PermissionCheckService).mockImplementation(() => mockPermissionCheckService as any); + vi.mocked(FeaturesRepository).mockImplementation(function() { return mockFeaturesRepository as any; }); + vi.mocked(PermissionCheckService).mockImplementation(function() { return mockPermissionCheckService as any; }); prisma.membership.findFirst = vi.fn(); prisma.team.findUnique = vi.fn(); @@ -546,8 +546,8 @@ describe("getEventTypePermissions", () => { vi.clearAllMocks(); // Re-initialize mocks after clearing - vi.mocked(FeaturesRepository).mockImplementation(() => mockFeaturesRepository as any); - vi.mocked(PermissionCheckService).mockImplementation(() => mockPermissionCheckService as any); + vi.mocked(FeaturesRepository).mockImplementation(function() { return mockFeaturesRepository as any; }); + vi.mocked(PermissionCheckService).mockImplementation(function() { return mockPermissionCheckService as any; }); prisma.membership.findFirst = vi.fn(); prisma.team.findUnique = vi.fn(); diff --git a/packages/features/pbac/lib/__tests__/resource-permissions.test.ts b/packages/features/pbac/lib/__tests__/resource-permissions.test.ts index 1df230e4c2..bc1298f73a 100644 --- a/packages/features/pbac/lib/__tests__/resource-permissions.test.ts +++ b/packages/features/pbac/lib/__tests__/resource-permissions.test.ts @@ -42,9 +42,9 @@ describe("getResourcePermissions", () => { }; // eslint-disable-next-line @typescript-eslint/no-explicit-any - vi.mocked(FeaturesRepository).mockImplementation(() => mockFeaturesRepository as any); + vi.mocked(FeaturesRepository).mockImplementation(function() { return mockFeaturesRepository as any; }); // eslint-disable-next-line @typescript-eslint/no-explicit-any - vi.mocked(PermissionCheckService).mockImplementation(() => mockPermissionCheckService as any); + vi.mocked(PermissionCheckService).mockImplementation(function() { return mockPermissionCheckService as any; }); }); describe("when PBAC is disabled", () => { diff --git a/packages/features/routing-forms/lib/getRoutedUrl.test.ts b/packages/features/routing-forms/lib/getRoutedUrl.test.ts index 5cbf829534..41dc300199 100644 --- a/packages/features/routing-forms/lib/getRoutedUrl.test.ts +++ b/packages/features/routing-forms/lib/getRoutedUrl.test.ts @@ -26,9 +26,9 @@ vi.mock("@calcom/lib/checkRateLimitAndThrowError"); vi.mock("@calcom/features/routing-forms/repositories/PrismaRoutingFormRepository"); vi.mock("@calcom/features/users/repositories/UserRepository", () => { return { - UserRepository: vi.fn().mockImplementation(() => ({ + UserRepository: vi.fn().mockImplementation(function() { return { enrichUserWithItsProfile: vi.fn(), - })), + }; }), }; }); vi.mock("@calcom/features/ee/organizations/lib/orgDomains"); @@ -89,13 +89,12 @@ describe("getRoutedUrl", () => { const mockEnrichUserWithItsProfile = vi.fn().mockImplementation(async ({ user }) => user); const mockUserRepository = vi.mocked(UserRepository); if (mockUserRepository && typeof mockUserRepository.mockImplementation === "function") { - mockUserRepository.mockImplementation( - () => - ({ - enrichUserWithItsProfile: mockEnrichUserWithItsProfile, - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } as any) - ); + mockUserRepository.mockImplementation(function () { + return { + enrichUserWithItsProfile: mockEnrichUserWithItsProfile, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } as any; + }); } vi.mocked(isAuthorizedToViewFormOnOrgDomain).mockReturnValue(true); vi.mocked(getSerializableForm).mockResolvedValue(mockSerializableForm as never); diff --git a/packages/features/routing-forms/lib/handleResponse.test.ts b/packages/features/routing-forms/lib/handleResponse.test.ts index 0c0023b3a8..f82bfa39b1 100644 --- a/packages/features/routing-forms/lib/handleResponse.test.ts +++ b/packages/features/routing-forms/lib/handleResponse.test.ts @@ -119,10 +119,10 @@ const mockResponse: Record< describe("handleResponse", () => { beforeEach(() => { vi.resetAllMocks(); - vi.mocked(RoutingFormResponseRepository).mockImplementation( + vi.mocked(RoutingFormResponseRepository).mockImplementation(function () { // eslint-disable-next-line @typescript-eslint/no-explicit-any - () => mockRoutingFormResponseRepository as any - ); + return mockRoutingFormResponseRepository as any; + }); }); it("should throw an Error for missing required fields", async () => { diff --git a/packages/features/slots/handleNotificationWhenNoSlots.test.ts b/packages/features/slots/handleNotificationWhenNoSlots.test.ts index 520c545638..1a753e417d 100644 --- a/packages/features/slots/handleNotificationWhenNoSlots.test.ts +++ b/packages/features/slots/handleNotificationWhenNoSlots.test.ts @@ -19,9 +19,11 @@ vi.mock("@calcom/features/redis/RedisService", () => { }); vi.mock("@calcom/features/flags/features.repository", () => ({ - FeaturesRepository: vi.fn().mockImplementation(() => ({ - checkIfFeatureIsEnabledGlobally: vi.fn().mockResolvedValue(false), - })), + FeaturesRepository: vi.fn(function () { + return { + checkIfFeatureIsEnabledGlobally: vi.fn().mockResolvedValue(false), + }; + }), })); vi.spyOn(CalcomEmails, "sendOrganizationAdminNoSlotsNotification"); diff --git a/packages/features/tasker/tasks/sendWorkflowEmails.test.ts b/packages/features/tasker/tasks/sendWorkflowEmails.test.ts index 93211d9fe5..ed1f939587 100644 --- a/packages/features/tasker/tasks/sendWorkflowEmails.test.ts +++ b/packages/features/tasker/tasks/sendWorkflowEmails.test.ts @@ -6,9 +6,9 @@ vi.mock("@calcom/emails/workflow-email-service", () => ({ const mockGetBookingForCalEventBuilderFromUid = vi.fn(); vi.mock("@calcom/features/bookings/repositories/BookingRepository", () => ({ - BookingRepository: vi.fn().mockImplementation(() => ({ + BookingRepository: vi.fn().mockImplementation(function() { return { getBookingForCalEventBuilderFromUid: mockGetBookingForCalEventBuilderFromUid, - })), + }; }), })); vi.mock("@calcom/features/bookings/repositories/BookingSeatRepository", () => ({ @@ -17,9 +17,9 @@ vi.mock("@calcom/features/bookings/repositories/BookingSeatRepository", () => ({ const mockHandleSendEmailWorkflowTask = vi.fn(); vi.mock("@calcom/features/ee/workflows/lib/service/EmailWorkflowService", () => ({ - EmailWorkflowService: vi.fn().mockImplementation(() => ({ + EmailWorkflowService: vi.fn().mockImplementation(function() { return { handleSendEmailWorkflowTask: mockHandleSendEmailWorkflowTask, - })), + }; }), })); vi.mock("@calcom/features/ee/workflows/repositories/WorkflowReminderRepository", () => ({ diff --git a/packages/features/users/services/userCreationService.test.ts b/packages/features/users/services/userCreationService.test.ts index 1eb3085006..11496e9ae2 100644 --- a/packages/features/users/services/userCreationService.test.ts +++ b/packages/features/users/services/userCreationService.test.ts @@ -27,7 +27,9 @@ const mockUserRepository = { vi.mock("@calcom/features/users/repositories/UserRepository", () => { return { - UserRepository: vi.fn().mockImplementation(() => mockUserRepository), + UserRepository: vi.fn(function () { + return mockUserRepository; + }), }; }); diff --git a/packages/lib/hooks/useCompatSearchParams.test.ts b/packages/lib/hooks/useCompatSearchParams.test.ts index 72307663d0..4839dd6a8d 100644 --- a/packages/lib/hooks/useCompatSearchParams.test.ts +++ b/packages/lib/hooks/useCompatSearchParams.test.ts @@ -5,7 +5,7 @@ import { describe, expect, it } from "vitest"; import { useCompatSearchParams } from "./useCompatSearchParams"; vi.mock("next/navigation", () => ({ - ReadonlyURLSearchParams: vi.fn((a) => a), + ReadonlyURLSearchParams: vi.fn().mockImplementation(function(a) { return a; }), })); describe("useCompatSearchParams hook", () => { diff --git a/packages/lib/server/getServerErrorFromUnknown.test.ts b/packages/lib/server/getServerErrorFromUnknown.test.ts index 692194ca77..246ea2bcb7 100644 --- a/packages/lib/server/getServerErrorFromUnknown.test.ts +++ b/packages/lib/server/getServerErrorFromUnknown.test.ts @@ -64,7 +64,11 @@ describe("getServerErrorFromUnknown", () => { expect(result).toBeInstanceOf(HttpError); expect(result.statusCode).toBe(400); expect(result.message).toBe(stripeError.message); - expect(result.cause).toEqual(stripeError); + // Check that cause contains the essential properties (Vitest 4.0 uses stricter equality) + expect(result.cause).toMatchObject({ + name: stripeError.name, + message: stripeError.message, + }); expect(result.name).toBe("HttpError"); }); diff --git a/packages/platform/atoms/package.json b/packages/platform/atoms/package.json index 8b24e05c17..8c89aa8bde 100644 --- a/packages/platform/atoms/package.json +++ b/packages/platform/atoms/package.json @@ -25,8 +25,8 @@ "@types/node": "20.17.23", "@types/react": "18.0.26", "@types/react-dom": "18.2.6", - "@vitejs/plugin-react": "2.2.0", - "@vitejs/plugin-react-swc": "3.7.0", + "@vitejs/plugin-react": "5.1.2", + "@vitejs/plugin-react-swc": "4.2.2", "autoprefixer": "10.4.19", "cssnano": "7.1.2", "jest": "29.7.0", @@ -37,8 +37,8 @@ "postcss-prefixwrap": "1.46.0", "ts-jest": "29.1.4", "typescript": "5.9.3", - "vite": "5.4.21", - "vite-plugin-dts": "3.7.3", + "vite": "6.4.1", + "vite-plugin-dts": "4.5.4", "vite-plugin-inspect": "0.8.4" }, "files": [ diff --git a/packages/platform/libraries/package.json b/packages/platform/libraries/package.json index f50b29f740..f899595a21 100644 --- a/packages/platform/libraries/package.json +++ b/packages/platform/libraries/package.json @@ -28,10 +28,10 @@ }, "devDependencies": { "@types/node": "20.17.23", - "@vitejs/plugin-react": "4.2.1", + "@vitejs/plugin-react": "5.1.2", "typescript": "5.9.3", - "vite": "5.4.21", - "vite-plugin-dts": "3.7.3", + "vite": "6.4.1", + "vite-plugin-dts": "4.5.4", "vite-plugin-environment": "1.1.3" }, "exports": { diff --git a/packages/trpc/server/routers/viewer/availability/schedule/getAllSchedulesByUserId.handler.test.ts b/packages/trpc/server/routers/viewer/availability/schedule/getAllSchedulesByUserId.handler.test.ts index 185aaaba0e..cba36aa890 100644 --- a/packages/trpc/server/routers/viewer/availability/schedule/getAllSchedulesByUserId.handler.test.ts +++ b/packages/trpc/server/routers/viewer/availability/schedule/getAllSchedulesByUserId.handler.test.ts @@ -14,9 +14,9 @@ vi.mock("@calcom/lib/hasEditPermissionForUser", () => ({ })); vi.mock("@calcom/features/schedules/repositories/ScheduleRepository", () => ({ - ScheduleRepository: vi.fn().mockImplementation(() => ({ + ScheduleRepository: vi.fn().mockImplementation(function() { return { getDefaultScheduleId: vi.fn().mockResolvedValue(DEFAULT_SCHEDULE_ID), - })), + }; }), })); import { hasReadPermissionsForUserId } from "@calcom/lib/hasEditPermissionForUser"; diff --git a/packages/trpc/server/routers/viewer/bookings/reportBooking.handler.test.ts b/packages/trpc/server/routers/viewer/bookings/reportBooking.handler.test.ts index ceb12d6914..3a0b84ff05 100644 --- a/packages/trpc/server/routers/viewer/bookings/reportBooking.handler.test.ts +++ b/packages/trpc/server/routers/viewer/bookings/reportBooking.handler.test.ts @@ -58,9 +58,9 @@ describe("reportBookingHandler", () => { beforeEach(() => { vi.clearAllMocks(); - vi.mocked(BookingRepository).mockImplementation(() => mockBookingRepo); - vi.mocked(PrismaBookingReportRepository).mockImplementation(() => mockReportRepo); - vi.mocked(BookingAccessService).mockImplementation(() => mockBookingAccessService); + vi.mocked(BookingRepository).mockImplementation(function() { return mockBookingRepo; }); + vi.mocked(PrismaBookingReportRepository).mockImplementation(function() { return mockReportRepo; }); + vi.mocked(BookingAccessService).mockImplementation(function() { return mockBookingAccessService; }); mockReportRepo.createReport.mockResolvedValue({ id: "new-report" }); }); diff --git a/packages/trpc/server/routers/viewer/eventTypes/__tests__/getUserEventGroups.test.ts b/packages/trpc/server/routers/viewer/eventTypes/__tests__/getUserEventGroups.test.ts index 82a2073b3f..9576494661 100644 --- a/packages/trpc/server/routers/viewer/eventTypes/__tests__/getUserEventGroups.test.ts +++ b/packages/trpc/server/routers/viewer/eventTypes/__tests__/getUserEventGroups.test.ts @@ -27,9 +27,9 @@ vi.mock("@calcom/features/profile/repositories/ProfileRepository", () => ({ const mockFilterTeamsByEventTypeReadPermission = vi.fn(); vi.mock("../teamAccessUseCase", () => ({ - TeamAccessUseCase: vi.fn().mockImplementation(() => ({ + TeamAccessUseCase: vi.fn().mockImplementation(function() { return { filterTeamsByEventTypeReadPermission: mockFilterTeamsByEventTypeReadPermission, - })), + }; }), })); vi.mock("@calcom/features/ee/organizations/lib/getBookerUrlServer", () => ({ diff --git a/packages/trpc/server/routers/viewer/eventTypes/__tests__/util.test.ts b/packages/trpc/server/routers/viewer/eventTypes/__tests__/util.test.ts index 38d27edc0d..317a1685fd 100644 --- a/packages/trpc/server/routers/viewer/eventTypes/__tests__/util.test.ts +++ b/packages/trpc/server/routers/viewer/eventTypes/__tests__/util.test.ts @@ -44,7 +44,7 @@ describe("createEventPbacProcedure", () => { checkPermission: vi.fn(), }; - vi.mocked(PermissionCheckService).mockImplementation(() => mockPermissionCheckService as any); + vi.mocked(PermissionCheckService).mockImplementation(function() { return mockPermissionCheckService as any; }); }); describe("personal events", () => { diff --git a/packages/trpc/server/routers/viewer/eventTypes/heavy/duplicate.handler.test.ts b/packages/trpc/server/routers/viewer/eventTypes/heavy/duplicate.handler.test.ts index d99004bf01..8cb624797f 100644 --- a/packages/trpc/server/routers/viewer/eventTypes/heavy/duplicate.handler.test.ts +++ b/packages/trpc/server/routers/viewer/eventTypes/heavy/duplicate.handler.test.ts @@ -15,7 +15,14 @@ vi.mock("@calcom/features/eventtypes/repositories/eventTypeRepository"); describe("duplicateHandler", () => { // eslint-disable-next-line @typescript-eslint/no-explicit-any const ctx = { user: { id: 1, profile: { id: 1 } } } as any; - const input = { id: 123, slug: "test-event", title: "Test", description: "Test", length: 30, teamId: null }; + const input = { + id: 123, + slug: "test-event", + title: "Test", + description: "Test", + length: 30, + teamId: null, + }; const eventType = { id: 123, userId: 1, teamId: null, users: [{ id: 1 }] }; beforeEach(() => { @@ -23,27 +30,27 @@ describe("duplicateHandler", () => { prismaMock.eventType.findUnique.mockResolvedValue(eventType); }); - it("should throw BAD_REQUEST in case of unique constraint violation", async () => { + it("should throw INTERNAL_SERVER_ERROR in case of unique constraint violation", async () => { const { EventTypeRepository } = await import( "@calcom/features/eventtypes/repositories/eventTypeRepository" ); - vi.mocked(EventTypeRepository).mockImplementation( - () => - ({ - create: vi.fn().mockRejectedValue( - new PrismaClientKnownRequestError("Unique constraint failed", { - code: "P2002", - clientVersion: "mockedVersion", - }) - ), - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } as any) - ); + vi.mocked(EventTypeRepository).mockImplementation(function () { + return { + create: vi.fn().mockRejectedValue( + new PrismaClientKnownRequestError("Unique constraint failed", { + code: "P2002", + clientVersion: "mockedVersion", + }) + ), + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } as any; + }); await expect(duplicateHandler({ ctx, input })).rejects.toThrow( new TRPCError({ - code: "BAD_REQUEST", - message: "Error duplicating event type PrismaClientKnownRequestError: Unique constraint failed", + code: "INTERNAL_SERVER_ERROR", + message: + "Error duplicating event type PrismaClientKnownRequestError: Unique constraint failed", }) ); }); diff --git a/packages/trpc/server/routers/viewer/eventTypes/teamAccessUseCase.test.ts b/packages/trpc/server/routers/viewer/eventTypes/teamAccessUseCase.test.ts index 3c8132c4a3..d493f249fe 100644 --- a/packages/trpc/server/routers/viewer/eventTypes/teamAccessUseCase.test.ts +++ b/packages/trpc/server/routers/viewer/eventTypes/teamAccessUseCase.test.ts @@ -6,9 +6,9 @@ import { TeamAccessUseCase } from "./teamAccessUseCase"; // Mock the PermissionCheckService vi.mock("@calcom/features/pbac/services/permission-check.service", () => ({ - PermissionCheckService: vi.fn().mockImplementation(() => ({ + PermissionCheckService: vi.fn().mockImplementation(function() { return { checkPermission: vi.fn(), - })), + }; }), })); describe("TeamAccessUseCase", () => { diff --git a/packages/trpc/server/routers/viewer/organizations/deleteWatchlistEntry.handler.test.ts b/packages/trpc/server/routers/viewer/organizations/deleteWatchlistEntry.handler.test.ts index 755faad442..916ade1f01 100644 --- a/packages/trpc/server/routers/viewer/organizations/deleteWatchlistEntry.handler.test.ts +++ b/packages/trpc/server/routers/viewer/organizations/deleteWatchlistEntry.handler.test.ts @@ -45,7 +45,7 @@ describe("deleteWatchlistEntryHandler", () => { ); vi.mocked(getOrganizationWatchlistOperationsService).mockReturnValue(mockService as never); - vi.mocked(WatchlistRepository).mockImplementation(() => mockWatchlistRepo as never); + vi.mocked(WatchlistRepository).mockImplementation(function() { return mockWatchlistRepo as never; }); }); describe("access control", () => { diff --git a/packages/trpc/server/routers/viewer/organizations/dismissBookingReport.handler.test.ts b/packages/trpc/server/routers/viewer/organizations/dismissBookingReport.handler.test.ts index 04821ad7b2..59f1ab8ac6 100644 --- a/packages/trpc/server/routers/viewer/organizations/dismissBookingReport.handler.test.ts +++ b/packages/trpc/server/routers/viewer/organizations/dismissBookingReport.handler.test.ts @@ -49,12 +49,12 @@ describe("dismissBookingReportHandler", () => { beforeEach(() => { vi.clearAllMocks(); - vi.mocked(PermissionCheckService).mockImplementation( - () => mockPermissionCheckService as InstanceType - ); - vi.mocked(PrismaBookingReportRepository).mockImplementation( - () => mockReportRepo as InstanceType - ); + vi.mocked(PermissionCheckService).mockImplementation(function () { + return mockPermissionCheckService as InstanceType; + }); + vi.mocked(PrismaBookingReportRepository).mockImplementation(function () { + return mockReportRepo as InstanceType; + }); }); describe("access control", () => { diff --git a/packages/trpc/server/routers/viewer/organizations/intentToCreateOrg.handler.test.ts b/packages/trpc/server/routers/viewer/organizations/intentToCreateOrg.handler.test.ts index 6e2621f7c6..702af45ffd 100644 --- a/packages/trpc/server/routers/viewer/organizations/intentToCreateOrg.handler.test.ts +++ b/packages/trpc/server/routers/viewer/organizations/intentToCreateOrg.handler.test.ts @@ -114,7 +114,7 @@ describe("intentToCreateOrgHandler", () => { vi.resetAllMocks(); await prismock.reset(); - vi.mocked(OrganizationPaymentService).mockImplementation(() => { + vi.mocked(OrganizationPaymentService).mockImplementation(function () { return { createOrganizationOnboarding: vi .fn() diff --git a/packages/trpc/server/routers/viewer/organizations/listBookingReports.handler.test.ts b/packages/trpc/server/routers/viewer/organizations/listBookingReports.handler.test.ts index c28ebae14b..df41b2e476 100644 --- a/packages/trpc/server/routers/viewer/organizations/listBookingReports.handler.test.ts +++ b/packages/trpc/server/routers/viewer/organizations/listBookingReports.handler.test.ts @@ -81,12 +81,12 @@ describe("listBookingReportsHandler (Organization)", () => { beforeEach(() => { vi.clearAllMocks(); - vi.mocked(PermissionCheckService).mockImplementation( - () => mockPermissionCheckService as InstanceType - ); - vi.mocked(PrismaBookingReportRepository).mockImplementation( - () => mockReportRepo as InstanceType - ); + vi.mocked(PermissionCheckService).mockImplementation(function () { + return mockPermissionCheckService as InstanceType; + }); + vi.mocked(PrismaBookingReportRepository).mockImplementation(function () { + return mockReportRepo as InstanceType; + }); }); describe("access control", () => { diff --git a/packages/trpc/server/routers/viewer/organizations/listMembers.handler.test.ts b/packages/trpc/server/routers/viewer/organizations/listMembers.handler.test.ts index 11259ba4f4..81fc131bea 100644 --- a/packages/trpc/server/routers/viewer/organizations/listMembers.handler.test.ts +++ b/packages/trpc/server/routers/viewer/organizations/listMembers.handler.test.ts @@ -15,9 +15,9 @@ vi.mock("@calcom/prisma", () => ({ // Mock FeaturesRepository const mockCheckIfTeamHasFeature = vi.fn(); vi.mock("@calcom/features/flags/features.repository", () => ({ - FeaturesRepository: vi.fn().mockImplementation(() => ({ + FeaturesRepository: vi.fn().mockImplementation(function() { return { checkIfTeamHasFeature: mockCheckIfTeamHasFeature, - })), + }; }), })); // Mock PBAC permissions @@ -31,16 +31,18 @@ vi.mock("@calcom/features/pbac/lib/resource-permissions", () => ({ // Mock PermissionCheckService const mockCheckPermission = vi.fn().mockResolvedValue(true); vi.mock("@calcom/features/pbac/services/permission-check.service", () => ({ - PermissionCheckService: vi.fn().mockImplementation(() => ({ + PermissionCheckService: vi.fn().mockImplementation(function() { return { checkPermission: mockCheckPermission, - })), + }; }), })); // Mock UserRepository vi.mock("@calcom/features/users/repositories/UserRepository", () => ({ - UserRepository: vi.fn().mockImplementation(() => ({ - enrichUserWithItsProfile: vi.fn().mockImplementation(({ user }) => user), - })), + UserRepository: vi.fn().mockImplementation(function() { + return { + enrichUserWithItsProfile: vi.fn().mockImplementation(({ user }) => user), + }; + }), })); const ORGANIZATION_ID = 123; diff --git a/packages/trpc/server/routers/viewer/slots/reserveSlot.handler.test.ts b/packages/trpc/server/routers/viewer/slots/reserveSlot.handler.test.ts index 331d0db3f2..e08b81fda0 100644 --- a/packages/trpc/server/routers/viewer/slots/reserveSlot.handler.test.ts +++ b/packages/trpc/server/routers/viewer/slots/reserveSlot.handler.test.ts @@ -13,9 +13,9 @@ const dynamicImportHandler = async () => await import("./reserveSlot.handler"); // The repository instance method is used to check for an existing reservation by someone else. // To keep this unit test isolated from the database layer, we stub this to always resolve falsey. vi.mock("@calcom/features/selectedSlots/repositories/PrismaSelectedSlotRepository", () => ({ - PrismaSelectedSlotRepository: vi.fn().mockImplementation(() => ({ + PrismaSelectedSlotRepository: vi.fn().mockImplementation(function() { return { findReservedByOthers: vi.fn().mockResolvedValue(null), - })), + }; }), })); // A tiny helper to build a canned handler context with stubbed Prisma methods. diff --git a/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMember.handler.test.ts b/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMember.handler.test.ts index c99ec31bb2..dc4c2f0969 100644 --- a/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMember.handler.test.ts +++ b/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMember.handler.test.ts @@ -47,23 +47,27 @@ vi.mock("@calcom/features/flags/features.repository"); vi.mock("@calcom/features/membership/repositories/MembershipRepository"); vi.mock("@calcom/features/pbac/services/permission.service", () => { return { - PermissionService: vi.fn().mockImplementation(() => ({ - validatePermission: vi.fn().mockReturnValue({ isValid: true }), - validatePermissions: vi.fn().mockReturnValue({ isValid: true }), - })), + PermissionService: vi.fn().mockImplementation(function() { + return { + validatePermission: vi.fn().mockReturnValue({ isValid: true }), + validatePermissions: vi.fn().mockReturnValue({ isValid: true }), + }; + }), }; }); vi.mock("@calcom/features/pbac/services/permission-check.service", () => { return { - PermissionCheckService: vi.fn().mockImplementation(() => ({ - checkPermission: vi.fn().mockResolvedValue(true), - checkPermissions: vi.fn().mockResolvedValue(true), - getUserPermissions: vi.fn().mockResolvedValue([]), - getResourcePermissions: vi.fn().mockResolvedValue([]), - getTeamIdsWithPermission: vi.fn().mockResolvedValue([]), - getTeamIdsWithPermissions: vi.fn().mockResolvedValue([]), - })), + PermissionCheckService: vi.fn().mockImplementation(function() { + return { + checkPermission: vi.fn().mockResolvedValue(true), + checkPermissions: vi.fn().mockResolvedValue(true), + getUserPermissions: vi.fn().mockResolvedValue([]), + getResourcePermissions: vi.fn().mockResolvedValue([]), + getTeamIdsWithPermission: vi.fn().mockResolvedValue([]), + getTeamIdsWithPermissions: vi.fn().mockResolvedValue([]), + }; + }), }; }); diff --git a/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMemberUtils.test.ts b/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMemberUtils.test.ts index 13dd546321..2fb6806d1a 100644 --- a/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMemberUtils.test.ts +++ b/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMemberUtils.test.ts @@ -136,12 +136,11 @@ describe("Invite Member Utils", () => { describe("ensureAtleastAdminPermissions", () => { it("It should throw an error if the user is not an admin of the ORG", async () => { const mockCheckPermission = vi.fn().mockResolvedValue(false); - vi.mocked(PermissionCheckService).mockImplementation( - () => - ({ - checkPermission: mockCheckPermission, - } as any) - ); + vi.mocked(PermissionCheckService).mockImplementation(function () { + return { + checkPermission: mockCheckPermission, + } as any; + }); await expect(ensureAtleastAdminPermissions({ userId: 1, teamId: 1, isOrg: true })).rejects.toThrow( "UNAUTHORIZED" @@ -157,12 +156,11 @@ describe("Invite Member Utils", () => { it("It should NOT throw an error if the user is an admin of the ORG", async () => { const mockCheckPermission = vi.fn().mockResolvedValue(true); - vi.mocked(PermissionCheckService).mockImplementation( - () => - ({ - checkPermission: mockCheckPermission, - } as any) - ); + vi.mocked(PermissionCheckService).mockImplementation(function () { + return { + checkPermission: mockCheckPermission, + } as any; + }); await expect( ensureAtleastAdminPermissions({ userId: 1, teamId: 1, isOrg: true }) diff --git a/packages/trpc/server/routers/viewer/teams/removeHostsFromEventTypes.handler.test.ts b/packages/trpc/server/routers/viewer/teams/removeHostsFromEventTypes.handler.test.ts index b7c5c85e07..abe1e9b880 100644 --- a/packages/trpc/server/routers/viewer/teams/removeHostsFromEventTypes.handler.test.ts +++ b/packages/trpc/server/routers/viewer/teams/removeHostsFromEventTypes.handler.test.ts @@ -44,9 +44,11 @@ describe("removeHostsFromEventTypesHandler", () => { it("throws UNAUTHORIZED if user does not have eventType.update permission", async () => { const mockCheckPermission = vi.fn().mockResolvedValue(false); - (PermissionCheckService as any).mockImplementation(() => ({ - checkPermission: mockCheckPermission, - })); + (PermissionCheckService as any).mockImplementation(function () { + return { + checkPermission: mockCheckPermission, + }; + }); await expect( removeHostsFromEventTypesHandler({ @@ -70,9 +72,11 @@ describe("removeHostsFromEventTypesHandler", () => { it("deletes hosts when user has permission and all users are team members", async () => { const mockCheckPermission = vi.fn().mockResolvedValue(true); - (PermissionCheckService as any).mockImplementation(() => ({ - checkPermission: mockCheckPermission, - })); + (PermissionCheckService as any).mockImplementation(function () { + return { + checkPermission: mockCheckPermission, + }; + }); // Mock that all userIds are valid team members (MembershipRepository.findAcceptedMembershipsByUserIdsInTeam as any).mockResolvedValue([ @@ -119,9 +123,11 @@ describe("removeHostsFromEventTypesHandler", () => { it("only removes hosts for userIds that are team members (filters out non-members)", async () => { const mockCheckPermission = vi.fn().mockResolvedValue(true); - (PermissionCheckService as any).mockImplementation(() => ({ - checkPermission: mockCheckPermission, - })); + (PermissionCheckService as any).mockImplementation(function () { + return { + checkPermission: mockCheckPermission, + }; + }); // Mock that only userId 101 is a team member, 102 is not (MembershipRepository.findAcceptedMembershipsByUserIdsInTeam as any).mockResolvedValue([ @@ -161,9 +167,11 @@ describe("removeHostsFromEventTypesHandler", () => { it("handles empty userIds array", async () => { const mockCheckPermission = vi.fn().mockResolvedValue(true); - (PermissionCheckService as any).mockImplementation(() => ({ - checkPermission: mockCheckPermission, - })); + (PermissionCheckService as any).mockImplementation(function () { + return { + checkPermission: mockCheckPermission, + }; + }); // Empty array means no memberships to validate (MembershipRepository.findAcceptedMembershipsByUserIdsInTeam as any).mockResolvedValue([]); @@ -200,9 +208,11 @@ describe("removeHostsFromEventTypesHandler", () => { it("handles empty eventTypeIds array", async () => { const mockCheckPermission = vi.fn().mockResolvedValue(true); - (PermissionCheckService as any).mockImplementation(() => ({ - checkPermission: mockCheckPermission, - })); + (PermissionCheckService as any).mockImplementation(function () { + return { + checkPermission: mockCheckPermission, + }; + }); // Mock that all userIds are valid team members (MembershipRepository.findAcceptedMembershipsByUserIdsInTeam as any).mockResolvedValue([ @@ -242,9 +252,11 @@ describe("removeHostsFromEventTypesHandler", () => { it("returns count of 0 when no hosts match the criteria", async () => { const mockCheckPermission = vi.fn().mockResolvedValue(true); - (PermissionCheckService as any).mockImplementation(() => ({ - checkPermission: mockCheckPermission, - })); + (PermissionCheckService as any).mockImplementation(function () { + return { + checkPermission: mockCheckPermission, + }; + }); // Mock that all userIds are valid team members (MembershipRepository.findAcceptedMembershipsByUserIdsInTeam as any).mockResolvedValue([ @@ -265,9 +277,11 @@ describe("removeHostsFromEventTypesHandler", () => { it("returns count of 0 when userId is a team member but not a host on the specified event types", async () => { const mockCheckPermission = vi.fn().mockResolvedValue(true); - (PermissionCheckService as any).mockImplementation(() => ({ - checkPermission: mockCheckPermission, - })); + (PermissionCheckService as any).mockImplementation(function () { + return { + checkPermission: mockCheckPermission, + }; + }); // User 999 is a valid team member (MembershipRepository.findAcceptedMembershipsByUserIdsInTeam as any).mockResolvedValue([ @@ -307,9 +321,11 @@ describe("removeHostsFromEventTypesHandler", () => { it("returns count of 0 when event types do not belong to the specified team", async () => { const mockCheckPermission = vi.fn().mockResolvedValue(true); - (PermissionCheckService as any).mockImplementation(() => ({ - checkPermission: mockCheckPermission, - })); + (PermissionCheckService as any).mockImplementation(function () { + return { + checkPermission: mockCheckPermission, + }; + }); // Mock that all userIds are valid team members (MembershipRepository.findAcceptedMembershipsByUserIdsInTeam as any).mockResolvedValue([ diff --git a/packages/trpc/server/routers/viewer/teams/removeMember/__tests__/PBACRemoveMemberService.test.ts b/packages/trpc/server/routers/viewer/teams/removeMember/__tests__/PBACRemoveMemberService.test.ts index 309623db5e..170c1f754c 100644 --- a/packages/trpc/server/routers/viewer/teams/removeMember/__tests__/PBACRemoveMemberService.test.ts +++ b/packages/trpc/server/routers/viewer/teams/removeMember/__tests__/PBACRemoveMemberService.test.ts @@ -36,7 +36,7 @@ describe("PBACRemoveMemberService", () => { getTeamIdsWithPermission: vi.fn(), }; - vi.mocked(PermissionCheckService).mockImplementation(() => mockPermissionCheckService as any); + vi.mocked(PermissionCheckService).mockImplementation(function() { return mockPermissionCheckService as any; }); service = new PBACRemoveMemberService(); }); diff --git a/packages/trpc/server/routers/viewer/teams/removeMember/__tests__/RemoveMemberServiceFactory.test.ts b/packages/trpc/server/routers/viewer/teams/removeMember/__tests__/RemoveMemberServiceFactory.test.ts index 6709079a31..d89fe68e73 100644 --- a/packages/trpc/server/routers/viewer/teams/removeMember/__tests__/RemoveMemberServiceFactory.test.ts +++ b/packages/trpc/server/routers/viewer/teams/removeMember/__tests__/RemoveMemberServiceFactory.test.ts @@ -22,7 +22,7 @@ describe("RemoveMemberServiceFactory", () => { checkIfTeamHasFeature: vi.fn(), }; - vi.mocked(FeaturesRepository).mockImplementation(() => mockFeaturesRepository as any); + vi.mocked(FeaturesRepository).mockImplementation(function() { return mockFeaturesRepository as any; }); }); describe("Service Creation", () => { diff --git a/packages/trpc/server/routers/viewer/teams/update.handler.test.ts b/packages/trpc/server/routers/viewer/teams/update.handler.test.ts index 59cabfd4dc..4e961e5c7c 100644 --- a/packages/trpc/server/routers/viewer/teams/update.handler.test.ts +++ b/packages/trpc/server/routers/viewer/teams/update.handler.test.ts @@ -26,15 +26,15 @@ vi.mock("@calcom/prisma", () => ({ })); vi.mock("@calcom/features/pbac/services/permission-check.service", () => ({ - PermissionCheckService: vi.fn().mockImplementation(() => ({ + PermissionCheckService: vi.fn().mockImplementation(function() { return { checkPermission: vi.fn(), - })), + }; }), })); vi.mock("@calcom/features/ee/teams/repositories/TeamRepository", () => ({ - TeamRepository: vi.fn().mockImplementation(() => ({ + TeamRepository: vi.fn().mockImplementation(function() { return { isSlugAvailableForUpdate: vi.fn().mockResolvedValue(true), - })), + }; }), })); vi.mock("@calcom/lib/server/avatar", () => ({ @@ -64,12 +64,12 @@ describe("updateHandler - Permission Check Tests", () => { beforeEach(() => { vi.clearAllMocks(); - vi.mocked(PermissionCheckService).mockImplementation( - () => mockPermissionCheckService as unknown as InstanceType - ); - vi.mocked(TeamRepository).mockImplementation( - () => mockTeamRepository as unknown as InstanceType - ); + vi.mocked(PermissionCheckService).mockImplementation(function () { + return mockPermissionCheckService as unknown as InstanceType; + }); + vi.mocked(TeamRepository).mockImplementation(function () { + return mockTeamRepository as unknown as InstanceType; + }); }); describe("Permission Check Service", () => { diff --git a/packages/trpc/server/routers/viewer/webhook/util.test.ts b/packages/trpc/server/routers/viewer/webhook/util.test.ts index f3261d031f..bbb49c6890 100644 --- a/packages/trpc/server/routers/viewer/webhook/util.test.ts +++ b/packages/trpc/server/routers/viewer/webhook/util.test.ts @@ -28,9 +28,9 @@ vi.mock("@calcom/prisma", () => ({ const mockCheckPermission = vi.fn(); vi.mock("@calcom/features/pbac/services/permission-check.service", () => ({ - PermissionCheckService: vi.fn().mockImplementation(() => ({ + PermissionCheckService: vi.fn().mockImplementation(function() { return { checkPermission: mockCheckPermission, - })), + }; }), })); vi.mock("../../../procedures/authedProcedure", () => ({ diff --git a/packages/trpc/server/routers/viewer/workflows/util.test.ts b/packages/trpc/server/routers/viewer/workflows/util.test.ts index 4f202a433a..d45a905ec8 100644 --- a/packages/trpc/server/routers/viewer/workflows/util.test.ts +++ b/packages/trpc/server/routers/viewer/workflows/util.test.ts @@ -18,13 +18,12 @@ describe("isAuthorized", () => { beforeEach(() => { vi.clearAllMocks(); mockCheckPermission = vi.fn(); - mockPermissionCheckService.mockImplementation( - () => - ({ - checkPermission: mockCheckPermission, - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } as any) - ); + mockPermissionCheckService.mockImplementation(function () { + return { + checkPermission: mockCheckPermission, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } as any; + }); }); describe("null workflow", () => { diff --git a/packages/ui/components/button/button.test.tsx b/packages/ui/components/button/button.test.tsx index 5d81f13de9..5c64d06362 100644 --- a/packages/ui/components/button/button.test.tsx +++ b/packages/ui/components/button/button.test.tsx @@ -7,11 +7,13 @@ import { Button, buttonClasses } from "./Button"; const observeMock = vi.fn(); -window.ResizeObserver = vi.fn().mockImplementation(() => ({ - disconnect: vi.fn(), - observe: observeMock, - unobserve: vi.fn(), -})); +window.ResizeObserver = vi.fn().mockImplementation(function() { + return { + disconnect: vi.fn(), + observe: observeMock, + unobserve: vi.fn(), + }; +}); vi.mock("../tooltip", async () => { // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/vitest-mocks/svg-hashes.json b/vitest-mocks/svg-hashes.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/vitest-mocks/svg-hashes.json @@ -0,0 +1 @@ +{} diff --git a/vitest-mocks/tailwind.generated.css b/vitest-mocks/tailwind.generated.css new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/vitest-mocks/tailwind.generated.css @@ -0,0 +1 @@ + diff --git a/vitest.config.mts b/vitest.config.mts new file mode 100644 index 0000000000..95ce053284 --- /dev/null +++ b/vitest.config.mts @@ -0,0 +1,126 @@ +import path from "path"; +import react from "@vitejs/plugin-react"; +import { defineConfig } from "vitest/config"; + +const vitestMode = process.env.VITEST_MODE; +// Support both new VITEST_MODE env var and legacy CLI flags for backwards compatibility +// The CLI flags are passed through but Vitest 4.0 doesn't reject them when using yarn test +const isPackagedEmbedMode = vitestMode === "packaged-embed" || process.argv.includes("--packaged-embed-tests-only"); +const isIntegrationMode = vitestMode === "integration" || process.argv.includes("--integrationTestsOnly"); +const isTimezoneMode = vitestMode === "timezone" || process.argv.includes("--timeZoneDependentTestsOnly"); + +// Always set INTEGRATION_TEST_MODE to allow server-side imports in jsdom environment +// This is needed because getBookingFields.ts checks for this env var to allow imports +process.env.INTEGRATION_TEST_MODE = "true"; + +if (isTimezoneMode && !process.env.TZ) { + throw new Error("TZ environment variable is not set for timezone tests"); +} + +function getTestInclude() { + if (isPackagedEmbedMode) { + return ["packages/embeds/**/packaged/**/*.{test,spec}.{ts,js}"]; + } + if (isIntegrationMode) { + return ["packages/**/*.integration-test.ts", "apps/**/*.integration-test.ts"]; + } + if (isTimezoneMode) { + return ["packages/**/*.timezone.test.ts", "apps/**/*.timezone.test.ts"]; + } + // Default: run all test files (Vitest default pattern) + return ["**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"]; +} + +function getTestExclude() { + const baseExclude = [ + "**/node_modules/**", + "**/dist/**", + "apps/api/v2/**/*.spec.ts", + "__checks__/**/*.spec.ts", + ]; + if (isIntegrationMode || isTimezoneMode) { + return [...baseExclude, "packages/embeds/**/*"]; + } + return baseExclude; +} + +export default defineConfig({ + plugins: [react()], + resolve: { + alias: [ + // Mock generated files that may not exist in CI (must come before general aliases) + { + find: "@calcom/web/public/app-store/svg-hashes.json", + replacement: path.resolve(__dirname, "vitest-mocks/svg-hashes.json"), + }, + { + find: /^\.\/tailwind\.generated\.css\?inline$/, + replacement: path.resolve( + __dirname, + "vitest-mocks/tailwind.generated.css" + ), + }, + // Alias Node.js built-ins for jsdom environment + { find: "crypto", replacement: "node:crypto" }, + // API v1 path alias + { find: "~", replacement: path.resolve(__dirname, "apps/api/v1") }, + // apps/web path aliases + { find: "@lib", replacement: path.resolve(__dirname, "apps/web/lib") }, + { find: "app", replacement: path.resolve(__dirname, "apps/web/app") }, + { find: "@calcom/web", replacement: path.resolve(__dirname, "apps/web") }, + // Platform packages that need to be resolved from source in CI + { + find: "@calcom/platform-constants", + replacement: path.resolve( + __dirname, + "packages/platform/constants/index.ts" + ), + }, + { + find: "@calcom/embed-react", + replacement: path.resolve( + __dirname, + "packages/embeds/embed-react/src/index.ts" + ), + }, + { + find: "@calcom/embed-snippet", + replacement: path.resolve( + __dirname, + "packages/embeds/embed-snippet/src/index.ts" + ), + }, + ], + }, + test: { + globals: true, + silent: true, + environment: "jsdom", + setupFiles: ["./setupVitest.ts"], + include: getTestInclude(), + exclude: getTestExclude(), + server: { + deps: { + inline: [/@calcom\/.*/], + }, + }, + coverage: { + provider: "v8", + }, + passWithNoTests: true, + testTimeout: 500000, + }, +}); + +setEnvVariablesThatAreUsedBeforeSetup(); + +function setEnvVariablesThatAreUsedBeforeSetup() { + // We can't set it during tests because it is used as soon as _metadata.ts is imported which happens before tests start running + process.env.DAILY_API_KEY = "MOCK_DAILY_API_KEY"; + // With same env variable, we can test both non org and org booking scenarios + process.env.NEXT_PUBLIC_WEBAPP_URL = "http://app.cal.local:3000"; + process.env.CALCOM_SERVICE_ACCOUNT_ENCRYPTION_KEY = + "UNIT_TEST_ENCRYPTION_KEY"; + process.env.STRIPE_PRIVATE_KEY = + process.env.STRIPE_PRIVATE_KEY || "sk_test_dummy_unit_test_key"; +} diff --git a/vitest.config.ts b/vitest.config.ts deleted file mode 100644 index e194a85bd5..0000000000 --- a/vitest.config.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { defineConfig } from "vitest/config"; -process.env.INTEGRATION_TEST_MODE = "true"; - -export default defineConfig({ - test: { - setupFiles: ["./setupVitest.ts"], - - coverage: { - provider: "v8", - }, - passWithNoTests: true, - testTimeout: 500000, - }, -}); - -setEnvVariablesThatAreUsedBeforeSetup(); - -function setEnvVariablesThatAreUsedBeforeSetup() { - // We can't set it during tests because it is used as soon as _metadata.ts is imported which happens before tests start running - process.env.DAILY_API_KEY = "MOCK_DAILY_API_KEY"; - // With same env variable, we can test both non org and org booking scenarios - process.env.NEXT_PUBLIC_WEBAPP_URL = "http://app.cal.local:3000"; - process.env.CALCOM_SERVICE_ACCOUNT_ENCRYPTION_KEY = "UNIT_TEST_ENCRYPTION_KEY"; - process.env.STRIPE_PRIVATE_KEY = process.env.STRIPE_PRIVATE_KEY || "sk_test_dummy_unit_test_key"; -} diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 498e907eef..5340d2725a 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -1,8 +1,12 @@ import { defineWorkspace } from "vitest/config"; -const packagedEmbedTestsOnly = process.argv.includes("--packaged-embed-tests-only"); -const timeZoneDependentTestsOnly = process.argv.includes("--timeZoneDependentTestsOnly"); -const integrationTestsOnly = process.argv.includes("--integrationTestsOnly"); +// Vitest 4.0 no longer allows custom CLI flags, so we use environment variables instead +// eslint-disable-next-line turbo/no-undeclared-env-vars +const packagedEmbedTestsOnly = process.env.VITEST_MODE === "packaged-embed"; +// eslint-disable-next-line turbo/no-undeclared-env-vars +const timeZoneDependentTestsOnly = process.env.VITEST_MODE === "timezone"; +// eslint-disable-next-line turbo/no-undeclared-env-vars +const integrationTestsOnly = process.env.VITEST_MODE === "integration"; // eslint-disable-next-line turbo/no-undeclared-env-vars const envTZ = process.env.TZ; if (timeZoneDependentTestsOnly && !envTZ) { diff --git a/yarn.lock b/yarn.lock index 292bcb2e71..02758be575 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1157,7 +1157,14 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:7.26.10, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.18.5, @babel/core@npm:^7.19.6, @babel/core@npm:^7.23.5, @babel/core@npm:^7.23.9, @babel/core@npm:^7.26.10": +"@babel/compat-data@npm:^7.27.2": + version: 7.28.5 + resolution: "@babel/compat-data@npm:7.28.5" + checksum: 10/5a5ff00b187049e847f04bd02e21fbd8094544e5016195c2b45e56fa2e311eeb925b158f52a85624c9e6bacc1ce0323e26c303513723d918a8034e347e22610d + languageName: node + linkType: hard + +"@babel/core@npm:7.26.10, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.18.5, @babel/core@npm:^7.23.9, @babel/core@npm:^7.26.10": version: 7.26.10 resolution: "@babel/core@npm:7.26.10" dependencies: @@ -1180,6 +1187,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.28.5": + version: 7.28.5 + resolution: "@babel/core@npm:7.28.5" + dependencies: + "@babel/code-frame": "npm:^7.27.1" + "@babel/generator": "npm:^7.28.5" + "@babel/helper-compilation-targets": "npm:^7.27.2" + "@babel/helper-module-transforms": "npm:^7.28.3" + "@babel/helpers": "npm:^7.28.4" + "@babel/parser": "npm:^7.28.5" + "@babel/template": "npm:^7.27.2" + "@babel/traverse": "npm:^7.28.5" + "@babel/types": "npm:^7.28.5" + "@jridgewell/remapping": "npm:^2.3.5" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10/2f1e224125179f423f4300d605a0c5a3ef315003281a63b1744405b2605ee2a2ffc5b1a8349aa4f262c72eca31c7e1802377ee04ad2b852a2c88f8ace6cac324 + languageName: node + linkType: hard + "@babel/generator@npm:7.28.5, @babel/generator@npm:^7.18.13, @babel/generator@npm:^7.26.10, @babel/generator@npm:^7.28.5, @babel/generator@npm:^7.7.2": version: 7.28.5 resolution: "@babel/generator@npm:7.28.5" @@ -1193,15 +1223,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" - dependencies: - "@babel/types": "npm:^7.22.5" - checksum: 10/53da330f1835c46f26b7bf4da31f7a496dee9fd8696cca12366b94ba19d97421ce519a74a837f687749318f94d1a37f8d1abcbf35e8ed22c32d16373b2f6198d - languageName: node - linkType: hard - "@babel/helper-compilation-targets@npm:^7.26.5": version: 7.27.0 resolution: "@babel/helper-compilation-targets@npm:7.27.0" @@ -1215,6 +1236,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/helper-compilation-targets@npm:7.27.2" + dependencies: + "@babel/compat-data": "npm:^7.27.2" + "@babel/helper-validator-option": "npm:^7.27.1" + browserslist: "npm:^4.24.0" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10/bd53c30a7477049db04b655d11f4c3500aea3bcbc2497cf02161de2ecf994fec7c098aabbcebe210ffabc2ecbdb1e3ffad23fb4d3f18723b814f423ea1749fe8 + languageName: node + linkType: hard + "@babel/helper-globals@npm:^7.28.0": version: 7.28.0 resolution: "@babel/helper-globals@npm:7.28.0" @@ -1222,7 +1256,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.12.13, @babel/helper-module-imports@npm:^7.22.5, @babel/helper-module-imports@npm:^7.25.9": +"@babel/helper-module-imports@npm:^7.12.13, @babel/helper-module-imports@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-module-imports@npm:7.25.9" dependencies: @@ -1232,6 +1266,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-module-imports@npm:7.27.1" + dependencies: + "@babel/traverse": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" + checksum: 10/58e792ea5d4ae71676e0d03d9fef33e886a09602addc3bd01388a98d87df9fcfd192968feb40ac4aedb7e287ec3d0c17b33e3ecefe002592041a91d8a1998a8d + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.26.0": version: 7.26.0 resolution: "@babel/helper-module-transforms@npm:7.26.0" @@ -1245,6 +1289,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.28.3": + version: 7.28.3 + resolution: "@babel/helper-module-transforms@npm:7.28.3" + dependencies: + "@babel/helper-module-imports": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.27.1" + "@babel/traverse": "npm:^7.28.3" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/598fdd8aa5b91f08542d0ba62a737847d0e752c8b95ae2566bc9d11d371856d6867d93e50db870fb836a6c44cfe481c189d8a2b35ca025a224f070624be9fa87 + languageName: node + linkType: hard + "@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.9, @babel/helper-plugin-utils@npm:^7.8.0": version: 7.26.5 resolution: "@babel/helper-plugin-utils@npm:7.26.5" @@ -1252,6 +1309,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-plugin-utils@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-plugin-utils@npm:7.27.1" + checksum: 10/96136c2428888e620e2ec493c25888f9ceb4a21099dcf3dd4508ea64b58cdedbd5a9fb6c7b352546de84d6c24edafe482318646932a22c449ebd16d16c22d864 + languageName: node + linkType: hard + "@babel/helper-string-parser@npm:^7.27.1": version: 7.27.1 resolution: "@babel/helper-string-parser@npm:7.27.1" @@ -1273,6 +1337,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-option@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-option@npm:7.27.1" + checksum: 10/db73e6a308092531c629ee5de7f0d04390835b21a263be2644276cb27da2384b64676cab9f22cd8d8dbd854c92b1d7d56fc8517cf0070c35d1c14a8c828b0903 + languageName: node + linkType: hard + "@babel/helpers@npm:^7.26.10": version: 7.27.0 resolution: "@babel/helpers@npm:7.27.0" @@ -1283,6 +1354,16 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.28.4": + version: 7.28.4 + resolution: "@babel/helpers@npm:7.28.4" + dependencies: + "@babel/template": "npm:^7.27.2" + "@babel/types": "npm:^7.28.4" + checksum: 10/5a70a82e196cf8808f8a449cc4780c34d02edda2bb136d39ce9d26e63b615f18e89a95472230c3ce7695db0d33e7026efeee56f6454ed43480f223007ed205eb + languageName: node + linkType: hard + "@babel/parser@npm:7.28.5, @babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.4, @babel/parser@npm:^7.26.10, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.5": version: 7.28.5 resolution: "@babel/parser@npm:7.28.5" @@ -1360,7 +1441,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.12.13, @babel/plugin-syntax-jsx@npm:^7.22.5, @babel/plugin-syntax-jsx@npm:^7.7.2": +"@babel/plugin-syntax-jsx@npm:^7.12.13, @babel/plugin-syntax-jsx@npm:^7.7.2": version: 7.23.3 resolution: "@babel/plugin-syntax-jsx@npm:7.23.3" dependencies: @@ -1459,51 +1540,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-development@npm:^7.18.6": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5" +"@babel/plugin-transform-react-jsx-self@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.27.1" dependencies: - "@babel/plugin-transform-react-jsx": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10/36bc3ff0b96bb0ef4723070a50cfdf2e72cfd903a59eba448f9fe92fea47574d6f22efd99364413719e1f3fb3c51b6c9b2990b87af088f8486a84b2a5f9e4560 + checksum: 10/72cbae66a58c6c36f7e12e8ed79f292192d858dd4bb00e9e89d8b695e4c5cb6ef48eec84bffff421a5db93fd10412c581f1cccdb00264065df76f121995bdb68 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-self@npm:^7.18.6, @babel/plugin-transform-react-jsx-self@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.23.3" +"@babel/plugin-transform-react-jsx-source@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10/882bf56bc932d015c2d83214133939ddcf342e5bcafa21f1a93b19f2e052145115e1e0351730897fd66e5f67cad7875b8a8d81ceb12b6e2a886ad0102cb4eb1f - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx-source@npm:^7.19.6, @babel/plugin-transform-react-jsx-source@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-jsx-source@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.22.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/92287fb797e522d99bdc77eaa573ce79ff0ad9f1cf4e7df374645e28e51dce0adad129f6f075430b129b5bac8dad843f65021970e12e992d6d6671f0d65bb1e0 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx@npm:^7.19.0, @babel/plugin-transform-react-jsx@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-jsx@npm:7.22.5" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-module-imports": "npm:^7.22.5" - "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/plugin-syntax-jsx": "npm:^7.22.5" - "@babel/types": "npm:^7.22.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/6be5db99b170c937c71fbe68dc64804bb041729d2f95b376ab5e7bc51c34a790f28753b14384160e87cabacf5e1b1aa3379a1a430a60b1fd6b031ba58955f5a6 + checksum: 10/e2843362adb53692be5ee9fa07a386d2d8883daad2063a3575b3c373fc14cdf4ea7978c67a183cb631b4c9c8d77b2f48c24c088f8e65cc3600cb8e97d72a7161 languageName: node linkType: hard @@ -1525,7 +1580,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:7.28.5, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.10": +"@babel/traverse@npm:7.28.5, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.10, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.28.3, @babel/traverse@npm:^7.28.5": version: 7.28.5 resolution: "@babel/traverse@npm:7.28.5" dependencies: @@ -1540,7 +1595,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:7.28.5, @babel/types@npm:^7.0.0, @babel/types@npm:^7.18.13, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.5, @babel/types@npm:^7.25.4, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.10, @babel/types@npm:^7.27.0, @babel/types@npm:^7.27.1, @babel/types@npm:^7.28.5, @babel/types@npm:^7.3.3": +"@babel/types@npm:7.28.5, @babel/types@npm:^7.0.0, @babel/types@npm:^7.18.13, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.4, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.10, @babel/types@npm:^7.27.0, @babel/types@npm:^7.27.1, @babel/types@npm:^7.28.4, @babel/types@npm:^7.28.5, @babel/types@npm:^7.3.3": version: 7.28.5 resolution: "@babel/types@npm:7.28.5" dependencies: @@ -2050,8 +2105,8 @@ __metadata: "@types/node": "npm:20.17.23" "@types/react": "npm:18.0.26" "@types/react-dom": "npm:18.2.6" - "@vitejs/plugin-react": "npm:2.2.0" - "@vitejs/plugin-react-swc": "npm:3.7.0" + "@vitejs/plugin-react": "npm:5.1.2" + "@vitejs/plugin-react-swc": "npm:4.2.2" autoprefixer: "npm:10.4.19" class-variance-authority: "npm:0.4.0" clsx: "npm:2.1.1" @@ -2069,8 +2124,8 @@ __metadata: tailwindcss: "npm:4.1.17" ts-jest: "npm:29.1.4" typescript: "npm:5.9.3" - vite: "npm:5.4.21" - vite-plugin-dts: "npm:3.7.3" + vite: "npm:6.4.1" + vite-plugin-dts: "npm:4.5.4" vite-plugin-inspect: "npm:0.8.4" peerDependencies: react: ^18.0.0 || ^19.0.0 @@ -2379,13 +2434,13 @@ __metadata: "@playwright/test": "npm:1.57.0" "@tailwindcss/cli": "npm:4.1.16" "@tailwindcss/postcss": "npm:4.1.15" - "@vitejs/plugin-basic-ssl": "npm:1.1.0" + "@vitejs/plugin-basic-ssl": "npm:2.1.0" autoprefixer: "npm:10.4.19" npm-run-all: "npm:4.1.5" postcss: "npm:8.5.6" tailwindcss: "npm:4.1.17" typescript: "npm:5.9.3" - vite: "npm:4.5.14" + vite: "npm:6.4.1" vite-plugin-environment: "npm:1.1.3" languageName: unknown linkType: soft @@ -2399,10 +2454,10 @@ __metadata: "@playwright/test": "npm:1.57.0" "@types/react": "npm:18.0.26" "@types/react-dom": "npm:18.2.6" - "@vitejs/plugin-react": "npm:2.2.0" + "@vitejs/plugin-react": "npm:5.1.2" npm-run-all: "npm:4.1.5" typescript: "npm:5.9.3" - vite: "npm:4.5.14" + vite: "npm:6.4.1" peerDependencies: react: ^18.2.0 || ^19.0.0 react-dom: ^18.2.0 || ^19.0.0 @@ -2415,7 +2470,7 @@ __metadata: dependencies: "@calcom/embed-core": "workspace:*" typescript: "npm:5.9.3" - vite: "npm:4.5.14" + vite: "npm:6.4.1" languageName: unknown linkType: soft @@ -2971,10 +3026,10 @@ __metadata: "@calcom/features": "workspace:*" "@calcom/lib": "workspace:*" "@types/node": "npm:20.17.23" - "@vitejs/plugin-react": "npm:4.2.1" + "@vitejs/plugin-react": "npm:5.1.2" typescript: "npm:5.9.3" - vite: "npm:5.4.21" - vite-plugin-dts: "npm:3.7.3" + vite: "npm:6.4.1" + vite-plugin-dts: "npm:4.5.4" vite-plugin-environment: "npm:1.1.3" peerDependencies: react: ^18.0.0 || ^19.0.0 @@ -4498,16 +4553,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/aix-ppc64@npm:0.21.5" +"@esbuild/aix-ppc64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/aix-ppc64@npm:0.23.1" conditions: os=aix & cpu=ppc64 languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/aix-ppc64@npm:0.23.1" +"@esbuild/aix-ppc64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/aix-ppc64@npm:0.25.12" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/aix-ppc64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/aix-ppc64@npm:0.27.2" conditions: os=aix & cpu=ppc64 languageName: node linkType: hard @@ -4519,16 +4581,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-arm64@npm:0.21.5" +"@esbuild/android-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/android-arm64@npm:0.23.1" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/android-arm64@npm:0.23.1" +"@esbuild/android-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/android-arm64@npm:0.25.12" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/android-arm64@npm:0.27.2" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -4540,16 +4609,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-arm@npm:0.21.5" +"@esbuild/android-arm@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/android-arm@npm:0.23.1" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-arm@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/android-arm@npm:0.23.1" +"@esbuild/android-arm@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/android-arm@npm:0.25.12" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/android-arm@npm:0.27.2" conditions: os=android & cpu=arm languageName: node linkType: hard @@ -4561,16 +4637,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-x64@npm:0.21.5" +"@esbuild/android-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/android-x64@npm:0.23.1" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/android-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/android-x64@npm:0.23.1" +"@esbuild/android-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/android-x64@npm:0.25.12" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/android-x64@npm:0.27.2" conditions: os=android & cpu=x64 languageName: node linkType: hard @@ -4582,16 +4665,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/darwin-arm64@npm:0.21.5" +"@esbuild/darwin-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/darwin-arm64@npm:0.23.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/darwin-arm64@npm:0.23.1" +"@esbuild/darwin-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/darwin-arm64@npm:0.25.12" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/darwin-arm64@npm:0.27.2" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -4603,16 +4693,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/darwin-x64@npm:0.21.5" +"@esbuild/darwin-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/darwin-x64@npm:0.23.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/darwin-x64@npm:0.23.1" +"@esbuild/darwin-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/darwin-x64@npm:0.25.12" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/darwin-x64@npm:0.27.2" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -4624,16 +4721,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/freebsd-arm64@npm:0.21.5" +"@esbuild/freebsd-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/freebsd-arm64@npm:0.23.1" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/freebsd-arm64@npm:0.23.1" +"@esbuild/freebsd-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/freebsd-arm64@npm:0.25.12" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/freebsd-arm64@npm:0.27.2" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -4645,16 +4749,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/freebsd-x64@npm:0.21.5" +"@esbuild/freebsd-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/freebsd-x64@npm:0.23.1" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/freebsd-x64@npm:0.23.1" +"@esbuild/freebsd-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/freebsd-x64@npm:0.25.12" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/freebsd-x64@npm:0.27.2" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -4666,16 +4777,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-arm64@npm:0.21.5" +"@esbuild/linux-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-arm64@npm:0.23.1" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-arm64@npm:0.23.1" +"@esbuild/linux-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-arm64@npm:0.25.12" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-arm64@npm:0.27.2" conditions: os=linux & cpu=arm64 languageName: node linkType: hard @@ -4687,16 +4805,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-arm@npm:0.21.5" +"@esbuild/linux-arm@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-arm@npm:0.23.1" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-arm@npm:0.23.1" +"@esbuild/linux-arm@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-arm@npm:0.25.12" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-arm@npm:0.27.2" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -4708,16 +4833,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-ia32@npm:0.21.5" +"@esbuild/linux-ia32@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-ia32@npm:0.23.1" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-ia32@npm:0.23.1" +"@esbuild/linux-ia32@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-ia32@npm:0.25.12" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-ia32@npm:0.27.2" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -4729,16 +4861,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-loong64@npm:0.21.5" +"@esbuild/linux-loong64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-loong64@npm:0.23.1" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-loong64@npm:0.23.1" +"@esbuild/linux-loong64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-loong64@npm:0.25.12" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-loong64@npm:0.27.2" conditions: os=linux & cpu=loong64 languageName: node linkType: hard @@ -4750,16 +4889,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-mips64el@npm:0.21.5" +"@esbuild/linux-mips64el@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-mips64el@npm:0.23.1" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-mips64el@npm:0.23.1" +"@esbuild/linux-mips64el@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-mips64el@npm:0.25.12" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-mips64el@npm:0.27.2" conditions: os=linux & cpu=mips64el languageName: node linkType: hard @@ -4771,16 +4917,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-ppc64@npm:0.21.5" +"@esbuild/linux-ppc64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-ppc64@npm:0.23.1" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-ppc64@npm:0.23.1" +"@esbuild/linux-ppc64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-ppc64@npm:0.25.12" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-ppc64@npm:0.27.2" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -4792,16 +4945,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-riscv64@npm:0.21.5" +"@esbuild/linux-riscv64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-riscv64@npm:0.23.1" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-riscv64@npm:0.23.1" +"@esbuild/linux-riscv64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-riscv64@npm:0.25.12" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-riscv64@npm:0.27.2" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard @@ -4813,16 +4973,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-s390x@npm:0.21.5" +"@esbuild/linux-s390x@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-s390x@npm:0.23.1" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-s390x@npm:0.23.1" +"@esbuild/linux-s390x@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-s390x@npm:0.25.12" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-s390x@npm:0.27.2" conditions: os=linux & cpu=s390x languageName: node linkType: hard @@ -4834,13 +5001,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-x64@npm:0.21.5" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - "@esbuild/linux-x64@npm:0.23.1": version: 0.23.1 resolution: "@esbuild/linux-x64@npm:0.23.1" @@ -4848,16 +5008,37 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/netbsd-x64@npm:0.18.20" - conditions: os=netbsd & cpu=x64 +"@esbuild/linux-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-x64@npm:0.25.12" + conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/netbsd-x64@npm:0.21.5" +"@esbuild/linux-x64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-x64@npm:0.27.2" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/netbsd-arm64@npm:0.25.12" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/netbsd-arm64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/netbsd-arm64@npm:0.27.2" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/netbsd-x64@npm:0.18.20" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard @@ -4869,6 +5050,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/netbsd-x64@npm:0.25.12" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/netbsd-x64@npm:0.27.2" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-arm64@npm:0.23.1": version: 0.23.1 resolution: "@esbuild/openbsd-arm64@npm:0.23.1" @@ -4876,6 +5071,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/openbsd-arm64@npm:0.25.12" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/openbsd-arm64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/openbsd-arm64@npm:0.27.2" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/openbsd-x64@npm:0.18.20" @@ -4883,13 +5092,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/openbsd-x64@npm:0.21.5" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/openbsd-x64@npm:0.23.1": version: 0.23.1 resolution: "@esbuild/openbsd-x64@npm:0.23.1" @@ -4897,16 +5099,37 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/sunos-x64@npm:0.18.20" - conditions: os=sunos & cpu=x64 +"@esbuild/openbsd-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/openbsd-x64@npm:0.25.12" + conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/sunos-x64@npm:0.21.5" +"@esbuild/openbsd-x64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/openbsd-x64@npm:0.27.2" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openharmony-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/openharmony-arm64@npm:0.25.12" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/openharmony-arm64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/openharmony-arm64@npm:0.27.2" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/sunos-x64@npm:0.18.20" conditions: os=sunos & cpu=x64 languageName: node linkType: hard @@ -4918,16 +5141,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/win32-arm64@npm:0.18.20" - conditions: os=win32 & cpu=arm64 +"@esbuild/sunos-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/sunos-x64@npm:0.25.12" + conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-arm64@npm:0.21.5" +"@esbuild/sunos-x64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/sunos-x64@npm:0.27.2" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/win32-arm64@npm:0.18.20" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -4939,16 +5169,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/win32-ia32@npm:0.18.20" - conditions: os=win32 & cpu=ia32 +"@esbuild/win32-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/win32-arm64@npm:0.25.12" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-ia32@npm:0.21.5" +"@esbuild/win32-arm64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/win32-arm64@npm:0.27.2" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/win32-ia32@npm:0.18.20" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -4960,6 +5197,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/win32-ia32@npm:0.25.12" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/win32-ia32@npm:0.27.2" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/win32-x64@npm:0.18.20" @@ -4967,16 +5218,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-x64@npm:0.21.5" +"@esbuild/win32-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/win32-x64@npm:0.23.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/win32-x64@npm:0.23.1" +"@esbuild/win32-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/win32-x64@npm:0.25.12" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/win32-x64@npm:0.27.2" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -7841,36 +8099,38 @@ __metadata: languageName: node linkType: hard -"@microsoft/api-extractor-model@npm:7.28.3": - version: 7.28.3 - resolution: "@microsoft/api-extractor-model@npm:7.28.3" +"@microsoft/api-extractor-model@npm:7.32.2": + version: 7.32.2 + resolution: "@microsoft/api-extractor-model@npm:7.32.2" dependencies: - "@microsoft/tsdoc": "npm:0.14.2" - "@microsoft/tsdoc-config": "npm:~0.16.1" - "@rushstack/node-core-library": "npm:3.62.0" - checksum: 10/704b8bfbf0b93c1d0605506a5a34ba3c68794d451f4b1dbfdc58fc142200c4d4391a435dd13d2d9470daaf4263ccdcee35f7e1806d1978cc64df6d0483481f94 + "@microsoft/tsdoc": "npm:~0.16.0" + "@microsoft/tsdoc-config": "npm:~0.18.0" + "@rushstack/node-core-library": "npm:5.19.1" + checksum: 10/89760055c7d3074cd903e3694c411eafa8704f048781bb2db0f0ba6e6a9a1bb12a722419ddd99141562cc8d13c98e2deee6eba118853eed630918705b223107b languageName: node linkType: hard -"@microsoft/api-extractor@npm:7.39.0": - version: 7.39.0 - resolution: "@microsoft/api-extractor@npm:7.39.0" +"@microsoft/api-extractor@npm:^7.50.1": + version: 7.55.2 + resolution: "@microsoft/api-extractor@npm:7.55.2" dependencies: - "@microsoft/api-extractor-model": "npm:7.28.3" - "@microsoft/tsdoc": "npm:0.14.2" - "@microsoft/tsdoc-config": "npm:~0.16.1" - "@rushstack/node-core-library": "npm:3.62.0" - "@rushstack/rig-package": "npm:0.5.1" - "@rushstack/ts-command-line": "npm:4.17.1" - colors: "npm:~1.2.1" + "@microsoft/api-extractor-model": "npm:7.32.2" + "@microsoft/tsdoc": "npm:~0.16.0" + "@microsoft/tsdoc-config": "npm:~0.18.0" + "@rushstack/node-core-library": "npm:5.19.1" + "@rushstack/rig-package": "npm:0.6.0" + "@rushstack/terminal": "npm:0.19.5" + "@rushstack/ts-command-line": "npm:5.1.5" + diff: "npm:~8.0.2" lodash: "npm:~4.17.15" + minimatch: "npm:10.0.3" resolve: "npm:~1.22.1" semver: "npm:~7.5.4" source-map: "npm:~0.6.1" - typescript: "npm:5.3.3" + typescript: "npm:5.8.2" bin: api-extractor: bin/api-extractor - checksum: 10/b05f525b428cbacf26bc45394b84d7a73ab61b0bce7b77f82d0e43a332f019e94ca24d83f94d5083e9150efbc916cc35aa195d4f62ceca6fa168eb796d0d8af2 + checksum: 10/56b7e9338ad18cf3dc6aaefd679b90117c9d5498dee5c621e868a5fe5002656e62d08267525eb880221d4588afcf6d680604249a9c2fb5faaba8f9c87be16b3e languageName: node linkType: hard @@ -7895,19 +8155,26 @@ __metadata: languageName: node linkType: hard -"@microsoft/tsdoc-config@npm:~0.16.1": - version: 0.16.2 - resolution: "@microsoft/tsdoc-config@npm:0.16.2" +"@microsoft/tsdoc-config@npm:~0.18.0": + version: 0.18.0 + resolution: "@microsoft/tsdoc-config@npm:0.18.0" dependencies: - "@microsoft/tsdoc": "npm:0.14.2" - ajv: "npm:~6.12.6" + "@microsoft/tsdoc": "npm:0.16.0" + ajv: "npm:~8.12.0" jju: "npm:~1.4.0" - resolve: "npm:~1.19.0" - checksum: 10/37fc35d83dab66771502165fad6a8380ec6d47e0fdaadcb60c09792e5b8172feea42f327ebf4e6026c3b22448e5e73d9ee53948a2d877ee00257679b162f3490 + resolve: "npm:~1.22.2" + checksum: 10/0470df5326181d876faba51617d011a632b2e3b420953e521bb865715d0db2fb0b8bfb3ccbcaef267356a1a7150d2ffba40022db5930db6b15fcb348bf846a4b languageName: node linkType: hard -"@microsoft/tsdoc@npm:0.14.2, @microsoft/tsdoc@npm:^0.14.2": +"@microsoft/tsdoc@npm:0.16.0, @microsoft/tsdoc@npm:~0.16.0": + version: 0.16.0 + resolution: "@microsoft/tsdoc@npm:0.16.0" + checksum: 10/1eaad3605234dc7e44898c15d1ba3c97fb968af1117025400cba572ce268da05afc36634d1fb9e779457af3ff7f13330aee07a962510a4d9c6612c13f71ee41e + languageName: node + linkType: hard + +"@microsoft/tsdoc@npm:^0.14.2": version: 0.14.2 resolution: "@microsoft/tsdoc@npm:0.14.2" checksum: 10/00c3d4fc184e8e09e17aef57e4a990402bd9752607a5d50bd62a9e85bc4b8791c985a51e238affa6b9a2d23110f24d373becbfc84e1e6e9a84cf977822e3b00a @@ -12645,6 +12912,20 @@ __metadata: languageName: node linkType: hard +"@rolldown/pluginutils@npm:1.0.0-beta.47": + version: 1.0.0-beta.47 + resolution: "@rolldown/pluginutils@npm:1.0.0-beta.47" + checksum: 10/c1794cb39642e644dc7194043543780fd9f83e58052f1e5608d9d063a74592577bcb3b1283e3928db99ff52b208f7d5c47342f376de823f9fd584f189a371ed4 + languageName: node + linkType: hard + +"@rolldown/pluginutils@npm:1.0.0-beta.53": + version: 1.0.0-beta.53 + resolution: "@rolldown/pluginutils@npm:1.0.0-beta.53" + checksum: 10/09dab7cbff3143838310a003ea5e453b219b27d00f34a88efe4c0c4d2540f16d95b770db2be111a424d51947dc3a3598798124e3f3622a99337f7a7c3f6913b2 + languageName: node + linkType: hard + "@rollup/plugin-commonjs@npm:28.0.1": version: 28.0.1 resolution: "@rollup/plugin-commonjs@npm:28.0.1" @@ -12700,6 +12981,22 @@ __metadata: languageName: node linkType: hard +"@rollup/pluginutils@npm:^5.1.4": + version: 5.3.0 + resolution: "@rollup/pluginutils@npm:5.3.0" + dependencies: + "@types/estree": "npm:^1.0.0" + estree-walker: "npm:^2.0.2" + picomatch: "npm:^4.0.2" + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10/6c7dbab90e0ca5918a36875f745a0f30b47d5e0f45b42ed381ad8f7fed76b23e935766b66e3ae75375a42a80369569913abc8fd2529f4338471a1b2b4dfebaff + languageName: node + linkType: hard + "@rollup/rollup-android-arm-eabi@npm:4.35.0": version: 4.35.0 resolution: "@rollup/rollup-android-arm-eabi@npm:4.35.0" @@ -12707,9 +13004,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.36.0" +"@rollup/rollup-android-arm-eabi@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.54.0" conditions: os=android & cpu=arm languageName: node linkType: hard @@ -12721,9 +13018,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-android-arm64@npm:4.36.0" +"@rollup/rollup-android-arm64@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-android-arm64@npm:4.54.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -12735,9 +13032,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.36.0" +"@rollup/rollup-darwin-arm64@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.54.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -12756,9 +13053,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.36.0" +"@rollup/rollup-darwin-x64@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.54.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -12770,9 +13067,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.36.0" +"@rollup/rollup-freebsd-arm64@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.54.0" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -12784,9 +13081,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-freebsd-x64@npm:4.36.0" +"@rollup/rollup-freebsd-x64@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.54.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -12798,9 +13095,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.36.0" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.54.0" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard @@ -12812,9 +13109,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.36.0" +"@rollup/rollup-linux-arm-musleabihf@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.54.0" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard @@ -12826,9 +13123,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.36.0" +"@rollup/rollup-linux-arm64-gnu@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.54.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard @@ -12840,13 +13137,20 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.36.0" +"@rollup/rollup-linux-arm64-musl@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.54.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard +"@rollup/rollup-linux-loong64-gnu@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.54.0" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-loongarch64-gnu@npm:4.35.0": version: 4.35.0 resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.35.0" @@ -12854,13 +13158,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-loongarch64-gnu@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.36.0" - conditions: os=linux & cpu=loong64 & libc=glibc - languageName: node - linkType: hard - "@rollup/rollup-linux-powerpc64le-gnu@npm:4.35.0": version: 4.35.0 resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.35.0" @@ -12868,9 +13165,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.36.0" +"@rollup/rollup-linux-ppc64-gnu@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.54.0" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard @@ -12882,13 +13179,20 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.36.0" +"@rollup/rollup-linux-riscv64-gnu@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.54.0" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard +"@rollup/rollup-linux-riscv64-musl@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.54.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-s390x-gnu@npm:4.35.0": version: 4.35.0 resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.35.0" @@ -12896,9 +13200,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.36.0" +"@rollup/rollup-linux-s390x-gnu@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.54.0" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard @@ -12910,9 +13214,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.36.0" +"@rollup/rollup-linux-x64-gnu@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.54.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard @@ -12924,13 +13228,20 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.36.0" +"@rollup/rollup-linux-x64-musl@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.54.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard +"@rollup/rollup-openharmony-arm64@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-openharmony-arm64@npm:4.54.0" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-win32-arm64-msvc@npm:4.35.0": version: 4.35.0 resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.35.0" @@ -12938,9 +13249,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.36.0" +"@rollup/rollup-win32-arm64-msvc@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.54.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -12952,13 +13263,20 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.36.0" +"@rollup/rollup-win32-ia32-msvc@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.54.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard +"@rollup/rollup-win32-x64-gnu@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-win32-x64-gnu@npm:4.54.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-win32-x64-msvc@npm:4.35.0": version: 4.35.0 resolution: "@rollup/rollup-win32-x64-msvc@npm:4.35.0" @@ -12966,52 +13284,81 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.36.0": - version: 4.36.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.36.0" +"@rollup/rollup-win32-x64-msvc@npm:4.54.0": + version: 4.54.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.54.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@rushstack/node-core-library@npm:3.62.0": - version: 3.62.0 - resolution: "@rushstack/node-core-library@npm:3.62.0" +"@rushstack/node-core-library@npm:5.19.1": + version: 5.19.1 + resolution: "@rushstack/node-core-library@npm:5.19.1" dependencies: - colors: "npm:~1.2.1" - fs-extra: "npm:~7.0.1" + ajv: "npm:~8.13.0" + ajv-draft-04: "npm:~1.0.0" + ajv-formats: "npm:~3.0.1" + fs-extra: "npm:~11.3.0" import-lazy: "npm:~4.0.0" jju: "npm:~1.4.0" resolve: "npm:~1.22.1" semver: "npm:~7.5.4" - z-schema: "npm:~5.0.2" peerDependencies: "@types/node": "*" peerDependenciesMeta: "@types/node": optional: true - checksum: 10/61e22a1a04cf194f12b05acb643a361a74a34944a48380f61ba9d5f4b6c3684a7ae5669af5013b5549101647c6862548e11e1b8c60bdb687541f09133bbdd976 + checksum: 10/a674c4ed4cf3c863ab6bfff0e3615e7f791d0312fa5942027b6e8070b4453464c0e77741a1ed13bc01fab66ddc89e8c068c6c58ce7d81c014966628b75223bd6 languageName: node linkType: hard -"@rushstack/rig-package@npm:0.5.1": - version: 0.5.1 - resolution: "@rushstack/rig-package@npm:0.5.1" +"@rushstack/problem-matcher@npm:0.1.1": + version: 0.1.1 + resolution: "@rushstack/problem-matcher@npm:0.1.1" + peerDependencies: + "@types/node": "*" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: 10/a47c2d5fd0e3bbe7336f06c29ef91061e36ab8dafd04c861392806e60a3366fd8c3921be217adc71d039c8749f6b70a06c874ff314501eed5b7f8fb7b42c7a39 + languageName: node + linkType: hard + +"@rushstack/rig-package@npm:0.6.0": + version: 0.6.0 + resolution: "@rushstack/rig-package@npm:0.6.0" dependencies: resolve: "npm:~1.22.1" strip-json-comments: "npm:~3.1.1" - checksum: 10/9e5d425f60bb1e23371ecc086eaca838651ced904da33b690103ac731820e65a8a3720243f9e03578dfd1efa067fec9c6d762f16b3bb8cf92b56254d5f906989 + checksum: 10/6ca5d6615365dfe4d78fdc52a1a145bec92bba79d8692db91d05c774b4ec4d9dc6c41b31949708d0312896b9c1c205a0f0eaa32f51ac7b1780415ac51c76af71 languageName: node linkType: hard -"@rushstack/ts-command-line@npm:4.17.1": - version: 4.17.1 - resolution: "@rushstack/ts-command-line@npm:4.17.1" +"@rushstack/terminal@npm:0.19.5": + version: 0.19.5 + resolution: "@rushstack/terminal@npm:0.19.5" dependencies: + "@rushstack/node-core-library": "npm:5.19.1" + "@rushstack/problem-matcher": "npm:0.1.1" + supports-color: "npm:~8.1.1" + peerDependencies: + "@types/node": "*" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: 10/c5118df78045153aaf430de66e1d79befc729fd1f5df5dc8eef3dff1eb8f75a277f0dc8bad344b313d0485ace69400b1aaf69ad061c601a7bd8291ae5784b6a3 + languageName: node + linkType: hard + +"@rushstack/ts-command-line@npm:5.1.5": + version: 5.1.5 + resolution: "@rushstack/ts-command-line@npm:5.1.5" + dependencies: + "@rushstack/terminal": "npm:0.19.5" "@types/argparse": "npm:1.0.38" argparse: "npm:~1.0.9" - colors: "npm:~1.2.1" string-argv: "npm:~0.3.1" - checksum: 10/75407f6a42fda364ec9f945ebd346c632a23dd97d7ed5ad108c264d72ee0370d3d912cc6c16af6973bbc3f5f92b845b63fb13da75a077d61f7e34e69f00b8823 + checksum: 10/4e3bc090b9c40ec89729aa96d45b08aeac725ce3fda9951d3b87b485fe48299db2dfa7a338acf7e89f380a5b98d44df8b4a18067962fecfb8ba64a8919e6dd2b languageName: node linkType: hard @@ -14488,94 +14835,94 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.5.28": - version: 1.5.28 - resolution: "@swc/core-darwin-arm64@npm:1.5.28" +"@swc/core-darwin-arm64@npm:1.15.8": + version: 1.15.8 + resolution: "@swc/core-darwin-arm64@npm:1.15.8" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.5.28": - version: 1.5.28 - resolution: "@swc/core-darwin-x64@npm:1.5.28" +"@swc/core-darwin-x64@npm:1.15.8": + version: 1.15.8 + resolution: "@swc/core-darwin-x64@npm:1.15.8" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.5.28": - version: 1.5.28 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.5.28" +"@swc/core-linux-arm-gnueabihf@npm:1.15.8": + version: 1.15.8 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.15.8" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.5.28": - version: 1.5.28 - resolution: "@swc/core-linux-arm64-gnu@npm:1.5.28" +"@swc/core-linux-arm64-gnu@npm:1.15.8": + version: 1.15.8 + resolution: "@swc/core-linux-arm64-gnu@npm:1.15.8" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.5.28": - version: 1.5.28 - resolution: "@swc/core-linux-arm64-musl@npm:1.5.28" +"@swc/core-linux-arm64-musl@npm:1.15.8": + version: 1.15.8 + resolution: "@swc/core-linux-arm64-musl@npm:1.15.8" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.5.28": - version: 1.5.28 - resolution: "@swc/core-linux-x64-gnu@npm:1.5.28" +"@swc/core-linux-x64-gnu@npm:1.15.8": + version: 1.15.8 + resolution: "@swc/core-linux-x64-gnu@npm:1.15.8" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.5.28": - version: 1.5.28 - resolution: "@swc/core-linux-x64-musl@npm:1.5.28" +"@swc/core-linux-x64-musl@npm:1.15.8": + version: 1.15.8 + resolution: "@swc/core-linux-x64-musl@npm:1.15.8" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.5.28": - version: 1.5.28 - resolution: "@swc/core-win32-arm64-msvc@npm:1.5.28" +"@swc/core-win32-arm64-msvc@npm:1.15.8": + version: 1.15.8 + resolution: "@swc/core-win32-arm64-msvc@npm:1.15.8" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.5.28": - version: 1.5.28 - resolution: "@swc/core-win32-ia32-msvc@npm:1.5.28" +"@swc/core-win32-ia32-msvc@npm:1.15.8": + version: 1.15.8 + resolution: "@swc/core-win32-ia32-msvc@npm:1.15.8" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.5.28": - version: 1.5.28 - resolution: "@swc/core-win32-x64-msvc@npm:1.5.28" +"@swc/core-win32-x64-msvc@npm:1.15.8": + version: 1.15.8 + resolution: "@swc/core-win32-x64-msvc@npm:1.15.8" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@swc/core@npm:^1.5.7": - version: 1.5.28 - resolution: "@swc/core@npm:1.5.28" +"@swc/core@npm:^1.13.5": + version: 1.15.8 + resolution: "@swc/core@npm:1.15.8" dependencies: - "@swc/core-darwin-arm64": "npm:1.5.28" - "@swc/core-darwin-x64": "npm:1.5.28" - "@swc/core-linux-arm-gnueabihf": "npm:1.5.28" - "@swc/core-linux-arm64-gnu": "npm:1.5.28" - "@swc/core-linux-arm64-musl": "npm:1.5.28" - "@swc/core-linux-x64-gnu": "npm:1.5.28" - "@swc/core-linux-x64-musl": "npm:1.5.28" - "@swc/core-win32-arm64-msvc": "npm:1.5.28" - "@swc/core-win32-ia32-msvc": "npm:1.5.28" - "@swc/core-win32-x64-msvc": "npm:1.5.28" + "@swc/core-darwin-arm64": "npm:1.15.8" + "@swc/core-darwin-x64": "npm:1.15.8" + "@swc/core-linux-arm-gnueabihf": "npm:1.15.8" + "@swc/core-linux-arm64-gnu": "npm:1.15.8" + "@swc/core-linux-arm64-musl": "npm:1.15.8" + "@swc/core-linux-x64-gnu": "npm:1.15.8" + "@swc/core-linux-x64-musl": "npm:1.15.8" + "@swc/core-win32-arm64-msvc": "npm:1.15.8" + "@swc/core-win32-ia32-msvc": "npm:1.15.8" + "@swc/core-win32-x64-msvc": "npm:1.15.8" "@swc/counter": "npm:^0.1.3" - "@swc/types": "npm:^0.1.8" + "@swc/types": "npm:^0.1.25" peerDependencies: - "@swc/helpers": "*" + "@swc/helpers": ">=0.5.17" dependenciesMeta: "@swc/core-darwin-arm64": optional: true @@ -14600,7 +14947,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 10/8afa15c6212222f6966d40a15942678da14aede097b53b24f993f598b09e227e1a4a39d67875bbaf2b5eea999ef16ad4add6f71fe1fe4edce56ca757b18ad8be + checksum: 10/893156733eff53632148969d4ed570b023a2469479d0eb113319181f8517bcdddb533954eccf689265f230111893a568e8f24e1412eba71217cd390135246ee4 languageName: node linkType: hard @@ -14630,12 +14977,12 @@ __metadata: languageName: node linkType: hard -"@swc/types@npm:^0.1.8": - version: 0.1.8 - resolution: "@swc/types@npm:0.1.8" +"@swc/types@npm:^0.1.25": + version: 0.1.25 + resolution: "@swc/types@npm:0.1.25" dependencies: "@swc/counter": "npm:^0.1.3" - checksum: 10/2d1cda35116e03714137c1c37f4493efe0e26e88285ecc9dcdf6256a77984e367ea7b5f31d650f110fdcfd6ac53dff3ec77f841787ca328d2efa7b07ef1ac318 + checksum: 10/f6741450224892d12df43e5ca7f3cc0287df644dcd672626eb0cc2a3a8e3e875f4b29eb11336f37c7240cf6e010ba59eb3a79f4fb8bee5cbd168dfc1326ff369 languageName: node linkType: hard @@ -15581,6 +15928,16 @@ __metadata: languageName: node linkType: hard +"@types/chai@npm:^5.2.2": + version: 5.2.3 + resolution: "@types/chai@npm:5.2.3" + dependencies: + "@types/deep-eql": "npm:*" + assertion-error: "npm:^2.0.1" + checksum: 10/e79947307dc235953622e65f83d2683835212357ca261389116ab90bed369ac862ba28b146b4fed08b503ae1e1a12cb93ce783f24bb8d562950469f4320e1c7c + languageName: node + linkType: hard + "@types/cli-progress@npm:^3.11.0": version: 3.11.4 resolution: "@types/cli-progress@npm:3.11.4" @@ -15716,6 +16073,13 @@ __metadata: languageName: node linkType: hard +"@types/deep-eql@npm:*": + version: 4.0.2 + resolution: "@types/deep-eql@npm:4.0.2" + checksum: 10/249a27b0bb22f6aa28461db56afa21ec044fa0e303221a62dff81831b20c8530502175f1a49060f7099e7be06181078548ac47c668de79ff9880241968d43d0c + languageName: node + linkType: hard + "@types/detect-port@npm:1.3.2": version: 1.3.2 resolution: "@types/detect-port@npm:1.3.2" @@ -15789,7 +16153,7 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.5": +"@types/estree@npm:*, @types/estree@npm:1.0.8, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.5": version: 1.0.8 resolution: "@types/estree@npm:1.0.8" checksum: 10/25a4c16a6752538ffde2826c2cc0c6491d90e69cd6187bef4a006dd2c3c45469f049e643d7e516c515f21484dc3d48fd5c870be158a5beb72f5baf3dc43e4099 @@ -16763,233 +17127,225 @@ __metadata: languageName: node linkType: hard -"@vitejs/plugin-basic-ssl@npm:1.1.0": - version: 1.1.0 - resolution: "@vitejs/plugin-basic-ssl@npm:1.1.0" +"@vitejs/plugin-basic-ssl@npm:2.1.0": + version: 2.1.0 + resolution: "@vitejs/plugin-basic-ssl@npm:2.1.0" peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - checksum: 10/2c0631d1202a1b5f198a96c761cbcdde3730cc03a9be565ea12c37b47c22dd22976dc4bd614a400c431a55be0270359cf59fbb0530e77fafc0e591b1f58858ef + vite: ^6.0.0 || ^7.0.0 + checksum: 10/9c3e991b960410f22455dda9e421c11f5a4d135e44b2be40e7ba0838038c86222f702ed56086e473fa4b2dee58cf0bea58873fec1e2d504bfae3afc392552f8e languageName: node linkType: hard -"@vitejs/plugin-react-swc@npm:3.7.0": - version: 3.7.0 - resolution: "@vitejs/plugin-react-swc@npm:3.7.0" +"@vitejs/plugin-react-swc@npm:4.2.2": + version: 4.2.2 + resolution: "@vitejs/plugin-react-swc@npm:4.2.2" dependencies: - "@swc/core": "npm:^1.5.7" + "@rolldown/pluginutils": "npm:1.0.0-beta.47" + "@swc/core": "npm:^1.13.5" peerDependencies: - vite: ^4 || ^5 - checksum: 10/16498c65aca482f638f490a59c4ef49875e59d4f1631dad7515e2fce2f87a69a4ec0cd9774fc3666b8a6e211f65b78442411a743aea33762caa0044e3c04ad39 + vite: ^4 || ^5 || ^6 || ^7 + checksum: 10/2db234169f7dc177560ea0f5bfd02ab690e374e3f24459847643bb4f804994b6060610a3f5de7dbc83ed43131c7340b215e67978557ddd69e0be9a2024776f70 languageName: node linkType: hard -"@vitejs/plugin-react@npm:2.2.0": - version: 2.2.0 - resolution: "@vitejs/plugin-react@npm:2.2.0" +"@vitejs/plugin-react@npm:5.1.2": + version: 5.1.2 + resolution: "@vitejs/plugin-react@npm:5.1.2" dependencies: - "@babel/core": "npm:^7.19.6" - "@babel/plugin-transform-react-jsx": "npm:^7.19.0" - "@babel/plugin-transform-react-jsx-development": "npm:^7.18.6" - "@babel/plugin-transform-react-jsx-self": "npm:^7.18.6" - "@babel/plugin-transform-react-jsx-source": "npm:^7.19.6" - magic-string: "npm:^0.26.7" - react-refresh: "npm:^0.14.0" - peerDependencies: - vite: ^3.0.0 - checksum: 10/743c40dd2a84b73ddb28bc5ea9bdb5871ea5f4a917d67eb8bd5e794b5762ece31cdb74632ffd54313b54d2587a8708558104b8d1646fb296beffc2d266fa3741 - languageName: node - linkType: hard - -"@vitejs/plugin-react@npm:4.2.1": - version: 4.2.1 - resolution: "@vitejs/plugin-react@npm:4.2.1" - dependencies: - "@babel/core": "npm:^7.23.5" - "@babel/plugin-transform-react-jsx-self": "npm:^7.23.3" - "@babel/plugin-transform-react-jsx-source": "npm:^7.23.3" + "@babel/core": "npm:^7.28.5" + "@babel/plugin-transform-react-jsx-self": "npm:^7.27.1" + "@babel/plugin-transform-react-jsx-source": "npm:^7.27.1" + "@rolldown/pluginutils": "npm:1.0.0-beta.53" "@types/babel__core": "npm:^7.20.5" - react-refresh: "npm:^0.14.0" + react-refresh: "npm:^0.18.0" peerDependencies: - vite: ^4.2.0 || ^5.0.0 - checksum: 10/d7fa6dacd3c246bcee482ff4b7037b2978b6ca002b79780ad4921e91ae4bc85ab234cfb94f8d4d825fed8488a0acdda2ff02b47c27b3055187c0727b18fc725e + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + checksum: 10/2b15994a7f787456bf66d00cc231617148bd10a439a115767ab14d47d435f182758bce38f7c07d5275e79930dc7f689e3ebab44ac57a833fe13b6a233aa37738 languageName: node linkType: hard -"@vitest/expect@npm:2.1.9": - version: 2.1.9 - resolution: "@vitest/expect@npm:2.1.9" +"@vitest/expect@npm:4.0.16": + version: 4.0.16 + resolution: "@vitest/expect@npm:4.0.16" dependencies: - "@vitest/spy": "npm:2.1.9" - "@vitest/utils": "npm:2.1.9" - chai: "npm:^5.1.2" - tinyrainbow: "npm:^1.2.0" - checksum: 10/c4317e4d013b12530cd9b175906788ef9d78b92fa0a37939a68c78bcf6d3657e7a43b632d00b9204a493fd0c2e7595a1c3c05652e749bf44a08927a9161e49f0 + "@standard-schema/spec": "npm:^1.0.0" + "@types/chai": "npm:^5.2.2" + "@vitest/spy": "npm:4.0.16" + "@vitest/utils": "npm:4.0.16" + chai: "npm:^6.2.1" + tinyrainbow: "npm:^3.0.3" + checksum: 10/1da98c86d394a4955bef381ac2c63a52d2eec0086f55e18858083da928cfdf51e7a30bfd88b1814e861906dae44d089aeab0fcc67b2597a4a8073c70cd14bdf7 languageName: node linkType: hard -"@vitest/mocker@npm:2.1.9": - version: 2.1.9 - resolution: "@vitest/mocker@npm:2.1.9" +"@vitest/mocker@npm:4.0.16": + version: 4.0.16 + resolution: "@vitest/mocker@npm:4.0.16" dependencies: - "@vitest/spy": "npm:2.1.9" + "@vitest/spy": "npm:4.0.16" estree-walker: "npm:^3.0.3" - magic-string: "npm:^0.30.12" + magic-string: "npm:^0.30.21" peerDependencies: msw: ^2.4.9 - vite: ^5.0.0 + vite: ^6.0.0 || ^7.0.0-0 peerDependenciesMeta: msw: optional: true vite: optional: true - checksum: 10/54c5ef47065e047b011cf0d89321654250a77601c93cc5bbd613782d1939d014385d6c909e4857dd473278ce63f8b6bfbbf7a96e05f7f22f33951cdbfce22993 + checksum: 10/3a34c6571ef278b80d33feabb8389d6cf7cfd248fe592b8b2a373650ab460b95805fde65e6bd76aebc75729fc0c94b4d8b9bba25fa55e21c2745ae03c10316bf languageName: node linkType: hard -"@vitest/pretty-format@npm:2.1.9, @vitest/pretty-format@npm:^2.1.9": - version: 2.1.9 - resolution: "@vitest/pretty-format@npm:2.1.9" +"@vitest/pretty-format@npm:4.0.16": + version: 4.0.16 + resolution: "@vitest/pretty-format@npm:4.0.16" dependencies: - tinyrainbow: "npm:^1.2.0" - checksum: 10/557dc637c5825abd62ccb15080e59e04d22121e746d8020a0815d7c0c45132fed81b1ff36b26f5991e57a9f1d36e52aa19712abbfe1d0cbcd14252b449a919dc + tinyrainbow: "npm:^3.0.3" + checksum: 10/914d5d35fb3b0aa67f8e6065ac3d1f1798b7774e1ad9d1e873e7c6efdc7925c98e0f8188bb13c4f3feb4d80b756c337f7a55cd4f78c50fe786330d0aaede7cfd languageName: node linkType: hard -"@vitest/runner@npm:2.1.9": - version: 2.1.9 - resolution: "@vitest/runner@npm:2.1.9" +"@vitest/runner@npm:4.0.16": + version: 4.0.16 + resolution: "@vitest/runner@npm:4.0.16" dependencies: - "@vitest/utils": "npm:2.1.9" - pathe: "npm:^1.1.2" - checksum: 10/3f2b67406c71fa5d3861601fca1bbd1bf850d82b1c34586199dcadae8cd63f666a5a13e83145287776b2f3c36ba684840feb37f5d6f1b834a1233feac5df8ed9 + "@vitest/utils": "npm:4.0.16" + pathe: "npm:^2.0.3" + checksum: 10/2aed39bb46ba747bd4fd5acf081e9e500192fec19c1887399f6a1701bbfdab05f3d3b45c00e4af5b90a0832853c959a0f64e676b05c67f5457b7c6984f844aa2 languageName: node linkType: hard -"@vitest/snapshot@npm:2.1.9": - version: 2.1.9 - resolution: "@vitest/snapshot@npm:2.1.9" +"@vitest/snapshot@npm:4.0.16": + version: 4.0.16 + resolution: "@vitest/snapshot@npm:4.0.16" dependencies: - "@vitest/pretty-format": "npm:2.1.9" - magic-string: "npm:^0.30.12" - pathe: "npm:^1.1.2" - checksum: 10/cb41d952bbad0ba55c265a21862d0ea5d2c54b75636f98cefbf467c973cec5c6edef5c21d325e26531de9a5abfe8ef6c367874163a57c169afd936b041e6cda8 + "@vitest/pretty-format": "npm:4.0.16" + magic-string: "npm:^0.30.21" + pathe: "npm:^2.0.3" + checksum: 10/30f2977c96645c018b9d1f658e758f4f886ac63966dca909e9f736d6c9d6d0a6dabdeaedf9abcc13e1000458e4069283632c0140033972847dc1f4b4ac38e076 languageName: node linkType: hard -"@vitest/spy@npm:2.1.9": - version: 2.1.9 - resolution: "@vitest/spy@npm:2.1.9" - dependencies: - tinyspy: "npm:^3.0.2" - checksum: 10/a47302082b6071b0f756df10045477b4f4d12391c35f595f66ba99e9c4b51d286096a61a640d87c948f5f050ecb3a46f73d51ae62b5bcaf52e4b8f12ecfb86e3 +"@vitest/spy@npm:4.0.16": + version: 4.0.16 + resolution: "@vitest/spy@npm:4.0.16" + checksum: 10/76cbabfdd77adf16904d5c128de67abca650bbc2ed36acc68fca548dc51844c7fc1ac516e384d07341b25ae39318c7c2feb499ffa7283a1a838f762cb0cda6ab languageName: node linkType: hard -"@vitest/ui@npm:2.1.9": - version: 2.1.9 - resolution: "@vitest/ui@npm:2.1.9" +"@vitest/ui@npm:4.0.16": + version: 4.0.16 + resolution: "@vitest/ui@npm:4.0.16" dependencies: - "@vitest/utils": "npm:2.1.9" + "@vitest/utils": "npm:4.0.16" fflate: "npm:^0.8.2" - flatted: "npm:^3.3.1" - pathe: "npm:^1.1.2" - sirv: "npm:^3.0.0" - tinyglobby: "npm:^0.2.10" - tinyrainbow: "npm:^1.2.0" + flatted: "npm:^3.3.3" + pathe: "npm:^2.0.3" + sirv: "npm:^3.0.2" + tinyglobby: "npm:^0.2.15" + tinyrainbow: "npm:^3.0.3" peerDependencies: - vitest: 2.1.9 - checksum: 10/dd96c9cd93ded45816ac71ea102c578ea8460ccb5eb2c8ea4e8d330c68d35dcafd63c66b8153b145cbfd2f1004232d66004abc6125b28d0d0e08538f99471fa8 + vitest: 4.0.16 + checksum: 10/9dcd99a87c3e4a6566eb689945bef1e9f91333dff9e4384f2a60855475ed10cb0d3eaeece5982b1dcbd6986157ac17d3d99eddbe2a40ad664240da315b866003 languageName: node linkType: hard -"@vitest/utils@npm:2.1.9": - version: 2.1.9 - resolution: "@vitest/utils@npm:2.1.9" +"@vitest/utils@npm:4.0.16": + version: 4.0.16 + resolution: "@vitest/utils@npm:4.0.16" dependencies: - "@vitest/pretty-format": "npm:2.1.9" - loupe: "npm:^3.1.2" - tinyrainbow: "npm:^1.2.0" - checksum: 10/83d62d5703a3210a2f137c25dc4e797a7a1d74d5d2e14ecc33b274c7710304fa8b5099101c98bc8d66cc2bf18a14f88ebf21f0996a99d0ee1439ae23b49f3961 + "@vitest/pretty-format": "npm:4.0.16" + tinyrainbow: "npm:^3.0.3" + checksum: 10/07fb3c96867656ff080df7ae6056a8dc23931d0f8bc16e15994c576c580dc6e2dcf71af0964fee197ea7eea4f4ad72c256f56cd3b81599f9e0ba63a228968d50 languageName: node linkType: hard -"@volar/language-core@npm:1.11.1, @volar/language-core@npm:~1.11.1": - version: 1.11.1 - resolution: "@volar/language-core@npm:1.11.1" +"@volar/language-core@npm:2.4.27, @volar/language-core@npm:~2.4.11": + version: 2.4.27 + resolution: "@volar/language-core@npm:2.4.27" dependencies: - "@volar/source-map": "npm:1.11.1" - checksum: 10/2fef58727bb3058b7bbd350fea6c38ded6608c65f7f672ffd825f0ba48307e4c5eded634e0c3b37d2ebbdd2e7ab32bc974eeb54f455c0390f85971ebeef3a6ca + "@volar/source-map": "npm:2.4.27" + checksum: 10/2e245e2e66b290d288aa7ad7d170155bd82b903183bc7cae874d86156027ec5e0be7a0509cd08405cedb079155afb5be5bde3c8d9df0425b72bb5128232fa644 languageName: node linkType: hard -"@volar/source-map@npm:1.11.1, @volar/source-map@npm:~1.11.1": - version: 1.11.1 - resolution: "@volar/source-map@npm:1.11.1" - dependencies: - muggle-string: "npm:^0.3.1" - checksum: 10/b90c32b23bbb86a3c47a20a9f7e6293c01b2e65390973e0c849c80ee0ff740ffa76b4d547fdb9b76b2b91a7bdeb2d8d0b1772d4f4d70e2a85784abe0385672f1 +"@volar/source-map@npm:2.4.27": + version: 2.4.27 + resolution: "@volar/source-map@npm:2.4.27" + checksum: 10/f95778276527ff02e46acbcdbf138afa9c690c8e2bfa91ce448562dab31857e99ebaedd7245a551a1fd99846e4dcefa4cbd9d32d2406261415b7cb9d9a61831a languageName: node linkType: hard -"@volar/typescript@npm:~1.11.1": - version: 1.11.1 - resolution: "@volar/typescript@npm:1.11.1" +"@volar/typescript@npm:^2.4.11": + version: 2.4.27 + resolution: "@volar/typescript@npm:2.4.27" dependencies: - "@volar/language-core": "npm:1.11.1" + "@volar/language-core": "npm:2.4.27" path-browserify: "npm:^1.0.1" - checksum: 10/714eeb3472902617555b9b4959722a215b391160fe4fdf2f8f4abcb075edbd24a5a633db0c36acd175daeddac5f1b35c33f5fc8788e1e251d91385aad27deda9 + vscode-uri: "npm:^3.0.8" + checksum: 10/3b23d0cf1c3c52bdc4e5a2a4152038e93f1d11f532376e58d1d5fce8a46d976cd016ee93a293499defd20ecc4bb7b7103152871829684488eee380ffdd62c44a languageName: node linkType: hard -"@vue/compiler-core@npm:3.4.21": - version: 3.4.21 - resolution: "@vue/compiler-core@npm:3.4.21" +"@vue/compiler-core@npm:3.5.26": + version: 3.5.26 + resolution: "@vue/compiler-core@npm:3.5.26" dependencies: - "@babel/parser": "npm:^7.23.9" - "@vue/shared": "npm:3.4.21" - entities: "npm:^4.5.0" + "@babel/parser": "npm:^7.28.5" + "@vue/shared": "npm:3.5.26" + entities: "npm:^7.0.0" estree-walker: "npm:^2.0.2" - source-map-js: "npm:^1.0.2" - checksum: 10/ccc059def59d353c9a994ed42f7198dd495dc77ab5d35e967ad9e5ba7a633585986407ad47994b65dc54d63690081a3eaf66cde519333a55858b7982645aa665 + source-map-js: "npm:^1.2.1" + checksum: 10/45267d1dbe67ae81116651eb9a6d1151de248533d53dc5216a7a4952952ac2e297201838d12e4fd1283acf5f3d7672fe2a49da59e2711bf68d2bf9ca5567dd9a languageName: node linkType: hard -"@vue/compiler-dom@npm:^3.3.0": - version: 3.4.21 - resolution: "@vue/compiler-dom@npm:3.4.21" +"@vue/compiler-dom@npm:^3.5.0": + version: 3.5.26 + resolution: "@vue/compiler-dom@npm:3.5.26" dependencies: - "@vue/compiler-core": "npm:3.4.21" - "@vue/shared": "npm:3.4.21" - checksum: 10/f1c0bf9731bc84b78a5ce1105160288a834d041bd0000a61e6377313cc49712bea5a839b304304f3d8203227cf828aa80ec57c6a840c2a59bf11d7e83dd1bb0f + "@vue/compiler-core": "npm:3.5.26" + "@vue/shared": "npm:3.5.26" + checksum: 10/505e15422fa15ac20c1de4d0270b5537fa8de3fbad5221b7686e67ec2c4d41a3990842c56ae8daa94939d92b3dc0e03f5e639b0cadd32ece6dc453565f1c4eef languageName: node linkType: hard -"@vue/language-core@npm:1.8.27, @vue/language-core@npm:^1.8.26": - version: 1.8.27 - resolution: "@vue/language-core@npm:1.8.27" +"@vue/compiler-vue2@npm:^2.7.16": + version: 2.7.16 + resolution: "@vue/compiler-vue2@npm:2.7.16" dependencies: - "@volar/language-core": "npm:~1.11.1" - "@volar/source-map": "npm:~1.11.1" - "@vue/compiler-dom": "npm:^3.3.0" - "@vue/shared": "npm:^3.3.0" - computeds: "npm:^0.0.1" + de-indent: "npm:^1.0.2" + he: "npm:^1.2.0" + checksum: 10/739ad06be19206b2715707c226a070509bcf28c31b539a6fc932d220eb7b0c09109d71fded573ed0c4073429793a3513ca4a4e69ad4f7afc0c5bc3c28639e871 + languageName: node + linkType: hard + +"@vue/language-core@npm:2.2.0": + version: 2.2.0 + resolution: "@vue/language-core@npm:2.2.0" + dependencies: + "@volar/language-core": "npm:~2.4.11" + "@vue/compiler-dom": "npm:^3.5.0" + "@vue/compiler-vue2": "npm:^2.7.16" + "@vue/shared": "npm:^3.5.0" + alien-signals: "npm:^0.4.9" minimatch: "npm:^9.0.3" - muggle-string: "npm:^0.3.1" + muggle-string: "npm:^0.4.1" path-browserify: "npm:^1.0.1" - vue-template-compiler: "npm:^2.7.14" peerDependencies: typescript: "*" peerDependenciesMeta: typescript: optional: true - checksum: 10/8ad4e129a334dd78b3ffc161615e4c303105f3e5f2478458eaea8db71d3b2b8081120d913464532d5b6c4f2c0611b2c5cb2a0f9a5f46ba6d5e9422d5d63ae71b + checksum: 10/dc22d038509a58e5a5569fe19f67e7373067cde3531b1e405270dcbe026a8cdbb1de8a7a93d6aaa76a3c5b71393f5c6ec5d9125f0b050898cb96a5c62b4a8d88 languageName: node linkType: hard -"@vue/shared@npm:3.4.21, @vue/shared@npm:^3.3.0": - version: 3.4.21 - resolution: "@vue/shared@npm:3.4.21" - checksum: 10/38e8cca37437841717f92e562bf7ae1b07865d33f24b65b63e1a0107c75ab5a4584f0847317275bfeb03b3a7a06b7d9e68009d0588aab8c432715ac50f07f77a +"@vue/shared@npm:3.5.26, @vue/shared@npm:^3.5.0": + version: 3.5.26 + resolution: "@vue/shared@npm:3.5.26" + checksum: 10/9b480f1210e546dcdc94addfe5b2770424a286546078944cf48b4b21c3cbf377b515de4e857f6f435c823e5759e012b75d9e58b4cedc981a6aa6c8372d83c002 languageName: node linkType: hard @@ -17475,6 +17831,18 @@ __metadata: languageName: node linkType: hard +"ajv-draft-04@npm:~1.0.0": + version: 1.0.0 + resolution: "ajv-draft-04@npm:1.0.0" + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 10/3f11fa0e7f7359bef6608657f02ab78e9cc62b1fb7bdd860db0d00351b3863a1189c1a23b72466d2d82726cab4eb20725c76f5e7c134a89865e2bfd0e6828137 + languageName: node + linkType: hard + "ajv-formats@npm:2.1.1, ajv-formats@npm:^2.1.1": version: 2.1.1 resolution: "ajv-formats@npm:2.1.1" @@ -17489,7 +17857,7 @@ __metadata: languageName: node linkType: hard -"ajv-formats@npm:^3.0.1": +"ajv-formats@npm:^3.0.1, ajv-formats@npm:~3.0.1": version: 3.0.1 resolution: "ajv-formats@npm:3.0.1" dependencies: @@ -17512,7 +17880,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:8.12.0": +"ajv@npm:8.12.0, ajv@npm:~8.12.0": version: 8.12.0 resolution: "ajv@npm:8.12.0" dependencies: @@ -17524,7 +17892,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.12.5, ajv@npm:~6.12.6": +"ajv@npm:^6.12.5": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -17548,6 +17916,25 @@ __metadata: languageName: node linkType: hard +"ajv@npm:~8.13.0": + version: 8.13.0 + resolution: "ajv@npm:8.13.0" + dependencies: + fast-deep-equal: "npm:^3.1.3" + json-schema-traverse: "npm:^1.0.0" + require-from-string: "npm:^2.0.2" + uri-js: "npm:^4.4.1" + checksum: 10/4ada268c9a6e44be87fd295df0f0a91267a7bae8dbc8a67a2d5799c3cb459232839c99d18b035597bb6e3ffe88af6979f7daece854f590a81ebbbc2dfa80002c + languageName: node + linkType: hard + +"alien-signals@npm:^0.4.9": + version: 0.4.14 + resolution: "alien-signals@npm:0.4.14" + checksum: 10/306a7f4a88a982d1619ff313ed078bdfe52bb9d1381590ef4c1c245812ce7274b9b645a6233214e764a1adbef21863bdf74d10aa4fb30917456b7dd7779df5fc + languageName: node + linkType: hard + "ansi-colors@npm:4.1.3, ansi-colors@npm:^4.1.1, ansi-colors@npm:^4.1.3": version: 4.1.3 resolution: "ansi-colors@npm:4.1.3" @@ -18678,13 +19065,6 @@ __metadata: languageName: node linkType: hard -"cac@npm:^6.7.14": - version: 6.7.14 - resolution: "cac@npm:6.7.14" - checksum: 10/002769a0fbfc51c062acd2a59df465a2a947916b02ac50b56c69ec6c018ee99ac3e7f4dd7366334ea847f1ecacf4defaa61bcd2ac283db50156ce1f1d8c8ad42 - languageName: node - linkType: hard - "cacache@npm:^15.2.0": version: 15.3.0 resolution: "cacache@npm:15.3.0" @@ -18771,7 +19151,7 @@ __metadata: "@snaplet/copycat": "npm:4.1.0" "@testing-library/jest-dom": "npm:5.17.0" "@testing-library/react": "npm:16.0.1" - "@vitest/ui": "npm:2.1.9" + "@vitest/ui": "npm:4.0.16" c8: "npm:7.13.0" checkly: "npm:latest" dotenv-checker: "npm:1.1.5" @@ -18789,9 +19169,9 @@ __metadata: tsc-absolute: "npm:1.0.0" turbo: "npm:2.7.1" typescript: "npm:5.9.3" - vitest: "npm:2.1.9" - vitest-fetch-mock: "npm:0.3.0" - vitest-mock-extended: "npm:2.0.2" + vitest: "npm:4.0.16" + vitest-fetch-mock: "npm:0.4.5" + vitest-mock-extended: "npm:3.1.0" languageName: unknown linkType: soft @@ -18956,16 +19336,10 @@ __metadata: languageName: node linkType: hard -"chai@npm:^5.1.2": - version: 5.3.3 - resolution: "chai@npm:5.3.3" - dependencies: - assertion-error: "npm:^2.0.1" - check-error: "npm:^2.1.1" - deep-eql: "npm:^5.0.1" - loupe: "npm:^3.1.0" - pathval: "npm:^2.0.0" - checksum: 10/0d0ef63106083b05c7ba510697cd9991a02b8df5984a7d010ab4af10205c7a1f27d1c06bfa4679540894295ac4dcc22aa2a281e2e4cfe5133c1db379626689a2 +"chai@npm:^6.2.1": + version: 6.2.2 + resolution: "chai@npm:6.2.2" + checksum: 10/13cda42cc40aa46da04a41cf7e5c61df6b6ae0b4e8a8c8b40e04d6947e4d7951377ea8c14f9fa7fe5aaa9e8bd9ba414f11288dc958d4cee6f5221b9436f2778f languageName: node linkType: hard @@ -19125,13 +19499,6 @@ __metadata: languageName: node linkType: hard -"check-error@npm:^2.1.1": - version: 2.1.1 - resolution: "check-error@npm:2.1.1" - checksum: 10/d785ed17b1d4a4796b6e75c765a9a290098cf52ff9728ce0756e8ffd4293d2e419dd30c67200aee34202463b474306913f2fcfaf1890641026d9fc6966fea27a - languageName: node - linkType: hard - "checkly@npm:latest": version: 4.2.0 resolution: "checkly@npm:4.2.0" @@ -19709,13 +20076,6 @@ __metadata: languageName: node linkType: hard -"colors@npm:~1.2.1": - version: 1.2.5 - resolution: "colors@npm:1.2.5" - checksum: 10/fe30007df0f62abedc2726990d0951f19292d85686dffcc76fa96ee9dc4e1a987d50b34aa02796e88627709c54a52f07c057bf1da4b7302c06eda8e1afd2f09a - languageName: node - linkType: hard - "colorspace@npm:1.1.x": version: 1.1.4 resolution: "colorspace@npm:1.1.4" @@ -19856,6 +20216,13 @@ __metadata: languageName: node linkType: hard +"compare-versions@npm:^6.1.1": + version: 6.1.1 + resolution: "compare-versions@npm:6.1.1" + checksum: 10/9325c0fadfba81afa0ec17e6fc2ef823ba785c693089698b8d9374e5460509f1916a88591644d4cb4045c9a58e47fafbcc0724fe8bf446d2a875a3d6eeddf165 + languageName: node + linkType: hard + "component-emitter@npm:^1.3.0": version: 1.3.0 resolution: "component-emitter@npm:1.3.0" @@ -19870,13 +20237,6 @@ __metadata: languageName: node linkType: hard -"computeds@npm:^0.0.1": - version: 0.0.1 - resolution: "computeds@npm:0.0.1" - checksum: 10/738625ccec6e483124d0ac79ec5474ab5c9df103ea05afc1fd840eed7d9004e3d6009b7bc806df564d66ad915c1ee1fb017bd91b2b32606a252ea9870b6a4026 - languageName: node - linkType: hard - "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" @@ -20289,15 +20649,6 @@ __metadata: languageName: node linkType: hard -"cross-fetch@npm:^4.0.0": - version: 4.0.0 - resolution: "cross-fetch@npm:4.0.0" - dependencies: - node-fetch: "npm:^2.6.12" - checksum: 10/e231a71926644ef122d334a3a4e73d9ba3ba4b480a8a277fb9badc434c1ba905b3d60c8034e18b348361a09afbec40ba9371036801ba2b675a7b84588f9f55d8 - languageName: node - linkType: hard - "cross-inspect@npm:1.0.1": version: 1.0.1 resolution: "cross-inspect@npm:1.0.1" @@ -20834,7 +21185,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.3.7, debug@npm:^4.4.0": +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.4.0": version: 4.4.3 resolution: "debug@npm:4.4.3" dependencies: @@ -20931,13 +21282,6 @@ __metadata: languageName: node linkType: hard -"deep-eql@npm:^5.0.1": - version: 5.0.2 - resolution: "deep-eql@npm:5.0.2" - checksum: 10/a529b81e2ef8821621d20a36959a0328873a3e49d393ad11f8efe8559f31239494c2eb889b80342808674c475802ba95b9d6c4c27641b9a029405104c1b59fcf - languageName: node - linkType: hard - "deep-extend@npm:^0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" @@ -21233,6 +21577,13 @@ __metadata: languageName: node linkType: hard +"diff@npm:~8.0.2": + version: 8.0.2 + resolution: "diff@npm:8.0.2" + checksum: 10/82a2120d3418f97822e17a6044ccd4b99a91e26e145e8698353673d7146bd2d092bbebb79c112aae7badc7b9c526f9098cbe342f96174feb6beabdd2587b3c42 + languageName: node + linkType: hard + "dijkstrajs@npm:^1.0.1": version: 1.0.2 resolution: "dijkstrajs@npm:1.0.2" @@ -21774,6 +22125,13 @@ __metadata: languageName: node linkType: hard +"entities@npm:^7.0.0": + version: 7.0.0 + resolution: "entities@npm:7.0.0" + checksum: 10/048cae50a2988411aa28db596392b04cb591f73cbc86d623383fe3cb9c307d666d045a2d1efe97bc07f5ffc8d8579408a4a2e867a005a8d7770cf83aad6eab70 + languageName: node + linkType: hard + "entities@npm:~3.0.1": version: 3.0.1 resolution: "entities@npm:3.0.1" @@ -21915,7 +22273,7 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.4": +"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.7.0": version: 1.7.0 resolution: "es-module-lexer@npm:1.7.0" checksum: 10/b6f3e576a3fed4d82b0d0ad4bbf6b3a5ad694d2e7ce8c4a069560da3db6399381eaba703616a182b16dde50ce998af64e07dcf49f2ae48153b9e07be3f107087 @@ -21984,7 +22342,7 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.18.0, esbuild@npm:^0.18.10": +"esbuild@npm:^0.18.0": version: 0.18.20 resolution: "esbuild@npm:0.18.20" dependencies: @@ -22061,86 +22419,6 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.21.3": - version: 0.21.5 - resolution: "esbuild@npm:0.21.5" - dependencies: - "@esbuild/aix-ppc64": "npm:0.21.5" - "@esbuild/android-arm": "npm:0.21.5" - "@esbuild/android-arm64": "npm:0.21.5" - "@esbuild/android-x64": "npm:0.21.5" - "@esbuild/darwin-arm64": "npm:0.21.5" - "@esbuild/darwin-x64": "npm:0.21.5" - "@esbuild/freebsd-arm64": "npm:0.21.5" - "@esbuild/freebsd-x64": "npm:0.21.5" - "@esbuild/linux-arm": "npm:0.21.5" - "@esbuild/linux-arm64": "npm:0.21.5" - "@esbuild/linux-ia32": "npm:0.21.5" - "@esbuild/linux-loong64": "npm:0.21.5" - "@esbuild/linux-mips64el": "npm:0.21.5" - "@esbuild/linux-ppc64": "npm:0.21.5" - "@esbuild/linux-riscv64": "npm:0.21.5" - "@esbuild/linux-s390x": "npm:0.21.5" - "@esbuild/linux-x64": "npm:0.21.5" - "@esbuild/netbsd-x64": "npm:0.21.5" - "@esbuild/openbsd-x64": "npm:0.21.5" - "@esbuild/sunos-x64": "npm:0.21.5" - "@esbuild/win32-arm64": "npm:0.21.5" - "@esbuild/win32-ia32": "npm:0.21.5" - "@esbuild/win32-x64": "npm:0.21.5" - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 10/d2ff2ca84d30cce8e871517374d6c2290835380dc7cd413b2d49189ed170d45e407be14de2cb4794cf76f75cf89955c4714726ebd3de7444b3046f5cab23ab6b - languageName: node - linkType: hard - "esbuild@npm:^0.23.0": version: 0.23.1 resolution: "esbuild@npm:0.23.1" @@ -22224,6 +22502,184 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.25.0": + version: 0.25.12 + resolution: "esbuild@npm:0.25.12" + dependencies: + "@esbuild/aix-ppc64": "npm:0.25.12" + "@esbuild/android-arm": "npm:0.25.12" + "@esbuild/android-arm64": "npm:0.25.12" + "@esbuild/android-x64": "npm:0.25.12" + "@esbuild/darwin-arm64": "npm:0.25.12" + "@esbuild/darwin-x64": "npm:0.25.12" + "@esbuild/freebsd-arm64": "npm:0.25.12" + "@esbuild/freebsd-x64": "npm:0.25.12" + "@esbuild/linux-arm": "npm:0.25.12" + "@esbuild/linux-arm64": "npm:0.25.12" + "@esbuild/linux-ia32": "npm:0.25.12" + "@esbuild/linux-loong64": "npm:0.25.12" + "@esbuild/linux-mips64el": "npm:0.25.12" + "@esbuild/linux-ppc64": "npm:0.25.12" + "@esbuild/linux-riscv64": "npm:0.25.12" + "@esbuild/linux-s390x": "npm:0.25.12" + "@esbuild/linux-x64": "npm:0.25.12" + "@esbuild/netbsd-arm64": "npm:0.25.12" + "@esbuild/netbsd-x64": "npm:0.25.12" + "@esbuild/openbsd-arm64": "npm:0.25.12" + "@esbuild/openbsd-x64": "npm:0.25.12" + "@esbuild/openharmony-arm64": "npm:0.25.12" + "@esbuild/sunos-x64": "npm:0.25.12" + "@esbuild/win32-arm64": "npm:0.25.12" + "@esbuild/win32-ia32": "npm:0.25.12" + "@esbuild/win32-x64": "npm:0.25.12" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/openharmony-arm64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10/bc9c03d64e96a0632a926662c9d29decafb13a40e5c91790f632f02939bc568edc9abe0ee5d8055085a2819a00139eb12e223cfb8126dbf89bbc569f125d91fd + languageName: node + linkType: hard + +"esbuild@npm:^0.27.0": + version: 0.27.2 + resolution: "esbuild@npm:0.27.2" + dependencies: + "@esbuild/aix-ppc64": "npm:0.27.2" + "@esbuild/android-arm": "npm:0.27.2" + "@esbuild/android-arm64": "npm:0.27.2" + "@esbuild/android-x64": "npm:0.27.2" + "@esbuild/darwin-arm64": "npm:0.27.2" + "@esbuild/darwin-x64": "npm:0.27.2" + "@esbuild/freebsd-arm64": "npm:0.27.2" + "@esbuild/freebsd-x64": "npm:0.27.2" + "@esbuild/linux-arm": "npm:0.27.2" + "@esbuild/linux-arm64": "npm:0.27.2" + "@esbuild/linux-ia32": "npm:0.27.2" + "@esbuild/linux-loong64": "npm:0.27.2" + "@esbuild/linux-mips64el": "npm:0.27.2" + "@esbuild/linux-ppc64": "npm:0.27.2" + "@esbuild/linux-riscv64": "npm:0.27.2" + "@esbuild/linux-s390x": "npm:0.27.2" + "@esbuild/linux-x64": "npm:0.27.2" + "@esbuild/netbsd-arm64": "npm:0.27.2" + "@esbuild/netbsd-x64": "npm:0.27.2" + "@esbuild/openbsd-arm64": "npm:0.27.2" + "@esbuild/openbsd-x64": "npm:0.27.2" + "@esbuild/openharmony-arm64": "npm:0.27.2" + "@esbuild/sunos-x64": "npm:0.27.2" + "@esbuild/win32-arm64": "npm:0.27.2" + "@esbuild/win32-ia32": "npm:0.27.2" + "@esbuild/win32-x64": "npm:0.27.2" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/openharmony-arm64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10/7f1229328b0efc63c4184a61a7eb303df1e99818cc1d9e309fb92600703008e69821e8e984e9e9f54a627da14e0960d561db3a93029482ef96dc82dd267a60c2 + languageName: node + linkType: hard + "escalade@npm:^3.1.1, escalade@npm:^3.2.0": version: 3.2.0 resolution: "escalade@npm:3.2.0" @@ -22564,10 +23020,10 @@ __metadata: languageName: node linkType: hard -"expect-type@npm:^1.1.0": - version: 1.2.2 - resolution: "expect-type@npm:1.2.2" - checksum: 10/1703e6e47b575f79d801d87f24c639f4d0af71b327a822e6922d0ccb7eb3f6559abb240b8bd43bab6a477903de4cc322908e194d05132c18f52a217115e8e870 +"expect-type@npm:^1.2.2": + version: 1.3.0 + resolution: "expect-type@npm:1.3.0" + checksum: 10/a5fada3d0c621649261f886e7d93e6bf80ce26d8a86e5d517e38301b8baec8450ab2cb94ba6e7a0a6bf2fc9ee55f54e1b06938ef1efa52ddcfeffbfa01acbbcc languageName: node linkType: hard @@ -22938,7 +23394,7 @@ __metadata: languageName: node linkType: hard -"fdir@npm:^6.2.0, fdir@npm:^6.5.0": +"fdir@npm:^6.2.0, fdir@npm:^6.4.4, fdir@npm:^6.5.0": version: 6.5.0 resolution: "fdir@npm:6.5.0" peerDependencies: @@ -23210,7 +23666,7 @@ __metadata: languageName: node linkType: hard -"flatted@npm:^3.3.1": +"flatted@npm:^3.3.3": version: 3.3.3 resolution: "flatted@npm:3.3.3" checksum: 10/8c96c02fbeadcf4e8ffd0fa24983241e27698b0781295622591fc13585e2f226609d95e422bcf2ef044146ffacb6b68b1f20871454eddf75ab3caa6ee5f4a1fe @@ -23498,7 +23954,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^7.0.1, fs-extra@npm:~7.0.1": +"fs-extra@npm:^7.0.1": version: 7.0.1 resolution: "fs-extra@npm:7.0.1" dependencies: @@ -23532,6 +23988,17 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:~11.3.0": + version: 11.3.3 + resolution: "fs-extra@npm:11.3.3" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10/daeaefafbebe8fa6efd2fb96fc926f2c952be5877811f00a6794f0d64e0128e3d0d93368cd328f8f063b45deacf385c40e3d931aa46014245431cd2f4f89c67a + languageName: node + linkType: hard + "fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" @@ -25587,7 +26054,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.1.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.16.1, is-core-module@npm:^2.5.0": +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.16.1, is-core-module@npm:^2.5.0": version: 2.16.1 resolution: "is-core-module@npm:2.16.1" dependencies: @@ -27790,6 +28257,17 @@ __metadata: languageName: node linkType: hard +"local-pkg@npm:^1.0.0": + version: 1.1.2 + resolution: "local-pkg@npm:1.1.2" + dependencies: + mlly: "npm:^1.7.4" + pkg-types: "npm:^2.3.0" + quansync: "npm:^0.2.11" + checksum: 10/761d82f40849e4721fa50d86782cf75bc2befb0696f32ac99869fb6f3033b904e4018f4bb8cdfde994d710816480dc1aba8e462c67ec20fe89d4700a245d17f8 + languageName: node + linkType: hard + "locate-path@npm:^3.0.0": version: 3.0.0 resolution: "locate-path@npm:3.0.0" @@ -28098,13 +28576,6 @@ __metadata: languageName: node linkType: hard -"loupe@npm:^3.1.0, loupe@npm:^3.1.2": - version: 3.2.1 - resolution: "loupe@npm:3.2.1" - checksum: 10/a4d78ec758aaa04e0e35d5cd1c15e970beb9cdbfd3d0f34f98b9bcda489f896a7190b3b6cc40b7a6dcb8e97e82e96eafaae10096aaa469804acdba6f7c2bde5f - languageName: node - linkType: hard - "lower-case-first@npm:^1.0.0": version: 1.0.2 resolution: "lower-case-first@npm:1.0.2" @@ -28276,16 +28747,16 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.26.7": - version: 0.26.7 - resolution: "magic-string@npm:0.26.7" +"magic-string@npm:^0.30.17, magic-string@npm:^0.30.21": + version: 0.30.21 + resolution: "magic-string@npm:0.30.21" dependencies: - sourcemap-codec: "npm:^1.4.8" - checksum: 10/2bb371d956bec4f0ae5725dab1a1a47eeb76b00bd01c37afc6a3363713d262e531208bbcc60cea1a00de604fa60d437409c870acecc9536ea77005683191ef5c + "@jridgewell/sourcemap-codec": "npm:^1.5.5" + checksum: 10/57d5691f41ed40d962d8bd300148114f53db67fadbff336207db10a99f2bdf4a1be9cac3a68ee85dba575912ee1d4402e4396408196ec2d3afd043b076156221 languageName: node linkType: hard -"magic-string@npm:^0.30.12, magic-string@npm:^0.30.19, magic-string@npm:^0.30.3": +"magic-string@npm:^0.30.19, magic-string@npm:^0.30.3": version: 0.30.19 resolution: "magic-string@npm:0.30.19" dependencies: @@ -29512,6 +29983,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:10.0.3": + version: 10.0.3 + resolution: "minimatch@npm:10.0.3" + dependencies: + "@isaacs/brace-expansion": "npm:^5.0.0" + checksum: 10/d5b8b2538b367f2cfd4aeef27539fddeee58d1efb692102b848e4a968a09780a302c530eb5aacfa8c57f7299155fb4b4e85219ad82664dcef5c66f657111d9b8 + languageName: node + linkType: hard + "minimatch@npm:^10.0.1, minimatch@npm:^10.1.1": version: 10.1.1 resolution: "minimatch@npm:10.1.1" @@ -30010,10 +30490,10 @@ __metadata: languageName: node linkType: hard -"muggle-string@npm:^0.3.1": - version: 0.3.1 - resolution: "muggle-string@npm:0.3.1" - checksum: 10/f2357f906e0160b7df0179c77838cf859f3ca23cb74eca7c043b9fc9e1e416d91497c80fbe2f3c9aeb003c14ad15857fc4e94f1631e8a6695b07e4135626d305 +"muggle-string@npm:^0.4.1": + version: 0.4.1 + resolution: "muggle-string@npm:0.4.1" + checksum: 10/8fa2ea08f497c04069718bd3fd1909b382114dacbad832d10967ca72690de43f5f8492d8ccfbf827d6be63868ed5fc10395e7b7c082aa95997eea498586c6620 languageName: node linkType: hard @@ -30542,7 +31022,7 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^2.0.0, node-fetch@npm:^2.5.0, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.7, node-fetch@npm:^2.6.9, node-fetch@npm:^2.7.0": +"node-fetch@npm:^2.0.0, node-fetch@npm:^2.5.0, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.7, node-fetch@npm:^2.6.9, node-fetch@npm:^2.7.0": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" dependencies: @@ -31098,6 +31578,13 @@ __metadata: languageName: node linkType: hard +"obug@npm:^2.1.1": + version: 2.1.1 + resolution: "obug@npm:2.1.1" + checksum: 10/bdcf9213361786688019345f3452b95a1dc73710e4b403c82a1994b98bad6abc31b26cb72a482128c5fd53ea9daf6fbb7d0e0e7b2b7e9c8be6d779deeccee07f + languageName: node + linkType: hard + "octokit@npm:4.0.2": version: 4.0.2 resolution: "octokit@npm:4.0.2" @@ -31839,7 +32326,7 @@ __metadata: languageName: node linkType: hard -"path-parse@npm:^1.0.6, path-parse@npm:^1.0.7": +"path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" checksum: 10/49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a @@ -31947,13 +32434,6 @@ __metadata: languageName: node linkType: hard -"pathval@npm:^2.0.0": - version: 2.0.0 - resolution: "pathval@npm:2.0.0" - checksum: 10/b91575bf9cdf01757afd7b5e521eb8a0b874a49bc972d08e0047cfea0cd3c019f5614521d4bc83d2855e3fcc331db6817dfd533dd8f3d90b16bc76fad2450fc1 - languageName: node - linkType: hard - "pause@npm:0.0.1": version: 0.0.1 resolution: "pause@npm:0.0.1" @@ -32222,7 +32702,7 @@ __metadata: languageName: node linkType: hard -"pkg-types@npm:^2.2.0": +"pkg-types@npm:^2.2.0, pkg-types@npm:^2.3.0": version: 2.3.0 resolution: "pkg-types@npm:2.3.0" dependencies: @@ -32818,7 +33298,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.5.6, postcss@npm:^8.3.11, postcss@npm:^8.4.23, postcss@npm:^8.4.27, postcss@npm:^8.4.41, postcss@npm:^8.4.43": +"postcss@npm:8.5.6, postcss@npm:^8.3.11, postcss@npm:^8.4.23, postcss@npm:^8.4.41, postcss@npm:^8.5.3, postcss@npm:^8.5.6": version: 8.5.6 resolution: "postcss@npm:8.5.6" dependencies: @@ -33346,6 +33826,13 @@ __metadata: languageName: node linkType: hard +"quansync@npm:^0.2.11": + version: 0.2.11 + resolution: "quansync@npm:0.2.11" + checksum: 10/d4f0cc21a25052a8a6183f17752a6221829c4795b40641de67c06945b356841ff00296d3700d0332dfe8e86100fdcc02f4be7559f3f1774a753b05adb7800d01 + languageName: node + linkType: hard + "quansync@npm:^0.2.7": version: 0.2.10 resolution: "quansync@npm:0.2.10" @@ -33863,10 +34350,10 @@ __metadata: languageName: node linkType: hard -"react-refresh@npm:^0.14.0": - version: 0.14.0 - resolution: "react-refresh@npm:0.14.0" - checksum: 10/75941262ce3ed4fc79b52492943fd59692f29b84f30f3822713b7e920f28e85c62a4386f85cbfbaea95ed62d3e74209f0a0bb065904b7ab2f166a74ac3812e2a +"react-refresh@npm:^0.18.0": + version: 0.18.0 + resolution: "react-refresh@npm:0.18.0" + checksum: 10/504c331c19776bf8320c23bad7f80b3a28de03301ed7523b0dd21d3f02bf2b53bbdd5aa52469b187bc90f358614b2ba303c088a0765c95f4f0a68c43a7d67b1d languageName: node linkType: hard @@ -34606,7 +35093,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.12.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.2, resolve@npm:^1.22.8, resolve@npm:~1.22.1": +"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.12.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.2, resolve@npm:^1.22.8, resolve@npm:~1.22.1, resolve@npm:~1.22.2": version: 1.22.11 resolution: "resolve@npm:1.22.11" dependencies: @@ -34619,16 +35106,6 @@ __metadata: languageName: node linkType: hard -"resolve@npm:~1.19.0": - version: 1.19.0 - resolution: "resolve@npm:1.19.0" - dependencies: - is-core-module: "npm:^2.1.0" - path-parse: "npm:^1.0.6" - checksum: 10/b0f326a85422ebc4db8524957990d49d89e028bd6c10f23f2e89db5ee923678c6c08eae596e594031a5cda20f1e19d4a371e22cd772907b0bcf3c932e2205753 - languageName: node - linkType: hard - "resolve@patch:resolve@npm%3A1.22.8#optional!builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" @@ -34642,7 +35119,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.12.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin, resolve@patch:resolve@npm%3A~1.22.1#optional!builtin": +"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.12.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin, resolve@patch:resolve@npm%3A~1.22.1#optional!builtin, resolve@patch:resolve@npm%3A~1.22.2#optional!builtin": version: 1.22.11 resolution: "resolve@patch:resolve@npm%3A1.22.11#optional!builtin::version=1.22.11&hash=c3c19d" dependencies: @@ -34655,16 +35132,6 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A~1.19.0#optional!builtin": - version: 1.19.0 - resolution: "resolve@patch:resolve@npm%3A1.19.0#optional!builtin::version=1.19.0&hash=c3c19d" - dependencies: - is-core-module: "npm:^2.1.0" - path-parse: "npm:^1.0.6" - checksum: 10/eb8853b1b7b9ef25f0156304c7c21e2a0d2b2ce247169282542e76565f460986e10adbb770eeb2549c06197fb546b433906cbf3700a3232c567aaaaa53490b88 - languageName: node - linkType: hard - "rest-facade@npm:^1.16.3": version: 1.16.3 resolution: "rest-facade@npm:1.16.3" @@ -34869,44 +35336,33 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^3.27.1": - version: 3.29.4 - resolution: "rollup@npm:3.29.4" +"rollup@npm:^4.34.9, rollup@npm:^4.43.0": + version: 4.54.0 + resolution: "rollup@npm:4.54.0" dependencies: - fsevents: "npm:~2.3.2" - dependenciesMeta: - fsevents: - optional: true - bin: - rollup: dist/bin/rollup - checksum: 10/9e39d54e23731a4c4067e9c02910cdf7479a0f9a7584796e2dc6efaa34bb1e5e015c062c87d1e64d96038baca76cefd47681ff22604fae5827147f54123dc6d0 - languageName: node - linkType: hard - -"rollup@npm:^4.20.0": - version: 4.36.0 - resolution: "rollup@npm:4.36.0" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.36.0" - "@rollup/rollup-android-arm64": "npm:4.36.0" - "@rollup/rollup-darwin-arm64": "npm:4.36.0" - "@rollup/rollup-darwin-x64": "npm:4.36.0" - "@rollup/rollup-freebsd-arm64": "npm:4.36.0" - "@rollup/rollup-freebsd-x64": "npm:4.36.0" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.36.0" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.36.0" - "@rollup/rollup-linux-arm64-gnu": "npm:4.36.0" - "@rollup/rollup-linux-arm64-musl": "npm:4.36.0" - "@rollup/rollup-linux-loongarch64-gnu": "npm:4.36.0" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.36.0" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.36.0" - "@rollup/rollup-linux-s390x-gnu": "npm:4.36.0" - "@rollup/rollup-linux-x64-gnu": "npm:4.36.0" - "@rollup/rollup-linux-x64-musl": "npm:4.36.0" - "@rollup/rollup-win32-arm64-msvc": "npm:4.36.0" - "@rollup/rollup-win32-ia32-msvc": "npm:4.36.0" - "@rollup/rollup-win32-x64-msvc": "npm:4.36.0" - "@types/estree": "npm:1.0.6" + "@rollup/rollup-android-arm-eabi": "npm:4.54.0" + "@rollup/rollup-android-arm64": "npm:4.54.0" + "@rollup/rollup-darwin-arm64": "npm:4.54.0" + "@rollup/rollup-darwin-x64": "npm:4.54.0" + "@rollup/rollup-freebsd-arm64": "npm:4.54.0" + "@rollup/rollup-freebsd-x64": "npm:4.54.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.54.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.54.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.54.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.54.0" + "@rollup/rollup-linux-loong64-gnu": "npm:4.54.0" + "@rollup/rollup-linux-ppc64-gnu": "npm:4.54.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.54.0" + "@rollup/rollup-linux-riscv64-musl": "npm:4.54.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.54.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.54.0" + "@rollup/rollup-linux-x64-musl": "npm:4.54.0" + "@rollup/rollup-openharmony-arm64": "npm:4.54.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.54.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.54.0" + "@rollup/rollup-win32-x64-gnu": "npm:4.54.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.54.0" + "@types/estree": "npm:1.0.8" fsevents: "npm:~2.3.2" dependenciesMeta: "@rollup/rollup-android-arm-eabi": @@ -34929,29 +35385,35 @@ __metadata: optional: true "@rollup/rollup-linux-arm64-musl": optional: true - "@rollup/rollup-linux-loongarch64-gnu": + "@rollup/rollup-linux-loong64-gnu": optional: true - "@rollup/rollup-linux-powerpc64le-gnu": + "@rollup/rollup-linux-ppc64-gnu": optional: true "@rollup/rollup-linux-riscv64-gnu": optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true "@rollup/rollup-linux-s390x-gnu": optional: true "@rollup/rollup-linux-x64-gnu": optional: true "@rollup/rollup-linux-x64-musl": optional: true + "@rollup/rollup-openharmony-arm64": + optional: true "@rollup/rollup-win32-arm64-msvc": optional: true "@rollup/rollup-win32-ia32-msvc": optional: true + "@rollup/rollup-win32-x64-gnu": + optional: true "@rollup/rollup-win32-x64-msvc": optional: true fsevents: optional: true bin: rollup: dist/bin/rollup - checksum: 10/151b1c6e41f6bcd89aa63cd1cd96be8664aaa64dbf9eb4fe26d9a921731b2bd7650fecbc39fe8c8ac94ff84d8d4bf36028be1532aafd48ef2654f75a6356f26c + checksum: 10/f6e07128386965863073fd5a5cf03b1b6fd917b2e53c5df8bfa68bf8e69d3da907d0bf73e35b1702bc774e4a8b7d830b90f929930a0fab8e72594c0db8b4a6b7 languageName: node linkType: hard @@ -35866,7 +36328,7 @@ __metadata: languageName: node linkType: hard -"sirv@npm:^3.0.0": +"sirv@npm:^3.0.2": version: 3.0.2 resolution: "sirv@npm:3.0.2" dependencies: @@ -36145,13 +36607,6 @@ __metadata: languageName: node linkType: hard -"sourcemap-codec@npm:^1.4.8": - version: 1.4.8 - resolution: "sourcemap-codec@npm:1.4.8" - checksum: 10/6fc57a151e982b5c9468362690c6d062f3a0d4d8520beb68a82f319c79e7a4d7027eeb1e396de0ecc2cd19491e1d602b2d06fd444feac9b63dd43fea4c55a857 - languageName: node - linkType: hard - "space-separated-tokens@npm:^2.0.0": version: 2.0.2 resolution: "space-separated-tokens@npm:2.0.2" @@ -36426,7 +36881,7 @@ __metadata: languageName: node linkType: hard -"std-env@npm:^3.7.0, std-env@npm:^3.8.0, std-env@npm:^3.8.1": +"std-env@npm:^3.10.0, std-env@npm:^3.7.0, std-env@npm:^3.8.1": version: 3.10.0 resolution: "std-env@npm:3.10.0" checksum: 10/19c9cda4f370b1ffae2b8b08c72167d8c3e5cfa972aaf5c6873f85d0ed2faa729407f5abb194dc33380708c00315002febb6f1e1b484736bfcf9361ad366013a @@ -36919,7 +37374,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^8.0.0, supports-color@npm:^8.1.1": +"supports-color@npm:^8.0.0, supports-color@npm:^8.1.1, supports-color@npm:~8.1.1": version: 8.1.1 resolution: "supports-color@npm:8.1.1" dependencies: @@ -37482,7 +37937,14 @@ __metadata: languageName: node linkType: hard -"tinyglobby@npm:^0.2.10, tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.2": +"tinyexec@npm:^1.0.2": + version: 1.0.2 + resolution: "tinyexec@npm:1.0.2" + checksum: 10/cb709ed4240e873d3816e67f851d445f5676e0ae3a52931a60ff571d93d388da09108c8057b62351766133ee05ff3159dd56c3a0fbd39a5933c6639ce8771405 + languageName: node + linkType: hard + +"tinyglobby@npm:^0.2.10, tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.13, tinyglobby@npm:^0.2.15, tinyglobby@npm:^0.2.2": version: 0.2.15 resolution: "tinyglobby@npm:0.2.15" dependencies: @@ -37502,24 +37964,10 @@ __metadata: languageName: node linkType: hard -"tinypool@npm:^1.0.1": - version: 1.1.1 - resolution: "tinypool@npm:1.1.1" - checksum: 10/0d54139e9dbc6ef33349768fa78890a4d708d16a7ab68e4e4ef3bb740609ddf0f9fd13292c2f413fbba756166c97051a657181c8f7ae92ade690604f183cc01d - languageName: node - linkType: hard - -"tinyrainbow@npm:^1.2.0": - version: 1.2.0 - resolution: "tinyrainbow@npm:1.2.0" - checksum: 10/2924444db6804355e5ba2b6e586c7f77329d93abdd7257a069a0f4530dff9f16de484e80479094e3f39273462541b003a65ee3a6afc2d12555aa745132deba5d - languageName: node - linkType: hard - -"tinyspy@npm:^3.0.2": - version: 3.0.2 - resolution: "tinyspy@npm:3.0.2" - checksum: 10/5db671b2ff5cd309de650c8c4761ca945459d7204afb1776db9a04fb4efa28a75f08517a8620c01ee32a577748802231ad92f7d5b194dc003ee7f987a2a06337 +"tinyrainbow@npm:^3.0.3": + version: 3.0.3 + resolution: "tinyrainbow@npm:3.0.3" + checksum: 10/169cc63c15e1378674180f3207c82c05bfa58fc79992e48792e8d97b4b759012f48e95297900ede24a81f0087cf329a0d85bb81109739eacf03c650127b3f6c1 languageName: node linkType: hard @@ -38555,6 +39003,16 @@ __metadata: languageName: node linkType: hard +"typescript@npm:5.8.2": + version: 5.8.2 + resolution: "typescript@npm:5.8.2" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10/dbc2168a55d56771f4d581997be52bab5cbc09734fec976cfbaabd787e61fb4c6cf9125fd48c6f98054ce549c77ecedefc7f64252a830dd8e9c3381f61fbeb78 + languageName: node + linkType: hard + "typescript@npm:5.9.3": version: 5.9.3 resolution: "typescript@npm:5.9.3" @@ -38585,6 +39043,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@npm%3A5.8.2#optional!builtin": + version: 5.8.2 + resolution: "typescript@patch:typescript@npm%3A5.8.2#optional!builtin::version=5.8.2&hash=5786d5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10/97920a082ffc57583b1cb6bc4faa502acc156358e03f54c7fc7fdf0b61c439a717f4c9070c449ee9ee683d4cfc3bb203127c2b9794b2950f66d9d307a4ff262c + languageName: node + linkType: hard + "typescript@patch:typescript@npm%3A5.9.3#optional!builtin": version: 5.9.3 resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin::version=5.9.3&hash=5786d5" @@ -38983,7 +39451,7 @@ __metadata: languageName: node linkType: hard -"uri-js@npm:^4.2.2": +"uri-js@npm:^4.2.2, uri-js@npm:^4.4.1": version: 4.4.1 resolution: "uri-js@npm:4.4.1" dependencies: @@ -39196,7 +39664,7 @@ __metadata: languageName: node linkType: hard -"validator@npm:^13.6.0, validator@npm:^13.7.0": +"validator@npm:^13.6.0": version: 13.11.0 resolution: "validator@npm:13.11.0" checksum: 10/4bf094641eb71729c06a42d669840e7189597ba655a8264adabac9bf03f95cd6fde5fbc894b0a13ee861bd4a852f56d2afdc9391aeaeb3fc0f9633a974140e12 @@ -39252,38 +39720,26 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:2.1.9": - version: 2.1.9 - resolution: "vite-node@npm:2.1.9" +"vite-plugin-dts@npm:4.5.4": + version: 4.5.4 + resolution: "vite-plugin-dts@npm:4.5.4" dependencies: - cac: "npm:^6.7.14" - debug: "npm:^4.3.7" - es-module-lexer: "npm:^1.5.4" - pathe: "npm:^1.1.2" - vite: "npm:^5.0.0" - bin: - vite-node: vite-node.mjs - checksum: 10/c3a6c93e6e0d822c972076fdd35a912fb2ff0dac328de6f748db99265307d321768a4145c7932d306ef8faaf60da44dc422fe6501e1ab1083258df6a7fab8b20 - languageName: node - linkType: hard - -"vite-plugin-dts@npm:3.7.3": - version: 3.7.3 - resolution: "vite-plugin-dts@npm:3.7.3" - dependencies: - "@microsoft/api-extractor": "npm:7.39.0" - "@rollup/pluginutils": "npm:^5.1.0" - "@vue/language-core": "npm:^1.8.26" - debug: "npm:^4.3.4" + "@microsoft/api-extractor": "npm:^7.50.1" + "@rollup/pluginutils": "npm:^5.1.4" + "@volar/typescript": "npm:^2.4.11" + "@vue/language-core": "npm:2.2.0" + compare-versions: "npm:^6.1.1" + debug: "npm:^4.4.0" kolorist: "npm:^1.8.0" - vue-tsc: "npm:^1.8.26" + local-pkg: "npm:^1.0.0" + magic-string: "npm:^0.30.17" peerDependencies: typescript: "*" vite: "*" peerDependenciesMeta: vite: optional: true - checksum: 10/b6adf0934a219b5b6a56f6ddf13b388533856eb55d167c245fed7de30352c285eeadc3387df6f5c6617c0c94640bd7b32bf65640a53484d50c6f0d2218918b51 + checksum: 10/1504a8da02f8015c3138ef57a690179ad9b9d4369a054ae48b52a1c8cbc7ad05474551eab309cd90cf758800e17b67ccd13317aa5f8e28efde957547c7a339fb languageName: node linkType: hard @@ -39318,69 +39774,37 @@ __metadata: languageName: node linkType: hard -"vite@npm:4.5.14": - version: 4.5.14 - resolution: "vite@npm:4.5.14" +"vite@npm:6.4.1": + version: 6.4.1 + resolution: "vite@npm:6.4.1" dependencies: - esbuild: "npm:^0.18.10" - fsevents: "npm:~2.3.2" - postcss: "npm:^8.4.27" - rollup: "npm:^3.27.1" - peerDependencies: - "@types/node": ">= 14" - less: "*" - lightningcss: ^1.21.0 - sass: "*" - stylus: "*" - sugarss: "*" - terser: ^5.4.0 - dependenciesMeta: - fsevents: - optional: true - peerDependenciesMeta: - "@types/node": - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - bin: - vite: bin/vite.js - checksum: 10/316a02f0d310511241fae15e6085c9f7285e87b7a75b7b04216925e72ec17107ae6f666181c79c711f6008fdaa8a0b4510280c68ce0bfab436ebea2470783d0a - languageName: node - linkType: hard - -"vite@npm:5.4.21": - version: 5.4.21 - resolution: "vite@npm:5.4.21" - dependencies: - esbuild: "npm:^0.21.3" + esbuild: "npm:^0.25.0" + fdir: "npm:^6.4.4" fsevents: "npm:~2.3.3" - postcss: "npm:^8.4.43" - rollup: "npm:^4.20.0" + picomatch: "npm:^4.0.2" + postcss: "npm:^8.5.3" + rollup: "npm:^4.34.9" + tinyglobby: "npm:^0.2.13" peerDependencies: - "@types/node": ^18.0.0 || >=20.0.0 + "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: ">=1.21.0" less: "*" lightningcss: ^1.21.0 sass: "*" sass-embedded: "*" stylus: "*" sugarss: "*" - terser: ^5.4.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 dependenciesMeta: fsevents: optional: true peerDependenciesMeta: "@types/node": optional: true + jiti: + optional: true less: optional: true lightningcss: @@ -39395,35 +39819,47 @@ __metadata: optional: true terser: optional: true + tsx: + optional: true + yaml: + optional: true bin: vite: bin/vite.js - checksum: 10/479a63e271d2d9e80a8e553e165444179681f33ddec1e7c84a43c4572f67c3d3abd33136389beb42703e32d3e96e1e8a930a222ee1bb64263ba057c187ccf793 + checksum: 10/ea2083b6b1d1c9e85a13d6797ae989aa1dbc27a5c054319c71141934bf3f8dba8d54b510618040f95751148da63787f28f043df7458a194c81f8b6d8a2d32844 languageName: node linkType: hard -"vite@npm:^5.0.0": - version: 5.4.6 - resolution: "vite@npm:5.4.6" +"vite@npm:^6.0.0 || ^7.0.0": + version: 7.3.0 + resolution: "vite@npm:7.3.0" dependencies: - esbuild: "npm:^0.21.3" + esbuild: "npm:^0.27.0" + fdir: "npm:^6.5.0" fsevents: "npm:~2.3.3" - postcss: "npm:^8.4.43" - rollup: "npm:^4.20.0" + picomatch: "npm:^4.0.3" + postcss: "npm:^8.5.6" + rollup: "npm:^4.43.0" + tinyglobby: "npm:^0.2.15" peerDependencies: - "@types/node": ^18.0.0 || >=20.0.0 - less: "*" + "@types/node": ^20.19.0 || >=22.12.0 + jiti: ">=1.21.0" + less: ^4.0.0 lightningcss: ^1.21.0 - sass: "*" - sass-embedded: "*" - stylus: "*" - sugarss: "*" - terser: ^5.4.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: ">=0.54.8" + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 dependenciesMeta: fsevents: optional: true peerDependenciesMeta: "@types/node": optional: true + jiti: + optional: true less: optional: true lightningcss: @@ -39438,72 +39874,83 @@ __metadata: optional: true terser: optional: true + tsx: + optional: true + yaml: + optional: true bin: vite: bin/vite.js - checksum: 10/8489fa55c48675fc12b64bf7af58b5e2f8a11b2aebc63cb177861bd53dc196d7c496d6918f5a8c48828f51b6fe498166a1a2350334bbfaae10d015a0c71f1c77 + checksum: 10/044490133aaf4cc024700995edaac10ff182262c721a44a8ac7839207b3e5af435c8b9dd8ee4658dc0f47147fa4211632cca3120177aa4bab99a7cb095e5149e languageName: node linkType: hard -"vitest-fetch-mock@npm:0.3.0": - version: 0.3.0 - resolution: "vitest-fetch-mock@npm:0.3.0" - dependencies: - cross-fetch: "npm:^4.0.0" +"vitest-fetch-mock@npm:0.4.5": + version: 0.4.5 + resolution: "vitest-fetch-mock@npm:0.4.5" peerDependencies: vitest: ">=2.0.0" - checksum: 10/4eadf2ca0836beb203ea3e6f1333d977204bcb7d8b89a23da186971d3716b58885eb7892d6dc5838d920249a73d556494edaf2b7975e6aa54707f7a56d101e3d + checksum: 10/36b33ea63b582d614a9dfcb3552e4681c29d1168bcc6b023c4438a31143d8febd3ddc46c4593a32f8ffb958624d75c1ae3509b7d30c16173783d3243ee065a9b languageName: node linkType: hard -"vitest-mock-extended@npm:2.0.2": - version: 2.0.2 - resolution: "vitest-mock-extended@npm:2.0.2" +"vitest-mock-extended@npm:3.1.0": + version: 3.1.0 + resolution: "vitest-mock-extended@npm:3.1.0" dependencies: ts-essentials: "npm:>=10.0.0" peerDependencies: typescript: 3.x || 4.x || 5.x - vitest: ">=2.0.0" - checksum: 10/42d9ae2233ca14f0ca81d1e16614e284cc91ce9fb546b137082e5ef5c403a54adef84b1d63b8e0aa9e9ddedd5eab28aa6750327ee7c25d79d534ca3e4aa9d2f0 + vitest: ">=3.0.0" + checksum: 10/a64a22fbba75d10948b252e40610bed63c2825a5333fb2b666b9bc0546b45f4da6702b1b1341cded20bc28a91278dbd5ac826da59ad7cd42f504d5a2ce93d95d languageName: node linkType: hard -"vitest@npm:2.1.9": - version: 2.1.9 - resolution: "vitest@npm:2.1.9" +"vitest@npm:4.0.16": + version: 4.0.16 + resolution: "vitest@npm:4.0.16" dependencies: - "@vitest/expect": "npm:2.1.9" - "@vitest/mocker": "npm:2.1.9" - "@vitest/pretty-format": "npm:^2.1.9" - "@vitest/runner": "npm:2.1.9" - "@vitest/snapshot": "npm:2.1.9" - "@vitest/spy": "npm:2.1.9" - "@vitest/utils": "npm:2.1.9" - chai: "npm:^5.1.2" - debug: "npm:^4.3.7" - expect-type: "npm:^1.1.0" - magic-string: "npm:^0.30.12" - pathe: "npm:^1.1.2" - std-env: "npm:^3.8.0" + "@vitest/expect": "npm:4.0.16" + "@vitest/mocker": "npm:4.0.16" + "@vitest/pretty-format": "npm:4.0.16" + "@vitest/runner": "npm:4.0.16" + "@vitest/snapshot": "npm:4.0.16" + "@vitest/spy": "npm:4.0.16" + "@vitest/utils": "npm:4.0.16" + es-module-lexer: "npm:^1.7.0" + expect-type: "npm:^1.2.2" + magic-string: "npm:^0.30.21" + obug: "npm:^2.1.1" + pathe: "npm:^2.0.3" + picomatch: "npm:^4.0.3" + std-env: "npm:^3.10.0" tinybench: "npm:^2.9.0" - tinyexec: "npm:^0.3.1" - tinypool: "npm:^1.0.1" - tinyrainbow: "npm:^1.2.0" - vite: "npm:^5.0.0" - vite-node: "npm:2.1.9" + tinyexec: "npm:^1.0.2" + tinyglobby: "npm:^0.2.15" + tinyrainbow: "npm:^3.0.3" + vite: "npm:^6.0.0 || ^7.0.0" why-is-node-running: "npm:^2.3.0" peerDependencies: "@edge-runtime/vm": "*" - "@types/node": ^18.0.0 || >=20.0.0 - "@vitest/browser": 2.1.9 - "@vitest/ui": 2.1.9 + "@opentelemetry/api": ^1.9.0 + "@types/node": ^20.0.0 || ^22.0.0 || >=24.0.0 + "@vitest/browser-playwright": 4.0.16 + "@vitest/browser-preview": 4.0.16 + "@vitest/browser-webdriverio": 4.0.16 + "@vitest/ui": 4.0.16 happy-dom: "*" jsdom: "*" peerDependenciesMeta: "@edge-runtime/vm": optional: true + "@opentelemetry/api": + optional: true "@types/node": optional: true - "@vitest/browser": + "@vitest/browser-playwright": + optional: true + "@vitest/browser-preview": + optional: true + "@vitest/browser-webdriverio": optional: true "@vitest/ui": optional: true @@ -39513,7 +39960,7 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: 10/28e061be0ff9219b259f72e00c4890fb774f474a9225361e2a4be82c27d58fc01b8d928345c47d7b06d27165586ae09792e8954dcc4b0f0b439cd824c7374131 + checksum: 10/22b3806988ab186be4a6a133903a70c62835198e8e749f6ed751957d23bc1e3f0466e310a1a79d0b70a354b2e308e574486191eb39711257b3fe61e4fe00d1c8 languageName: node linkType: hard @@ -39524,28 +39971,10 @@ __metadata: languageName: node linkType: hard -"vue-template-compiler@npm:^2.7.14": - version: 2.7.16 - resolution: "vue-template-compiler@npm:2.7.16" - dependencies: - de-indent: "npm:^1.0.2" - he: "npm:^1.2.0" - checksum: 10/8b05748dc64ee709a6077d576b4af234b229ecd36f7fda7cd2e17851403b66d168ad81c91636b5c28da6356d7723fd1ffe1202c73ffcdcc3ac9ad3ba748e42c7 - languageName: node - linkType: hard - -"vue-tsc@npm:^1.8.26": - version: 1.8.27 - resolution: "vue-tsc@npm:1.8.27" - dependencies: - "@volar/typescript": "npm:~1.11.1" - "@vue/language-core": "npm:1.8.27" - semver: "npm:^7.5.4" - peerDependencies: - typescript: "*" - bin: - vue-tsc: bin/vue-tsc.js - checksum: 10/fb84ff195de75e3529cf01b917f111bee561d15e1e437aa97a47e797f99f913783f24ec2d595271240240a21df08ba43b36aa7fc82a48a4c396a0f6d0e409376 +"vscode-uri@npm:^3.0.8": + version: 3.1.0 + resolution: "vscode-uri@npm:3.1.0" + checksum: 10/80c2a2421f44b64008ef1f91dfa52a2d68105cbb4dcea197dbf5b00c65ccaccf218b615e93ec587f26fc3ba04796898f3631a9406e3b04cda970c3ca8eadf646 languageName: node linkType: hard @@ -40590,23 +41019,6 @@ __metadata: languageName: node linkType: hard -"z-schema@npm:~5.0.2": - version: 5.0.5 - resolution: "z-schema@npm:5.0.5" - dependencies: - commander: "npm:^9.4.1" - lodash.get: "npm:^4.4.2" - lodash.isequal: "npm:^4.5.0" - validator: "npm:^13.7.0" - dependenciesMeta: - commander: - optional: true - bin: - z-schema: bin/z-schema - checksum: 10/8ac2fa445f5a00e790d1f91a48aeff0ccfc340f84626771853e03f4d97cdc2f5f798cdb2e38418f7815ffc3aac3952c45caabcf077bf4f83fedf0cdef43b885b - languageName: node - linkType: hard - "zod-error@npm:1.5.0": version: 1.5.0 resolution: "zod-error@npm:1.5.0"