From bbf9274d374b141d3ce3e0d083d66ec0d46c51c6 Mon Sep 17 00:00:00 2001 From: Volnei Munhoz Date: Thu, 1 Jan 2026 18:16:10 -0300 Subject: [PATCH] chore: upgrade Vitest to 4.0.16 and Vite to 6.4.1 (#26351) * chore: upgrade Vitest to 4.0.16 and Vite to 6.4.1 - Update vitest from 2.1.9 to 4.0.16 - Update @vitest/ui from 2.1.9 to 4.0.16 - Update vitest-fetch-mock from 0.3.0 to 0.4.5 - Update vitest-mock-extended from 2.0.2 to 3.1.0 - Update vite from 4.5.14/5.4.21 to 6.4.1 across all packages - Update @vitejs/plugin-react to 5.1.2 - Update @vitejs/plugin-react-swc to 4.2.2 - Update @vitejs/plugin-basic-ssl to 2.1.0 - Update vite-plugin-dts to 4.5.4 - Rename vitest.config.ts to vitest.config.mts for ESM compatibility - Add globals: true to vitest config Co-Authored-By: Volnei Munhoz * fix: address Vitest 4.0 and Vite 6 breaking changes - Convert arrow function mockImplementation patterns to regular functions (Vitest 4.0 breaking change: arrow functions can't be constructor mocks) - Fix CSS imports with ?inline suffix for Vite 6 compatibility - Add biome override to disable useArrowFunction rule for test files - Fix syntax errors in test files introduced by regex replacements Co-Authored-By: Volnei Munhoz * fix: fix remaining Vitest 4.0 constructor mock patterns Co-Authored-By: Volnei Munhoz * fix: fix more Vitest 4.0 constructor mock patterns and exclude API v2 spec files Co-Authored-By: Volnei Munhoz * fix: convert more arrow function mocks to regular functions for Vitest 4.0 Co-Authored-By: Volnei Munhoz * fix: convert more arrow function mocks to regular functions for Vitest 4.0 - Fix CrmService.integration.test.ts jsforce.Connection mock - Fix RetellSDKClient.test.ts Retell mock - Fix RetellAIService.test.ts CreditService mocks - Fix GoogleCalendarSubscriptionAdapter.test.ts CalendarAuth mock Co-Authored-By: Volnei Munhoz * fix: convert Google Calendar and OAuthManager arrow function mocks for Vitest 4.0 - Fix googleapis.ts Calendar, OAuth2Client, and JWT mocks - Fix utils.ts JWT mock - Fix OAuthManager.ts defaultMockOAuthManager mock Co-Authored-By: Volnei Munhoz * fix: add React plugin, jsdom environment, and fix more constructor mocks for Vitest 4.0 Co-Authored-By: Volnei Munhoz * fix: convert HostRepository PrismaClient mock to regular function for Vitest 4.0 Co-Authored-By: Volnei Munhoz * fix: add useOrgBranding mock to React component tests for Vitest 4.0 Co-Authored-By: Volnei Munhoz * fix: update TestFunction type for Vitest 4.0 compatibility Co-Authored-By: Volnei Munhoz * fix: convert listBookingReports constructor mocks to regular functions for Vitest 4.0 Co-Authored-By: Volnei Munhoz * fix: convert UserRepository constructor mock to regular function for Vitest 4.0 Co-Authored-By: Volnei Munhoz * fix: convert OrganizationPaymentService constructor mock to regular function for Vitest 4.0 Co-Authored-By: Volnei Munhoz * fix: convert more constructor mocks to regular functions for Vitest 4.0 Co-Authored-By: Volnei Munhoz * fix: add apps/web path aliases to vitest config Co-Authored-By: Volnei Munhoz * fix: fix test issues for Vitest 4.0 compatibility - Fix Response constructor 204 status code issue in testUtils.ts - Fix FeaturesRepository mock persistence in handleNotificationWhenNoSlots.test.ts - Add @vitest-environment node directive to formSubmissionUtils.test.ts - Fix document.querySelector mock in embed.test.ts Co-Authored-By: Volnei Munhoz * fix: clear EventManager spy between tests for Vitest 4.0 compatibility Co-Authored-By: Volnei Munhoz * fix: update TeamRepository mock pattern for Vitest 4.0 compatibility Co-Authored-By: Volnei Munhoz * fix: convert RoutingFormResponseRepository mock to regular function for Vitest 4.0 Co-Authored-By: Volnei Munhoz * fix: convert more constructor mocks to regular functions for Vitest 4.0 Co-Authored-By: Volnei Munhoz * fix: fix mock reset and spy clear issues for Vitest 4.0 Co-Authored-By: Volnei Munhoz * fix: fix remaining test failures for Vitest 4.0 upgrade - Fix booking-validations.test.ts: convert UserRepository mock to regular function - Fix route.test.ts: update 500 error test to mock ImageResponse instead of fetch - Fix users-public-view.test.tsx: add missing mocks for getOrgFullOrigin and useRouterQuery - Add @calcom/web path alias to vitest config Co-Authored-By: Volnei Munhoz * fix: add vitest-mocks for generated files that don't exist in CI - Add svg-hashes.json mock for route.test.ts - Add tailwind.generated.css mock for embed.test.ts - Update vitest config to use mock files Co-Authored-By: Volnei Munhoz * fix: update vitest config aliases for CI compatibility - Use array format for aliases to ensure proper ordering - Add @calcom/platform-constants alias to resolve from source - Add @calcom/embed-react alias to resolve from source - Ensure svg-hashes.json mock alias is matched before @calcom/web Co-Authored-By: Volnei Munhoz * fix: add @calcom/embed-snippet alias for CI compatibility Co-Authored-By: Volnei Munhoz * Fix wrong test * fix: migrate from CLI flags to VITEST_MODE env var for Vitest 4.0 Vitest 4.0 no longer allows custom CLI flags like --packaged-embed-tests-only. This change migrates to using VITEST_MODE environment variable instead: - VITEST_MODE=packaged-embed for packaged embed tests - VITEST_MODE=integration for integration tests - VITEST_MODE=timezone for timezone-dependent tests Updated vitest.config.mts to handle mode-based include/exclude patterns. Updated CI workflows and package scripts to use the new env var approach. Co-Authored-By: Volnei Munhoz * fix: return default include pattern instead of undefined in vitest config The getTestInclude() function was returning undefined for the default case, but Vitest 4.0 expects an array. This caused 'resolved.include is not iterable' error in CI. Co-Authored-By: Volnei Munhoz * fix: always set INTEGRATION_TEST_MODE for jsdom environment The getBookingFields.ts file checks for INTEGRATION_TEST_MODE to allow server-side imports in the jsdom environment. Without this, tests fail with 'getBookingFields must not be imported on the client side' error. Co-Authored-By: Volnei Munhoz * fix: support legacy CLI flags for backwards compatibility with main workflow The CI runs workflows from main branch, which uses the old CLI flag approach (yarn test -- --integrationTestsOnly). This commit adds backwards compatibility by checking both VITEST_MODE env var and process.argv for the legacy flags. Co-Authored-By: Volnei Munhoz --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- .github/workflows/integration-tests.yml | 2 +- .github/workflows/unit-tests.yml | 2 +- apps/api/v1/lib/helpers/verifyApiKey.test.ts | 4 +- apps/api/v1/test/lib/bookings/_post.test.ts | 44 +- apps/api/v1/test/lib/users/_post.test.ts | 4 +- .../selected-calendars/__tests__/cron.test.ts | 4 +- .../__tests__/queued-response.test.ts | 6 +- .../social/og/image/__tests__/route.test.ts | 11 +- .../retell-ai/__tests__/route.test.ts | 12 +- .../routing-forms/TestFormDialog.test.tsx | 4 + .../dialog/__tests__/RerouteDialog.test.tsx | 4 + .../users/views/users-public-view.test.tsx | 8 + apps/web/test/lib/checkBookingLimits.test.ts | 4 +- apps/web/test/lib/checkDurationLimits.test.ts | 4 +- .../getSchedule/restrictionSchedule.test.ts | 16 +- apps/web/test/utils/bookingScenario/test.ts | 52 +- biome.json | 16 +- package.json | 8 +- packages/app-store/_utils/testUtils.ts | 4 +- .../lib/__mocks__/googleapis.ts | 6 +- .../googlecalendar/lib/__tests__/utils.ts | 2 +- .../lib/VideoApiAdapter.test.ts | 2 +- .../lib/formSubmissionUtils.test.ts | 3 + .../__tests__/CrmService.integration.test.ts | 18 +- .../api/__tests__/paymentCallback.test.ts | 28 +- .../api/__tests__/portal.test.ts | 20 +- .../app-store/tests/__mocks__/OAuthManager.ts | 6 +- packages/emails/email-manager.test.ts | 4 +- packages/embeds/embed-core/package.json | 4 +- .../embed-core/src/ModalBox/ModalBox.ts | 2 +- packages/embeds/embed-core/src/embed.test.ts | 3 + packages/embeds/embed-core/src/embed.ts | 2 +- packages/embeds/embed-react/package.json | 6 +- packages/embeds/embed-snippet/package.json | 2 +- .../auth/lib/next-auth-options.test.ts | 4 +- .../BookingAuditAccessService.test.ts | 6 +- .../BookingAuditViewerService.test.ts | 8 +- .../getAllCredentials.test.ts | 70 +- .../test/booking-validations.test.ts | 2 +- .../test/buildEventForTeamEventType.test.ts | 10 +- .../lib/handleSeats/test/handleSeats.test.ts | 4 + .../lib/payment/handleNoShowFee.test.ts | 12 +- .../services/BookingAccessService.test.ts | 4 +- .../calAIPhone/AIPhoneServiceRegistry.test.ts | 16 +- ...etellAIPhoneServiceProviderFactory.test.ts | 86 +- .../retellAI/RetellAIService.test.ts | 50 +- .../retellAI/RetellSDKClient.test.ts | 52 +- .../services/__tests__/CallService.test.ts | 32 +- .../GoogleCalendarSubscriptionAdapter.test.ts | 8 +- .../services/CredentialAccessService.test.ts | 12 +- .../features/ee/api-keys/lib/autoLock.test.ts | 2 +- .../ee/billing/credit-service.test.ts | 58 +- .../ee/dsync/lib/handleUserEvents.test.ts | 37 +- .../roundRobinManualReassignment.test.ts | 5 +- .../roundRobinReassignment.test.ts | 4 + .../services/teamService.alternative.test.ts | 2 +- .../ee/teams/services/teamService.test.ts | 2 +- .../lib/service/WorkflowService.test.ts | 4 +- .../workflows/lib/test/twilioWebhook.test.ts | 4 +- .../host/repositories/HostRepository.test.ts | 2 +- .../__tests__/event-type-permissions.test.ts | 8 +- .../__tests__/resource-permissions.test.ts | 4 +- .../routing-forms/lib/getRoutedUrl.test.ts | 17 +- .../routing-forms/lib/handleResponse.test.ts | 6 +- .../handleNotificationWhenNoSlots.test.ts | 8 +- .../tasker/tasks/sendWorkflowEmails.test.ts | 8 +- .../services/userCreationService.test.ts | 4 +- .../lib/hooks/useCompatSearchParams.test.ts | 2 +- .../server/getServerErrorFromUnknown.test.ts | 6 +- packages/platform/atoms/package.json | 8 +- packages/platform/libraries/package.json | 6 +- .../getAllSchedulesByUserId.handler.test.ts | 4 +- .../bookings/reportBooking.handler.test.ts | 6 +- .../__tests__/getUserEventGroups.test.ts | 4 +- .../viewer/eventTypes/__tests__/util.test.ts | 2 +- .../heavy/duplicate.handler.test.ts | 39 +- .../eventTypes/teamAccessUseCase.test.ts | 4 +- .../deleteWatchlistEntry.handler.test.ts | 2 +- .../dismissBookingReport.handler.test.ts | 12 +- .../intentToCreateOrg.handler.test.ts | 2 +- .../listBookingReports.handler.test.ts | 12 +- .../organizations/listMembers.handler.test.ts | 16 +- .../viewer/slots/reserveSlot.handler.test.ts | 4 +- .../inviteMember/inviteMember.handler.test.ts | 28 +- .../inviteMember/inviteMemberUtils.test.ts | 22 +- .../removeHostsFromEventTypes.handler.test.ts | 64 +- .../__tests__/PBACRemoveMemberService.test.ts | 2 +- .../RemoveMemberServiceFactory.test.ts | 2 +- .../viewer/teams/update.handler.test.ts | 20 +- .../routers/viewer/webhook/util.test.ts | 4 +- .../routers/viewer/workflows/util.test.ts | 13 +- packages/ui/components/button/button.test.tsx | 12 +- vitest-mocks/svg-hashes.json | 1 + vitest-mocks/tailwind.generated.css | 1 + vitest.config.mts | 126 + vitest.config.ts | 25 - vitest.workspace.ts | 10 +- yarn.lock | 2292 ++++++++++------- 98 files changed, 2132 insertions(+), 1487 deletions(-) create mode 100644 vitest-mocks/svg-hashes.json create mode 100644 vitest-mocks/tailwind.generated.css create mode 100644 vitest.config.mts delete mode 100644 vitest.config.ts 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"